@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.
- package/LICENSE +203 -0
- package/README.md +616 -0
- package/dist/client/_generated/_ignore.d.ts +1 -0
- package/dist/client/_generated/_ignore.d.ts.map +1 -0
- package/dist/client/_generated/_ignore.js +4 -0
- package/dist/client/_generated/_ignore.js.map +1 -0
- package/dist/client/index.d.ts +244 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +555 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/types.d.ts +689 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client/types.js +112 -0
- package/dist/client/types.js.map +1 -0
- package/dist/component/_generated/_ignore.d.ts +1 -0
- package/dist/component/_generated/_ignore.d.ts.map +1 -0
- package/dist/component/_generated/_ignore.js +4 -0
- package/dist/component/_generated/_ignore.js.map +1 -0
- package/dist/component/_generated/api.d.ts +13 -0
- package/dist/component/_generated/api.d.ts.map +1 -0
- package/dist/component/_generated/api.js +14 -0
- package/dist/component/_generated/api.js.map +1 -0
- package/dist/component/_generated/dataModel.d.ts +28 -0
- package/dist/component/_generated/dataModel.d.ts.map +1 -0
- package/dist/component/_generated/dataModel.js +11 -0
- package/dist/component/_generated/dataModel.js.map +1 -0
- package/dist/component/_generated/server.d.ts +23 -0
- package/dist/component/_generated/server.d.ts.map +1 -0
- package/dist/component/_generated/server.js +18 -0
- package/dist/component/_generated/server.js.map +1 -0
- package/dist/component/backfillJobs.d.ts +121 -0
- package/dist/component/backfillJobs.d.ts.map +1 -0
- package/dist/component/backfillJobs.js +233 -0
- package/dist/component/backfillJobs.js.map +1 -0
- package/dist/component/connections.d.ts +159 -0
- package/dist/component/connections.d.ts.map +1 -0
- package/dist/component/connections.js +288 -0
- package/dist/component/connections.js.map +1 -0
- package/dist/component/convex.config.d.ts +3 -0
- package/dist/component/convex.config.d.ts.map +1 -0
- package/dist/component/convex.config.js +6 -0
- package/dist/component/convex.config.js.map +1 -0
- package/dist/component/dataPoints.d.ts +81 -0
- package/dist/component/dataPoints.d.ts.map +1 -0
- package/dist/component/dataPoints.js +258 -0
- package/dist/component/dataPoints.js.map +1 -0
- package/dist/component/dataSources.d.ts +56 -0
- package/dist/component/dataSources.d.ts.map +1 -0
- package/dist/component/dataSources.js +95 -0
- package/dist/component/dataSources.js.map +1 -0
- package/dist/component/events.d.ts +203 -0
- package/dist/component/events.d.ts.map +1 -0
- package/dist/component/events.js +251 -0
- package/dist/component/events.js.map +1 -0
- package/dist/component/garminBackfill.d.ts +40 -0
- package/dist/component/garminBackfill.d.ts.map +1 -0
- package/dist/component/garminBackfill.js +296 -0
- package/dist/component/garminBackfill.js.map +1 -0
- package/dist/component/garminWebhooks.d.ts +17 -0
- package/dist/component/garminWebhooks.d.ts.map +1 -0
- package/dist/component/garminWebhooks.js +505 -0
- package/dist/component/garminWebhooks.js.map +1 -0
- package/dist/component/httpHandlers.d.ts +32 -0
- package/dist/component/httpHandlers.d.ts.map +1 -0
- package/dist/component/httpHandlers.js +131 -0
- package/dist/component/httpHandlers.js.map +1 -0
- package/dist/component/lifecycle.d.ts +12 -0
- package/dist/component/lifecycle.d.ts.map +1 -0
- package/dist/component/lifecycle.js +79 -0
- package/dist/component/lifecycle.js.map +1 -0
- package/dist/component/menstrualCycles.d.ts +98 -0
- package/dist/component/menstrualCycles.d.ts.map +1 -0
- package/dist/component/menstrualCycles.js +112 -0
- package/dist/component/menstrualCycles.js.map +1 -0
- package/dist/component/oauthActions.d.ts +52 -0
- package/dist/component/oauthActions.d.ts.map +1 -0
- package/dist/component/oauthActions.js +208 -0
- package/dist/component/oauthActions.js.map +1 -0
- package/dist/component/oauthStates.d.ts +47 -0
- package/dist/component/oauthStates.d.ts.map +1 -0
- package/dist/component/oauthStates.js +77 -0
- package/dist/component/oauthStates.js.map +1 -0
- package/dist/component/providerSettings.d.ts +15 -0
- package/dist/component/providerSettings.d.ts.map +1 -0
- package/dist/component/providerSettings.js +57 -0
- package/dist/component/providerSettings.js.map +1 -0
- package/dist/component/providers/garmin.d.ts +306 -0
- package/dist/component/providers/garmin.d.ts.map +1 -0
- package/dist/component/providers/garmin.js +675 -0
- package/dist/component/providers/garmin.js.map +1 -0
- package/dist/component/providers/oauth.d.ts +42 -0
- package/dist/component/providers/oauth.d.ts.map +1 -0
- package/dist/component/providers/oauth.js +181 -0
- package/dist/component/providers/oauth.js.map +1 -0
- package/dist/component/providers/polar.d.ts +6 -0
- package/dist/component/providers/polar.d.ts.map +1 -0
- package/dist/component/providers/polar.js +175 -0
- package/dist/component/providers/polar.js.map +1 -0
- package/dist/component/providers/registry.d.ts +14 -0
- package/dist/component/providers/registry.d.ts.map +1 -0
- package/dist/component/providers/registry.js +32 -0
- package/dist/component/providers/registry.js.map +1 -0
- package/dist/component/providers/strava.d.ts +45 -0
- package/dist/component/providers/strava.d.ts.map +1 -0
- package/dist/component/providers/strava.js +182 -0
- package/dist/component/providers/strava.js.map +1 -0
- package/dist/component/providers/suunto.d.ts +5 -0
- package/dist/component/providers/suunto.d.ts.map +1 -0
- package/dist/component/providers/suunto.js +502 -0
- package/dist/component/providers/suunto.js.map +1 -0
- package/dist/component/providers/types.d.ts +139 -0
- package/dist/component/providers/types.d.ts.map +1 -0
- package/dist/component/providers/types.js +5 -0
- package/dist/component/providers/types.js.map +1 -0
- package/dist/component/providers/whoop.d.ts +4 -0
- package/dist/component/providers/whoop.d.ts.map +1 -0
- package/dist/component/providers/whoop.js +439 -0
- package/dist/component/providers/whoop.js.map +1 -0
- package/dist/component/schema.d.ts +429 -0
- package/dist/component/schema.d.ts.map +1 -0
- package/dist/component/schema.js +282 -0
- package/dist/component/schema.js.map +1 -0
- package/dist/component/sdkPush.d.ts +143 -0
- package/dist/component/sdkPush.d.ts.map +1 -0
- package/dist/component/sdkPush.js +338 -0
- package/dist/component/sdkPush.js.map +1 -0
- package/dist/component/summaries.d.ts +129 -0
- package/dist/component/summaries.d.ts.map +1 -0
- package/dist/component/summaries.js +129 -0
- package/dist/component/summaries.js.map +1 -0
- package/dist/component/syncJobs.d.ts +142 -0
- package/dist/component/syncJobs.d.ts.map +1 -0
- package/dist/component/syncJobs.js +136 -0
- package/dist/component/syncJobs.js.map +1 -0
- package/dist/component/syncWorkflow.d.ts +99 -0
- package/dist/component/syncWorkflow.d.ts.map +1 -0
- package/dist/component/syncWorkflow.js +579 -0
- package/dist/component/syncWorkflow.js.map +1 -0
- package/dist/component/workflowManager.d.ts +3 -0
- package/dist/component/workflowManager.d.ts.map +1 -0
- package/dist/component/workflowManager.js +17 -0
- package/dist/component/workflowManager.js.map +1 -0
- package/package.json +84 -0
|
@@ -0,0 +1,689 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared types for @clipin/convex-wearables.
|
|
3
|
+
*
|
|
4
|
+
* These types are used by both the component internals and the host app.
|
|
5
|
+
*/
|
|
6
|
+
export type ProviderName = "garmin" | "suunto" | "polar" | "whoop" | "strava" | "apple" | "samsung" | "google";
|
|
7
|
+
export type ConnectionStatus = "active" | "inactive" | "revoked" | "expired" | "error";
|
|
8
|
+
export type EventCategory = "workout" | "sleep";
|
|
9
|
+
export type SyncJobStatus = "queued" | "running" | "completed" | "failed" | "canceled";
|
|
10
|
+
export type BackfillJobStatus = "queued" | "running" | "completed" | "failed" | "canceled";
|
|
11
|
+
export interface ProviderCredentials {
|
|
12
|
+
clientId: string;
|
|
13
|
+
clientSecret: string;
|
|
14
|
+
/** Suunto requires an additional subscription key. */
|
|
15
|
+
subscriptionKey?: string;
|
|
16
|
+
}
|
|
17
|
+
export interface WearablesConfig {
|
|
18
|
+
providers: Partial<Record<ProviderName, ProviderCredentials>>;
|
|
19
|
+
/**
|
|
20
|
+
* Optional function reference called when new data is synced.
|
|
21
|
+
* The host app can use this to trigger downstream processing.
|
|
22
|
+
*/
|
|
23
|
+
onDataSynced?: unknown;
|
|
24
|
+
}
|
|
25
|
+
export interface GarminRoutesConfig {
|
|
26
|
+
/** Route that receives Garmin push notifications. */
|
|
27
|
+
webhookPath?: string;
|
|
28
|
+
/** Optional health-check route for the Garmin webhook integration. */
|
|
29
|
+
healthPath?: string | false;
|
|
30
|
+
/** Expected Garmin client ID. Defaults to `process.env.GARMIN_CLIENT_ID`. */
|
|
31
|
+
clientId?: string;
|
|
32
|
+
/** Garmin client secret. Defaults to `process.env.GARMIN_CLIENT_SECRET`. */
|
|
33
|
+
clientSecret?: string;
|
|
34
|
+
/** Route that receives the Garmin OAuth callback. */
|
|
35
|
+
oauthCallbackPath?: string | false;
|
|
36
|
+
/** Where to redirect after a successful OAuth callback. */
|
|
37
|
+
successRedirectUrl?: string;
|
|
38
|
+
/** Query parameter set on successful OAuth redirect. */
|
|
39
|
+
successQueryParam?: string;
|
|
40
|
+
}
|
|
41
|
+
export interface SdkRoutesConfig {
|
|
42
|
+
/** Route that receives normalized SDK/mobile health pushes. */
|
|
43
|
+
syncPath?: string | false;
|
|
44
|
+
/**
|
|
45
|
+
* Optional shared bearer token expected on the SDK sync route.
|
|
46
|
+
* Defaults to `process.env.WEARABLES_SDK_AUTH_TOKEN` when omitted.
|
|
47
|
+
*/
|
|
48
|
+
authToken?: string;
|
|
49
|
+
}
|
|
50
|
+
export interface RegisterRoutesConfig {
|
|
51
|
+
/**
|
|
52
|
+
* Garmin webhook routes.
|
|
53
|
+
* Pass `false` to skip registering Garmin routes.
|
|
54
|
+
*/
|
|
55
|
+
garmin?: GarminRoutesConfig | false;
|
|
56
|
+
/**
|
|
57
|
+
* Normalized SDK push route for Apple Health / Google Health Connect / Samsung Health.
|
|
58
|
+
* Omitted by default; pass a config object to register it.
|
|
59
|
+
*/
|
|
60
|
+
sdk?: SdkRoutesConfig | false;
|
|
61
|
+
}
|
|
62
|
+
export type SdkProviderName = "apple" | "google" | "samsung";
|
|
63
|
+
export interface SdkDeviceMetadata {
|
|
64
|
+
model?: string;
|
|
65
|
+
softwareVersion?: string;
|
|
66
|
+
source?: string;
|
|
67
|
+
deviceType?: string;
|
|
68
|
+
originalSourceName?: string;
|
|
69
|
+
}
|
|
70
|
+
export interface SdkSourceMetadata {
|
|
71
|
+
deviceModel?: string;
|
|
72
|
+
softwareVersion?: string;
|
|
73
|
+
source?: string;
|
|
74
|
+
deviceType?: string;
|
|
75
|
+
originalSourceName?: string;
|
|
76
|
+
}
|
|
77
|
+
export interface SdkPushEvent extends SdkSourceMetadata {
|
|
78
|
+
category: EventCategory;
|
|
79
|
+
type?: string;
|
|
80
|
+
sourceName?: string;
|
|
81
|
+
durationSeconds?: number;
|
|
82
|
+
startDatetime: number;
|
|
83
|
+
endDatetime?: number;
|
|
84
|
+
externalId?: string;
|
|
85
|
+
heartRateMin?: number;
|
|
86
|
+
heartRateMax?: number;
|
|
87
|
+
heartRateAvg?: number;
|
|
88
|
+
energyBurned?: number;
|
|
89
|
+
distance?: number;
|
|
90
|
+
stepsCount?: number;
|
|
91
|
+
maxSpeed?: number;
|
|
92
|
+
maxWatts?: number;
|
|
93
|
+
movingTimeSeconds?: number;
|
|
94
|
+
totalElevationGain?: number;
|
|
95
|
+
averageSpeed?: number;
|
|
96
|
+
averageWatts?: number;
|
|
97
|
+
elevHigh?: number;
|
|
98
|
+
elevLow?: number;
|
|
99
|
+
sleepTotalDurationMinutes?: number;
|
|
100
|
+
sleepTimeInBedMinutes?: number;
|
|
101
|
+
sleepEfficiencyScore?: number;
|
|
102
|
+
sleepDeepMinutes?: number;
|
|
103
|
+
sleepRemMinutes?: number;
|
|
104
|
+
sleepLightMinutes?: number;
|
|
105
|
+
sleepAwakeMinutes?: number;
|
|
106
|
+
isNap?: boolean;
|
|
107
|
+
sleepStages?: Array<{
|
|
108
|
+
stage: string;
|
|
109
|
+
startTime: number;
|
|
110
|
+
endTime: number;
|
|
111
|
+
}>;
|
|
112
|
+
}
|
|
113
|
+
export interface SdkPushDataPoint extends SdkSourceMetadata {
|
|
114
|
+
seriesType: string;
|
|
115
|
+
recordedAt: number;
|
|
116
|
+
value: number;
|
|
117
|
+
externalId?: string;
|
|
118
|
+
}
|
|
119
|
+
export interface SdkPushSummary {
|
|
120
|
+
date: string;
|
|
121
|
+
category: string;
|
|
122
|
+
totalSteps?: number;
|
|
123
|
+
totalCalories?: number;
|
|
124
|
+
activeCalories?: number;
|
|
125
|
+
activeMinutes?: number;
|
|
126
|
+
totalDistance?: number;
|
|
127
|
+
floorsClimbed?: number;
|
|
128
|
+
avgHeartRate?: number;
|
|
129
|
+
maxHeartRate?: number;
|
|
130
|
+
minHeartRate?: number;
|
|
131
|
+
sleepDurationMinutes?: number;
|
|
132
|
+
sleepEfficiency?: number;
|
|
133
|
+
deepSleepMinutes?: number;
|
|
134
|
+
remSleepMinutes?: number;
|
|
135
|
+
lightSleepMinutes?: number;
|
|
136
|
+
awakeDuringMinutes?: number;
|
|
137
|
+
timeInBedMinutes?: number;
|
|
138
|
+
hrvAvg?: number;
|
|
139
|
+
hrvRmssd?: number;
|
|
140
|
+
restingHeartRate?: number;
|
|
141
|
+
recoveryScore?: number;
|
|
142
|
+
weight?: number;
|
|
143
|
+
bodyFatPercentage?: number;
|
|
144
|
+
bodyMassIndex?: number;
|
|
145
|
+
leanBodyMass?: number;
|
|
146
|
+
bodyTemperature?: number;
|
|
147
|
+
avgStressLevel?: number;
|
|
148
|
+
bodyBattery?: number;
|
|
149
|
+
spo2Avg?: number;
|
|
150
|
+
}
|
|
151
|
+
export interface SdkPushPayload {
|
|
152
|
+
userId: string;
|
|
153
|
+
provider: SdkProviderName;
|
|
154
|
+
providerUserId?: string;
|
|
155
|
+
providerUsername?: string;
|
|
156
|
+
syncTimestamp?: number;
|
|
157
|
+
/**
|
|
158
|
+
* Compatibility alias for older mobile payloads.
|
|
159
|
+
* Prefer `sourceMetadata` for new integrations.
|
|
160
|
+
*/
|
|
161
|
+
device?: SdkDeviceMetadata;
|
|
162
|
+
sourceMetadata?: SdkSourceMetadata;
|
|
163
|
+
events?: SdkPushEvent[];
|
|
164
|
+
dataPoints?: SdkPushDataPoint[];
|
|
165
|
+
summaries?: SdkPushSummary[];
|
|
166
|
+
/**
|
|
167
|
+
* Compatibility alias for older mobile payloads.
|
|
168
|
+
* Prefer `summaries` for new integrations.
|
|
169
|
+
*/
|
|
170
|
+
dailySummaries?: SdkPushSummary[];
|
|
171
|
+
}
|
|
172
|
+
export type SdkSyncPayload = SdkPushPayload;
|
|
173
|
+
export interface Connection {
|
|
174
|
+
_id: string;
|
|
175
|
+
userId: string;
|
|
176
|
+
provider: ProviderName;
|
|
177
|
+
providerUserId?: string;
|
|
178
|
+
providerUsername?: string;
|
|
179
|
+
status: ConnectionStatus;
|
|
180
|
+
lastSyncedAt?: number;
|
|
181
|
+
}
|
|
182
|
+
export interface WorkoutEvent {
|
|
183
|
+
_id: string;
|
|
184
|
+
userId: string;
|
|
185
|
+
category: "workout";
|
|
186
|
+
type?: string;
|
|
187
|
+
sourceName?: string;
|
|
188
|
+
durationSeconds?: number;
|
|
189
|
+
startDatetime: number;
|
|
190
|
+
endDatetime?: number;
|
|
191
|
+
externalId?: string;
|
|
192
|
+
heartRateMin?: number;
|
|
193
|
+
heartRateMax?: number;
|
|
194
|
+
heartRateAvg?: number;
|
|
195
|
+
energyBurned?: number;
|
|
196
|
+
distance?: number;
|
|
197
|
+
stepsCount?: number;
|
|
198
|
+
maxSpeed?: number;
|
|
199
|
+
maxWatts?: number;
|
|
200
|
+
movingTimeSeconds?: number;
|
|
201
|
+
totalElevationGain?: number;
|
|
202
|
+
averageSpeed?: number;
|
|
203
|
+
averageWatts?: number;
|
|
204
|
+
elevHigh?: number;
|
|
205
|
+
elevLow?: number;
|
|
206
|
+
}
|
|
207
|
+
export interface SleepStage {
|
|
208
|
+
stage: string;
|
|
209
|
+
startTime: number;
|
|
210
|
+
endTime: number;
|
|
211
|
+
}
|
|
212
|
+
export interface SleepEvent {
|
|
213
|
+
_id: string;
|
|
214
|
+
userId: string;
|
|
215
|
+
category: "sleep";
|
|
216
|
+
type?: string;
|
|
217
|
+
sourceName?: string;
|
|
218
|
+
durationSeconds?: number;
|
|
219
|
+
startDatetime: number;
|
|
220
|
+
endDatetime?: number;
|
|
221
|
+
externalId?: string;
|
|
222
|
+
sleepTotalDurationMinutes?: number;
|
|
223
|
+
sleepTimeInBedMinutes?: number;
|
|
224
|
+
sleepEfficiencyScore?: number;
|
|
225
|
+
sleepDeepMinutes?: number;
|
|
226
|
+
sleepRemMinutes?: number;
|
|
227
|
+
sleepLightMinutes?: number;
|
|
228
|
+
sleepAwakeMinutes?: number;
|
|
229
|
+
isNap?: boolean;
|
|
230
|
+
sleepStages?: SleepStage[];
|
|
231
|
+
}
|
|
232
|
+
export type HealthEvent = WorkoutEvent | SleepEvent;
|
|
233
|
+
export interface DataPoint {
|
|
234
|
+
timestamp: number;
|
|
235
|
+
value: number;
|
|
236
|
+
}
|
|
237
|
+
export interface TimeSeriesPage {
|
|
238
|
+
points: DataPoint[];
|
|
239
|
+
nextCursor: string | null;
|
|
240
|
+
hasMore: boolean;
|
|
241
|
+
}
|
|
242
|
+
export interface EventsPage {
|
|
243
|
+
events: HealthEvent[];
|
|
244
|
+
nextCursor: string | null;
|
|
245
|
+
hasMore: boolean;
|
|
246
|
+
}
|
|
247
|
+
export interface DailySummary {
|
|
248
|
+
_id: string;
|
|
249
|
+
userId: string;
|
|
250
|
+
date: string;
|
|
251
|
+
category: string;
|
|
252
|
+
totalSteps?: number;
|
|
253
|
+
totalCalories?: number;
|
|
254
|
+
activeCalories?: number;
|
|
255
|
+
activeMinutes?: number;
|
|
256
|
+
totalDistance?: number;
|
|
257
|
+
floorsClimbed?: number;
|
|
258
|
+
avgHeartRate?: number;
|
|
259
|
+
maxHeartRate?: number;
|
|
260
|
+
minHeartRate?: number;
|
|
261
|
+
sleepDurationMinutes?: number;
|
|
262
|
+
sleepEfficiency?: number;
|
|
263
|
+
deepSleepMinutes?: number;
|
|
264
|
+
remSleepMinutes?: number;
|
|
265
|
+
lightSleepMinutes?: number;
|
|
266
|
+
awakeDuringMinutes?: number;
|
|
267
|
+
timeInBedMinutes?: number;
|
|
268
|
+
hrvAvg?: number;
|
|
269
|
+
hrvRmssd?: number;
|
|
270
|
+
restingHeartRate?: number;
|
|
271
|
+
recoveryScore?: number;
|
|
272
|
+
weight?: number;
|
|
273
|
+
bodyFatPercentage?: number;
|
|
274
|
+
bodyMassIndex?: number;
|
|
275
|
+
leanBodyMass?: number;
|
|
276
|
+
bodyTemperature?: number;
|
|
277
|
+
avgStressLevel?: number;
|
|
278
|
+
bodyBattery?: number;
|
|
279
|
+
spo2Avg?: number;
|
|
280
|
+
}
|
|
281
|
+
export interface AggregateStats {
|
|
282
|
+
sum: number;
|
|
283
|
+
count: number;
|
|
284
|
+
avg: number;
|
|
285
|
+
min: number | null;
|
|
286
|
+
max: number | null;
|
|
287
|
+
}
|
|
288
|
+
export interface SyncJob {
|
|
289
|
+
_id: string;
|
|
290
|
+
connectionId: string;
|
|
291
|
+
userId: string;
|
|
292
|
+
provider: ProviderName;
|
|
293
|
+
status: SyncJobStatus;
|
|
294
|
+
mode?: "manual" | "cron" | "webhook";
|
|
295
|
+
triggerSource?: string;
|
|
296
|
+
startedAt: number;
|
|
297
|
+
completedAt?: number;
|
|
298
|
+
error?: string;
|
|
299
|
+
recordsProcessed?: number;
|
|
300
|
+
workflowId?: string;
|
|
301
|
+
windowStart?: number;
|
|
302
|
+
windowEnd?: number;
|
|
303
|
+
attempt?: number;
|
|
304
|
+
lastHeartbeatAt?: number;
|
|
305
|
+
cursor?: string;
|
|
306
|
+
currentPhase?: "events" | "dataPoints" | "summaries";
|
|
307
|
+
}
|
|
308
|
+
export interface SyncStatus {
|
|
309
|
+
provider: ProviderName;
|
|
310
|
+
connectionStatus: ConnectionStatus;
|
|
311
|
+
lastSyncedAt?: number;
|
|
312
|
+
syncJobStatus: SyncJobStatus | null;
|
|
313
|
+
syncJobError: string | null;
|
|
314
|
+
}
|
|
315
|
+
export interface BackfillJob {
|
|
316
|
+
_id: string;
|
|
317
|
+
connectionId: string;
|
|
318
|
+
userId: string;
|
|
319
|
+
provider: ProviderName;
|
|
320
|
+
dataType: string;
|
|
321
|
+
status: BackfillJobStatus;
|
|
322
|
+
startedAt: number;
|
|
323
|
+
completedAt?: number;
|
|
324
|
+
error?: string;
|
|
325
|
+
workflowId?: string;
|
|
326
|
+
windowStart?: number;
|
|
327
|
+
windowEnd?: number;
|
|
328
|
+
currentDataType?: string;
|
|
329
|
+
currentAttempt?: number;
|
|
330
|
+
currentEventId?: string;
|
|
331
|
+
completedDataTypes?: string[];
|
|
332
|
+
lastHeartbeatAt?: number;
|
|
333
|
+
}
|
|
334
|
+
export declare const SERIES_TYPES: {
|
|
335
|
+
readonly heart_rate: {
|
|
336
|
+
readonly id: 1;
|
|
337
|
+
readonly unit: "bpm";
|
|
338
|
+
};
|
|
339
|
+
readonly resting_heart_rate: {
|
|
340
|
+
readonly id: 2;
|
|
341
|
+
readonly unit: "bpm";
|
|
342
|
+
};
|
|
343
|
+
readonly heart_rate_variability_sdnn: {
|
|
344
|
+
readonly id: 3;
|
|
345
|
+
readonly unit: "ms";
|
|
346
|
+
};
|
|
347
|
+
readonly heart_rate_recovery_one_minute: {
|
|
348
|
+
readonly id: 4;
|
|
349
|
+
readonly unit: "bpm";
|
|
350
|
+
};
|
|
351
|
+
readonly walking_heart_rate_average: {
|
|
352
|
+
readonly id: 5;
|
|
353
|
+
readonly unit: "bpm";
|
|
354
|
+
};
|
|
355
|
+
readonly recovery_score: {
|
|
356
|
+
readonly id: 6;
|
|
357
|
+
readonly unit: "score";
|
|
358
|
+
};
|
|
359
|
+
readonly heart_rate_variability_rmssd: {
|
|
360
|
+
readonly id: 7;
|
|
361
|
+
readonly unit: "ms";
|
|
362
|
+
};
|
|
363
|
+
readonly oxygen_saturation: {
|
|
364
|
+
readonly id: 20;
|
|
365
|
+
readonly unit: "percent";
|
|
366
|
+
};
|
|
367
|
+
readonly blood_glucose: {
|
|
368
|
+
readonly id: 21;
|
|
369
|
+
readonly unit: "mg_dl";
|
|
370
|
+
};
|
|
371
|
+
readonly blood_pressure_systolic: {
|
|
372
|
+
readonly id: 22;
|
|
373
|
+
readonly unit: "mmHg";
|
|
374
|
+
};
|
|
375
|
+
readonly blood_pressure_diastolic: {
|
|
376
|
+
readonly id: 23;
|
|
377
|
+
readonly unit: "mmHg";
|
|
378
|
+
};
|
|
379
|
+
readonly respiratory_rate: {
|
|
380
|
+
readonly id: 24;
|
|
381
|
+
readonly unit: "brpm";
|
|
382
|
+
};
|
|
383
|
+
readonly sleeping_breathing_disturbances: {
|
|
384
|
+
readonly id: 25;
|
|
385
|
+
readonly unit: "count";
|
|
386
|
+
};
|
|
387
|
+
readonly blood_alcohol_content: {
|
|
388
|
+
readonly id: 26;
|
|
389
|
+
readonly unit: "mg_dl";
|
|
390
|
+
};
|
|
391
|
+
readonly peripheral_perfusion_index: {
|
|
392
|
+
readonly id: 27;
|
|
393
|
+
readonly unit: "score";
|
|
394
|
+
};
|
|
395
|
+
readonly forced_vital_capacity: {
|
|
396
|
+
readonly id: 28;
|
|
397
|
+
readonly unit: "liters";
|
|
398
|
+
};
|
|
399
|
+
readonly forced_expiratory_volume_1: {
|
|
400
|
+
readonly id: 29;
|
|
401
|
+
readonly unit: "liters";
|
|
402
|
+
};
|
|
403
|
+
readonly peak_expiratory_flow_rate: {
|
|
404
|
+
readonly id: 30;
|
|
405
|
+
readonly unit: "liters";
|
|
406
|
+
};
|
|
407
|
+
readonly height: {
|
|
408
|
+
readonly id: 40;
|
|
409
|
+
readonly unit: "cm";
|
|
410
|
+
};
|
|
411
|
+
readonly weight: {
|
|
412
|
+
readonly id: 41;
|
|
413
|
+
readonly unit: "kg";
|
|
414
|
+
};
|
|
415
|
+
readonly body_fat_percentage: {
|
|
416
|
+
readonly id: 42;
|
|
417
|
+
readonly unit: "percent";
|
|
418
|
+
};
|
|
419
|
+
readonly body_mass_index: {
|
|
420
|
+
readonly id: 43;
|
|
421
|
+
readonly unit: "kg_m2";
|
|
422
|
+
};
|
|
423
|
+
readonly lean_body_mass: {
|
|
424
|
+
readonly id: 44;
|
|
425
|
+
readonly unit: "kg";
|
|
426
|
+
};
|
|
427
|
+
readonly body_temperature: {
|
|
428
|
+
readonly id: 45;
|
|
429
|
+
readonly unit: "celsius";
|
|
430
|
+
};
|
|
431
|
+
readonly skin_temperature: {
|
|
432
|
+
readonly id: 46;
|
|
433
|
+
readonly unit: "celsius";
|
|
434
|
+
};
|
|
435
|
+
readonly waist_circumference: {
|
|
436
|
+
readonly id: 47;
|
|
437
|
+
readonly unit: "cm";
|
|
438
|
+
};
|
|
439
|
+
readonly body_fat_mass: {
|
|
440
|
+
readonly id: 48;
|
|
441
|
+
readonly unit: "kg";
|
|
442
|
+
};
|
|
443
|
+
readonly skeletal_muscle_mass: {
|
|
444
|
+
readonly id: 49;
|
|
445
|
+
readonly unit: "kg";
|
|
446
|
+
};
|
|
447
|
+
readonly vo2_max: {
|
|
448
|
+
readonly id: 60;
|
|
449
|
+
readonly unit: "ml_kg_min";
|
|
450
|
+
};
|
|
451
|
+
readonly six_minute_walk_test_distance: {
|
|
452
|
+
readonly id: 61;
|
|
453
|
+
readonly unit: "meters";
|
|
454
|
+
};
|
|
455
|
+
readonly steps: {
|
|
456
|
+
readonly id: 80;
|
|
457
|
+
readonly unit: "count";
|
|
458
|
+
};
|
|
459
|
+
readonly energy: {
|
|
460
|
+
readonly id: 81;
|
|
461
|
+
readonly unit: "kcal";
|
|
462
|
+
};
|
|
463
|
+
readonly basal_energy: {
|
|
464
|
+
readonly id: 82;
|
|
465
|
+
readonly unit: "kcal";
|
|
466
|
+
};
|
|
467
|
+
readonly total_calories: {
|
|
468
|
+
readonly id: 88;
|
|
469
|
+
readonly unit: "kcal";
|
|
470
|
+
};
|
|
471
|
+
readonly active_calories: {
|
|
472
|
+
readonly id: 89;
|
|
473
|
+
readonly unit: "kcal";
|
|
474
|
+
};
|
|
475
|
+
readonly stand_time: {
|
|
476
|
+
readonly id: 83;
|
|
477
|
+
readonly unit: "minutes";
|
|
478
|
+
};
|
|
479
|
+
readonly exercise_time: {
|
|
480
|
+
readonly id: 84;
|
|
481
|
+
readonly unit: "minutes";
|
|
482
|
+
};
|
|
483
|
+
readonly physical_effort: {
|
|
484
|
+
readonly id: 85;
|
|
485
|
+
readonly unit: "score";
|
|
486
|
+
};
|
|
487
|
+
readonly flights_climbed: {
|
|
488
|
+
readonly id: 86;
|
|
489
|
+
readonly unit: "count";
|
|
490
|
+
};
|
|
491
|
+
readonly floors_climbed: {
|
|
492
|
+
readonly id: 90;
|
|
493
|
+
readonly unit: "count";
|
|
494
|
+
};
|
|
495
|
+
readonly average_met: {
|
|
496
|
+
readonly id: 87;
|
|
497
|
+
readonly unit: "met";
|
|
498
|
+
};
|
|
499
|
+
readonly distance: {
|
|
500
|
+
readonly id: 99;
|
|
501
|
+
readonly unit: "meters";
|
|
502
|
+
};
|
|
503
|
+
readonly distance_walking_running: {
|
|
504
|
+
readonly id: 100;
|
|
505
|
+
readonly unit: "meters";
|
|
506
|
+
};
|
|
507
|
+
readonly distance_cycling: {
|
|
508
|
+
readonly id: 101;
|
|
509
|
+
readonly unit: "meters";
|
|
510
|
+
};
|
|
511
|
+
readonly distance_swimming: {
|
|
512
|
+
readonly id: 102;
|
|
513
|
+
readonly unit: "meters";
|
|
514
|
+
};
|
|
515
|
+
readonly distance_downhill_snow_sports: {
|
|
516
|
+
readonly id: 103;
|
|
517
|
+
readonly unit: "meters";
|
|
518
|
+
};
|
|
519
|
+
readonly distance_other: {
|
|
520
|
+
readonly id: 104;
|
|
521
|
+
readonly unit: "meters";
|
|
522
|
+
};
|
|
523
|
+
readonly elevation_gain: {
|
|
524
|
+
readonly id: 105;
|
|
525
|
+
readonly unit: "meters";
|
|
526
|
+
};
|
|
527
|
+
readonly walking_step_length: {
|
|
528
|
+
readonly id: 120;
|
|
529
|
+
readonly unit: "cm";
|
|
530
|
+
};
|
|
531
|
+
readonly walking_speed: {
|
|
532
|
+
readonly id: 121;
|
|
533
|
+
readonly unit: "m_per_s";
|
|
534
|
+
};
|
|
535
|
+
readonly walking_double_support_percentage: {
|
|
536
|
+
readonly id: 122;
|
|
537
|
+
readonly unit: "percent";
|
|
538
|
+
};
|
|
539
|
+
readonly walking_asymmetry_percentage: {
|
|
540
|
+
readonly id: 123;
|
|
541
|
+
readonly unit: "percent";
|
|
542
|
+
};
|
|
543
|
+
readonly walking_steadiness: {
|
|
544
|
+
readonly id: 124;
|
|
545
|
+
readonly unit: "percent";
|
|
546
|
+
};
|
|
547
|
+
readonly stair_descent_speed: {
|
|
548
|
+
readonly id: 125;
|
|
549
|
+
readonly unit: "m_per_s";
|
|
550
|
+
};
|
|
551
|
+
readonly stair_ascent_speed: {
|
|
552
|
+
readonly id: 126;
|
|
553
|
+
readonly unit: "m_per_s";
|
|
554
|
+
};
|
|
555
|
+
readonly running_power: {
|
|
556
|
+
readonly id: 140;
|
|
557
|
+
readonly unit: "watts";
|
|
558
|
+
};
|
|
559
|
+
readonly running_speed: {
|
|
560
|
+
readonly id: 141;
|
|
561
|
+
readonly unit: "m_per_s";
|
|
562
|
+
};
|
|
563
|
+
readonly running_vertical_oscillation: {
|
|
564
|
+
readonly id: 142;
|
|
565
|
+
readonly unit: "cm";
|
|
566
|
+
};
|
|
567
|
+
readonly running_ground_contact_time: {
|
|
568
|
+
readonly id: 143;
|
|
569
|
+
readonly unit: "ms";
|
|
570
|
+
};
|
|
571
|
+
readonly running_stride_length: {
|
|
572
|
+
readonly id: 144;
|
|
573
|
+
readonly unit: "cm";
|
|
574
|
+
};
|
|
575
|
+
readonly swimming_stroke_count: {
|
|
576
|
+
readonly id: 160;
|
|
577
|
+
readonly unit: "count";
|
|
578
|
+
};
|
|
579
|
+
readonly underwater_depth: {
|
|
580
|
+
readonly id: 161;
|
|
581
|
+
readonly unit: "meters";
|
|
582
|
+
};
|
|
583
|
+
readonly cadence: {
|
|
584
|
+
readonly id: 180;
|
|
585
|
+
readonly unit: "rpm";
|
|
586
|
+
};
|
|
587
|
+
readonly power: {
|
|
588
|
+
readonly id: 181;
|
|
589
|
+
readonly unit: "watts";
|
|
590
|
+
};
|
|
591
|
+
readonly speed: {
|
|
592
|
+
readonly id: 182;
|
|
593
|
+
readonly unit: "m_per_s";
|
|
594
|
+
};
|
|
595
|
+
readonly workout_effort_score: {
|
|
596
|
+
readonly id: 183;
|
|
597
|
+
readonly unit: "score";
|
|
598
|
+
};
|
|
599
|
+
readonly estimated_workout_effort_score: {
|
|
600
|
+
readonly id: 184;
|
|
601
|
+
readonly unit: "score";
|
|
602
|
+
};
|
|
603
|
+
readonly environmental_audio_exposure: {
|
|
604
|
+
readonly id: 200;
|
|
605
|
+
readonly unit: "dB";
|
|
606
|
+
};
|
|
607
|
+
readonly headphone_audio_exposure: {
|
|
608
|
+
readonly id: 201;
|
|
609
|
+
readonly unit: "dB";
|
|
610
|
+
};
|
|
611
|
+
readonly environmental_sound_reduction: {
|
|
612
|
+
readonly id: 202;
|
|
613
|
+
readonly unit: "dB";
|
|
614
|
+
};
|
|
615
|
+
readonly time_in_daylight: {
|
|
616
|
+
readonly id: 203;
|
|
617
|
+
readonly unit: "minutes";
|
|
618
|
+
};
|
|
619
|
+
readonly water_temperature: {
|
|
620
|
+
readonly id: 204;
|
|
621
|
+
readonly unit: "celsius";
|
|
622
|
+
};
|
|
623
|
+
readonly uv_exposure: {
|
|
624
|
+
readonly id: 205;
|
|
625
|
+
readonly unit: "count";
|
|
626
|
+
};
|
|
627
|
+
readonly inhaler_usage: {
|
|
628
|
+
readonly id: 206;
|
|
629
|
+
readonly unit: "count";
|
|
630
|
+
};
|
|
631
|
+
readonly weather_temperature: {
|
|
632
|
+
readonly id: 207;
|
|
633
|
+
readonly unit: "celsius";
|
|
634
|
+
};
|
|
635
|
+
readonly weather_humidity: {
|
|
636
|
+
readonly id: 208;
|
|
637
|
+
readonly unit: "percent";
|
|
638
|
+
};
|
|
639
|
+
readonly garmin_stress_level: {
|
|
640
|
+
readonly id: 220;
|
|
641
|
+
readonly unit: "score";
|
|
642
|
+
};
|
|
643
|
+
readonly garmin_skin_temperature: {
|
|
644
|
+
readonly id: 221;
|
|
645
|
+
readonly unit: "celsius";
|
|
646
|
+
};
|
|
647
|
+
readonly garmin_fitness_age: {
|
|
648
|
+
readonly id: 222;
|
|
649
|
+
readonly unit: "years";
|
|
650
|
+
};
|
|
651
|
+
readonly garmin_body_battery: {
|
|
652
|
+
readonly id: 223;
|
|
653
|
+
readonly unit: "percent";
|
|
654
|
+
};
|
|
655
|
+
readonly electrodermal_activity: {
|
|
656
|
+
readonly id: 500;
|
|
657
|
+
readonly unit: "count";
|
|
658
|
+
};
|
|
659
|
+
readonly push_count: {
|
|
660
|
+
readonly id: 501;
|
|
661
|
+
readonly unit: "count";
|
|
662
|
+
};
|
|
663
|
+
readonly atrial_fibrillation_burden: {
|
|
664
|
+
readonly id: 502;
|
|
665
|
+
readonly unit: "count";
|
|
666
|
+
};
|
|
667
|
+
readonly insulin_delivery: {
|
|
668
|
+
readonly id: 503;
|
|
669
|
+
readonly unit: "count";
|
|
670
|
+
};
|
|
671
|
+
readonly number_of_times_fallen: {
|
|
672
|
+
readonly id: 504;
|
|
673
|
+
readonly unit: "count";
|
|
674
|
+
};
|
|
675
|
+
readonly number_of_alcoholic_beverages: {
|
|
676
|
+
readonly id: 505;
|
|
677
|
+
readonly unit: "count";
|
|
678
|
+
};
|
|
679
|
+
readonly nike_fuel: {
|
|
680
|
+
readonly id: 506;
|
|
681
|
+
readonly unit: "count";
|
|
682
|
+
};
|
|
683
|
+
readonly hydration: {
|
|
684
|
+
readonly id: 507;
|
|
685
|
+
readonly unit: "mL";
|
|
686
|
+
};
|
|
687
|
+
};
|
|
688
|
+
export type SeriesType = keyof typeof SERIES_TYPES;
|
|
689
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,MAAM,YAAY,GACpB,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,OAAO,GACP,QAAQ,GACR,OAAO,GACP,SAAS,GACT,QAAQ,CAAC;AAEb,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;AAEvF,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC;AAEhD,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEvF,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;AAM3F,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAC9D;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC5B,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACnC,2DAA2D;IAC3D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,wDAAwD;IACxD,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC1B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,MAAM,CAAC,EAAE,kBAAkB,GAAG,KAAK,CAAC;IACpC;;;OAGG;IACH,GAAG,CAAC,EAAE,eAAe,GAAG,KAAK,CAAC;CAC/B;AAED,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE7D,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,YAAa,SAAQ,iBAAiB;IACrD,QAAQ,EAAE,aAAa,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,KAAK,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,gBAAiB,SAAQ,iBAAiB;IACzD,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,eAAe,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,cAAc,CAAC,EAAE,iBAAiB,CAAC;IACnC,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAChC,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B;;;OAGG;IACH,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC;CACnC;AAED,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC;AAM5C,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,YAAY,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,gBAAgB,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAMD,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;CAC5B;AAED,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,UAAU,CAAC;AAMpD,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;CAClB;AAMD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;CAClB;AAMD,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IAEjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB;AAMD,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,QAAQ,GAAG,YAAY,GAAG,WAAW,CAAC;CACtD;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAMD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkHf,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,YAAY,CAAC"}
|