@tomaspavlin/rohlik-mcp 1.0.6 → 2.0.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/README.md +55 -9
- package/dist/index.js +41 -201
- package/dist/index.js.map +1 -1
- package/dist/rohlik-api.d.ts +9 -1
- package/dist/rohlik-api.d.ts.map +1 -1
- package/dist/rohlik-api.js +147 -1
- package/dist/rohlik-api.js.map +1 -1
- package/dist/tools/account-data.d.ts +23 -0
- package/dist/tools/account-data.d.ts.map +1 -0
- package/dist/tools/account-data.js +83 -0
- package/dist/tools/account-data.js.map +1 -0
- package/dist/tools/announcements.d.ts +23 -0
- package/dist/tools/announcements.d.ts.map +1 -0
- package/dist/tools/announcements.js +61 -0
- package/dist/tools/announcements.js.map +1 -0
- package/dist/tools/cart-management.d.ts +88 -0
- package/dist/tools/cart-management.d.ts.map +1 -0
- package/dist/tools/cart-management.js +136 -0
- package/dist/tools/cart-management.js.map +1 -0
- package/dist/tools/delivery-info.d.ts +23 -0
- package/dist/tools/delivery-info.d.ts.map +1 -0
- package/dist/tools/delivery-info.js +69 -0
- package/dist/tools/delivery-info.js.map +1 -0
- package/dist/tools/delivery-slots.d.ts +23 -0
- package/dist/tools/delivery-slots.d.ts.map +1 -0
- package/dist/tools/delivery-slots.js +55 -0
- package/dist/tools/delivery-slots.js.map +1 -0
- package/dist/tools/index.d.ts +137 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +19 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/order-history.d.ts +28 -0
- package/dist/tools/order-history.d.ts.map +1 -0
- package/dist/tools/order-history.js +62 -0
- package/dist/tools/order-history.js.map +1 -0
- package/dist/tools/premium-info.d.ts +23 -0
- package/dist/tools/premium-info.d.ts.map +1 -0
- package/dist/tools/premium-info.js +84 -0
- package/dist/tools/premium-info.js.map +1 -0
- package/dist/tools/reusable-bags.d.ts +23 -0
- package/dist/tools/reusable-bags.d.ts.map +1 -0
- package/dist/tools/reusable-bags.js +79 -0
- package/dist/tools/reusable-bags.js.map +1 -0
- package/dist/tools/search-products.d.ts +32 -0
- package/dist/tools/search-products.d.ts.map +1 -0
- package/dist/tools/search-products.js +44 -0
- package/dist/tools/search-products.js.map +1 -0
- package/dist/tools/shopping-lists.d.ts +28 -0
- package/dist/tools/shopping-lists.d.ts.map +1 -0
- package/dist/tools/shopping-lists.js +54 -0
- package/dist/tools/shopping-lists.js.map +1 -0
- package/dist/tools/upcoming-orders.d.ts +23 -0
- package/dist/tools/upcoming-orders.d.ts.map +1 -0
- package/dist/tools/upcoming-orders.js +61 -0
- package/dist/tools/upcoming-orders.js.map +1 -0
- package/dist/types.d.ts +14 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,19 +1,38 @@
|
|
|
1
1
|
# Rohlik MCP Server
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**Enhance your favourite LLM with capabilities to buy groceries.**
|
|
4
|
+
|
|
5
|
+
This is a Model Context Protocol (MCP) server that enables AI assistants to interact with the Rohlik Group's online grocery delivery services across multiple countries. This server provides tools for searching products, managing shopping carts, and accessing account info.
|
|
6
|
+
|
|
7
|
+
**Supported Services:**
|
|
8
|
+
- 🇨🇿 **[Rohlik.cz](https://www.rohlik.cz)** - Czech Republic
|
|
9
|
+
- 🇩🇪 **[Knuspr.de](https://www.knuspr.de)** - Germany
|
|
10
|
+
- 🇦🇹 **[Gurkerl.at](https://www.gurkerl.at)** - Austria
|
|
11
|
+
- 🇭🇺 **[Kifli.hu](https://www.kifli.hu)** - Hungary
|
|
12
|
+
- 🇷🇴 **[Sezamo.ro](https://www.sezamo.ro)** - Romania
|
|
13
|
+
- 🇮🇹 **[Sezamo.it](https://www.sezamo.it)** - Italy (planned)
|
|
14
|
+
- 🇪🇸 **[Sezamo.es](https://www.sezamo.es)** - Spain (planned)
|
|
15
|
+
|
|
16
|
+
Example LLM prompts that work very well with the Rohlik MCP:
|
|
17
|
+
- *Add ingredients for apple pie to the cart. Only gluten-free and budget-friendly.*
|
|
18
|
+
- *Or actually, instead of apple pie I want to make pumpkin pie. Change the ingredients.*
|
|
19
|
+
- *What are the items in my cart?*
|
|
20
|
+
- *Add the items in the attached shopping list photo to the cart.*
|
|
21
|
+
- *Add the bread I marked as favorite in Rohlik to my cart.*
|
|
22
|
+
- *What are the cheapest delivery slots for tomorrow?*
|
|
4
23
|
|
|
5
24
|
> [!WARNING]
|
|
6
|
-
> This MCP server is made by reverse engineering
|
|
25
|
+
> This MCP server is made by reverse engineering the APIs used by Rohlik Group's websites. Use at your own discretion.
|
|
7
26
|
|
|
8
27
|
## Usage
|
|
9
28
|
|
|
10
29
|
### Claude Desktop Configuration
|
|
11
30
|
|
|
12
|
-
|
|
31
|
+
Add the MCP to Claude Desktop configuration:
|
|
32
|
+
- On MacOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
33
|
+
- On Windows: `%APPDATA%/Claude/claude_desktop_config.json`
|
|
13
34
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
Add this to your Claude Desktop configuration:
|
|
35
|
+
Add the following configuration:
|
|
17
36
|
|
|
18
37
|
```json
|
|
19
38
|
{
|
|
@@ -23,21 +42,47 @@ Add this to your Claude Desktop configuration:
|
|
|
23
42
|
"args": ["-y", "@tomaspavlin/rohlik-mcp"],
|
|
24
43
|
"env": {
|
|
25
44
|
"ROHLIK_USERNAME": "your-email@example.com",
|
|
26
|
-
"ROHLIK_PASSWORD": "your-password"
|
|
45
|
+
"ROHLIK_PASSWORD": "your-password",
|
|
46
|
+
"ROHLIK_BASE_URL": "https://www.rohlik.cz"
|
|
27
47
|
}
|
|
28
48
|
}
|
|
29
49
|
}
|
|
30
50
|
}
|
|
31
51
|
```
|
|
32
52
|
|
|
53
|
+
### Supported Regions
|
|
54
|
+
|
|
55
|
+
The server supports multiple Rohlik regions by setting the `ROHLIK_BASE_URL` environment variable:
|
|
56
|
+
|
|
57
|
+
* **Czech Republic**: `https://www.rohlik.cz` (default)
|
|
58
|
+
* **Germany**: `https://www.knuspr.de`
|
|
59
|
+
* **Austria**: `https://www.gurkerl.at`
|
|
60
|
+
* **Hungary**: `https://www.kifli.hu`
|
|
61
|
+
* **Romania**: `https://www.sezamo.ro`
|
|
62
|
+
* **Italy** (planned): `https://www.sezamo.it`
|
|
63
|
+
* **Spain** (planned): `https://www.sezamo.es`
|
|
64
|
+
|
|
65
|
+
If `ROHLIK_BASE_URL` is not specified, it defaults to the Czech version.
|
|
66
|
+
|
|
33
67
|
## Tools
|
|
34
68
|
|
|
69
|
+
### Core Shopping
|
|
35
70
|
- `search_products` - Search for grocery products by name with filtering options
|
|
36
71
|
- `add_to_cart` - Add multiple products to your shopping cart
|
|
37
72
|
- `get_cart_content` - View current cart contents and totals
|
|
38
73
|
- `remove_from_cart` - Remove items from your shopping cart
|
|
39
74
|
- `get_shopping_list` - Retrieve shopping lists by ID
|
|
40
75
|
|
|
76
|
+
### Getting info
|
|
77
|
+
- `get_account_data` - Get comprehensive account information including delivery details, orders, announcements, cart, and premium status
|
|
78
|
+
- `get_order_history` - View your past delivered orders with details
|
|
79
|
+
- `get_upcoming_orders` - See your scheduled upcoming orders
|
|
80
|
+
- `get_delivery_info` - Get current delivery information and fees
|
|
81
|
+
- `get_delivery_slots` - View available delivery time slots for your address
|
|
82
|
+
- `get_premium_info` - Check your Rohlik Premium subscription status and benefits
|
|
83
|
+
- `get_announcements` - View current announcements and notifications
|
|
84
|
+
- `get_reusable_bags_info` - Track your reusable bags and environmental impact
|
|
85
|
+
|
|
41
86
|
## Development
|
|
42
87
|
|
|
43
88
|
### Installation
|
|
@@ -68,7 +113,8 @@ Add this to configuration:
|
|
|
68
113
|
"args": ["/path/to/rohlik-mcp/dist/index.js"],
|
|
69
114
|
"env": {
|
|
70
115
|
"ROHLIK_USERNAME": "your-email@example.com",
|
|
71
|
-
"ROHLIK_PASSWORD": "your-password"
|
|
116
|
+
"ROHLIK_PASSWORD": "your-password",
|
|
117
|
+
"ROHLIK_BASE_URL": "https://www.rohlik.cz"
|
|
72
118
|
}
|
|
73
119
|
}
|
|
74
120
|
}
|
|
@@ -88,7 +134,7 @@ In the Inspector, set the ROHLIK_USERNAME and ROHLIK_PASSWORD envs.
|
|
|
88
134
|
### Publishing as NPM package
|
|
89
135
|
|
|
90
136
|
1. Update version in package.json
|
|
91
|
-
2. `npm
|
|
137
|
+
2. `npm publish`
|
|
92
138
|
|
|
93
139
|
## License
|
|
94
140
|
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
3
3
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
4
|
-
import { z } from "zod";
|
|
5
4
|
import { RohlikAPI } from "./rohlik-api.js";
|
|
5
|
+
import { createSearchProductsTool } from "./tools/search-products.js";
|
|
6
|
+
import { createCartManagementTools } from "./tools/cart-management.js";
|
|
7
|
+
import { createShoppingListsTool } from "./tools/shopping-lists.js";
|
|
8
|
+
import { createAccountDataTool } from "./tools/account-data.js";
|
|
9
|
+
import { createOrderHistoryTool } from "./tools/order-history.js";
|
|
10
|
+
import { createDeliveryInfoTool } from "./tools/delivery-info.js";
|
|
11
|
+
import { createUpcomingOrdersTool } from "./tools/upcoming-orders.js";
|
|
12
|
+
import { createPremiumInfoTool } from "./tools/premium-info.js";
|
|
13
|
+
import { createDeliverySlotsTool } from "./tools/delivery-slots.js";
|
|
14
|
+
import { createAnnouncementsTool } from "./tools/announcements.js";
|
|
15
|
+
import { createReusableBagsTool } from "./tools/reusable-bags.js";
|
|
6
16
|
const server = new McpServer({
|
|
7
17
|
name: "rohlik-mcp",
|
|
8
|
-
version: "0.0
|
|
18
|
+
version: "1.0.0",
|
|
9
19
|
}, {
|
|
10
20
|
capabilities: {
|
|
11
21
|
tools: {},
|
|
@@ -23,205 +33,35 @@ function createRohlikAPI() {
|
|
|
23
33
|
const credentials = getCredentials();
|
|
24
34
|
return new RohlikAPI(credentials);
|
|
25
35
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
],
|
|
57
|
-
isError: true
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
server.registerTool("add_to_cart", {
|
|
62
|
-
title: "Add to Cart",
|
|
63
|
-
description: "Add products to the shopping cart",
|
|
64
|
-
inputSchema: {
|
|
65
|
-
products: z.array(z.object({
|
|
66
|
-
product_id: z.number().describe("The ID of the product to add"),
|
|
67
|
-
quantity: z.number().min(1).describe("Quantity of the product to add")
|
|
68
|
-
})).min(1, "At least one product is required").describe("Array of products to add to cart")
|
|
69
|
-
}
|
|
70
|
-
}, async ({ products }) => {
|
|
71
|
-
try {
|
|
72
|
-
const api = createRohlikAPI();
|
|
73
|
-
const addedProducts = await api.addToCart(products);
|
|
74
|
-
const successCount = addedProducts.length;
|
|
75
|
-
const totalRequested = products.length;
|
|
76
|
-
const output = `Successfully added ${successCount}/${totalRequested} products to cart.\n` +
|
|
77
|
-
(addedProducts.length > 0 ? `Added product IDs: ${addedProducts.join(', ')}` : 'No products were added.');
|
|
78
|
-
return {
|
|
79
|
-
content: [
|
|
80
|
-
{
|
|
81
|
-
type: "text",
|
|
82
|
-
text: output
|
|
83
|
-
}
|
|
84
|
-
]
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
catch (error) {
|
|
88
|
-
return {
|
|
89
|
-
content: [
|
|
90
|
-
{
|
|
91
|
-
type: "text",
|
|
92
|
-
text: error instanceof Error ? error.message : String(error)
|
|
93
|
-
}
|
|
94
|
-
],
|
|
95
|
-
isError: true
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
server.registerTool("get_cart_content", {
|
|
100
|
-
title: "Get Cart Content",
|
|
101
|
-
description: "Get the current contents of the shopping cart",
|
|
102
|
-
inputSchema: {}
|
|
103
|
-
}, async () => {
|
|
104
|
-
try {
|
|
105
|
-
const api = createRohlikAPI();
|
|
106
|
-
const cartContent = await api.getCartContent();
|
|
107
|
-
if (cartContent.total_items === 0) {
|
|
108
|
-
return {
|
|
109
|
-
content: [
|
|
110
|
-
{
|
|
111
|
-
type: "text",
|
|
112
|
-
text: "Your cart is empty."
|
|
113
|
-
}
|
|
114
|
-
]
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
const output = `Cart Summary:
|
|
118
|
-
• Total items: ${cartContent.total_items}
|
|
119
|
-
• Total price: ${cartContent.total_price} CZK
|
|
120
|
-
• Can order: ${cartContent.can_make_order ? 'Yes' : 'No'}
|
|
121
|
-
|
|
122
|
-
Products in cart:
|
|
123
|
-
${cartContent.products.map(product => `• ${product.name} (${product.brand})\n Quantity: ${product.quantity}\n Price: ${product.price} CZK\n Category: ${product.category_name}\n Cart ID: ${product.cart_item_id}`).join('\n\n')}`;
|
|
124
|
-
return {
|
|
125
|
-
content: [
|
|
126
|
-
{
|
|
127
|
-
type: "text",
|
|
128
|
-
text: output
|
|
129
|
-
}
|
|
130
|
-
]
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
catch (error) {
|
|
134
|
-
return {
|
|
135
|
-
content: [
|
|
136
|
-
{
|
|
137
|
-
type: "text",
|
|
138
|
-
text: error instanceof Error ? error.message : String(error)
|
|
139
|
-
}
|
|
140
|
-
],
|
|
141
|
-
isError: true
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
});
|
|
145
|
-
server.registerTool("remove_from_cart", {
|
|
146
|
-
title: "Remove from Cart",
|
|
147
|
-
description: "Remove an item from the shopping cart",
|
|
148
|
-
inputSchema: {
|
|
149
|
-
order_field_id: z.string().min(1, "Order field ID is required").describe("The order field ID of the item to remove (cart_item_id from cart content)")
|
|
150
|
-
}
|
|
151
|
-
}, async ({ order_field_id }) => {
|
|
152
|
-
try {
|
|
153
|
-
const api = createRohlikAPI();
|
|
154
|
-
const success = await api.removeFromCart(order_field_id);
|
|
155
|
-
const output = success
|
|
156
|
-
? `Successfully removed item with ID ${order_field_id} from cart.`
|
|
157
|
-
: `Failed to remove item with ID ${order_field_id} from cart.`;
|
|
158
|
-
return {
|
|
159
|
-
content: [
|
|
160
|
-
{
|
|
161
|
-
type: "text",
|
|
162
|
-
text: output
|
|
163
|
-
}
|
|
164
|
-
]
|
|
165
|
-
};
|
|
166
|
-
}
|
|
167
|
-
catch (error) {
|
|
168
|
-
return {
|
|
169
|
-
content: [
|
|
170
|
-
{
|
|
171
|
-
type: "text",
|
|
172
|
-
text: error instanceof Error ? error.message : String(error)
|
|
173
|
-
}
|
|
174
|
-
],
|
|
175
|
-
isError: true
|
|
176
|
-
};
|
|
177
|
-
}
|
|
178
|
-
});
|
|
179
|
-
server.registerTool("get_shopping_list", {
|
|
180
|
-
title: "Get Shopping List",
|
|
181
|
-
description: "Get a shopping list by ID",
|
|
182
|
-
inputSchema: {
|
|
183
|
-
shopping_list_id: z.string().min(1, "Shopping list ID is required").describe("The ID of the shopping list to retrieve")
|
|
184
|
-
}
|
|
185
|
-
}, async ({ shopping_list_id }) => {
|
|
186
|
-
try {
|
|
187
|
-
const api = createRohlikAPI();
|
|
188
|
-
const shoppingList = await api.getShoppingList(shopping_list_id);
|
|
189
|
-
if (!shoppingList.products || shoppingList.products.length === 0) {
|
|
190
|
-
return {
|
|
191
|
-
content: [
|
|
192
|
-
{
|
|
193
|
-
type: "text",
|
|
194
|
-
text: `Shopping list "${shoppingList.name}" is empty.`
|
|
195
|
-
}
|
|
196
|
-
]
|
|
197
|
-
};
|
|
198
|
-
}
|
|
199
|
-
const output = `Shopping List: ${shoppingList.name}
|
|
200
|
-
Total products: ${shoppingList.products.length}
|
|
201
|
-
|
|
202
|
-
Products:
|
|
203
|
-
${shoppingList.products.map((product, index) => `${index + 1}. ${product.name || 'Unknown product'}`).join('\n')}`;
|
|
204
|
-
return {
|
|
205
|
-
content: [
|
|
206
|
-
{
|
|
207
|
-
type: "text",
|
|
208
|
-
text: output
|
|
209
|
-
}
|
|
210
|
-
]
|
|
211
|
-
};
|
|
212
|
-
}
|
|
213
|
-
catch (error) {
|
|
214
|
-
return {
|
|
215
|
-
content: [
|
|
216
|
-
{
|
|
217
|
-
type: "text",
|
|
218
|
-
text: error instanceof Error ? error.message : String(error)
|
|
219
|
-
}
|
|
220
|
-
],
|
|
221
|
-
isError: true
|
|
222
|
-
};
|
|
223
|
-
}
|
|
224
|
-
});
|
|
36
|
+
// Register all tools
|
|
37
|
+
const searchProducts = createSearchProductsTool(createRohlikAPI);
|
|
38
|
+
const cartTools = createCartManagementTools(createRohlikAPI);
|
|
39
|
+
const shoppingLists = createShoppingListsTool(createRohlikAPI);
|
|
40
|
+
const accountData = createAccountDataTool(createRohlikAPI);
|
|
41
|
+
const orderHistory = createOrderHistoryTool(createRohlikAPI);
|
|
42
|
+
const deliveryInfo = createDeliveryInfoTool(createRohlikAPI);
|
|
43
|
+
const upcomingOrders = createUpcomingOrdersTool(createRohlikAPI);
|
|
44
|
+
const premiumInfo = createPremiumInfoTool(createRohlikAPI);
|
|
45
|
+
const deliverySlots = createDeliverySlotsTool(createRohlikAPI);
|
|
46
|
+
const announcements = createAnnouncementsTool(createRohlikAPI);
|
|
47
|
+
const reusableBags = createReusableBagsTool(createRohlikAPI);
|
|
48
|
+
// Core functionality
|
|
49
|
+
server.registerTool(searchProducts.name, searchProducts.definition, searchProducts.handler);
|
|
50
|
+
server.registerTool(cartTools.addToCart.name, cartTools.addToCart.definition, cartTools.addToCart.handler);
|
|
51
|
+
server.registerTool(cartTools.getCartContent.name, cartTools.getCartContent.definition, cartTools.getCartContent.handler);
|
|
52
|
+
server.registerTool(cartTools.removeFromCart.name, cartTools.removeFromCart.definition, cartTools.removeFromCart.handler);
|
|
53
|
+
server.registerTool(shoppingLists.name, shoppingLists.definition, shoppingLists.handler);
|
|
54
|
+
server.registerTool(accountData.name, accountData.definition, accountData.handler);
|
|
55
|
+
// Order management
|
|
56
|
+
server.registerTool(orderHistory.name, orderHistory.definition, orderHistory.handler);
|
|
57
|
+
server.registerTool(upcomingOrders.name, upcomingOrders.definition, upcomingOrders.handler);
|
|
58
|
+
// Delivery management
|
|
59
|
+
server.registerTool(deliveryInfo.name, deliveryInfo.definition, deliveryInfo.handler);
|
|
60
|
+
server.registerTool(deliverySlots.name, deliverySlots.definition, deliverySlots.handler);
|
|
61
|
+
// Account features
|
|
62
|
+
server.registerTool(premiumInfo.name, premiumInfo.definition, premiumInfo.handler);
|
|
63
|
+
server.registerTool(announcements.name, announcements.definition, announcements.handler);
|
|
64
|
+
server.registerTool(reusableBags.name, reusableBags.definition, reusableBags.handler);
|
|
225
65
|
async function main() {
|
|
226
66
|
const transport = new StdioServerTransport();
|
|
227
67
|
await server.connect(transport);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/rohlik-api.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Product, SearchResult, CartContent, RohlikCredentials } from './types.js';
|
|
1
|
+
import { Product, SearchResult, CartContent, RohlikCredentials, AccountData } from './types.js';
|
|
2
2
|
export declare class RohlikAPIError extends Error {
|
|
3
3
|
status?: number | undefined;
|
|
4
4
|
constructor(message: string, status?: number | undefined);
|
|
@@ -20,5 +20,13 @@ export declare class RohlikAPI {
|
|
|
20
20
|
name: string;
|
|
21
21
|
products: any[];
|
|
22
22
|
}>;
|
|
23
|
+
getAccountData(): Promise<AccountData>;
|
|
24
|
+
getOrderHistory(limit?: number): Promise<any>;
|
|
25
|
+
getDeliveryInfo(): Promise<any>;
|
|
26
|
+
getUpcomingOrders(): Promise<any>;
|
|
27
|
+
getPremiumInfo(): Promise<any>;
|
|
28
|
+
getDeliverySlots(): Promise<any>;
|
|
29
|
+
getAnnouncements(): Promise<any>;
|
|
30
|
+
getReusableBagsInfo(): Promise<any>;
|
|
23
31
|
}
|
|
24
32
|
//# sourceMappingURL=rohlik-api.d.ts.map
|
package/dist/rohlik-api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rohlik-api.d.ts","sourceRoot":"","sources":["../src/rohlik-api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAqB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"rohlik-api.d.ts","sourceRoot":"","sources":["../src/rohlik-api.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAqB,WAAW,EAAE,MAAM,YAAY,CAAC;AAInH,qBAAa,cAAe,SAAQ,KAAK;IACH,MAAM,CAAC,EAAE,MAAM;gBAAvC,OAAO,EAAE,MAAM,EAAS,MAAM,CAAC,EAAE,MAAM,YAAA;CAIpD;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,cAAc,CAAc;gBAExB,WAAW,EAAE,iBAAiB;YAI5B,WAAW;IA6BnB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBtB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAOvB,cAAc,CAClB,WAAW,EAAE,MAAM,EACnB,KAAK,GAAE,MAAW,EAClB,aAAa,GAAE,OAAe,GAC7B,OAAO,CAAC,YAAY,EAAE,CAAC;IA0CpB,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAiCjD,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC;IA0BtC,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBtD,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,GAAG,EAAE,CAAA;KAAE,CAAC;IAgBnF,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC;IA0EtC,eAAe,CAAC,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,GAAG,CAAC;IAWjD,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC;IAW/B,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC;IAWjC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC;IAW9B,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC;IAehC,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC;IAWhC,mBAAmB,IAAI,OAAO,CAAC,GAAG,CAAC;CAU1C"}
|
package/dist/rohlik-api.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import fetch from 'node-fetch';
|
|
2
|
-
const BASE_URL = 'https://www.rohlik.cz';
|
|
2
|
+
const BASE_URL = process.env.ROHLIK_BASE_URL || 'https://www.rohlik.cz';
|
|
3
3
|
export class RohlikAPIError extends Error {
|
|
4
4
|
status;
|
|
5
5
|
constructor(message, status) {
|
|
@@ -179,5 +179,151 @@ export class RohlikAPI {
|
|
|
179
179
|
await this.logout();
|
|
180
180
|
}
|
|
181
181
|
}
|
|
182
|
+
async getAccountData() {
|
|
183
|
+
await this.login();
|
|
184
|
+
try {
|
|
185
|
+
const result = {};
|
|
186
|
+
// Define endpoints similar to the Python implementation
|
|
187
|
+
const endpoints = {
|
|
188
|
+
delivery: '/services/frontend-service/first-delivery?reasonableDeliveryTime=true',
|
|
189
|
+
next_order: '/api/v3/orders/upcoming',
|
|
190
|
+
announcements: '/services/frontend-service/announcements/top',
|
|
191
|
+
bags: '/api/v1/reusable-bags/user-info',
|
|
192
|
+
timeslot: '/services/frontend-service/v1/timeslot-reservation',
|
|
193
|
+
last_order: '/api/v3/orders/delivered?offset=0&limit=1',
|
|
194
|
+
premium_profile: '/services/frontend-service/premium/profile',
|
|
195
|
+
delivery_announcements: '/services/frontend-service/announcements/delivery',
|
|
196
|
+
delivered_orders: '/api/v3/orders/delivered?offset=0&limit=50'
|
|
197
|
+
};
|
|
198
|
+
// Fetch data from all endpoints
|
|
199
|
+
for (const [endpoint, path] of Object.entries(endpoints)) {
|
|
200
|
+
try {
|
|
201
|
+
const response = await this.makeRequest(path);
|
|
202
|
+
result[endpoint] = response.data || response;
|
|
203
|
+
}
|
|
204
|
+
catch (error) {
|
|
205
|
+
console.error(`Error fetching ${endpoint}:`, error);
|
|
206
|
+
result[endpoint] = null;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
// Handle next delivery slot endpoint (requires userId and addressId)
|
|
210
|
+
if (this.userId && this.addressId) {
|
|
211
|
+
try {
|
|
212
|
+
const nextDeliveryPath = `/services/frontend-service/timeslots-api/0?userId=${this.userId}&addressId=${this.addressId}&reasonableDeliveryTime=true`;
|
|
213
|
+
const response = await this.makeRequest(nextDeliveryPath);
|
|
214
|
+
result.next_delivery_slot = response.data || response;
|
|
215
|
+
}
|
|
216
|
+
catch (error) {
|
|
217
|
+
console.error('Error fetching next_delivery_slot:', error);
|
|
218
|
+
result.next_delivery_slot = null;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
result.next_delivery_slot = null;
|
|
223
|
+
}
|
|
224
|
+
// Get cart content (call internal method to avoid double login)
|
|
225
|
+
try {
|
|
226
|
+
const response = await this.makeRequest('/services/frontend-service/v2/cart');
|
|
227
|
+
const data = response.data || {};
|
|
228
|
+
result.cart = {
|
|
229
|
+
total_price: data.totalPrice || 0,
|
|
230
|
+
total_items: Object.keys(data.items || {}).length,
|
|
231
|
+
can_make_order: data.submitConditionPassed || false,
|
|
232
|
+
products: Object.entries(data.items || {}).map(([productId, productData]) => ({
|
|
233
|
+
id: productId,
|
|
234
|
+
cart_item_id: productData.orderFieldId || '',
|
|
235
|
+
name: productData.productName || '',
|
|
236
|
+
quantity: productData.quantity || 0,
|
|
237
|
+
price: productData.price || 0,
|
|
238
|
+
category_name: productData.primaryCategoryName || '',
|
|
239
|
+
brand: productData.brand || ''
|
|
240
|
+
}))
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
catch (error) {
|
|
244
|
+
console.error('Error fetching cart:', error);
|
|
245
|
+
result.cart = undefined;
|
|
246
|
+
}
|
|
247
|
+
return result;
|
|
248
|
+
}
|
|
249
|
+
finally {
|
|
250
|
+
await this.logout();
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
async getOrderHistory(limit = 50) {
|
|
254
|
+
await this.login();
|
|
255
|
+
try {
|
|
256
|
+
const response = await this.makeRequest(`/api/v3/orders/delivered?offset=0&limit=${limit}`);
|
|
257
|
+
return response.data || response;
|
|
258
|
+
}
|
|
259
|
+
finally {
|
|
260
|
+
await this.logout();
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
async getDeliveryInfo() {
|
|
264
|
+
await this.login();
|
|
265
|
+
try {
|
|
266
|
+
const response = await this.makeRequest('/services/frontend-service/first-delivery?reasonableDeliveryTime=true');
|
|
267
|
+
return response.data || response;
|
|
268
|
+
}
|
|
269
|
+
finally {
|
|
270
|
+
await this.logout();
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
async getUpcomingOrders() {
|
|
274
|
+
await this.login();
|
|
275
|
+
try {
|
|
276
|
+
const response = await this.makeRequest('/api/v3/orders/upcoming');
|
|
277
|
+
return response.data || response;
|
|
278
|
+
}
|
|
279
|
+
finally {
|
|
280
|
+
await this.logout();
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
async getPremiumInfo() {
|
|
284
|
+
await this.login();
|
|
285
|
+
try {
|
|
286
|
+
const response = await this.makeRequest('/services/frontend-service/premium/profile');
|
|
287
|
+
return response.data || response;
|
|
288
|
+
}
|
|
289
|
+
finally {
|
|
290
|
+
await this.logout();
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
async getDeliverySlots() {
|
|
294
|
+
await this.login();
|
|
295
|
+
try {
|
|
296
|
+
if (this.userId && this.addressId) {
|
|
297
|
+
const response = await this.makeRequest(`/services/frontend-service/timeslots-api/0?userId=${this.userId}&addressId=${this.addressId}&reasonableDeliveryTime=true`);
|
|
298
|
+
return response.data || response;
|
|
299
|
+
}
|
|
300
|
+
else {
|
|
301
|
+
throw new RohlikAPIError('User ID or Address ID not available');
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
finally {
|
|
305
|
+
await this.logout();
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
async getAnnouncements() {
|
|
309
|
+
await this.login();
|
|
310
|
+
try {
|
|
311
|
+
const response = await this.makeRequest('/services/frontend-service/announcements/top');
|
|
312
|
+
return response.data || response;
|
|
313
|
+
}
|
|
314
|
+
finally {
|
|
315
|
+
await this.logout();
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
async getReusableBagsInfo() {
|
|
319
|
+
await this.login();
|
|
320
|
+
try {
|
|
321
|
+
const response = await this.makeRequest('/api/v1/reusable-bags/user-info');
|
|
322
|
+
return response.data || response;
|
|
323
|
+
}
|
|
324
|
+
finally {
|
|
325
|
+
await this.logout();
|
|
326
|
+
}
|
|
327
|
+
}
|
|
182
328
|
}
|
|
183
329
|
//# sourceMappingURL=rohlik-api.js.map
|
package/dist/rohlik-api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rohlik-api.js","sourceRoot":"","sources":["../src/rohlik-api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rohlik-api.js","sourceRoot":"","sources":["../src/rohlik-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAG/B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,uBAAuB,CAAC;AAExE,MAAM,OAAO,cAAe,SAAQ,KAAK;IACH;IAApC,YAAY,OAAe,EAAS,MAAe;QACjD,KAAK,CAAC,OAAO,CAAC,CAAC;QADmB,WAAM,GAAN,MAAM,CAAS;QAEjD,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED,MAAM,OAAO,SAAS;IACZ,WAAW,CAAoB;IAC/B,MAAM,CAAU;IAChB,SAAS,CAAU;IACnB,cAAc,GAAW,EAAE,CAAC;IAEpC,YAAY,WAA8B;QACxC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,GAAW,EACX,UAAgD,EAAE;QAElD,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,YAAY,EAAE,oEAAoE;YAClF,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;YAC3D,GAAG,CAAC,OAAO,CAAC,OAAiC,IAAI,EAAE,CAAC;SACrD,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,GAAG,GAAG,EAAE,EAAE;YAChD,GAAG,OAAO;YACV,OAAO;SACR,CAAC,CAAC;QAEH,uCAAuC;QACvC,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC3D,IAAI,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,cAAc,GAAG,eAAe,CAAC;QACxC,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,cAAc,CAAC,QAAQ,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/F,CAAC;QAED,OAAO,MAAM,QAAQ,CAAC,IAAI,EAA0B,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,SAAS,GAAG;YAChB,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ;YAChC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ;YACnC,IAAI,EAAE,EAAE;SACT,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAM,kCAAkC,EAAE;YAC/E,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;SAChC,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,MAAM,IAAI,cAAc,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;YACvD,CAAC;YACD,MAAM,IAAI,cAAc,CAAC,iBAAiB,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,eAAe,EAAE,CAAC,CAAC;QAClG,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,IAAI,CAAC,WAAW,CAAC,mCAAmC,EAAE;YAC1D,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,WAAmB,EACnB,QAAgB,EAAE,EAClB,gBAAyB,KAAK;QAE9B,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAEnB,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,IAAI,eAAe,CAAC;gBACvC,MAAM,EAAE,WAAW;gBACnB,MAAM,EAAE,GAAG;gBACX,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;gBACxB,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;gBAC3C,UAAU,EAAE,MAAM;aACnB,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAM,8CAA8C,YAAY,EAAE,CAAC,CAAC;YAE3G,IAAI,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,WAAW,IAAI,EAAE,CAAC;YAEhD,2BAA2B;YAC3B,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CACpC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,CAC1D,CAAC;YAEF,iCAAiC;YACjC,IAAI,aAAa,EAAE,CAAC;gBAClB,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACtD,CAAC;YAED,gBAAgB;YAChB,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAEpC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;gBAC/B,EAAE,EAAE,CAAC,CAAC,SAAS;gBACf,IAAI,EAAE,CAAC,CAAC,WAAW;gBACnB,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE;gBAC5C,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,MAAM,EAAE,CAAC,CAAC,aAAa;aACxB,CAAC,CAAC,CAAC;QACN,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAmB;QACjC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAEnB,IAAI,CAAC;YACH,MAAM,aAAa,GAAa,EAAE,CAAC;YAEnC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG;wBACd,QAAQ,EAAE,IAAI;wBACd,SAAS,EAAE,OAAO,CAAC,UAAU;wBAC7B,QAAQ,EAAE,OAAO,CAAC,QAAQ;wBAC1B,QAAQ,EAAE,IAAI;wBACd,MAAM,EAAE,qBAAqB;qBAC9B,CAAC;oBAEF,MAAM,IAAI,CAAC,WAAW,CAAC,oCAAoC,EAAE;wBAC3D,MAAM,EAAE,MAAM;wBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;qBAC9B,CAAC,CAAC;oBAEH,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBACzC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,OAAO,CAAC,UAAU,GAAG,EAAE,KAAK,CAAC,CAAC;gBACvE,CAAC;YACH,CAAC;YAED,OAAO,aAAa,CAAC;QACvB,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAEnB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAM,oCAAoC,CAAC,CAAC;YACnF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;YAEjC,OAAO;gBACL,WAAW,EAAE,IAAI,CAAC,UAAU,IAAI,CAAC;gBACjC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM;gBACjD,cAAc,EAAE,IAAI,CAAC,qBAAqB,IAAI,KAAK;gBACnD,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,WAAW,CAAgB,EAAE,EAAE,CAAC,CAAC;oBAC3F,EAAE,EAAE,SAAS;oBACb,YAAY,EAAE,WAAW,CAAC,YAAY,IAAI,EAAE;oBAC5C,IAAI,EAAE,WAAW,CAAC,WAAW,IAAI,EAAE;oBACnC,QAAQ,EAAE,WAAW,CAAC,QAAQ,IAAI,CAAC;oBACnC,KAAK,EAAE,WAAW,CAAC,KAAK,IAAI,CAAC;oBAC7B,aAAa,EAAE,WAAW,CAAC,mBAAmB,IAAI,EAAE;oBACpD,KAAK,EAAE,WAAW,CAAC,KAAK,IAAI,EAAE;iBAC/B,CAAC,CAAC;aACJ,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,YAAoB;QACvC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAEnB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,WAAW,CAAC,mDAAmD,YAAY,EAAE,EAAE;gBACxF,MAAM,EAAE,QAAQ;aACjB,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,YAAY,GAAG,EAAE,KAAK,CAAC,CAAC;YAC/D,OAAO,KAAK,CAAC;QACf,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,cAAsB;QAC1C,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAEnB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAM,6BAA6B,cAAc,EAAE,CAAC,CAAC;YAC5F,2CAA2C;YAC3C,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC;YAC3C,OAAO;gBACL,IAAI,EAAE,QAAQ,EAAE,IAAI,IAAI,cAAc;gBACtC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,IAAI,EAAE;aACnC,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAEnB,IAAI,CAAC;YACH,MAAM,MAAM,GAAgB,EAAE,CAAC;YAE/B,wDAAwD;YACxD,MAAM,SAAS,GAAG;gBAChB,QAAQ,EAAE,uEAAuE;gBACjF,UAAU,EAAE,yBAAyB;gBACrC,aAAa,EAAE,8CAA8C;gBAC7D,IAAI,EAAE,iCAAiC;gBACvC,QAAQ,EAAE,oDAAoD;gBAC9D,UAAU,EAAE,2CAA2C;gBACvD,eAAe,EAAE,4CAA4C;gBAC7D,sBAAsB,EAAE,mDAAmD;gBAC3E,gBAAgB,EAAE,4CAA4C;aAC/D,CAAC;YAEF,gCAAgC;YAChC,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzD,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAM,IAAI,CAAC,CAAC;oBAClD,MAAc,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC;gBACxD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,kBAAkB,QAAQ,GAAG,EAAE,KAAK,CAAC,CAAC;oBACnD,MAAc,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;gBACnC,CAAC;YACH,CAAC;YAED,qEAAqE;YACrE,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBAClC,IAAI,CAAC;oBACH,MAAM,gBAAgB,GAAG,qDAAqD,IAAI,CAAC,MAAM,cAAc,IAAI,CAAC,SAAS,8BAA8B,CAAC;oBACpJ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAM,gBAAgB,CAAC,CAAC;oBAC/D,MAAM,CAAC,kBAAkB,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC;gBACxD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;oBAC3D,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC;gBACnC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC;YACnC,CAAC;YAED,gEAAgE;YAChE,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAM,oCAAoC,CAAC,CAAC;gBACnF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC;gBAEjC,MAAM,CAAC,IAAI,GAAG;oBACZ,WAAW,EAAE,IAAI,CAAC,UAAU,IAAI,CAAC;oBACjC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM;oBACjD,cAAc,EAAE,IAAI,CAAC,qBAAqB,IAAI,KAAK;oBACnD,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,WAAW,CAAgB,EAAE,EAAE,CAAC,CAAC;wBAC3F,EAAE,EAAE,SAAS;wBACb,YAAY,EAAE,WAAW,CAAC,YAAY,IAAI,EAAE;wBAC5C,IAAI,EAAE,WAAW,CAAC,WAAW,IAAI,EAAE;wBACnC,QAAQ,EAAE,WAAW,CAAC,QAAQ,IAAI,CAAC;wBACnC,KAAK,EAAE,WAAW,CAAC,KAAK,IAAI,CAAC;wBAC7B,aAAa,EAAE,WAAW,CAAC,mBAAmB,IAAI,EAAE;wBACpD,KAAK,EAAE,WAAW,CAAC,KAAK,IAAI,EAAE;qBAC/B,CAAC,CAAC;iBACJ,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;gBAC7C,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC;YAC1B,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,QAAgB,EAAE;QACtC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAEnB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAM,2CAA2C,KAAK,EAAE,CAAC,CAAC;YACjG,OAAO,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC;QACnC,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAEnB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAM,uEAAuE,CAAC,CAAC;YACtH,OAAO,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC;QACnC,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAEnB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAM,yBAAyB,CAAC,CAAC;YACxE,OAAO,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC;QACnC,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAEnB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAM,4CAA4C,CAAC,CAAC;YAC3F,OAAO,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC;QACnC,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAEnB,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBAClC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAM,qDAAqD,IAAI,CAAC,MAAM,cAAc,IAAI,CAAC,SAAS,8BAA8B,CAAC,CAAC;gBACzK,OAAO,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,cAAc,CAAC,qCAAqC,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAEnB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAM,8CAA8C,CAAC,CAAC;YAC7F,OAAO,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC;QACnC,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAEnB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAM,iCAAiC,CAAC,CAAC;YAChF,OAAO,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC;QACnC,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;CACF"}
|