@fincity/kirun-js 3.7.0 → 3.8.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/__tests__/engine/util/LinkedListTest.ts +15 -0
- package/__tests__/engine/util/deepEqualTest.ts +62 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/module.js +1 -1
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +16 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/engine/util/LinkedList.ts +1 -1
- package/src/engine/util/deepEqual.ts +29 -7
package/dist/module.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import{DateTime as e}from"luxon";function t(e,t,r,s){Object.defineProperty(e,t,{get:r,set:s,enumerable:!0,configurable:!0})}function r(e,t){return Object.keys(t).forEach(function(r){"default"===r||"__esModule"===r||Object.prototype.hasOwnProperty.call(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[r]}})}),e}var s,n,a,i,o,E,u=globalThis,l={},p={},h=u.parcelRequiref35d;null==h&&((h=function(e){if(e in l)return l[e].exports;if(e in p){var t=p[e];delete p[e];var r={id:e,exports:{}};return l[e]=r,t.call(r.exports,r,r.exports),r.exports}var s=Error("Cannot find module '"+e+"'");throw s.code="MODULE_NOT_FOUND",s}).register=function(e,t){p[e]=t},u.parcelRequiref35d=h);var c=h.register;c("91Qf5",function(e,r){t(e.exports,"DSLCompiler",()=>o);var s=h("6qd60"),n=h("g9JX4"),a=h("dteKq"),i=h("lQfvu");class o{static compile(e){let t=new(0,s.DSLLexer)(e).tokenize(),r=new(0,n.DSLParser)(t,e).parse(),i=new(0,a.ASTToJSONTransformer);return i.flattenNestedBlocks(r),i.transform(r)}static async decompile(e){let t=new(0,i.JSONToTextTransformer);return await t.transform(e)}static validate(e){try{return this.compile(e),{valid:!0,errors:[]}}catch(e){return{valid:!1,errors:[this.formatError(e)]}}}static async format(e){let t=this.compile(e);return await this.decompile(t)}static formatError(e){let t={message:e.message||"Unknown error"};return e.location&&(t.line=e.location.line,t.column=e.location.column),t}}}),c("6qd60",function(e,r){t(e.exports,"DSLLexer",()=>i);var s=h("kF8Gn"),n=h("f0w39"),a=h("iEjVE");class i{constructor(e){this.pos=0,this.line=1,this.column=1,this.tokens=[],this.input=e}tokenize(){for(;this.pos<this.input.length&&(this.skipWhitespace(),!(this.pos>=this.input.length));){let e=this.readToken();e&&e.type!==s.DSLTokenType.WHITESPACE&&this.tokens.push(e)}return this.tokens.push(new(0,s.DSLToken)(s.DSLTokenType.EOF,"",new(0,s.SourceLocation)(this.line,this.column,this.pos,this.pos))),this.tokens}skipWhitespace(){for(;this.pos<this.input.length;){let e=this.input[this.pos];if(" "===e||" "===e||"\r"===e)this.advance();else if("\n"===e)this.advance(),this.line++,this.column=1;else break}}readToken(){let e=this.pos,t=this.line,r=this.column,n=this.peek();if("/"===n&&"*"===this.peekAhead(1))return this.readBlockComment();if('"'===n||"'"===n)return this.readStringLiteral(n);if("`"===n)return this.readBacktickString();if(this.isDigit(n)||"-"===n&&this.isDigit(this.peekAhead(1)))return this.readNumber();if(this.isIdentifierStart(n))return this.readIdentifier();let i=this.readSingleCharToken();if(i)return i;throw new(0,a.LexerError)(`Unexpected character '${n}'`,new(0,s.SourceLocation)(t,r,e,this.pos),this.input)}readSingleCharToken(){let e=this.pos,t=this.line,r=this.column,n=this.peek(),a=this.tryReadMultiCharOperator();if(a)return new(0,s.DSLToken)(s.DSLTokenType.OPERATOR,a,new(0,s.SourceLocation)(t,r,e,this.pos));this.advance();let i=null;switch(n){case":":i=s.DSLTokenType.COLON;break;case",":i=s.DSLTokenType.COMMA;break;case".":i=s.DSLTokenType.DOT;break;case"=":i=s.DSLTokenType.EQUALS;break;case"(":i=s.DSLTokenType.LEFT_PAREN;break;case")":i=s.DSLTokenType.RIGHT_PAREN;break;case"{":i=s.DSLTokenType.LEFT_BRACE;break;case"}":i=s.DSLTokenType.RIGHT_BRACE;break;case"[":i=s.DSLTokenType.LEFT_BRACKET;break;case"]":i=s.DSLTokenType.RIGHT_BRACKET;break;case"+":case"-":case"*":case"/":case"%":case"<":case">":case"!":case"?":case"&":case"|":case"@":case"^":case"~":case"#":case"\\":i=s.DSLTokenType.OPERATOR;break;default:return null}return new(0,s.DSLToken)(i,n,new(0,s.SourceLocation)(t,r,e,this.pos))}tryReadMultiCharOperator(){let e=this.peek()+this.peekAhead(1);return["!=","==","<=",">=","&&","||","??","?.","++","--","+=","-=","*=","/="].includes(e)?(this.advance(),this.advance(),e):null}readIdentifier(){let e=this.pos,t=this.line,r=this.column,a="";for(;this.pos<this.input.length;){let e=this.peek();if(this.isIdentifierPart(e))a+=this.advance();else break}let i=new(0,s.SourceLocation)(t,r,e,this.pos);return(0,n.isKeyword)(a)?new(0,s.DSLToken)(s.DSLTokenType.KEYWORD,a,i):"true"===a||"false"===a?new(0,s.DSLToken)(s.DSLTokenType.BOOLEAN,a,i):"null"===a?new(0,s.DSLToken)(s.DSLTokenType.NULL,a,i):new(0,s.DSLToken)(s.DSLTokenType.IDENTIFIER,a,i)}readNumber(){let e=this.pos,t=this.line,r=this.column,n="";for("-"===this.peek()&&(n+=this.advance());this.pos<this.input.length&&this.isDigit(this.peek());)n+=this.advance();if("."===this.peek()&&this.isDigit(this.peekAhead(1)))for(n+=this.advance();this.pos<this.input.length&&this.isDigit(this.peek());)n+=this.advance();return new(0,s.DSLToken)(s.DSLTokenType.NUMBER,n,new(0,s.SourceLocation)(t,r,e,this.pos))}readStringLiteral(e){let t=this.pos,r=this.line,n=this.column,i="";for(this.advance(),i+=e;this.pos<this.input.length;){let t=this.peek();if(t===e){i+=this.advance();break}if("\\"===t){i+=this.advance(),this.pos<this.input.length&&(i+=this.advance());continue}i+=this.advance()}if(!i.endsWith(e))throw new(0,a.LexerError)("Unterminated string literal",new(0,s.SourceLocation)(r,n,t,this.pos),this.input);return new(0,s.DSLToken)(s.DSLTokenType.STRING,i,new(0,s.SourceLocation)(r,n,t,this.pos))}readBacktickString(){let e=this.pos,t=this.line,r=this.column,n="";for(this.advance();this.pos<this.input.length;){let e=this.peek();if("`"===e){this.advance();break}if("\\"===e){let e=this.peekAhead(1);if("`"===e||"\\"===e){this.advance(),n+=this.advance();continue}n+=this.advance();continue}n+=this.advance()}return new(0,s.DSLToken)(s.DSLTokenType.BACKTICK_STRING,n,new(0,s.SourceLocation)(t,r,e,this.pos))}readLineComment(){let e=this.pos,t=this.line,r=this.column,n="";for(n+=this.advance(),n+=this.advance();this.pos<this.input.length&&"\n"!==this.peek();)n+=this.advance();return new(0,s.DSLToken)(s.DSLTokenType.COMMENT,n,new(0,s.SourceLocation)(t,r,e,this.pos))}readBlockComment(){let e=this.pos,t=this.line,r=this.column,n="";for(n+=this.advance(),n+=this.advance();this.pos<this.input.length;){if("*"===this.peek()&&"/"===this.peekAhead(1)){n+=this.advance(),n+=this.advance();break}let e=this.advance();n+=e,"\n"===e&&(this.line++,this.column=1)}if(!n.endsWith("*/"))throw new(0,a.LexerError)("Unterminated block comment",new(0,s.SourceLocation)(t,r,e,this.pos),this.input);return new(0,s.DSLToken)(s.DSLTokenType.COMMENT,n,new(0,s.SourceLocation)(t,r,e,this.pos))}peek(){return this.input[this.pos]||""}peekAhead(e){return this.input[this.pos+e]||""}advance(){let e=this.input[this.pos];return this.pos++,this.column++,e}isDigit(e){return e>="0"&&e<="9"}isIdentifierStart(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||"_"===e}isIdentifierPart(e){return this.isIdentifierStart(e)||this.isDigit(e)}}}),c("kF8Gn",function(e,r){t(e.exports,"DSLTokenType",()=>n),t(e.exports,"SourceLocation",()=>a),t(e.exports,"DSLToken",()=>i);var s,n=((s={}).KEYWORD="KEYWORD",s.IDENTIFIER="IDENTIFIER",s.NUMBER="NUMBER",s.STRING="STRING",s.BACKTICK_STRING="BACKTICK_STRING",s.BOOLEAN="BOOLEAN",s.NULL="NULL",s.COLON="COLON",s.COMMA="COMMA",s.DOT="DOT",s.EQUALS="EQUALS",s.OPERATOR="OPERATOR",s.LEFT_PAREN="LEFT_PAREN",s.RIGHT_PAREN="RIGHT_PAREN",s.LEFT_BRACE="LEFT_BRACE",s.RIGHT_BRACE="RIGHT_BRACE",s.LEFT_BRACKET="LEFT_BRACKET",s.RIGHT_BRACKET="RIGHT_BRACKET",s.NEWLINE="NEWLINE",s.COMMENT="COMMENT",s.WHITESPACE="WHITESPACE",s.EOF="EOF",s);class a{constructor(e,t,r,s){this.line=e,this.column=t,this.startPos=r,this.endPos=s}toString(){return`Line ${this.line}, Column ${this.column} (pos ${this.startPos}-${this.endPos})`}}class i{constructor(e,t,r){this.type=e,this.value=t,this.location=r}toString(){return`${this.type}(${JSON.stringify(this.value)}) at ${this.location}`}is(e,t){return void 0!==t?this.type===e&&this.value===t:this.type===e}}}),c("f0w39",function(e,r){t(e.exports,"isKeyword",()=>i),t(e.exports,"isBlockName",()=>o),t(e.exports,"isPrimitiveType",()=>E);let s=new Set(["FUNCTION","NAMESPACE","PARAMETERS","EVENTS","LOGIC","AS","OF","WITH","DEFAULT","VALUE","AFTER","IF","INTEGER","LONG","FLOAT","DOUBLE","STRING","BOOLEAN","NULL","ANY","ARRAY","OBJECT","true","false","null"]),n=new Set(["iteration","true","false","output","error"]),a=new Set(["INTEGER","LONG","FLOAT","DOUBLE","STRING","BOOLEAN","NULL","ANY"]);function i(e){return s.has(e)}function o(e){return n.has(e)}function E(e){return a.has(e)}}),c("iEjVE",function(e,r){t(e.exports,"LexerError",()=>s);class s extends Error{constructor(e,t,r){super(e),this.location=t,this.context=r,this.name="LexerError",t&&(this.message=`${e} at ${t}`,r&&(this.message+=`
|
|
2
2
|
|
|
3
3
|
${this.formatContext(r,t)}`))}formatContext(e,t){let r=e.split("\n"),s=t.line-1;if(s<0||s>=r.length)return"";let n=r[s],a=" ".repeat(t.column-1)+"^";return`${n}
|
|
4
|
-
${a}`}}}),c("g9JX4",function(e,r){t(e.exports,"DSLParser",()=>m);var s=h("kF8Gn");h("c1Lsl");var n=h("hGSRd"),a=h("9sTIE"),i=h("coH4r"),o=h("gqFFZ"),E=h("5HVwl"),u=h("3a2ZP"),l=h("3XO8R"),p=h("CxNmm"),c=h("bAVta"),T=h("1ndxg"),A=h("iiJWA");class m{constructor(e,t=""){this.current=0,this.tokens=e,this.originalInput=t}parse(){return this.parseFunctionDefinition()}parseFunctionDefinition(){let e=this.expect(s.DSLTokenType.KEYWORD,"FUNCTION"),t=this.expectIdentifier(),r=this.parseNamespaceDecl(),n=this.parseParametersDecl(),a=this.parseEventsDecl();this.expect(s.DSLTokenType.KEYWORD,"LOGIC");let i=this.parseLogicBlock();return new(0,u.FunctionDefNode)(t,r,n,a,i,e.location)}parseNamespaceDecl(){if(this.match(s.DSLTokenType.KEYWORD,"NAMESPACE"))return this.advance(),this.expectDottedIdentifier()}parseParametersDecl(){if(!this.match(s.DSLTokenType.KEYWORD,"PARAMETERS"))return[];this.advance();let e=[];for(;!this.match(s.DSLTokenType.KEYWORD,"EVENTS")&&!this.match(s.DSLTokenType.KEYWORD,"LOGIC")&&!this.match(s.DSLTokenType.EOF);)e.push(this.parseParameterDecl());return e}parseParameterDecl(){let e=this.peek(),t=this.expectIdentifier();this.expect(s.DSLTokenType.KEYWORD,"AS");let r=this.parseSchemaSpec();return new(0,l.ParameterDeclNode)(t,r,e.location)}parseEventsDecl(){if(!this.match(s.DSLTokenType.KEYWORD,"EVENTS"))return[];this.advance();let e=[];for(;!this.match(s.DSLTokenType.KEYWORD,"LOGIC")&&!this.match(s.DSLTokenType.EOF);)e.push(this.parseEventDecl());return e}parseEventDecl(){let e=this.peek(),t=this.expectIdentifier(),r=[];for(;!this.match(s.DSLTokenType.KEYWORD,"LOGIC")&&!this.match(s.DSLTokenType.EOF)&&this.peek().type===s.DSLTokenType.IDENTIFIER;)if(this.peekAhead(1)?.is(s.DSLTokenType.KEYWORD,"AS"))r.push(this.parseParameterDecl());else break;return new(0,i.EventDeclNode)(t,r,e.location)}parseLogicBlock(){let e=[];for(;!this.match(s.DSLTokenType.EOF);)e.push(this.parseStatement());return e}parseStatement(e=0){let t,r=this.peek();this.match(s.DSLTokenType.COLON)?t=`_anonymous_${this.current}`:(t=this.expectIdentifier(),this.expect(s.DSLTokenType.COLON));let n=this.parseFunctionCall(),a=[];if(this.match(s.DSLTokenType.KEYWORD,"AFTER"))for(this.advance();;)if(a.push(this.expectStepReference()),this.match(s.DSLTokenType.COMMA))this.advance();else break;let i=[];if(this.match(s.DSLTokenType.KEYWORD,"IF"))for(this.advance();;)if(i.push(this.expectStepReference()),this.match(s.DSLTokenType.COMMA))this.advance();else break;let o="";this.match(s.DSLTokenType.COMMENT)&&(o=this.advance().value.replace(/^\/\*\s*/,"").replace(/\s*\*\/$/,"").trim());let E=this.parseNestedBlocks(e);return new(0,T.StatementNode)(t,n,a,i,E,r.location,o)}parseNestedBlocks(e=0){let t=new Map;for(;!this.match(s.DSLTokenType.EOF);){let r=this.peek(),n=r.type===s.DSLTokenType.IDENTIFIER||r.type===s.DSLTokenType.BOOLEAN||r.type===s.DSLTokenType.KEYWORD,a=this.peekAhead(1),i=a&&a.type===s.DSLTokenType.COLON,o=r.location.column;if(o<=e)break;if(n&&!i){let e=this.advance().value,r=[];for(;!this.match(s.DSLTokenType.EOF);){let e=this.peek();if(e.type===s.DSLTokenType.IDENTIFIER||e.type===s.DSLTokenType.BOOLEAN||e.type===s.DSLTokenType.KEYWORD){let t=this.peekAhead(1);if(t&&t.type===s.DSLTokenType.COLON){if(e.location.column<=o)break}else if(e.location.column<=o)break}if(e.type===s.DSLTokenType.COLON)r.push(this.parseStatement(o));else if(e.type===s.DSLTokenType.IDENTIFIER||e.type===s.DSLTokenType.BOOLEAN||e.type===s.DSLTokenType.KEYWORD)r.push(this.parseStatement(o));else break}t.set(e,r)}else break}return t}parseFunctionCall(){let e=this.peek(),t=this.expectDottedIdentifier().split("."),r=t.pop(),n=t.join(".");this.expect(s.DSLTokenType.LEFT_PAREN);let a=this.parseArgumentList();return this.expect(s.DSLTokenType.RIGHT_PAREN),new(0,E.FunctionCallNode)(n,r,a,e.location)}parseArgumentList(){let e=new Map;if(this.match(s.DSLTokenType.RIGHT_PAREN))return e;do{let t=this.peek(),r=this.expectIdentifier();this.expect(s.DSLTokenType.EQUALS);let a=this.parseArgumentValue(),i=e.get(r);if(i?i.values.push(a):e.set(r,new(0,n.ArgumentNode)(r,a,t.location)),this.match(s.DSLTokenType.COMMA))this.advance();else break}while(!this.match(s.DSLTokenType.RIGHT_PAREN)&&!this.match(s.DSLTokenType.EOF))return e}parseArgumentValue(){let e=this.peek();if(this.match(s.DSLTokenType.LEFT_PAREN)){let e=this.current;try{return this.parseSchemaLiteral()}catch{this.current=e}}if(this.match(s.DSLTokenType.BACKTICK_STRING)){let e=this.advance();return new(0,o.ExpressionNode)(e.value,e.location)}if(this.match(s.DSLTokenType.STRING)){let e=this.peek();if("'"===e.value[0]){let t=this.peekAhead(1);return t&&t.type===s.DSLTokenType.OPERATOR?this.parseExpression():(this.advance(),new(0,o.ExpressionNode)(e.value,e.location))}{this.advance();let t=this.unescapeJsonString(e.value.slice(1,-1));return new(0,a.ComplexValueNode)(t,e.location)}}if(this.match(s.DSLTokenType.NUMBER)){let e=this.peekAhead(1);if(e&&(e.type===s.DSLTokenType.OPERATOR||e.type===s.DSLTokenType.EQUALS))return this.parseExpression();let t=this.advance();return new(0,a.ComplexValueNode)(parseFloat(t.value),t.location)}if(this.match(s.DSLTokenType.BOOLEAN)||this.match(s.DSLTokenType.KEYWORD)&&("true"===e.value||"false"===e.value)){let e=this.advance();return new(0,a.ComplexValueNode)("true"===e.value,e.location)}if(this.match(s.DSLTokenType.NULL)||this.match(s.DSLTokenType.KEYWORD)&&"null"===e.value){let e=this.advance();return new(0,a.ComplexValueNode)(null,e.location)}if(this.match(s.DSLTokenType.IDENTIFIER)&&"undefined"===e.value){let e=this.advance();return new(0,a.ComplexValueNode)(void 0,e.location)}if(this.match(s.DSLTokenType.LEFT_BRACE)){let e=this.peekAhead(1);if(e&&e.type!==s.DSLTokenType.LEFT_BRACE)return this.parseComplexValue()}return this.match(s.DSLTokenType.LEFT_BRACKET)?this.parseComplexValue():this.parseExpression()}parseExpression(){let e=this.peek(),t=e.location.startPos;if(e.type===s.DSLTokenType.COMMA||e.type===s.DSLTokenType.RIGHT_PAREN||e.type===s.DSLTokenType.RIGHT_BRACKET||e.type===s.DSLTokenType.RIGHT_BRACE)return new(0,o.ExpressionNode)("",e.location);let r=0,n=e;for(;!this.match(s.DSLTokenType.EOF);){let e=this.peek();if(e.type===s.DSLTokenType.LEFT_PAREN||e.type===s.DSLTokenType.LEFT_BRACKET||e.type===s.DSLTokenType.LEFT_BRACE)r++;else if(e.type===s.DSLTokenType.RIGHT_PAREN||e.type===s.DSLTokenType.RIGHT_BRACKET||e.type===s.DSLTokenType.RIGHT_BRACE){if(0===r)break;r--}else if(e.type===s.DSLTokenType.COMMA&&0===r)break;n=e,this.advance()}if(this.originalInput&&t>=0){let r=this.peek().location.startPos;if(r>t){let s=this.originalInput.substring(t,r);return new(0,o.ExpressionNode)(s.trimStart(),e.location)}}if(this.originalInput&&t>=0&&n.location.endPos>t){let r=this.originalInput.substring(t,n.location.endPos);return new(0,o.ExpressionNode)(r.trimStart(),e.location)}return this.reconstructExpressionFromTokens(e,n)}reconstructExpressionFromTokens(e,t){this.current;let r=0;for(let t=0;t<this.tokens.length;t++)if(this.tokens[t].location.startPos===e.location.startPos){r=t;break}let n="",a=0;for(let e=r;e<this.tokens.length;e++){let r=this.tokens[e];if(r.location.startPos>t.location.startPos)break;r.type===s.DSLTokenType.LEFT_PAREN||r.type===s.DSLTokenType.LEFT_BRACKET||r.type===s.DSLTokenType.LEFT_BRACE?a++:(r.type===s.DSLTokenType.RIGHT_PAREN||r.type===s.DSLTokenType.RIGHT_BRACKET||r.type===s.DSLTokenType.RIGHT_BRACE)&&a--,n+=r.value;let i=this.tokens[e+1];i&&i.location.startPos<=t.location.startPos&&this.needsSpaceBetween(r,i,a)&&(n+=" ")}return new(0,o.ExpressionNode)(n.trimStart(),e.location)}needsSpaceBetween(e,t,r){if(e.type===s.DSLTokenType.LEFT_BRACE&&t.type===s.DSLTokenType.LEFT_BRACE||e.type===s.DSLTokenType.RIGHT_BRACE&&t.type===s.DSLTokenType.RIGHT_BRACE||e.type===s.DSLTokenType.DOT||t.type===s.DSLTokenType.DOT||e.type===s.DSLTokenType.LEFT_BRACKET||t.type===s.DSLTokenType.RIGHT_BRACKET||e.type===s.DSLTokenType.LEFT_PAREN||t.type===s.DSLTokenType.RIGHT_PAREN||e.type===s.DSLTokenType.LEFT_BRACE||t.type===s.DSLTokenType.RIGHT_BRACE||e.type===s.DSLTokenType.OPERATOR&&"??"===e.value||t.type===s.DSLTokenType.OPERATOR&&"??"===t.value||e.type===s.DSLTokenType.OPERATOR&&"-"===e.value||t.type===s.DSLTokenType.OPERATOR&&"-"===t.value)return!1;if(r>0){let r=["+","*","/","%"];if(e.type===s.DSLTokenType.OPERATOR&&r.includes(e.value)||t.type===s.DSLTokenType.OPERATOR&&r.includes(t.value))return!1}let n=e.type===s.DSLTokenType.IDENTIFIER||e.type===s.DSLTokenType.KEYWORD||e.type===s.DSLTokenType.BOOLEAN||e.type===s.DSLTokenType.NUMBER,a=t.type===s.DSLTokenType.IDENTIFIER||t.type===s.DSLTokenType.KEYWORD||t.type===s.DSLTokenType.BOOLEAN||t.type===s.DSLTokenType.NUMBER;return!!n&&!!a||e.type===s.DSLTokenType.EQUALS||t.type===s.DSLTokenType.EQUALS||e.type===s.DSLTokenType.OPERATOR||t.type===s.DSLTokenType.OPERATOR}parseSchemaSpec(){let e=this.peek();if(this.match(s.DSLTokenType.LEFT_BRACE)){let t=this.parseComplexValue();return new(0,c.SchemaNode)(t.value,e.location)}let t=this.parseSimpleSchema();return new(0,c.SchemaNode)(t,e.location)}parseSimpleSchema(){if(this.match(s.DSLTokenType.KEYWORD,"ARRAY")){this.advance(),this.expect(s.DSLTokenType.KEYWORD,"OF");let e=this.parseSimpleSchema();return`ARRAY OF ${e}`}if(this.match(s.DSLTokenType.KEYWORD,"OBJECT"))return this.advance().value;let e=this.peek();if(e.type===s.DSLTokenType.KEYWORD)return this.advance().value;throw new(0,A.DSLParserError)("Expected schema type",e.location,["INTEGER","LONG","FLOAT","DOUBLE","STRING","BOOLEAN","NULL","ANY","ARRAY","OBJECT"],e)}parseSchemaLiteral(){let e,t=this.peek();this.expect(s.DSLTokenType.LEFT_PAREN);let r=this.parseSchemaSpec();return this.expect(s.DSLTokenType.RIGHT_PAREN),this.match(s.DSLTokenType.KEYWORD,"WITH")&&(this.advance(),this.expect(s.DSLTokenType.KEYWORD,"DEFAULT"),this.expect(s.DSLTokenType.KEYWORD,"VALUE"),e=this.parseExpression()),new(0,p.SchemaLiteralNode)(r,e,t.location)}parseComplexValue(){let e=this.peek();if(this.match(s.DSLTokenType.LEFT_BRACE))return new(0,a.ComplexValueNode)(this.parseObject(),e.location);if(this.match(s.DSLTokenType.LEFT_BRACKET))return new(0,a.ComplexValueNode)(this.parseArray(),e.location);throw new(0,A.DSLParserError)("Expected { or [",e.location,["{","["],e)}parseObject(){this.expect(s.DSLTokenType.LEFT_BRACE);let e={};if(this.match(s.DSLTokenType.RIGHT_BRACE))return this.advance(),e;do{let t;if(t=this.match(s.DSLTokenType.STRING)?this.advance().value.slice(1,-1):this.expectIdentifier(),this.expect(s.DSLTokenType.COLON),e[t]=this.parseJsonValue(),this.match(s.DSLTokenType.COMMA))this.advance();else break}while(!this.match(s.DSLTokenType.RIGHT_BRACE)&&!this.match(s.DSLTokenType.EOF))return this.expect(s.DSLTokenType.RIGHT_BRACE),e}parseArray(){this.expect(s.DSLTokenType.LEFT_BRACKET);let e=[];if(this.match(s.DSLTokenType.RIGHT_BRACKET))return this.advance(),e;do if(e.push(this.parseJsonValue()),this.match(s.DSLTokenType.COMMA))this.advance();else break;while(!this.match(s.DSLTokenType.RIGHT_BRACKET)&&!this.match(s.DSLTokenType.EOF))return this.expect(s.DSLTokenType.RIGHT_BRACKET),e}parseJsonValue(){let e=this.peek();if(e.type===s.DSLTokenType.STRING){let e=this.advance();return this.unescapeJsonString(e.value.slice(1,-1))}return e.type===s.DSLTokenType.NUMBER?parseFloat(this.advance().value):e.type===s.DSLTokenType.BOOLEAN||e.type===s.DSLTokenType.KEYWORD&&("true"===e.value||"false"===e.value)?"true"===this.advance().value:e.type===s.DSLTokenType.NULL||e.type===s.DSLTokenType.KEYWORD&&"null"===e.value?(this.advance(),null):e.type===s.DSLTokenType.IDENTIFIER&&"undefined"===e.value?void this.advance():e.type===s.DSLTokenType.LEFT_BRACE?this.parseObject():e.type===s.DSLTokenType.LEFT_BRACKET?this.parseArray():{isExpression:!0,value:this.parseExpression().expressionText}}peek(){return this.tokens[this.current]}peekAhead(e){return this.tokens[this.current+e]}advance(){let e=this.tokens[this.current];return this.current++,e}match(e,t){let r=this.peek();return!!r&&r.type===e&&(void 0===t||r.value===t)}expect(e,t){let r=this.peek();if(!this.match(e,t)){let s=t?`${e} (${t})`:e;throw new(0,A.DSLParserError)(`Expected ${s}`,r.location,[s],r)}return this.advance()}expectIdentifier(){let e=this.peek();return e.type===s.DSLTokenType.IDENTIFIER||e.type===s.DSLTokenType.BOOLEAN||e.type===s.DSLTokenType.KEYWORD?this.advance().value:this.expect(s.DSLTokenType.IDENTIFIER).value}expectDottedIdentifier(){let e=this.expectIdentifier();for(;this.match(s.DSLTokenType.DOT);)this.advance(),e+="."+this.expectIdentifier();return e}expectStepReference(){return this.expectDottedIdentifier()}unescapeJsonString(e){let t="",r=0;for(;r<e.length;)if("\\"===e[r]&&r+1<e.length)switch(e[r+1]){case"n":t+="\n",r+=2;break;case"r":t+="\r",r+=2;break;case"t":t+=" ",r+=2;break;case"b":t+="\b",r+=2;break;case"f":t+="\f",r+=2;break;case"\\":t+="\\",r+=2;break;case'"':t+='"',r+=2;break;case"/":t+="/",r+=2;break;case"u":if(r+5<e.length){let s=e.substring(r+2,r+6);if(/^[0-9a-fA-F]{4}$/.test(s)){t+=String.fromCharCode(parseInt(s,16)),r+=6;break}}t+=e[r],r++;break;default:t+=e[r],r++}else t+=e[r],r++;return t}}}),c("c1Lsl",function(e,r){t(e.exports,"ASTNode",()=>h("23EBj").ASTNode),t(e.exports,"ArgumentNode",()=>h("hGSRd").ArgumentNode),t(e.exports,"ComplexValueNode",()=>h("9sTIE").ComplexValueNode),t(e.exports,"EventDeclNode",()=>h("coH4r").EventDeclNode),t(e.exports,"ExpressionNode",()=>h("gqFFZ").ExpressionNode),t(e.exports,"FunctionCallNode",()=>h("5HVwl").FunctionCallNode),t(e.exports,"FunctionDefNode",()=>h("3a2ZP").FunctionDefNode),t(e.exports,"ParameterDeclNode",()=>h("3XO8R").ParameterDeclNode),t(e.exports,"SchemaLiteralNode",()=>h("CxNmm").SchemaLiteralNode),t(e.exports,"SchemaNode",()=>h("bAVta").SchemaNode),t(e.exports,"StatementNode",()=>h("1ndxg").StatementNode),h("23EBj"),h("hGSRd"),h("9sTIE"),h("coH4r"),h("gqFFZ"),h("5HVwl"),h("3a2ZP"),h("3XO8R"),h("CxNmm"),h("bAVta"),h("1ndxg")}),c("23EBj",function(e,r){t(e.exports,"ASTNode",()=>s);class s{constructor(e,t){this.type=e,this.location=t}toString(){return JSON.stringify(this.toJSON(),null,2)}}}),c("hGSRd",function(e,r){t(e.exports,"ArgumentNode",()=>n);var s=h("23EBj");class n extends s.ASTNode{constructor(e,t,r){super("Argument",r),this.key=e,this.values=Array.isArray(t)?t:[t]}get value(){return this.values[0]}isMultiValue(){return this.values.length>1}toJSON(){return{type:this.type,key:this.key,values:this.values.map(e=>e.toJSON())}}}}),c("9sTIE",function(e,r){t(e.exports,"ComplexValueNode",()=>n);var s=h("23EBj");class n extends s.ASTNode{constructor(e,t){super("ComplexValue",t),this.value=e}toJSON(){return{type:this.type,value:this.value}}}}),c("coH4r",function(e,r){t(e.exports,"EventDeclNode",()=>n);var s=h("23EBj");class n extends s.ASTNode{constructor(e,t=[],r){super("EventDecl",r),this.name=e,this.parameters=t}toJSON(){return{type:this.type,name:this.name,parameters:this.parameters.map(e=>e.toJSON())}}}}),c("gqFFZ",function(e,r){t(e.exports,"ExpressionNode",()=>a);var s=h("9mEhX"),n=h("23EBj");class a extends n.ASTNode{constructor(e,t){super("Expression",t),this.expressionText=e}parse(){this.parsedExpression||(this.parsedExpression=new(0,s.Expression)(this.expressionText))}toJSON(){return{type:this.type,expressionText:this.expressionText}}}}),c("9mEhX",function(e,r){t(e.exports,"Expression",()=>T);var s=h("d3Pq1"),n=h("bg8NQ"),a=h("adJLc"),i=h("iq1c5"),o=h("gZQ5x"),E=h("b3MaL"),u=h("4M204"),l=h("iSHH5"),p=h("6SbgP"),c=h("9uq47");class T extends u.ExpressionToken{static createTernary(e,t,r){let s=new T("",void 0,void 0,void 0,!0);return s.tokens.push(e),s.tokens.push(t),s.tokens.push(r),s.ops.push(p.Operation.CONDITIONAL_TERNARY_OPERATOR),s}static createLeaf(e){let t=new T("",void 0,void 0,void 0,!0);return t.expression=e,t.tokens.push(new(0,u.ExpressionToken)(e)),t}constructor(e,t,r,n,a){if(super(e||""),this.tokens=new(0,s.LinkedList),this.ops=new(0,s.LinkedList),a)return;if(void 0!==t||void 0!==r||void 0!==n){n?.getOperator()==".."&&(t?r||(r=new(0,l.ExpressionTokenValue)("","")):t=new(0,l.ExpressionTokenValue)("","")),t&&this.tokens.push(t),r&&this.tokens.push(r),n&&this.ops.push(n);return}if(e&&e.trim().length>0)try{let t=e.trim(),r=new(0,c.ExpressionParser)(t).parse();this.expression=t,this.tokens=r.getTokens(),this.ops=r.getOperations(),this.cachedTokensArray=void 0,this.cachedOpsArray=void 0}catch(e){this.evaluate(),this.ops.isEmpty()||".."!=this.ops.peekLast().getOperator()||1!=this.tokens.length||this.tokens.push(new(0,u.ExpressionToken)(""))}}getTokens(){return this.tokens}getOperations(){return this.ops}getTokensArray(){return this.cachedTokensArray||(this.cachedTokensArray=this.tokens.toArray()),this.cachedTokensArray}getOperationsArray(){return this.cachedOpsArray||(this.cachedOpsArray=this.ops.toArray()),this.cachedOpsArray}evaluate(){let e,t=this.expression.length,r="",s=new(0,n.StringBuilder)(""),a=0,o=!1;for(;a<t;){switch(r=this.expression[a],e=s.toString(),r){case" ":o=this.processTokenSepearator(s,e,o);break;case"(":a=this.processSubExpression(t,s,e,a,o),o=!1;break;case")":throw new(0,E.ExpressionEvaluationException)(this.expression,"Extra closing parenthesis found");case"]":throw new(0,E.ExpressionEvaluationException)(this.expression,"Extra closing square bracket found");case"'":case'"':if(o&&this.ops.peek()==p.Operation.ARRAY_OPERATOR){let e=this.process(t,s,a);a=e.getT1(),o=e.getT2()}else{let e=this.processStringLiteral(t,r,a);a=e.getT1(),o=e.getT2()}break;case"?":if(a+1<t&&"?"!=this.expression.charAt(a+1)&&0!=a&&"?"!=this.expression.charAt(a-1))a=this.processTernaryOperator(t,s,e,a,o);else{let n=this.processOthers(r,t,s,e,a,o);a=n.getT1(),(o=n.getT2())&&this.ops.peek()==p.Operation.ARRAY_OPERATOR&&(a=(n=this.process(t,s,a)).getT1(),o=n.getT2())}break;default:let n=this.processOthers(r,t,s,e,a,o);a=n.getT1(),(o=n.getT2())&&this.ops.peek()==p.Operation.ARRAY_OPERATOR&&(a=(n=this.process(t,s,a)).getT1(),o=n.getT2())}++a}if(e=s.toString(),!i.StringUtil.isNullOrBlank(e))if(p.Operation.OPERATORS.has(e))throw new(0,E.ExpressionEvaluationException)(this.expression,"Expression is ending with an operator");else this.tokens.push(new(0,u.ExpressionToken)(e))}processStringLiteral(e,t,r){let s="",n=r+1;for(;n<e;n++){let e=this.expression.charAt(n);if(e==t&&"\\"!=this.expression.charAt(n-1))break;s+=e}if(n==e&&this.expression.charAt(n-1)!=t)throw new(0,E.ExpressionEvaluationException)(this.expression,"Missing string ending marker "+t);let a=new(0,o.Tuple2)(n,!1);return this.tokens.push(new(0,l.ExpressionTokenValue)(s,s)),a}process(e,t,r){let s=1;for(++r;r<e&&0!=s;){let e=this.expression.charAt(r);"]"==e?--s:"["==e&&++s,0!=s&&(t.append(e),r++)}return this.tokens.push(new T(t.toString())),t.setLength(0),new(0,o.Tuple2)(r,!1)}processOthers(e,t,r,s,n,a){let E=t-n;E=E<p.Operation.BIGGEST_OPERATOR_SIZE?E:p.Operation.BIGGEST_OPERATOR_SIZE;for(let e=E;e>0;e--){let t=this.expression.substring(n,n+e);if(p.Operation.OPERATORS_WITHOUT_SPACE_WRAP.has(t))return i.StringUtil.isNullOrBlank(s)?".."==t&&this.tokens.isEmpty()&&(this.tokens.push(new(0,u.ExpressionToken)("0")),a=!1):(this.tokens.push(new(0,u.ExpressionToken)(s)),a=!1),this.checkUnaryOperator(this.tokens,this.ops,p.Operation.OPERATION_VALUE_OF.get(t),a),a=!0,r.setLength(0),new(0,o.Tuple2)(n+e-1,a)}return r.append(e),new(0,o.Tuple2)(n,!1)}processTernaryOperator(e,t,r,s,n){if(n)throw new(0,E.ExpressionEvaluationException)(this.expression,"Ternary operator is followed by an operator");""!=r.trim()&&(this.tokens.push(new T(r)),t.setLength(0));let a=1,i="",o=++s;for(;s<e&&a>0;)"?"==(i=this.expression.charAt(s))?++a:":"==i&&--a,++s;if(":"!=i)throw new(0,E.ExpressionEvaluationException)(this.expression,"':' operater is missing");if(s>=e)throw new(0,E.ExpressionEvaluationException)(this.expression,"Third part of the ternary expression is missing");for(;!this.ops.isEmpty()&&this.hasPrecedence(p.Operation.CONDITIONAL_TERNARY_OPERATOR,this.ops.peek());){let e=this.ops.pop();if(p.Operation.UNARY_OPERATORS.has(e)){let t=this.tokens.pop();this.tokens.push(new T("",t,void 0,e))}else{let t=this.tokens.pop(),r=this.tokens.pop();this.tokens.push(new T("",r,t,e))}}this.ops.push(p.Operation.CONDITIONAL_TERNARY_OPERATOR),this.tokens.push(new T(this.expression.substring(o,s-1)));let u=this.expression.substring(s);if(""===u.trim())throw new(0,E.ExpressionEvaluationException)(this.expression,"Third part of the ternary expression is missing");return this.tokens.push(new T(u)),e-1}processSubExpression(e,t,r,s,o){if(p.Operation.OPERATORS.has(r))this.checkUnaryOperator(this.tokens,this.ops,p.Operation.OPERATION_VALUE_OF.get(r),o),t.setLength(0);else if(!i.StringUtil.isNullOrBlank(r))throw new(0,E.ExpressionEvaluationException)(this.expression,a.StringFormatter.format("Unkown token : $ found.",r));let u=1,l=new(0,n.StringBuilder),h=this.expression.charAt(s);for(s++;s<e&&u>0;)"("==(h=this.expression.charAt(s))?u++:")"==h&&u--,0!=u&&(l.append(h),s++);if(")"!=h)throw new(0,E.ExpressionEvaluationException)(this.expression,"Missing a closed parenthesis");for(;l.length()>2&&this.hasMatchingOuterParentheses(l.toString());)l.deleteCharAt(0),l.setLength(l.length()-1);return this.tokens.push(new T(l.toString().trim())),s}processTokenSepearator(e,t,r){return i.StringUtil.isNullOrBlank(t)||(p.Operation.OPERATORS.has(t)?(this.checkUnaryOperator(this.tokens,this.ops,p.Operation.OPERATION_VALUE_OF.get(t),r),r=!0):(this.tokens.push(new(0,u.ExpressionToken)(t)),r=!1)),e.setLength(0),r}checkUnaryOperator(e,t,r,s){if(r)if(s||e.isEmpty())if(p.Operation.UNARY_OPERATORS.has(r)){let e=p.Operation.UNARY_MAP.get(r);e&&t.push(e)}else throw new(0,E.ExpressionEvaluationException)(this.expression,a.StringFormatter.format("Extra operator $ found.",r));else{for(;!t.isEmpty()&&this.hasPrecedence(r,t.peek());){let r=t.pop();if(p.Operation.UNARY_OPERATORS.has(r)){let t=e.pop();e.push(new T("",t,void 0,r))}else{let t=e.pop(),s=e.pop();e.push(new T("",s,t,r))}}t.push(r)}}hasPrecedence(e,t){let r=p.Operation.OPERATOR_PRIORITY.get(e),s=p.Operation.OPERATOR_PRIORITY.get(t);if(!r||!s)throw Error("Unknown operators provided");return s===r?t!==p.Operation.OBJECT_OPERATOR&&t!==p.Operation.ARRAY_OPERATOR&&e!==p.Operation.OBJECT_OPERATOR&&e!==p.Operation.ARRAY_OPERATOR:s<r}hasMatchingOuterParentheses(e){if(e.length<2||"("!==e.charAt(0)||")"!==e.charAt(e.length-1))return!1;let t=0;for(let r=0;r<e.length-1;r++){let s=e.charAt(r);if("("===s?t++:")"===s&&t--,0===t)return!1}return 1===t}toString(){if(this.ops.isEmpty())return 1==this.tokens.size()?this.tokenToString(this.tokens.get(0)):this.expression&&this.expression.length>0?this.expression:"Error: No tokens";let e=this.ops.get(0);return e.getOperator().startsWith("UN: ")?this.formatUnaryOperation(e):e==p.Operation.CONDITIONAL_TERNARY_OPERATOR?this.formatTernaryOperation():this.formatBinaryOperation(e)}formatUnaryOperation(e){let t=this.tokens.get(0),r=this.tokenToString(t);return"("+e.getOperator().substring(4)+r+")"}formatTernaryOperation(){let e=this.tokens.get(0),t=this.tokens.get(1),r=this.tokens.get(2);return"("+this.tokenToString(r)+"?"+this.tokenToString(t)+":"+this.tokenToString(e)+")"}formatBinaryOperation(e){if(2>this.tokens.size())return this.expression&&this.expression.length>0?this.expression:1===this.tokens.size()?this.tokenToString(this.tokens.get(0)):"Error: Invalid binary expression";let t=this.tokens.get(0),r=this.tokens.get(1);if(e==p.Operation.ARRAY_OPERATOR)return this.tokenToString(r)+"["+this.formatArrayIndex(t)+"]";if(e==p.Operation.OBJECT_OPERATOR){let e=this.tokenToString(r),s=this.tokenToString(t);if(t instanceof T){let r=t.getOperations();if(!r.isEmpty()&&r.get(0)==p.Operation.ARRAY_OPERATOR)return"("+e+".("+s+"))"}return"("+e+"."+s+")"}if(e==p.Operation.ARRAY_RANGE_INDEX_OPERATOR)return"("+this.tokenToString(r)+".."+this.tokenToString(t)+")";let s=this.tokenToString(r),n=this.tokenToString(t);return"("+s+e.getOperator()+n+")"}tokenToString(e){if(e instanceof T)return e.toString();if(e&&"function"==typeof e.getExpression&&"function"==typeof e.getTokenValue){let t=e.getExpression();if(t&&(t.startsWith('"')||t.startsWith("'")))return t}return e.toString()}formatArrayIndex(e){if(e instanceof T){if(e.getOperations().isEmpty()&&1==e.getTokens().size()){let t=e.getTokens().get(0);if(t&&"function"==typeof t.getExpression){let e=t.getExpression();if(e&&(e.startsWith('"')||e.startsWith("'")))return e}}return e.toString()}if(e&&"function"==typeof e.getExpression){let t=e.getExpression();if(t&&(t.startsWith('"')||t.startsWith("'")))return t}return e.toString()}tokenHasOperations(e){return e instanceof T&&!e.getOperations().isEmpty()}equals(e){return this.expression==e.expression}}}),c("d3Pq1",function(e,r){t(e.exports,"LinkedList",()=>i);var s=h("7pym4"),n=h("dAuXT"),a=h("adJLc");class i{constructor(e){if(this.head=void 0,this.tail=void 0,this.length=0,e?.length){for(let t of e)if(this.head){let e=new o(t,this.tail);this.tail.next=e,this.tail=e}else this.tail=this.head=new o(t);this.length=e.length}}push(e){let t=new o(e,void 0,this.head);this.head?(this.head.previous=t,this.head=t):this.tail=this.head=t,this.length++}pop(){if(!this.head)throw Error("List is empty and cannot pop further.");let e=this.head.value;if(this.length--,this.head==this.tail)return this.head=this.tail=void 0,e;let t=this.head;return this.head=t.next,t.next=void 0,t.previous=void 0,this.head.previous=void 0,e}isEmpty(){return!this.length}size(){return this.length}get(e){if(e<0||e>=this.length)throw Error(`${e} is out of bounds [0,${this.length}]`);let t=this.head;for(;e>0;)t=t.next,--e;return t.value}set(e,t){if(e<0||e>=this.length)throw new(0,s.KIRuntimeException)(a.StringFormatter.format("Index $ out of bound to set the value in linked list.",e));let r=this.head;for(;e>0;)r=this.head.next,--e;return r.value=t,this}toString(){let e=this.head,t="";for(;e;)t+=e.value,(e=e.next)&&(t+=", ");return`[${t}]`}toArray(){let e=[],t=this.head;for(;t;)e.push(t.value),t=t.next;return e}peek(){if(!this.head)throw Error("List is empty so cannot peak");return this.head.value}peekLast(){if(!this.tail)throw Error("List is empty so cannot peak");return this.tail.value}getFirst(){if(!this.head)throw Error("List is empty so cannot get first");return this.head.value}removeFirst(){return this.pop()}removeLast(){if(!this.tail)throw Error("List is empty so cannot remove");--this.length;let e=this.tail.value;if(0==this.length)this.head=this.tail=void 0;else{let e=this.tail.previous;e.next=void 0,this.tail.previous=void 0,this.tail=e}return e}addAll(e){return e&&e.length&&e.forEach(this.add.bind(this)),this}add(e){return++this.length,this.tail||this.head?this.head===this.tail?(this.tail=new o(e,this.head),this.head.next=this.tail):(this.tail=new o(e,this.tail),this.tail.previous.next=this.tail):this.head=this.tail=new o(e),this}map(e,t){let r=new i,s=this.head,n=0;for(;s;)r.add(e(s.value,n)),s=s.next,++n;return r}indexOf(e){let t=this.head,r=0;for(;t;){if((0,n.deepEqual)(t.value,e))return r;t=t.next,++r}return -1}forEach(e,t){let r=this.head,s=0;for(;r;)e(r.value,s),r=r.next,++s}}class o{constructor(e,t,r){this.value=e,this.next=r,this.previous=t}toString(){return""+this.value}}}),c("7pym4",function(e,r){t(e.exports,"KIRuntimeException",()=>s);class s extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}}),c("dAuXT",function(e,r){t(e.exports,"deepEqual",()=>n);var s=h("d3Pq1");function n(e,t){let r=new(0,s.LinkedList);r.push(e);let n=new(0,s.LinkedList);for(n.push(t);!r.isEmpty()&&!n.isEmpty();){let e=r.pop(),t=n.pop();if(e===t)continue;let s=typeof e,a=typeof t;if("undefined"===s||"undefined"===a){if(!e&&!t)continue;return!1}if(s!==a)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!=t.length)return!1;for(let s=0;s<e.length;s++)r.push(e[s]),n.push(t[s]);continue}if("object"===s){if("object"!==a||null===e||null===t)return!1;let s=Object.entries(e),i=Object.entries(t);if(s.length!==i.length)return!1;for(let[e,a]of s)r.push(a),n.push(t[e]);continue}return!1}return!0}}),c("adJLc",function(e,r){t(e.exports,"StringFormatter",()=>s);class s{static format(e,...t){if(!t||0==t.length)return e;let r="",s=0,n="",a=n,i=e.length;for(let o=0;o<i;o++)"$"==(n=e.charAt(o))&&"\\"==a?r=r.substring(0,o-1)+n:"$"==n&&s<t.length?r+=t[s++]:r+=n,a=n;return r.toString()}}}),c("bg8NQ",function(e,r){t(e.exports,"StringBuilder",()=>n);var s=h("7pym4");class n{constructor(e){this.str=e??""}append(e){return this.str+=e,this}toString(){return""+this.str}trim(){return this.str=this.str.trim(),this}setLength(e){return this.str=this.str.substring(0,e),this}length(){return this.str.length}charAt(e){return this.str.charAt(e)}deleteCharAt(e){return this.checkIndex(e),this.str=this.str.substring(0,e)+this.str.substring(e+1),this}insert(e,t){return this.str=this.str.substring(0,e)+t+this.str.substring(e),this}checkIndex(e){if(e>=this.str.length)throw new(0,s.KIRuntimeException)(`Index ${e} is greater than or equal to ${this.str.length}`)}substring(e,t){return this.str.substring(e,t)}}}),c("iq1c5",function(e,r){t(e.exports,"StringUtil",()=>a);var s=h("7pym4"),n=h("adJLc");class a{static nthIndex(e,t,r=0,a){if(!e)throw new(0,s.KIRuntimeException)("String cannot be null");if(r<0||r>=e.length)throw new(0,s.KIRuntimeException)(n.StringFormatter.format("Cannot search from index : $",r));if(a<=0||a>e.length)throw new(0,s.KIRuntimeException)(n.StringFormatter.format("Cannot search for occurance : $",a));for(;r<e.length;){if(e.charAt(r)==t&&0==--a)return r;++r}return -1}static splitAtFirstOccurance(e,t){if(!e)return[void 0,void 0];let r=e.indexOf(t);return -1==r?[e,void 0]:[e.substring(0,r),e.substring(r+1)]}static splitAtLastOccurance(e,t){if(!e)return[void 0,void 0];let r=e.lastIndexOf(t);return -1==r?[e,void 0]:[e.substring(0,r),e.substring(r+1)]}static isNullOrBlank(e){return!e||""==e.trim()}}}),c("gZQ5x",function(e,r){t(e.exports,"Tuple2",()=>s),t(e.exports,"Tuple3",()=>n),t(e.exports,"Tuple4",()=>a);class s{constructor(e,t){this.f=e,this.s=t}getT1(){return this.f}getT2(){return this.s}setT1(e){return this.f=e,this}setT2(e){return this.s=e,this}}class n extends s{constructor(e,t,r){super(e,t),this.t=r}getT3(){return this.t}setT1(e){return this.f=e,this}setT2(e){return this.s=e,this}setT3(e){return this.t=e,this}}class a extends n{constructor(e,t,r,s){super(e,t,r),this.fr=s}getT4(){return this.fr}setT1(e){return this.f=e,this}setT2(e){return this.s=e,this}setT3(e){return this.t=e,this}setT4(e){return this.fr=e,this}}}),c("b3MaL",function(e,r){t(e.exports,"ExpressionEvaluationException",()=>s);class s extends Error{constructor(e,t,r){let s=Error.stackTraceLimit;Error.stackTraceLimit=0,super(),Error.stackTraceLimit=s,this._expression=e,this._msg=t,this.cause=r}get message(){return this._expression+" : "+this._msg}getCause(){return this.cause}}}),c("4M204",function(e,r){t(e.exports,"ExpressionToken",()=>s);class s{constructor(e){this.expression=e}getExpression(){return this.expression}toString(){return this.expression}}}),c("iSHH5",function(e,r){t(e.exports,"ExpressionTokenValue",()=>a);var s=h("adJLc"),n=h("4M204");class a extends n.ExpressionToken{constructor(e,t){super(e),this.element=t}getTokenValue(){return this.element}getElement(){return this.element}toString(){return s.StringFormatter.format("$: $",this.expression,this.element)}}}),c("6SbgP",function(e,r){t(e.exports,"Operation",()=>s);class s{static{this.MULTIPLICATION=new s("*")}static{this.DIVISION=new s("/")}static{this.INTEGER_DIVISION=new s("//")}static{this.MOD=new s("%")}static{this.ADDITION=new s("+")}static{this.SUBTRACTION=new s("-")}static{this.NOT=new s("not",void 0,!0)}static{this.AND=new s("and",void 0,!0)}static{this.OR=new s("or",void 0,!0)}static{this.LESS_THAN=new s("<")}static{this.LESS_THAN_EQUAL=new s("<=")}static{this.GREATER_THAN=new s(">")}static{this.GREATER_THAN_EQUAL=new s(">=")}static{this.EQUAL=new s("=")}static{this.NOT_EQUAL=new s("!=")}static{this.BITWISE_AND=new s("&")}static{this.BITWISE_OR=new s("|")}static{this.BITWISE_XOR=new s("^")}static{this.BITWISE_COMPLEMENT=new s("~")}static{this.BITWISE_LEFT_SHIFT=new s("<<")}static{this.BITWISE_RIGHT_SHIFT=new s(">>")}static{this.BITWISE_UNSIGNED_RIGHT_SHIFT=new s(">>>")}static{this.UNARY_PLUS=new s("UN: +","+")}static{this.UNARY_MINUS=new s("UN: -","-")}static{this.UNARY_LOGICAL_NOT=new s("UN: not","not")}static{this.UNARY_BITWISE_COMPLEMENT=new s("UN: ~","~")}static{this.ARRAY_OPERATOR=new s("[")}static{this.ARRAY_RANGE_INDEX_OPERATOR=new s("..")}static{this.OBJECT_OPERATOR=new s(".")}static{this.NULLISH_COALESCING_OPERATOR=new s("??")}static{this.CONDITIONAL_TERNARY_OPERATOR=new s("?")}static{this.VALUE_OF=new Map([["MULTIPLICATION",s.MULTIPLICATION],["DIVISION",s.DIVISION],["INTEGER_DIVISION",s.INTEGER_DIVISION],["MOD",s.MOD],["ADDITION",s.ADDITION],["SUBTRACTION",s.SUBTRACTION],["NOT",s.NOT],["AND",s.AND],["OR",s.OR],["LESS_THAN",s.LESS_THAN],["LESS_THAN_EQUAL",s.LESS_THAN_EQUAL],["GREATER_THAN",s.GREATER_THAN],["GREATER_THAN_EQUAL",s.GREATER_THAN_EQUAL],["EQUAL",s.EQUAL],["NOT_EQUAL",s.NOT_EQUAL],["BITWISE_AND",s.BITWISE_AND],["BITWISE_OR",s.BITWISE_OR],["BITWISE_XOR",s.BITWISE_XOR],["BITWISE_COMPLEMENT",s.BITWISE_COMPLEMENT],["BITWISE_LEFT_SHIFT",s.BITWISE_LEFT_SHIFT],["BITWISE_RIGHT_SHIFT",s.BITWISE_RIGHT_SHIFT],["BITWISE_UNSIGNED_RIGHT_SHIFT",s.BITWISE_UNSIGNED_RIGHT_SHIFT],["UNARY_PLUS",s.UNARY_PLUS],["UNARY_MINUS",s.UNARY_MINUS],["UNARY_LOGICAL_NOT",s.UNARY_LOGICAL_NOT],["UNARY_BITWISE_COMPLEMENT",s.UNARY_BITWISE_COMPLEMENT],["ARRAY_OPERATOR",s.ARRAY_OPERATOR],["ARRAY_RANGE_INDEX_OPERATOR",s.ARRAY_RANGE_INDEX_OPERATOR],["OBJECT_OPERATOR",s.OBJECT_OPERATOR],["NULLISH_COALESCING_OPERATOR",s.NULLISH_COALESCING_OPERATOR],["CONDITIONAL_TERNARY_OPERATOR",s.CONDITIONAL_TERNARY_OPERATOR]])}static{this.UNARY_OPERATORS=new Set([s.ADDITION,s.SUBTRACTION,s.NOT,s.BITWISE_COMPLEMENT,s.UNARY_PLUS,s.UNARY_MINUS,s.UNARY_LOGICAL_NOT,s.UNARY_BITWISE_COMPLEMENT])}static{this.ARITHMETIC_OPERATORS=new Set([s.MULTIPLICATION,s.DIVISION,s.INTEGER_DIVISION,s.MOD,s.ADDITION,s.SUBTRACTION])}static{this.LOGICAL_OPERATORS=new Set([s.NOT,s.AND,s.OR,s.LESS_THAN,s.LESS_THAN_EQUAL,s.GREATER_THAN,s.GREATER_THAN_EQUAL,s.EQUAL,s.NOT_EQUAL,s.NULLISH_COALESCING_OPERATOR])}static{this.BITWISE_OPERATORS=new Set([s.BITWISE_AND,s.BITWISE_COMPLEMENT,s.BITWISE_LEFT_SHIFT,s.BITWISE_OR,s.BITWISE_RIGHT_SHIFT,s.BITWISE_UNSIGNED_RIGHT_SHIFT,s.BITWISE_XOR])}static{this.CONDITIONAL_OPERATORS=new Set([s.CONDITIONAL_TERNARY_OPERATOR])}static{this.OPERATOR_PRIORITY=new Map([[s.UNARY_PLUS,1],[s.UNARY_MINUS,1],[s.UNARY_LOGICAL_NOT,1],[s.UNARY_BITWISE_COMPLEMENT,1],[s.ARRAY_OPERATOR,1],[s.OBJECT_OPERATOR,1],[s.ARRAY_RANGE_INDEX_OPERATOR,2],[s.MULTIPLICATION,2],[s.DIVISION,2],[s.INTEGER_DIVISION,2],[s.MOD,2],[s.ADDITION,3],[s.SUBTRACTION,3],[s.BITWISE_LEFT_SHIFT,4],[s.BITWISE_RIGHT_SHIFT,4],[s.BITWISE_UNSIGNED_RIGHT_SHIFT,4],[s.LESS_THAN,5],[s.LESS_THAN_EQUAL,5],[s.GREATER_THAN,5],[s.GREATER_THAN_EQUAL,5],[s.EQUAL,6],[s.NOT_EQUAL,6],[s.BITWISE_AND,7],[s.BITWISE_XOR,8],[s.BITWISE_OR,9],[s.NOT,10],[s.AND,10],[s.OR,11],[s.NULLISH_COALESCING_OPERATOR,11],[s.CONDITIONAL_TERNARY_OPERATOR,12]])}static{this.OPERATORS=new Set([...Array.from(s.ARITHMETIC_OPERATORS),...Array.from(s.LOGICAL_OPERATORS),...Array.from(s.BITWISE_OPERATORS),s.ARRAY_OPERATOR,s.ARRAY_RANGE_INDEX_OPERATOR,s.OBJECT_OPERATOR,...Array.from(s.CONDITIONAL_OPERATORS)].map(e=>e.getOperator()))}static{this.OPERATORS_WITHOUT_SPACE_WRAP=new Set([...Array.from(s.ARITHMETIC_OPERATORS),...Array.from(s.LOGICAL_OPERATORS),...Array.from(s.BITWISE_OPERATORS),s.ARRAY_OPERATOR,s.ARRAY_RANGE_INDEX_OPERATOR,s.OBJECT_OPERATOR,...Array.from(s.CONDITIONAL_OPERATORS)].filter(e=>!e.shouldBeWrappedInSpace()).map(e=>e.getOperator()))}static{this.OPERATION_VALUE_OF=new Map(Array.from(s.VALUE_OF.entries()).map(([e,t])=>[t.getOperator(),t]))}static{this.UNARY_MAP=new Map([[s.ADDITION,s.UNARY_PLUS],[s.SUBTRACTION,s.UNARY_MINUS],[s.NOT,s.UNARY_LOGICAL_NOT],[s.BITWISE_COMPLEMENT,s.UNARY_BITWISE_COMPLEMENT],[s.UNARY_PLUS,s.UNARY_PLUS],[s.UNARY_MINUS,s.UNARY_MINUS],[s.UNARY_LOGICAL_NOT,s.UNARY_LOGICAL_NOT],[s.UNARY_BITWISE_COMPLEMENT,s.UNARY_BITWISE_COMPLEMENT]])}static{this.BIGGEST_OPERATOR_SIZE=Array.from(s.VALUE_OF.values()).map(e=>e.getOperator()).filter(e=>!e.startsWith("UN: ")).map(e=>e.length).reduce((e,t)=>e>t?e:t,0)}constructor(e,t,r=!1){this.operator=e,this.operatorName=t??e,this._shouldBeWrappedInSpace=r}getOperator(){return this.operator}getOperatorName(){return this.operatorName}shouldBeWrappedInSpace(){return this._shouldBeWrappedInSpace}valueOf(e){return s.VALUE_OF.get(e)}toString(){return this.operator}}}),c("9uq47",function(e,r){t(e.exports,"ExpressionParser",()=>u);var s=h("b3MaL"),n=h("4M204"),a=h("iSHH5"),i=h("9mEhX"),o=h("6SbgP"),E=h("gPVFs");class u{constructor(e){this.currentToken=null,this.previousTokenValue=null,this.parseDepth=0,this.originalExpression=e,this.lexer=new(0,E.ExpressionLexer)(e),this.currentToken=this.lexer.nextToken()}createParserError(e){let t=this.lexer.getPosition(),r=Math.max(0,t-20),n=Math.min(this.originalExpression.length,t+20),a=this.originalExpression.substring(r,n),i=" ".repeat(t-r)+"^";return console.error(`
|
|
4
|
+
${a}`}}}),c("g9JX4",function(e,r){t(e.exports,"DSLParser",()=>m);var s=h("kF8Gn");h("c1Lsl");var n=h("hGSRd"),a=h("9sTIE"),i=h("coH4r"),o=h("gqFFZ"),E=h("5HVwl"),u=h("3a2ZP"),l=h("3XO8R"),p=h("CxNmm"),c=h("bAVta"),T=h("1ndxg"),A=h("iiJWA");class m{constructor(e,t=""){this.current=0,this.tokens=e,this.originalInput=t}parse(){return this.parseFunctionDefinition()}parseFunctionDefinition(){let e=this.expect(s.DSLTokenType.KEYWORD,"FUNCTION"),t=this.expectIdentifier(),r=this.parseNamespaceDecl(),n=this.parseParametersDecl(),a=this.parseEventsDecl();this.expect(s.DSLTokenType.KEYWORD,"LOGIC");let i=this.parseLogicBlock();return new(0,u.FunctionDefNode)(t,r,n,a,i,e.location)}parseNamespaceDecl(){if(this.match(s.DSLTokenType.KEYWORD,"NAMESPACE"))return this.advance(),this.expectDottedIdentifier()}parseParametersDecl(){if(!this.match(s.DSLTokenType.KEYWORD,"PARAMETERS"))return[];this.advance();let e=[];for(;!this.match(s.DSLTokenType.KEYWORD,"EVENTS")&&!this.match(s.DSLTokenType.KEYWORD,"LOGIC")&&!this.match(s.DSLTokenType.EOF);)e.push(this.parseParameterDecl());return e}parseParameterDecl(){let e=this.peek(),t=this.expectIdentifier();this.expect(s.DSLTokenType.KEYWORD,"AS");let r=this.parseSchemaSpec();return new(0,l.ParameterDeclNode)(t,r,e.location)}parseEventsDecl(){if(!this.match(s.DSLTokenType.KEYWORD,"EVENTS"))return[];this.advance();let e=[];for(;!this.match(s.DSLTokenType.KEYWORD,"LOGIC")&&!this.match(s.DSLTokenType.EOF);)e.push(this.parseEventDecl());return e}parseEventDecl(){let e=this.peek(),t=this.expectIdentifier(),r=[];for(;!this.match(s.DSLTokenType.KEYWORD,"LOGIC")&&!this.match(s.DSLTokenType.EOF)&&this.peek().type===s.DSLTokenType.IDENTIFIER;)if(this.peekAhead(1)?.is(s.DSLTokenType.KEYWORD,"AS"))r.push(this.parseParameterDecl());else break;return new(0,i.EventDeclNode)(t,r,e.location)}parseLogicBlock(){let e=[];for(;!this.match(s.DSLTokenType.EOF);)e.push(this.parseStatement());return e}parseStatement(e=0){let t,r=this.peek();this.match(s.DSLTokenType.COLON)?t=`_anonymous_${this.current}`:(t=this.expectIdentifier(),this.expect(s.DSLTokenType.COLON));let n=this.parseFunctionCall(),a=[];if(this.match(s.DSLTokenType.KEYWORD,"AFTER"))for(this.advance();;)if(a.push(this.expectStepReference()),this.match(s.DSLTokenType.COMMA))this.advance();else break;let i=[];if(this.match(s.DSLTokenType.KEYWORD,"IF"))for(this.advance();;)if(i.push(this.expectStepReference()),this.match(s.DSLTokenType.COMMA))this.advance();else break;let o="";this.match(s.DSLTokenType.COMMENT)&&(o=this.advance().value.replace(/^\/\*\s*/,"").replace(/\s*\*\/$/,"").trim());let E=this.parseNestedBlocks(e);return new(0,T.StatementNode)(t,n,a,i,E,r.location,o)}parseNestedBlocks(e=0){let t=new Map;for(;!this.match(s.DSLTokenType.EOF);){let r=this.peek(),n=r.type===s.DSLTokenType.IDENTIFIER||r.type===s.DSLTokenType.BOOLEAN||r.type===s.DSLTokenType.KEYWORD,a=this.peekAhead(1),i=a&&a.type===s.DSLTokenType.COLON,o=r.location.column;if(o<=e)break;if(n&&!i){let e=this.advance().value,r=[];for(;!this.match(s.DSLTokenType.EOF);){let e=this.peek();if(e.type===s.DSLTokenType.IDENTIFIER||e.type===s.DSLTokenType.BOOLEAN||e.type===s.DSLTokenType.KEYWORD){let t=this.peekAhead(1);if(t&&t.type===s.DSLTokenType.COLON){if(e.location.column<=o)break}else if(e.location.column<=o)break}if(e.type===s.DSLTokenType.COLON)r.push(this.parseStatement(o));else if(e.type===s.DSLTokenType.IDENTIFIER||e.type===s.DSLTokenType.BOOLEAN||e.type===s.DSLTokenType.KEYWORD)r.push(this.parseStatement(o));else break}t.set(e,r)}else break}return t}parseFunctionCall(){let e=this.peek(),t=this.expectDottedIdentifier().split("."),r=t.pop(),n=t.join(".");this.expect(s.DSLTokenType.LEFT_PAREN);let a=this.parseArgumentList();return this.expect(s.DSLTokenType.RIGHT_PAREN),new(0,E.FunctionCallNode)(n,r,a,e.location)}parseArgumentList(){let e=new Map;if(this.match(s.DSLTokenType.RIGHT_PAREN))return e;do{let t=this.peek(),r=this.expectIdentifier();this.expect(s.DSLTokenType.EQUALS);let a=this.parseArgumentValue(),i=e.get(r);if(i?i.values.push(a):e.set(r,new(0,n.ArgumentNode)(r,a,t.location)),this.match(s.DSLTokenType.COMMA))this.advance();else break}while(!this.match(s.DSLTokenType.RIGHT_PAREN)&&!this.match(s.DSLTokenType.EOF))return e}parseArgumentValue(){let e=this.peek();if(this.match(s.DSLTokenType.LEFT_PAREN)){let e=this.current;try{return this.parseSchemaLiteral()}catch{this.current=e}}if(this.match(s.DSLTokenType.BACKTICK_STRING)){let e=this.advance();return new(0,o.ExpressionNode)(e.value,e.location)}if(this.match(s.DSLTokenType.STRING)){let e=this.peek();if("'"===e.value[0]){let t=this.peekAhead(1);return t&&t.type===s.DSLTokenType.OPERATOR?this.parseExpression():(this.advance(),new(0,o.ExpressionNode)(e.value,e.location))}{this.advance();let t=this.unescapeJsonString(e.value.slice(1,-1));return new(0,a.ComplexValueNode)(t,e.location)}}if(this.match(s.DSLTokenType.NUMBER)){let e=this.peekAhead(1);if(e&&(e.type===s.DSLTokenType.OPERATOR||e.type===s.DSLTokenType.EQUALS))return this.parseExpression();let t=this.advance();return new(0,a.ComplexValueNode)(parseFloat(t.value),t.location)}if(this.match(s.DSLTokenType.BOOLEAN)||this.match(s.DSLTokenType.KEYWORD)&&("true"===e.value||"false"===e.value)){let e=this.advance();return new(0,a.ComplexValueNode)("true"===e.value,e.location)}if(this.match(s.DSLTokenType.NULL)||this.match(s.DSLTokenType.KEYWORD)&&"null"===e.value){let e=this.advance();return new(0,a.ComplexValueNode)(null,e.location)}if(this.match(s.DSLTokenType.IDENTIFIER)&&"undefined"===e.value){let e=this.advance();return new(0,a.ComplexValueNode)(void 0,e.location)}if(this.match(s.DSLTokenType.LEFT_BRACE)){let e=this.peekAhead(1);if(e&&e.type!==s.DSLTokenType.LEFT_BRACE)return this.parseComplexValue()}return this.match(s.DSLTokenType.LEFT_BRACKET)?this.parseComplexValue():this.parseExpression()}parseExpression(){let e=this.peek(),t=e.location.startPos;if(e.type===s.DSLTokenType.COMMA||e.type===s.DSLTokenType.RIGHT_PAREN||e.type===s.DSLTokenType.RIGHT_BRACKET||e.type===s.DSLTokenType.RIGHT_BRACE)return new(0,o.ExpressionNode)("",e.location);let r=0,n=e;for(;!this.match(s.DSLTokenType.EOF);){let e=this.peek();if(e.type===s.DSLTokenType.LEFT_PAREN||e.type===s.DSLTokenType.LEFT_BRACKET||e.type===s.DSLTokenType.LEFT_BRACE)r++;else if(e.type===s.DSLTokenType.RIGHT_PAREN||e.type===s.DSLTokenType.RIGHT_BRACKET||e.type===s.DSLTokenType.RIGHT_BRACE){if(0===r)break;r--}else if(e.type===s.DSLTokenType.COMMA&&0===r)break;n=e,this.advance()}if(this.originalInput&&t>=0){let r=this.peek().location.startPos;if(r>t){let s=this.originalInput.substring(t,r);return new(0,o.ExpressionNode)(s.trimStart(),e.location)}}if(this.originalInput&&t>=0&&n.location.endPos>t){let r=this.originalInput.substring(t,n.location.endPos);return new(0,o.ExpressionNode)(r.trimStart(),e.location)}return this.reconstructExpressionFromTokens(e,n)}reconstructExpressionFromTokens(e,t){this.current;let r=0;for(let t=0;t<this.tokens.length;t++)if(this.tokens[t].location.startPos===e.location.startPos){r=t;break}let n="",a=0;for(let e=r;e<this.tokens.length;e++){let r=this.tokens[e];if(r.location.startPos>t.location.startPos)break;r.type===s.DSLTokenType.LEFT_PAREN||r.type===s.DSLTokenType.LEFT_BRACKET||r.type===s.DSLTokenType.LEFT_BRACE?a++:(r.type===s.DSLTokenType.RIGHT_PAREN||r.type===s.DSLTokenType.RIGHT_BRACKET||r.type===s.DSLTokenType.RIGHT_BRACE)&&a--,n+=r.value;let i=this.tokens[e+1];i&&i.location.startPos<=t.location.startPos&&this.needsSpaceBetween(r,i,a)&&(n+=" ")}return new(0,o.ExpressionNode)(n.trimStart(),e.location)}needsSpaceBetween(e,t,r){if(e.type===s.DSLTokenType.LEFT_BRACE&&t.type===s.DSLTokenType.LEFT_BRACE||e.type===s.DSLTokenType.RIGHT_BRACE&&t.type===s.DSLTokenType.RIGHT_BRACE||e.type===s.DSLTokenType.DOT||t.type===s.DSLTokenType.DOT||e.type===s.DSLTokenType.LEFT_BRACKET||t.type===s.DSLTokenType.RIGHT_BRACKET||e.type===s.DSLTokenType.LEFT_PAREN||t.type===s.DSLTokenType.RIGHT_PAREN||e.type===s.DSLTokenType.LEFT_BRACE||t.type===s.DSLTokenType.RIGHT_BRACE||e.type===s.DSLTokenType.OPERATOR&&"??"===e.value||t.type===s.DSLTokenType.OPERATOR&&"??"===t.value||e.type===s.DSLTokenType.OPERATOR&&"-"===e.value||t.type===s.DSLTokenType.OPERATOR&&"-"===t.value)return!1;if(r>0){let r=["+","*","/","%"];if(e.type===s.DSLTokenType.OPERATOR&&r.includes(e.value)||t.type===s.DSLTokenType.OPERATOR&&r.includes(t.value))return!1}let n=e.type===s.DSLTokenType.IDENTIFIER||e.type===s.DSLTokenType.KEYWORD||e.type===s.DSLTokenType.BOOLEAN||e.type===s.DSLTokenType.NUMBER,a=t.type===s.DSLTokenType.IDENTIFIER||t.type===s.DSLTokenType.KEYWORD||t.type===s.DSLTokenType.BOOLEAN||t.type===s.DSLTokenType.NUMBER;return!!n&&!!a||e.type===s.DSLTokenType.EQUALS||t.type===s.DSLTokenType.EQUALS||e.type===s.DSLTokenType.OPERATOR||t.type===s.DSLTokenType.OPERATOR}parseSchemaSpec(){let e=this.peek();if(this.match(s.DSLTokenType.LEFT_BRACE)){let t=this.parseComplexValue();return new(0,c.SchemaNode)(t.value,e.location)}let t=this.parseSimpleSchema();return new(0,c.SchemaNode)(t,e.location)}parseSimpleSchema(){if(this.match(s.DSLTokenType.KEYWORD,"ARRAY")){this.advance(),this.expect(s.DSLTokenType.KEYWORD,"OF");let e=this.parseSimpleSchema();return`ARRAY OF ${e}`}if(this.match(s.DSLTokenType.KEYWORD,"OBJECT"))return this.advance().value;let e=this.peek();if(e.type===s.DSLTokenType.KEYWORD)return this.advance().value;throw new(0,A.DSLParserError)("Expected schema type",e.location,["INTEGER","LONG","FLOAT","DOUBLE","STRING","BOOLEAN","NULL","ANY","ARRAY","OBJECT"],e)}parseSchemaLiteral(){let e,t=this.peek();this.expect(s.DSLTokenType.LEFT_PAREN);let r=this.parseSchemaSpec();return this.expect(s.DSLTokenType.RIGHT_PAREN),this.match(s.DSLTokenType.KEYWORD,"WITH")&&(this.advance(),this.expect(s.DSLTokenType.KEYWORD,"DEFAULT"),this.expect(s.DSLTokenType.KEYWORD,"VALUE"),e=this.parseExpression()),new(0,p.SchemaLiteralNode)(r,e,t.location)}parseComplexValue(){let e=this.peek();if(this.match(s.DSLTokenType.LEFT_BRACE))return new(0,a.ComplexValueNode)(this.parseObject(),e.location);if(this.match(s.DSLTokenType.LEFT_BRACKET))return new(0,a.ComplexValueNode)(this.parseArray(),e.location);throw new(0,A.DSLParserError)("Expected { or [",e.location,["{","["],e)}parseObject(){this.expect(s.DSLTokenType.LEFT_BRACE);let e={};if(this.match(s.DSLTokenType.RIGHT_BRACE))return this.advance(),e;do{let t;if(t=this.match(s.DSLTokenType.STRING)?this.advance().value.slice(1,-1):this.expectIdentifier(),this.expect(s.DSLTokenType.COLON),e[t]=this.parseJsonValue(),this.match(s.DSLTokenType.COMMA))this.advance();else break}while(!this.match(s.DSLTokenType.RIGHT_BRACE)&&!this.match(s.DSLTokenType.EOF))return this.expect(s.DSLTokenType.RIGHT_BRACE),e}parseArray(){this.expect(s.DSLTokenType.LEFT_BRACKET);let e=[];if(this.match(s.DSLTokenType.RIGHT_BRACKET))return this.advance(),e;do if(e.push(this.parseJsonValue()),this.match(s.DSLTokenType.COMMA))this.advance();else break;while(!this.match(s.DSLTokenType.RIGHT_BRACKET)&&!this.match(s.DSLTokenType.EOF))return this.expect(s.DSLTokenType.RIGHT_BRACKET),e}parseJsonValue(){let e=this.peek();if(e.type===s.DSLTokenType.STRING){let e=this.advance();return this.unescapeJsonString(e.value.slice(1,-1))}return e.type===s.DSLTokenType.NUMBER?parseFloat(this.advance().value):e.type===s.DSLTokenType.BOOLEAN||e.type===s.DSLTokenType.KEYWORD&&("true"===e.value||"false"===e.value)?"true"===this.advance().value:e.type===s.DSLTokenType.NULL||e.type===s.DSLTokenType.KEYWORD&&"null"===e.value?(this.advance(),null):e.type===s.DSLTokenType.IDENTIFIER&&"undefined"===e.value?void this.advance():e.type===s.DSLTokenType.LEFT_BRACE?this.parseObject():e.type===s.DSLTokenType.LEFT_BRACKET?this.parseArray():{isExpression:!0,value:this.parseExpression().expressionText}}peek(){return this.tokens[this.current]}peekAhead(e){return this.tokens[this.current+e]}advance(){let e=this.tokens[this.current];return this.current++,e}match(e,t){let r=this.peek();return!!r&&r.type===e&&(void 0===t||r.value===t)}expect(e,t){let r=this.peek();if(!this.match(e,t)){let s=t?`${e} (${t})`:e;throw new(0,A.DSLParserError)(`Expected ${s}`,r.location,[s],r)}return this.advance()}expectIdentifier(){let e=this.peek();return e.type===s.DSLTokenType.IDENTIFIER||e.type===s.DSLTokenType.BOOLEAN||e.type===s.DSLTokenType.KEYWORD?this.advance().value:this.expect(s.DSLTokenType.IDENTIFIER).value}expectDottedIdentifier(){let e=this.expectIdentifier();for(;this.match(s.DSLTokenType.DOT);)this.advance(),e+="."+this.expectIdentifier();return e}expectStepReference(){return this.expectDottedIdentifier()}unescapeJsonString(e){let t="",r=0;for(;r<e.length;)if("\\"===e[r]&&r+1<e.length)switch(e[r+1]){case"n":t+="\n",r+=2;break;case"r":t+="\r",r+=2;break;case"t":t+=" ",r+=2;break;case"b":t+="\b",r+=2;break;case"f":t+="\f",r+=2;break;case"\\":t+="\\",r+=2;break;case'"':t+='"',r+=2;break;case"/":t+="/",r+=2;break;case"u":if(r+5<e.length){let s=e.substring(r+2,r+6);if(/^[0-9a-fA-F]{4}$/.test(s)){t+=String.fromCharCode(parseInt(s,16)),r+=6;break}}t+=e[r],r++;break;default:t+=e[r],r++}else t+=e[r],r++;return t}}}),c("c1Lsl",function(e,r){t(e.exports,"ASTNode",()=>h("23EBj").ASTNode),t(e.exports,"ArgumentNode",()=>h("hGSRd").ArgumentNode),t(e.exports,"ComplexValueNode",()=>h("9sTIE").ComplexValueNode),t(e.exports,"EventDeclNode",()=>h("coH4r").EventDeclNode),t(e.exports,"ExpressionNode",()=>h("gqFFZ").ExpressionNode),t(e.exports,"FunctionCallNode",()=>h("5HVwl").FunctionCallNode),t(e.exports,"FunctionDefNode",()=>h("3a2ZP").FunctionDefNode),t(e.exports,"ParameterDeclNode",()=>h("3XO8R").ParameterDeclNode),t(e.exports,"SchemaLiteralNode",()=>h("CxNmm").SchemaLiteralNode),t(e.exports,"SchemaNode",()=>h("bAVta").SchemaNode),t(e.exports,"StatementNode",()=>h("1ndxg").StatementNode),h("23EBj"),h("hGSRd"),h("9sTIE"),h("coH4r"),h("gqFFZ"),h("5HVwl"),h("3a2ZP"),h("3XO8R"),h("CxNmm"),h("bAVta"),h("1ndxg")}),c("23EBj",function(e,r){t(e.exports,"ASTNode",()=>s);class s{constructor(e,t){this.type=e,this.location=t}toString(){return JSON.stringify(this.toJSON(),null,2)}}}),c("hGSRd",function(e,r){t(e.exports,"ArgumentNode",()=>n);var s=h("23EBj");class n extends s.ASTNode{constructor(e,t,r){super("Argument",r),this.key=e,this.values=Array.isArray(t)?t:[t]}get value(){return this.values[0]}isMultiValue(){return this.values.length>1}toJSON(){return{type:this.type,key:this.key,values:this.values.map(e=>e.toJSON())}}}}),c("9sTIE",function(e,r){t(e.exports,"ComplexValueNode",()=>n);var s=h("23EBj");class n extends s.ASTNode{constructor(e,t){super("ComplexValue",t),this.value=e}toJSON(){return{type:this.type,value:this.value}}}}),c("coH4r",function(e,r){t(e.exports,"EventDeclNode",()=>n);var s=h("23EBj");class n extends s.ASTNode{constructor(e,t=[],r){super("EventDecl",r),this.name=e,this.parameters=t}toJSON(){return{type:this.type,name:this.name,parameters:this.parameters.map(e=>e.toJSON())}}}}),c("gqFFZ",function(e,r){t(e.exports,"ExpressionNode",()=>a);var s=h("9mEhX"),n=h("23EBj");class a extends n.ASTNode{constructor(e,t){super("Expression",t),this.expressionText=e}parse(){this.parsedExpression||(this.parsedExpression=new(0,s.Expression)(this.expressionText))}toJSON(){return{type:this.type,expressionText:this.expressionText}}}}),c("9mEhX",function(e,r){t(e.exports,"Expression",()=>T);var s=h("d3Pq1"),n=h("bg8NQ"),a=h("adJLc"),i=h("iq1c5"),o=h("gZQ5x"),E=h("b3MaL"),u=h("4M204"),l=h("iSHH5"),p=h("6SbgP"),c=h("9uq47");class T extends u.ExpressionToken{static createTernary(e,t,r){let s=new T("",void 0,void 0,void 0,!0);return s.tokens.push(e),s.tokens.push(t),s.tokens.push(r),s.ops.push(p.Operation.CONDITIONAL_TERNARY_OPERATOR),s}static createLeaf(e){let t=new T("",void 0,void 0,void 0,!0);return t.expression=e,t.tokens.push(new(0,u.ExpressionToken)(e)),t}constructor(e,t,r,n,a){if(super(e||""),this.tokens=new(0,s.LinkedList),this.ops=new(0,s.LinkedList),a)return;if(void 0!==t||void 0!==r||void 0!==n){n?.getOperator()==".."&&(t?r||(r=new(0,l.ExpressionTokenValue)("","")):t=new(0,l.ExpressionTokenValue)("","")),t&&this.tokens.push(t),r&&this.tokens.push(r),n&&this.ops.push(n);return}if(e&&e.trim().length>0)try{let t=e.trim(),r=new(0,c.ExpressionParser)(t).parse();this.expression=t,this.tokens=r.getTokens(),this.ops=r.getOperations(),this.cachedTokensArray=void 0,this.cachedOpsArray=void 0}catch(e){this.evaluate(),this.ops.isEmpty()||".."!=this.ops.peekLast().getOperator()||1!=this.tokens.length||this.tokens.push(new(0,u.ExpressionToken)(""))}}getTokens(){return this.tokens}getOperations(){return this.ops}getTokensArray(){return this.cachedTokensArray||(this.cachedTokensArray=this.tokens.toArray()),this.cachedTokensArray}getOperationsArray(){return this.cachedOpsArray||(this.cachedOpsArray=this.ops.toArray()),this.cachedOpsArray}evaluate(){let e,t=this.expression.length,r="",s=new(0,n.StringBuilder)(""),a=0,o=!1;for(;a<t;){switch(r=this.expression[a],e=s.toString(),r){case" ":o=this.processTokenSepearator(s,e,o);break;case"(":a=this.processSubExpression(t,s,e,a,o),o=!1;break;case")":throw new(0,E.ExpressionEvaluationException)(this.expression,"Extra closing parenthesis found");case"]":throw new(0,E.ExpressionEvaluationException)(this.expression,"Extra closing square bracket found");case"'":case'"':if(o&&this.ops.peek()==p.Operation.ARRAY_OPERATOR){let e=this.process(t,s,a);a=e.getT1(),o=e.getT2()}else{let e=this.processStringLiteral(t,r,a);a=e.getT1(),o=e.getT2()}break;case"?":if(a+1<t&&"?"!=this.expression.charAt(a+1)&&0!=a&&"?"!=this.expression.charAt(a-1))a=this.processTernaryOperator(t,s,e,a,o);else{let n=this.processOthers(r,t,s,e,a,o);a=n.getT1(),(o=n.getT2())&&this.ops.peek()==p.Operation.ARRAY_OPERATOR&&(a=(n=this.process(t,s,a)).getT1(),o=n.getT2())}break;default:let n=this.processOthers(r,t,s,e,a,o);a=n.getT1(),(o=n.getT2())&&this.ops.peek()==p.Operation.ARRAY_OPERATOR&&(a=(n=this.process(t,s,a)).getT1(),o=n.getT2())}++a}if(e=s.toString(),!i.StringUtil.isNullOrBlank(e))if(p.Operation.OPERATORS.has(e))throw new(0,E.ExpressionEvaluationException)(this.expression,"Expression is ending with an operator");else this.tokens.push(new(0,u.ExpressionToken)(e))}processStringLiteral(e,t,r){let s="",n=r+1;for(;n<e;n++){let e=this.expression.charAt(n);if(e==t&&"\\"!=this.expression.charAt(n-1))break;s+=e}if(n==e&&this.expression.charAt(n-1)!=t)throw new(0,E.ExpressionEvaluationException)(this.expression,"Missing string ending marker "+t);let a=new(0,o.Tuple2)(n,!1);return this.tokens.push(new(0,l.ExpressionTokenValue)(s,s)),a}process(e,t,r){let s=1;for(++r;r<e&&0!=s;){let e=this.expression.charAt(r);"]"==e?--s:"["==e&&++s,0!=s&&(t.append(e),r++)}return this.tokens.push(new T(t.toString())),t.setLength(0),new(0,o.Tuple2)(r,!1)}processOthers(e,t,r,s,n,a){let E=t-n;E=E<p.Operation.BIGGEST_OPERATOR_SIZE?E:p.Operation.BIGGEST_OPERATOR_SIZE;for(let e=E;e>0;e--){let t=this.expression.substring(n,n+e);if(p.Operation.OPERATORS_WITHOUT_SPACE_WRAP.has(t))return i.StringUtil.isNullOrBlank(s)?".."==t&&this.tokens.isEmpty()&&(this.tokens.push(new(0,u.ExpressionToken)("0")),a=!1):(this.tokens.push(new(0,u.ExpressionToken)(s)),a=!1),this.checkUnaryOperator(this.tokens,this.ops,p.Operation.OPERATION_VALUE_OF.get(t),a),a=!0,r.setLength(0),new(0,o.Tuple2)(n+e-1,a)}return r.append(e),new(0,o.Tuple2)(n,!1)}processTernaryOperator(e,t,r,s,n){if(n)throw new(0,E.ExpressionEvaluationException)(this.expression,"Ternary operator is followed by an operator");""!=r.trim()&&(this.tokens.push(new T(r)),t.setLength(0));let a=1,i="",o=++s;for(;s<e&&a>0;)"?"==(i=this.expression.charAt(s))?++a:":"==i&&--a,++s;if(":"!=i)throw new(0,E.ExpressionEvaluationException)(this.expression,"':' operater is missing");if(s>=e)throw new(0,E.ExpressionEvaluationException)(this.expression,"Third part of the ternary expression is missing");for(;!this.ops.isEmpty()&&this.hasPrecedence(p.Operation.CONDITIONAL_TERNARY_OPERATOR,this.ops.peek());){let e=this.ops.pop();if(p.Operation.UNARY_OPERATORS.has(e)){let t=this.tokens.pop();this.tokens.push(new T("",t,void 0,e))}else{let t=this.tokens.pop(),r=this.tokens.pop();this.tokens.push(new T("",r,t,e))}}this.ops.push(p.Operation.CONDITIONAL_TERNARY_OPERATOR),this.tokens.push(new T(this.expression.substring(o,s-1)));let u=this.expression.substring(s);if(""===u.trim())throw new(0,E.ExpressionEvaluationException)(this.expression,"Third part of the ternary expression is missing");return this.tokens.push(new T(u)),e-1}processSubExpression(e,t,r,s,o){if(p.Operation.OPERATORS.has(r))this.checkUnaryOperator(this.tokens,this.ops,p.Operation.OPERATION_VALUE_OF.get(r),o),t.setLength(0);else if(!i.StringUtil.isNullOrBlank(r))throw new(0,E.ExpressionEvaluationException)(this.expression,a.StringFormatter.format("Unkown token : $ found.",r));let u=1,l=new(0,n.StringBuilder),h=this.expression.charAt(s);for(s++;s<e&&u>0;)"("==(h=this.expression.charAt(s))?u++:")"==h&&u--,0!=u&&(l.append(h),s++);if(")"!=h)throw new(0,E.ExpressionEvaluationException)(this.expression,"Missing a closed parenthesis");for(;l.length()>2&&this.hasMatchingOuterParentheses(l.toString());)l.deleteCharAt(0),l.setLength(l.length()-1);return this.tokens.push(new T(l.toString().trim())),s}processTokenSepearator(e,t,r){return i.StringUtil.isNullOrBlank(t)||(p.Operation.OPERATORS.has(t)?(this.checkUnaryOperator(this.tokens,this.ops,p.Operation.OPERATION_VALUE_OF.get(t),r),r=!0):(this.tokens.push(new(0,u.ExpressionToken)(t)),r=!1)),e.setLength(0),r}checkUnaryOperator(e,t,r,s){if(r)if(s||e.isEmpty())if(p.Operation.UNARY_OPERATORS.has(r)){let e=p.Operation.UNARY_MAP.get(r);e&&t.push(e)}else throw new(0,E.ExpressionEvaluationException)(this.expression,a.StringFormatter.format("Extra operator $ found.",r));else{for(;!t.isEmpty()&&this.hasPrecedence(r,t.peek());){let r=t.pop();if(p.Operation.UNARY_OPERATORS.has(r)){let t=e.pop();e.push(new T("",t,void 0,r))}else{let t=e.pop(),s=e.pop();e.push(new T("",s,t,r))}}t.push(r)}}hasPrecedence(e,t){let r=p.Operation.OPERATOR_PRIORITY.get(e),s=p.Operation.OPERATOR_PRIORITY.get(t);if(!r||!s)throw Error("Unknown operators provided");return s===r?t!==p.Operation.OBJECT_OPERATOR&&t!==p.Operation.ARRAY_OPERATOR&&e!==p.Operation.OBJECT_OPERATOR&&e!==p.Operation.ARRAY_OPERATOR:s<r}hasMatchingOuterParentheses(e){if(e.length<2||"("!==e.charAt(0)||")"!==e.charAt(e.length-1))return!1;let t=0;for(let r=0;r<e.length-1;r++){let s=e.charAt(r);if("("===s?t++:")"===s&&t--,0===t)return!1}return 1===t}toString(){if(this.ops.isEmpty())return 1==this.tokens.size()?this.tokenToString(this.tokens.get(0)):this.expression&&this.expression.length>0?this.expression:"Error: No tokens";let e=this.ops.get(0);return e.getOperator().startsWith("UN: ")?this.formatUnaryOperation(e):e==p.Operation.CONDITIONAL_TERNARY_OPERATOR?this.formatTernaryOperation():this.formatBinaryOperation(e)}formatUnaryOperation(e){let t=this.tokens.get(0),r=this.tokenToString(t);return"("+e.getOperator().substring(4)+r+")"}formatTernaryOperation(){let e=this.tokens.get(0),t=this.tokens.get(1),r=this.tokens.get(2);return"("+this.tokenToString(r)+"?"+this.tokenToString(t)+":"+this.tokenToString(e)+")"}formatBinaryOperation(e){if(2>this.tokens.size())return this.expression&&this.expression.length>0?this.expression:1===this.tokens.size()?this.tokenToString(this.tokens.get(0)):"Error: Invalid binary expression";let t=this.tokens.get(0),r=this.tokens.get(1);if(e==p.Operation.ARRAY_OPERATOR)return this.tokenToString(r)+"["+this.formatArrayIndex(t)+"]";if(e==p.Operation.OBJECT_OPERATOR){let e=this.tokenToString(r),s=this.tokenToString(t);if(t instanceof T){let r=t.getOperations();if(!r.isEmpty()&&r.get(0)==p.Operation.ARRAY_OPERATOR)return"("+e+".("+s+"))"}return"("+e+"."+s+")"}if(e==p.Operation.ARRAY_RANGE_INDEX_OPERATOR)return"("+this.tokenToString(r)+".."+this.tokenToString(t)+")";let s=this.tokenToString(r),n=this.tokenToString(t);return"("+s+e.getOperator()+n+")"}tokenToString(e){if(e instanceof T)return e.toString();if(e&&"function"==typeof e.getExpression&&"function"==typeof e.getTokenValue){let t=e.getExpression();if(t&&(t.startsWith('"')||t.startsWith("'")))return t}return e.toString()}formatArrayIndex(e){if(e instanceof T){if(e.getOperations().isEmpty()&&1==e.getTokens().size()){let t=e.getTokens().get(0);if(t&&"function"==typeof t.getExpression){let e=t.getExpression();if(e&&(e.startsWith('"')||e.startsWith("'")))return e}}return e.toString()}if(e&&"function"==typeof e.getExpression){let t=e.getExpression();if(t&&(t.startsWith('"')||t.startsWith("'")))return t}return e.toString()}tokenHasOperations(e){return e instanceof T&&!e.getOperations().isEmpty()}equals(e){return this.expression==e.expression}}}),c("d3Pq1",function(e,r){t(e.exports,"LinkedList",()=>i);var s=h("7pym4"),n=h("dAuXT"),a=h("adJLc");class i{constructor(e){if(this.head=void 0,this.tail=void 0,this.length=0,e?.length){for(let t of e)if(this.head){let e=new o(t,this.tail);this.tail.next=e,this.tail=e}else this.tail=this.head=new o(t);this.length=e.length}}push(e){let t=new o(e,void 0,this.head);this.head?(this.head.previous=t,this.head=t):this.tail=this.head=t,this.length++}pop(){if(!this.head)throw Error("List is empty and cannot pop further.");let e=this.head.value;if(this.length--,this.head==this.tail)return this.head=this.tail=void 0,e;let t=this.head;return this.head=t.next,t.next=void 0,t.previous=void 0,this.head.previous=void 0,e}isEmpty(){return!this.length}size(){return this.length}get(e){if(e<0||e>=this.length)throw Error(`${e} is out of bounds [0,${this.length}]`);let t=this.head;for(;e>0;)t=t.next,--e;return t.value}set(e,t){if(e<0||e>=this.length)throw new(0,s.KIRuntimeException)(a.StringFormatter.format("Index $ out of bound to set the value in linked list.",e));let r=this.head;for(;e>0;)r=r.next,--e;return r.value=t,this}toString(){let e=this.head,t="";for(;e;)t+=e.value,(e=e.next)&&(t+=", ");return`[${t}]`}toArray(){let e=[],t=this.head;for(;t;)e.push(t.value),t=t.next;return e}peek(){if(!this.head)throw Error("List is empty so cannot peak");return this.head.value}peekLast(){if(!this.tail)throw Error("List is empty so cannot peak");return this.tail.value}getFirst(){if(!this.head)throw Error("List is empty so cannot get first");return this.head.value}removeFirst(){return this.pop()}removeLast(){if(!this.tail)throw Error("List is empty so cannot remove");--this.length;let e=this.tail.value;if(0==this.length)this.head=this.tail=void 0;else{let e=this.tail.previous;e.next=void 0,this.tail.previous=void 0,this.tail=e}return e}addAll(e){return e&&e.length&&e.forEach(this.add.bind(this)),this}add(e){return++this.length,this.tail||this.head?this.head===this.tail?(this.tail=new o(e,this.head),this.head.next=this.tail):(this.tail=new o(e,this.tail),this.tail.previous.next=this.tail):this.head=this.tail=new o(e),this}map(e,t){let r=new i,s=this.head,n=0;for(;s;)r.add(e(s.value,n)),s=s.next,++n;return r}indexOf(e){let t=this.head,r=0;for(;t;){if((0,n.deepEqual)(t.value,e))return r;t=t.next,++r}return -1}forEach(e,t){let r=this.head,s=0;for(;r;)e(r.value,s),r=r.next,++s}}class o{constructor(e,t,r){this.value=e,this.next=r,this.previous=t}toString(){return""+this.value}}}),c("7pym4",function(e,r){t(e.exports,"KIRuntimeException",()=>s);class s extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}}),c("dAuXT",function(e,r){t(e.exports,"deepEqual",()=>n);var s=h("d3Pq1");function n(e,t){let r=new(0,s.LinkedList);r.push(e);let n=new(0,s.LinkedList);for(n.push(t);!r.isEmpty()&&!n.isEmpty();){let e=r.pop(),t=n.pop();if(e===t)continue;let s=typeof e,a=typeof t;if("undefined"===s||"undefined"===a){if(!e&&!t)continue;return!1}if(s!==a||Array.isArray(e)!==Array.isArray(t))return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!=t.length)return!1;for(let s=0;s<e.length;s++)r.push(e[s]),n.push(t[s]);continue}if("object"===s){if("object"!==a||null===e||null===t)return!1;let s=Object.keys(e);if(s.length!==Object.keys(t).length)return!1;for(let a=0;a<s.length;a++){let i=s[a];r.push(e[i]),n.push(t[i])}continue}return!1}return!0}}),c("adJLc",function(e,r){t(e.exports,"StringFormatter",()=>s);class s{static format(e,...t){if(!t||0==t.length)return e;let r="",s=0,n="",a=n,i=e.length;for(let o=0;o<i;o++)"$"==(n=e.charAt(o))&&"\\"==a?r=r.substring(0,o-1)+n:"$"==n&&s<t.length?r+=t[s++]:r+=n,a=n;return r.toString()}}}),c("bg8NQ",function(e,r){t(e.exports,"StringBuilder",()=>n);var s=h("7pym4");class n{constructor(e){this.str=e??""}append(e){return this.str+=e,this}toString(){return""+this.str}trim(){return this.str=this.str.trim(),this}setLength(e){return this.str=this.str.substring(0,e),this}length(){return this.str.length}charAt(e){return this.str.charAt(e)}deleteCharAt(e){return this.checkIndex(e),this.str=this.str.substring(0,e)+this.str.substring(e+1),this}insert(e,t){return this.str=this.str.substring(0,e)+t+this.str.substring(e),this}checkIndex(e){if(e>=this.str.length)throw new(0,s.KIRuntimeException)(`Index ${e} is greater than or equal to ${this.str.length}`)}substring(e,t){return this.str.substring(e,t)}}}),c("iq1c5",function(e,r){t(e.exports,"StringUtil",()=>a);var s=h("7pym4"),n=h("adJLc");class a{static nthIndex(e,t,r=0,a){if(!e)throw new(0,s.KIRuntimeException)("String cannot be null");if(r<0||r>=e.length)throw new(0,s.KIRuntimeException)(n.StringFormatter.format("Cannot search from index : $",r));if(a<=0||a>e.length)throw new(0,s.KIRuntimeException)(n.StringFormatter.format("Cannot search for occurance : $",a));for(;r<e.length;){if(e.charAt(r)==t&&0==--a)return r;++r}return -1}static splitAtFirstOccurance(e,t){if(!e)return[void 0,void 0];let r=e.indexOf(t);return -1==r?[e,void 0]:[e.substring(0,r),e.substring(r+1)]}static splitAtLastOccurance(e,t){if(!e)return[void 0,void 0];let r=e.lastIndexOf(t);return -1==r?[e,void 0]:[e.substring(0,r),e.substring(r+1)]}static isNullOrBlank(e){return!e||""==e.trim()}}}),c("gZQ5x",function(e,r){t(e.exports,"Tuple2",()=>s),t(e.exports,"Tuple3",()=>n),t(e.exports,"Tuple4",()=>a);class s{constructor(e,t){this.f=e,this.s=t}getT1(){return this.f}getT2(){return this.s}setT1(e){return this.f=e,this}setT2(e){return this.s=e,this}}class n extends s{constructor(e,t,r){super(e,t),this.t=r}getT3(){return this.t}setT1(e){return this.f=e,this}setT2(e){return this.s=e,this}setT3(e){return this.t=e,this}}class a extends n{constructor(e,t,r,s){super(e,t,r),this.fr=s}getT4(){return this.fr}setT1(e){return this.f=e,this}setT2(e){return this.s=e,this}setT3(e){return this.t=e,this}setT4(e){return this.fr=e,this}}}),c("b3MaL",function(e,r){t(e.exports,"ExpressionEvaluationException",()=>s);class s extends Error{constructor(e,t,r){let s=Error.stackTraceLimit;Error.stackTraceLimit=0,super(),Error.stackTraceLimit=s,this._expression=e,this._msg=t,this.cause=r}get message(){return this._expression+" : "+this._msg}getCause(){return this.cause}}}),c("4M204",function(e,r){t(e.exports,"ExpressionToken",()=>s);class s{constructor(e){this.expression=e}getExpression(){return this.expression}toString(){return this.expression}}}),c("iSHH5",function(e,r){t(e.exports,"ExpressionTokenValue",()=>a);var s=h("adJLc"),n=h("4M204");class a extends n.ExpressionToken{constructor(e,t){super(e),this.element=t}getTokenValue(){return this.element}getElement(){return this.element}toString(){return s.StringFormatter.format("$: $",this.expression,this.element)}}}),c("6SbgP",function(e,r){t(e.exports,"Operation",()=>s);class s{static{this.MULTIPLICATION=new s("*")}static{this.DIVISION=new s("/")}static{this.INTEGER_DIVISION=new s("//")}static{this.MOD=new s("%")}static{this.ADDITION=new s("+")}static{this.SUBTRACTION=new s("-")}static{this.NOT=new s("not",void 0,!0)}static{this.AND=new s("and",void 0,!0)}static{this.OR=new s("or",void 0,!0)}static{this.LESS_THAN=new s("<")}static{this.LESS_THAN_EQUAL=new s("<=")}static{this.GREATER_THAN=new s(">")}static{this.GREATER_THAN_EQUAL=new s(">=")}static{this.EQUAL=new s("=")}static{this.NOT_EQUAL=new s("!=")}static{this.BITWISE_AND=new s("&")}static{this.BITWISE_OR=new s("|")}static{this.BITWISE_XOR=new s("^")}static{this.BITWISE_COMPLEMENT=new s("~")}static{this.BITWISE_LEFT_SHIFT=new s("<<")}static{this.BITWISE_RIGHT_SHIFT=new s(">>")}static{this.BITWISE_UNSIGNED_RIGHT_SHIFT=new s(">>>")}static{this.UNARY_PLUS=new s("UN: +","+")}static{this.UNARY_MINUS=new s("UN: -","-")}static{this.UNARY_LOGICAL_NOT=new s("UN: not","not")}static{this.UNARY_BITWISE_COMPLEMENT=new s("UN: ~","~")}static{this.ARRAY_OPERATOR=new s("[")}static{this.ARRAY_RANGE_INDEX_OPERATOR=new s("..")}static{this.OBJECT_OPERATOR=new s(".")}static{this.NULLISH_COALESCING_OPERATOR=new s("??")}static{this.CONDITIONAL_TERNARY_OPERATOR=new s("?")}static{this.VALUE_OF=new Map([["MULTIPLICATION",s.MULTIPLICATION],["DIVISION",s.DIVISION],["INTEGER_DIVISION",s.INTEGER_DIVISION],["MOD",s.MOD],["ADDITION",s.ADDITION],["SUBTRACTION",s.SUBTRACTION],["NOT",s.NOT],["AND",s.AND],["OR",s.OR],["LESS_THAN",s.LESS_THAN],["LESS_THAN_EQUAL",s.LESS_THAN_EQUAL],["GREATER_THAN",s.GREATER_THAN],["GREATER_THAN_EQUAL",s.GREATER_THAN_EQUAL],["EQUAL",s.EQUAL],["NOT_EQUAL",s.NOT_EQUAL],["BITWISE_AND",s.BITWISE_AND],["BITWISE_OR",s.BITWISE_OR],["BITWISE_XOR",s.BITWISE_XOR],["BITWISE_COMPLEMENT",s.BITWISE_COMPLEMENT],["BITWISE_LEFT_SHIFT",s.BITWISE_LEFT_SHIFT],["BITWISE_RIGHT_SHIFT",s.BITWISE_RIGHT_SHIFT],["BITWISE_UNSIGNED_RIGHT_SHIFT",s.BITWISE_UNSIGNED_RIGHT_SHIFT],["UNARY_PLUS",s.UNARY_PLUS],["UNARY_MINUS",s.UNARY_MINUS],["UNARY_LOGICAL_NOT",s.UNARY_LOGICAL_NOT],["UNARY_BITWISE_COMPLEMENT",s.UNARY_BITWISE_COMPLEMENT],["ARRAY_OPERATOR",s.ARRAY_OPERATOR],["ARRAY_RANGE_INDEX_OPERATOR",s.ARRAY_RANGE_INDEX_OPERATOR],["OBJECT_OPERATOR",s.OBJECT_OPERATOR],["NULLISH_COALESCING_OPERATOR",s.NULLISH_COALESCING_OPERATOR],["CONDITIONAL_TERNARY_OPERATOR",s.CONDITIONAL_TERNARY_OPERATOR]])}static{this.UNARY_OPERATORS=new Set([s.ADDITION,s.SUBTRACTION,s.NOT,s.BITWISE_COMPLEMENT,s.UNARY_PLUS,s.UNARY_MINUS,s.UNARY_LOGICAL_NOT,s.UNARY_BITWISE_COMPLEMENT])}static{this.ARITHMETIC_OPERATORS=new Set([s.MULTIPLICATION,s.DIVISION,s.INTEGER_DIVISION,s.MOD,s.ADDITION,s.SUBTRACTION])}static{this.LOGICAL_OPERATORS=new Set([s.NOT,s.AND,s.OR,s.LESS_THAN,s.LESS_THAN_EQUAL,s.GREATER_THAN,s.GREATER_THAN_EQUAL,s.EQUAL,s.NOT_EQUAL,s.NULLISH_COALESCING_OPERATOR])}static{this.BITWISE_OPERATORS=new Set([s.BITWISE_AND,s.BITWISE_COMPLEMENT,s.BITWISE_LEFT_SHIFT,s.BITWISE_OR,s.BITWISE_RIGHT_SHIFT,s.BITWISE_UNSIGNED_RIGHT_SHIFT,s.BITWISE_XOR])}static{this.CONDITIONAL_OPERATORS=new Set([s.CONDITIONAL_TERNARY_OPERATOR])}static{this.OPERATOR_PRIORITY=new Map([[s.UNARY_PLUS,1],[s.UNARY_MINUS,1],[s.UNARY_LOGICAL_NOT,1],[s.UNARY_BITWISE_COMPLEMENT,1],[s.ARRAY_OPERATOR,1],[s.OBJECT_OPERATOR,1],[s.ARRAY_RANGE_INDEX_OPERATOR,2],[s.MULTIPLICATION,2],[s.DIVISION,2],[s.INTEGER_DIVISION,2],[s.MOD,2],[s.ADDITION,3],[s.SUBTRACTION,3],[s.BITWISE_LEFT_SHIFT,4],[s.BITWISE_RIGHT_SHIFT,4],[s.BITWISE_UNSIGNED_RIGHT_SHIFT,4],[s.LESS_THAN,5],[s.LESS_THAN_EQUAL,5],[s.GREATER_THAN,5],[s.GREATER_THAN_EQUAL,5],[s.EQUAL,6],[s.NOT_EQUAL,6],[s.BITWISE_AND,7],[s.BITWISE_XOR,8],[s.BITWISE_OR,9],[s.NOT,10],[s.AND,10],[s.OR,11],[s.NULLISH_COALESCING_OPERATOR,11],[s.CONDITIONAL_TERNARY_OPERATOR,12]])}static{this.OPERATORS=new Set([...Array.from(s.ARITHMETIC_OPERATORS),...Array.from(s.LOGICAL_OPERATORS),...Array.from(s.BITWISE_OPERATORS),s.ARRAY_OPERATOR,s.ARRAY_RANGE_INDEX_OPERATOR,s.OBJECT_OPERATOR,...Array.from(s.CONDITIONAL_OPERATORS)].map(e=>e.getOperator()))}static{this.OPERATORS_WITHOUT_SPACE_WRAP=new Set([...Array.from(s.ARITHMETIC_OPERATORS),...Array.from(s.LOGICAL_OPERATORS),...Array.from(s.BITWISE_OPERATORS),s.ARRAY_OPERATOR,s.ARRAY_RANGE_INDEX_OPERATOR,s.OBJECT_OPERATOR,...Array.from(s.CONDITIONAL_OPERATORS)].filter(e=>!e.shouldBeWrappedInSpace()).map(e=>e.getOperator()))}static{this.OPERATION_VALUE_OF=new Map(Array.from(s.VALUE_OF.entries()).map(([e,t])=>[t.getOperator(),t]))}static{this.UNARY_MAP=new Map([[s.ADDITION,s.UNARY_PLUS],[s.SUBTRACTION,s.UNARY_MINUS],[s.NOT,s.UNARY_LOGICAL_NOT],[s.BITWISE_COMPLEMENT,s.UNARY_BITWISE_COMPLEMENT],[s.UNARY_PLUS,s.UNARY_PLUS],[s.UNARY_MINUS,s.UNARY_MINUS],[s.UNARY_LOGICAL_NOT,s.UNARY_LOGICAL_NOT],[s.UNARY_BITWISE_COMPLEMENT,s.UNARY_BITWISE_COMPLEMENT]])}static{this.BIGGEST_OPERATOR_SIZE=Array.from(s.VALUE_OF.values()).map(e=>e.getOperator()).filter(e=>!e.startsWith("UN: ")).map(e=>e.length).reduce((e,t)=>e>t?e:t,0)}constructor(e,t,r=!1){this.operator=e,this.operatorName=t??e,this._shouldBeWrappedInSpace=r}getOperator(){return this.operator}getOperatorName(){return this.operatorName}shouldBeWrappedInSpace(){return this._shouldBeWrappedInSpace}valueOf(e){return s.VALUE_OF.get(e)}toString(){return this.operator}}}),c("9uq47",function(e,r){t(e.exports,"ExpressionParser",()=>u);var s=h("b3MaL"),n=h("4M204"),a=h("iSHH5"),i=h("9mEhX"),o=h("6SbgP"),E=h("gPVFs");class u{constructor(e){this.currentToken=null,this.previousTokenValue=null,this.parseDepth=0,this.originalExpression=e,this.lexer=new(0,E.ExpressionLexer)(e),this.currentToken=this.lexer.nextToken()}createParserError(e){let t=this.lexer.getPosition(),r=Math.max(0,t-20),n=Math.min(this.originalExpression.length,t+20),a=this.originalExpression.substring(r,n),i=" ".repeat(t-r)+"^";return console.error(`
|
|
5
5
|
Parser Error: ${e}
|
|
6
6
|
Expression: ${this.originalExpression}
|
|
7
7
|
Position: ${t}
|