@agg-build/sdk 4.26.0 → 4.27.2

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 (42) hide show
  1. package/dist/agg-websocket-CK2iXfti.mjs +1427 -0
  2. package/dist/agg-websocket-CK2iXfti.mjs.map +1 -0
  3. package/dist/agg-websocket-DJbIfxKb.js +1478 -0
  4. package/dist/agg-websocket-DoUDmsvW.d.mts +6009 -0
  5. package/dist/agg-websocket-DoUDmsvW.d.mts.map +1 -0
  6. package/dist/agg-websocket-DoUDmsvW.d.ts +6009 -0
  7. package/dist/agg-websocket-DoUDmsvW.d.ts.map +1 -0
  8. package/dist/browser.d.mts +67 -66
  9. package/dist/browser.d.mts.map +1 -0
  10. package/dist/browser.d.ts +67 -66
  11. package/dist/browser.d.ts.map +1 -0
  12. package/dist/browser.js +720 -2173
  13. package/dist/browser.mjs +423 -799
  14. package/dist/browser.mjs.map +1 -0
  15. package/dist/candle-builder-BNewIe9K.mjs +148 -0
  16. package/dist/candle-builder-BNewIe9K.mjs.map +1 -0
  17. package/dist/candle-builder-BULYdxB4.js +151 -0
  18. package/dist/index.d.mts +2 -1349
  19. package/dist/index.d.ts +2 -1349
  20. package/dist/index.js +2794 -4808
  21. package/dist/index.mjs +2788 -2512
  22. package/dist/index.mjs.map +1 -0
  23. package/dist/market-data.d.mts +6 -6
  24. package/dist/market-data.d.mts.map +1 -0
  25. package/dist/market-data.d.ts +6 -6
  26. package/dist/market-data.d.ts.map +1 -0
  27. package/dist/market-data.js +314 -1900
  28. package/dist/market-data.mjs +314 -350
  29. package/dist/market-data.mjs.map +1 -0
  30. package/dist/server.d.mts +235 -234
  31. package/dist/server.d.mts.map +1 -0
  32. package/dist/server.d.ts +235 -234
  33. package/dist/server.d.ts.map +1 -0
  34. package/dist/server.js +168 -296
  35. package/dist/server.mjs +163 -234
  36. package/dist/server.mjs.map +1 -0
  37. package/package.json +4 -4
  38. package/dist/agg-websocket-x_U4-orL.d.mts +0 -4598
  39. package/dist/agg-websocket-x_U4-orL.d.ts +0 -4598
  40. package/dist/chunk-CPMSVNBO.mjs +0 -2199
  41. package/dist/chunk-VD5UTAVD.mjs +0 -158
  42. package/dist/chunk-WNQUEZJF.mjs +0 -58
package/dist/server.d.ts CHANGED
@@ -1,263 +1,264 @@
1
- interface ExternalIdAssertion {
2
- externalId: string;
3
- timestamp: number;
4
- hmac: string;
1
+ //#region src/server.d.ts
2
+ export interface ExternalIdAssertion {
3
+ externalId: string;
4
+ timestamp: number;
5
+ hmac: string;
5
6
  }
6
- declare function signExternalId(appSecret: string, externalId: string): ExternalIdAssertion;
7
- declare class WebhookVerificationError extends Error {
8
- constructor(message: string);
7
+ export declare function signExternalId(appSecret: string, externalId: string): ExternalIdAssertion;
8
+ export declare class WebhookVerificationError extends Error {
9
+ constructor(message: string);
9
10
  }
10
- interface VerifyWebhookOptions {
11
- toleranceSeconds?: number;
11
+ export interface VerifyWebhookOptions {
12
+ toleranceSeconds?: number;
12
13
  }
13
- declare function verifyWebhook(payload: string, headers: Record<string, string | string[] | undefined>, secret: string, options?: VerifyWebhookOptions): void;
14
- declare function parseWebhookEvent(payload: string, headers: Record<string, string | string[] | undefined>, secret: string, options?: VerifyWebhookOptions): WebhookEvent;
14
+ export declare function verifyWebhook(payload: string, headers: Record<string, string | string[] | undefined>, secret: string, options?: VerifyWebhookOptions): void;
15
+ export declare function parseWebhookEvent(payload: string, headers: Record<string, string | string[] | undefined>, secret: string, options?: VerifyWebhookOptions): WebhookEvent;
15
16
  /**
16
17
  * Async, edge-runtime-friendly variant of {@link verifyWebhook}. Same
17
18
  * Svix v1 signing scheme. Use this in Cloudflare Workers / Vercel Edge /
18
19
  * Deno / Bun. The sync variant remains available for Node.js consumers.
19
20
  */
20
- declare function verifyWebhookAsync(payload: string, headers: Record<string, string | string[] | undefined>, secret: string, options?: VerifyWebhookOptions): Promise<void>;
21
+ export declare function verifyWebhookAsync(payload: string, headers: Record<string, string | string[] | undefined>, secret: string, options?: VerifyWebhookOptions): Promise<void>;
21
22
  /**
22
23
  * Async, edge-runtime-friendly variant of {@link parseWebhookEvent}.
23
24
  */
24
- declare function parseWebhookEventAsync(payload: string, headers: Record<string, string | string[] | undefined>, secret: string, options?: VerifyWebhookOptions): Promise<WebhookEvent>;
25
+ export declare function parseWebhookEventAsync(payload: string, headers: Record<string, string | string[] | undefined>, secret: string, options?: VerifyWebhookOptions): Promise<WebhookEvent>;
25
26
  interface WebhookEventBase {
26
- id: string;
27
- createdAt: string;
27
+ id: string;
28
+ createdAt: string;
28
29
  }
29
- interface AccountsCreatedEvent extends WebhookEventBase {
30
- type: "accounts.created";
31
- data: {
32
- userId: string;
33
- appId: string;
34
- createdAt: string;
35
- email: string | null;
36
- };
30
+ export interface AccountsCreatedEvent extends WebhookEventBase {
31
+ type: "accounts.created";
32
+ data: {
33
+ userId: string;
34
+ appId: string;
35
+ createdAt: string;
36
+ email: string | null;
37
+ };
37
38
  }
38
- interface AccountsLinkedEvent extends WebhookEventBase {
39
- type: "accounts.linked";
40
- data: {
41
- userId: string;
42
- externalId: string;
43
- linkedAt: string;
44
- };
39
+ export interface AccountsLinkedEvent extends WebhookEventBase {
40
+ type: "accounts.linked";
41
+ data: {
42
+ userId: string;
43
+ externalId: string;
44
+ linkedAt: string;
45
+ };
45
46
  }
46
- interface WalletsReadyEvent extends WebhookEventBase {
47
- type: "wallets.ready";
48
- data: {
49
- userId: string;
50
- evmAddress: string;
51
- svmAddress: string;
52
- createdAt: string;
53
- };
47
+ export interface WalletsReadyEvent extends WebhookEventBase {
48
+ type: "wallets.ready";
49
+ data: {
50
+ userId: string;
51
+ evmAddress: string;
52
+ svmAddress: string;
53
+ createdAt: string;
54
+ };
54
55
  }
55
- interface TradesPlacedEvent extends WebhookEventBase {
56
- type: "trades.placed";
57
- data: {
58
- orderId: string;
59
- userId: string;
60
- side: string;
61
- timestamp: string;
62
- /** Your trade id from `POST /execution/orders`, or `null` if the trade did not carry one. */
63
- externalId: string | null;
64
- /**
65
- * @deprecated Never emitted by the server in 1.x — the SDK type lied
66
- * here for several releases. Reads always return `undefined`. The field
67
- * is retained as `undefined`-typed for one minor release so existing
68
- * partner code that destructures it keeps compiling; remove in 2.0.
69
- */
70
- venue?: undefined;
71
- /** @deprecated See `venue`. */
72
- venueMarketId?: undefined;
73
- };
56
+ export interface TradesPlacedEvent extends WebhookEventBase {
57
+ type: "trades.placed";
58
+ data: {
59
+ orderId: string;
60
+ userId: string;
61
+ side: string;
62
+ timestamp: string;
63
+ /** Your trade id from `POST /execution/orders`, or `null` if the trade did not carry one. */
64
+ externalId: string | null;
65
+ /**
66
+ * @deprecated Never emitted by the server in 1.x — the SDK type lied
67
+ * here for several releases. Reads always return `undefined`. The field
68
+ * is retained as `undefined`-typed for one minor release so existing
69
+ * partner code that destructures it keeps compiling; remove in 2.0.
70
+ */
71
+ venue?: undefined;
72
+ /** @deprecated See `venue`. */
73
+ venueMarketId?: undefined;
74
+ };
74
75
  }
75
- interface TradesFilledEvent extends WebhookEventBase {
76
- type: "trades.filled";
77
- data: {
78
- orderId: string;
79
- userId: string;
80
- status: string;
81
- timestamp: string;
82
- /** Your trade id from `POST /execution/orders`, or `null` if the trade did not carry one. */
83
- externalId: string | null;
84
- /**
85
- * Post-execution accuracy data. All `*Raw` values are decimal strings in
86
- * 6-decimal atomic units. `*PriceRaw` are decimal strings (e.g. "0.5").
87
- * `partialFillReason` is set only on `status === "partial_fill"`.
88
- */
89
- filledAmountRaw?: string;
90
- quotedSharesRaw?: string;
91
- actualSharesRaw?: string;
92
- quotedToWinRaw?: string;
93
- actualToWinRaw?: string;
94
- quotedPriceRaw?: string;
95
- executionPriceRaw?: string;
96
- partialFillReason?: string;
97
- /** @deprecated See `executionPriceRaw` — never emitted; remove in 2.0. */
98
- fillPrice?: undefined;
99
- /** @deprecated See `actualSharesRaw` / `filledAmountRaw` — never emitted; remove in 2.0. */
100
- fillSize?: undefined;
101
- };
76
+ export interface TradesFilledEvent extends WebhookEventBase {
77
+ type: "trades.filled";
78
+ data: {
79
+ orderId: string;
80
+ userId: string;
81
+ status: string;
82
+ timestamp: string;
83
+ /** Your trade id from `POST /execution/orders`, or `null` if the trade did not carry one. */
84
+ externalId: string | null;
85
+ /**
86
+ * Post-execution accuracy data. All `*Raw` values are decimal strings in
87
+ * 6-decimal atomic units. `*PriceRaw` are decimal strings (e.g. "0.5").
88
+ * `partialFillReason` is set only on `status === "partial_fill"`.
89
+ */
90
+ filledAmountRaw?: string;
91
+ quotedSharesRaw?: string;
92
+ actualSharesRaw?: string;
93
+ quotedToWinRaw?: string;
94
+ actualToWinRaw?: string;
95
+ quotedPriceRaw?: string;
96
+ executionPriceRaw?: string;
97
+ partialFillReason?: string;
98
+ /** @deprecated See `executionPriceRaw` — never emitted; remove in 2.0. */
99
+ fillPrice?: undefined;
100
+ /** @deprecated See `actualSharesRaw` / `filledAmountRaw` — never emitted; remove in 2.0. */
101
+ fillSize?: undefined;
102
+ };
102
103
  }
103
104
  /**
104
105
  * A self-custody trade's app fee reached its final state. Sent once per trade,
105
106
  * a few seconds after `trades.filled` (the fee needs the user's second
106
107
  * signature and an on-chain confirmation).
107
108
  */
108
- interface TradesFeeReconciledEvent extends WebhookEventBase {
109
- type: "trades.fee_reconciled";
110
- data: {
111
- dagRunId: string;
112
- quoteId: string;
113
- userId: string;
114
- /** Every order in the trade. The fee is charged once across all of them. */
115
- orders: Array<{
116
- orderId: string;
117
- externalId: string | null;
118
- }>;
119
- /**
120
- * `confirmed`, `under_collected`, `failed`, `skipped_zero`, … or `none`
121
- * when no fee applied to the trade.
122
- */
123
- status: string;
124
- /** Token-native atomic units. `"0"` when `status` is `none`. */
125
- feeDueRaw: string;
126
- feeCollectedRaw: string;
127
- appShareRaw: string;
128
- platformShareRaw: string;
129
- chainId: string | null;
130
- tokenSymbol: string | null;
131
- tokenAddress: string | null;
132
- appTxHash: string | null;
133
- platformTxHash: string | null;
134
- timestamp: string;
135
- };
109
+ export interface TradesFeeReconciledEvent extends WebhookEventBase {
110
+ type: "trades.fee_reconciled";
111
+ data: {
112
+ dagRunId: string;
113
+ quoteId: string;
114
+ userId: string;
115
+ /** Every order in the trade. The fee is charged once across all of them. */
116
+ orders: Array<{
117
+ orderId: string;
118
+ externalId: string | null;
119
+ }>;
120
+ /**
121
+ * `confirmed`, `under_collected`, `failed`, `skipped_zero`, … or `none`
122
+ * when no fee applied to the trade.
123
+ */
124
+ status: string;
125
+ /** Token-native atomic units. `"0"` when `status` is `none`. */
126
+ feeDueRaw: string;
127
+ feeCollectedRaw: string;
128
+ appShareRaw: string;
129
+ platformShareRaw: string;
130
+ chainId: string | null;
131
+ tokenSymbol: string | null;
132
+ tokenAddress: string | null;
133
+ appTxHash: string | null;
134
+ platformTxHash: string | null;
135
+ timestamp: string;
136
+ };
136
137
  }
137
- interface MarketsResolvedEvent extends WebhookEventBase {
138
- type: "markets.resolved";
139
- data: {
140
- venueMarketId: string;
141
- externalIdentifier: string;
142
- status: string;
143
- outcomes: Array<{
144
- label: string;
145
- winner?: boolean;
146
- externalIdentifier?: string;
147
- }>;
148
- affectedUsersCount: number;
149
- /**
150
- * Path on the AGG API where this resolution's affected users can be
151
- * paginated. Combine with the configured base URL — e.g.
152
- * `https://api.agg.market${detailsPath}`.
153
- */
154
- detailsPath: string;
155
- /**
156
- * @deprecated Singular `outcome` was never emitted; use `outcomes` array.
157
- * Remove in 2.0.
158
- */
159
- outcome?: undefined;
160
- };
138
+ export interface MarketsResolvedEvent extends WebhookEventBase {
139
+ type: "markets.resolved";
140
+ data: {
141
+ venueMarketId: string;
142
+ externalIdentifier: string;
143
+ status: string;
144
+ outcomes: Array<{
145
+ label: string;
146
+ winner?: boolean;
147
+ externalIdentifier?: string;
148
+ }>;
149
+ affectedUsersCount: number;
150
+ /**
151
+ * Path on the AGG API where this resolution's affected users can be
152
+ * paginated. Combine with the configured base URL — e.g.
153
+ * `https://api.agg.market${detailsPath}`.
154
+ */
155
+ detailsPath: string;
156
+ /**
157
+ * @deprecated Singular `outcome` was never emitted; use `outcomes` array.
158
+ * Remove in 2.0.
159
+ */
160
+ outcome?: undefined;
161
+ };
161
162
  }
162
- interface DepositsConfirmedEvent extends WebhookEventBase {
163
- type: "deposits.confirmed";
164
- data: {
165
- userId: string;
166
- chainId: number;
167
- tokenSymbol: string;
168
- tokenAddress: string;
169
- /** Token-native atomic units (6 decimals for USDC). */
170
- amountRaw: string;
171
- txHash: string;
172
- fromAddress: string;
173
- timestamp: string;
174
- };
163
+ export interface DepositsConfirmedEvent extends WebhookEventBase {
164
+ type: "deposits.confirmed";
165
+ data: {
166
+ userId: string;
167
+ chainId: number;
168
+ tokenSymbol: string;
169
+ tokenAddress: string;
170
+ /** Token-native atomic units (6 decimals for USDC). */
171
+ amountRaw: string;
172
+ txHash: string;
173
+ fromAddress: string;
174
+ timestamp: string;
175
+ };
175
176
  }
176
- interface UnknownWebhookEvent extends WebhookEventBase {
177
- type: string;
178
- data: Record<string, unknown>;
177
+ export interface UnknownWebhookEvent extends WebhookEventBase {
178
+ type: string;
179
+ data: Record<string, unknown>;
179
180
  }
180
- type KnownWebhookEvent = AccountsCreatedEvent | AccountsLinkedEvent | WalletsReadyEvent | TradesPlacedEvent | TradesFilledEvent | TradesFeeReconciledEvent | MarketsResolvedEvent | DepositsConfirmedEvent;
181
- type WebhookEvent = KnownWebhookEvent | UnknownWebhookEvent;
182
- interface AggAdminClientOptions {
183
- baseUrl: string;
184
- apiKey: string;
181
+ export type KnownWebhookEvent = AccountsCreatedEvent | AccountsLinkedEvent | WalletsReadyEvent | TradesPlacedEvent | TradesFilledEvent | TradesFeeReconciledEvent | MarketsResolvedEvent | DepositsConfirmedEvent;
182
+ export type WebhookEvent = KnownWebhookEvent | UnknownWebhookEvent;
183
+ export interface AggAdminClientOptions {
184
+ baseUrl: string;
185
+ apiKey: string;
185
186
  }
186
- declare class AggAdminClient {
187
- private readonly baseUrl;
188
- private readonly apiKey;
189
- constructor(options: AggAdminClientOptions);
190
- request<T>(path: string, init?: RequestInit & {
191
- query?: Record<string, string | string[] | undefined>;
192
- }): Promise<T>;
193
- private rawFetch;
194
- private throwResponseError;
195
- listUsers(appId: string, query?: {
196
- limit?: number;
197
- cursor?: string;
198
- search?: string;
199
- }): Promise<{
200
- data: {
201
- id: string;
202
- username: string | null;
203
- externalId: string | null;
204
- suspended: boolean;
205
- createdAt: string;
206
- }[];
207
- nextCursor: string | null;
208
- hasMore: boolean;
209
- }>;
210
- getUser(appId: string, userId: string): Promise<{
211
- id: string;
212
- username: string | null;
213
- externalId: string | null;
214
- suspended: boolean;
215
- createdAt: string;
216
- updatedAt: string;
217
- _count: {
218
- orders: number;
219
- };
220
- }>;
221
- getAnalytics(appId: string): Promise<{
222
- totalUsers: number;
223
- totalOrders: number;
224
- ordersByStatus: Record<string, number>;
225
- ordersByVenue: Record<string, number>;
226
- usersLast30Days: number;
227
- usersLast7Days: number;
228
- ordersLast30Days: number;
229
- ordersLast7Days: number;
230
- }>;
231
- listOrders(appId: string, query?: {
232
- limit?: number;
233
- cursor?: string;
234
- venue?: string;
235
- status?: string;
236
- }): Promise<{
237
- data: unknown[];
238
- nextCursor: string | null;
239
- hasMore: boolean;
240
- }>;
241
- rotateWebhookSecret(appId: string, webhookId: string): Promise<{
242
- secret: string;
243
- }>;
244
- replayWebhookDeliveries(appId: string, webhookId: string): Promise<{
245
- success: boolean;
246
- }>;
247
- listMarketResolutionUsers(appId: string, venueMarketId: string, query?: {
248
- limit?: number;
249
- cursor?: string;
250
- includeEmails?: boolean;
251
- }): Promise<{
252
- venueMarketId: string;
253
- note: string;
254
- data: {
255
- userId: string;
256
- email?: string | null;
257
- }[];
258
- nextCursor: string | null;
259
- hasMore: boolean;
260
- }>;
187
+ export declare class AggAdminClient {
188
+ private readonly baseUrl;
189
+ private readonly apiKey;
190
+ constructor(options: AggAdminClientOptions);
191
+ request<T>(path: string, init?: RequestInit & {
192
+ query?: Record<string, string | string[] | undefined>;
193
+ }): Promise<T>;
194
+ private rawFetch;
195
+ private throwResponseError;
196
+ listUsers(appId: string, query?: {
197
+ limit?: number;
198
+ cursor?: string;
199
+ search?: string;
200
+ }): Promise<{
201
+ data: {
202
+ id: string;
203
+ username: string | null;
204
+ externalId: string | null;
205
+ suspended: boolean;
206
+ createdAt: string;
207
+ }[];
208
+ nextCursor: string | null;
209
+ hasMore: boolean;
210
+ }>;
211
+ getUser(appId: string, userId: string): Promise<{
212
+ id: string;
213
+ username: string | null;
214
+ externalId: string | null;
215
+ suspended: boolean;
216
+ createdAt: string;
217
+ updatedAt: string;
218
+ _count: {
219
+ orders: number;
220
+ };
221
+ }>;
222
+ getAnalytics(appId: string): Promise<{
223
+ totalUsers: number;
224
+ totalOrders: number;
225
+ ordersByStatus: Record<string, number>;
226
+ ordersByVenue: Record<string, number>;
227
+ usersLast30Days: number;
228
+ usersLast7Days: number;
229
+ ordersLast30Days: number;
230
+ ordersLast7Days: number;
231
+ }>;
232
+ listOrders(appId: string, query?: {
233
+ limit?: number;
234
+ cursor?: string;
235
+ venue?: string;
236
+ status?: string;
237
+ }): Promise<{
238
+ data: unknown[];
239
+ nextCursor: string | null;
240
+ hasMore: boolean;
241
+ }>;
242
+ rotateWebhookSecret(appId: string, webhookId: string): Promise<{
243
+ secret: string;
244
+ }>;
245
+ replayWebhookDeliveries(appId: string, webhookId: string): Promise<{
246
+ success: boolean;
247
+ }>;
248
+ listMarketResolutionUsers(appId: string, venueMarketId: string, query?: {
249
+ limit?: number;
250
+ cursor?: string;
251
+ includeEmails?: boolean;
252
+ }): Promise<{
253
+ venueMarketId: string;
254
+ note: string;
255
+ data: {
256
+ userId: string;
257
+ email?: string | null;
258
+ }[];
259
+ nextCursor: string | null;
260
+ hasMore: boolean;
261
+ }>;
261
262
  }
262
-
263
- export { type AccountsCreatedEvent, type AccountsLinkedEvent, AggAdminClient, type AggAdminClientOptions, type DepositsConfirmedEvent, type ExternalIdAssertion, type KnownWebhookEvent, type MarketsResolvedEvent, type TradesFeeReconciledEvent, type TradesFilledEvent, type TradesPlacedEvent, type UnknownWebhookEvent, type VerifyWebhookOptions, type WalletsReadyEvent, type WebhookEvent, WebhookVerificationError, parseWebhookEvent, parseWebhookEventAsync, signExternalId, verifyWebhook, verifyWebhookAsync };
263
+ //#endregion
264
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","names":[],"sources":["../src/server.ts"],"mappings":";iBAIiB;EACf;EACA;EACA;;wBAGc,eAAe,mBAAmB,qBAAqB;qBAyC1D,iCAAiC;EAChC,YAAA;;iBAMG;EACf;;wBAGc,cACd,iBACA,SAAS,+CACT,gBACA,UAAU;wBAmCI,kBACd,iBACA,SAAS,+CACT,gBACA,UAAU,uBACT;;;;;;wBAgBmB,mBACpB,iBACA,SAAS,+CACT,gBACA,UAAU,uBACT;;;;wBAyCmB,uBACpB,iBACA,SAAS,+CACT,gBACA,UAAU,uBACT,QAAQ;UAoBD;EACR;EACA;;iBAGe,6BAA6B;EAC5C;EACA;IAAQ;IAAgB;IAAe;IAAmB;;;iBAG3C,4BAA4B;EAC3C;EACA;IAAQ;IAAgB;IAAoB;;;iBAG7B,0BAA0B;EACzC;EACA;IACE;IACA;IACA;IACA;;;iBAIa,0BAA0B;EACzC;EACA;IACE;IACA;IACA;IACA;;IAEA;;;;;;;IAOA;;IAEA;;;iBAIa,0BAA0B;EACzC;EACA;IACE;IACA;IACA;IACA;;IAEA;;;;;;IAMA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;IAEA;;IAEA;;;;;;;;iBASa,iCAAiC;EAChD;EACA;IACE;IACA;IACA;;IAEA,QAAQ;MAAQ;MAAiB;;;;;;IAKjC;;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;;iBAIa,6BAA6B;EAC5C;EACA;IACE;IACA;IACA;IACA,UAAU;MAAQ;MAAe;MAAkB;;IACnD;;;;;;IAMA;;;;;IAKA;;;iBAIa,+BAA+B;EAC9C;EACA;IACE;IACA;IACA;IACA;;IAEA;IACA;IACA;IACA;;;iBAIa,4BAA4B;EAC3C;EACA,MAAM;;YAGI,oBACR,uBACA,sBACA,oBACA,oBACA,oBACA,2BACA,uBACA;YAEQ,eAAe,oBAAoB;iBAI9B;EACf;EACA;;qBAGW;mBACM;mBACA;EAEL,YAAA,SAAS;EAOR,QAAQ,GACnB,cACA,OAAO;IAAgB,QAAQ;MAC9B,QAAQ;UAQG;UA2BA;EAiBR,UAAU,eAAe;IAAU;IAAgB;IAAiB;MAAiB;IAEjF;MACJ;MACA;MACA;MACA;MACA;;IAEU;IACH;;EAUP,QAAQ,eAAe,iBAAc;IAEnC;IACM;IACE;IACD;IACA;IACA;IACH;MAAE;;;EAMR,aAAa,gBAAa;IAEhB;IACC;IACG,gBAAA;IACD,eAAA;IACE;IACD;IACE;IACD;;EAIf,WACJ,eACA;IAAU;IAAgB;IAAiB;IAAgB;MAAiB;IAGpE;IACM;IACH;;EAaP,oBAAoB,eAAe,oBAAiB;IAC1B;;EAK1B,wBAAwB,eAAe,oBAAiB;IAC7B;;EAO3B,0BACJ,eACA,uBACA;IAAU;IAAgB;IAAiB;MAAyB;IAGnD;IACT;IACA;MAAE;MAAgB;;IACZ;IACH"}