@arkade-os/skill 0.1.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 (40) hide show
  1. package/README.md +116 -0
  2. package/SKILL.md +269 -0
  3. package/cli/arkade.mjs +1018 -0
  4. package/dist/cjs/index.js +88 -0
  5. package/dist/cjs/index.js.map +1 -0
  6. package/dist/cjs/skills/arkadeBitcoin.js +359 -0
  7. package/dist/cjs/skills/arkadeBitcoin.js.map +1 -0
  8. package/dist/cjs/skills/index.js +78 -0
  9. package/dist/cjs/skills/index.js.map +1 -0
  10. package/dist/cjs/skills/lendaswap.js +458 -0
  11. package/dist/cjs/skills/lendaswap.js.map +1 -0
  12. package/dist/cjs/skills/lightning.js +287 -0
  13. package/dist/cjs/skills/lightning.js.map +1 -0
  14. package/dist/cjs/skills/types.js +11 -0
  15. package/dist/cjs/skills/types.js.map +1 -0
  16. package/dist/esm/index.js +72 -0
  17. package/dist/esm/index.js.map +1 -0
  18. package/dist/esm/skills/arkadeBitcoin.js +354 -0
  19. package/dist/esm/skills/arkadeBitcoin.js.map +1 -0
  20. package/dist/esm/skills/index.js +69 -0
  21. package/dist/esm/skills/index.js.map +1 -0
  22. package/dist/esm/skills/lendaswap.js +453 -0
  23. package/dist/esm/skills/lendaswap.js.map +1 -0
  24. package/dist/esm/skills/lightning.js +282 -0
  25. package/dist/esm/skills/lightning.js.map +1 -0
  26. package/dist/esm/skills/types.js +10 -0
  27. package/dist/esm/skills/types.js.map +1 -0
  28. package/dist/types/index.d.ts +72 -0
  29. package/dist/types/index.d.ts.map +1 -0
  30. package/dist/types/skills/arkadeBitcoin.d.ts +218 -0
  31. package/dist/types/skills/arkadeBitcoin.d.ts.map +1 -0
  32. package/dist/types/skills/index.d.ts +67 -0
  33. package/dist/types/skills/index.d.ts.map +1 -0
  34. package/dist/types/skills/lendaswap.d.ts +152 -0
  35. package/dist/types/skills/lendaswap.d.ts.map +1 -0
  36. package/dist/types/skills/lightning.d.ts +181 -0
  37. package/dist/types/skills/lightning.d.ts.map +1 -0
  38. package/dist/types/skills/types.d.ts +548 -0
  39. package/dist/types/skills/types.d.ts.map +1 -0
  40. package/package.json +65 -0
@@ -0,0 +1,152 @@
1
+ /**
2
+ * LendaSwapSkill - Swap USDC/USDT from/to Arkade via LendaSwap.
3
+ *
4
+ * This skill provides stablecoin swap capabilities for Arkade wallets
5
+ * using the LendaSwap SDK for non-custodial BTC/stablecoin exchanges.
6
+ *
7
+ * @module skills/lendaswap
8
+ */
9
+ import type { Wallet } from "@arkade-os/sdk";
10
+ import type { StablecoinSwapSkill, StablecoinToken, BtcToStablecoinParams, StablecoinToBtcParams, StablecoinSwapResult, StablecoinSwapInfo, StablecoinQuote, StablecoinPair } from "./types";
11
+ /**
12
+ * Configuration for the LendaSwapSkill.
13
+ */
14
+ export interface LendaSwapSkillConfig {
15
+ /** The Arkade wallet to use */
16
+ wallet: Wallet;
17
+ /** LendaSwap API key */
18
+ apiKey: string;
19
+ /** Optional custom API URL (default: https://apilendaswap.lendasat.com/) */
20
+ apiUrl?: string;
21
+ /** Optional Esplora URL for Bitcoin queries */
22
+ esploraUrl?: string;
23
+ /** Optional mnemonic for HD wallet key derivation */
24
+ mnemonic?: string;
25
+ /** Optional referral code for fee discounts */
26
+ referralCode?: string;
27
+ }
28
+ /**
29
+ * LendaSwapSkill provides stablecoin swap capabilities for Arkade wallets
30
+ * using the LendaSwap SDK.
31
+ *
32
+ * This skill enables:
33
+ * - Swapping BTC from Arkade to USDC/USDT on Polygon, Ethereum, or Arbitrum
34
+ * - Receiving USDC/USDT and converting to BTC in your Arkade wallet
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * import { Wallet, SingleKey } from "@arkade-os/sdk";
39
+ * import { LendaSwapSkill } from "@arkade-os/skill";
40
+ *
41
+ * // Create a wallet
42
+ * const wallet = await Wallet.create({
43
+ * identity: SingleKey.fromHex(privateKeyHex),
44
+ * arkServerUrl: "https://arkade.computer",
45
+ * });
46
+ *
47
+ * // Create the LendaSwap skill
48
+ * const lendaswap = new LendaSwapSkill({
49
+ * wallet,
50
+ * apiKey: process.env.LENDASWAP_API_KEY,
51
+ * });
52
+ *
53
+ * // Get a quote for BTC to USDC
54
+ * const quote = await lendaswap.getQuoteBtcToStablecoin(100000, "usdc_pol");
55
+ * console.log("You'll receive:", quote.targetAmount, "USDC");
56
+ *
57
+ * // Execute the swap
58
+ * const result = await lendaswap.swapBtcToStablecoin({
59
+ * targetAddress: "0x...",
60
+ * targetToken: "usdc_pol",
61
+ * targetChain: "polygon",
62
+ * sourceAmount: 100000,
63
+ * });
64
+ * console.log("Swap created:", result.swapId);
65
+ * ```
66
+ */
67
+ export declare class LendaSwapSkill implements StablecoinSwapSkill {
68
+ readonly name = "lendaswap";
69
+ readonly description = "Swap USDC/USDT from/to Arkade via LendaSwap non-custodial exchange";
70
+ readonly version = "1.0.0";
71
+ private readonly wallet;
72
+ private readonly apiUrl;
73
+ private readonly apiKey;
74
+ private readonly referralCode?;
75
+ private readonly swapStorage;
76
+ /**
77
+ * Creates a new LendaSwapSkill instance.
78
+ *
79
+ * @param config - Configuration options
80
+ */
81
+ constructor(config: LendaSwapSkillConfig);
82
+ /**
83
+ * Check if the skill is available and properly configured.
84
+ */
85
+ isAvailable(): Promise<boolean>;
86
+ /**
87
+ * Get a quote for swapping BTC to stablecoins.
88
+ */
89
+ getQuoteBtcToStablecoin(sourceAmount: number, targetToken: StablecoinToken): Promise<StablecoinQuote>;
90
+ /**
91
+ * Get a quote for swapping stablecoins to BTC.
92
+ */
93
+ getQuoteStablecoinToBtc(sourceAmount: number, sourceToken: StablecoinToken): Promise<StablecoinQuote>;
94
+ /**
95
+ * Swap BTC from Arkade to stablecoins on EVM.
96
+ */
97
+ swapBtcToStablecoin(params: BtcToStablecoinParams): Promise<StablecoinSwapResult>;
98
+ /**
99
+ * Swap stablecoins from EVM to BTC on Arkade.
100
+ */
101
+ swapStablecoinToBtc(params: StablecoinToBtcParams): Promise<StablecoinSwapResult>;
102
+ /**
103
+ * Get the status of a swap.
104
+ */
105
+ getSwapStatus(swapId: string): Promise<StablecoinSwapInfo>;
106
+ /**
107
+ * Get pending stablecoin swaps.
108
+ */
109
+ getPendingSwaps(): Promise<StablecoinSwapInfo[]>;
110
+ /**
111
+ * Get stablecoin swap history.
112
+ */
113
+ getSwapHistory(): Promise<StablecoinSwapInfo[]>;
114
+ /**
115
+ * Get available trading pairs.
116
+ */
117
+ getAvailablePairs(): Promise<StablecoinPair[]>;
118
+ /**
119
+ * Claim funds from a completed swap.
120
+ */
121
+ claimSwap(swapId: string): Promise<{
122
+ txid: string;
123
+ }>;
124
+ /**
125
+ * Refund an expired or failed swap.
126
+ */
127
+ refundSwap(swapId: string): Promise<{
128
+ txid: string;
129
+ }>;
130
+ /**
131
+ * Get the underlying wallet instance.
132
+ */
133
+ getWallet(): Wallet;
134
+ /**
135
+ * Get token decimals for a stablecoin.
136
+ */
137
+ getTokenDecimals(token: StablecoinToken): number;
138
+ /**
139
+ * Helper to fetch from LendaSwap API.
140
+ */
141
+ private fetchApi;
142
+ }
143
+ /**
144
+ * Create a LendaSwapSkill from a wallet and API key.
145
+ *
146
+ * @param wallet - The Arkade wallet to use
147
+ * @param apiKey - LendaSwap API key
148
+ * @param options - Optional configuration
149
+ * @returns A new LendaSwapSkill instance
150
+ */
151
+ export declare function createLendaSwapSkill(wallet: Wallet, apiKey: string, options?: Partial<Omit<LendaSwapSkillConfig, "wallet" | "apiKey">>): LendaSwapSkill;
152
+ //# sourceMappingURL=lendaswap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lendaswap.d.ts","sourceRoot":"","sources":["../../../src/skills/lendaswap.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EAEf,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAElB,eAAe,EACf,cAAc,EACf,MAAM,SAAS,CAAC;AAoCjB;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAoBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,qBAAa,cAAe,YAAW,mBAAmB;IACxD,QAAQ,CAAC,IAAI,eAAe;IAC5B,QAAQ,CAAC,WAAW,wEACmD;IACvE,QAAQ,CAAC,OAAO,WAAW;IAE3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAElE;;;;OAIG;gBACS,MAAM,EAAE,oBAAoB;IAOxC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IASrC;;OAEG;IACG,uBAAuB,CAC3B,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,eAAe,GAC3B,OAAO,CAAC,eAAe,CAAC;IA8B3B;;OAEG;IACG,uBAAuB,CAC3B,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,eAAe,GAC3B,OAAO,CAAC,eAAe,CAAC;IA8B3B;;OAEG;IACG,mBAAmB,CACvB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,oBAAoB,CAAC;IAyDhC;;OAEG;IACG,mBAAmB,CACvB,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,oBAAoB,CAAC;IAuDhC;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAkChE;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAiCtD;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAwBrD;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAkBpD;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAsB1D;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAqB3D;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM;IAIhD;;OAEG;YACW,QAAQ;CAevB;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,QAAQ,GAAG,QAAQ,CAAC,CAAC,GACjE,cAAc,CAMhB"}
@@ -0,0 +1,181 @@
1
+ /**
2
+ * ArkaLightningSkill - Lightning Network payments via Boltz submarine swaps.
3
+ *
4
+ * This skill provides Lightning Network capabilities for Arkade wallets
5
+ * designed for agent integration (CLI-friendly for agents like MoltBot).
6
+ *
7
+ * @module skills/lightning
8
+ */
9
+ import { ArkadeLightning, BoltzSwapProvider, type PendingReverseSwap } from "@arkade-os/boltz-swap";
10
+ import { Wallet, type ArkProvider, type NetworkName } from "@arkade-os/sdk";
11
+ import type { IndexerProvider } from "@arkade-os/sdk";
12
+ import type { LightningSkill, LightningInvoice, CreateInvoiceParams, PayInvoiceParams, PaymentResult, LightningFees, LightningLimits, SwapInfo } from "./types";
13
+ /**
14
+ * Configuration for the ArkaLightningSkill.
15
+ */
16
+ export interface ArkaLightningSkillConfig {
17
+ /** The Arkade wallet to use */
18
+ wallet: Wallet;
19
+ /** Network name */
20
+ network: NetworkName;
21
+ /** Optional Ark provider (will use wallet's provider if not specified) */
22
+ arkProvider?: ArkProvider;
23
+ /** Optional Indexer provider */
24
+ indexerProvider?: IndexerProvider;
25
+ /** Optional custom Boltz API URL */
26
+ boltzApiUrl?: string;
27
+ /** Optional Boltz referral ID */
28
+ referralId?: string;
29
+ /** Enable background swap monitoring (default: false) */
30
+ enableSwapManager?: boolean;
31
+ }
32
+ /**
33
+ * ArkaLightningSkill provides Lightning Network payment capabilities
34
+ * for Arkade wallets using Boltz submarine swaps.
35
+ *
36
+ * This skill enables:
37
+ * - Receiving Lightning payments into your Arkade wallet (reverse swaps)
38
+ * - Sending Lightning payments from your Arkade wallet (submarine swaps)
39
+ *
40
+ * @example
41
+ * ```typescript
42
+ * import { Wallet, SingleKey } from "@arkade-os/sdk";
43
+ * import { ArkaLightningSkill } from "@arkade-os/skill";
44
+ *
45
+ * // Create a wallet
46
+ * const wallet = await Wallet.create({
47
+ * identity: SingleKey.fromHex(privateKeyHex),
48
+ * arkServerUrl: "https://arkade.computer",
49
+ * });
50
+ *
51
+ * // Create the Lightning skill
52
+ * const lightning = new ArkaLightningSkill({
53
+ * wallet,
54
+ * network: "bitcoin",
55
+ * });
56
+ *
57
+ * // Create an invoice to receive Lightning payment
58
+ * const invoice = await lightning.createInvoice({
59
+ * amount: 50000, // 50,000 sats
60
+ * description: "Payment for coffee",
61
+ * });
62
+ * console.log("Pay this invoice:", invoice.bolt11);
63
+ *
64
+ * // Pay a Lightning invoice
65
+ * const result = await lightning.payInvoice({
66
+ * bolt11: "lnbc...",
67
+ * });
68
+ * console.log("Paid! Preimage:", result.preimage);
69
+ * ```
70
+ */
71
+ export declare class ArkaLightningSkill implements LightningSkill {
72
+ readonly name = "arka-lightning";
73
+ readonly description = "Lightning Network payments via Boltz submarine swaps for Arkade wallets";
74
+ readonly version = "1.0.0";
75
+ private readonly arkadeLightning;
76
+ private readonly swapProvider;
77
+ private readonly network;
78
+ /**
79
+ * Creates a new ArkaLightningSkill instance.
80
+ *
81
+ * @param config - Configuration options
82
+ */
83
+ constructor(config: ArkaLightningSkillConfig);
84
+ /**
85
+ * Check if the Lightning skill is available.
86
+ *
87
+ * @returns true if the skill is properly configured
88
+ */
89
+ isAvailable(): Promise<boolean>;
90
+ /**
91
+ * Create a Lightning invoice for receiving payment.
92
+ *
93
+ * This creates a Boltz reverse swap, which locks funds on Boltz's side
94
+ * when someone pays the invoice. The funds are then claimed into your
95
+ * Arkade wallet as VTXOs.
96
+ *
97
+ * @param params - Invoice parameters
98
+ * @returns The created invoice with payment details
99
+ */
100
+ createInvoice(params: CreateInvoiceParams): Promise<LightningInvoice>;
101
+ /**
102
+ * Pay a Lightning invoice.
103
+ *
104
+ * This creates a Boltz submarine swap, which sends funds from your
105
+ * Arkade wallet to a swap address. Boltz then pays the Lightning invoice
106
+ * and you receive the preimage as proof of payment.
107
+ *
108
+ * @param params - Payment parameters
109
+ * @returns Result containing the preimage and transaction details
110
+ */
111
+ payInvoice(params: PayInvoiceParams): Promise<PaymentResult>;
112
+ /**
113
+ * Get fee information for Lightning swaps.
114
+ *
115
+ * @returns Fee structure for submarine and reverse swaps
116
+ */
117
+ getFees(): Promise<LightningFees>;
118
+ /**
119
+ * Get limits for Lightning swaps.
120
+ *
121
+ * @returns Min and max amounts for swaps
122
+ */
123
+ getLimits(): Promise<LightningLimits>;
124
+ /**
125
+ * Get pending swaps.
126
+ *
127
+ * @returns Array of pending swap information
128
+ */
129
+ getPendingSwaps(): Promise<SwapInfo[]>;
130
+ /**
131
+ * Get swap history.
132
+ *
133
+ * @returns Array of all swaps (pending and completed)
134
+ */
135
+ getSwapHistory(): Promise<SwapInfo[]>;
136
+ /**
137
+ * Wait for an invoice to be paid and claim the funds.
138
+ *
139
+ * @param pendingSwap - The pending reverse swap from createInvoice
140
+ * @returns Transaction ID of the claimed funds
141
+ */
142
+ waitAndClaim(pendingSwap: PendingReverseSwap): Promise<{
143
+ txid: string;
144
+ }>;
145
+ /**
146
+ * Get the underlying ArkadeLightning instance for advanced operations.
147
+ *
148
+ * @returns The ArkadeLightning instance
149
+ */
150
+ getArkadeLightning(): ArkadeLightning;
151
+ /**
152
+ * Get the swap provider for direct Boltz API access.
153
+ *
154
+ * @returns The BoltzSwapProvider instance
155
+ */
156
+ getSwapProvider(): BoltzSwapProvider;
157
+ /**
158
+ * Start the background swap manager if enabled.
159
+ */
160
+ startSwapManager(): Promise<void>;
161
+ /**
162
+ * Stop the background swap manager.
163
+ */
164
+ stopSwapManager(): Promise<void>;
165
+ /**
166
+ * Dispose of resources and stop the swap manager.
167
+ */
168
+ dispose(): Promise<void>;
169
+ private mapReverseSwap;
170
+ private mapSubmarineSwap;
171
+ }
172
+ /**
173
+ * Create an ArkaLightningSkill from a wallet and network.
174
+ *
175
+ * @param wallet - The Arkade wallet to use
176
+ * @param network - The network name
177
+ * @param options - Optional configuration
178
+ * @returns A new ArkaLightningSkill instance
179
+ */
180
+ export declare function createLightningSkill(wallet: Wallet, network: NetworkName, options?: Partial<Omit<ArkaLightningSkillConfig, "wallet" | "network">>): ArkaLightningSkill;
181
+ //# sourceMappingURL=lightning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lightning.d.ts","sourceRoot":"","sources":["../../../src/skills/lightning.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,eAAe,EACf,iBAAiB,EAEjB,KAAK,kBAAkB,EAExB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,eAAe,EACf,QAAQ,EAET,MAAM,SAAS,CAAC;AAcjB;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB;IACnB,OAAO,EAAE,WAAW,CAAC;IACrB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,gCAAgC;IAChC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,qBAAa,kBAAmB,YAAW,cAAc;IACvD,QAAQ,CAAC,IAAI,oBAAoB;IACjC,QAAQ,CAAC,WAAW,6EACwD;IAC5E,QAAQ,CAAC,OAAO,WAAW;IAE3B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IAEtC;;;;OAIG;gBACS,MAAM,EAAE,wBAAwB;IA2B5C;;;;OAIG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IASrC;;;;;;;;;OASG;IACG,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAoB3E;;;;;;;;;OASG;IACG,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;IAYlE;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC;IAIvC;;;;OAIG;IACG,SAAS,IAAI,OAAO,CAAC,eAAe,CAAC;IAI3C;;;;OAIG;IACG,eAAe,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAY5C;;;;OAIG;IACG,cAAc,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAS3C;;;;;OAKG;IACG,YAAY,CAChB,WAAW,EAAE,kBAAkB,GAC9B,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAI5B;;;;OAIG;IACH,kBAAkB,IAAI,eAAe;IAIrC;;;;OAIG;IACH,eAAe,IAAI,iBAAiB;IAIpC;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIvC;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAItC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,gBAAgB;CAmBzB;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAC,GACtE,kBAAkB,CAMpB"}