@nativesquare/soma 0.7.3 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/index.d.ts +83 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +131 -0
- package/dist/client/index.js.map +1 -1
- package/dist/component/_generated/component.d.ts +159 -0
- package/dist/component/_generated/component.d.ts.map +1 -1
- package/dist/component/garmin.d.ts +190 -6
- package/dist/component/garmin.d.ts.map +1 -1
- package/dist/component/garmin.js +805 -25
- package/dist/component/garmin.js.map +1 -1
- package/dist/component/private.d.ts +18 -0
- package/dist/component/private.d.ts.map +1 -1
- package/dist/component/private.js +18 -0
- package/dist/component/private.js.map +1 -1
- package/dist/component/public.d.ts +88 -42
- package/dist/component/public.d.ts.map +1 -1
- package/dist/component/public.js +12 -2
- package/dist/component/public.js.map +1 -1
- package/dist/component/schema.d.ts +87 -32
- package/dist/component/schema.d.ts.map +1 -1
- package/dist/component/schema.js +2 -1
- package/dist/component/schema.js.map +1 -1
- package/dist/component/validators/connection.d.ts +1 -0
- package/dist/component/validators/connection.d.ts.map +1 -1
- package/dist/component/validators/connection.js +2 -0
- package/dist/component/validators/connection.js.map +1 -1
- package/dist/component/validators/daily.d.ts +40 -5
- package/dist/component/validators/daily.d.ts.map +1 -1
- package/dist/component/validators/daily.js +10 -1
- package/dist/component/validators/daily.js.map +1 -1
- package/dist/component/validators/enums.d.ts +1 -1
- package/dist/component/validators/plannedWorkout.d.ts +5 -1
- package/dist/component/validators/plannedWorkout.d.ts.map +1 -1
- package/dist/component/validators/plannedWorkout.js +4 -0
- package/dist/component/validators/plannedWorkout.js.map +1 -1
- package/dist/component/validators/sleep.d.ts +8 -8
- package/dist/garmin/activity.d.ts +7 -16
- package/dist/garmin/activity.d.ts.map +1 -1
- package/dist/garmin/activity.js +17 -23
- package/dist/garmin/activity.js.map +1 -1
- package/dist/garmin/bloodPressure.d.ts +28 -0
- package/dist/garmin/bloodPressure.d.ts.map +1 -0
- package/dist/garmin/bloodPressure.js +34 -0
- package/dist/garmin/bloodPressure.js.map +1 -0
- package/dist/garmin/body.js +1 -1
- package/dist/garmin/body.js.map +1 -1
- package/dist/garmin/client.d.ts +117 -17
- package/dist/garmin/client.d.ts.map +1 -1
- package/dist/garmin/client.js +337 -43
- package/dist/garmin/client.js.map +1 -1
- package/dist/garmin/daily.d.ts.map +1 -1
- package/dist/garmin/daily.js +3 -3
- package/dist/garmin/daily.js.map +1 -1
- package/dist/garmin/hrv.d.ts +30 -0
- package/dist/garmin/hrv.d.ts.map +1 -0
- package/dist/garmin/hrv.js +45 -0
- package/dist/garmin/hrv.js.map +1 -0
- package/dist/garmin/index.d.ts +16 -2
- package/dist/garmin/index.d.ts.map +1 -1
- package/dist/garmin/index.js +8 -1
- package/dist/garmin/index.js.map +1 -1
- package/dist/garmin/maps/activity-type.d.ts +1 -2
- package/dist/garmin/maps/activity-type.d.ts.map +1 -1
- package/dist/garmin/maps/activity-type.js +1 -0
- package/dist/garmin/maps/activity-type.js.map +1 -1
- package/dist/garmin/menstruation.d.ts +6 -4
- package/dist/garmin/menstruation.d.ts.map +1 -1
- package/dist/garmin/menstruation.js +12 -8
- package/dist/garmin/menstruation.js.map +1 -1
- package/dist/garmin/pulseOx.d.ts +24 -0
- package/dist/garmin/pulseOx.d.ts.map +1 -0
- package/dist/garmin/pulseOx.js +33 -0
- package/dist/garmin/pulseOx.js.map +1 -0
- package/dist/garmin/respiration.d.ts +29 -0
- package/dist/garmin/respiration.d.ts.map +1 -0
- package/dist/garmin/respiration.js +42 -0
- package/dist/garmin/respiration.js.map +1 -0
- package/dist/garmin/skinTemp.d.ts +27 -0
- package/dist/garmin/skinTemp.d.ts.map +1 -0
- package/dist/garmin/skinTemp.js +35 -0
- package/dist/garmin/skinTemp.js.map +1 -0
- package/dist/garmin/sleep.d.ts +4 -4
- package/dist/garmin/sleep.d.ts.map +1 -1
- package/dist/garmin/sleep.js +15 -9
- package/dist/garmin/sleep.js.map +1 -1
- package/dist/garmin/stressDetails.d.ts +30 -0
- package/dist/garmin/stressDetails.d.ts.map +1 -0
- package/dist/garmin/stressDetails.js +49 -0
- package/dist/garmin/stressDetails.js.map +1 -0
- package/dist/garmin/sync.d.ts +14 -0
- package/dist/garmin/sync.d.ts.map +1 -1
- package/dist/garmin/sync.js +287 -5
- package/dist/garmin/sync.js.map +1 -1
- package/dist/garmin/types.d.ts +77 -186
- package/dist/garmin/types.d.ts.map +1 -1
- package/dist/garmin/types.js +4 -2
- package/dist/garmin/types.js.map +1 -1
- package/dist/garmin/userMetrics.d.ts +23 -0
- package/dist/garmin/userMetrics.d.ts.map +1 -0
- package/dist/garmin/userMetrics.js +41 -0
- package/dist/garmin/userMetrics.js.map +1 -0
- package/dist/validators.d.ts +107 -28
- package/dist/validators.d.ts.map +1 -1
- package/package.json +133 -124
- package/src/client/index.ts +199 -0
- package/src/component/_generated/component.ts +161 -2
- package/src/component/garmin.ts +898 -26
- package/src/component/private.ts +21 -0
- package/src/component/public.ts +11 -2
- package/src/component/schema.ts +2 -1
- package/src/component/validators/connection.ts +2 -0
- package/src/component/validators/daily.ts +15 -0
- package/src/component/validators/plannedWorkout.ts +4 -0
- package/src/garmin/activity.test.ts +13 -21
- package/src/garmin/activity.ts +38 -45
- package/src/garmin/bloodPressure.ts +41 -0
- package/src/garmin/body.ts +1 -1
- package/src/garmin/client.ts +550 -71
- package/src/garmin/daily.ts +8 -4
- package/src/garmin/hrv.ts +57 -0
- package/src/garmin/index.ts +77 -7
- package/src/garmin/maps/activity-type.ts +2 -2
- package/src/garmin/menstruation.ts +14 -12
- package/src/garmin/pulseOx.ts +45 -0
- package/src/garmin/respiration.ts +55 -0
- package/src/garmin/skinTemp.ts +42 -0
- package/src/garmin/sleep.test.ts +5 -6
- package/src/garmin/sleep.ts +22 -16
- package/src/garmin/spec/wellness-api.json +1 -0
- package/src/garmin/stressDetails.ts +71 -0
- package/src/garmin/sync.ts +348 -5
- package/src/garmin/types.ts +88 -300
- package/src/garmin/userMetrics.ts +50 -0
- package/src/garmin/wellness-api.d.ts +5637 -0
package/dist/garmin/client.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { GarminActivity,
|
|
1
|
+
import type { GarminActivity, GarminActivityDetail, GarminDailyExtended, GarminSleepExtended, GarminBodyComposition, GarminMenstrualCycle, GarminUserMetrics, GarminStressDetail, GarminSkinTemperature, GarminRespiration, GarminPulseOx, GarminMoveIQEvent, GarminHRVSummary, GarminHealthSnapshot, GarminEpoch, GarminBloodPressure, GarminSolar, GarminWorkout, GarminWorkoutSchedule } from "./types.js";
|
|
2
2
|
export interface GarminClientOptions {
|
|
3
3
|
/** The user's OAuth 2.0 access token. */
|
|
4
4
|
accessToken: string;
|
|
@@ -9,7 +9,10 @@ export interface GarminClientOptions {
|
|
|
9
9
|
baseUrl?: string;
|
|
10
10
|
}
|
|
11
11
|
/**
|
|
12
|
-
* A
|
|
12
|
+
* A client for the Garmin Health API.
|
|
13
|
+
*
|
|
14
|
+
* Wellness API endpoints use openapi-fetch for type safety. Training API
|
|
15
|
+
* endpoints use manual fetch since they are not part of the Wellness API spec.
|
|
13
16
|
*
|
|
14
17
|
* All requests are authenticated with a Bearer token. Time-range parameters
|
|
15
18
|
* use Unix epoch seconds for `uploadStartTimeInSeconds` and
|
|
@@ -30,25 +33,52 @@ export interface GarminClientOptions {
|
|
|
30
33
|
export declare class GarminClient {
|
|
31
34
|
private readonly accessToken;
|
|
32
35
|
private readonly baseUrl;
|
|
36
|
+
private readonly wellness;
|
|
33
37
|
constructor(opts: GarminClientOptions);
|
|
38
|
+
/**
|
|
39
|
+
* Resolve the Garmin user ID for the authenticated user.
|
|
40
|
+
*
|
|
41
|
+
* Garmin API: `GET /wellness-api/rest/user/id`
|
|
42
|
+
*/
|
|
43
|
+
getUserId(): Promise<string | null>;
|
|
44
|
+
/**
|
|
45
|
+
* Check which permissions the user has granted.
|
|
46
|
+
*
|
|
47
|
+
* Garmin API: `GET /wellness-api/rest/user/permissions`
|
|
48
|
+
*/
|
|
49
|
+
getUserPermissions(): Promise<string[]>;
|
|
34
50
|
/**
|
|
35
51
|
* Get daily wellness summaries.
|
|
36
52
|
*
|
|
37
53
|
* Garmin API: `GET /wellness-api/rest/dailies`
|
|
38
54
|
*/
|
|
39
|
-
getDailies(params: TimeRangeParams): Promise<
|
|
55
|
+
getDailies(params: TimeRangeParams): Promise<GarminDailyExtended[]>;
|
|
40
56
|
/**
|
|
41
57
|
* Get activity summaries.
|
|
42
58
|
*
|
|
43
59
|
* Garmin API: `GET /wellness-api/rest/activities`
|
|
44
60
|
*/
|
|
45
61
|
getActivities(params: TimeRangeParams): Promise<GarminActivity[]>;
|
|
62
|
+
/**
|
|
63
|
+
* Get detailed activity summaries including GPS, heart rate, and sensor data.
|
|
64
|
+
*
|
|
65
|
+
* Garmin API: `GET /wellness-api/rest/activityDetails`
|
|
66
|
+
*/
|
|
67
|
+
getActivityDetails(params: TimeRangeParams): Promise<GarminActivityDetail[]>;
|
|
68
|
+
/**
|
|
69
|
+
* Download a raw activity file (FIT, TCX, or GPX).
|
|
70
|
+
*
|
|
71
|
+
* Garmin API: `GET /wellness-api/rest/activityFile`
|
|
72
|
+
*
|
|
73
|
+
* @returns The raw file as an ArrayBuffer.
|
|
74
|
+
*/
|
|
75
|
+
getActivityFile(id: string): Promise<ArrayBuffer>;
|
|
46
76
|
/**
|
|
47
77
|
* Get sleep summaries.
|
|
48
78
|
*
|
|
49
79
|
* Garmin API: `GET /wellness-api/rest/sleeps`
|
|
50
80
|
*/
|
|
51
|
-
getSleeps(params: TimeRangeParams): Promise<
|
|
81
|
+
getSleeps(params: TimeRangeParams): Promise<GarminSleepExtended[]>;
|
|
52
82
|
/**
|
|
53
83
|
* Get body composition summaries.
|
|
54
84
|
*
|
|
@@ -56,27 +86,104 @@ export declare class GarminClient {
|
|
|
56
86
|
*/
|
|
57
87
|
getBodyCompositions(params: TimeRangeParams): Promise<GarminBodyComposition[]>;
|
|
58
88
|
/**
|
|
59
|
-
* Get menstrual cycle data.
|
|
89
|
+
* Get menstrual cycle tracking data.
|
|
90
|
+
*
|
|
91
|
+
* Garmin API: `GET /wellness-api/rest/mct`
|
|
92
|
+
*/
|
|
93
|
+
getMenstrualCycleData(params: TimeRangeParams): Promise<GarminMenstrualCycle[]>;
|
|
94
|
+
/**
|
|
95
|
+
* Get user metrics (VO2 max, fitness age, etc.).
|
|
96
|
+
*
|
|
97
|
+
* Garmin API: `GET /wellness-api/rest/userMetrics`
|
|
98
|
+
*/
|
|
99
|
+
getUserMetrics(params: TimeRangeParams): Promise<GarminUserMetrics[]>;
|
|
100
|
+
/**
|
|
101
|
+
* Get stress detail summaries.
|
|
102
|
+
*
|
|
103
|
+
* Garmin API: `GET /wellness-api/rest/stressDetails`
|
|
104
|
+
*/
|
|
105
|
+
getStressDetails(params: TimeRangeParams): Promise<GarminStressDetail[]>;
|
|
106
|
+
/**
|
|
107
|
+
* Get skin temperature summaries.
|
|
108
|
+
*
|
|
109
|
+
* Garmin API: `GET /wellness-api/rest/skinTemp`
|
|
110
|
+
*/
|
|
111
|
+
getSkinTemperature(params: TimeRangeParams): Promise<GarminSkinTemperature[]>;
|
|
112
|
+
/**
|
|
113
|
+
* Get respiration summaries.
|
|
114
|
+
*
|
|
115
|
+
* Garmin API: `GET /wellness-api/rest/respiration`
|
|
116
|
+
*/
|
|
117
|
+
getRespiration(params: TimeRangeParams): Promise<GarminRespiration[]>;
|
|
118
|
+
/**
|
|
119
|
+
* Get pulse oximetry (SpO2) summaries.
|
|
120
|
+
*
|
|
121
|
+
* Garmin API: `GET /wellness-api/rest/pulseOx`
|
|
122
|
+
*/
|
|
123
|
+
getPulseOx(params: TimeRangeParams): Promise<GarminPulseOx[]>;
|
|
124
|
+
/**
|
|
125
|
+
* Get Move IQ auto-detected activity events.
|
|
60
126
|
*
|
|
61
|
-
* Garmin API: `GET /wellness-api/rest/
|
|
127
|
+
* Garmin API: `GET /wellness-api/rest/moveiq`
|
|
62
128
|
*/
|
|
63
|
-
|
|
129
|
+
getMoveIQ(params: TimeRangeParams): Promise<GarminMoveIQEvent[]>;
|
|
130
|
+
/**
|
|
131
|
+
* Get heart rate variability (HRV) summaries.
|
|
132
|
+
*
|
|
133
|
+
* Garmin API: `GET /wellness-api/rest/hrv`
|
|
134
|
+
*/
|
|
135
|
+
getHRV(params: TimeRangeParams): Promise<GarminHRVSummary[]>;
|
|
136
|
+
/**
|
|
137
|
+
* Get health snapshot summaries.
|
|
138
|
+
*
|
|
139
|
+
* Garmin API: `GET /wellness-api/rest/healthSnapshot`
|
|
140
|
+
*/
|
|
141
|
+
getHealthSnapshot(params: TimeRangeParams): Promise<GarminHealthSnapshot[]>;
|
|
142
|
+
/**
|
|
143
|
+
* Get epoch (15-minute interval) summaries.
|
|
144
|
+
*
|
|
145
|
+
* Garmin API: `GET /wellness-api/rest/epochs`
|
|
146
|
+
*/
|
|
147
|
+
getEpochs(params: TimeRangeParams): Promise<GarminEpoch[]>;
|
|
148
|
+
/**
|
|
149
|
+
* Get blood pressure summaries.
|
|
150
|
+
*
|
|
151
|
+
* Garmin API: `GET /wellness-api/rest/bloodPressures`
|
|
152
|
+
*/
|
|
153
|
+
getBloodPressures(params: TimeRangeParams): Promise<GarminBloodPressure[]>;
|
|
154
|
+
/**
|
|
155
|
+
* Get manually created or edited activities.
|
|
156
|
+
*
|
|
157
|
+
* Garmin API: `GET /wellness-api/rest/manuallyUpdatedActivities`
|
|
158
|
+
*/
|
|
159
|
+
getManuallyUpdatedActivities(params: TimeRangeParams): Promise<GarminActivity[]>;
|
|
160
|
+
/**
|
|
161
|
+
* Get solar intensity summaries.
|
|
162
|
+
*
|
|
163
|
+
* Garmin API: `GET /wellness-api/rest/solarIntensity`
|
|
164
|
+
*/
|
|
165
|
+
getSolarIntensity(params: TimeRangeParams): Promise<GarminSolar[]>;
|
|
64
166
|
/**
|
|
65
167
|
* Request historical data backfill from Garmin.
|
|
66
168
|
*
|
|
67
169
|
* Garmin processes backfill requests asynchronously and delivers data
|
|
68
170
|
* via the configured webhook endpoint. Maximum range: 90 days per request.
|
|
69
171
|
*
|
|
172
|
+
* Uses manual fetch because the spec defines individual backfill paths
|
|
173
|
+
* (e.g. `/rest/backfill/dailies`) but this method accepts a dynamic
|
|
174
|
+
* summaryType string.
|
|
175
|
+
*
|
|
70
176
|
* @param summaryType - The data type to backfill (e.g., "dailies", "activities", "sleeps", "bodyComps")
|
|
71
177
|
* @param params - Time range for the backfill
|
|
72
178
|
*/
|
|
73
179
|
requestBackfill(summaryType: string, params: TimeRangeParams): Promise<void>;
|
|
74
180
|
/**
|
|
75
|
-
*
|
|
181
|
+
* Delete the user's registration with Garmin.
|
|
76
182
|
*
|
|
77
|
-
*
|
|
183
|
+
* Must be called when the user disconnects or deletes their account
|
|
184
|
+
* to comply with Garmin's API requirements.
|
|
78
185
|
*/
|
|
79
|
-
|
|
186
|
+
deleteUserRegistration(): Promise<void>;
|
|
80
187
|
/**
|
|
81
188
|
* Create a workout in Garmin Connect.
|
|
82
189
|
*
|
|
@@ -120,13 +227,6 @@ export declare class GarminClient {
|
|
|
120
227
|
* Garmin API: `DELETE /training-api/schedule/{scheduleId}`
|
|
121
228
|
*/
|
|
122
229
|
deleteSchedule(scheduleId: number): Promise<void>;
|
|
123
|
-
/**
|
|
124
|
-
* Delete the user's registration with Garmin.
|
|
125
|
-
*
|
|
126
|
-
* Must be called when the user disconnects or deletes their account
|
|
127
|
-
* to comply with Garmin's API requirements.
|
|
128
|
-
*/
|
|
129
|
-
deleteUserRegistration(): Promise<void>;
|
|
130
230
|
private get;
|
|
131
231
|
private post;
|
|
132
232
|
private put;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/garmin/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/garmin/client.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAIpB,MAAM,WAAW,mBAAmB;IAClC,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAEd,IAAI,EAAE,mBAAmB;IAoBrC;;;;OAIG;IACG,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAczC;;;;OAIG;IACG,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAgB7C;;;;OAIG;IACG,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAiBzE;;;;OAIG;IACG,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAmBvE;;;;OAIG;IACG,kBAAkB,CACtB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAmBlC;;;;;;OAMG;IACG,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAuBvD;;;;OAIG;IACG,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAgBxE;;;;OAIG;IACG,mBAAmB,CACvB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAmBnC;;;;OAIG;IACG,qBAAqB,CACzB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAgBlC;;;;OAIG;IACG,cAAc,CAClB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAmB/B;;;;OAIG;IACG,gBAAgB,CACpB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAmBhC;;;;OAIG;IACG,kBAAkB,CACtB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAmBnC;;;;OAIG;IACG,cAAc,CAClB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAmB/B;;;;OAIG;IACG,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAmBnE;;;;OAIG;IACG,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAmBtE;;;;OAIG;IACG,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAgBlE;;;;OAIG;IACG,iBAAiB,CACrB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAmBlC;;;;OAIG;IACG,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAgBhE;;;;OAIG;IACG,iBAAiB,CACrB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAmBjC;;;;OAIG;IACG,4BAA4B,CAChC,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,cAAc,EAAE,CAAC;IAmB5B;;;;OAIG;IACG,iBAAiB,CACrB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,WAAW,EAAE,CAAC;IAmBzB;;;;;;;;;;;;OAYG;IACG,eAAe,CACnB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,IAAI,CAAC;IAyBhB;;;;;OAKG;IACG,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB7C;;;;;OAKG;IACG,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAInE;;;;OAIG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAM3D;;;;OAIG;IACG,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,aAAa,CAAC;IAOzB;;;;OAIG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD;;;;OAIG;IACG,cAAc,CAClB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,qBAAqB,CAAC;IAOjC;;;;OAIG;IACG,kBAAkB,CACtB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAOnC;;;;OAIG;IACG,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAMzC,GAAG;YA8BH,IAAI;YA+BJ,GAAG;YAwBH,GAAG;CAkBlB;AAID,MAAM,WAAW,eAAe;IAC9B,qDAAqD;IACrD,wBAAwB,EAAE,MAAM,CAAC;IACjC,mDAAmD;IACnD,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAeD,qBAAa,cAAe,SAAQ,KAAK;aAGrB,MAAM,EAAE,MAAM;aACd,IAAI,EAAE,MAAM;gBAF5B,OAAO,EAAE,MAAM,EACC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM;CAK/B"}
|