@fincity/kirun-js 3.1.4 → 3.2.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/dsl/GraphDebugTest.ts +316 -0
- package/__tests__/engine/runtime/expression/ExpressionParsingTest.ts +402 -14
- package/dist/index.js +15 -1
- package/dist/index.js.map +1 -1
- package/dist/module.js +15 -1
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +416 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/engine/dsl/DSLCompiler.ts +104 -0
- package/src/engine/dsl/index.ts +30 -0
- package/src/engine/dsl/lexer/DSLLexer.ts +518 -0
- package/src/engine/dsl/lexer/DSLToken.ts +74 -0
- package/src/engine/dsl/lexer/Keywords.ts +80 -0
- package/src/engine/dsl/lexer/LexerError.ts +37 -0
- package/src/engine/dsl/monaco/DSLFunctionProvider.ts +187 -0
- package/src/engine/dsl/parser/DSLParser.ts +1075 -0
- package/src/engine/dsl/parser/DSLParserError.ts +29 -0
- package/src/engine/dsl/parser/ast/ASTNode.ts +23 -0
- package/src/engine/dsl/parser/ast/ArgumentNode.ts +43 -0
- package/src/engine/dsl/parser/ast/ComplexValueNode.ts +22 -0
- package/src/engine/dsl/parser/ast/EventDeclNode.ts +27 -0
- package/src/engine/dsl/parser/ast/ExpressionNode.ts +33 -0
- package/src/engine/dsl/parser/ast/FunctionCallNode.ts +29 -0
- package/src/engine/dsl/parser/ast/FunctionDefNode.ts +37 -0
- package/src/engine/dsl/parser/ast/ParameterDeclNode.ts +25 -0
- package/src/engine/dsl/parser/ast/SchemaLiteralNode.ts +26 -0
- package/src/engine/dsl/parser/ast/SchemaNode.ts +23 -0
- package/src/engine/dsl/parser/ast/StatementNode.ts +41 -0
- package/src/engine/dsl/parser/ast/index.ts +14 -0
- package/src/engine/dsl/transformer/ASTToJSON.ts +378 -0
- package/src/engine/dsl/transformer/ExpressionHandler.ts +48 -0
- package/src/engine/dsl/transformer/JSONToText.ts +694 -0
- package/src/engine/dsl/transformer/SchemaTransformer.ts +110 -0
- package/src/engine/model/FunctionDefinition.ts +23 -0
- package/src/engine/runtime/expression/Expression.ts +5 -1
- package/src/engine/runtime/expression/ExpressionEvaluator.ts +152 -139
- package/src/engine/runtime/expression/ExpressionParser.ts +80 -27
- package/src/engine/util/duplicate.ts +3 -1
- package/src/index.ts +1 -0
package/dist/module.js
CHANGED
|
@@ -1,2 +1,16 @@
|
|
|
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}t({},"KIRunSchemaRepository",()=>D);var s,n,a,i,o,E,u,h={};t(h,"AdditionalType",()=>w),t(h,"Schema",()=>y),t(h,"SchemaDetails",()=>P),t({},"Namespaces",()=>A);class A{static{this.SYSTEM="System"}static{this.SYSTEM_CTX="System.Context"}static{this.SYSTEM_LOOP="System.Loop"}static{this.SYSTEM_ARRAY="System.Array"}static{this.SYSTEM_OBJECT="System.Object"}static{this.SYSTEM_JSON="System.JSON"}static{this.MATH="System.Math"}static{this.STRING="System.String"}static{this.DATE="System.Date"}}function l(e){return null==e}t({},"ArraySchemaType",()=>c),t({},"isNullValue",()=>l);class c{constructor(e){if(!e)return;this.singleSchema=e.singleSchema?new y(e.singleSchema):void 0,this.tupleSchema=e.tupleSchema?e.tupleSchema.map(e=>new y(e)):void 0}setSingleSchema(e){return this.singleSchema=e,this}setTupleSchema(e){return this.tupleSchema=e,this}getSingleSchema(){return this.singleSchema}getTupleSchema(){return this.tupleSchema}isSingleType(){return!l(this.singleSchema)}static of(...e){return 1==e.length?new c().setSingleSchema(e[0]):new c().setTupleSchema(e)}static from(e){if(!e)return;if(Array.isArray(e))return new c().setTupleSchema(y.fromListOfSchemas(e));let t=Object.keys(e);if(-1!=t.indexOf("singleSchema"))return new c().setSingleSchema(y.from(e.singleSchema));if(-1!=t.indexOf("tupleSchema"))return new c().setTupleSchema(y.fromListOfSchemas(e.tupleSchema));let r=y.from(e);if(r)return new c().setSingleSchema(r)}}t({},"SchemaType",()=>T);var T=((s={}).INTEGER="Integer",s.LONG="Long",s.FLOAT="Float",s.DOUBLE="Double",s.STRING="String",s.OBJECT="Object",s.ARRAY="Array",s.BOOLEAN="Boolean",s.NULL="Null",s);t({},"TypeUtil",()=>m),t({},"MultipleType",()=>p),t({},"Type",()=>g);class g{}class p extends g{constructor(e){super(),e instanceof p?this.type=new Set(Array.from(e.type)):this.type=new Set(Array.from(e))}getType(){return this.type}setType(e){return this.type=e,this}getAllowedSchemaTypes(){return this.type}contains(e){return this.type?.has(e)}}t({},"SingleType",()=>R);class R extends g{constructor(e){super(),e instanceof R?this.type=e.type:this.type=e}getType(){return this.type}getAllowedSchemaTypes(){return new Set([this.type])}contains(e){return this.type==e}}class m{static of(...e){return 1==e.length?new R(e[0]):new p(new Set(e))}static from(e){return"string"==typeof e?new R(T[m.fromJSONType(e)]):Array.isArray(e)?new p(new Set(e.map(m.fromJSONType).map(e=>e).map(e=>T[e]))):void 0}static fromJSONType(e){let t=e.toUpperCase();return"NUMBER"===t?"DOUBLE":t}}let f="additionalProperty",N="additionalItems",_="enums",M="items",S="System.Schema",d="required",O="version",I="namespace";class w{constructor(e){if(!e||(this.booleanValue=e.booleanValue,!e.schemaValue))return;this.schemaValue=new y(e.schemaValue)}getBooleanValue(){return this.booleanValue}getSchemaValue(){return this.schemaValue}setBooleanValue(e){return this.booleanValue=e,this}setSchemaValue(e){return this.schemaValue=e,this}static from(e){if(l(e))return;let t=new w;if("boolean"==typeof e)t.booleanValue=e;else{let r=Object.keys(e);-1!=r.indexOf("booleanValue")?t.booleanValue=e.booleanValue:-1!=r.indexOf("schemaValue")?t.schemaValue=y.from(e.schemaValue):t.schemaValue=y.from(e)}return t}}class P{constructor(e){if(!e)return;this.preferredComponent=e.preferredComponent,e.validationMessages&&(this.validationMessages=new Map(Array.from(e.validationMessages.entries()))),e.properties&&(this.properties=new Map(Array.from(e.properties.entries()))),e.styleProperties&&(this.styleProperties=new Map(Array.from(e.styleProperties.entries()))),this.order=e.order,this.label=e.label}getPreferredComponent(){return this.preferredComponent}setPreferredComponent(e){return this.preferredComponent=e,this}getValidationMessages(){return this.validationMessages}setValidationMessages(e){return this.validationMessages=e,this}getValidationMessage(e){return this.validationMessages?.get(e)}setProperties(e){return this.properties=e,this}getProperties(){return this.properties}setStyleProperties(e){return this.styleProperties=e,this}getStyleProperties(){return this.styleProperties}getOrder(){return this.order}setOrder(e){return this.order=e,this}getLabel(){return this.label}setLabel(e){return this.label=e,this}static from(e){if(e)return new P().setPreferredComponent(e.preferredComponent).setValidationMessages(e.validationMessages?new Map(Object.entries(e.validationMessages)):void 0).setProperties(e.properties?new Map(Object.entries(e.properties)):void 0).setStyleProperties(e.styleProperties?new Map(Object.entries(e.styleProperties)):void 0).setOrder(e.order).setLabel(e.label)}}class y{static{this.NULL=new y().setNamespace(A.SYSTEM).setName("Null").setType(m.of(T.NULL)).setConstant(void 0)}static{this.TYPE_SCHEMA=new y().setType(m.of(T.STRING)).setEnums(["INTEGER","LONG","FLOAT","DOUBLE","STRING","OBJECT","ARRAY","BOOLEAN","NULL"])}static{this.SCHEMA=new y().setNamespace(A.SYSTEM).setName("Schema").setType(m.of(T.OBJECT)).setProperties(new Map([[I,y.of(I,T.STRING).setDefaultValue("_")],["name",y.ofString("name")],[O,y.of(O,T.INTEGER).setDefaultValue(1)],["ref",y.ofString("ref")],["type",new y().setAnyOf([y.TYPE_SCHEMA,y.ofArray("type",y.TYPE_SCHEMA)])],["anyOf",y.ofArray("anyOf",y.ofRef(S))],["allOf",y.ofArray("allOf",y.ofRef(S))],["oneOf",y.ofArray("oneOf",y.ofRef(S))],["not",y.ofRef(S)],["title",y.ofString("title")],["description",y.ofString("description")],["id",y.ofString("id")],["examples",y.ofAny("examples")],["defaultValue",y.ofAny("defaultValue")],["comment",y.ofString("comment")],[_,y.ofArray(_,y.ofString(_))],["constant",y.ofAny("constant")],["pattern",y.ofString("pattern")],["format",y.of("format",T.STRING).setEnums(["DATETIME","TIME","DATE","EMAIL","REGEX"])],["minLength",y.ofInteger("minLength")],["maxLength",y.ofInteger("maxLength")],["multipleOf",y.ofLong("multipleOf")],["minimum",y.ofNumber("minimum")],["maximum",y.ofNumber("maximum")],["exclusiveMinimum",y.ofNumber("exclusiveMinimum")],["exclusiveMaximum",y.ofNumber("exclusiveMaximum")],["properties",y.of("properties",T.OBJECT).setAdditionalProperties(new w().setSchemaValue(y.ofRef(S)))],["additionalProperties",new y().setName(f).setNamespace(A.SYSTEM).setAnyOf([y.ofBoolean(f),y.ofObject(f).setRef(S)]).setDefaultValue(!0)],[d,y.ofArray(d,y.ofString(d)).setDefaultValue([])],["propertyNames",y.ofRef(S)],["minProperties",y.ofInteger("minProperties")],["maxProperties",y.ofInteger("maxProperties")],["patternProperties",y.of("patternProperties",T.OBJECT).setAdditionalProperties(new w().setSchemaValue(y.ofRef(S)))],[M,new y().setName(M).setAnyOf([y.ofRef(S).setName("item"),y.ofArray("tuple",y.ofRef(S))])],["contains",y.ofRef(S)],["minContains",y.ofInteger("minContains")],["maxContains",y.ofInteger("maxContains")],["minItems",y.ofInteger("minItems")],["maxItems",y.ofInteger("maxItems")],["uniqueItems",y.ofBoolean("uniqueItems")],["additionalItems",new y().setName(N).setNamespace(A.SYSTEM).setAnyOf([y.ofBoolean(N),y.ofObject(N).setRef(S)])],["$defs",y.of("$defs",T.OBJECT).setAdditionalProperties(new w().setSchemaValue(y.ofRef(S)))],["permission",y.ofString("permission")],["details",y.ofObject("details")],["viewDetails",y.ofObject("viewDetails")]])).setRequired([])}static ofString(e){return new y().setType(m.of(T.STRING)).setName(e)}static ofInteger(e){return new y().setType(m.of(T.INTEGER)).setName(e)}static ofFloat(e){return new y().setType(m.of(T.FLOAT)).setName(e)}static ofLong(e){return new y().setType(m.of(T.LONG)).setName(e)}static ofDouble(e){return new y().setType(m.of(T.DOUBLE)).setName(e)}static ofAny(e){return new y().setType(m.of(T.INTEGER,T.LONG,T.FLOAT,T.DOUBLE,T.STRING,T.BOOLEAN,T.ARRAY,T.NULL,T.OBJECT)).setName(e)}static ofAnyNotNull(e){return new y().setType(m.of(T.INTEGER,T.LONG,T.FLOAT,T.DOUBLE,T.STRING,T.BOOLEAN,T.ARRAY,T.OBJECT)).setName(e)}static ofNumber(e){return new y().setType(m.of(T.INTEGER,T.LONG,T.FLOAT,T.DOUBLE)).setName(e)}static ofBoolean(e){return new y().setType(m.of(T.BOOLEAN)).setName(e)}static of(e,...t){return new y().setType(m.of(...t)).setName(e)}static ofObject(e){return new y().setType(m.of(T.OBJECT)).setName(e)}static ofRef(e){return new y().setRef(e)}static ofArray(e,...t){return new y().setType(m.of(T.ARRAY)).setName(e).setItems(c.of(...t))}static fromListOfSchemas(e){if(l(e)&&!Array.isArray(e))return;let t=[];for(let r of Array.from(e)){let e=y.from(r);e&&t.push(e)}return t}static fromMapOfSchemas(e){if(l(e))return;let t=new Map;return Object.entries(e).forEach(([e,r])=>{let s=y.from(r);s&&t.set(e,s)}),t}static from(e,t=!1){if(l(e))return;let r=new y;return r.namespace=e.namespace??"_",r.name=e.name,r.version=e.version??1,r.ref=e.ref,t?r.type=new R(T.STRING):r.type=m.from(e.type),r.anyOf=y.fromListOfSchemas(e.anyOf),r.allOf=y.fromListOfSchemas(e.allOf),r.oneOf=y.fromListOfSchemas(e.oneOf),r.not=y.from(e.not),r.description=e.description,r.examples=e.examples?[...e.examples]:void 0,r.defaultValue=e.defaultValue,r.comment=e.comment,r.enums=e.enums?[...e.enums]:void 0,r.constant=e.constant,r.pattern=e.pattern,r.format=e.format,r.minLength=e.minLength,r.maxLength=e.maxLength,r.multipleOf=e.multipleOf,r.minimum=e.minimum,r.maximum=e.maximum,r.exclusiveMinimum=e.exclusiveMinimum,r.exclusiveMaximum=e.exclusiveMaximum,r.properties=y.fromMapOfSchemas(e.properties),r.additionalProperties=w.from(e.additionalProperties),r.required=e.required,r.propertyNames=y.from(e.propertyNames,!0),r.minProperties=e.minProperties,r.maxProperties=e.maxProperties,r.patternProperties=y.fromMapOfSchemas(e.patternProperties),r.items=c.from(e.items),r.additionalItems=w.from(e.additionalItems),r.contains=y.from(e.contains),r.minContains=e.minContains,r.maxContains=e.maxContains,r.minItems=e.minItems,r.maxItems=e.maxItems,r.uniqueItems=e.uniqueItems,r.$defs=y.fromMapOfSchemas(e.$defs),r.permission=e.permission,r.details=e.details?P.from(e.details):void 0,r.viewDetails=e.viewDetails?P.from(e.viewDetails):void 0,r}constructor(e){if(this.namespace="_",this.version=1,!e)return;this.namespace=e.namespace,this.name=e.name,this.version=e.version,this.ref=e.ref,l(e.type)||(this.type=e.type instanceof R?new R(e.type):new p(e.type)),this.anyOf=e.anyOf?.map(e=>new y(e)),this.allOf=e.allOf?.map(e=>new y(e)),this.oneOf=e.oneOf?.map(e=>new y(e)),this.not=this.not?new y(this.not):void 0,this.description=e.description,this.examples=e.examples?JSON.parse(JSON.stringify(e.examples)):void 0,this.defaultValue=e.defaultValue?JSON.parse(JSON.stringify(e.defaultValue)):void 0,this.comment=e.comment,this.enums=e.enums?[...e.enums]:void 0,this.constant=e.constant?JSON.parse(JSON.stringify(e.constant)):void 0,this.pattern=e.pattern,this.format=e.format,this.minLength=e.minLength,this.maxLength=e.maxLength,this.multipleOf=e.multipleOf,this.minimum=e.minimum,this.maximum=e.maximum,this.exclusiveMinimum=e.exclusiveMinimum,this.exclusiveMaximum=e.exclusiveMaximum,this.properties=e.properties?new Map(Array.from(e.properties.entries()).map(e=>[e[0],new y(e[1])])):void 0,this.additionalProperties=e.additionalProperties?new w(e.additionalProperties):void 0,this.required=e.required?[...e.required]:void 0,this.propertyNames=e.propertyNames?new y(e.propertyNames):void 0,this.minProperties=e.minProperties,this.maxProperties=e.maxProperties,this.patternProperties=e.patternProperties?new Map(Array.from(e.patternProperties.entries()).map(e=>[e[0],new y(e[1])])):void 0,this.items=e.items?new c(e.items):void 0,this.contains=e.contains?new y(this.contains):void 0,this.minContains=e.minContains,this.maxContains=e.maxContains,this.minItems=e.minItems,this.maxItems=e.maxItems,this.uniqueItems=e.uniqueItems,this.additionalItems=e.additionalItems?new w(e.additionalItems):void 0,this.$defs=e.$defs?new Map(Array.from(e.$defs.entries()).map(e=>[e[0],new y(e[1])])):void 0,this.permission=e.permission,this.details=e.details,this.viewDetails=e.viewDetails}getTitle(){return this.namespace&&"_"!=this.namespace?this.namespace+"."+this.name:this.name}getFullName(){return this.namespace+"."+this.name}get$defs(){return this.$defs}set$defs(e){return this.$defs=e,this}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getVersion(){return this.version}setVersion(e){return this.version=e,this}getRef(){return this.ref}setRef(e){return this.ref=e,this}getType(){return this.type}setType(e){return this.type=e,this}getAnyOf(){return this.anyOf}setAnyOf(e){return this.anyOf=e,this}getAllOf(){return this.allOf}setAllOf(e){return this.allOf=e,this}getOneOf(){return this.oneOf}setOneOf(e){return this.oneOf=e,this}getNot(){return this.not}setNot(e){return this.not=e,this}getDescription(){return this.description}setDescription(e){return this.description=e,this}getExamples(){return this.examples}setExamples(e){return this.examples=e,this}getDefaultValue(){return this.defaultValue}setDefaultValue(e){return this.defaultValue=e,this}getComment(){return this.comment}setComment(e){return this.comment=e,this}getEnums(){return this.enums}setEnums(e){return this.enums=e,this}getConstant(){return this.constant}setConstant(e){return this.constant=e,this}getPattern(){return this.pattern}setPattern(e){return this.pattern=e,this}getFormat(){return this.format}setFormat(e){return this.format=e,this}getMinLength(){return this.minLength}setMinLength(e){return this.minLength=e,this}getMaxLength(){return this.maxLength}setMaxLength(e){return this.maxLength=e,this}getMultipleOf(){return this.multipleOf}setMultipleOf(e){return this.multipleOf=e,this}getMinimum(){return this.minimum}setMinimum(e){return this.minimum=e,this}getMaximum(){return this.maximum}setMaximum(e){return this.maximum=e,this}getExclusiveMinimum(){return this.exclusiveMinimum}setExclusiveMinimum(e){return this.exclusiveMinimum=e,this}getExclusiveMaximum(){return this.exclusiveMaximum}setExclusiveMaximum(e){return this.exclusiveMaximum=e,this}getProperties(){return this.properties}setProperties(e){return this.properties=e,this}getAdditionalProperties(){return this.additionalProperties}setAdditionalProperties(e){return this.additionalProperties=e,this}getAdditionalItems(){return this.additionalItems}setAdditionalItems(e){return this.additionalItems=e,this}getRequired(){return this.required}setRequired(e){return this.required=e,this}getPropertyNames(){return this.propertyNames}setPropertyNames(e){return this.propertyNames=e,this.propertyNames.type=new R(T.STRING),this}getMinProperties(){return this.minProperties}setMinProperties(e){return this.minProperties=e,this}getMaxProperties(){return this.maxProperties}setMaxProperties(e){return this.maxProperties=e,this}getPatternProperties(){return this.patternProperties}setPatternProperties(e){return this.patternProperties=e,this}getItems(){return this.items}setItems(e){return this.items=e,this}getContains(){return this.contains}setContains(e){return this.contains=e,this}getMinContains(){return this.minContains}setMinContains(e){return this.minContains=e,this}getMaxContains(){return this.maxContains}setMaxContains(e){return this.maxContains=e,this}getMinItems(){return this.minItems}setMinItems(e){return this.minItems=e,this}getMaxItems(){return this.maxItems}setMaxItems(e){return this.maxItems=e,this}getUniqueItems(){return this.uniqueItems}setUniqueItems(e){return this.uniqueItems=e,this}getPermission(){return this.permission}setPermission(e){return this.permission=e,this}getDetails(){return this.details}setDetails(e){return this.details=e,this}getViewDetails(){return this.viewDetails}setViewDetails(e){return this.viewDetails=e,this}}t({},"Parameter",()=>v),t({},"SchemaReferenceException",()=>x);class x extends Error{constructor(e,t,r){super(e.trim()?e+"-"+t:t),this.schemaPath=e,this.cause=r}getSchemaPath(){return this.schemaPath}getCause(){return this.cause}}t({},"ParameterType",()=>L);var L=((n={}).CONSTANT="CONSTANT",n.EXPRESSION="EXPRESSION",n);let b="value";class v{static{this.SCHEMA_NAME="Parameter"}static{this.SCHEMA=new y().setNamespace(A.SYSTEM).setName(v.SCHEMA_NAME).setProperties(new Map([["schema",y.SCHEMA],["parameterName",y.ofString("parameterName")],["variableArgument",y.of("variableArgument",T.BOOLEAN).setDefaultValue(!1)],["type",y.ofString("type").setEnums(["EXPRESSION","CONSTANT"])]]))}static{this.EXPRESSION=new y().setNamespace(A.SYSTEM).setName("ParameterExpression").setType(m.of(T.OBJECT)).setProperties(new Map([["isExpression",y.ofBoolean("isExpression").setDefaultValue(!0)],[b,y.ofAny(b)]]))}constructor(e,t){if(this.variableArgument=!1,this.type=L.EXPRESSION,e instanceof v)this.schema=new y(e.schema),this.parameterName=e.parameterName,this.variableArgument=e.variableArgument,this.type=e.type;else{if(!t)throw Error("Unknown constructor signature");this.schema=t,this.parameterName=e}}getSchema(){return this.schema}setSchema(e){return this.schema=e,this}getParameterName(){return this.parameterName}setParameterName(e){return this.parameterName=e,this}isVariableArgument(){return this.variableArgument}setVariableArgument(e){return this.variableArgument=e,this}getType(){return this.type}setType(e){return this.type=e,this}static ofEntry(e,t,r=!1,s=L.EXPRESSION){return[e,new v(e,t).setType(s).setVariableArgument(r)]}static of(e,t,r=!1,s=L.EXPRESSION){return new v(e,t).setType(s).setVariableArgument(r)}static from(e){let t=y.from(e.schema);if(!t)throw new x("","Parameter requires Schema");return new v(e.parameterName,t).setVariableArgument(!!e.variableArgument).setType(e.type??L.EXPRESSION)}toJSON(){return{parameterName:this.parameterName,schema:this.schema,variableArgument:this.variableArgument,type:this.type}}}var U={};t(U,"MapUtil",()=>V),t(U,"MapEntry",()=>C);class V{static of(e,t,r,s,n,a,i,o,E,u,h,A,c,T,g,p,R,m,f,N){let _=new Map;return l(e)||l(t)||_.set(e,t),l(r)||l(s)||_.set(r,s),l(n)||l(a)||_.set(n,a),l(i)||l(o)||_.set(i,o),l(E)||l(u)||_.set(E,u),l(h)||l(A)||_.set(h,A),l(c)||l(T)||_.set(c,T),l(g)||l(p)||_.set(g,p),l(R)||l(m)||_.set(R,m),l(f)||l(N)||_.set(f,N),_}static ofArrayEntries(...e){let t=new Map;for(let[r,s]of e)t.set(r,s);return t}static entry(e,t){return new C(e,t)}static ofEntries(...e){let t=new Map;for(let r of e)t.set(r.k,r.v);return t}static ofEntriesArray(...e){let t=new Map;for(let r=0;r<e.length;r++)t.set(e[r][0],e[r][1]);return t}}class C{constructor(e,t){this.k=e,this.v=t}}class D{constructor(){this.map=new Map([["any",y.ofAny("any").setNamespace(A.SYSTEM)],["boolean",y.ofBoolean("boolean").setNamespace(A.SYSTEM)],["double",y.ofDouble("double").setNamespace(A.SYSTEM)],["float",y.ofFloat("float").setNamespace(A.SYSTEM)],["integer",y.ofInteger("integer").setNamespace(A.SYSTEM)],["long",y.ofLong("long").setNamespace(A.SYSTEM)],["number",y.ofNumber("number").setNamespace(A.SYSTEM)],["string",y.ofString("string").setNamespace(A.SYSTEM)],["Timestamp",y.ofString("Timestamp").setNamespace(A.DATE)],["Timeunit",y.ofString("Timeunit").setNamespace(A.DATE).setEnums(["YEARS","QUARTERS","MONTHS","WEEKS","DAYS","HOURS","MINUTES","SECONDS","MILLISECONDS"])],["Duration",y.ofObject("Duration").setNamespace(A.DATE).setProperties(V.ofArrayEntries(["years",y.ofNumber("years")],["quarters",y.ofNumber("quarters")],["months",y.ofNumber("months")],["weeks",y.ofNumber("weeks")],["days",y.ofNumber("days")],["hours",y.ofNumber("hours")],["minutes",y.ofNumber("minutes")],["seconds",y.ofNumber("seconds")],["milliseconds",y.ofNumber("milliseconds")])).setAdditionalItems(w.from(!1))],["TimeObject",y.ofObject("TimeObject").setNamespace(A.DATE).setProperties(V.ofArrayEntries(["year",y.ofNumber("year")],["month",y.ofNumber("month")],["day",y.ofNumber("day")],["hour",y.ofNumber("hour")],["minute",y.ofNumber("minute")],["second",y.ofNumber("second")],["millisecond",y.ofNumber("millisecond")])).setAdditionalItems(w.from(!1))],[v.EXPRESSION.getName(),v.EXPRESSION],[y.NULL.getName(),y.NULL],[y.SCHEMA.getName(),y.SCHEMA]]),this.filterableNames=Array.from(this.map.values()).map(e=>e.getFullName())}async find(e,t){return A.SYSTEM!=e&&A.DATE!=e?Promise.resolve(void 0):Promise.resolve(this.map.get(t))}async filter(e){return Promise.resolve(this.filterableNames.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}function G(e){return[e.getSignature().getName(),e]}t({},"KIRunFunctionRepository",()=>na),t({},"EventResult",()=>k),t({},"Event",()=>$);class ${static{this.OUTPUT="output"}static{this.ERROR="error"}static{this.ITERATION="iteration"}static{this.TRUE="true"}static{this.FALSE="false"}static{this.SCHEMA_NAME="Event"}static{this.SCHEMA=new y().setNamespace(A.SYSTEM).setName($.SCHEMA_NAME).setType(m.of(T.OBJECT)).setProperties(new Map([["name",y.ofString("name")],["parameters",y.ofObject("parameter").setAdditionalProperties(new w().setSchemaValue(y.SCHEMA))]]))}constructor(e,t){if(e instanceof $)this.name=e.name,this.parameters=new Map(Array.from(e.parameters.entries()).map(e=>[e[0],new y(e[1])]));else{if(this.name=e,!t)throw Error("Unknown constructor format");this.parameters=t}}getName(){return this.name}setName(e){return this.name=e,this}getParameters(){return this.parameters}setParameters(e){return this.parameters=e,this}static outputEventMapEntry(e){return $.eventMapEntry($.OUTPUT,e)}static eventMapEntry(e,t){return[e,new $(e,t)]}static from(e){return new $(e.name,new Map(Object.entries(e.parameters??{}).map(e=>{let t=y.from(e[1]);if(!t)throw new x("","Event expects a schema");return[e[0],t]})))}toJSON(){return{name:this.name,parameters:Object.fromEntries(this.parameters)}}}class k{constructor(e,t){this.name=e,this.result=t}getName(){return this.name}setName(e){return this.name=e,this}getResult(){return this.result}setResult(e){return this.result=e,this}static outputOf(e){return k.of($.OUTPUT,e)}static of(e,t){return new k(e,t)}}t({},"FunctionOutput",()=>F),t({},"KIRuntimeException",()=>B);class B extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class F{constructor(e){if(this.index=0,l(e))throw new B("Function output is generating null");Array.isArray(e)&&e.length&&e[0]instanceof k?this.fo=e:(this.fo=[],Array.isArray(e)||(this.generator=e))}next(){if(!this.generator)return this.index<this.fo.length?this.fo[this.index++]:void 0;let e=this.generator.next();return e&&this.fo.push(e),e}allResults(){return this.fo}}t({},"FunctionSignature",()=>Y);class Y{static{this.SCHEMA_NAME="FunctionSignature"}static{this.SCHEMA=new y().setNamespace(A.SYSTEM).setName(Y.SCHEMA_NAME).setProperties(new Map([["name",y.ofString("name")],["namespace",y.ofString("namespace")],["parameters",y.ofObject("parameters").setAdditionalProperties(new w().setSchemaValue(v.SCHEMA))],["events",y.ofObject("events").setAdditionalProperties(new w().setSchemaValue($.SCHEMA))]]))}constructor(e){this.namespace="_",this.parameters=new Map,this.events=new Map,e instanceof Y?(this.name=e.name,this.namespace=e.namespace,this.parameters=new Map(Array.from(e.parameters.entries()).map(e=>[e[0],new v(e[1])])),this.events=new Map(Array.from(e.events.entries()).map(e=>[e[0],new $(e[1])]))):this.name=e}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getParameters(){return this.parameters}setParameters(e){return this.parameters=e,this}getEvents(){return this.events}setEvents(e){return this.events=e,this}getFullName(){return this.namespace+"."+this.name}toJSON(){return{namespace:this.namespace,name:this.name,parameters:Object.fromEntries(this.parameters),events:Object.fromEntries(this.events)}}}t({},"AbstractFunction",()=>eN),t({},"SchemaValidator",()=>ef),t({},"deepEqual",()=>X),t({},"LinkedList",()=>j),t({},"StringFormatter",()=>H);class H{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()}}class j{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 W(t,this.tail);this.tail.next=e,this.tail=e}else this.tail=this.head=new W(t);this.length=e.length}}push(e){let t=new W(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 B(H.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 W(e,this.head),this.head.next=this.tail):(this.tail=new W(e,this.tail),this.tail.previous.next=this.tail):this.head=this.tail=new W(e),this}map(e,t){let r=new j,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(X(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 W{constructor(e,t,r){this.value=e,this.next=r,this.previous=t}toString(){return""+this.value}}function X(e,t){let r=new j;r.push(e);let s=new j;for(s.push(t);!r.isEmpty()&&!s.isEmpty();){let e=r.pop(),t=s.pop();if(e===t)continue;let n=typeof e,a=typeof t;if("undefined"===n||"undefined"===a){if(!e&&!t)continue;return!1}if(n!==a)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!=t.length)return!1;for(let n=0;n<e.length;n++)r.push(e[n]),s.push(t[n]);continue}if("object"===n){if("object"!==a||null===e||null===t)return!1;let n=Object.entries(e),i=Object.entries(t);if(n.length!==i.length)return!1;for(let[e,a]of n)r.push(a),s.push(t[e]);continue}return!1}return!0}t({},"StringUtil",()=>J);class J{static nthIndex(e,t,r=0,s){if(!e)throw new B("String cannot be null");if(r<0||r>=e.length)throw new B(H.format("Cannot search from index : $",r));if(s<=0||s>e.length)throw new B(H.format("Cannot search for occurance : $",s));for(;r<e.length;){if(e.charAt(r)==t&&0==--s)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()}}t({},"SchemaUtil",()=>ee);var K={};t(K,"Tuple2",()=>q),t(K,"Tuple3",()=>z),t(K,"Tuple4",()=>Q);class q{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 z extends q{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 Q extends z{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}}t({},"SchemaValidationException",()=>Z);class Z extends Error{constructor(e,t,r=[],s){super(t+(r?r.map(e=>e.message).reduce((e,t)=>e+"\n"+t,""):"")),this.schemaPath=e,this.cause=s}getSchemaPath(){return this.schemaPath}getCause(){return this.cause}}class ee{static{this.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH="Unable to retrive schema from referenced path"}static{this.CYCLIC_REFERENCE_LIMIT_COUNTER=20}static async getDefaultValue(e,t){if(e)return e.getConstant()?e.getConstant():l(e.getDefaultValue())?ee.getDefaultValue(await ee.getSchemaFromRef(e,t,e.getRef()),t):e.getDefaultValue()}static async hasDefaultValueOrNullSchemaType(e,t){return e?e.getConstant()||!l(e.getDefaultValue())?Promise.resolve(!0):l(e.getRef())?e.getType()?.getAllowedSchemaTypes().has(T.NULL)?Promise.resolve(!0):Promise.resolve(!1):this.hasDefaultValueOrNullSchemaType(await ee.getSchemaFromRef(e,t,e.getRef()),t):Promise.resolve(!1)}static async getSchemaFromRef(e,t,r,s=0){if(++s==ee.CYCLIC_REFERENCE_LIMIT_COUNTER)throw new Z(r??"","Schema has a cyclic reference");if(!e||!r||J.isNullOrBlank(r))return Promise.resolve(void 0);if(!r.startsWith("#")){var n=await ee.resolveExternalSchema(e,t,r);n&&(e=n.getT1(),r=n.getT2())}let a=r.split("/");return 1===a.length?Promise.resolve(e):Promise.resolve(ee.resolveInternalSchema(e,t,r,s,a,1))}static async resolveInternalSchema(e,t,r,s,n,a){let i=e;if(a!==n.length){for(;a<n.length;){if("$defs"===n[a]){if(++a>=n.length||!i.get$defs())throw new x(r,ee.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);i=i.get$defs()?.get(n[a])}else{if(i&&(!i.getType()?.contains(T.OBJECT)||!i.getProperties()))throw new x(r,"Cannot retrievie schema from non Object type schemas");i=i.getProperties()?.get(n[a])}if(a++,!i||!J.isNullOrBlank(i.getRef())&&!(i=await ee.getSchemaFromRef(i,t,i.getRef(),s)))throw new x(r,ee.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH)}return Promise.resolve(i)}}static async resolveExternalSchema(e,t,r){if(!t)return Promise.resolve(void 0);let s=J.splitAtFirstOccurance(r??"","/");if(!s[0])return Promise.resolve(void 0);let n=J.splitAtLastOccurance(s[0],".");if(!n[0]||!n[1])return Promise.resolve(void 0);let a=await t.find(n[0],n[1]);if(!a)return Promise.resolve(void 0);if(!s[1]||""===s[1])return Promise.resolve(new q(a,r));if(r="#/"+s[1],!a)throw new x(r,ee.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);return Promise.resolve(new q(a,r))}}t({},"AnyOfAllOfOneOfValidator",()=>et);class et{static async validate(e,t,r,s,n,a){let i=[];return t.getOneOf()&&!t.getOneOf()?await et.oneOf(e,t,r,s,i,n,a):t.getAllOf()&&!t.getAllOf()?await et.allOf(e,t,r,s,i,n,a):t.getAnyOf()&&!t.getAnyOf()?await et.anyOf(e,t,r,s,i,n,a):s}static async anyOf(e,t,r,s,n,a,i){let o=!1;for(let E of t.getAnyOf()??[])try{await et.validate(e,E,r,s,a,i),o=!0;break}catch(e){o=!1,n.push(e)}if(o)return s;throw new Z(ef.path(e),"The value don't satisfy any of the schemas.",n)}static async allOf(e,t,r,s,n,a,i){let o=0;for(let E of t.getAllOf()??[])try{await et.validate(e,E,r,s,a,i),o++}catch(e){n.push(e)}if(o===t.getAllOf()?.length)return s;throw new Z(ef.path(e),"The value doesn't satisfy some of the schemas.",n)}static async oneOf(e,t,r,s,n,a,i){let o=0;for(let E of t.getOneOf()??[])try{await et.validate(e,E,r,s,a,i),o++}catch(e){n.push(e)}if(1===o)return s;throw new Z(ef.path(e),0==o?"The value does not satisfy any schema":"The value satisfy more than one schema",n)}}t({},"TypeValidator",()=>em),t({},"ArrayValidator",()=>es);class er{static formatValue(e,t=200){if(null===e)return"null";if(void 0===e)return"undefined";let r=typeof e;if("string"===r)return`"${e}"`;if("number"===r||"boolean"===r)return String(e);try{let r=new WeakSet,s=JSON.stringify(e,(e,t)=>{if("object"==typeof t&&null!==t){if(r.has(t))return"[Circular]";r.add(t)}return t}),n=s;if(s.length>2&&(n=s.replaceAll(",",", ").replaceAll(":",": ").replaceAll(/\s+/g," ")),n.length>t)return n.substring(0,t)+"...";return n}catch(t){return`[${Object.prototype.toString.call(e)}]`}}static formatFunctionName(e,t){return e&&"undefined"!==e&&"null"!==e?`${e}.${t}`:t}static formatStatementName(e){return e&&"undefined"!==e&&"null"!==e?`'${e}'`:null}static formatSchemaDefinition(e){if(!e)return"any";let t=e.getType();if(!t)return"any";let r=t.getAllowedSchemaTypes();if(0===r.size)return"any";if(1===r.size){let t=Array.from(r)[0];return this.formatSingleSchemaType(e,t)}return Array.from(r).map(e=>e).join(" | ")}static formatSingleSchemaType(e,t){if(t===T.ARRAY){let t=e.getItems();if(t){let e=t.getSingleSchema();if(e){let t=this.formatSchemaDefinition(e);return`Array<${t}>`}let r=t.getTupleSchema();if(r&&r.length>0){let e=r.map(e=>this.formatSchemaDefinition(e)).join(", ");return`[${e}]`}}return"Array"}let r=e.getEnums();if(r&&r.length>0){let e=r.slice(0,5).map(e=>this.formatValue(e,50)).join(" | "),s=r.length>5?" | ...":"";return`${t}(${e}${s})`}return t}static buildFunctionExecutionError(e,t,r,s,n){let a=s?`'s parameter ${s}`:"",i=t?` in statement ${t}`:"",o=n?` [Expected: ${this.formatSchemaDefinition(n)}]`:"",E=r.startsWith("Error while executing the function ")?"\n":"";return`Error while executing the function ${e}${a}${i}${o}: ${E}${r}`}static formatErrorMessage(e){if(!e)return"Unknown error";if("string"==typeof e)return e;if(e.message){let t=String(e.message);return t.includes("[object Object]")?t.replace(/\[object Object\]/g,()=>this.formatValue(e)):t}return this.formatValue(e)}}class es{static async validate(e,t,r,s,n,a){if(l(s))throw new Z(ef.path(e),"Expected an array but found null");if(!Array.isArray(s))throw new Z(ef.path(e),`Expected an array but found ${er.formatValue(s)}`);return es.checkMinMaxItems(e,t,s),await es.checkItems(e,t,r,s,n,a),es.checkUniqueItems(e,t,s),await es.checkContains(t,e,r,s),s}static async checkContains(e,t,r,s){if(l(e.getContains()))return;let n=await es.countContains(t,e,r,s,l(e.getMinContains())&&l(e.getMaxContains()));if(0===n)throw new Z(ef.path(t),"None of the items are of type contains schema");if(!l(e.getMinContains())&&e.getMinContains()>n)throw new Z(ef.path(t),"The minimum number of the items of type contains schema should be "+e.getMinContains()+" but found "+n);if(!l(e.getMaxContains())&&e.getMaxContains()<n)throw new Z(ef.path(t),"The maximum number of the items of type contains schema should be "+e.getMaxContains()+" but found "+n)}static async countContains(e,t,r,s,n){let a=0;for(let i=0;i<s.length;i++){let o=e?[...e]:[];try{if(await ef.validate(o,t.getContains(),r,s[i]),a++,n)break}catch(e){}}return a}static checkUniqueItems(e,t,r){if(t.getUniqueItems()&&t.getUniqueItems()&&new Set(r).size!==r.length)throw new Z(ef.path(e),"Items on the array are not unique")}static checkMinMaxItems(e,t,r){if(t.getMinItems()&&t.getMinItems()>r.length)throw new Z(ef.path(e),"Array should have minimum of "+t.getMinItems()+" elements");if(t.getMaxItems()&&t.getMaxItems()<r.length)throw new Z(ef.path(e),"Array can have maximum of "+t.getMaxItems()+" elements")}static async checkItems(e,t,r,s,n,a){if(!t.getItems())return;let i=t.getItems();if(i.getSingleSchema())for(let t=0;t<s.length;t++){let o=e?[...e]:[];s[t]=await ef.validate(o,i.getSingleSchema(),r,s[t],n,a)}if(i.getTupleSchema()){if(i.getTupleSchema().length!==s.length&&l(t?.getAdditionalItems()))throw new Z(ef.path(e),"Expected an array with only "+i.getTupleSchema().length+" but found "+s.length);await this.checkItemsInTupleSchema(e,r,s,i),await this.checkAdditionalItems(e,t,r,s,i)}}static async checkItemsInTupleSchema(e,t,r,s,n,a){for(let i=0;i<s.getTupleSchema()?.length;i++){let o=e?[...e]:[];r[i]=await ef.validate(o,s.getTupleSchema()[i],t,r[i],n,a)}}static async checkAdditionalItems(e,t,r,s,n){if(!l(t.getAdditionalItems())){let a=t.getAdditionalItems();if(a?.getBooleanValue()){let i=y.ofAny("item");if(a?.getBooleanValue()===!1&&s.length>n.getTupleSchema()?.length)throw new Z(ef.path(e),"No Additional Items are defined");await this.checkEachItemInAdditionalItems(e,t,r,s,n,i)}else if(a?.getSchemaValue()){let i=a.getSchemaValue();await this.checkEachItemInAdditionalItems(e,t,r,s,n,i)}}}static async checkEachItemInAdditionalItems(e,t,r,s,n,a){for(let t=n.getTupleSchema()?.length;t<s.length;t++){let n=e?[...e]:[];s[t]=await ef.validate(n,a,r,s[t])}}}t({},"BooleanValidator",()=>en);class en{static validate(e,t,r){if(l(r))throw new Z(ef.path(e),"Expected a boolean but found null");if("boolean"!=typeof r)throw new Z(ef.path(e),`Expected a boolean but found ${er.formatValue(r)}`);return r}}t({},"NullValidator",()=>ea);class ea{static validate(e,t,r){if(l(r))return r;throw new Z(ef.path(e),"Expected a null but found "+r)}}t({},"NumberValidator",()=>ei);class ei{static validate(e,t,r,s){if(l(s))throw new Z(ef.path(t),"Expected a number but found null");if("number"!=typeof s)throw new Z(ef.path(t),`Expected a ${e} but found ${er.formatValue(s)}`);let n=ei.extractNumber(e,t,r,s);return ei.checkRange(t,r,s,n),ei.checkMultipleOf(t,r,s,n),s}static extractNumber(e,t,r,s){let n=s;try{(e==T.LONG||e==T.INTEGER)&&(n=Math.round(n))}catch(r){throw new Z(ef.path(t),s+" is not a number of type "+e,r)}if(l(n)||(e==T.LONG||e==T.INTEGER)&&n!=s)throw new Z(ef.path(t),s.toString()+" is not a number of type "+e);return n}static checkMultipleOf(e,t,r,s){if(t.getMultipleOf()&&s%t.getMultipleOf()!=0)throw new Z(ef.path(e),t.getDetails()?.getValidationMessage("multipleOf")??r.toString()+" is not multiple of "+t.getMultipleOf())}static checkRange(e,t,r,s){if(!l(t.getMinimum())&&0>ei.numberCompare(s,t.getMinimum()))throw new Z(ef.path(e),t.getDetails()?.getValidationMessage("minimum")??r.toString()+" should be greater than or equal to "+t.getMinimum());if(!l(t.getMaximum())&&ei.numberCompare(s,t.getMaximum())>0)throw new Z(ef.path(e),t.getDetails()?.getValidationMessage("maximum")??r.toString()+" should be less than or equal to "+t.getMaximum());if(!l(t.getExclusiveMinimum())&&0>=ei.numberCompare(s,t.getExclusiveMinimum()))throw new Z(ef.path(e),t.getDetails()?.getValidationMessage("exclusiveMinimum")??r.toString()+" should be greater than "+t.getExclusiveMinimum());if(!l(t.getExclusiveMaximum())&&ei.numberCompare(s,t.getExclusiveMaximum())>0)throw new Z(ef.path(e),t.getDetails()?.getValidationMessage("exclusiveMaximum")??r.toString()+" should be less than "+t.getExclusiveMaximum())}static numberCompare(e,t){return e-t}}t({},"ObjectValidator",()=>eo);class eo{static async validate(e,t,r,s,n,a){if(l(s))throw new Z(ef.path(e),"Expected an object but found null");if("object"!=typeof s||Array.isArray(s))throw new Z(ef.path(e),`Expected an object but found ${er.formatValue(s)}`);let i=new Set(Object.keys(s));return eo.checkMinMaxProperties(e,t,i),t.getPropertyNames()&&await eo.checkPropertyNameSchema(e,t,r,i),t.getRequired()&&eo.checkRequired(e,t,s),t.getProperties()&&await eo.checkProperties(e,t,r,s,i,n,a),t.getPatternProperties()&&await eo.checkPatternProperties(e,t,r,s,i),t.getAdditionalProperties()&&await eo.checkAdditionalProperties(e,t,r,s,i),s}static async checkPropertyNameSchema(e,t,r,s){for(let n of Array.from(s.values()))try{await ef.validate(e,t.getPropertyNames(),r,n)}catch(t){throw new Z(ef.path(e),"Property name '"+n+"' does not fit the property schema")}}static checkRequired(e,t,r){for(let s of t.getRequired()??[])if(l(r[s]))throw new Z(ef.path(e),t.getProperties()?.get(s)?.getDetails()?.getValidationMessage("mandatory")??s+" is mandatory")}static async checkAdditionalProperties(e,t,r,s,n){let a=t.getAdditionalProperties();if(a.getSchemaValue())for(let t of Array.from(n.values())){let n=e?[...e]:[];s[t]=await ef.validate(n,a.getSchemaValue(),r,s[t])}else if(!1===a.getBooleanValue()&&n.size)throw new Z(ef.path(e),Array.from(n)+" is/are additional properties which are not allowed.")}static async checkPatternProperties(e,t,r,s,n){let a=new Map;for(let e of Array.from(t.getPatternProperties().keys()))a.set(e,new RegExp(e));for(let i of Array.from(n.values())){let o=e?[...e]:[];for(let e of Array.from(a.entries()))if(e[1].test(i)){s[i]=await ef.validate(o,t.getPatternProperties().get(e[0]),r,s[i]),n.delete(i);break}}}static async checkProperties(e,t,r,s,n,a,i){for(let o of Array.from(t.getProperties())){let t=s[o[0]];if(!s.hasOwnProperty(o[0])&&l(t)&&l(await ee.getDefaultValue(o[1],r)))continue;let E=e?[...e]:[];s[o[0]]=await ef.validate(E,o[1],r,t,a,i),n.delete(o[0])}}static checkMinMaxProperties(e,t,r){if(t.getMinProperties()&&r.size<t.getMinProperties())throw new Z(ef.path(e),"Object should have minimum of "+t.getMinProperties()+" properties");if(t.getMaxProperties()&&r.size>t.getMaxProperties())throw new Z(ef.path(e),"Object can have maximum of "+t.getMaxProperties()+" properties")}}t({},"StringValidator",()=>eu),t({},"StringFormat",()=>eE);var eE=((a={}).DATETIME="DATETIME",a.TIME="TIME",a.DATE="DATE",a.EMAIL="EMAIL",a.REGEX="REGEX",a);class eu{static{this.TIME=/^([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?([+-][01][0-9]:[0-5][0-9])?$/}static{this.DATE=/^[0-9]{4,4}-([0][0-9]|[1][0-2])-(0[1-9]|[1-2][1-9]|3[01])$/}static{this.DATETIME=/^[0-9]{4,4}-([0][0-9]|[1][0-2])-(0[1-9]|[1-2][1-9]|3[01])T([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?([+-][01][0-9]:[0-5][0-9])?$/}static{this.EMAIL=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/}static validate(e,t,r){if(l(r)||"string"!=typeof r)throw new Z(ef.path(e),`Expected a string but found ${er.formatValue(r)}`);t.getFormat()==eE.TIME?eu.patternMatcher(e,t,r,eu.TIME,"time pattern"):t.getFormat()==eE.DATE?eu.patternMatcher(e,t,r,eu.DATE,"date pattern"):t.getFormat()==eE.DATETIME?eu.patternMatcher(e,t,r,eu.DATETIME,"date time pattern"):t.getFormat()==eE.EMAIL?eu.patternMatcher(e,t,r,eu.EMAIL,"email pattern"):t.getPattern()&&eu.patternMatcher(e,t,r,new RegExp(t.getPattern()),"pattern "+t.getPattern());let s=r.length;if(t.getMinLength()&&s<t.getMinLength())throw new Z(ef.path(e),t.getDetails()?.getValidationMessage("minLength")??"Expected a minimum of "+t.getMinLength()+" characters");if(t.getMaxLength()&&s>t.getMaxLength())throw new Z(ef.path(e),t.getDetails()?.getValidationMessage("maxLength")??"Expected a maximum of "+t.getMaxLength()+" characters");return r}static patternMatcher(e,t,r,s,n){if(!s.test(r))throw new Z(ef.path(e),t.getDetails()?.getValidationMessage("pattern")??r.toString()+" is not matched with the "+n)}}var eh=((i={}).STRICT="STRICT",i.LENIENT="LENIENT",i.USE_DEFAULT="USE_DEFAULT",i.SKIP="SKIP",i);class eA extends Error{constructor(e,t,r,s,n=[],a){super(r+(n?n.map(e=>e.message).reduce((e,t)=>e+"\n"+t,""):"")),this.schemaPath=e,this.source=t??null,this.mode=s??null,this.cause=a}getSchemaPath(){return this.schemaPath}getSource(){return this.source??null}getMode(){return this.mode??null}getCause(){return this.cause}}class el{static handleUnConvertibleValue(e,t,r,s){return this.handleUnConvertibleValueWithDefault(e,t,r,null,s)}static handleUnConvertibleValueWithDefault(e,t,r,s,n){switch(null===t&&(t=eh.STRICT),t){case eh.STRICT:throw new eA(ef.path(e),r,n,t);case eh.LENIENT:return null;case eh.USE_DEFAULT:return s;case eh.SKIP:return r;default:throw new eA(ef.path(e),r,"Invalid conversion mode")}}}class ec{static convert(e,t,r,s){if(l(s))return el.handleUnConvertibleValueWithDefault(e,r,s,this.getDefault(t),"Expected a string but found null");let n=s??("object"==typeof s?JSON.stringify(s):String(s));return this.getConvertedString(n,r)}static getConvertedString(e,t){return t===eh.STRICT?e.toString():e.trim()}static getDefault(e){return e.getDefaultValue()??null}}class eT{static convert(e,t,r,s,n){if(l(n))return el.handleUnConvertibleValueWithDefault(e,s,n,this.getDefault(r),"Expected a number but found null");if("object"==typeof n||"boolean"==typeof n||Array.isArray(n)||"string"==typeof n&&isNaN(n=Number(n)))return el.handleUnConvertibleValueWithDefault(e,s,n,this.getDefault(r),n+" is not a "+t);let a=this.extractNumber(t,n,s);return null===a?el.handleUnConvertibleValueWithDefault(e,s,n,this.getDefault(r),n+" is not a "+t):a}static extractNumber(e,t,r){if("number"!=typeof t)return null;switch(e){case T.INTEGER:return this.isInteger(t,r)?Math.floor(t):null;case T.LONG:return this.isLong(t,r)?Math.floor(t):null;case T.DOUBLE:return t;case T.FLOAT:return this.isFloat(t,r)?t:null;default:return null}}static isInteger(e,t){return t!==eh.STRICT?"number"==typeof e:Number.isInteger(e)}static isLong(e,t){return t!==eh.STRICT?"number"==typeof e:Number.isInteger(e)&&e>=Number.MIN_SAFE_INTEGER&&e<=Number.MAX_SAFE_INTEGER}static isFloat(e,t){return t!==eh.STRICT?"number"==typeof e:e>=-Number.MAX_VALUE&&e<=Number.MAX_VALUE}static getDefault(e){return"number"==typeof e.getDefaultValue()?Number(e.getDefaultValue):null}}class eg{static{this.BOOLEAN_MAP={true:!0,t:!0,yes:!0,y:!0,1:!0,false:!1,f:!1,no:!1,n:!1,0:!1}}static convert(e,t,r,s){return null==s?el.handleUnConvertibleValueWithDefault(e,r,s,this.getDefault(t),"Expected a boolean but found null"):this.getBooleanPrimitive(s)??el.handleUnConvertibleValueWithDefault(e,r,s,this.getDefault(t),"Unable to convert to boolean")}static getBooleanPrimitive(e){return"boolean"==typeof e?e:"string"==typeof e?this.handleStringValue(e):"number"==typeof e?this.handleNumberValue(e):null}static handleStringValue(e){let t=e.toLowerCase().trim();return eg.BOOLEAN_MAP[t]??null}static handleNumberValue(e){return 0===e||1===e?1===e:null}static getDefault(e){return e.getDefaultValue()??!1}}class ep{static convert(e,t,r,s){return l(s)?s:"string"==typeof s&&"null"===s.toLowerCase()?null:el.handleUnConvertibleValueWithDefault(e,r,s,null,"Unable to convert to null")}}class eR{static handleValidationError(e,t,r,s,n){switch(t=t??eh.STRICT){case eh.STRICT:throw new Z(ef.path(e),n);case eh.LENIENT:return null;case eh.USE_DEFAULT:return s;case eh.SKIP:return r}}}class em{static async validate(e,t,r,s,n,a,i){return t==T.OBJECT?await eo.validate(e,r,s,n,a,i):t==T.ARRAY?await es.validate(e,r,s,n,a,i):this.handleTypeValidationAndConversion(e,t,r,n,a,i)}static async handleTypeValidationAndConversion(e,t,r,s,n,a){let i=n?this.convertElement(e,t,r,s,a??eh.STRICT):s;return await this.validateElement(e,t,r,i,a??eh.STRICT)}static convertElement(e,t,r,s,n){if(l(t))return el.handleUnConvertibleValueWithDefault(e,n,s,r.getDefaultValue()??null,H.format("$ is not a valid type for conversion.",t));switch(t){case T.STRING:return ec.convert(e,r,n,s);case T.INTEGER:case T.LONG:case T.DOUBLE:case T.FLOAT:return eT.convert(e,t,r,n,s);case T.BOOLEAN:return eg.convert(e,r,n,s);case T.NULL:return ep.convert(e,r,n,s);default:return el.handleUnConvertibleValueWithDefault(e,n,s,r.getDefaultValue()??null,H.format("$ is not a valid type for conversion.",t))}}static validateElement(e,t,r,s,n){if(l(t))return eR.handleValidationError(e,n,s,r.getDefaultValue()??null,H.format("$ is not a valid type.",t));switch(t){case T.STRING:return eu.validate(e,r,s);case T.INTEGER:case T.LONG:case T.DOUBLE:case T.FLOAT:return ei.validate(t,e,r,s);case T.BOOLEAN:return en.validate(e,r,s);case T.NULL:return ea.validate(e,r,s);default:return eR.handleValidationError(e,n,s,r.getDefaultValue()??null,H.format("$ is not a valid type.",t))}}}class ef{static{this.ORDER={[T.OBJECT]:0,[T.ARRAY]:1,[T.DOUBLE]:2,[T.FLOAT]:3,[T.LONG]:4,[T.INTEGER]:5,[T.STRING]:6,[T.BOOLEAN]:7,[T.NULL]:8}}static path(e){return e?e.map(e=>e.getTitle()??"").filter(e=>!!e).reduce((e,t,r)=>e+(0===r?"":".")+t,""):""}static async validate(e,t,r,s,n,a){if(!t)throw new Z(ef.path(e),"No schema found to validate");if(e||(e=[]),e.push(t),l(s)&&!l(t.getDefaultValue()))return JSON.parse(JSON.stringify(t.getDefaultValue()));if(!l(t.getConstant()))return ef.constantValidation(e,t,s);if(t.getEnums()?.length)return ef.enumCheck(e,t,s);if(t.getFormat()&&l(t.getType()))throw new Z(this.path(e),"Type is missing in schema for declared "+t.getFormat()?.toString()+" format.");if(!0===n&&l(t.getType()))throw new Z(this.path(e),"Type is missing in schema for declared "+a);if(t.getType()&&(s=await ef.typeValidation(e,t,r,s,n,a)),!J.isNullOrBlank(t.getRef()))return await ef.validate(e,await ee.getSchemaFromRef(e[0],r,t.getRef()),r,s,n,a);if((t.getOneOf()||t.getAllOf()||t.getAnyOf())&&(s=await et.validate(e,t,r,s,n,a)),t.getNot()){let i;try{await ef.validate(e,t.getNot(),r,s,n,a),i=!0}catch(e){i=!1}if(i)throw new Z(ef.path(e),"Schema validated value in not condition.")}return s}static constantValidation(e,t,r){if(!X(t.getConstant(),r))throw new Z(ef.path(e),"Expecting a constant value : "+r);return r}static enumCheck(e,t,r){let s=!1;for(let e of t.getEnums()??[])if(e===r){s=!0;break}if(s)return r;throw new Z(ef.path(e),"Value is not one of "+t.getEnums())}static async typeValidation(e,t,r,s,n,a){let i=Array.from(t.getType()?.getAllowedSchemaTypes()?.values()??[]).sort((e,t)=>(this.ORDER[e]??1/0)-(this.ORDER[t]??1/0)),o=[];for(let E of i)try{return await em.validate(e,E,t,r,s,n,a)}catch(e){o.push(e)}if(1==o.length)throw new Z(ef.path(e),o[0].message);throw new Z(ef.path(e),"Value "+JSON.stringify(s)+" is not of valid type(s)",o)}}class eN{async validateArguments(e,t,r){let s=new Map;for(let n of Array.from(this.getSignature().getParameters().entries())){let a=n[1];try{let r=await this.validateArgument(e,t,n,a);s.set(r.getT1(),r.getT2())}catch(i){let e=this.getSignature(),t=er.formatFunctionName(e.getNamespace(),e.getName()),s=er.formatStatementName(r?.getStatement().getStatementName()),n=er.formatErrorMessage(i);throw new B(er.buildFunctionExecutionError(t,s,n,a.getParameterName(),a.getSchema()))}}return s}async validateArgument(e,t,r,s){let n,a=r[0],i=e.get(r[0]);if(l(i)&&!s.isVariableArgument())return new q(a,await ef.validate(void 0,s.getSchema(),t,void 0));if(!s?.isVariableArgument())return new q(a,await ef.validate(void 0,s.getSchema(),t,i));Array.isArray(i)?n=i:(n=[],l(i)?l(s.getSchema().getDefaultValue())||n.push(s.getSchema().getDefaultValue()):n.push(i));for(let e=0;e<n.length;e++)n[e]=await ef.validate(void 0,s.getSchema(),t,n[e]);return new q(a,n)}async execute(e){let t=await this.validateArguments(e.getArguments()??new Map,e.getSchemaRepository(),e.getStatementExecution());e.setArguments(t);try{return await this.internalExecute(e)}catch(a){let t=this.getSignature(),r=er.formatFunctionName(t.getNamespace(),t.getName()),s=er.formatStatementName(e.getStatementExecution()?.getStatement().getStatementName()),n=er.formatErrorMessage(a);throw new B(er.buildFunctionExecutionError(r,s,n))}}getProbableEventSignature(e){return this.getSignature().getEvents()}}class e_ extends eN{static{this.EVENT_INDEX_NAME="index"}static{this.EVENT_RESULT_NAME="result"}static{this.EVENT_INDEX=new $($.OUTPUT,V.of(e_.EVENT_INDEX_NAME,y.ofInteger(e_.EVENT_INDEX_NAME)))}static{this.EVENT_RESULT_INTEGER=new $($.OUTPUT,V.of(e_.EVENT_RESULT_NAME,y.ofInteger(e_.EVENT_RESULT_NAME)))}static{this.EVENT_RESULT_BOOLEAN=new $($.OUTPUT,V.of(e_.EVENT_RESULT_NAME,y.ofBoolean(e_.EVENT_RESULT_NAME)))}static{this.EVENT_RESULT_ARRAY=new $($.OUTPUT,V.of(e_.EVENT_RESULT_NAME,y.ofArray(e_.EVENT_RESULT_NAME,y.ofAny(e_.EVENT_RESULT_NAME))))}static{this.EVENT_RESULT_EMPTY=new $($.OUTPUT,V.of())}static{this.EVENT_RESULT_ANY=new $($.OUTPUT,V.of(this.EVENT_RESULT_NAME,y.ofAny(this.EVENT_RESULT_NAME)))}static{this.EVENT_RESULT_OBJECT=new $($.OUTPUT,V.of(this.EVENT_RESULT_NAME,y.ofObject(this.EVENT_RESULT_NAME)))}static{this.PARAMETER_INT_LENGTH=v.of("length",y.ofInteger("length").setDefaultValue(-1))}static{this.PARAMETER_ARRAY_FIND=v.of("find",y.ofArray("eachFind",y.ofAny("eachFind")))}static{this.PARAMETER_INT_SOURCE_FROM=v.of("srcFrom",y.ofInteger("srcFrom").setDefaultValue(0).setMinimum(0))}static{this.PARAMETER_INT_SECOND_SOURCE_FROM=v.of("secondSrcFrom",y.ofInteger("secondSrcFrom").setDefaultValue(0))}static{this.PARAMETER_INT_FIND_FROM=v.of("findFrom",y.ofInteger("findFrom").setDefaultValue(0))}static{this.PARAMETER_INT_OFFSET=v.of("offset",y.ofInteger("offset").setDefaultValue(0))}static{this.PARAMETER_ROTATE_LENGTH=v.of("rotateLength",y.ofInteger("rotateLength").setDefaultValue(1).setMinimum(1))}static{this.PARAMETER_BOOLEAN_ASCENDING=v.of("ascending",y.ofBoolean("ascending").setDefaultValue(!0))}static{this.PARAMETER_KEY_PATH=v.of("keyPath",y.ofString("keyPath").setDefaultValue(""))}static{this.PARAMETER_FIND_PRIMITIVE=v.of("findPrimitive",y.of("findPrimitive",T.STRING,T.DOUBLE,T.FLOAT,T.INTEGER,T.LONG))}static{this.PARAMETER_ARRAY_SOURCE=v.of("source",y.ofArray("eachSource",y.ofAny("eachSource")))}static{this.PARAMETER_ARRAY_SECOND_SOURCE=v.of("secondSource",y.ofArray("eachSecondSource",y.ofAny("eachSecondSource")))}static{this.PARAMETER_ARRAY_SOURCE_PRIMITIVE=v.of("source",y.ofArray("eachSource",new y().setName("eachSource").setType(m.of(T.STRING,T.NULL,T.INTEGER,T.FLOAT,T.DOUBLE,T.LONG))))}static{this.PARAMETER_BOOLEAN_DEEP_COPY=v.of("deepCopy",y.ofBoolean("deepCopy").setDefaultValue(!0))}static{this.PARAMETER_ANY=v.of("element",y.ofAny("element"))}static{this.PARAMETER_ANY_ELEMENT_OBJECT=v.of("elementObject",y.ofAny("elementObject"))}static{this.PARAMETER_ANY_VAR_ARGS=v.of("element",y.ofAny("element")).setVariableArgument(!0)}static{this.PARAMETER_ARRAY_RESULT=v.of(e_.EVENT_RESULT_NAME,y.ofArray("eachResult",y.ofAny("eachResult")))}constructor(e,t,r){super();let s=new Map;for(let e of t)s.set(e.getParameterName(),e);this.signature=new Y(e).setNamespace(A.SYSTEM_ARRAY).setParameters(s).setEvents(V.of(r.getName(),r))}getSignature(){return this.signature}}class eM extends e_{constructor(){super("Concatenate",[e_.PARAMETER_ARRAY_SOURCE,e_.PARAMETER_ARRAY_SECOND_SOURCE],e_.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(e_.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e_.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName());return new F([k.outputOf(new Map([[e_.EVENT_RESULT_NAME,[...t,...r]]]))])}}class eS extends e_{constructor(){super("AddFirst",[e_.PARAMETER_ARRAY_SOURCE,e_.PARAMETER_ANY],e_.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(e_.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e_.PARAMETER_ANY.getParameterName());if(0==(t=[...t]).length)return t.push(r),new F([k.outputOf(new Map([]))]);t.push(r);let s=t.length-1;for(;s>0;){let e=t[s-1];t[s-1]=t[s],t[s--]=e}return new F([k.outputOf(new Map([[e_.EVENT_RESULT_NAME,t]]))])}}let ed="keyName";class eO extends e_{constructor(){super("ArrayToArrayOfObjects",[e_.PARAMETER_ARRAY_SOURCE,v.of(ed,y.ofString(ed),!0)],e_.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eO.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ed);if(!t?.length)return new F([k.outputOf(new Map([[e_.EVENT_RESULT_NAME,[]]]))]);let s=t.map(e=>{let t={};if(Array.isArray(e))if(r.length)r.forEach((r,s)=>{t[r]=e[s]});else for(let r=0;r<e.length;r++)t[`value${r+1}`]=e[r];else t[r.length?r[0]:"value"]=e;return t});return new F([k.outputOf(new Map([[e_.EVENT_RESULT_NAME,s]]))])}}t({},"PrimitiveUtil",()=>ew),t({},"ExecutionException",()=>eI);class eI extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class ew{static findPrimitiveNullAsBoolean(e){if(l(e))return new q(T.BOOLEAN,!1);let t=typeof e;if("object"===t)throw new eI(H.format("$ is not a primitive type",e));return"boolean"===t?new q(T.BOOLEAN,e):"string"===t?new q(T.STRING,e):ew.findPrimitiveNumberType(e)}static findPrimitive(e){if(l(e))return new q(T.NULL,void 0);let t=typeof e;if("object"===t)throw new eI(H.format("$ is not a primitive type",e));return"boolean"===t?new q(T.BOOLEAN,e):"string"===t?new q(T.STRING,e):ew.findPrimitiveNumberType(e)}static findPrimitiveNumberType(e){if(l(e)||Array.isArray(e)||"object"==typeof e)throw new eI(H.format("Unable to convert $ to a number.",e));try{if(Number.isInteger(e))return new q(T.LONG,e);return new q(T.DOUBLE,e)}catch(t){throw new eI(H.format("Unable to convert $ to a number.",e),t)}}static compare(e,t){if(e==t)return 0;if(l(e)||l(t))return l(e)?-1:1;if(Array.isArray(e)||Array.isArray(t)){if(Array.isArray(e)&&Array.isArray(t)){if(e.length!=t.length)return e.length-t.length;for(let r=0;r<e.length;r++){let s=this.compare(e[r],t[r]);if(0!=s)return s}return 0}return Array.isArray(e)?-1:1}let r=typeof e,s=typeof t;return"object"===r||"object"===s?("object"===r&&"object"===s&&Object.keys(e).forEach(r=>{let s=this.compare(e[r],t[r]);if(0!=s)return s}),"object"===r?-1:1):this.comparePrimitive(e,t)}static comparePrimitive(e,t){return l(e)||l(t)?l(e)&&l(t)?0:l(e)?-1:1:e==t?0:"boolean"==typeof e||"boolean"==typeof t?e?-1:1:"string"==typeof e||"string"==typeof t?e+""<t+""?-1:1:"number"==typeof e||"number"==typeof t?e-t:0}static baseNumberType(e){return Number.isInteger(e)?T.LONG:T.DOUBLE}static toPrimitiveType(e){return e}}class eP extends e_{constructor(){super("BinarySearch",[eP.PARAMETER_ARRAY_SOURCE_PRIMITIVE,eP.PARAMETER_INT_SOURCE_FROM,eP.PARAMETER_FIND_PRIMITIVE,eP.PARAMETER_INT_LENGTH],eP.EVENT_INDEX)}async internalExecute(e){let t=e?.getArguments()?.get(eP.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eP.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eP.PARAMETER_FIND_PRIMITIVE.getParameterName()),n=e?.getArguments()?.get(eP.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length||r<0||r>t.length)throw new B("Search source array cannot be empty");if(-1==n&&(n=t.length-r),(n=r+n)>t.length)throw new B("End point for array cannot be more than the size of the source array");let a=-1;for(;r<=n;){let e=Math.floor((r+n)/2);if(0==ew.compare(t[e],s)){a=e;break}ew.compare(t[e],s)>0?n=e-1:r=e+1}return new F([k.outputOf(new Map([[eP.EVENT_INDEX_NAME,a]]))])}}t({},"ArrayUtil",()=>ey);class ey{static removeAListFrom(e,t){if(!t||!e||!e.length||!t.length)return;let r=new Set(t);for(let t=0;t<e.length;t++)r.has(e[t])&&(e.splice(t,1),t--)}static of(...e){let t=Array(e.length);for(let r=0;r<e.length;r++)t[r]=e[r];return t}}class ex extends e_{constructor(){super("Compare",ey.of(ex.PARAMETER_ARRAY_SOURCE,ex.PARAMETER_INT_SOURCE_FROM,ex.PARAMETER_ARRAY_FIND,ex.PARAMETER_INT_FIND_FROM,ex.PARAMETER_INT_LENGTH),ex.EVENT_RESULT_INTEGER)}async internalExecute(e){var t=e?.getArguments()?.get(ex.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ex.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(ex.PARAMETER_ARRAY_FIND.getParameterName()),n=e?.getArguments()?.get(ex.PARAMETER_INT_FIND_FROM.getParameterName()),a=e?.getArguments()?.get(ex.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new B("Compare source array cannot be empty");if(0==s.length)throw new B("Compare find array cannot be empty");if(-1==a&&(a=t.length-r),r+a>t.length)throw new B(H.format("Source array size $ is less than comparing size $",t.length,r+a));if(n+a>s.length)throw new B(H.format("Find array size $ is less than comparing size $",s.length,n+a));return new F(ey.of(k.outputOf(V.of(ex.EVENT_RESULT_NAME,this.compare(t,r,r+a,s,n,n+a)))))}compare(e,t,r,s,n,a){if(r<t){let e=t;t=r,r=e}if(a<n){let e=n;n=a,a=e}if(r-t!=a-n)throw new B(H.format("Cannot compare uneven arrays from $ to $ in source array with $ to $ in find array",r,t,a,n));for(let a=t,i=n;a<r;a++,i++){let t=1;if(l(e[a])||l(s[i])){let r=l(e[a]);r==l(s[i])?t=0:r&&(t=-1)}else{let r=typeof e[a],n=typeof s[i];if("object"===r||"object"===n)t=1;else if("string"===r||"string"===n){let r=""+e[a],n=""+s[i];r===n?t=0:r<n&&(t=-1)}else"boolean"===r||"boolean"===n?t=+(r!=n):"number"===r&&"number"===n&&(t=e[a]-s[i])}if(0!=t)return t}return 0}}function eL(e){return e?"function"==typeof globalThis.structuredClone?globalThis.structuredClone(e):JSON.parse(JSON.stringify(e)):e}t({},"duplicate",()=>eL);class eb extends e_{constructor(){super("Copy",[eb.PARAMETER_ARRAY_SOURCE,eb.PARAMETER_INT_SOURCE_FROM,eb.PARAMETER_INT_LENGTH,eb.PARAMETER_BOOLEAN_DEEP_COPY],eb.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(eb.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eb.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eb.PARAMETER_INT_LENGTH.getParameterName());if(-1==s&&(s=t.length-r),r+s>t.length)throw new B(H.format("Array has no elements from $ to $ as the array size is $",r,r+s,t.length));var n=e?.getArguments()?.get(eb.PARAMETER_BOOLEAN_DEEP_COPY.getParameterName());let a=Array(s);for(let e=r;e<r+s;e++)l(t[e])||(a[e-r]=n?eL(t[e]):t[e]);return new F([k.outputOf(V.of(eb.EVENT_RESULT_NAME,a))])}}class ev extends e_{constructor(){super("Delete",[e_.PARAMETER_ARRAY_SOURCE,e_.PARAMETER_ANY_VAR_ARGS],e_.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(ev.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ev.PARAMETER_ANY_VAR_ARGS.getParameterName());if(null==r)throw new B("The deletable var args are empty. So cannot be proceeded further.");if(0==t.length||0==r.length)throw new B("Expected a source or deletable for an array but not found any");let s=new Set;for(let e=t.length-1;e>=0;e--)for(let n=0;n<r.length;n++)s.has(e)||0!=ew.compare(t[e],r[n])||s.add(t[e]);return new F([k.outputOf(new Map([[e_.EVENT_RESULT_NAME,t.filter(e=>!s.has(e))]]))])}}class eU extends e_{constructor(){super("DeleteFirst",[eU.PARAMETER_ARRAY_SOURCE],eU.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eU.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new B("Given source array is empty");return(t=[...t]).shift(),new F([k.outputOf(new Map([[e_.EVENT_RESULT_NAME,t]]))])}}class eV extends e_{constructor(){super("DeleteFrom",[eV.PARAMETER_ARRAY_SOURCE,eV.PARAMETER_INT_SOURCE_FROM,eV.PARAMETER_INT_LENGTH],eV.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eV.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eV.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eV.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new B("There are no elements to be deleted");if(r>=(t=[...t]).length||r<0)throw new B("The int source for the array should be in between 0 and length of the array ");if(-1==s&&(s=t.length-r),r+s>t.length)throw new B("Requested length to be deleted is more than the size of array ");return t.splice(r,s),new F([k.outputOf(new Map([[e_.EVENT_RESULT_NAME,t]]))])}}class eC extends e_{constructor(){super("DeleteLast",[eC.PARAMETER_ARRAY_SOURCE],eC.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eC.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new B("Given source array is empty");return(t=[...t]).pop(),new F([k.outputOf(new Map([[e_.EVENT_RESULT_NAME,t]]))])}}class eD extends e_{constructor(){super("Disjoint",[eD.PARAMETER_ARRAY_SOURCE,eD.PARAMETER_INT_SOURCE_FROM,eD.PARAMETER_ARRAY_SECOND_SOURCE,eD.PARAMETER_INT_SECOND_SOURCE_FROM,eD.PARAMETER_INT_LENGTH],eD.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eD.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eD.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eD.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(eD.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(eD.PARAMETER_INT_LENGTH.getParameterName());if(-1==a&&(a=t.length<=s.length?t.length-r:s.length-n),a>t.length||a>s.length||r+a>t.length||n+a>s.length)throw new B("The length which was being requested is more than than the size either source array or second source array");let i=new Set,o=new Set;for(let e=0;e<a;e++)i.add(t[e+r]);for(let e=0;e<a;e++)o.add(s[e+n]);let E=new Set;return i.forEach(e=>{o.has(e)?o.delete(e):E.add(e)}),o.forEach(e=>{i.has(e)||E.add(e)}),new F([k.outputOf(new Map([[eD.EVENT_RESULT_NAME,[...E]]]))])}}class eG extends e_{constructor(){super("Equals",[eG.PARAMETER_ARRAY_SOURCE,eG.PARAMETER_INT_SOURCE_FROM,eG.PARAMETER_ARRAY_FIND,eG.PARAMETER_INT_FIND_FROM,eG.PARAMETER_INT_LENGTH],eG.EVENT_RESULT_BOOLEAN)}async internalExecute(e){let t=new ex,r=(await t.execute(e)).allResults()[0].getResult().get(eG.EVENT_RESULT_NAME);return new F([k.outputOf(V.of(eG.EVENT_RESULT_NAME,0==r))])}}class e$ extends e_{constructor(){super("Fill",[e$.PARAMETER_ARRAY_SOURCE,e$.PARAMETER_INT_SOURCE_FROM,e$.PARAMETER_INT_LENGTH,e$.PARAMETER_ANY],e$.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(e$.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e$.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(e$.PARAMETER_INT_LENGTH.getParameterName()),n=e?.getArguments()?.get(e$.PARAMETER_ANY.getParameterName());if(r<0)throw new B(H.format("Arrays out of bound trying to access $ index",r));-1==s&&(s=t.length-r);let a=r+s-t.length;if(t=[...t],a>0)for(let e=0;e<a;e++)t.push();for(let e=r;e<r+s;e++)t[e]=l(n)?n:eL(n);return new F([k.outputOf(V.of(e_.EVENT_RESULT_NAME,t))])}}class ek extends e_{constructor(){super("Frequency",[ek.PARAMETER_ARRAY_SOURCE,ek.PARAMETER_ANY,ek.PARAMETER_INT_SOURCE_FROM,ek.PARAMETER_INT_LENGTH],ek.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(ek.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ek.PARAMETER_ANY.getParameterName()),s=e?.getArguments()?.get(ek.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(ek.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)return new F([k.outputOf(new Map([[ek.EVENT_RESULT_NAME,0]]))]);if(s>t.length)throw new B("Given start point is more than the size of source");let a=s+n;if(-1==n&&(a=t.length-s),a>t.length)throw new B("Given length is more than the size of source");let i=0;for(let e=s;e<a&&e<t.length;e++)0==ew.compare(t[e],r)&&i++;return new F([k.outputOf(new Map([[ek.EVENT_RESULT_NAME,i]]))])}}class eB extends e_{constructor(){super("IndexOf",[eB.PARAMETER_ARRAY_SOURCE,eB.PARAMETER_ANY_ELEMENT_OBJECT,eB.PARAMETER_INT_FIND_FROM],eB.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eB.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eB.PARAMETER_ANY_ELEMENT_OBJECT.getParameterName()),s=e?.getArguments()?.get(eB.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new F([k.outputOf(new Map([[eB.EVENT_RESULT_NAME,-1]]))]);if(s<0||s>t.length)throw new B("The size of the search index of the array is greater than the size of the array");let n=-1;for(let e=s;e<t.length;e++)if(0==ew.compare(t[e],r)){n=e;break}return new F([k.outputOf(new Map([[eB.EVENT_RESULT_NAME,n]]))])}}class eF extends e_{constructor(){super("IndexOfArray",[eF.PARAMETER_ARRAY_SOURCE,eF.PARAMETER_ARRAY_SECOND_SOURCE,eF.PARAMETER_INT_FIND_FROM],eF.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eF.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eF.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(eF.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length||0==r.length)return new F([k.outputOf(new Map([[eF.EVENT_RESULT_NAME,-1]]))]);if(s<0||s>t.length||t.length<r.length)throw new B("Given from second source is more than the size of the source array");let n=r.length,a=-1;for(let e=s;e<t.length;e++){let s=0;if(0==ew.compare(t[e],r[s])){for(;s<n&&0==ew.compare(t[e+s],r[s]);)s++;if(s==n){a=e;break}}}return new F([k.outputOf(new Map([[eF.EVENT_RESULT_NAME,a]]))])}}class eY extends e_{constructor(){super("LastIndexOf",[eY.PARAMETER_ARRAY_SOURCE,eY.PARAMETER_ANY_ELEMENT_OBJECT,eY.PARAMETER_INT_FIND_FROM],eY.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eY.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eY.PARAMETER_ANY_ELEMENT_OBJECT.getParameterName()),s=e?.getArguments()?.get(eY.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new F([k.outputOf(new Map([[eY.EVENT_RESULT_NAME,-1]]))]);if(s<0||s>t.length)throw new B("The value of length shouldn't the exceed the size of the array or shouldn't be in terms");let n=-1;for(let e=t.length-1;e>=s;e--)if(0==ew.compare(t[e],r)){n=e;break}return new F([k.outputOf(new Map([[eY.EVENT_RESULT_NAME,n]]))])}}class eH extends e_{constructor(){super("LastIndexOfArray",[eH.PARAMETER_ARRAY_SOURCE,eH.PARAMETER_ARRAY_SECOND_SOURCE,eH.PARAMETER_INT_FIND_FROM],eH.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eH.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eH.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(eH.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new F([k.outputOf(new Map([[eH.EVENT_RESULT_NAME,-1]]))]);if(s<0||s>t.length||r.length>t.length)throw new B("Given from index is more than the size of the source array");let n=r.length,a=-1;for(let e=s;e<t.length;e++){let s=0;if(0==ew.compare(t[e],r[s])){for(;s<n&&0==ew.compare(t[e+s],r[s]);)s++;s==n&&(a=e)}}return new F([k.outputOf(new Map([[eH.EVENT_RESULT_NAME,a]]))])}}class ej extends e_{constructor(){super("Max",[ej.PARAMETER_ARRAY_SOURCE_PRIMITIVE],ej.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(ej.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==t.length)throw new B("Search source array cannot be empty");let r=t[0];for(let e=1;e<t.length;e++){let s=t[e];ew.comparePrimitive(r,s)>=0||(r=s)}return new F([k.outputOf(new Map([[ej.EVENT_RESULT_NAME,r]]))])}}class eW extends e_{constructor(){super("Min",[eW.PARAMETER_ARRAY_SOURCE_PRIMITIVE],eW.EVENT_RESULT_ANY)}async internalExecute(e){let t,r=e?.getArguments()?.get(eW.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==r.length)throw new B("Search source array cannot be empty");for(let e=0;e<r.length;e++)!l(r[e])&&(void 0===t||0>ew.comparePrimitive(r[e],t))&&(t=r[e]);return new F([k.outputOf(new Map([[eW.EVENT_RESULT_NAME,t]]))])}}class eX extends e_{constructor(){super("MisMatch",[eX.PARAMETER_ARRAY_SOURCE,eX.PARAMETER_INT_FIND_FROM,eX.PARAMETER_ARRAY_SECOND_SOURCE,eX.PARAMETER_INT_SECOND_SOURCE_FROM,eX.PARAMETER_INT_LENGTH],eX.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eX.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eX.PARAMETER_INT_FIND_FROM.getParameterName()),s=e?.getArguments()?.get(eX.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(eX.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(eX.PARAMETER_INT_LENGTH.getParameterName()),i=r<t.length&&r>0?r:0,o=n<s.length&&n>0?n:0;if(i+a>=t.length||o+a>s.length)throw new B("The size of the array for first and second which was being requested is more than size of the given array");let E=-1;for(let e=0;e<a;e++)if(t[i+e]!=s[o+e]){E=e;break}return new F([k.outputOf(new Map([[eX.EVENT_RESULT_NAME,E]]))])}}class eJ extends e_{constructor(){super("Reverse",[eJ.PARAMETER_ARRAY_SOURCE,eJ.PARAMETER_INT_SOURCE_FROM,eJ.PARAMETER_INT_LENGTH],eJ.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eJ.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eJ.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eJ.PARAMETER_INT_LENGTH.getParameterName());if(-1==s&&(s=t.length-r),s>=t.length||s<0||r<0)throw new B("Please provide start point between the start and end indexes or provide the length which was less than the source size ");t=[...t];let n=r+s-1;for(;r<=n;){let e=t[r],s=t[n];t[r++]=s,t[n--]=e}return new F([k.outputOf(new Map([[eJ.EVENT_RESULT_NAME,t]]))])}}class eK extends e_{constructor(){super("Rotate",[eK.PARAMETER_ARRAY_SOURCE,eK.PARAMETER_ROTATE_LENGTH],eK.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eK.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eK.PARAMETER_ROTATE_LENGTH.getParameterName());if(0==t.length)return new F([k.outputOf(new Map([[e_.EVENT_RESULT_NAME,t]]))]);let s=(t=[...t]).length;return r%=s,this.rotate(t,0,r-1),this.rotate(t,r,s-1),this.rotate(t,0,s-1),new F([k.outputOf(new Map([[e_.EVENT_RESULT_NAME,t]]))])}rotate(e,t,r){for(;t<r;){let s=e[t];e[t++]=e[r],e[r--]=s}}}class eq extends e_{constructor(){super("Shuffle",[eq.PARAMETER_ARRAY_SOURCE],eq.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eq.PARAMETER_ARRAY_SOURCE.getParameterName());if(t.length<=1)return new F([k.outputOf(new Map([[e_.EVENT_RESULT_NAME,t]]))]);let r=0,s=(t=[...t]).length;for(let e=0;e<s;e++){let e=Math.floor(Math.random()*s)%s,n=t[r];t[r]=t[e],t[e]=n,r=e}return new F([k.outputOf(new Map([[e_.EVENT_RESULT_NAME,t]]))])}}t({},"ObjectValueSetterExtractor",()=>e0),t({},"Operation",()=>ez);class ez{static{this.MULTIPLICATION=new ez("*")}static{this.DIVISION=new ez("/")}static{this.INTEGER_DIVISION=new ez("//")}static{this.MOD=new ez("%")}static{this.ADDITION=new ez("+")}static{this.SUBTRACTION=new ez("-")}static{this.NOT=new ez("not",void 0,!0)}static{this.AND=new ez("and",void 0,!0)}static{this.OR=new ez("or",void 0,!0)}static{this.LESS_THAN=new ez("<")}static{this.LESS_THAN_EQUAL=new ez("<=")}static{this.GREATER_THAN=new ez(">")}static{this.GREATER_THAN_EQUAL=new ez(">=")}static{this.EQUAL=new ez("=")}static{this.NOT_EQUAL=new ez("!=")}static{this.BITWISE_AND=new ez("&")}static{this.BITWISE_OR=new ez("|")}static{this.BITWISE_XOR=new ez("^")}static{this.BITWISE_COMPLEMENT=new ez("~")}static{this.BITWISE_LEFT_SHIFT=new ez("<<")}static{this.BITWISE_RIGHT_SHIFT=new ez(">>")}static{this.BITWISE_UNSIGNED_RIGHT_SHIFT=new ez(">>>")}static{this.UNARY_PLUS=new ez("UN: +","+")}static{this.UNARY_MINUS=new ez("UN: -","-")}static{this.UNARY_LOGICAL_NOT=new ez("UN: not","not")}static{this.UNARY_BITWISE_COMPLEMENT=new ez("UN: ~","~")}static{this.ARRAY_OPERATOR=new ez("[")}static{this.ARRAY_RANGE_INDEX_OPERATOR=new ez("..")}static{this.OBJECT_OPERATOR=new ez(".")}static{this.NULLISH_COALESCING_OPERATOR=new ez("??")}static{this.CONDITIONAL_TERNARY_OPERATOR=new ez("?")}static{this.VALUE_OF=new Map([["MULTIPLICATION",ez.MULTIPLICATION],["DIVISION",ez.DIVISION],["INTEGER_DIVISION",ez.INTEGER_DIVISION],["MOD",ez.MOD],["ADDITION",ez.ADDITION],["SUBTRACTION",ez.SUBTRACTION],["NOT",ez.NOT],["AND",ez.AND],["OR",ez.OR],["LESS_THAN",ez.LESS_THAN],["LESS_THAN_EQUAL",ez.LESS_THAN_EQUAL],["GREATER_THAN",ez.GREATER_THAN],["GREATER_THAN_EQUAL",ez.GREATER_THAN_EQUAL],["EQUAL",ez.EQUAL],["NOT_EQUAL",ez.NOT_EQUAL],["BITWISE_AND",ez.BITWISE_AND],["BITWISE_OR",ez.BITWISE_OR],["BITWISE_XOR",ez.BITWISE_XOR],["BITWISE_COMPLEMENT",ez.BITWISE_COMPLEMENT],["BITWISE_LEFT_SHIFT",ez.BITWISE_LEFT_SHIFT],["BITWISE_RIGHT_SHIFT",ez.BITWISE_RIGHT_SHIFT],["BITWISE_UNSIGNED_RIGHT_SHIFT",ez.BITWISE_UNSIGNED_RIGHT_SHIFT],["UNARY_PLUS",ez.UNARY_PLUS],["UNARY_MINUS",ez.UNARY_MINUS],["UNARY_LOGICAL_NOT",ez.UNARY_LOGICAL_NOT],["UNARY_BITWISE_COMPLEMENT",ez.UNARY_BITWISE_COMPLEMENT],["ARRAY_OPERATOR",ez.ARRAY_OPERATOR],["ARRAY_RANGE_INDEX_OPERATOR",ez.ARRAY_RANGE_INDEX_OPERATOR],["OBJECT_OPERATOR",ez.OBJECT_OPERATOR],["NULLISH_COALESCING_OPERATOR",ez.NULLISH_COALESCING_OPERATOR],["CONDITIONAL_TERNARY_OPERATOR",ez.CONDITIONAL_TERNARY_OPERATOR]])}static{this.UNARY_OPERATORS=new Set([ez.ADDITION,ez.SUBTRACTION,ez.NOT,ez.BITWISE_COMPLEMENT,ez.UNARY_PLUS,ez.UNARY_MINUS,ez.UNARY_LOGICAL_NOT,ez.UNARY_BITWISE_COMPLEMENT])}static{this.ARITHMETIC_OPERATORS=new Set([ez.MULTIPLICATION,ez.DIVISION,ez.INTEGER_DIVISION,ez.MOD,ez.ADDITION,ez.SUBTRACTION])}static{this.LOGICAL_OPERATORS=new Set([ez.NOT,ez.AND,ez.OR,ez.LESS_THAN,ez.LESS_THAN_EQUAL,ez.GREATER_THAN,ez.GREATER_THAN_EQUAL,ez.EQUAL,ez.NOT_EQUAL,ez.NULLISH_COALESCING_OPERATOR])}static{this.BITWISE_OPERATORS=new Set([ez.BITWISE_AND,ez.BITWISE_COMPLEMENT,ez.BITWISE_LEFT_SHIFT,ez.BITWISE_OR,ez.BITWISE_RIGHT_SHIFT,ez.BITWISE_UNSIGNED_RIGHT_SHIFT,ez.BITWISE_XOR])}static{this.CONDITIONAL_OPERATORS=new Set([ez.CONDITIONAL_TERNARY_OPERATOR])}static{this.OPERATOR_PRIORITY=new Map([[ez.UNARY_PLUS,1],[ez.UNARY_MINUS,1],[ez.UNARY_LOGICAL_NOT,1],[ez.UNARY_BITWISE_COMPLEMENT,1],[ez.ARRAY_OPERATOR,1],[ez.OBJECT_OPERATOR,1],[ez.ARRAY_RANGE_INDEX_OPERATOR,2],[ez.MULTIPLICATION,2],[ez.DIVISION,2],[ez.INTEGER_DIVISION,2],[ez.MOD,2],[ez.ADDITION,3],[ez.SUBTRACTION,3],[ez.BITWISE_LEFT_SHIFT,4],[ez.BITWISE_RIGHT_SHIFT,4],[ez.BITWISE_UNSIGNED_RIGHT_SHIFT,4],[ez.LESS_THAN,5],[ez.LESS_THAN_EQUAL,5],[ez.GREATER_THAN,5],[ez.GREATER_THAN_EQUAL,5],[ez.EQUAL,6],[ez.NOT_EQUAL,6],[ez.BITWISE_AND,7],[ez.BITWISE_XOR,8],[ez.BITWISE_OR,9],[ez.NOT,10],[ez.AND,10],[ez.OR,11],[ez.NULLISH_COALESCING_OPERATOR,11],[ez.CONDITIONAL_TERNARY_OPERATOR,12]])}static{this.OPERATORS=new Set([...Array.from(ez.ARITHMETIC_OPERATORS),...Array.from(ez.LOGICAL_OPERATORS),...Array.from(ez.BITWISE_OPERATORS),ez.ARRAY_OPERATOR,ez.ARRAY_RANGE_INDEX_OPERATOR,ez.OBJECT_OPERATOR,...Array.from(ez.CONDITIONAL_OPERATORS)].map(e=>e.getOperator()))}static{this.OPERATORS_WITHOUT_SPACE_WRAP=new Set([...Array.from(ez.ARITHMETIC_OPERATORS),...Array.from(ez.LOGICAL_OPERATORS),...Array.from(ez.BITWISE_OPERATORS),ez.ARRAY_OPERATOR,ez.ARRAY_RANGE_INDEX_OPERATOR,ez.OBJECT_OPERATOR,...Array.from(ez.CONDITIONAL_OPERATORS)].filter(e=>!e.shouldBeWrappedInSpace()).map(e=>e.getOperator()))}static{this.OPERATION_VALUE_OF=new Map(Array.from(ez.VALUE_OF.entries()).map(([e,t])=>[t.getOperator(),t]))}static{this.UNARY_MAP=new Map([[ez.ADDITION,ez.UNARY_PLUS],[ez.SUBTRACTION,ez.UNARY_MINUS],[ez.NOT,ez.UNARY_LOGICAL_NOT],[ez.BITWISE_COMPLEMENT,ez.UNARY_BITWISE_COMPLEMENT],[ez.UNARY_PLUS,ez.UNARY_PLUS],[ez.UNARY_MINUS,ez.UNARY_MINUS],[ez.UNARY_LOGICAL_NOT,ez.UNARY_LOGICAL_NOT],[ez.UNARY_BITWISE_COMPLEMENT,ez.UNARY_BITWISE_COMPLEMENT]])}static{this.BIGGEST_OPERATOR_SIZE=Array.from(ez.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 ez.VALUE_OF.get(e)}toString(){return this.operator}}t({},"TokenValueExtractor",()=>eZ),t({},"ExpressionEvaluationException",()=>eQ);class eQ extends Error{constructor(e,t,r){super(H.format("$ : $",e,t)),this.cause=r}getCause(){return this.cause}}class eZ{static{this.REGEX_SQUARE_BRACKETS=/[\[\]]/}static{this.REGEX_DOT=/(?<!\.)\.(?!\.)/}static{this.pathCache=new Map}static{this.bracketCache=new Map}static splitPath(e){let t=eZ.pathCache.get(e);return t||(t=eZ.splitPathInternal(e),eZ.pathCache.set(e,t)),t}static splitPathInternal(e){let t=[],r=0,s=!1;for(let n=0;n<e.length;n++){let a=e.charAt(n);"["===a?s=!0:"]"===a?s=!1:"."!==a||s||eZ.isDoubleDot(e,n)||(n>r&&t.push(e.substring(r,n)),r=n+1)}return r<e.length&&t.push(e.substring(r)),t}static isDoubleDot(e,t){return t>0&&"."===e.charAt(t-1)||t<e.length-1&&"."===e.charAt(t+1)}static parseBracketSegment(e){let t=eZ.bracketCache.get(e);return t||(t=e.split(eZ.REGEX_SQUARE_BRACKETS).map(e=>e.trim()).filter(e=>!J.isNullOrBlank(e)),eZ.bracketCache.set(e,t)),t}getValue(e){let t=this.getPrefix();if(!e.startsWith(t))throw new B(H.format("Token $ doesn't start with $",e,t));if(e.endsWith(".__index")){let t=e.substring(0,e.length-8),r=this.getValueInternal(t);if(!l(r?.__index))return r.__index;if(!t.endsWith("]"))return t.substring(t.lastIndexOf(".")+1);{let e=t.substring(t.lastIndexOf("[")+1,t.length-1),r=Number.parseInt(e);return isNaN(r)?e:r}}return this.getValueInternal(e)}setValuesMap(e){this.valuesMap=e}retrieveElementFrom(e,t,r,s){let n=s;for(let s=r;s<t.length;s++){if(l(n))return;for(let r of eZ.parseBracketSegment(t[s]))if(void 0===(n=this.resolveSegmentFast(e,t,s,r,n)))return}return n}resolveSegmentFast(e,t,r,s,n){if(null!=n){if(s.startsWith('"')||s.startsWith("'"))return this.resolveForEachPartOfTokenWithBrackets(e,t,r,s,n);if("object"==typeof n&&!Array.isArray(n)){if("length"===s){if("length"in n){let e=n.length;return"object"==typeof e&&null!==e?Object.keys(n).length:e}return Object.keys(n).length}return s in n,n[s]}if(Array.isArray(n)){if("length"===s)return n.length;if(/^-?\d+$/.test(s)){let e=Number.parseInt(s,10),t=e<0?n.length+e:e;return t>=0&&t<n.length?n[t]:void 0}}if("string"==typeof n){if("length"===s)return n.length;if(/^-?\d+$/.test(s)){let e=Number.parseInt(s,10),t=e<0?n.length+e:e;return t>=0&&t<n.length?n[t]:void 0}}return this.resolveForEachPartOfTokenWithBrackets(e,t,r,s,n)}}resolveForEachPartOfTokenWithBrackets(e,t,r,s,n){if(!l(n))return"length"===s||'"length"'===s||"'length'"===s?this.getLength(e,n):"string"==typeof n||Array.isArray(n)?this.handleArrayAccess(e,s,n):this.handleObjectAccess(e,t,r,s,n)}getLength(e,t){let r=typeof t;if("string"===r||Array.isArray(t))return t.length;if("object"===r){if("length"in t){let e=t.length;return"object"==typeof e&&null!==e?Object.keys(t).length:e}return Object.keys(t).length}throw new eQ(e,H.format("Length can't be found in token $",e))}handleArrayAccess(e,t,r){let s=t.indexOf("..");if(s>=0){let e=t.substring(0,s),n=t.substring(s+2),a=0==e.length?0:parseInt(e),i=0==n.length?r.length:parseInt(n);if(isNaN(a)||isNaN(i))return;for(;a<0;)a+=r.length;for(;i<0;)i+=r.length;let o=typeof r;return a>=i?"string"==o?"":[]:"string"==o?r.substring(a,i):r.slice(a,i)}let n=parseInt(t);if(isNaN(n)&&this.valuesMap){let e=t.indexOf(".");if(e>0){let r=t.substring(0,e+1),s=this.valuesMap.get(r);if(s)try{let e=s.getValue(t);"number"==typeof e?n=e:"string"==typeof e&&(n=parseInt(e))}catch(e){}isNaN(n)&&(n=0)}}if(isNaN(n))throw new eQ(e,H.format("$ is not a number",t));for(;n<0;)n=r.length+n;if(!(n>=r.length))return r[n]}handleObjectAccess(e,t,r,s,n){if(s.startsWith('"')||s.startsWith("'")){let t=s[0];if(!s.endsWith(t)||1==s.length)throw new eQ(e,H.format("$ is missing a closing quote or empty key found",e));s=s.substring(1,s.length-1)}return this.checkIfObject(e,t,r,n),n[s]}checkIfObject(e,t,r,s){let n=typeof s;if("object"!=n&&"string"!=n||Array.isArray(s))throw new eQ(e,H.format("Unable to retrieve $ from $ in the path $",t[r],s.toString(),e))}}class e0 extends eZ{constructor(e,t){super(),this.store=e,this.prefix=t}getValueInternal(e){let t=eZ.splitPath(e);return this.retrieveElementFrom(e,t,1,this.store)}getStore(){return this.store}setStore(e){return this.store=e,this}setValue(e,t,r=!0,s=!1){this.store=eL(this.store),this.modifyStore(e,t,r,s)}modifyStore(e,t,r,s){let n=eZ.splitPath(e);if(n.length<2)throw new B(H.format("Invalid path: $",e));let a=this.store;for(let e=1;e<n.length-1;e++){let t=n[e],r=n[e+1],s=this.parseBracketSegments(t);for(let t=0;t<s.length;t++){let i,o=s[t];i=t===s.length-1?e===n.length-2?this.getOpForSegment(n[n.length-1]):this.getOpForSegment(r):this.isArrayIndex(s[t+1])?ez.ARRAY_OPERATOR:ez.OBJECT_OPERATOR,a=this.isArrayIndex(o)?this.getDataFromArray(a,o,i):this.getDataFromObject(a,this.stripQuotes(o),i)}}let i=n[n.length-1],o=this.parseBracketSegments(i);for(let e=0;e<o.length-1;e++){let t=o[e],r=this.isArrayIndex(o[e+1])?ez.ARRAY_OPERATOR:ez.OBJECT_OPERATOR;a=this.isArrayIndex(t)?this.getDataFromArray(a,t,r):this.getDataFromObject(a,this.stripQuotes(t),r)}let E=o[o.length-1];this.isArrayIndex(E)?this.putDataInArray(a,E,t,r,s):this.putDataInObject(a,this.stripQuotes(E),t,r,s)}parseBracketSegments(e){let t=[],r=0,s=0;for(;s<e.length;)if("["===e[s]){s>r&&t.push(e.substring(r,s));let n=s+1,a=!1,i="";for(;n<e.length;){if(a)e[n]===i&&"\\"!==e[n-1]&&(a=!1);else if('"'===e[n]||"'"===e[n])a=!0,i=e[n];else if("]"===e[n])break;n++}t.push(e.substring(s+1,n)),s=r=n+1}else s++;return r<e.length&&t.push(e.substring(r)),t.length>0?t:[e]}isArrayIndex(e){return/^-?\d+$/.test(e)}stripQuotes(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.substring(1,e.length-1):e}getOpForSegment(e){return this.isArrayIndex(e)||e.startsWith("[")?ez.ARRAY_OPERATOR:ez.OBJECT_OPERATOR}getDataFromArray(e,t,r){if(!Array.isArray(e))throw new B(H.format("Expected an array but found $",e));let s=parseInt(t);if(isNaN(s))throw new B(H.format("Expected an array index but found $",t));if(s<0)throw new B(H.format("Array index is out of bound - $",t));let n=e[s];return l(n)&&(n=r==ez.OBJECT_OPERATOR?{}:[],e[s]=n),n}getDataFromObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new B(H.format("Expected an object but found $",e));let s=e[t];return l(s)&&(s=r==ez.OBJECT_OPERATOR?{}:[],e[t]=s),s}putDataInArray(e,t,r,s,n){if(!Array.isArray(e))throw new B(H.format("Expected an array but found $",e));let a=parseInt(t);if(isNaN(a))throw new B(H.format("Expected an array index but found $",t));if(a<0)throw new B(H.format("Array index is out of bound - $",t));(s||l(e[a]))&&(n&&l(r)?e.splice(a,1):e[a]=r)}putDataInObject(e,t,r,s,n){if(Array.isArray(e)||"object"!=typeof e)throw new B(H.format("Expected an object but found $",e));(s||l(e[t]))&&(n&&l(r)?delete e[t]:e[t]=r)}getPrefix(){return this.prefix}}class e1 extends e_{constructor(){super("Sort",[e1.PARAMETER_ARRAY_SOURCE,e1.PARAMETER_INT_FIND_FROM,e1.PARAMETER_INT_LENGTH,e1.PARAMETER_BOOLEAN_ASCENDING,e1.PARAMETER_KEY_PATH],e1.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(e1.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e1.PARAMETER_INT_FIND_FROM.getParameterName()),s=e?.getArguments()?.get(e1.PARAMETER_INT_LENGTH.getParameterName()),n=e?.getArguments()?.get(e1.PARAMETER_BOOLEAN_ASCENDING.getParameterName()),a=e?.getArguments()?.get(e1.PARAMETER_KEY_PATH.getParameterName());if(0==t.length)return new F([k.outputOf(new Map([[e_.EVENT_RESULT_NAME,t]]))]);if(t=[...t],-1==s&&(s=t.length-r),r<0||r>=t.length||r+s>t.length)throw new B("Given start point is more than the size of the array or not available at that point");let i=t.slice(r,r+s+1),o=new e0({},"Data.");return i.sort((e,t)=>"object"==typeof e&&"object"==typeof t&&a.length?(o.setStore({a:e,b:t}),e2(o.getValue("Data.a."+a),o.getValue("Data.b."+a),n)):e2(e,t,n)),t.splice(r,s,...i),new F([k.outputOf(new Map([[e_.EVENT_RESULT_NAME,t]]))])}}function e2(e,t,r){return e===t?0:null===e?1:null===t?-1:r?e<t?-1:1:e<t?1:-1}class e5 extends e_{constructor(){super("SubArray",[e5.PARAMETER_ARRAY_SOURCE,e5.PARAMETER_INT_FIND_FROM,e5.PARAMETER_INT_LENGTH],e5.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(e5.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e5.PARAMETER_INT_FIND_FROM.getParameterName()),s=e?.getArguments()?.get(e5.PARAMETER_INT_LENGTH.getParameterName());if(-1==s&&(s=t.length-r),s<=0)return new F([k.outputOf(new Map([]))]);if(!(r>=0&&r<t.length)||r+s>t.length)throw new B("Given find from point is more than the source size array or the Requested length for the subarray was more than the source size");let n=t.slice(r,r+s);return new F([k.outputOf(new Map([[e5.EVENT_RESULT_NAME,n]]))])}}class e7 extends e_{constructor(){super("Insert",[e7.PARAMETER_ARRAY_SOURCE,e7.PARAMETER_INT_OFFSET,e7.PARAMETER_ANY],e7.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(e7.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e7.PARAMETER_INT_OFFSET.getParameterName());var s=e?.getArguments()?.get(e7.PARAMETER_ANY.getParameterName());if(l(s)||l(r)||r>t.length)throw new B("Please valid resouces to insert at the correct location");if(0==(t=[...t]).length)return 0==r&&t.push(s),new F([k.outputOf(new Map([[e_.EVENT_RESULT_NAME,t]]))]);t.push(s);let n=t.length-1;for(r++;n>=r;){let e=t[n-1];t[n-1]=t[n],t[n--]=e}return new F([k.outputOf(new Map([[e_.EVENT_RESULT_NAME,t]]))])}}class e9 extends e_{constructor(){super("InsertLast",[e9.PARAMETER_ARRAY_SOURCE,e9.PARAMETER_ANY],e9.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(e9.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(e9.PARAMETER_ANY.getParameterName());return(t=[...t]).push(r),new F([k.outputOf(new Map([[e_.EVENT_RESULT_NAME,t]]))])}}class e4 extends e_{constructor(){super("RemoveDuplicates",[e4.PARAMETER_ARRAY_SOURCE,e4.PARAMETER_INT_SOURCE_FROM,e4.PARAMETER_INT_LENGTH],e4.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(e4.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e4.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(e4.PARAMETER_INT_LENGTH.getParameterName());if(-1==s&&(s=t.length-r),r+s>t.length)throw new B(H.format("Array has no elements from $ to $ as the array size is $",r,r+s,t.length));let n=[...t],a=r+s;for(let e=a-1;e>=r;e--)for(let t=e-1;t>=r;t--)if(X(n[e],n[t])){n.splice(e,1);break}return new F([k.outputOf(V.of(e4.EVENT_RESULT_NAME,n))])}}let e6="keyPath",e3="valuePath",e8="ignoreNullValues",te="ignoreNullKeys",tt="ignoreDuplicateKeys";class tr extends e_{constructor(){super("ArrayToObjects",[e_.PARAMETER_ARRAY_SOURCE,v.of(e6,y.ofString(e6)),v.of(e3,y.of(e3,T.STRING,T.NULL)),v.of(e8,y.ofBoolean(e8).setDefaultValue(!1)),v.of(te,y.ofBoolean(te).setDefaultValue(!0)),v.of(tt,y.ofBoolean(tt).setDefaultValue(!1))],e_.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(e_.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e6),s=e?.getArguments()?.get(e3)??"",n=e?.getArguments()?.get(e8),a=e?.getArguments()?.get(te),i=e?.getArguments()?.get(tt),o=new e0({},"Data."),E=t.filter(e=>!l(e)).reduce((e,t)=>{o.setStore(t);let E=o.getValue("Data."+r);if(a&&l(E))return e;let u=s?o.getValue("Data."+s):t;return n&&l(u)||i&&e.hasOwnProperty(E)||(e[E]=u),e},{});return new F([k.outputOf(new Map([[e_.EVENT_RESULT_NAME,E]]))])}}let ts="source",tn="delimiter",ta="result";class ti extends eN{getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(ts),r=e?.getArguments()?.get(tn);return new F([k.outputOf(new Map([[ta,t.join(r)]]))])}constructor(...e){super(...e),this.signature=new Y("Join").setNamespace(A.SYSTEM_ARRAY).setParameters(new Map([[ts,new v(ts,y.ofArray(ts,y.of("each",T.STRING,T.INTEGER,T.LONG,T.DOUBLE,T.FLOAT,T.NULL)))],[tn,new v(tn,y.ofString(tn).setDefaultValue(""))]])).setEvents(new Map([$.outputEventMapEntry(new Map([[ta,y.ofString(ta)]]))]))}}class to{async find(e,t){return e!=A.SYSTEM_ARRAY?Promise.resolve(void 0):Promise.resolve(this.repoMap.get(t))}async filter(e){return Promise.resolve(this.filterableNames.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}constructor(){this.repoMap=V.ofArrayEntries(G(new eM),G(new eS),G(new eP),G(new ex),G(new eb),G(new ev),G(new eU),G(new eV),G(new eC),G(new eD),G(new eG),G(new e$),G(new ek),G(new eB),G(new eF),G(new eY),G(new eH),G(new ej),G(new eW),G(new eX),G(new eJ),G(new eK),G(new eq),G(new e1),G(new e5),G(new eO),G(new e7),G(new e9),G(new e4),G(new tr),G(new ti)),this.filterableNames=Array.from(this.repoMap.values()).map(e=>e.getSignature().getFullName())}}t({},"ContextElement",()=>tE);class tE{static{this.NULL=new tE(y.NULL,void 0)}constructor(e,t){this.schema=e,this.element=t}getSchema(){return this.schema}setSchema(e){return this.schema=e,this}getElement(){return this.element}setElement(e){return this.element=e,this}}let tu="name",th="schema";class tA extends eN{getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(tu);if(e?.getContext()?.has(t))throw new B(H.format("Context already has an element for '$' ",t));let r=y.from(e?.getArguments()?.get(th));if(!r)throw new B("Schema is not supplied.");return e.getContext().set(t,new tE(r,l(r.getDefaultValue())?void 0:r.getDefaultValue())),new F([k.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new Y("Create").setNamespace(A.SYSTEM_CTX).setParameters(new Map([v.ofEntry(tu,new y().setName(tu).setType(m.of(T.STRING)).setMinLength(1).setFormat(eE.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,L.CONSTANT),v.ofEntry(th,y.SCHEMA,!1,L.CONSTANT)])).setEvents(new Map([$.outputEventMapEntry(new Map)]))}}let tl="name",tc="value";class tT extends eN{getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(tl);if(!e.getContext()?.has(t))throw new B(H.format("Context don't have an element for '$' ",t));return new F([k.outputOf(new Map([tc,e.getContext()?.get(t)?.getElement()]))])}constructor(...e){super(...e),this.signature=new Y("Get").setNamespace(A.SYSTEM_CTX).setParameters(new Map([v.ofEntry(tl,new y().setName(tl).setType(m.of(T.STRING)).setMinLength(1).setFormat(eE.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,L.CONSTANT)])).setEvents(new Map([$.outputEventMapEntry(new Map([[tc,y.ofAny(tc)]]))]))}}t({},"ExpressionEvaluator",()=>rw),t({},"Expression",()=>tM),t({},"StringBuilder",()=>tg);class tg{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 B(`Index ${e} is greater than or equal to ${this.str.length}`)}substring(e,t){return this.str.substring(e,t)}}t({},"ExpressionToken",()=>tp);class tp{constructor(e){this.expression=e}getExpression(){return this.expression}toString(){return this.expression}}t({},"ExpressionTokenValue",()=>tR);class tR extends tp{constructor(e,t){super(e),this.element=t}getTokenValue(){return this.element}getElement(){return this.element}toString(){return H.format("$: $",this.expression,this.element)}}var tm=((o={}).IDENTIFIER="IDENTIFIER",o.NUMBER="NUMBER",o.STRING="STRING",o.OPERATOR="OPERATOR",o.LEFT_PAREN="LEFT_PAREN",o.RIGHT_PAREN="RIGHT_PAREN",o.LEFT_BRACKET="LEFT_BRACKET",o.RIGHT_BRACKET="RIGHT_BRACKET",o.DOT="DOT",o.QUESTION="QUESTION",o.COLON="COLON",o.WHITESPACE="WHITESPACE",o.EOF="EOF",o);class tf{constructor(e,t,r,s){this.type=e,this.value=t,this.startPos=r,this.endPos=s}toString(){return`Token(${this.type}, "${this.value}", ${this.startPos}-${this.endPos})`}}class tN{constructor(e){this.pos=0,this.input=e,this.length=e.length}getPosition(){return this.pos}peek(){let e=this.pos,t=this.nextToken();return this.pos=e,t}nextToken(){if(this.pos>=this.length)return new tf("EOF","",this.pos,this.pos);for(;this.pos<this.length&&this.isWhitespace(this.input[this.pos]);)this.pos++;if(this.pos>=this.length)return new tf("EOF","",this.pos,this.pos);let e=this.pos,t=this.input[this.pos];if('"'===t||"'"===t)return this.readStringLiteral(t,e);if(this.isDigit(t))return this.readNumber(e);switch(t){case"(":return this.pos++,new tf("LEFT_PAREN","(",e,this.pos);case")":return this.pos++,new tf("RIGHT_PAREN",")",e,this.pos);case"[":return this.pos++,new tf("LEFT_BRACKET","[",e,this.pos);case"]":return this.pos++,new tf("RIGHT_BRACKET","]",e,this.pos);case".":if(this.pos+1<this.length&&"."===this.input[this.pos+1])return this.pos+=2,new tf("OPERATOR","..",e,this.pos);return this.pos++,new tf("DOT",".",e,this.pos);case"?":if(this.pos+1<this.length&&"?"===this.input[this.pos+1])return this.pos+=2,new tf("OPERATOR","??",e,this.pos);return this.pos++,new tf("QUESTION","?",e,this.pos);case":":return this.pos++,new tf("COLON",":",e,this.pos)}let r=this.readOperator(e);return r||this.readIdentifier(e)}readStringLiteral(e,t){this.pos++;let r="",s=!1;for(;this.pos<this.length;){let n=this.input[this.pos];if(s){r+=n,s=!1,this.pos++;continue}if("\\"===n){s=!0,r+=n,this.pos++;continue}if(n===e)return this.pos++,new tf("STRING",e+r+e,t,this.pos);r+=n,this.pos++}throw new eQ(this.input,`Missing string ending marker ${e}`)}readNumber(e){let t="",r=!1;for(;this.pos<this.length;){let e=this.input[this.pos];if(this.isDigit(e))t+=e,this.pos++;else if("."===e&&!r&&this.pos+1<this.length&&this.isDigit(this.input[this.pos+1]))t+=e,r=!0,this.pos++;else break}return new tf("NUMBER",t,e,this.pos)}readOperator(e){for(let t of[">>>","<<",">>","<=",">=","!=","==","//","+","-","*","/","%","=","<",">","&","|","^","~"])if(this.pos+t.length<=this.length&&this.input.substring(this.pos,this.pos+t.length)===t)return this.pos+=t.length,new tf("OPERATOR",t,e,this.pos);return null}readIdentifier(e){let t="";for(;this.pos<this.length;){let e=this.input[this.pos];if("["===e)if(this.isStaticBracketContent()){t+=this.readStaticBracketContent();continue}else break;if(!this.isIdentifierChar(e))break;t+=e,this.pos++}if(0===t.length)throw new eQ(this.input,`Unexpected character: ${this.input[this.pos]}`);return["and","or","not"].includes(t.toLowerCase())?new tf("OPERATOR",t.toLowerCase(),e,this.pos):new tf("IDENTIFIER",t,e,this.pos)}isStaticBracketContent(){let e=this.pos+1;for(;e<this.length&&this.isWhitespace(this.input[e]);)e++;if(e>=this.length)return!1;let t=this.input[e];if('"'===t||"'"===t)return!0;if(this.isDigit(t)||"-"===t&&e+1<this.length&&this.isDigit(this.input[e+1])){let t=e;for("-"===this.input[t]&&t++;t<this.length&&(this.isDigit(this.input[t])||"."===this.input[t]);){if("."===this.input[t]&&t+1<this.length&&"."===this.input[t+1])return!0;t++}for(;t<this.length&&this.isWhitespace(this.input[t]);)t++;if(t<this.length&&("]"===this.input[t]||"."===this.input[t]&&t+1<this.length&&"."===this.input[t+1]))return!0}return!1}readStaticBracketContent(){let e="[";this.pos++;let t=1;for(;this.pos<this.length&&t>0;){let r=this.input[this.pos];if(e+=r,this.pos++,"["===r)t++;else if("]"===r)t--;else if('"'===r||"'"===r)for(;this.pos<this.length;){let t=this.input[this.pos];if(e+=t,this.pos++,t===r&&this.pos>1&&"\\"!==this.input[this.pos-2])break}}return e}isOperatorChar(e){return["+","-","*","/","%","=","!","<",">","&","|","?",":","(",")",";",","].includes(e)}isDigit(e){return e>="0"&&e<="9"}isWhitespace(e){return" "===e||" "===e||"\n"===e||"\r"===e}isIdentifierChar(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e>="0"&&e<="9"||"_"===e}}class t_{constructor(e){this.currentToken=null,this.previousTokenValue=null,this.lexer=new tN(e),this.currentToken=this.lexer.nextToken()}parse(){if(!this.currentToken)throw new eQ("","Empty expression");let e=this.parseExpression();if(this.currentToken&&this.currentToken.type!==tm.EOF)throw new eQ(this.lexer.getPosition().toString(),`Unexpected token: ${this.currentToken.value} at position ${this.currentToken.startPos}`);return e}parseExpression(){return this.parseTernary()}parseTernary(){let e=this.parseLogicalOr();if(this.matchToken(tm.QUESTION)){let t=this.parseTernary();this.expectToken(tm.COLON);let r=this.parseTernary();return tM.createTernary(e,t,r)}return e}parseLogicalOr(){let e=this.parseNullishCoalescing();for(;this.matchOperator("or");)e=new tM("",e,this.parseNullishCoalescing(),ez.OR);return e}parseNullishCoalescing(){let e=this.parseLogicalAnd();for(;this.matchOperator("??");)e=new tM("",e,this.parseLogicalAnd(),ez.NULLISH_COALESCING_OPERATOR);return e}parseLogicalAnd(){let e=this.parseLogicalNot();for(;this.matchOperator("and");)e=new tM("",e,this.parseLogicalNot(),ez.AND);return e}parseLogicalNot(){return this.matchOperator("not")?new tM("",this.parseLogicalNot(),void 0,ez.UNARY_LOGICAL_NOT):this.parseComparison()}parseComparison(){let e=this.parseBitwiseOr();for(;;){let t=null;if(this.matchOperator("<"))t=ez.LESS_THAN;else if(this.matchOperator("<="))t=ez.LESS_THAN_EQUAL;else if(this.matchOperator(">"))t=ez.GREATER_THAN;else if(this.matchOperator(">="))t=ez.GREATER_THAN_EQUAL;else if(this.matchOperator("="))t=ez.EQUAL;else if(this.matchOperator("!="))t=ez.NOT_EQUAL;else break;e=new tM("",e,this.parseBitwiseOr(),t)}return e}parseBitwiseOr(){let e=this.parseBitwiseXor();for(;this.matchOperator("|");)e=new tM("",e,this.parseBitwiseXor(),ez.BITWISE_OR);return e}parseBitwiseXor(){let e=this.parseBitwiseAnd();for(;this.matchOperator("^");)e=new tM("",e,this.parseBitwiseAnd(),ez.BITWISE_XOR);return e}parseBitwiseAnd(){let e=this.parseShift();for(;this.matchOperator("&");)e=new tM("",e,this.parseShift(),ez.BITWISE_AND);return e}parseShift(){let e=this.parseAdditive();for(;;){let t=null;if(this.matchOperator("<<"))t=ez.BITWISE_LEFT_SHIFT;else if(this.matchOperator(">>"))t=ez.BITWISE_RIGHT_SHIFT;else if(this.matchOperator(">>>"))t=ez.BITWISE_UNSIGNED_RIGHT_SHIFT;else break;e=new tM("",e,this.parseAdditive(),t)}return e}parseAdditive(){let e=this.parseMultiplicative();for(;;){let t=null;if(this.matchOperator("+"))t=ez.ADDITION;else if(this.matchOperator("-"))t=ez.SUBTRACTION;else break;e=new tM("",e,this.parseMultiplicative(),t)}return e}parseMultiplicative(){let e=this.parseUnary();return this.matchOperator("*")?new tM("",e,this.parseMultiplicative(),ez.MULTIPLICATION):this.matchOperator("/")?new tM("",e,this.parseMultiplicative(),ez.DIVISION):this.matchOperator("//")?new tM("",e,this.parseMultiplicative(),ez.INTEGER_DIVISION):this.matchOperator("%")?new tM("",e,this.parseMultiplicative(),ez.MOD):e}parseUnary(){return this.matchOperator("+")?new tM("",this.parseUnary(),void 0,ez.UNARY_PLUS):this.matchOperator("-")?new tM("",this.parseUnary(),void 0,ez.UNARY_MINUS):this.matchOperator("~")?new tM("",this.parseUnary(),void 0,ez.UNARY_BITWISE_COMPLEMENT):this.parsePostfix()}parsePostfix(){let e=this.parsePrimary();for(;;)if(this.matchToken(tm.DOT)){e=new tM("",e,this.parsePostfixRightSide(),ez.OBJECT_OPERATOR);continue}else if(this.matchToken(tm.LEFT_BRACKET)){let t=this.parseBracketContent();this.expectToken(tm.RIGHT_BRACKET),e=new tM("",e,t,ez.ARRAY_OPERATOR)}else if(this.matchOperator(".."))e=new tM("",e,this.parsePrimary(),ez.ARRAY_RANGE_INDEX_OPERATOR);else break;return e}parsePostfixRightSide(){let e;if(!this.currentToken||this.currentToken.type!==tm.IDENTIFIER)throw new eQ(this.lexer.getPosition().toString(),"Expected identifier after dot");let t=this.currentToken.value;for(this.advance(),e=-1===t.indexOf("[")?tM.createLeaf(t):this.parseStaticBracketIdentifier(t);this.matchToken(tm.LEFT_BRACKET);){let t=this.parseBracketContent();this.expectToken(tm.RIGHT_BRACKET),e=new tM("",e,t,ez.ARRAY_OPERATOR)}for(;this.matchToken(tm.DOT);)e=new tM("",e,this.parsePostfixRightSide(),ez.OBJECT_OPERATOR);return e}parseStaticBracketIdentifier(e){let t=e.indexOf("["),r=e.substring(0,t),s=tM.createLeaf(r),n=e.substring(t),a=0;for(;a<n.length&&"["===n[a];){let e,t=1,r=a+1,i=!1,o="";for(;r<n.length&&t>0;){let e=n[r];i?e===o&&(0===r||"\\"!==n[r-1])&&(i=!1):'"'===e||"'"===e?(i=!0,o=e):"["===e?t++:"]"===e&&t--,r++}let E=n.substring(a+1,r-1);if(E.startsWith('"')&&E.endsWith('"')||E.startsWith("'")&&E.endsWith("'")){let t=E[0],r=E.substring(1,E.length-1);e=new tM("",new tR(t+r+t,r),void 0,void 0)}else{let t=E.indexOf("..");if(-1!==t){let r=0===t?tM.createLeaf("0"):tM.createLeaf(E.substring(0,t)),s=t===E.length-2?tM.createLeaf(""):tM.createLeaf(E.substring(t+2));e=new tM("",r,s,ez.ARRAY_RANGE_INDEX_OPERATOR)}else e=tM.createLeaf(E)}s=new tM("",s,e,ez.ARRAY_OPERATOR),a=r}return s}parseIdentifierPath(){if(!this.currentToken||this.currentToken.type!==tm.IDENTIFIER)throw new eQ(this.lexer.getPosition().toString(),"Expected identifier");let e=this.currentToken.value;return this.advance(),tM.createLeaf(e)}parseBracketContent(){if(this.currentToken&&this.currentToken.type===tm.STRING){let e=this.currentToken;this.advance();let t=e.value.substring(1,e.value.length-1);return new tM("",new tR(e.value,t),void 0,void 0)}return this.parseExpression()}parsePrimary(){if(this.matchToken(tm.NUMBER))return new tM("",new tp(this.previousToken().value),void 0,void 0);if(this.matchToken(tm.STRING)){let e=this.previousToken(),t=e.value.substring(1,e.value.length-1);return new tM("",new tR(e.value,t),void 0,void 0)}if(this.currentToken&&this.currentToken.type===tm.IDENTIFIER)return this.parseIdentifierPath();if(this.matchToken(tm.LEFT_PAREN)){let e=this.parseExpression();return this.expectToken(tm.RIGHT_PAREN),e}throw new eQ(this.lexer.getPosition().toString(),`Unexpected token: ${this.currentToken?.value||"EOF"} at position ${this.currentToken?.startPos||this.lexer.getPosition()}`)}matchToken(e){return!!this.currentToken&&this.currentToken.type===e&&(this.advance(),!0)}matchOperator(e){return!!this.currentToken&&this.currentToken.type===tm.OPERATOR&&this.currentToken.value===e&&(this.advance(),!0)}expectToken(e){if(!this.currentToken||this.currentToken.type!==e)throw new eQ(this.lexer.getPosition().toString(),`Expected ${e}, got ${this.currentToken?.type||"EOF"}`);let t=this.currentToken;return this.advance(),t}advance(){this.previousTokenValue=this.currentToken,this.currentToken=this.lexer.nextToken()}previousToken(){return this.previousTokenValue}}class tM extends tp{static createTernary(e,t,r){let s=new tM("",void 0,void 0,void 0,!0);return s.tokens.push(e),s.tokens.push(t),s.tokens.push(r),s.ops.push(ez.CONDITIONAL_TERNARY_OPERATOR),s}static createLeaf(e){let t=new tM("",void 0,void 0,void 0,!0);return t.expression=e,t.tokens.push(new tp(e)),t}constructor(e,t,r,s,n){if(super(e||""),this.tokens=new j,this.ops=new j,n)return;if(void 0!==t||void 0!==r||void 0!==s){s?.getOperator()==".."&&(t?r||(r=new tR("","")):t=new tR("","")),t&&this.tokens.push(t),r&&this.tokens.push(r),s&&this.ops.push(s);return}if(e&&e.trim().length>0)try{let t=new t_(e).parse();this.tokens=t.getTokens(),this.ops=t.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 tp(""))}}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 tg(""),n=0,a=!1;for(;n<t;){switch(r=this.expression[n],e=s.toString(),r){case" ":a=this.processTokenSepearator(s,e,a);break;case"(":n=this.processSubExpression(t,s,e,n,a),a=!1;break;case")":throw new eQ(this.expression,"Extra closing parenthesis found");case"]":throw new eQ(this.expression,"Extra closing square bracket found");case"'":case'"':if(a&&this.ops.peek()==ez.ARRAY_OPERATOR){let e=this.process(t,s,n);n=e.getT1(),a=e.getT2()}else{let e=this.processStringLiteral(t,r,n);n=e.getT1(),a=e.getT2()}break;case"?":if(n+1<t&&"?"!=this.expression.charAt(n+1)&&0!=n&&"?"!=this.expression.charAt(n-1))n=this.processTernaryOperator(t,s,e,n,a);else{let i=this.processOthers(r,t,s,e,n,a);n=i.getT1(),(a=i.getT2())&&this.ops.peek()==ez.ARRAY_OPERATOR&&(n=(i=this.process(t,s,n)).getT1(),a=i.getT2())}break;default:let i=this.processOthers(r,t,s,e,n,a);n=i.getT1(),(a=i.getT2())&&this.ops.peek()==ez.ARRAY_OPERATOR&&(n=(i=this.process(t,s,n)).getT1(),a=i.getT2())}++n}if(e=s.toString(),!J.isNullOrBlank(e))if(ez.OPERATORS.has(e))throw new eQ(this.expression,"Expression is ending with an operator");else this.tokens.push(new tp(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 eQ(this.expression,"Missing string ending marker "+t);let a=new q(n,!1);return this.tokens.push(new tR(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 tM(t.toString())),t.setLength(0),new q(r,!1)}processOthers(e,t,r,s,n,a){let i=t-n;i=i<ez.BIGGEST_OPERATOR_SIZE?i:ez.BIGGEST_OPERATOR_SIZE;for(let e=i;e>0;e--){let t=this.expression.substring(n,n+e);if(ez.OPERATORS_WITHOUT_SPACE_WRAP.has(t))return J.isNullOrBlank(s)?".."==t&&this.tokens.isEmpty()&&(this.tokens.push(new tp("0")),a=!1):(this.tokens.push(new tp(s)),a=!1),this.checkUnaryOperator(this.tokens,this.ops,ez.OPERATION_VALUE_OF.get(t),a),a=!0,r.setLength(0),new q(n+e-1,a)}return r.append(e),new q(n,!1)}processTernaryOperator(e,t,r,s,n){if(n)throw new eQ(this.expression,"Ternary operator is followed by an operator");""!=r.trim()&&(this.tokens.push(new tM(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 eQ(this.expression,"':' operater is missing");if(s>=e)throw new eQ(this.expression,"Third part of the ternary expression is missing");for(;!this.ops.isEmpty()&&this.hasPrecedence(ez.CONDITIONAL_TERNARY_OPERATOR,this.ops.peek());){let e=this.ops.pop();if(ez.UNARY_OPERATORS.has(e)){let t=this.tokens.pop();this.tokens.push(new tM("",t,void 0,e))}else{let t=this.tokens.pop(),r=this.tokens.pop();this.tokens.push(new tM("",r,t,e))}}this.ops.push(ez.CONDITIONAL_TERNARY_OPERATOR),this.tokens.push(new tM(this.expression.substring(o,s-1)));let E=this.expression.substring(s);if(""===E.trim())throw new eQ(this.expression,"Third part of the ternary expression is missing");return this.tokens.push(new tM(E)),e-1}processSubExpression(e,t,r,s,n){if(ez.OPERATORS.has(r))this.checkUnaryOperator(this.tokens,this.ops,ez.OPERATION_VALUE_OF.get(r),n),t.setLength(0);else if(!J.isNullOrBlank(r))throw new eQ(this.expression,H.format("Unkown token : $ found.",r));let a=1,i=new tg,o=this.expression.charAt(s);for(s++;s<e&&a>0;)"("==(o=this.expression.charAt(s))?a++:")"==o&&a--,0!=a&&(i.append(o),s++);if(")"!=o)throw new eQ(this.expression,"Missing a closed parenthesis");for(;i.length()>2&&this.hasMatchingOuterParentheses(i.toString());)i.deleteCharAt(0),i.setLength(i.length()-1);return this.tokens.push(new tM(i.toString().trim())),s}processTokenSepearator(e,t,r){return J.isNullOrBlank(t)||(ez.OPERATORS.has(t)?(this.checkUnaryOperator(this.tokens,this.ops,ez.OPERATION_VALUE_OF.get(t),r),r=!0):(this.tokens.push(new tp(t)),r=!1)),e.setLength(0),r}checkUnaryOperator(e,t,r,s){if(r)if(s||e.isEmpty())if(ez.UNARY_OPERATORS.has(r)){let e=ez.UNARY_MAP.get(r);e&&t.push(e)}else throw new eQ(this.expression,H.format("Extra operator $ found.",r));else{for(;!t.isEmpty()&&this.hasPrecedence(r,t.peek());){let r=t.pop();if(ez.UNARY_OPERATORS.has(r)){let t=e.pop();e.push(new tM("",t,void 0,r))}else{let t=e.pop(),s=e.pop();e.push(new tM("",s,t,r))}}t.push(r)}}hasPrecedence(e,t){let r=ez.OPERATOR_PRIORITY.get(e),s=ez.OPERATOR_PRIORITY.get(t);if(!r||!s)throw Error("Unknown operators provided");return s===r?t!==ez.OBJECT_OPERATOR&&t!==ez.ARRAY_OPERATOR&&e!==ez.OBJECT_OPERATOR&&e!==ez.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==ez.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==ez.ARRAY_OPERATOR)return this.tokenToString(r)+"["+this.formatArrayIndex(t)+"]";if(e==ez.OBJECT_OPERATOR){let e=this.tokenToString(r),s=this.tokenToString(t);if(t instanceof tM){let r=t.getOperations();if(!r.isEmpty()&&r.get(0)==ez.ARRAY_OPERATOR)return"("+e+".("+s+"))"}return"("+e+"."+s+")"}if(e==ez.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 tM)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 tM){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 tM&&!e.getOperations().isEmpty()}equals(e){return this.expression==e.expression}}var tS={},td={};t(td,"ArithmeticAdditionOperator",()=>tw);var tO={};t(tO,"BinaryOperator",()=>tI);class tI{nullCheck(e,t,r){if(l(e)||l(t))throw new eI(H.format("$ cannot be applied to a null value",r.getOperatorName()))}}class tw extends tI{apply(e,t){return l(e)?t:l(t)?e:e+t}}var tP={};t(tP,"ArithmeticDivisionOperator",()=>ty);class ty extends tI{apply(e,t){return this.nullCheck(e,t,ez.DIVISION),e/t}}var tx={};t(tx,"ArithmeticIntegerDivisionOperator",()=>tL);class tL extends tI{apply(e,t){return this.nullCheck(e,t,ez.DIVISION),Math.floor(e/t)}}var tb={};t(tb,"ArithmeticModulusOperator",()=>tv);class tv extends tI{apply(e,t){return this.nullCheck(e,t,ez.MOD),e%t}}var tU={};t(tU,"ArithmeticMultiplicationOperator",()=>tV);class tV extends tI{apply(e,t){this.nullCheck(e,t,ez.MULTIPLICATION);let r="string"==typeof e,s=typeof t;if(r||"string"===s){let s=r?e:t,n=r?t:e,a="",i=n<0,o=Math.floor(n=Math.abs(n));for(;o-- >0;)a+=s;let E=Math.floor(s.length*(n-Math.floor(n)));if(E<0&&(E=-E),0!=E&&(a+=s.substring(0,E)),i){let e="";for(let t=a.length-1;t>=0;t--)e+=a[t];return e}return a}return e*t}}var tC={};t(tC,"ArithmeticSubtractionOperator",()=>tD);class tD extends tI{apply(e,t){return this.nullCheck(e,t,ez.SUBTRACTION),e-t}}var tG={};t(tG,"ArrayOperator",()=>t$);class t$ extends tI{apply(e,t){if(!e)throw new eI("Cannot apply array operator on a null value");if(!t)throw new eI("Cannot retrive null index value");if(!Array.isArray(e)&&"string"!=typeof e)throw new eI(H.format("Cannot retrieve value from a primitive value $",e));if(t>=e.length)throw new eI(H.format("Cannot retrieve index $ from the array of length $",t,e.length));return e[t]}}var tk={};t(tk,"BitwiseAndOperator",()=>tB);class tB extends tI{apply(e,t){return this.nullCheck(e,t,ez.BITWISE_AND),e&t}}var tF={};t(tF,"BitwiseLeftShiftOperator",()=>tY);class tY extends tI{apply(e,t){return this.nullCheck(e,t,ez.BITWISE_LEFT_SHIFT),e<<t}}var tH={};t(tH,"BitwiseOrOperator",()=>tj);class tj extends tI{apply(e,t){return this.nullCheck(e,t,ez.BITWISE_OR),e|t}}var tW={};t(tW,"BitwiseRightShiftOperator",()=>tX);class tX extends tI{apply(e,t){return this.nullCheck(e,t,ez.BITWISE_RIGHT_SHIFT),e>>t}}var tJ={};t(tJ,"BitwiseUnsignedRightShiftOperator",()=>tK);class tK extends tI{apply(e,t){return this.nullCheck(e,t,ez.BITWISE_UNSIGNED_RIGHT_SHIFT),e>>>t}}var tq={};t(tq,"BitwiseXorOperator",()=>tz);class tz extends tI{apply(e,t){return this.nullCheck(e,t,ez.BITWISE_XOR),e^t}}var tQ={};t(tQ,"LogicalAndOperator",()=>tZ);class tZ extends tI{apply(e,t){return!!e&&""!==e&&!!t&&""!==t}}var t0={};t(t0,"LogicalEqualOperator",()=>t1);class t1 extends tI{apply(e,t){return X(e,t)}}var t2={};t(t2,"LogicalGreaterThanEqualOperator",()=>t5);class t5 extends tI{apply(e,t){if(l(e)||l(t))return;let r=ew.findPrimitiveNullAsBoolean(e),s=ew.findPrimitiveNullAsBoolean(t);if(r.getT1()==T.BOOLEAN||s.getT1()==T.BOOLEAN)throw new eI(H.format("Cannot compare >= with the values $ and $",r.getT2(),s.getT2()));return r.getT2()>=s.getT2()}}var t7={};t(t7,"LogicalGreaterThanOperator",()=>t9);class t9 extends tI{apply(e,t){if(l(e)||l(t))return;let r=ew.findPrimitiveNullAsBoolean(e),s=ew.findPrimitiveNullAsBoolean(t);if(r.getT1()==T.BOOLEAN||s.getT1()==T.BOOLEAN)throw new eI(H.format("Cannot compare > with the values $ and $",r.getT2(),s.getT2()));return r.getT2()>s.getT2()}}var t4={};t(t4,"LogicalLessThanEqualOperator",()=>t6);class t6 extends tI{apply(e,t){if(l(e)||l(t))return;let r=ew.findPrimitiveNullAsBoolean(e),s=ew.findPrimitiveNullAsBoolean(t);if(r.getT1()==T.BOOLEAN||s.getT1()==T.BOOLEAN)throw new eI(H.format("Cannot compare <= with the values $ and $",r.getT2(),s.getT2()));return r.getT2()<=s.getT2()}}var t3={};t(t3,"LogicalNotEqualOperator",()=>t8);class t8 extends tI{apply(e,t){return!X(e,t)}}var re={};t(re,"LogicalLessThanOperator",()=>rt);class rt extends tI{apply(e,t){if(l(e)||l(t))return;let r=ew.findPrimitiveNullAsBoolean(e),s=ew.findPrimitiveNullAsBoolean(t);if(r.getT1()==T.BOOLEAN||s.getT1()==T.BOOLEAN)throw new eI(H.format("Cannot compare < with the values $ and $",r.getT2(),s.getT2()));return r.getT2()<s.getT2()}}var rr={};t(rr,"LogicalOrOperator",()=>rs);class rs extends tI{apply(e,t){return!!e&&""!==e||!!t&&""!==t}}var rn={};t(rn,"ObjectOperator",()=>ra);class ra extends tI{apply(e,t){if(!e)throw new eI("Cannot apply array operator on a null value");if(!t)throw new eI("Cannot retrive null property value");let r=typeof e;if(!Array.isArray(e)&&"string"!=r&&"object"!=r)throw new eI(H.format("Cannot retrieve value from a primitive value $",e));return e[t]}}var ri={};t(ri,"LogicalNullishCoalescingOperator",()=>ro);class ro extends tI{apply(e,t){return l(e)?t:e}}var rE={};t(rE,"ArrayRangeOperator",()=>ru);class ru extends tI{apply(e,t){return`${e??""}..${t??""}`}}r(tS,td),r(tS,tP),r(tS,tx),r(tS,tb),r(tS,tU),r(tS,tC),r(tS,tG),r(tS,tO),r(tS,tk),r(tS,tF),r(tS,tH),r(tS,tW),r(tS,tJ),r(tS,tq),r(tS,tQ),r(tS,t0),r(tS,t2),r(tS,t7),r(tS,t4),r(tS,t3),r(tS,re),r(tS,rr),r(tS,rn),r(tS,ri),r(tS,rE);var rh={},rA={};t(rA,"ArithmeticUnaryMinusOperator",()=>rT);var rl={};t(rl,"UnaryOperator",()=>rc);class rc{nullCheck(e,t){if(l(e))throw new eI(H.format("$ cannot be applied to a null value",t.getOperatorName()))}}class rT extends rc{apply(e){return this.nullCheck(e,ez.UNARY_MINUS),ew.findPrimitiveNumberType(e),-e}}var rg={};t(rg,"ArithmeticUnaryPlusOperator",()=>rp);class rp extends rc{apply(e){return this.nullCheck(e,ez.UNARY_PLUS),ew.findPrimitiveNumberType(e),e}}var rR={};t(rR,"BitwiseComplementOperator",()=>rm);class rm extends rc{apply(e){this.nullCheck(e,ez.UNARY_BITWISE_COMPLEMENT);let t=ew.findPrimitiveNumberType(e);if(t.getT1()!=T.INTEGER&&t.getT1()!=T.LONG)throw new eI(H.format("Unable to apply bitwise operator on $",e));return~e}}var rf={};t(rf,"LogicalNotOperator",()=>rN);class rN extends rc{apply(e){return!e&&""!==e}}r(rh,rA),r(rh,rg),r(rh,rR),r(rh,rf),r(rh,rl),t({},"LiteralTokenValueExtractor",()=>rM);let r_=new Map([["true",!0],["false",!1],["null",void 0],["undefined",void 0]]);class rM extends eZ{static{this.INSTANCE=new rM}getValueInternal(e){if(!J.isNullOrBlank(e))return(e=e.trim(),r_.has(e))?r_.get(e):e.startsWith('"')?this.processString(e):this.processNumbers(e)}processNumbers(e){try{let t=Number(e);if(isNaN(t))throw Error("Parse number error");return t}catch(t){throw new eQ(e,H.format("Unable to parse the literal or expression $",e),t)}}processString(e){if(!e.endsWith('"'))throw new eQ(e,H.format("String literal $ is not closed properly",e));return e.substring(1,e.length-1)}getPrefix(){return""}getStore(){}getValueFromExtractors(e,t){return t.has(e+".")?t.get(e+".")?.getStore():this.getValue(e)}}var rS={};t(rS,"ConditionalTernaryOperator",()=>rO);class rd{nullCheck(e,t,r,s){if(l(e)||l(t)||l(r))throw new eI(H.format("$ cannot be applied to a null value",s.getOperatorName()))}}class rO extends rd{apply(e,t,r){return e?t:r}}r({},rS);class rI extends eZ{static{this.PREFIX="_internal."}addValue(e,t){this.values.set(e,t)}getValueInternal(e){let t=eZ.splitPath(e),r=t[1],s=r.indexOf("["),n=2;return -1!=s&&(r=t[1].substring(0,s),(t=[...t])[1]=t[1].substring(s),n=1),this.retrieveElementFrom(e,t,n,this.values.get(r))}getPrefix(){return rI.PREFIX}getStore(){}constructor(...e){super(...e),this.values=new Map}}class rw{static{this.expressionCache=new Map}static{this.loggedErrorKeys=new Set}static{this.keyCounter=0}static getCachedExpression(e){let t=rw.expressionCache.get(e);return t||(t=new tM(e),rw.expressionCache.set(e,t)),t}static{this.UNARY_OPERATORS_MAP=new Map([[ez.UNARY_BITWISE_COMPLEMENT,new rm],[ez.UNARY_LOGICAL_NOT,new rN],[ez.UNARY_MINUS,new rT],[ez.UNARY_PLUS,new rp]])}static{this.TERNARY_OPERATORS_MAP=new Map([[ez.CONDITIONAL_TERNARY_OPERATOR,new rO]])}static{this.BINARY_OPERATORS_MAP=new Map([[ez.ADDITION,new tw],[ez.DIVISION,new ty],[ez.INTEGER_DIVISION,new tL],[ez.MOD,new tv],[ez.MULTIPLICATION,new tV],[ez.SUBTRACTION,new tD],[ez.BITWISE_AND,new tB],[ez.BITWISE_LEFT_SHIFT,new tY],[ez.BITWISE_OR,new tj],[ez.BITWISE_RIGHT_SHIFT,new tX],[ez.BITWISE_UNSIGNED_RIGHT_SHIFT,new tK],[ez.BITWISE_XOR,new tz],[ez.AND,new tZ],[ez.EQUAL,new t1],[ez.GREATER_THAN,new t9],[ez.GREATER_THAN_EQUAL,new t5],[ez.LESS_THAN,new rt],[ez.LESS_THAN_EQUAL,new t6],[ez.OR,new rs],[ez.NOT_EQUAL,new t8],[ez.NULLISH_COALESCING_OPERATOR,new ro],[ez.ARRAY_OPERATOR,new t$],[ez.ARRAY_RANGE_INDEX_OPERATOR,new ru],[ez.OBJECT_OPERATOR,new ra]])}static{this.UNARY_OPERATORS_MAP_KEY_SET=new Set(rw.UNARY_OPERATORS_MAP.keys())}static{this.PATTERN_UNKNOWN=0}static{this.PATTERN_LITERAL=1}static{this.PATTERN_SIMPLE_PATH=2}static{this.PATTERN_SIMPLE_ARRAY_ACCESS=3}static{this.PATTERN_SIMPLE_COMPARISON=4}static{this.PATTERN_SIMPLE_TERNARY=5}static{this.patternCache=new Map}static{this.LITERAL_TRUE="true"}static{this.LITERAL_FALSE="false"}static{this.LITERAL_NULL="null"}static{this.LITERAL_UNDEFINED="undefined"}static{this.NUMBER_REGEX=/^-?\d+(\.\d+)?$/}static{this.SINGLE_QUOTE_STRING_REGEX=/^'([^'\\]|\\.)*'$/}static{this.DOUBLE_QUOTE_STRING_REGEX=/^"([^"\\]|\\.)*"$/}static{this.SIMPLE_PATH_REGEX=/^[A-Za-z_][A-Za-z0-9_]*(\.[A-Za-z_][A-Za-z0-9_]*|\[\d+\])*$/}static detectPattern(e){let t=e.getExpression(),r=rw.patternCache.get(t);if(void 0!==r)return r;let s=rw.PATTERN_UNKNOWN;if(t===rw.LITERAL_TRUE||t===rw.LITERAL_FALSE||t===rw.LITERAL_NULL||t===rw.LITERAL_UNDEFINED||rw.NUMBER_REGEX.test(t)||rw.SINGLE_QUOTE_STRING_REGEX.test(t)||rw.DOUBLE_QUOTE_STRING_REGEX.test(t))s=rw.PATTERN_LITERAL;else if(!t.includes(".")||t.includes("{{")||t.includes("..")){if(t.includes(".."))s=rw.PATTERN_UNKNOWN;else if(!t.includes("{{")){let t=e.getOperationsArray();s=rw.detectTernaryOrComparison(e,t)}}else{let t=e.getOperationsArray(),r=e.getTokensArray(),n=t.length>0;for(let e of t)if(e!==ez.OBJECT_OPERATOR&&e!==ez.ARRAY_OPERATOR){n=!1;break}if(n){for(let e of r)if(e instanceof tM){n=!1;break}}s=n?rw.PATTERN_SIMPLE_PATH:rw.detectTernaryOrComparison(e,t)}return rw.patternCache.set(t,s),s}static detectTernaryOrComparison(e,t){for(let t of e.getTokensArray())if(t instanceof tM)return rw.PATTERN_UNKNOWN;return 1===t.length&&t[0]===ez.CONDITIONAL_TERNARY_OPERATOR?rw.PATTERN_SIMPLE_TERNARY:1===t.length&&(t[0]===ez.EQUAL||t[0]===ez.NOT_EQUAL)?rw.PATTERN_SIMPLE_COMPARISON:rw.PATTERN_UNKNOWN}static evaluateLiteral(e){if(e===rw.LITERAL_TRUE)return!0;if(e===rw.LITERAL_FALSE)return!1;if(e===rw.LITERAL_NULL)return null;if(e!==rw.LITERAL_UNDEFINED){if(rw.NUMBER_REGEX.test(e))return e.includes(".")?Number.parseFloat(e):Number.parseInt(e,10);if(rw.SINGLE_QUOTE_STRING_REGEX.test(e)||rw.DOUBLE_QUOTE_STRING_REGEX.test(e))return e.slice(1,-1)}}evaluateSimplePath(e,t){let r=e.getExpression(),s=r.indexOf(".");if(-1===s)return;let n=r.substring(0,s+1),a=t.get(n);if(a)return a.getValue(r)}evaluateSimpleComparison(e,t){let r=e.getOperationsArray(),s=e.getTokensArray();if(2!==s.length||1!==r.length)return;let n=this.getTokenValue(s[1],t),a=this.getTokenValue(s[0],t);return r[0]===ez.EQUAL?n==a:r[0]===ez.NOT_EQUAL?n!=a:void 0}evaluateSimpleTernary(e,t){let r=e.getTokensArray();if(3!==r.length)return;let s=this.getTokenValue(r[2],t),n=this.getTokenValue(r[1],t),a=this.getTokenValue(r[0],t);return s?n:a}getTokenValue(e,t){if(e instanceof tR)return e.getElement();let r=e.getExpression(),s=rw.evaluateLiteral(r);if(void 0!==s||"undefined"===r||"null"===r)return s;let n=r.indexOf(".");if(-1!==n){let e=r.substring(0,n+1),s=t.get(e);if(s)return s.getValue(r)}return rM.INSTANCE.getValue(r)}constructor(e){this.internalTokenValueExtractor=new rI,e instanceof tM?(this.exp=e,this.expression=this.exp.getExpression()):this.expression=e}evaluate(e){try{e.forEach(t=>{t.setValuesMap(e)});let t=this.processNestingExpression(this.expression,e);this.expression=t.getT1(),this.exp=t.getT2();let r=rw.detectPattern(this.exp);if(r===rw.PATTERN_LITERAL)return rw.evaluateLiteral(this.expression);if(r===rw.PATTERN_SIMPLE_PATH)return this.evaluateSimplePath(this.exp,e);if(r===rw.PATTERN_SIMPLE_COMPARISON)return this.evaluateSimpleComparison(this.exp,e);if(r===rw.PATTERN_SIMPLE_TERNARY)return this.evaluateSimpleTernary(this.exp,e);return(e=new Map(e.entries())).set(this.internalTokenValueExtractor.getPrefix(),this.internalTokenValueExtractor),this.internalTokenValueExtractor.setValuesMap(e),this.evaluateExpression(this.exp,e)}catch(e){if(!e._exprErrorLogged){let t=`top|${this.expression}`;rw.loggedErrorKeys.has(t)||(rw.loggedErrorKeys.add(t),console.error("[EXPR ERROR : ]",JSON.stringify({EXPRESSION:this.expression,ERROR:String(e)},null,2)))}throw e}}processNestingExpression(e,t){let r=0,s=0,n=new j;for(;s<e.length-1;){if("{"==e.charAt(s)&&"{"==e.charAt(s+1))0==r&&n.push(new q(s+2,-1)),r++,s++;else if("}"==e.charAt(s)&&"}"==e.charAt(s+1)){if(--r<0)throw new eQ(e,"Expecting {{ nesting path operator to be started before closing");0==r&&n.push(n.pop().setT2(s)),s++}s++}let a=this.replaceNestingExpression(e,t,n);return new q(a,rw.getCachedExpression(a))}replaceNestingExpression(e,t,r){let s=r.toArray().sort((e,t)=>t.getT1()-e.getT1());if(0===s.length)return e;let n=e;for(let r of s){let s,a;if(-1==r.getT2())throw new eQ(e,"Expecting }} nesting path operator to be closed");let i=e.substring(r.getT1(),r.getT2()),o=r.getT1()-2,E=r.getT2()+2,u=e.substring(E,Math.min(E+1,e.length)),h="."===u||"["===u||o>0&&"["===e.charAt(o-1)||o>0&&"."===e.charAt(o-1),A=0,l=0;for(let t=0;t<o;t++)"'"===e.charAt(t)&&(0===t||"\\"!==e.charAt(t-1))?A++:'"'===e.charAt(t)&&(0===t||"\\"!==e.charAt(t-1))&&l++;let c=A%2==1||l%2==1;try{let e=new rw(i);e.internalTokenValueExtractor=this.internalTokenValueExtractor,s=e.evaluate(t)}catch(s){let r=`${e}|${i}`;throw rw.loggedErrorKeys.has(r)||(rw.loggedErrorKeys.add(r),console.error("[EXPR ERROR : ]",JSON.stringify({ORIGINAL:e,FAILED_INNER:i,CONTEXT:{isInPath:h,isInStringLiteral:c,startPos:o,endPos:E},RESULT_SO_FAR:n,EXTRACTORS:Array.from(t.keys()),ERROR:String(s)},null,2))),s._exprErrorLogged=!0,s}let T="string"==typeof s&&Array.from(t.keys()).some(e=>s.startsWith(e));if(h||c||T)a=String(s);else{let e=`__nested_${rw.keyCounter++}__`;this.internalTokenValueExtractor.addValue(e,s),a=`${this.internalTokenValueExtractor.getPrefix()}${e}`}n=n.substring(0,o)+a+n.substring(E)}return n}getExpression(){return this.exp||(this.exp=rw.getCachedExpression(this.expression)),this.exp}getExpressionString(){return this.expression}evaluateExpression(e,t){let r=e.getOperationsArray(),s=e.getTokensArray(),n=[],a={opIdx:0,srcIdx:0},i=()=>{if(n.length>0)return n.pop();if(a.srcIdx>=s.length){if(a.opIdx<r.length)throw new eQ(e.getExpression(),"Not enough tokens to evaluate expression");throw new eQ(e.getExpression(),"Expression evaluation incomplete: missing token")}return s[a.srcIdx++]},o=()=>{if(!(a.opIdx>=r.length))return r[a.opIdx++]},E=()=>{if(!(a.opIdx>=r.length))return r[a.opIdx]},u=()=>n.length>0||a.srcIdx<s.length;for(;a.opIdx<r.length;){let e=o(),h=i();if(rw.UNARY_OPERATORS_MAP_KEY_SET.has(e))n.push(this.applyUnaryOperation(e,this.getValueFromToken(t,h)));else if(e==ez.OBJECT_OPERATOR||e==ez.ARRAY_OPERATOR)this.processObjectOrArrayOperatorIndexed(t,r,s,n,a,e,h,i,o,E,u);else if(e==ez.CONDITIONAL_TERNARY_OPERATOR){let r=i(),s=i(),a=this.getValueFromToken(t,s),o=this.getValueFromToken(t,r),E=this.getValueFromToken(t,h);n.push(this.applyTernaryOperation(e,a,o,E))}else{let r=i(),s=this.getValueFromToken(t,r),a=this.getValueFromToken(t,h);n.push(this.applyBinaryOperation(e,s,a))}}for(;a.srcIdx<s.length;)n.push(s[a.srcIdx++]);if(0===n.length)throw new eI(H.format("Expression : $ evaluated to null",e));if(1!==n.length)throw new eI(H.format("Expression : $ evaluated multiple values $",e,n));let h=n[0];return h instanceof tR?h.getElement():h instanceof tM?this.evaluateExpression(h,t):this.getValueFromToken(t,h)}processObjectOrArrayOperatorIndexed(e,t,r,s,n,a,i,o,E,u,h){let A,l=[],c=[];if(!a||!i)return;do{if(c.push(a),i instanceof tM)if(a!==ez.ARRAY_OPERATOR&&this.isPathExpression(i)){let e=this.buildPathString(i);l.push(new tp(e))}else{let t=this.evaluateExpression(i,e);l.push(new tR(i.toString(),t))}else i&&l.push(i);i=s.length>0?s.pop():n.srcIdx<r.length?r[n.srcIdx++]:void 0,a=E()}while(a==ez.OBJECT_OPERATOR||a==ez.ARRAY_OPERATOR)if(i)if(i instanceof tM)if(this.isPathExpression(i)){let e=this.buildPathString(i);l.push(new tp(e))}else l.push(new tR(i.toString(),this.evaluateExpression(i,e)));else l.push(i);void 0!==a&&n.opIdx--;let T=l.length-1,g=c.length-1,p=l[T--];if(p instanceof tR&&"object"==typeof p.getTokenValue()){let e="_k"+rw.keyCounter++;this.internalTokenValueExtractor.addValue(e,p.getTokenValue()),p=new tp(rI.PREFIX+e)}if(p instanceof tR){let e=p.getExpression(),t=p.getTokenValue();A=e&&e.length>0&&('"'==e.charAt(0)||"'"==e.charAt(0))&&"string"==typeof t&&t.includes(".")?e:"string"==typeof t?t:String(t)}else A=p.toString();for(;T>=0;){let e;if(p=l[T--],a=c[g--],p instanceof tR){let t=p.getExpression(),r=p.getTokenValue();e=a==ez.ARRAY_OPERATOR&&t&&t.length>0&&('"'==t.charAt(0)||"'"==t.charAt(0))&&"string"==typeof r&&r.includes(".")?t:"string"==typeof r?r:String(r)}else e=p.toString();A=A+a.getOperator()+e+(a==ez.ARRAY_OPERATOR?"]":"")}let R=A.substring(0,A.indexOf(".")+1);if(R.length>2&&e.has(R))s.push(new tR(A,this.getValue(A,e)));else{let e;try{e=rM.INSTANCE.getValue(A)}catch(t){e=this.evaluateLiteralPropertyAccess(A)}s.push(new tR(A,e))}}evaluateLiteralPropertyAccess(e){let t,r=e.indexOf(".");if(-1===r)return e;let s=e.substring(0,r),n=e.substring(r+1);try{t=rM.INSTANCE.getValue(s)}catch(t){return e}if(null==t)return;let a=this.splitPropertyPath(n),i=t;for(let e of a){if(null==i)return;i=e.includes("[")?this.accessPropertyWithBrackets(i,e):i[e]}return i}splitPropertyPath(e){let t=[],r="",s=!1;for(let n=0;n<e.length;n++){let a=e.charAt(n);"["===a?(r.length>0&&(t.push(r),r=""),s=!0,r+=a):"]"===a?(r+=a,s=!1,t.push(r),r=""):"."!==a||s?r+=a:r.length>0&&(t.push(r),r="")}return r.length>0&&t.push(r),t}accessPropertyWithBrackets(e,t){let r=t.match(/^\[(.+)\]$/);if(r){let t=r[1];(t.startsWith('"')&&t.endsWith('"')||t.startsWith("'")&&t.endsWith("'"))&&(t=t.substring(1,t.length-1));let s=parseInt(t);return isNaN(s)?e[t]:e[s]}return e[t]}applyTernaryOperation(e,t,r,s){let n=rw.TERNARY_OPERATORS_MAP.get(e);if(!n)throw new eQ(this.expression,H.format("No operator found to evaluate $",this.getExpression()));return new tR(e.toString(),n.apply(t,r,s))}applyBinaryOperation(e,t,r){let s=typeof t,n=typeof r,a=rw.BINARY_OPERATORS_MAP.get(e);if(("object"===s||"object"===n)&&e!==ez.EQUAL&&e!==ez.NOT_EQUAL&&e!==ez.NULLISH_COALESCING_OPERATOR&&e!==ez.AND&&e!==ez.OR)throw new eQ(this.expression,H.format("Cannot evaluate expression $ $ $",t,e.getOperator(),r));if(!a)throw new eQ(this.expression,H.format("No operator found to evaluate $ $ $",t,e.getOperator(),r));return new tR(e.toString(),a.apply(t,r))}applyUnaryOperation(e,t){let r=typeof t;if(e.getOperator()!=ez.NOT.getOperator()&&e.getOperator()!=ez.UNARY_LOGICAL_NOT.getOperator()&&("object"===r||Array.isArray(t)))throw new eQ(this.expression,H.format("The operator $ cannot be applied to $",e.getOperator(),t));let s=rw.UNARY_OPERATORS_MAP.get(e);if(!s)throw new eQ(this.expression,H.format("No Unary operator $ is found to apply on $",e.getOperator(),t));return new tR(e.toString(),s.apply(t))}getValueFromToken(e,t){return t instanceof tM?this.evaluateExpression(t,e):t instanceof tR?t.getElement():this.getValue(t.getExpression(),e)}getValue(e,t){let r=e.substring(0,e.indexOf(".")+1);return t.has(r)?t.get(r).getValue(e):rM.INSTANCE.getValueFromExtractors(e,t)}buildPathString(e){let t=e.getOperationsArray(),r=e.getTokensArray();if(0===t.length){if(1===r.length){let e=r[0];return e instanceof tM?this.buildPathString(e):this.getTokenExpressionString(e)}return e.getExpression()||""}if(r.length>=2&&t.length>=1){let e=r[0],s=r[1],n=t[0],a=s instanceof tM?this.buildPathString(s):this.getTokenExpressionString(s),i=e instanceof tM?this.buildPathString(e):this.getTokenExpressionString(e);if(n===ez.OBJECT_OPERATOR)return a+"."+i;if(n===ez.ARRAY_OPERATOR)return a+"["+i+"]";if(n===ez.ARRAY_RANGE_INDEX_OPERATOR)return a+".."+i}return this.stripOuterParens(e.toString())}getTokenExpressionString(e){return e instanceof tR,e.getExpression()}stripOuterParens(e){if(e.length>=2&&"("===e.charAt(0)&&")"===e.charAt(e.length-1)){let t=0;for(let r=0;r<e.length;r++)if("("===e.charAt(r)?t++:")"===e.charAt(r)&&t--,0===t&&r<e.length-1)return e;return e.substring(1,e.length-1)}return e}isPathExpression(e){let t=e.getOperationsArray(),r=e.getTokensArray();if(0===t.length)return!0;for(let e of t)if(!this.isPathOperator(e)||e===ez.ARRAY_OPERATOR&&r.length>0&&!this.isStaticArrayIndex(r[0]))return!1;return r.every(e=>!(e instanceof tM)||this.isPathExpression(e))}isPathOperator(e){return e===ez.OBJECT_OPERATOR||e===ez.ARRAY_OPERATOR||e===ez.ARRAY_RANGE_INDEX_OPERATOR}isStaticArrayIndex(e){return e instanceof tM?this.isStaticArrayIndexExpression(e):this.isStaticLiteral(e.getExpression())}isStaticArrayIndexExpression(e){let t=e.getOperationsArray(),r=e.getTokensArray();return 0===t.length&&1===r.length?this.isStaticLiteral(r[0].getExpression()):1===t.length&&t[0]===ez.ARRAY_RANGE_INDEX_OPERATOR&&r.every(e=>this.isStaticArrayIndex(e))}isStaticLiteral(e){return!!(/^-?\d+(\.\d+)?$/.test(e)||e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))}}let rP="name",ry="value";class rx extends eN{getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(rP);if(J.isNullOrBlank(t))throw new B("Empty string is not a valid name for the context element");let r=e?.getArguments()?.get(ry),s=eZ.splitPath(t);if(s.length<1||"Context"!==s[0])throw new eI(H.format("The context path $ is not a valid path in context",t));let n=this.evaluateDynamicParts(s,e);return this.modifyContextWithParts(e,t,r,n)}evaluateDynamicParts(e,t){let r=[];for(let s of e){let e=this.evaluateBracketExpressions(s,t);r.push(e)}return r}evaluateBracketExpressions(e,t){let r="",s=0;for(;s<e.length;)if("["===e[s]){r+="[",s++;let n="",a=1,i=!1,o="";for(;s<e.length&&a>0;){let t=e[s];i?(t===o&&"\\"!==e[s-1]&&(i=!1),n+=t):'"'===t||"'"===t?(i=!0,o=t,n+=t):"["===t?(a++,n+=t):"]"===t?--a>0&&(n+=t):n+=t,s++}if(/^-?\d+$/.test(n)||n.startsWith('"')&&n.endsWith('"')||n.startsWith("'")&&n.endsWith("'"))r+=n+"]";else try{let e=new rw(n).evaluate(t.getValuesMap());r+=String(e)+"]"}catch(e){r+=n+"]"}}else r+=e[s],s++;return r}modifyContextWithParts(e,t,r,s){if(s.length<2)throw new B(H.format("Context path '$' is too short",t));let n=s[1],a=this.parseBracketSegments(n),i=a[0],o=e.getContext()?.get(i);if(l(o))throw new B(H.format("Context doesn't have any element with name '$' ",i));if(2===s.length&&1===a.length)return o.setElement(r),new F([k.outputOf(new Map)]);let E=o.getElement();l(E)&&(E=(a.length>1?this.isArrayIndex(a[1]):s.length>2&&this.isArrayAccess(s[2]))?[]:{},o.setElement(E));let u=[];for(let e=1;e<a.length;e++)u.push({value:this.stripQuotes(a[e]),isArray:this.isArrayIndex(a[e])});for(let e=2;e<s.length;e++)for(let t of this.parseBracketSegments(s[e]))u.push({value:this.stripQuotes(t),isArray:this.isArrayIndex(t)});for(let e=0;e<u.length-1;e++){let t=u[e],r=u[e+1];E=t.isArray?this.getDataFromArray(E,t.value,r.isArray):this.getDataFromObject(E,t.value,r.isArray)}let h=u[u.length-1];return h.isArray?this.putDataInArray(E,h.value,r):this.putDataInObject(E,h.value,r),new F([k.outputOf(new Map)])}parseBracketSegments(e){let t=[],r=0,s=0;for(;s<e.length;)if("["===e[s]){s>r&&t.push(e.substring(r,s));let n=s+1,a=!1,i="";for(;n<e.length;){if(a)e[n]===i&&"\\"!==e[n-1]&&(a=!1);else if('"'===e[n]||"'"===e[n])a=!0,i=e[n];else if("]"===e[n])break;n++}t.push(e.substring(s+1,n)),s=r=n+1}else s++;return r<e.length&&t.push(e.substring(r)),t.length>0?t:[e]}isArrayIndex(e){return/^-?\d+$/.test(e)}isArrayAccess(e){return e.startsWith("[")||this.isArrayIndex(e)}stripQuotes(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.substring(1,e.length-1):e}getDataFromArray(e,t,r){if(!Array.isArray(e))throw new B(H.format("Expected an array but found $",e));let s=parseInt(t);if(isNaN(s))throw new B(H.format("Expected an array index but found $",t));if(s<0)throw new B(H.format("Array index is out of bound - $",t));let n=e[s];return l(n)&&(n=r?[]:{},e[s]=n),n}getDataFromObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new B(H.format("Expected an object but found $",e));let s=e[t];return l(s)&&(s=r?[]:{},e[t]=s),s}putDataInArray(e,t,r){if(!Array.isArray(e))throw new B(H.format("Expected an array but found $",e));let s=parseInt(t);if(isNaN(s))throw new B(H.format("Expected an array index but found $",t));if(s<0)throw new B(H.format("Array index is out of bound - $",t));e[s]=r}putDataInObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new B(H.format("Expected an object but found $",e));e[t]=r}constructor(...e){super(...e),this.signature=new Y("Set").setNamespace(A.SYSTEM_CTX).setParameters(new Map([v.ofEntry(rP,new y().setName(rP).setType(m.of(T.STRING)).setMinLength(1),!1),v.ofEntry(ry,y.ofAny(ry))])).setEvents(new Map([$.outputEventMapEntry(new Map)]))}}let rL="value",rb="eventName",rv="results";class rU extends eN{getSignature(){return this.signature}async internalExecute(e){let t=e.getEvents(),r=e.getArguments(),s=r?.get(rb),n=e?.getArguments()?.get(rv).map(t=>{let r=t[rL];if(l(r))throw new B("Expect a value object");let s=r.value;return r.isExpression&&(s=new rw(s).evaluate(e.getValuesMap())),[t.name,s]}).reduce((e,t)=>(e.set(t[0],t[1]),e),new Map);return t?.has(s)||t?.set(s,[]),t?.get(s)?.push(n),new F([k.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new Y("GenerateEvent").setNamespace(A.SYSTEM).setParameters(new Map([v.ofEntry(rb,y.ofString(rb).setDefaultValue("output")),v.ofEntry(rv,y.ofObject(rv).setProperties(new Map([["name",y.ofString("name")],[rL,v.EXPRESSION]])),!0)])).setEvents(new Map([$.outputEventMapEntry(new Map)]))}}class rV extends eN{static{this.CONDITION="condition"}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rV.CONDITION);return new F([k.of(t||""===t?$.TRUE:$.FALSE,new Map),k.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new Y("If").setNamespace(A.SYSTEM).setParameters(new Map([v.ofEntry(rV.CONDITION,y.ofAny(rV.CONDITION))])).setEvents(new Map([$.eventMapEntry($.TRUE,new Map),$.eventMapEntry($.FALSE,new Map),$.outputEventMapEntry(new Map)]))}}let rC="stepName";class rD extends eN{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rC);return e.getExecutionContext().set(t,!0),new F([k.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new Y("Break").setNamespace(A.SYSTEM_LOOP).setParameters(new Map([v.ofEntry(rC,y.of(rC,T.STRING))])).setEvents(new Map([$.outputEventMapEntry(new Map([]))]))}}let rG="count",r$="value",rk="index";class rB extends eN{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rG),r=0,s=e.getStatementExecution()?.getStatement()?.getStatementName();return new F({next(){if(r>=t||s&&e.getExecutionContext()?.get(s))return s&&e.getExecutionContext()?.delete(s),k.outputOf(new Map([[r$,r]]));let n=k.of($.ITERATION,new Map([[rk,r]]));return++r,n}})}constructor(...e){super(...e),this.signature=new Y("CountLoop").setNamespace(A.SYSTEM_LOOP).setParameters(new Map([v.ofEntry(rG,y.of(rG,T.INTEGER))])).setEvents(new Map([$.eventMapEntry($.ITERATION,new Map([[rk,y.of(rk,T.INTEGER)]])),$.outputEventMapEntry(new Map([[r$,y.of(r$,T.INTEGER)]]))]))}}let rF="source",rY="each",rH="index",rj="value";class rW extends eN{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rF),r=0,s=e.getStatementExecution()?.getStatement()?.getStatementName();return new F({next(){if(r>=t.length||s&&e.getExecutionContext()?.get(s))return s&&e.getExecutionContext()?.delete(s),k.outputOf(new Map([[rj,r]]));let n=k.of($.ITERATION,new Map([[rH,r],[rY,t[r]]]));return++r,n}})}constructor(...e){super(...e),this.signature=new Y("ForEachLoop").setNamespace(A.SYSTEM_LOOP).setParameters(new Map([v.ofEntry(rF,y.ofArray(rF,y.ofAny(rF)))])).setEvents(new Map([$.eventMapEntry($.ITERATION,new Map([[rH,y.of(rH,T.INTEGER)],[rY,y.ofAny(rY)]])),$.outputEventMapEntry(new Map([[rj,y.of(rj,T.INTEGER)]]))]))}}let rX="from",rJ="step",rK="value",rq="index";class rz extends eN{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rX),r=e.getArguments()?.get("to"),s=e.getArguments()?.get(rJ),n=s>0,a=t,i=!1,o=e.getStatementExecution()?.getStatement()?.getStatementName();return new F({next(){if(i)return;if(n&&a>=r||!n&&a<=r||o&&e.getExecutionContext()?.get(o))return i=!0,o&&e.getExecutionContext()?.delete(o),k.outputOf(new Map([[rK,a]]));let t=k.of($.ITERATION,new Map([[rq,a]]));return a+=s,t}})}constructor(...e){super(...e),this.signature=new Y("RangeLoop").setNamespace(A.SYSTEM_LOOP).setParameters(new Map([v.ofEntry(rX,y.of(rX,T.INTEGER,T.LONG,T.FLOAT,T.DOUBLE).setDefaultValue(0)),v.ofEntry("to",y.of("to",T.INTEGER,T.LONG,T.FLOAT,T.DOUBLE).setDefaultValue(1)),v.ofEntry(rJ,y.of(rJ,T.INTEGER,T.LONG,T.FLOAT,T.DOUBLE).setDefaultValue(1).setNot(new y().setConstant(0)))])).setEvents(new Map([$.eventMapEntry($.ITERATION,new Map([[rq,y.of(rq,T.INTEGER,T.LONG,T.FLOAT,T.DOUBLE)]])),$.outputEventMapEntry(new Map([[rK,y.of(rK,T.INTEGER,T.LONG,T.FLOAT,T.DOUBLE)]]))]))}}let rQ="value";class rZ extends eN{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rQ);return new F([k.outputOf(new Map([[rQ,t.reduce((e,t)=>e+=t,0)]]))])}constructor(...e){super(...e),this.signature=new Y("Add").setNamespace(A.MATH).setParameters(new Map([[rQ,new v(rQ,y.ofNumber(rQ)).setVariableArgument(!0)]])).setEvents(new Map([$.outputEventMapEntry(new Map([[rQ,y.ofNumber(rQ)]]))]))}}let r0="value",r1="value1",r2="value2";class r5 extends eN{constructor(e,t,r=1,...s){super(),this.paramFunctions=[()=>new Map([[r0,new v(r0,y.ofNumber(r0))]]),()=>new Map([[r1,new v(r1,y.ofNumber(r1))],[r2,new v(r2,y.ofNumber(r2))]])],s&&s.length||(s=[T.DOUBLE]),this.parametersNumber=r,this.mathFunction=t,this.signature=new Y(e).setNamespace(A.MATH).setParameters(this.paramFunctions[r-1]()).setEvents(new Map([$.outputEventMapEntry(new Map([[r0,new y().setType(m.of(...s)).setName(r0)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t,r=ew.findPrimitiveNumberType(e.getArguments()?.get(1==this.parametersNumber?r0:r1)).getT2();return 2==this.parametersNumber&&(t=ew.findPrimitiveNumberType(e.getArguments()?.get(r2)).getT2()),new F([k.outputOf(new Map([[r0,this.mathFunction.call(this,r,t)]]))])}}let r7="value";class r9 extends eN{constructor(){super(),this.signature=new Y("Hypotenuse").setNamespace(A.MATH).setParameters(new Map([[r7,new v(r7,y.ofNumber(r7)).setVariableArgument(!0)]])).setEvents(new Map([$.outputEventMapEntry(new Map([[r7,new y().setType(m.of(T.DOUBLE)).setName(r7)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(r7);return new F([k.outputOf(new Map([[r7,Math.sqrt(t.reduce((e,t)=>e+=t*t,0))]]))])}}let r4="value";class r6 extends eN{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(r4);return new F([k.outputOf(new Map([[r4,t.reduce((e,t)=>!e&&0!==e||t>e?t:e)]]))])}constructor(...e){super(...e),this.signature=new Y("Maximum").setNamespace(A.MATH).setParameters(new Map([[r4,new v(r4,y.ofNumber(r4)).setVariableArgument(!0)]])).setEvents(new Map([$.outputEventMapEntry(new Map([[r4,y.ofNumber(r4)]]))]))}}let r3="value";class r8 extends eN{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(r3);return new F([k.outputOf(new Map([[r3,t.reduce((e,t)=>!e&&0!==e||t<e?t:e)]]))])}constructor(...e){super(...e),this.signature=new Y("Minimum").setNamespace(A.MATH).setParameters(new Map([[r3,new v(r3,y.ofNumber(r3)).setVariableArgument(!0)]])).setEvents(new Map([$.outputEventMapEntry(new Map([[r3,y.ofNumber(r3)]]))]))}}let se="value";class st extends eN{getSignature(){return this.signature}async internalExecute(e){return new F([k.outputOf(new Map([[se,Math.random()]]))])}constructor(...e){super(...e),this.signature=new Y("Random").setNamespace(A.MATH).setEvents(new Map([$.outputEventMapEntry(V.of(se,y.ofDouble(se)))]))}}class sr extends eN{static{this.MIN_VALUE="minValue"}static{this.MAX_VALUE="maxValue"}static{this.VALUE="value"}constructor(e,t,r,s,n){super(),this.signature=new Y(e).setParameters(V.of(sr.MIN_VALUE,t,sr.MAX_VALUE,r)).setNamespace(A.MATH).setEvents(new Map([$.outputEventMapEntry(V.of(sr.VALUE,s))])),this.randomFunction=n}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(sr.MIN_VALUE),r=e.getArguments()?.get(sr.MAX_VALUE),s=this.randomFunction(t,r);return new F([k.outputOf(new Map([[sr.VALUE,s]]))])}}class ss{constructor(){this.functionObjectsIndex={Absolute:new r5("Absolute",e=>Math.abs(e),1,T.INTEGER,T.LONG,T.FLOAT,T.DOUBLE),ArcCosine:new r5("ArcCosine",e=>Math.acos(e)),ArcSine:new r5("ArcSine",e=>Math.asin(e)),ArcTangent:new r5("ArcTangent",e=>Math.atan(e)),Ceiling:new r5("Ceiling",e=>Math.ceil(e)),Cosine:new r5("Cosine",e=>Math.cos(e)),HyperbolicCosine:new r5("HyperbolicCosine",e=>Math.cosh(e)),CubeRoot:new r5("CubeRoot",e=>Math.cbrt(e)),Exponential:new r5("Exponential",e=>Math.exp(e)),ExponentialMinus1:new r5("ExponentialMinus1",e=>Math.expm1(e)),Floor:new r5("Floor",e=>Math.floor(e)),LogNatural:new r5("LogNatural",e=>Math.log(e)),Log10:new r5("Log10",e=>Math.log10(e)),Round:new r5("Round",e=>Math.round(e),1,T.INTEGER,T.LONG),Sine:new r5("Sine",e=>Math.sin(e)),HyperbolicSine:new r5("HyperbolicSine",e=>Math.sinh(e)),Tangent:new r5("Tangent",e=>Math.tan(e)),HyperbolicTangent:new r5("HyperbolicTangent",e=>Math.tanh(e)),ToDegrees:new r5("ToDegrees",e=>Math.PI/180*e),ToRadians:new r5("ToRadians",e=>180/Math.PI*e),SquareRoot:new r5("SquareRoot",e=>Math.sqrt(e)),ArcTangent2:new r5("ArcTangent2",(e,t)=>Math.atan2(e,t),2),Power:new r5("Power",(e,t)=>Math.pow(e,t),2),Add:new rZ,Hypotenuse:new r9,Maximum:new r6,Minimum:new r8,Random:new st,RandomFloat:new sr("RandomFloat",v.of(sr.MIN_VALUE,y.ofFloat(sr.MIN_VALUE).setDefaultValue(0)),v.of(sr.MAX_VALUE,y.ofFloat(sr.MAX_VALUE).setDefaultValue(0x7fffffff)),y.ofFloat(sr.VALUE),(e,t)=>Math.random()*(t-e)+e),RandomInt:new sr("RandomInt",v.of(sr.MIN_VALUE,y.ofInteger(sr.MIN_VALUE).setDefaultValue(0)),v.of(sr.MAX_VALUE,y.ofInteger(sr.MAX_VALUE).setDefaultValue(0x7fffffff)),y.ofInteger(sr.VALUE),(e,t)=>Math.round(Math.random()*(t-e)+e)),RandomLong:new sr("RandomLong",v.of(sr.MIN_VALUE,y.ofLong(sr.MIN_VALUE).setDefaultValue(0)),v.of(sr.MAX_VALUE,y.ofLong(sr.MAX_VALUE).setDefaultValue(Number.MAX_SAFE_INTEGER)),y.ofLong(sr.VALUE),(e,t)=>Math.round(Math.random()*(t-e)+e)),RandomDouble:new sr("RandomDouble",v.of(sr.MIN_VALUE,y.ofDouble(sr.MIN_VALUE).setDefaultValue(0)),v.of(sr.MAX_VALUE,y.ofDouble(sr.MAX_VALUE).setDefaultValue(Number.MAX_VALUE)),y.ofDouble(sr.VALUE),(e,t)=>Math.random()*(t-e)+e)},this.filterableNames=Object.values(this.functionObjectsIndex).map(e=>e.getSignature().getFullName())}async find(e,t){return e!=A.MATH?Promise.resolve(void 0):Promise.resolve(this.functionObjectsIndex[t])}async filter(e){return Promise.resolve(this.filterableNames.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}class sn extends eN{static{this.SOURCE="source"}static{this.SCHEMA="schema"}static{this.VALUE="value"}static{this.CONVERSION_MODE="conversionMode"}getSignature(){return this.signature}internalExecute(e){let t=e.getArguments()?.get(sn.SOURCE),r=y.from(e?.getArguments()?.get(sn.SCHEMA));if(!r)throw new B("Schema is not supplied.");let s=eh[(e.getArguments()?.get(sn.CONVERSION_MODE)).toUpperCase()]||eh.STRICT;return this.convertToSchema(r,e.getSchemaRepository(),t,s)}async convertToSchema(e,t,r,s){try{return new F([k.outputOf(V.of(sn.VALUE,ef.validate([],e,t,r,!0,s)))])}catch(e){throw new B(e?.message)}}constructor(...e){super(...e),this.signature=new Y("ObjectConvert").setNamespace(A.SYSTEM_OBJECT).setParameters(new Map([v.ofEntry(sn.SOURCE,y.ofAny(sn.SCHEMA)),v.ofEntry(sn.SCHEMA,y.SCHEMA,!1,L.CONSTANT),v.ofEntry(sn.CONVERSION_MODE,y.ofString(sn.CONVERSION_MODE).setEnums(Object.values(eh)))])).setEvents(new Map([$.outputEventMapEntry(V.of(sn.VALUE,y.ofAny(sn.VALUE)))]))}}let sa="value",si="source";class so extends eN{constructor(){super(),this.signature=new Y("ObjectDeleteKey").setNamespace(A.SYSTEM_OBJECT).setParameters(new Map([v.ofEntry(si,y.ofAny(si)),v.ofEntry("key",y.ofString("key"))])).setEvents(new Map([$.outputEventMapEntry(new Map([[sa,y.ofAny(sa)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(si),r=e.getArguments()?.get("key");return l(t)?new F([k.outputOf(new Map([[sa,void 0]]))]):(t=eL(t),delete t[r],new F([k.outputOf(new Map([[sa,t]]))]))}}let sE="source";class su extends eN{constructor(e,t){super(),this.signature=new Y(e).setNamespace(A.SYSTEM_OBJECT).setParameters(new Map([v.ofEntry(sE,y.ofAny(sE))])).setEvents(new Map([$.outputEventMapEntry(new Map([["value",t]]))]))}getSignature(){return this.signature}}let sh="value";class sA extends su{constructor(){super("ObjectEntries",y.ofArray(sh,y.ofArray("tuple",y.ofString("key"),y.ofAny("value"))))}async internalExecute(e){var t=e.getArguments()?.get("source");if(l(t))return new F([k.outputOf(new Map([[sh,[]]]))]);let r=Object.entries(eL(t)).sort((e,t)=>e[0].localeCompare(t[0]));return new F([k.outputOf(new Map([[sh,r]]))])}}let sl="value";class sc extends su{constructor(){super("ObjectKeys",y.ofArray(sl,y.ofString(sl)))}async internalExecute(e){var t=e.getArguments()?.get("source");if(l(t))return new F([k.outputOf(new Map([[sl,[]]]))]);let r=Object.keys(eL(t)).sort((e,t)=>e.localeCompare(t));return new F([k.outputOf(new Map([[sl,r]]))])}}let sT="value",sg="source",sp="overwrite",sR="deleteKeyOnNull";class sm extends eN{constructor(){super(),this.signature=new Y("ObjectPutValue").setNamespace(A.SYSTEM_OBJECT).setParameters(new Map([v.ofEntry(sg,y.ofObject(sg)),v.ofEntry("key",y.ofString("key")),v.ofEntry(sT,y.ofAny(sT)),v.ofEntry(sp,y.ofBoolean(sp).setDefaultValue(!0)),v.ofEntry(sR,y.ofBoolean(sR).setDefaultValue(!1))])).setEvents(new Map([$.outputEventMapEntry(new Map([[sT,y.ofObject(sT)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(sg),r=e.getArguments()?.get("key"),s=e.getArguments()?.get(sT),n=e.getArguments()?.get(sp),a=e.getArguments()?.get(sR),i=new e0(t,"Data.");return i.setValue(r,s,n,a),new F([k.outputOf(new Map([[sT,i.getStore()]]))])}}let sf="value";class sN extends su{constructor(){super("ObjectValues",y.ofArray(sf,y.ofAny(sf)))}async internalExecute(e){var t=e.getArguments()?.get("source");if(l(t))return new F([k.outputOf(new Map([[sf,[]]]))]);let r=Object.entries(eL(t)).sort((e,t)=>e[0].localeCompare(t[0])).map(e=>e[1]);return new F([k.outputOf(new Map([[sf,r]]))])}}class s_{constructor(){this.functionObjectsIndex={ObjectValues:new sN,ObjectKeys:new sc,ObjectEntries:new sA,ObjectDeleteKey:new so,ObjectPutValue:new sm,ObjectConvert:new sn},this.filterableNames=Object.values(this.functionObjectsIndex).map(e=>e.getSignature().getFullName())}async find(e,t){return e!=A.SYSTEM_OBJECT?Promise.resolve(void 0):Promise.resolve(this.functionObjectsIndex[t])}async filter(e){return Promise.resolve(this.filterableNames.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}class sM extends eN{static{this.VALUES="values"}static{this.STREAM="stream"}static{this.LOG="LOG"}static{this.ERROR="ERROR"}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(sM.VALUES),r=e.getArguments()?.get(sM.STREAM);return(r===sM.LOG?console?.log:console?.error)?.(...t),new F([k.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new Y("Print").setNamespace(A.SYSTEM).setParameters(new Map([v.ofEntry(sM.VALUES,y.ofAny(sM.VALUES),!0),v.ofEntry(sM.STREAM,y.ofString(sM.STREAM).setEnums([sM.LOG,sM.ERROR]).setDefaultValue(sM.LOG))])).setEvents(new Map([$.outputEventMapEntry(new Map)]))}}class sS extends eN{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_SEARCH_STRING_NAME="searchString"}static{this.PARAMETER_SECOND_STRING_NAME="secondString"}static{this.PARAMETER_THIRD_STRING_NAME="thirdString"}static{this.PARAMETER_INDEX_NAME="index"}static{this.PARAMETER_SECOND_INDEX_NAME="secondIndex"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new v(sS.PARAMETER_STRING_NAME,y.ofString(sS.PARAMETER_STRING_NAME))}static{this.PARAMETER_SECOND_STRING=new v(sS.PARAMETER_SECOND_STRING_NAME,y.ofString(sS.PARAMETER_SECOND_STRING_NAME))}static{this.PARAMETER_THIRD_STRING=new v(sS.PARAMETER_THIRD_STRING_NAME,y.ofString(sS.PARAMETER_THIRD_STRING_NAME))}static{this.PARAMETER_INDEX=new v(sS.PARAMETER_INDEX_NAME,y.ofInteger(sS.PARAMETER_INDEX_NAME))}static{this.PARAMETER_SECOND_INDEX=new v(sS.PARAMETER_SECOND_INDEX_NAME,y.ofInteger(sS.PARAMETER_SECOND_INDEX_NAME))}static{this.PARAMETER_SEARCH_STRING=new v(sS.PARAMETER_SEARCH_STRING_NAME,y.ofString(sS.PARAMETER_STRING_NAME))}static{this.EVENT_STRING=new $($.OUTPUT,V.of(sS.EVENT_RESULT_NAME,y.ofString(sS.EVENT_RESULT_NAME)))}static{this.EVENT_BOOLEAN=new $($.OUTPUT,V.of(sS.EVENT_RESULT_NAME,y.ofBoolean(sS.EVENT_RESULT_NAME)))}static{this.EVENT_INT=new $($.OUTPUT,V.of(sS.EVENT_RESULT_NAME,y.ofInteger(sS.EVENT_RESULT_NAME)))}static{this.EVENT_ARRAY=new $($.OUTPUT,V.of(sS.EVENT_RESULT_NAME,y.ofArray(sS.EVENT_RESULT_NAME)))}constructor(e,t,r,...s){super();let n=new Map;s.forEach(e=>n.set(e.getParameterName(),e)),this.signature=new Y(t).setNamespace(e).setParameters(n).setEvents(V.of(r.getName(),r))}getSignature(){return this.signature}static ofEntryStringStringAndBooleanOutput(e,t){return[e,new class extends sS{async internalExecute(e){let r=e?.getArguments()?.get(sS.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sS.PARAMETER_SEARCH_STRING_NAME);return new F([k.outputOf(V.of(sS.EVENT_RESULT_NAME,t(r,s)))])}}(A.STRING,e,sS.EVENT_BOOLEAN,sS.PARAMETER_STRING,sS.PARAMETER_SEARCH_STRING)]}static ofEntryStringIntegerAndStringOutput(e,t){return[e,new class extends sS{async internalExecute(e){let r=e?.getArguments()?.get(sS.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sS.PARAMETER_INDEX_NAME);return new F([k.outputOf(V.of(sS.EVENT_RESULT_NAME,t(r,s)))])}}(A.STRING,e,sS.EVENT_STRING,sS.PARAMETER_STRING,sS.PARAMETER_INDEX)]}static ofEntryStringStringAndIntegerOutput(e,t){return[e,new class extends sS{async internalExecute(e){let r=e?.getArguments()?.get(sS.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sS.PARAMETER_SEARCH_STRING_NAME);return new F([k.outputOf(V.of(sS.EVENT_RESULT_NAME,t(r,s)))])}}(A.STRING,e,sS.EVENT_INT,sS.PARAMETER_STRING,sS.PARAMETER_SEARCH_STRING)]}static ofEntryStringAndStringOutput(e,t){return[e,new class extends sS{async internalExecute(e){let r=e?.getArguments()?.get(sS.PARAMETER_STRING_NAME);return new F([k.outputOf(V.of(sS.EVENT_RESULT_NAME,t(r)))])}}(A.STRING,e,sS.EVENT_STRING,sS.PARAMETER_STRING)]}static ofEntryStringAndBooleanOutput(e,t){return[e,new class extends sS{async internalExecute(e){let r=e?.getArguments()?.get(sS.PARAMETER_STRING_NAME);return new F([k.outputOf(V.of(sS.EVENT_RESULT_NAME,t(r)))])}}(A.STRING,e,sS.EVENT_BOOLEAN,sS.PARAMETER_STRING)]}static ofEntryStringStringIntegerAndIntegerOutput(e,t){return[e,new class extends sS{async internalExecute(e){let r=e?.getArguments()?.get(sS.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sS.PARAMETER_SEARCH_STRING_NAME),n=e?.getArguments()?.get(sS.PARAMETER_INDEX_NAME);return new F([k.outputOf(V.of(sS.EVENT_RESULT_NAME,t(r,s,n)))])}}(A.STRING,e,sS.EVENT_INT,sS.PARAMETER_STRING,sS.PARAMETER_SEARCH_STRING,sS.PARAMETER_INDEX)]}static ofEntryStringIntegerIntegerAndStringOutput(e,t){return[e,new class extends sS{async internalExecute(e){let r=e?.getArguments()?.get(sS.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sS.PARAMETER_INDEX_NAME),n=e?.getArguments()?.get(sS.PARAMETER_SECOND_INDEX_NAME);return new F([k.outputOf(V.of(sS.EVENT_RESULT_NAME,t(r,s,n)))])}}(A.STRING,e,sS.EVENT_STRING,sS.PARAMETER_STRING,sS.PARAMETER_INDEX,sS.PARAMETER_SECOND_INDEX)]}static ofEntryStringStringStringAndStringOutput(e,t){return[e,new class extends sS{async internalExecute(e){let r=e?.getArguments()?.get(sS.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sS.PARAMETER_SECOND_STRING_NAME),n=e?.getArguments()?.get(sS.PARAMETER_THIRD_STRING_NAME);return new F([k.outputOf(V.of(sS.EVENT_RESULT_NAME,t(r,s,n)))])}}(A.STRING,e,sS.EVENT_STRING,sS.PARAMETER_STRING,sS.PARAMETER_SECOND_STRING,sS.PARAMETER_THIRD_STRING)]}static ofEntryStringAndIntegerOutput(e,t){return[e,new class extends sS{async internalExecute(e){let r=e?.getArguments()?.get(sS.PARAMETER_STRING_NAME);return new F([k.outputOf(V.of(sS.EVENT_RESULT_NAME,t(r)))])}}(A.STRING,e,sS.EVENT_INT,sS.PARAMETER_STRING)]}}class sd extends eN{static{this.VALUE="value"}constructor(){super(),this.signature=new Y("Concatenate").setNamespace(A.STRING).setParameters(new Map([[sd.VALUE,new v(sd.VALUE,new y().setName(sd.VALUE).setType(new R(T.STRING))).setVariableArgument(!0)]])).setEvents(new Map([$.outputEventMapEntry(new Map([[sd.VALUE,y.ofString(sd.VALUE)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(sd.VALUE),r="";return t.reduce((e,t)=>r=e+t,r),new F([k.outputOf(new Map([[sd.VALUE,r]]))])}}class sO extends eN{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_AT_START_NAME="startPosition"}static{this.PARAMETER_AT_END_NAME="endPosition"}static{this.EVENT_RESULT_NAME="result"}constructor(){super(),this.PARAMETER_STRING=new v(sO.PARAMETER_STRING_NAME,y.ofString(sO.PARAMETER_STRING_NAME)),this.PARAMETER_AT_START=new v(sO.PARAMETER_AT_START_NAME,y.ofInteger(sO.PARAMETER_AT_START_NAME)),this.PARAMETER_AT_END=new v(sO.PARAMETER_AT_END_NAME,y.ofInteger(sO.PARAMETER_AT_END_NAME)),this.EVENT_STRING=new $($.OUTPUT,new Map([[sO.EVENT_RESULT_NAME,y.ofString(sO.EVENT_RESULT_NAME)]])),this.signature=new Y("DeleteForGivenLength").setNamespace(A.STRING).setParameters(new Map([[this.PARAMETER_STRING.getParameterName(),this.PARAMETER_STRING],[this.PARAMETER_AT_START.getParameterName(),this.PARAMETER_AT_START],[this.PARAMETER_AT_END.getParameterName(),this.PARAMETER_AT_END]])).setEvents(new Map([[this.EVENT_STRING.getName(),this.EVENT_STRING]]))}getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(sO.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(sO.PARAMETER_AT_START_NAME),s=e?.getArguments()?.get(sO.PARAMETER_AT_END_NAME);if(s>=r){let e="";return e+=t.substring(0,r),e+=t.substring(s),new F([k.outputOf(new Map([[sO.EVENT_RESULT_NAME,e.toString()]]))])}return new F([k.outputOf(new Map([[sO.EVENT_RESULT_NAME,t]]))])}}class sI extends eN{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_AT_POSITION_NAME="position"}static{this.PARAMETER_INSERT_STRING_NAME="insertString"}getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(sI.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(sI.PARAMETER_AT_POSITION_NAME),s=e?.getArguments()?.get(sI.PARAMETER_INSERT_STRING_NAME),n="";return n+=t.substring(0,r),n+=s,n+=t.substring(r),new F([k.outputOf(new Map([[this.EVENT_RESULT_NAME,n]]))])}constructor(...e){super(...e),this.EVENT_RESULT_NAME="result",this.PARAMETER_STRING=new v(sI.PARAMETER_STRING_NAME,y.ofString(sI.PARAMETER_STRING_NAME)),this.PARAMETER_AT_POSITION=new v(sI.PARAMETER_AT_POSITION_NAME,y.ofInteger(sI.PARAMETER_AT_POSITION_NAME)),this.PARAMETER_INSERT_STRING=new v(sI.PARAMETER_INSERT_STRING_NAME,y.ofString(sI.PARAMETER_INSERT_STRING_NAME)),this.EVENT_STRING=new $($.OUTPUT,new Map([[this.EVENT_RESULT_NAME,y.ofString(this.EVENT_RESULT_NAME)]])),this.signature=new Y("InsertAtGivenPosition").setNamespace(A.STRING).setParameters(new Map([[this.PARAMETER_STRING.getParameterName(),this.PARAMETER_STRING],[this.PARAMETER_AT_POSITION.getParameterName(),this.PARAMETER_AT_POSITION],[this.PARAMETER_INSERT_STRING.getParameterName(),this.PARAMETER_INSERT_STRING]])).setEvents(new Map([$.outputEventMapEntry(new Map([[this.EVENT_RESULT_NAME,y.ofString(this.EVENT_RESULT_NAME)]]))]))}}class sw extends eN{static{this.PARAMETER_REGEX_NAME="regex"}static{this.PARAMETER_STRING_NAME="string"}static{this.EVENT_RESULT_NAME="result"}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(sw.PARAMETER_REGEX_NAME),r=e.getArguments()?.get(sw.PARAMETER_STRING_NAME);return new F([k.outputOf(new Map([[sw.EVENT_RESULT_NAME,!!r.match(t)?.length]]))])}constructor(...e){super(...e),this.signature=new Y("Matches").setNamespace(A.STRING).setParameters(V.ofEntries(V.entry(...v.ofEntry(sw.PARAMETER_REGEX_NAME,y.ofString(sw.PARAMETER_REGEX_NAME))),V.entry(...v.ofEntry(sw.PARAMETER_STRING_NAME,y.ofString(sw.PARAMETER_STRING_NAME))))).setEvents(V.ofEntries(V.entry(...$.outputEventMapEntry(new Map([[sw.EVENT_RESULT_NAME,y.ofBoolean(sw.EVENT_RESULT_NAME)]])))))}}class sP extends eN{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_POSTPAD_STRING_NAME="postpadString"}static{this.PARAMETER_LENGTH_NAME="length"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new v(sP.PARAMETER_STRING_NAME,y.ofString(sP.PARAMETER_STRING_NAME))}static{this.PARAMETER_POSTPAD_STRING=new v(sP.PARAMETER_POSTPAD_STRING_NAME,y.ofString(sP.PARAMETER_POSTPAD_STRING_NAME))}static{this.PARAMETER_LENGTH=new v(sP.PARAMETER_LENGTH_NAME,y.ofInteger(sP.PARAMETER_LENGTH_NAME))}static{this.EVENT_STRING=new $($.OUTPUT,new Map([[sP.EVENT_RESULT_NAME,y.ofString(sP.EVENT_RESULT_NAME)]]))}constructor(){super(),this.signature=new Y("PostPad").setNamespace(A.STRING).setParameters(new Map([[sP.PARAMETER_STRING.getParameterName(),sP.PARAMETER_STRING],[sP.PARAMETER_POSTPAD_STRING.getParameterName(),sP.PARAMETER_POSTPAD_STRING],[sP.PARAMETER_LENGTH.getParameterName(),sP.PARAMETER_LENGTH]])).setEvents(new Map([[sP.EVENT_STRING.getName(),sP.EVENT_STRING]]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(sP.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(sP.PARAMETER_POSTPAD_STRING_NAME),s=e.getArguments()?.get(sP.PARAMETER_LENGTH_NAME),n="",a=r.length;for(n+=t;a<=s;)n+=r,a+=r.length;return n.length-t.length<s&&(n+=r.substring(0,s-(n.length-t.length))),new F([k.outputOf(new Map([[sP.EVENT_RESULT_NAME,n.toString()]]))])}}class sy extends eN{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_PREPAD_STRING_NAME="prepadString"}static{this.PARAMETER_LENGTH_NAME="length"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new v(sy.PARAMETER_STRING_NAME,y.ofString(sy.PARAMETER_STRING_NAME))}static{this.PARAMETER_PREPAD_STRING=new v(sy.PARAMETER_PREPAD_STRING_NAME,y.ofString(sy.PARAMETER_PREPAD_STRING_NAME))}static{this.PARAMETER_LENGTH=new v(sy.PARAMETER_LENGTH_NAME,y.ofInteger(sy.PARAMETER_LENGTH_NAME))}static{this.EVENT_STRING=new $($.OUTPUT,new Map([[sy.EVENT_RESULT_NAME,y.ofString(sy.EVENT_RESULT_NAME)]]))}getSignature(){return this.signature}constructor(){super(),this.signature=new Y("PrePad").setNamespace(A.STRING).setParameters(new Map([[sy.PARAMETER_STRING.getParameterName(),sy.PARAMETER_STRING],[sy.PARAMETER_PREPAD_STRING.getParameterName(),sy.PARAMETER_PREPAD_STRING],[sy.PARAMETER_LENGTH.getParameterName(),sy.PARAMETER_LENGTH]])).setEvents(new Map([[sy.EVENT_STRING.getName(),sy.EVENT_STRING]]))}async internalExecute(e){let t=e.getArguments()?.get(sy.PARAMETER_STRING_NAME),r=e.getArguments()?.get(sy.PARAMETER_PREPAD_STRING_NAME),s=e.getArguments()?.get(sy.PARAMETER_LENGTH_NAME),n="",a=r.length;for(;a<=s;)n+=r,a+=r.length;return n.length<s&&(n+=r.substring(0,s-n.length)),n+=t,new F([k.outputOf(new Map([[sy.EVENT_RESULT_NAME,n]]))])}}class sx extends eN{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_BOOLEAN_NAME="boolean"}static{this.PARAMETER_FIRST_OFFSET_NAME="firstOffset"}static{this.PARAMETER_OTHER_STRING_NAME="otherString"}static{this.PARAMETER_SECOND_OFFSET_NAME="secondOffset"}static{this.PARAMETER_INTEGER_NAME="length"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new v(sx.PARAMETER_STRING_NAME,y.ofString(sx.PARAMETER_STRING_NAME))}static{this.PARAMETER_OTHER_STRING=new v(sx.PARAMETER_OTHER_STRING_NAME,y.ofString(sx.PARAMETER_OTHER_STRING_NAME))}static{this.PARAMETER_FIRST_OFFSET=new v(sx.PARAMETER_FIRST_OFFSET_NAME,y.ofInteger(sx.PARAMETER_FIRST_OFFSET_NAME))}static{this.PARAMETER_SECOND_OFFSET=new v(sx.PARAMETER_SECOND_OFFSET_NAME,y.ofInteger(sx.PARAMETER_SECOND_OFFSET_NAME))}static{this.PARAMETER_INTEGER=new v(sx.PARAMETER_INTEGER_NAME,y.ofInteger(sx.PARAMETER_INTEGER_NAME))}static{this.PARAMETER_BOOLEAN=new v(sx.PARAMETER_BOOLEAN_NAME,y.ofBoolean(sx.PARAMETER_BOOLEAN_NAME))}static{this.EVENT_BOOLEAN=new $($.OUTPUT,new Map([[sx.EVENT_RESULT_NAME,y.ofBoolean(sx.EVENT_RESULT_NAME)]]))}getSignature(){return this.signature}constructor(){super(),this.signature=new Y("RegionMatches").setNamespace(A.STRING).setParameters(new Map([[sx.PARAMETER_STRING.getParameterName(),sx.PARAMETER_STRING],[sx.PARAMETER_BOOLEAN.getParameterName(),sx.PARAMETER_BOOLEAN],[sx.PARAMETER_FIRST_OFFSET.getParameterName(),sx.PARAMETER_FIRST_OFFSET],[sx.PARAMETER_OTHER_STRING.getParameterName(),sx.PARAMETER_OTHER_STRING],[sx.PARAMETER_SECOND_OFFSET.getParameterName(),sx.PARAMETER_SECOND_OFFSET],[sx.PARAMETER_INTEGER.getParameterName(),sx.PARAMETER_INTEGER]])).setEvents(new Map([[sx.EVENT_BOOLEAN.getName(),sx.EVENT_BOOLEAN]]))}async internalExecute(e){let t=e.getArguments()?.get(sx.PARAMETER_STRING_NAME),r=e.getArguments()?.get(sx.PARAMETER_BOOLEAN_NAME),s=e.getArguments()?.get(sx.PARAMETER_FIRST_OFFSET_NAME),n=e?.getArguments()?.get(sx.PARAMETER_OTHER_STRING_NAME),a=e?.getArguments()?.get(sx.PARAMETER_SECOND_OFFSET_NAME),i=e.getArguments()?.get(sx.PARAMETER_INTEGER_NAME),o=!1;return o=!(s<0)&&!(a<0)&&!(s+i>t.length)&&!(a+i>n.length)&&(r?(t=t.substring(s,s+i).toUpperCase())==n.substring(a,a+i).toUpperCase():(t=t.substring(s,s+i))==n.substring(a,i)),new F([k.outputOf(new Map([[sx.EVENT_RESULT_NAME,o]]))])}}class sL extends eN{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_AT_START_NAME="startPosition"}static{this.PARAMETER_AT_LENGTH_NAME="lengthPosition"}static{this.PARAMETER_REPLACE_STRING_NAME="replaceString"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new v(sL.PARAMETER_STRING_NAME,y.ofString(sL.PARAMETER_STRING_NAME))}static{this.PARAMETER_AT_START=new v(sL.PARAMETER_AT_START_NAME,y.ofInteger(sL.PARAMETER_AT_START_NAME))}static{this.PARAMETER_AT_LENGTH=new v(sL.PARAMETER_AT_LENGTH_NAME,y.ofInteger(sL.PARAMETER_AT_LENGTH_NAME))}static{this.PARAMETER_REPLACE_STRING=new v(sL.PARAMETER_REPLACE_STRING_NAME,y.ofString(sL.PARAMETER_REPLACE_STRING_NAME))}static{this.EVENT_STRING=new $($.OUTPUT,new Map([[sL.EVENT_RESULT_NAME,y.ofString(sL.EVENT_RESULT_NAME)]]))}constructor(){super(),this.signature=new Y("ReplaceAtGivenPosition").setNamespace(A.STRING).setParameters(new Map([[sL.PARAMETER_STRING.getParameterName(),sL.PARAMETER_STRING],[sL.PARAMETER_AT_START.getParameterName(),sL.PARAMETER_AT_START],[sL.PARAMETER_AT_LENGTH.getParameterName(),sL.PARAMETER_AT_LENGTH],[sL.PARAMETER_REPLACE_STRING.getParameterName(),sL.PARAMETER_REPLACE_STRING]])).setEvents(new Map([[sL.EVENT_STRING.getName(),sL.EVENT_STRING]]))}getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(sL.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(sL.PARAMETER_AT_START_NAME),s=e?.getArguments()?.get(sL.PARAMETER_AT_LENGTH_NAME),n=e?.getArguments()?.get(sL.PARAMETER_REPLACE_STRING_NAME);if(t.length,r<s){let e="";e+=t.substring(0,r),e+=n,e+=t.substring(r+s)}return new F([k.outputOf(new Map([[sL.EVENT_RESULT_NAME,t]]))])}}class sb extends eN{constructor(){super(),this.VALUE="value",this.signature=new Y("Reverse").setNamespace(A.STRING).setParameters(new Map([[this.VALUE,new v(this.VALUE,y.ofString(this.VALUE)).setVariableArgument(!1)]])).setEvents(new Map([$.outputEventMapEntry(new Map([[this.VALUE,new y().setType(m.of(T.STRING)).setName(this.VALUE)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(this.VALUE),r=t.length-1,s="";for(;r>=0;)s+=t.charAt(r--);return new F([k.outputOf(V.of(this.VALUE,s))])}}class sv extends eN{getSignature(){return this.signature}constructor(){super(),this.PARAMETER_STRING_NAME="string",this.PARAMETER_SPLIT_STRING_NAME="searchString",this.EVENT_RESULT_NAME="result",this.PARAMETER_STRING=new v(this.PARAMETER_STRING_NAME,y.ofString(this.PARAMETER_STRING_NAME)),this.PARAMETER_SPLIT_STRING=new v(this.PARAMETER_SPLIT_STRING_NAME,y.ofString(this.PARAMETER_SPLIT_STRING_NAME)),this.EVENT_ARRAY=new $($.OUTPUT,V.of(this.EVENT_RESULT_NAME,y.ofArray(this.EVENT_RESULT_NAME))),this.signature=new Y("Split").setNamespace(A.STRING).setParameters(new Map([[this.PARAMETER_STRING_NAME,this.PARAMETER_STRING],[this.PARAMETER_SPLIT_STRING_NAME,this.PARAMETER_SPLIT_STRING]])).setEvents(new Map([$.outputEventMapEntry(new Map([[this.EVENT_RESULT_NAME,y.ofArray(this.EVENT_RESULT_NAME)]]))]))}async internalExecute(e){let t=e.getArguments()?.get(this.PARAMETER_STRING_NAME),r=e.getArguments()?.get(this.PARAMETER_SPLIT_STRING_NAME);return new F([k.outputOf(V.of(this.EVENT_RESULT_NAME,t.split(r)))])}}class sU extends eN{getSignature(){return this.signature}constructor(){super(),this.PARAMETER_INPUT_ANYTYPE_NAME="anytype",this.EVENT_RESULT_NAME="result",this.PARAMETER_INPUT_ANYTYPE=new v(this.PARAMETER_INPUT_ANYTYPE_NAME,y.ofAny(this.PARAMETER_INPUT_ANYTYPE_NAME)),this.EVENT_STRING=new $($.OUTPUT,new Map([[this.EVENT_RESULT_NAME,y.ofString(this.EVENT_RESULT_NAME)]])),this.signature=new Y("ToString").setNamespace(A.STRING).setParameters(new Map([[this.PARAMETER_INPUT_ANYTYPE.getParameterName(),this.PARAMETER_INPUT_ANYTYPE]])).setEvents(new Map([[this.EVENT_STRING.getName(),this.EVENT_STRING]]))}async internalExecute(e){let t=e.getArguments()?.get(this.PARAMETER_INPUT_ANYTYPE_NAME),r="";return r="object"==typeof t?JSON.stringify(t,void 0,2):""+t,new F([k.outputOf(new Map([[this.EVENT_RESULT_NAME,r]]))])}}class sV extends eN{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_LENGTH_NAME="length"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new v(sV.PARAMETER_STRING_NAME,y.ofString(sV.PARAMETER_STRING_NAME))}static{this.PARAMETER_LENGTH=new v(sV.PARAMETER_LENGTH_NAME,y.ofInteger(sV.PARAMETER_LENGTH_NAME))}static{this.EVENT_STRING=new $($.OUTPUT,new Map([[sV.EVENT_RESULT_NAME,y.ofString(sV.EVENT_RESULT_NAME)]]))}getSignature(){return this.signature}constructor(){super(),this.signature=new Y("TrimTo").setNamespace(A.STRING).setParameters(new Map([[sV.PARAMETER_STRING.getParameterName(),sV.PARAMETER_STRING],[sV.PARAMETER_LENGTH.getParameterName(),sV.PARAMETER_LENGTH]])).setEvents(new Map([[sV.EVENT_STRING.getName(),sV.EVENT_STRING]]))}async internalExecute(e){let t=e.getArguments()?.get(sV.PARAMETER_STRING_NAME),r=e.getArguments()?.get(sV.PARAMETER_LENGTH_NAME);return new F([k.outputOf(new Map([[sV.EVENT_RESULT_NAME,t.substring(0,r)]]))])}}class sC{async find(e,t){return e!=A.STRING?Promise.resolve(void 0):Promise.resolve(this.repoMap.get(t))}async filter(e){return Promise.resolve(this.filterableNames.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}constructor(){this.repoMap=V.ofArrayEntries(sS.ofEntryStringAndStringOutput("Trim",e=>e.trim()),sS.ofEntryStringAndStringOutput("TrimStart",e=>e.trimStart()),sS.ofEntryStringAndStringOutput("TrimEnd",e=>e.trimEnd()),sS.ofEntryStringAndIntegerOutput("Length",e=>e.length),sS.ofEntryStringStringAndIntegerOutput("Frequency",(e,t)=>{let r=0,s=e.indexOf(t);for(;-1!=s;)r++,s=e.indexOf(t,s+1);return r}),sS.ofEntryStringAndStringOutput("LowerCase",e=>e.toLocaleLowerCase()),sS.ofEntryStringAndStringOutput("UpperCase",e=>e.toUpperCase()),sS.ofEntryStringAndBooleanOutput("IsBlank",e=>""===e.trim()),sS.ofEntryStringAndBooleanOutput("IsEmpty",e=>""===e),sS.ofEntryStringStringAndBooleanOutput("Contains",(e,t)=>-1!=e.indexOf(t)),sS.ofEntryStringStringAndBooleanOutput("EndsWith",(e,t)=>e.endsWith(t)),sS.ofEntryStringStringAndBooleanOutput("StartsWith",(e,t)=>e.startsWith(t)),sS.ofEntryStringStringAndBooleanOutput("EqualsIgnoreCase",(e,t)=>e.toUpperCase()==t.toUpperCase()),sS.ofEntryStringStringAndBooleanOutput("Matches",(e,t)=>new RegExp(t).test(e)),sS.ofEntryStringStringAndIntegerOutput("IndexOf",(e,t)=>e.indexOf(t)),sS.ofEntryStringStringAndIntegerOutput("LastIndexOf",(e,t)=>e.lastIndexOf(t)),sS.ofEntryStringIntegerAndStringOutput("Repeat",(e,t)=>e.repeat(t)),sS.ofEntryStringStringIntegerAndIntegerOutput("IndexOfWithStartPoint",(e,t,r)=>e.indexOf(t,r)),sS.ofEntryStringStringIntegerAndIntegerOutput("LastIndexOfWithStartPoint",(e,t,r)=>e.lastIndexOf(t,r)),sS.ofEntryStringStringStringAndStringOutput("Replace",(e,t,r)=>e.replaceAll(t,r)),sS.ofEntryStringStringStringAndStringOutput("ReplaceFirst",(e,t,r)=>e.replace(t,r)),sS.ofEntryStringIntegerIntegerAndStringOutput("SubString",(e,t,r)=>e.substring(t,r)),G(new sd),G(new sO),G(new sI),G(new sP),G(new sy),G(new sx),G(new sL),G(new sb),G(new sv),G(new sU),G(new sV),G(new sw)),this.filterableNames=Array.from(this.repoMap.values()).map(e=>e.getSignature().getFullName())}}class sD extends eN{static{this.PARAMETER_TIMESTAMP_NAME="isoTimeStamp"}static{this.PARAMETER_TIMESTAMP_NAME_ONE="isoTimeStamp1"}static{this.PARAMETER_TIMESTAMP_NAME_TWO="isoTimeStamp2"}static{this.PARAMETER_UNIT_NAME="unit"}static{this.PARAMETER_NUMBER_NAME="number"}static{this.PARAMETER_TIMESTAMP=new v(sD.PARAMETER_TIMESTAMP_NAME,y.ofRef(A.DATE+".Timestamp"))}static{this.PARAMETER_TIMESTAMP_ONE=new v(sD.PARAMETER_TIMESTAMP_NAME_ONE,y.ofRef(A.DATE+".Timestamp"))}static{this.PARAMETER_TIMESTAMP_TWO=new v(sD.PARAMETER_TIMESTAMP_NAME_TWO,y.ofRef(A.DATE+".Timestamp"))}static{this.PARAMETER_VARIABLE_UNIT=new v(sD.PARAMETER_UNIT_NAME,y.ofRef(A.DATE+".Timeunit")).setVariableArgument(!0)}static{this.PARAMETER_UNIT=new v(sD.PARAMETER_UNIT_NAME,y.ofRef(A.DATE+".Timeunit"))}static{this.PARAMETER_NUMBER=new v(sD.PARAMETER_NUMBER_NAME,y.ofInteger(sD.PARAMETER_NUMBER_NAME))}static{this.EVENT_RESULT_NAME="result"}static{this.EVENT_TIMESTAMP_NAME="isoTimeStamp"}static{this.EVENT_INT=new $($.OUTPUT,V.of(sD.EVENT_RESULT_NAME,y.ofInteger(sD.EVENT_RESULT_NAME)))}static{this.EVENT_STRING=new $($.OUTPUT,V.of(sD.EVENT_RESULT_NAME,y.ofString(sD.EVENT_RESULT_NAME)))}static{this.EVENT_LONG=new $($.OUTPUT,V.of(sD.EVENT_RESULT_NAME,y.ofLong(sD.EVENT_RESULT_NAME)))}static{this.EVENT_BOOLEAN=new $($.OUTPUT,V.of(sD.EVENT_RESULT_NAME,y.ofBoolean(sD.EVENT_RESULT_NAME)))}static{this.EVENT_TIMESTAMP=new $($.OUTPUT,V.of(sD.EVENT_TIMESTAMP_NAME,y.ofRef(A.DATE+".Timestamp")))}getSignature(){return this.signature}constructor(e,t,...r){if(super(),this.signature=new Y(e).setNamespace(A.DATE).setEvents(V.of(t.getName(),t)),!r?.length)return;let s=new Map;r.forEach(e=>s.set(e.getParameterName(),e)),this.signature.setParameters(s)}static ofEntryTimestampAndIntegerOutput(e,t){return[e,new class extends sD{async internalExecute(e){return new F([k.outputOf(V.of(sD.EVENT_RESULT_NAME,t(e.getArguments()?.get(sD.PARAMETER_TIMESTAMP_NAME))))])}}(e,sD.EVENT_INT,sD.PARAMETER_TIMESTAMP)]}static ofEntryTimestampAndBooleanOutput(e,t){return[e,new class extends sD{async internalExecute(e){return new F([k.outputOf(V.of(sD.EVENT_RESULT_NAME,t(e.getArguments()?.get(sD.PARAMETER_TIMESTAMP_NAME))))])}}(e,sD.EVENT_BOOLEAN,sD.PARAMETER_TIMESTAMP)]}static ofEntryTimestampAndStringOutput(e,t){return[e,new class extends sD{async internalExecute(e){return new F([k.outputOf(V.of(sD.EVENT_RESULT_NAME,t(e.getArguments()?.get(sD.PARAMETER_TIMESTAMP_NAME))))])}}(e,sD.EVENT_STRING,sD.PARAMETER_TIMESTAMP)]}static ofEntryTimestampIntegerAndTimestampOutput(e,t){return[e,new class extends sD{async internalExecute(e){return new F([k.outputOf(V.of(sD.EVENT_RESULT_NAME,t(e.getArguments()?.get(sD.PARAMETER_TIMESTAMP_NAME),e.getArguments()?.get(sD.PARAMETER_NUMBER_NAME))))])}}(e,sD.EVENT_TIMESTAMP,sD.PARAMETER_TIMESTAMP,sD.PARAMETER_NUMBER)]}static ofEntryTimestampTimestampAndTOutput(e,t,r,...s){return[e,new class extends sD{async internalExecute(e){let t=[];return s?.length&&t.push(...s.map(t=>e.getArguments()?.get(t.getParameterName()))),new F([k.outputOf(V.of(sD.EVENT_RESULT_NAME,r(e.getArguments()?.get(sD.PARAMETER_TIMESTAMP_NAME_ONE),e.getArguments()?.get(sD.PARAMETER_TIMESTAMP_NAME_TWO),t)))])}}(e,t,sD.PARAMETER_TIMESTAMP_ONE,sD.PARAMETER_TIMESTAMP_TWO,...s)]}}function sG(t){let r=e.fromISO(t,{setZone:!0});if(!r?.isValid)throw Error("Invalid ISO timestamp");return r}class s$ extends sD{static{this.PARAMETER_YEARS_NAME="years"}static{this.PARAMETER_MONTHS_NAME="months"}static{this.PARAMETER_DAYS_NAME="days"}static{this.PARAMETER_HOURS_NAME="hours"}static{this.PARAMETER_MINUTES_NAME="minutes"}static{this.PARAMETER_SECONDS_NAME="seconds"}static{this.PARAMETER_MILLISECONDS_NAME="milliseconds"}constructor(e){super(e?"AddTime":"SubtractTime",sD.EVENT_TIMESTAMP,sD.PARAMETER_TIMESTAMP,v.of(s$.PARAMETER_YEARS_NAME,y.ofNumber(s$.PARAMETER_YEARS_NAME).setDefaultValue(0)),v.of(s$.PARAMETER_MONTHS_NAME,y.ofNumber(s$.PARAMETER_MONTHS_NAME).setDefaultValue(0)),v.of(s$.PARAMETER_DAYS_NAME,y.ofNumber(s$.PARAMETER_DAYS_NAME).setDefaultValue(0)),v.of(s$.PARAMETER_HOURS_NAME,y.ofNumber(s$.PARAMETER_HOURS_NAME).setDefaultValue(0)),v.of(s$.PARAMETER_MINUTES_NAME,y.ofNumber(s$.PARAMETER_MINUTES_NAME).setDefaultValue(0)),v.of(s$.PARAMETER_SECONDS_NAME,y.ofNumber(s$.PARAMETER_SECONDS_NAME).setDefaultValue(0)),v.of(s$.PARAMETER_MILLISECONDS_NAME,y.ofNumber(s$.PARAMETER_MILLISECONDS_NAME).setDefaultValue(0))),this.isAdd=e}async internalExecute(e){let t,r=sG(e.getArguments()?.get(sD.PARAMETER_TIMESTAMP_NAME)),s={years:e.getArguments()?.get(s$.PARAMETER_YEARS_NAME),months:e.getArguments()?.get(s$.PARAMETER_MONTHS_NAME),days:e.getArguments()?.get(s$.PARAMETER_DAYS_NAME),hours:e.getArguments()?.get(s$.PARAMETER_HOURS_NAME),minutes:e.getArguments()?.get(s$.PARAMETER_MINUTES_NAME),seconds:e.getArguments()?.get(s$.PARAMETER_SECONDS_NAME),milliseconds:e.getArguments()?.get(s$.PARAMETER_MILLISECONDS_NAME)};return t=this.isAdd?r.plus(s):r.minus(s),new F([k.outputOf(V.of(sD.EVENT_TIMESTAMP_NAME,t.toISO()))])}}class sk extends eN{constructor(e,t){super(),this.paramName=`epoch${t?"Seconds":"Milliseconds"}`,this.isSeconds=t,this.signature=new Y(e).setNamespace(A.DATE).setParameters(new Map([[this.paramName,v.of(this.paramName,new y().setName(this.paramName).setType(m.of(T.LONG,T.INTEGER,T.STRING)))]])).setEvents(new Map([[sD.EVENT_TIMESTAMP.getName(),sD.EVENT_TIMESTAMP]]))}getSignature(){return this.signature}internalExecute(e){let t=parseInt(e.getArguments()?.get(this.paramName)),r=this.isSeconds?1e3*t:t;if(isNaN(r))throw Error(`Please provide a valid value for ${this.paramName}.`);return Promise.resolve(new F([k.outputOf(V.of(sD.EVENT_TIMESTAMP_NAME,new Date(r).toISOString()))]))}}class sB extends eN{constructor(e,t){super(),this.isSeconds=t,this.signature=new Y(e).setNamespace(A.DATE).setParameters(new Map([[sD.PARAMETER_TIMESTAMP_NAME,sD.PARAMETER_TIMESTAMP]])).setEvents(new Map([[sD.EVENT_TIMESTAMP.getName(),sD.EVENT_LONG]]))}getSignature(){return this.signature}internalExecute(t){let r=t.getArguments()?.get(sD.PARAMETER_TIMESTAMP_NAME),s=this.isSeconds?e.fromISO(r).toSeconds():e.fromISO(r).toMillis();return Promise.resolve(new F([k.outputOf(V.of(sD.EVENT_RESULT_NAME,s))]))}}class sF extends sD{static{this.PARAMETER_FORMAT_NAME="format"}static{this.PARAMETER_LOCALE_NAME="locale"}constructor(){super("ToDateString",sD.EVENT_STRING,sD.PARAMETER_TIMESTAMP,v.of(sF.PARAMETER_FORMAT_NAME,y.ofString(sF.PARAMETER_FORMAT_NAME)),v.of(sF.PARAMETER_LOCALE_NAME,y.ofString(sF.PARAMETER_LOCALE_NAME).setDefaultValue("")))}async internalExecute(e){let t=sG(e.getArguments()?.get(sD.PARAMETER_TIMESTAMP_NAME)),r=e.getArguments()?.get(sF.PARAMETER_FORMAT_NAME),s=e.getArguments()?.get(sF.PARAMETER_LOCALE_NAME);return""===s&&(s="system"),new F([k.outputOf(V.of(sD.EVENT_RESULT_NAME,t.toFormat(r,{locale:s})))])}}class sY extends sD{static{this.PARAMETER_TIMEZONE_NAME="timezone"}constructor(){super("SetTimeZone",sD.EVENT_TIMESTAMP,sD.PARAMETER_TIMESTAMP,v.of(sY.PARAMETER_TIMEZONE_NAME,y.ofString(sY.PARAMETER_TIMEZONE_NAME)))}async internalExecute(e){let t=sG(e.getArguments()?.get(sD.PARAMETER_TIMESTAMP_NAME)),r=e.getArguments()?.get(sY.PARAMETER_TIMEZONE_NAME);return new F([k.outputOf(V.of(sD.EVENT_TIMESTAMP_NAME,t.setZone(r).toISO()))])}}class sH extends sD{static{this.PARAMETER_START_TIMESTAMP_NAME="startTimestamp"}static{this.PARAMETER_END_TIMESTAMP_NAME="endTimestamp"}static{this.PARAMETER_CHECK_TIMESTAMP_NAME="checkTimestamp"}constructor(){super("IsBetween",sH.EVENT_BOOLEAN,v.of(sH.PARAMETER_START_TIMESTAMP_NAME,y.ofRef(A.DATE+".Timestamp")),v.of(sH.PARAMETER_END_TIMESTAMP_NAME,y.ofRef(A.DATE+".Timestamp")),v.of(sH.PARAMETER_CHECK_TIMESTAMP_NAME,y.ofRef(A.DATE+".Timestamp")))}async internalExecute(e){let t=e.getArguments()?.get(sH.PARAMETER_START_TIMESTAMP_NAME),r=e.getArguments()?.get(sH.PARAMETER_END_TIMESTAMP_NAME),s=e.getArguments()?.get(sH.PARAMETER_CHECK_TIMESTAMP_NAME),n=sG(t),a=sG(r),i=sG(s);return n>a&&([n,a]=[a,n]),new F([k.outputOf(V.of(sH.EVENT_RESULT_NAME,n<=i&&i<=a))])}}class sj extends eN{constructor(e){super(),this.isLast=e,this.signature=new Y(e?"LastOf":"FirstOf").setNamespace(A.DATE).setParameters(new Map([[sD.PARAMETER_TIMESTAMP_NAME,new v(sD.PARAMETER_TIMESTAMP_NAME,y.ofRef(A.DATE+".Timestamp")).setVariableArgument(!0)]])).setEvents(new Map([[sD.EVENT_TIMESTAMP.getName(),sD.EVENT_TIMESTAMP]]))}getSignature(){return this.signature}internalExecute(e){let t=e.getArguments()?.get(sD.PARAMETER_TIMESTAMP_NAME);if(!t?.length)throw Error("No timestamps provided");let r=t.map(e=>sG(e));return r.sort((e,t)=>e.toMillis()-t.toMillis()),Promise.resolve(new F([k.outputOf(V.of(sD.EVENT_TIMESTAMP_NAME,r[this.isLast?r.length-1:0].toISO()))]))}}class sW extends sD{static{this.EVENT_TIME_OBJECT_NAME="object"}static{this.EVENT_TIME_ARRAY_NAME="array"}constructor(e){super(e?"TimeAsArray":"TimeAsObject",new $($.OUTPUT,V.of(e?sW.EVENT_TIME_ARRAY_NAME:sW.EVENT_TIME_OBJECT_NAME,e?y.ofArray(sW.EVENT_TIME_ARRAY_NAME,y.ofInteger("timeParts")):y.ofRef(A.DATE+".TimeObject"))),sD.PARAMETER_TIMESTAMP),this.isArray=e}async internalExecute(e){let t=sG(e.getArguments()?.get(sD.PARAMETER_TIMESTAMP_NAME)).toObject();return new F([k.outputOf(V.of(this.isArray?sW.EVENT_TIME_ARRAY_NAME:sW.EVENT_TIME_OBJECT_NAME,this.isArray?[t.year,t.month,t.day,t.hour,t.minute,t.second,t.millisecond]:t))])}}class sX extends sD{constructor(e){super(e?"StartOf":"EndOf",sD.EVENT_TIMESTAMP,sD.PARAMETER_TIMESTAMP,sD.PARAMETER_UNIT),this.isStart=e}async internalExecute(e){let t=sG(e.getArguments()?.get(sD.PARAMETER_TIMESTAMP_NAME)),r=e.getArguments()?.get(sD.PARAMETER_UNIT_NAME)?.toLowerCase();r=r.substring(0,r.length-1);let s=this.isStart?t.startOf(r):t.endOf(r);return new F([k.outputOf(V.of(sD.EVENT_TIMESTAMP_NAME,s.toISO({includeOffset:!0})))])}}class sJ extends sD{static{this.EVENT_NAMES_NAME="names"}static{this.PARAMETER_UNIT_NAME="unit"}static{this.PARAMETER_LOCALE_NAME="locale"}constructor(){super("GetNames",new $(sJ.EVENT_NAMES_NAME,V.of(sJ.EVENT_NAMES_NAME,y.ofArray(sJ.EVENT_NAMES_NAME,y.ofString(sJ.EVENT_NAMES_NAME)))),new v(sJ.PARAMETER_UNIT_NAME,y.ofString(sJ.PARAMETER_UNIT_NAME).setEnums(["TIMEZONES","MONTHS","WEEKDAYS"])),new v(sJ.PARAMETER_LOCALE_NAME,y.ofString(sJ.PARAMETER_LOCALE_NAME).setDefaultValue("system")))}async internalExecute(e){let t=e.getArguments()?.get(sJ.PARAMETER_UNIT_NAME),r=e.getArguments()?.get(sJ.PARAMETER_LOCALE_NAME);return new F([k.outputOf(V.of(sJ.EVENT_NAMES_NAME,this.getNames(t,r)))])}getNames(t,r){return"TIMEZONES"===t?Intl.supportedValuesOf("timeZone"):"MONTHS"===t?[1,2,3,4,5,6,7,8,9,10,11,12].map(t=>e.now().setLocale(r).set({month:t}).toFormat("MMMM")):"WEEKDAYS"===t?[1,2,3,4,5,6,7].map(t=>e.now().setLocale(r).set({month:7,year:2024,day:t}).toFormat("EEEE")):[]}}class sK extends eN{internalExecute(t){let r=t.getArguments()?.get(sD.PARAMETER_TIMESTAMP_NAME),s=e.fromISO(r);return Promise.resolve(new F([k.outputOf(V.of(sD.EVENT_RESULT_NAME,s.isValid))]))}getSignature(){return this.signature}constructor(...e){super(...e),this.signature=new Y("IsValidISODate").setNamespace(A.DATE).setParameters(new Map([v.ofEntry(sD.PARAMETER_TIMESTAMP_NAME,y.ofString(sD.PARAMETER_TIMESTAMP_NAME))])).setEvents(new Map([$.outputEventMapEntry(V.of(sD.EVENT_RESULT_NAME,y.ofBoolean(sD.EVENT_RESULT_NAME)))]))}}class sq extends sD{static{this.PARAMETER_BASE_NAME="base"}static{this.PARAMETER_BASE=new v(sq.PARAMETER_BASE_NAME,y.ofRef(A.DATE+".Timestamp").setDefaultValue(""))}static{this.PARAMETER_LOCALE_NAME="locale"}static{this.PARAMETER_LOCALE=new v(sq.PARAMETER_LOCALE_NAME,y.ofString(sq.PARAMETER_LOCALE_NAME).setDefaultValue("system"))}static{this.PARAMETER_FORMAT_NAME="format"}static{this.PARAMETER_FORMAT=new v(sq.PARAMETER_FORMAT_NAME,y.ofString(sq.PARAMETER_FORMAT_NAME).setEnums(["LONG","SHORT","NARROW"]).setDefaultValue("LONG"))}static{this.PARAMETER_ROUND_NAME="round"}static{this.PARAMETER_ROUND=new v(sq.PARAMETER_ROUND_NAME,y.ofBoolean(sq.PARAMETER_ROUND_NAME).setDefaultValue(!0))}constructor(){super("FromNow",sD.EVENT_STRING,sD.PARAMETER_TIMESTAMP,sq.PARAMETER_FORMAT,sq.PARAMETER_BASE,sD.PARAMETER_VARIABLE_UNIT,sq.PARAMETER_ROUND,sq.PARAMETER_LOCALE)}internalExecute(t){let r=t.getArguments()?.get(sq.PARAMETER_BASE_NAME),s=""===r?e.now():e.fromISO(r),n=t.getArguments()?.get(sD.PARAMETER_TIMESTAMP_NAME),a=e.fromISO(n),i=t.getArguments()?.get(sq.PARAMETER_UNIT_NAME),o=t.getArguments()?.get(sq.PARAMETER_FORMAT_NAME),E=t.getArguments()?.get(sq.PARAMETER_ROUND_NAME),u=t.getArguments()?.get(sq.PARAMETER_LOCALE_NAME),h={base:s,style:o?.toLowerCase(),round:E,locale:u};return i?.length>0&&(h.unit=i.map(e=>e.toLowerCase())),Promise.resolve(new F([k.outputOf(V.of(sD.EVENT_RESULT_NAME,a.toRelative(h)??"Unknown"))]))}}class sz extends sD{static{this.PARAMETER_FORMAT_NAME="format"}static{this.PARAMETER_TIMESTAMP_STRING_NAME="timestampString"}constructor(){super("FromDateString",sD.EVENT_TIMESTAMP,v.of(sz.PARAMETER_TIMESTAMP_STRING_NAME,y.ofString(sz.PARAMETER_TIMESTAMP_STRING_NAME)),v.of(sz.PARAMETER_FORMAT_NAME,y.ofString(sz.PARAMETER_FORMAT_NAME)))}async internalExecute(t){let r=t.getArguments()?.get(sz.PARAMETER_TIMESTAMP_STRING_NAME),s=t.getArguments()?.get(sz.PARAMETER_FORMAT_NAME),n=e.fromFormat(r,s);return new F([k.outputOf(V.of(sD.EVENT_RESULT_NAME,n.toISO()))])}}class sQ extends sD{constructor(){super("GetCurrentTimestamp",sD.EVENT_TIMESTAMP)}async internalExecute(t){return new F([k.outputOf(V.of(sD.EVENT_TIMESTAMP_NAME,e.now().toISO()))])}}class sZ{find(e,t){return e!=A.DATE?Promise.resolve(void 0):Promise.resolve(this.repoMap.get(t))}filter(e){return Promise.resolve(this.filterableNames.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}constructor(){this.repoMap=V.ofArrayEntries(["EpochSecondsToTimestamp",new sk("EpochSecondsToTimestamp",!0)],["EpochMillisecondsToTimestamp",new sk("EpochMillisecondsToTimestamp",!1)],sD.ofEntryTimestampAndIntegerOutput("GetDay",e=>sG(e).day),sD.ofEntryTimestampAndIntegerOutput("GetDayOfWeek",e=>sG(e).weekday),sD.ofEntryTimestampAndIntegerOutput("GetMonth",e=>sG(e).month),sD.ofEntryTimestampAndIntegerOutput("GetYear",e=>sG(e).year),sD.ofEntryTimestampAndIntegerOutput("GetHours",e=>sG(e).hour),sD.ofEntryTimestampAndIntegerOutput("GetMinutes",e=>sG(e).minute),sD.ofEntryTimestampAndIntegerOutput("GetSeconds",e=>sG(e).second),sD.ofEntryTimestampAndIntegerOutput("GetMilliseconds",e=>sG(e).millisecond),sD.ofEntryTimestampAndIntegerOutput("GetDaysInMonth",e=>sG(e).daysInMonth),sD.ofEntryTimestampAndIntegerOutput("GetDaysInYear",e=>sG(e).daysInYear),["TimestampToEpochSeconds",new sB("TimestampToEpochSeconds",!0)],["TimestampToEpochMilliseconds",new sB("TimestampToEpochMilliseconds",!1)],sD.ofEntryTimestampAndStringOutput("GetTimeZoneName",e=>sG(e).zoneName),sD.ofEntryTimestampAndStringOutput("GetTimeZoneOffsetLong",e=>sG(e).offsetNameLong),sD.ofEntryTimestampAndStringOutput("GetTimeZoneOffsetShort",e=>sG(e).offsetNameShort),sD.ofEntryTimestampAndIntegerOutput("GetTimeZoneOffset",e=>sG(e).offset),["ToDateString",new sF],["AddTime",new s$(!0)],["SubtractTime",new s$(!1)],["GetCurrentTimestamp",new sQ],sD.ofEntryTimestampTimestampAndTOutput("Difference",new $($.OUTPUT,V.of(sD.EVENT_RESULT_NAME,y.ofRef(`${A.DATE}.Duration`))),(e,t,r)=>{let s,n=sG(e),a=sG(t);r?.[0]?.length&&(s=r[0]?.filter(e=>!!e).map(e=>e.toLowerCase()));let i=n.diff(a);return s?.length?i.shiftTo(...s).toObject():i.toObject()},sD.PARAMETER_VARIABLE_UNIT),sD.ofEntryTimestampIntegerAndTimestampOutput("SetDay",(e,t)=>sG(e).set({day:t}).toISO()),sD.ofEntryTimestampIntegerAndTimestampOutput("SetMonth",(e,t)=>sG(e).set({month:t}).toISO()),sD.ofEntryTimestampIntegerAndTimestampOutput("SetYear",(e,t)=>sG(e).set({year:t}).toISO()),sD.ofEntryTimestampIntegerAndTimestampOutput("SetHours",(e,t)=>sG(e).set({hour:t}).toISO()),sD.ofEntryTimestampIntegerAndTimestampOutput("SetMinutes",(e,t)=>sG(e).set({minute:t}).toISO()),sD.ofEntryTimestampIntegerAndTimestampOutput("SetSeconds",(e,t)=>sG(e).set({second:t}).toISO()),sD.ofEntryTimestampIntegerAndTimestampOutput("SetMilliseconds",(e,t)=>sG(e).set({millisecond:t}).toISO()),["SetTimeZone",new sY],sD.ofEntryTimestampTimestampAndTOutput("IsBefore",new $($.OUTPUT,V.of(sD.EVENT_RESULT_NAME,y.ofBoolean(sD.EVENT_RESULT_NAME))),(e,t)=>sG(e)<sG(t)),sD.ofEntryTimestampTimestampAndTOutput("IsAfter",new $($.OUTPUT,V.of(sD.EVENT_RESULT_NAME,y.ofBoolean(sD.EVENT_RESULT_NAME))),(e,t)=>sG(e)>sG(t)),sD.ofEntryTimestampTimestampAndTOutput("IsSame",new $($.OUTPUT,V.of(sD.EVENT_RESULT_NAME,y.ofBoolean(sD.EVENT_RESULT_NAME))),(e,t)=>sG(e)===sG(t)),sD.ofEntryTimestampTimestampAndTOutput("IsSameOrBefore",new $($.OUTPUT,V.of(sD.EVENT_RESULT_NAME,y.ofBoolean(sD.EVENT_RESULT_NAME))),(e,t)=>sG(e)<=sG(t)),sD.ofEntryTimestampTimestampAndTOutput("IsSameOrAfter",new $($.OUTPUT,V.of(sD.EVENT_RESULT_NAME,y.ofBoolean(sD.EVENT_RESULT_NAME))),(e,t)=>sG(e)>=sG(t)),sD.ofEntryTimestampAndBooleanOutput("IsInLeapYear",e=>sG(e).isInLeapYear),sD.ofEntryTimestampAndBooleanOutput("IsInDST",e=>sG(e).isInDST),["IsBetween",new sH],["LastOf",new sj(!0)],["FirstOf",new sj(!1)],["StartOf",new sX(!0)],["EndOf",new sX(!1)],["TimeAsObject",new sW(!1)],["TimeAsArray",new sW(!0)],["GetNames",new sJ],["IsValidISODate",new sK],["FromNow",new sq],["FromDateString",new sz]),this.filterableNames=Array.from(this.repoMap.values()).map(e=>e.getSignature().getFullName())}}class s0 extends eN{static{this.MILLIS="millis"}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(s0.MILLIS);return await new Promise(e=>setTimeout(e,t)),new F([k.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new Y("Wait").setNamespace(A.SYSTEM).setParameters(new Map([v.ofEntry(s0.MILLIS,y.ofNumber(s0.MILLIS).setMinimum(0).setDefaultValue(0))])).setEvents(new Map([$.outputEventMapEntry(new Map)]))}}let s1="resultShape",s2="value";class s5 extends eN{constructor(){super(),this.signature=new Y("Make").setNamespace(A.SYSTEM).setParameters(new Map([v.ofEntry(s1,y.ofAny(s1))])).setEvents(new Map([$.outputEventMapEntry(V.of(s2,y.ofAny(s2)))]))}getSignature(){return this.signature}async internalExecute(e){let t=(e.getArguments()??new Map).get(s1),r=e.getValuesMap(),s=this.processValue(t,r);return new F([k.outputOf(V.of(s2,s))])}processValue(e,t){if(null==e)return e;if("string"==typeof e)return this.evaluateExpression(e,t);if(Array.isArray(e))return e.map(e=>this.processValue(e,t));if("object"==typeof e){let r={};for(let[s,n]of Object.entries(e))r[s]=this.processValue(n,t);return r}return e}evaluateExpression(e,t){if(!e||!e.startsWith("{{")||!e.endsWith("}}"))return e;let r=new rw(e.substring(2,e.length-2)).evaluate(t);return void 0!==r?r:null}}t({},"HybridRepository",()=>s7);class s7{constructor(...e){this.repos=e}async find(e,t){for(let r of this.repos){let s=await r.find(e,t);if(s)return s}}async filter(e){let t=new Set;for(let r of this.repos)(await r.filter(e)).forEach(e=>t.add(e));return Array.from(t)}}class s9 extends eN{static{this.SOURCE="source"}static{this.SCHEMA="schema"}static{this.IS_VALID="isValid"}getSignature(){return this.signature}internalExecute(e){let t=e.getArguments()?.get(s9.SOURCE),r=y.from(e?.getArguments()?.get(s9.SCHEMA));if(!r)throw new B("Schema is not supplied.");return this.validateSchema(r,e.getSchemaRepository(),t)}async validateSchema(e,t,r){try{return await ef.validate([],e,t,r,!0),new F([k.outputOf(V.of(s9.IS_VALID,!0))])}catch(e){return new F([k.outputOf(V.of(s9.IS_VALID,!1))])}}constructor(...e){super(...e),this.signature=new Y("ValidateSchema").setNamespace(A.SYSTEM_OBJECT).setParameters(new Map([v.ofEntry(s9.SOURCE,y.ofAny(s9.SCHEMA)),v.ofEntry(s9.SCHEMA,y.SCHEMA,!1,L.CONSTANT)])).setEvents(new Map([$.outputEventMapEntry(V.of(s9.IS_VALID,y.ofBoolean(s9.IS_VALID)))]))}}let s4="value",s6="error",s3="errorMessage",s8="source";class ne extends eN{constructor(){super(),this.signature=new Y("JSONParse").setNamespace(A.SYSTEM_JSON).setParameters(new Map([v.ofEntry(s8,y.ofString(s8))])).setEvents(new Map([$.eventMapEntry(s6,new Map([[s3,y.ofString(s3)]])),$.outputEventMapEntry(new Map([[s4,y.ofAny(s4)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t,r=e.getArguments()?.get("source");try{t=r?JSON.parse(r):null}catch(e){return new F([k.of(s6,new Map([[s3,e?.message??"Unknown Error parsing JSON"]])),k.outputOf(new Map([[s4,null]]))])}return new F([k.outputOf(new Map([[s4,t]]))])}}let nt="value",nr="source";class ns extends eN{constructor(){super(),this.signature=new Y("JSONStringify").setNamespace(A.SYSTEM_JSON).setParameters(new Map([v.ofEntry(nr,y.ofAny(nr))])).setEvents(new Map([$.outputEventMapEntry(new Map([[nt,y.ofString(nt)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get("source");return new F([k.outputOf(new Map([[nt,JSON.stringify(t??null)]]))])}}class nn{constructor(){this.map=new Map([[A.SYSTEM_JSON,new Map([G(new ne),G(new ns)])],[A.SYSTEM_CTX,new Map([G(new tA),G(new tT),G(new rx)])],[A.SYSTEM_LOOP,new Map([G(new rz),G(new rB),G(new rD),G(new rW)])],[A.SYSTEM,new Map([G(new rV),G(new rU),G(new sM),G(new s0),G(new ti),G(new s9),G(new s5)])]]),this.filterableNames=Array.from(this.map.values()).flatMap(e=>Array.from(e.values())).map(e=>e.getSignature().getFullName())}async find(e,t){return this.map.get(e)?.get(t)}async filter(e){return Array.from(this.filterableNames).filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase()))}}class na extends s7{constructor(){super(new nn,new ss,new sC,new to,new s_,new sZ)}}t({},"StatementExecution",()=>no),t({},"StatementMessage",()=>ni);class ni{constructor(e,t){this.message=t,this.messageType=e}getMessageType(){return this.messageType}setMessageType(e){return this.messageType=e,this}getMessage(){return this.message}setMessage(e){return this.message=e,this}toString(){return`${this.messageType} : ${this.message}`}}class no{constructor(e){this.messages=[],this.dependencies=new Set,this.statement=e}getStatement(){return this.statement}setStatement(e){return this.statement=e,this}getMessages(){return this.messages}setMessages(e){return this.messages=e,this}getDependencies(){return this.dependencies}setDependencies(e){return this.dependencies=e,this}getUniqueKey(){return this.statement.getStatementName()}addMessage(e,t){this.messages.push(new ni(e,t))}addDependency(e){this.dependencies.add(e)}getDepenedencies(){return this.dependencies}equals(e){return e instanceof no&&e.statement.equals(this.statement)}}t({},"ContextTokenValueExtractor",()=>nE);class nE extends eZ{static{this.PREFIX="Context."}constructor(e){super(),this.context=e}getValueInternal(e){let t=eZ.splitPath(e),r=t[1],s=r.indexOf("["),n=2;return -1!=s&&(r=t[1].substring(0,s),(t=[...t])[1]=t[1].substring(s),n=1),this.retrieveElementFrom(e,t,n,this.context.get(r)?.getElement())}getPrefix(){return nE.PREFIX}getStore(){return l(this.context)?this.context:Array.from(this.context.entries()).reduce((e,[t,r])=>(l(r)||(e[t]=r.getElement()),e),{})}}t({},"OutputMapTokenValueExtractor",()=>nu);class nu extends eZ{static{this.PREFIX="Steps."}constructor(e){super(),this.output=e}getValueInternal(e){let t=eZ.splitPath(e),r=1,s=this.output.get(t[r++]);if(!s||r>=t.length)return;let n=s.get(t[r++]);if(!n||r>t.length)return;if(r===t.length)return n;let a=t[r].indexOf("[");if(-1===a){let s=n.get(t[r++]);return this.retrieveElementFrom(e,t,r,s)}let i=t[r].substring(0,a),o=n.get(i);return this.retrieveElementFrom(e,t,r,{[i]:o})}getPrefix(){return nu.PREFIX}getStore(){return this.convertMapToObj(this.output)}convertMapToObj(e){return 0===e.size?{}:Array.from(e.entries()).reduce((e,[t,r])=>(e[t]=r instanceof Map?this.convertMapToObj(r):r,e),{})}}t({},"ArgumentsTokenValueExtractor",()=>nh);class nh extends eZ{static{this.PREFIX="Arguments."}constructor(e){super(),this.args=e}getValueInternal(e){let t=eZ.splitPath(e),r=t[1],s=r.indexOf("["),n=2;return -1!=s&&(r=t[1].substring(0,s),(t=[...t])[1]=t[1].substring(s),n=1),this.retrieveElementFrom(e,t,n,this.args.get(r))}getPrefix(){return nh.PREFIX}getStore(){return l(this.args)?this.args:Array.from(this.args.entries()).reduce((e,[t,r])=>(e[t]=r,e),{})}}t({},"GraphVertex",()=>nl),t({},"ExecutionGraph",()=>nA);class nA{constructor(e=!1){this.nodeMap=new Map,this.edgesBuilt=!1,this.isSubGrph=e}areEdgesBuilt(){return this.edgesBuilt}setEdgesBuilt(e){this.edgesBuilt=e}getVerticesData(){return Array.from(this.nodeMap.values()).map(e=>e.getData())}addVertex(e){if(!this.nodeMap.has(e.getUniqueKey())){let t=new nl(this,e);this.nodeMap.set(e.getUniqueKey(),t)}return this.nodeMap.get(e.getUniqueKey())}getVertex(e){return this.nodeMap.get(e)}getVertexData(e){if(this.nodeMap.has(e))return this.nodeMap.get(e).getData()}getVerticesWithNoIncomingEdges(){return Array.from(this.nodeMap.values()).filter(e=>!e.hasIncomingEdges())}isCyclic(){let e,t=new j(this.getVerticesWithNoIncomingEdges()),r=new Set;for(;!t.isEmpty();){if(r.has(t.getFirst().getKey()))return!0;e=t.removeFirst(),r.add(e.getKey()),e.hasOutgoingEdges()&&t.addAll(Array.from(e.getOutVertices().values()).flatMap(e=>Array.from(e)))}return!1}addVertices(e){for(let t of e)this.addVertex(t)}getNodeMap(){return this.nodeMap}isSubGraph(){return this.isSubGrph}toString(){return"Execution Graph : \n"+Array.from(this.nodeMap.values()).map(e=>e.toString()).join("\n")}}class nl{constructor(e,t){this.outVertices=new Map,this.inVertices=new Set,this.subGraphCache=new Map,this.data=t,this.graph=e}getData(){return this.data}setData(e){return this.data=e,this}getOutVertices(){return this.outVertices}setOutVertices(e){return this.outVertices=e,this}getInVertices(){return this.inVertices}setInVertices(e){return this.inVertices=e,this}getGraph(){return this.graph}setGraph(e){return this.graph=e,this}getKey(){return this.data.getUniqueKey()}addOutEdgeTo(e,t){return this.outVertices.has(e)||this.outVertices.set(e,new Set),this.outVertices.get(e).add(t),t.inVertices.add(new q(this,e)),t}addInEdgeTo(e,t){return this.inVertices.add(new q(e,t)),e.outVertices.has(t)||e.outVertices.set(t,new Set),e.outVertices.get(t).add(this),e}hasIncomingEdges(){return!!this.inVertices.size}hasOutgoingEdges(){return!!this.outVertices.size}getSubGraphOfType(e){let t=this.subGraphCache.get(e);if(t)return t;let r=new nA(!0);var s=new j(Array.from(this.outVertices.get(e)??[]));for(s.map(e=>e.getData()).forEach(e=>r.addVertex(e));!s.isEmpty();)Array.from(s.pop().outVertices.values()).flatMap(e=>Array.from(e)).forEach(e=>{r.addVertex(e.getData()),s.add(e)});return this.subGraphCache.set(e,r),r}toString(){var e=Array.from(this.getInVertices()).map(e=>e.getT1().getKey()+"("+e.getT2()+")").join(", "),t=Array.from(this.outVertices.entries()).map(([e,t])=>e+": "+Array.from(t).map(e=>e.getKey()).join(",")).join("\n ");return this.getKey()+":\n In: "+e+"\n Out: \n "+t}}t({},"KIRuntime",()=>nf),t({},"JsonExpression",()=>nc);class nc{constructor(e){this.expression=e}getExpression(){return this.expression}}t({},"ParameterReferenceType",()=>nT);var nT=((E={}).VALUE="VALUE",E.EXPRESSION="EXPRESSION",E);function ng(){var e=new Date().getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var r=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"==t?r:3&r|8).toString(16)})}t({},"FunctionExecutionParameters",()=>np);class np{constructor(e,t,r){this.count=0,this.executionContext=new Map,this.valueExtractors=new Map,this.functionRepository=e,this.schemaRepository=t,this.executionId=r??ng()}getExecutionId(){return this.executionId}getContext(){return this.context}setContext(e){this.context=e;let t=new nE(e);return this.valueExtractors.set(t.getPrefix(),t),this}getArguments(){return this.args}setArguments(e){return this.args=e,this}getEvents(){return this.events}setEvents(e){return this.events=e,this}getStatementExecution(){return this.statementExecution}setStatementExecution(e){return this.statementExecution=e,this}getSteps(){return this.steps}setSteps(e){this.steps=e;let t=new nu(e);return this.valueExtractors.set(t.getPrefix(),t),this}getCount(){return this.count}setCount(e){return this.count=e,this}getValuesMap(){return this.valueExtractors}getFunctionRepository(){return this.functionRepository}setFunctionRepository(e){return this.functionRepository=e,this}getSchemaRepository(){return this.schemaRepository}setSchemaRepository(e){return this.schemaRepository=e,this}addTokenValueExtractor(...e){for(let t of e)this.valueExtractors.set(t.getPrefix(),t);return this}setValuesMap(e){for(let[t,r]of e.entries())this.valueExtractors.set(t,r);return this}setExecutionContext(e){return this.executionContext=e,this}getExecutionContext(){return this.executionContext}}t({},"StatementMessageType",()=>nR);var nR=((u={}).ERROR="ERROR",u.WARNING="WARNING",u.MESSAGE="MESSAGE",u);class nm{constructor(){this.executions=new Map,this.executionOrder=[],this.stepStacks=new Map,this.pendingLogs=new Map,this.listeners=new Set,this.enabled=!1,this.maxExecutions=10}static getInstance(){return nm.instance||(nm.instance=new nm),nm.instance}enable(){this.enabled=!0}disable(){this.enabled=!1}isEnabled(){return this.enabled}startExecution(e,t,r){if(!this.enabled)return;if(!this.executions.get(e)){for(this.executions.set(e,{executionId:e,startTime:Date.now(),errored:!1,logs:[],definitions:new Map}),this.executionOrder.push(e),this.stepStacks.set(e,[]);this.executionOrder.length>this.maxExecutions;){let e=this.executionOrder.shift();this.executions.delete(e),this.stepStacks.delete(e)}this.emit("executionStart",e,{functionName:t})}let s=this.executions.get(e);r&&!s.definitions.has(t)&&s.definitions.set(t,r)}endExecution(e){if(!this.enabled)return;let t=this.executions.get(e);t&&(t.endTime=Date.now(),this.emit("executionEnd",e,{duration:t.endTime-t.startTime,errored:t.errored}))}startStep(e,t,r,s,n){if(!this.enabled||!this.executions.get(e))return;let a=`${Date.now()}_${Math.random().toString(36).slice(2)}`,i=this.stepStacks.get(e)||[],o={stepId:a,timestamp:Date.now(),functionName:r,statementName:t,kirunFunctionName:n,arguments:this.serialize(s),children:[]};return this.pendingLogs.set(a,o),i.push(o),this.stepStacks.set(e,i),this.emit("stepStart",e,{stepId:a,statementName:t,functionName:r}),a}endStep(e,t,r,s,n){if(!this.enabled)return;let a=this.pendingLogs.get(t);if(!a)return;let i=this.executions.get(e);if(!i)return;a.duration=Date.now()-a.timestamp,a.result=this.serialize(s),a.eventName=r,a.error=n;let o=this.stepStacks.get(e)||[],E=o.findIndex(e=>e.stepId===t);-1!==E&&o.splice(E,1),o.length>0?o.at(-1).children.push(a):i.logs.push(a),this.pendingLogs.delete(t),n&&(i.errored=!0,this.emit("executionErrored",e)),this.emit("stepEnd",e,{log:a})}markErrored(e){let t=this.executions.get(e);t&&(t.errored=!0,this.emit("executionErrored",e))}getExecution(e){return this.executions.get(e)}getLastExecution(){let e=this.executionOrder.at(-1);return e?this.executions.get(e):void 0}getDefinition(e,t){return this.executions.get(e)?.definitions.get(t)}getFlatLogs(e){let t=this.executions.get(e);if(!t)return[];let r=[],s=e=>{for(let t of e)r.push(t),t.children.length&&s(t.children)};return s(t.logs),r}getAllExecutionIds(){return[...this.executionOrder]}clear(){this.executions.clear(),this.executionOrder=[],this.stepStacks.clear(),this.pendingLogs.clear()}addEventListener(e){return this.listeners.add(e),()=>this.listeners.delete(e)}emit(e,t,r){let s={type:e,executionId:t,data:r};this.listeners.forEach(e=>{try{e(s)}catch(e){console.error("Debug listener error:",e)}})}serialize(e){if(null==e)return e;if(e instanceof Map){let t={};for(let[r,s]of e.entries())t[r]=this.serialize(s);return t}if(Array.isArray(e))return e.map(e=>this.serialize(e));if("object"==typeof e){let t={};for(let[r,s]of Object.entries(e))t[r]=this.serialize(s);return t}return e}}class nf extends eN{static{this.PARAMETER_NEEDS_A_VALUE='Parameter "$" needs a value'}static{this.STEP_REGEX_PATTERN=RegExp("Steps\\.([a-zA-Z0-9\\\\-]{1,})\\.([a-zA-Z0-9\\\\-]{1,})","g")}static{this.VERSION=1}static{this.MAX_EXECUTION_ITERATIONS=1e7}constructor(e,t=!1){if(super(),this.debugMode=!1,this.functionCache=new Map,this.debugMode=t,this.fd=e,this.debugMode&&nm.getInstance().enable(),this.fd.getVersion()>nf.VERSION)throw new B("Runtime is at a lower version "+nf.VERSION+" and trying to run code from version "+this.fd.getVersion()+".")}getSignature(){return this.fd}async getCachedFunction(e,t,r){let s=`${t}.${r}`;if(this.functionCache.has(s))return this.functionCache.get(s);let n=await e.find(t,r);return n&&this.functionCache.set(s,n),n}async getExecutionPlan(e,t){let r=new nA,s=Array.from(this.fd.getSteps().values());for(let n of(await Promise.all(s.map(r=>this.prepareStatementExecution(r,e,t)))))r.addVertex(n);return Array.from(this.makeEdges(r).getT2().entries()).forEach(e=>{let t=r.getNodeMap().get(e[0])?.getData();t&&t.addMessage(nR.ERROR,e[1])}),r}async internalExecute(e){if(e.getContext()||e.setContext(new Map),e.getEvents()||e.setEvents(new Map),e.getSteps()||e.setSteps(new Map),e.getArguments()&&e.addTokenValueExtractor(new nh(e.getArguments())),this.debugMode){let t=this.fd.getNamespace()?`${this.fd.getNamespace()}.${this.fd.getName()}`:this.fd.getName();nm.getInstance().startExecution(e.getExecutionId(),t,this.fd.toJSON())}let t=await this.getExecutionPlan(e.getFunctionRepository(),e.getSchemaRepository()),r=t.getVerticesData().filter(e=>e.getMessages().length).map(e=>e.getStatement().getStatementName()+": \n"+e.getMessages().join(","));if(r?.length)throw this.debugMode&&nm.getInstance().markErrored(e.getExecutionId()),new B("Please fix the errors in the function definition before execution : \n"+r.join(",\n"));try{return await this.executeGraph(t,e)}catch(t){throw this.debugMode&&nm.getInstance().markErrored(e.getExecutionId()),t}}async executeGraph(e,t){let r=new j;r.addAll(e.getVerticesWithNoIncomingEdges());let s=new j;for(;(!r.isEmpty()||!s.isEmpty())&&!t.getEvents()?.has($.OUTPUT);){let e=r.length,n=s.length;if(await this.processBranchQue(t,r,s),await this.processExecutionQue(t,r,s),(e!==r.length||n!==s.length)&&(t.setCount(t.getCount()+1),t.getCount()==nf.MAX_EXECUTION_ITERATIONS))throw new B("Execution locked in an infinite loop")}if(!e.isSubGraph()&&!t.getEvents()?.size){let e=this.getSignature().getEvents();if(e.size&&e.get($.OUTPUT)?.getParameters()?.size)throw new B("No events raised")}let n=Array.from(t.getEvents()?.entries()??[]).flatMap(e=>e[1].map(t=>k.of(e[0],t))),a=new F(n.length||e.isSubGraph()?n:[k.of($.OUTPUT,new Map)]);return this.debugMode&&nm.getInstance().endExecution(t.getExecutionId()),a}async processExecutionQue(e,t,r){if(t.isEmpty())return;let s=[];for(;!t.isEmpty();)s.push(t.pop());let n=[],a=[];for(let t of s)this.allDependenciesResolvedVertex(t,e.getSteps())?n.push(t):a.push(t);for(let e of a)t.add(e);n.length>0&&await Promise.all(n.map(s=>this.executeVertex(s,e,r,t,e.getFunctionRepository())))}async processBranchQue(e,t,r){if(!r.length)return;let s=[];for(;r.length;)s.push(r.pop());let n=[],a=[];for(let t of s)this.allDependenciesResolvedTuples(t.getT2(),e.getSteps())?n.push(t):a.push(t);for(let e of a)r.add(e);for(let r of n)await this.executeBranch(e,t,r)}async executeBranch(e,t,r){let s,n=r.getT4(),a=r.getT1().getVerticesData().map(e=>e.getStatement().getStatementName());do{let t=e.getSteps();if(t)for(let e of a)t.delete(e);await this.executeGraph(r.getT1(),e),(s=r.getT3().next())&&(e.getSteps()?.has(n.getData().getStatement().getStatementName())||e.getSteps()?.set(n.getData().getStatement().getStatementName(),new Map),e.getSteps()?.get(n.getData().getStatement().getStatementName())?.set(s.getName(),this.resolveInternalExpressions(s.getResult(),e)))}while(s&&s.getName()!=$.OUTPUT)if(s?.getName()==$.OUTPUT&&n.getOutVertices().has($.OUTPUT))for(let r of Array.from(n?.getOutVertices()?.get($.OUTPUT)??[]))this.allDependenciesResolvedVertex(r,e.getSteps())&&t.add(r)}async executeVertex(e,t,r,s,n){let a,i,o,E,u=e.getData().getStatement();if(u.getExecuteIftrue().size&&!(Array.from(u.getExecuteIftrue().entries())??[]).filter(e=>e[1]).map(([e])=>new rw(e).evaluate(t.getValuesMap())).every(e=>!l(e)&&!1!==e))return;let h=await this.getCachedFunction(n,u.getNamespace(),u.getName());if(!h)throw new B(H.format("$.$ function is not found.",u.getNamespace(),u.getName()));let A=h?.getSignature().getParameters(),c=this.getArgumentsFromParametersMap(t,u,A??new Map),T=this.debugMode?nm.getInstance():void 0;if(T?.isEnabled()){let e=this.fd.getNamespace()?`${this.fd.getNamespace()}.${this.fd.getName()}`:this.fd.getName();a=T.startStep(t.getExecutionId(),u.getStatementName(),`${u.getNamespace()}.${u.getName()}`,c,e)}let g=t.getContext();i=h instanceof nf?new np(t.getFunctionRepository(),t.getSchemaRepository(),t.getExecutionId()).setArguments(c).setValuesMap(new Map(Array.from(t.getValuesMap().values()).filter(e=>e.getPrefix()!==nh.PREFIX&&e.getPrefix()!==nu.PREFIX&&e.getPrefix()!==nE.PREFIX).map(e=>[e.getPrefix(),e]))):new np(t.getFunctionRepository(),t.getSchemaRepository(),t.getExecutionId()).setValuesMap(t.getValuesMap()).setContext(g).setArguments(c).setEvents(t.getEvents()).setSteps(t.getSteps()).setStatementExecution(e.getData()).setCount(t.getCount()).setExecutionContext(t.getExecutionContext());try{if(!(E=(o=await h.execute(i)).next()))throw new B(H.format("Executing $ returned no events",u.getStatementName()));t.getSteps()?.has(u.getStatementName())||t.getSteps().set(u.getStatementName(),new Map),t.getSteps().get(u.getStatementName()).set(E.getName(),this.resolveInternalExpressions(E.getResult(),t))}catch(r){let e=r?.message||String(r);throw T&&a&&T.endStep(t.getExecutionId(),a,"error",void 0,e),r}if(T&&a&&T.endStep(t.getExecutionId(),a,E.getName(),t.getSteps().get(u.getStatementName()).get(E.getName())),E.getName()==$.OUTPUT){let r=e.getOutVertices().get($.OUTPUT);if(r)for(let e of Array.from(r))this.allDependenciesResolvedVertex(e,t.getSteps())&&s.add(e)}else{let t=e.getSubGraphOfType(E.getName()),s=[];t.areEdgesBuilt()||(s=this.makeEdges(t).getT1(),t.setEdgesBuilt(!0)),r.push(new Q(t,s,o,e))}}resolveInternalExpressions(e,t){if(!e)return e;let r=new Map;for(let[s,n]of e.entries())r.set(s,this.resolveInternalExpression(n,t));return r}resolveInternalExpression(e,t){if(l(e)||"object"!=typeof e)return e;if(e instanceof nc)return new rw(e.getExpression()).evaluate(t.getValuesMap());if(Array.isArray(e)){let r=[];for(let s of e)r.push(this.resolveInternalExpression(s,t));return r}if("object"==typeof e){let r={};for(let s of Object.entries(e))r[s[0]]=this.resolveInternalExpression(s[1],t);return r}}allDependenciesResolvedTuples(e,t){for(let r of e)if(!t.has(r.getT1())||!t.get(r.getT1())?.get(r.getT2()))return!1;return!0}allDependenciesResolvedVertex(e,t){let r=e.getInVertices();if(!r.size)return!0;for(let e of r){let r=e.getT1().getData().getStatement().getStatementName(),s=e.getT2();if(!(t.has(r)&&t.get(r)?.has(s)))return!1}return!0}getArgumentsFromParametersMap(e,t,r){let s=new Map;for(let[n,a]of t.getParameterMap().entries()){let t,i=Array.from(a?.values()??[]);if(!i?.length)continue;let o=r.get(n);o&&(t=o.isVariableArgument()?i.sort((e,t)=>(e.getOrder()??0)-(t.getOrder()??0)).filter(e=>!l(e)).map(t=>this.parameterReferenceEvaluation(e,t)).flatMap(e=>Array.isArray(e)?e:[e]):this.parameterReferenceEvaluation(e,i[0]),l(t)||s.set(n,t))}return s}parameterReferenceEvaluation(e,t){let r;return t.getType()==nT.VALUE?r=this.resolveInternalExpression(t.getValue(),e):t.getType()!=nT.EXPRESSION||J.isNullOrBlank(t.getExpression())||(r=new rw(t.getExpression()??"").evaluate(e.getValuesMap())),r}async prepareStatementExecution(e,t,r){let s=new no(e),n=await this.getCachedFunction(t,e.getNamespace(),e.getName());if(!n)return s.addMessage(nR.ERROR,H.format("$.$ is not available",e.getNamespace(),e.getName())),Promise.resolve(s);let a=new Map(n.getSignature().getParameters());if(!e.getParameterMap())return Promise.resolve(s);for(let t of Array.from(e.getParameterMap().entries())){let e=a.get(t[0]);if(!e)continue;let n=Array.from(t[1]?.values()??[]);if(!n.length&&!e.isVariableArgument()){await ee.hasDefaultValueOrNullSchemaType(e.getSchema(),r)||s.addMessage(nR.ERROR,H.format(nf.PARAMETER_NEEDS_A_VALUE,e.getParameterName())),a.delete(e.getParameterName());continue}if(e.isVariableArgument())for(let t of(n.sort((e,t)=>(e.getOrder()??0)-(t.getOrder()??0)),n))this.parameterReferenceValidation(s,e,t,r);else if(n.length){let t=n[0];this.parameterReferenceValidation(s,e,t,r)}a.delete(e.getParameterName())}if(!l(s.getStatement().getDependentStatements()))for(let e of Array.from(s.getStatement().getDependentStatements().entries()))e[1]&&s.addDependency(e[0]);if(!l(s.getStatement().getExecuteIftrue()))for(let e of Array.from(s.getStatement().getExecuteIftrue().entries()))e[1]&&this.addDependencies(s,e[0]);if(a.size)for(let e of Array.from(a.values()))!e.isVariableArgument()&&(await ee.hasDefaultValueOrNullSchemaType(e.getSchema(),r)||s.addMessage(nR.ERROR,H.format(nf.PARAMETER_NEEDS_A_VALUE,e.getParameterName())));return Promise.resolve(s)}async parameterReferenceValidation(e,t,r,s){if(r){if(r.getType()==nT.VALUE){if(l(r.getValue())&&!await ee.hasDefaultValueOrNullSchemaType(t.getSchema(),s)&&e.addMessage(nR.ERROR,H.format(nf.PARAMETER_NEEDS_A_VALUE,t.getParameterName())),l(r.getValue()))return;let n=new j;for(n.push(new q(t.getSchema(),r.getValue()));!n.isEmpty();){let t=n.pop();if(t.getT2()instanceof nc)this.addDependencies(e,t.getT2().getExpression());else{if(l(t.getT1())||l(t.getT1().getType()))continue;if(t.getT1().getType()?.contains(T.ARRAY)&&Array.isArray(t.getT2())){let e=t.getT1().getItems();if(!e)continue;if(e.isSingleType())for(let r of t.getT2())n.push(new q(e.getSingleSchema(),r));else{let r=t.getT2();for(let t=0;t<r.length;t++)n.push(new q(e.getTupleSchema()[t],r[t]))}}else if(t.getT1().getType()?.contains(T.OBJECT)&&"object"==typeof t.getT2()){let r=t.getT1();if(r.getName()===v.EXPRESSION.getName()&&r.getNamespace()===v.EXPRESSION.getNamespace()){let r=t.getT2();r.isExpression&&this.addDependencies(e,r.value)}else if(r.getProperties())for(let e of Object.entries(t.getT2()))r.getProperties().has(e[0])&&n.push(new q(r.getProperties().get(e[0]),e[1]))}}}}else if(r.getType()==nT.EXPRESSION)if(J.isNullOrBlank(r.getExpression()))l(ee.getDefaultValue(t.getSchema(),s))&&e.addMessage(nR.ERROR,H.format(nf.PARAMETER_NEEDS_A_VALUE,t.getParameterName()));else try{this.addDependencies(e,r.getExpression())}catch(t){e.addMessage(nR.ERROR,H.format("Error evaluating $ : $",r.getExpression(),t))}}else l(await ee.getDefaultValue(t.getSchema(),s))&&e.addMessage(nR.ERROR,H.format(nf.PARAMETER_NEEDS_A_VALUE,t.getParameterName()))}addDependencies(e,t){t&&Array.from(t.match(nf.STEP_REGEX_PATTERN)??[]).forEach(t=>e.addDependency(t))}makeEdges(e){let t=e.getNodeMap().values(),r=[],s=new Map;for(let n of Array.from(t))for(let t of Array.from(n.getData().getDependencies())){let a=t.indexOf(".",6),i=t.substring(6,a),o=t.indexOf(".",a+1),E=-1==o?t.substring(a+1):t.substring(a+1,o);e.getNodeMap().has(i)?n.addInEdgeTo(e.getNodeMap().get(i),E):(r.push(new q(i,E)),s.set(n.getData().getStatement().getStatementName(),H.format("Unable to find the step with name $",i)))}return new q(r,s)}}var nN={};t(nN,"DebugCollector",()=>nm),t(nN,"DebugFormatter",()=>n_);class n_{static formatAsText(e){let t=[],r=e.endTime?e.endTime-e.startTime:Date.now()-e.startTime,s=e.errored?"❌":"✓";return t.push(`${s} Execution: ${e.executionId}`),t.push(`Duration: ${r}ms`),t.push(`Steps: ${this.flatten(e.logs).length}`),t.push(""),this.formatLogs(e.logs,t,0),t.join("\n")}static getTimeline(e){return this.flatten(e.logs).sort((e,t)=>e.timestamp-t.timestamp)}static getPerformanceSummary(e){let t=this.flatten(e.logs),r=e.endTime?e.endTime-e.startTime:Date.now()-e.startTime;return{totalDuration:r,stepCount:t.length,averageDuration:t.length>0?r/t.length:0,slowestSteps:[...t].filter(e=>null!=e.duration).sort((e,t)=>(t.duration??0)-(e.duration??0)).slice(0,10)}}static formatLogs(e,t,r){let s=" ".repeat(r);for(let n of e){let e=n.error?"❌":"✓",a=n.statementName||"(anonymous)";t.push(`${s}${e} ${a} => ${n.functionName} (${n.duration??0}ms)`),n.error&&t.push(`${s} Error: ${n.error}`),n.children.length&&this.formatLogs(n.children,t,r+1)}}static flatten(e){let t=[],r=e=>{for(let s of e)t.push(s),s.children.length&&r(s.children)};return r(e),t}}t({},"KIRunConstants",()=>nM);class nM{static{this.NAMESPACE="namespace"}static{this.NAME="name"}static{this.ID="id"}}t({},"Position",()=>nS);class nS{static{this.SCHEMA_NAME="Position"}static{this.SCHEMA=new y().setNamespace(A.SYSTEM).setName(nS.SCHEMA_NAME).setType(m.of(T.OBJECT)).setProperties(new Map([["left",y.ofFloat("left")],["top",y.ofFloat("top")]]))}constructor(e,t){this.left=e,this.top=t}getLeft(){return this.left}setLeft(e){return this.left=e,this}getTop(){return this.top}setTop(e){return this.top=e,this}static from(e){if(e)return new nS(e.left,e.top)}toJSON(){return{left:this.left,top:this.top}}}t({},"FunctionDefinition",()=>ny),t({},"Statement",()=>nI),t({},"AbstractStatement",()=>nd);class nd{constructor(e){if(this.override=!1,!e)return;this.comment=e.comment,this.description=e.description,this.position=e.position?new nS(e.position.getLeft(),e.position.getTop()):void 0,this.override=e.override}getComment(){return this.comment}setComment(e){return this.comment=e,this}isOverride(){return this.override}setOverride(e){return this.override=e,this}getDescription(){return this.description}setDescription(e){return this.description=e,this}getPosition(){return this.position}setPosition(e){return this.position=e,this}}t({},"ParameterReference",()=>nO);class nO{static{this.SCHEMA_NAME="ParameterReference"}static{this.SCHEMA=new y().setNamespace(A.SYSTEM).setName(nO.SCHEMA_NAME).setType(m.of(T.OBJECT)).setProperties(new Map([["key",y.ofString("key")],["value",y.ofAny("value")],["expression",y.ofString("expression")],["type",y.ofString("type").setEnums(["EXPRESSION","VALUE"])],["order",y.ofInteger("order")]]))}constructor(e){e instanceof nO?(this.key=e.key,this.type=e.type,this.value=l(e.value)?void 0:JSON.parse(JSON.stringify(e.value)),this.expression=e.expression,this.order=e.order):(this.type=e,this.key=ng())}getType(){return this.type}setType(e){return this.type=e,this}getKey(){return this.key}setKey(e){return this.key=e,this}getValue(){return this.value}setValue(e){return this.value=e,this}getExpression(){return this.expression}setExpression(e){return this.expression=e,this}setOrder(e){return this.order=e,this}getOrder(){return this.order}static ofExpression(e){let t=new nO(nT.EXPRESSION).setExpression(e);return[t.getKey(),t]}static ofValue(e){let t=new nO(nT.VALUE).setValue(e);return[t.getKey(),t]}static from(e){return new nO(e.type).setValue(e.value).setExpression(e.expression).setKey(e.key).setOrder(e.order)}toJSON(){return{key:this.key,type:this.type,value:this.value,expression:this.expression,order:this.order}}}class nI extends nd{static{this.SCHEMA_NAME="Statement"}static{this.SCHEMA=new y().setNamespace(A.SYSTEM).setName(nI.SCHEMA_NAME).setType(m.of(T.OBJECT)).setProperties(new Map([["statementName",y.ofString("statementName")],["comment",y.ofString("comment")],["description",y.ofString("description")],["namespace",y.ofString("namespace")],["name",y.ofString("name")],["dependentStatements",y.ofObject("dependentstatement").setAdditionalProperties(new w().setSchemaValue(y.ofBoolean("exists"))).setDefaultValue({})],["executeIftrue",y.ofObject("executeIftrue").setAdditionalProperties(new w().setSchemaValue(y.ofBoolean("exists"))).setDefaultValue({})],["parameterMap",new y().setName("parameterMap").setAdditionalProperties(new w().setSchemaValue(y.ofObject("parameterReference").setAdditionalProperties(new w().setSchemaValue(nO.SCHEMA))))],["position",nS.SCHEMA]]))}constructor(e,t,r){if(super(e instanceof nI?e:void 0),e instanceof nI)this.statementName=e.statementName,this.name=e.name,this.namespace=e.namespace,e.parameterMap&&(this.parameterMap=new Map(Array.from(e.parameterMap.entries()).map(e=>[e[0],new Map(Array.from(e[1].entries()).map(e=>[e[0],new nO(e[1])]))]))),e.dependentStatements&&(this.dependentStatements=new Map(Array.from(e.dependentStatements.entries())));else{if(this.statementName=e,!r||!t)throw Error("Unknown constructor");this.namespace=t,this.name=r}}getStatementName(){return this.statementName}setStatementName(e){return this.statementName=e,this}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getParameterMap(){return this.parameterMap||(this.parameterMap=new Map),this.parameterMap}setParameterMap(e){return this.parameterMap=e,this}getDependentStatements(){return this.dependentStatements??new Map}setDependentStatements(e){return this.dependentStatements=e,this}getExecuteIftrue(){return this.executeIftrue??new Map}setExecuteIftrue(e){return this.executeIftrue=e,this}equals(e){return e instanceof nI&&e.statementName==this.statementName}static ofEntry(e){return[e.statementName,e]}toJSON(){let e={};if(this.parameterMap)for(let[t,r]of this.parameterMap.entries())for(let[s,n]of(e[t]={},r.entries()))e[t][s]=n.toJSON();return{statementName:this.statementName,namespace:this.namespace,name:this.name,parameterMap:e,dependentStatements:this.dependentStatements?Object.fromEntries(this.dependentStatements):{},executeIftrue:this.executeIftrue?Object.fromEntries(this.executeIftrue):{},position:this.getPosition()?.toJSON(),comment:this.getComment(),description:this.getDescription(),override:this.isOverride()}}static from(e){return new nI(e.statementName,e.namespace,e.name).setParameterMap(new Map(Object.entries(e.parameterMap??{}).map(([e,t])=>[e,new Map(Object.entries(t??{}).map(([e,t])=>nO.from(t)).map(e=>[e.getKey(),e]))]))).setDependentStatements(new Map(Object.entries(e.dependentStatements??{}))).setExecuteIftrue(new Map(Object.entries(e.executeIftrue??{}))).setPosition(nS.from(e.position)).setComment(e.comment).setDescription(e.description).setOverride(e.override??!1)}}t({},"StatementGroup",()=>nw);class nw extends nd{static{this.SCHEMA_NAME="StatementGroup"}static{this.SCHEMA=new y().setNamespace(A.SYSTEM).setName(nw.SCHEMA_NAME).setType(m.of(T.OBJECT)).setProperties(new Map([["statementGroupName",y.ofString("statementGroupName")],["comment",y.ofString("comment")],["description",y.ofString("description")],["position",nS.SCHEMA]]))}constructor(e,t=new Map){super(),this.statementGroupName=e,this.statements=t}getStatementGroupName(){return this.statementGroupName}setStatementGroupName(e){return this.statementGroupName=e,this}getStatements(){return this.statements}setStatements(e){return this.statements=e,this}static from(e){return new nw(e.statementGroupName,new Map(Object.entries(e.statements||{}).map(([e,t])=>[e,(""+t)?.toLowerCase()=="true"]))).setPosition(nS.from(e.position)).setComment(e.comment).setDescription(e.description).setOverride(e.override??!1)}toJSON(){return{statementGroupName:this.statementGroupName,statements:Object.fromEntries(this.statements),position:this.getPosition(),comment:this.getComment(),description:this.getDescription(),override:this.isOverride()}}}let nP=new y().setNamespace(A.SYSTEM).setName("FunctionDefinition").setProperties(new Map([["name",y.ofString("name")],["namespace",y.ofString("namespace")],["parameters",y.ofArray("parameters",v.SCHEMA)],["events",y.ofObject("events").setAdditionalProperties(new w().setSchemaValue($.SCHEMA))],["steps",y.ofObject("steps").setAdditionalProperties(new w().setSchemaValue(nI.SCHEMA))]]));nP.getProperties()?.set("parts",y.ofArray("parts",nP));class ny extends Y{static{this.SCHEMA=nP}constructor(e){super(e),this.version=1}getVersion(){return this.version}setVersion(e){return this.version=e,this}getSteps(){return this.steps??new Map}setSteps(e){return this.steps=e,this}getStepGroups(){return this.stepGroups}setStepGroups(e){return this.stepGroups=e,this}getParts(){return this.parts}setParts(e){return this.parts=e,this}static from(e){return e?new ny(e.name).setSteps(new Map(Object.values(e.steps??{}).filter(e=>!!e).map(e=>[e.statementName,nI.from(e)]))).setStepGroups(new Map(Object.values(e.stepGroups??{}).filter(e=>!!e).map(e=>[e.statementGroupName,nw.from(e)]))).setParts(Array.from(e.parts??[]).filter(e=>!!e).map(e=>ny.from(e))).setVersion(e.version??1).setEvents(new Map(Object.values(e.events??{}).filter(e=>!!e).map(e=>[e.name,$.from(e)]))).setParameters(new Map(Object.values(e.parameters??{}).filter(e=>!!e).map(e=>[e.parameterName,v.from(e)]))).setNamespace(e.namespace):new ny("unknown")}toJSON(){return{...super.toJSON(),version:this.version,steps:this.steps?Object.fromEntries(Array.from(this.steps).map(([e,t])=>[e,t.toJSON()])):{},stepGroups:this.stepGroups?Object.fromEntries(this.stepGroups):{},parts:this.parts??[]}}}t({},"Argument",()=>nx);class nx{constructor(e,t,r){this.argumentIndex=0,this.argumentIndex=e,this.name=t,this.value=r}getArgumentIndex(){return this.argumentIndex}setArgumentIndex(e){return this.argumentIndex=e,this}getName(){return this.name}setName(e){return this.name=e,this}getValue(){return this.value}setValue(e){return this.value=e,this}static of(e,t){return new nx(0,e,t)}}export{D as KIRunSchemaRepository,na as KIRunFunctionRepository,ew as PrimitiveUtil,V as MapUtil,C as MapEntry,l as isNullValue,j as LinkedList,tg as StringBuilder,H as StringFormatter,J as StringUtil,q as Tuple2,z as Tuple3,Q as Tuple4,ey as ArrayUtil,X as deepEqual,eL as duplicate,no as StatementExecution,ni as StatementMessage,tE as ContextElement,nE as ContextTokenValueExtractor,nu as OutputMapTokenValueExtractor,nh as ArgumentsTokenValueExtractor,nl as GraphVertex,nA as ExecutionGraph,nf as KIRuntime,nR as StatementMessageType,np as FunctionExecutionParameters,nm as DebugCollector,n_ as DebugFormatter,tM as Expression,eZ as TokenValueExtractor,rM as LiteralTokenValueExtractor,e0 as ObjectValueSetterExtractor,rw as ExpressionEvaluator,ez as Operation,tp as ExpressionToken,eQ as ExpressionEvaluationException,tR as ExpressionTokenValue,eN as AbstractFunction,A as Namespaces,nc as JsonExpression,w as AdditionalType,y as Schema,P as SchemaDetails,ei as NumberValidator,en as BooleanValidator,ea as NullValidator,es as ArrayValidator,et as AnyOfAllOfOneOfValidator,eu as StringValidator,eo as ObjectValidator,ef as SchemaValidator,Z as SchemaValidationException,x as SchemaReferenceException,em as TypeValidator,c as ArraySchemaType,R as SingleType,m as TypeUtil,p as MultipleType,g as Type,T as SchemaType,ee as SchemaUtil,eE as StringFormat,s7 as HybridRepository,nM as KIRunConstants,v as Parameter,F as FunctionOutput,nS as Position,ny as FunctionDefinition,nT as ParameterReferenceType,k as EventResult,nd as AbstractStatement,nI as Statement,nw as StatementGroup,Y as FunctionSignature,$ as Event,L as ParameterType,nx as Argument,nO as ParameterReference,eI as ExecutionException,B as KIRuntimeException,rT as ArithmeticUnaryMinusOperator,rp as ArithmeticUnaryPlusOperator,rm as BitwiseComplementOperator,rN as LogicalNotOperator,rc as UnaryOperator,tw as ArithmeticAdditionOperator,ty as ArithmeticDivisionOperator,tL as ArithmeticIntegerDivisionOperator,tv as ArithmeticModulusOperator,tV as ArithmeticMultiplicationOperator,tD as ArithmeticSubtractionOperator,t$ as ArrayOperator,tI as BinaryOperator,tB as BitwiseAndOperator,tY as BitwiseLeftShiftOperator,tj as BitwiseOrOperator,tX as BitwiseRightShiftOperator,tK as BitwiseUnsignedRightShiftOperator,tz as BitwiseXorOperator,tZ as LogicalAndOperator,t1 as LogicalEqualOperator,t5 as LogicalGreaterThanEqualOperator,t9 as LogicalGreaterThanOperator,t6 as LogicalLessThanEqualOperator,t8 as LogicalNotEqualOperator,rt as LogicalLessThanOperator,rs as LogicalOrOperator,ra as ObjectOperator,ro as LogicalNullishCoalescingOperator,ru as ArrayRangeOperator,rO as ConditionalTernaryOperator};
|
|
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
|
+
|
|
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",()=>n);var s=h("adJLc");class n extends Error{constructor(e,t,r){super(s.StringFormatter.format("$ : $",e,t)),this.cause=r}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
|
+
Parser Error: ${e}
|
|
6
|
+
Expression: ${this.originalExpression}
|
|
7
|
+
Position: ${t}
|
|
8
|
+
Context: ...${a}...
|
|
9
|
+
${i}
|
|
10
|
+
Current token: ${this.currentToken?`${this.currentToken.type}("${this.currentToken.value}")`:"null"}
|
|
11
|
+
Previous token: ${this.previousTokenValue?`${this.previousTokenValue.type}("${this.previousTokenValue.value}")`:"null"}
|
|
12
|
+
Parse depth: ${this.parseDepth}
|
|
13
|
+
`),new(0,s.ExpressionEvaluationException)(this.originalExpression,`${e} at position ${t}`)}parse(){if(!this.currentToken)throw this.createParserError("Empty expression");try{let e=this.parseExpression();if(this.currentToken&&this.currentToken.type!==E.TokenType.EOF)throw this.createParserError(`Unexpected token "${this.currentToken.value}" - expected end of expression`);return e}catch(e){if(e instanceof s.ExpressionEvaluationException&&!e.message.includes("Parser Error:"))throw this.createParserError(e.message);throw e}}parseExpression(){return this.parseTernary()}parseTernary(){let e=this.parseLogicalOr();if(this.matchToken(E.TokenType.QUESTION)){let t=this.parseTernary();this.expectToken(E.TokenType.COLON);let r=this.parseTernary();return i.Expression.createTernary(e,t,r)}return e}parseLogicalOr(){let e=this.parseNullishCoalescing();for(;this.matchOperator("or");){let t=this.parseNullishCoalescing();e=new(0,i.Expression)("",e,t,o.Operation.OR)}return e}parseNullishCoalescing(){let e=this.parseLogicalAnd();for(;this.matchOperator("??");){let t=this.parseLogicalAnd();e=new(0,i.Expression)("",e,t,o.Operation.NULLISH_COALESCING_OPERATOR)}return e}parseLogicalAnd(){let e=this.parseLogicalNot();for(;this.matchOperator("and");){let t=this.parseLogicalNot();e=new(0,i.Expression)("",e,t,o.Operation.AND)}return e}parseLogicalNot(){if(this.matchOperator("not")){let e=this.parseLogicalNot();return new(0,i.Expression)("",e,void 0,o.Operation.UNARY_LOGICAL_NOT)}return this.parseComparison()}parseComparison(){let e=this.parseBitwiseOr();for(;;){let t=null;if(this.matchOperator("<"))t=o.Operation.LESS_THAN;else if(this.matchOperator("<="))t=o.Operation.LESS_THAN_EQUAL;else if(this.matchOperator(">"))t=o.Operation.GREATER_THAN;else if(this.matchOperator(">="))t=o.Operation.GREATER_THAN_EQUAL;else if(this.matchOperator("="))t=o.Operation.EQUAL;else if(this.matchOperator("!="))t=o.Operation.NOT_EQUAL;else break;let r=this.parseBitwiseOr();e=new(0,i.Expression)("",e,r,t)}return e}parseBitwiseOr(){let e=this.parseBitwiseXor();for(;this.matchOperator("|");){let t=this.parseBitwiseXor();e=new(0,i.Expression)("",e,t,o.Operation.BITWISE_OR)}return e}parseBitwiseXor(){let e=this.parseBitwiseAnd();for(;this.matchOperator("^");){let t=this.parseBitwiseAnd();e=new(0,i.Expression)("",e,t,o.Operation.BITWISE_XOR)}return e}parseBitwiseAnd(){let e=this.parseShift();for(;this.matchOperator("&");){let t=this.parseShift();e=new(0,i.Expression)("",e,t,o.Operation.BITWISE_AND)}return e}parseShift(){let e=this.parseAdditive();for(;;){let t=null;if(this.matchOperator("<<"))t=o.Operation.BITWISE_LEFT_SHIFT;else if(this.matchOperator(">>"))t=o.Operation.BITWISE_RIGHT_SHIFT;else if(this.matchOperator(">>>"))t=o.Operation.BITWISE_UNSIGNED_RIGHT_SHIFT;else break;let r=this.parseAdditive();e=new(0,i.Expression)("",e,r,t)}return e}parseAdditive(){let e=this.parseMultiplicative();for(;;){let t=null;if(this.matchOperator("+"))t=o.Operation.ADDITION;else if(this.matchOperator("-"))t=o.Operation.SUBTRACTION;else break;let r=this.parseMultiplicative();e=new(0,i.Expression)("",e,r,t)}return e}parseMultiplicative(){let e=this.parseUnary();if(this.matchOperator("*")){let t=this.parseMultiplicative();return new(0,i.Expression)("",e,t,o.Operation.MULTIPLICATION)}if(this.matchOperator("/")){let t=this.parseMultiplicative();return new(0,i.Expression)("",e,t,o.Operation.DIVISION)}if(this.matchOperator("//")){let t=this.parseMultiplicative();return new(0,i.Expression)("",e,t,o.Operation.INTEGER_DIVISION)}if(this.matchOperator("%")){let t=this.parseMultiplicative();return new(0,i.Expression)("",e,t,o.Operation.MOD)}return e}parseUnary(){if(this.matchOperator("+")){let e=this.parseUnary();return new(0,i.Expression)("",e,void 0,o.Operation.UNARY_PLUS)}if(this.matchOperator("-")){let e=this.parseUnary();return new(0,i.Expression)("",e,void 0,o.Operation.UNARY_MINUS)}if(this.matchOperator("~")){let e=this.parseUnary();return new(0,i.Expression)("",e,void 0,o.Operation.UNARY_BITWISE_COMPLEMENT)}return this.parsePostfix()}parsePostfix(){let e=this.parsePrimary();for(;;)if(this.matchToken(E.TokenType.DOT)){let t=this.parsePostfixRightSide();e=new(0,i.Expression)("",e,t,o.Operation.OBJECT_OPERATOR);continue}else if(this.matchToken(E.TokenType.LEFT_BRACKET)){let t=this.parseBracketContent();this.expectToken(E.TokenType.RIGHT_BRACKET),e=new(0,i.Expression)("",e,t,o.Operation.ARRAY_OPERATOR)}else if(this.matchOperator("..")){let t=this.parsePrimary();e=new(0,i.Expression)("",e,t,o.Operation.ARRAY_RANGE_INDEX_OPERATOR)}else break;return e}parsePostfixRightSide(){let e;if(this.parseDepth++,!this.currentToken||this.currentToken.type!==E.TokenType.IDENTIFIER&&this.currentToken.type!==E.TokenType.NUMBER)throw this.parseDepth--,this.createParserError(`Expected identifier or number after dot, but found ${this.currentToken?.type||"EOF"}`);let t=this.currentToken.value;for(this.advance(),this.currentToken&&this.currentToken.type===E.TokenType.IDENTIFIER&&/^[a-zA-Z_]/.test(this.currentToken.value)&&(t+=this.currentToken.value,this.advance()),e=-1===t.indexOf("[")?i.Expression.createLeaf(t):this.parseStaticBracketIdentifier(t);this.matchToken(E.TokenType.LEFT_BRACKET);){let t=this.parseBracketContent();this.expectToken(E.TokenType.RIGHT_BRACKET),e=new(0,i.Expression)("",e,t,o.Operation.ARRAY_OPERATOR)}for(;this.matchToken(E.TokenType.DOT);){let t=this.parsePostfixRightSide();e=new(0,i.Expression)("",e,t,o.Operation.OBJECT_OPERATOR)}return this.parseDepth--,e}parseStaticBracketIdentifier(e){let t=e.indexOf("["),r=e.substring(0,t),s=i.Expression.createLeaf(r),n=e.substring(t),E=0;for(;E<n.length&&"["===n[E];){let e,t=1,r=E+1,u=!1,l="";for(;r<n.length&&t>0;){let e=n[r];u?e===l&&(0===r||"\\"!==n[r-1])&&(u=!1):'"'===e||"'"===e?(u=!0,l=e):"["===e?t++:"]"===e&&t--,r++}let p=n.substring(E+1,r-1);if(p.startsWith('"')&&p.endsWith('"')||p.startsWith("'")&&p.endsWith("'")){let t=p[0],r=p.substring(1,p.length-1);e=new(0,i.Expression)("",new(0,a.ExpressionTokenValue)(t+r+t,r),void 0,void 0)}else{let t=p.indexOf("..");if(-1!==t){let r=0===t?i.Expression.createLeaf("0"):i.Expression.createLeaf(p.substring(0,t)),s=t===p.length-2?i.Expression.createLeaf(""):i.Expression.createLeaf(p.substring(t+2));e=new(0,i.Expression)("",r,s,o.Operation.ARRAY_RANGE_INDEX_OPERATOR)}else e=i.Expression.createLeaf(p)}s=new(0,i.Expression)("",s,e,o.Operation.ARRAY_OPERATOR),E=r}return s}parseIdentifierPath(){if(!this.currentToken||this.currentToken.type!==E.TokenType.IDENTIFIER)throw this.createParserError(`Expected identifier but found ${this.currentToken?.type||"EOF"}`);let e=this.currentToken.value;return this.advance(),i.Expression.createLeaf(e)}parseBracketContent(){if(this.currentToken&&this.currentToken.type===E.TokenType.STRING){let e=this.currentToken;this.advance();let t=e.value.substring(1,e.value.length-1);return new(0,i.Expression)("",new(0,a.ExpressionTokenValue)(e.value,t),void 0,void 0)}return this.parseExpression()}parsePrimary(){if(this.matchToken(E.TokenType.NUMBER)){let e=this.previousToken();return new(0,i.Expression)("",new(0,n.ExpressionToken)(e.value),void 0,void 0)}if(this.matchToken(E.TokenType.STRING)){let e=this.previousToken(),t=e.value.substring(1,e.value.length-1);return new(0,i.Expression)("",new(0,a.ExpressionTokenValue)(e.value,t),void 0,void 0)}if(this.currentToken&&this.currentToken.type===E.TokenType.IDENTIFIER)return this.parseIdentifierPath();if(this.matchToken(E.TokenType.LEFT_PAREN)){let e=this.parseExpression();return this.expectToken(E.TokenType.RIGHT_PAREN),e}throw this.createParserError(`Unexpected token in expression - expected number, string, identifier, or '(' but found ${this.currentToken?.type||"EOF"}`)}matchToken(e){return!!this.currentToken&&this.currentToken.type===e&&(this.advance(),!0)}matchOperator(e){return!!this.currentToken&&this.currentToken.type===E.TokenType.OPERATOR&&this.currentToken.value===e&&(this.advance(),!0)}expectToken(e){if(!this.currentToken||this.currentToken.type!==e)throw this.createParserError(`Expected ${e}, but found ${this.currentToken?.type||"EOF"}${this.currentToken?` ("${this.currentToken.value}")`:""}`);let t=this.currentToken;return this.advance(),t}advance(){this.previousTokenValue=this.currentToken,this.currentToken=this.lexer.nextToken()}previousToken(){return this.previousTokenValue}}}),c("gPVFs",function(e,r){t(e.exports,"TokenType",()=>a),t(e.exports,"ExpressionLexer",()=>o);var s,n=h("b3MaL"),a=((s={}).IDENTIFIER="IDENTIFIER",s.NUMBER="NUMBER",s.STRING="STRING",s.OPERATOR="OPERATOR",s.LEFT_PAREN="LEFT_PAREN",s.RIGHT_PAREN="RIGHT_PAREN",s.LEFT_BRACKET="LEFT_BRACKET",s.RIGHT_BRACKET="RIGHT_BRACKET",s.DOT="DOT",s.QUESTION="QUESTION",s.COLON="COLON",s.WHITESPACE="WHITESPACE",s.EOF="EOF",s);class i{constructor(e,t,r,s){this.type=e,this.value=t,this.startPos=r,this.endPos=s}toString(){return`Token(${this.type}, "${this.value}", ${this.startPos}-${this.endPos})`}}class o{constructor(e){this.pos=0,this.input=e,this.length=e.length}getPosition(){return this.pos}peek(){let e=this.pos,t=this.nextToken();return this.pos=e,t}nextToken(){if(this.pos>=this.length)return new i("EOF","",this.pos,this.pos);for(;this.pos<this.length&&this.isWhitespace(this.input[this.pos]);)this.pos++;if(this.pos>=this.length)return new i("EOF","",this.pos,this.pos);let e=this.pos,t=this.input[this.pos];if('"'===t||"'"===t)return this.readStringLiteral(t,e);if(this.isDigit(t))return this.readNumber(e);switch(t){case"(":return this.pos++,new i("LEFT_PAREN","(",e,this.pos);case")":return this.pos++,new i("RIGHT_PAREN",")",e,this.pos);case"[":return this.pos++,new i("LEFT_BRACKET","[",e,this.pos);case"]":return this.pos++,new i("RIGHT_BRACKET","]",e,this.pos);case".":if(this.pos+1<this.length&&"."===this.input[this.pos+1])return this.pos+=2,new i("OPERATOR","..",e,this.pos);return this.pos++,new i("DOT",".",e,this.pos);case"?":if(this.pos+1<this.length&&"?"===this.input[this.pos+1])return this.pos+=2,new i("OPERATOR","??",e,this.pos);return this.pos++,new i("QUESTION","?",e,this.pos);case":":return this.pos++,new i("COLON",":",e,this.pos)}let r=this.readOperator(e);return r||this.readIdentifier(e)}readStringLiteral(e,t){this.pos++;let r="",s=!1;for(;this.pos<this.length;){let n=this.input[this.pos];if(s){r+=n,s=!1,this.pos++;continue}if("\\"===n){s=!0,r+=n,this.pos++;continue}if(n===e)return this.pos++,new i("STRING",e+r+e,t,this.pos);r+=n,this.pos++}throw new(0,n.ExpressionEvaluationException)(this.input,`Missing string ending marker ${e}`)}readNumber(e){let t="",r=!1;for(;this.pos<this.length;){let e=this.input[this.pos];if(this.isDigit(e))t+=e,this.pos++;else if("."===e&&!r&&this.pos+1<this.length&&this.isDigit(this.input[this.pos+1]))t+=e,r=!0,this.pos++;else break}return new i("NUMBER",t,e,this.pos)}readOperator(e){for(let t of[">>>","<<",">>","<=",">=","!=","==","//","+","-","*","/","%","=","<",">","&","|","^","~"])if(this.pos+t.length<=this.length&&this.input.substring(this.pos,this.pos+t.length)===t)return this.pos+=t.length,new i("OPERATOR",t,e,this.pos);return null}readIdentifier(e){let t="";for(;this.pos<this.length;){let e=this.input[this.pos];if("["===e)if(this.isStaticBracketContent()){t+=this.readStaticBracketContent();continue}else break;if(!this.isIdentifierChar(e))break;t+=e,this.pos++}if(0===t.length)throw new(0,n.ExpressionEvaluationException)(this.input,`Unexpected character: ${this.input[this.pos]}`);return["and","or","not"].includes(t.toLowerCase())?new i("OPERATOR",t.toLowerCase(),e,this.pos):new i("IDENTIFIER",t,e,this.pos)}isStaticBracketContent(){let e=this.pos+1;for(;e<this.length&&this.isWhitespace(this.input[e]);)e++;if(e>=this.length)return!1;let t=this.input[e];if('"'===t||"'"===t)return!0;if(this.isDigit(t)||"-"===t&&e+1<this.length&&this.isDigit(this.input[e+1])){let t=e;for("-"===this.input[t]&&t++;t<this.length&&(this.isDigit(this.input[t])||"."===this.input[t]);){if("."===this.input[t]&&t+1<this.length&&"."===this.input[t+1])return!0;t++}for(;t<this.length&&this.isWhitespace(this.input[t]);)t++;if(t<this.length&&("]"===this.input[t]||"."===this.input[t]&&t+1<this.length&&"."===this.input[t+1]))return!0}return!1}readStaticBracketContent(){let e="[";this.pos++;let t=1;for(;this.pos<this.length&&t>0;){let r=this.input[this.pos];if(e+=r,this.pos++,"["===r)t++;else if("]"===r)t--;else if('"'===r||"'"===r)for(;this.pos<this.length;){let t=this.input[this.pos];if(e+=t,this.pos++,t===r&&this.pos>1&&"\\"!==this.input[this.pos-2])break}}return e}isOperatorChar(e){return["+","-","*","/","%","=","!","<",">","&","|","?",":","(",")",";",","].includes(e)}isDigit(e){return e>="0"&&e<="9"}isWhitespace(e){return" "===e||" "===e||"\n"===e||"\r"===e}isIdentifierChar(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e>="0"&&e<="9"||"_"===e}}}),c("5HVwl",function(e,r){t(e.exports,"FunctionCallNode",()=>n);var s=h("23EBj");class n extends s.ASTNode{constructor(e,t,r,s){super("FunctionCall",s),this.namespace=e,this.name=t,this.argumentsMap=r}toJSON(){return{type:this.type,namespace:this.namespace,name:this.name,arguments:Object.fromEntries(Array.from(this.argumentsMap.entries()).map(([e,t])=>[e,t.toJSON()]))}}}}),c("3a2ZP",function(e,r){t(e.exports,"FunctionDefNode",()=>a);var s=h("kF8Gn"),n=h("23EBj");class a extends n.ASTNode{constructor(e,t,r=[],n=[],a=[],i){super("FunctionDefinition",i||new(0,s.SourceLocation)(1,1,0,0)),this.name=e,this.namespace=t,this.parameters=r,this.events=n,this.logic=a}toJSON(){return{type:this.type,name:this.name,namespace:this.namespace,parameters:this.parameters.map(e=>e.toJSON()),events:this.events.map(e=>e.toJSON()),logic:this.logic.map(e=>e.toJSON())}}}}),c("3XO8R",function(e,r){t(e.exports,"ParameterDeclNode",()=>n);var s=h("23EBj");class n extends s.ASTNode{constructor(e,t,r){super("ParameterDecl",r),this.name=e,this.schema=t}toJSON(){return{type:this.type,name:this.name,schema:this.schema.toJSON()}}}}),c("CxNmm",function(e,r){t(e.exports,"SchemaLiteralNode",()=>n);var s=h("23EBj");class n extends s.ASTNode{constructor(e,t,r){super("SchemaLiteral",r),this.schema=e,this.defaultValue=t}toJSON(){return{type:this.type,schema:this.schema.toJSON(),defaultValue:this.defaultValue?.toJSON()}}}}),c("bAVta",function(e,r){t(e.exports,"SchemaNode",()=>n);var s=h("23EBj");class n extends s.ASTNode{constructor(e,t){super("Schema",t),this.schemaSpec=e}toJSON(){return{type:this.type,schemaSpec:this.schemaSpec}}}}),c("1ndxg",function(e,r){t(e.exports,"StatementNode",()=>n);var s=h("23EBj");class n extends s.ASTNode{constructor(e,t,r=[],s=[],n=new Map,a,i=""){super("Statement",a),this.statementName=e,this.functionCall=t,this.afterSteps=r,this.executeIfSteps=s,this.nestedBlocks=n,this.comment=i}toJSON(){return{type:this.type,statementName:this.statementName,functionCall:this.functionCall.toJSON(),afterSteps:this.afterSteps,executeIfSteps:this.executeIfSteps,nestedBlocks:Object.fromEntries(Array.from(this.nestedBlocks.entries()).map(([e,t])=>[e,t.map(e=>e.toJSON())])),comment:this.comment}}}}),c("iiJWA",function(e,r){t(e.exports,"DSLParserError",()=>s);class s extends Error{constructor(e,t,r,s){super(e),this.location=t,this.expectedTokens=r,this.actualToken=s,this.name="DSLParserError",t&&(this.message=`${e} at ${t}`),r&&r.length>0&&(this.message+=`
|
|
14
|
+
Expected: ${r.join(", ")}`),s&&(this.message+=`
|
|
15
|
+
Actual: ${s.type} (${s.value})`)}}}),c("dteKq",function(e,r){t(e.exports,"ASTToJSONTransformer",()=>o),h("c1Lsl");var s=h("9sTIE"),n=h("gqFFZ"),a=h("CxNmm"),i=h("c7CBW");class o{transform(e){let t={name:e.name};e.namespace&&(t.namespace=e.namespace);let r=this.transformParameters(e.parameters);Object.keys(r).length>0&&(t.parameters=r);let s=this.transformEvents(e.events);return Object.keys(s).length>0&&(t.events=s),t.steps=this.transformSteps(e.logic),t}transformParameters(e){let t={};for(let r of e)t[r.name]={parameterName:r.name,schema:i.SchemaTransformer.transform(r.schema.schemaSpec),variableArgument:!1,type:"EXPRESSION"};return t}transformEvents(e){let t={};for(let r of e)t[r.name]={name:r.name,parameters:this.transformEventParameters(r.parameters)};return t}transformEventParameters(e){let t={};for(let r of e)t[r.name]=i.SchemaTransformer.transform(r.schema.schemaSpec);return t}transformSteps(e){let t={};for(let r of e)t[r.statementName]=this.transformStatement(r);return t}transformStatement(e){let t={statementName:e.statementName,namespace:e.functionCall.namespace,name:e.functionCall.name},r=this.transformParameterMap(e.functionCall.argumentsMap);Object.keys(r).length>0&&(t.parameterMap=r);let s=this.createDependentStatementsMap(e);Object.keys(s).length>0&&(t.dependentStatements=s);let n=this.createExecuteIfMap(e.executeIfSteps);return Object.keys(n).length>0&&(t.executeIftrue=n),e.comment&&e.comment.trim()&&(t.comment=e.comment),t}createDependentStatementsMap(e){let t={};for(let r of e.afterSteps)t[r]=!0;for(let[t,r]of e.nestedBlocks)e.statementName;return t}createExecuteIfMap(e){let t={};for(let r of e)t[r]=!0;return t}transformParameterMap(e){let t={};for(let[r,s]of e)if(!this.isEmptyArgument(s))if(t[r]={},s.isMultiValue())for(let e=0;e<s.values.length;e++){let n=this.transformArgumentValue(s.values[e],e+1);t[r][n.key]=n}else{let e=this.transformArgumentValue(s.value,1);t[r][e.key]=e}return t}isEmptyArgument(e){if(e.value instanceof n.ExpressionNode){let t=e.value.expressionText.trim();return","===t||")"===t}return!1}transformArgumentValue(e,t){let r=this.generateUUID();if(e instanceof n.ExpressionNode)return{key:r,type:"EXPRESSION",expression:e.expressionText,value:void 0,order:t};if(e instanceof s.ComplexValueNode)return{key:r,type:"VALUE",value:e.value,expression:void 0,order:t};if(e instanceof a.SchemaLiteralNode){let s=i.SchemaTransformer.transform(e.schema.schemaSpec);return e.defaultValue?{key:r,type:"VALUE",value:this.evaluateDefaultValue(e.defaultValue,s),expression:void 0,order:t}:{key:r,type:"VALUE",value:s,expression:void 0,order:t}}return{key:r,type:"VALUE",value:null,expression:void 0,order:t}}evaluateDefaultValue(e,t){let r=e.expressionText.trim();if("[]"===r)return[];if("{}"===r)return{};if("null"===r)return null;if("true"===r)return!0;if("false"===r)return!1;let s=parseFloat(r);return isNaN(s)?r.startsWith('"')&&r.endsWith('"')||r.startsWith("'")&&r.endsWith("'")?r.slice(1,-1):r:s}generateUUID(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){let t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})}flattenNestedBlocks(e){let t=[...e.logic];for(let r of e.logic)this.collectNestedStatements(r,t);e.logic=t}collectNestedStatements(e,t){for(let[,r]of e.nestedBlocks)for(let e of r)t.push(e),this.collectNestedStatements(e,t);e.nestedBlocks.clear()}}}),c("c7CBW",function(e,r){t(e.exports,"SchemaTransformer",()=>s);class s{static{this.PRIMITIVE_TYPES=new Set(["INTEGER","LONG","FLOAT","DOUBLE","STRING","BOOLEAN","NULL","ANY","OBJECT"])}static transform(e){if("object"==typeof e)return e;let t=e.trim();if(t.startsWith("ARRAY OF ")){let e=t.substring(9).trim();return{type:"ARRAY",items:this.transform(e)}}return this.PRIMITIVE_TYPES.has(t)?{type:t}:{type:"STRING"}}static toText(e){if(!e||"object"!=typeof e)return String(e);if("ARRAY"===e.type&&e.items){let t=this.toText(e.items);return`ARRAY OF ${t}`}if(e.type&&this.PRIMITIVE_TYPES.has(e.type)){let t=Object.keys(e);if(1===t.length&&"type"===t[0])return e.type}return JSON.stringify(e)}static isSimpleSchema(e){return!!e&&"object"==typeof e&&(!!(e.type&&this.PRIMITIVE_TYPES.has(e.type))&&1===Object.keys(e).length||"ARRAY"===e.type&&!!e.items&&this.isSimpleSchema(e.items))}}}),c("lQfvu",function(e,r){t(e.exports,"JSONToTextTransformer",()=>a);var s=h("2Yv2C"),n=h("c7CBW");class a{async transform(e){let t=[];if(t.push(`FUNCTION ${e.name}`),e.namespace&&"_"!==e.namespace&&t.push(`${this.indent(1)}NAMESPACE ${e.namespace}`),e.parameters&&Object.keys(e.parameters).length>0)for(let[r,s]of(t.push(`${this.indent(1)}PARAMETERS`),Object.entries(e.parameters))){let e=this.schemaToText(s.schema);t.push(`${this.indent(2)}${r} AS ${e}`)}if(e.events&&Object.keys(e.events).length>0)for(let[r,s]of(t.push(`${this.indent(1)}EVENTS`),Object.entries(e.events))){t.push(`${this.indent(2)}${r}`);let e=s.parameters;if(e&&Object.keys(e).length>0)for(let[r,s]of Object.entries(e)){let e=this.schemaToText(s);t.push(`${this.indent(3)}${r} AS ${e}`)}}t.push(`${this.indent(1)}LOGIC`);let r=await this.buildNestedStructureFromRuntime(e),s=await this.stepsToText(e.steps,r,2);return t.push(...s),t.join("\n")}static{this.STEP_REGEX_PATTERN=/Steps\.([a-zA-Z0-9_-]+)\.([a-zA-Z0-9_-]+)/g}async buildNestedStructureFromRuntime(e){let t=new Map,r=e.steps||{},s=new Set(Object.keys(r)),n=new Map;for(let[e,t]of Object.entries(r)){let r=this.extractAllDependencies(t,s);n.set(e,r)}let a=(e,r=new Set)=>{if(r.has(e))return 0;r.add(e);let s=t.get(e);return s?1+a(s.parent,r):0},i=this.topologicalSortForNesting(Array.from(n.keys()),n),o=!0;for(;o;)for(let e of(o=!1,i)){if(t.has(e))continue;let r=n.get(e);if(r&&0!==r.length)if(1===r.length){let s=r[0];t.set(e,{blockName:s.blockName,parent:s.parent}),o=!0}else{let s=r[0],n=a(s.parent);for(let e=1;e<r.length;e++){let t=r[e],i=a(t.parent);i>n&&(n=i,s=t)}t.set(e,{blockName:s.blockName,parent:s.parent}),o=!0}}for(let e of this.detectCircularDependencies(t))t.delete(e);return t}extractAllDependencies(e,t){let r=[],s=new Set,n=e=>{let n;for(a.STEP_REGEX_PATTERN.lastIndex=0;null!==(n=a.STEP_REGEX_PATTERN.exec(e));){let e=n[1],a=n[2],i=`${e}.${a}`;t.has(e)&&!s.has(i)&&(s.add(i),r.push({parent:e,blockName:a}))}};if(e.parameterMap)for(let[,t]of Object.entries(e.parameterMap))for(let[,e]of Object.entries(t))"EXPRESSION"===e.type&&e.expression&&n(e.expression),"VALUE"===e.type&&null!=e.value&&this.extractExpressionsFromValue(e.value,n);if(e.dependentStatements)for(let t of Object.keys(e.dependentStatements))!0===e.dependentStatements[t]&&n(this.decodeDots(t));if(e.executeIftrue)for(let t of Object.keys(e.executeIftrue))n(t);return r}extractExpressionsFromValue(e,t){if(null!=e){if("string"==typeof e)t(e);else if(Array.isArray(e))for(let r of e)this.extractExpressionsFromValue(r,t);else if("object"==typeof e)if(!0===e.isExpression&&"string"==typeof e.value)t(e.value);else if("EXPRESSION"===e.type&&"string"==typeof e.expression)t(e.expression);else for(let r of Object.values(e))this.extractExpressionsFromValue(r,t)}}topologicalSortForNesting(e,t){let r=new Set(e),s=new Map;for(let n of e)for(let e of(s.set(n,new Set),t.get(n)||[]))r.has(e.parent)&&s.get(n).add(e.parent);let n=[],a=new Map;for(let t of e)a.set(t,s.get(t).size);let i=[];for(let t of e)0===a.get(t)&&i.push(t);for(;i.length>0;){let e=i.shift();for(let[t,r]of(n.push(e),s))if(r.has(e)){let e=a.get(t)-1;a.set(t,e),0===e&&i.push(t)}}for(let t of e)n.includes(t)||n.push(t);return n}detectCircularDependencies(e){let t=new Set;for(let[r]of e){let s=new Set,n=r;for(;n&&e.has(n);){if(s.has(n)){for(let e of s)t.add(e);break}s.add(n),n=e.get(n)?.parent}}return t}extractStepReferences(e){let t,r=[],s=/Steps\.([a-zA-Z_][a-zA-Z0-9_]*)/g;for(;null!==(t=s.exec(e));)r.push(t[1]);return r}extractDependenciesFromParams(e){let t=[];if(!e)return t;for(let[,r]of Object.entries(e))for(let[,e]of Object.entries(r))if("EXPRESSION"===e.type&&e.expression&&t.push(...this.extractStepReferences(e.expression)),"VALUE"===e.type&&e.value){let r=JSON.stringify(e.value);t.push(...this.extractStepReferences(r))}return t}topologicalSort(e,t){let r=new Map,s=new Set(e);for(let n of e){r.set(n,new Set);let e=t[n];for(let t of Object.keys(e.dependentStatements||{})){let e=this.decodeDots(t).match(/^Steps\.([^.]+)/);if(e){let t=e[1];s.has(t)&&r.get(n).add(t)}}for(let t of this.extractDependenciesFromParams(e.parameterMap))s.has(t)&&t!==n&&r.get(n).add(t)}let n=[],a=new Map;for(let t of e)a.set(t,r.get(t).size);let i=[];for(let t of e)0===a.get(t)&&i.push(t);for(;i.length>0;){let e=i.shift();for(let[t,s]of(n.push(e),r))if(s.has(e)){let e=a.get(t)-1;a.set(t,e),0===e&&i.push(t)}}for(let t of e)n.includes(t)||n.push(t);return n}async stepsToText(e,t,r){let s=[];if(!e)return s;let n=[],a=new Map;for(let r of Object.keys(e)){let s=t.get(r);if(s&&e[s.parent]){a.has(s.parent)||a.set(s.parent,new Map);let e=a.get(s.parent);e.has(s.blockName)||e.set(s.blockName,[]),e.get(s.blockName).push(r)}else n.push(r)}let i=this.topologicalSort(n,e);for(let[,t]of a)for(let[r,s]of t){let n=this.topologicalSort(s,e);t.set(r,n)}let o=e=>({error:0,iteration:1,true:2,false:3,output:4})[e]??3,E=(t,r,n)=>{let i=this.stepToText(r,t,n);s.push(...i);let u=a.get(t);if(u)for(let t of Array.from(u.keys()).sort((e,t)=>o(e)-o(t))){let r=u.get(t);for(let a of(s.push(`${this.indent(n+1)}${t}`),r)){let t=e[a];E(a,t,n+2)}}};for(let t of i){let s=e[t];E(t,s,r)}return s}stepToText(e,t,r){let s=[],n=this.indent(r),a=e.statementName||t,i=`${e.namespace}.${e.name}(${this.argsToText(e.parameterMap)})`,o=`${n}${a}: ${i}`,E=[];for(let[t,r]of Object.entries(e.dependentStatements||{})){if(!0!==r)continue;let e=this.decodeDots(t);E.push(e)}E.length>0&&(o+=` AFTER ${E.join(", ")}`);let u=Object.keys(e.executeIftrue||{});if(u.length>0&&(o+=` IF ${u.join(", ")}`),e.comment&&e.comment.trim()){let t=e.comment.replace(/\*\//g,"*\\/");o+=` /* ${t} */`}return s.push(o),s}argsToText(e){let t=[];for(let[r,s]of Object.entries(e||{})){let e=Object.entries(s);if(0!==e.length)for(let s of e.map(([e,t])=>t).sort((e,t)=>(e.order||0)-(t.order||0))){let e=this.paramRefToText(s);t.push(`${r} = ${e}`)}}return t.join(", ")}paramRefToText(e){if("EXPRESSION"!==e.type)return this.valueToTextPreserveType(e.value);{let t=e.expression;return""===t||null==t?"``":this.expressionNeedsBackticks(t)?"`"+t.replace(/\\/g,"\\\\").replace(/`/g,"\\`")+"`":t}}expressionNeedsBackticks(e){if(!e)return!1;let t=e.trim();return!!(e.includes('"')||e.includes("'")||"true"===t||"false"===t||t.startsWith("true ")||t.startsWith("false ")||"null"===t||"undefined"===t||/^-?\d+(\.\d+)?$/.test(t)||/^-?\d+(\.\d+)?\s*[+\-*\/%]/.test(t))||"[]"===t||"{}"===t}valueToTextPreserveType(e){if(void 0===e)return"undefined";if(null===e)return"null";if("string"==typeof e)return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`;if("boolean"==typeof e)return e?"true":"false";if("number"==typeof e)return String(e);if(Array.isArray(e)){if(0===e.length)return"[]";let t=e.map(e=>this.valueToTextPreserveType(e));return`[${t.join(", ")}]`}return"object"==typeof e?s.ExpressionHandler.isExpression(e)?e.value:JSON.stringify(e,null,4):String(e)}schemaToText(e){return n.SchemaTransformer.toText(e)}indent(e){return this.indentChar.repeat(e)}decodeDots(e){return e.replace(/__d-o-t__/g,".")}constructor(){this.indentChar=" "}}}),c("2Yv2C",function(e,r){t(e.exports,"ExpressionHandler",()=>n);var s=h("9mEhX");class n{static parse(e){return new(0,s.Expression)(e)}static validate(e){try{return new(0,s.Expression)(e),!0}catch{return!1}}static isExpression(e){return e&&"object"==typeof e&&!0===e.isExpression&&"string"==typeof e.value}static extractExpressionText(e){return this.isExpression(e)?e.value:null}}}),t({},"KIRunSchemaRepository",()=>F);var T={};t(T,"AdditionalType",()=>L),t(T,"Schema",()=>b),t(T,"SchemaDetails",()=>v),t({},"Namespaces",()=>A);class A{static{this.SYSTEM="System"}static{this.SYSTEM_CTX="System.Context"}static{this.SYSTEM_LOOP="System.Loop"}static{this.SYSTEM_ARRAY="System.Array"}static{this.SYSTEM_OBJECT="System.Object"}static{this.SYSTEM_JSON="System.JSON"}static{this.MATH="System.Math"}static{this.STRING="System.String"}static{this.DATE="System.Date"}}function m(e){return null==e}t({},"ArraySchemaType",()=>g),t({},"isNullValue",()=>m);class g{constructor(e){if(!e)return;this.singleSchema=e.singleSchema?new b(e.singleSchema):void 0,this.tupleSchema=e.tupleSchema?e.tupleSchema.map(e=>new b(e)):void 0}setSingleSchema(e){return this.singleSchema=e,this}setTupleSchema(e){return this.tupleSchema=e,this}getSingleSchema(){return this.singleSchema}getTupleSchema(){return this.tupleSchema}isSingleType(){return!m(this.singleSchema)}static of(...e){return 1==e.length?new g().setSingleSchema(e[0]):new g().setTupleSchema(e)}static from(e){if(!e)return;if(Array.isArray(e))return new g().setTupleSchema(b.fromListOfSchemas(e));let t=Object.keys(e);if(-1!=t.indexOf("singleSchema"))return new g().setSingleSchema(b.from(e.singleSchema));if(-1!=t.indexOf("tupleSchema"))return new g().setTupleSchema(b.fromListOfSchemas(e.tupleSchema));let r=b.from(e);if(r)return new g().setSingleSchema(r)}}t({},"SchemaType",()=>f);var f=((s={}).INTEGER="Integer",s.LONG="Long",s.FLOAT="Float",s.DOUBLE="Double",s.STRING="String",s.OBJECT="Object",s.ARRAY="Array",s.BOOLEAN="Boolean",s.NULL="Null",s);t({},"TypeUtil",()=>d),t({},"MultipleType",()=>N),t({},"Type",()=>R);class R{}class N extends R{constructor(e){super(),e instanceof N?this.type=new Set(Array.from(e.type)):this.type=new Set(Array.from(e))}getType(){return this.type}setType(e){return this.type=e,this}getAllowedSchemaTypes(){return this.type}contains(e){return this.type?.has(e)}}t({},"SingleType",()=>S);class S extends R{constructor(e){super(),e instanceof S?this.type=e.type:this.type=e}getType(){return this.type}getAllowedSchemaTypes(){return new Set([this.type])}contains(e){return this.type==e}}class d{static of(...e){return 1==e.length?new S(e[0]):new N(new Set(e))}static from(e){return"string"==typeof e?new S(f[d.fromJSONType(e)]):Array.isArray(e)?new N(new Set(e.map(d.fromJSONType).map(e=>e).map(e=>f[e]))):void 0}static fromJSONType(e){let t=e.toUpperCase();return"NUMBER"===t?"DOUBLE":t}}let _="additionalProperty",M="additionalItems",O="enums",I="items",y="System.Schema",P="required",x="version",w="namespace";class L{constructor(e){if(!e||(this.booleanValue=e.booleanValue,!e.schemaValue))return;this.schemaValue=new b(e.schemaValue)}getBooleanValue(){return this.booleanValue}getSchemaValue(){return this.schemaValue}setBooleanValue(e){return this.booleanValue=e,this}setSchemaValue(e){return this.schemaValue=e,this}static from(e){if(m(e))return;let t=new L;if("boolean"==typeof e)t.booleanValue=e;else{let r=Object.keys(e);-1!=r.indexOf("booleanValue")?t.booleanValue=e.booleanValue:-1!=r.indexOf("schemaValue")?t.schemaValue=b.from(e.schemaValue):t.schemaValue=b.from(e)}return t}}class v{constructor(e){if(!e)return;this.preferredComponent=e.preferredComponent,e.validationMessages&&(this.validationMessages=new Map(Array.from(e.validationMessages.entries()))),e.properties&&(this.properties=new Map(Array.from(e.properties.entries()))),e.styleProperties&&(this.styleProperties=new Map(Array.from(e.styleProperties.entries()))),this.order=e.order,this.label=e.label}getPreferredComponent(){return this.preferredComponent}setPreferredComponent(e){return this.preferredComponent=e,this}getValidationMessages(){return this.validationMessages}setValidationMessages(e){return this.validationMessages=e,this}getValidationMessage(e){return this.validationMessages?.get(e)}setProperties(e){return this.properties=e,this}getProperties(){return this.properties}setStyleProperties(e){return this.styleProperties=e,this}getStyleProperties(){return this.styleProperties}getOrder(){return this.order}setOrder(e){return this.order=e,this}getLabel(){return this.label}setLabel(e){return this.label=e,this}static from(e){if(e)return new v().setPreferredComponent(e.preferredComponent).setValidationMessages(e.validationMessages?new Map(Object.entries(e.validationMessages)):void 0).setProperties(e.properties?new Map(Object.entries(e.properties)):void 0).setStyleProperties(e.styleProperties?new Map(Object.entries(e.styleProperties)):void 0).setOrder(e.order).setLabel(e.label)}}class b{static{this.NULL=new b().setNamespace(A.SYSTEM).setName("Null").setType(d.of(f.NULL)).setConstant(void 0)}static{this.TYPE_SCHEMA=new b().setType(d.of(f.STRING)).setEnums(["INTEGER","LONG","FLOAT","DOUBLE","STRING","OBJECT","ARRAY","BOOLEAN","NULL"])}static{this.SCHEMA=new b().setNamespace(A.SYSTEM).setName("Schema").setType(d.of(f.OBJECT)).setProperties(new Map([[w,b.of(w,f.STRING).setDefaultValue("_")],["name",b.ofString("name")],[x,b.of(x,f.INTEGER).setDefaultValue(1)],["ref",b.ofString("ref")],["type",new b().setAnyOf([b.TYPE_SCHEMA,b.ofArray("type",b.TYPE_SCHEMA)])],["anyOf",b.ofArray("anyOf",b.ofRef(y))],["allOf",b.ofArray("allOf",b.ofRef(y))],["oneOf",b.ofArray("oneOf",b.ofRef(y))],["not",b.ofRef(y)],["title",b.ofString("title")],["description",b.ofString("description")],["id",b.ofString("id")],["examples",b.ofAny("examples")],["defaultValue",b.ofAny("defaultValue")],["comment",b.ofString("comment")],[O,b.ofArray(O,b.ofString(O))],["constant",b.ofAny("constant")],["pattern",b.ofString("pattern")],["format",b.of("format",f.STRING).setEnums(["DATETIME","TIME","DATE","EMAIL","REGEX"])],["minLength",b.ofInteger("minLength")],["maxLength",b.ofInteger("maxLength")],["multipleOf",b.ofLong("multipleOf")],["minimum",b.ofNumber("minimum")],["maximum",b.ofNumber("maximum")],["exclusiveMinimum",b.ofNumber("exclusiveMinimum")],["exclusiveMaximum",b.ofNumber("exclusiveMaximum")],["properties",b.of("properties",f.OBJECT).setAdditionalProperties(new L().setSchemaValue(b.ofRef(y)))],["additionalProperties",new b().setName(_).setNamespace(A.SYSTEM).setAnyOf([b.ofBoolean(_),b.ofObject(_).setRef(y)]).setDefaultValue(!0)],[P,b.ofArray(P,b.ofString(P)).setDefaultValue([])],["propertyNames",b.ofRef(y)],["minProperties",b.ofInteger("minProperties")],["maxProperties",b.ofInteger("maxProperties")],["patternProperties",b.of("patternProperties",f.OBJECT).setAdditionalProperties(new L().setSchemaValue(b.ofRef(y)))],[I,new b().setName(I).setAnyOf([b.ofRef(y).setName("item"),b.ofArray("tuple",b.ofRef(y))])],["contains",b.ofRef(y)],["minContains",b.ofInteger("minContains")],["maxContains",b.ofInteger("maxContains")],["minItems",b.ofInteger("minItems")],["maxItems",b.ofInteger("maxItems")],["uniqueItems",b.ofBoolean("uniqueItems")],["additionalItems",new b().setName(M).setNamespace(A.SYSTEM).setAnyOf([b.ofBoolean(M),b.ofObject(M).setRef(y)])],["$defs",b.of("$defs",f.OBJECT).setAdditionalProperties(new L().setSchemaValue(b.ofRef(y)))],["permission",b.ofString("permission")],["details",b.ofObject("details")],["viewDetails",b.ofObject("viewDetails")]])).setRequired([])}static ofString(e){return new b().setType(d.of(f.STRING)).setName(e)}static ofInteger(e){return new b().setType(d.of(f.INTEGER)).setName(e)}static ofFloat(e){return new b().setType(d.of(f.FLOAT)).setName(e)}static ofLong(e){return new b().setType(d.of(f.LONG)).setName(e)}static ofDouble(e){return new b().setType(d.of(f.DOUBLE)).setName(e)}static ofAny(e){return new b().setType(d.of(f.INTEGER,f.LONG,f.FLOAT,f.DOUBLE,f.STRING,f.BOOLEAN,f.ARRAY,f.NULL,f.OBJECT)).setName(e)}static ofAnyNotNull(e){return new b().setType(d.of(f.INTEGER,f.LONG,f.FLOAT,f.DOUBLE,f.STRING,f.BOOLEAN,f.ARRAY,f.OBJECT)).setName(e)}static ofNumber(e){return new b().setType(d.of(f.INTEGER,f.LONG,f.FLOAT,f.DOUBLE)).setName(e)}static ofBoolean(e){return new b().setType(d.of(f.BOOLEAN)).setName(e)}static of(e,...t){return new b().setType(d.of(...t)).setName(e)}static ofObject(e){return new b().setType(d.of(f.OBJECT)).setName(e)}static ofRef(e){return new b().setRef(e)}static ofArray(e,...t){return new b().setType(d.of(f.ARRAY)).setName(e).setItems(g.of(...t))}static fromListOfSchemas(e){if(m(e)&&!Array.isArray(e))return;let t=[];for(let r of Array.from(e)){let e=b.from(r);e&&t.push(e)}return t}static fromMapOfSchemas(e){if(m(e))return;let t=new Map;return Object.entries(e).forEach(([e,r])=>{let s=b.from(r);s&&t.set(e,s)}),t}static from(e,t=!1){if(m(e))return;let r=new b;return r.namespace=e.namespace??"_",r.name=e.name,r.version=e.version??1,r.ref=e.ref,t?r.type=new S(f.STRING):r.type=d.from(e.type),r.anyOf=b.fromListOfSchemas(e.anyOf),r.allOf=b.fromListOfSchemas(e.allOf),r.oneOf=b.fromListOfSchemas(e.oneOf),r.not=b.from(e.not),r.description=e.description,r.examples=e.examples?[...e.examples]:void 0,r.defaultValue=e.defaultValue,r.comment=e.comment,r.enums=e.enums?[...e.enums]:void 0,r.constant=e.constant,r.pattern=e.pattern,r.format=e.format,r.minLength=e.minLength,r.maxLength=e.maxLength,r.multipleOf=e.multipleOf,r.minimum=e.minimum,r.maximum=e.maximum,r.exclusiveMinimum=e.exclusiveMinimum,r.exclusiveMaximum=e.exclusiveMaximum,r.properties=b.fromMapOfSchemas(e.properties),r.additionalProperties=L.from(e.additionalProperties),r.required=e.required,r.propertyNames=b.from(e.propertyNames,!0),r.minProperties=e.minProperties,r.maxProperties=e.maxProperties,r.patternProperties=b.fromMapOfSchemas(e.patternProperties),r.items=g.from(e.items),r.additionalItems=L.from(e.additionalItems),r.contains=b.from(e.contains),r.minContains=e.minContains,r.maxContains=e.maxContains,r.minItems=e.minItems,r.maxItems=e.maxItems,r.uniqueItems=e.uniqueItems,r.$defs=b.fromMapOfSchemas(e.$defs),r.permission=e.permission,r.details=e.details?v.from(e.details):void 0,r.viewDetails=e.viewDetails?v.from(e.viewDetails):void 0,r}constructor(e){if(this.namespace="_",this.version=1,!e)return;this.namespace=e.namespace,this.name=e.name,this.version=e.version,this.ref=e.ref,m(e.type)||(this.type=e.type instanceof S?new S(e.type):new N(e.type)),this.anyOf=e.anyOf?.map(e=>new b(e)),this.allOf=e.allOf?.map(e=>new b(e)),this.oneOf=e.oneOf?.map(e=>new b(e)),this.not=this.not?new b(this.not):void 0,this.description=e.description,this.examples=e.examples?JSON.parse(JSON.stringify(e.examples)):void 0,this.defaultValue=e.defaultValue?JSON.parse(JSON.stringify(e.defaultValue)):void 0,this.comment=e.comment,this.enums=e.enums?[...e.enums]:void 0,this.constant=e.constant?JSON.parse(JSON.stringify(e.constant)):void 0,this.pattern=e.pattern,this.format=e.format,this.minLength=e.minLength,this.maxLength=e.maxLength,this.multipleOf=e.multipleOf,this.minimum=e.minimum,this.maximum=e.maximum,this.exclusiveMinimum=e.exclusiveMinimum,this.exclusiveMaximum=e.exclusiveMaximum,this.properties=e.properties?new Map(Array.from(e.properties.entries()).map(e=>[e[0],new b(e[1])])):void 0,this.additionalProperties=e.additionalProperties?new L(e.additionalProperties):void 0,this.required=e.required?[...e.required]:void 0,this.propertyNames=e.propertyNames?new b(e.propertyNames):void 0,this.minProperties=e.minProperties,this.maxProperties=e.maxProperties,this.patternProperties=e.patternProperties?new Map(Array.from(e.patternProperties.entries()).map(e=>[e[0],new b(e[1])])):void 0,this.items=e.items?new g(e.items):void 0,this.contains=e.contains?new b(this.contains):void 0,this.minContains=e.minContains,this.maxContains=e.maxContains,this.minItems=e.minItems,this.maxItems=e.maxItems,this.uniqueItems=e.uniqueItems,this.additionalItems=e.additionalItems?new L(e.additionalItems):void 0,this.$defs=e.$defs?new Map(Array.from(e.$defs.entries()).map(e=>[e[0],new b(e[1])])):void 0,this.permission=e.permission,this.details=e.details,this.viewDetails=e.viewDetails}getTitle(){return this.namespace&&"_"!=this.namespace?this.namespace+"."+this.name:this.name}getFullName(){return this.namespace+"."+this.name}get$defs(){return this.$defs}set$defs(e){return this.$defs=e,this}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getVersion(){return this.version}setVersion(e){return this.version=e,this}getRef(){return this.ref}setRef(e){return this.ref=e,this}getType(){return this.type}setType(e){return this.type=e,this}getAnyOf(){return this.anyOf}setAnyOf(e){return this.anyOf=e,this}getAllOf(){return this.allOf}setAllOf(e){return this.allOf=e,this}getOneOf(){return this.oneOf}setOneOf(e){return this.oneOf=e,this}getNot(){return this.not}setNot(e){return this.not=e,this}getDescription(){return this.description}setDescription(e){return this.description=e,this}getExamples(){return this.examples}setExamples(e){return this.examples=e,this}getDefaultValue(){return this.defaultValue}setDefaultValue(e){return this.defaultValue=e,this}getComment(){return this.comment}setComment(e){return this.comment=e,this}getEnums(){return this.enums}setEnums(e){return this.enums=e,this}getConstant(){return this.constant}setConstant(e){return this.constant=e,this}getPattern(){return this.pattern}setPattern(e){return this.pattern=e,this}getFormat(){return this.format}setFormat(e){return this.format=e,this}getMinLength(){return this.minLength}setMinLength(e){return this.minLength=e,this}getMaxLength(){return this.maxLength}setMaxLength(e){return this.maxLength=e,this}getMultipleOf(){return this.multipleOf}setMultipleOf(e){return this.multipleOf=e,this}getMinimum(){return this.minimum}setMinimum(e){return this.minimum=e,this}getMaximum(){return this.maximum}setMaximum(e){return this.maximum=e,this}getExclusiveMinimum(){return this.exclusiveMinimum}setExclusiveMinimum(e){return this.exclusiveMinimum=e,this}getExclusiveMaximum(){return this.exclusiveMaximum}setExclusiveMaximum(e){return this.exclusiveMaximum=e,this}getProperties(){return this.properties}setProperties(e){return this.properties=e,this}getAdditionalProperties(){return this.additionalProperties}setAdditionalProperties(e){return this.additionalProperties=e,this}getAdditionalItems(){return this.additionalItems}setAdditionalItems(e){return this.additionalItems=e,this}getRequired(){return this.required}setRequired(e){return this.required=e,this}getPropertyNames(){return this.propertyNames}setPropertyNames(e){return this.propertyNames=e,this.propertyNames.type=new S(f.STRING),this}getMinProperties(){return this.minProperties}setMinProperties(e){return this.minProperties=e,this}getMaxProperties(){return this.maxProperties}setMaxProperties(e){return this.maxProperties=e,this}getPatternProperties(){return this.patternProperties}setPatternProperties(e){return this.patternProperties=e,this}getItems(){return this.items}setItems(e){return this.items=e,this}getContains(){return this.contains}setContains(e){return this.contains=e,this}getMinContains(){return this.minContains}setMinContains(e){return this.minContains=e,this}getMaxContains(){return this.maxContains}setMaxContains(e){return this.maxContains=e,this}getMinItems(){return this.minItems}setMinItems(e){return this.minItems=e,this}getMaxItems(){return this.maxItems}setMaxItems(e){return this.maxItems=e,this}getUniqueItems(){return this.uniqueItems}setUniqueItems(e){return this.uniqueItems=e,this}getPermission(){return this.permission}setPermission(e){return this.permission=e,this}getDetails(){return this.details}setDetails(e){return this.details=e,this}getViewDetails(){return this.viewDetails}setViewDetails(e){return this.viewDetails=e,this}}t({},"Parameter",()=>V),t({},"SchemaReferenceException",()=>D);class D extends Error{constructor(e,t,r){super(e.trim()?e+"-"+t:t),this.schemaPath=e,this.cause=r}getSchemaPath(){return this.schemaPath}getCause(){return this.cause}}t({},"ParameterType",()=>C);var C=((n={}).CONSTANT="CONSTANT",n.EXPRESSION="EXPRESSION",n);let U="value";class V{static{this.SCHEMA_NAME="Parameter"}static{this.SCHEMA=new b().setNamespace(A.SYSTEM).setName(V.SCHEMA_NAME).setProperties(new Map([["schema",b.SCHEMA],["parameterName",b.ofString("parameterName")],["variableArgument",b.of("variableArgument",f.BOOLEAN).setDefaultValue(!1)],["type",b.ofString("type").setEnums(["EXPRESSION","CONSTANT"])]]))}static{this.EXPRESSION=new b().setNamespace(A.SYSTEM).setName("ParameterExpression").setType(d.of(f.OBJECT)).setProperties(new Map([["isExpression",b.ofBoolean("isExpression").setDefaultValue(!0)],[U,b.ofAny(U)]]))}constructor(e,t){if(this.variableArgument=!1,this.type=C.EXPRESSION,e instanceof V)this.schema=new b(e.schema),this.parameterName=e.parameterName,this.variableArgument=e.variableArgument,this.type=e.type;else{if(!t)throw Error("Unknown constructor signature");this.schema=t,this.parameterName=e}}getSchema(){return this.schema}setSchema(e){return this.schema=e,this}getParameterName(){return this.parameterName}setParameterName(e){return this.parameterName=e,this}isVariableArgument(){return this.variableArgument}setVariableArgument(e){return this.variableArgument=e,this}getType(){return this.type}setType(e){return this.type=e,this}static ofEntry(e,t,r=!1,s=C.EXPRESSION){return[e,new V(e,t).setType(s).setVariableArgument(r)]}static of(e,t,r=!1,s=C.EXPRESSION){return new V(e,t).setType(s).setVariableArgument(r)}static from(e){let t=b.from(e.schema);if(!t)throw new D("","Parameter requires Schema");return new V(e.parameterName,t).setVariableArgument(!!e.variableArgument).setType(e.type??C.EXPRESSION)}toJSON(){return{parameterName:this.parameterName,schema:this.schema,variableArgument:this.variableArgument,type:this.type}}}var k={};t(k,"MapUtil",()=>$),t(k,"MapEntry",()=>G);class ${static of(e,t,r,s,n,a,i,o,E,u,l,p,h,c,T,A,g,f,R,N){let S=new Map;return m(e)||m(t)||S.set(e,t),m(r)||m(s)||S.set(r,s),m(n)||m(a)||S.set(n,a),m(i)||m(o)||S.set(i,o),m(E)||m(u)||S.set(E,u),m(l)||m(p)||S.set(l,p),m(h)||m(c)||S.set(h,c),m(T)||m(A)||S.set(T,A),m(g)||m(f)||S.set(g,f),m(R)||m(N)||S.set(R,N),S}static ofArrayEntries(...e){let t=new Map;for(let[r,s]of e)t.set(r,s);return t}static entry(e,t){return new G(e,t)}static ofEntries(...e){let t=new Map;for(let r of e)t.set(r.k,r.v);return t}static ofEntriesArray(...e){let t=new Map;for(let r=0;r<e.length;r++)t.set(e[r][0],e[r][1]);return t}}class G{constructor(e,t){this.k=e,this.v=t}}class F{constructor(){this.map=new Map([["any",b.ofAny("any").setNamespace(A.SYSTEM)],["boolean",b.ofBoolean("boolean").setNamespace(A.SYSTEM)],["double",b.ofDouble("double").setNamespace(A.SYSTEM)],["float",b.ofFloat("float").setNamespace(A.SYSTEM)],["integer",b.ofInteger("integer").setNamespace(A.SYSTEM)],["long",b.ofLong("long").setNamespace(A.SYSTEM)],["number",b.ofNumber("number").setNamespace(A.SYSTEM)],["string",b.ofString("string").setNamespace(A.SYSTEM)],["Timestamp",b.ofString("Timestamp").setNamespace(A.DATE)],["Timeunit",b.ofString("Timeunit").setNamespace(A.DATE).setEnums(["YEARS","QUARTERS","MONTHS","WEEKS","DAYS","HOURS","MINUTES","SECONDS","MILLISECONDS"])],["Duration",b.ofObject("Duration").setNamespace(A.DATE).setProperties($.ofArrayEntries(["years",b.ofNumber("years")],["quarters",b.ofNumber("quarters")],["months",b.ofNumber("months")],["weeks",b.ofNumber("weeks")],["days",b.ofNumber("days")],["hours",b.ofNumber("hours")],["minutes",b.ofNumber("minutes")],["seconds",b.ofNumber("seconds")],["milliseconds",b.ofNumber("milliseconds")])).setAdditionalItems(L.from(!1))],["TimeObject",b.ofObject("TimeObject").setNamespace(A.DATE).setProperties($.ofArrayEntries(["year",b.ofNumber("year")],["month",b.ofNumber("month")],["day",b.ofNumber("day")],["hour",b.ofNumber("hour")],["minute",b.ofNumber("minute")],["second",b.ofNumber("second")],["millisecond",b.ofNumber("millisecond")])).setAdditionalItems(L.from(!1))],[V.EXPRESSION.getName(),V.EXPRESSION],[b.NULL.getName(),b.NULL],[b.SCHEMA.getName(),b.SCHEMA]]),this.filterableNames=Array.from(this.map.values()).map(e=>e.getFullName())}async find(e,t){return A.SYSTEM!=e&&A.DATE!=e?Promise.resolve(void 0):Promise.resolve(this.map.get(t))}async filter(e){return Promise.resolve(this.filterableNames.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}function B(e){return[e.getSignature().getName(),e]}t({},"KIRunFunctionRepository",()=>s8),t({},"EventResult",()=>H),t({},"Event",()=>Y);class Y{static{this.OUTPUT="output"}static{this.ERROR="error"}static{this.ITERATION="iteration"}static{this.TRUE="true"}static{this.FALSE="false"}static{this.SCHEMA_NAME="Event"}static{this.SCHEMA=new b().setNamespace(A.SYSTEM).setName(Y.SCHEMA_NAME).setType(d.of(f.OBJECT)).setProperties(new Map([["name",b.ofString("name")],["parameters",b.ofObject("parameter").setAdditionalProperties(new L().setSchemaValue(b.SCHEMA))]]))}constructor(e,t){if(e instanceof Y)this.name=e.name,this.parameters=new Map(Array.from(e.parameters.entries()).map(e=>[e[0],new b(e[1])]));else{if(this.name=e,!t)throw Error("Unknown constructor format");this.parameters=t}}getName(){return this.name}setName(e){return this.name=e,this}getParameters(){return this.parameters}setParameters(e){return this.parameters=e,this}static outputEventMapEntry(e){return Y.eventMapEntry(Y.OUTPUT,e)}static eventMapEntry(e,t){return[e,new Y(e,t)]}static from(e){return new Y(e.name,new Map(Object.entries(e.parameters??{}).map(e=>{let t=b.from(e[1]);if(!t)throw new D("","Event expects a schema");return[e[0],t]})))}toJSON(){return{name:this.name,parameters:Object.fromEntries(this.parameters)}}}class H{constructor(e,t){this.name=e,this.result=t}getName(){return this.name}setName(e){return this.name=e,this}getResult(){return this.result}setResult(e){return this.result=e,this}static outputOf(e){return H.of(Y.OUTPUT,e)}static of(e,t){return new H(e,t)}}t({},"FunctionOutput",()=>W);var j=h("7pym4");class W{constructor(e){if(this.index=0,m(e))throw new(0,j.KIRuntimeException)("Function output is generating null");Array.isArray(e)&&e.length&&e[0]instanceof H?this.fo=e:(this.fo=[],Array.isArray(e)||(this.generator=e))}next(){if(!this.generator)return this.index<this.fo.length?this.fo[this.index++]:void 0;let e=this.generator.next();return e&&this.fo.push(e),e}allResults(){return this.fo}}t({},"FunctionSignature",()=>K);class K{static{this.SCHEMA_NAME="FunctionSignature"}static{this.SCHEMA=new b().setNamespace(A.SYSTEM).setName(K.SCHEMA_NAME).setProperties(new Map([["name",b.ofString("name")],["namespace",b.ofString("namespace")],["parameters",b.ofObject("parameters").setAdditionalProperties(new L().setSchemaValue(V.SCHEMA))],["events",b.ofObject("events").setAdditionalProperties(new L().setSchemaValue(Y.SCHEMA))]]))}constructor(e){this.namespace="_",this.parameters=new Map,this.events=new Map,e instanceof K?(this.name=e.name,this.namespace=e.namespace,this.parameters=new Map(Array.from(e.parameters.entries()).map(e=>[e[0],new V(e[1])])),this.events=new Map(Array.from(e.events.entries()).map(e=>[e[0],new Y(e[1])]))):this.name=e}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getParameters(){return this.parameters}setParameters(e){return this.parameters=e,this}getEvents(){return this.events}setEvents(e){return this.events=e,this}getFullName(){return this.namespace+"."+this.name}toJSON(){return{namespace:this.namespace,name:this.name,parameters:Object.fromEntries(this.parameters),events:Object.fromEntries(this.events)}}}t({},"AbstractFunction",()=>eR);var j=h("7pym4");t({},"SchemaValidator",()=>ef);var J=h("dAuXT"),X=h("iq1c5");t({},"SchemaUtil",()=>z);var X=h("iq1c5"),q=h("gZQ5x");t({},"SchemaValidationException",()=>Q);class Q extends Error{constructor(e,t,r=[],s){super(t+(r?r.map(e=>e.message).reduce((e,t)=>e+"\n"+t,""):"")),this.schemaPath=e,this.cause=s}getSchemaPath(){return this.schemaPath}getCause(){return this.cause}}class z{static{this.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH="Unable to retrive schema from referenced path"}static{this.CYCLIC_REFERENCE_LIMIT_COUNTER=20}static async getDefaultValue(e,t){if(e)return e.getConstant()?e.getConstant():m(e.getDefaultValue())?z.getDefaultValue(await z.getSchemaFromRef(e,t,e.getRef()),t):e.getDefaultValue()}static async hasDefaultValueOrNullSchemaType(e,t){return e?e.getConstant()||!m(e.getDefaultValue())?Promise.resolve(!0):m(e.getRef())?e.getType()?.getAllowedSchemaTypes().has(f.NULL)?Promise.resolve(!0):Promise.resolve(!1):this.hasDefaultValueOrNullSchemaType(await z.getSchemaFromRef(e,t,e.getRef()),t):Promise.resolve(!1)}static async getSchemaFromRef(e,t,r,s=0){if(++s==z.CYCLIC_REFERENCE_LIMIT_COUNTER)throw new Q(r??"","Schema has a cyclic reference");if(!e||!r||X.StringUtil.isNullOrBlank(r))return Promise.resolve(void 0);if(!r.startsWith("#")){var n=await z.resolveExternalSchema(e,t,r);n&&(e=n.getT1(),r=n.getT2())}let a=r.split("/");return 1===a.length?Promise.resolve(e):Promise.resolve(z.resolveInternalSchema(e,t,r,s,a,1))}static async resolveInternalSchema(e,t,r,s,n,a){let i=e;if(a!==n.length){for(;a<n.length;){if("$defs"===n[a]){if(++a>=n.length||!i.get$defs())throw new D(r,z.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);i=i.get$defs()?.get(n[a])}else{if(i&&(!i.getType()?.contains(f.OBJECT)||!i.getProperties()))throw new D(r,"Cannot retrievie schema from non Object type schemas");i=i.getProperties()?.get(n[a])}if(a++,!i||!X.StringUtil.isNullOrBlank(i.getRef())&&!(i=await z.getSchemaFromRef(i,t,i.getRef(),s)))throw new D(r,z.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH)}return Promise.resolve(i)}}static async resolveExternalSchema(e,t,r){if(!t)return Promise.resolve(void 0);let s=X.StringUtil.splitAtFirstOccurance(r??"","/");if(!s[0])return Promise.resolve(void 0);let n=X.StringUtil.splitAtLastOccurance(s[0],".");if(!n[0]||!n[1])return Promise.resolve(void 0);let a=await t.find(n[0],n[1]);if(!a)return Promise.resolve(void 0);if(!s[1]||""===s[1])return Promise.resolve(new(0,q.Tuple2)(a,r));if(r="#/"+s[1],!a)throw new D(r,z.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);return Promise.resolve(new(0,q.Tuple2)(a,r))}}t({},"AnyOfAllOfOneOfValidator",()=>Z);class Z{static async validate(e,t,r,s,n,a){let i=[];return t.getOneOf()&&!t.getOneOf()?await Z.oneOf(e,t,r,s,i,n,a):t.getAllOf()&&!t.getAllOf()?await Z.allOf(e,t,r,s,i,n,a):t.getAnyOf()&&!t.getAnyOf()?await Z.anyOf(e,t,r,s,i,n,a):s}static async anyOf(e,t,r,s,n,a,i){let o=!1;for(let E of t.getAnyOf()??[])try{await Z.validate(e,E,r,s,a,i),o=!0;break}catch(e){o=!1,n.push(e)}if(o)return s;throw new Q(ef.path(e),"The value don't satisfy any of the schemas.",n)}static async allOf(e,t,r,s,n,a,i){let o=0;for(let E of t.getAllOf()??[])try{await Z.validate(e,E,r,s,a,i),o++}catch(e){n.push(e)}if(o===t.getAllOf()?.length)return s;throw new Q(ef.path(e),"The value doesn't satisfy some of the schemas.",n)}static async oneOf(e,t,r,s,n,a,i){let o=0;for(let E of t.getOneOf()??[])try{await Z.validate(e,E,r,s,a,i),o++}catch(e){n.push(e)}if(1===o)return s;throw new Q(ef.path(e),0==o?"The value does not satisfy any schema":"The value satisfy more than one schema",n)}}t({},"TypeValidator",()=>eg),t({},"ArrayValidator",()=>et);class ee{static formatValue(e,t=200){if(null===e)return"null";if(void 0===e)return"undefined";let r=typeof e;if("string"===r)return`"${e}"`;if("number"===r||"boolean"===r)return String(e);try{let r=new WeakSet,s=JSON.stringify(e,(e,t)=>{if("object"==typeof t&&null!==t){if(r.has(t))return"[Circular]";r.add(t)}return t}),n=s;if(s.length>2&&(n=s.replaceAll(",",", ").replaceAll(":",": ").replaceAll(/\s+/g," ")),n.length>t)return n.substring(0,t)+"...";return n}catch(t){return`[${Object.prototype.toString.call(e)}]`}}static formatFunctionName(e,t){return e&&"undefined"!==e&&"null"!==e?`${e}.${t}`:t}static formatStatementName(e){return e&&"undefined"!==e&&"null"!==e?`'${e}'`:null}static formatSchemaDefinition(e){if(!e)return"any";let t=e.getType();if(!t)return"any";let r=t.getAllowedSchemaTypes();if(0===r.size)return"any";if(1===r.size){let t=Array.from(r)[0];return this.formatSingleSchemaType(e,t)}return Array.from(r).map(e=>e).join(" | ")}static formatSingleSchemaType(e,t){if(t===f.ARRAY){let t=e.getItems();if(t){let e=t.getSingleSchema();if(e){let t=this.formatSchemaDefinition(e);return`Array<${t}>`}let r=t.getTupleSchema();if(r&&r.length>0){let e=r.map(e=>this.formatSchemaDefinition(e)).join(", ");return`[${e}]`}}return"Array"}let r=e.getEnums();if(r&&r.length>0){let e=r.slice(0,5).map(e=>this.formatValue(e,50)).join(" | "),s=r.length>5?" | ...":"";return`${t}(${e}${s})`}return t}static buildFunctionExecutionError(e,t,r,s,n){let a=s?`'s parameter ${s}`:"",i=t?` in statement ${t}`:"",o=n?` [Expected: ${this.formatSchemaDefinition(n)}]`:"",E=r.startsWith("Error while executing the function ")?"\n":"";return`Error while executing the function ${e}${a}${i}${o}: ${E}${r}`}static formatErrorMessage(e){if(!e)return"Unknown error";if("string"==typeof e)return e;if(e.message){let t=String(e.message);return t.includes("[object Object]")?t.replace(/\[object Object\]/g,()=>this.formatValue(e)):t}return this.formatValue(e)}}class et{static async validate(e,t,r,s,n,a){if(m(s))throw new Q(ef.path(e),"Expected an array but found null");if(!Array.isArray(s))throw new Q(ef.path(e),`Expected an array but found ${ee.formatValue(s)}`);return et.checkMinMaxItems(e,t,s),await et.checkItems(e,t,r,s,n,a),et.checkUniqueItems(e,t,s),await et.checkContains(t,e,r,s),s}static async checkContains(e,t,r,s){if(m(e.getContains()))return;let n=await et.countContains(t,e,r,s,m(e.getMinContains())&&m(e.getMaxContains()));if(0===n)throw new Q(ef.path(t),"None of the items are of type contains schema");if(!m(e.getMinContains())&&e.getMinContains()>n)throw new Q(ef.path(t),"The minimum number of the items of type contains schema should be "+e.getMinContains()+" but found "+n);if(!m(e.getMaxContains())&&e.getMaxContains()<n)throw new Q(ef.path(t),"The maximum number of the items of type contains schema should be "+e.getMaxContains()+" but found "+n)}static async countContains(e,t,r,s,n){let a=0;for(let i=0;i<s.length;i++){let o=e?[...e]:[];try{if(await ef.validate(o,t.getContains(),r,s[i]),a++,n)break}catch(e){}}return a}static checkUniqueItems(e,t,r){if(t.getUniqueItems()&&t.getUniqueItems()&&new Set(r).size!==r.length)throw new Q(ef.path(e),"Items on the array are not unique")}static checkMinMaxItems(e,t,r){if(t.getMinItems()&&t.getMinItems()>r.length)throw new Q(ef.path(e),"Array should have minimum of "+t.getMinItems()+" elements");if(t.getMaxItems()&&t.getMaxItems()<r.length)throw new Q(ef.path(e),"Array can have maximum of "+t.getMaxItems()+" elements")}static async checkItems(e,t,r,s,n,a){if(!t.getItems())return;let i=t.getItems();if(i.getSingleSchema())for(let t=0;t<s.length;t++){let o=e?[...e]:[];s[t]=await ef.validate(o,i.getSingleSchema(),r,s[t],n,a)}if(i.getTupleSchema()){if(i.getTupleSchema().length!==s.length&&m(t?.getAdditionalItems()))throw new Q(ef.path(e),"Expected an array with only "+i.getTupleSchema().length+" but found "+s.length);await this.checkItemsInTupleSchema(e,r,s,i),await this.checkAdditionalItems(e,t,r,s,i)}}static async checkItemsInTupleSchema(e,t,r,s,n,a){for(let i=0;i<s.getTupleSchema()?.length;i++){let o=e?[...e]:[];r[i]=await ef.validate(o,s.getTupleSchema()[i],t,r[i],n,a)}}static async checkAdditionalItems(e,t,r,s,n){if(!m(t.getAdditionalItems())){let a=t.getAdditionalItems();if(a?.getBooleanValue()){let i=b.ofAny("item");if(a?.getBooleanValue()===!1&&s.length>n.getTupleSchema()?.length)throw new Q(ef.path(e),"No Additional Items are defined");await this.checkEachItemInAdditionalItems(e,t,r,s,n,i)}else if(a?.getSchemaValue()){let i=a.getSchemaValue();await this.checkEachItemInAdditionalItems(e,t,r,s,n,i)}}}static async checkEachItemInAdditionalItems(e,t,r,s,n,a){for(let t=n.getTupleSchema()?.length;t<s.length;t++){let n=e?[...e]:[];s[t]=await ef.validate(n,a,r,s[t])}}}t({},"BooleanValidator",()=>er);class er{static validate(e,t,r){if(m(r))throw new Q(ef.path(e),"Expected a boolean but found null");if("boolean"!=typeof r)throw new Q(ef.path(e),`Expected a boolean but found ${ee.formatValue(r)}`);return r}}t({},"NullValidator",()=>es);class es{static validate(e,t,r){if(m(r))return r;throw new Q(ef.path(e),"Expected a null but found "+r)}}t({},"NumberValidator",()=>en);class en{static validate(e,t,r,s){if(m(s))throw new Q(ef.path(t),"Expected a number but found null");if("number"!=typeof s)throw new Q(ef.path(t),`Expected a ${e} but found ${ee.formatValue(s)}`);let n=en.extractNumber(e,t,r,s);return en.checkRange(t,r,s,n),en.checkMultipleOf(t,r,s,n),s}static extractNumber(e,t,r,s){let n=s;try{(e==f.LONG||e==f.INTEGER)&&(n=Math.round(n))}catch(r){throw new Q(ef.path(t),s+" is not a number of type "+e,r)}if(m(n)||(e==f.LONG||e==f.INTEGER)&&n!=s)throw new Q(ef.path(t),s.toString()+" is not a number of type "+e);return n}static checkMultipleOf(e,t,r,s){if(t.getMultipleOf()&&s%t.getMultipleOf()!=0)throw new Q(ef.path(e),t.getDetails()?.getValidationMessage("multipleOf")??r.toString()+" is not multiple of "+t.getMultipleOf())}static checkRange(e,t,r,s){if(!m(t.getMinimum())&&0>en.numberCompare(s,t.getMinimum()))throw new Q(ef.path(e),t.getDetails()?.getValidationMessage("minimum")??r.toString()+" should be greater than or equal to "+t.getMinimum());if(!m(t.getMaximum())&&en.numberCompare(s,t.getMaximum())>0)throw new Q(ef.path(e),t.getDetails()?.getValidationMessage("maximum")??r.toString()+" should be less than or equal to "+t.getMaximum());if(!m(t.getExclusiveMinimum())&&0>=en.numberCompare(s,t.getExclusiveMinimum()))throw new Q(ef.path(e),t.getDetails()?.getValidationMessage("exclusiveMinimum")??r.toString()+" should be greater than "+t.getExclusiveMinimum());if(!m(t.getExclusiveMaximum())&&en.numberCompare(s,t.getExclusiveMaximum())>0)throw new Q(ef.path(e),t.getDetails()?.getValidationMessage("exclusiveMaximum")??r.toString()+" should be less than "+t.getExclusiveMaximum())}static numberCompare(e,t){return e-t}}t({},"ObjectValidator",()=>ea);class ea{static async validate(e,t,r,s,n,a){if(m(s))throw new Q(ef.path(e),"Expected an object but found null");if("object"!=typeof s||Array.isArray(s))throw new Q(ef.path(e),`Expected an object but found ${ee.formatValue(s)}`);let i=new Set(Object.keys(s));return ea.checkMinMaxProperties(e,t,i),t.getPropertyNames()&&await ea.checkPropertyNameSchema(e,t,r,i),t.getRequired()&&ea.checkRequired(e,t,s),t.getProperties()&&await ea.checkProperties(e,t,r,s,i,n,a),t.getPatternProperties()&&await ea.checkPatternProperties(e,t,r,s,i),t.getAdditionalProperties()&&await ea.checkAdditionalProperties(e,t,r,s,i),s}static async checkPropertyNameSchema(e,t,r,s){for(let n of Array.from(s.values()))try{await ef.validate(e,t.getPropertyNames(),r,n)}catch(t){throw new Q(ef.path(e),"Property name '"+n+"' does not fit the property schema")}}static checkRequired(e,t,r){for(let s of t.getRequired()??[])if(m(r[s]))throw new Q(ef.path(e),t.getProperties()?.get(s)?.getDetails()?.getValidationMessage("mandatory")??s+" is mandatory")}static async checkAdditionalProperties(e,t,r,s,n){let a=t.getAdditionalProperties();if(a.getSchemaValue())for(let t of Array.from(n.values())){let n=e?[...e]:[];s[t]=await ef.validate(n,a.getSchemaValue(),r,s[t])}else if(!1===a.getBooleanValue()&&n.size)throw new Q(ef.path(e),Array.from(n)+" is/are additional properties which are not allowed.")}static async checkPatternProperties(e,t,r,s,n){let a=new Map;for(let e of Array.from(t.getPatternProperties().keys()))a.set(e,new RegExp(e));for(let i of Array.from(n.values())){let o=e?[...e]:[];for(let e of Array.from(a.entries()))if(e[1].test(i)){s[i]=await ef.validate(o,t.getPatternProperties().get(e[0]),r,s[i]),n.delete(i);break}}}static async checkProperties(e,t,r,s,n,a,i){for(let o of Array.from(t.getProperties())){let t=s[o[0]];if(!s.hasOwnProperty(o[0])&&m(t)&&m(await z.getDefaultValue(o[1],r)))continue;let E=e?[...e]:[];s[o[0]]=await ef.validate(E,o[1],r,t,a,i),n.delete(o[0])}}static checkMinMaxProperties(e,t,r){if(t.getMinProperties()&&r.size<t.getMinProperties())throw new Q(ef.path(e),"Object should have minimum of "+t.getMinProperties()+" properties");if(t.getMaxProperties()&&r.size>t.getMaxProperties())throw new Q(ef.path(e),"Object can have maximum of "+t.getMaxProperties()+" properties")}}t({},"StringValidator",()=>eo),t({},"StringFormat",()=>ei);var ei=((a={}).DATETIME="DATETIME",a.TIME="TIME",a.DATE="DATE",a.EMAIL="EMAIL",a.REGEX="REGEX",a);class eo{static{this.TIME=/^([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?([+-][01][0-9]:[0-5][0-9])?$/}static{this.DATE=/^[0-9]{4,4}-([0][0-9]|[1][0-2])-(0[1-9]|[1-2][1-9]|3[01])$/}static{this.DATETIME=/^[0-9]{4,4}-([0][0-9]|[1][0-2])-(0[1-9]|[1-2][1-9]|3[01])T([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?([+-][01][0-9]:[0-5][0-9])?$/}static{this.EMAIL=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/}static validate(e,t,r){if(m(r)||"string"!=typeof r)throw new Q(ef.path(e),`Expected a string but found ${ee.formatValue(r)}`);t.getFormat()==ei.TIME?eo.patternMatcher(e,t,r,eo.TIME,"time pattern"):t.getFormat()==ei.DATE?eo.patternMatcher(e,t,r,eo.DATE,"date pattern"):t.getFormat()==ei.DATETIME?eo.patternMatcher(e,t,r,eo.DATETIME,"date time pattern"):t.getFormat()==ei.EMAIL?eo.patternMatcher(e,t,r,eo.EMAIL,"email pattern"):t.getPattern()&&eo.patternMatcher(e,t,r,new RegExp(t.getPattern()),"pattern "+t.getPattern());let s=r.length;if(t.getMinLength()&&s<t.getMinLength())throw new Q(ef.path(e),t.getDetails()?.getValidationMessage("minLength")??"Expected a minimum of "+t.getMinLength()+" characters");if(t.getMaxLength()&&s>t.getMaxLength())throw new Q(ef.path(e),t.getDetails()?.getValidationMessage("maxLength")??"Expected a maximum of "+t.getMaxLength()+" characters");return r}static patternMatcher(e,t,r,s,n){if(!s.test(r))throw new Q(ef.path(e),t.getDetails()?.getValidationMessage("pattern")??r.toString()+" is not matched with the "+n)}}var eE=((i={}).STRICT="STRICT",i.LENIENT="LENIENT",i.USE_DEFAULT="USE_DEFAULT",i.SKIP="SKIP",i);class eu extends Error{constructor(e,t,r,s,n=[],a){super(r+(n?n.map(e=>e.message).reduce((e,t)=>e+"\n"+t,""):"")),this.schemaPath=e,this.source=t??null,this.mode=s??null,this.cause=a}getSchemaPath(){return this.schemaPath}getSource(){return this.source??null}getMode(){return this.mode??null}getCause(){return this.cause}}class el{static handleUnConvertibleValue(e,t,r,s){return this.handleUnConvertibleValueWithDefault(e,t,r,null,s)}static handleUnConvertibleValueWithDefault(e,t,r,s,n){switch(null===t&&(t=eE.STRICT),t){case eE.STRICT:throw new eu(ef.path(e),r,n,t);case eE.LENIENT:return null;case eE.USE_DEFAULT:return s;case eE.SKIP:return r;default:throw new eu(ef.path(e),r,"Invalid conversion mode")}}}var ep=h("adJLc");class eh{static convert(e,t,r,s){if(m(s))return el.handleUnConvertibleValueWithDefault(e,r,s,this.getDefault(t),"Expected a string but found null");let n=s??("object"==typeof s?JSON.stringify(s):String(s));return this.getConvertedString(n,r)}static getConvertedString(e,t){return t===eE.STRICT?e.toString():e.trim()}static getDefault(e){return e.getDefaultValue()??null}}class ec{static convert(e,t,r,s,n){if(m(n))return el.handleUnConvertibleValueWithDefault(e,s,n,this.getDefault(r),"Expected a number but found null");if("object"==typeof n||"boolean"==typeof n||Array.isArray(n)||"string"==typeof n&&isNaN(n=Number(n)))return el.handleUnConvertibleValueWithDefault(e,s,n,this.getDefault(r),n+" is not a "+t);let a=this.extractNumber(t,n,s);return null===a?el.handleUnConvertibleValueWithDefault(e,s,n,this.getDefault(r),n+" is not a "+t):a}static extractNumber(e,t,r){if("number"!=typeof t)return null;switch(e){case f.INTEGER:return this.isInteger(t,r)?Math.floor(t):null;case f.LONG:return this.isLong(t,r)?Math.floor(t):null;case f.DOUBLE:return t;case f.FLOAT:return this.isFloat(t,r)?t:null;default:return null}}static isInteger(e,t){return t!==eE.STRICT?"number"==typeof e:Number.isInteger(e)}static isLong(e,t){return t!==eE.STRICT?"number"==typeof e:Number.isInteger(e)&&e>=Number.MIN_SAFE_INTEGER&&e<=Number.MAX_SAFE_INTEGER}static isFloat(e,t){return t!==eE.STRICT?"number"==typeof e:e>=-Number.MAX_VALUE&&e<=Number.MAX_VALUE}static getDefault(e){return"number"==typeof e.getDefaultValue()?Number(e.getDefaultValue):null}}class eT{static{this.BOOLEAN_MAP={true:!0,t:!0,yes:!0,y:!0,1:!0,false:!1,f:!1,no:!1,n:!1,0:!1}}static convert(e,t,r,s){return null==s?el.handleUnConvertibleValueWithDefault(e,r,s,this.getDefault(t),"Expected a boolean but found null"):this.getBooleanPrimitive(s)??el.handleUnConvertibleValueWithDefault(e,r,s,this.getDefault(t),"Unable to convert to boolean")}static getBooleanPrimitive(e){return"boolean"==typeof e?e:"string"==typeof e?this.handleStringValue(e):"number"==typeof e?this.handleNumberValue(e):null}static handleStringValue(e){let t=e.toLowerCase().trim();return eT.BOOLEAN_MAP[t]??null}static handleNumberValue(e){return 0===e||1===e?1===e:null}static getDefault(e){return e.getDefaultValue()??!1}}class eA{static convert(e,t,r,s){return m(s)?s:"string"==typeof s&&"null"===s.toLowerCase()?null:el.handleUnConvertibleValueWithDefault(e,r,s,null,"Unable to convert to null")}}class em{static handleValidationError(e,t,r,s,n){switch(t=t??eE.STRICT){case eE.STRICT:throw new Q(ef.path(e),n);case eE.LENIENT:return null;case eE.USE_DEFAULT:return s;case eE.SKIP:return r}}}class eg{static async validate(e,t,r,s,n,a,i){return t==f.OBJECT?await ea.validate(e,r,s,n,a,i):t==f.ARRAY?await et.validate(e,r,s,n,a,i):this.handleTypeValidationAndConversion(e,t,r,n,a,i)}static async handleTypeValidationAndConversion(e,t,r,s,n,a){let i=n?this.convertElement(e,t,r,s,a??eE.STRICT):s;return await this.validateElement(e,t,r,i,a??eE.STRICT)}static convertElement(e,t,r,s,n){if(m(t))return el.handleUnConvertibleValueWithDefault(e,n,s,r.getDefaultValue()??null,ep.StringFormatter.format("$ is not a valid type for conversion.",t));switch(t){case f.STRING:return eh.convert(e,r,n,s);case f.INTEGER:case f.LONG:case f.DOUBLE:case f.FLOAT:return ec.convert(e,t,r,n,s);case f.BOOLEAN:return eT.convert(e,r,n,s);case f.NULL:return eA.convert(e,r,n,s);default:return el.handleUnConvertibleValueWithDefault(e,n,s,r.getDefaultValue()??null,ep.StringFormatter.format("$ is not a valid type for conversion.",t))}}static validateElement(e,t,r,s,n){if(m(t))return em.handleValidationError(e,n,s,r.getDefaultValue()??null,ep.StringFormatter.format("$ is not a valid type.",t));switch(t){case f.STRING:return eo.validate(e,r,s);case f.INTEGER:case f.LONG:case f.DOUBLE:case f.FLOAT:return en.validate(t,e,r,s);case f.BOOLEAN:return er.validate(e,r,s);case f.NULL:return es.validate(e,r,s);default:return em.handleValidationError(e,n,s,r.getDefaultValue()??null,ep.StringFormatter.format("$ is not a valid type.",t))}}}class ef{static{this.ORDER={[f.OBJECT]:0,[f.ARRAY]:1,[f.DOUBLE]:2,[f.FLOAT]:3,[f.LONG]:4,[f.INTEGER]:5,[f.STRING]:6,[f.BOOLEAN]:7,[f.NULL]:8}}static path(e){return e?e.map(e=>e.getTitle()??"").filter(e=>!!e).reduce((e,t,r)=>e+(0===r?"":".")+t,""):""}static async validate(e,t,r,s,n,a){if(!t)throw new Q(ef.path(e),"No schema found to validate");if(e||(e=[]),e.push(t),m(s)&&!m(t.getDefaultValue()))return JSON.parse(JSON.stringify(t.getDefaultValue()));if(!m(t.getConstant()))return ef.constantValidation(e,t,s);if(t.getEnums()?.length)return ef.enumCheck(e,t,s);if(t.getFormat()&&m(t.getType()))throw new Q(this.path(e),"Type is missing in schema for declared "+t.getFormat()?.toString()+" format.");if(!0===n&&m(t.getType()))throw new Q(this.path(e),"Type is missing in schema for declared "+a);if(t.getType()&&(s=await ef.typeValidation(e,t,r,s,n,a)),!X.StringUtil.isNullOrBlank(t.getRef()))return await ef.validate(e,await z.getSchemaFromRef(e[0],r,t.getRef()),r,s,n,a);if((t.getOneOf()||t.getAllOf()||t.getAnyOf())&&(s=await Z.validate(e,t,r,s,n,a)),t.getNot()){let i;try{await ef.validate(e,t.getNot(),r,s,n,a),i=!0}catch(e){i=!1}if(i)throw new Q(ef.path(e),"Schema validated value in not condition.")}return s}static constantValidation(e,t,r){if(!(0,J.deepEqual)(t.getConstant(),r))throw new Q(ef.path(e),"Expecting a constant value : "+r);return r}static enumCheck(e,t,r){let s=!1;for(let e of t.getEnums()??[])if(e===r){s=!0;break}if(s)return r;throw new Q(ef.path(e),"Value is not one of "+t.getEnums())}static async typeValidation(e,t,r,s,n,a){let i=Array.from(t.getType()?.getAllowedSchemaTypes()?.values()??[]).sort((e,t)=>(this.ORDER[e]??1/0)-(this.ORDER[t]??1/0)),o=[];for(let E of i)try{return await eg.validate(e,E,t,r,s,n,a)}catch(e){o.push(e)}if(1==o.length)throw new Q(ef.path(e),o[0].message);throw new Q(ef.path(e),"Value "+JSON.stringify(s)+" is not of valid type(s)",o)}}var q=h("gZQ5x");class eR{async validateArguments(e,t,r){let s=new Map;for(let n of Array.from(this.getSignature().getParameters().entries())){let a=n[1];try{let r=await this.validateArgument(e,t,n,a);s.set(r.getT1(),r.getT2())}catch(i){let e=this.getSignature(),t=ee.formatFunctionName(e.getNamespace(),e.getName()),s=ee.formatStatementName(r?.getStatement().getStatementName()),n=ee.formatErrorMessage(i);throw new(0,j.KIRuntimeException)(ee.buildFunctionExecutionError(t,s,n,a.getParameterName(),a.getSchema()))}}return s}async validateArgument(e,t,r,s){let n,a=r[0],i=e.get(r[0]);if(m(i)&&!s.isVariableArgument())return new(0,q.Tuple2)(a,await ef.validate(void 0,s.getSchema(),t,void 0));if(!s?.isVariableArgument())return new(0,q.Tuple2)(a,await ef.validate(void 0,s.getSchema(),t,i));Array.isArray(i)?n=i:(n=[],m(i)?m(s.getSchema().getDefaultValue())||n.push(s.getSchema().getDefaultValue()):n.push(i));for(let e=0;e<n.length;e++)n[e]=await ef.validate(void 0,s.getSchema(),t,n[e]);return new(0,q.Tuple2)(a,n)}async execute(e){let t=await this.validateArguments(e.getArguments()??new Map,e.getSchemaRepository(),e.getStatementExecution());e.setArguments(t);try{return await this.internalExecute(e)}catch(a){let t=this.getSignature(),r=ee.formatFunctionName(t.getNamespace(),t.getName()),s=ee.formatStatementName(e.getStatementExecution()?.getStatement().getStatementName()),n=ee.formatErrorMessage(a);throw new(0,j.KIRuntimeException)(ee.buildFunctionExecutionError(r,s,n))}}getProbableEventSignature(e){return this.getSignature().getEvents()}}class eN extends eR{static{this.EVENT_INDEX_NAME="index"}static{this.EVENT_RESULT_NAME="result"}static{this.EVENT_INDEX=new Y(Y.OUTPUT,$.of(eN.EVENT_INDEX_NAME,b.ofInteger(eN.EVENT_INDEX_NAME)))}static{this.EVENT_RESULT_INTEGER=new Y(Y.OUTPUT,$.of(eN.EVENT_RESULT_NAME,b.ofInteger(eN.EVENT_RESULT_NAME)))}static{this.EVENT_RESULT_BOOLEAN=new Y(Y.OUTPUT,$.of(eN.EVENT_RESULT_NAME,b.ofBoolean(eN.EVENT_RESULT_NAME)))}static{this.EVENT_RESULT_ARRAY=new Y(Y.OUTPUT,$.of(eN.EVENT_RESULT_NAME,b.ofArray(eN.EVENT_RESULT_NAME,b.ofAny(eN.EVENT_RESULT_NAME))))}static{this.EVENT_RESULT_EMPTY=new Y(Y.OUTPUT,$.of())}static{this.EVENT_RESULT_ANY=new Y(Y.OUTPUT,$.of(this.EVENT_RESULT_NAME,b.ofAny(this.EVENT_RESULT_NAME)))}static{this.EVENT_RESULT_OBJECT=new Y(Y.OUTPUT,$.of(this.EVENT_RESULT_NAME,b.ofObject(this.EVENT_RESULT_NAME)))}static{this.PARAMETER_INT_LENGTH=V.of("length",b.ofInteger("length").setDefaultValue(-1))}static{this.PARAMETER_ARRAY_FIND=V.of("find",b.ofArray("eachFind",b.ofAny("eachFind")))}static{this.PARAMETER_INT_SOURCE_FROM=V.of("srcFrom",b.ofInteger("srcFrom").setDefaultValue(0).setMinimum(0))}static{this.PARAMETER_INT_SECOND_SOURCE_FROM=V.of("secondSrcFrom",b.ofInteger("secondSrcFrom").setDefaultValue(0))}static{this.PARAMETER_INT_FIND_FROM=V.of("findFrom",b.ofInteger("findFrom").setDefaultValue(0))}static{this.PARAMETER_INT_OFFSET=V.of("offset",b.ofInteger("offset").setDefaultValue(0))}static{this.PARAMETER_ROTATE_LENGTH=V.of("rotateLength",b.ofInteger("rotateLength").setDefaultValue(1).setMinimum(1))}static{this.PARAMETER_BOOLEAN_ASCENDING=V.of("ascending",b.ofBoolean("ascending").setDefaultValue(!0))}static{this.PARAMETER_KEY_PATH=V.of("keyPath",b.ofString("keyPath").setDefaultValue(""))}static{this.PARAMETER_FIND_PRIMITIVE=V.of("findPrimitive",b.of("findPrimitive",f.STRING,f.DOUBLE,f.FLOAT,f.INTEGER,f.LONG))}static{this.PARAMETER_ARRAY_SOURCE=V.of("source",b.ofArray("eachSource",b.ofAny("eachSource")))}static{this.PARAMETER_ARRAY_SECOND_SOURCE=V.of("secondSource",b.ofArray("eachSecondSource",b.ofAny("eachSecondSource")))}static{this.PARAMETER_ARRAY_SOURCE_PRIMITIVE=V.of("source",b.ofArray("eachSource",new b().setName("eachSource").setType(d.of(f.STRING,f.NULL,f.INTEGER,f.FLOAT,f.DOUBLE,f.LONG))))}static{this.PARAMETER_BOOLEAN_DEEP_COPY=V.of("deepCopy",b.ofBoolean("deepCopy").setDefaultValue(!0))}static{this.PARAMETER_ANY=V.of("element",b.ofAny("element"))}static{this.PARAMETER_ANY_ELEMENT_OBJECT=V.of("elementObject",b.ofAny("elementObject"))}static{this.PARAMETER_ANY_VAR_ARGS=V.of("element",b.ofAny("element")).setVariableArgument(!0)}static{this.PARAMETER_ARRAY_RESULT=V.of(eN.EVENT_RESULT_NAME,b.ofArray("eachResult",b.ofAny("eachResult")))}constructor(e,t,r){super();let s=new Map;for(let e of t)s.set(e.getParameterName(),e);this.signature=new K(e).setNamespace(A.SYSTEM_ARRAY).setParameters(s).setEvents($.of(r.getName(),r))}getSignature(){return this.signature}}class eS extends eN{constructor(){super("Concatenate",[eN.PARAMETER_ARRAY_SOURCE,eN.PARAMETER_ARRAY_SECOND_SOURCE],eN.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eN.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eN.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName());return new W([H.outputOf(new Map([[eN.EVENT_RESULT_NAME,[...t,...r]]]))])}}class ed extends eN{constructor(){super("AddFirst",[eN.PARAMETER_ARRAY_SOURCE,eN.PARAMETER_ANY],eN.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eN.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eN.PARAMETER_ANY.getParameterName());if(0==(t=[...t]).length)return t.push(r),new W([H.outputOf(new Map([]))]);t.push(r);let s=t.length-1;for(;s>0;){let e=t[s-1];t[s-1]=t[s],t[s--]=e}return new W([H.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))])}}let e_="keyName";class eM extends eN{constructor(){super("ArrayToArrayOfObjects",[eN.PARAMETER_ARRAY_SOURCE,V.of(e_,b.ofString(e_),!0)],eN.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eM.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e_);if(!t?.length)return new W([H.outputOf(new Map([[eN.EVENT_RESULT_NAME,[]]]))]);let s=t.map(e=>{let t={};if(Array.isArray(e))if(r.length)r.forEach((r,s)=>{t[r]=e[s]});else for(let r=0;r<e.length;r++)t[`value${r+1}`]=e[r];else t[r.length?r[0]:"value"]=e;return t});return new W([H.outputOf(new Map([[eN.EVENT_RESULT_NAME,s]]))])}}var j=h("7pym4");t({},"PrimitiveUtil",()=>eI),t({},"ExecutionException",()=>eO);class eO extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}var ep=h("adJLc"),q=h("gZQ5x");class eI{static findPrimitiveNullAsBoolean(e){if(m(e))return new(0,q.Tuple2)(f.BOOLEAN,!1);let t=typeof e;if("object"===t)throw new eO(ep.StringFormatter.format("$ is not a primitive type",e));return"boolean"===t?new(0,q.Tuple2)(f.BOOLEAN,e):"string"===t?new(0,q.Tuple2)(f.STRING,e):eI.findPrimitiveNumberType(e)}static findPrimitive(e){if(m(e))return new(0,q.Tuple2)(f.NULL,void 0);let t=typeof e;if("object"===t)throw new eO(ep.StringFormatter.format("$ is not a primitive type",e));return"boolean"===t?new(0,q.Tuple2)(f.BOOLEAN,e):"string"===t?new(0,q.Tuple2)(f.STRING,e):eI.findPrimitiveNumberType(e)}static findPrimitiveNumberType(e){if(m(e)||Array.isArray(e)||"object"==typeof e)throw new eO(ep.StringFormatter.format("Unable to convert $ to a number.",e));try{if(Number.isInteger(e))return new(0,q.Tuple2)(f.LONG,e);return new(0,q.Tuple2)(f.DOUBLE,e)}catch(t){throw new eO(ep.StringFormatter.format("Unable to convert $ to a number.",e),t)}}static compare(e,t){if(e==t)return 0;if(m(e)||m(t))return m(e)?-1:1;if(Array.isArray(e)||Array.isArray(t)){if(Array.isArray(e)&&Array.isArray(t)){if(e.length!=t.length)return e.length-t.length;for(let r=0;r<e.length;r++){let s=this.compare(e[r],t[r]);if(0!=s)return s}return 0}return Array.isArray(e)?-1:1}let r=typeof e,s=typeof t;return"object"===r||"object"===s?("object"===r&&"object"===s&&Object.keys(e).forEach(r=>{let s=this.compare(e[r],t[r]);if(0!=s)return s}),"object"===r?-1:1):this.comparePrimitive(e,t)}static comparePrimitive(e,t){return m(e)||m(t)?m(e)&&m(t)?0:m(e)?-1:1:e==t?0:"boolean"==typeof e||"boolean"==typeof t?e?-1:1:"string"==typeof e||"string"==typeof t?e+""<t+""?-1:1:"number"==typeof e||"number"==typeof t?e-t:0}static baseNumberType(e){return Number.isInteger(e)?f.LONG:f.DOUBLE}static toPrimitiveType(e){return e}}class ey extends eN{constructor(){super("BinarySearch",[ey.PARAMETER_ARRAY_SOURCE_PRIMITIVE,ey.PARAMETER_INT_SOURCE_FROM,ey.PARAMETER_FIND_PRIMITIVE,ey.PARAMETER_INT_LENGTH],ey.EVENT_INDEX)}async internalExecute(e){let t=e?.getArguments()?.get(ey.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ey.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(ey.PARAMETER_FIND_PRIMITIVE.getParameterName()),n=e?.getArguments()?.get(ey.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length||r<0||r>t.length)throw new(0,j.KIRuntimeException)("Search source array cannot be empty");if(-1==n&&(n=t.length-r),(n=r+n)>t.length)throw new(0,j.KIRuntimeException)("End point for array cannot be more than the size of the source array");let a=-1;for(;r<=n;){let e=Math.floor((r+n)/2);if(0==eI.compare(t[e],s)){a=e;break}eI.compare(t[e],s)>0?n=e-1:r=e+1}return new W([H.outputOf(new Map([[ey.EVENT_INDEX_NAME,a]]))])}}var j=h("7pym4");t({},"ArrayUtil",()=>eP);class eP{static removeAListFrom(e,t){if(!t||!e||!e.length||!t.length)return;let r=new Set(t);for(let t=0;t<e.length;t++)r.has(e[t])&&(e.splice(t,1),t--)}static of(...e){let t=Array(e.length);for(let r=0;r<e.length;r++)t[r]=e[r];return t}}var ep=h("adJLc");class ex extends eN{constructor(){super("Compare",eP.of(ex.PARAMETER_ARRAY_SOURCE,ex.PARAMETER_INT_SOURCE_FROM,ex.PARAMETER_ARRAY_FIND,ex.PARAMETER_INT_FIND_FROM,ex.PARAMETER_INT_LENGTH),ex.EVENT_RESULT_INTEGER)}async internalExecute(e){var t=e?.getArguments()?.get(ex.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ex.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(ex.PARAMETER_ARRAY_FIND.getParameterName()),n=e?.getArguments()?.get(ex.PARAMETER_INT_FIND_FROM.getParameterName()),a=e?.getArguments()?.get(ex.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new(0,j.KIRuntimeException)("Compare source array cannot be empty");if(0==s.length)throw new(0,j.KIRuntimeException)("Compare find array cannot be empty");if(-1==a&&(a=t.length-r),r+a>t.length)throw new(0,j.KIRuntimeException)(ep.StringFormatter.format("Source array size $ is less than comparing size $",t.length,r+a));if(n+a>s.length)throw new(0,j.KIRuntimeException)(ep.StringFormatter.format("Find array size $ is less than comparing size $",s.length,n+a));return new W(eP.of(H.outputOf($.of(ex.EVENT_RESULT_NAME,this.compare(t,r,r+a,s,n,n+a)))))}compare(e,t,r,s,n,a){if(r<t){let e=t;t=r,r=e}if(a<n){let e=n;n=a,a=e}if(r-t!=a-n)throw new(0,j.KIRuntimeException)(ep.StringFormatter.format("Cannot compare uneven arrays from $ to $ in source array with $ to $ in find array",r,t,a,n));for(let a=t,i=n;a<r;a++,i++){let t=1;if(m(e[a])||m(s[i])){let r=m(e[a]);r==m(s[i])?t=0:r&&(t=-1)}else{let r=typeof e[a],n=typeof s[i];if("object"===r||"object"===n)t=1;else if("string"===r||"string"===n){let r=""+e[a],n=""+s[i];r===n?t=0:r<n&&(t=-1)}else"boolean"===r||"boolean"===n?t=+(r!=n):"number"===r&&"number"===n&&(t=e[a]-s[i])}if(0!=t)return t}return 0}}var j=h("7pym4");function ew(e){return e?"function"==typeof globalThis.structuredClone?globalThis.structuredClone(e):JSON.parse(JSON.stringify(e)):e}t({},"duplicate",()=>ew);var ep=h("adJLc");class eL extends eN{constructor(){super("Copy",[eL.PARAMETER_ARRAY_SOURCE,eL.PARAMETER_INT_SOURCE_FROM,eL.PARAMETER_INT_LENGTH,eL.PARAMETER_BOOLEAN_DEEP_COPY],eL.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(eL.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eL.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eL.PARAMETER_INT_LENGTH.getParameterName());if(-1==s&&(s=t.length-r),r+s>t.length)throw new(0,j.KIRuntimeException)(ep.StringFormatter.format("Array has no elements from $ to $ as the array size is $",r,r+s,t.length));var n=e?.getArguments()?.get(eL.PARAMETER_BOOLEAN_DEEP_COPY.getParameterName());let a=Array(s);for(let e=r;e<r+s;e++)m(t[e])||(a[e-r]=n?ew(t[e]):t[e]);return new W([H.outputOf($.of(eL.EVENT_RESULT_NAME,a))])}}var j=h("7pym4");class ev extends eN{constructor(){super("Delete",[eN.PARAMETER_ARRAY_SOURCE,eN.PARAMETER_ANY_VAR_ARGS],eN.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(ev.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ev.PARAMETER_ANY_VAR_ARGS.getParameterName());if(null==r)throw new(0,j.KIRuntimeException)("The deletable var args are empty. So cannot be proceeded further.");if(0==t.length||0==r.length)throw new(0,j.KIRuntimeException)("Expected a source or deletable for an array but not found any");let s=new Set;for(let e=t.length-1;e>=0;e--)for(let n=0;n<r.length;n++)s.has(e)||0!=eI.compare(t[e],r[n])||s.add(t[e]);return new W([H.outputOf(new Map([[eN.EVENT_RESULT_NAME,t.filter(e=>!s.has(e))]]))])}}var j=h("7pym4");class eb extends eN{constructor(){super("DeleteFirst",[eb.PARAMETER_ARRAY_SOURCE],eb.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eb.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new(0,j.KIRuntimeException)("Given source array is empty");return(t=[...t]).shift(),new W([H.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))])}}var j=h("7pym4");class eD extends eN{constructor(){super("DeleteFrom",[eD.PARAMETER_ARRAY_SOURCE,eD.PARAMETER_INT_SOURCE_FROM,eD.PARAMETER_INT_LENGTH],eD.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eD.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eD.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eD.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new(0,j.KIRuntimeException)("There are no elements to be deleted");if(r>=(t=[...t]).length||r<0)throw new(0,j.KIRuntimeException)("The int source for the array should be in between 0 and length of the array ");if(-1==s&&(s=t.length-r),r+s>t.length)throw new(0,j.KIRuntimeException)("Requested length to be deleted is more than the size of array ");return t.splice(r,s),new W([H.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))])}}var j=h("7pym4");class eC extends eN{constructor(){super("DeleteLast",[eC.PARAMETER_ARRAY_SOURCE],eC.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eC.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new(0,j.KIRuntimeException)("Given source array is empty");return(t=[...t]).pop(),new W([H.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))])}}var j=h("7pym4");class eU extends eN{constructor(){super("Disjoint",[eU.PARAMETER_ARRAY_SOURCE,eU.PARAMETER_INT_SOURCE_FROM,eU.PARAMETER_ARRAY_SECOND_SOURCE,eU.PARAMETER_INT_SECOND_SOURCE_FROM,eU.PARAMETER_INT_LENGTH],eU.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eU.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eU.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eU.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(eU.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(eU.PARAMETER_INT_LENGTH.getParameterName());if(-1==a&&(a=t.length<=s.length?t.length-r:s.length-n),a>t.length||a>s.length||r+a>t.length||n+a>s.length)throw new(0,j.KIRuntimeException)("The length which was being requested is more than than the size either source array or second source array");let i=new Set,o=new Set;for(let e=0;e<a;e++)i.add(t[e+r]);for(let e=0;e<a;e++)o.add(s[e+n]);let E=new Set;return i.forEach(e=>{o.has(e)?o.delete(e):E.add(e)}),o.forEach(e=>{i.has(e)||E.add(e)}),new W([H.outputOf(new Map([[eU.EVENT_RESULT_NAME,[...E]]]))])}}class eV extends eN{constructor(){super("Equals",[eV.PARAMETER_ARRAY_SOURCE,eV.PARAMETER_INT_SOURCE_FROM,eV.PARAMETER_ARRAY_FIND,eV.PARAMETER_INT_FIND_FROM,eV.PARAMETER_INT_LENGTH],eV.EVENT_RESULT_BOOLEAN)}async internalExecute(e){let t=new ex,r=(await t.execute(e)).allResults()[0].getResult().get(eV.EVENT_RESULT_NAME);return new W([H.outputOf($.of(eV.EVENT_RESULT_NAME,0==r))])}}var j=h("7pym4"),ep=h("adJLc");class ek extends eN{constructor(){super("Fill",[ek.PARAMETER_ARRAY_SOURCE,ek.PARAMETER_INT_SOURCE_FROM,ek.PARAMETER_INT_LENGTH,ek.PARAMETER_ANY],ek.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(ek.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ek.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(ek.PARAMETER_INT_LENGTH.getParameterName()),n=e?.getArguments()?.get(ek.PARAMETER_ANY.getParameterName());if(r<0)throw new(0,j.KIRuntimeException)(ep.StringFormatter.format("Arrays out of bound trying to access $ index",r));-1==s&&(s=t.length-r);let a=r+s-t.length;if(t=[...t],a>0)for(let e=0;e<a;e++)t.push();for(let e=r;e<r+s;e++)t[e]=m(n)?n:ew(n);return new W([H.outputOf($.of(eN.EVENT_RESULT_NAME,t))])}}var j=h("7pym4");class e$ extends eN{constructor(){super("Frequency",[e$.PARAMETER_ARRAY_SOURCE,e$.PARAMETER_ANY,e$.PARAMETER_INT_SOURCE_FROM,e$.PARAMETER_INT_LENGTH],e$.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(e$.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e$.PARAMETER_ANY.getParameterName()),s=e?.getArguments()?.get(e$.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(e$.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)return new W([H.outputOf(new Map([[e$.EVENT_RESULT_NAME,0]]))]);if(s>t.length)throw new(0,j.KIRuntimeException)("Given start point is more than the size of source");let a=s+n;if(-1==n&&(a=t.length-s),a>t.length)throw new(0,j.KIRuntimeException)("Given length is more than the size of source");let i=0;for(let e=s;e<a&&e<t.length;e++)0==eI.compare(t[e],r)&&i++;return new W([H.outputOf(new Map([[e$.EVENT_RESULT_NAME,i]]))])}}var j=h("7pym4");class eG extends eN{constructor(){super("IndexOf",[eG.PARAMETER_ARRAY_SOURCE,eG.PARAMETER_ANY_ELEMENT_OBJECT,eG.PARAMETER_INT_FIND_FROM],eG.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eG.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eG.PARAMETER_ANY_ELEMENT_OBJECT.getParameterName()),s=e?.getArguments()?.get(eG.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new W([H.outputOf(new Map([[eG.EVENT_RESULT_NAME,-1]]))]);if(s<0||s>t.length)throw new(0,j.KIRuntimeException)("The size of the search index of the array is greater than the size of the array");let n=-1;for(let e=s;e<t.length;e++)if(0==eI.compare(t[e],r)){n=e;break}return new W([H.outputOf(new Map([[eG.EVENT_RESULT_NAME,n]]))])}}var j=h("7pym4");class eF extends eN{constructor(){super("IndexOfArray",[eF.PARAMETER_ARRAY_SOURCE,eF.PARAMETER_ARRAY_SECOND_SOURCE,eF.PARAMETER_INT_FIND_FROM],eF.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eF.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eF.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(eF.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length||0==r.length)return new W([H.outputOf(new Map([[eF.EVENT_RESULT_NAME,-1]]))]);if(s<0||s>t.length||t.length<r.length)throw new(0,j.KIRuntimeException)("Given from second source is more than the size of the source array");let n=r.length,a=-1;for(let e=s;e<t.length;e++){let s=0;if(0==eI.compare(t[e],r[s])){for(;s<n&&0==eI.compare(t[e+s],r[s]);)s++;if(s==n){a=e;break}}}return new W([H.outputOf(new Map([[eF.EVENT_RESULT_NAME,a]]))])}}var j=h("7pym4");class eB extends eN{constructor(){super("LastIndexOf",[eB.PARAMETER_ARRAY_SOURCE,eB.PARAMETER_ANY_ELEMENT_OBJECT,eB.PARAMETER_INT_FIND_FROM],eB.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eB.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eB.PARAMETER_ANY_ELEMENT_OBJECT.getParameterName()),s=e?.getArguments()?.get(eB.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new W([H.outputOf(new Map([[eB.EVENT_RESULT_NAME,-1]]))]);if(s<0||s>t.length)throw new(0,j.KIRuntimeException)("The value of length shouldn't the exceed the size of the array or shouldn't be in terms");let n=-1;for(let e=t.length-1;e>=s;e--)if(0==eI.compare(t[e],r)){n=e;break}return new W([H.outputOf(new Map([[eB.EVENT_RESULT_NAME,n]]))])}}var j=h("7pym4");class eY extends eN{constructor(){super("LastIndexOfArray",[eY.PARAMETER_ARRAY_SOURCE,eY.PARAMETER_ARRAY_SECOND_SOURCE,eY.PARAMETER_INT_FIND_FROM],eY.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eY.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eY.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(eY.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new W([H.outputOf(new Map([[eY.EVENT_RESULT_NAME,-1]]))]);if(s<0||s>t.length||r.length>t.length)throw new(0,j.KIRuntimeException)("Given from index is more than the size of the source array");let n=r.length,a=-1;for(let e=s;e<t.length;e++){let s=0;if(0==eI.compare(t[e],r[s])){for(;s<n&&0==eI.compare(t[e+s],r[s]);)s++;s==n&&(a=e)}}return new W([H.outputOf(new Map([[eY.EVENT_RESULT_NAME,a]]))])}}var j=h("7pym4");class eH extends eN{constructor(){super("Max",[eH.PARAMETER_ARRAY_SOURCE_PRIMITIVE],eH.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(eH.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==t.length)throw new(0,j.KIRuntimeException)("Search source array cannot be empty");let r=t[0];for(let e=1;e<t.length;e++){let s=t[e];eI.comparePrimitive(r,s)>=0||(r=s)}return new W([H.outputOf(new Map([[eH.EVENT_RESULT_NAME,r]]))])}}var j=h("7pym4");class ej extends eN{constructor(){super("Min",[ej.PARAMETER_ARRAY_SOURCE_PRIMITIVE],ej.EVENT_RESULT_ANY)}async internalExecute(e){let t,r=e?.getArguments()?.get(ej.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==r.length)throw new(0,j.KIRuntimeException)("Search source array cannot be empty");for(let e=0;e<r.length;e++)!m(r[e])&&(void 0===t||0>eI.comparePrimitive(r[e],t))&&(t=r[e]);return new W([H.outputOf(new Map([[ej.EVENT_RESULT_NAME,t]]))])}}var j=h("7pym4");class eW extends eN{constructor(){super("MisMatch",[eW.PARAMETER_ARRAY_SOURCE,eW.PARAMETER_INT_FIND_FROM,eW.PARAMETER_ARRAY_SECOND_SOURCE,eW.PARAMETER_INT_SECOND_SOURCE_FROM,eW.PARAMETER_INT_LENGTH],eW.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eW.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eW.PARAMETER_INT_FIND_FROM.getParameterName()),s=e?.getArguments()?.get(eW.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(eW.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(eW.PARAMETER_INT_LENGTH.getParameterName()),i=r<t.length&&r>0?r:0,o=n<s.length&&n>0?n:0;if(i+a>=t.length||o+a>s.length)throw new(0,j.KIRuntimeException)("The size of the array for first and second which was being requested is more than size of the given array");let E=-1;for(let e=0;e<a;e++)if(t[i+e]!=s[o+e]){E=e;break}return new W([H.outputOf(new Map([[eW.EVENT_RESULT_NAME,E]]))])}}var j=h("7pym4");class eK extends eN{constructor(){super("Reverse",[eK.PARAMETER_ARRAY_SOURCE,eK.PARAMETER_INT_SOURCE_FROM,eK.PARAMETER_INT_LENGTH],eK.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eK.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eK.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eK.PARAMETER_INT_LENGTH.getParameterName());if(-1==s&&(s=t.length-r),s>=t.length||s<0||r<0)throw new(0,j.KIRuntimeException)("Please provide start point between the start and end indexes or provide the length which was less than the source size ");t=[...t];let n=r+s-1;for(;r<=n;){let e=t[r],s=t[n];t[r++]=s,t[n--]=e}return new W([H.outputOf(new Map([[eK.EVENT_RESULT_NAME,t]]))])}}class eJ extends eN{constructor(){super("Rotate",[eJ.PARAMETER_ARRAY_SOURCE,eJ.PARAMETER_ROTATE_LENGTH],eJ.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eJ.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eJ.PARAMETER_ROTATE_LENGTH.getParameterName());if(0==t.length)return new W([H.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))]);let s=(t=[...t]).length;return r%=s,this.rotate(t,0,r-1),this.rotate(t,r,s-1),this.rotate(t,0,s-1),new W([H.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))])}rotate(e,t,r){for(;t<r;){let s=e[t];e[t++]=e[r],e[r--]=s}}}class eX extends eN{constructor(){super("Shuffle",[eX.PARAMETER_ARRAY_SOURCE],eX.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eX.PARAMETER_ARRAY_SOURCE.getParameterName());if(t.length<=1)return new W([H.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))]);let r=0,s=(t=[...t]).length;for(let e=0;e<s;e++){let e=Math.floor(Math.random()*s)%s,n=t[r];t[r]=t[e],t[e]=n,r=e}return new W([H.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))])}}var j=h("7pym4");t({},"ObjectValueSetterExtractor",()=>eZ);var j=h("7pym4"),ep=h("adJLc"),eq=h("6SbgP");t({},"TokenValueExtractor",()=>ez);var j=h("7pym4"),ep=h("adJLc"),X=h("iq1c5"),eQ=h("b3MaL");class ez{static{this.REGEX_SQUARE_BRACKETS=/[\[\]]/}static{this.REGEX_DOT=/(?<!\.)\.(?!\.)/}static{this.pathCache=new Map}static{this.bracketCache=new Map}static splitPath(e){let t=ez.pathCache.get(e);return t||(t=ez.splitPathInternal(e),ez.pathCache.set(e,t)),t}static splitPathInternal(e){let t=[],r=0,s=!1;for(let n=0;n<e.length;n++){let a=e.charAt(n);"["===a?s=!0:"]"===a?s=!1:"."!==a||s||ez.isDoubleDot(e,n)||(n>r&&t.push(e.substring(r,n)),r=n+1)}return r<e.length&&t.push(e.substring(r)),t}static isDoubleDot(e,t){return t>0&&"."===e.charAt(t-1)||t<e.length-1&&"."===e.charAt(t+1)}static parseBracketSegment(e){let t=ez.bracketCache.get(e);return t||(t=e.split(ez.REGEX_SQUARE_BRACKETS).map(e=>e.trim()).filter(e=>!X.StringUtil.isNullOrBlank(e)),ez.bracketCache.set(e,t)),t}getValue(e){let t=this.getPrefix();if(!e.startsWith(t))throw new(0,j.KIRuntimeException)(ep.StringFormatter.format("Token $ doesn't start with $",e,t));if(e.endsWith(".__index")){let t=e.substring(0,e.length-8),r=this.getValueInternal(t);if(!m(r?.__index))return r.__index;if(!t.endsWith("]"))return t.substring(t.lastIndexOf(".")+1);{let e=t.substring(t.lastIndexOf("[")+1,t.length-1),r=Number.parseInt(e);return isNaN(r)?e:r}}return this.getValueInternal(e)}setValuesMap(e){this.valuesMap=e}retrieveElementFrom(e,t,r,s){let n=s;for(let s=r;s<t.length;s++){if(m(n))return;for(let r of ez.parseBracketSegment(t[s]))if(void 0===(n=this.resolveSegmentFast(e,t,s,r,n)))return}return n}resolveSegmentFast(e,t,r,s,n){if(null!=n){if(s.startsWith('"')||s.startsWith("'"))return this.resolveForEachPartOfTokenWithBrackets(e,t,r,s,n);if("object"==typeof n&&!Array.isArray(n)){if("length"===s){if("length"in n){let e=n.length;return"object"==typeof e&&null!==e?Object.keys(n).length:e}return Object.keys(n).length}return s in n,n[s]}if(Array.isArray(n)){if("length"===s)return n.length;if(/^-?\d+$/.test(s)){let e=Number.parseInt(s,10),t=e<0?n.length+e:e;return t>=0&&t<n.length?n[t]:void 0}}if("string"==typeof n){if("length"===s)return n.length;if(/^-?\d+$/.test(s)){let e=Number.parseInt(s,10),t=e<0?n.length+e:e;return t>=0&&t<n.length?n[t]:void 0}}return this.resolveForEachPartOfTokenWithBrackets(e,t,r,s,n)}}resolveForEachPartOfTokenWithBrackets(e,t,r,s,n){if(!m(n))return"length"===s||'"length"'===s||"'length'"===s?this.getLength(e,n):"string"==typeof n||Array.isArray(n)?this.handleArrayAccess(e,s,n):this.handleObjectAccess(e,t,r,s,n)}getLength(e,t){let r=typeof t;if("string"===r||Array.isArray(t))return t.length;if("object"===r){if("length"in t){let e=t.length;return"object"==typeof e&&null!==e?Object.keys(t).length:e}return Object.keys(t).length}throw new(0,eQ.ExpressionEvaluationException)(e,ep.StringFormatter.format("Length can't be found in token $",e))}handleArrayAccess(e,t,r){let s=t.indexOf("..");if(s>=0){let e=t.substring(0,s),n=t.substring(s+2),a=0==e.length?0:parseInt(e),i=0==n.length?r.length:parseInt(n);if(isNaN(a)||isNaN(i))return;for(;a<0;)a+=r.length;for(;i<0;)i+=r.length;let o=typeof r;return a>=i?"string"==o?"":[]:"string"==o?r.substring(a,i):r.slice(a,i)}let n=parseInt(t);if(isNaN(n)&&this.valuesMap){let e=t.indexOf(".");if(e>0){let r=t.substring(0,e+1),s=this.valuesMap.get(r);if(s)try{let e=s.getValue(t);"number"==typeof e?n=e:"string"==typeof e&&(n=parseInt(e))}catch(e){}isNaN(n)&&(n=0)}}if(isNaN(n))throw new(0,eQ.ExpressionEvaluationException)(e,ep.StringFormatter.format("$ is not a number",t));for(;n<0;)n=r.length+n;if(!(n>=r.length))return r[n]}handleObjectAccess(e,t,r,s,n){if(s.startsWith('"')||s.startsWith("'")){let t=s[0];if(!s.endsWith(t)||1==s.length)throw new(0,eQ.ExpressionEvaluationException)(e,ep.StringFormatter.format("$ is missing a closing quote or empty key found",e));s=s.substring(1,s.length-1)}return this.checkIfObject(e,t,r,n),n[s]}checkIfObject(e,t,r,s){let n=typeof s;if("object"!=n&&"string"!=n||Array.isArray(s))throw new(0,eQ.ExpressionEvaluationException)(e,ep.StringFormatter.format("Unable to retrieve $ from $ in the path $",t[r],s.toString(),e))}}class eZ extends ez{constructor(e,t){super(),this.store=e,this.prefix=t}getValueInternal(e){let t=ez.splitPath(e);return this.retrieveElementFrom(e,t,1,this.store)}getStore(){return this.store}setStore(e){return this.store=e,this}setValue(e,t,r=!0,s=!1){this.store=ew(this.store),this.modifyStore(e,t,r,s)}modifyStore(e,t,r,s){let n=ez.splitPath(e);if(n.length<2)throw new(0,j.KIRuntimeException)(ep.StringFormatter.format("Invalid path: $",e));let a=this.store;for(let e=1;e<n.length-1;e++){let t=n[e],r=n[e+1],s=this.parseBracketSegments(t);for(let t=0;t<s.length;t++){let i,o=s[t];i=t===s.length-1?e===n.length-2?this.getOpForSegment(n[n.length-1]):this.getOpForSegment(r):this.isArrayIndex(s[t+1])?eq.Operation.ARRAY_OPERATOR:eq.Operation.OBJECT_OPERATOR,a=this.isArrayIndex(o)?this.getDataFromArray(a,o,i):this.getDataFromObject(a,this.stripQuotes(o),i)}}let i=n[n.length-1],o=this.parseBracketSegments(i);for(let e=0;e<o.length-1;e++){let t=o[e],r=this.isArrayIndex(o[e+1])?eq.Operation.ARRAY_OPERATOR:eq.Operation.OBJECT_OPERATOR;a=this.isArrayIndex(t)?this.getDataFromArray(a,t,r):this.getDataFromObject(a,this.stripQuotes(t),r)}let E=o[o.length-1];this.isArrayIndex(E)?this.putDataInArray(a,E,t,r,s):this.putDataInObject(a,this.stripQuotes(E),t,r,s)}parseBracketSegments(e){let t=[],r=0,s=0;for(;s<e.length;)if("["===e[s]){s>r&&t.push(e.substring(r,s));let n=s+1,a=!1,i="";for(;n<e.length;){if(a)e[n]===i&&"\\"!==e[n-1]&&(a=!1);else if('"'===e[n]||"'"===e[n])a=!0,i=e[n];else if("]"===e[n])break;n++}t.push(e.substring(s+1,n)),s=r=n+1}else s++;return r<e.length&&t.push(e.substring(r)),t.length>0?t:[e]}isArrayIndex(e){return/^-?\d+$/.test(e)}stripQuotes(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.substring(1,e.length-1):e}getOpForSegment(e){return this.isArrayIndex(e)||e.startsWith("[")?eq.Operation.ARRAY_OPERATOR:eq.Operation.OBJECT_OPERATOR}getDataFromArray(e,t,r){if(!Array.isArray(e))throw new(0,j.KIRuntimeException)(ep.StringFormatter.format("Expected an array but found $",e));let s=parseInt(t);if(isNaN(s))throw new(0,j.KIRuntimeException)(ep.StringFormatter.format("Expected an array index but found $",t));if(s<0)throw new(0,j.KIRuntimeException)(ep.StringFormatter.format("Array index is out of bound - $",t));let n=e[s];return m(n)&&(n=r==eq.Operation.OBJECT_OPERATOR?{}:[],e[s]=n),n}getDataFromObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new(0,j.KIRuntimeException)(ep.StringFormatter.format("Expected an object but found $",e));let s=e[t];return m(s)&&(s=r==eq.Operation.OBJECT_OPERATOR?{}:[],e[t]=s),s}putDataInArray(e,t,r,s,n){if(!Array.isArray(e))throw new(0,j.KIRuntimeException)(ep.StringFormatter.format("Expected an array but found $",e));let a=parseInt(t);if(isNaN(a))throw new(0,j.KIRuntimeException)(ep.StringFormatter.format("Expected an array index but found $",t));if(a<0)throw new(0,j.KIRuntimeException)(ep.StringFormatter.format("Array index is out of bound - $",t));(s||m(e[a]))&&(n&&m(r)?e.splice(a,1):e[a]=r)}putDataInObject(e,t,r,s,n){if(Array.isArray(e)||"object"!=typeof e)throw new(0,j.KIRuntimeException)(ep.StringFormatter.format("Expected an object but found $",e));(s||m(e[t]))&&(n&&m(r)?delete e[t]:e[t]=r)}getPrefix(){return this.prefix}}class e0 extends eN{constructor(){super("Sort",[e0.PARAMETER_ARRAY_SOURCE,e0.PARAMETER_INT_FIND_FROM,e0.PARAMETER_INT_LENGTH,e0.PARAMETER_BOOLEAN_ASCENDING,e0.PARAMETER_KEY_PATH],e0.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(e0.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e0.PARAMETER_INT_FIND_FROM.getParameterName()),s=e?.getArguments()?.get(e0.PARAMETER_INT_LENGTH.getParameterName()),n=e?.getArguments()?.get(e0.PARAMETER_BOOLEAN_ASCENDING.getParameterName()),a=e?.getArguments()?.get(e0.PARAMETER_KEY_PATH.getParameterName());if(0==t.length)return new W([H.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))]);if(t=[...t],-1==s&&(s=t.length-r),r<0||r>=t.length||r+s>t.length)throw new(0,j.KIRuntimeException)("Given start point is more than the size of the array or not available at that point");let i=t.slice(r,r+s+1),o=new eZ({},"Data.");return i.sort((e,t)=>"object"==typeof e&&"object"==typeof t&&a.length?(o.setStore({a:e,b:t}),e1(o.getValue("Data.a."+a),o.getValue("Data.b."+a),n)):e1(e,t,n)),t.splice(r,s,...i),new W([H.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))])}}function e1(e,t,r){return e===t?0:null===e?1:null===t?-1:r?e<t?-1:1:e<t?1:-1}var j=h("7pym4");class e2 extends eN{constructor(){super("SubArray",[e2.PARAMETER_ARRAY_SOURCE,e2.PARAMETER_INT_FIND_FROM,e2.PARAMETER_INT_LENGTH],e2.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(e2.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e2.PARAMETER_INT_FIND_FROM.getParameterName()),s=e?.getArguments()?.get(e2.PARAMETER_INT_LENGTH.getParameterName());if(-1==s&&(s=t.length-r),s<=0)return new W([H.outputOf(new Map([]))]);if(!(r>=0&&r<t.length)||r+s>t.length)throw new(0,j.KIRuntimeException)("Given find from point is more than the source size array or the Requested length for the subarray was more than the source size");let n=t.slice(r,r+s);return new W([H.outputOf(new Map([[e2.EVENT_RESULT_NAME,n]]))])}}var j=h("7pym4");class e4 extends eN{constructor(){super("Insert",[e4.PARAMETER_ARRAY_SOURCE,e4.PARAMETER_INT_OFFSET,e4.PARAMETER_ANY],e4.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(e4.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e4.PARAMETER_INT_OFFSET.getParameterName());var s=e?.getArguments()?.get(e4.PARAMETER_ANY.getParameterName());if(m(s)||m(r)||r>t.length)throw new(0,j.KIRuntimeException)("Please valid resouces to insert at the correct location");if(0==(t=[...t]).length)return 0==r&&t.push(s),new W([H.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))]);t.push(s);let n=t.length-1;for(r++;n>=r;){let e=t[n-1];t[n-1]=t[n],t[n--]=e}return new W([H.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))])}}class e7 extends eN{constructor(){super("InsertLast",[e7.PARAMETER_ARRAY_SOURCE,e7.PARAMETER_ANY],e7.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(e7.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(e7.PARAMETER_ANY.getParameterName());return(t=[...t]).push(r),new W([H.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))])}}var j=h("7pym4"),J=h("dAuXT"),ep=h("adJLc");class e5 extends eN{constructor(){super("RemoveDuplicates",[e5.PARAMETER_ARRAY_SOURCE,e5.PARAMETER_INT_SOURCE_FROM,e5.PARAMETER_INT_LENGTH],e5.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(e5.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e5.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(e5.PARAMETER_INT_LENGTH.getParameterName());if(-1==s&&(s=t.length-r),r+s>t.length)throw new(0,j.KIRuntimeException)(ep.StringFormatter.format("Array has no elements from $ to $ as the array size is $",r,r+s,t.length));let n=[...t],a=r+s;for(let e=a-1;e>=r;e--)for(let t=e-1;t>=r;t--)if((0,J.deepEqual)(n[e],n[t])){n.splice(e,1);break}return new W([H.outputOf($.of(e5.EVENT_RESULT_NAME,n))])}}let e9="keyPath",e3="valuePath",e6="ignoreNullValues",e8="ignoreNullKeys",te="ignoreDuplicateKeys";class tt extends eN{constructor(){super("ArrayToObjects",[eN.PARAMETER_ARRAY_SOURCE,V.of(e9,b.ofString(e9)),V.of(e3,b.of(e3,f.STRING,f.NULL)),V.of(e6,b.ofBoolean(e6).setDefaultValue(!1)),V.of(e8,b.ofBoolean(e8).setDefaultValue(!0)),V.of(te,b.ofBoolean(te).setDefaultValue(!1))],eN.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(eN.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e9),s=e?.getArguments()?.get(e3)??"",n=e?.getArguments()?.get(e6),a=e?.getArguments()?.get(e8),i=e?.getArguments()?.get(te),o=new eZ({},"Data."),E=t.filter(e=>!m(e)).reduce((e,t)=>{o.setStore(t);let E=o.getValue("Data."+r);if(a&&m(E))return e;let u=s?o.getValue("Data."+s):t;return n&&m(u)||i&&e.hasOwnProperty(E)||(e[E]=u),e},{});return new W([H.outputOf(new Map([[eN.EVENT_RESULT_NAME,E]]))])}}let tr="source",ts="delimiter",tn="result";class ta extends eR{getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(tr),r=e?.getArguments()?.get(ts);return new W([H.outputOf(new Map([[tn,t.join(r)]]))])}constructor(...e){super(...e),this.signature=new K("Join").setNamespace(A.SYSTEM_ARRAY).setParameters(new Map([[tr,new V(tr,b.ofArray(tr,b.of("each",f.STRING,f.INTEGER,f.LONG,f.DOUBLE,f.FLOAT,f.NULL)))],[ts,new V(ts,b.ofString(ts).setDefaultValue(""))]])).setEvents(new Map([Y.outputEventMapEntry(new Map([[tn,b.ofString(tn)]]))]))}}class ti{async find(e,t){return e!=A.SYSTEM_ARRAY?Promise.resolve(void 0):Promise.resolve(this.repoMap.get(t))}async filter(e){return Promise.resolve(this.filterableNames.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}constructor(){this.repoMap=$.ofArrayEntries(B(new eS),B(new ed),B(new ey),B(new ex),B(new eL),B(new ev),B(new eb),B(new eD),B(new eC),B(new eU),B(new eV),B(new ek),B(new e$),B(new eG),B(new eF),B(new eB),B(new eY),B(new eH),B(new ej),B(new eW),B(new eK),B(new eJ),B(new eX),B(new e0),B(new e2),B(new eM),B(new e4),B(new e7),B(new e5),B(new tt),B(new ta)),this.filterableNames=Array.from(this.repoMap.values()).map(e=>e.getSignature().getFullName())}}var j=h("7pym4");t({},"ContextElement",()=>to);class to{static{this.NULL=new to(b.NULL,void 0)}constructor(e,t){this.schema=e,this.element=t}getSchema(){return this.schema}setSchema(e){return this.schema=e,this}getElement(){return this.element}setElement(e){return this.element=e,this}}var ep=h("adJLc");let tE="name",tu="schema";class tl extends eR{getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(tE);if(e?.getContext()?.has(t))throw new(0,j.KIRuntimeException)(ep.StringFormatter.format("Context already has an element for '$' ",t));let r=b.from(e?.getArguments()?.get(tu));if(!r)throw new(0,j.KIRuntimeException)("Schema is not supplied.");return e.getContext().set(t,new to(r,m(r.getDefaultValue())?void 0:r.getDefaultValue())),new W([H.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new K("Create").setNamespace(A.SYSTEM_CTX).setParameters(new Map([V.ofEntry(tE,new b().setName(tE).setType(d.of(f.STRING)).setMinLength(1).setFormat(ei.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,C.CONSTANT),V.ofEntry(tu,b.SCHEMA,!1,C.CONSTANT)])).setEvents(new Map([Y.outputEventMapEntry(new Map)]))}}var j=h("7pym4"),ep=h("adJLc");let tp="name",th="value";class tc extends eR{getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(tp);if(!e.getContext()?.has(t))throw new(0,j.KIRuntimeException)(ep.StringFormatter.format("Context don't have an element for '$' ",t));return new W([H.outputOf(new Map([th,e.getContext()?.get(t)?.getElement()]))])}constructor(...e){super(...e),this.signature=new K("Get").setNamespace(A.SYSTEM_CTX).setParameters(new Map([V.ofEntry(tp,new b().setName(tp).setType(d.of(f.STRING)).setMinLength(1).setFormat(ei.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,C.CONSTANT)])).setEvents(new Map([Y.outputEventMapEntry(new Map([[th,b.ofAny(th)]]))]))}}var j=h("7pym4");t({},"ExpressionEvaluator",()=>rS);var ep=h("adJLc"),eQ=h("b3MaL"),tT=h("9mEhX"),tA=h("4M204"),tm=h("iSHH5"),eq=h("6SbgP"),tg={},tf={};t(tf,"ArithmeticAdditionOperator",()=>tS);var tR={};t(tR,"BinaryOperator",()=>tN);var ep=h("adJLc");class tN{nullCheck(e,t,r){if(m(e)||m(t))throw new eO(ep.StringFormatter.format("$ cannot be applied to a null value",r.getOperatorName()))}}class tS extends tN{apply(e,t){return m(e)?t:m(t)?e:e+t}}var td={};t(td,"ArithmeticDivisionOperator",()=>t_);var eq=h("6SbgP");class t_ extends tN{apply(e,t){return this.nullCheck(e,t,eq.Operation.DIVISION),e/t}}var tM={};t(tM,"ArithmeticIntegerDivisionOperator",()=>tO);var eq=h("6SbgP");class tO extends tN{apply(e,t){return this.nullCheck(e,t,eq.Operation.DIVISION),Math.floor(e/t)}}var tI={};t(tI,"ArithmeticModulusOperator",()=>ty);var eq=h("6SbgP");class ty extends tN{apply(e,t){return this.nullCheck(e,t,eq.Operation.MOD),e%t}}var tP={};t(tP,"ArithmeticMultiplicationOperator",()=>tx);var eq=h("6SbgP");class tx extends tN{apply(e,t){this.nullCheck(e,t,eq.Operation.MULTIPLICATION);let r="string"==typeof e,s=typeof t;if(r||"string"===s){let s=r?e:t,n=r?t:e,a="",i=n<0,o=Math.floor(n=Math.abs(n));for(;o-- >0;)a+=s;let E=Math.floor(s.length*(n-Math.floor(n)));if(E<0&&(E=-E),0!=E&&(a+=s.substring(0,E)),i){let e="";for(let t=a.length-1;t>=0;t--)e+=a[t];return e}return a}return e*t}}var tw={};t(tw,"ArithmeticSubtractionOperator",()=>tL);var eq=h("6SbgP");class tL extends tN{apply(e,t){return this.nullCheck(e,t,eq.Operation.SUBTRACTION),e-t}}var tv={};t(tv,"ArrayOperator",()=>tb);var ep=h("adJLc");class tb extends tN{apply(e,t){if(!e)throw new eO("Cannot apply array operator on a null value");if(!t)throw new eO("Cannot retrive null index value");if(!Array.isArray(e)&&"string"!=typeof e)throw new eO(ep.StringFormatter.format("Cannot retrieve value from a primitive value $",e));if(t>=e.length)throw new eO(ep.StringFormatter.format("Cannot retrieve index $ from the array of length $",t,e.length));return e[t]}}var tD={};t(tD,"BitwiseAndOperator",()=>tC);var eq=h("6SbgP");class tC extends tN{apply(e,t){return this.nullCheck(e,t,eq.Operation.BITWISE_AND),e&t}}var tU={};t(tU,"BitwiseLeftShiftOperator",()=>tV);var eq=h("6SbgP");class tV extends tN{apply(e,t){return this.nullCheck(e,t,eq.Operation.BITWISE_LEFT_SHIFT),e<<t}}var tk={};t(tk,"BitwiseOrOperator",()=>t$);var eq=h("6SbgP");class t$ extends tN{apply(e,t){return this.nullCheck(e,t,eq.Operation.BITWISE_OR),e|t}}var tG={};t(tG,"BitwiseRightShiftOperator",()=>tF);var eq=h("6SbgP");class tF extends tN{apply(e,t){return this.nullCheck(e,t,eq.Operation.BITWISE_RIGHT_SHIFT),e>>t}}var tB={};t(tB,"BitwiseUnsignedRightShiftOperator",()=>tY);var eq=h("6SbgP");class tY extends tN{apply(e,t){return this.nullCheck(e,t,eq.Operation.BITWISE_UNSIGNED_RIGHT_SHIFT),e>>>t}}var tH={};t(tH,"BitwiseXorOperator",()=>tj);var eq=h("6SbgP");class tj extends tN{apply(e,t){return this.nullCheck(e,t,eq.Operation.BITWISE_XOR),e^t}}var tW={};t(tW,"LogicalAndOperator",()=>tK);class tK extends tN{apply(e,t){return!!e&&""!==e&&!!t&&""!==t}}var tJ={};t(tJ,"LogicalEqualOperator",()=>tX);var J=h("dAuXT");class tX extends tN{apply(e,t){return(0,J.deepEqual)(e,t)}}var tq={};t(tq,"LogicalGreaterThanEqualOperator",()=>tQ);var ep=h("adJLc");class tQ extends tN{apply(e,t){if(m(e)||m(t))return;let r=eI.findPrimitiveNullAsBoolean(e),s=eI.findPrimitiveNullAsBoolean(t);if(r.getT1()==f.BOOLEAN||s.getT1()==f.BOOLEAN)throw new eO(ep.StringFormatter.format("Cannot compare >= with the values $ and $",r.getT2(),s.getT2()));return r.getT2()>=s.getT2()}}var tz={};t(tz,"LogicalGreaterThanOperator",()=>tZ);var ep=h("adJLc");class tZ extends tN{apply(e,t){if(m(e)||m(t))return;let r=eI.findPrimitiveNullAsBoolean(e),s=eI.findPrimitiveNullAsBoolean(t);if(r.getT1()==f.BOOLEAN||s.getT1()==f.BOOLEAN)throw new eO(ep.StringFormatter.format("Cannot compare > with the values $ and $",r.getT2(),s.getT2()));return r.getT2()>s.getT2()}}var t0={};t(t0,"LogicalLessThanEqualOperator",()=>t1);var ep=h("adJLc");class t1 extends tN{apply(e,t){if(m(e)||m(t))return;let r=eI.findPrimitiveNullAsBoolean(e),s=eI.findPrimitiveNullAsBoolean(t);if(r.getT1()==f.BOOLEAN||s.getT1()==f.BOOLEAN)throw new eO(ep.StringFormatter.format("Cannot compare <= with the values $ and $",r.getT2(),s.getT2()));return r.getT2()<=s.getT2()}}var t2={};t(t2,"LogicalNotEqualOperator",()=>t4);var J=h("dAuXT");class t4 extends tN{apply(e,t){return!(0,J.deepEqual)(e,t)}}var t7={};t(t7,"LogicalLessThanOperator",()=>t5);var ep=h("adJLc");class t5 extends tN{apply(e,t){if(m(e)||m(t))return;let r=eI.findPrimitiveNullAsBoolean(e),s=eI.findPrimitiveNullAsBoolean(t);if(r.getT1()==f.BOOLEAN||s.getT1()==f.BOOLEAN)throw new eO(ep.StringFormatter.format("Cannot compare < with the values $ and $",r.getT2(),s.getT2()));return r.getT2()<s.getT2()}}var t9={};t(t9,"LogicalOrOperator",()=>t3);class t3 extends tN{apply(e,t){return!!e&&""!==e||!!t&&""!==t}}var t6={};t(t6,"ObjectOperator",()=>t8);var ep=h("adJLc");class t8 extends tN{apply(e,t){if(!e)throw new eO("Cannot apply array operator on a null value");if(!t)throw new eO("Cannot retrive null property value");let r=typeof e;if(!Array.isArray(e)&&"string"!=r&&"object"!=r)throw new eO(ep.StringFormatter.format("Cannot retrieve value from a primitive value $",e));return e[t]}}var re={};t(re,"LogicalNullishCoalescingOperator",()=>rt);class rt extends tN{apply(e,t){return m(e)?t:e}}var rr={};t(rr,"ArrayRangeOperator",()=>rs);class rs extends tN{apply(e,t){return`${e??""}..${t??""}`}}r(tg,tf),r(tg,td),r(tg,tM),r(tg,tI),r(tg,tP),r(tg,tw),r(tg,tv),r(tg,tR),r(tg,tD),r(tg,tU),r(tg,tk),r(tg,tG),r(tg,tB),r(tg,tH),r(tg,tW),r(tg,tJ),r(tg,tq),r(tg,tz),r(tg,t0),r(tg,t2),r(tg,t7),r(tg,t9),r(tg,t6),r(tg,re),r(tg,rr);var rn={},ra={};t(ra,"ArithmeticUnaryMinusOperator",()=>rE);var eq=h("6SbgP"),ri={};t(ri,"UnaryOperator",()=>ro);var ep=h("adJLc");class ro{nullCheck(e,t){if(m(e))throw new eO(ep.StringFormatter.format("$ cannot be applied to a null value",t.getOperatorName()))}}class rE extends ro{apply(e){return this.nullCheck(e,eq.Operation.UNARY_MINUS),eI.findPrimitiveNumberType(e),-e}}var ru={};t(ru,"ArithmeticUnaryPlusOperator",()=>rl);var eq=h("6SbgP");class rl extends ro{apply(e){return this.nullCheck(e,eq.Operation.UNARY_PLUS),eI.findPrimitiveNumberType(e),e}}var rp={};t(rp,"BitwiseComplementOperator",()=>rh);var ep=h("adJLc"),eq=h("6SbgP");class rh extends ro{apply(e){this.nullCheck(e,eq.Operation.UNARY_BITWISE_COMPLEMENT);let t=eI.findPrimitiveNumberType(e);if(t.getT1()!=f.INTEGER&&t.getT1()!=f.LONG)throw new eO(ep.StringFormatter.format("Unable to apply bitwise operator on $",e));return~e}}var rc={};t(rc,"LogicalNotOperator",()=>rT);class rT extends ro{apply(e){return!e&&""!==e}}r(rn,ra),r(rn,ru),r(rn,rp),r(rn,rc),r(rn,ri),t({},"LiteralTokenValueExtractor",()=>rm);var ep=h("adJLc"),X=h("iq1c5"),eQ=h("b3MaL");let rA=new Map([["true",!0],["false",!1],["null",void 0],["undefined",void 0]]);class rm extends ez{static{this.INSTANCE=new rm}getValueInternal(e){if(!X.StringUtil.isNullOrBlank(e))return(e=e.trim(),rA.has(e))?rA.get(e):e.startsWith('"')?this.processString(e):this.processNumbers(e)}processNumbers(e){try{let t=Number(e);if(isNaN(t))throw Error("Parse number error");return t}catch(t){throw new(0,eQ.ExpressionEvaluationException)(e,ep.StringFormatter.format("Unable to parse the literal or expression $",e),t)}}processString(e){if(!e.endsWith('"'))throw new(0,eQ.ExpressionEvaluationException)(e,ep.StringFormatter.format("String literal $ is not closed properly",e));return e.substring(1,e.length-1)}getPrefix(){return""}getStore(){}getValueFromExtractors(e,t){return t.has(e+".")?t.get(e+".")?.getStore():this.getValue(e)}}var q=h("gZQ5x"),rg={};t(rg,"ConditionalTernaryOperator",()=>rR);var ep=h("adJLc");class rf{nullCheck(e,t,r,s){if(m(e)||m(t)||m(r))throw new eO(ep.StringFormatter.format("$ cannot be applied to a null value",s.getOperatorName()))}}class rR extends rf{apply(e,t,r){return e?t:r}}r({},rg);class rN extends ez{static{this.PREFIX="_internal."}addValue(e,t){this.values.set(e,t)}getValueInternal(e){let t=ez.splitPath(e),r=t[1],s=r.indexOf("["),n=2;return -1!=s&&(r=t[1].substring(0,s),(t=[...t])[1]=t[1].substring(s),n=1),this.retrieveElementFrom(e,t,n,this.values.get(r))}getPrefix(){return rN.PREFIX}getStore(){}constructor(...e){super(...e),this.values=new Map}}class rS{static{this.expressionCache=new Map}static{this.loggedErrorKeys=new Set}static{this.keyCounter=0}static getCachedExpression(e){let t=rS.expressionCache.get(e);return t||(t=new(0,tT.Expression)(e),rS.expressionCache.set(e,t)),t}static{this.UNARY_OPERATORS_MAP=new Map([[eq.Operation.UNARY_BITWISE_COMPLEMENT,new rh],[eq.Operation.UNARY_LOGICAL_NOT,new rT],[eq.Operation.UNARY_MINUS,new rE],[eq.Operation.UNARY_PLUS,new rl]])}static{this.TERNARY_OPERATORS_MAP=new Map([[eq.Operation.CONDITIONAL_TERNARY_OPERATOR,new rR]])}static{this.BINARY_OPERATORS_MAP=new Map([[eq.Operation.ADDITION,new tS],[eq.Operation.DIVISION,new t_],[eq.Operation.INTEGER_DIVISION,new tO],[eq.Operation.MOD,new ty],[eq.Operation.MULTIPLICATION,new tx],[eq.Operation.SUBTRACTION,new tL],[eq.Operation.BITWISE_AND,new tC],[eq.Operation.BITWISE_LEFT_SHIFT,new tV],[eq.Operation.BITWISE_OR,new t$],[eq.Operation.BITWISE_RIGHT_SHIFT,new tF],[eq.Operation.BITWISE_UNSIGNED_RIGHT_SHIFT,new tY],[eq.Operation.BITWISE_XOR,new tj],[eq.Operation.AND,new tK],[eq.Operation.EQUAL,new tX],[eq.Operation.GREATER_THAN,new tZ],[eq.Operation.GREATER_THAN_EQUAL,new tQ],[eq.Operation.LESS_THAN,new t5],[eq.Operation.LESS_THAN_EQUAL,new t1],[eq.Operation.OR,new t3],[eq.Operation.NOT_EQUAL,new t4],[eq.Operation.NULLISH_COALESCING_OPERATOR,new rt],[eq.Operation.ARRAY_OPERATOR,new tb],[eq.Operation.ARRAY_RANGE_INDEX_OPERATOR,new rs],[eq.Operation.OBJECT_OPERATOR,new t8]])}static{this.UNARY_OPERATORS_MAP_KEY_SET=new Set(rS.UNARY_OPERATORS_MAP.keys())}static{this.PATTERN_UNKNOWN=0}static{this.PATTERN_LITERAL=1}static{this.PATTERN_SIMPLE_PATH=2}static{this.PATTERN_SIMPLE_ARRAY_ACCESS=3}static{this.PATTERN_SIMPLE_COMPARISON=4}static{this.PATTERN_SIMPLE_TERNARY=5}static{this.patternCache=new Map}static{this.LITERAL_TRUE="true"}static{this.LITERAL_FALSE="false"}static{this.LITERAL_NULL="null"}static{this.LITERAL_UNDEFINED="undefined"}static{this.NUMBER_REGEX=/^-?\d+(\.\d+)?$/}static{this.SINGLE_QUOTE_STRING_REGEX=/^'([^'\\]|\\.)*'$/}static{this.DOUBLE_QUOTE_STRING_REGEX=/^"([^"\\]|\\.)*"$/}static{this.SIMPLE_PATH_REGEX=/^[A-Za-z_][A-Za-z0-9_]*(\.[A-Za-z_][A-Za-z0-9_]*|\[\d+\])*$/}static detectPattern(e){let t=e.getExpression(),r=rS.patternCache.get(t);if(void 0!==r)return r;let s=rS.PATTERN_UNKNOWN;if(t===rS.LITERAL_TRUE||t===rS.LITERAL_FALSE||t===rS.LITERAL_NULL||t===rS.LITERAL_UNDEFINED||rS.NUMBER_REGEX.test(t)||rS.SINGLE_QUOTE_STRING_REGEX.test(t)||rS.DOUBLE_QUOTE_STRING_REGEX.test(t))s=rS.PATTERN_LITERAL;else if(!t.includes(".")||t.includes("{{")||t.includes("..")){if(t.includes(".."))s=rS.PATTERN_UNKNOWN;else if(!t.includes("{{")){let t=e.getOperationsArray();s=rS.detectTernaryOrComparison(e,t)}}else{let t=e.getOperationsArray(),r=e.getTokensArray(),n=t.length>0;for(let e of t)if(e!==eq.Operation.OBJECT_OPERATOR&&e!==eq.Operation.ARRAY_OPERATOR){n=!1;break}if(n){for(let e of r)if(e instanceof tT.Expression){n=!1;break}}s=n?rS.PATTERN_SIMPLE_PATH:rS.detectTernaryOrComparison(e,t)}return rS.patternCache.set(t,s),s}static detectTernaryOrComparison(e,t){for(let t of e.getTokensArray())if(t instanceof tT.Expression)return rS.PATTERN_UNKNOWN;return 1===t.length&&t[0]===eq.Operation.CONDITIONAL_TERNARY_OPERATOR?rS.PATTERN_SIMPLE_TERNARY:1===t.length&&(t[0]===eq.Operation.EQUAL||t[0]===eq.Operation.NOT_EQUAL)?rS.PATTERN_SIMPLE_COMPARISON:rS.PATTERN_UNKNOWN}static evaluateLiteral(e){if(e===rS.LITERAL_TRUE)return!0;if(e===rS.LITERAL_FALSE)return!1;if(e===rS.LITERAL_NULL)return null;if(e!==rS.LITERAL_UNDEFINED){if(rS.NUMBER_REGEX.test(e))return e.includes(".")?Number.parseFloat(e):Number.parseInt(e,10);if(rS.SINGLE_QUOTE_STRING_REGEX.test(e)||rS.DOUBLE_QUOTE_STRING_REGEX.test(e))return e.slice(1,-1)}}evaluateSimplePath(e,t){let r=e.getExpression(),s=r.indexOf(".");if(-1===s)return;let n=r.substring(0,s+1),a=t.get(n);if(a)return a.getValue(r)}evaluateSimpleComparison(e,t){let r=e.getOperationsArray(),s=e.getTokensArray();if(2!==s.length||1!==r.length)return;let n=this.getTokenValue(s[1],t),a=this.getTokenValue(s[0],t);return r[0]===eq.Operation.EQUAL?n==a:r[0]===eq.Operation.NOT_EQUAL?n!=a:void 0}evaluateSimpleTernary(e,t){let r=e.getTokensArray();if(3!==r.length)return;let s=this.getTokenValue(r[2],t),n=this.getTokenValue(r[1],t),a=this.getTokenValue(r[0],t);return s?n:a}getTokenValue(e,t){if(e instanceof tm.ExpressionTokenValue)return e.getElement();let r=e.getExpression(),s=rS.evaluateLiteral(r);if(void 0!==s||"undefined"===r||"null"===r)return s;let n=r.indexOf(".");if(-1!==n){let e=r.substring(0,n+1),s=t.get(e);if(s)return s.getValue(r)}return rm.INSTANCE.getValue(r)}constructor(e){this.internalTokenValueExtractor=new rN,e instanceof tT.Expression?(this.exp=e,this.expression=this.exp.getExpression()):this.expression=e}evaluate(e){try{e.forEach(t=>{t.setValuesMap(e)});let t=this.processNestingExpression(this.expression,e),r=t.getT1(),s=t.getT2(),n=rS.detectPattern(s);if(n===rS.PATTERN_LITERAL)return rS.evaluateLiteral(r);if(n===rS.PATTERN_SIMPLE_PATH)return this.evaluateSimplePath(s,e);if(n===rS.PATTERN_SIMPLE_COMPARISON)return this.evaluateSimpleComparison(s,e);if(n===rS.PATTERN_SIMPLE_TERNARY)return this.evaluateSimpleTernary(s,e);return(e=new Map(e.entries())).set(this.internalTokenValueExtractor.getPrefix(),this.internalTokenValueExtractor),this.internalTokenValueExtractor.setValuesMap(e),this.evaluateExpression(s,e)}catch(e){if(!e._exprErrorLogged){let t=`top|${this.expression}`;rS.loggedErrorKeys.has(t)||(rS.loggedErrorKeys.add(t),console.error("[EXPR ERROR : ]",JSON.stringify({EXPRESSION:this.expression,ERROR:String(e)},null,2)))}throw e}}processNestingExpression(e,t){let r=e;for(;r.includes("{{");){let e=this.findInnermostPair(r);if(!e)break;r=this.replaceOneNesting(r,e,t)}return new(0,q.Tuple2)(r,rS.getCachedExpression(r))}findInnermostPair(e){let t=0;for(;t<e.length-1;){if("{"!==e.charAt(t)||"{"!==e.charAt(t+1)){t++;continue}let r=t;t+=2;let s=1;for(;t<e.length-1&&s>0;){if("{"===e.charAt(t)&&"{"===e.charAt(t+1)){s++,t+=2;continue}if("}"===e.charAt(t)&&"}"===e.charAt(t+1)){if(0==--s){let s=t+2,n=e.substring(r+2,t);if(!n.includes("{{"))return{start:r,end:s,content:n};let a=this.findInnermostPair(n);if(!a){t+=2;continue}return{start:r+2+a.start,end:r+2+a.end,content:a.content}}t+=2;continue}t++}t=r+1}return null}replaceOneNesting(e,t,r){let s,n,{start:a,end:i,content:o}=t,E=e.substring(i,Math.min(i+1,e.length)),u="."===E||"["===E||a>0&&"["===e.charAt(a-1)||a>0&&"."===e.charAt(a-1),l=0,p=0;for(let t=0;t<a;t++)"'"===e.charAt(t)&&(0===t||"\\"!==e.charAt(t-1))?l++:'"'===e.charAt(t)&&(0===t||"\\"!==e.charAt(t-1))&&p++;let h=l%2==1||p%2==1;try{let e=new rS(o);e.internalTokenValueExtractor=this.internalTokenValueExtractor,s=e.evaluate(r)}catch(r){let t=`${e}|${o}`;throw rS.loggedErrorKeys.has(t)||(rS.loggedErrorKeys.add(t),console.error("[EXPR ERROR : ]",JSON.stringify({ORIGINAL:e,FAILED_INNER:o,ERROR:String(r)},null,2))),r._exprErrorLogged=!0,r}let c="string"==typeof s&&Array.from(r.keys()).some(e=>s.startsWith(e));if(u||h||c)n=String(s);else{let e=`__nested_${rS.keyCounter++}__`;this.internalTokenValueExtractor.addValue(e,s),n=`${this.internalTokenValueExtractor.getPrefix()}${e}`}return e.substring(0,a)+n+e.substring(i)}getExpression(){return this.exp||(this.exp=rS.getCachedExpression(this.expression)),this.exp}getExpressionString(){return this.expression}evaluateExpression(e,t){let r=e.getOperationsArray(),s=e.getTokensArray(),n=[],a={opIdx:0,srcIdx:0},i=()=>{if(n.length>0)return n.pop();if(a.srcIdx>=s.length){if(a.opIdx<r.length)throw new(0,eQ.ExpressionEvaluationException)(e.getExpression(),"Not enough tokens to evaluate expression");throw new(0,eQ.ExpressionEvaluationException)(e.getExpression(),"Expression evaluation incomplete: missing token")}return s[a.srcIdx++]},o=()=>{if(!(a.opIdx>=r.length))return r[a.opIdx++]},E=()=>{if(!(a.opIdx>=r.length))return r[a.opIdx]},u=()=>n.length>0||a.srcIdx<s.length;for(;a.opIdx<r.length;){let e=o(),l=i();if(rS.UNARY_OPERATORS_MAP_KEY_SET.has(e))n.push(this.applyUnaryOperation(e,this.getValueFromToken(t,l)));else if(e==eq.Operation.OBJECT_OPERATOR||e==eq.Operation.ARRAY_OPERATOR)this.processObjectOrArrayOperatorIndexed(t,r,s,n,a,e,l,i,o,E,u);else if(e==eq.Operation.CONDITIONAL_TERNARY_OPERATOR){let r=i(),s=i(),a=this.getValueFromToken(t,s),o=this.getValueFromToken(t,r),E=this.getValueFromToken(t,l);n.push(this.applyTernaryOperation(e,a,o,E))}else{let r=i(),s=this.getValueFromToken(t,r),a=this.getValueFromToken(t,l);n.push(this.applyBinaryOperation(e,s,a,t))}}for(;a.srcIdx<s.length;)n.push(s[a.srcIdx++]);if(0===n.length)throw new eO(ep.StringFormatter.format("Expression : $ evaluated to null",e));if(1!==n.length)throw new eO(ep.StringFormatter.format("Expression : $ evaluated multiple values $",e,n));let l=n[0];return l instanceof tm.ExpressionTokenValue?l.getElement():l instanceof tT.Expression?this.evaluateExpression(l,t):this.getValueFromToken(t,l)}processObjectOrArrayOperatorIndexed(e,t,r,s,n,a,i,o,E,u,l){let p,h=[],c=[];if(!a||!i)return;do{if(c.push(a),i instanceof tT.Expression)if(a!==eq.Operation.ARRAY_OPERATOR&&this.isPathExpression(i)){let e=this.buildPathString(i);h.push(new(0,tA.ExpressionToken)(e))}else{let t=this.evaluateExpression(i,e);h.push(new(0,tm.ExpressionTokenValue)(i.toString(),t))}else i&&h.push(i);i=s.length>0?s.pop():n.srcIdx<r.length?r[n.srcIdx++]:void 0,a=E()}while(a==eq.Operation.OBJECT_OPERATOR||a==eq.Operation.ARRAY_OPERATOR)if(i)if(i instanceof tT.Expression)if(this.isPathExpression(i)){let e=this.buildPathString(i);h.push(new(0,tA.ExpressionToken)(e))}else h.push(new(0,tm.ExpressionTokenValue)(i.toString(),this.evaluateExpression(i,e)));else h.push(i);void 0!==a&&n.opIdx--;let T=h.length-1,A=c.length-1,m=h[T--];if(m instanceof tm.ExpressionTokenValue&&"object"==typeof m.getTokenValue()){let e="_k"+rS.keyCounter++;this.internalTokenValueExtractor.addValue(e,m.getTokenValue()),m=new(0,tA.ExpressionToken)(rN.PREFIX+e)}if(m instanceof tm.ExpressionTokenValue){let e=m.getExpression(),t=m.getTokenValue();p=e&&e.length>0&&('"'==e.charAt(0)||"'"==e.charAt(0))&&"string"==typeof t&&t.includes(".")?e:"string"==typeof t?t:String(t)}else p=m.toString();for(;T>=0;){let e;if(m=h[T--],a=c[A--],m instanceof tm.ExpressionTokenValue){let t=m.getExpression(),r=m.getTokenValue();e=a==eq.Operation.ARRAY_OPERATOR&&t&&t.length>0&&('"'==t.charAt(0)||"'"==t.charAt(0))&&"string"==typeof r&&r.includes(".")?t:"string"==typeof r?r:String(r)}else e=m.toString();p=p+a.getOperator()+e+(a==eq.Operation.ARRAY_OPERATOR?"]":"")}let g=p.substring(0,p.indexOf(".")+1);if(g.length>2&&e.has(g))s.push(new(0,tm.ExpressionTokenValue)(p,this.getValue(p,e)));else{let e;try{e=rm.INSTANCE.getValue(p)}catch(t){e=this.evaluateLiteralPropertyAccess(p)}s.push(new(0,tm.ExpressionTokenValue)(p,e))}}evaluateLiteralPropertyAccess(e){let t,r=e.indexOf(".");if(-1===r)return e;let s=e.substring(0,r),n=e.substring(r+1);try{t=rm.INSTANCE.getValue(s)}catch(t){return e}if(null==t)return;let a=this.splitPropertyPath(n),i=t;for(let e of a){if(null==i)return;i=e.includes("[")?this.accessPropertyWithBrackets(i,e):i[e]}return i}splitPropertyPath(e){let t=[],r="",s=!1;for(let n=0;n<e.length;n++){let a=e.charAt(n);"["===a?(r.length>0&&(t.push(r),r=""),s=!0,r+=a):"]"===a?(r+=a,s=!1,t.push(r),r=""):"."!==a||s?r+=a:r.length>0&&(t.push(r),r="")}return r.length>0&&t.push(r),t}accessPropertyWithBrackets(e,t){let r=t.match(/^\[(.+)\]$/);if(r){let t=r[1];(t.startsWith('"')&&t.endsWith('"')||t.startsWith("'")&&t.endsWith("'"))&&(t=t.substring(1,t.length-1));let s=parseInt(t);return isNaN(s)?e[t]:e[s]}return e[t]}applyTernaryOperation(e,t,r,s){let n=rS.TERNARY_OPERATORS_MAP.get(e);if(!n)throw new(0,eQ.ExpressionEvaluationException)(this.expression,ep.StringFormatter.format("No operator found to evaluate $",this.getExpression()));return new(0,tm.ExpressionTokenValue)(e.toString(),n.apply(t,r,s))}applyBinaryOperation(e,t,r,s){let n=typeof t,a=typeof r,i=rS.BINARY_OPERATORS_MAP.get(e);if(("object"===n||"object"===a)&&e!==eq.Operation.EQUAL&&e!==eq.Operation.NOT_EQUAL&&e!==eq.Operation.NULLISH_COALESCING_OPERATOR&&e!==eq.Operation.AND&&e!==eq.Operation.OR)throw new(0,eQ.ExpressionEvaluationException)(this.expression,ep.StringFormatter.format("Cannot evaluate expression $ $ $",t,e.getOperator(),r));if(!i)throw new(0,eQ.ExpressionEvaluationException)(this.expression,ep.StringFormatter.format("No operator found to evaluate $ $ $",t,e.getOperator(),r));let o=i.apply(t,r);if(e===eq.Operation.NULLISH_COALESCING_OPERATOR&&"string"==typeof o&&s&&o.trim().length>0&&this.looksLikeExpression(o))try{o=new rS(o).evaluate(s)}catch{}return new(0,tm.ExpressionTokenValue)(e.toString(),o)}looksLikeExpression(e){let t=e.trim();return 0!==t.length&&(!!/[+\-*/%=<>!&|?:]/.test(t)||["Store.","Context.","Arguments.","Steps.","Page.","Parent."].some(e=>t.includes(e)))}applyUnaryOperation(e,t){let r=typeof t;if(e.getOperator()!=eq.Operation.NOT.getOperator()&&e.getOperator()!=eq.Operation.UNARY_LOGICAL_NOT.getOperator()&&("object"===r||Array.isArray(t)))throw new(0,eQ.ExpressionEvaluationException)(this.expression,ep.StringFormatter.format("The operator $ cannot be applied to $",e.getOperator(),t));let s=rS.UNARY_OPERATORS_MAP.get(e);if(!s)throw new(0,eQ.ExpressionEvaluationException)(this.expression,ep.StringFormatter.format("No Unary operator $ is found to apply on $",e.getOperator(),t));return new(0,tm.ExpressionTokenValue)(e.toString(),s.apply(t))}getValueFromToken(e,t){return t instanceof tT.Expression?this.evaluateExpression(t,e):t instanceof tm.ExpressionTokenValue?t.getElement():this.getValue(t.getExpression(),e)}getValue(e,t){let r=e.substring(0,e.indexOf(".")+1);return t.has(r)?t.get(r).getValue(e):rm.INSTANCE.getValueFromExtractors(e,t)}buildPathString(e){let t=e.getOperationsArray(),r=e.getTokensArray();if(0===t.length){if(1===r.length){let e=r[0];return e instanceof tT.Expression?this.buildPathString(e):this.getTokenExpressionString(e)}return e.getExpression()||""}if(r.length>=2&&t.length>=1){let e=r[0],s=r[1],n=t[0],a=s instanceof tT.Expression?this.buildPathString(s):this.getTokenExpressionString(s),i=e instanceof tT.Expression?this.buildPathString(e):this.getTokenExpressionString(e);if(n===eq.Operation.OBJECT_OPERATOR)return a+"."+i;if(n===eq.Operation.ARRAY_OPERATOR)return a+"["+i+"]";if(n===eq.Operation.ARRAY_RANGE_INDEX_OPERATOR)return a+".."+i}return this.stripOuterParens(e.toString())}getTokenExpressionString(e){return e instanceof tm.ExpressionTokenValue,e.getExpression()}stripOuterParens(e){if(e.length>=2&&"("===e.charAt(0)&&")"===e.charAt(e.length-1)){let t=0;for(let r=0;r<e.length;r++)if("("===e.charAt(r)?t++:")"===e.charAt(r)&&t--,0===t&&r<e.length-1)return e;return e.substring(1,e.length-1)}return e}isPathExpression(e){let t=e.getOperationsArray(),r=e.getTokensArray();if(0===t.length)return!0;for(let e of t)if(!this.isPathOperator(e)||e===eq.Operation.ARRAY_OPERATOR&&r.length>0&&!this.isStaticArrayIndex(r[0]))return!1;return r.every(e=>!(e instanceof tT.Expression)||this.isPathExpression(e))}isPathOperator(e){return e===eq.Operation.OBJECT_OPERATOR||e===eq.Operation.ARRAY_OPERATOR||e===eq.Operation.ARRAY_RANGE_INDEX_OPERATOR}isStaticArrayIndex(e){return e instanceof tT.Expression?this.isStaticArrayIndexExpression(e):this.isStaticLiteral(e.getExpression())}isStaticArrayIndexExpression(e){let t=e.getOperationsArray(),r=e.getTokensArray();return 0===t.length&&1===r.length?this.isStaticLiteral(r[0].getExpression()):1===t.length&&t[0]===eq.Operation.ARRAY_RANGE_INDEX_OPERATOR&&r.every(e=>this.isStaticArrayIndex(e))}isStaticLiteral(e){return!!(/^-?\d+(\.\d+)?$/.test(e)||e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))}}var ep=h("adJLc"),X=h("iq1c5");let rd="name",r_="value";class rM extends eR{getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(rd);if(X.StringUtil.isNullOrBlank(t))throw new(0,j.KIRuntimeException)("Empty string is not a valid name for the context element");let r=e?.getArguments()?.get(r_),s=ez.splitPath(t);if(s.length<1||"Context"!==s[0])throw new eO(ep.StringFormatter.format("The context path $ is not a valid path in context",t));let n=this.evaluateDynamicParts(s,e);return this.modifyContextWithParts(e,t,r,n)}evaluateDynamicParts(e,t){let r=[];for(let s of e){let e=this.evaluateBracketExpressions(s,t);r.push(e)}return r}evaluateBracketExpressions(e,t){let r="",s=0;for(;s<e.length;)if("["===e[s]){r+="[",s++;let n="",a=1,i=!1,o="";for(;s<e.length&&a>0;){let t=e[s];i?(t===o&&"\\"!==e[s-1]&&(i=!1),n+=t):'"'===t||"'"===t?(i=!0,o=t,n+=t):"["===t?(a++,n+=t):"]"===t?--a>0&&(n+=t):n+=t,s++}if(/^-?\d+$/.test(n)||n.startsWith('"')&&n.endsWith('"')||n.startsWith("'")&&n.endsWith("'"))r+=n+"]";else try{let e=new rS(n).evaluate(t.getValuesMap());r+=String(e)+"]"}catch(e){r+=n+"]"}}else r+=e[s],s++;return r}modifyContextWithParts(e,t,r,s){if(s.length<2)throw new(0,j.KIRuntimeException)(ep.StringFormatter.format("Context path '$' is too short",t));let n=s[1],a=this.parseBracketSegments(n),i=a[0],o=e.getContext()?.get(i);if(m(o))throw new(0,j.KIRuntimeException)(ep.StringFormatter.format("Context doesn't have any element with name '$' ",i));if(2===s.length&&1===a.length)return o.setElement(r),new W([H.outputOf(new Map)]);let E=o.getElement();m(E)&&(E=(a.length>1?this.isArrayIndex(a[1]):s.length>2&&this.isArrayAccess(s[2]))?[]:{},o.setElement(E));let u=[];for(let e=1;e<a.length;e++)u.push({value:this.stripQuotes(a[e]),isArray:this.isArrayIndex(a[e])});for(let e=2;e<s.length;e++)for(let t of this.parseBracketSegments(s[e]))u.push({value:this.stripQuotes(t),isArray:this.isArrayIndex(t)});for(let e=0;e<u.length-1;e++){let t=u[e],r=u[e+1];E=t.isArray?this.getDataFromArray(E,t.value,r.isArray):this.getDataFromObject(E,t.value,r.isArray)}let l=u[u.length-1];return l.isArray?this.putDataInArray(E,l.value,r):this.putDataInObject(E,l.value,r),new W([H.outputOf(new Map)])}parseBracketSegments(e){let t=[],r=0,s=0;for(;s<e.length;)if("["===e[s]){s>r&&t.push(e.substring(r,s));let n=s+1,a=!1,i="";for(;n<e.length;){if(a)e[n]===i&&"\\"!==e[n-1]&&(a=!1);else if('"'===e[n]||"'"===e[n])a=!0,i=e[n];else if("]"===e[n])break;n++}t.push(e.substring(s+1,n)),s=r=n+1}else s++;return r<e.length&&t.push(e.substring(r)),t.length>0?t:[e]}isArrayIndex(e){return/^-?\d+$/.test(e)}isArrayAccess(e){return e.startsWith("[")||this.isArrayIndex(e)}stripQuotes(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.substring(1,e.length-1):e}getDataFromArray(e,t,r){if(!Array.isArray(e))throw new(0,j.KIRuntimeException)(ep.StringFormatter.format("Expected an array but found $",e));let s=parseInt(t);if(isNaN(s))throw new(0,j.KIRuntimeException)(ep.StringFormatter.format("Expected an array index but found $",t));if(s<0)throw new(0,j.KIRuntimeException)(ep.StringFormatter.format("Array index is out of bound - $",t));let n=e[s];return m(n)&&(n=r?[]:{},e[s]=n),n}getDataFromObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new(0,j.KIRuntimeException)(ep.StringFormatter.format("Expected an object but found $",e));let s=e[t];return m(s)&&(s=r?[]:{},e[t]=s),s}putDataInArray(e,t,r){if(!Array.isArray(e))throw new(0,j.KIRuntimeException)(ep.StringFormatter.format("Expected an array but found $",e));let s=parseInt(t);if(isNaN(s))throw new(0,j.KIRuntimeException)(ep.StringFormatter.format("Expected an array index but found $",t));if(s<0)throw new(0,j.KIRuntimeException)(ep.StringFormatter.format("Array index is out of bound - $",t));e[s]=r}putDataInObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new(0,j.KIRuntimeException)(ep.StringFormatter.format("Expected an object but found $",e));e[t]=r}constructor(...e){super(...e),this.signature=new K("Set").setNamespace(A.SYSTEM_CTX).setParameters(new Map([V.ofEntry(rd,new b().setName(rd).setType(d.of(f.STRING)).setMinLength(1),!1),V.ofEntry(r_,b.ofAny(r_))])).setEvents(new Map([Y.outputEventMapEntry(new Map)]))}}var j=h("7pym4");let rO="value",rI="eventName",ry="results";class rP extends eR{getSignature(){return this.signature}async internalExecute(e){let t=e.getEvents(),r=e.getArguments(),s=r?.get(rI),n=e?.getArguments()?.get(ry).map(t=>{let r=t[rO];if(m(r))throw new(0,j.KIRuntimeException)("Expect a value object");let s=r.value;return r.isExpression&&(s=new rS(s).evaluate(e.getValuesMap())),[t.name,s]}).reduce((e,t)=>(e.set(t[0],t[1]),e),new Map);return t?.has(s)||t?.set(s,[]),t?.get(s)?.push(n),new W([H.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new K("GenerateEvent").setNamespace(A.SYSTEM).setParameters(new Map([V.ofEntry(rI,b.ofString(rI).setDefaultValue("output")),V.ofEntry(ry,b.ofObject(ry).setProperties(new Map([["name",b.ofString("name")],[rO,V.EXPRESSION]])),!0)])).setEvents(new Map([Y.outputEventMapEntry(new Map)]))}}class rx extends eR{static{this.CONDITION="condition"}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rx.CONDITION);return new W([H.of(t||""===t?Y.TRUE:Y.FALSE,new Map),H.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new K("If").setNamespace(A.SYSTEM).setParameters(new Map([V.ofEntry(rx.CONDITION,b.ofAny(rx.CONDITION))])).setEvents(new Map([Y.eventMapEntry(Y.TRUE,new Map),Y.eventMapEntry(Y.FALSE,new Map),Y.outputEventMapEntry(new Map)]))}}let rw="stepName";class rL extends eR{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rw);return e.getExecutionContext().set(t,!0),new W([H.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new K("Break").setNamespace(A.SYSTEM_LOOP).setParameters(new Map([V.ofEntry(rw,b.of(rw,f.STRING))])).setEvents(new Map([Y.outputEventMapEntry(new Map([]))]))}}let rv="count",rb="value",rD="index";class rC extends eR{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rv),r=0,s=e.getStatementExecution()?.getStatement()?.getStatementName();return new W({next(){if(r>=t||s&&e.getExecutionContext()?.get(s))return s&&e.getExecutionContext()?.delete(s),H.outputOf(new Map([[rb,r]]));let n=H.of(Y.ITERATION,new Map([[rD,r]]));return++r,n}})}constructor(...e){super(...e),this.signature=new K("CountLoop").setNamespace(A.SYSTEM_LOOP).setParameters(new Map([V.ofEntry(rv,b.of(rv,f.INTEGER))])).setEvents(new Map([Y.eventMapEntry(Y.ITERATION,new Map([[rD,b.of(rD,f.INTEGER)]])),Y.outputEventMapEntry(new Map([[rb,b.of(rb,f.INTEGER)]]))]))}}let rU="source",rV="each",rk="index",r$="value";class rG extends eR{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rU),r=0,s=e.getStatementExecution()?.getStatement()?.getStatementName();return new W({next(){if(r>=t.length||s&&e.getExecutionContext()?.get(s))return s&&e.getExecutionContext()?.delete(s),H.outputOf(new Map([[r$,r]]));let n=H.of(Y.ITERATION,new Map([[rk,r],[rV,t[r]]]));return++r,n}})}constructor(...e){super(...e),this.signature=new K("ForEachLoop").setNamespace(A.SYSTEM_LOOP).setParameters(new Map([V.ofEntry(rU,b.ofArray(rU,b.ofAny(rU)))])).setEvents(new Map([Y.eventMapEntry(Y.ITERATION,new Map([[rk,b.of(rk,f.INTEGER)],[rV,b.ofAny(rV)]])),Y.outputEventMapEntry(new Map([[r$,b.of(r$,f.INTEGER)]]))]))}}let rF="from",rB="step",rY="value",rH="index";class rj extends eR{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rF),r=e.getArguments()?.get("to"),s=e.getArguments()?.get(rB),n=s>0,a=t,i=!1,o=e.getStatementExecution()?.getStatement()?.getStatementName();return new W({next(){if(i)return;if(n&&a>=r||!n&&a<=r||o&&e.getExecutionContext()?.get(o))return i=!0,o&&e.getExecutionContext()?.delete(o),H.outputOf(new Map([[rY,a]]));let t=H.of(Y.ITERATION,new Map([[rH,a]]));return a+=s,t}})}constructor(...e){super(...e),this.signature=new K("RangeLoop").setNamespace(A.SYSTEM_LOOP).setParameters(new Map([V.ofEntry(rF,b.of(rF,f.INTEGER,f.LONG,f.FLOAT,f.DOUBLE).setDefaultValue(0)),V.ofEntry("to",b.of("to",f.INTEGER,f.LONG,f.FLOAT,f.DOUBLE).setDefaultValue(1)),V.ofEntry(rB,b.of(rB,f.INTEGER,f.LONG,f.FLOAT,f.DOUBLE).setDefaultValue(1).setNot(new b().setConstant(0)))])).setEvents(new Map([Y.eventMapEntry(Y.ITERATION,new Map([[rH,b.of(rH,f.INTEGER,f.LONG,f.FLOAT,f.DOUBLE)]])),Y.outputEventMapEntry(new Map([[rY,b.of(rY,f.INTEGER,f.LONG,f.FLOAT,f.DOUBLE)]]))]))}}let rW="value";class rK extends eR{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rW);return new W([H.outputOf(new Map([[rW,t.reduce((e,t)=>e+=t,0)]]))])}constructor(...e){super(...e),this.signature=new K("Add").setNamespace(A.MATH).setParameters(new Map([[rW,new V(rW,b.ofNumber(rW)).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([[rW,b.ofNumber(rW)]]))]))}}let rJ="value",rX="value1",rq="value2";class rQ extends eR{constructor(e,t,r=1,...s){super(),this.paramFunctions=[()=>new Map([[rJ,new V(rJ,b.ofNumber(rJ))]]),()=>new Map([[rX,new V(rX,b.ofNumber(rX))],[rq,new V(rq,b.ofNumber(rq))]])],s&&s.length||(s=[f.DOUBLE]),this.parametersNumber=r,this.mathFunction=t,this.signature=new K(e).setNamespace(A.MATH).setParameters(this.paramFunctions[r-1]()).setEvents(new Map([Y.outputEventMapEntry(new Map([[rJ,new b().setType(d.of(...s)).setName(rJ)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t,r=eI.findPrimitiveNumberType(e.getArguments()?.get(1==this.parametersNumber?rJ:rX)).getT2();return 2==this.parametersNumber&&(t=eI.findPrimitiveNumberType(e.getArguments()?.get(rq)).getT2()),new W([H.outputOf(new Map([[rJ,this.mathFunction.call(this,r,t)]]))])}}let rz="value";class rZ extends eR{constructor(){super(),this.signature=new K("Hypotenuse").setNamespace(A.MATH).setParameters(new Map([[rz,new V(rz,b.ofNumber(rz)).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([[rz,new b().setType(d.of(f.DOUBLE)).setName(rz)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rz);return new W([H.outputOf(new Map([[rz,Math.sqrt(t.reduce((e,t)=>e+=t*t,0))]]))])}}let r0="value";class r1 extends eR{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(r0);return new W([H.outputOf(new Map([[r0,t.reduce((e,t)=>!e&&0!==e||t>e?t:e)]]))])}constructor(...e){super(...e),this.signature=new K("Maximum").setNamespace(A.MATH).setParameters(new Map([[r0,new V(r0,b.ofNumber(r0)).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([[r0,b.ofNumber(r0)]]))]))}}let r2="value";class r4 extends eR{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(r2);return new W([H.outputOf(new Map([[r2,t.reduce((e,t)=>!e&&0!==e||t<e?t:e)]]))])}constructor(...e){super(...e),this.signature=new K("Minimum").setNamespace(A.MATH).setParameters(new Map([[r2,new V(r2,b.ofNumber(r2)).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([[r2,b.ofNumber(r2)]]))]))}}let r7="value";class r5 extends eR{getSignature(){return this.signature}async internalExecute(e){return new W([H.outputOf(new Map([[r7,Math.random()]]))])}constructor(...e){super(...e),this.signature=new K("Random").setNamespace(A.MATH).setEvents(new Map([Y.outputEventMapEntry($.of(r7,b.ofDouble(r7)))]))}}class r9 extends eR{static{this.MIN_VALUE="minValue"}static{this.MAX_VALUE="maxValue"}static{this.VALUE="value"}constructor(e,t,r,s,n){super(),this.signature=new K(e).setParameters($.of(r9.MIN_VALUE,t,r9.MAX_VALUE,r)).setNamespace(A.MATH).setEvents(new Map([Y.outputEventMapEntry($.of(r9.VALUE,s))])),this.randomFunction=n}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(r9.MIN_VALUE),r=e.getArguments()?.get(r9.MAX_VALUE),s=this.randomFunction(t,r);return new W([H.outputOf(new Map([[r9.VALUE,s]]))])}}class r3{constructor(){this.functionObjectsIndex={Absolute:new rQ("Absolute",e=>Math.abs(e),1,f.INTEGER,f.LONG,f.FLOAT,f.DOUBLE),ArcCosine:new rQ("ArcCosine",e=>Math.acos(e)),ArcSine:new rQ("ArcSine",e=>Math.asin(e)),ArcTangent:new rQ("ArcTangent",e=>Math.atan(e)),Ceiling:new rQ("Ceiling",e=>Math.ceil(e)),Cosine:new rQ("Cosine",e=>Math.cos(e)),HyperbolicCosine:new rQ("HyperbolicCosine",e=>Math.cosh(e)),CubeRoot:new rQ("CubeRoot",e=>Math.cbrt(e)),Exponential:new rQ("Exponential",e=>Math.exp(e)),ExponentialMinus1:new rQ("ExponentialMinus1",e=>Math.expm1(e)),Floor:new rQ("Floor",e=>Math.floor(e)),LogNatural:new rQ("LogNatural",e=>Math.log(e)),Log10:new rQ("Log10",e=>Math.log10(e)),Round:new rQ("Round",e=>Math.round(e),1,f.INTEGER,f.LONG),Sine:new rQ("Sine",e=>Math.sin(e)),HyperbolicSine:new rQ("HyperbolicSine",e=>Math.sinh(e)),Tangent:new rQ("Tangent",e=>Math.tan(e)),HyperbolicTangent:new rQ("HyperbolicTangent",e=>Math.tanh(e)),ToDegrees:new rQ("ToDegrees",e=>Math.PI/180*e),ToRadians:new rQ("ToRadians",e=>180/Math.PI*e),SquareRoot:new rQ("SquareRoot",e=>Math.sqrt(e)),ArcTangent2:new rQ("ArcTangent2",(e,t)=>Math.atan2(e,t),2),Power:new rQ("Power",(e,t)=>Math.pow(e,t),2),Add:new rK,Hypotenuse:new rZ,Maximum:new r1,Minimum:new r4,Random:new r5,RandomFloat:new r9("RandomFloat",V.of(r9.MIN_VALUE,b.ofFloat(r9.MIN_VALUE).setDefaultValue(0)),V.of(r9.MAX_VALUE,b.ofFloat(r9.MAX_VALUE).setDefaultValue(0x7fffffff)),b.ofFloat(r9.VALUE),(e,t)=>Math.random()*(t-e)+e),RandomInt:new r9("RandomInt",V.of(r9.MIN_VALUE,b.ofInteger(r9.MIN_VALUE).setDefaultValue(0)),V.of(r9.MAX_VALUE,b.ofInteger(r9.MAX_VALUE).setDefaultValue(0x7fffffff)),b.ofInteger(r9.VALUE),(e,t)=>Math.round(Math.random()*(t-e)+e)),RandomLong:new r9("RandomLong",V.of(r9.MIN_VALUE,b.ofLong(r9.MIN_VALUE).setDefaultValue(0)),V.of(r9.MAX_VALUE,b.ofLong(r9.MAX_VALUE).setDefaultValue(Number.MAX_SAFE_INTEGER)),b.ofLong(r9.VALUE),(e,t)=>Math.round(Math.random()*(t-e)+e)),RandomDouble:new r9("RandomDouble",V.of(r9.MIN_VALUE,b.ofDouble(r9.MIN_VALUE).setDefaultValue(0)),V.of(r9.MAX_VALUE,b.ofDouble(r9.MAX_VALUE).setDefaultValue(Number.MAX_VALUE)),b.ofDouble(r9.VALUE),(e,t)=>Math.random()*(t-e)+e)},this.filterableNames=Object.values(this.functionObjectsIndex).map(e=>e.getSignature().getFullName())}async find(e,t){return e!=A.MATH?Promise.resolve(void 0):Promise.resolve(this.functionObjectsIndex[t])}async filter(e){return Promise.resolve(this.filterableNames.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}var j=h("7pym4");class r6 extends eR{static{this.SOURCE="source"}static{this.SCHEMA="schema"}static{this.VALUE="value"}static{this.CONVERSION_MODE="conversionMode"}getSignature(){return this.signature}internalExecute(e){let t=e.getArguments()?.get(r6.SOURCE),r=b.from(e?.getArguments()?.get(r6.SCHEMA));if(!r)throw new(0,j.KIRuntimeException)("Schema is not supplied.");let s=eE[(e.getArguments()?.get(r6.CONVERSION_MODE)).toUpperCase()]||eE.STRICT;return this.convertToSchema(r,e.getSchemaRepository(),t,s)}async convertToSchema(e,t,r,s){try{return new W([H.outputOf($.of(r6.VALUE,ef.validate([],e,t,r,!0,s)))])}catch(e){throw new(0,j.KIRuntimeException)(e?.message)}}constructor(...e){super(...e),this.signature=new K("ObjectConvert").setNamespace(A.SYSTEM_OBJECT).setParameters(new Map([V.ofEntry(r6.SOURCE,b.ofAny(r6.SCHEMA)),V.ofEntry(r6.SCHEMA,b.SCHEMA,!1,C.CONSTANT),V.ofEntry(r6.CONVERSION_MODE,b.ofString(r6.CONVERSION_MODE).setEnums(Object.values(eE)))])).setEvents(new Map([Y.outputEventMapEntry($.of(r6.VALUE,b.ofAny(r6.VALUE)))]))}}let r8="value",se="source";class st extends eR{constructor(){super(),this.signature=new K("ObjectDeleteKey").setNamespace(A.SYSTEM_OBJECT).setParameters(new Map([V.ofEntry(se,b.ofAny(se)),V.ofEntry("key",b.ofString("key"))])).setEvents(new Map([Y.outputEventMapEntry(new Map([[r8,b.ofAny(r8)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(se),r=e.getArguments()?.get("key");return m(t)?new W([H.outputOf(new Map([[r8,void 0]]))]):(t=ew(t),delete t[r],new W([H.outputOf(new Map([[r8,t]]))]))}}let sr="source";class ss extends eR{constructor(e,t){super(),this.signature=new K(e).setNamespace(A.SYSTEM_OBJECT).setParameters(new Map([V.ofEntry(sr,b.ofAny(sr))])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",t]]))]))}getSignature(){return this.signature}}let sn="value";class sa extends ss{constructor(){super("ObjectEntries",b.ofArray(sn,b.ofArray("tuple",b.ofString("key"),b.ofAny("value"))))}async internalExecute(e){var t=e.getArguments()?.get("source");if(m(t))return new W([H.outputOf(new Map([[sn,[]]]))]);let r=Object.entries(ew(t)).sort((e,t)=>e[0].localeCompare(t[0]));return new W([H.outputOf(new Map([[sn,r]]))])}}let si="value";class so extends ss{constructor(){super("ObjectKeys",b.ofArray(si,b.ofString(si)))}async internalExecute(e){var t=e.getArguments()?.get("source");if(m(t))return new W([H.outputOf(new Map([[si,[]]]))]);let r=Object.keys(ew(t)).sort((e,t)=>e.localeCompare(t));return new W([H.outputOf(new Map([[si,r]]))])}}let sE="value",su="source",sl="overwrite",sp="deleteKeyOnNull";class sh extends eR{constructor(){super(),this.signature=new K("ObjectPutValue").setNamespace(A.SYSTEM_OBJECT).setParameters(new Map([V.ofEntry(su,b.ofObject(su)),V.ofEntry("key",b.ofString("key")),V.ofEntry(sE,b.ofAny(sE)),V.ofEntry(sl,b.ofBoolean(sl).setDefaultValue(!0)),V.ofEntry(sp,b.ofBoolean(sp).setDefaultValue(!1))])).setEvents(new Map([Y.outputEventMapEntry(new Map([[sE,b.ofObject(sE)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(su),r=e.getArguments()?.get("key"),s=e.getArguments()?.get(sE),n=e.getArguments()?.get(sl),a=e.getArguments()?.get(sp),i=new eZ(t,"Data.");return i.setValue(r,s,n,a),new W([H.outputOf(new Map([[sE,i.getStore()]]))])}}let sc="value";class sT extends ss{constructor(){super("ObjectValues",b.ofArray(sc,b.ofAny(sc)))}async internalExecute(e){var t=e.getArguments()?.get("source");if(m(t))return new W([H.outputOf(new Map([[sc,[]]]))]);let r=Object.entries(ew(t)).sort((e,t)=>e[0].localeCompare(t[0])).map(e=>e[1]);return new W([H.outputOf(new Map([[sc,r]]))])}}class sA{constructor(){this.functionObjectsIndex={ObjectValues:new sT,ObjectKeys:new so,ObjectEntries:new sa,ObjectDeleteKey:new st,ObjectPutValue:new sh,ObjectConvert:new r6},this.filterableNames=Object.values(this.functionObjectsIndex).map(e=>e.getSignature().getFullName())}async find(e,t){return e!=A.SYSTEM_OBJECT?Promise.resolve(void 0):Promise.resolve(this.functionObjectsIndex[t])}async filter(e){return Promise.resolve(this.filterableNames.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}class sm extends eR{static{this.VALUES="values"}static{this.STREAM="stream"}static{this.LOG="LOG"}static{this.ERROR="ERROR"}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(sm.VALUES),r=e.getArguments()?.get(sm.STREAM);return(r===sm.LOG?console?.log:console?.error)?.(...t),new W([H.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new K("Print").setNamespace(A.SYSTEM).setParameters(new Map([V.ofEntry(sm.VALUES,b.ofAny(sm.VALUES),!0),V.ofEntry(sm.STREAM,b.ofString(sm.STREAM).setEnums([sm.LOG,sm.ERROR]).setDefaultValue(sm.LOG))])).setEvents(new Map([Y.outputEventMapEntry(new Map)]))}}class sg extends eR{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_SEARCH_STRING_NAME="searchString"}static{this.PARAMETER_SECOND_STRING_NAME="secondString"}static{this.PARAMETER_THIRD_STRING_NAME="thirdString"}static{this.PARAMETER_INDEX_NAME="index"}static{this.PARAMETER_SECOND_INDEX_NAME="secondIndex"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new V(sg.PARAMETER_STRING_NAME,b.ofString(sg.PARAMETER_STRING_NAME))}static{this.PARAMETER_SECOND_STRING=new V(sg.PARAMETER_SECOND_STRING_NAME,b.ofString(sg.PARAMETER_SECOND_STRING_NAME))}static{this.PARAMETER_THIRD_STRING=new V(sg.PARAMETER_THIRD_STRING_NAME,b.ofString(sg.PARAMETER_THIRD_STRING_NAME))}static{this.PARAMETER_INDEX=new V(sg.PARAMETER_INDEX_NAME,b.ofInteger(sg.PARAMETER_INDEX_NAME))}static{this.PARAMETER_SECOND_INDEX=new V(sg.PARAMETER_SECOND_INDEX_NAME,b.ofInteger(sg.PARAMETER_SECOND_INDEX_NAME))}static{this.PARAMETER_SEARCH_STRING=new V(sg.PARAMETER_SEARCH_STRING_NAME,b.ofString(sg.PARAMETER_STRING_NAME))}static{this.EVENT_STRING=new Y(Y.OUTPUT,$.of(sg.EVENT_RESULT_NAME,b.ofString(sg.EVENT_RESULT_NAME)))}static{this.EVENT_BOOLEAN=new Y(Y.OUTPUT,$.of(sg.EVENT_RESULT_NAME,b.ofBoolean(sg.EVENT_RESULT_NAME)))}static{this.EVENT_INT=new Y(Y.OUTPUT,$.of(sg.EVENT_RESULT_NAME,b.ofInteger(sg.EVENT_RESULT_NAME)))}static{this.EVENT_ARRAY=new Y(Y.OUTPUT,$.of(sg.EVENT_RESULT_NAME,b.ofArray(sg.EVENT_RESULT_NAME)))}constructor(e,t,r,...s){super();let n=new Map;s.forEach(e=>n.set(e.getParameterName(),e)),this.signature=new K(t).setNamespace(e).setParameters(n).setEvents($.of(r.getName(),r))}getSignature(){return this.signature}static ofEntryStringStringAndBooleanOutput(e,t){return[e,new class extends sg{async internalExecute(e){let r=e?.getArguments()?.get(sg.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sg.PARAMETER_SEARCH_STRING_NAME);return new W([H.outputOf($.of(sg.EVENT_RESULT_NAME,t(r,s)))])}}(A.STRING,e,sg.EVENT_BOOLEAN,sg.PARAMETER_STRING,sg.PARAMETER_SEARCH_STRING)]}static ofEntryStringIntegerAndStringOutput(e,t){return[e,new class extends sg{async internalExecute(e){let r=e?.getArguments()?.get(sg.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sg.PARAMETER_INDEX_NAME);return new W([H.outputOf($.of(sg.EVENT_RESULT_NAME,t(r,s)))])}}(A.STRING,e,sg.EVENT_STRING,sg.PARAMETER_STRING,sg.PARAMETER_INDEX)]}static ofEntryStringStringAndIntegerOutput(e,t){return[e,new class extends sg{async internalExecute(e){let r=e?.getArguments()?.get(sg.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sg.PARAMETER_SEARCH_STRING_NAME);return new W([H.outputOf($.of(sg.EVENT_RESULT_NAME,t(r,s)))])}}(A.STRING,e,sg.EVENT_INT,sg.PARAMETER_STRING,sg.PARAMETER_SEARCH_STRING)]}static ofEntryStringAndStringOutput(e,t){return[e,new class extends sg{async internalExecute(e){let r=e?.getArguments()?.get(sg.PARAMETER_STRING_NAME);return new W([H.outputOf($.of(sg.EVENT_RESULT_NAME,t(r)))])}}(A.STRING,e,sg.EVENT_STRING,sg.PARAMETER_STRING)]}static ofEntryStringAndBooleanOutput(e,t){return[e,new class extends sg{async internalExecute(e){let r=e?.getArguments()?.get(sg.PARAMETER_STRING_NAME);return new W([H.outputOf($.of(sg.EVENT_RESULT_NAME,t(r)))])}}(A.STRING,e,sg.EVENT_BOOLEAN,sg.PARAMETER_STRING)]}static ofEntryStringStringIntegerAndIntegerOutput(e,t){return[e,new class extends sg{async internalExecute(e){let r=e?.getArguments()?.get(sg.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sg.PARAMETER_SEARCH_STRING_NAME),n=e?.getArguments()?.get(sg.PARAMETER_INDEX_NAME);return new W([H.outputOf($.of(sg.EVENT_RESULT_NAME,t(r,s,n)))])}}(A.STRING,e,sg.EVENT_INT,sg.PARAMETER_STRING,sg.PARAMETER_SEARCH_STRING,sg.PARAMETER_INDEX)]}static ofEntryStringIntegerIntegerAndStringOutput(e,t){return[e,new class extends sg{async internalExecute(e){let r=e?.getArguments()?.get(sg.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sg.PARAMETER_INDEX_NAME),n=e?.getArguments()?.get(sg.PARAMETER_SECOND_INDEX_NAME);return new W([H.outputOf($.of(sg.EVENT_RESULT_NAME,t(r,s,n)))])}}(A.STRING,e,sg.EVENT_STRING,sg.PARAMETER_STRING,sg.PARAMETER_INDEX,sg.PARAMETER_SECOND_INDEX)]}static ofEntryStringStringStringAndStringOutput(e,t){return[e,new class extends sg{async internalExecute(e){let r=e?.getArguments()?.get(sg.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sg.PARAMETER_SECOND_STRING_NAME),n=e?.getArguments()?.get(sg.PARAMETER_THIRD_STRING_NAME);return new W([H.outputOf($.of(sg.EVENT_RESULT_NAME,t(r,s,n)))])}}(A.STRING,e,sg.EVENT_STRING,sg.PARAMETER_STRING,sg.PARAMETER_SECOND_STRING,sg.PARAMETER_THIRD_STRING)]}static ofEntryStringAndIntegerOutput(e,t){return[e,new class extends sg{async internalExecute(e){let r=e?.getArguments()?.get(sg.PARAMETER_STRING_NAME);return new W([H.outputOf($.of(sg.EVENT_RESULT_NAME,t(r)))])}}(A.STRING,e,sg.EVENT_INT,sg.PARAMETER_STRING)]}}class sf extends eR{static{this.VALUE="value"}constructor(){super(),this.signature=new K("Concatenate").setNamespace(A.STRING).setParameters(new Map([[sf.VALUE,new V(sf.VALUE,new b().setName(sf.VALUE).setType(new S(f.STRING))).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([[sf.VALUE,b.ofString(sf.VALUE)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(sf.VALUE),r="";return t.reduce((e,t)=>r=e+t,r),new W([H.outputOf(new Map([[sf.VALUE,r]]))])}}class sR extends eR{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_AT_START_NAME="startPosition"}static{this.PARAMETER_AT_END_NAME="endPosition"}static{this.EVENT_RESULT_NAME="result"}constructor(){super(),this.PARAMETER_STRING=new V(sR.PARAMETER_STRING_NAME,b.ofString(sR.PARAMETER_STRING_NAME)),this.PARAMETER_AT_START=new V(sR.PARAMETER_AT_START_NAME,b.ofInteger(sR.PARAMETER_AT_START_NAME)),this.PARAMETER_AT_END=new V(sR.PARAMETER_AT_END_NAME,b.ofInteger(sR.PARAMETER_AT_END_NAME)),this.EVENT_STRING=new Y(Y.OUTPUT,new Map([[sR.EVENT_RESULT_NAME,b.ofString(sR.EVENT_RESULT_NAME)]])),this.signature=new K("DeleteForGivenLength").setNamespace(A.STRING).setParameters(new Map([[this.PARAMETER_STRING.getParameterName(),this.PARAMETER_STRING],[this.PARAMETER_AT_START.getParameterName(),this.PARAMETER_AT_START],[this.PARAMETER_AT_END.getParameterName(),this.PARAMETER_AT_END]])).setEvents(new Map([[this.EVENT_STRING.getName(),this.EVENT_STRING]]))}getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(sR.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(sR.PARAMETER_AT_START_NAME),s=e?.getArguments()?.get(sR.PARAMETER_AT_END_NAME);if(s>=r){let e="";return e+=t.substring(0,r),e+=t.substring(s),new W([H.outputOf(new Map([[sR.EVENT_RESULT_NAME,e.toString()]]))])}return new W([H.outputOf(new Map([[sR.EVENT_RESULT_NAME,t]]))])}}class sN extends eR{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_AT_POSITION_NAME="position"}static{this.PARAMETER_INSERT_STRING_NAME="insertString"}getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(sN.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(sN.PARAMETER_AT_POSITION_NAME),s=e?.getArguments()?.get(sN.PARAMETER_INSERT_STRING_NAME),n="";return n+=t.substring(0,r),n+=s,n+=t.substring(r),new W([H.outputOf(new Map([[this.EVENT_RESULT_NAME,n]]))])}constructor(...e){super(...e),this.EVENT_RESULT_NAME="result",this.PARAMETER_STRING=new V(sN.PARAMETER_STRING_NAME,b.ofString(sN.PARAMETER_STRING_NAME)),this.PARAMETER_AT_POSITION=new V(sN.PARAMETER_AT_POSITION_NAME,b.ofInteger(sN.PARAMETER_AT_POSITION_NAME)),this.PARAMETER_INSERT_STRING=new V(sN.PARAMETER_INSERT_STRING_NAME,b.ofString(sN.PARAMETER_INSERT_STRING_NAME)),this.EVENT_STRING=new Y(Y.OUTPUT,new Map([[this.EVENT_RESULT_NAME,b.ofString(this.EVENT_RESULT_NAME)]])),this.signature=new K("InsertAtGivenPosition").setNamespace(A.STRING).setParameters(new Map([[this.PARAMETER_STRING.getParameterName(),this.PARAMETER_STRING],[this.PARAMETER_AT_POSITION.getParameterName(),this.PARAMETER_AT_POSITION],[this.PARAMETER_INSERT_STRING.getParameterName(),this.PARAMETER_INSERT_STRING]])).setEvents(new Map([Y.outputEventMapEntry(new Map([[this.EVENT_RESULT_NAME,b.ofString(this.EVENT_RESULT_NAME)]]))]))}}class sS extends eR{static{this.PARAMETER_REGEX_NAME="regex"}static{this.PARAMETER_STRING_NAME="string"}static{this.EVENT_RESULT_NAME="result"}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(sS.PARAMETER_REGEX_NAME),r=e.getArguments()?.get(sS.PARAMETER_STRING_NAME);return new W([H.outputOf(new Map([[sS.EVENT_RESULT_NAME,!!r.match(t)?.length]]))])}constructor(...e){super(...e),this.signature=new K("Matches").setNamespace(A.STRING).setParameters($.ofEntries($.entry(...V.ofEntry(sS.PARAMETER_REGEX_NAME,b.ofString(sS.PARAMETER_REGEX_NAME))),$.entry(...V.ofEntry(sS.PARAMETER_STRING_NAME,b.ofString(sS.PARAMETER_STRING_NAME))))).setEvents($.ofEntries($.entry(...Y.outputEventMapEntry(new Map([[sS.EVENT_RESULT_NAME,b.ofBoolean(sS.EVENT_RESULT_NAME)]])))))}}class sd extends eR{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_POSTPAD_STRING_NAME="postpadString"}static{this.PARAMETER_LENGTH_NAME="length"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new V(sd.PARAMETER_STRING_NAME,b.ofString(sd.PARAMETER_STRING_NAME))}static{this.PARAMETER_POSTPAD_STRING=new V(sd.PARAMETER_POSTPAD_STRING_NAME,b.ofString(sd.PARAMETER_POSTPAD_STRING_NAME))}static{this.PARAMETER_LENGTH=new V(sd.PARAMETER_LENGTH_NAME,b.ofInteger(sd.PARAMETER_LENGTH_NAME))}static{this.EVENT_STRING=new Y(Y.OUTPUT,new Map([[sd.EVENT_RESULT_NAME,b.ofString(sd.EVENT_RESULT_NAME)]]))}constructor(){super(),this.signature=new K("PostPad").setNamespace(A.STRING).setParameters(new Map([[sd.PARAMETER_STRING.getParameterName(),sd.PARAMETER_STRING],[sd.PARAMETER_POSTPAD_STRING.getParameterName(),sd.PARAMETER_POSTPAD_STRING],[sd.PARAMETER_LENGTH.getParameterName(),sd.PARAMETER_LENGTH]])).setEvents(new Map([[sd.EVENT_STRING.getName(),sd.EVENT_STRING]]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(sd.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(sd.PARAMETER_POSTPAD_STRING_NAME),s=e.getArguments()?.get(sd.PARAMETER_LENGTH_NAME),n="",a=r.length;for(n+=t;a<=s;)n+=r,a+=r.length;return n.length-t.length<s&&(n+=r.substring(0,s-(n.length-t.length))),new W([H.outputOf(new Map([[sd.EVENT_RESULT_NAME,n.toString()]]))])}}class s_ extends eR{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_PREPAD_STRING_NAME="prepadString"}static{this.PARAMETER_LENGTH_NAME="length"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new V(s_.PARAMETER_STRING_NAME,b.ofString(s_.PARAMETER_STRING_NAME))}static{this.PARAMETER_PREPAD_STRING=new V(s_.PARAMETER_PREPAD_STRING_NAME,b.ofString(s_.PARAMETER_PREPAD_STRING_NAME))}static{this.PARAMETER_LENGTH=new V(s_.PARAMETER_LENGTH_NAME,b.ofInteger(s_.PARAMETER_LENGTH_NAME))}static{this.EVENT_STRING=new Y(Y.OUTPUT,new Map([[s_.EVENT_RESULT_NAME,b.ofString(s_.EVENT_RESULT_NAME)]]))}getSignature(){return this.signature}constructor(){super(),this.signature=new K("PrePad").setNamespace(A.STRING).setParameters(new Map([[s_.PARAMETER_STRING.getParameterName(),s_.PARAMETER_STRING],[s_.PARAMETER_PREPAD_STRING.getParameterName(),s_.PARAMETER_PREPAD_STRING],[s_.PARAMETER_LENGTH.getParameterName(),s_.PARAMETER_LENGTH]])).setEvents(new Map([[s_.EVENT_STRING.getName(),s_.EVENT_STRING]]))}async internalExecute(e){let t=e.getArguments()?.get(s_.PARAMETER_STRING_NAME),r=e.getArguments()?.get(s_.PARAMETER_PREPAD_STRING_NAME),s=e.getArguments()?.get(s_.PARAMETER_LENGTH_NAME),n="",a=r.length;for(;a<=s;)n+=r,a+=r.length;return n.length<s&&(n+=r.substring(0,s-n.length)),n+=t,new W([H.outputOf(new Map([[s_.EVENT_RESULT_NAME,n]]))])}}class sM extends eR{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_BOOLEAN_NAME="boolean"}static{this.PARAMETER_FIRST_OFFSET_NAME="firstOffset"}static{this.PARAMETER_OTHER_STRING_NAME="otherString"}static{this.PARAMETER_SECOND_OFFSET_NAME="secondOffset"}static{this.PARAMETER_INTEGER_NAME="length"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new V(sM.PARAMETER_STRING_NAME,b.ofString(sM.PARAMETER_STRING_NAME))}static{this.PARAMETER_OTHER_STRING=new V(sM.PARAMETER_OTHER_STRING_NAME,b.ofString(sM.PARAMETER_OTHER_STRING_NAME))}static{this.PARAMETER_FIRST_OFFSET=new V(sM.PARAMETER_FIRST_OFFSET_NAME,b.ofInteger(sM.PARAMETER_FIRST_OFFSET_NAME))}static{this.PARAMETER_SECOND_OFFSET=new V(sM.PARAMETER_SECOND_OFFSET_NAME,b.ofInteger(sM.PARAMETER_SECOND_OFFSET_NAME))}static{this.PARAMETER_INTEGER=new V(sM.PARAMETER_INTEGER_NAME,b.ofInteger(sM.PARAMETER_INTEGER_NAME))}static{this.PARAMETER_BOOLEAN=new V(sM.PARAMETER_BOOLEAN_NAME,b.ofBoolean(sM.PARAMETER_BOOLEAN_NAME))}static{this.EVENT_BOOLEAN=new Y(Y.OUTPUT,new Map([[sM.EVENT_RESULT_NAME,b.ofBoolean(sM.EVENT_RESULT_NAME)]]))}getSignature(){return this.signature}constructor(){super(),this.signature=new K("RegionMatches").setNamespace(A.STRING).setParameters(new Map([[sM.PARAMETER_STRING.getParameterName(),sM.PARAMETER_STRING],[sM.PARAMETER_BOOLEAN.getParameterName(),sM.PARAMETER_BOOLEAN],[sM.PARAMETER_FIRST_OFFSET.getParameterName(),sM.PARAMETER_FIRST_OFFSET],[sM.PARAMETER_OTHER_STRING.getParameterName(),sM.PARAMETER_OTHER_STRING],[sM.PARAMETER_SECOND_OFFSET.getParameterName(),sM.PARAMETER_SECOND_OFFSET],[sM.PARAMETER_INTEGER.getParameterName(),sM.PARAMETER_INTEGER]])).setEvents(new Map([[sM.EVENT_BOOLEAN.getName(),sM.EVENT_BOOLEAN]]))}async internalExecute(e){let t=e.getArguments()?.get(sM.PARAMETER_STRING_NAME),r=e.getArguments()?.get(sM.PARAMETER_BOOLEAN_NAME),s=e.getArguments()?.get(sM.PARAMETER_FIRST_OFFSET_NAME),n=e?.getArguments()?.get(sM.PARAMETER_OTHER_STRING_NAME),a=e?.getArguments()?.get(sM.PARAMETER_SECOND_OFFSET_NAME),i=e.getArguments()?.get(sM.PARAMETER_INTEGER_NAME),o=!1;return o=!(s<0)&&!(a<0)&&!(s+i>t.length)&&!(a+i>n.length)&&(r?(t=t.substring(s,s+i).toUpperCase())==n.substring(a,a+i).toUpperCase():(t=t.substring(s,s+i))==n.substring(a,i)),new W([H.outputOf(new Map([[sM.EVENT_RESULT_NAME,o]]))])}}class sO extends eR{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_AT_START_NAME="startPosition"}static{this.PARAMETER_AT_LENGTH_NAME="lengthPosition"}static{this.PARAMETER_REPLACE_STRING_NAME="replaceString"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new V(sO.PARAMETER_STRING_NAME,b.ofString(sO.PARAMETER_STRING_NAME))}static{this.PARAMETER_AT_START=new V(sO.PARAMETER_AT_START_NAME,b.ofInteger(sO.PARAMETER_AT_START_NAME))}static{this.PARAMETER_AT_LENGTH=new V(sO.PARAMETER_AT_LENGTH_NAME,b.ofInteger(sO.PARAMETER_AT_LENGTH_NAME))}static{this.PARAMETER_REPLACE_STRING=new V(sO.PARAMETER_REPLACE_STRING_NAME,b.ofString(sO.PARAMETER_REPLACE_STRING_NAME))}static{this.EVENT_STRING=new Y(Y.OUTPUT,new Map([[sO.EVENT_RESULT_NAME,b.ofString(sO.EVENT_RESULT_NAME)]]))}constructor(){super(),this.signature=new K("ReplaceAtGivenPosition").setNamespace(A.STRING).setParameters(new Map([[sO.PARAMETER_STRING.getParameterName(),sO.PARAMETER_STRING],[sO.PARAMETER_AT_START.getParameterName(),sO.PARAMETER_AT_START],[sO.PARAMETER_AT_LENGTH.getParameterName(),sO.PARAMETER_AT_LENGTH],[sO.PARAMETER_REPLACE_STRING.getParameterName(),sO.PARAMETER_REPLACE_STRING]])).setEvents(new Map([[sO.EVENT_STRING.getName(),sO.EVENT_STRING]]))}getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(sO.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(sO.PARAMETER_AT_START_NAME),s=e?.getArguments()?.get(sO.PARAMETER_AT_LENGTH_NAME),n=e?.getArguments()?.get(sO.PARAMETER_REPLACE_STRING_NAME);if(t.length,r<s){let e="";e+=t.substring(0,r),e+=n,e+=t.substring(r+s)}return new W([H.outputOf(new Map([[sO.EVENT_RESULT_NAME,t]]))])}}class sI extends eR{constructor(){super(),this.VALUE="value",this.signature=new K("Reverse").setNamespace(A.STRING).setParameters(new Map([[this.VALUE,new V(this.VALUE,b.ofString(this.VALUE)).setVariableArgument(!1)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([[this.VALUE,new b().setType(d.of(f.STRING)).setName(this.VALUE)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(this.VALUE),r=t.length-1,s="";for(;r>=0;)s+=t.charAt(r--);return new W([H.outputOf($.of(this.VALUE,s))])}}class sy extends eR{getSignature(){return this.signature}constructor(){super(),this.PARAMETER_STRING_NAME="string",this.PARAMETER_SPLIT_STRING_NAME="searchString",this.EVENT_RESULT_NAME="result",this.PARAMETER_STRING=new V(this.PARAMETER_STRING_NAME,b.ofString(this.PARAMETER_STRING_NAME)),this.PARAMETER_SPLIT_STRING=new V(this.PARAMETER_SPLIT_STRING_NAME,b.ofString(this.PARAMETER_SPLIT_STRING_NAME)),this.EVENT_ARRAY=new Y(Y.OUTPUT,$.of(this.EVENT_RESULT_NAME,b.ofArray(this.EVENT_RESULT_NAME))),this.signature=new K("Split").setNamespace(A.STRING).setParameters(new Map([[this.PARAMETER_STRING_NAME,this.PARAMETER_STRING],[this.PARAMETER_SPLIT_STRING_NAME,this.PARAMETER_SPLIT_STRING]])).setEvents(new Map([Y.outputEventMapEntry(new Map([[this.EVENT_RESULT_NAME,b.ofArray(this.EVENT_RESULT_NAME)]]))]))}async internalExecute(e){let t=e.getArguments()?.get(this.PARAMETER_STRING_NAME),r=e.getArguments()?.get(this.PARAMETER_SPLIT_STRING_NAME);return new W([H.outputOf($.of(this.EVENT_RESULT_NAME,t.split(r)))])}}class sP extends eR{getSignature(){return this.signature}constructor(){super(),this.PARAMETER_INPUT_ANYTYPE_NAME="anytype",this.EVENT_RESULT_NAME="result",this.PARAMETER_INPUT_ANYTYPE=new V(this.PARAMETER_INPUT_ANYTYPE_NAME,b.ofAny(this.PARAMETER_INPUT_ANYTYPE_NAME)),this.EVENT_STRING=new Y(Y.OUTPUT,new Map([[this.EVENT_RESULT_NAME,b.ofString(this.EVENT_RESULT_NAME)]])),this.signature=new K("ToString").setNamespace(A.STRING).setParameters(new Map([[this.PARAMETER_INPUT_ANYTYPE.getParameterName(),this.PARAMETER_INPUT_ANYTYPE]])).setEvents(new Map([[this.EVENT_STRING.getName(),this.EVENT_STRING]]))}async internalExecute(e){let t=e.getArguments()?.get(this.PARAMETER_INPUT_ANYTYPE_NAME),r="";return r="object"==typeof t?JSON.stringify(t,void 0,2):""+t,new W([H.outputOf(new Map([[this.EVENT_RESULT_NAME,r]]))])}}class sx extends eR{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_LENGTH_NAME="length"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new V(sx.PARAMETER_STRING_NAME,b.ofString(sx.PARAMETER_STRING_NAME))}static{this.PARAMETER_LENGTH=new V(sx.PARAMETER_LENGTH_NAME,b.ofInteger(sx.PARAMETER_LENGTH_NAME))}static{this.EVENT_STRING=new Y(Y.OUTPUT,new Map([[sx.EVENT_RESULT_NAME,b.ofString(sx.EVENT_RESULT_NAME)]]))}getSignature(){return this.signature}constructor(){super(),this.signature=new K("TrimTo").setNamespace(A.STRING).setParameters(new Map([[sx.PARAMETER_STRING.getParameterName(),sx.PARAMETER_STRING],[sx.PARAMETER_LENGTH.getParameterName(),sx.PARAMETER_LENGTH]])).setEvents(new Map([[sx.EVENT_STRING.getName(),sx.EVENT_STRING]]))}async internalExecute(e){let t=e.getArguments()?.get(sx.PARAMETER_STRING_NAME),r=e.getArguments()?.get(sx.PARAMETER_LENGTH_NAME);return new W([H.outputOf(new Map([[sx.EVENT_RESULT_NAME,t.substring(0,r)]]))])}}class sw{async find(e,t){return e!=A.STRING?Promise.resolve(void 0):Promise.resolve(this.repoMap.get(t))}async filter(e){return Promise.resolve(this.filterableNames.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}constructor(){this.repoMap=$.ofArrayEntries(sg.ofEntryStringAndStringOutput("Trim",e=>e.trim()),sg.ofEntryStringAndStringOutput("TrimStart",e=>e.trimStart()),sg.ofEntryStringAndStringOutput("TrimEnd",e=>e.trimEnd()),sg.ofEntryStringAndIntegerOutput("Length",e=>e.length),sg.ofEntryStringStringAndIntegerOutput("Frequency",(e,t)=>{let r=0,s=e.indexOf(t);for(;-1!=s;)r++,s=e.indexOf(t,s+1);return r}),sg.ofEntryStringAndStringOutput("LowerCase",e=>e.toLocaleLowerCase()),sg.ofEntryStringAndStringOutput("UpperCase",e=>e.toUpperCase()),sg.ofEntryStringAndBooleanOutput("IsBlank",e=>""===e.trim()),sg.ofEntryStringAndBooleanOutput("IsEmpty",e=>""===e),sg.ofEntryStringStringAndBooleanOutput("Contains",(e,t)=>-1!=e.indexOf(t)),sg.ofEntryStringStringAndBooleanOutput("EndsWith",(e,t)=>e.endsWith(t)),sg.ofEntryStringStringAndBooleanOutput("StartsWith",(e,t)=>e.startsWith(t)),sg.ofEntryStringStringAndBooleanOutput("EqualsIgnoreCase",(e,t)=>e.toUpperCase()==t.toUpperCase()),sg.ofEntryStringStringAndBooleanOutput("Matches",(e,t)=>new RegExp(t).test(e)),sg.ofEntryStringStringAndIntegerOutput("IndexOf",(e,t)=>e.indexOf(t)),sg.ofEntryStringStringAndIntegerOutput("LastIndexOf",(e,t)=>e.lastIndexOf(t)),sg.ofEntryStringIntegerAndStringOutput("Repeat",(e,t)=>e.repeat(t)),sg.ofEntryStringStringIntegerAndIntegerOutput("IndexOfWithStartPoint",(e,t,r)=>e.indexOf(t,r)),sg.ofEntryStringStringIntegerAndIntegerOutput("LastIndexOfWithStartPoint",(e,t,r)=>e.lastIndexOf(t,r)),sg.ofEntryStringStringStringAndStringOutput("Replace",(e,t,r)=>e.replaceAll(t,r)),sg.ofEntryStringStringStringAndStringOutput("ReplaceFirst",(e,t,r)=>e.replace(t,r)),sg.ofEntryStringIntegerIntegerAndStringOutput("SubString",(e,t,r)=>e.substring(t,r)),B(new sf),B(new sR),B(new sN),B(new sd),B(new s_),B(new sM),B(new sO),B(new sI),B(new sy),B(new sP),B(new sx),B(new sS)),this.filterableNames=Array.from(this.repoMap.values()).map(e=>e.getSignature().getFullName())}}class sL extends eR{static{this.PARAMETER_TIMESTAMP_NAME="isoTimeStamp"}static{this.PARAMETER_TIMESTAMP_NAME_ONE="isoTimeStamp1"}static{this.PARAMETER_TIMESTAMP_NAME_TWO="isoTimeStamp2"}static{this.PARAMETER_UNIT_NAME="unit"}static{this.PARAMETER_NUMBER_NAME="number"}static{this.PARAMETER_TIMESTAMP=new V(sL.PARAMETER_TIMESTAMP_NAME,b.ofRef(A.DATE+".Timestamp"))}static{this.PARAMETER_TIMESTAMP_ONE=new V(sL.PARAMETER_TIMESTAMP_NAME_ONE,b.ofRef(A.DATE+".Timestamp"))}static{this.PARAMETER_TIMESTAMP_TWO=new V(sL.PARAMETER_TIMESTAMP_NAME_TWO,b.ofRef(A.DATE+".Timestamp"))}static{this.PARAMETER_VARIABLE_UNIT=new V(sL.PARAMETER_UNIT_NAME,b.ofRef(A.DATE+".Timeunit")).setVariableArgument(!0)}static{this.PARAMETER_UNIT=new V(sL.PARAMETER_UNIT_NAME,b.ofRef(A.DATE+".Timeunit"))}static{this.PARAMETER_NUMBER=new V(sL.PARAMETER_NUMBER_NAME,b.ofInteger(sL.PARAMETER_NUMBER_NAME))}static{this.EVENT_RESULT_NAME="result"}static{this.EVENT_TIMESTAMP_NAME="isoTimeStamp"}static{this.EVENT_INT=new Y(Y.OUTPUT,$.of(sL.EVENT_RESULT_NAME,b.ofInteger(sL.EVENT_RESULT_NAME)))}static{this.EVENT_STRING=new Y(Y.OUTPUT,$.of(sL.EVENT_RESULT_NAME,b.ofString(sL.EVENT_RESULT_NAME)))}static{this.EVENT_LONG=new Y(Y.OUTPUT,$.of(sL.EVENT_RESULT_NAME,b.ofLong(sL.EVENT_RESULT_NAME)))}static{this.EVENT_BOOLEAN=new Y(Y.OUTPUT,$.of(sL.EVENT_RESULT_NAME,b.ofBoolean(sL.EVENT_RESULT_NAME)))}static{this.EVENT_TIMESTAMP=new Y(Y.OUTPUT,$.of(sL.EVENT_TIMESTAMP_NAME,b.ofRef(A.DATE+".Timestamp")))}getSignature(){return this.signature}constructor(e,t,...r){if(super(),this.signature=new K(e).setNamespace(A.DATE).setEvents($.of(t.getName(),t)),!r?.length)return;let s=new Map;r.forEach(e=>s.set(e.getParameterName(),e)),this.signature.setParameters(s)}static ofEntryTimestampAndIntegerOutput(e,t){return[e,new class extends sL{async internalExecute(e){return new W([H.outputOf($.of(sL.EVENT_RESULT_NAME,t(e.getArguments()?.get(sL.PARAMETER_TIMESTAMP_NAME))))])}}(e,sL.EVENT_INT,sL.PARAMETER_TIMESTAMP)]}static ofEntryTimestampAndBooleanOutput(e,t){return[e,new class extends sL{async internalExecute(e){return new W([H.outputOf($.of(sL.EVENT_RESULT_NAME,t(e.getArguments()?.get(sL.PARAMETER_TIMESTAMP_NAME))))])}}(e,sL.EVENT_BOOLEAN,sL.PARAMETER_TIMESTAMP)]}static ofEntryTimestampAndStringOutput(e,t){return[e,new class extends sL{async internalExecute(e){return new W([H.outputOf($.of(sL.EVENT_RESULT_NAME,t(e.getArguments()?.get(sL.PARAMETER_TIMESTAMP_NAME))))])}}(e,sL.EVENT_STRING,sL.PARAMETER_TIMESTAMP)]}static ofEntryTimestampIntegerAndTimestampOutput(e,t){return[e,new class extends sL{async internalExecute(e){return new W([H.outputOf($.of(sL.EVENT_RESULT_NAME,t(e.getArguments()?.get(sL.PARAMETER_TIMESTAMP_NAME),e.getArguments()?.get(sL.PARAMETER_NUMBER_NAME))))])}}(e,sL.EVENT_TIMESTAMP,sL.PARAMETER_TIMESTAMP,sL.PARAMETER_NUMBER)]}static ofEntryTimestampTimestampAndTOutput(e,t,r,...s){return[e,new class extends sL{async internalExecute(e){let t=[];return s?.length&&t.push(...s.map(t=>e.getArguments()?.get(t.getParameterName()))),new W([H.outputOf($.of(sL.EVENT_RESULT_NAME,r(e.getArguments()?.get(sL.PARAMETER_TIMESTAMP_NAME_ONE),e.getArguments()?.get(sL.PARAMETER_TIMESTAMP_NAME_TWO),t)))])}}(e,t,sL.PARAMETER_TIMESTAMP_ONE,sL.PARAMETER_TIMESTAMP_TWO,...s)]}}function sv(t){let r=e.fromISO(t,{setZone:!0});if(!r?.isValid)throw Error("Invalid ISO timestamp");return r}class sb extends sL{static{this.PARAMETER_YEARS_NAME="years"}static{this.PARAMETER_MONTHS_NAME="months"}static{this.PARAMETER_DAYS_NAME="days"}static{this.PARAMETER_HOURS_NAME="hours"}static{this.PARAMETER_MINUTES_NAME="minutes"}static{this.PARAMETER_SECONDS_NAME="seconds"}static{this.PARAMETER_MILLISECONDS_NAME="milliseconds"}constructor(e){super(e?"AddTime":"SubtractTime",sL.EVENT_TIMESTAMP,sL.PARAMETER_TIMESTAMP,V.of(sb.PARAMETER_YEARS_NAME,b.ofNumber(sb.PARAMETER_YEARS_NAME).setDefaultValue(0)),V.of(sb.PARAMETER_MONTHS_NAME,b.ofNumber(sb.PARAMETER_MONTHS_NAME).setDefaultValue(0)),V.of(sb.PARAMETER_DAYS_NAME,b.ofNumber(sb.PARAMETER_DAYS_NAME).setDefaultValue(0)),V.of(sb.PARAMETER_HOURS_NAME,b.ofNumber(sb.PARAMETER_HOURS_NAME).setDefaultValue(0)),V.of(sb.PARAMETER_MINUTES_NAME,b.ofNumber(sb.PARAMETER_MINUTES_NAME).setDefaultValue(0)),V.of(sb.PARAMETER_SECONDS_NAME,b.ofNumber(sb.PARAMETER_SECONDS_NAME).setDefaultValue(0)),V.of(sb.PARAMETER_MILLISECONDS_NAME,b.ofNumber(sb.PARAMETER_MILLISECONDS_NAME).setDefaultValue(0))),this.isAdd=e}async internalExecute(e){let t,r=sv(e.getArguments()?.get(sL.PARAMETER_TIMESTAMP_NAME)),s={years:e.getArguments()?.get(sb.PARAMETER_YEARS_NAME),months:e.getArguments()?.get(sb.PARAMETER_MONTHS_NAME),days:e.getArguments()?.get(sb.PARAMETER_DAYS_NAME),hours:e.getArguments()?.get(sb.PARAMETER_HOURS_NAME),minutes:e.getArguments()?.get(sb.PARAMETER_MINUTES_NAME),seconds:e.getArguments()?.get(sb.PARAMETER_SECONDS_NAME),milliseconds:e.getArguments()?.get(sb.PARAMETER_MILLISECONDS_NAME)};return t=this.isAdd?r.plus(s):r.minus(s),new W([H.outputOf($.of(sL.EVENT_TIMESTAMP_NAME,t.toISO()))])}}class sD extends eR{constructor(e,t){super(),this.paramName=`epoch${t?"Seconds":"Milliseconds"}`,this.isSeconds=t,this.signature=new K(e).setNamespace(A.DATE).setParameters(new Map([[this.paramName,V.of(this.paramName,new b().setName(this.paramName).setType(d.of(f.LONG,f.INTEGER,f.STRING)))]])).setEvents(new Map([[sL.EVENT_TIMESTAMP.getName(),sL.EVENT_TIMESTAMP]]))}getSignature(){return this.signature}internalExecute(e){let t=parseInt(e.getArguments()?.get(this.paramName)),r=this.isSeconds?1e3*t:t;if(isNaN(r))throw Error(`Please provide a valid value for ${this.paramName}.`);return Promise.resolve(new W([H.outputOf($.of(sL.EVENT_TIMESTAMP_NAME,new Date(r).toISOString()))]))}}class sC extends eR{constructor(e,t){super(),this.isSeconds=t,this.signature=new K(e).setNamespace(A.DATE).setParameters(new Map([[sL.PARAMETER_TIMESTAMP_NAME,sL.PARAMETER_TIMESTAMP]])).setEvents(new Map([[sL.EVENT_TIMESTAMP.getName(),sL.EVENT_LONG]]))}getSignature(){return this.signature}internalExecute(t){let r=t.getArguments()?.get(sL.PARAMETER_TIMESTAMP_NAME),s=this.isSeconds?e.fromISO(r).toSeconds():e.fromISO(r).toMillis();return Promise.resolve(new W([H.outputOf($.of(sL.EVENT_RESULT_NAME,s))]))}}class sU extends sL{static{this.PARAMETER_FORMAT_NAME="format"}static{this.PARAMETER_LOCALE_NAME="locale"}constructor(){super("ToDateString",sL.EVENT_STRING,sL.PARAMETER_TIMESTAMP,V.of(sU.PARAMETER_FORMAT_NAME,b.ofString(sU.PARAMETER_FORMAT_NAME)),V.of(sU.PARAMETER_LOCALE_NAME,b.ofString(sU.PARAMETER_LOCALE_NAME).setDefaultValue("")))}async internalExecute(e){let t=sv(e.getArguments()?.get(sL.PARAMETER_TIMESTAMP_NAME)),r=e.getArguments()?.get(sU.PARAMETER_FORMAT_NAME),s=e.getArguments()?.get(sU.PARAMETER_LOCALE_NAME);return""===s&&(s="system"),new W([H.outputOf($.of(sL.EVENT_RESULT_NAME,t.toFormat(r,{locale:s})))])}}class sV extends sL{static{this.PARAMETER_TIMEZONE_NAME="timezone"}constructor(){super("SetTimeZone",sL.EVENT_TIMESTAMP,sL.PARAMETER_TIMESTAMP,V.of(sV.PARAMETER_TIMEZONE_NAME,b.ofString(sV.PARAMETER_TIMEZONE_NAME)))}async internalExecute(e){let t=sv(e.getArguments()?.get(sL.PARAMETER_TIMESTAMP_NAME)),r=e.getArguments()?.get(sV.PARAMETER_TIMEZONE_NAME);return new W([H.outputOf($.of(sL.EVENT_TIMESTAMP_NAME,t.setZone(r).toISO()))])}}class sk extends sL{static{this.PARAMETER_START_TIMESTAMP_NAME="startTimestamp"}static{this.PARAMETER_END_TIMESTAMP_NAME="endTimestamp"}static{this.PARAMETER_CHECK_TIMESTAMP_NAME="checkTimestamp"}constructor(){super("IsBetween",sk.EVENT_BOOLEAN,V.of(sk.PARAMETER_START_TIMESTAMP_NAME,b.ofRef(A.DATE+".Timestamp")),V.of(sk.PARAMETER_END_TIMESTAMP_NAME,b.ofRef(A.DATE+".Timestamp")),V.of(sk.PARAMETER_CHECK_TIMESTAMP_NAME,b.ofRef(A.DATE+".Timestamp")))}async internalExecute(e){let t=e.getArguments()?.get(sk.PARAMETER_START_TIMESTAMP_NAME),r=e.getArguments()?.get(sk.PARAMETER_END_TIMESTAMP_NAME),s=e.getArguments()?.get(sk.PARAMETER_CHECK_TIMESTAMP_NAME),n=sv(t),a=sv(r),i=sv(s);return n>a&&([n,a]=[a,n]),new W([H.outputOf($.of(sk.EVENT_RESULT_NAME,n<=i&&i<=a))])}}class s$ extends eR{constructor(e){super(),this.isLast=e,this.signature=new K(e?"LastOf":"FirstOf").setNamespace(A.DATE).setParameters(new Map([[sL.PARAMETER_TIMESTAMP_NAME,new V(sL.PARAMETER_TIMESTAMP_NAME,b.ofRef(A.DATE+".Timestamp")).setVariableArgument(!0)]])).setEvents(new Map([[sL.EVENT_TIMESTAMP.getName(),sL.EVENT_TIMESTAMP]]))}getSignature(){return this.signature}internalExecute(e){let t=e.getArguments()?.get(sL.PARAMETER_TIMESTAMP_NAME);if(!t?.length)throw Error("No timestamps provided");let r=t.map(e=>sv(e));return r.sort((e,t)=>e.toMillis()-t.toMillis()),Promise.resolve(new W([H.outputOf($.of(sL.EVENT_TIMESTAMP_NAME,r[this.isLast?r.length-1:0].toISO()))]))}}class sG extends sL{static{this.EVENT_TIME_OBJECT_NAME="object"}static{this.EVENT_TIME_ARRAY_NAME="array"}constructor(e){super(e?"TimeAsArray":"TimeAsObject",new Y(Y.OUTPUT,$.of(e?sG.EVENT_TIME_ARRAY_NAME:sG.EVENT_TIME_OBJECT_NAME,e?b.ofArray(sG.EVENT_TIME_ARRAY_NAME,b.ofInteger("timeParts")):b.ofRef(A.DATE+".TimeObject"))),sL.PARAMETER_TIMESTAMP),this.isArray=e}async internalExecute(e){let t=sv(e.getArguments()?.get(sL.PARAMETER_TIMESTAMP_NAME)).toObject();return new W([H.outputOf($.of(this.isArray?sG.EVENT_TIME_ARRAY_NAME:sG.EVENT_TIME_OBJECT_NAME,this.isArray?[t.year,t.month,t.day,t.hour,t.minute,t.second,t.millisecond]:t))])}}class sF extends sL{constructor(e){super(e?"StartOf":"EndOf",sL.EVENT_TIMESTAMP,sL.PARAMETER_TIMESTAMP,sL.PARAMETER_UNIT),this.isStart=e}async internalExecute(e){let t=sv(e.getArguments()?.get(sL.PARAMETER_TIMESTAMP_NAME)),r=e.getArguments()?.get(sL.PARAMETER_UNIT_NAME)?.toLowerCase();r=r.substring(0,r.length-1);let s=this.isStart?t.startOf(r):t.endOf(r);return new W([H.outputOf($.of(sL.EVENT_TIMESTAMP_NAME,s.toISO({includeOffset:!0})))])}}class sB extends sL{static{this.EVENT_NAMES_NAME="names"}static{this.PARAMETER_UNIT_NAME="unit"}static{this.PARAMETER_LOCALE_NAME="locale"}constructor(){super("GetNames",new Y(sB.EVENT_NAMES_NAME,$.of(sB.EVENT_NAMES_NAME,b.ofArray(sB.EVENT_NAMES_NAME,b.ofString(sB.EVENT_NAMES_NAME)))),new V(sB.PARAMETER_UNIT_NAME,b.ofString(sB.PARAMETER_UNIT_NAME).setEnums(["TIMEZONES","MONTHS","WEEKDAYS"])),new V(sB.PARAMETER_LOCALE_NAME,b.ofString(sB.PARAMETER_LOCALE_NAME).setDefaultValue("system")))}async internalExecute(e){let t=e.getArguments()?.get(sB.PARAMETER_UNIT_NAME),r=e.getArguments()?.get(sB.PARAMETER_LOCALE_NAME);return new W([H.outputOf($.of(sB.EVENT_NAMES_NAME,this.getNames(t,r)))])}getNames(t,r){return"TIMEZONES"===t?Intl.supportedValuesOf("timeZone"):"MONTHS"===t?[1,2,3,4,5,6,7,8,9,10,11,12].map(t=>e.now().setLocale(r).set({month:t}).toFormat("MMMM")):"WEEKDAYS"===t?[1,2,3,4,5,6,7].map(t=>e.now().setLocale(r).set({month:7,year:2024,day:t}).toFormat("EEEE")):[]}}class sY extends eR{internalExecute(t){let r=t.getArguments()?.get(sL.PARAMETER_TIMESTAMP_NAME),s=e.fromISO(r);return Promise.resolve(new W([H.outputOf($.of(sL.EVENT_RESULT_NAME,s.isValid))]))}getSignature(){return this.signature}constructor(...e){super(...e),this.signature=new K("IsValidISODate").setNamespace(A.DATE).setParameters(new Map([V.ofEntry(sL.PARAMETER_TIMESTAMP_NAME,b.ofString(sL.PARAMETER_TIMESTAMP_NAME))])).setEvents(new Map([Y.outputEventMapEntry($.of(sL.EVENT_RESULT_NAME,b.ofBoolean(sL.EVENT_RESULT_NAME)))]))}}class sH extends sL{static{this.PARAMETER_BASE_NAME="base"}static{this.PARAMETER_BASE=new V(sH.PARAMETER_BASE_NAME,b.ofRef(A.DATE+".Timestamp").setDefaultValue(""))}static{this.PARAMETER_LOCALE_NAME="locale"}static{this.PARAMETER_LOCALE=new V(sH.PARAMETER_LOCALE_NAME,b.ofString(sH.PARAMETER_LOCALE_NAME).setDefaultValue("system"))}static{this.PARAMETER_FORMAT_NAME="format"}static{this.PARAMETER_FORMAT=new V(sH.PARAMETER_FORMAT_NAME,b.ofString(sH.PARAMETER_FORMAT_NAME).setEnums(["LONG","SHORT","NARROW"]).setDefaultValue("LONG"))}static{this.PARAMETER_ROUND_NAME="round"}static{this.PARAMETER_ROUND=new V(sH.PARAMETER_ROUND_NAME,b.ofBoolean(sH.PARAMETER_ROUND_NAME).setDefaultValue(!0))}constructor(){super("FromNow",sL.EVENT_STRING,sL.PARAMETER_TIMESTAMP,sH.PARAMETER_FORMAT,sH.PARAMETER_BASE,sL.PARAMETER_VARIABLE_UNIT,sH.PARAMETER_ROUND,sH.PARAMETER_LOCALE)}internalExecute(t){let r=t.getArguments()?.get(sH.PARAMETER_BASE_NAME),s=""===r?e.now():e.fromISO(r),n=t.getArguments()?.get(sL.PARAMETER_TIMESTAMP_NAME),a=e.fromISO(n),i=t.getArguments()?.get(sH.PARAMETER_UNIT_NAME),o=t.getArguments()?.get(sH.PARAMETER_FORMAT_NAME),E=t.getArguments()?.get(sH.PARAMETER_ROUND_NAME),u=t.getArguments()?.get(sH.PARAMETER_LOCALE_NAME),l={base:s,style:o?.toLowerCase(),round:E,locale:u};return i?.length>0&&(l.unit=i.map(e=>e.toLowerCase())),Promise.resolve(new W([H.outputOf($.of(sL.EVENT_RESULT_NAME,a.toRelative(l)??"Unknown"))]))}}class sj extends sL{static{this.PARAMETER_FORMAT_NAME="format"}static{this.PARAMETER_TIMESTAMP_STRING_NAME="timestampString"}constructor(){super("FromDateString",sL.EVENT_TIMESTAMP,V.of(sj.PARAMETER_TIMESTAMP_STRING_NAME,b.ofString(sj.PARAMETER_TIMESTAMP_STRING_NAME)),V.of(sj.PARAMETER_FORMAT_NAME,b.ofString(sj.PARAMETER_FORMAT_NAME)))}async internalExecute(t){let r=t.getArguments()?.get(sj.PARAMETER_TIMESTAMP_STRING_NAME),s=t.getArguments()?.get(sj.PARAMETER_FORMAT_NAME),n=e.fromFormat(r,s);return new W([H.outputOf($.of(sL.EVENT_RESULT_NAME,n.toISO()))])}}class sW extends sL{constructor(){super("GetCurrentTimestamp",sL.EVENT_TIMESTAMP)}async internalExecute(t){return new W([H.outputOf($.of(sL.EVENT_TIMESTAMP_NAME,e.now().toISO()))])}}class sK{find(e,t){return e!=A.DATE?Promise.resolve(void 0):Promise.resolve(this.repoMap.get(t))}filter(e){return Promise.resolve(this.filterableNames.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}constructor(){this.repoMap=$.ofArrayEntries(["EpochSecondsToTimestamp",new sD("EpochSecondsToTimestamp",!0)],["EpochMillisecondsToTimestamp",new sD("EpochMillisecondsToTimestamp",!1)],sL.ofEntryTimestampAndIntegerOutput("GetDay",e=>sv(e).day),sL.ofEntryTimestampAndIntegerOutput("GetDayOfWeek",e=>sv(e).weekday),sL.ofEntryTimestampAndIntegerOutput("GetMonth",e=>sv(e).month),sL.ofEntryTimestampAndIntegerOutput("GetYear",e=>sv(e).year),sL.ofEntryTimestampAndIntegerOutput("GetHours",e=>sv(e).hour),sL.ofEntryTimestampAndIntegerOutput("GetMinutes",e=>sv(e).minute),sL.ofEntryTimestampAndIntegerOutput("GetSeconds",e=>sv(e).second),sL.ofEntryTimestampAndIntegerOutput("GetMilliseconds",e=>sv(e).millisecond),sL.ofEntryTimestampAndIntegerOutput("GetDaysInMonth",e=>sv(e).daysInMonth),sL.ofEntryTimestampAndIntegerOutput("GetDaysInYear",e=>sv(e).daysInYear),["TimestampToEpochSeconds",new sC("TimestampToEpochSeconds",!0)],["TimestampToEpochMilliseconds",new sC("TimestampToEpochMilliseconds",!1)],sL.ofEntryTimestampAndStringOutput("GetTimeZoneName",e=>sv(e).zoneName),sL.ofEntryTimestampAndStringOutput("GetTimeZoneOffsetLong",e=>sv(e).offsetNameLong),sL.ofEntryTimestampAndStringOutput("GetTimeZoneOffsetShort",e=>sv(e).offsetNameShort),sL.ofEntryTimestampAndIntegerOutput("GetTimeZoneOffset",e=>sv(e).offset),["ToDateString",new sU],["AddTime",new sb(!0)],["SubtractTime",new sb(!1)],["GetCurrentTimestamp",new sW],sL.ofEntryTimestampTimestampAndTOutput("Difference",new Y(Y.OUTPUT,$.of(sL.EVENT_RESULT_NAME,b.ofRef(`${A.DATE}.Duration`))),(e,t,r)=>{let s,n=sv(e),a=sv(t);r?.[0]?.length&&(s=r[0]?.filter(e=>!!e).map(e=>e.toLowerCase()));let i=n.diff(a);return s?.length?i.shiftTo(...s).toObject():i.toObject()},sL.PARAMETER_VARIABLE_UNIT),sL.ofEntryTimestampIntegerAndTimestampOutput("SetDay",(e,t)=>sv(e).set({day:t}).toISO()),sL.ofEntryTimestampIntegerAndTimestampOutput("SetMonth",(e,t)=>sv(e).set({month:t}).toISO()),sL.ofEntryTimestampIntegerAndTimestampOutput("SetYear",(e,t)=>sv(e).set({year:t}).toISO()),sL.ofEntryTimestampIntegerAndTimestampOutput("SetHours",(e,t)=>sv(e).set({hour:t}).toISO()),sL.ofEntryTimestampIntegerAndTimestampOutput("SetMinutes",(e,t)=>sv(e).set({minute:t}).toISO()),sL.ofEntryTimestampIntegerAndTimestampOutput("SetSeconds",(e,t)=>sv(e).set({second:t}).toISO()),sL.ofEntryTimestampIntegerAndTimestampOutput("SetMilliseconds",(e,t)=>sv(e).set({millisecond:t}).toISO()),["SetTimeZone",new sV],sL.ofEntryTimestampTimestampAndTOutput("IsBefore",new Y(Y.OUTPUT,$.of(sL.EVENT_RESULT_NAME,b.ofBoolean(sL.EVENT_RESULT_NAME))),(e,t)=>sv(e)<sv(t)),sL.ofEntryTimestampTimestampAndTOutput("IsAfter",new Y(Y.OUTPUT,$.of(sL.EVENT_RESULT_NAME,b.ofBoolean(sL.EVENT_RESULT_NAME))),(e,t)=>sv(e)>sv(t)),sL.ofEntryTimestampTimestampAndTOutput("IsSame",new Y(Y.OUTPUT,$.of(sL.EVENT_RESULT_NAME,b.ofBoolean(sL.EVENT_RESULT_NAME))),(e,t)=>sv(e)===sv(t)),sL.ofEntryTimestampTimestampAndTOutput("IsSameOrBefore",new Y(Y.OUTPUT,$.of(sL.EVENT_RESULT_NAME,b.ofBoolean(sL.EVENT_RESULT_NAME))),(e,t)=>sv(e)<=sv(t)),sL.ofEntryTimestampTimestampAndTOutput("IsSameOrAfter",new Y(Y.OUTPUT,$.of(sL.EVENT_RESULT_NAME,b.ofBoolean(sL.EVENT_RESULT_NAME))),(e,t)=>sv(e)>=sv(t)),sL.ofEntryTimestampAndBooleanOutput("IsInLeapYear",e=>sv(e).isInLeapYear),sL.ofEntryTimestampAndBooleanOutput("IsInDST",e=>sv(e).isInDST),["IsBetween",new sk],["LastOf",new s$(!0)],["FirstOf",new s$(!1)],["StartOf",new sF(!0)],["EndOf",new sF(!1)],["TimeAsObject",new sG(!1)],["TimeAsArray",new sG(!0)],["GetNames",new sB],["IsValidISODate",new sY],["FromNow",new sH],["FromDateString",new sj]),this.filterableNames=Array.from(this.repoMap.values()).map(e=>e.getSignature().getFullName())}}class sJ extends eR{static{this.MILLIS="millis"}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(sJ.MILLIS);return await new Promise(e=>setTimeout(e,t)),new W([H.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new K("Wait").setNamespace(A.SYSTEM).setParameters(new Map([V.ofEntry(sJ.MILLIS,b.ofNumber(sJ.MILLIS).setMinimum(0).setDefaultValue(0))])).setEvents(new Map([Y.outputEventMapEntry(new Map)]))}}let sX="resultShape",sq="value";class sQ extends eR{constructor(){super(),this.signature=new K("Make").setNamespace(A.SYSTEM).setParameters(new Map([V.ofEntry(sX,b.ofAny(sX))])).setEvents(new Map([Y.outputEventMapEntry($.of(sq,b.ofAny(sq)))]))}getSignature(){return this.signature}async internalExecute(e){let t=(e.getArguments()??new Map).get(sX),r=e.getValuesMap(),s=this.processValue(t,r);return new W([H.outputOf($.of(sq,s))])}processValue(e,t){if(null==e)return e;if("string"==typeof e)return this.evaluateExpression(e,t);if(Array.isArray(e))return e.map(e=>this.processValue(e,t));if("object"==typeof e){let r={};for(let[s,n]of Object.entries(e))r[s]=this.processValue(n,t);return r}return e}evaluateExpression(e,t){if(!e||!e.startsWith("{{")||!e.endsWith("}}"))return e;let r=new rS(e.substring(2,e.length-2)).evaluate(t);return void 0!==r?r:null}}t({},"HybridRepository",()=>sz);class sz{constructor(...e){this.repos=e}async find(e,t){for(let r of this.repos){let s=await r.find(e,t);if(s)return s}}async filter(e){let t=new Set;for(let r of this.repos)(await r.filter(e)).forEach(e=>t.add(e));return Array.from(t)}}var j=h("7pym4");class sZ extends eR{static{this.SOURCE="source"}static{this.SCHEMA="schema"}static{this.IS_VALID="isValid"}getSignature(){return this.signature}internalExecute(e){let t=e.getArguments()?.get(sZ.SOURCE),r=b.from(e?.getArguments()?.get(sZ.SCHEMA));if(!r)throw new(0,j.KIRuntimeException)("Schema is not supplied.");return this.validateSchema(r,e.getSchemaRepository(),t)}async validateSchema(e,t,r){try{return await ef.validate([],e,t,r,!0),new W([H.outputOf($.of(sZ.IS_VALID,!0))])}catch(e){return new W([H.outputOf($.of(sZ.IS_VALID,!1))])}}constructor(...e){super(...e),this.signature=new K("ValidateSchema").setNamespace(A.SYSTEM_OBJECT).setParameters(new Map([V.ofEntry(sZ.SOURCE,b.ofAny(sZ.SCHEMA)),V.ofEntry(sZ.SCHEMA,b.SCHEMA,!1,C.CONSTANT)])).setEvents(new Map([Y.outputEventMapEntry($.of(sZ.IS_VALID,b.ofBoolean(sZ.IS_VALID)))]))}}let s0="value",s1="error",s2="errorMessage",s4="source";class s7 extends eR{constructor(){super(),this.signature=new K("JSONParse").setNamespace(A.SYSTEM_JSON).setParameters(new Map([V.ofEntry(s4,b.ofString(s4))])).setEvents(new Map([Y.eventMapEntry(s1,new Map([[s2,b.ofString(s2)]])),Y.outputEventMapEntry(new Map([[s0,b.ofAny(s0)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t,r=e.getArguments()?.get("source");try{t=r?JSON.parse(r):null}catch(e){return new W([H.of(s1,new Map([[s2,e?.message??"Unknown Error parsing JSON"]])),H.outputOf(new Map([[s0,null]]))])}return new W([H.outputOf(new Map([[s0,t]]))])}}let s5="value",s9="source";class s3 extends eR{constructor(){super(),this.signature=new K("JSONStringify").setNamespace(A.SYSTEM_JSON).setParameters(new Map([V.ofEntry(s9,b.ofAny(s9))])).setEvents(new Map([Y.outputEventMapEntry(new Map([[s5,b.ofString(s5)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get("source");return new W([H.outputOf(new Map([[s5,JSON.stringify(t??null)]]))])}}class s6{constructor(){this.map=new Map([[A.SYSTEM_JSON,new Map([B(new s7),B(new s3)])],[A.SYSTEM_CTX,new Map([B(new tl),B(new tc),B(new rM)])],[A.SYSTEM_LOOP,new Map([B(new rj),B(new rC),B(new rL),B(new rG)])],[A.SYSTEM,new Map([B(new rx),B(new rP),B(new sm),B(new sJ),B(new ta),B(new sZ),B(new sQ)])]]),this.filterableNames=Array.from(this.map.values()).flatMap(e=>Array.from(e.values())).map(e=>e.getSignature().getFullName())}async find(e,t){return this.map.get(e)?.get(t)}async filter(e){return Array.from(this.filterableNames).filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase()))}}class s8 extends sz{constructor(){super(new s6,new r3,new sw,new ti,new sA,new sK)}}h("d3Pq1"),h("bg8NQ"),h("adJLc"),h("iq1c5"),h("gZQ5x"),h("dAuXT"),t({},"StatementExecution",()=>nt),t({},"StatementMessage",()=>ne);class ne{constructor(e,t){this.message=t,this.messageType=e}getMessageType(){return this.messageType}setMessageType(e){return this.messageType=e,this}getMessage(){return this.message}setMessage(e){return this.message=e,this}toString(){return`${this.messageType} : ${this.message}`}}class nt{constructor(e){this.messages=[],this.dependencies=new Set,this.statement=e}getStatement(){return this.statement}setStatement(e){return this.statement=e,this}getMessages(){return this.messages}setMessages(e){return this.messages=e,this}getDependencies(){return this.dependencies}setDependencies(e){return this.dependencies=e,this}getUniqueKey(){return this.statement.getStatementName()}addMessage(e,t){this.messages.push(new ne(e,t))}addDependency(e){this.dependencies.add(e)}getDepenedencies(){return this.dependencies}equals(e){return e instanceof nt&&e.statement.equals(this.statement)}}t({},"ContextTokenValueExtractor",()=>nr);class nr extends ez{static{this.PREFIX="Context."}constructor(e){super(),this.context=e}getValueInternal(e){let t=ez.splitPath(e),r=t[1],s=r.indexOf("["),n=2;return -1!=s&&(r=t[1].substring(0,s),(t=[...t])[1]=t[1].substring(s),n=1),this.retrieveElementFrom(e,t,n,this.context.get(r)?.getElement())}getPrefix(){return nr.PREFIX}getStore(){return m(this.context)?this.context:Array.from(this.context.entries()).reduce((e,[t,r])=>(m(r)||(e[t]=r.getElement()),e),{})}}t({},"OutputMapTokenValueExtractor",()=>ns);class ns extends ez{static{this.PREFIX="Steps."}constructor(e){super(),this.output=e}getValueInternal(e){let t=ez.splitPath(e),r=1,s=this.output.get(t[r++]);if(!s||r>=t.length)return;let n=s.get(t[r++]);if(!n||r>t.length)return;if(r===t.length)return n;let a=t[r].indexOf("[");if(-1===a){let s=n.get(t[r++]);return this.retrieveElementFrom(e,t,r,s)}let i=t[r].substring(0,a),o=n.get(i);return this.retrieveElementFrom(e,t,r,{[i]:o})}getPrefix(){return ns.PREFIX}getStore(){return this.convertMapToObj(this.output)}convertMapToObj(e){return 0===e.size?{}:Array.from(e.entries()).reduce((e,[t,r])=>(e[t]=r instanceof Map?this.convertMapToObj(r):r,e),{})}}t({},"ArgumentsTokenValueExtractor",()=>nn);class nn extends ez{static{this.PREFIX="Arguments."}constructor(e){super(),this.args=e}getValueInternal(e){let t=ez.splitPath(e),r=t[1],s=r.indexOf("["),n=2;return -1!=s&&(r=t[1].substring(0,s),(t=[...t])[1]=t[1].substring(s),n=1),this.retrieveElementFrom(e,t,n,this.args.get(r))}getPrefix(){return nn.PREFIX}getStore(){return m(this.args)?this.args:Array.from(this.args.entries()).reduce((e,[t,r])=>(e[t]=r,e),{})}}t({},"GraphVertex",()=>no);var na=h("d3Pq1"),q=h("gZQ5x");t({},"ExecutionGraph",()=>ni);var na=h("d3Pq1");class ni{constructor(e=!1){this.nodeMap=new Map,this.edgesBuilt=!1,this.isSubGrph=e}areEdgesBuilt(){return this.edgesBuilt}setEdgesBuilt(e){this.edgesBuilt=e}getVerticesData(){return Array.from(this.nodeMap.values()).map(e=>e.getData())}addVertex(e){if(!this.nodeMap.has(e.getUniqueKey())){let t=new no(this,e);this.nodeMap.set(e.getUniqueKey(),t)}return this.nodeMap.get(e.getUniqueKey())}getVertex(e){return this.nodeMap.get(e)}getVertexData(e){if(this.nodeMap.has(e))return this.nodeMap.get(e).getData()}getVerticesWithNoIncomingEdges(){return Array.from(this.nodeMap.values()).filter(e=>!e.hasIncomingEdges())}isCyclic(){let e,t=new(0,na.LinkedList)(this.getVerticesWithNoIncomingEdges()),r=new Set;for(;!t.isEmpty();){if(r.has(t.getFirst().getKey()))return!0;e=t.removeFirst(),r.add(e.getKey()),e.hasOutgoingEdges()&&t.addAll(Array.from(e.getOutVertices().values()).flatMap(e=>Array.from(e)))}return!1}addVertices(e){for(let t of e)this.addVertex(t)}getNodeMap(){return this.nodeMap}isSubGraph(){return this.isSubGrph}toString(){return"Execution Graph : \n"+Array.from(this.nodeMap.values()).map(e=>e.toString()).join("\n")}}class no{constructor(e,t){this.outVertices=new Map,this.inVertices=new Set,this.subGraphCache=new Map,this.data=t,this.graph=e}getData(){return this.data}setData(e){return this.data=e,this}getOutVertices(){return this.outVertices}setOutVertices(e){return this.outVertices=e,this}getInVertices(){return this.inVertices}setInVertices(e){return this.inVertices=e,this}getGraph(){return this.graph}setGraph(e){return this.graph=e,this}getKey(){return this.data.getUniqueKey()}addOutEdgeTo(e,t){return this.outVertices.has(e)||this.outVertices.set(e,new Set),this.outVertices.get(e).add(t),t.inVertices.add(new(0,q.Tuple2)(this,e)),t}addInEdgeTo(e,t){return this.inVertices.add(new(0,q.Tuple2)(e,t)),e.outVertices.has(t)||e.outVertices.set(t,new Set),e.outVertices.get(t).add(this),e}hasIncomingEdges(){return!!this.inVertices.size}hasOutgoingEdges(){return!!this.outVertices.size}getSubGraphOfType(e){let t=this.subGraphCache.get(e);if(t)return t;let r=new ni(!0);var s=new(0,na.LinkedList)(Array.from(this.outVertices.get(e)??[]));for(s.map(e=>e.getData()).forEach(e=>r.addVertex(e));!s.isEmpty();)Array.from(s.pop().outVertices.values()).flatMap(e=>Array.from(e)).forEach(e=>{r.addVertex(e.getData()),s.add(e)});return this.subGraphCache.set(e,r),r}toString(){var e=Array.from(this.getInVertices()).map(e=>e.getT1().getKey()+"("+e.getT2()+")").join(", "),t=Array.from(this.outVertices.entries()).map(([e,t])=>e+": "+Array.from(t).map(e=>e.getKey()).join(",")).join("\n ");return this.getKey()+":\n In: "+e+"\n Out: \n "+t}}t({},"KIRuntime",()=>nT);var j=h("7pym4");t({},"JsonExpression",()=>nE);class nE{constructor(e){this.expression=e}getExpression(){return this.expression}}t({},"ParameterReferenceType",()=>nu);var nu=((o={}).VALUE="VALUE",o.EXPRESSION="EXPRESSION",o),na=h("d3Pq1"),ep=h("adJLc"),X=h("iq1c5"),q=h("gZQ5x");function nl(){var e=new Date().getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var r=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"==t?r:3&r|8).toString(16)})}t({},"FunctionExecutionParameters",()=>np);class np{constructor(e,t,r){this.count=0,this.executionContext=new Map,this.valueExtractors=new Map,this.functionRepository=e,this.schemaRepository=t,this.executionId=r??nl()}getExecutionId(){return this.executionId}getContext(){return this.context}setContext(e){this.context=e;let t=new nr(e);return this.valueExtractors.set(t.getPrefix(),t),this}getArguments(){return this.args}setArguments(e){return this.args=e,this}getEvents(){return this.events}setEvents(e){return this.events=e,this}getStatementExecution(){return this.statementExecution}setStatementExecution(e){return this.statementExecution=e,this}getSteps(){return this.steps}setSteps(e){this.steps=e;let t=new ns(e);return this.valueExtractors.set(t.getPrefix(),t),this}getCount(){return this.count}setCount(e){return this.count=e,this}getValuesMap(){return this.valueExtractors}getFunctionRepository(){return this.functionRepository}setFunctionRepository(e){return this.functionRepository=e,this}getSchemaRepository(){return this.schemaRepository}setSchemaRepository(e){return this.schemaRepository=e,this}addTokenValueExtractor(...e){for(let t of e)this.valueExtractors.set(t.getPrefix(),t);return this}setValuesMap(e){for(let[t,r]of e.entries())this.valueExtractors.set(t,r);return this}setExecutionContext(e){return this.executionContext=e,this}getExecutionContext(){return this.executionContext}}t({},"StatementMessageType",()=>nh);var nh=((E={}).ERROR="ERROR",E.WARNING="WARNING",E.MESSAGE="MESSAGE",E);class nc{constructor(){this.executions=new Map,this.executionOrder=[],this.stepStacks=new Map,this.pendingLogs=new Map,this.listeners=new Set,this.enabled=!1,this.maxExecutions=10}static getInstance(){return nc.instance||(nc.instance=new nc),nc.instance}enable(){this.enabled=!0}disable(){this.enabled=!1}isEnabled(){return this.enabled}startExecution(e,t,r){if(!this.enabled)return;if(!this.executions.get(e)){for(this.executions.set(e,{executionId:e,startTime:Date.now(),errored:!1,logs:[],definitions:new Map}),this.executionOrder.push(e),this.stepStacks.set(e,[]);this.executionOrder.length>this.maxExecutions;){let e=this.executionOrder.shift();this.executions.delete(e),this.stepStacks.delete(e)}this.emit("executionStart",e,{functionName:t})}let s=this.executions.get(e);r&&!s.definitions.has(t)&&s.definitions.set(t,r)}endExecution(e){if(!this.enabled)return;let t=this.executions.get(e);t&&(t.endTime=Date.now(),this.emit("executionEnd",e,{duration:t.endTime-t.startTime,errored:t.errored}))}startStep(e,t,r,s,n){if(!this.enabled||!this.executions.get(e))return;let a=`${Date.now()}_${Math.random().toString(36).slice(2)}`,i=this.stepStacks.get(e)||[],o={stepId:a,timestamp:Date.now(),functionName:r,statementName:t,kirunFunctionName:n,arguments:this.serialize(s),children:[]};return this.pendingLogs.set(a,o),i.push(o),this.stepStacks.set(e,i),this.emit("stepStart",e,{stepId:a,statementName:t,functionName:r}),a}endStep(e,t,r,s,n){if(!this.enabled)return;let a=this.pendingLogs.get(t);if(!a)return;let i=this.executions.get(e);if(!i)return;a.duration=Date.now()-a.timestamp,a.result=this.serialize(s),a.eventName=r,a.error=n;let o=this.stepStacks.get(e)||[],E=o.findIndex(e=>e.stepId===t);-1!==E&&o.splice(E,1),o.length>0?o.at(-1).children.push(a):i.logs.push(a),this.pendingLogs.delete(t),n&&(i.errored=!0,this.emit("executionErrored",e)),this.emit("stepEnd",e,{log:a})}markErrored(e){let t=this.executions.get(e);t&&(t.errored=!0,this.emit("executionErrored",e))}getExecution(e){return this.executions.get(e)}getLastExecution(){let e=this.executionOrder.at(-1);return e?this.executions.get(e):void 0}getDefinition(e,t){return this.executions.get(e)?.definitions.get(t)}getFlatLogs(e){let t=this.executions.get(e);if(!t)return[];let r=[],s=e=>{for(let t of e)r.push(t),t.children.length&&s(t.children)};return s(t.logs),r}getAllExecutionIds(){return[...this.executionOrder]}clear(){this.executions.clear(),this.executionOrder=[],this.stepStacks.clear(),this.pendingLogs.clear()}addEventListener(e){return this.listeners.add(e),()=>this.listeners.delete(e)}emit(e,t,r){let s={type:e,executionId:t,data:r};this.listeners.forEach(e=>{try{e(s)}catch(e){console.error("Debug listener error:",e)}})}serialize(e){if(null==e)return e;if(e instanceof Map){let t={};for(let[r,s]of e.entries())t[r]=this.serialize(s);return t}if(Array.isArray(e))return e.map(e=>this.serialize(e));if("object"==typeof e){let t={};for(let[r,s]of Object.entries(e))t[r]=this.serialize(s);return t}return e}}class nT extends eR{static{this.PARAMETER_NEEDS_A_VALUE='Parameter "$" needs a value'}static{this.STEP_REGEX_PATTERN=RegExp("Steps\\.([a-zA-Z0-9\\\\-]{1,})\\.([a-zA-Z0-9\\\\-]{1,})","g")}static{this.VERSION=1}static{this.MAX_EXECUTION_ITERATIONS=1e7}constructor(e,t=!1){if(super(),this.debugMode=!1,this.functionCache=new Map,this.debugMode=t,this.fd=e,this.debugMode&&nc.getInstance().enable(),this.fd.getVersion()>nT.VERSION)throw new(0,j.KIRuntimeException)("Runtime is at a lower version "+nT.VERSION+" and trying to run code from version "+this.fd.getVersion()+".")}getSignature(){return this.fd}async getCachedFunction(e,t,r){let s=`${t}.${r}`;if(this.functionCache.has(s))return this.functionCache.get(s);let n=await e.find(t,r);return n&&this.functionCache.set(s,n),n}async getExecutionPlan(e,t){let r=new ni,s=Array.from(this.fd.getSteps().values());for(let n of(await Promise.all(s.map(r=>this.prepareStatementExecution(r,e,t)))))r.addVertex(n);return Array.from(this.makeEdges(r).getT2().entries()).forEach(e=>{let t=r.getNodeMap().get(e[0])?.getData();t&&t.addMessage(nh.ERROR,e[1])}),r}async internalExecute(e){if(e.getContext()||e.setContext(new Map),e.getEvents()||e.setEvents(new Map),e.getSteps()||e.setSteps(new Map),e.getArguments()&&e.addTokenValueExtractor(new nn(e.getArguments())),this.debugMode){let t=this.fd.getNamespace()?`${this.fd.getNamespace()}.${this.fd.getName()}`:this.fd.getName();nc.getInstance().startExecution(e.getExecutionId(),t,this.fd.toJSON())}let t=await this.getExecutionPlan(e.getFunctionRepository(),e.getSchemaRepository()),r=t.getVerticesData().filter(e=>e.getMessages().length).map(e=>e.getStatement().getStatementName()+": \n"+e.getMessages().join(","));if(r?.length)throw this.debugMode&&nc.getInstance().markErrored(e.getExecutionId()),new(0,j.KIRuntimeException)("Please fix the errors in the function definition before execution : \n"+r.join(",\n"));try{return await this.executeGraph(t,e)}catch(t){throw this.debugMode&&nc.getInstance().markErrored(e.getExecutionId()),t}}async executeGraph(e,t){let r=new(0,na.LinkedList);r.addAll(e.getVerticesWithNoIncomingEdges());let s=new(0,na.LinkedList);for(;(!r.isEmpty()||!s.isEmpty())&&!t.getEvents()?.has(Y.OUTPUT);){let e=r.length,n=s.length;if(await this.processBranchQue(t,r,s),await this.processExecutionQue(t,r,s),(e!==r.length||n!==s.length)&&(t.setCount(t.getCount()+1),t.getCount()==nT.MAX_EXECUTION_ITERATIONS))throw new(0,j.KIRuntimeException)("Execution locked in an infinite loop")}if(!e.isSubGraph()&&!t.getEvents()?.size){let e=this.getSignature().getEvents();if(e.size&&e.get(Y.OUTPUT)?.getParameters()?.size)throw new(0,j.KIRuntimeException)("No events raised")}let n=Array.from(t.getEvents()?.entries()??[]).flatMap(e=>e[1].map(t=>H.of(e[0],t))),a=new W(n.length||e.isSubGraph()?n:[H.of(Y.OUTPUT,new Map)]);return this.debugMode&&nc.getInstance().endExecution(t.getExecutionId()),a}async processExecutionQue(e,t,r){if(t.isEmpty())return;let s=[];for(;!t.isEmpty();)s.push(t.pop());let n=[],a=[];for(let t of s)this.allDependenciesResolvedVertex(t,e.getSteps())?n.push(t):a.push(t);for(let e of a)t.add(e);n.length>0&&await Promise.all(n.map(s=>this.executeVertex(s,e,r,t,e.getFunctionRepository())))}async processBranchQue(e,t,r){if(!r.length)return;let s=[];for(;r.length;)s.push(r.pop());let n=[],a=[];for(let t of s)this.allDependenciesResolvedTuples(t.getT2(),e.getSteps())?n.push(t):a.push(t);for(let e of a)r.add(e);for(let r of n)await this.executeBranch(e,t,r)}async executeBranch(e,t,r){let s,n=r.getT4(),a=r.getT1().getVerticesData().map(e=>e.getStatement().getStatementName());do{let t=e.getSteps();if(t)for(let e of a)t.delete(e);await this.executeGraph(r.getT1(),e),(s=r.getT3().next())&&(e.getSteps()?.has(n.getData().getStatement().getStatementName())||e.getSteps()?.set(n.getData().getStatement().getStatementName(),new Map),e.getSteps()?.get(n.getData().getStatement().getStatementName())?.set(s.getName(),this.resolveInternalExpressions(s.getResult(),e)))}while(s&&s.getName()!=Y.OUTPUT)if(s?.getName()==Y.OUTPUT&&n.getOutVertices().has(Y.OUTPUT))for(let r of Array.from(n?.getOutVertices()?.get(Y.OUTPUT)??[]))this.allDependenciesResolvedVertex(r,e.getSteps())&&t.add(r)}async executeVertex(e,t,r,s,n){let a,i,o,E,u=e.getData().getStatement();if(u.getExecuteIftrue().size&&!(Array.from(u.getExecuteIftrue().entries())??[]).filter(e=>e[1]).map(([e])=>new rS(e).evaluate(t.getValuesMap())).every(e=>!m(e)&&!1!==e))return;let l=await this.getCachedFunction(n,u.getNamespace(),u.getName());if(!l)throw new(0,j.KIRuntimeException)(ep.StringFormatter.format("$.$ function is not found.",u.getNamespace(),u.getName()));let p=l?.getSignature().getParameters(),h=this.getArgumentsFromParametersMap(t,u,p??new Map),c=this.debugMode?nc.getInstance():void 0;if(c?.isEnabled()){let e=this.fd.getNamespace()?`${this.fd.getNamespace()}.${this.fd.getName()}`:this.fd.getName();a=c.startStep(t.getExecutionId(),u.getStatementName(),`${u.getNamespace()}.${u.getName()}`,h,e)}let T=t.getContext();i=l instanceof nT?new np(t.getFunctionRepository(),t.getSchemaRepository(),t.getExecutionId()).setArguments(h).setValuesMap(new Map(Array.from(t.getValuesMap().values()).filter(e=>e.getPrefix()!==nn.PREFIX&&e.getPrefix()!==ns.PREFIX&&e.getPrefix()!==nr.PREFIX).map(e=>[e.getPrefix(),e]))):new np(t.getFunctionRepository(),t.getSchemaRepository(),t.getExecutionId()).setValuesMap(t.getValuesMap()).setContext(T).setArguments(h).setEvents(t.getEvents()).setSteps(t.getSteps()).setStatementExecution(e.getData()).setCount(t.getCount()).setExecutionContext(t.getExecutionContext());try{if(!(E=(o=await l.execute(i)).next()))throw new(0,j.KIRuntimeException)(ep.StringFormatter.format("Executing $ returned no events",u.getStatementName()));t.getSteps()?.has(u.getStatementName())||t.getSteps().set(u.getStatementName(),new Map),t.getSteps().get(u.getStatementName()).set(E.getName(),this.resolveInternalExpressions(E.getResult(),t))}catch(r){let e=r?.message||String(r);throw c&&a&&c.endStep(t.getExecutionId(),a,"error",void 0,e),r}if(c&&a&&c.endStep(t.getExecutionId(),a,E.getName(),t.getSteps().get(u.getStatementName()).get(E.getName())),E.getName()==Y.OUTPUT){let r=e.getOutVertices().get(Y.OUTPUT);if(r)for(let e of Array.from(r))this.allDependenciesResolvedVertex(e,t.getSteps())&&s.add(e)}else{let t=e.getSubGraphOfType(E.getName()),s=[];t.areEdgesBuilt()||(s=this.makeEdges(t).getT1(),t.setEdgesBuilt(!0)),r.push(new(0,q.Tuple4)(t,s,o,e))}}resolveInternalExpressions(e,t){if(!e)return e;let r=new Map;for(let[s,n]of e.entries())r.set(s,this.resolveInternalExpression(n,t));return r}resolveInternalExpression(e,t){if(m(e)||"object"!=typeof e)return e;if(e instanceof nE)return new rS(e.getExpression()).evaluate(t.getValuesMap());if(Array.isArray(e)){let r=[];for(let s of e)r.push(this.resolveInternalExpression(s,t));return r}if("object"==typeof e){let r={};for(let s of Object.entries(e))r[s[0]]=this.resolveInternalExpression(s[1],t);return r}}allDependenciesResolvedTuples(e,t){for(let r of e)if(!t.has(r.getT1())||!t.get(r.getT1())?.get(r.getT2()))return!1;return!0}allDependenciesResolvedVertex(e,t){let r=e.getInVertices();if(!r.size)return!0;for(let e of r){let r=e.getT1().getData().getStatement().getStatementName(),s=e.getT2();if(!(t.has(r)&&t.get(r)?.has(s)))return!1}return!0}getArgumentsFromParametersMap(e,t,r){let s=new Map;for(let[n,a]of t.getParameterMap().entries()){let t,i=Array.from(a?.values()??[]);if(!i?.length)continue;let o=r.get(n);o&&(t=o.isVariableArgument()?i.sort((e,t)=>(e.getOrder()??0)-(t.getOrder()??0)).filter(e=>!m(e)).map(t=>this.parameterReferenceEvaluation(e,t)).flatMap(e=>Array.isArray(e)?e:[e]):this.parameterReferenceEvaluation(e,i[0]),m(t)||s.set(n,t))}return s}parameterReferenceEvaluation(e,t){let r;return t.getType()==nu.VALUE?r=this.resolveInternalExpression(t.getValue(),e):t.getType()!=nu.EXPRESSION||X.StringUtil.isNullOrBlank(t.getExpression())||(r=new rS(t.getExpression()??"").evaluate(e.getValuesMap())),r}async prepareStatementExecution(e,t,r){let s=new nt(e),n=await this.getCachedFunction(t,e.getNamespace(),e.getName());if(!n)return s.addMessage(nh.ERROR,ep.StringFormatter.format("$.$ is not available",e.getNamespace(),e.getName())),Promise.resolve(s);let a=new Map(n.getSignature().getParameters());if(!e.getParameterMap())return Promise.resolve(s);for(let t of Array.from(e.getParameterMap().entries())){let e=a.get(t[0]);if(!e)continue;let n=Array.from(t[1]?.values()??[]);if(!n.length&&!e.isVariableArgument()){await z.hasDefaultValueOrNullSchemaType(e.getSchema(),r)||s.addMessage(nh.ERROR,ep.StringFormatter.format(nT.PARAMETER_NEEDS_A_VALUE,e.getParameterName())),a.delete(e.getParameterName());continue}if(e.isVariableArgument())for(let t of(n.sort((e,t)=>(e.getOrder()??0)-(t.getOrder()??0)),n))this.parameterReferenceValidation(s,e,t,r);else if(n.length){let t=n[0];this.parameterReferenceValidation(s,e,t,r)}a.delete(e.getParameterName())}if(!m(s.getStatement().getDependentStatements()))for(let e of Array.from(s.getStatement().getDependentStatements().entries()))e[1]&&s.addDependency(e[0]);if(!m(s.getStatement().getExecuteIftrue()))for(let e of Array.from(s.getStatement().getExecuteIftrue().entries()))e[1]&&this.addDependencies(s,e[0]);if(a.size)for(let e of Array.from(a.values()))!e.isVariableArgument()&&(await z.hasDefaultValueOrNullSchemaType(e.getSchema(),r)||s.addMessage(nh.ERROR,ep.StringFormatter.format(nT.PARAMETER_NEEDS_A_VALUE,e.getParameterName())));return Promise.resolve(s)}async parameterReferenceValidation(e,t,r,s){if(r){if(r.getType()==nu.VALUE){if(m(r.getValue())&&!await z.hasDefaultValueOrNullSchemaType(t.getSchema(),s)&&e.addMessage(nh.ERROR,ep.StringFormatter.format(nT.PARAMETER_NEEDS_A_VALUE,t.getParameterName())),m(r.getValue()))return;let n=new(0,na.LinkedList);for(n.push(new(0,q.Tuple2)(t.getSchema(),r.getValue()));!n.isEmpty();){let t=n.pop();if(t.getT2()instanceof nE)this.addDependencies(e,t.getT2().getExpression());else{if(m(t.getT1())||m(t.getT1().getType()))continue;if(t.getT1().getType()?.contains(f.ARRAY)&&Array.isArray(t.getT2())){let e=t.getT1().getItems();if(!e)continue;if(e.isSingleType())for(let r of t.getT2())n.push(new(0,q.Tuple2)(e.getSingleSchema(),r));else{let r=t.getT2();for(let t=0;t<r.length;t++)n.push(new(0,q.Tuple2)(e.getTupleSchema()[t],r[t]))}}else if(t.getT1().getType()?.contains(f.OBJECT)&&"object"==typeof t.getT2()){let r=t.getT1();if(r.getName()===V.EXPRESSION.getName()&&r.getNamespace()===V.EXPRESSION.getNamespace()){let r=t.getT2();r.isExpression&&this.addDependencies(e,r.value)}else if(r.getProperties())for(let e of Object.entries(t.getT2()))r.getProperties().has(e[0])&&n.push(new(0,q.Tuple2)(r.getProperties().get(e[0]),e[1]))}}}}else if(r.getType()==nu.EXPRESSION)if(X.StringUtil.isNullOrBlank(r.getExpression()))m(z.getDefaultValue(t.getSchema(),s))&&e.addMessage(nh.ERROR,ep.StringFormatter.format(nT.PARAMETER_NEEDS_A_VALUE,t.getParameterName()));else try{this.addDependencies(e,r.getExpression())}catch(t){e.addMessage(nh.ERROR,ep.StringFormatter.format("Error evaluating $ : $",r.getExpression(),t))}}else m(await z.getDefaultValue(t.getSchema(),s))&&e.addMessage(nh.ERROR,ep.StringFormatter.format(nT.PARAMETER_NEEDS_A_VALUE,t.getParameterName()))}addDependencies(e,t){t&&Array.from(t.match(nT.STEP_REGEX_PATTERN)??[]).forEach(t=>e.addDependency(t))}makeEdges(e){let t=e.getNodeMap().values(),r=[],s=new Map;for(let n of Array.from(t))for(let t of Array.from(n.getData().getDependencies())){let a=t.indexOf(".",6),i=t.substring(6,a),o=t.indexOf(".",a+1),E=-1==o?t.substring(a+1):t.substring(a+1,o);e.getNodeMap().has(i)?n.addInEdgeTo(e.getNodeMap().get(i),E):(r.push(new(0,q.Tuple2)(i,E)),s.set(n.getData().getStatement().getStatementName(),ep.StringFormatter.format("Unable to find the step with name $",i)))}return new(0,q.Tuple2)(r,s)}}var nA={};t(nA,"DebugCollector",()=>nc),t(nA,"DebugFormatter",()=>nm);class nm{static formatAsText(e){let t=[],r=e.endTime?e.endTime-e.startTime:Date.now()-e.startTime,s=e.errored?"❌":"✓";return t.push(`${s} Execution: ${e.executionId}`),t.push(`Duration: ${r}ms`),t.push(`Steps: ${this.flatten(e.logs).length}`),t.push(""),this.formatLogs(e.logs,t,0),t.join("\n")}static getTimeline(e){return this.flatten(e.logs).sort((e,t)=>e.timestamp-t.timestamp)}static getPerformanceSummary(e){let t=this.flatten(e.logs),r=e.endTime?e.endTime-e.startTime:Date.now()-e.startTime;return{totalDuration:r,stepCount:t.length,averageDuration:t.length>0?r/t.length:0,slowestSteps:[...t].filter(e=>null!=e.duration).sort((e,t)=>(t.duration??0)-(e.duration??0)).slice(0,10)}}static formatLogs(e,t,r){let s=" ".repeat(r);for(let n of e){let e=n.error?"❌":"✓",a=n.statementName||"(anonymous)";t.push(`${s}${e} ${a} => ${n.functionName} (${n.duration??0}ms)`),n.error&&t.push(`${s} Error: ${n.error}`),n.children.length&&this.formatLogs(n.children,t,r+1)}}static flatten(e){let t=[],r=e=>{for(let s of e)t.push(s),s.children.length&&r(s.children)};return r(e),t}}h("9mEhX"),h("6SbgP"),h("4M204"),h("b3MaL"),h("iSHH5"),t({},"KIRunConstants",()=>ng);class ng{static{this.NAMESPACE="namespace"}static{this.NAME="name"}static{this.ID="id"}}t({},"Position",()=>nf);class nf{static{this.SCHEMA_NAME="Position"}static{this.SCHEMA=new b().setNamespace(A.SYSTEM).setName(nf.SCHEMA_NAME).setType(d.of(f.OBJECT)).setProperties(new Map([["left",b.ofFloat("left")],["top",b.ofFloat("top")]]))}constructor(e,t){this.left=e,this.top=t}getLeft(){return this.left}setLeft(e){return this.left=e,this}getTop(){return this.top}setTop(e){return this.top=e,this}static from(e){if(e)return new nf(e.left,e.top)}toJSON(){return{left:this.left,top:this.top}}}t({},"FunctionDefinition",()=>nM),t({},"Statement",()=>nS),t({},"AbstractStatement",()=>nR);class nR{constructor(e){if(this.override=!1,!e)return;this.comment=e.comment,this.description=e.description,this.position=e.position?new nf(e.position.getLeft(),e.position.getTop()):void 0,this.override=e.override}getComment(){return this.comment}setComment(e){return this.comment=e,this}isOverride(){return this.override}setOverride(e){return this.override=e,this}getDescription(){return this.description}setDescription(e){return this.description=e,this}getPosition(){return this.position}setPosition(e){return this.position=e,this}}t({},"ParameterReference",()=>nN);class nN{static{this.SCHEMA_NAME="ParameterReference"}static{this.SCHEMA=new b().setNamespace(A.SYSTEM).setName(nN.SCHEMA_NAME).setType(d.of(f.OBJECT)).setProperties(new Map([["key",b.ofString("key")],["value",b.ofAny("value")],["expression",b.ofString("expression")],["type",b.ofString("type").setEnums(["EXPRESSION","VALUE"])],["order",b.ofInteger("order")]]))}constructor(e){e instanceof nN?(this.key=e.key,this.type=e.type,this.value=m(e.value)?void 0:JSON.parse(JSON.stringify(e.value)),this.expression=e.expression,this.order=e.order):(this.type=e,this.key=nl())}getType(){return this.type}setType(e){return this.type=e,this}getKey(){return this.key}setKey(e){return this.key=e,this}getValue(){return this.value}setValue(e){return this.value=e,this}getExpression(){return this.expression}setExpression(e){return this.expression=e,this}setOrder(e){return this.order=e,this}getOrder(){return this.order}static ofExpression(e){let t=new nN(nu.EXPRESSION).setExpression(e);return[t.getKey(),t]}static ofValue(e){let t=new nN(nu.VALUE).setValue(e);return[t.getKey(),t]}static from(e){return new nN(e.type).setValue(e.value).setExpression(e.expression).setKey(e.key).setOrder(e.order)}toJSON(){return{key:this.key,type:this.type,value:this.value,expression:this.expression,order:this.order}}}class nS extends nR{static{this.SCHEMA_NAME="Statement"}static{this.SCHEMA=new b().setNamespace(A.SYSTEM).setName(nS.SCHEMA_NAME).setType(d.of(f.OBJECT)).setProperties(new Map([["statementName",b.ofString("statementName")],["comment",b.ofString("comment")],["description",b.ofString("description")],["namespace",b.ofString("namespace")],["name",b.ofString("name")],["dependentStatements",b.ofObject("dependentstatement").setAdditionalProperties(new L().setSchemaValue(b.ofBoolean("exists"))).setDefaultValue({})],["executeIftrue",b.ofObject("executeIftrue").setAdditionalProperties(new L().setSchemaValue(b.ofBoolean("exists"))).setDefaultValue({})],["parameterMap",new b().setName("parameterMap").setAdditionalProperties(new L().setSchemaValue(b.ofObject("parameterReference").setAdditionalProperties(new L().setSchemaValue(nN.SCHEMA))))],["position",nf.SCHEMA]]))}constructor(e,t,r){if(super(e instanceof nS?e:void 0),e instanceof nS)this.statementName=e.statementName,this.name=e.name,this.namespace=e.namespace,e.parameterMap&&(this.parameterMap=new Map(Array.from(e.parameterMap.entries()).map(e=>[e[0],new Map(Array.from(e[1].entries()).map(e=>[e[0],new nN(e[1])]))]))),e.dependentStatements&&(this.dependentStatements=new Map(Array.from(e.dependentStatements.entries())));else{if(this.statementName=e,!r||!t)throw Error("Unknown constructor");this.namespace=t,this.name=r}}getStatementName(){return this.statementName}setStatementName(e){return this.statementName=e,this}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getParameterMap(){return this.parameterMap||(this.parameterMap=new Map),this.parameterMap}setParameterMap(e){return this.parameterMap=e,this}getDependentStatements(){return this.dependentStatements??new Map}setDependentStatements(e){return this.dependentStatements=e,this}getExecuteIftrue(){return this.executeIftrue??new Map}setExecuteIftrue(e){return this.executeIftrue=e,this}equals(e){return e instanceof nS&&e.statementName==this.statementName}static ofEntry(e){return[e.statementName,e]}toJSON(){let e={};if(this.parameterMap)for(let[t,r]of this.parameterMap.entries())for(let[s,n]of(e[t]={},r.entries()))e[t][s]=n.toJSON();return{statementName:this.statementName,namespace:this.namespace,name:this.name,parameterMap:e,dependentStatements:this.dependentStatements?Object.fromEntries(this.dependentStatements):{},executeIftrue:this.executeIftrue?Object.fromEntries(this.executeIftrue):{},position:this.getPosition()?.toJSON(),comment:this.getComment(),description:this.getDescription(),override:this.isOverride()}}static from(e){return new nS(e.statementName,e.namespace,e.name).setParameterMap(new Map(Object.entries(e.parameterMap??{}).map(([e,t])=>[e,new Map(Object.entries(t??{}).map(([e,t])=>nN.from(t)).map(e=>[e.getKey(),e]))]))).setDependentStatements(new Map(Object.entries(e.dependentStatements??{}))).setExecuteIftrue(new Map(Object.entries(e.executeIftrue??{}))).setPosition(nf.from(e.position)).setComment(e.comment).setDescription(e.description).setOverride(e.override??!1)}}t({},"StatementGroup",()=>nd);class nd extends nR{static{this.SCHEMA_NAME="StatementGroup"}static{this.SCHEMA=new b().setNamespace(A.SYSTEM).setName(nd.SCHEMA_NAME).setType(d.of(f.OBJECT)).setProperties(new Map([["statementGroupName",b.ofString("statementGroupName")],["comment",b.ofString("comment")],["description",b.ofString("description")],["position",nf.SCHEMA]]))}constructor(e,t=new Map){super(),this.statementGroupName=e,this.statements=t}getStatementGroupName(){return this.statementGroupName}setStatementGroupName(e){return this.statementGroupName=e,this}getStatements(){return this.statements}setStatements(e){return this.statements=e,this}static from(e){return new nd(e.statementGroupName,new Map(Object.entries(e.statements||{}).map(([e,t])=>[e,(""+t)?.toLowerCase()=="true"]))).setPosition(nf.from(e.position)).setComment(e.comment).setDescription(e.description).setOverride(e.override??!1)}toJSON(){return{statementGroupName:this.statementGroupName,statements:Object.fromEntries(this.statements),position:this.getPosition(),comment:this.getComment(),description:this.getDescription(),override:this.isOverride()}}}let n_=new b().setNamespace(A.SYSTEM).setName("FunctionDefinition").setProperties(new Map([["name",b.ofString("name")],["namespace",b.ofString("namespace")],["parameters",b.ofArray("parameters",V.SCHEMA)],["events",b.ofObject("events").setAdditionalProperties(new L().setSchemaValue(Y.SCHEMA))],["steps",b.ofObject("steps").setAdditionalProperties(new L().setSchemaValue(nS.SCHEMA))]]));n_.getProperties()?.set("parts",b.ofArray("parts",n_));class nM extends K{static{this.SCHEMA=n_}constructor(e){super(e),this.version=1}getVersion(){return this.version}setVersion(e){return this.version=e,this}getSteps(){return this.steps??new Map}setSteps(e){return this.steps=e,this}getStepGroups(){return this.stepGroups}setStepGroups(e){return this.stepGroups=e,this}getParts(){return this.parts}setParts(e){return this.parts=e,this}static from(e){return e?new nM(e.name).setSteps(new Map(Object.values(e.steps??{}).filter(e=>!!e).map(e=>[e.statementName,nS.from(e)]))).setStepGroups(new Map(Object.values(e.stepGroups??{}).filter(e=>!!e).map(e=>[e.statementGroupName,nd.from(e)]))).setParts(Array.from(e.parts??[]).filter(e=>!!e).map(e=>nM.from(e))).setVersion(e.version??1).setEvents(new Map(Object.values(e.events??{}).filter(e=>!!e).map(e=>[e.name,Y.from(e)]))).setParameters(new Map(Object.values(e.parameters??{}).filter(e=>!!e).map(e=>[e.parameterName,V.from(e)]))).setNamespace(e.namespace):new nM("unknown")}static async fromText(e){let{DSLCompiler:t}=await Promise.resolve(h("91Qf5")),r=t.compile(e);return nM.from(r)}async toText(){let{DSLCompiler:e}=await Promise.resolve(h("91Qf5")),t=this.toJSON();return await e.decompile(t)}toJSON(){return{...super.toJSON(),version:this.version,steps:this.steps?Object.fromEntries(Array.from(this.steps).map(([e,t])=>[e,t.toJSON()])):{},stepGroups:this.stepGroups?Object.fromEntries(this.stepGroups):{},parts:this.parts??[]}}}t({},"Argument",()=>nO);class nO{constructor(e,t,r){this.argumentIndex=0,this.argumentIndex=e,this.name=t,this.value=r}getArgumentIndex(){return this.argumentIndex}setArgumentIndex(e){return this.argumentIndex=e,this}getName(){return this.name}setName(e){return this.name=e,this}getValue(){return this.value}setValue(e){return this.value=e,this}static of(e,t){return new nO(0,e,t)}}h("7pym4");var nI={};t(nI,"DSLToken",()=>h("kF8Gn").DSLToken),t(nI,"DSLTokenType",()=>h("kF8Gn").DSLTokenType),t(nI,"SourceLocation",()=>h("kF8Gn").SourceLocation),t(nI,"DSLLexer",()=>h("6qd60").DSLLexer),t(nI,"LexerError",()=>h("iEjVE").LexerError),t(nI,"isKeyword",()=>h("f0w39").isKeyword),t(nI,"isBlockName",()=>h("f0w39").isBlockName),t(nI,"isPrimitiveType",()=>h("f0w39").isPrimitiveType),t(nI,"DSLParser",()=>h("g9JX4").DSLParser),t(nI,"DSLParserError",()=>h("iiJWA").DSLParserError),t(nI,"ASTToJSONTransformer",()=>h("dteKq").ASTToJSONTransformer),t(nI,"JSONToTextTransformer",()=>h("lQfvu").JSONToTextTransformer),t(nI,"SchemaTransformer",()=>h("c7CBW").SchemaTransformer),t(nI,"ExpressionHandler",()=>h("2Yv2C").ExpressionHandler),t(nI,"DSLCompiler",()=>h("91Qf5").DSLCompiler),t(nI,"DSLFunctionProvider",()=>nP),h("kF8Gn"),h("6qd60"),h("iEjVE"),h("f0w39"),h("g9JX4"),h("iiJWA");var ny=h("c1Lsl");h("dteKq"),h("lQfvu"),h("c7CBW"),h("2Yv2C"),h("91Qf5");class nP{static{this.cachedFunctions=new Map}static async getAllFunctions(e){let t=e||new s8;if(this.cachedFunctions.has(t))return this.cachedFunctions.get(t);let r=(await t.filter("")).map(async e=>{let r=e.lastIndexOf(".");if(-1===r)return null;let s=e.substring(0,r),n=e.substring(r+1);try{let r=await t.find(s,n);if(r)return{namespace:s,name:n,fullName:e,parameters:this.extractParameters(r),events:this.extractEvents(r),description:""}}catch{}return null}),s=(await Promise.all(r)).filter(e=>null!==e);return this.cachedFunctions.set(t,s),s}static async getFunctionsByNamespace(e,t){return(await this.getAllFunctions(t)).filter(t=>t.namespace===e)}static async getAllNamespaces(e){return Array.from(new Set((await this.getAllFunctions(e)).map(e=>e.namespace))).sort()}static clearCache(e){e?this.cachedFunctions.delete(e):this.cachedFunctions.clear()}static extractParameters(e){let t=e.getSignature().getParameters(),r=[];if(t)for(let[e,s]of t){let t=s.getSchema();r.push({name:e,type:this.getSchemaType(t),required:t?.getDefaultValue()===void 0})}return r}static extractEvents(e){let t=e.getSignature().getEvents(),r=[];if(t)for(let[e,s]of t){let t={},n=s.getParameters();if(n)for(let[e,r]of n)t[e]=this.getSchemaType(r);r.push({name:e,parameters:t})}return r}static getSchemaType(e){if(!e)return"Any";let t=e.getType?.();if(!t)return"Any";let r=t.getAllowedSchemaTypes?.();if(r&&r.size>0){let e=Array.from(r);return 1===e.length?String(e[0]):e.join(" | ")}return"Any"}}r(nI,ny);var nx=h("d3Pq1").LinkedList,nw=h("bg8NQ").StringBuilder,nL=h("adJLc").StringFormatter,nv=h("iq1c5").StringUtil,nb=h("gZQ5x").Tuple2,nD=h("gZQ5x").Tuple3,nC=h("gZQ5x").Tuple4,nU=h("dAuXT").deepEqual,nV=h("9mEhX").Expression,nk=h("6SbgP").Operation,n$=h("4M204").ExpressionToken,nG=h("b3MaL").ExpressionEvaluationException,nF=h("iSHH5").ExpressionTokenValue,nB=h("7pym4").KIRuntimeException,nY=h("kF8Gn").DSLToken,nH=h("kF8Gn").DSLTokenType,nj=h("kF8Gn").SourceLocation,nW=h("6qd60").DSLLexer,nK=h("iEjVE").LexerError,nJ=h("f0w39").isKeyword,nX=h("f0w39").isBlockName,nq=h("f0w39").isPrimitiveType,nQ=h("g9JX4").DSLParser,nz=h("iiJWA").DSLParserError,nZ=h("dteKq").ASTToJSONTransformer,n0=h("lQfvu").JSONToTextTransformer,n1=h("c7CBW").SchemaTransformer,n2=h("2Yv2C").ExpressionHandler,n4=h("91Qf5").DSLCompiler,n7=h("23EBj").ASTNode,n5=h("hGSRd").ArgumentNode,n9=h("9sTIE").ComplexValueNode,n3=h("coH4r").EventDeclNode,n6=h("gqFFZ").ExpressionNode,n8=h("5HVwl").FunctionCallNode,ae=h("3a2ZP").FunctionDefNode,at=h("3XO8R").ParameterDeclNode,ar=h("CxNmm").SchemaLiteralNode,as=h("bAVta").SchemaNode,an=h("1ndxg").StatementNode;export{F as KIRunSchemaRepository,s8 as KIRunFunctionRepository,eI as PrimitiveUtil,$ as MapUtil,G as MapEntry,m as isNullValue,nx as LinkedList,nw as StringBuilder,nL as StringFormatter,nv as StringUtil,nb as Tuple2,nD as Tuple3,nC as Tuple4,eP as ArrayUtil,nU as deepEqual,ew as duplicate,nt as StatementExecution,ne as StatementMessage,to as ContextElement,nr as ContextTokenValueExtractor,ns as OutputMapTokenValueExtractor,nn as ArgumentsTokenValueExtractor,no as GraphVertex,ni as ExecutionGraph,nT as KIRuntime,nh as StatementMessageType,np as FunctionExecutionParameters,nc as DebugCollector,nm as DebugFormatter,nV as Expression,ez as TokenValueExtractor,rm as LiteralTokenValueExtractor,eZ as ObjectValueSetterExtractor,rS as ExpressionEvaluator,nk as Operation,n$ as ExpressionToken,nG as ExpressionEvaluationException,nF as ExpressionTokenValue,eR as AbstractFunction,A as Namespaces,nE as JsonExpression,L as AdditionalType,b as Schema,v as SchemaDetails,en as NumberValidator,er as BooleanValidator,es as NullValidator,et as ArrayValidator,Z as AnyOfAllOfOneOfValidator,eo as StringValidator,ea as ObjectValidator,ef as SchemaValidator,Q as SchemaValidationException,D as SchemaReferenceException,eg as TypeValidator,g as ArraySchemaType,S as SingleType,d as TypeUtil,N as MultipleType,R as Type,f as SchemaType,z as SchemaUtil,ei as StringFormat,sz as HybridRepository,ng as KIRunConstants,V as Parameter,W as FunctionOutput,nf as Position,nM as FunctionDefinition,nu as ParameterReferenceType,H as EventResult,nR as AbstractStatement,nS as Statement,nd as StatementGroup,K as FunctionSignature,Y as Event,C as ParameterType,nO as Argument,nN as ParameterReference,eO as ExecutionException,nB as KIRuntimeException,rE as ArithmeticUnaryMinusOperator,rl as ArithmeticUnaryPlusOperator,rh as BitwiseComplementOperator,rT as LogicalNotOperator,ro as UnaryOperator,tS as ArithmeticAdditionOperator,t_ as ArithmeticDivisionOperator,tO as ArithmeticIntegerDivisionOperator,ty as ArithmeticModulusOperator,tx as ArithmeticMultiplicationOperator,tL as ArithmeticSubtractionOperator,tb as ArrayOperator,tN as BinaryOperator,tC as BitwiseAndOperator,tV as BitwiseLeftShiftOperator,t$ as BitwiseOrOperator,tF as BitwiseRightShiftOperator,tY as BitwiseUnsignedRightShiftOperator,tj as BitwiseXorOperator,tK as LogicalAndOperator,tX as LogicalEqualOperator,tQ as LogicalGreaterThanEqualOperator,tZ as LogicalGreaterThanOperator,t1 as LogicalLessThanEqualOperator,t4 as LogicalNotEqualOperator,t5 as LogicalLessThanOperator,t3 as LogicalOrOperator,t8 as ObjectOperator,rt as LogicalNullishCoalescingOperator,rs as ArrayRangeOperator,rR as ConditionalTernaryOperator,nY as DSLToken,nH as DSLTokenType,nj as SourceLocation,nW as DSLLexer,nK as LexerError,nJ as isKeyword,nX as isBlockName,nq as isPrimitiveType,nQ as DSLParser,nz as DSLParserError,nZ as ASTToJSONTransformer,n0 as JSONToTextTransformer,n1 as SchemaTransformer,n2 as ExpressionHandler,n4 as DSLCompiler,nP as DSLFunctionProvider,n7 as ASTNode,n5 as ArgumentNode,n9 as ComplexValueNode,n3 as EventDeclNode,n6 as ExpressionNode,n8 as FunctionCallNode,ae as FunctionDefNode,at as ParameterDeclNode,ar as SchemaLiteralNode,as as SchemaNode,an as StatementNode};
|
|
2
16
|
//# sourceMappingURL=module.js.map
|