@unotest/dsl 0.5.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.
@@ -0,0 +1,110 @@
1
+ import { B as BlockStatement, F as FunctionalExpression, S as Statement, E as Expression } from '../functional-expression-BC_QljY1.js';
2
+
3
+ interface DslDiagnostic {
4
+ severity: 'error' | 'warning';
5
+ line: number | null;
6
+ column: number | null;
7
+ message: string;
8
+ }
9
+
10
+ declare class ValidationSession {
11
+ private readonly _varKinds;
12
+ private readonly _code;
13
+ private readonly _isWrapped;
14
+ constructor(code: string, isWrapped?: boolean);
15
+ get varKinds(): ReadonlyMap<string, InferredKind>;
16
+ setVarKind(name: string, kind: InferredKind): void;
17
+ isWrappedFormat(): boolean;
18
+ get code(): string;
19
+ runWholeFileChecks(root: BlockStatement): void;
20
+ }
21
+
22
+ type ArgKind = 'any' | 'string' | 'stringLike' | 'stringOrNumberLike' | 'matcher' | 'number' | 'boolLike' | 'locatorLike' | 'strictLocatorLike' | 'array' | 'arrayOfLocators' | 'arrayOfStrictLocators' | 'arrayOfStrings' | 'jsonObjectString' | {
23
+ enum: readonly string[];
24
+ };
25
+ interface ArgSpec {
26
+ kind: ArgKind;
27
+ required: boolean;
28
+ label: string;
29
+ }
30
+
31
+ interface FunctionSignature {
32
+ readonly args: readonly ArgSpec[];
33
+ variadic?: boolean;
34
+ }
35
+
36
+ type InferredKind = 'number' | 'string' | 'selectorString' | 'bool' | 'locator' | 'unknown';
37
+ type FunctionSupport = 'visual';
38
+ type FunctionReturnKind = 'void' | 'string' | 'selectorString' | 'number' | 'bool' | 'locator' | 'unknown';
39
+ type LocatorCapability = 'none' | 'locator' | 'chainableLocator';
40
+ interface FunctionSemanticsContext {
41
+ readonly session: ValidationSession;
42
+ readonly resolver: FunctionSemanticsResolver;
43
+ }
44
+ type FunctionReturnSemantics = {
45
+ readonly mode: 'fixed';
46
+ readonly kind: FunctionReturnKind;
47
+ } | {
48
+ readonly mode: 'inferred';
49
+ infer(expression: FunctionalExpression, ctx: FunctionSemanticsContext): InferredKind;
50
+ };
51
+ interface FunctionContract {
52
+ readonly name: string;
53
+ readonly signature: FunctionSignature;
54
+ readonly support: FunctionSupport;
55
+ readonly returns: FunctionReturnSemantics;
56
+ readonly locatorCapability: LocatorCapability;
57
+ /** If true, when this function is used as an argument its return type is trusted (bypasses arg type checks). */
58
+ readonly trusted?: boolean;
59
+ }
60
+ interface FunctionContractRegistry {
61
+ resolve(name: string): FunctionContract | null;
62
+ }
63
+ interface FunctionSemanticsResolver {
64
+ resolveContract(name: string): FunctionContract | null;
65
+ inferReturnKind(expression: FunctionalExpression, session: ValidationSession): InferredKind;
66
+ }
67
+
68
+ declare function validateDsl(ast: Statement, code: string, isWrapped: boolean, registry: FunctionContractRegistry & FunctionSemanticsResolver): DslDiagnostic[];
69
+
70
+ type DiagnosticEmitter = {
71
+ error(line: number | null, column: number | null, message: string): void;
72
+ warning(line: number | null, column: number | null, message: string): void;
73
+ };
74
+
75
+ type ValidationIssue = {
76
+ message: string;
77
+ };
78
+ declare function assertFunctionArity(name: string, expr: {
79
+ arguments: readonly Expression[];
80
+ }, signature: FunctionSignature): ValidationIssue | null;
81
+ declare function assertArgKind(fnName: string, index: number, label: string, kind: ArgKind, arg: Expression, session: ValidationSession, resolver: FunctionSemanticsResolver): ValidationIssue | null;
82
+
83
+ declare function isStringProducing(expr: Expression): boolean;
84
+ declare function isExplicitlyStringLike(expr: Expression, session: ValidationSession, resolver: FunctionSemanticsResolver): boolean;
85
+ declare function isNumberLike(expr: Expression, session: ValidationSession, resolver: FunctionSemanticsResolver): boolean;
86
+ declare function isStringLike(expr: Expression, session: ValidationSession, resolver: FunctionSemanticsResolver): boolean;
87
+ declare function isStringOrNumberLike(expr: Expression, session: ValidationSession, resolver: FunctionSemanticsResolver): boolean;
88
+ declare function isBoolLike(expr: Expression, session: ValidationSession): boolean;
89
+ declare function isLocatorLike(expr: Expression, session: ValidationSession, resolver: FunctionSemanticsResolver): boolean;
90
+ declare function isStrictLocatorLike(expr: Expression, session: ValidationSession, resolver: FunctionSemanticsResolver): boolean;
91
+ declare function isChainableLocatorLike(expr: Expression, session: ValidationSession, resolver: FunctionSemanticsResolver): boolean;
92
+ declare function inferKind(expr: Expression, session: ValidationSession, resolver: FunctionSemanticsResolver): InferredKind;
93
+
94
+ declare class ConverterValidationError extends Error {
95
+ readonly line: number | null;
96
+ readonly column: number | null;
97
+ constructor(message: string, line?: number | null, column?: number | null);
98
+ }
99
+
100
+ type StatementValidationContext = {
101
+ isRoot: boolean;
102
+ };
103
+ interface ValidationRuntime {
104
+ readonly session: ValidationSession;
105
+ readonly functionSemantics: FunctionSemanticsResolver;
106
+ validateExpression(expr: Expression): void;
107
+ validateStatement(stmt: Statement, ctx: StatementValidationContext): void;
108
+ }
109
+
110
+ export { type ArgKind, type ArgSpec, ConverterValidationError, type DiagnosticEmitter, type DslDiagnostic, type FunctionContract, type FunctionContractRegistry, type FunctionReturnKind, type FunctionReturnSemantics, type FunctionSemanticsContext, type FunctionSemanticsResolver, type FunctionSignature, type FunctionSupport, type InferredKind, type LocatorCapability, type StatementValidationContext, type ValidationRuntime, ValidationSession, assertArgKind, assertFunctionArity, inferKind, isBoolLike, isChainableLocatorLike, isExplicitlyStringLike, isLocatorLike, isNumberLike, isStrictLocatorLike, isStringLike, isStringOrNumberLike, isStringProducing, validateDsl };
@@ -0,0 +1 @@
1
+ const _0x58fbf7=_0x3397;(function(_0x3f8132,_0x50cca8){const _0x303a0b={_0x52eb30:0xc4,_0x4829ba:0xea,_0xafe526:0xb8},_0x4864d2=_0x3397,_0x511c35=_0x3f8132();while(!![]){try{const _0x2e8852=parseInt(_0x4864d2(0xe3))/0x1*(parseInt(_0x4864d2(_0x303a0b._0x52eb30))/0x2)+-parseInt(_0x4864d2(0x7c))/0x3*(parseInt(_0x4864d2(0x87))/0x4)+-parseInt(_0x4864d2(0x9b))/0x5*(-parseInt(_0x4864d2(0x115))/0x6)+-parseInt(_0x4864d2(_0x303a0b._0x4829ba))/0x7+parseInt(_0x4864d2(0x89))/0x8+-parseInt(_0x4864d2(_0x303a0b._0xafe526))/0x9+-parseInt(_0x4864d2(0x83))/0xa*(-parseInt(_0x4864d2(0xaf))/0xb);if(_0x2e8852===_0x50cca8)break;else _0x511c35['push'](_0x511c35['shift']());}catch(_0x58cd59){_0x511c35['push'](_0x511c35['shift']());}}}(_0x5432,0x7fc80));import{ArrayAccessExpression,ArrayAssignmentStatement,ArrayExpression,AssignmentStatement,BinaryExpression,BlockStatement,BreakStatement,ConditionalExpression,ContinueStatement,DoWhileStatement,ForStatement,FunctionDefineStatement,FunctionStatement,FunctionalExpression,IfStatement,IncrementExpression,IncrementStatement,MemberCallExpression,MetaBlockStatement,ObjectExpression,PrintStatement,PropertyAccessExpression,RegExpExpression,ReturnStatement,UnaryExpression,ValueExpression,VarStatement,VariableExpression,WhileStatement,__name}from'../chunk-4PFHLTL7.js';function _0x5432(){const _0x415788=['DMfSAwrHDgvnzxrHqMXVy2S','z2v0tgLUzq','DMfSAwrHDgvvBNn1ChbVCNrLzfn0yxrLBwvUDa','zM9YkcKGAw5PDgLHBgL6zxiGBxvZDcbIzsbHBIbHC3nPz25Tzw50icHLlMCUigKGpsaWkq','BgvUz3rO','y29Kzq','C2vSzwn0B3jtDhjPBMC','CNvUv3jHChbLzezVCM1HDenOzwnR','Bg9JyxrVCKnHCgfIAwXPDhK','z2v0vgv4Da','ig11C3qGyMuGysbku09oig9IAMvJDcbZDhjPBMCGkguUzY4GiNT9iIbVCIaIE1WIA2v5xci6ifWIDMfSDwvCiN0Ikq','zw51Bq','AxnmB2nHDg9YtgLRzq','mZm0odi5weHrs05v','DMfSAwrHDgvgB3jtDgf0zw1LBNq','DMfSAwrHDgvvBNn1ChbVCNrLzev4ChjLC3nPB24','AxntDhjPy3rmB2nHDg9YtgLRzq','yxjYyxK','qxjYyxKGyxnZAwDUBwvUDcbGyxjYw2LDid0GDMfSDwvGigLZig5VDcbZDxbWB3j0zwqGAw4Gvw5VvgvZDcbeu0WU','z2v0vhLWzq','zwXLBwvUDhm','ig11C3qGyMuGysbSB2nHDg9Yigv4ChjLC3nPB24','mtG5nZaYtuPmq3zh','DgvZDf8','qxjYyxKGywnJzxnZigbHCNjBAv1GigLZig5VDcbZDxbWB3j0zwqGAw4Gvw5VvgvZDcbeu0WU','yhbYAw50ycbPCYbUB3qGC3vWCg9YDgvKigLUifvUB1rLC3qGrfnmlG','yhjLDhvYBMaGAxmGBM90ihn1ChbVCNrLzcbPBIbvBM9uzxn0ierttc4','ig11C3qGyMuGyw4GyxjYyxKGB2yGy2HHAw5HyMXLigXVy2f0B3jZoYbVBMX5ihrOzsbSyxn0igvSzw1LBNqGBwf5igjLigzPCNn0l2XHC3qVBNrOoYbYyxCGC3rYAw5NCYbHCMuGBM90igfJy2vWDgvK','BgLZDhnhzxrsyw5KB21jDgvTkcK6igfYz3vTzw50ideGkgXPC3qPig11C3qGyMuGyw4GyxjYyxKGB3iGysb2yxjPywjSzq','C2vZC2LVBG','zM9YkcKGAw5JCMvTzw50ihrHCMDLDcbTDxn0igjLihrOzsbSB29WihzHCMLHyMXLicC','y2HLy2TgDw5JDgLVBKrLzMLUzvn0yxrLBwvUDfnOyxbL','zwXZzvn0yxrLBwvUDa','zgvJBgfYyxrVCNm','mte0otq2nKznEfrhEa','zNvUy3rPB25HBev4ChjLC3nPB24','yxjYyxLpzLn0CMLUz3m','zgLHz25VC3rPy3m','ig11C3qGyMuGysbUDw1Izxi','lY9ay29TBwvUDcbYzxf1AxjLCYbHihrPDgXLigfYz3vTzw50oIaVl0bJB21Tzw50kcjuAxrSzsiP','vMfSAwrHDgLVBLnLC3nPB24','Dhj1zq','vw5RBM93BIbMDw5JDgLVBJOG','x2nVzgu','zxHWCMvZC2LVBG','zM9YkcKGy29UzgL0Aw9Uig11C3qGyMuGysbJB21WyxjPC29UicHLlMCUigKGpcaXmcK','Aw5MzxjlAw5KrM9YrNvUy3rPB25HBa','q29TCgf0AwjPBgL0EvDHBgTLCG','AwyOksbJB25KAxrPB24GBxvZDcbIzsbHigjVB2XLyw4GzxHWCMvZC2LVBIaOzs5NlIbPidWGmtaSihGGpt0GiMfIyYiSihrYDwuVzMfSC2uP','vw5RBM93BIbTzxrHlwjSB2nRoIaVl0a','C3rLCcbTDxn0igjLigLUC2LKzsbHic8VqgnVBgXHChnLigjSB2nRiokaLcbNCM91CcbZDgvWCYb1BMrLCIaVl0bJB2XSyxbZzsGIzgvZy3jPChrPB24IksdIGkyGlY9azw5Ky29SBgfWC2u','ig11C3qGyMuGysbIB29SzwfUigv4ChjLC3nPB24','rNvUy3rPB24GzgvMAw5PDgLVBIbTDxn0igjLigf0ihrOzsb0B3aGBgv2zwWGB2yGDgHLigzPBgu','CMvJzwL2zxi','AM9PBG','Aw5JCMvTzw50','ig11C3qGyMuGysbSB2nHDg9YigjSB2nRicHYyxCGq1ntihn0CMLUz3mGyxjLig5VDcbHy2nLChrLzcbOzxjLkq','CMvZB2X2zq','lY9ay29SBgfWC2uGCMvXDwLYzxmGysb0AxrSzsbHCMD1BwvUDdOGlY9ay29SBgfWC2uOiLrPDgXLiIK','Bg9JyxrVCG','yxjYyxLpzKXVy2f0B3jZ','DMfSAwrHDgvgDw5JDgLVBKnVBxbHDgLIAwXPDhK','y2HLy2TjzKnVBMrPDgLVBLnOyxbL','vw5RBM93BIbLEhbYzxnZAw9Uihr5CguGAxmGBM90ihn1ChbVCNrLzcbPBIbvBM9uzxn0iertta','Bwf0y2HLCG','mvvIzgjOAq','Dg9Rzw4','DMfSAwrHDgvcAw5HCNLfEhbYzxnZAw9U','z2v0','DMfYAwfKAwm','yM9VBeXPA2u','CNvUv2HVBgvgAwXLq2HLy2TZ','nJu5mZqWnuftEwzJsG','AxnbCNjHEq','yM9VBa','AxntDhjPBMDpCK51BwjLCKXPA2u','zxHWCJe','ig11C3qGyMuGB25Lig9MoIa','zM9YkcKGy29UzgL0Aw9Uig11C3qGDxnLidWSidW9lca+ig9Yid49ig9WzxjHDg9Y','AxntDhjPBMDmAwTL','yxnZzxj0qxjNs2LUza','t2jQzwn0igXPDgvYywXZigb7ih1GigfYzsbUB3qGC3vWCg9YDgvKigLUifvUB1rLC3qGrfnmlG','zMLSDgvY','zxjYB3i','C3rYAw5Nt3joDw1IzxjmAwTL','AxntDhjPBMDqCM9KDwnPBMC','ig11C3qGyMuGyw4GyxjYyxKGB2yGC3rYAw5NihzHBhvLCW','Aw5PDgLHBgL6yxrPB24','zxHWCJi','z2v0q29SDw1U','v3jHChbLzcbJB2rLig11C3qGy29UDgfPBIbHihrLC3rFkIbVCIbMBg93xYOGzNvUy3rPB24GzgvMAw5PDgLVBG','vw5HCNKGycfGigLZig5VDcbZDxbWB3j0zwqUifvZzsbGEca9psbMywXZzwaGB3iGyhGGit0GzxHWzwn0zwrwywX1zwaGAw5ZDgvHzc4','zMXVD18','Dhj1C3rLza','CMvXDwLYzwq','CMvZB2X2zunVBNrYywn0','DMfSAwrHDgveC2W','y2HLy2TwyxjtDgf0zw1LBNrtAgfWzq','D2fYBMLUzW','C3rYAw5N','yMXVy2S','C3rHDgvTzw50CW','y2HLy2TgB3jtDgf0zw1LBNrtAgfWzq','zM9YkcKGy29UzgL0Aw9UigXLzNqGC2LKzsbTDxn0igjLihrOzsbSB29WihzHCMLHyMXLicC','yxjYyxLpzLn0CMLJDeXVy2f0B3jZ','B2jQzwn0','q29UDMvYDgvYvMfSAwrHDgLVBKvYCM9Y','A2v5CW','x2LZv3jHChbLza','ig11C3qGyMuGysbZDhjPBMCGB3iGBNvTyMvYihzHBhvL','yxjNtMfTzxm','zM9YkcKGAw5JCMvTzw50igXLzNqGC2LKzsbTDxn0igjLihrOzsbSB29WihzHCMLHyMXLicC','ygjYzwfRycbPCYbUB3qGC3vWCg9YDgvKigLUifvUB1rLC3qGrfnmigXVB3bZlG','ig11C3qGyMuGyw4GyxjYyxKGwY4UlL0SigDVDca','Aw5JBhvKzxm','mtmZodG0nKXgzNngBq','vw5RBM93BIbZDgf0zw1LBNqGDhLWzsbPCYbUB3qGC3vWCg9YDgvKigLUifvUB1rLC3qGrfnm','DMLZAxrfEhbYzxnZAw9U','DMfYs2LUzhm','zgvZy3jPyMvuExbL','AxnxCMfWCgvKrM9YBwf0','y2HLy2TkC29Ut2jQzwn0u3rYAw5N','BMfTzq','B3bLCMf0Aw9U','ANnVBK9IAMvJDfn0CMLUzW','BgLZDhnhzxrsyw5KB21jDgvT','id0G','zM9YkcKGAw5JCMvTzw50ig11C3qGyMuGysbIAw5HCNKGzxHWCMvZC2LVBIaOzs5NlIa','zMfSC2u','ygrVlI4UD2HPBgvGigXVB3bZigfYzsbUB3qGC3vWCg9YDgvKlIbvC2uGygzVCIaOAsa9ida7igKGpcbooYbPid0GAsaRidePihSGFwaGAw5ZDgvHzc4','yxjNDw1LBNrZ','rM9YD2fYzcbSB29WicG8ic8Gpd0Pig11C3qGDxnLicSGAw4GAw5JCMvTzw50lcbUB3qGlq','y29SDw1U','y29UzgL0Aw9UywWGzxHWCMvZC2LVBG','C3rYAwn0tg9JyxrVCKXPA2u','ig11C3qGyMuGysbZDhjPBMCGDMfSDwuGB3iGCMvNzxGGBgL0zxjHBa','AxncB29StgLRzq','AxnfEhbSAwnPDgX5u3rYAw5NtgLRzq','BgfIzwW','uMv2zxjZzsbSB29WicG+ic8GpJ0Pig11C3qGDxnLic0GAw4GAw5JCMvTzw50lcbUB3qGkW','BNvTyMvY','yw55','rg8GBM90ihvZzsb2yxiVBgv0l2nVBNn0lIbvC2uGzgLYzwn0igfZC2LNBM1LBNq6ihGGpsb2ywX1zq','BgLUzq','yxjNCW','icSGmsK','C2LNBMf0DxjL','mJm2mdy2n1fmEwPAyW','vxnLihrLEhrkB2LUkfSUlI5DksbMB3iGC3rYAw5NignVBMnHDgvUyxrPB24GAw5ZDgvHzcbVzIaR','zxHLy3v0zuPZq29KzsGPoIb2yxjPywjSzu1HCcbHBMqGy29TBwvUDcbHCMuGAwDUB3jLzcbIEsb0AguGqMXVy2TSEsbJB252zxj0zxiUifDOzw4GC2f2Aw5NihrVihrOzsb2Axn1ywWGzwrPDg9Ylcb2yxjPywjSzu1HCcbPCYbYzwj1AwX0igf1Dg9TyxrPy2fSBhKGzNjVBsb3B3jRC3bHy2uGDMfYAwfIBgvZlG','CMvNAxn0CNK','BgLZDhnhzxrsyw5KB21jDgvTkcK6ihjLBw92zsbHCMD1BwvUDcbPCYbPz25VCMvKigj5ihrOzsbcBg9JA2X5ignVBNzLCNrLCIaOywX3yxLZigzHBhnLks4','lcbNB3qG','x3zHCKTPBMrZ','mJmWDeDztvbk','zxHLy3v0zuPZq29Kzq','ig11C3qGyMuGyw4GyxjYyxKGB2yGBg9JyxrVCNm','y2HLy2Tuzxn0q29SBgfWC2vdB3zLCMfNzq','ne9LEw1QvG','y29SBgfWC2u','nJiWmJqYng9WEvP6tW','DMfYAwfIBgu','ycSRyc9Gls1GigLZig5VDcbZDxbWB3j0zwqUifvZzsbGAsa9igKGkYaXycbVCIbGAsa9igKGlsaXycbPBNn0zwfKlG','BwvZC2fNzq','ChvZAa','DMLZAxrnzw1IzxjdywXSrxHWCMvZC2LVBG','Bg9JyxrVCKXPA2u','yMLUyxj5igv4ChjLC3nPB24','DMfSAwrHDgvwyxjtDgf0zw1LBNq','DMLZAxrgDw5JDgLVBMfSrxHWCMvZC2LVBG','DMLZAxrtDgf0zw1LBNq','yM9KEq','A2LUza','Aw5Mzxjszxr1CM5lAw5K','DgvYBwLUyxrPB24','y29TBwvUDa','zM9YkcKGAw5JCMvTzw50ig11C3qGyMuGyw4GyxnZAwDUBwvUDcaOzs5NlIa','sw4GD3jHChbLzcbJB2rLlcbVBMX5ihrLC3rFkI9MBg93xYOGzNvUy3rPB24GzgvMAw5PDgLVBNmGyxjLigfSBg93zwqGyxqGDgHLihrVCcbSzxzLBa','nwHzAw5jyq','ig11C3qGyMuGysbZDhjPBMCGBgL0zxjHBa','DgvZDeLK','DMfSAwrHDgvjzKnVBMrPDgLVBG','Aw5MzxjlAw5K','Dw5RBM93BG','C3rHCNrZv2L0Aa'];_0x5432=function(){return _0x415788;};return _0x5432();}function describeType(_0x2e937c){const _0x441abe={_0x46a741:0xe4,_0xbbb7e1:0xb5,_0x4f76c1:0x75,_0x3fbb0d:0x8a,_0x3cf5bc:0x90,_0x2f909d:0x6e},_0x398688=_0x3397;if(_0x2e937c instanceof ValueExpression)return _0x2e937c[_0x398688(_0x441abe._0x46a741)][_0x398688(_0x441abe._0xbbb7e1)]()===0x0?_0x398688(_0x441abe._0x4f76c1):_0x398688(0x105);if(_0x2e937c instanceof VariableExpression)return _0x398688(_0x441abe._0x3fbb0d);if(_0x2e937c instanceof FunctionalExpression)return _0x2e937c['name']+'(...)';if(_0x2e937c instanceof BinaryExpression)return _0x398688(_0x441abe._0x3cf5bc);if(_0x2e937c instanceof ConditionalExpression)return _0x398688(_0x441abe._0x2f909d);if(_0x2e937c instanceof ArrayExpression)return _0x398688(0xb3);return'unknown';}__name(describeType,_0x58fbf7(0x119));function inferKindForFunctional(_0x5d719f,_0x170900,_0x10a433){const _0x2820a5={_0x4ed36b:0x96},_0x19d3cc=_0x58fbf7;return _0x10a433[_0x19d3cc(_0x2820a5._0x4ed36b)](_0x5d719f,_0x170900);}__name(inferKindForFunctional,_0x58fbf7(0xd0));function isStringProducing(_0x4268d3){const _0x41d88a={_0x378a9a:0xfa},_0x189e0e=_0x58fbf7;if(_0x4268d3 instanceof ValueExpression&&_0x4268d3['token'][_0x189e0e(0xb5)]()===0x2)return!![];if(_0x4268d3 instanceof BinaryExpression&&_0x4268d3['operation']==='+')return isStringProducing(_0x4268d3['expr1'])||isStringProducing(_0x4268d3[_0x189e0e(_0x41d88a._0x378a9a)]);return![];}__name(isStringProducing,_0x58fbf7(0xf7));function isExplicitlyStringLike(_0x3a3c65,_0x29dc7e,_0x47ba70){const _0x1108bc={_0x137a67:0x105,_0x377181:0xee,_0x3072e1:0xfa},_0x5a6f7c=_0x58fbf7;if(_0x3a3c65 instanceof FunctionalExpression){const _0x45e76e=inferKindForFunctional(_0x3a3c65,_0x29dc7e,_0x47ba70);return _0x45e76e==='string'||_0x45e76e==='selectorString';}if(_0x3a3c65 instanceof VariableExpression){const _0x119d11=_0x29dc7e[_0x5a6f7c(0x118)][_0x5a6f7c(0xe6)](_0x3a3c65['name']);return _0x119d11===_0x5a6f7c(_0x1108bc._0x137a67)||_0x119d11===_0x5a6f7c(0xa8);}if(_0x3a3c65 instanceof BinaryExpression&&_0x3a3c65[_0x5a6f7c(0x11d)]==='+')return isExplicitlyStringLike(_0x3a3c65[_0x5a6f7c(_0x1108bc._0x377181)],_0x29dc7e,_0x47ba70)||isExplicitlyStringLike(_0x3a3c65[_0x5a6f7c(_0x1108bc._0x3072e1)],_0x29dc7e,_0x47ba70);return![];}__name(isExplicitlyStringLike,_0x58fbf7(0x72));function isNumberLike(_0x364fdf,_0x497af6,_0xa52a98){const _0x41aa39={_0x815a97:0xe4,_0x473164:0x11c,_0x5eb2f8:0x75,_0x55e29b:0xfa,_0x1c2bef:0x75,_0x483cea:0xa0},_0x3e5d1c=_0x58fbf7;if(_0x364fdf instanceof ValueExpression)return _0x364fdf[_0x3e5d1c(_0x41aa39._0x815a97)][_0x3e5d1c(0xb5)]()===0x0;if(_0x364fdf instanceof VariableExpression){const _0x26be87=_0x497af6[_0x3e5d1c(0x118)]['get'](_0x364fdf[_0x3e5d1c(_0x41aa39._0x473164)]);return _0x26be87===_0x3e5d1c(_0x41aa39._0x5eb2f8)||_0x26be87===_0x3e5d1c(0xa0)||_0x26be87===void 0x0;}if(_0x364fdf instanceof BinaryExpression)return isNumberLike(_0x364fdf['expr1'],_0x497af6,_0xa52a98)&&isNumberLike(_0x364fdf[_0x3e5d1c(_0x41aa39._0x55e29b)],_0x497af6,_0xa52a98);if(_0x364fdf instanceof FunctionalExpression){const _0x54fe53=inferKindForFunctional(_0x364fdf,_0x497af6,_0xa52a98);return _0x54fe53===_0x3e5d1c(_0x41aa39._0x1c2bef)||_0x54fe53===_0x3e5d1c(_0x41aa39._0x483cea);}return![];}__name(isNumberLike,'isNumberLike');function isStringLike(_0x307ef8,_0x2736aa,_0x5b6a3c){const _0x326ee0={_0x18894d:0x118,_0x16d392:0x105,_0x17639c:0xa8,_0x4da1da:0xa0},_0xcc5d72=_0x58fbf7;if(_0x307ef8 instanceof ValueExpression)return _0x307ef8['token']['getType']()===0x2;if(_0x307ef8 instanceof VariableExpression){const _0x3bd1a9=_0x2736aa[_0xcc5d72(_0x326ee0._0x18894d)]['get'](_0x307ef8['name']);if(_0x3bd1a9===void 0x0)return!![];return _0x3bd1a9===_0xcc5d72(_0x326ee0._0x16d392)||_0x3bd1a9===_0xcc5d72(_0x326ee0._0x17639c)||_0x3bd1a9==='unknown';}if(_0x307ef8 instanceof FunctionalExpression){const _0x487d7b=inferKindForFunctional(_0x307ef8,_0x2736aa,_0x5b6a3c);return _0x487d7b===_0xcc5d72(_0x326ee0._0x16d392)||_0x487d7b===_0xcc5d72(0xa8)||_0x487d7b===_0xcc5d72(_0x326ee0._0x4da1da);}if(_0x307ef8 instanceof BinaryExpression&&_0x307ef8['operation']==='+')return isStringProducing(_0x307ef8[_0xcc5d72(0xee)])||isStringProducing(_0x307ef8['expr2']);return![];}__name(isStringLike,_0x58fbf7(0xf1));function isStringOrNumberLike(_0x17a772,_0x13590b,_0x4be1f7){return isStringLike(_0x17a772,_0x13590b,_0x4be1f7)||isNumberLike(_0x17a772,_0x13590b,_0x4be1f7);}__name(isStringOrNumberLike,_0x58fbf7(0xed));function isBoolLike(_0x5e06d1,_0x14f724){const _0x392bc1={_0x288d2e:0xcb,_0x163dcf:0x11c,_0x3d40e9:0xe6},_0x4caf6e=_0x58fbf7;if(_0x5e06d1 instanceof ConditionalExpression)return!![];if(_0x5e06d1 instanceof VariableExpression){if(_0x5e06d1[_0x4caf6e(0x11c)]===_0x4caf6e(_0x392bc1._0x288d2e)||_0x5e06d1[_0x4caf6e(_0x392bc1._0x163dcf)]==='false')return!![];const _0x56b09b=_0x14f724[_0x4caf6e(0x118)][_0x4caf6e(_0x392bc1._0x3d40e9)](_0x5e06d1['name']);return _0x56b09b==='bool'||_0x56b09b==='unknown'||_0x56b09b===void 0x0;}return![];}__name(isBoolLike,_0x58fbf7(0x71));function isLocatorLike(_0x2ff43c,_0x89885c,_0x2abaa4){const _0x44aed4={_0x41a675:0xdd,_0x349740:0xe6,_0xf6f5b2:0xe4},_0x49dad1=_0x58fbf7;if(_0x2ff43c instanceof FunctionalExpression){const _0x174160=inferKindForFunctional(_0x2ff43c,_0x89885c,_0x2abaa4);return _0x174160===_0x49dad1(_0x44aed4._0x41a675)||_0x174160===_0x49dad1(0xa8)||_0x174160===_0x49dad1(0xa0);}if(_0x2ff43c instanceof VariableExpression){const _0x3a98f9=_0x89885c[_0x49dad1(0x118)][_0x49dad1(_0x44aed4._0x349740)](_0x2ff43c[_0x49dad1(0x11c)]);if(_0x3a98f9===void 0x0)return!![];return _0x3a98f9==='locator'||_0x3a98f9===_0x49dad1(0xa8)||_0x3a98f9===_0x49dad1(0xa0);}if(_0x2ff43c instanceof ValueExpression&&_0x2ff43c[_0x49dad1(_0x44aed4._0xf6f5b2)]['getType']()===0x2)return!![];return![];}__name(isLocatorLike,_0x58fbf7(0xae));function isStrictLocatorLike(_0x5aa90b,_0x219853,_0xd6009){const _0x1e68ca={_0x1cdb55:0xe6,_0x2dce6f:0x11c},_0x5c8f64=_0x58fbf7;if(_0x5aa90b instanceof FunctionalExpression){const _0x2532cf=inferKindForFunctional(_0x5aa90b,_0x219853,_0xd6009);return _0x2532cf==='locator'||_0x2532cf==='selectorString'||_0x2532cf===_0x5c8f64(0xa0);}if(_0x5aa90b instanceof VariableExpression){const _0x422915=_0x219853['varKinds'][_0x5c8f64(_0x1e68ca._0x1cdb55)](_0x5aa90b[_0x5c8f64(_0x1e68ca._0x2dce6f)]);if(_0x422915===void 0x0)return!![];return _0x422915==='locator'||_0x422915===_0x5c8f64(0xa8)||_0x422915===_0x5c8f64(0xa0);}return![];}__name(isStrictLocatorLike,_0x58fbf7(0xb2));function isChainableLocatorLike(_0x1b99a8,_0x285238,_0x745c64){const _0x148077={_0x23c9cb:0xaa},_0x5e9d99=_0x58fbf7;if(!(_0x1b99a8 instanceof FunctionalExpression))return![];const _0x35e549=_0x745c64['resolveContract'](_0x1b99a8['name']);return _0x35e549?.[_0x5e9d99(_0x148077._0x23c9cb)]==='chainableLocator';}__name(isChainableLocatorLike,'isChainableLocatorLike');function inferKind(_0x2b0c78,_0x4f8960,_0x3ab9ab){const _0x27dd98={_0x588307:0x75,_0x479390:0xb5,_0x59fbbe:0xa8,_0x455dfc:0xe6,_0x44f925:0xa0,_0x9d1e91:0xee,_0x26df38:0x11d,_0x55a638:0x105},_0x2b7ac5=_0x58fbf7;if(_0x2b0c78 instanceof ValueExpression){if(_0x2b0c78[_0x2b7ac5(0xe4)][_0x2b7ac5(0xb5)]()===0x0)return _0x2b7ac5(_0x27dd98._0x588307);if(_0x2b0c78[_0x2b7ac5(0xe4)][_0x2b7ac5(_0x27dd98._0x479390)]()===0x2)return _0x2b7ac5(_0x27dd98._0x59fbbe);return _0x2b7ac5(0xa0);}if(_0x2b0c78 instanceof VariableExpression){if(_0x2b0c78[_0x2b7ac5(0x11c)]===_0x2b7ac5(0xcb)||_0x2b0c78['name']===_0x2b7ac5(0x122))return _0x2b7ac5(0xec);return _0x4f8960[_0x2b7ac5(0x118)][_0x2b7ac5(_0x27dd98._0x455dfc)](_0x2b0c78[_0x2b7ac5(0x11c)])??_0x2b7ac5(_0x27dd98._0x44f925);}if(_0x2b0c78 instanceof FunctionalExpression)return inferKindForFunctional(_0x2b0c78,_0x4f8960,_0x3ab9ab);if(_0x2b0c78 instanceof BinaryExpression){if(isNumberLike(_0x2b0c78[_0x2b7ac5(_0x27dd98._0x9d1e91)],_0x4f8960,_0x3ab9ab)&&isNumberLike(_0x2b0c78[_0x2b7ac5(0xfa)],_0x4f8960,_0x3ab9ab))return _0x2b7ac5(_0x27dd98._0x588307);if(_0x2b0c78[_0x2b7ac5(_0x27dd98._0x26df38)]==='+'&&isStringProducing(_0x2b0c78))return _0x2b7ac5(_0x27dd98._0x55a638);}return _0x2b7ac5(0xa0);}function _0x3397(_0x25a685,_0x2aba4a){_0x25a685=_0x25a685-0x6a;const _0x543285=_0x5432();let _0x33970b=_0x543285[_0x25a685];if(_0x3397['jdhvDR']===undefined){var _0x2682bd=function(_0x22e240){const _0x2b573d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2e937c='',_0x5d719f='';for(let _0x170900=0x0,_0x10a433,_0x4268d3,_0x3a3c65=0x0;_0x4268d3=_0x22e240['charAt'](_0x3a3c65++);~_0x4268d3&&(_0x10a433=_0x170900%0x4?_0x10a433*0x40+_0x4268d3:_0x4268d3,_0x170900++%0x4)?_0x2e937c+=String['fromCharCode'](0xff&_0x10a433>>(-0x2*_0x170900&0x6)):0x0){_0x4268d3=_0x2b573d['indexOf'](_0x4268d3);}for(let _0x29dc7e=0x0,_0x47ba70=_0x2e937c['length'];_0x29dc7e<_0x47ba70;_0x29dc7e++){_0x5d719f+='%'+('00'+_0x2e937c['charCodeAt'](_0x29dc7e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5d719f);};_0x3397['OJrZYa']=_0x2682bd,_0x3397['AwgNJr']={},_0x3397['jdhvDR']=!![];}const _0x52ca92=_0x543285[0x0],_0x166eb9=_0x25a685+_0x52ca92,_0x4fc360=_0x3397['AwgNJr'][_0x166eb9];return!_0x4fc360?(_0x33970b=_0x3397['OJrZYa'](_0x33970b),_0x3397['AwgNJr'][_0x166eb9]=_0x33970b):_0x33970b=_0x4fc360,_0x33970b;}__name(inferKind,_0x58fbf7(0x9f));var ConverterValidationError=class extends Error{static{__name(this,_0x58fbf7(0x10c));}['line'];[_0x58fbf7(0x6d)];constructor(_0x527e67,_0x21b898=null,_0x20af0b=null){const _0x1e9910={_0x1532bc:0x6d},_0x49a4be=_0x58fbf7;super(_0x527e67),this[_0x49a4be(0x11c)]='ConverterValidationError',this['line']=_0x21b898,this[_0x49a4be(_0x1e9910._0x1532bc)]=_0x20af0b;}},ValidationSession=class{static{__name(this,_0x58fbf7(0xca));}[_0x58fbf7(0x82)]=new Map();[_0x58fbf7(0xcd)];[_0x58fbf7(0x10e)];constructor(_0xc7b26e,_0x38cea3=![]){const _0x10fcf5=_0x58fbf7;this[_0x10fcf5(0xcd)]=_0xc7b26e,this[_0x10fcf5(0x10e)]=_0x38cea3;}get[_0x58fbf7(0x118)](){return this['_varKinds'];}['setVarKind'](_0x1ddd2f,_0x1c953e){const _0x200510={_0x32aba1:0x82},_0x5d01cc=_0x58fbf7;this[_0x5d01cc(_0x200510._0x32aba1)]['set'](_0x1ddd2f,_0x1c953e);}[_0x58fbf7(0x11a)](){const _0x250504={_0x11bece:0x10e},_0x49415e=_0x58fbf7;return this[_0x49415e(_0x250504._0x11bece)];}get[_0x58fbf7(0xa7)](){const _0x8acf46=_0x58fbf7;return this[_0x8acf46(0xcd)];}[_0x58fbf7(0xe9)](_0x99d307){const _0x44b3d6={_0x2bd77d:0x11a,_0x3578e9:0xa6,_0x31a41b:0x11c,_0x2be454:0xe4},_0x3862e9=_0x58fbf7;if(!this[_0x3862e9(_0x44b3d6._0x2bd77d)]())return;let _0x408b86=![];for(const _0x1e2994 of _0x99d307[_0x3862e9(0x107)]){if(_0x1e2994 instanceof VarStatement&&_0x1e2994['declarators'][_0x3862e9(_0x44b3d6._0x3578e9)]===0x1&&_0x1e2994['declarators'][0x0][_0x3862e9(0x11c)]===_0x3862e9(0x9d))continue;if(_0x1e2994 instanceof FunctionDefineStatement&&(_0x1e2994[_0x3862e9(0x11c)]['startsWith'](_0x3862e9(0xb9))||_0x1e2994[_0x3862e9(_0x44b3d6._0x31a41b)][_0x3862e9(0xa1)](_0x3862e9(0xfe)))){_0x408b86=!![];continue;}const _0x4c2dc1=_0x1e2994[_0x3862e9(0xe4)]?.['getLine']()??null,_0x58d66d=_0x1e2994[_0x3862e9(_0x44b3d6._0x2be454)]?.['getColumn']()??null;throw new ConverterValidationError(_0x3862e9(0x9a),_0x4c2dc1,_0x58d66d);}if(!_0x408b86)throw new ConverterValidationError(_0x3862e9(0xfc),null,null);}};function validateBinaryExpression(_0x603079,_0x5490d0,_0x2333c1,_0x771f73){const _0x24f7fd={_0x1a2623:0xfa,_0x55f4a9:0xfb},_0x595489=_0x58fbf7;if(_0x603079['operation']==='+'&&!isStringProducing(_0x603079)&&(isExplicitlyStringLike(_0x603079[_0x595489(0xee)],_0x5490d0,_0x2333c1)||isExplicitlyStringLike(_0x603079[_0x595489(_0x24f7fd._0x1a2623)],_0x5490d0,_0x2333c1))){const _0x34ae9a=_0x603079[_0x595489(0xe4)]?.['getLine']()??null,_0x3cb3fb=_0x603079['token']?.[_0x595489(_0x24f7fd._0x55f4a9)]()??null;_0x771f73[_0x595489(0xf5)](_0x34ae9a,_0x3cb3fb,_0x595489(0x7d));}}__name(validateBinaryExpression,_0x58fbf7(0xe5));function validateUnsupportedExpression(_0x282e23,_0x119cc7){const _0x170776={_0x23a8df:0xe4,_0x51d825:0xa3,_0x4eb742:0xe4,_0x35b21f:0xf3,_0x4a4041:0xf5,_0x34706b:0xba,_0xdaf125:0x8b,_0x91bb83:0xf5},_0x323d4d=_0x58fbf7,_0x5b0f57=_0x282e23[_0x323d4d(_0x170776._0x23a8df)]?.[_0x323d4d(_0x170776._0x51d825)]()??null,_0x2472d5=_0x282e23[_0x323d4d(_0x170776._0x4eb742)]?.['getColumn']()??null;if(_0x282e23 instanceof ObjectExpression)_0x119cc7['error'](_0x5b0f57,_0x2472d5,_0x323d4d(_0x170776._0x35b21f));else{if(_0x282e23 instanceof UnaryExpression)_0x119cc7['error'](_0x5b0f57,_0x2472d5,_0x323d4d(0xfd));else{if(_0x282e23 instanceof ArrayAccessExpression)_0x119cc7[_0x323d4d(_0x170776._0x4a4041)](_0x5b0f57,_0x2472d5,_0x323d4d(_0x170776._0x34706b));else _0x282e23 instanceof IncrementExpression?_0x119cc7[_0x323d4d(0xf5)](_0x5b0f57,_0x2472d5,_0x323d4d(_0x170776._0xdaf125)):_0x119cc7[_0x323d4d(_0x170776._0x91bb83)](_0x5b0f57,_0x2472d5,_0x323d4d(0xe1));}}}__name(validateUnsupportedExpression,_0x58fbf7(0xb1));function checkJsonObjectString(_0x344c87,_0x209b4a){const _0x1382e3={_0x42d4df:0xe4,_0x57effa:0xb5,_0xe9460d:0x9c,_0x18e79d:0xab,_0x31d117:0xac,_0x39e36c:0x10d},_0x528bc2=_0x58fbf7;if(!(_0x209b4a instanceof ValueExpression&&_0x209b4a[_0x528bc2(_0x1382e3._0x42d4df)][_0x528bc2(_0x1382e3._0x57effa)]()===0x2))return{'message':_0x344c87+_0x528bc2(_0x1382e3._0xe9460d)};let _0xfd461b;try{_0xfd461b=JSON['parse'](_0x209b4a[_0x528bc2(0xe4)][_0x528bc2(_0x1382e3._0x18e79d)]());}catch{return{'message':_0x344c87+_0x528bc2(0xac)};}if(typeof _0xfd461b!==_0x528bc2(0x10b)||_0xfd461b===null||Array[_0x528bc2(0xeb)](_0xfd461b))return{'message':_0x344c87+_0x528bc2(_0x1382e3._0x31d117)};for(const _0x5c6922 of Object[_0x528bc2(_0x1382e3._0x39e36c)](_0xfd461b)){if(!_0x5c6922)return{'message':_0x344c87+'\x20keys\x20must\x20be\x20non-empty\x20strings'};}return null;}__name(checkJsonObjectString,_0x58fbf7(0x11b));function assertFunctionArity(_0x118b31,_0x385e66,_0x22d31b){const _0x55a94d={_0x1302ac:0x6b,_0xd0c39e:0xa6,_0x513165:0x81},_0x51479d=_0x58fbf7,_0xca70b1=_0x385e66[_0x51479d(_0x55a94d._0x1302ac)][_0x51479d(0xa6)],_0x4f8ba=_0x22d31b[_0x51479d(0x79)]['filter'](_0x58a20f=>_0x58a20f[_0x51479d(0x100)])[_0x51479d(0xa6)];if(_0xca70b1<_0x4f8ba)return{'message':_0x118b31+'():\x20requires\x20at\x20least\x20'+_0x4f8ba+'\x20argument(s),\x20got\x20'+_0xca70b1};if(!_0x22d31b[_0x51479d(0xe7)]&&_0xca70b1>_0x22d31b[_0x51479d(0x79)][_0x51479d(_0x55a94d._0xd0c39e)])return{'message':_0x118b31+'():\x20too\x20many\x20arguments\x20(max\x20'+_0x22d31b[_0x51479d(0x79)]['length']+_0x51479d(_0x55a94d._0x513165)+_0xca70b1+')'};return null;}__name(assertFunctionArity,'assertFunctionArity');function assertArgKind(_0xb349b2,_0x88932c,_0x3cdf85,_0x25c702,_0x22bce1,_0x44eabf,_0x1fc4fd){const _0x51f533={_0x840a70:0x76,_0x21f277:0x105,_0xa766eb:0xf6,_0x4fb252:0xe2,_0x5c43e8:0xc8,_0x5a1b12:0xb7,_0x14a5ac:0x6f,_0x428227:0xda,_0x5c1732:0x113,_0x289f34:0x10a,_0x338bc7:0xbd,_0x2cd4c6:0xb6,_0x582cfb:0xf8,_0x212b63:0x10b,_0x27f24c:0xad,_0x4c6014:0xe4,_0x2d3e9b:0xb5,_0x4a99c1:0x9c},_0x40cd52=_0x58fbf7,_0x3fb549=_0xb349b2+'():\x20argument\x20'+(_0x88932c+0x1)+'\x20('+_0x3cdf85+')';if(_0x25c702===_0x40cd52(_0x51f533._0x840a70))return null;if(_0x22bce1 instanceof FunctionalExpression){const _0xf7cba6=_0x1fc4fd[_0x40cd52(0x101)](_0x22bce1[_0x40cd52(0x11c)]);if(_0xf7cba6?.[_0x40cd52(0xff)])return null;}if(_0x25c702===_0x40cd52(_0x51f533._0x21f277)){if(!(_0x22bce1 instanceof ValueExpression&&_0x22bce1['token']['getType']()===0x2))return{'message':_0x3fb549+_0x40cd52(0x9c)};return null;}if(_0x25c702==='stringLike'){if(!isStringLike(_0x22bce1,_0x44eabf,_0x1fc4fd))return{'message':_0x3fb549+'\x20must\x20be\x20a\x20string\x20value'};return null;}if(_0x25c702===_0x40cd52(_0x51f533._0xa766eb)){if(!isStringOrNumberLike(_0x22bce1,_0x44eabf,_0x1fc4fd))return{'message':_0x3fb549+_0x40cd52(0x10f)};return null;}if(_0x25c702===_0x40cd52(_0x51f533._0x4fb252)){if(_0x22bce1 instanceof RegExpExpression)return null;if(!isStringLike(_0x22bce1,_0x44eabf,_0x1fc4fd))return{'message':_0x3fb549+_0x40cd52(0x70)};return null;}if(_0x25c702===_0x40cd52(0x75)){if(!isNumberLike(_0x22bce1,_0x44eabf,_0x1fc4fd))return{'message':_0x3fb549+_0x40cd52(_0x51f533._0x5c43e8)};return null;}if(_0x25c702===_0x40cd52(0xe8)){if(!isBoolLike(_0x22bce1,_0x44eabf))return{'message':_0x3fb549+_0x40cd52(0xd5)};return null;}if(_0x25c702===_0x40cd52(0x8f)){if(!isLocatorLike(_0x22bce1,_0x44eabf,_0x1fc4fd))return{'message':_0x3fb549+_0x40cd52(_0x51f533._0x5a1b12)};return null;}if(_0x25c702===_0x40cd52(_0x51f533._0x14a5ac)){if(!isStrictLocatorLike(_0x22bce1,_0x44eabf,_0x1fc4fd))return{'message':_0x3fb549+_0x40cd52(_0x51f533._0x428227)};return null;}if(_0x25c702===_0x40cd52(0xb3)){if(!(_0x22bce1 instanceof ArrayExpression))return{'message':_0x3fb549+_0x40cd52(_0x51f533._0x5c1732)+describeType(_0x22bce1)};return null;}if(_0x25c702===_0x40cd52(0xde)){if(!(_0x22bce1 instanceof ArrayExpression))return{'message':_0x3fb549+'\x20must\x20be\x20an\x20array\x20of\x20locators'};for(const _0x4f8940 of _0x22bce1[_0x40cd52(0xb6)]){if(!isLocatorLike(_0x4f8940,_0x44eabf,_0x1fc4fd))return{'message':_0x3fb549+_0x40cd52(0x85)};}return null;}if(_0x25c702===_0x40cd52(_0x51f533._0x289f34)){if(!(_0x22bce1 instanceof ArrayExpression))return{'message':_0x3fb549+_0x40cd52(_0x51f533._0x338bc7)};const _0x29b296=_0x22bce1[_0x40cd52(_0x51f533._0x2cd4c6)];if(_0x29b296[_0x40cd52(0xa6)]===0x1){if(!isStrictLocatorLike(_0x29b296[0x0],_0x44eabf,_0x1fc4fd))return{'message':_0x3fb549+'\x20must\x20be\x20an\x20array\x20of\x20chainable\x20locators;\x20only\x20the\x20last\x20element\x20may\x20be\x20first/last/nth;\x20raw\x20strings\x20are\x20not\x20accepted'};}else{for(let _0x4e6e99=0x0;_0x4e6e99<_0x29b296['length']-0x1;_0x4e6e99++){if(!isChainableLocatorLike(_0x29b296[_0x4e6e99],_0x44eabf,_0x1fc4fd))return{'message':_0x3fb549+_0x40cd52(0xbd)};}if(!isStrictLocatorLike(_0x29b296[_0x29b296[_0x40cd52(0xa6)]-0x1],_0x44eabf,_0x1fc4fd))return{'message':_0x3fb549+'\x20must\x20be\x20an\x20array\x20of\x20chainable\x20locators;\x20only\x20the\x20last\x20element\x20may\x20be\x20first/last/nth;\x20raw\x20strings\x20are\x20not\x20accepted'};}return null;}if(_0x25c702===_0x40cd52(0xc6)){if(!(_0x22bce1 instanceof ArrayExpression))return{'message':_0x3fb549+_0x40cd52(0xf8)};for(const _0x49a545 of _0x22bce1[_0x40cd52(0xb6)]){if(!isStringLike(_0x49a545,_0x44eabf,_0x1fc4fd))return{'message':_0x3fb549+_0x40cd52(_0x51f533._0x582cfb)};}return null;}if(_0x25c702===_0x40cd52(0x11e))return checkJsonObjectString(_0x3fb549,_0x22bce1);if(typeof _0x25c702===_0x40cd52(_0x51f533._0x212b63)&&_0x40cd52(_0x51f533._0x27f24c)in _0x25c702){if(!(_0x22bce1 instanceof ValueExpression&&_0x22bce1[_0x40cd52(_0x51f533._0x4c6014)][_0x40cd52(_0x51f533._0x2d3e9b)]()===0x2))return{'message':_0x3fb549+_0x40cd52(_0x51f533._0x4a99c1)};const _0x495b81=_0x22bce1[_0x40cd52(0xe4)][_0x40cd52(0xab)](),_0xfcefa9=_0x25c702[_0x40cd52(0xad)];if(!_0xfcefa9[_0x40cd52(0x114)](_0x495b81))return{'message':_0x3fb549+_0x40cd52(0xef)+_0xfcefa9[_0x40cd52(0xd8)](',\x20')};return null;}return null;}__name(assertArgKind,_0x58fbf7(0xf2));function validateFunctionCompatibility(_0x26835f,_0x3cf6f8,_0x11d17a,_0x14feff){const _0x3c9660={_0x5483c8:0xe4,_0xd5ddd1:0xdb,_0x493840:0x6b,_0x40a68f:0xa6,_0x340f46:0x8c,_0x55d59a:0x79,_0xb8c0a0:0xa6,_0x3b567e:0x73,_0x496313:0x11f,_0xb3cce8:0xf5},_0x89804e=_0x58fbf7,_0x390472=_0x26835f[_0x89804e(0x11c)],_0x52c75f=_0x26835f[_0x89804e(_0x3c9660._0x5483c8)]?.['getLine']()??null,_0x5c1fcb=_0x26835f['token']?.['getColumn']()??null,_0x286a42=_0x11d17a[_0x89804e(_0x3c9660._0xd5ddd1)](_0x390472);if(!_0x286a42){_0x14feff[_0x89804e(0xf5)](_0x52c75f,_0x5c1fcb,_0x89804e(0xcc)+_0x390472);return;}const _0x1d3748=_0x286a42[_0x89804e(0x7b)],_0x5b2ce6=_0x26835f[_0x89804e(_0x3c9660._0x493840)][_0x89804e(_0x3c9660._0x40a68f)],_0x2eb350=_0x1d3748[_0x89804e(0x79)][_0x89804e(0xf4)](_0x5c50e5=>_0x5c50e5[_0x89804e(0x100)])['length'],_0x46c0c2=assertFunctionArity(_0x390472,_0x26835f,_0x1d3748);if(_0x46c0c2){_0x14feff['error'](_0x52c75f,_0x5c1fcb,_0x46c0c2[_0x89804e(_0x3c9660._0x340f46)]);if(_0x5b2ce6<_0x2eb350)return;}_0x390472===_0x89804e(0x84)&&_0x5b2ce6>0x1&&_0x14feff[_0x89804e(0x104)](_0x52c75f,_0x5c1fcb,_0x89804e(0x7e));_0x390472==='listsGetRandomItem'&&_0x5b2ce6>0x1&&_0x14feff[_0x89804e(0x104)](_0x52c75f,_0x5c1fcb,_0x89804e(0x80));for(let _0x522999=0x0;_0x522999<_0x1d3748[_0x89804e(_0x3c9660._0x55d59a)][_0x89804e(_0x3c9660._0xb8c0a0)]&&_0x522999<_0x5b2ce6;_0x522999++){const _0x190eb2=_0x1d3748[_0x89804e(_0x3c9660._0x55d59a)][_0x522999],_0xcec4ed=assertArgKind(_0x390472,_0x522999,_0x190eb2[_0x89804e(_0x3c9660._0x3b567e)],_0x190eb2[_0x89804e(0x95)],_0x26835f['arguments'][_0x522999],_0x3cf6f8,_0x11d17a);_0xcec4ed&&_0x14feff[_0x89804e(0xf5)](_0x52c75f,_0x5c1fcb,_0xcec4ed[_0x89804e(0x8c)]);}if(_0x390472===_0x89804e(_0x3c9660._0x496313)&&_0x5b2ce6>=0x1){const _0x3d4a32=_0x26835f[_0x89804e(0x6b)][0x0];if(_0x3d4a32 instanceof ArrayExpression&&_0x3d4a32['elements'][_0x89804e(0xa6)]===0x0)_0x14feff[_0x89804e(_0x3c9660._0xb3cce8)](_0x52c75f,_0x5c1fcb,'listsGetRandomItem():\x20array\x20must\x20not\x20be\x20empty\x20(always\x20returns\x20undefined)');else!(_0x3d4a32 instanceof ArrayExpression)&&!(_0x3d4a32 instanceof VariableExpression)&&_0x14feff['error'](_0x52c75f,_0x5c1fcb,_0x89804e(0xbe));}}__name(validateFunctionCompatibility,_0x58fbf7(0xdf));function checkForStatementShape(_0x15d2ba){const _0x9a6ccc={_0x1be5a0:0xf9,_0x40313d:0x11c,_0x1127c6:0x8d,_0x38e0d6:0x11d,_0x5b044d:0x120,_0x3ae7df:0xd9,_0x2e40b:0x8a,_0x57332e:0xd9,_0x5e90e7:0x121,_0x93d9e2:0x7a,_0xddd06d:0xce,_0x4e8f84:0x8d,_0x242478:0xd9},_0x3dcd75=_0x58fbf7;if(!(_0x15d2ba[_0x3dcd75(_0x9a6ccc._0x1be5a0)]instanceof AssignmentStatement))return[{'message':_0x3dcd75(0xa5)}];const _0x407c92=_0x15d2ba[_0x3dcd75(0xf9)]['variable'];if(!(_0x15d2ba[_0x3dcd75(0x97)]instanceof ConditionalExpression))return[{'message':_0x3dcd75(0xcf)}];const _0x4b4b85=[];(!(_0x15d2ba['termination'][_0x3dcd75(0xee)]instanceof VariableExpression)||_0x15d2ba[_0x3dcd75(0x97)][_0x3dcd75(0xee)][_0x3dcd75(_0x9a6ccc._0x40313d)]!==_0x407c92)&&_0x4b4b85[_0x3dcd75(_0x9a6ccc._0x1127c6)]({'message':_0x3dcd75(0x109)+_0x407c92+'\x27'});const _0x46bdab=_0x15d2ba['termination'][_0x3dcd75(_0x9a6ccc._0x38e0d6)],_0x298962=_0x46bdab==='<'||_0x46bdab==='<=',_0x1924be=_0x46bdab==='>'||_0x46bdab==='>=';!_0x298962&&!_0x1924be&&_0x4b4b85['push']({'message':_0x3dcd75(0xf0)});if(!(_0x15d2ba[_0x3dcd75(0xd9)]instanceof AssignmentStatement))return[..._0x4b4b85,{'message':_0x3dcd75(0x99)+_0x407c92+_0x3dcd75(_0x9a6ccc._0x5b044d)+_0x407c92+_0x3dcd75(0x7a)}];_0x15d2ba[_0x3dcd75(_0x9a6ccc._0x3ae7df)][_0x3dcd75(_0x9a6ccc._0x2e40b)]!==_0x407c92&&_0x4b4b85[_0x3dcd75(0x8d)]({'message':_0x3dcd75(0xc0)+_0x407c92+'\x27'});if(!(_0x15d2ba[_0x3dcd75(_0x9a6ccc._0x57332e)][_0x3dcd75(0xce)]instanceof BinaryExpression))return[..._0x4b4b85,{'message':_0x3dcd75(_0x9a6ccc._0x5e90e7)+_0x407c92+'\x20=\x20'+_0x407c92+_0x3dcd75(_0x9a6ccc._0x93d9e2)}];const _0x52d7f0=_0x15d2ba[_0x3dcd75(_0x9a6ccc._0x57332e)][_0x3dcd75(_0x9a6ccc._0xddd06d)]['operation'];return _0x52d7f0!=='+'&&_0x52d7f0!=='-'&&_0x4b4b85[_0x3dcd75(_0x9a6ccc._0x1127c6)]({'message':'for()\x20increment\x20must\x20use\x20+\x20or\x20-\x20operator'}),_0x298962&&_0x52d7f0==='-'&&_0x4b4b85[_0x3dcd75(_0x9a6ccc._0x4e8f84)]({'message':_0x3dcd75(0x6c)}),_0x1924be&&_0x52d7f0==='+'&&_0x4b4b85[_0x3dcd75(0x8d)]({'message':_0x3dcd75(0x74)}),(!(_0x15d2ba[_0x3dcd75(_0x9a6ccc._0x242478)][_0x3dcd75(_0x9a6ccc._0xddd06d)][_0x3dcd75(0xee)]instanceof VariableExpression)||_0x15d2ba[_0x3dcd75(_0x9a6ccc._0x3ae7df)][_0x3dcd75(0xce)][_0x3dcd75(0xee)][_0x3dcd75(0x11c)]!==_0x407c92)&&_0x4b4b85[_0x3dcd75(0x8d)]({'message':_0x3dcd75(0x111)+_0x407c92+'\x27'}),_0x4b4b85;}__name(checkForStatementShape,_0x58fbf7(0x108));function checkFunctionDefineStatementShape(_0x4dddb3,_0x3ff044,_0x53ba76,_0x4714d6){const _0x42d06e=_0x58fbf7;if(!_0x3ff044)return[{'message':_0x42d06e(0xd6)}];return[];}__name(checkFunctionDefineStatementShape,_0x58fbf7(0xc1));function checkIfConditionShape(_0x22dd09,_0x4ffad6){const _0x386f22=_0x58fbf7;if(!isBoolLike(_0x22dd09,_0x4ffad6))return[{'message':_0x386f22(0xd2)}];return[];}__name(checkIfConditionShape,_0x58fbf7(0xe0));function checkMetaBlockStatementShape(_0x293b32){const _0x45f371={_0x150781:0x11c,_0x290fb1:0xd3,_0x5124f4:0x110,_0x295cbc:0xa6,_0x2c3fc2:0xc9,_0x4d415a:0x88,_0x26bb96:0xa6,_0x541ab9:0x8d,_0x5533f5:0xdc},_0x53c0ae=_0x58fbf7;if(_0x293b32[_0x53c0ae(_0x45f371._0x150781)]==='test')return[{'message':'//@test\x20is\x20removed.\x20Use\x20function\x20test_*()\x20with\x203\x20comment\x20lines'}];if(_0x293b32[_0x53c0ae(0x11c)]!=='comment'&&_0x293b32[_0x53c0ae(0x11c)]!==_0x53c0ae(0x88))return[{'message':_0x53c0ae(_0x45f371._0x290fb1)+_0x293b32[_0x53c0ae(_0x45f371._0x150781)]+'.\x20Supported:\x20//@comment,\x20//@collapse'}];const _0x445a23=[];return _0x293b32[_0x53c0ae(0x11c)]===_0x53c0ae(0x98)&&_0x293b32[_0x53c0ae(_0x45f371._0x5124f4)][_0x53c0ae(_0x45f371._0x295cbc)]<0x1&&_0x445a23['push']({'message':_0x53c0ae(_0x45f371._0x2c3fc2)}),_0x293b32[_0x53c0ae(_0x45f371._0x150781)]===_0x53c0ae(_0x45f371._0x4d415a)&&_0x293b32[_0x53c0ae(0x110)][_0x53c0ae(_0x45f371._0x26bb96)]<0x1&&_0x445a23[_0x53c0ae(_0x45f371._0x541ab9)]({'message':_0x53c0ae(_0x45f371._0x5533f5)}),_0x445a23;}__name(checkMetaBlockStatementShape,'checkMetaBlockStatementShape');function isScenarioEntry(_0x1a91cb){const _0x48809e={_0x29f280:0xb9},_0x2cad37=_0x58fbf7;return _0x1a91cb['startsWith'](_0x2cad37(_0x48809e._0x29f280));}__name(isScenarioEntry,'isScenarioEntry');function checkTestCollapseCoverage(_0x1f97f6){const _0x5d94de={_0x3281c9:0x11c,_0x396a00:0x11c,_0x508931:0x88,_0x462ca6:0x8d,_0x2d8d27:0xd4,_0x1e67a6:0xe4,_0x30f671:0xfb},_0xd69ded=_0x58fbf7;if(!isScenarioEntry(_0x1f97f6[_0xd69ded(_0x5d94de._0x3281c9)]))return[];if(!(_0x1f97f6[_0xd69ded(0x94)]instanceof BlockStatement))return[];const _0x3ab3bd=[];for(const _0x53e3d4 of _0x1f97f6[_0xd69ded(0x94)]['statements']){const _0x553fac=_0x53e3d4 instanceof MetaBlockStatement&&_0x53e3d4[_0xd69ded(_0x5d94de._0x396a00)]===_0xd69ded(_0x5d94de._0x508931);!_0x553fac&&_0x3ab3bd[_0xd69ded(_0x5d94de._0x462ca6)]({'message':_0xd69ded(_0x5d94de._0x2d8d27),'line':_0x53e3d4['token']?.[_0xd69ded(0xa3)]()??null,'column':_0x53e3d4[_0xd69ded(_0x5d94de._0x1e67a6)]?.[_0xd69ded(_0x5d94de._0x30f671)]()??null});}return _0x3ab3bd;}__name(checkTestCollapseCoverage,_0x58fbf7(0x86));function checkVarStatementShape(_0x4983be,_0x538de6,_0x38abc8){const _0x4f8714={_0x3fb39c:0x11c},_0x2ffacf=_0x58fbf7;for(const _0x488113 of _0x4983be[_0x2ffacf(0xc3)]){if(_0x38abc8&&_0x538de6&&_0x488113[_0x2ffacf(_0x4f8714._0x3fb39c)]===_0x2ffacf(0x9d))continue;return[{'message':_0x2ffacf(0x77)}];}return[];}__name(checkVarStatementShape,_0x58fbf7(0x103));function validateForStatement(_0x4212d5,_0x6db297){const _0x8045ba={_0x10b457:0xa3,_0x42805f:0xe4,_0xb84e4c:0x8c},_0x3a3400=_0x58fbf7,_0x4b40f5=_0x4212d5['token']?.[_0x3a3400(_0x8045ba._0x10b457)]()??null,_0x27b5bf=_0x4212d5[_0x3a3400(_0x8045ba._0x42805f)]?.[_0x3a3400(0xfb)]()??null;for(const _0x29186d of checkForStatementShape(_0x4212d5)){_0x6db297['error'](_0x4b40f5,_0x27b5bf,_0x29186d[_0x3a3400(_0x8045ba._0xb84e4c)]);}}__name(validateForStatement,_0x58fbf7(0xb0));function validateMetaBlock(_0x197c3d,_0x3cc93f){const _0x7f479a={_0x28071a:0xe4,_0x10f9c3:0xfb,_0x3c157c:0x8c},_0x34ada6=_0x58fbf7,_0x329ab3=_0x197c3d[_0x34ada6(0xe4)]?.[_0x34ada6(0xa3)]()??null,_0xf03b43=_0x197c3d[_0x34ada6(_0x7f479a._0x28071a)]?.[_0x34ada6(_0x7f479a._0x10f9c3)]()??null;for(const _0x56e704 of checkMetaBlockStatementShape(_0x197c3d)){_0x3cc93f[_0x34ada6(0xf5)](_0x329ab3,_0xf03b43,_0x56e704[_0x34ada6(_0x7f479a._0x3c157c)]);}}__name(validateMetaBlock,_0x58fbf7(0xa2));function validateFunctionDefine(_0x45d529,_0x4d2d94,_0x3ec383,_0x145113){const _0x4b6241={_0x29be29:0xa3,_0x72cd5a:0xa7,_0x25480a:0x8c,_0x182459:0x78,_0x5ddf90:0x6d},_0x3833ea=_0x58fbf7,_0x22b783=_0x45d529['token']?.[_0x3833ea(_0x4b6241._0x29be29)]()??null,_0x113fa9=_0x45d529[_0x3833ea(0xe4)]?.[_0x3833ea(0xfb)]()??null;for(const _0x1313b9 of checkFunctionDefineStatementShape(_0x45d529,_0x4d2d94,_0x3ec383[_0x3833ea(0x11a)](),_0x3ec383[_0x3833ea(_0x4b6241._0x72cd5a)])){_0x145113['error'](_0x22b783,_0x113fa9,_0x1313b9[_0x3833ea(_0x4b6241._0x25480a)]);}for(const _0x2e40ae of checkTestCollapseCoverage(_0x45d529)){_0x145113[_0x3833ea(0xf5)](_0x2e40ae[_0x3833ea(_0x4b6241._0x182459)],_0x2e40ae[_0x3833ea(_0x4b6241._0x5ddf90)],_0x2e40ae[_0x3833ea(0x8c)]);}}__name(validateFunctionDefine,'validateFunctionDefine');function validateVarStatement(_0x2bb08d,_0x41b34b,_0x3c6759,_0x39cbab){const _0x5374c7={_0x5080ec:0xa3,_0x10bed5:0xe4},_0x545964=_0x58fbf7,_0x549c05=_0x2bb08d[_0x545964(0xe4)]?.[_0x545964(_0x5374c7._0x5080ec)]()??null,_0x303229=_0x2bb08d[_0x545964(_0x5374c7._0x10bed5)]?.[_0x545964(0xfb)]()??null;for(const _0x4b558b of checkVarStatementShape(_0x2bb08d,_0x41b34b,_0x3c6759[_0x545964(0x11a)]())){_0x39cbab['error'](_0x549c05,_0x303229,_0x4b558b[_0x545964(0x8c)]);}}__name(validateVarStatement,_0x58fbf7(0x91));function validateIfCondition(_0x237eab,_0x469a82,_0x6e65ab){const _0x2a5191={_0xc05980:0xe4},_0x12ebf7=_0x58fbf7,_0x591a61=_0x237eab['token']?.[_0x12ebf7(0xa3)]()??null,_0x50c41f=_0x237eab[_0x12ebf7(_0x2a5191._0xc05980)]?.[_0x12ebf7(0xfb)]()??null;for(const _0x34c4fe of checkIfConditionShape(_0x237eab,_0x469a82)){_0x6e65ab[_0x12ebf7(0xf5)](_0x591a61,_0x50c41f,_0x34c4fe[_0x12ebf7(0x8c)]);}}__name(validateIfCondition,_0x58fbf7(0x9e));function validateUnsupportedStatement(_0x57390f,_0x339889){const _0x58002d={_0x2ac50a:0xe4,_0x14ebe7:0x6a,_0x155a52:0xbc,_0x587045:0xbb,_0x276c4b:0xf5,_0xd6dd4:0xf5,_0x43b4df:0x116},_0x416cb9=_0x58fbf7,_0x1e1a9e=_0x57390f[_0x416cb9(0xe4)]?.['getLine']()??null,_0x390ce5=_0x57390f[_0x416cb9(_0x58002d._0x2ac50a)]?.[_0x416cb9(0xfb)]()??null;if(_0x57390f instanceof ArrayAssignmentStatement)_0x339889[_0x416cb9(0xf5)](_0x1e1a9e,_0x390ce5,_0x416cb9(0xb4));else{if(_0x57390f instanceof WhileStatement)_0x339889[_0x416cb9(0xf5)](_0x1e1a9e,_0x390ce5,'`while`\x20loops\x20are\x20not\x20supported.\x20Use\x20`for\x20(i\x20=\x200;\x20i\x20<\x20N;\x20i\x20=\x20i\x20+\x201)\x20{\x20}`\x20instead.');else{if(_0x57390f instanceof DoWhileStatement)_0x339889[_0x416cb9(0xf5)](_0x1e1a9e,_0x390ce5,_0x416cb9(_0x58002d._0x14ebe7));else{if(_0x57390f instanceof ReturnStatement)_0x339889['error'](_0x1e1a9e,_0x390ce5,_0x416cb9(_0x58002d._0x155a52));else{if(_0x57390f instanceof PrintStatement)_0x339889['error'](_0x1e1a9e,_0x390ce5,_0x416cb9(_0x58002d._0x587045));else{if(_0x57390f instanceof BreakStatement)_0x339889[_0x416cb9(_0x58002d._0x276c4b)](_0x1e1a9e,_0x390ce5,_0x416cb9(0x112));else{if(_0x57390f instanceof ContinueStatement)_0x339889[_0x416cb9(0xf5)](_0x1e1a9e,_0x390ce5,'`continue`\x20is\x20not\x20supported\x20in\x20UnoTest\x20DSL\x20loops.');else _0x57390f instanceof IncrementStatement?_0x339889['error'](_0x1e1a9e,_0x390ce5,_0x416cb9(0x8b)):_0x339889[_0x416cb9(_0x58002d._0xd6dd4)](_0x1e1a9e,_0x390ce5,_0x416cb9(_0x58002d._0x43b4df));}}}}}}}__name(validateUnsupportedStatement,_0x58fbf7(0xa4));var CompatibilityWalker=class{static{__name(this,_0x58fbf7(0xd1));}[_0x58fbf7(0xc7)]=[];[_0x58fbf7(0xbf)];['registry'];constructor(_0x1d4f40,_0x3238d9,_0x707cb){const _0x4ba698=_0x58fbf7;this[_0x4ba698(0xbf)]=new ValidationSession(_0x1d4f40,_0x3238d9),this[_0x4ba698(0x7f)]=_0x707cb;}[_0x58fbf7(0xf5)](_0x24b4b5,_0x5604a0,_0x2e780f){const _0x6deac8={_0x390d41:0xc7,_0x49aba4:0xf5},_0x266976=_0x58fbf7;this[_0x266976(_0x6deac8._0x390d41)][_0x266976(0x8d)]({'severity':_0x266976(_0x6deac8._0x49aba4),'line':_0x24b4b5,'column':_0x5604a0,'message':_0x2e780f});}[_0x58fbf7(0x104)](_0x205ad5,_0x499be0,_0x381b21){const _0x53a86c={_0xf4a95d:0x104},_0xaa6609=_0x58fbf7;this[_0xaa6609(0xc7)][_0xaa6609(0x8d)]({'severity':_0xaa6609(_0x53a86c._0xf4a95d),'line':_0x205ad5,'column':_0x499be0,'message':_0x381b21});}[_0x58fbf7(0x93)](_0x31aadb,_0x144aaa){const _0x3f492c={_0x4de77b:0x93,_0x2cc3ab:0x117,_0x4c25b5:0xbf,_0x16c1c0:0xce,_0x525698:0x7f,_0x28f7f8:0xc5,_0x42b926:0x8e,_0x4ba601:0x94,_0x2f553a:0x93,_0x30e5a9:0x93,_0xc450a3:0xf9,_0x3f8ae1:0x97,_0x806b42:0xd9,_0x561587:0x93},_0x4534c1=_0x58fbf7;if(_0x31aadb instanceof BlockStatement){for(const _0x27555b of _0x31aadb['statements']){this[_0x4534c1(_0x3f492c._0x4de77b)](_0x27555b,_0x144aaa);}return;}if(_0x31aadb instanceof AssignmentStatement){this[_0x4534c1(_0x3f492c._0x2cc3ab)](_0x31aadb[_0x4534c1(0xce)]),this[_0x4534c1(_0x3f492c._0x4c25b5)]['setVarKind'](_0x31aadb[_0x4534c1(0x8a)],inferKind(_0x31aadb[_0x4534c1(_0x3f492c._0x16c1c0)],this['session'],this[_0x4534c1(_0x3f492c._0x525698)]));return;}if(_0x31aadb instanceof FunctionStatement){const _0x49daeb=_0x31aadb[_0x4534c1(_0x3f492c._0x28f7f8)];_0x49daeb instanceof FunctionalExpression?this[_0x4534c1(0x92)](_0x49daeb):this[_0x4534c1(_0x3f492c._0x42b926)](_0x49daeb);return;}if(_0x31aadb instanceof MetaBlockStatement){validateMetaBlock(_0x31aadb,this),this[_0x4534c1(_0x3f492c._0x4de77b)](_0x31aadb[_0x4534c1(_0x3f492c._0x4ba601)],![]);return;}if(_0x31aadb instanceof IfStatement){validateIfCondition(_0x31aadb['expression'],this[_0x4534c1(_0x3f492c._0x4c25b5)],this),this[_0x4534c1(0x117)](_0x31aadb[_0x4534c1(0xce)]),this[_0x4534c1(_0x3f492c._0x2f553a)](_0x31aadb['ifStatement'],![]);if(_0x31aadb[_0x4534c1(0xc2)])this[_0x4534c1(_0x3f492c._0x30e5a9)](_0x31aadb[_0x4534c1(0xc2)],![]);return;}if(_0x31aadb instanceof ForStatement){validateForStatement(_0x31aadb,this);_0x31aadb[_0x4534c1(_0x3f492c._0xc450a3)]instanceof AssignmentStatement&&this[_0x4534c1(_0x3f492c._0x2cc3ab)](_0x31aadb[_0x4534c1(0xf9)][_0x4534c1(0xce)]);_0x31aadb['termination']instanceof ConditionalExpression&&this['visitExpression'](_0x31aadb[_0x4534c1(_0x3f492c._0x3f8ae1)][_0x4534c1(0xfa)]);_0x31aadb[_0x4534c1(_0x3f492c._0x806b42)]instanceof AssignmentStatement&&_0x31aadb['increment']['expression']instanceof BinaryExpression&&this['visitExpression'](_0x31aadb[_0x4534c1(_0x3f492c._0x806b42)][_0x4534c1(_0x3f492c._0x16c1c0)]);this[_0x4534c1(0x93)](_0x31aadb[_0x4534c1(0x106)],![]);return;}if(_0x31aadb instanceof FunctionDefineStatement){validateFunctionDefine(_0x31aadb,_0x144aaa,this[_0x4534c1(0xbf)],this),this[_0x4534c1(_0x3f492c._0x561587)](_0x31aadb[_0x4534c1(0x94)],![]);return;}if(_0x31aadb instanceof VarStatement){validateVarStatement(_0x31aadb,_0x144aaa,this[_0x4534c1(0xbf)],this);return;}validateUnsupportedStatement(_0x31aadb,this);}['visitExpression'](_0x16ed49){const _0x40576e={_0xd84bd0:0x117,_0x14edff:0xfa,_0x1c54d2:0xee,_0x2424c5:0xfa},_0x22763a=_0x58fbf7;if(_0x16ed49 instanceof FunctionalExpression){this[_0x22763a(0x92)](_0x16ed49);return;}if(_0x16ed49 instanceof BinaryExpression){validateBinaryExpression(_0x16ed49,this['session'],this['registry'],this),this['visitExpression'](_0x16ed49[_0x22763a(0xee)]),this[_0x22763a(_0x40576e._0xd84bd0)](_0x16ed49[_0x22763a(_0x40576e._0x14edff)]);return;}if(_0x16ed49 instanceof ConditionalExpression){this[_0x22763a(0x117)](_0x16ed49[_0x22763a(_0x40576e._0x1c54d2)]),this['visitExpression'](_0x16ed49[_0x22763a(_0x40576e._0x2424c5)]);return;}if(_0x16ed49 instanceof ArrayExpression){for(const _0x3b3587 of _0x16ed49[_0x22763a(0xb6)])this[_0x22763a(0x117)](_0x3b3587);return;}if(_0x16ed49 instanceof ValueExpression||_0x16ed49 instanceof VariableExpression)return;if(_0x16ed49 instanceof MemberCallExpression){this['visitMemberCallExpression'](_0x16ed49);return;}if(_0x16ed49 instanceof PropertyAccessExpression){this[_0x22763a(0x117)](_0x16ed49[_0x22763a(0xd7)]);return;}validateUnsupportedExpression(_0x16ed49,this);}[_0x58fbf7(0x92)](_0x6df9a4){const _0x5401e8={_0x205c77:0x7f,_0x2ed80b:0x11c,_0x1a63e2:0xbf},_0x2d1244=_0x58fbf7,_0xc7d13d=this[_0x2d1244(_0x5401e8._0x205c77)][_0x2d1244(0xdb)](_0x6df9a4[_0x2d1244(_0x5401e8._0x2ed80b)]);for(let _0x52fc88=0x0;_0x52fc88<_0x6df9a4['arguments'][_0x2d1244(0xa6)];_0x52fc88++){if(_0xc7d13d?.[_0x2d1244(0x7b)]['args'][_0x52fc88]?.[_0x2d1244(0x95)]===_0x2d1244(0x76))continue;this[_0x2d1244(0x117)](_0x6df9a4[_0x2d1244(0x6b)][_0x52fc88]);}validateFunctionCompatibility(_0x6df9a4,this[_0x2d1244(_0x5401e8._0x1a63e2)],this[_0x2d1244(0x7f)],this);}[_0x58fbf7(0x8e)](_0x38ff7c){const _0x47ebdc=_0x58fbf7;this[_0x47ebdc(0x117)](_0x38ff7c[_0x47ebdc(0xd7)]);for(const _0x3120b5 of _0x38ff7c['arguments'])this[_0x47ebdc(0x117)](_0x3120b5);}['runWrappedFormatCheck'](_0x5d7e9d){const _0x3d54f8={_0x1c99ac:0xbf,_0x1a940b:0xb9,_0x57b3ff:0xfe,_0x28d05e:0xe4,_0x511cef:0xa3},_0x5c6960=_0x58fbf7;if(!this[_0x5c6960(_0x3d54f8._0x1c99ac)]['isWrappedFormat']())return;if(!(_0x5d7e9d instanceof BlockStatement))return;let _0x3ba946=![];for(const _0x5ee3ca of _0x5d7e9d['statements']){if(_0x5ee3ca instanceof VarStatement&&_0x5ee3ca[_0x5c6960(0xc3)][_0x5c6960(0xa6)]===0x1&&_0x5ee3ca['declarators'][0x0][_0x5c6960(0x11c)]===_0x5c6960(0x9d))continue;if(_0x5ee3ca instanceof FunctionDefineStatement&&(_0x5ee3ca[_0x5c6960(0x11c)][_0x5c6960(0xa1)](_0x5c6960(_0x3d54f8._0x1a940b))||_0x5ee3ca['name'][_0x5c6960(0xa1)](_0x5c6960(_0x3d54f8._0x57b3ff)))){_0x3ba946=!![];continue;}const _0x3bd83e=_0x5ee3ca[_0x5c6960(_0x3d54f8._0x28d05e)]?.[_0x5c6960(_0x3d54f8._0x511cef)]()??null,_0x5a774b=_0x5ee3ca[_0x5c6960(0xe4)]?.[_0x5c6960(0xfb)]()??null;this[_0x5c6960(0xf5)](_0x3bd83e,_0x5a774b,_0x5c6960(0x9a));}!_0x3ba946&&this[_0x5c6960(0xf5)](null,null,'Wrapped\x20code\x20must\x20contain\x20a\x20test_*\x20or\x20flow_*\x20function\x20definition');}};function validateDsl(_0xbea477,_0x1212e7,_0x4ac6ae,_0x563b00){const _0x294beb={_0x5b9edb:0x93},_0x1a577e=_0x58fbf7,_0x1455eb=new CompatibilityWalker(_0x1212e7,_0x4ac6ae,_0x563b00);return _0x1455eb[_0x1a577e(_0x294beb._0x5b9edb)](_0xbea477,!![]),_0x1455eb[_0x1a577e(0xa9)](_0xbea477),_0x1455eb['diagnostics'];}__name(validateDsl,_0x58fbf7(0x102));export{ConverterValidationError,ValidationSession,assertArgKind,assertFunctionArity,inferKind,isBoolLike,isChainableLocatorLike,isExplicitlyStringLike,isLocatorLike,isNumberLike,isStrictLocatorLike,isStringLike,isStringOrNumberLike,isStringProducing,validateDsl};
package/package.json ADDED
@@ -0,0 +1,59 @@
1
+ {
2
+ "name": "@unotest/dsl",
3
+ "version": "0.5.0",
4
+ "description": "JavaScript DSL parser + AST types for @unotest scenarios, plus a vocab-agnostic validator engine (subpath @unotest/dsl/validator). Extensions: MemberCallExpression (method chains), PropertyAccessExpression, raw backtick strings, MetaBlockStatement. See EXTENSIONS.md.",
5
+ "license": "MIT",
6
+ "publishConfig": {
7
+ "access": "public"
8
+ },
9
+ "author": "Ivan Volkov <ivan@volkov.io>",
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "git+https://github.com/unotest/dsl.git"
13
+ },
14
+ "type": "module",
15
+ "packageManager": "pnpm@10.12.4",
16
+ "engines": {
17
+ "node": ">=20"
18
+ },
19
+ "main": "./dist/index.js",
20
+ "types": "./dist/index.d.ts",
21
+ "exports": {
22
+ ".": {
23
+ "types": "./dist/index.d.ts",
24
+ "import": "./dist/index.js"
25
+ },
26
+ "./validator": {
27
+ "types": "./dist/validator/index.d.ts",
28
+ "import": "./dist/validator/index.js"
29
+ }
30
+ },
31
+ "files": [
32
+ "dist",
33
+ "EXTENSIONS.md",
34
+ "CHANGELOG.md",
35
+ "LICENSE",
36
+ "README.md"
37
+ ],
38
+ "scripts": {
39
+ "typecheck": "tsc --noEmit",
40
+ "test": "node --import tsx --test --test-reporter=spec 'src/**/*.test.ts'",
41
+ "compile": "tsup",
42
+ "verify": "pnpm typecheck && pnpm test",
43
+ "obfuscate": "node scripts/obfuscate.mjs",
44
+ "build": "pnpm verify && pnpm compile && pnpm obfuscate && pnpm check:tarball",
45
+ "prepublishOnly": "pnpm build",
46
+ "check:no-cyrillic": "node scripts/check-no-cyrillic.mjs",
47
+ "check:no-internal-refs": "node scripts/check-no-internal-refs.mjs",
48
+ "check:surface": "pnpm check:no-cyrillic && pnpm check:no-internal-refs",
49
+ "check:tarball": "node scripts/check-tarball.mjs",
50
+ "prepublish:check": "node scripts/prepublish-check.mjs"
51
+ },
52
+ "devDependencies": {
53
+ "@types/node": "^22.10.0",
54
+ "javascript-obfuscator": "^4.1.1",
55
+ "tsup": "^8.5.1",
56
+ "tsx": "^4.19.2",
57
+ "typescript": "^5.7.2"
58
+ }
59
+ }