n8n-nodes-excel-ai 1.0.2 → 1.0.5

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 CHANGED
@@ -19,7 +19,7 @@ A powerful n8n community node for performing CRUD (Create, Read, Update, Delete)
19
19
  - **Create**: Add new rows with automatic column mapping
20
20
  - **Update**: Modify existing rows with partial updates
21
21
  - **Delete**: Remove rows by row number
22
- - **Search**: Find rows with advanced matching (exact, contains, starts/ends with)
22
+ - **Filter**: Filter rows with advanced conditions and multiple operators
23
23
 
24
24
  ### 🗂️ Worksheet Management
25
25
  - **List Worksheets**: Get all sheets in a workbook
@@ -45,6 +45,25 @@ cd ~/.n8n/nodes
45
45
  npm install n8n-nodes-excel-ai
46
46
  ```
47
47
 
48
+ #### 🔒 Security: Fix form-data Vulnerability
49
+
50
+ To resolve the `form-data` security vulnerability from `n8n-workflow`, add this to your `package.json` in the installation directory:
51
+
52
+ ```json
53
+ {
54
+ "overrides": {
55
+ "form-data": "^4.0.4"
56
+ }
57
+ }
58
+ ```
59
+
60
+ Then reinstall:
61
+
62
+ ```bash
63
+ npm install
64
+ npm audit
65
+ ```
66
+
48
67
  ### Option 2: Docker
49
68
 
50
69
  Add to your `docker-compose.yml`:
@@ -128,17 +147,19 @@ Row Data: {"Name": "Bob Wilson", "Email": "bob@example.com", "Status": "Active"}
128
147
  }
129
148
  ```
130
149
 
131
- #### 3. Find Rows
150
+ #### 3. Filter Rows
132
151
 
133
152
  ```javascript
134
153
  // Node Configuration
135
154
  Resource: Row
136
- Operation: Find Rows
155
+ Operation: Filter Rows
137
156
  File Path: /data/customers.xlsx
138
157
  Sheet Name: Customers
139
- Search Column: Status
140
- Search Value: Active
141
- Match Type: exact
158
+ Filter Conditions:
159
+ - Field: Status
160
+ - Operator: equals
161
+ - Value: Active
162
+ Condition Logic: and
142
163
 
143
164
  // Output
144
165
  [
@@ -181,24 +202,26 @@ Match Type: exact
181
202
  }
182
203
  ```
183
204
 
184
- #### Example 3: Search with AI
205
+ #### Example 3: Filter with AI
185
206
 
186
207
  **User:** "Find all active customers in Boston"
187
208
 
188
209
  **AI Agent Execution:**
189
210
  ```javascript
190
211
  {
191
- "operation": "findRows",
212
+ "operation": "filterRows",
192
213
  "filePath": "/data/customers.xlsx",
193
214
  "sheetName": "Customers",
194
- "searchColumn": "Status",
195
- "searchValue": "Active",
196
- "matchType": "exact"
215
+ "filterConditions": {
216
+ "conditions": [
217
+ { "field": "Status", "operator": "equals", "value": "Active" },
218
+ { "field": "City", "operator": "equals", "value": "Boston" }
219
+ ]
220
+ },
221
+ "conditionLogic": "and"
197
222
  }
198
223
  ```
199
224
 
200
- Then filter by City in subsequent operation.
201
-
202
225
  ## 📚 Operations Reference
203
226
 
204
227
  ### Row Operations
@@ -236,14 +259,117 @@ Then filter by City in subsequent operation.
236
259
  - `rowNumber`: Row to delete (cannot be 1 - header row)
237
260
  - **Returns**: Success status
238
261
 
239
- #### Find Rows
240
- - **Purpose**: Search for rows matching criteria
262
+ #### Filter Rows
263
+ - **Purpose**: Filter rows with multiple conditions and logical operators
241
264
  - **Parameters**:
242
- - `searchColumn`: Column to search in
243
- - `searchValue`: Value to search for
244
- - `matchType`: exact | contains | startsWith | endsWith
245
- - `returnRowNumbers`: Return only row numbers (default: false)
246
- - **Returns**: Array of matching rows or row numbers
265
+ - `filterConditions`: Array of filter conditions, each with:
266
+ - `field`: Column name to filter
267
+ - `operator`: equals | notEquals | contains | notContains | greaterThan | greaterOrEqual | lessThan | lessOrEqual | startsWith | endsWith | isEmpty | isNotEmpty
268
+ - `value`: Value to compare (not required for isEmpty/isNotEmpty)
269
+ - `conditionLogic`: and | or - How to combine multiple conditions
270
+ - **Returns**: Array of matching rows with _rowNumber field
271
+
272
+ **Filter Rows Examples:**
273
+
274
+ 1. **Single Condition - Exact Match:**
275
+ ```javascript
276
+ {
277
+ "operation": "filterRows",
278
+ "filePath": "/data/employees.xlsx",
279
+ "sheetName": "Staff",
280
+ "filterConditions": {
281
+ "conditions": [
282
+ { "field": "Department", "operator": "equals", "value": "Engineering" }
283
+ ]
284
+ },
285
+ "conditionLogic": "and"
286
+ }
287
+ ```
288
+
289
+ 2. **Multiple Conditions with AND:**
290
+ ```javascript
291
+ {
292
+ "operation": "filterRows",
293
+ "filePath": "/data/products.xlsx",
294
+ "sheetName": "Inventory",
295
+ "filterConditions": {
296
+ "conditions": [
297
+ { "field": "Category", "operator": "equals", "value": "Electronics" },
298
+ { "field": "Price", "operator": "greaterThan", "value": "100" },
299
+ { "field": "Stock", "operator": "greaterThan", "value": "0" }
300
+ ]
301
+ },
302
+ "conditionLogic": "and"
303
+ }
304
+ ```
305
+
306
+ 3. **Multiple Conditions with OR:**
307
+ ```javascript
308
+ {
309
+ "operation": "filterRows",
310
+ "filterConditions": {
311
+ "conditions": [
312
+ { "field": "Priority", "operator": "equals", "value": "High" },
313
+ { "field": "Priority", "operator": "equals", "value": "Urgent" }
314
+ ]
315
+ },
316
+ "conditionLogic": "or"
317
+ }
318
+ ```
319
+
320
+ 4. **Text Search with Contains:**
321
+ ```javascript
322
+ {
323
+ "operation": "filterRows",
324
+ "filterConditions": {
325
+ "conditions": [
326
+ { "field": "Email", "operator": "contains", "value": "@company.com" }
327
+ ]
328
+ },
329
+ "conditionLogic": "and"
330
+ }
331
+ ```
332
+
333
+ 5. **Check for Empty Fields:**
334
+ ```javascript
335
+ {
336
+ "operation": "filterRows",
337
+ "filterConditions": {
338
+ "conditions": [
339
+ { "field": "Phone", "operator": "isEmpty" }
340
+ ]
341
+ },
342
+ "conditionLogic": "and"
343
+ }
344
+ ```
345
+
346
+ 6. **Range Filter:**
347
+ ```javascript
348
+ {
349
+ "operation": "filterRows",
350
+ "filterConditions": {
351
+ "conditions": [
352
+ { "field": "Age", "operator": "greaterOrEqual", "value": "18" },
353
+ { "field": "Age", "operator": "lessOrEqual", "value": "65" }
354
+ ]
355
+ },
356
+ "conditionLogic": "and"
357
+ }
358
+ ```
359
+
360
+ **Available Operators:**
361
+ - `equals` - Exact match
362
+ - `notEquals` - Not equal to
363
+ - `contains` - Text contains substring
364
+ - `notContains` - Text does not contain substring
365
+ - `greaterThan` - Numeric greater than
366
+ - `greaterOrEqual` - Numeric greater than or equal
367
+ - `lessThan` - Numeric less than
368
+ - `lessOrEqual` - Numeric less than or equal
369
+ - `startsWith` - Text starts with
370
+ - `endsWith` - Text ends with
371
+ - `isEmpty` - Field is empty or null
372
+ - `isNotEmpty` - Field has a value
247
373
 
248
374
  ### Worksheet Operations
249
375
 
@@ -450,7 +576,7 @@ The node automatically detects columns from the header row (row 1) and maps your
450
576
  // Error Response Format
451
577
  {
452
578
  "error": "Column 'InvalidColumn' not found",
453
- "operation": "findRows",
579
+ "operation": "filterRows",
454
580
  "resource": "row"
455
581
  }
456
582
  ```
@@ -537,22 +663,44 @@ npm run lintfix
537
663
 
538
664
  ## 📝 Changelog
539
665
 
540
- ### v1.0.0 (Latest)
666
+ ### v1.0.3 (2026-01-05) - Current
667
+ - 🔄 **BREAKING CHANGE**: Replaced `Find Rows` operation with more powerful `Filter Rows`
668
+ - ✨ **Filter Rows Features**:
669
+ - Support for 12 advanced operators (equals, notEquals, contains, notContains, greaterThan, greaterOrEqual, lessThan, lessOrEqual, startsWith, endsWith, isEmpty, isNotEmpty)
670
+ - Multiple filter conditions with AND/OR logic
671
+ - Automatic row number tracking in results
672
+ - Support for both File Path and Binary Data modes
673
+ - Complex filtering scenarios (ranges, text search, empty checks)
674
+ - 📝 Updated documentation with comprehensive Filter Rows examples
675
+ - 🧪 Added 14 new test cases for Filter Rows functionality
676
+ - 📚 Enhanced AI Agent examples with Filter Rows usage
677
+
678
+ ### v1.0.2
679
+ - 🐛 Bug fixes and performance improvements
680
+ - 📝 Documentation updates
681
+
682
+ ### v1.0.1
683
+ - 🔧 Minor improvements
684
+ - 📝 README enhancements
685
+
686
+ ### v1.0.0
541
687
  - ✨ Added full AI Agent integration (`usableAsTool: true`)
542
688
  - ✨ Automatic column detection and mapping
543
689
  - ✨ Enhanced JSON data handling
544
690
  - 📝 Improved parameter descriptions for AI
545
691
  - 🐛 Better error messages
546
692
  - 📚 Comprehensive AI usage documentation
547
- - Added worksheet operations
548
- - Binary data support
549
- - Auto-save option
550
- - Find rows operation
551
- - Advanced search with match types
552
- - Insert row operation
553
- - Initial release
554
- - Basic CRUD operations
555
- - File path support
693
+ - Added worksheet operations (List, Create, Delete, Rename, Copy, Get Info)
694
+ - Binary data support
695
+ - Auto-save option
696
+ - Insert row operation
697
+ - Find rows operation (deprecated in v1.0.3)
698
+
699
+ ### v0.9.0
700
+ - 🎉 Initial release
701
+ - Basic CRUD operations (Create, Read, Update, Delete)
702
+ - ✅ File path support
703
+ - ✅ Excel file handling with ExcelJS
556
704
 
557
705
  ## 🤝 Contributing
558
706
 
package/README.zh-TW.md CHANGED
@@ -19,7 +19,7 @@
19
19
  - **新增**:使用自動欄位映射新增列
20
20
  - **更新**:部分更新現有列
21
21
  - **刪除**:依行號刪除列
22
- - **搜尋**:使用進階匹配尋找行(精確匹配、包含、開頭/結尾匹配)
22
+ - **過濾**:使用進階條件和多種運算符過濾列
23
23
 
24
24
  ### 🗂️ 工作表管理
25
25
  - **列出工作表**:取得活頁簿中的所有工作表
@@ -45,6 +45,25 @@ cd ~/.n8n/nodes
45
45
  npm install n8n-nodes-excel-ai
46
46
  ```
47
47
 
48
+ #### 🔒 安全性:修復 form-data 漏洞
49
+
50
+ 為了解決來自 `n8n-workflow` 的 `form-data` 安全漏洞,請在安裝目錄的 `package.json` 中加入:
51
+
52
+ ```json
53
+ {
54
+ "overrides": {
55
+ "form-data": "^4.0.4"
56
+ }
57
+ }
58
+ ```
59
+
60
+ 然後重新安裝:
61
+
62
+ ```bash
63
+ npm install
64
+ npm audit
65
+ ```
66
+
48
67
  ### 選項 2:Docker
49
68
 
50
69
  在您的 `docker-compose.yml` 中新增:
@@ -124,16 +143,18 @@ npm link n8n-nodes-excel-ai
124
143
  }
125
144
  ```
126
145
 
127
- #### 3. 尋找列
146
+ #### 3. 過濾列
128
147
  ```javascript
129
148
  // 節點設定
130
149
  資源:列
131
- 操作:尋找列
150
+ 操作:過濾列
132
151
  檔案路徑:/data/customers.xlsx
133
152
  工作表名稱:Customers
134
- 搜尋欄位:Status
135
- 搜尋值:Active
136
- 匹配類型:exact
153
+ 過濾條件:
154
+ - 欄位:Status
155
+ - 運算符:equals
156
+ - 值:Active
157
+ 條件邏輯:and
137
158
 
138
159
  // 輸出
139
160
  [
@@ -176,24 +197,26 @@ npm link n8n-nodes-excel-ai
176
197
  }
177
198
  ```
178
199
 
179
- #### 範例 3:使用 AI 搜尋
200
+ #### 範例 3:使用 AI 過濾
180
201
 
181
202
  **使用者:** "找出波士頓的所有活躍客戶"
182
203
 
183
204
  **AI Agent 執行:**
184
205
  ```javascript
185
206
  {
186
- "operation": "findRows",
207
+ "operation": "filterRows",
187
208
  "filePath": "/data/customers.xlsx",
188
209
  "sheetName": "Customers",
189
- "searchColumn": "Status",
190
- "searchValue": "Active",
191
- "matchType": "exact"
210
+ "filterConditions": {
211
+ "conditions": [
212
+ { "field": "Status", "operator": "equals", "value": "Active" },
213
+ { "field": "City", "operator": "equals", "value": "Boston" }
214
+ ]
215
+ },
216
+ "conditionLogic": "and"
192
217
  }
193
218
  ```
194
219
 
195
- 然後在後續操作中按城市篩選。
196
-
197
220
  ## 📚 操作參考
198
221
 
199
222
  ### 列操作
@@ -231,14 +254,117 @@ npm link n8n-nodes-excel-ai
231
254
  - `rowNumber`:要刪除的列(不能是 1 - 標題列)
232
255
  - **返回**:成功狀態
233
256
 
234
- #### 尋找列
235
- - **用途**:搜尋符合條件的列
257
+ #### 過濾列
258
+ - **用途**:使用多個條件和邏輯運算符過濾列
236
259
  - **參數**:
237
- - `searchColumn`:要搜尋的欄位
238
- - `searchValue`:要搜尋的值
239
- - `matchType`:exact | contains | startsWith | endsWith
240
- - `returnRowNumbers`:只返回列號(預設:false)
241
- - **返回**:符合列的陣列或列號
260
+ - `filterConditions`:過濾條件陣列,每個條件包含:
261
+ - `field`:要過濾的欄位名稱
262
+ - `operator`:equals | notEquals | contains | notContains | greaterThan | greaterOrEqual | lessThan | lessOrEqual | startsWith | endsWith | isEmpty | isNotEmpty
263
+ - `value`:要比較的值(isEmpty/isNotEmpty 不需要)
264
+ - `conditionLogic`:and | or - 如何組合多個條件
265
+ - **返回**:符合的列陣列,包含 _rowNumber 欄位
266
+
267
+ **過濾列範例:**
268
+
269
+ 1. **單一條件 - 精確匹配:**
270
+ ```javascript
271
+ {
272
+ "operation": "filterRows",
273
+ "filePath": "/data/employees.xlsx",
274
+ "sheetName": "Staff",
275
+ "filterConditions": {
276
+ "conditions": [
277
+ { "field": "Department", "operator": "equals", "value": "Engineering" }
278
+ ]
279
+ },
280
+ "conditionLogic": "and"
281
+ }
282
+ ```
283
+
284
+ 2. **使用 AND 的多條件:**
285
+ ```javascript
286
+ {
287
+ "operation": "filterRows",
288
+ "filePath": "/data/products.xlsx",
289
+ "sheetName": "Inventory",
290
+ "filterConditions": {
291
+ "conditions": [
292
+ { "field": "Category", "operator": "equals", "value": "Electronics" },
293
+ { "field": "Price", "operator": "greaterThan", "value": "100" },
294
+ { "field": "Stock", "operator": "greaterThan", "value": "0" }
295
+ ]
296
+ },
297
+ "conditionLogic": "and"
298
+ }
299
+ ```
300
+
301
+ 3. **使用 OR 的多條件:**
302
+ ```javascript
303
+ {
304
+ "operation": "filterRows",
305
+ "filterConditions": {
306
+ "conditions": [
307
+ { "field": "Priority", "operator": "equals", "value": "High" },
308
+ { "field": "Priority", "operator": "equals", "value": "Urgent" }
309
+ ]
310
+ },
311
+ "conditionLogic": "or"
312
+ }
313
+ ```
314
+
315
+ 4. **使用 Contains 的文字搜尋:**
316
+ ```javascript
317
+ {
318
+ "operation": "filterRows",
319
+ "filterConditions": {
320
+ "conditions": [
321
+ { "field": "Email", "operator": "contains", "value": "@company.com" }
322
+ ]
323
+ },
324
+ "conditionLogic": "and"
325
+ }
326
+ ```
327
+
328
+ 5. **檢查空白欄位:**
329
+ ```javascript
330
+ {
331
+ "operation": "filterRows",
332
+ "filterConditions": {
333
+ "conditions": [
334
+ { "field": "Phone", "operator": "isEmpty" }
335
+ ]
336
+ },
337
+ "conditionLogic": "and"
338
+ }
339
+ ```
340
+
341
+ 6. **範圍過濾:**
342
+ ```javascript
343
+ {
344
+ "operation": "filterRows",
345
+ "filterConditions": {
346
+ "conditions": [
347
+ { "field": "Age", "operator": "greaterOrEqual", "value": "18" },
348
+ { "field": "Age", "operator": "lessOrEqual", "value": "65" }
349
+ ]
350
+ },
351
+ "conditionLogic": "and"
352
+ }
353
+ ```
354
+
355
+ **可用運算符:**
356
+ - `equals` - 精確匹配
357
+ - `notEquals` - 不等於
358
+ - `contains` - 文字包含子字串
359
+ - `notContains` - 文字不包含子字串
360
+ - `greaterThan` - 數值大於
361
+ - `greaterOrEqual` - 數值大於或等於
362
+ - `lessThan` - 數值小於
363
+ - `lessOrEqual` - 數值小於或等於
364
+ - `startsWith` - 文字開始於
365
+ - `endsWith` - 文字結束於
366
+ - `isEmpty` - 欄位為空或 null
367
+ - `isNotEmpty` - 欄位有值
242
368
 
243
369
  ### 工作表操作
244
370
 
@@ -445,7 +571,7 @@ AI Agent → Excel AI 節點
445
571
  // 錯誤回應格式
446
572
  {
447
573
  "error": "Column 'InvalidColumn' not found",
448
- "operation": "findRows",
574
+ "operation": "filterRows",
449
575
  "resource": "row"
450
576
  }
451
577
  ```
@@ -532,22 +658,44 @@ npm run lintfix
532
658
 
533
659
  ## 📝 變更日誌
534
660
 
535
- ### v1.0.0(最新)
661
+ ### v1.0.3 (2026-01-05) - 目前版本
662
+ - 🔄 **重大變更**:將 `尋找列` 操作替換為更強大的 `過濾列`
663
+ - ✨ **過濾列功能**:
664
+ - 支援 12 種進階運算符(equals、notEquals、contains、notContains、greaterThan、greaterOrEqual、lessThan、lessOrEqual、startsWith、endsWith、isEmpty、isNotEmpty)
665
+ - 支援 AND/OR 邏輯的多重過濾條件
666
+ - 結果自動追蹤行號
667
+ - 支援檔案路徑和二進位資料模式
668
+ - 支援複雜過濾場景(範圍、文字搜尋、空值檢查)
669
+ - 📝 更新文件,提供完整的過濾列範例
670
+ - 🧪 新增 14 個過濾列功能測試案例
671
+ - 📚 增強 AI Agent 範例,展示過濾列用法
672
+
673
+ ### v1.0.2
674
+ - 🐛 錯誤修復和效能改進
675
+ - 📝 文件更新
676
+
677
+ ### v1.0.1
678
+ - 🔧 小幅改進
679
+ - 📝 README 增強
680
+
681
+ ### v1.0.0
536
682
  - ✨ 新增完整的 AI Agent 整合(`usableAsTool: true`)
537
683
  - ✨ 自動欄位偵測和映射
538
684
  - ✨ 增強的 JSON 資料處理
539
685
  - 📝 改進 AI 的參數描述
540
686
  - 🐛 更好的錯誤訊息
541
687
  - 📚 全面的 AI 使用文件
542
- - 新增工作表操作
543
- - 二進位資料支援
544
- - 自動儲存選項
545
- - 尋找列操作
546
- - 帶匹配類型的進階搜尋
547
- - 插入列操作
548
- - 初始版本
549
- - 基本 CRUD 操作
550
- - 檔案路徑支援
688
+ - ➕ 新增工作表操作(列表、建立、刪除、重新命名、複製、取得資訊)
689
+ - 二進位資料支援
690
+ - 自動儲存選項
691
+ - ➕ 插入列操作
692
+ - ➕ 尋找列操作(在 v1.0.3 中已棄用)
693
+
694
+ ### v0.9.0
695
+ - 🎉 初始版本
696
+ - ✅ 基本 CRUD 操作(新增、讀取、更新、刪除)
697
+ - ✅ 檔案路徑支援
698
+ - ✅ 使用 ExcelJS 處理 Excel 檔案
551
699
 
552
700
  ## 🤝 貢獻
553
701
 
@@ -12,11 +12,11 @@ export declare class ExcelAI implements INodeType {
12
12
  private static mapRowData;
13
13
  private static parseJsonInput;
14
14
  private static handleReadRows;
15
+ private static handleFilterRows;
15
16
  private static handleAppendRow;
16
17
  private static handleInsertRow;
17
18
  private static handleUpdateRow;
18
19
  private static handleDeleteRow;
19
- private static handleFindRows;
20
20
  private static handleListWorksheets;
21
21
  private static handleCreateWorksheet;
22
22
  private static handleDeleteWorksheet;
@@ -132,6 +132,12 @@ class ExcelAI {
132
132
  description: 'Read data from Excel file',
133
133
  action: 'Read rows from Excel',
134
134
  },
135
+ {
136
+ name: 'Filter Rows',
137
+ value: 'filterRows',
138
+ description: 'Filter rows by conditions',
139
+ action: 'Filter rows in Excel',
140
+ },
135
141
  {
136
142
  name: 'Append Row',
137
143
  value: 'appendRow',
@@ -156,12 +162,6 @@ class ExcelAI {
156
162
  description: 'Delete a specific row',
157
163
  action: 'Delete row from Excel',
158
164
  },
159
- {
160
- name: 'Find Rows',
161
- value: 'findRows',
162
- description: 'Search for rows matching criteria',
163
- action: 'Find rows in Excel',
164
- },
165
165
  ],
166
166
  default: 'readRows',
167
167
  },
@@ -276,6 +276,148 @@ class ExcelAI {
276
276
  default: 0,
277
277
  description: 'Row number to end reading (0 means read all rows)',
278
278
  },
279
+ // Filter Rows Parameters (File Path Mode)
280
+ {
281
+ displayName: 'Filter Conditions',
282
+ name: 'filterConditions',
283
+ type: 'fixedCollection',
284
+ typeOptions: { multipleValues: true },
285
+ displayOptions: {
286
+ show: {
287
+ resource: ['row'],
288
+ operation: ['filterRows'],
289
+ inputMode: ['filePath'],
290
+ }
291
+ },
292
+ default: {},
293
+ options: [
294
+ {
295
+ name: 'conditions',
296
+ displayName: 'Condition',
297
+ values: [
298
+ {
299
+ displayName: 'Field Name',
300
+ name: 'field',
301
+ type: 'options',
302
+ typeOptions: {
303
+ loadOptionsMethod: 'getColumns',
304
+ loadOptionsDependsOn: ['filePath', 'sheetNameOptions'],
305
+ },
306
+ default: '',
307
+ description: 'Column to filter on',
308
+ },
309
+ {
310
+ displayName: 'Operator',
311
+ name: 'operator',
312
+ type: 'options',
313
+ options: [
314
+ { name: 'Equals', value: 'equals' },
315
+ { name: 'Not Equals', value: 'notEquals' },
316
+ { name: 'Contains', value: 'contains' },
317
+ { name: 'Not Contains', value: 'notContains' },
318
+ { name: 'Greater Than', value: 'greaterThan' },
319
+ { name: 'Greater or Equal', value: 'greaterOrEqual' },
320
+ { name: 'Less Than', value: 'lessThan' },
321
+ { name: 'Less or Equal', value: 'lessOrEqual' },
322
+ { name: 'Starts With', value: 'startsWith' },
323
+ { name: 'Ends With', value: 'endsWith' },
324
+ { name: 'Is Empty', value: 'isEmpty' },
325
+ { name: 'Is Not Empty', value: 'isNotEmpty' },
326
+ ],
327
+ default: 'equals',
328
+ },
329
+ {
330
+ displayName: 'Value',
331
+ name: 'value',
332
+ type: 'string',
333
+ default: '',
334
+ displayOptions: {
335
+ hide: {
336
+ operator: ['isEmpty', 'isNotEmpty']
337
+ }
338
+ }
339
+ },
340
+ ],
341
+ },
342
+ ],
343
+ },
344
+ // Filter Rows Parameters (Binary Data Mode)
345
+ {
346
+ displayName: 'Filter Conditions',
347
+ name: 'filterConditionsBinary',
348
+ type: 'fixedCollection',
349
+ typeOptions: { multipleValues: true },
350
+ displayOptions: {
351
+ show: {
352
+ resource: ['row'],
353
+ operation: ['filterRows'],
354
+ inputMode: ['binaryData'],
355
+ }
356
+ },
357
+ default: {},
358
+ options: [
359
+ {
360
+ name: 'conditions',
361
+ displayName: 'Condition',
362
+ values: [
363
+ {
364
+ displayName: 'Field Name',
365
+ name: 'field',
366
+ type: 'string',
367
+ default: '',
368
+ description: 'Column name to filter on',
369
+ },
370
+ {
371
+ displayName: 'Operator',
372
+ name: 'operator',
373
+ type: 'options',
374
+ options: [
375
+ { name: 'Equals', value: 'equals' },
376
+ { name: 'Not Equals', value: 'notEquals' },
377
+ { name: 'Contains', value: 'contains' },
378
+ { name: 'Not Contains', value: 'notContains' },
379
+ { name: 'Greater Than', value: 'greaterThan' },
380
+ { name: 'Greater or Equal', value: 'greaterOrEqual' },
381
+ { name: 'Less Than', value: 'lessThan' },
382
+ { name: 'Less or Equal', value: 'lessOrEqual' },
383
+ { name: 'Starts With', value: 'startsWith' },
384
+ { name: 'Ends With', value: 'endsWith' },
385
+ { name: 'Is Empty', value: 'isEmpty' },
386
+ { name: 'Is Not Empty', value: 'isNotEmpty' },
387
+ ],
388
+ default: 'equals',
389
+ },
390
+ {
391
+ displayName: 'Value',
392
+ name: 'value',
393
+ type: 'string',
394
+ default: '',
395
+ displayOptions: {
396
+ hide: {
397
+ operator: ['isEmpty', 'isNotEmpty']
398
+ }
399
+ }
400
+ },
401
+ ],
402
+ },
403
+ ],
404
+ },
405
+ {
406
+ displayName: 'Condition Logic',
407
+ name: 'conditionLogic',
408
+ type: 'options',
409
+ displayOptions: {
410
+ show: {
411
+ resource: ['row'],
412
+ operation: ['filterRows']
413
+ }
414
+ },
415
+ options: [
416
+ { name: 'AND', value: 'and', description: 'All conditions must match' },
417
+ { name: 'OR', value: 'or', description: 'Any condition must match' },
418
+ ],
419
+ default: 'and',
420
+ },
279
421
  // Row Data (JSON) for Add/Insert
280
422
  {
281
423
  displayName: 'Row Data',
@@ -323,87 +465,6 @@ class ExcelAI {
323
465
  placeholder: '{"Email": "newemail@example.com", "Status": "Active"}',
324
466
  description: 'Data to update as JSON object. Only specified columns will be updated.',
325
467
  },
326
- // Find Rows Parameters
327
- {
328
- displayName: 'Search Column',
329
- name: 'searchColumn',
330
- type: 'options',
331
- typeOptions: {
332
- loadOptionsMethod: 'getColumns',
333
- loadOptionsDependsOn: ['filePath', 'sheetNameOptions'],
334
- },
335
- displayOptions: {
336
- show: {
337
- resource: ['row'],
338
- operation: ['findRows'],
339
- },
340
- },
341
- default: '',
342
- required: true,
343
- description: 'Column to search in',
344
- },
345
- {
346
- displayName: 'Search Value',
347
- name: 'searchValue',
348
- type: 'string',
349
- displayOptions: {
350
- show: {
351
- resource: ['row'],
352
- operation: ['findRows'],
353
- },
354
- },
355
- default: '',
356
- required: true,
357
- description: 'Value to search for',
358
- },
359
- {
360
- displayName: 'Match Type',
361
- name: 'matchType',
362
- type: 'options',
363
- options: [
364
- {
365
- name: 'Exact',
366
- value: 'exact',
367
- description: 'Exact match (case-insensitive)',
368
- },
369
- {
370
- name: 'Contains',
371
- value: 'contains',
372
- description: 'Contains substring (case-insensitive)',
373
- },
374
- {
375
- name: 'Starts With',
376
- value: 'startsWith',
377
- description: 'Starts with (case-insensitive)',
378
- },
379
- {
380
- name: 'Ends With',
381
- value: 'endsWith',
382
- description: 'Ends with (case-insensitive)',
383
- },
384
- ],
385
- displayOptions: {
386
- show: {
387
- resource: ['row'],
388
- operation: ['findRows'],
389
- },
390
- },
391
- default: 'exact',
392
- description: 'How to match the search value',
393
- },
394
- {
395
- displayName: 'Return Row Numbers Only',
396
- name: 'returnRowNumbers',
397
- type: 'boolean',
398
- displayOptions: {
399
- show: {
400
- resource: ['row'],
401
- operation: ['findRows'],
402
- },
403
- },
404
- default: false,
405
- description: 'Whether to return only row numbers instead of full row data',
406
- },
407
468
  // Worksheet Parameters
408
469
  {
409
470
  displayName: 'Worksheet Name',
@@ -596,31 +657,37 @@ class ExcelAI {
596
657
  async execute() {
597
658
  const items = this.getInputData();
598
659
  const returnData = [];
599
- for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
660
+ // For read-only operations (readRows, filterRows), execute once using the first item's parameters
661
+ const resource = this.getNodeParameter('resource', 0);
662
+ const operation = resource === 'row' ? this.getNodeParameter('operation', 0) : '';
663
+ const isReadOnlyOperation = operation === 'readRows' || operation === 'filterRows';
664
+ const itemsToProcess = isReadOnlyOperation ? [items[0]] : items;
665
+ for (let itemIndex = 0; itemIndex < itemsToProcess.length; itemIndex++) {
600
666
  try {
601
- const resource = this.getNodeParameter('resource', itemIndex);
602
- const inputMode = this.getNodeParameter('inputMode', itemIndex);
667
+ const currentIndex = isReadOnlyOperation ? 0 : itemIndex;
668
+ const resource = this.getNodeParameter('resource', currentIndex);
669
+ const inputMode = this.getNodeParameter('inputMode', currentIndex);
603
670
  // Load workbook
604
671
  let workbook;
605
672
  let filePath = '';
606
673
  let result;
607
674
  if (inputMode === 'filePath') {
608
- filePath = this.getNodeParameter('filePath', itemIndex);
675
+ filePath = this.getNodeParameter('filePath', currentIndex);
609
676
  workbook = new ExcelJS.Workbook();
610
677
  await workbook.xlsx.readFile(filePath);
611
678
  }
612
679
  else {
613
- const binaryPropertyName = this.getNodeParameter('binaryPropertyName', itemIndex);
614
- await this.helpers.assertBinaryData(itemIndex, binaryPropertyName);
615
- const buffer = await this.helpers.getBinaryDataBuffer(itemIndex, binaryPropertyName);
680
+ const binaryPropertyName = this.getNodeParameter('binaryPropertyName', currentIndex);
681
+ await this.helpers.assertBinaryData(currentIndex, binaryPropertyName);
682
+ const buffer = await this.helpers.getBinaryDataBuffer(currentIndex, binaryPropertyName);
616
683
  workbook = new ExcelJS.Workbook();
617
684
  await workbook.xlsx.load(buffer);
618
685
  }
619
686
  if (resource === 'row') {
620
- const operation = this.getNodeParameter('operation', itemIndex);
687
+ const operation = this.getNodeParameter('operation', currentIndex);
621
688
  let sheetName = inputMode === 'filePath'
622
- ? this.getNodeParameter('sheetNameOptions', itemIndex, '')
623
- : this.getNodeParameter('sheetName', itemIndex, '');
689
+ ? this.getNodeParameter('sheetNameOptions', currentIndex, '')
690
+ : this.getNodeParameter('sheetName', currentIndex, '');
624
691
  // If no sheet name specified, use the first worksheet
625
692
  if (!sheetName) {
626
693
  const firstWorksheet = workbook.worksheets[0];
@@ -636,71 +703,71 @@ class ExcelAI {
636
703
  const columnMap = ExcelAI.getColumnMapping(worksheet);
637
704
  switch (operation) {
638
705
  case 'readRows':
639
- result = await ExcelAI.handleReadRows(this, worksheet, itemIndex);
706
+ result = await ExcelAI.handleReadRows(this, worksheet, currentIndex);
707
+ break;
708
+ case 'filterRows':
709
+ result = await ExcelAI.handleFilterRows(this, worksheet, currentIndex, inputMode);
640
710
  break;
641
711
  case 'appendRow':
642
- result = await ExcelAI.handleAppendRow(this, worksheet, itemIndex, columnMap);
643
- if (inputMode === 'filePath' && this.getNodeParameter('autoSave', itemIndex, true)) {
712
+ result = await ExcelAI.handleAppendRow(this, worksheet, currentIndex, columnMap);
713
+ if (inputMode === 'filePath' && this.getNodeParameter('autoSave', currentIndex, true)) {
644
714
  await workbook.xlsx.writeFile(filePath);
645
715
  }
646
716
  break;
647
717
  case 'insertRow':
648
- result = await ExcelAI.handleInsertRow(this, worksheet, itemIndex, columnMap);
649
- if (inputMode === 'filePath' && this.getNodeParameter('autoSave', itemIndex, true)) {
718
+ result = await ExcelAI.handleInsertRow(this, worksheet, currentIndex, columnMap);
719
+ if (inputMode === 'filePath' && this.getNodeParameter('autoSave', currentIndex, true)) {
650
720
  await workbook.xlsx.writeFile(filePath);
651
721
  }
652
722
  break;
653
723
  case 'updateRow':
654
- result = await ExcelAI.handleUpdateRow(this, worksheet, itemIndex, columnMap);
655
- if (inputMode === 'filePath' && this.getNodeParameter('autoSave', itemIndex, true)) {
724
+ result = await ExcelAI.handleUpdateRow(this, worksheet, currentIndex, columnMap);
725
+ if (inputMode === 'filePath' && this.getNodeParameter('autoSave', currentIndex, true)) {
656
726
  await workbook.xlsx.writeFile(filePath);
657
727
  }
658
728
  break;
659
729
  case 'deleteRow':
660
- result = await ExcelAI.handleDeleteRow(this, worksheet, itemIndex);
661
- if (inputMode === 'filePath' && this.getNodeParameter('autoSave', itemIndex, true)) {
730
+ result = await ExcelAI.handleDeleteRow(this, worksheet, currentIndex);
731
+ if (inputMode === 'filePath' && this.getNodeParameter('autoSave', currentIndex, true)) {
662
732
  await workbook.xlsx.writeFile(filePath);
663
733
  }
664
734
  break;
665
- case 'findRows':
666
- result = await ExcelAI.handleFindRows(this, worksheet, itemIndex, columnMap);
667
- break;
668
735
  default:
669
736
  throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unknown operation: ${operation}`);
670
737
  }
671
738
  }
672
739
  else if (resource === 'worksheet') {
673
- const worksheetOperation = this.getNodeParameter('worksheetOperation', itemIndex);
740
+ const worksheetOperation = this.getNodeParameter('worksheetOperation', currentIndex);
674
741
  switch (worksheetOperation) {
675
742
  case 'listWorksheets':
676
- result = await ExcelAI.handleListWorksheets(this, workbook, itemIndex);
743
+ result = await ExcelAI.handleListWorksheets(this, workbook, currentIndex);
677
744
  break;
678
745
  case 'createWorksheet':
679
- result = await ExcelAI.handleCreateWorksheet(this, workbook, itemIndex);
680
- if (inputMode === 'filePath' && this.getNodeParameter('autoSave', itemIndex, true)) {
746
+ result = await ExcelAI.handleCreateWorksheet(this, workbook, currentIndex);
747
+ if (inputMode === 'filePath' && this.getNodeParameter('autoSave', currentIndex, true)) {
681
748
  await workbook.xlsx.writeFile(filePath);
682
749
  }
683
750
  break;
684
751
  case 'deleteWorksheet':
685
- result = await ExcelAI.handleDeleteWorksheet(this, workbook, itemIndex);
686
- if (inputMode === 'filePath' && this.getNodeParameter('autoSave', itemIndex, true)) {
752
+ result = await ExcelAI.handleDeleteWorksheet(this, workbook, currentIndex);
753
+ if (inputMode === 'filePath' && this.getNodeParameter('autoSave', currentIndex, true)) {
687
754
  await workbook.xlsx.writeFile(filePath);
688
755
  }
689
756
  break;
690
757
  case 'renameWorksheet':
691
- result = await ExcelAI.handleRenameWorksheet(this, workbook, itemIndex);
692
- if (inputMode === 'filePath' && this.getNodeParameter('autoSave', itemIndex, true)) {
758
+ result = await ExcelAI.handleRenameWorksheet(this, workbook, currentIndex);
759
+ if (inputMode === 'filePath' && this.getNodeParameter('autoSave', currentIndex, true)) {
693
760
  await workbook.xlsx.writeFile(filePath);
694
761
  }
695
762
  break;
696
763
  case 'copyWorksheet':
697
- result = await ExcelAI.handleCopyWorksheet(this, workbook, itemIndex);
698
- if (inputMode === 'filePath' && this.getNodeParameter('autoSave', itemIndex, true)) {
764
+ result = await ExcelAI.handleCopyWorksheet(this, workbook, currentIndex);
765
+ if (inputMode === 'filePath' && this.getNodeParameter('autoSave', currentIndex, true)) {
699
766
  await workbook.xlsx.writeFile(filePath);
700
767
  }
701
768
  break;
702
769
  case 'getWorksheetInfo':
703
- result = await ExcelAI.handleGetWorksheetInfo(this, workbook, itemIndex);
770
+ result = await ExcelAI.handleGetWorksheetInfo(this, workbook, currentIndex);
704
771
  break;
705
772
  default:
706
773
  throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unknown worksheet operation: ${worksheetOperation}`);
@@ -723,11 +790,12 @@ class ExcelAI {
723
790
  catch (error) {
724
791
  if (this.continueOnFail()) {
725
792
  const errorMessage = error instanceof Error ? error.message : 'Unknown error';
793
+ const currentIndex = isReadOnlyOperation ? 0 : itemIndex;
726
794
  returnData.push({
727
795
  json: {
728
796
  error: errorMessage,
729
- resource: this.getNodeParameter('resource', itemIndex, ''),
730
- operation: this.getNodeParameter('operation', itemIndex, ''),
797
+ resource: this.getNodeParameter('resource', currentIndex, ''),
798
+ operation: this.getNodeParameter('operation', currentIndex, ''),
731
799
  },
732
800
  });
733
801
  continue;
@@ -798,6 +866,82 @@ class ExcelAI {
798
866
  }
799
867
  return rows;
800
868
  }
869
+ static async handleFilterRows(context, worksheet, itemIndex, inputMode) {
870
+ var _a;
871
+ const conditionLogic = context.getNodeParameter('conditionLogic', itemIndex, 'and');
872
+ // Get filter conditions based on input mode
873
+ const filterConditions = inputMode === 'filePath'
874
+ ? context.getNodeParameter('filterConditions', itemIndex)
875
+ : context.getNodeParameter('filterConditionsBinary', itemIndex);
876
+ // Get all rows first
877
+ const headerRow = worksheet.getRow(1);
878
+ const headers = [];
879
+ headerRow.eachCell((cell, colNumber) => {
880
+ var _a;
881
+ const header = ((_a = cell.value) === null || _a === void 0 ? void 0 : _a.toString()) || '';
882
+ headers[colNumber - 1] = header;
883
+ });
884
+ const allRows = [];
885
+ worksheet.eachRow((row, rowNumber) => {
886
+ if (rowNumber === 1)
887
+ return; // Skip header
888
+ const rowData = { _rowNumber: rowNumber };
889
+ row.eachCell((cell, colNumber) => {
890
+ const header = headers[colNumber - 1];
891
+ if (header) {
892
+ rowData[header] = cell.value;
893
+ }
894
+ });
895
+ // Skip empty rows
896
+ const hasData = Object.keys(rowData).some(key => key !== '_rowNumber' && rowData[key]);
897
+ if (hasData) {
898
+ allRows.push(rowData);
899
+ }
900
+ });
901
+ // If no conditions, return all rows
902
+ if (!((_a = filterConditions.conditions) === null || _a === void 0 ? void 0 : _a.length)) {
903
+ return allRows;
904
+ }
905
+ // Filter rows based on conditions
906
+ const filteredRows = allRows.filter((rowData) => {
907
+ const results = filterConditions.conditions.map((c) => {
908
+ const val = rowData[c.field];
909
+ const compareVal = c.value;
910
+ switch (c.operator) {
911
+ case 'equals':
912
+ return String(val) === String(compareVal);
913
+ case 'notEquals':
914
+ return String(val) !== String(compareVal);
915
+ case 'contains':
916
+ return String(val).includes(String(compareVal));
917
+ case 'notContains':
918
+ return !String(val).includes(String(compareVal));
919
+ case 'greaterThan':
920
+ return Number(val) > Number(compareVal);
921
+ case 'greaterOrEqual':
922
+ return Number(val) >= Number(compareVal);
923
+ case 'lessThan':
924
+ return Number(val) < Number(compareVal);
925
+ case 'lessOrEqual':
926
+ return Number(val) <= Number(compareVal);
927
+ case 'startsWith':
928
+ return String(val).startsWith(String(compareVal));
929
+ case 'endsWith':
930
+ return String(val).endsWith(String(compareVal));
931
+ case 'isEmpty':
932
+ return !val || val === '' || val === null || val === undefined;
933
+ case 'isNotEmpty':
934
+ return val && val !== '' && val !== null && val !== undefined;
935
+ default:
936
+ return false;
937
+ }
938
+ });
939
+ return conditionLogic === 'and'
940
+ ? results.every((r) => r)
941
+ : results.some((r) => r);
942
+ });
943
+ return filteredRows;
944
+ }
801
945
  static async handleAppendRow(context, worksheet, itemIndex, columnMap) {
802
946
  const rowDataInput = context.getNodeParameter('rowData', itemIndex);
803
947
  const data = ExcelAI.parseJsonInput(context, rowDataInput);
@@ -865,87 +1009,6 @@ class ExcelAI {
865
1009
  message: `Row ${rowNumber} deleted successfully`,
866
1010
  };
867
1011
  }
868
- static async handleFindRows(context, worksheet, itemIndex, columnMap) {
869
- const searchColumn = context.getNodeParameter('searchColumn', itemIndex);
870
- const searchValue = context.getNodeParameter('searchValue', itemIndex);
871
- const matchType = context.getNodeParameter('matchType', itemIndex, 'exact');
872
- const returnRowNumbers = context.getNodeParameter('returnRowNumbers', itemIndex, false);
873
- const colNumber = columnMap.get(searchColumn);
874
- if (!colNumber) {
875
- throw new n8n_workflow_1.NodeOperationError(context.getNode(), `Column "${searchColumn}" not found`);
876
- }
877
- const matchingRows = [];
878
- const headerRow = worksheet.getRow(1);
879
- const headers = [];
880
- headerRow.eachCell((cell, colNum) => {
881
- var _a;
882
- headers[colNum - 1] = ((_a = cell.value) === null || _a === void 0 ? void 0 : _a.toString()) || '';
883
- });
884
- worksheet.eachRow((row, rowNumber) => {
885
- var _a;
886
- if (rowNumber === 1)
887
- return;
888
- const cellValue = ((_a = row.getCell(colNumber).value) === null || _a === void 0 ? void 0 : _a.toString()) || '';
889
- let isMatch = false;
890
- const searchLower = searchValue.toLowerCase();
891
- const cellLower = cellValue.toLowerCase();
892
- switch (matchType) {
893
- case 'exact':
894
- isMatch = cellLower === searchLower;
895
- break;
896
- case 'contains':
897
- isMatch = cellLower.includes(searchLower);
898
- break;
899
- case 'startsWith':
900
- isMatch = cellLower.startsWith(searchLower);
901
- break;
902
- case 'endsWith':
903
- isMatch = cellLower.endsWith(searchLower);
904
- break;
905
- }
906
- if (isMatch) {
907
- if (returnRowNumbers) {
908
- matchingRows.push(rowNumber);
909
- }
910
- else {
911
- const rowData = { _rowNumber: rowNumber };
912
- row.eachCell((cell, colNum) => {
913
- const header = headers[colNum - 1];
914
- if (header) {
915
- rowData[header] = cell.value;
916
- }
917
- });
918
- matchingRows.push(rowData);
919
- }
920
- }
921
- });
922
- if (returnRowNumbers) {
923
- return [
924
- {
925
- operation: 'findRows',
926
- searchColumn,
927
- searchValue,
928
- matchType,
929
- rowNumbers: matchingRows,
930
- count: matchingRows.length,
931
- },
932
- ];
933
- }
934
- // Return message if no rows found
935
- if (matchingRows.length === 0) {
936
- return [
937
- {
938
- operation: 'findRows',
939
- searchColumn,
940
- searchValue,
941
- matchType,
942
- count: 0,
943
- message: 'No matching rows found',
944
- },
945
- ];
946
- }
947
- return matchingRows;
948
- }
949
1012
  // ========== Worksheet Operation Handlers ==========
950
1013
  static async handleListWorksheets(context, workbook, itemIndex) {
951
1014
  const includeHidden = context.getNodeParameter('includeHidden', itemIndex, false);
@@ -1 +1 @@
1
- {"version":3,"file":"ExcelAI.node.js","sourceRoot":"","sources":["../../../nodes/ExcelAI/ExcelAI.node.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAQsB;AACtB,iDAAmC;AACnC,gDAAkC;AAElC,MAAa,OAAO;IAApB;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,UAAU;YACvB,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,gBAAgB;YACtB,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,sIAAsI;YAChJ,WAAW,EAAE,8DAA8D;YAC3E,QAAQ,EAAE;gBACT,IAAI,EAAE,UAAU;aAChB;YACD,MAAM,EAAE,CAAC,MAAM,CAAC;YAChB,OAAO,EAAE,CAAC,MAAM,CAAC;YAEjB,8BAA8B;YAC9B,YAAY,EAAE,IAAI;YAElB,UAAU,EAAE;gBACX,qBAAqB;gBACrB;oBACC,WAAW,EAAE,UAAU;oBACvB,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,SAAS;oBACf,gBAAgB,EAAE,IAAI;oBACtB,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,KAAK;4BACX,KAAK,EAAE,KAAK;4BACZ,WAAW,EAAE,4BAA4B;yBACzC;wBACD;4BACC,IAAI,EAAE,WAAW;4BACjB,KAAK,EAAE,WAAW;4BAClB,WAAW,EAAE,kCAAkC;yBAC/C;qBACD;oBACD,OAAO,EAAE,KAAK;iBACd;gBAED,aAAa;gBACb;oBACC,WAAW,EAAE,YAAY;oBACzB,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,WAAW;4BACjB,KAAK,EAAE,UAAU;4BACjB,WAAW,EAAE,2BAA2B;yBACxC;wBACD;4BACC,IAAI,EAAE,aAAa;4BACnB,KAAK,EAAE,YAAY;4BACnB,WAAW,EAAE,2BAA2B;yBACxC;qBACD;oBACD,OAAO,EAAE,UAAU;oBACnB,WAAW,EAAE,+BAA+B;iBAC5C;gBAED,gCAAgC;gBAChC;oBACC,WAAW,EAAE,WAAW;oBACxB,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,QAAQ;oBACd,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,SAAS,EAAE,CAAC,UAAU,CAAC;yBACvB;qBACD;oBACD,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,mBAAmB;oBAChC,WAAW,EAAE,iCAAiC;iBAC9C;gBAED,uBAAuB;gBACvB;oBACC,WAAW,EAAE,iBAAiB;oBAC9B,IAAI,EAAE,oBAAoB;oBAC1B,IAAI,EAAE,QAAQ;oBACd,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,SAAS,EAAE,CAAC,YAAY,CAAC;yBACzB;qBACD;oBACD,OAAO,EAAE,MAAM;oBACf,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,uDAAuD;iBACpE;gBAED,iBAAiB;gBACjB;oBACC,WAAW,EAAE,WAAW;oBACxB,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,SAAS;oBACf,gBAAgB,EAAE,IAAI;oBACtB,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,QAAQ,EAAE,CAAC,KAAK,CAAC;yBACjB;qBACD;oBACD,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,WAAW;4BACjB,KAAK,EAAE,UAAU;4BACjB,WAAW,EAAE,2BAA2B;4BACxC,MAAM,EAAE,sBAAsB;yBAC9B;wBACD;4BACC,IAAI,EAAE,YAAY;4BAClB,KAAK,EAAE,WAAW;4BAClB,WAAW,EAAE,0BAA0B;4BACvC,MAAM,EAAE,kBAAkB;yBAC1B;wBACD;4BACC,IAAI,EAAE,YAAY;4BAClB,KAAK,EAAE,WAAW;4BAClB,WAAW,EAAE,mCAAmC;4BAChD,MAAM,EAAE,qBAAqB;yBAC7B;wBACD;4BACC,IAAI,EAAE,YAAY;4BAClB,KAAK,EAAE,WAAW;4BAClB,WAAW,EAAE,wBAAwB;4BACrC,MAAM,EAAE,qBAAqB;yBAC7B;wBACD;4BACC,IAAI,EAAE,YAAY;4BAClB,KAAK,EAAE,WAAW;4BAClB,WAAW,EAAE,uBAAuB;4BACpC,MAAM,EAAE,uBAAuB;yBAC/B;wBACD;4BACC,IAAI,EAAE,WAAW;4BACjB,KAAK,EAAE,UAAU;4BACjB,WAAW,EAAE,mCAAmC;4BAChD,MAAM,EAAE,oBAAoB;yBAC5B;qBACD;oBACD,OAAO,EAAE,UAAU;iBACnB;gBAED,uBAAuB;gBACvB;oBACC,WAAW,EAAE,qBAAqB;oBAClC,IAAI,EAAE,oBAAoB;oBAC1B,IAAI,EAAE,SAAS;oBACf,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,QAAQ,EAAE,CAAC,WAAW,CAAC;yBACvB;qBACD;oBACD,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,iBAAiB;4BACvB,KAAK,EAAE,gBAAgB;4BACvB,WAAW,EAAE,4BAA4B;4BACzC,MAAM,EAAE,0BAA0B;yBAClC;wBACD;4BACC,IAAI,EAAE,kBAAkB;4BACxB,KAAK,EAAE,iBAAiB;4BACxB,WAAW,EAAE,wBAAwB;4BACrC,MAAM,EAAE,2BAA2B;yBACnC;wBACD;4BACC,IAAI,EAAE,kBAAkB;4BACxB,KAAK,EAAE,iBAAiB;4BACxB,WAAW,EAAE,oBAAoB;4BACjC,MAAM,EAAE,6BAA6B;yBACrC;wBACF;4BACC,IAAI,EAAE,kBAAkB;4BACxB,KAAK,EAAE,iBAAiB;4BACxB,WAAW,EAAE,8BAA8B;4BAC3C,MAAM,EAAE,2BAA2B;yBACnC;wBACD;4BACC,IAAI,EAAE,gBAAgB;4BACtB,KAAK,EAAE,eAAe;4BACtB,WAAW,EAAE,qCAAqC;4BAClD,MAAM,EAAE,yBAAyB;yBACjC;wBACD;4BACC,IAAI,EAAE,oBAAoB;4BAC1B,KAAK,EAAE,kBAAkB;4BACzB,WAAW,EAAE,8DAA8D;4BAC3E,MAAM,EAAE,+BAA+B;yBACvC;qBACD;oBACD,OAAO,EAAE,gBAAgB;iBACzB;gBAED,yDAAyD;gBACzD;oBACC,WAAW,EAAE,YAAY;oBACzB,IAAI,EAAE,kBAAkB;oBACxB,IAAI,EAAE,SAAS;oBACf,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,SAAS,EAAE,CAAC,UAAU,CAAC;4BACvB,QAAQ,EAAE,CAAC,KAAK,CAAC;yBACjB;qBACD;oBACD,WAAW,EAAE;wBACZ,iBAAiB,EAAE,eAAe;wBAClC,oBAAoB,EAAE,CAAC,UAAU,CAAC;qBAClC;oBACD,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,KAAK;oBACf,WAAW,EAAE,0FAA0F;iBACvG;gBAGF,6BAA6B;gBAC7B;oBACC,WAAW,EAAE,YAAY;oBACzB,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,QAAQ;oBACd,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,SAAS,EAAE,CAAC,YAAY,CAAC;4BACzB,QAAQ,EAAE,CAAC,KAAK,CAAC;yBACjB;qBACD;oBACD,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,KAAK;oBACf,WAAW,EAAE,0FAA0F;iBACvG;gBAED,uBAAuB;gBACvB;oBACG,WAAW,EAAE,WAAW;oBACxB,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,QAAQ;oBACd,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,QAAQ,EAAE,CAAC,KAAK,CAAC;4BACjB,SAAS,EAAE,CAAC,UAAU,CAAC;yBACvB;qBACD;oBACD,OAAO,EAAE,CAAC;oBACV,WAAW,EAAE,6DAA6D;iBAC1E;gBACD;oBACC,WAAW,EAAE,SAAS;oBACtB,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,QAAQ;oBACd,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,QAAQ,EAAE,CAAC,KAAK,CAAC;4BACjB,SAAS,EAAE,CAAC,UAAU,CAAC;yBACvB;qBACD;oBACD,OAAO,EAAE,CAAC;oBACV,WAAW,EAAE,mDAAmD;iBAChE;gBAED,iCAAiC;gBACjC;oBACC,WAAW,EAAE,UAAU;oBACvB,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,MAAM;oBACZ,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,QAAQ,EAAE,CAAC,KAAK,CAAC;4BACjB,SAAS,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC;yBACrC;qBACD;oBACD,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,8DAA8D;oBAC3E,WAAW,EAAE,qEAAqE;iBAClF;gBAED,sCAAsC;gBACtC;oBACC,WAAW,EAAE,YAAY;oBACzB,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,QAAQ;oBACd,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,QAAQ,EAAE,CAAC,KAAK,CAAC;4BACjB,SAAS,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC;yBAClD;qBACD;oBACD,OAAO,EAAE,CAAC;oBACV,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,8CAA8C;iBAC3D;gBAED,0BAA0B;gBAC1B;oBACC,WAAW,EAAE,cAAc;oBAC3B,IAAI,EAAE,aAAa;oBACnB,IAAI,EAAE,MAAM;oBACZ,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,QAAQ,EAAE,CAAC,KAAK,CAAC;4BACjB,SAAS,EAAE,CAAC,WAAW,CAAC;yBACxB;qBACD;oBACD,OAAO,EAAE,IAAI;oBACb,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,uDAAuD;oBACpE,WAAW,EAAE,wEAAwE;iBACrF;gBAED,uBAAuB;gBACvB;oBACC,WAAW,EAAE,eAAe;oBAC5B,IAAI,EAAE,cAAc;oBACpB,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE;wBACZ,iBAAiB,EAAE,YAAY;wBAC/B,oBAAoB,EAAE,CAAC,UAAU,EAAE,kBAAkB,CAAC;qBACtD;oBACD,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,QAAQ,EAAE,CAAC,KAAK,CAAC;4BACjB,SAAS,EAAE,CAAC,UAAU,CAAC;yBACvB;qBACD;oBACD,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,qBAAqB;iBAClC;gBACD;oBACC,WAAW,EAAE,cAAc;oBAC3B,IAAI,EAAE,aAAa;oBACnB,IAAI,EAAE,QAAQ;oBACd,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,QAAQ,EAAE,CAAC,KAAK,CAAC;4BACjB,SAAS,EAAE,CAAC,UAAU,CAAC;yBACvB;qBACD;oBACD,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,qBAAqB;iBAClC;gBACD;oBACC,WAAW,EAAE,YAAY;oBACzB,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,OAAO;4BACd,WAAW,EAAE,gCAAgC;yBAC7C;wBACD;4BACC,IAAI,EAAE,UAAU;4BAChB,KAAK,EAAE,UAAU;4BACjB,WAAW,EAAE,uCAAuC;yBACpD;wBACD;4BACC,IAAI,EAAE,aAAa;4BACnB,KAAK,EAAE,YAAY;4BACnB,WAAW,EAAE,gCAAgC;yBAC7C;wBACD;4BACC,IAAI,EAAE,WAAW;4BACjB,KAAK,EAAE,UAAU;4BACjB,WAAW,EAAE,8BAA8B;yBAC3C;qBACD;oBACD,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,QAAQ,EAAE,CAAC,KAAK,CAAC;4BACjB,SAAS,EAAE,CAAC,UAAU,CAAC;yBACvB;qBACD;oBACD,OAAO,EAAE,OAAO;oBAChB,WAAW,EAAE,+BAA+B;iBAC5C;gBACD;oBACC,WAAW,EAAE,yBAAyB;oBACtC,IAAI,EAAE,kBAAkB;oBACxB,IAAI,EAAE,SAAS;oBACf,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,QAAQ,EAAE,CAAC,KAAK,CAAC;4BACjB,SAAS,EAAE,CAAC,UAAU,CAAC;yBACvB;qBACD;oBACD,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,6DAA6D;iBAC1E;gBAED,uBAAuB;gBACvB;oBACC,WAAW,EAAE,gBAAgB;oBAC7B,IAAI,EAAE,sBAAsB;oBAC5B,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE;wBACZ,iBAAiB,EAAE,eAAe;wBAClC,oBAAoB,EAAE,CAAC,UAAU,CAAC;qBAClC;oBACD,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,QAAQ,EAAE,CAAC,WAAW,CAAC;4BACvB,kBAAkB,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAAE,kBAAkB,CAAC;4BAC/F,SAAS,EAAE,CAAC,UAAU,CAAC;yBACvB;qBACD;oBACD,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,uBAAuB;iBACpC;gBACD;oBACC,WAAW,EAAE,gBAAgB;oBAC7B,IAAI,EAAE,cAAc;oBACpB,IAAI,EAAE,QAAQ;oBACd,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,QAAQ,EAAE,CAAC,WAAW,CAAC;4BACvB,kBAAkB,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,CAAC;yBAC3E;qBACD;oBACD,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,UAAU;oBACvB,WAAW,EAAE,4BAA4B;iBACzC;gBACD;oBACC,WAAW,EAAE,cAAc;oBAC3B,IAAI,EAAE,aAAa;oBACnB,IAAI,EAAE,MAAM;oBACZ,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,QAAQ,EAAE,CAAC,WAAW,CAAC;4BACvB,kBAAkB,EAAE,CAAC,iBAAiB,CAAC;yBACvC;qBACD;oBACD,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,+BAA+B;oBAC5C,WAAW,EAAE,6CAA6C;iBAC1D;gBACD;oBACC,WAAW,EAAE,uBAAuB;oBACpC,IAAI,EAAE,eAAe;oBACrB,IAAI,EAAE,SAAS;oBACf,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,QAAQ,EAAE,CAAC,WAAW,CAAC;4BACvB,kBAAkB,EAAE,CAAC,gBAAgB,CAAC;yBACtC;qBACD;oBACD,OAAO,EAAE,KAAK;oBACd,WAAW,EAAE,kDAAkD;iBAC/D;gBAED,mBAAmB;gBACnB;oBACC,WAAW,EAAE,WAAW;oBACxB,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,SAAS;oBACf,cAAc,EAAE;wBACf,IAAI,EAAE;4BACL,SAAS,EAAE,CAAC,UAAU,CAAC;yBACvB;qBACD;oBACD,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,+CAA+C;iBAC5D;aACD;SACD,CAAC;QAEF,YAAO,GAAG;YACT,WAAW,EAAE;gBACZ,2BAA2B;gBAC3B,KAAK,CAAC,aAAa;oBAClB,IAAI;wBACH,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAW,CAAC;wBAE/D,IAAI,SAAS,KAAK,UAAU,EAAE;4BAC7B,OAAO;gCACN;oCACC,IAAI,EAAE,6CAA6C;oCACnD,KAAK,EAAE,EAAE;iCACT;6BACD,CAAC;yBACF;wBAED,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAW,CAAC;wBAE7D,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;4BACxC,OAAO;gCACN;oCACC,IAAI,EAAE,gCAAgC;oCACtC,KAAK,EAAE,EAAE;iCACT;6BACD,CAAC;yBACF;wBAED,sCAAsC;wBACtC,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;wBAE1B,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;wBACxC,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;wBAEvC,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;4BAClD,IAAI,EAAE,KAAK,CAAC,IAAI;4BAChB,KAAK,EAAE,KAAK,CAAC,IAAI;yBACjB,CAAC,CAAC,CAAC;wBAEJ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;4BACxB,OAAO;gCACN;oCACC,IAAI,EAAE,6BAA6B;oCACnC,KAAK,EAAE,EAAE;iCACT;6BACD,CAAC;yBACF;wBAED,OAAO,MAAM,CAAC;qBACd;oBAAC,OAAO,KAAK,EAAE;wBACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;wBAC9E,OAAO;4BACN;gCACC,IAAI,EAAE,UAAU,YAAY,EAAE;gCAC9B,KAAK,EAAE,EAAE;6BACT;yBACD,CAAC;qBACF;gBACF,CAAC;gBAED,wBAAwB;gBACxB,KAAK,CAAC,UAAU;oBACf,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAW,CAAC;oBAE/D,IAAI,SAAS,KAAK,UAAU,EAAE;wBAC7B,OAAO;4BACN;gCACC,IAAI,EAAE,mDAAmD;gCACzD,KAAK,EAAE,EAAE;6BACT;yBACD,CAAC;qBACF;oBAED,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAW,CAAC;oBAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,EAAE,CAAW,CAAC;oBAE1E,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,EAAE;wBAC5B,OAAO;4BACN;gCACC,IAAI,EAAE,+CAA+C;gCACrD,KAAK,EAAE,EAAE;6BACT;yBACD,CAAC;qBACF;oBAED,IAAI;wBACH,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;wBACxC,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;wBACvC,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;wBAEnD,IAAI,CAAC,SAAS,EAAE;4BACf,OAAO;gCACN;oCACC,IAAI,EAAE,iBAAiB;oCACvB,KAAK,EAAE,EAAE;iCACT;6BACD,CAAC;yBACF;wBAED,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;wBACtC,MAAM,OAAO,GAA2B,EAAE,CAAC;wBAE3C,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE;4BAC3B,IAAI,IAAI,CAAC,KAAK,EAAE;gCACf,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;gCAChD,OAAO,CAAC,IAAI,CAAC;oCACZ,IAAI,EAAE,UAAU;oCAChB,KAAK,EAAE,UAAU;iCACjB,CAAC,CAAC;6BACH;wBACF,CAAC,CAAC,CAAC;wBAEH,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC;4BACxB,CAAC,CAAC,OAAO;4BACT,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;qBAC7C;oBAAC,OAAO,KAAK,EAAE;wBACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;wBAC9E,OAAO;4BACN;gCACC,IAAI,EAAE,UAAU,YAAY,EAAE;gCAC9B,KAAK,EAAE,EAAE;6BACT;yBACD,CAAC;qBACF;gBACF,CAAC;aACD;SACD,CAAC;IAwsBH,CAAC;IAtsBA,KAAK,CAAC,OAAO;QACZ,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,UAAU,GAAyB,EAAE,CAAC;QAE5C,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE;YAC9D,IAAI;gBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAW,CAAC;gBACxE,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,CAAW,CAAC;gBAE1E,gBAAgB;gBAChB,IAAI,QAA0B,CAAC;gBAC/B,IAAI,QAAQ,GAAG,EAAE,CAAC;gBAClB,IAAI,MAAW,CAAC;gBAEhB,IAAI,SAAS,KAAK,UAAU,EAAE;oBAC7B,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAW,CAAC;oBAClE,QAAQ,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;oBAClC,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;iBACvC;qBAAM;oBACN,MAAM,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,SAAS,CAAW,CAAC;oBAC5F,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;oBACnE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;oBACrF,QAAQ,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;oBAClC,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAa,CAAC,CAAC;iBACxC;gBAED,IAAI,QAAQ,KAAK,KAAK,EAAE;oBACvB,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,CAAW,CAAC;oBAC1E,IAAI,SAAS,GAAG,SAAS,KAAK,UAAU;wBACvC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,SAAS,EAAE,EAAE,CAAW;wBACpE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,EAAE,EAAE,CAAW,CAAC;oBAE/D,sDAAsD;oBACtD,IAAI,CAAC,SAAS,EAAE;wBACf,MAAM,cAAc,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;wBAC9C,IAAI,CAAC,cAAc,EAAE;4BACpB,MAAM,IAAI,iCAAkB,CAC3B,IAAI,CAAC,OAAO,EAAE,EACd,qCAAqC,CACrC,CAAC;yBACF;wBACD,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC;qBAChC;oBAED,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;oBACnD,IAAI,CAAC,SAAS,EAAE;wBACf,MAAM,IAAI,iCAAkB,CAC3B,IAAI,CAAC,OAAO,EAAE,EACd,cAAc,SAAS,aAAa,CACpC,CAAC;qBACF;oBAED,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;oBAEtD,QAAQ,SAAS,EAAE;wBAClB,KAAK,UAAU;4BACf,MAAM,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;4BAClE,MAAM;wBAEP,KAAK,WAAW;4BACf,MAAM,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;4BAC9E,IAAI,SAAS,KAAK,UAAU,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE;gCACnF,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;6BACxC;4BACD,MAAM;wBAEP,KAAK,WAAW;4BACf,MAAM,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;4BAC9E,IAAI,SAAS,KAAK,UAAU,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE;gCACnF,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;6BACxC;4BACD,MAAM;wBAEP,KAAK,WAAW;4BACf,MAAM,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;4BAC9E,IAAI,SAAS,KAAK,UAAU,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE;gCACnF,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;6BACxC;4BACD,MAAM;wBAEP,KAAK,WAAW;4BACf,MAAM,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;4BACnE,IAAI,SAAS,KAAK,UAAU,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE;gCACnF,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;6BACxC;4BACD,MAAM;wBAEP,KAAK,UAAU;4BACd,MAAM,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;4BAC7E,MAAM;wBAEP;4BACE,MAAM,IAAI,iCAAkB,CAC3B,IAAI,CAAC,OAAO,EAAE,EACd,sBAAsB,SAAS,EAAE,CACjC,CAAC;qBACH;iBACD;qBAAM,IAAI,QAAQ,KAAK,WAAW,EAAE;oBACpC,MAAM,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,SAAS,CAAW,CAAC;oBAE5F,QAAQ,kBAAkB,EAAE;wBAC3B,KAAK,gBAAgB;4BACpB,MAAM,GAAG,MAAM,OAAO,CAAC,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;4BACvE,MAAM;wBAEP,KAAK,iBAAiB;4BACrB,MAAM,GAAG,MAAM,OAAO,CAAC,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;4BACxE,IAAI,SAAS,KAAK,UAAU,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE;gCACnF,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;6BACxC;4BACD,MAAM;wBAEP,KAAK,iBAAiB;4BACrB,MAAM,GAAG,MAAM,OAAO,CAAC,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;4BACxE,IAAI,SAAS,KAAK,UAAU,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE;gCACnF,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;6BACxC;4BACD,MAAM;wBAGR,KAAK,iBAAiB;4BACrB,MAAM,GAAG,MAAM,OAAO,CAAC,qBAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;4BACxE,IAAI,SAAS,KAAK,UAAU,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE;gCACnF,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;6BACxC;4BACD,MAAM;wBAEP,KAAK,eAAe;4BACnB,MAAM,GAAG,MAAM,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;4BACtE,IAAI,SAAS,KAAK,UAAU,IAAI,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE;gCACnF,MAAM,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;6BACxC;4BACD,MAAM;wBAEP,KAAK,kBAAkB;4BACtB,MAAM,GAAG,MAAM,OAAO,CAAC,sBAAsB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;4BACzE,MAAM;wBACN;4BACC,MAAM,IAAI,iCAAkB,CAC3B,IAAI,CAAC,OAAO,EAAE,EACd,gCAAgC,kBAAkB,EAAE,CACpD,CAAC;qBACH;iBACD;gBAED,uBAAuB;gBACvB,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;oBAC1B,MAAM,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;iBAC/D;qBAAM;oBACN,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;iBAClC;gBAED,uCAAuC;gBACvC,IAAI,SAAS,KAAK,YAAY,EAAE;oBAC/B,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CACtD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EACnB,eAAe,EACf,mEAAmE,CACnE,CAAC;oBACF,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;iBAChE;aAED;YAAC,OAAO,KAAK,EAAE;gBACf,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE;oBAC1B,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;oBAC9E,UAAU,CAAC,IAAI,CAAC;wBACf,IAAI,EAAE;4BACL,KAAK,EAAE,YAAY;4BACnB,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC;4BAC1D,SAAS,EAAE,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,EAAE,EAAE,CAAC;yBAC5D;qBACD,CAAC,CAAC;oBACH,SAAS;iBACT;gBACD,MAAM,KAAK,CAAC;aACZ;SACD;QAED,OAAO,CAAC,UAAU,CAAC,CAAC;IACrB,CAAC;IAED,uCAAuC;IAE/B,MAAM,CAAC,gBAAgB,CAAC,SAA4B;QAC3D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC5C,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAEtC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;YACtC,IAAI,IAAI,CAAC,KAAK,EAAE;gBACf,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;gBAChD,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;aACrC;QACF,CAAC,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,UAAU,CAAC,OAAY,EAAE,SAA8B;QACrE,MAAM,QAAQ,GAAU,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAElD,SAAS,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE;YAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;YAClC,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IACjB,CAAC;IAEO,MAAM,CAAC,cAAc,CAAC,OAA0B,EAAE,KAAsB;QAC/E,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC9B,IAAI;gBACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACzB;YAAC,OAAO,KAAK,EAAE;gBACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;gBAC9E,MAAM,IAAI,iCAAkB,CAC3B,OAAO,CAAC,OAAO,EAAE,EACjB,wBAAwB,YAAY,EAAE,CACtC,CAAC;aACF;SACD;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,+CAA+C;IAEvC,MAAM,CAAC,KAAK,CAAC,cAAc,CAClC,OAA0B,EAC1B,SAA4B,EAC5B,SAAiB;QAEjB,MAAM,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,CAAC,CAAW,CAAC;QAC9E,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAW,CAAC;QAE1E,MAAM,IAAI,GAAU,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;;YACtC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,QAAQ,EAAE,KAAI,EAAE,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC;QAE9F,KAAK,IAAI,MAAM,GAAG,QAAQ,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,EAAE,EAAE;YAC7D,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACrC,MAAM,OAAO,GAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;YAE5C,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;gBAChC,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;gBACtC,IAAI,MAAM,EAAE;oBACX,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;iBAC7B;YACF,CAAC,CAAC,CAAC;YAEH,kBAAkB;YAClB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YACvF,IAAI,OAAO,EAAE;gBACZ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACnB;SACD;QAED,OAAO,IAAI,CAAC;IACb,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,eAAe,CACnC,OAA0B,EAC1B,SAA4B,EAC5B,SAAiB,EACjB,SAA8B;QAE9B,MAAM,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAoB,CAAC;QACvF,MAAM,IAAI,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAE3D,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACrD,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3B,MAAM,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC;QAErC,OAAO;YACN,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,WAAW;YACtB,SAAS;YACT,IAAI;YACJ,OAAO,EAAE,iCAAiC,SAAS,EAAE;SACrD,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,eAAe,CACnC,OAA0B,EAC1B,SAA4B,EAC5B,SAAiB,EACjB,SAA8B;QAE9B,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,CAAW,CAAC;QAC7E,MAAM,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAoB,CAAC;QACvF,MAAM,IAAI,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAE3D,IAAI,SAAS,GAAG,CAAC,EAAE;YAClB,MAAM,IAAI,iCAAkB,CAC3B,OAAO,CAAC,OAAO,EAAE,EACjB,yCAAyC,CACzC,CAAC;SACF;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACrD,SAAS,CAAC,SAAS,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAEzC,OAAO;YACN,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,WAAW;YACtB,SAAS;YACT,IAAI;YACJ,OAAO,EAAE,oCAAoC,SAAS,EAAE;SACxD,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,eAAe,CACnC,OAA0B,EAC1B,SAA4B,EAC5B,SAAiB,EACjB,SAA8B;QAE9B,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,CAAW,CAAC;QAC7E,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,CAAoB,CAAC;QAC/F,MAAM,IAAI,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QAE/D,IAAI,SAAS,GAAG,CAAC,EAAE;YAClB,MAAM,IAAI,iCAAkB,CAC3B,OAAO,CAAC,OAAO,EAAE,EACjB,kCAAkC,CAClC,CAAC;SACF;QAED,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAExC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,EAAE;YACpD,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC5C,IAAI,SAAS,EAAE;gBACd,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,GAAG,KAA0B,CAAC;aAC1D;QACF,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,MAAM,EAAE,CAAC;QAEb,OAAO;YACN,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,WAAW;YACtB,SAAS;YACT,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;YAChC,OAAO,EAAE,OAAO,SAAS,uBAAuB;SAChD,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,eAAe,CACnC,OAA0B,EAC1B,SAA4B,EAC5B,SAAiB;QAEjB,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,CAAW,CAAC;QAE7E,IAAI,SAAS,GAAG,CAAC,EAAE;YAClB,MAAM,IAAI,iCAAkB,CAC3B,OAAO,CAAC,OAAO,EAAE,EACjB,kCAAkC,CAClC,CAAC;SACF;QAED,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAEnC,OAAO;YACN,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,WAAW;YACtB,SAAS;YACT,OAAO,EAAE,OAAO,SAAS,uBAAuB;SAChD,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,cAAc,CAClC,OAA0B,EAC1B,SAA4B,EAC5B,SAAiB,EACjB,SAA8B;QAE9B,MAAM,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,cAAc,EAAE,SAAS,CAAW,CAAC;QACnF,MAAM,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,CAAW,CAAC;QACjF,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAW,CAAC;QACtF,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,SAAS,EAAE,KAAK,CAAY,CAAC;QAEnG,MAAM,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS,EAAE;YACf,MAAM,IAAI,iCAAkB,CAC3B,OAAO,CAAC,OAAO,EAAE,EACjB,WAAW,YAAY,aAAa,CACpC,CAAC;SACF;QAED,MAAM,YAAY,GAAU,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;;YACnC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,QAAQ,EAAE,KAAI,EAAE,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE;;YACpC,IAAI,SAAS,KAAK,CAAC;gBAAE,OAAO;YAE5B,MAAM,SAAS,GAAG,CAAA,MAAA,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,0CAAE,QAAQ,EAAE,KAAI,EAAE,CAAC;YACjE,IAAI,OAAO,GAAG,KAAK,CAAC;YAEpB,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;YAC9C,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;YAE1C,QAAQ,SAAS,EAAE;gBAClB,KAAK,OAAO;oBACX,OAAO,GAAG,SAAS,KAAK,WAAW,CAAC;oBACpC,MAAM;gBACP,KAAK,UAAU;oBACd,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;oBAC1C,MAAM;gBACP,KAAK,YAAY;oBAChB,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;oBAC5C,MAAM;gBACP,KAAK,UAAU;oBACd,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;oBAC1C,MAAM;aACP;YAED,IAAI,OAAO,EAAE;gBACZ,IAAI,gBAAgB,EAAE;oBACrB,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBAC7B;qBAAM;oBACN,MAAM,OAAO,GAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;oBAC/C,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;wBAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBACnC,IAAI,MAAM,EAAE;4BACX,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;yBAC7B;oBACF,CAAC,CAAC,CAAC;oBACH,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBAC3B;aACD;QACF,CAAC,CAAC,CAAC;QAEH,IAAI,gBAAgB,EAAE;YACrB,OAAO;gBACN;oBACC,SAAS,EAAE,UAAU;oBACrB,YAAY;oBACZ,WAAW;oBACX,SAAS;oBACT,UAAU,EAAE,YAAY;oBACxB,KAAK,EAAE,YAAY,CAAC,MAAM;iBAC1B;aACD,CAAC;SACF;QAED,kCAAkC;QAClC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9B,OAAO;gBACN;oBACC,SAAS,EAAE,UAAU;oBACrB,YAAY;oBACZ,WAAW;oBACX,SAAS;oBACT,KAAK,EAAE,CAAC;oBACR,OAAO,EAAE,wBAAwB;iBACjC;aACD,CAAC;SACF;QAED,OAAO,YAAY,CAAC;IACrB,CAAC;IAED,qDAAqD;IAE7C,MAAM,CAAC,KAAK,CAAC,oBAAoB,CACxC,OAA0B,EAC1B,QAA0B,EAC1B,SAAiB;QAEjB,MAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,eAAe,EAAE,SAAS,EAAE,KAAK,CAAY,CAAC;QAC7F,MAAM,UAAU,GAAU,EAAE,CAAC;QAE7B,QAAQ,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE;YACzC,IAAI,CAAC,aAAa,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE;gBACpD,OAAO;aACP;YAED,UAAU,CAAC,IAAI,CAAC;gBACf,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,WAAW,EAAE,SAAS,CAAC,WAAW;gBAClC,KAAK,EAAE,SAAS,CAAC,KAAK;aACtB,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO;YACN,SAAS,EAAE,gBAAgB;YAC3B,KAAK,EAAE,UAAU,CAAC,MAAM;YACxB,UAAU;SACV,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,qBAAqB,CACzC,OAA0B,EAC1B,QAA0B,EAC1B,SAAiB;QAEjB,MAAM,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,cAAc,EAAE,SAAS,CAAW,CAAC;QACnF,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAmB,CAAC;QACpG,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QAEtE,oCAAoC;QACpC,IAAI,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE;YACxC,MAAM,IAAI,iCAAkB,CAC3B,OAAO,CAAC,OAAO,EAAE,EACjB,cAAc,YAAY,kBAAkB,CAC5C,CAAC;SACF;QAED,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAEtD,+BAA+B;QAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACzD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAE1B,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,WAAC,OAAA,MAAA,GAAG,CAAC,MAAM,CAAC,mCAAI,EAAE,CAAA,EAAA,CAAC,CAAC;gBAC5D,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;SACH;QAED,OAAO;YACN,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,iBAAiB;YAC5B,SAAS,EAAE,YAAY;YACvB,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,OAAO,EAAE,cAAc,YAAY,wBAAwB;SAC3D,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,qBAAqB,CACzC,OAA0B,EAC1B,QAA0B,EAC1B,SAAiB;QAEjB,MAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,SAAS,CAAW,CAAC;QAC5F,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QAEvD,IAAI,CAAC,SAAS,EAAE;YACf,MAAM,IAAI,iCAAkB,CAC3B,OAAO,CAAC,OAAO,EAAE,EACjB,cAAc,aAAa,aAAa,CACxC,CAAC;SACF;QAED,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAEvC,OAAO;YACN,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,iBAAiB;YAC5B,SAAS,EAAE,aAAa;YACxB,OAAO,EAAE,cAAc,aAAa,wBAAwB;SAC5D,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,qBAAqB,CACzC,OAA0B,EAC1B,QAA0B,EAC1B,SAAiB;QAEjB,MAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,SAAS,CAAW,CAAC;QAC5F,MAAM,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,cAAc,EAAE,SAAS,CAAW,CAAC;QACnF,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QAEvD,IAAI,CAAC,SAAS,EAAE;YACf,MAAM,IAAI,iCAAkB,CAC3B,OAAO,CAAC,OAAO,EAAE,EACjB,cAAc,aAAa,aAAa,CACxC,CAAC;SACF;QAED,mCAAmC;QACnC,IAAI,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE;YACxC,MAAM,IAAI,iCAAkB,CAC3B,OAAO,CAAC,OAAO,EAAE,EACjB,cAAc,YAAY,kBAAkB,CAC5C,CAAC;SACF;QAED,SAAS,CAAC,IAAI,GAAG,YAAY,CAAC;QAE9B,OAAO;YACN,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,iBAAiB;YAC5B,OAAO,EAAE,aAAa;YACtB,OAAO,EAAE,YAAY;YACrB,OAAO,EAAE,2BAA2B,aAAa,SAAS,YAAY,gBAAgB;SACtF,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,mBAAmB,CACvC,OAA0B,EAC1B,QAA0B,EAC1B,SAAiB;QAEjB,MAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,SAAS,CAAW,CAAC;QAC5F,MAAM,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,cAAc,EAAE,SAAS,CAAW,CAAC;QACnF,MAAM,eAAe,GAAG,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QAE7D,IAAI,CAAC,eAAe,EAAE;YACrB,MAAM,IAAI,iCAAkB,CAC3B,OAAO,CAAC,OAAO,EAAE,EACjB,cAAc,aAAa,aAAa,CACxC,CAAC;SACF;QAED,mCAAmC;QACnC,IAAI,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE;YACxC,MAAM,IAAI,iCAAkB,CAC3B,OAAO,CAAC,OAAO,EAAE,EACjB,cAAc,YAAY,kBAAkB,CAC5C,CAAC;SACF;QAED,uBAAuB;QACvB,MAAM,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAEzD,6CAA6C;QAC7C,eAAe,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE;YAClE,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC9C,GAAG,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;gBACxD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBAC1C,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;gBAC3B,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAC5B,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;YAC3B,MAAM,CAAC,MAAM,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,qBAAqB;QACrB,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACjD,IAAI,MAAM,IAAI,YAAY,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE;gBAChD,YAAY,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;aACvD;QACF,CAAC,CAAC,CAAC;QAEH,OAAO;YACN,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,eAAe;YAC1B,UAAU,EAAE,aAAa;YACzB,OAAO,EAAE,YAAY;YACrB,QAAQ,EAAE,YAAY,CAAC,QAAQ;YAC/B,OAAO,EAAE,cAAc,aAAa,gBAAgB,YAAY,gBAAgB;SAChF,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAC1C,OAA0B,EAC1B,QAA0B,EAC1B,SAAiB;QAEjB,MAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,SAAS,CAAW,CAAC;QAC5F,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;QAEvD,IAAI,CAAC,SAAS,EAAE;YACf,MAAM,IAAI,iCAAkB,CAC3B,OAAO,CAAC,OAAO,EAAE,EACjB,cAAc,aAAa,aAAa,CACxC,CAAC;SACF;QAED,yBAAyB;QACzB,MAAM,OAAO,GAAU,EAAE,CAAC;QAC1B,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAEtC,SAAS,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;;YACtC,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YAC9C,OAAO,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,SAAS;gBAChB,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,SAAS,CAAC;gBAC/C,MAAM,EAAE,CAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,QAAQ,EAAE,KAAI,EAAE;gBACpC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;aACzB,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO;YACN,SAAS,EAAE,kBAAkB;YAC7B,SAAS,EAAE,aAAa;YACxB,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC5B,WAAW,EAAE,SAAS,CAAC,WAAW;YAClC,cAAc,EAAE,SAAS,CAAC,cAAc;YACxC,iBAAiB,EAAE,SAAS,CAAC,iBAAiB;YAC9C,KAAK,EAAE,SAAS,CAAC,KAAK;YACtB,OAAO;SACP,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,oBAAoB,CAAC,MAAc;QACjD,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,OAAO,MAAM,GAAG,CAAC,EAAE;YAClB,MAAM,SAAS,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACpC,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,MAAM,CAAC;YACtD,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;SACvC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;CACD;AA5xCD,0BA4xCC"}
1
+ {"version":3,"file":"ExcelAI.node.js","sourceRoot":"","sources":["../../../nodes/ExcelAI/ExcelAI.node.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-nodes-excel-ai",
3
- "version": "1.0.2",
3
+ "version": "1.0.5",
4
4
  "description": "Excel CRUD operations for n8n with AI Agent support - Perform read, write, update, delete operations on Excel files",
5
5
  "keywords": [
6
6
  "n8n-community-node-package",
@@ -63,13 +63,13 @@
63
63
  "typescript": "5.1.6"
64
64
  },
65
65
  "dependencies": {
66
- "exceljs": "^4.3.0",
67
- "form-data": "^4.0.4"
66
+ "exceljs": "^4.4.0",
67
+ "form-data": "^4.0.5"
68
68
  },
69
69
  "peerDependencies": {
70
70
  "n8n-workflow": "*"
71
71
  },
72
72
  "overrides": {
73
- "form-data": "^4.0.4"
73
+ "form-data": "^4.0.5"
74
74
  }
75
75
  }