@showrun/core 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/__tests__/dsl-validation.test.d.ts +2 -0
- package/dist/__tests__/dsl-validation.test.d.ts.map +1 -0
- package/dist/__tests__/dsl-validation.test.js +203 -0
- package/dist/__tests__/pack-versioning.test.d.ts +2 -0
- package/dist/__tests__/pack-versioning.test.d.ts.map +1 -0
- package/dist/__tests__/pack-versioning.test.js +165 -0
- package/dist/__tests__/validator.test.d.ts +2 -0
- package/dist/__tests__/validator.test.d.ts.map +1 -0
- package/dist/__tests__/validator.test.js +149 -0
- package/dist/authResilience.d.ts +146 -0
- package/dist/authResilience.d.ts.map +1 -0
- package/dist/authResilience.js +378 -0
- package/dist/browserLauncher.d.ts +74 -0
- package/dist/browserLauncher.d.ts.map +1 -0
- package/dist/browserLauncher.js +159 -0
- package/dist/browserPersistence.d.ts +49 -0
- package/dist/browserPersistence.d.ts.map +1 -0
- package/dist/browserPersistence.js +143 -0
- package/dist/context.d.ts +10 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +30 -0
- package/dist/dsl/builders.d.ts +340 -0
- package/dist/dsl/builders.d.ts.map +1 -0
- package/dist/dsl/builders.js +416 -0
- package/dist/dsl/conditions.d.ts +33 -0
- package/dist/dsl/conditions.d.ts.map +1 -0
- package/dist/dsl/conditions.js +169 -0
- package/dist/dsl/interpreter.d.ts +24 -0
- package/dist/dsl/interpreter.d.ts.map +1 -0
- package/dist/dsl/interpreter.js +491 -0
- package/dist/dsl/stepHandlers.d.ts +32 -0
- package/dist/dsl/stepHandlers.d.ts.map +1 -0
- package/dist/dsl/stepHandlers.js +787 -0
- package/dist/dsl/target.d.ts +28 -0
- package/dist/dsl/target.d.ts.map +1 -0
- package/dist/dsl/target.js +110 -0
- package/dist/dsl/templating.d.ts +21 -0
- package/dist/dsl/templating.d.ts.map +1 -0
- package/dist/dsl/templating.js +73 -0
- package/dist/dsl/types.d.ts +695 -0
- package/dist/dsl/types.d.ts.map +1 -0
- package/dist/dsl/types.js +7 -0
- package/dist/dsl/validation.d.ts +15 -0
- package/dist/dsl/validation.d.ts.map +1 -0
- package/dist/dsl/validation.js +974 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/jsonPackValidator.d.ts +11 -0
- package/dist/jsonPackValidator.d.ts.map +1 -0
- package/dist/jsonPackValidator.js +61 -0
- package/dist/loader.d.ts +35 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +107 -0
- package/dist/networkCapture.d.ts +107 -0
- package/dist/networkCapture.d.ts.map +1 -0
- package/dist/networkCapture.js +390 -0
- package/dist/packUtils.d.ts +36 -0
- package/dist/packUtils.d.ts.map +1 -0
- package/dist/packUtils.js +97 -0
- package/dist/packVersioning.d.ts +25 -0
- package/dist/packVersioning.d.ts.map +1 -0
- package/dist/packVersioning.js +137 -0
- package/dist/runner.d.ts +62 -0
- package/dist/runner.d.ts.map +1 -0
- package/dist/runner.js +170 -0
- package/dist/types.d.ts +336 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +1 -0
- package/dist/validator.d.ts +20 -0
- package/dist/validator.d.ts.map +1 -0
- package/dist/validator.js +68 -0
- package/package.json +49 -0
|
@@ -0,0 +1,695 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DSL Step Types
|
|
3
|
+
*
|
|
4
|
+
* Defines the structure for declarative browser automation steps.
|
|
5
|
+
* All steps are plain objects (JSON-serializable) with no functions.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Per-step error handling options
|
|
9
|
+
*/
|
|
10
|
+
export type StepErrorBehavior = 'stop' | 'continue';
|
|
11
|
+
/**
|
|
12
|
+
* Playwright role types (subset of most common ones)
|
|
13
|
+
*/
|
|
14
|
+
export type PlaywrightRole = 'button' | 'checkbox' | 'combobox' | 'dialog' | 'gridcell' | 'link' | 'listbox' | 'menuitem' | 'option' | 'radio' | 'searchbox' | 'slider' | 'switch' | 'tab' | 'tabpanel' | 'textbox' | 'treeitem' | 'article' | 'banner' | 'complementary' | 'contentinfo' | 'form' | 'main' | 'navigation' | 'region' | 'search' | 'alert' | 'log' | 'marquee' | 'status' | 'timer';
|
|
15
|
+
/**
|
|
16
|
+
* Target strategies for element selection
|
|
17
|
+
* Human-stable selectors suitable for Teach Mode
|
|
18
|
+
*/
|
|
19
|
+
export type Target = {
|
|
20
|
+
kind: 'css';
|
|
21
|
+
selector: string;
|
|
22
|
+
} | {
|
|
23
|
+
kind: 'text';
|
|
24
|
+
text: string;
|
|
25
|
+
exact?: boolean;
|
|
26
|
+
} | {
|
|
27
|
+
kind: 'role';
|
|
28
|
+
role: PlaywrightRole;
|
|
29
|
+
name?: string;
|
|
30
|
+
exact?: boolean;
|
|
31
|
+
} | {
|
|
32
|
+
kind: 'label';
|
|
33
|
+
text: string;
|
|
34
|
+
exact?: boolean;
|
|
35
|
+
} | {
|
|
36
|
+
kind: 'placeholder';
|
|
37
|
+
text: string;
|
|
38
|
+
exact?: boolean;
|
|
39
|
+
} | {
|
|
40
|
+
kind: 'altText';
|
|
41
|
+
text: string;
|
|
42
|
+
exact?: boolean;
|
|
43
|
+
} | {
|
|
44
|
+
kind: 'testId';
|
|
45
|
+
id: string;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Target with optional metadata for Teach Mode
|
|
49
|
+
*/
|
|
50
|
+
export interface TargetWithMetadata {
|
|
51
|
+
/**
|
|
52
|
+
* Primary target or fallback targets
|
|
53
|
+
*/
|
|
54
|
+
target: Target | {
|
|
55
|
+
anyOf: Target[];
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Human-readable hint (for Teach Mode, ignored at runtime except logging)
|
|
59
|
+
*/
|
|
60
|
+
hint?: string;
|
|
61
|
+
/**
|
|
62
|
+
* Scope: limit search within a container
|
|
63
|
+
*/
|
|
64
|
+
scope?: Target;
|
|
65
|
+
/**
|
|
66
|
+
* Optional adjacency hint (for Teach Mode, may be logged only in MVP)
|
|
67
|
+
*/
|
|
68
|
+
near?: {
|
|
69
|
+
kind: 'text';
|
|
70
|
+
text: string;
|
|
71
|
+
exact?: boolean;
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Target or anyOf fallback structure
|
|
76
|
+
*/
|
|
77
|
+
export type TargetOrAnyOf = Target | {
|
|
78
|
+
anyOf: Target[];
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Skip condition for conditional step execution
|
|
82
|
+
*/
|
|
83
|
+
export type SkipCondition = {
|
|
84
|
+
url_includes: string;
|
|
85
|
+
} | {
|
|
86
|
+
url_matches: string;
|
|
87
|
+
} | {
|
|
88
|
+
element_visible: TargetOrAnyOf;
|
|
89
|
+
} | {
|
|
90
|
+
element_exists: TargetOrAnyOf;
|
|
91
|
+
} | {
|
|
92
|
+
var_equals: {
|
|
93
|
+
name: string;
|
|
94
|
+
value: unknown;
|
|
95
|
+
};
|
|
96
|
+
} | {
|
|
97
|
+
var_truthy: string;
|
|
98
|
+
} | {
|
|
99
|
+
var_falsy: string;
|
|
100
|
+
} | {
|
|
101
|
+
all: SkipCondition[];
|
|
102
|
+
} | {
|
|
103
|
+
any: SkipCondition[];
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* Base step interface with common fields
|
|
107
|
+
*/
|
|
108
|
+
export interface BaseDslStep {
|
|
109
|
+
id: string;
|
|
110
|
+
type: string;
|
|
111
|
+
/**
|
|
112
|
+
* Human-readable label for logs/UI
|
|
113
|
+
*/
|
|
114
|
+
label?: string;
|
|
115
|
+
/**
|
|
116
|
+
* Per-step timeout override (milliseconds)
|
|
117
|
+
*/
|
|
118
|
+
timeoutMs?: number;
|
|
119
|
+
/**
|
|
120
|
+
* If true, step failure won't fail the run
|
|
121
|
+
*/
|
|
122
|
+
optional?: boolean;
|
|
123
|
+
/**
|
|
124
|
+
* Error handling behavior for this step
|
|
125
|
+
*/
|
|
126
|
+
onError?: StepErrorBehavior;
|
|
127
|
+
/**
|
|
128
|
+
* Run-once flag: if set, step is skipped if already executed for this session/profile
|
|
129
|
+
* - "session": cached per sessionId (cleared on auth recovery)
|
|
130
|
+
* - "profile": cached per profileId (cleared on auth recovery)
|
|
131
|
+
*/
|
|
132
|
+
once?: 'session' | 'profile';
|
|
133
|
+
/**
|
|
134
|
+
* Skip condition: if true, the step is skipped
|
|
135
|
+
* Evaluated before step execution. If the condition evaluates to true,
|
|
136
|
+
* the step is skipped with reason 'condition_met'.
|
|
137
|
+
*/
|
|
138
|
+
skip_if?: SkipCondition;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Navigate step - navigates to a URL
|
|
142
|
+
*/
|
|
143
|
+
export interface NavigateStep extends BaseDslStep {
|
|
144
|
+
type: 'navigate';
|
|
145
|
+
params: {
|
|
146
|
+
url: string;
|
|
147
|
+
waitUntil?: 'load' | 'domcontentloaded' | 'networkidle' | 'commit';
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Extract title step - extracts page title
|
|
152
|
+
*/
|
|
153
|
+
export interface ExtractTitleStep extends BaseDslStep {
|
|
154
|
+
type: 'extract_title';
|
|
155
|
+
params: {
|
|
156
|
+
out: string;
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Extract text step - extracts text from a target
|
|
161
|
+
*/
|
|
162
|
+
export interface ExtractTextStep extends BaseDslStep {
|
|
163
|
+
type: 'extract_text';
|
|
164
|
+
params: {
|
|
165
|
+
/**
|
|
166
|
+
* Target for element selection (supports selector for backward compatibility)
|
|
167
|
+
* @deprecated Use target instead of selector
|
|
168
|
+
*/
|
|
169
|
+
selector?: string;
|
|
170
|
+
/**
|
|
171
|
+
* Target for element selection (human-stable selectors)
|
|
172
|
+
*/
|
|
173
|
+
target?: TargetOrAnyOf;
|
|
174
|
+
out: string;
|
|
175
|
+
first?: boolean;
|
|
176
|
+
trim?: boolean;
|
|
177
|
+
default?: string;
|
|
178
|
+
/**
|
|
179
|
+
* Optional metadata for Teach Mode
|
|
180
|
+
*/
|
|
181
|
+
hint?: string;
|
|
182
|
+
scope?: Target;
|
|
183
|
+
near?: {
|
|
184
|
+
kind: 'text';
|
|
185
|
+
text: string;
|
|
186
|
+
exact?: boolean;
|
|
187
|
+
};
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Sleep step - waits for a specified duration
|
|
192
|
+
* @deprecated Prefer wait_for for deterministic waiting
|
|
193
|
+
*/
|
|
194
|
+
export interface SleepStep extends BaseDslStep {
|
|
195
|
+
type: 'sleep';
|
|
196
|
+
params: {
|
|
197
|
+
durationMs: number;
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Wait for step - deterministic waiting for conditions
|
|
202
|
+
*/
|
|
203
|
+
export interface WaitForStep extends BaseDslStep {
|
|
204
|
+
type: 'wait_for';
|
|
205
|
+
params: {
|
|
206
|
+
/**
|
|
207
|
+
* Wait for target to be visible (or present if visible: false)
|
|
208
|
+
* @deprecated Use target instead of selector
|
|
209
|
+
*/
|
|
210
|
+
selector?: string;
|
|
211
|
+
/**
|
|
212
|
+
* Target for element selection (human-stable selectors)
|
|
213
|
+
*/
|
|
214
|
+
target?: TargetOrAnyOf;
|
|
215
|
+
/**
|
|
216
|
+
* If target provided, wait for visibility (default: true)
|
|
217
|
+
*/
|
|
218
|
+
visible?: boolean;
|
|
219
|
+
/**
|
|
220
|
+
* OR wait for URL to match pattern
|
|
221
|
+
*/
|
|
222
|
+
url?: string | {
|
|
223
|
+
pattern: string;
|
|
224
|
+
exact?: boolean;
|
|
225
|
+
};
|
|
226
|
+
/**
|
|
227
|
+
* OR wait for page load state
|
|
228
|
+
*/
|
|
229
|
+
loadState?: 'load' | 'domcontentloaded' | 'networkidle';
|
|
230
|
+
/**
|
|
231
|
+
* Timeout in milliseconds (default: 30000)
|
|
232
|
+
*/
|
|
233
|
+
timeoutMs?: number;
|
|
234
|
+
/**
|
|
235
|
+
* Optional metadata for Teach Mode
|
|
236
|
+
*/
|
|
237
|
+
hint?: string;
|
|
238
|
+
scope?: Target;
|
|
239
|
+
near?: {
|
|
240
|
+
kind: 'text';
|
|
241
|
+
text: string;
|
|
242
|
+
exact?: boolean;
|
|
243
|
+
};
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Click step - clicks an element
|
|
248
|
+
*/
|
|
249
|
+
export interface ClickStep extends BaseDslStep {
|
|
250
|
+
type: 'click';
|
|
251
|
+
params: {
|
|
252
|
+
/**
|
|
253
|
+
* Target for element selection (supports selector for backward compatibility)
|
|
254
|
+
* @deprecated Use target instead of selector
|
|
255
|
+
*/
|
|
256
|
+
selector?: string;
|
|
257
|
+
/**
|
|
258
|
+
* Target for element selection (human-stable selectors)
|
|
259
|
+
*/
|
|
260
|
+
target?: TargetOrAnyOf;
|
|
261
|
+
/**
|
|
262
|
+
* If true, only click first match (default: true)
|
|
263
|
+
*/
|
|
264
|
+
first?: boolean;
|
|
265
|
+
/**
|
|
266
|
+
* Wait for element to be visible before clicking (default: true)
|
|
267
|
+
*/
|
|
268
|
+
waitForVisible?: boolean;
|
|
269
|
+
/**
|
|
270
|
+
* Optional metadata for Teach Mode
|
|
271
|
+
*/
|
|
272
|
+
hint?: string;
|
|
273
|
+
scope?: Target;
|
|
274
|
+
near?: {
|
|
275
|
+
kind: 'text';
|
|
276
|
+
text: string;
|
|
277
|
+
exact?: boolean;
|
|
278
|
+
};
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Fill step - fills an input field
|
|
283
|
+
*/
|
|
284
|
+
export interface FillStep extends BaseDslStep {
|
|
285
|
+
type: 'fill';
|
|
286
|
+
params: {
|
|
287
|
+
/**
|
|
288
|
+
* Target for element selection (supports selector for backward compatibility)
|
|
289
|
+
* @deprecated Use target instead of selector
|
|
290
|
+
*/
|
|
291
|
+
selector?: string;
|
|
292
|
+
/**
|
|
293
|
+
* Target for element selection (human-stable selectors)
|
|
294
|
+
*/
|
|
295
|
+
target?: TargetOrAnyOf;
|
|
296
|
+
value: string;
|
|
297
|
+
/**
|
|
298
|
+
* If true, only fill first match (default: true)
|
|
299
|
+
*/
|
|
300
|
+
first?: boolean;
|
|
301
|
+
/**
|
|
302
|
+
* Clear field before filling (default: true)
|
|
303
|
+
*/
|
|
304
|
+
clear?: boolean;
|
|
305
|
+
/**
|
|
306
|
+
* Optional metadata for Teach Mode
|
|
307
|
+
*/
|
|
308
|
+
hint?: string;
|
|
309
|
+
scope?: Target;
|
|
310
|
+
near?: {
|
|
311
|
+
kind: 'text';
|
|
312
|
+
text: string;
|
|
313
|
+
exact?: boolean;
|
|
314
|
+
};
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Extract attribute step - extracts an attribute value from an element
|
|
319
|
+
*/
|
|
320
|
+
export interface ExtractAttributeStep extends BaseDslStep {
|
|
321
|
+
type: 'extract_attribute';
|
|
322
|
+
params: {
|
|
323
|
+
/**
|
|
324
|
+
* Target for element selection (supports selector for backward compatibility)
|
|
325
|
+
* @deprecated Use target instead of selector
|
|
326
|
+
*/
|
|
327
|
+
selector?: string;
|
|
328
|
+
/**
|
|
329
|
+
* Target for element selection (human-stable selectors)
|
|
330
|
+
*/
|
|
331
|
+
target?: TargetOrAnyOf;
|
|
332
|
+
attribute: string;
|
|
333
|
+
out: string;
|
|
334
|
+
first?: boolean;
|
|
335
|
+
default?: string;
|
|
336
|
+
/**
|
|
337
|
+
* Optional metadata for Teach Mode
|
|
338
|
+
*/
|
|
339
|
+
hint?: string;
|
|
340
|
+
scope?: Target;
|
|
341
|
+
near?: {
|
|
342
|
+
kind: 'text';
|
|
343
|
+
text: string;
|
|
344
|
+
exact?: boolean;
|
|
345
|
+
};
|
|
346
|
+
};
|
|
347
|
+
}
|
|
348
|
+
/**
|
|
349
|
+
* Assert step - assertions for validation
|
|
350
|
+
*/
|
|
351
|
+
export interface AssertStep extends BaseDslStep {
|
|
352
|
+
type: 'assert';
|
|
353
|
+
params: {
|
|
354
|
+
/**
|
|
355
|
+
* Assert element exists (supports selector for backward compatibility)
|
|
356
|
+
* @deprecated Use target instead of selector
|
|
357
|
+
*/
|
|
358
|
+
selector?: string;
|
|
359
|
+
/**
|
|
360
|
+
* Target for element selection (human-stable selectors)
|
|
361
|
+
*/
|
|
362
|
+
target?: TargetOrAnyOf;
|
|
363
|
+
/**
|
|
364
|
+
* Assert element is visible (requires target/selector)
|
|
365
|
+
*/
|
|
366
|
+
visible?: boolean;
|
|
367
|
+
/**
|
|
368
|
+
* Assert element text includes value (requires target/selector)
|
|
369
|
+
*/
|
|
370
|
+
textIncludes?: string;
|
|
371
|
+
/**
|
|
372
|
+
* Assert URL includes value
|
|
373
|
+
*/
|
|
374
|
+
urlIncludes?: string;
|
|
375
|
+
/**
|
|
376
|
+
* Custom error message if assertion fails
|
|
377
|
+
*/
|
|
378
|
+
message?: string;
|
|
379
|
+
/**
|
|
380
|
+
* Optional metadata for Teach Mode
|
|
381
|
+
*/
|
|
382
|
+
hint?: string;
|
|
383
|
+
scope?: Target;
|
|
384
|
+
near?: {
|
|
385
|
+
kind: 'text';
|
|
386
|
+
text: string;
|
|
387
|
+
exact?: boolean;
|
|
388
|
+
};
|
|
389
|
+
};
|
|
390
|
+
}
|
|
391
|
+
/**
|
|
392
|
+
* Set variable step - sets a variable for use in templating
|
|
393
|
+
*/
|
|
394
|
+
export interface SetVarStep extends BaseDslStep {
|
|
395
|
+
type: 'set_var';
|
|
396
|
+
params: {
|
|
397
|
+
name: string;
|
|
398
|
+
value: string | number | boolean;
|
|
399
|
+
};
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* Network find step - search captured traffic and save request id to vars
|
|
403
|
+
*/
|
|
404
|
+
export interface NetworkFindStep extends BaseDslStep {
|
|
405
|
+
type: 'network_find';
|
|
406
|
+
params: {
|
|
407
|
+
where: {
|
|
408
|
+
urlIncludes?: string;
|
|
409
|
+
urlRegex?: string;
|
|
410
|
+
method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
|
|
411
|
+
status?: number;
|
|
412
|
+
contentTypeIncludes?: string;
|
|
413
|
+
/** Response body (text) must contain this string. Only entries with captured response body are considered. */
|
|
414
|
+
responseContains?: string;
|
|
415
|
+
};
|
|
416
|
+
pick?: 'last' | 'first';
|
|
417
|
+
saveAs: string;
|
|
418
|
+
/** If set, wait up to this many ms for a matching request to appear (polls the buffer). Use when the request may happen after the step runs (e.g. after navigation or interaction). */
|
|
419
|
+
waitForMs?: number;
|
|
420
|
+
/** When waitForMs is set, poll the buffer every this many ms. Default 400. */
|
|
421
|
+
pollIntervalMs?: number;
|
|
422
|
+
};
|
|
423
|
+
}
|
|
424
|
+
/**
|
|
425
|
+
* Network replay step - replay a captured request (optionally with overrides), store result
|
|
426
|
+
*/
|
|
427
|
+
export interface NetworkReplayStep extends BaseDslStep {
|
|
428
|
+
type: 'network_replay';
|
|
429
|
+
params: {
|
|
430
|
+
requestId: string;
|
|
431
|
+
overrides?: {
|
|
432
|
+
url?: string;
|
|
433
|
+
setQuery?: Record<string, string | number>;
|
|
434
|
+
setHeaders?: Record<string, string>;
|
|
435
|
+
body?: string;
|
|
436
|
+
/** Regex find/replace on captured URL; replace can use $1, $2. Supports {{vars.xxx}}/{{inputs.xxx}} (resolved before replace). */
|
|
437
|
+
urlReplace?: {
|
|
438
|
+
find: string;
|
|
439
|
+
replace: string;
|
|
440
|
+
};
|
|
441
|
+
/** Regex find/replace on captured body; replace can use $1, $2. Supports {{vars.xxx}}/{{inputs.xxx}} (resolved before replace). */
|
|
442
|
+
bodyReplace?: {
|
|
443
|
+
find: string;
|
|
444
|
+
replace: string;
|
|
445
|
+
};
|
|
446
|
+
};
|
|
447
|
+
auth: 'browser_context';
|
|
448
|
+
out: string;
|
|
449
|
+
saveAs?: string;
|
|
450
|
+
response: {
|
|
451
|
+
as: 'json' | 'text';
|
|
452
|
+
/**
|
|
453
|
+
* JMESPath expression for extracting data from JSON response.
|
|
454
|
+
* Examples: "results[*].name", "data.items[0]", "results[*].{id: id, name: name}"
|
|
455
|
+
* For backward compatibility, JSONPath-style "$." prefix is auto-stripped.
|
|
456
|
+
*/
|
|
457
|
+
path?: string;
|
|
458
|
+
/** @deprecated Use `path` instead. Kept for backward compatibility. */
|
|
459
|
+
jsonPath?: string;
|
|
460
|
+
};
|
|
461
|
+
};
|
|
462
|
+
}
|
|
463
|
+
/**
|
|
464
|
+
* Network extract step - extract from a previously replayed response stored in vars
|
|
465
|
+
*/
|
|
466
|
+
export interface NetworkExtractStep extends BaseDslStep {
|
|
467
|
+
type: 'network_extract';
|
|
468
|
+
params: {
|
|
469
|
+
fromVar: string;
|
|
470
|
+
as: 'json' | 'text';
|
|
471
|
+
/**
|
|
472
|
+
* JMESPath expression for extracting data from JSON.
|
|
473
|
+
* Examples: "results[*].name", "data.items[0]", "results[*].{id: id, name: name}"
|
|
474
|
+
* For backward compatibility, JSONPath-style "$." prefix is auto-stripped.
|
|
475
|
+
*/
|
|
476
|
+
path?: string;
|
|
477
|
+
/** @deprecated Use `path` instead. Kept for backward compatibility. */
|
|
478
|
+
jsonPath?: string;
|
|
479
|
+
out: string;
|
|
480
|
+
};
|
|
481
|
+
}
|
|
482
|
+
/**
|
|
483
|
+
* Select option step - selects an option from a dropdown/select element
|
|
484
|
+
*/
|
|
485
|
+
export interface SelectOptionStep extends BaseDslStep {
|
|
486
|
+
type: 'select_option';
|
|
487
|
+
params: {
|
|
488
|
+
/**
|
|
489
|
+
* Target for element selection (supports selector for backward compatibility)
|
|
490
|
+
* @deprecated Use target instead of selector
|
|
491
|
+
*/
|
|
492
|
+
selector?: string;
|
|
493
|
+
/**
|
|
494
|
+
* Target for element selection (human-stable selectors)
|
|
495
|
+
*/
|
|
496
|
+
target?: TargetOrAnyOf;
|
|
497
|
+
/**
|
|
498
|
+
* Value(s) to select. Can be:
|
|
499
|
+
* - string: select by value attribute
|
|
500
|
+
* - { label: string }: select by visible text
|
|
501
|
+
* - { index: number }: select by index (0-based)
|
|
502
|
+
* - Array of any of the above for multi-select
|
|
503
|
+
*/
|
|
504
|
+
value: string | {
|
|
505
|
+
label: string;
|
|
506
|
+
} | {
|
|
507
|
+
index: number;
|
|
508
|
+
} | Array<string | {
|
|
509
|
+
label: string;
|
|
510
|
+
} | {
|
|
511
|
+
index: number;
|
|
512
|
+
}>;
|
|
513
|
+
/**
|
|
514
|
+
* If true, only target first match (default: true)
|
|
515
|
+
*/
|
|
516
|
+
first?: boolean;
|
|
517
|
+
/**
|
|
518
|
+
* Optional metadata for Teach Mode
|
|
519
|
+
*/
|
|
520
|
+
hint?: string;
|
|
521
|
+
scope?: Target;
|
|
522
|
+
near?: {
|
|
523
|
+
kind: 'text';
|
|
524
|
+
text: string;
|
|
525
|
+
exact?: boolean;
|
|
526
|
+
};
|
|
527
|
+
};
|
|
528
|
+
}
|
|
529
|
+
/**
|
|
530
|
+
* Press key step - presses a keyboard key
|
|
531
|
+
*/
|
|
532
|
+
export interface PressKeyStep extends BaseDslStep {
|
|
533
|
+
type: 'press_key';
|
|
534
|
+
params: {
|
|
535
|
+
/**
|
|
536
|
+
* Key to press. Examples: 'Enter', 'Tab', 'Escape', 'ArrowDown', 'Control+a', 'Meta+c'
|
|
537
|
+
* See Playwright keyboard documentation for full list.
|
|
538
|
+
*/
|
|
539
|
+
key: string;
|
|
540
|
+
/**
|
|
541
|
+
* Target element to focus before pressing key (optional)
|
|
542
|
+
* @deprecated Use target instead of selector
|
|
543
|
+
*/
|
|
544
|
+
selector?: string;
|
|
545
|
+
/**
|
|
546
|
+
* Target element to focus before pressing key (optional)
|
|
547
|
+
*/
|
|
548
|
+
target?: TargetOrAnyOf;
|
|
549
|
+
/**
|
|
550
|
+
* Number of times to press the key (default: 1)
|
|
551
|
+
*/
|
|
552
|
+
times?: number;
|
|
553
|
+
/**
|
|
554
|
+
* Delay between key presses in milliseconds (default: 0)
|
|
555
|
+
*/
|
|
556
|
+
delayMs?: number;
|
|
557
|
+
/**
|
|
558
|
+
* Optional metadata for Teach Mode
|
|
559
|
+
*/
|
|
560
|
+
hint?: string;
|
|
561
|
+
scope?: Target;
|
|
562
|
+
near?: {
|
|
563
|
+
kind: 'text';
|
|
564
|
+
text: string;
|
|
565
|
+
exact?: boolean;
|
|
566
|
+
};
|
|
567
|
+
};
|
|
568
|
+
}
|
|
569
|
+
/**
|
|
570
|
+
* Upload file step - uploads file(s) to a file input element
|
|
571
|
+
*/
|
|
572
|
+
export interface UploadFileStep extends BaseDslStep {
|
|
573
|
+
type: 'upload_file';
|
|
574
|
+
params: {
|
|
575
|
+
/**
|
|
576
|
+
* Target for element selection (supports selector for backward compatibility)
|
|
577
|
+
* @deprecated Use target instead of selector
|
|
578
|
+
*/
|
|
579
|
+
selector?: string;
|
|
580
|
+
/**
|
|
581
|
+
* Target for element selection (human-stable selectors)
|
|
582
|
+
*/
|
|
583
|
+
target?: TargetOrAnyOf;
|
|
584
|
+
/**
|
|
585
|
+
* File path(s) to upload. Can be a single path or array of paths.
|
|
586
|
+
* Paths can be absolute or relative to the task pack directory.
|
|
587
|
+
*/
|
|
588
|
+
files: string | string[];
|
|
589
|
+
/**
|
|
590
|
+
* If true, only target first match (default: true)
|
|
591
|
+
*/
|
|
592
|
+
first?: boolean;
|
|
593
|
+
/**
|
|
594
|
+
* Optional metadata for Teach Mode
|
|
595
|
+
*/
|
|
596
|
+
hint?: string;
|
|
597
|
+
scope?: Target;
|
|
598
|
+
near?: {
|
|
599
|
+
kind: 'text';
|
|
600
|
+
text: string;
|
|
601
|
+
exact?: boolean;
|
|
602
|
+
};
|
|
603
|
+
};
|
|
604
|
+
}
|
|
605
|
+
/**
|
|
606
|
+
* Frame step - switches context to an iframe for subsequent steps
|
|
607
|
+
*/
|
|
608
|
+
export interface FrameStep extends BaseDslStep {
|
|
609
|
+
type: 'frame';
|
|
610
|
+
params: {
|
|
611
|
+
/**
|
|
612
|
+
* Frame selector (CSS selector, name, or URL pattern)
|
|
613
|
+
*/
|
|
614
|
+
frame: string | {
|
|
615
|
+
name: string;
|
|
616
|
+
} | {
|
|
617
|
+
url: string | RegExp;
|
|
618
|
+
};
|
|
619
|
+
/**
|
|
620
|
+
* Action: 'enter' to switch into frame, 'exit' to return to main frame
|
|
621
|
+
*/
|
|
622
|
+
action: 'enter' | 'exit';
|
|
623
|
+
};
|
|
624
|
+
}
|
|
625
|
+
/**
|
|
626
|
+
* New tab step - opens a new browser tab
|
|
627
|
+
*/
|
|
628
|
+
export interface NewTabStep extends BaseDslStep {
|
|
629
|
+
type: 'new_tab';
|
|
630
|
+
params: {
|
|
631
|
+
/**
|
|
632
|
+
* URL to navigate to in the new tab (optional)
|
|
633
|
+
*/
|
|
634
|
+
url?: string;
|
|
635
|
+
/**
|
|
636
|
+
* Variable name to store the new tab index (optional)
|
|
637
|
+
*/
|
|
638
|
+
saveTabIndexAs?: string;
|
|
639
|
+
};
|
|
640
|
+
}
|
|
641
|
+
/**
|
|
642
|
+
* Switch tab step - switches to a different browser tab
|
|
643
|
+
*/
|
|
644
|
+
export interface SwitchTabStep extends BaseDslStep {
|
|
645
|
+
type: 'switch_tab';
|
|
646
|
+
params: {
|
|
647
|
+
/**
|
|
648
|
+
* Tab index (0-based) or 'last' for the last tab, 'previous' for the previous tab
|
|
649
|
+
*/
|
|
650
|
+
tab: number | 'last' | 'previous';
|
|
651
|
+
/**
|
|
652
|
+
* If true, close the current tab before switching (default: false)
|
|
653
|
+
*/
|
|
654
|
+
closeCurrentTab?: boolean;
|
|
655
|
+
};
|
|
656
|
+
}
|
|
657
|
+
/**
|
|
658
|
+
* Union type of all supported DSL steps
|
|
659
|
+
*/
|
|
660
|
+
export type DslStep = NavigateStep | ExtractTitleStep | ExtractTextStep | ExtractAttributeStep | SleepStep | WaitForStep | ClickStep | FillStep | AssertStep | SetVarStep | NetworkFindStep | NetworkReplayStep | NetworkExtractStep | SelectOptionStep | PressKeyStep | UploadFileStep | FrameStep | NewTabStep | SwitchTabStep;
|
|
661
|
+
/**
|
|
662
|
+
* Options for running a flow
|
|
663
|
+
*/
|
|
664
|
+
export interface RunFlowOptions {
|
|
665
|
+
/**
|
|
666
|
+
* Whether to stop on first error (default: true)
|
|
667
|
+
*/
|
|
668
|
+
stopOnError?: boolean;
|
|
669
|
+
}
|
|
670
|
+
/**
|
|
671
|
+
* Variable context for templating
|
|
672
|
+
*/
|
|
673
|
+
export interface VariableContext {
|
|
674
|
+
inputs: Record<string, unknown>;
|
|
675
|
+
vars: Record<string, unknown>;
|
|
676
|
+
secrets?: Record<string, string>;
|
|
677
|
+
}
|
|
678
|
+
/**
|
|
679
|
+
* Result of running a flow
|
|
680
|
+
*/
|
|
681
|
+
export interface RunFlowResult {
|
|
682
|
+
collectibles: Record<string, unknown>;
|
|
683
|
+
meta: {
|
|
684
|
+
url?: string;
|
|
685
|
+
durationMs: number;
|
|
686
|
+
stepsExecuted: number;
|
|
687
|
+
stepsTotal: number;
|
|
688
|
+
};
|
|
689
|
+
/**
|
|
690
|
+
* Diagnostic hints from JSONPath operations (e.g., unsupported syntax, empty results).
|
|
691
|
+
* These help AI agents understand why data extraction may have failed.
|
|
692
|
+
*/
|
|
693
|
+
_hints?: string[];
|
|
694
|
+
}
|
|
695
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dsl/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,UAAU,CAAC;AAEpD;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,UAAU,GACV,UAAU,GACV,QAAQ,GACR,UAAU,GACV,MAAM,GACN,SAAS,GACT,UAAU,GACV,QAAQ,GACR,OAAO,GACP,WAAW,GACX,QAAQ,GACR,QAAQ,GACR,KAAK,GACL,UAAU,GACV,SAAS,GACT,UAAU,GACV,SAAS,GACT,QAAQ,GACR,eAAe,GACf,aAAa,GACb,MAAM,GACN,MAAM,GACN,YAAY,GACZ,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,KAAK,GACL,SAAS,GACT,QAAQ,GACR,OAAO,CAAC;AAEZ;;;GAGG;AACH,MAAM,MAAM,MAAM,GACd;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,cAAc,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GACtE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnC;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,MAAM,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACrC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CACxD;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEzD;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GACxB;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GACvB;IAAE,eAAe,EAAE,aAAa,CAAA;CAAE,GAClC;IAAE,cAAc,EAAE,aAAa,CAAA;CAAE,GACjC;IAAE,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,GAChD;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GACtB;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GACrB;IAAE,GAAG,EAAE,aAAa,EAAE,CAAA;CAAE,GACxB;IAAE,GAAG,EAAE,aAAa,EAAE,CAAA;CAAE,CAAC;AAE7B;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B;;;;OAIG;IACH,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B;;;;OAIG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,CAAC;QACZ,SAAS,CAAC,EAAE,MAAM,GAAG,kBAAkB,GAAG,aAAa,GAAG,QAAQ,CAAC;KACpE,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE;QACN;;;WAGG;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB;;WAEG;QACH,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB;;WAEG;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;KACxD,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,SAAU,SAAQ,WAAW;IAC5C,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE;QACN,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC9C,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE;QACN;;;WAGG;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB;;WAEG;QACH,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB;;WAEG;QACH,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB;;WAEG;QACH,GAAG,CAAC,EAAE,MAAM,GAAG;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;QACpD;;WAEG;QACH,SAAS,CAAC,EAAE,MAAM,GAAG,kBAAkB,GAAG,aAAa,CAAC;QACxD;;WAEG;QACH,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB;;WAEG;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;KACxD,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,SAAU,SAAQ,WAAW;IAC5C,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE;QACN;;;WAGG;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB;;WAEG;QACH,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB;;WAEG;QACH,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB;;WAEG;QACH,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB;;WAEG;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;KACxD,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,QAAS,SAAQ,WAAW;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QACN;;;WAGG;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB;;WAEG;QACH,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB,KAAK,EAAE,MAAM,CAAC;QACd;;WAEG;QACH,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB;;WAEG;QACH,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB;;WAEG;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;KACxD,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,WAAW;IACvD,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,EAAE;QACN;;;WAGG;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB;;WAEG;QACH,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB;;WAEG;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;KACxD,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,WAAW;IAC7C,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE;QACN;;;WAGG;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB;;WAEG;QACH,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB;;WAEG;QACH,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB;;WAEG;QACH,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB;;WAEG;QACH,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB;;WAEG;QACH,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB;;WAEG;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;KACxD,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,WAAW;IAC7C,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;KAClC,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,EAAE;QACN,KAAK,EAAE;YACL,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;YACrD,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,mBAAmB,CAAC,EAAE,MAAM,CAAC;YAC7B,8GAA8G;YAC9G,gBAAgB,CAAC,EAAE,MAAM,CAAC;SAC3B,CAAC;QACF,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QACxB,MAAM,EAAE,MAAM,CAAC;QACf,uLAAuL;QACvL,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,8EAA8E;QAC9E,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE;YACV,GAAG,CAAC,EAAE,MAAM,CAAC;YACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;YAC3C,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACpC,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,kIAAkI;YAClI,UAAU,CAAC,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,OAAO,EAAE,MAAM,CAAA;aAAE,CAAC;YAC/C,mIAAmI;YACnI,WAAW,CAAC,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,OAAO,EAAE,MAAM,CAAA;aAAE,CAAC;SACjD,CAAC;QACF,IAAI,EAAE,iBAAiB,CAAC;QACxB,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE;YACR,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;YACpB;;;;eAIG;YACH,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,uEAAuE;YACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;SACnB,CAAC;KACH,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,IAAI,EAAE,iBAAiB,CAAC;IACxB,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;QACpB;;;;WAIG;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,uEAAuE;QACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE;QACN;;;WAGG;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB;;WAEG;QACH,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB;;;;;;WAMG;QACH,KAAK,EAAE,MAAM,GAAG;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,GAAG;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,GAAG,KAAK,CAAC,MAAM,GAAG;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,GAAG;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC9G;;WAEG;QACH,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB;;WAEG;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;KACxD,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,WAAW;IAC/C,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE;QACN;;;WAGG;QACH,GAAG,EAAE,MAAM,CAAC;QACZ;;;WAGG;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB;;WAEG;QACH,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB;;WAEG;QACH,KAAK,CAAC,EAAE,MAAM,CAAC;QACf;;WAEG;QACH,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB;;WAEG;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;KACxD,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE;QACN;;;WAGG;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB;;WAEG;QACH,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB;;;WAGG;QACH,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QACzB;;WAEG;QACH,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB;;WAEG;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;KACxD,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,SAAU,SAAQ,WAAW;IAC5C,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE;QACN;;WAEG;QACH,KAAK,EAAE,MAAM,GAAG;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,GAAG;YAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;QAC5D;;WAEG;QACH,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;KAC1B,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,WAAW;IAC7C,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE;QACN;;WAEG;QACH,GAAG,CAAC,EAAE,MAAM,CAAC;QACb;;WAEG;QACH,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE;QACN;;WAEG;QACH,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;QAClC;;WAEG;QACH,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B,CAAC;CACH;AAED;;GAEG;AACH,MAAM,MAAM,OAAO,GACf,YAAY,GACZ,gBAAgB,GAChB,eAAe,GACf,oBAAoB,GACpB,SAAS,GACT,WAAW,GACX,SAAS,GACT,QAAQ,GACR,UAAU,GACV,UAAU,GACV,eAAe,GACf,iBAAiB,GACjB,kBAAkB,GAClB,gBAAgB,GAChB,YAAY,GACZ,cAAc,GACd,SAAS,GACT,UAAU,GACV,aAAa,CAAC;AAElB;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,IAAI,EAAE;QACJ,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB"}
|