@gala-chain/launchpad-sdk 0.4.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.
Files changed (72) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/README.md +628 -0
  3. package/dist/LaunchpadSDK.d.ts +573 -0
  4. package/dist/LaunchpadSDK.d.ts.map +1 -0
  5. package/dist/api/CommentAPI.d.ts +119 -0
  6. package/dist/api/CommentAPI.d.ts.map +1 -0
  7. package/dist/api/LaunchpadAPI.d.ts +440 -0
  8. package/dist/api/LaunchpadAPI.d.ts.map +1 -0
  9. package/dist/api/TradeAPI.d.ts +164 -0
  10. package/dist/api/TradeAPI.d.ts.map +1 -0
  11. package/dist/api/Trading.d.ts +176 -0
  12. package/dist/api/Trading.d.ts.map +1 -0
  13. package/dist/api/UserAPI.d.ts +426 -0
  14. package/dist/api/UserAPI.d.ts.map +1 -0
  15. package/dist/api/WebSocketAPI.d.ts +156 -0
  16. package/dist/api/WebSocketAPI.d.ts.map +1 -0
  17. package/dist/api/dto/BondingCurveDTOs.d.ts +142 -0
  18. package/dist/api/dto/BondingCurveDTOs.d.ts.map +1 -0
  19. package/dist/api/services/BundleService.d.ts +105 -0
  20. package/dist/api/services/BundleService.d.ts.map +1 -0
  21. package/dist/api/services/SignatureService.d.ts +71 -0
  22. package/dist/api/services/SignatureService.d.ts.map +1 -0
  23. package/dist/api/services/TokenClassKeyService.d.ts +116 -0
  24. package/dist/api/services/TokenClassKeyService.d.ts.map +1 -0
  25. package/dist/api/services/WebSocketManager.d.ts +99 -0
  26. package/dist/api/services/WebSocketManager.d.ts.map +1 -0
  27. package/dist/api/services/WebSocketService.d.ts +66 -0
  28. package/dist/api/services/WebSocketService.d.ts.map +1 -0
  29. package/dist/auth/SignatureAuth.d.ts +92 -0
  30. package/dist/auth/SignatureAuth.d.ts.map +1 -0
  31. package/dist/auth/types.d.ts +41 -0
  32. package/dist/auth/types.d.ts.map +1 -0
  33. package/dist/helpers/sdk.d.ts +75 -0
  34. package/dist/helpers/sdk.d.ts.map +1 -0
  35. package/dist/helpers/wallet.d.ts +60 -0
  36. package/dist/helpers/wallet.d.ts.map +1 -0
  37. package/dist/index.cjs.js +1 -0
  38. package/dist/index.d.ts +49 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.esm.js +1 -0
  41. package/dist/index.js +1 -0
  42. package/dist/types/comment.dto.d.ts +160 -0
  43. package/dist/types/comment.dto.d.ts.map +1 -0
  44. package/dist/types/common.d.ts +108 -0
  45. package/dist/types/common.d.ts.map +1 -0
  46. package/dist/types/dto.d.ts +145 -0
  47. package/dist/types/dto.d.ts.map +1 -0
  48. package/dist/types/launchpad.dto.d.ts +517 -0
  49. package/dist/types/launchpad.dto.d.ts.map +1 -0
  50. package/dist/types/launchpad.validation.d.ts +40 -0
  51. package/dist/types/launchpad.validation.d.ts.map +1 -0
  52. package/dist/types/trade.dto.d.ts +446 -0
  53. package/dist/types/trade.dto.d.ts.map +1 -0
  54. package/dist/types/user.dto.d.ts +330 -0
  55. package/dist/types/user.dto.d.ts.map +1 -0
  56. package/dist/utils/VaultCache.d.ts +73 -0
  57. package/dist/utils/VaultCache.d.ts.map +1 -0
  58. package/dist/utils/adapters.d.ts +111 -0
  59. package/dist/utils/adapters.d.ts.map +1 -0
  60. package/dist/utils/agent-config.d.ts +206 -0
  61. package/dist/utils/agent-config.d.ts.map +1 -0
  62. package/dist/utils/http.d.ts +85 -0
  63. package/dist/utils/http.d.ts.map +1 -0
  64. package/dist/utils/multipart.d.ts +60 -0
  65. package/dist/utils/multipart.d.ts.map +1 -0
  66. package/dist/utils/precision-math.d.ts +37 -0
  67. package/dist/utils/precision-math.d.ts.map +1 -0
  68. package/dist/utils/validation.d.ts +131 -0
  69. package/dist/utils/validation.d.ts.map +1 -0
  70. package/dist/utils/wallet.d.ts +174 -0
  71. package/dist/utils/wallet.d.ts.map +1 -0
  72. package/package.json +151 -0
@@ -0,0 +1,517 @@
1
+ /**
2
+ * Data Transfer Objects (DTOs) for Launchpad API operations
3
+ *
4
+ * These types define the interface between the SDK and the backend.
5
+ * They handle type adaptation between clean SDK interfaces and backend quirks.
6
+ */
7
+ import { AddressFormat, PaginationParams } from './common';
8
+ /**
9
+ * Options for uploading an image to the launchpad
10
+ */
11
+ export interface ImageUploadOptions {
12
+ /** Image file - can be browser File object or Node.js Buffer */
13
+ file: File | Buffer;
14
+ /** Token name (lowercase, max 10 characters) */
15
+ tokenName: string;
16
+ }
17
+ /**
18
+ * Response from image upload endpoint
19
+ */
20
+ export interface ImageUploadResponse {
21
+ /** Success status */
22
+ success: boolean;
23
+ /** Upload result data */
24
+ data?: {
25
+ /** Uploaded image URL or identifier */
26
+ imageUrl?: string;
27
+ /** Image metadata */
28
+ [key: string]: any;
29
+ };
30
+ /** Error message if upload failed */
31
+ message?: string;
32
+ }
33
+ /**
34
+ * Social media URLs for a token pool
35
+ * At least one URL is required
36
+ */
37
+ export interface TokenUrls {
38
+ /** Website URL (optional) */
39
+ websiteUrl?: string;
40
+ /** Telegram channel URL (optional) */
41
+ telegramUrl?: string;
42
+ /** Twitter profile URL (optional) */
43
+ twitterUrl?: string;
44
+ }
45
+ /**
46
+ * Data for creating a new pool
47
+ */
48
+ export interface CreatePoolData {
49
+ /** Transaction ID */
50
+ txnId: string;
51
+ /** Image data (from upload response) */
52
+ image: any;
53
+ /** Token name (bad words filtered) */
54
+ tokenName: string;
55
+ /** Token symbol (bad words filtered) */
56
+ symbol: string;
57
+ /** Token description (bad words filtered) */
58
+ description: string;
59
+ /** Token amount */
60
+ amount: string;
61
+ /** Block number (optional - API may reject this field) */
62
+ blockNumber?: number;
63
+ /** Social media URLs (at least one required) */
64
+ urls: TokenUrls;
65
+ /** Initial buy amount - REMOVED: Backend rejects this parameter */
66
+ /** Vault address */
67
+ vaultAddress: string;
68
+ /** Creator address in backend format */
69
+ creatorAddress: AddressFormat;
70
+ }
71
+ /**
72
+ * Response from pool creation endpoint
73
+ */
74
+ export interface CreatePoolResponse {
75
+ /** Success status */
76
+ success: boolean;
77
+ /** Pool creation result */
78
+ data?: {
79
+ /** Created pool identifier */
80
+ poolId?: string;
81
+ /** Pool details */
82
+ [key: string]: any;
83
+ };
84
+ /** Error message if creation failed */
85
+ message?: string;
86
+ }
87
+ /**
88
+ * Pool fetch type filter
89
+ */
90
+ export type PoolFetchType = 'RECENT' | 'POPULAR';
91
+ /**
92
+ * Options for fetching pools
93
+ */
94
+ export interface FetchPoolOptions extends PaginationParams {
95
+ /** Pool type filter */
96
+ type?: PoolFetchType;
97
+ /** Specific token name to fetch */
98
+ tokenName?: string;
99
+ /** Search query */
100
+ search?: string;
101
+ }
102
+ /**
103
+ * Backend pool fetch options (adapted from SDK options)
104
+ */
105
+ export interface BackendFetchPoolOptions {
106
+ /** Pool type filter */
107
+ type?: PoolFetchType;
108
+ /** Specific token name to fetch */
109
+ tokenName?: string;
110
+ /** Search query */
111
+ search?: string;
112
+ /** Page number as string (backend expects string) */
113
+ page: string;
114
+ /** Items per page as string (backend expects string) */
115
+ limit: string;
116
+ }
117
+ /**
118
+ * Pool data structure from backend
119
+ */
120
+ export interface PoolData {
121
+ /** Pool identifier */
122
+ id: string;
123
+ /** Token name */
124
+ tokenName: string;
125
+ /** Token symbol */
126
+ symbol: string;
127
+ /** Token description */
128
+ description: string;
129
+ /** Token amount */
130
+ amount: string;
131
+ /** Creator address */
132
+ creatorAddress: string;
133
+ /** Vault address */
134
+ vaultAddress: string;
135
+ /** Creation timestamp */
136
+ createdAt: string;
137
+ /** Pool metadata */
138
+ [key: string]: any;
139
+ }
140
+ /**
141
+ * Response from pool fetch endpoint
142
+ */
143
+ export interface FetchPoolResponse {
144
+ /** Success status */
145
+ success: boolean;
146
+ /** Pool data array */
147
+ data?: PoolData[];
148
+ /** Pagination metadata */
149
+ pagination?: {
150
+ /** Current page */
151
+ page: number;
152
+ /** Items per page */
153
+ limit: number;
154
+ /** Total items */
155
+ total: number;
156
+ /** Total pages */
157
+ totalPages: number;
158
+ };
159
+ /** Error message if fetch failed */
160
+ message?: string;
161
+ }
162
+ /**
163
+ * Amount calculation type
164
+ */
165
+ export type AmountType = 'NATIVE' | 'MEME';
166
+ /**
167
+ * Amount calculation method
168
+ */
169
+ export type AmountMethod = 'IN' | 'OUT';
170
+ /**
171
+ * Options for amount calculation
172
+ */
173
+ export interface GetAmountOptions {
174
+ /** Calculation type */
175
+ type: AmountType;
176
+ /** Calculation method */
177
+ method: AmountMethod;
178
+ /** Vault address */
179
+ vaultAddress: string;
180
+ /** Amount to calculate (decimal number as string) */
181
+ amount: string;
182
+ }
183
+ /**
184
+ * Response from amount calculation endpoint
185
+ */
186
+ export interface GetAmountResponse {
187
+ /** Success status */
188
+ success: boolean;
189
+ /** Status code */
190
+ status: number;
191
+ /** Error flag */
192
+ error: boolean;
193
+ /** Success message */
194
+ message: string;
195
+ /** Calculation result */
196
+ data?: {
197
+ /** Calculated amount */
198
+ calculatedQuantity: string;
199
+ /** Extra fees */
200
+ extraFees: {
201
+ /** Reverse bonding curve fee */
202
+ reverseBondingCurve: string;
203
+ /** Transaction fees */
204
+ transactionFees: string;
205
+ };
206
+ };
207
+ }
208
+ /**
209
+ * Options for checking pool existence
210
+ * At least one of tokenName or symbol is required
211
+ */
212
+ export interface CheckPoolOptions {
213
+ /** Token name to check (optional, but one of tokenName/symbol required) */
214
+ tokenName?: string;
215
+ /** Token symbol to check (optional, but one of tokenName/symbol required) */
216
+ symbol?: string;
217
+ }
218
+ /**
219
+ * Response from pool check endpoint
220
+ */
221
+ export interface CheckPoolResponse {
222
+ /** Success status */
223
+ success: boolean;
224
+ /** Check result */
225
+ data?: {
226
+ /** Whether pool exists */
227
+ exists?: boolean;
228
+ /** Pool details if exists */
229
+ pool?: PoolData;
230
+ /** Check metadata */
231
+ [key: string]: any;
232
+ };
233
+ /** Error message if check failed */
234
+ message?: string;
235
+ }
236
+ /**
237
+ * Token holder information
238
+ */
239
+ export interface TokenHolder {
240
+ /** Wallet address in backend format (eth|40hex) */
241
+ address: string;
242
+ /** Token balance as decimal string */
243
+ balance: string;
244
+ /** Percentage of total supply held */
245
+ percentage: number;
246
+ }
247
+ /**
248
+ * Response from token distribution endpoint
249
+ */
250
+ export interface GetTokenDistributionResponse {
251
+ /** Success status */
252
+ success: boolean;
253
+ /** Token distribution data */
254
+ data?: {
255
+ /** Array of top token holders */
256
+ holders?: TokenHolder[];
257
+ /** Total supply of the token */
258
+ totalSupply?: string;
259
+ /** Number of unique holders */
260
+ totalHolders?: number;
261
+ /** Distribution metadata */
262
+ [key: string]: any;
263
+ };
264
+ /** Error message if fetch failed */
265
+ message?: string;
266
+ }
267
+ /**
268
+ * Options for fetching graph data
269
+ */
270
+ export interface GetGraphOptions {
271
+ /** Start timestamp (min 173000000) */
272
+ from: number;
273
+ /** End timestamp (min 173000000) */
274
+ to: number;
275
+ /** Data resolution (min 1) */
276
+ resolution: number;
277
+ /** Token name */
278
+ tokenName: string;
279
+ }
280
+ /**
281
+ * Graph data point
282
+ */
283
+ export interface GraphDataPoint {
284
+ /** Timestamp */
285
+ timestamp: number;
286
+ /** Value at this time */
287
+ value: number;
288
+ /** Additional metrics */
289
+ [key: string]: any;
290
+ }
291
+ /**
292
+ * Response from graph data endpoint
293
+ */
294
+ export interface GetGraphResponse {
295
+ /** Success status */
296
+ success: boolean;
297
+ /** Graph data points */
298
+ data?: GraphDataPoint[];
299
+ /** Error message if fetch failed */
300
+ message?: string;
301
+ }
302
+ /**
303
+ * File upload constraints
304
+ */
305
+ export declare const FILE_UPLOAD_CONSTRAINTS: {
306
+ /** Maximum file size in bytes (10MB) */
307
+ readonly MAX_SIZE: number;
308
+ /** Minimum file size in bytes */
309
+ readonly MIN_SIZE: 1;
310
+ /** Maximum filename length */
311
+ readonly MAX_FILENAME_LENGTH: 255;
312
+ /** Allowed file types */
313
+ readonly ALLOWED_TYPES: readonly ["image/png", "image/jpg", "image/jpeg", "image/gif", "image/webp", "image/svg+xml"];
314
+ /** Allowed file extensions */
315
+ readonly ALLOWED_EXTENSIONS: readonly [".png", ".jpg", ".jpeg", ".gif", ".webp", ".svg"];
316
+ };
317
+ /**
318
+ * Token creation validation constraints
319
+ */
320
+ export declare const LAUNCHPAD_CONSTRAINTS: {
321
+ /** Token name validation */
322
+ readonly TOKEN_NAME: {
323
+ readonly MIN_LENGTH: 3;
324
+ readonly MAX_LENGTH: 20;
325
+ /** Pattern for token name - alphanumeric only, 3-20 characters */
326
+ readonly PATTERN: RegExp;
327
+ };
328
+ /** Token symbol validation */
329
+ readonly TOKEN_SYMBOL: {
330
+ readonly MIN_LENGTH: 1;
331
+ readonly MAX_LENGTH: 8;
332
+ /** Pattern for token symbol - uppercase alphabets only */
333
+ readonly PATTERN: RegExp;
334
+ };
335
+ /** Token description validation */
336
+ readonly TOKEN_DESCRIPTION: {
337
+ readonly MIN_LENGTH: 1;
338
+ readonly MAX_LENGTH: 500;
339
+ };
340
+ /** URL validation */
341
+ readonly URL: {
342
+ /** Basic URL pattern */
343
+ readonly PATTERN: RegExp;
344
+ };
345
+ /** Social media requirements */
346
+ readonly SOCIAL_URLS: {
347
+ /** At least one of these URLs must be provided */
348
+ readonly REQUIRED_COUNT: 1;
349
+ /** Valid social URL fields */
350
+ readonly FIELDS: readonly ["websiteUrl", "twitterUrl", "telegramUrl"];
351
+ };
352
+ };
353
+ /**
354
+ * Pagination constraints
355
+ */
356
+ export declare const PAGINATION_CONSTRAINTS: {
357
+ /** Minimum items per page */
358
+ readonly MIN_LIMIT: 1;
359
+ /** Maximum items per page */
360
+ readonly MAX_LIMIT: 100;
361
+ /** Minimum page number */
362
+ readonly MIN_PAGE: 1;
363
+ /** Maximum page number */
364
+ readonly MAX_PAGE: 1000;
365
+ };
366
+ /**
367
+ * Reverse bonding curve configuration for token sales
368
+ */
369
+ export interface ReverseBondingCurveConfiguration {
370
+ /** Minimum fee portion as decimal string */
371
+ minFeePortion: string;
372
+ /** Maximum fee portion as decimal string */
373
+ maxFeePortion: string;
374
+ }
375
+ /**
376
+ * Data for creating a new token sale using the bundle backend
377
+ * This provides a clean, user-friendly interface that handles complexity internally
378
+ */
379
+ export interface CreateSaleData {
380
+ /** Token name (lowercase, alphanumeric, max 10 chars) */
381
+ tokenName: string;
382
+ /** Token symbol (3-10 characters) */
383
+ tokenSymbol: string;
384
+ /** Token description (max 500 characters) */
385
+ tokenDescription: string;
386
+ /** Token image - can be File, Buffer, or URL string */
387
+ tokenImage?: File | Buffer | string;
388
+ /** Pre-buy quantity as decimal string (defaults to "0") */
389
+ preBuyQuantity?: string;
390
+ /** Website URL (optional) */
391
+ websiteUrl?: string;
392
+ /** Telegram channel URL (optional) */
393
+ telegramUrl?: string;
394
+ /** Twitter profile URL (optional) */
395
+ twitterUrl?: string;
396
+ /** Token category (defaults to 'Unit') */
397
+ tokenCategory?: string;
398
+ /** Token collection (defaults to 'Token') */
399
+ tokenCollection?: string;
400
+ /** Reverse bonding curve configuration (optional, uses defaults) */
401
+ reverseBondingCurveConfiguration?: ReverseBondingCurveConfiguration;
402
+ }
403
+ /**
404
+ * Signed DTO for the bundle backend CreateSale operation
405
+ * This matches the exact format expected by the bundle backend
406
+ */
407
+ export interface SignedDto {
408
+ /** Token name */
409
+ tokenName: string;
410
+ /** Token symbol */
411
+ tokenSymbol: string;
412
+ /** Token description */
413
+ tokenDescription: string;
414
+ /** Token image URL (from upload response) */
415
+ tokenImage: string;
416
+ /** Pre-buy quantity as decimal string */
417
+ preBuyQuantity: string;
418
+ /** Website URL (empty string if not provided) */
419
+ websiteUrl: string;
420
+ /** Telegram URL (empty string if not provided) */
421
+ telegramUrl: string;
422
+ /** Twitter URL (empty string if not provided) */
423
+ twitterUrl: string;
424
+ /** Token category */
425
+ tokenCategory: string;
426
+ /** Token collection */
427
+ tokenCollection: string;
428
+ /** Reverse bonding curve configuration */
429
+ reverseBondingCurveConfiguration?: ReverseBondingCurveConfiguration;
430
+ /** Unique key for the operation */
431
+ uniqueKey: string;
432
+ /** EIP-712 signature */
433
+ signature: string;
434
+ /** EIP-712 types */
435
+ types: any;
436
+ /** EIP-712 domain */
437
+ domain: any;
438
+ /** Personal sign prefix for message authentication */
439
+ prefix?: string;
440
+ }
441
+ /**
442
+ * Request payload for the bundle backend
443
+ */
444
+ export interface BundleRequest {
445
+ /** Signed DTO with all required fields */
446
+ signedDto: SignedDto;
447
+ /** Array of string instructions for the operation */
448
+ stringsInstructions: string[];
449
+ /** Operation method - always 'CreateSale' for token creation */
450
+ method: 'CreateSale';
451
+ }
452
+ /**
453
+ * Response from the bundle backend CreateSale endpoint
454
+ */
455
+ export interface CreateSaleResponse {
456
+ /** Error status (false = success) */
457
+ error: boolean;
458
+ /** Transaction ID from successful creation */
459
+ data?: string;
460
+ /** Response message ("Transaction Received" for success) */
461
+ message?: string;
462
+ }
463
+ /**
464
+ * Graph data constraints
465
+ */
466
+ export declare const GRAPH_CONSTRAINTS: {
467
+ /** Minimum timestamp value */
468
+ readonly MIN_TIMESTAMP: 173000000;
469
+ /** Minimum resolution value */
470
+ readonly MIN_RESOLUTION: 1;
471
+ };
472
+ /**
473
+ * Volume badge information for tokens
474
+ * Indicates trading volume milestones achieved
475
+ */
476
+ export interface VolumeBadge {
477
+ /** Badge name representing volume threshold */
478
+ badgeName: '1k' | '10k' | '100k' | '1M+';
479
+ /** Whether this badge level has been achieved */
480
+ isActive: boolean;
481
+ }
482
+ /**
483
+ * Engagement badge information for tokens
484
+ * Indicates community engagement milestones achieved
485
+ */
486
+ export interface EngagementBadge {
487
+ /** Badge name representing engagement level */
488
+ badgeName: 'SPARK' | 'GATHERING' | 'CROWD' | 'MOVEMENT';
489
+ /** Whether this badge level has been achieved */
490
+ isActive: boolean;
491
+ }
492
+ /**
493
+ * Options for fetching token badges
494
+ */
495
+ export interface GetTokenBadgesOptions {
496
+ /** Token name to get badges for */
497
+ tokenName: string;
498
+ }
499
+ /**
500
+ * Response from token badges endpoint
501
+ */
502
+ export interface GetTokenBadgesResponse {
503
+ /** HTTP status code */
504
+ status: number;
505
+ /** Error status */
506
+ error: boolean;
507
+ /** Response message */
508
+ message: string;
509
+ /** Badge data */
510
+ data?: {
511
+ /** Volume milestone badges */
512
+ volumeBadge: VolumeBadge[];
513
+ /** Engagement milestone badges */
514
+ engagementBadge: EngagementBadge[];
515
+ };
516
+ }
517
+ //# sourceMappingURL=launchpad.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launchpad.dto.d.ts","sourceRoot":"","sources":["../../src/types/launchpad.dto.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Validation functions for Launchpad API operations
3
+ *
4
+ * These functions provide client-side validation to catch errors
5
+ * before making API calls to the backend.
6
+ */
7
+ import { CreateSaleData } from './launchpad.dto';
8
+ /**
9
+ * Validates token name format
10
+ */
11
+ export declare function isValidTokenName(name: string): boolean;
12
+ /**
13
+ * Validates token symbol format
14
+ */
15
+ export declare function isValidTokenSymbol(symbol: string): boolean;
16
+ /**
17
+ * Validates token description format
18
+ */
19
+ export declare function isValidTokenDescription(description: string): boolean;
20
+ /**
21
+ * Validates URL format
22
+ */
23
+ export declare function isValidUrl(url: string): boolean;
24
+ /**
25
+ * Validates that at least one social media URL is provided and valid
26
+ */
27
+ export declare function hasAtLeastOneSocialUrl(data: CreateSaleData): boolean;
28
+ /**
29
+ * Type guard to check if an object is valid CreateSaleData
30
+ */
31
+ export declare function isValidCreateSaleData(obj: any): obj is CreateSaleData;
32
+ /**
33
+ * Generates detailed validation error messages for CreateSaleData
34
+ */
35
+ export declare function getCreateSaleDataValidationErrors(obj: any): string[];
36
+ /**
37
+ * Validates CreateSaleData and throws error with detailed message if invalid
38
+ */
39
+ export declare function validateCreateSaleData(data: any): asserts data is CreateSaleData;
40
+ //# sourceMappingURL=launchpad.validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launchpad.validation.d.ts","sourceRoot":"","sources":["../../src/types/launchpad.validation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAyB,MAAM,iBAAiB,CAAC;AAMxE;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAYtD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAY1D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAWpE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAM/C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAapE;AAMD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,cAAc,CA0CrE;AAMD;;GAEG;AACH,wBAAgB,iCAAiC,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,EAAE,CAoDpE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,IAAI,cAAc,CAMhF"}