@rglabs/butterfly 1.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/.claude/settings.local.json +25 -0
- package/dist/commands/add.d.ts +21 -0
- package/dist/commands/add.d.ts.map +1 -0
- package/dist/commands/add.js +301 -0
- package/dist/commands/add.js.map +1 -0
- package/dist/commands/download.d.ts +4 -0
- package/dist/commands/download.d.ts.map +1 -0
- package/dist/commands/download.js +309 -0
- package/dist/commands/download.js.map +1 -0
- package/dist/commands/setup.d.ts +3 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +41 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/start/handlers/aiTasks.d.ts +4 -0
- package/dist/commands/start/handlers/aiTasks.d.ts.map +1 -0
- package/dist/commands/start/handlers/aiTasks.js +95 -0
- package/dist/commands/start/handlers/aiTasks.js.map +1 -0
- package/dist/commands/start/handlers/cronjobs.d.ts +4 -0
- package/dist/commands/start/handlers/cronjobs.d.ts.map +1 -0
- package/dist/commands/start/handlers/cronjobs.js +80 -0
- package/dist/commands/start/handlers/cronjobs.js.map +1 -0
- package/dist/commands/start/handlers/emailLayouts.d.ts +4 -0
- package/dist/commands/start/handlers/emailLayouts.d.ts.map +1 -0
- package/dist/commands/start/handlers/emailLayouts.js +83 -0
- package/dist/commands/start/handlers/emailLayouts.js.map +1 -0
- package/dist/commands/start/handlers/emailTemplates.d.ts +4 -0
- package/dist/commands/start/handlers/emailTemplates.d.ts.map +1 -0
- package/dist/commands/start/handlers/emailTemplates.js +83 -0
- package/dist/commands/start/handlers/emailTemplates.js.map +1 -0
- package/dist/commands/start/handlers/index.d.ts +11 -0
- package/dist/commands/start/handlers/index.d.ts.map +1 -0
- package/dist/commands/start/handlers/index.js +11 -0
- package/dist/commands/start/handlers/index.js.map +1 -0
- package/dist/commands/start/handlers/objects.d.ts +8 -0
- package/dist/commands/start/handlers/objects.d.ts.map +1 -0
- package/dist/commands/start/handlers/objects.js +205 -0
- package/dist/commands/start/handlers/objects.js.map +1 -0
- package/dist/commands/start/handlers/pages.d.ts +4 -0
- package/dist/commands/start/handlers/pages.d.ts.map +1 -0
- package/dist/commands/start/handlers/pages.js +86 -0
- package/dist/commands/start/handlers/pages.js.map +1 -0
- package/dist/commands/start/handlers/pdfTemplates.d.ts +4 -0
- package/dist/commands/start/handlers/pdfTemplates.d.ts.map +1 -0
- package/dist/commands/start/handlers/pdfTemplates.js +81 -0
- package/dist/commands/start/handlers/pdfTemplates.js.map +1 -0
- package/dist/commands/start/handlers/reports.d.ts +4 -0
- package/dist/commands/start/handlers/reports.d.ts.map +1 -0
- package/dist/commands/start/handlers/reports.js +159 -0
- package/dist/commands/start/handlers/reports.js.map +1 -0
- package/dist/commands/start/handlers/stateMachines.d.ts +4 -0
- package/dist/commands/start/handlers/stateMachines.d.ts.map +1 -0
- package/dist/commands/start/handlers/stateMachines.js +549 -0
- package/dist/commands/start/handlers/stateMachines.js.map +1 -0
- package/dist/commands/start/handlers/workflows.d.ts +5 -0
- package/dist/commands/start/handlers/workflows.d.ts.map +1 -0
- package/dist/commands/start/handlers/workflows.js +277 -0
- package/dist/commands/start/handlers/workflows.js.map +1 -0
- package/dist/commands/start/index.d.ts +5 -0
- package/dist/commands/start/index.d.ts.map +1 -0
- package/dist/commands/start/index.js +304 -0
- package/dist/commands/start/index.js.map +1 -0
- package/dist/commands/start/types.d.ts +25 -0
- package/dist/commands/start/types.d.ts.map +1 -0
- package/dist/commands/start/types.js +2 -0
- package/dist/commands/start/types.js.map +1 -0
- package/dist/commands/start/utils.d.ts +10 -0
- package/dist/commands/start/utils.d.ts.map +1 -0
- package/dist/commands/start/utils.js +191 -0
- package/dist/commands/start/utils.js.map +1 -0
- package/dist/commands/start.d.ts +2 -0
- package/dist/commands/start.d.ts.map +1 -0
- package/dist/commands/start.js +2 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/commands/upload.d.ts +3 -0
- package/dist/commands/upload.d.ts.map +1 -0
- package/dist/commands/upload.js +115 -0
- package/dist/commands/upload.js.map +1 -0
- package/dist/commands/workflow-info.d.ts +11 -0
- package/dist/commands/workflow-info.d.ts.map +1 -0
- package/dist/commands/workflow-info.js +159 -0
- package/dist/commands/workflow-info.js.map +1 -0
- package/dist/components/DownloadProgress.d.ts +11 -0
- package/dist/components/DownloadProgress.d.ts.map +1 -0
- package/dist/components/DownloadProgress.js +29 -0
- package/dist/components/DownloadProgress.js.map +1 -0
- package/dist/components/SetupForm.d.ts +8 -0
- package/dist/components/SetupForm.d.ts.map +1 -0
- package/dist/components/SetupForm.js +56 -0
- package/dist/components/SetupForm.js.map +1 -0
- package/dist/components/UploadProgress.d.ts +11 -0
- package/dist/components/UploadProgress.d.ts.map +1 -0
- package/dist/components/UploadProgress.js +29 -0
- package/dist/components/UploadProgress.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +63 -0
- package/dist/index.js.map +1 -0
- package/dist/types/index.d.ts +18 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/api.d.ts +47 -0
- package/dist/utils/api.d.ts.map +1 -0
- package/dist/utils/api.js +676 -0
- package/dist/utils/api.js.map +1 -0
- package/dist/utils/auth.d.ts +4 -0
- package/dist/utils/auth.d.ts.map +1 -0
- package/dist/utils/auth.js +22 -0
- package/dist/utils/auth.js.map +1 -0
- package/dist/utils/docs.d.ts +2 -0
- package/dist/utils/docs.d.ts.map +1 -0
- package/dist/utils/docs.js +41 -0
- package/dist/utils/docs.js.map +1 -0
- package/dist/utils/errorLogger.d.ts +6 -0
- package/dist/utils/errorLogger.d.ts.map +1 -0
- package/dist/utils/errorLogger.js +29 -0
- package/dist/utils/errorLogger.js.map +1 -0
- package/dist/utils/files.d.ts +14 -0
- package/dist/utils/files.d.ts.map +1 -0
- package/dist/utils/files.js +732 -0
- package/dist/utils/files.js.map +1 -0
- package/dist/utils/lockManager.d.ts +15 -0
- package/dist/utils/lockManager.d.ts.map +1 -0
- package/dist/utils/lockManager.js +126 -0
- package/dist/utils/lockManager.js.map +1 -0
- package/dist/utils/summaryGenerator.d.ts +2 -0
- package/dist/utils/summaryGenerator.d.ts.map +1 -0
- package/dist/utils/summaryGenerator.js +183 -0
- package/dist/utils/summaryGenerator.js.map +1 -0
- package/dist/utils/uploadHandler.d.ts +35 -0
- package/dist/utils/uploadHandler.d.ts.map +1 -0
- package/dist/utils/uploadHandler.js +706 -0
- package/dist/utils/uploadHandler.js.map +1 -0
- package/object_response.png +0 -0
- package/object_specs_response.png +0 -0
- package/package.json +56 -0
|
@@ -0,0 +1,549 @@
|
|
|
1
|
+
import { promises as fs } from 'fs';
|
|
2
|
+
import { join, basename, dirname } from 'path';
|
|
3
|
+
import { restoreFieldsFromFiles, restoreTableRecordFromFiles } from '../../../utils/files.js';
|
|
4
|
+
import { getSpecColumnName } from '../utils.js';
|
|
5
|
+
export async function handleStateMachineFileChange(filePath, apiInstance, isNewFile, addLog) {
|
|
6
|
+
const fileName = basename(filePath);
|
|
7
|
+
const parts = filePath.split('/');
|
|
8
|
+
const stateMachinesIndex = parts.findIndex(part => part === 'bfy_state_machines');
|
|
9
|
+
if (stateMachinesIndex === -1 || parts.length < stateMachinesIndex + 2)
|
|
10
|
+
return;
|
|
11
|
+
try {
|
|
12
|
+
if (filePath.includes('/states/')) {
|
|
13
|
+
await handleStateMachineStateChange(filePath, apiInstance, isNewFile, addLog);
|
|
14
|
+
}
|
|
15
|
+
else if (filePath.includes('/roles/')) {
|
|
16
|
+
await handleStateMachineRoleChange(filePath, apiInstance, isNewFile, addLog);
|
|
17
|
+
}
|
|
18
|
+
else if (filePath.includes('/transitions/')) {
|
|
19
|
+
await handleStateMachineTransitionChange(filePath, apiInstance, isNewFile, addLog);
|
|
20
|
+
}
|
|
21
|
+
else if (filePath.includes('/transition_actions/')) {
|
|
22
|
+
await handleTransitionActionChange(filePath, apiInstance, isNewFile, addLog);
|
|
23
|
+
}
|
|
24
|
+
else if (filePath.includes('/actions/')) {
|
|
25
|
+
await handleStateMachineActionChange(filePath, apiInstance, isNewFile, addLog);
|
|
26
|
+
}
|
|
27
|
+
else if (fileName === 'state_machine.json') {
|
|
28
|
+
await handleStateMachineMainChange(filePath, apiInstance, isNewFile, addLog);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
addLog(`✗ Error handling state machine file: ${err instanceof Error ? err.message : 'Unknown error'}`, 'error');
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
async function handleStateMachineMainChange(filePath, apiInstance, isNewFile, addLog) {
|
|
36
|
+
const stateMachineData = JSON.parse(await fs.readFile(filePath, 'utf-8'));
|
|
37
|
+
if (isNewFile) {
|
|
38
|
+
const { id, ...createData } = stateMachineData;
|
|
39
|
+
const formData = new URLSearchParams();
|
|
40
|
+
Object.entries(createData).forEach(([key, value]) => {
|
|
41
|
+
if (value !== null && value !== undefined) {
|
|
42
|
+
formData.append(key, String(value));
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
const response = await apiInstance.httpClient.post('/admin/ajax/cms_object/operation?do=bfy_state_machines__add', formData, {
|
|
46
|
+
headers: {
|
|
47
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
if (response.data && response.data.success && response.data.id) {
|
|
51
|
+
addLog(`✓ Created state machine (ID: ${response.data.id})`, 'success');
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
const errorMsg = response.data?.error || response.data?.message || 'Unknown response format';
|
|
55
|
+
addLog(`✗ Failed to create state machine: ${errorMsg}`, 'error');
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
const formData = new URLSearchParams();
|
|
60
|
+
formData.append('id', stateMachineData.id.toString());
|
|
61
|
+
Object.entries(stateMachineData).forEach(([key, value]) => {
|
|
62
|
+
if (key !== 'id' && value !== null && value !== undefined) {
|
|
63
|
+
formData.append(key, String(value));
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
const response = await apiInstance.httpClient.post('/admin/ajax/cms_object/operation?do=bfy_state_machines__edit', formData, {
|
|
67
|
+
headers: {
|
|
68
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
if (response.data && response.data.success) {
|
|
72
|
+
addLog(`✓ Updated state machine (ID: ${stateMachineData.id})`, 'success');
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
const errorMsg = response.data?.error || response.data?.message || 'Unknown response format';
|
|
76
|
+
addLog(`✗ Failed to update state machine: ${errorMsg}`, 'error');
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
async function handleStateMachineStateChange(filePath, apiInstance, isNewFile, addLog) {
|
|
81
|
+
const fileName = basename(filePath);
|
|
82
|
+
if (fileName === 'state.json') {
|
|
83
|
+
const stateData = JSON.parse(await fs.readFile(filePath, 'utf-8'));
|
|
84
|
+
if (isNewFile) {
|
|
85
|
+
const { id, ...createData } = stateData;
|
|
86
|
+
const formData = new URLSearchParams();
|
|
87
|
+
Object.entries(createData).forEach(([key, value]) => {
|
|
88
|
+
if (value !== null && value !== undefined) {
|
|
89
|
+
formData.append(key, String(value));
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
const response = await apiInstance.httpClient.post('/admin/ajax/cms_object/operation?do=bfy_state_machine_states__add', formData, {
|
|
93
|
+
headers: {
|
|
94
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
if (response.data && response.data.success && response.data.id) {
|
|
98
|
+
addLog(`✓ Created state machine state (ID: ${response.data.id})`, 'success');
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
const errorMsg = response.data?.error || response.data?.message || 'Unknown response format';
|
|
102
|
+
addLog(`✗ Failed to create state: ${errorMsg}`, 'error');
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
const formData = new URLSearchParams();
|
|
107
|
+
formData.append('id', stateData.id.toString());
|
|
108
|
+
Object.entries(stateData).forEach(([key, value]) => {
|
|
109
|
+
if (key !== 'id' && value !== null && value !== undefined) {
|
|
110
|
+
formData.append(key, String(value));
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
const response = await apiInstance.httpClient.post('/admin/ajax/cms_object/operation?do=bfy_state_machine_states__edit', formData, {
|
|
114
|
+
headers: {
|
|
115
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
if (response.data && response.data.success) {
|
|
119
|
+
addLog(`✓ Updated state machine state (ID: ${stateData.id})`, 'success');
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
const errorMsg = response.data?.error || response.data?.message || 'Unknown response format';
|
|
123
|
+
addLog(`✗ Failed to update state: ${errorMsg}`, 'error');
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
async function handleStateMachineRoleChange(filePath, apiInstance, isNewFile, addLog) {
|
|
129
|
+
const fileName = basename(filePath);
|
|
130
|
+
const fileDir = dirname(filePath);
|
|
131
|
+
if (fileName === 'role.json') {
|
|
132
|
+
const roleData = JSON.parse(await fs.readFile(filePath, 'utf-8'));
|
|
133
|
+
const restoredData = await restoreTableRecordFromFiles(fileDir, 'bfy_state_machine_roles', roleData);
|
|
134
|
+
if (isNewFile) {
|
|
135
|
+
const { id, ...createData } = restoredData;
|
|
136
|
+
const formData = new URLSearchParams();
|
|
137
|
+
Object.entries(createData).forEach(([key, value]) => {
|
|
138
|
+
if (value !== null && value !== undefined) {
|
|
139
|
+
formData.append(key, String(value));
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
const response = await apiInstance.httpClient.post('/admin/ajax/cms_object/operation?do=bfy_state_machine_roles__add', formData, {
|
|
143
|
+
headers: {
|
|
144
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
if (response.data && response.data.success && response.data.id) {
|
|
148
|
+
addLog(`✓ Created state machine role (ID: ${response.data.id})`, 'success');
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
const errorMsg = response.data?.error || response.data?.message || 'Unknown response format';
|
|
152
|
+
addLog(`✗ Failed to create role: ${errorMsg}`, 'error');
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
const formData = new URLSearchParams();
|
|
157
|
+
formData.append('id', restoredData.id.toString());
|
|
158
|
+
Object.entries(restoredData).forEach(([key, value]) => {
|
|
159
|
+
if (key !== 'id' && value !== null && value !== undefined) {
|
|
160
|
+
formData.append(key, String(value));
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
const response = await apiInstance.httpClient.post('/admin/ajax/cms_object/operation?do=bfy_state_machine_roles__edit', formData, {
|
|
164
|
+
headers: {
|
|
165
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
if (response.data && response.data.success) {
|
|
169
|
+
addLog(`✓ Updated state machine role (ID: ${restoredData.id})`, 'success');
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
const errorMsg = response.data?.error || response.data?.message || 'Unknown response format';
|
|
173
|
+
addLog(`✗ Failed to update role: ${errorMsg}`, 'error');
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
else if (fileName === 'validation_code.bfy' && !isNewFile) {
|
|
178
|
+
const roleJsonPath = join(fileDir, 'role.json');
|
|
179
|
+
const roleData = JSON.parse(await fs.readFile(roleJsonPath, 'utf-8'));
|
|
180
|
+
const validationCode = await fs.readFile(filePath, 'utf-8');
|
|
181
|
+
const formData = new URLSearchParams();
|
|
182
|
+
formData.append('id', roleData.id.toString());
|
|
183
|
+
formData.append('validation_code', validationCode);
|
|
184
|
+
const response = await apiInstance.httpClient.post('/admin/ajax/cms_object/operation?do=bfy_state_machine_roles__edit', formData, {
|
|
185
|
+
headers: {
|
|
186
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
if (response.data && response.data.success) {
|
|
190
|
+
addLog(`✓ Updated role validation_code (ID: ${roleData.id})`, 'success');
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
const errorMsg = response.data?.error || response.data?.message || 'Unknown response format';
|
|
194
|
+
addLog(`✗ Failed to update role validation_code: ${errorMsg}`, 'error');
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
async function handleStateMachineTransitionChange(filePath, apiInstance, isNewFile, addLog) {
|
|
199
|
+
const fileName = basename(filePath);
|
|
200
|
+
const fileDir = dirname(filePath);
|
|
201
|
+
if (fileName === 'transition.json') {
|
|
202
|
+
const transitionData = JSON.parse(await fs.readFile(filePath, 'utf-8'));
|
|
203
|
+
const restoredData = await restoreTableRecordFromFiles(fileDir, 'bfy_state_machine_transitions', transitionData);
|
|
204
|
+
if (isNewFile) {
|
|
205
|
+
const { id, ...createData } = restoredData;
|
|
206
|
+
const formData = new URLSearchParams();
|
|
207
|
+
Object.entries(createData).forEach(([key, value]) => {
|
|
208
|
+
if (value !== null && value !== undefined) {
|
|
209
|
+
formData.append(key, String(value));
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
const response = await apiInstance.httpClient.post('/admin/ajax/cms_object/operation?do=bfy_state_machine_transitions__add', formData, {
|
|
213
|
+
headers: {
|
|
214
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
215
|
+
}
|
|
216
|
+
});
|
|
217
|
+
if (response.data && response.data.success && response.data.id) {
|
|
218
|
+
addLog(`✓ Created state machine transition (ID: ${response.data.id})`, 'success');
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
const errorMsg = response.data?.error || response.data?.message || 'Unknown response format';
|
|
222
|
+
addLog(`✗ Failed to create transition: ${errorMsg}`, 'error');
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
const formData = new URLSearchParams();
|
|
227
|
+
formData.append('id', restoredData.id.toString());
|
|
228
|
+
Object.entries(restoredData).forEach(([key, value]) => {
|
|
229
|
+
if (key !== 'id' && value !== null && value !== undefined) {
|
|
230
|
+
formData.append(key, String(value));
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
const response = await apiInstance.httpClient.post('/admin/ajax/cms_object/operation?do=bfy_state_machine_transitions__edit', formData, {
|
|
234
|
+
headers: {
|
|
235
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
236
|
+
}
|
|
237
|
+
});
|
|
238
|
+
if (response.data && response.data.success) {
|
|
239
|
+
addLog(`✓ Updated state machine transition (ID: ${restoredData.id})`, 'success');
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
const errorMsg = response.data?.error || response.data?.message || 'Unknown response format';
|
|
243
|
+
addLog(`✗ Failed to update transition: ${errorMsg}`, 'error');
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
else if ((fileName === 'action_code.bfy' || fileName === 'validation_code.bfy') && !isNewFile) {
|
|
248
|
+
const transitionJsonPath = join(fileDir, 'transition.json');
|
|
249
|
+
const transitionData = JSON.parse(await fs.readFile(transitionJsonPath, 'utf-8'));
|
|
250
|
+
const codeContent = await fs.readFile(filePath, 'utf-8');
|
|
251
|
+
const fieldName = fileName === 'action_code.bfy' ? 'action_code' : 'validation_code';
|
|
252
|
+
const formData = new URLSearchParams();
|
|
253
|
+
formData.append('id', transitionData.id.toString());
|
|
254
|
+
formData.append(fieldName, codeContent);
|
|
255
|
+
const response = await apiInstance.httpClient.post('/admin/ajax/cms_object/operation?do=bfy_state_machine_transitions__edit', formData, {
|
|
256
|
+
headers: {
|
|
257
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
258
|
+
}
|
|
259
|
+
});
|
|
260
|
+
if (response.data && response.data.success) {
|
|
261
|
+
addLog(`✓ Updated transition ${fieldName} (ID: ${transitionData.id})`, 'success');
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
const errorMsg = response.data?.error || response.data?.message || 'Unknown response format';
|
|
265
|
+
addLog(`✗ Failed to update transition ${fieldName}: ${errorMsg}`, 'error');
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
else if (filePath.includes('/specs/') && fileName === 'spec.json') {
|
|
269
|
+
await handleStateMachineTransitionSpecChange(filePath, apiInstance, isNewFile, addLog);
|
|
270
|
+
}
|
|
271
|
+
else if (filePath.includes('/specs/') && (fileName === 'code.bfy' || fileName === 'template_code.bfy' || fileName === 'processing_code.bfy' || fileName === 'filter_code.bfy' || fileName === 'configuration.yaml' || fileName === 'code.js' || fileName === 'style.css') && !isNewFile) {
|
|
272
|
+
await handleStateMachineTransitionSpecCodeChange(filePath, apiInstance, addLog);
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
async function handleStateMachineTransitionSpecChange(filePath, apiInstance, isNewFile, addLog) {
|
|
276
|
+
const specData = JSON.parse(await fs.readFile(filePath, 'utf-8'));
|
|
277
|
+
const fileDir = dirname(filePath);
|
|
278
|
+
const restoredData = await restoreFieldsFromFiles(fileDir, specData);
|
|
279
|
+
if (isNewFile) {
|
|
280
|
+
const { id, ...createData } = restoredData;
|
|
281
|
+
const formData = new URLSearchParams();
|
|
282
|
+
Object.entries(createData).forEach(([key, value]) => {
|
|
283
|
+
if (value !== null && value !== undefined) {
|
|
284
|
+
formData.append(key, String(value));
|
|
285
|
+
}
|
|
286
|
+
});
|
|
287
|
+
const response = await apiInstance.httpClient.post('/admin/ajax/cms_object/operation?do=bfy_state_machine_transition_specs__add', formData, {
|
|
288
|
+
headers: {
|
|
289
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
290
|
+
}
|
|
291
|
+
});
|
|
292
|
+
if (response.data && response.data.success && response.data.id) {
|
|
293
|
+
addLog(`✓ Created transition spec (ID: ${response.data.id})`, 'success');
|
|
294
|
+
}
|
|
295
|
+
else {
|
|
296
|
+
const errorMsg = response.data?.error || response.data?.message || 'Unknown response format';
|
|
297
|
+
addLog(`✗ Failed to create transition spec: ${errorMsg}`, 'error');
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
else {
|
|
301
|
+
const formData = new URLSearchParams();
|
|
302
|
+
formData.append('id', restoredData.id.toString());
|
|
303
|
+
Object.entries(restoredData).forEach(([key, value]) => {
|
|
304
|
+
if (key !== 'id' && value !== null && value !== undefined) {
|
|
305
|
+
formData.append(key, String(value));
|
|
306
|
+
}
|
|
307
|
+
});
|
|
308
|
+
const response = await apiInstance.httpClient.post('/admin/ajax/cms_object/operation?do=bfy_state_machine_transition_specs__edit', formData, {
|
|
309
|
+
headers: {
|
|
310
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
311
|
+
}
|
|
312
|
+
});
|
|
313
|
+
if (response.data && response.data.success) {
|
|
314
|
+
addLog(`✓ Updated transition spec (ID: ${restoredData.id})`, 'success');
|
|
315
|
+
}
|
|
316
|
+
else {
|
|
317
|
+
const errorMsg = response.data?.error || response.data?.message || 'Unknown response format';
|
|
318
|
+
addLog(`✗ Failed to update transition spec: ${errorMsg}`, 'error');
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
async function handleStateMachineTransitionSpecCodeChange(filePath, apiInstance, addLog) {
|
|
323
|
+
try {
|
|
324
|
+
const fileName = basename(filePath);
|
|
325
|
+
const fileDir = dirname(filePath);
|
|
326
|
+
const specJsonPath = join(fileDir, 'spec.json');
|
|
327
|
+
const specData = JSON.parse(await fs.readFile(specJsonPath, 'utf-8'));
|
|
328
|
+
const codeContent = await fs.readFile(filePath, 'utf-8');
|
|
329
|
+
const columnName = getSpecColumnName(specData, fileName);
|
|
330
|
+
const formData = new URLSearchParams();
|
|
331
|
+
formData.append('id', specData.id.toString());
|
|
332
|
+
formData.append(columnName, codeContent);
|
|
333
|
+
const response = await apiInstance.httpClient.post('/admin/ajax/cms_object/operation?do=bfy_state_machine_transition_specs__edit', formData, {
|
|
334
|
+
headers: {
|
|
335
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
336
|
+
}
|
|
337
|
+
});
|
|
338
|
+
if (response.data && response.data.success) {
|
|
339
|
+
addLog(`✓ Updated transition spec ${columnName} (ID: ${specData.id})`, 'success');
|
|
340
|
+
}
|
|
341
|
+
else {
|
|
342
|
+
const errorMsg = response.data?.error || response.data?.message || 'Unknown response format';
|
|
343
|
+
addLog(`✗ Failed to update transition spec ${columnName}: ${errorMsg}`, 'error');
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
catch (err) {
|
|
347
|
+
addLog(`✗ Error updating transition spec code: ${err instanceof Error ? err.message : 'Unknown error'}`, 'error');
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
async function handleStateMachineActionChange(filePath, apiInstance, isNewFile, addLog) {
|
|
351
|
+
const fileName = basename(filePath);
|
|
352
|
+
const fileDir = dirname(filePath);
|
|
353
|
+
if (fileName === 'action.json') {
|
|
354
|
+
const actionData = JSON.parse(await fs.readFile(filePath, 'utf-8'));
|
|
355
|
+
const restoredData = await restoreTableRecordFromFiles(fileDir, 'bfy_sm_actions', actionData);
|
|
356
|
+
if (isNewFile) {
|
|
357
|
+
const { id, ...createData } = restoredData;
|
|
358
|
+
const formData = new URLSearchParams();
|
|
359
|
+
Object.entries(createData).forEach(([key, value]) => {
|
|
360
|
+
if (value !== null && value !== undefined) {
|
|
361
|
+
formData.append(key, String(value));
|
|
362
|
+
}
|
|
363
|
+
});
|
|
364
|
+
const response = await apiInstance.httpClient.post('/admin/ajax/cms_object/operation?do=bfy_sm_actions__add', formData, {
|
|
365
|
+
headers: {
|
|
366
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
367
|
+
}
|
|
368
|
+
});
|
|
369
|
+
if (response.data && response.data.success && response.data.id) {
|
|
370
|
+
addLog(`✓ Created state machine action (ID: ${response.data.id})`, 'success');
|
|
371
|
+
}
|
|
372
|
+
else {
|
|
373
|
+
const errorMsg = response.data?.error || response.data?.message || 'Unknown response format';
|
|
374
|
+
addLog(`✗ Failed to create action: ${errorMsg}`, 'error');
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
else {
|
|
378
|
+
const formData = new URLSearchParams();
|
|
379
|
+
formData.append('id', restoredData.id.toString());
|
|
380
|
+
Object.entries(restoredData).forEach(([key, value]) => {
|
|
381
|
+
if (key !== 'id' && value !== null && value !== undefined) {
|
|
382
|
+
formData.append(key, String(value));
|
|
383
|
+
}
|
|
384
|
+
});
|
|
385
|
+
const response = await apiInstance.httpClient.post('/admin/ajax/cms_object/operation?do=bfy_sm_actions__edit', formData, {
|
|
386
|
+
headers: {
|
|
387
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
388
|
+
}
|
|
389
|
+
});
|
|
390
|
+
if (response.data && response.data.success) {
|
|
391
|
+
addLog(`✓ Updated state machine action (ID: ${restoredData.id})`, 'success');
|
|
392
|
+
}
|
|
393
|
+
else {
|
|
394
|
+
const errorMsg = response.data?.error || response.data?.message || 'Unknown response format';
|
|
395
|
+
addLog(`✗ Failed to update action: ${errorMsg}`, 'error');
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
else if (fileName === 'code.bfy' && !isNewFile) {
|
|
400
|
+
const actionJsonPath = join(fileDir, 'action.json');
|
|
401
|
+
const actionData = JSON.parse(await fs.readFile(actionJsonPath, 'utf-8'));
|
|
402
|
+
const codeContent = await fs.readFile(filePath, 'utf-8');
|
|
403
|
+
const formData = new URLSearchParams();
|
|
404
|
+
formData.append('id', actionData.id.toString());
|
|
405
|
+
formData.append('code', codeContent);
|
|
406
|
+
const response = await apiInstance.httpClient.post('/admin/ajax/cms_object/operation?do=bfy_sm_actions__edit', formData, {
|
|
407
|
+
headers: {
|
|
408
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
409
|
+
}
|
|
410
|
+
});
|
|
411
|
+
if (response.data && response.data.success) {
|
|
412
|
+
addLog(`✓ Updated action code (ID: ${actionData.id})`, 'success');
|
|
413
|
+
}
|
|
414
|
+
else {
|
|
415
|
+
const errorMsg = response.data?.error || response.data?.message || 'Unknown response format';
|
|
416
|
+
addLog(`✗ Failed to update action code: ${errorMsg}`, 'error');
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
else if (filePath.includes('/specs/') && fileName === 'spec.json') {
|
|
420
|
+
await handleStateMachineActionSpecChange(filePath, apiInstance, isNewFile, addLog);
|
|
421
|
+
}
|
|
422
|
+
else if (filePath.includes('/specs/') && (fileName === 'code.bfy' || fileName === 'template_code.bfy' || fileName === 'processing_code.bfy' || fileName === 'filter_code.bfy' || fileName === 'configuration.yaml' || fileName === 'code.js' || fileName === 'style.css') && !isNewFile) {
|
|
423
|
+
await handleStateMachineActionSpecCodeChange(filePath, apiInstance, addLog);
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
async function handleStateMachineActionSpecChange(filePath, apiInstance, isNewFile, addLog) {
|
|
427
|
+
const specData = JSON.parse(await fs.readFile(filePath, 'utf-8'));
|
|
428
|
+
const fileDir = dirname(filePath);
|
|
429
|
+
const restoredData = await restoreFieldsFromFiles(fileDir, specData);
|
|
430
|
+
if (isNewFile) {
|
|
431
|
+
const { id, ...createData } = restoredData;
|
|
432
|
+
const formData = new URLSearchParams();
|
|
433
|
+
Object.entries(createData).forEach(([key, value]) => {
|
|
434
|
+
if (value !== null && value !== undefined) {
|
|
435
|
+
formData.append(key, String(value));
|
|
436
|
+
}
|
|
437
|
+
});
|
|
438
|
+
const response = await apiInstance.httpClient.post('/admin/ajax/cms_object/operation?do=bfy_sm_action_specs__add', formData, {
|
|
439
|
+
headers: {
|
|
440
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
441
|
+
}
|
|
442
|
+
});
|
|
443
|
+
if (response.data && response.data.success && response.data.id) {
|
|
444
|
+
addLog(`✓ Created action spec (ID: ${response.data.id})`, 'success');
|
|
445
|
+
}
|
|
446
|
+
else {
|
|
447
|
+
const errorMsg = response.data?.error || response.data?.message || 'Unknown response format';
|
|
448
|
+
addLog(`✗ Failed to create action spec: ${errorMsg}`, 'error');
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
else {
|
|
452
|
+
const formData = new URLSearchParams();
|
|
453
|
+
formData.append('id', restoredData.id.toString());
|
|
454
|
+
Object.entries(restoredData).forEach(([key, value]) => {
|
|
455
|
+
if (key !== 'id' && value !== null && value !== undefined) {
|
|
456
|
+
formData.append(key, String(value));
|
|
457
|
+
}
|
|
458
|
+
});
|
|
459
|
+
const response = await apiInstance.httpClient.post('/admin/ajax/cms_object/operation?do=bfy_sm_action_specs__edit', formData, {
|
|
460
|
+
headers: {
|
|
461
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
462
|
+
}
|
|
463
|
+
});
|
|
464
|
+
if (response.data && response.data.success) {
|
|
465
|
+
addLog(`✓ Updated action spec (ID: ${restoredData.id})`, 'success');
|
|
466
|
+
}
|
|
467
|
+
else {
|
|
468
|
+
const errorMsg = response.data?.error || response.data?.message || 'Unknown response format';
|
|
469
|
+
addLog(`✗ Failed to update action spec: ${errorMsg}`, 'error');
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
async function handleStateMachineActionSpecCodeChange(filePath, apiInstance, addLog) {
|
|
474
|
+
try {
|
|
475
|
+
const fileName = basename(filePath);
|
|
476
|
+
const fileDir = dirname(filePath);
|
|
477
|
+
const specJsonPath = join(fileDir, 'spec.json');
|
|
478
|
+
const specData = JSON.parse(await fs.readFile(specJsonPath, 'utf-8'));
|
|
479
|
+
const codeContent = await fs.readFile(filePath, 'utf-8');
|
|
480
|
+
const columnName = getSpecColumnName(specData, fileName);
|
|
481
|
+
const formData = new URLSearchParams();
|
|
482
|
+
formData.append('id', specData.id.toString());
|
|
483
|
+
formData.append(columnName, codeContent);
|
|
484
|
+
const response = await apiInstance.httpClient.post('/admin/ajax/cms_object/operation?do=bfy_sm_action_specs__edit', formData, {
|
|
485
|
+
headers: {
|
|
486
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
487
|
+
}
|
|
488
|
+
});
|
|
489
|
+
if (response.data && response.data.success) {
|
|
490
|
+
addLog(`✓ Updated action spec ${columnName} (ID: ${specData.id})`, 'success');
|
|
491
|
+
}
|
|
492
|
+
else {
|
|
493
|
+
const errorMsg = response.data?.error || response.data?.message || 'Unknown response format';
|
|
494
|
+
addLog(`✗ Failed to update action spec ${columnName}: ${errorMsg}`, 'error');
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
catch (err) {
|
|
498
|
+
addLog(`✗ Error updating action spec code: ${err instanceof Error ? err.message : 'Unknown error'}`, 'error');
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
async function handleTransitionActionChange(filePath, apiInstance, isNewFile, addLog) {
|
|
502
|
+
const fileName = basename(filePath);
|
|
503
|
+
if (fileName.includes('.json')) {
|
|
504
|
+
const mappingData = JSON.parse(await fs.readFile(filePath, 'utf-8'));
|
|
505
|
+
if (isNewFile) {
|
|
506
|
+
const { id, ...createData } = mappingData;
|
|
507
|
+
const formData = new URLSearchParams();
|
|
508
|
+
Object.entries(createData).forEach(([key, value]) => {
|
|
509
|
+
if (value !== null && value !== undefined) {
|
|
510
|
+
formData.append(key, String(value));
|
|
511
|
+
}
|
|
512
|
+
});
|
|
513
|
+
const response = await apiInstance.httpClient.post('/admin/ajax/cms_object/operation?do=bfy_sm_transition_actions__add', formData, {
|
|
514
|
+
headers: {
|
|
515
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
516
|
+
}
|
|
517
|
+
});
|
|
518
|
+
if (response.data && response.data.success && response.data.id) {
|
|
519
|
+
addLog(`✓ Created transition-action mapping (ID: ${response.data.id})`, 'success');
|
|
520
|
+
}
|
|
521
|
+
else {
|
|
522
|
+
const errorMsg = response.data?.error || response.data?.message || 'Unknown response format';
|
|
523
|
+
addLog(`✗ Failed to create transition-action mapping: ${errorMsg}`, 'error');
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
else {
|
|
527
|
+
const formData = new URLSearchParams();
|
|
528
|
+
formData.append('id', mappingData.id.toString());
|
|
529
|
+
Object.entries(mappingData).forEach(([key, value]) => {
|
|
530
|
+
if (key !== 'id' && value !== null && value !== undefined) {
|
|
531
|
+
formData.append(key, String(value));
|
|
532
|
+
}
|
|
533
|
+
});
|
|
534
|
+
const response = await apiInstance.httpClient.post('/admin/ajax/cms_object/operation?do=bfy_sm_transition_actions__edit', formData, {
|
|
535
|
+
headers: {
|
|
536
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
537
|
+
}
|
|
538
|
+
});
|
|
539
|
+
if (response.data && response.data.success) {
|
|
540
|
+
addLog(`✓ Updated transition-action mapping (ID: ${mappingData.id})`, 'success');
|
|
541
|
+
}
|
|
542
|
+
else {
|
|
543
|
+
const errorMsg = response.data?.error || response.data?.message || 'Unknown response format';
|
|
544
|
+
addLog(`✗ Failed to update transition-action mapping: ${errorMsg}`, 'error');
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
//# sourceMappingURL=stateMachines.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stateMachines.js","sourceRoot":"","sources":["../../../../src/commands/start/handlers/stateMachines.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/C,OAAO,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAE9F,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,QAAgB,EAChB,WAAyB,EACzB,SAAkB,EAClB,MAAgB;IAEhB,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,kBAAkB,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,oBAAoB,CAAC,CAAC;IAElF,IAAI,kBAAkB,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,kBAAkB,GAAG,CAAC;QAAE,OAAO;IAE/E,IAAI,CAAC;QAEH,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAClC,MAAM,6BAA6B,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAChF,CAAC;aAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACxC,MAAM,4BAA4B,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC/E,CAAC;aAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YAC9C,MAAM,kCAAkC,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACrF,CAAC;aAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;YACrD,MAAM,4BAA4B,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC/E,CAAC;aAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1C,MAAM,8BAA8B,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACjF,CAAC;aAAM,IAAI,QAAQ,KAAK,oBAAoB,EAAE,CAAC;YAC7C,MAAM,4BAA4B,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,wCAAwC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,EAAE,OAAO,CAAC,CAAC;IAClH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,4BAA4B,CACzC,QAAgB,EAChB,WAAyB,EACzB,SAAkB,EAClB,MAAgB;IAEhB,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAE1E,IAAI,SAAS,EAAE,CAAC;QAEd,MAAM,EAAE,EAAE,EAAE,GAAG,UAAU,EAAE,GAAG,gBAAgB,CAAC;QAC/C,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QAEvC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAClD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC1C,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACtC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,6DAA6D,EAAE,QAAQ,EAAE;YAC1H,OAAO,EAAE;gBACP,cAAc,EAAE,mCAAmC;aACpD;SACF,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YAC/D,MAAM,CAAC,gCAAgC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACzE,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,IAAI,yBAAyB,CAAC;YAC7F,MAAM,CAAC,qCAAqC,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;SAAM,CAAC;QAEN,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QACvC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEtD,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACxD,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC1D,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACtC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,8DAA8D,EAAE,QAAQ,EAAE;YAC3H,OAAO,EAAE;gBACP,cAAc,EAAE,mCAAmC;aACpD;SACF,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3C,MAAM,CAAC,gCAAgC,gBAAgB,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAC5E,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,IAAI,yBAAyB,CAAC;YAC7F,MAAM,CAAC,qCAAqC,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,6BAA6B,CAC1C,QAAgB,EAChB,WAAyB,EACzB,SAAkB,EAClB,MAAgB;IAEhB,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEpC,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QAEnE,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,EAAE,EAAE,EAAE,GAAG,UAAU,EAAE,GAAG,SAAS,CAAC;YACxC,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;YAEvC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBAClD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC1C,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,mEAAmE,EAAE,QAAQ,EAAE;gBAChI,OAAO,EAAE;oBACP,cAAc,EAAE,mCAAmC;iBACpD;aACF,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBAC/D,MAAM,CAAC,sCAAsC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;YAC/E,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,IAAI,yBAAyB,CAAC;gBAC7F,MAAM,CAAC,6BAA6B,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;YACvC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;YAE/C,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBACjD,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC1D,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,oEAAoE,EAAE,QAAQ,EAAE;gBACjI,OAAO,EAAE;oBACP,cAAc,EAAE,mCAAmC;iBACpD;aACF,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC3C,MAAM,CAAC,sCAAsC,SAAS,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;YAC3E,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,IAAI,yBAAyB,CAAC;gBAC7F,MAAM,CAAC,6BAA6B,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,4BAA4B,CACzC,QAAgB,EAChB,WAAyB,EACzB,SAAkB,EAClB,MAAgB;IAEhB,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAElC,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QAClE,MAAM,YAAY,GAAG,MAAM,2BAA2B,CAAC,OAAO,EAAE,yBAAyB,EAAE,QAAQ,CAAC,CAAC;QAErG,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,EAAE,EAAE,EAAE,GAAG,UAAU,EAAE,GAAG,YAAY,CAAC;YAC3C,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;YAEvC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBAClD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC1C,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,kEAAkE,EAAE,QAAQ,EAAE;gBAC/H,OAAO,EAAE;oBACP,cAAc,EAAE,mCAAmC;iBACpD;aACF,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBAC/D,MAAM,CAAC,qCAAqC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;YAC9E,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,IAAI,yBAAyB,CAAC;gBAC7F,MAAM,CAAC,4BAA4B,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;YACvC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;YAElD,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBACpD,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC1D,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,mEAAmE,EAAE,QAAQ,EAAE;gBAChI,OAAO,EAAE;oBACP,cAAc,EAAE,mCAAmC;iBACpD;aACF,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC3C,MAAM,CAAC,qCAAqC,YAAY,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;YAC7E,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,IAAI,yBAAyB,CAAC;gBAC7F,MAAM,CAAC,4BAA4B,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,QAAQ,KAAK,qBAAqB,IAAI,CAAC,SAAS,EAAE,CAAC;QAE5D,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;QACtE,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE5D,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QACvC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9C,QAAQ,CAAC,MAAM,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;QAEnD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,mEAAmE,EAAE,QAAQ,EAAE;YAChI,OAAO,EAAE;gBACP,cAAc,EAAE,mCAAmC;aACpD;SACF,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3C,MAAM,CAAC,uCAAuC,QAAQ,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,IAAI,yBAAyB,CAAC;YAC7F,MAAM,CAAC,4CAA4C,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kCAAkC,CAC/C,QAAgB,EAChB,WAAyB,EACzB,SAAkB,EAClB,MAAgB;IAEhB,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAElC,IAAI,QAAQ,KAAK,iBAAiB,EAAE,CAAC;QACnC,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QACxE,MAAM,YAAY,GAAG,MAAM,2BAA2B,CAAC,OAAO,EAAE,+BAA+B,EAAE,cAAc,CAAC,CAAC;QAEjH,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,EAAE,EAAE,EAAE,GAAG,UAAU,EAAE,GAAG,YAAY,CAAC;YAC3C,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;YAEvC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBAClD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC1C,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,wEAAwE,EAAE,QAAQ,EAAE;gBACrI,OAAO,EAAE;oBACP,cAAc,EAAE,mCAAmC;iBACpD;aACF,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBAC/D,MAAM,CAAC,2CAA2C,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;YACpF,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,IAAI,yBAAyB,CAAC;gBAC7F,MAAM,CAAC,kCAAkC,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;YACvC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;YAElD,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBACpD,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC1D,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,yEAAyE,EAAE,QAAQ,EAAE;gBACtI,OAAO,EAAE;oBACP,cAAc,EAAE,mCAAmC;iBACpD;aACF,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC3C,MAAM,CAAC,2CAA2C,YAAY,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;YACnF,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,IAAI,yBAAyB,CAAC;gBAC7F,MAAM,CAAC,kCAAkC,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;YAChE,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,CAAC,QAAQ,KAAK,iBAAiB,IAAI,QAAQ,KAAK,qBAAqB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAEhG,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;QAC5D,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC;QAClF,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEzD,MAAM,SAAS,GAAG,QAAQ,KAAK,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAErF,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QACvC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpD,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAExC,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,yEAAyE,EAAE,QAAQ,EAAE;YACtI,OAAO,EAAE;gBACP,cAAc,EAAE,mCAAmC;aACpD;SACF,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3C,MAAM,CAAC,wBAAwB,SAAS,SAAS,cAAc,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACpF,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,IAAI,yBAAyB,CAAC;YAC7F,MAAM,CAAC,iCAAiC,SAAS,KAAK,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;SAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;QAEpE,MAAM,sCAAsC,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACzF,CAAC;SAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,KAAK,UAAU,IAAI,QAAQ,KAAK,mBAAmB,IAAI,QAAQ,KAAK,qBAAqB,IAAI,QAAQ,KAAK,iBAAiB,IAAI,QAAQ,KAAK,oBAAoB,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAE1R,MAAM,0CAA0C,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAClF,CAAC;AACH,CAAC;AAED,KAAK,UAAU,sCAAsC,CACnD,QAAgB,EAChB,WAAyB,EACzB,SAAkB,EAClB,MAAgB;IAEhB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,YAAY,GAAG,MAAM,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAErE,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,EAAE,EAAE,EAAE,GAAG,UAAU,EAAE,GAAG,YAAY,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QAEvC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAClD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC1C,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACtC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,6EAA6E,EAAE,QAAQ,EAAE;YAC1I,OAAO,EAAE;gBACP,cAAc,EAAE,mCAAmC;aACpD;SACF,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YAC/D,MAAM,CAAC,kCAAkC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,IAAI,yBAAyB,CAAC;YAC7F,MAAM,CAAC,uCAAuC,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QACvC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAElD,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACpD,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC1D,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACtC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,8EAA8E,EAAE,QAAQ,EAAE;YAC3I,OAAO,EAAE;gBACP,cAAc,EAAE,mCAAmC;aACpD;SACF,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3C,MAAM,CAAC,kCAAkC,YAAY,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAC1E,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,IAAI,yBAAyB,CAAC;YAC7F,MAAM,CAAC,uCAAuC,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,0CAA0C,CACvD,QAAgB,EAChB,WAAyB,EACzB,MAAgB;IAEhB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAClC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAGhD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;QAGtE,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAGzD,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAGzD,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QACvC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9C,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAEzC,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,8EAA8E,EAAE,QAAQ,EAAE;YAC3I,OAAO,EAAE;gBACP,cAAc,EAAE,mCAAmC;aACpD;SACF,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3C,MAAM,CAAC,6BAA6B,UAAU,SAAS,QAAQ,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACpF,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,IAAI,yBAAyB,CAAC;YAC7F,MAAM,CAAC,sCAAsC,UAAU,KAAK,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,0CAA0C,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,EAAE,OAAO,CAAC,CAAC;IACpH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,8BAA8B,CAC3C,QAAgB,EAChB,WAAyB,EACzB,SAAkB,EAClB,MAAgB;IAEhB,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAElC,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QACpE,MAAM,YAAY,GAAG,MAAM,2BAA2B,CAAC,OAAO,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAAC;QAE9F,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,EAAE,EAAE,EAAE,GAAG,UAAU,EAAE,GAAG,YAAY,CAAC;YAC3C,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;YAEvC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBAClD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC1C,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,yDAAyD,EAAE,QAAQ,EAAE;gBACtH,OAAO,EAAE;oBACP,cAAc,EAAE,mCAAmC;iBACpD;aACF,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBAC/D,MAAM,CAAC,uCAAuC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;YAChF,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,IAAI,yBAAyB,CAAC;gBAC7F,MAAM,CAAC,8BAA8B,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;YACvC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;YAElD,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBACpD,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC1D,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,0DAA0D,EAAE,QAAQ,EAAE;gBACvH,OAAO,EAAE;oBACP,cAAc,EAAE,mCAAmC;iBACpD;aACF,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC3C,MAAM,CAAC,uCAAuC,YAAY,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;YAC/E,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,IAAI,yBAAyB,CAAC;gBAC7F,MAAM,CAAC,8BAA8B,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;SAAM,IAAI,QAAQ,KAAK,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjD,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1E,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEzD,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QACvC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChD,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAErC,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,0DAA0D,EAAE,QAAQ,EAAE;YACvH,OAAO,EAAE;gBACP,cAAc,EAAE,mCAAmC;aACpD;SACF,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3C,MAAM,CAAC,8BAA8B,UAAU,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,IAAI,yBAAyB,CAAC;YAC7F,MAAM,CAAC,mCAAmC,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;SAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;QAEpE,MAAM,kCAAkC,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACrF,CAAC;SAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,KAAK,UAAU,IAAI,QAAQ,KAAK,mBAAmB,IAAI,QAAQ,KAAK,qBAAqB,IAAI,QAAQ,KAAK,iBAAiB,IAAI,QAAQ,KAAK,oBAAoB,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAE1R,MAAM,sCAAsC,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kCAAkC,CAC/C,QAAgB,EAChB,WAAyB,EACzB,SAAkB,EAClB,MAAgB;IAEhB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,YAAY,GAAG,MAAM,sBAAsB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAErE,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,EAAE,EAAE,EAAE,GAAG,UAAU,EAAE,GAAG,YAAY,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QAEvC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAClD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC1C,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACtC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,8DAA8D,EAAE,QAAQ,EAAE;YAC3H,OAAO,EAAE;gBACP,cAAc,EAAE,mCAAmC;aACpD;SACF,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YAC/D,MAAM,CAAC,8BAA8B,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,IAAI,yBAAyB,CAAC;YAC7F,MAAM,CAAC,mCAAmC,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QACvC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAElD,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YACpD,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC1D,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACtC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,+DAA+D,EAAE,QAAQ,EAAE;YAC5H,OAAO,EAAE;gBACP,cAAc,EAAE,mCAAmC;aACpD;SACF,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3C,MAAM,CAAC,8BAA8B,YAAY,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QACtE,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,IAAI,yBAAyB,CAAC;YAC7F,MAAM,CAAC,mCAAmC,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,sCAAsC,CACnD,QAAgB,EAChB,WAAyB,EACzB,MAAgB;IAEhB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAClC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAGhD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;QAGtE,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAGzD,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAGzD,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;QACvC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9C,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAEzC,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,+DAA+D,EAAE,QAAQ,EAAE;YAC5H,OAAO,EAAE;gBACP,cAAc,EAAE,mCAAmC;aACpD;SACF,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAC3C,MAAM,CAAC,yBAAyB,UAAU,SAAS,QAAQ,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;QAChF,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,IAAI,yBAAyB,CAAC;YAC7F,MAAM,CAAC,kCAAkC,UAAU,KAAK,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,sCAAsC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,EAAE,OAAO,CAAC,CAAC;IAChH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,4BAA4B,CACzC,QAAgB,EAChB,WAAyB,EACzB,SAAkB,EAClB,MAAgB;IAEhB,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEpC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QAErE,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,EAAE,EAAE,EAAE,GAAG,UAAU,EAAE,GAAG,WAAW,CAAC;YAC1C,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;YAEvC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBAClD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC1C,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,oEAAoE,EAAE,QAAQ,EAAE;gBACjI,OAAO,EAAE;oBACP,cAAc,EAAE,mCAAmC;iBACpD;aACF,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBAC/D,MAAM,CAAC,4CAA4C,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;YACrF,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,IAAI,yBAAyB,CAAC;gBAC7F,MAAM,CAAC,iDAAiD,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,GAAG,IAAI,eAAe,EAAE,CAAC;YACvC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEjD,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBACnD,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBAC1D,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,qEAAqE,EAAE,QAAQ,EAAE;gBAClI,OAAO,EAAE;oBACP,cAAc,EAAE,mCAAmC;iBACpD;aACF,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC3C,MAAM,CAAC,4CAA4C,WAAW,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;YACnF,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,IAAI,yBAAyB,CAAC;gBAC7F,MAAM,CAAC,iDAAiD,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ButterflyAPI } from '../../../utils/api.js';
|
|
2
|
+
import { AddLogFn } from '../types.js';
|
|
3
|
+
export declare function handleWorkflowFileChange(filePath: string, apiInstance: ButterflyAPI, _isNewFile: boolean, addLog: AddLogFn): Promise<void>;
|
|
4
|
+
export declare function initializeConnectionCache(filePath: string): Promise<void>;
|
|
5
|
+
//# sourceMappingURL=workflows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../../../src/commands/start/handlers/workflows.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAKvC,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,YAAY,EACzB,UAAU,EAAE,OAAO,EACnB,MAAM,EAAE,QAAQ,GACf,OAAO,CAAC,IAAI,CAAC,CAiMf;AA0HD,wBAAsB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO/E"}
|