@fincity/kirun-js 1.6.6 → 1.6.8

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/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- function e(e,t){return Object.keys(t).forEach((function(r){"default"===r||"__esModule"===r||e.hasOwnProperty(r)||Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[r]}})})),e}function t(e,t,r,n){Object.defineProperty(e,t,{get:r,set:n,enumerable:!0,configurable:!0})}var r={};t(r,"KIRunSchemaRepository",(()=>L));var n={};t(n,"AdditionalType",(()=>_)),t(n,"Schema",(()=>S));var s={};t(s,"Namespaces",(()=>a));class a{static SYSTEM="System";static SYSTEM_CTX="System.Context";static SYSTEM_LOOP="System.Loop";static SYSTEM_ARRAY="System.Array";static MATH="System.Math";static STRING="System.String";constructor(){}}var i={};t(i,"ArraySchemaType",(()=>u));var o={};function E(e){return null==e}t(o,"isNullValue",(()=>E));class u{constructor(e){e&&(this.singleSchema=e.singleSchema?new S(e.singleSchema):void 0,this.tupleSchema=e.tupleSchema?e.tupleSchema.map((e=>new S(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!E(this.singleSchema)}static of(...e){return 1==e.length?(new u).setSingleSchema(e[0]):(new u).setTupleSchema(e)}static from(e){if(!e)return;if(Array.isArray(e))return(new u).setTupleSchema(S.fromListOfSchemas(e));let t=Object.keys(e);if(-1!=t.indexOf("singleSchema"))return(new u).setSingleSchema(S.from(e.singleSchema));if(-1!=t.indexOf("tupleSchema"))return(new u).setTupleSchema(S.fromListOfSchemas(e.tupleSchema));let r=S.from(e);return r?(new u).setSingleSchema(r):void 0}}var A={};let l;var m;t(A,"SchemaType",(()=>l)),(m=l||(l={})).INTEGER="Integer",m.LONG="Long",m.FLOAT="Float",m.DOUBLE="Double",m.STRING="String",m.OBJECT="Object",m.ARRAY="Array",m.BOOLEAN="Boolean",m.NULL="Null";var g={};t(g,"TypeUtil",(()=>f));var R={};t(R,"MultipleType",(()=>h));var T={};t(T,"Type",(()=>p));class p{}class h extends p{constructor(e){super(),this.type=e instanceof h?new Set(Array.from(e.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)}}var c={};t(c,"SingleType",(()=>N));class N extends p{constructor(e){super(),this.type=e instanceof N?e.type:e}getType(){return this.type}getAllowedSchemaTypes(){return new Set([this.type])}contains(e){return this.type==e}}class f{static of(...e){return 1==e.length?new N(e[0]):new h(new Set(e))}static from(e){return"string"==typeof e?new N(l[e]):Array.isArray(e)?new h(new Set(e.map((e=>e)).map((e=>l[e])))):void 0}}class _{constructor(e){e&&(this.booleanValue=e.booleanValue,e.schemaValue&&(this.schemaValue=new S(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(E(e))return;const t=new _;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=S.from(e.schemaValue):t.schemaValue=S.from(e)}return t}}class S{static NULL=(new S).setNamespace(a.SYSTEM).setName("Null").setType(f.of(l.NULL)).setConstant(void 0);static TYPE_SCHEMA=(new S).setType(f.of(l.STRING)).setEnums(["INTEGER","LONG","FLOAT","DOUBLE","STRING","OBJECT","ARRAY","BOOLEAN","NULL"]);static SCHEMA=(new S).setNamespace(a.SYSTEM).setName("Schema").setType(f.of(l.OBJECT)).setProperties(new Map([["namespace",S.of("namespace",l.STRING).setDefaultValue("_")],["name",S.ofString("name")],["version",S.of("version",l.INTEGER).setDefaultValue(1)],["ref",S.ofString("ref")],["type",(new S).setAnyOf([S.TYPE_SCHEMA,S.ofArray("type",S.TYPE_SCHEMA)])],["anyOf",S.ofArray("anyOf",S.ofRef("System.Schema"))],["allOf",S.ofArray("allOf",S.ofRef("System.Schema"))],["oneOf",S.ofArray("oneOf",S.ofRef("System.Schema"))],["not",S.ofRef("System.Schema")],["title",S.ofString("title")],["description",S.ofString("description")],["id",S.ofString("id")],["examples",S.ofAny("examples")],["defaultValue",S.ofAny("defaultValue")],["comment",S.ofString("comment")],["enums",S.ofArray("enums",S.ofString("enums"))],["constant",S.ofAny("constant")],["pattern",S.ofString("pattern")],["format",S.of("format",l.STRING).setEnums(["DATETIME","TIME","DATE","EMAIL","REGEX"])],["minLength",S.ofInteger("minLength")],["maxLength",S.ofInteger("maxLength")],["multipleOf",S.ofLong("multipleOf")],["minimum",S.ofNumber("minimum")],["maximum",S.ofNumber("maximum")],["exclusiveMinimum",S.ofNumber("exclusiveMinimum")],["exclusiveMaximum",S.ofNumber("exclusiveMaximum")],["properties",S.of("properties",l.OBJECT).setAdditionalProperties((new _).setSchemaValue(S.ofRef("System.Schema")))],["additionalProperties",(new S).setName("additionalProperty").setNamespace(a.SYSTEM).setAnyOf([S.ofBoolean("additionalProperty"),S.ofObject("additionalProperty").setRef("System.Schema")]).setDefaultValue(!0)],["required",S.ofArray("required",S.ofString("required")).setDefaultValue([])],["propertyNames",S.ofRef("System.Schema")],["minProperties",S.ofInteger("minProperties")],["maxProperties",S.ofInteger("maxProperties")],["patternProperties",S.of("patternProperties",l.OBJECT).setAdditionalProperties((new _).setSchemaValue(S.ofRef("System.Schema")))],["items",(new S).setName("items").setAnyOf([S.ofRef("System.Schema").setName("item"),S.ofArray("tuple",S.ofRef("System.Schema"))])],["contains",S.ofRef("System.Schema")],["minContains",S.ofInteger("minContains")],["maxContains",S.ofInteger("maxContains")],["minItems",S.ofInteger("minItems")],["maxItems",S.ofInteger("maxItems")],["uniqueItems",S.ofBoolean("uniqueItems")],["additionalItems",(new S).setName("additionalItems").setNamespace(a.SYSTEM).setAnyOf([S.ofBoolean("additionalItems"),S.ofObject("additionalItems").setRef("System.Schema")])],["$defs",S.of("$defs",l.OBJECT).setAdditionalProperties((new _).setSchemaValue(S.ofRef("System.Schema")))],["permission",S.ofString("permission")]])).setRequired([]);static ofString(e){return(new S).setType(f.of(l.STRING)).setName(e)}static ofInteger(e){return(new S).setType(f.of(l.INTEGER)).setName(e)}static ofFloat(e){return(new S).setType(f.of(l.FLOAT)).setName(e)}static ofLong(e){return(new S).setType(f.of(l.LONG)).setName(e)}static ofDouble(e){return(new S).setType(f.of(l.DOUBLE)).setName(e)}static ofAny(e){return(new S).setType(f.of(l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE,l.STRING,l.BOOLEAN,l.ARRAY,l.NULL,l.OBJECT)).setName(e)}static ofAnyNotNull(e){return(new S).setType(f.of(l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE,l.STRING,l.BOOLEAN,l.ARRAY,l.OBJECT)).setName(e)}static ofNumber(e){return(new S).setType(f.of(l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE)).setName(e)}static ofBoolean(e){return(new S).setType(f.of(l.BOOLEAN)).setName(e)}static of(e,...t){return(new S).setType(f.of(...t)).setName(e)}static ofObject(e){return(new S).setType(f.of(l.OBJECT)).setName(e)}static ofRef(e){return(new S).setRef(e)}static ofArray(e,...t){return(new S).setType(f.of(l.ARRAY)).setName(e).setItems(u.of(...t))}static fromListOfSchemas(e){if(E(e)&&!Array.isArray(e))return;let t=[];for(let r of Array.from(e)){let e=S.from(r);e&&t.push(e)}return t}static fromMapOfSchemas(e){if(E(e))return;const t=new Map;return Object.entries(e).forEach((([e,r])=>{let n=S.from(r);n&&t.set(e,n)})),t}static from(e,t=!1){if(E(e))return;let r=new S;return r.namespace=e.namespace??"_",r.name=e.name,r.version=e.version??1,r.ref=e.ref,r.type=t?new N(l.STRING):f.from(e.type),r.anyOf=S.fromListOfSchemas(e.anyOf),r.allOf=S.fromListOfSchemas(e.allOf),r.oneOf=S.fromListOfSchemas(e.oneOf),r.not=S.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=S.fromMapOfSchemas(e.properties),r.additionalProperties=_.from(e.additionalProperties),r.required=e.required,r.propertyNames=S.from(e.propertyNames,!0),r.minProperties=e.minProperties,r.maxProperties=e.maxProperties,r.patternProperties=S.fromMapOfSchemas(e.patternProperties),r.items=u.from(e.items),r.additionalItems=_.from(e.additionalItems),r.contains=S.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=S.fromMapOfSchemas(e.$defs),r.permission=e.permission,r}namespace="_";version=1;constructor(e){e&&(this.namespace=e.namespace,this.name=e.name,this.version=e.version,this.ref=e.ref,this.type=e.type instanceof N?new N(e.type):new h(e.type),this.anyOf=e.anyOf?.map((e=>new S(e))),this.allOf=e.allOf?.map((e=>new S(e))),this.oneOf=e.oneOf?.map((e=>new S(e))),this.not=this.not?new S(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 S(e[1])]))):void 0,this.additionalProperties=e.additionalProperties?new _(e.additionalProperties):void 0,this.required=e.required?[...e.required]:void 0,this.propertyNames=e.propertyNames?new S(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 S(e[1])]))):void 0,this.items=e.items?new u(e.items):void 0,this.contains=e.contains?new S(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 _(e.additionalItems):void 0,this.$defs=e.$defs?new Map(Array.from(e.$defs.entries()).map((e=>[e[0],new S(e[1])]))):void 0,this.permission=e.permission)}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 N(l.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}}var M={};t(M,"Parameter",(()=>y));var O={};t(O,"SchemaReferenceException",(()=>w));class w 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}}var I={};let d;var P;t(I,"ParameterType",(()=>d)),(P=d||(d={})).CONSTANT="CONSTANT",P.EXPRESSION="EXPRESSION";class y{static SCHEMA_NAME="Parameter";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(y.SCHEMA_NAME).setProperties(new Map([["schema",S.SCHEMA],["parameterName",S.ofString("parameterName")],["variableArgument",S.of("variableArgument",l.BOOLEAN).setDefaultValue(!1)],["type",S.ofString("type").setEnums(["EXPRESSION","CONSTANT"])]]));static EXPRESSION=(new S).setNamespace(a.SYSTEM).setName("ParameterExpression").setType(f.of(l.OBJECT)).setProperties(new Map([["isExpression",S.ofBoolean("isExpression").setDefaultValue(!0)],["value",S.ofAny("value")]]));variableArgument=!1;type=d.EXPRESSION;constructor(e,t){if(e instanceof y)this.schema=new S(e.schema),this.parameterName=e.parameterName,this.variableArgument=e.variableArgument,this.type=e.type;else{if(!t)throw new 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,n=d.EXPRESSION){return[e,new y(e,t).setType(n).setVariableArgument(r)]}static of(e,t,r=!1,n=d.EXPRESSION){return new y(e,t).setType(n).setVariableArgument(r)}static from(e){const t=S.from(e.schema);if(!t)throw new w("","Parameter requires Schema");return new y(e.parameterName,t).setVariableArgument(!!e.variableArguments).setType(e.type??d.EXPRESSION)}}const x=new Map([["any",S.ofAny("any").setNamespace(a.SYSTEM)],["boolean",S.ofBoolean("boolean").setNamespace(a.SYSTEM)],["double",S.ofDouble("double").setNamespace(a.SYSTEM)],["float",S.ofFloat("float").setNamespace(a.SYSTEM)],["integer",S.ofInteger("integer").setNamespace(a.SYSTEM)],["long",S.ofLong("long").setNamespace(a.SYSTEM)],["number",S.ofNumber("number").setNamespace(a.SYSTEM)],["string",S.ofString("string").setNamespace(a.SYSTEM)],[y.EXPRESSION.getName(),y.EXPRESSION],[S.NULL.getName(),S.NULL],[S.SCHEMA.getName(),S.SCHEMA]]),v=Array.from(x.values()).map((e=>e.getFullName()));class L{find(e,t){if(a.SYSTEM==e)return x.get(t)}filter(e){return v.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}var U={};function V(e){return[e.getSignature().getName(),e]}t(U,"KIRunFunctionRepository",(()=>In));var C={};t(C,"MapUtil",(()=>G)),t(C,"MapEntry",(()=>b));class G{static of(e,t,r,n,s,a,i,o,u,A,l,m,g,R,T,p,h,c,N,f){const _=new Map;return E(e)||E(t)||_.set(e,t),E(r)||E(n)||_.set(r,n),E(s)||E(a)||_.set(s,a),E(i)||E(o)||_.set(i,o),E(u)||E(A)||_.set(u,A),E(l)||E(m)||_.set(l,m),E(g)||E(R)||_.set(g,R),E(T)||E(p)||_.set(T,p),E(h)||E(c)||_.set(h,c),E(N)||E(f)||_.set(N,f),_}static ofArrayEntries(...e){const t=new Map;for(const[r,n]of e)t.set(r,n);return t}static entry(e,t){return new b(e,t)}static ofEntries(...e){const t=new Map;for(const r of e)t.set(r.k,r.v);return t}static ofEntriesArray(...e){const t=new Map;for(let r=0;r<e.length;r++)t.set(e[r][0],e[r][1]);return t}constructor(){}}class b{constructor(e,t){this.k=e,this.v=t}}var D={};t(D,"EventResult",(()=>B));var F={};t(F,"Event",(()=>Y));class Y{static OUTPUT="output";static ERROR="error";static ITERATION="iteration";static TRUE="true";static FALSE="false";static SCHEMA_NAME="Event";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(Y.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["name",S.ofString("name")],["parameters",S.ofObject("parameter").setAdditionalProperties((new _).setSchemaValue(S.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 S(e[1])])));else{if(this.name=e,!t)throw new 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=>{const t=S.from(e[1]);if(!t)throw new w("","Event expects a schema");return[e[0],t]}))))}}class B{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 B.of(Y.OUTPUT,e)}static of(e,t){return new B(e,t)}}var H={};t(H,"FunctionOutput",(()=>X));var k={};t(k,"KIRuntimeException",(()=>$));class $ extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class X{index=0;constructor(e){if(E(e))throw new $("Function output is generating null");Array.isArray(e)&&e.length&&e[0]instanceof B?this.fo=e:(this.fo=[],this.generator=e)}next(){if(!this.generator)return this.index<this.fo.length?this.fo[this.index++]:void 0;const e=this.generator.next();return e&&this.fo.push(e),e}allResults(){return this.fo}}var W={};t(W,"FunctionSignature",(()=>j));class j{static SCHEMA_NAME="FunctionSignature";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(j.SCHEMA_NAME).setProperties(new Map([["name",S.ofString("name")],["namespace",S.ofString("namespace")],["parameters",S.ofObject("parameters").setAdditionalProperties((new _).setSchemaValue(y.SCHEMA))],["events",S.ofObject("events").setAdditionalProperties((new _).setSchemaValue(Y.SCHEMA))]]));namespace="_";parameters=new Map;events=new Map;constructor(e){e instanceof j?(this.name=e.name,this.namespace=e.namespace,this.parameters=new Map(Array.from(e.parameters.entries()).map((e=>[e[0],new y(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}}var q={};t(q,"AbstractFunction",(()=>Pe));var J={};t(J,"SchemaValidator",(()=>de));var z={};t(z,"StringUtil",(()=>Z));var Q={};t(Q,"StringFormatter",(()=>K));class K{static format(e,...t){if(!t||0==t.length)return e;let r="",n=0,s="",a=s,i=e.length;for(let o=0;o<i;o++)s=e.charAt(o),"$"==s&&"\\"==a?r=r.substring(0,o-1)+s:"$"==s&&n<t.length?r+=t[n++]:r+=s,a=s;return r.toString()}constructor(){}}class Z{constructor(){}static nthIndex(e,t,r=0,n){if(!e)throw new $("String cannot be null");if(r<0||r>=e.length)throw new $(K.format("Cannot search from index : $",r));if(n<=0||n>e.length)throw new $(K.format("Cannot search for occurance : $",n));for(;r<e.length;){if(e.charAt(r)==t&&0==--n)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 isNullOrBlank(e){return!e||""==e.trim()}}var ee={};t(ee,"SchemaUtil",(()=>oe));var te={};t(te,"Tuple2",(()=>re)),t(te,"Tuple3",(()=>ne)),t(te,"Tuple4",(()=>se));class re{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 ne extends re{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 se extends ne{constructor(e,t,r,n){super(e,t,r),this.fr=n}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}}var ae={};t(ae,"SchemaValidationException",(()=>ie));class ie extends Error{constructor(e,t,r=[],n){super(t+(r?r.map((e=>e.message)).reduce(((e,t)=>e+"\n"+t),""):"")),this.schemaPath=e,this.cause=n}getSchemaPath(){return this.schemaPath}getCause(){return this.cause}}class oe{static UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH="Unable to retrive schema from referenced path";static CYCLIC_REFERENCE_LIMIT_COUNTER=20;static getDefaultValue(e,t){if(e)return e.getConstant()?e.getConstant():E(e.getDefaultValue())?oe.getDefaultValue(oe.getSchemaFromRef(e,t,e.getRef()),t):e.getDefaultValue()}static hasDefaultValueOrNullSchemaType(e,t){return!!e&&(!!e.getConstant()||(!!e.getDefaultValue()||(E(e.getRef())?!!e.getType()?.getAllowedSchemaTypes().has(l.NULL):this.hasDefaultValueOrNullSchemaType(oe.getSchemaFromRef(e,t,e.getRef()),t))))}static getSchemaFromRef(e,t,r,n=0){if(++n==oe.CYCLIC_REFERENCE_LIMIT_COUNTER)throw new ie(r??"","Schema has a cyclic reference");if(!e||!r||Z.isNullOrBlank(r))return;if(!r.startsWith("#")){var s=oe.resolveExternalSchema(e,t,r);s&&(e=s.getT1(),r=s.getT2())}let a=r.split("/");return 1===a.length?e:oe.resolveInternalSchema(e,t,r,n,a,1)}static resolveInternalSchema(e,t,r,n,s,a){let i=e;if(a!==s.length){for(;a<s.length;){if("$defs"===s[a]){if(++a>=s.length||!i.get$defs())throw new w(r,oe.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);i=i.get$defs()?.get(s[a])}else{if(i&&(!i.getType()?.contains(l.OBJECT)||!i.getProperties()))throw new w(r,"Cannot retrievie schema from non Object type schemas");i=i.getProperties()?.get(s[a])}if(a++,!i)throw new w(r,oe.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);if(!Z.isNullOrBlank(i.getRef())&&(i=oe.getSchemaFromRef(i,t,i.getRef(),n),!i))throw new w(r,oe.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH)}return i}}static resolveExternalSchema(e,t,r){if(!t)return;let n=Z.splitAtFirstOccurance(r??"","/");if(!n[0])return;let s=Z.splitAtFirstOccurance(n[0],".");if(!s[0]||!s[1])return;let a=t.find(s[0],s[1]);if(a){if(!n[1]||""===n[1])return new re(a,r);if(r="#/"+n[1],!a)throw new w(r,oe.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);return new re(a,r)}}constructor(){}}var Ee={};t(Ee,"AnyOfAllOfOneOfValidator",(()=>ue));class ue{static validate(e,t,r,n){let s=[];return t.getOneOf()&&!t.getOneOf()?ue.oneOf(e,t,r,n,s):t.getAllOf()&&!t.getAllOf()?ue.allOf(e,t,r,n,s):t.getAnyOf()&&!t.getAnyOf()&&ue.anyOf(e,t,r,n,s),n}static anyOf(e,t,r,n,s){let a=!1;for(let i of t.getAnyOf()??[])try{ue.validate(e,i,r,n),a=!0;break}catch(e){a=!1,s.push(e)}if(!a)throw new ie(de.path(e),"The value don't satisfy any of the schemas.",s)}static allOf(e,t,r,n,s){let a=0;for(let i of t.getAllOf()??[])try{ue.validate(e,i,r,n),a++}catch(e){s.push(e)}if(a!==t.getAllOf()?.length)throw new ie(de.path(e),"The value doesn't satisfy some of the schemas.",s)}static oneOf(e,t,r,n,s){let a=0;for(let i of t.getOneOf()??[])try{ue.validate(e,i,r,n),a++}catch(e){s.push(e)}if(1!=a)throw new ie(de.path(e),0==a?"The value does not satisfy any schema":"The value satisfy more than one schema",s)}constructor(){}}var Ae={};t(Ae,"TypeValidator",(()=>Ie));var le={};t(le,"ArrayValidator",(()=>me));class me{static validate(e,t,r,n){if(E(n))throw new ie(de.path(e),"Expected an array but found null");if(!Array.isArray(n))throw new ie(de.path(e),n.toString()+" is not an Array");let s=n;return me.checkMinMaxItems(e,t,s),me.checkItems(e,t,r,s),me.checkUniqueItems(e,t,s),me.checkContains(t,e,r,s),n}static checkContains(e,t,r,n){if(E(e.getContains()))return;let s=me.countContains(t,e,r,n,E(e.getMinContains())&&E(e.getMaxContains()));if(0===s)throw new ie(de.path(t),"None of the items are of type contains schema");if(!E(e.getMinContains())&&e.getMinContains()>s)throw new ie(de.path(t),"The minimum number of the items of type contains schema should be "+e.getMinContains()+" but found "+s);if(!E(e.getMaxContains())&&e.getMaxContains()<s)throw new ie(de.path(t),"The maximum number of the items of type contains schema should be "+e.getMaxContains()+" but found "+s)}static countContains(e,t,r,n,s){let a=0;for(let i=0;i<n.length;i++){let o=e?[...e]:[];try{if(de.validate(o,t.getContains(),r,n[i]),a++,s)break}catch(e){}}return a}static checkUniqueItems(e,t,r){if(t.getUniqueItems()&&t.getUniqueItems()){if(new Set(r).size!==r.length)throw new ie(de.path(e),"Items on the array are not unique")}}static checkMinMaxItems(e,t,r){if(t.getMinItems()&&t.getMinItems()>r.length)throw new ie(de.path(e),"Array should have minimum of "+t.getMinItems()+" elements");if(t.getMaxItems()&&t.getMaxItems()<r.length)throw new ie(de.path(e),"Array can have maximum of "+t.getMaxItems()+" elements")}static checkItems(e,t,r,n){if(!t.getItems())return;let s=t.getItems();if(s.getSingleSchema())for(let t=0;t<n.length;t++){let a=e?[...e]:[],i=de.validate(a,s.getSingleSchema(),r,n[t]);n[t]=i}if(s.getTupleSchema()){if(s.getTupleSchema().length!==n.length&&E(t?.getAdditionalItems()))throw new ie(de.path(e),"Expected an array with only "+s.getTupleSchema().length+" but found "+n.length);this.checkItemsInTupleSchema(e,r,n,s),this.checkAdditionalItems(e,t,r,n,s)}}static checkItemsInTupleSchema(e,t,r,n){for(let s=0;s<n.getTupleSchema()?.length;s++){let a=e?[...e]:[],i=de.validate(a,n.getTupleSchema()[s],t,r[s]);r[s]=i}}static checkAdditionalItems(e,t,r,n,s){if(!E(t.getAdditionalItems())){let a=t.getAdditionalItems();if(a?.getBooleanValue()){let i=S.ofAny("item");if(!1===a?.getBooleanValue()&&n.length>s.getTupleSchema()?.length)throw new ie(de.path(e),"No Additional Items are defined");this.checkEachItemInAdditionalItems(e,t,r,n,s,i)}else if(a?.getSchemaValue()){let i=a.getSchemaValue();this.checkEachItemInAdditionalItems(e,t,r,n,s,i)}}}static checkEachItemInAdditionalItems(e,t,r,n,s,a){for(let t=s.getTupleSchema()?.length;t<n.length;t++){let s=e?[...e]:[],i=de.validate(s,a,r,n[t]);n[t]=i}}constructor(){}}var ge={};t(ge,"BooleanValidator",(()=>Re));class Re{static validate(e,t,r){if(E(r))throw new ie(de.path(e),"Expected a boolean but found null");if("boolean"!=typeof r)throw new ie(de.path(e),r.toString()+" is not a boolean");return r}constructor(){}}var Te={};t(Te,"NullValidator",(()=>pe));class pe{static validate(e,t,r){if(r)throw new ie(de.path(e),"Expected a null but found "+r);return r}constructor(){}}var he={};t(he,"NumberValidator",(()=>ce));class ce{static validate(e,t,r,n){if(E(n))throw new ie(de.path(t),"Expected a number but found null");if("number"!=typeof n)throw new ie(de.path(t),n.toString()+" is not a "+e);let s=ce.extractNumber(e,t,r,n);return ce.checkRange(t,r,n,s),ce.checkMultipleOf(t,r,n,s),n}static extractNumber(e,t,r,n){let s=n;try{e!=l.LONG&&e!=l.INTEGER||(s=Math.round(s))}catch(r){throw new ie(de.path(t),n+" is not a number of type "+e,r)}if(E(s)||(e==l.LONG||e==l.INTEGER)&&s!=n)throw new ie(de.path(t),n.toString()+" is not a number of type "+e);return s}static checkMultipleOf(e,t,r,n){if(t.getMultipleOf()){if(n%t.getMultipleOf()!=0)throw new ie(de.path(e),r.toString()+" is not multiple of "+t.getMultipleOf())}}static checkRange(e,t,r,n){if(t.getMinimum()&&ce.numberCompare(n,t.getMinimum())<0)throw new ie(de.path(e),r.toString()+" should be greater than or equal to "+t.getMinimum());if(t.getMaximum()&&ce.numberCompare(n,t.getMaximum())>0)throw new ie(de.path(e),r.toString()+" should be less than or equal to "+t.getMaximum());if(t.getExclusiveMinimum()&&ce.numberCompare(n,t.getExclusiveMinimum())<=0)throw new ie(de.path(e),r.toString()+" should be greater than "+t.getExclusiveMinimum());if(t.getExclusiveMaximum()&&ce.numberCompare(n,t.getExclusiveMaximum())>0)throw new ie(de.path(e),r.toString()+" should be less than "+t.getExclusiveMaximum())}static numberCompare(e,t){return e-t}constructor(){}}var Ne={};t(Ne,"ObjectValidator",(()=>fe));class fe{static validate(e,t,r,n){if(E(n))throw new ie(de.path(e),"Expected an object but found null");if("object"!=typeof n||Array.isArray(n))throw new ie(de.path(e),n.toString()+" is not an Object");let s=n,a=new Set(Object.keys(s));fe.checkMinMaxProperties(e,t,a),t.getPropertyNames()&&fe.checkPropertyNameSchema(e,t,r,a),t.getRequired()&&fe.checkRequired(e,t,s),t.getProperties()&&fe.checkProperties(e,t,r,s,a),t.getPatternProperties()&&fe.checkPatternProperties(e,t,r,s,a),t.getAdditionalProperties()&&fe.checkAddtionalProperties(e,t,r,s,a)}static checkPropertyNameSchema(e,t,r,n){for(let s of Array.from(n.values()))try{de.validate(e,t.getPropertyNames(),r,s)}catch(t){throw new ie(de.path(e),"Property name '"+s+"' does not fit the property schema")}}static checkRequired(e,t,r){for(const n of t.getRequired()??[])if(E(r[n]))throw new ie(de.path(e),n+" is mandatory")}static checkAddtionalProperties(e,t,r,n,s){let a=t.getAdditionalProperties();if(a.getSchemaValue())for(let t of Array.from(s.values())){let s=e?[...e]:[],i=de.validate(s,a.getSchemaValue(),r,n[t]);n[t]=i}else if(!1===a.getBooleanValue()&&s.size)throw new ie(de.path(e),Array.from(s)+" is/are additional properties which are not allowed.")}static checkPatternProperties(e,t,r,n,s){const a=new Map;for(const e of Array.from(t.getPatternProperties().keys()))a.set(e,new RegExp(e));for(const i of Array.from(s.values())){const o=e?[...e]:[];for(const e of Array.from(a.entries()))if(e[1].test(i)){const a=de.validate(o,t.getPatternProperties().get(e[0]),r,n[i]);n[i]=a,s.delete(i);break}}}static checkProperties(e,t,r,n,s){for(const a of Array.from(t.getProperties())){let t=n[a[0]];if(!n.hasOwnProperty(a[0])&&E(t)){if(E(oe.getDefaultValue(a[1],r)))continue}let i=e?[...e]:[],o=de.validate(i,a[1],r,t);n[a[0]]=o,s.delete(a[0])}}static checkMinMaxProperties(e,t,r){if(t.getMinProperties()&&r.size<t.getMinProperties())throw new ie(de.path(e),"Object should have minimum of "+t.getMinProperties()+" properties");if(t.getMaxProperties()&&r.size>t.getMaxProperties())throw new ie(de.path(e),"Object can have maximum of "+t.getMaxProperties()+" properties")}constructor(){}}var _e={};t(_e,"StringValidator",(()=>we));var Se={};let Me;var Oe;t(Se,"StringFormat",(()=>Me)),(Oe=Me||(Me={})).DATETIME="DATETIME",Oe.TIME="TIME",Oe.DATE="DATE",Oe.EMAIL="EMAIL",Oe.REGEX="REGEX";class we{static TIME=/^([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?([+-][01][0-9]:[0-5][0-9])?$/;static DATE=/^[0-9]{4,4}-([0][0-9]|[1][0-2])-(0[1-9]|[1-2][1-9]|3[01])$/;static 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 EMAIL=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;static validate(e,t,r){if(E(r))throw new ie(de.path(e),"Expected a string but found "+r);if("string"!=typeof r)throw new ie(de.path(e),r.toString()+" is not String");t.getFormat()==Me.TIME?we.patternMatcher(e,t,r,we.TIME,"time pattern"):t.getFormat()==Me.DATE?we.patternMatcher(e,t,r,we.DATE,"date pattern"):t.getFormat()==Me.DATETIME?we.patternMatcher(e,t,r,we.DATETIME,"date time pattern"):t.getFormat()==Me.EMAIL?we.patternMatcher(e,t,r,we.EMAIL,"email pattern"):t.getPattern()&&we.patternMatcher(e,t,r,new RegExp(t.getPattern()),"pattern "+t.getPattern());let n=r.length;if(t.getMinLength()&&n<t.getMinLength())throw new ie(de.path(e),"Expected a minimum of "+t.getMinLength()+" characters");if(t.getMaxLength()&&n>t.getMaxLength())throw new ie(de.path(e),"Expected a maximum of "+t.getMaxLength()+" characters");return r}static patternMatcher(e,t,r,n,s){if(!n.test(r))throw new ie(de.path(e),r.toString()+" is not matched with the "+s)}constructor(){}}class Ie{static validate(e,t,r,n,s){if(t==l.STRING)we.validate(e,r,s);else if(t==l.LONG||t==l.INTEGER||t==l.DOUBLE||t==l.FLOAT)ce.validate(t,e,r,s);else if(t==l.BOOLEAN)Re.validate(e,r,s);else if(t==l.OBJECT)fe.validate(e,r,n,s);else if(t==l.ARRAY)me.validate(e,r,n,s);else{if(t!=l.NULL)throw new ie(de.path(e),t+" is not a valid type.");pe.validate(e,r,s)}return s}constructor(){}}class de{static path(e){return e?e.map((e=>e.getTitle()??"")).filter((e=>!!e)).reduce(((e,t,r)=>e+(0===r?"":".")+t),""):""}static validate(e,t,r,n){if(!t)throw new ie(de.path(e),"No schema found to validate");if(e||(e=new Array),e.push(t),E(n)&&!E(t.getDefaultValue()))return JSON.parse(JSON.stringify(t.getDefaultValue()));if(t.getConstant())return de.constantValidation(e,t,n);if(t.getEnums()&&!t.getEnums()?.length)return de.enumCheck(e,t,n);if(t.getFormat()&&E(t.getType()))throw new ie(this.path(e),"Type is missing in schema for declared "+t.getFormat()?.toString()+" format.");if(t.getType()&&de.typeValidation(e,t,r,n),!Z.isNullOrBlank(t.getRef()))return de.validate(e,oe.getSchemaFromRef(e[0],r,t.getRef()),r,n);if((t.getOneOf()||t.getAllOf()||t.getAnyOf())&&ue.validate(e,t,r,n),t.getNot()){let s=!1;try{de.validate(e,t.getNot(),r,n),s=!0}catch(e){s=!1}if(s)throw new ie(de.path(e),"Schema validated value in not condition.")}return n}static constantValidation(e,t,r){if(!t.getConstant().equals(r))throw new ie(de.path(e),"Expecting a constant value : "+r);return r}static enumCheck(e,t,r){let n=!1;for(let e of t.getEnums()??[])if(e===r){n=!0;break}if(n)return r;throw new ie(de.path(e),"Value is not one of "+t.getEnums())}static typeValidation(e,t,r,n){let s=!1,a=[];for(const i of Array.from(t.getType()?.getAllowedSchemaTypes()?.values()??[]))try{Ie.validate(e,i,t,r,n),s=!0;break}catch(e){s=!1,a.push(e)}if(!s)throw new ie(de.path(e),"Value "+JSON.stringify(n)+" is not of valid type(s)",a)}constructor(){}}class Pe{validateArguments(e,t,r){return Array.from(this.getSignature().getParameters().entries()).map((n=>{let s=n[1];try{return this.validateArgument(e,t,n,s)}catch(e){const t=this.getSignature();throw new $(`Error while executing the function ${t.getNamespace()}.${t.getName()}'s parameter ${s.getParameterName()} with step name '${r?.getStatement().getStatementName()??"Unknown Step"}' with error : ${e?.message}`)}})).reduce(((e,t)=>(e.set(t.getT1(),t.getT2()),e)),new Map)}validateArgument(e,t,r,n){let s,a=r[0],i=e.get(r[0]);if(E(i)&&!n.isVariableArgument())return new re(a,de.validate(void 0,n.getSchema(),t,void 0));if(!n?.isVariableArgument())return new re(a,de.validate(void 0,n.getSchema(),t,i));Array.isArray(i)?s=i:(s=[],E(i)?E(n.getSchema().getDefaultValue())||s.push(n.getSchema().getDefaultValue()):s.push(i));for(let e=0;e<s.length;e++)s[e]=de.validate(void 0,n.getSchema(),t,s[e]);return new re(a,s)}async execute(e){e.setArguments(this.validateArguments(e.getArguments()??new Map,e.getSchemaRepository(),e.getStatementExecution()));try{return this.internalExecute(e)}catch(t){const r=this.getSignature();throw new $(`Error while executing the function ${r.getNamespace()}.${r.getName()} with step name '${e.getStatementExecution()?.getStatement().getStatementName()??"Unknown Step"}' with error : ${t?.message}`)}}getProbableEventSignature(e){return this.getSignature().getEvents()}}class ye extends Pe{static EVENT_INDEX_NAME="index";static EVENT_RESULT_NAME="result";static EVENT_INDEX=new Y(Y.OUTPUT,G.of(ye.EVENT_INDEX_NAME,S.ofInteger(ye.EVENT_INDEX_NAME)));static EVENT_RESULT_INTEGER=new Y(Y.OUTPUT,G.of(ye.EVENT_RESULT_NAME,S.ofInteger(ye.EVENT_RESULT_NAME)));static EVENT_RESULT_BOOLEAN=new Y(Y.OUTPUT,G.of(ye.EVENT_RESULT_NAME,S.ofBoolean(ye.EVENT_RESULT_NAME)));static EVENT_RESULT_ARRAY=new Y(Y.OUTPUT,G.of(ye.EVENT_RESULT_NAME,S.ofArray(ye.EVENT_RESULT_NAME,S.ofAny(ye.EVENT_RESULT_NAME))));static EVENT_RESULT_EMPTY=new Y(Y.OUTPUT,G.of());static EVENT_RESULT_ANY=new Y(Y.OUTPUT,G.of(this.EVENT_RESULT_NAME,S.ofAny(this.EVENT_RESULT_NAME)));static PARAMETER_INT_LENGTH=y.of("length",S.ofInteger("length").setDefaultValue(-1));static PARAMETER_ARRAY_FIND=y.of("find",S.ofArray("eachFind",S.ofAny("eachFind")));static PARAMETER_INT_SOURCE_FROM=y.of("srcFrom",S.ofInteger("srcFrom").setDefaultValue(0).setMinimum(0));static PARAMETER_INT_SECOND_SOURCE_FROM=y.of("secondSrcFrom",S.ofInteger("secondSrcFrom").setDefaultValue(0));static PARAMETER_INT_FIND_FROM=y.of("findFrom",S.ofInteger("findFrom").setDefaultValue(0));static PARAMETER_INT_OFFSET=y.of("offset",S.ofInteger("offset").setDefaultValue(0));static PARAMETER_ROTATE_LENGTH=y.of("rotateLength",S.ofInteger("rotateLength").setDefaultValue(1).setMinimum(1));static PARAMETER_BOOLEAN_ASCENDING=y.of("ascending",S.ofBoolean("ascending").setDefaultValue(!1));static PARAMETER_FIND_PRIMITIVE=y.of("findPrimitive",S.of("findPrimitive",l.STRING,l.DOUBLE,l.FLOAT,l.INTEGER,l.LONG));static PARAMETER_ARRAY_SOURCE=y.of("source",S.ofArray("eachSource",S.ofAny("eachSource")));static PARAMETER_ARRAY_SECOND_SOURCE=y.of("secondSource",S.ofArray("eachSecondSource",S.ofAny("eachSecondSource")));static PARAMETER_ARRAY_SOURCE_PRIMITIVE=y.of("source",S.ofArray("eachSource",(new S).setName("eachSource").setType(f.of(l.STRING,l.NULL,l.INTEGER,l.FLOAT,l.DOUBLE,l.LONG))));static PARAMETER_BOOLEAN_DEEP_COPY=y.of("deepCopy",S.ofBoolean("deepCopy").setDefaultValue(!0));static PARAMETER_ANY=y.of("element",S.ofAny("element"));static PARAMETER_ANY_NOT_NULL=y.of("elementObject",S.ofAnyNotNull("elementObject"));static PARAMETER_ANY_VAR_ARGS=y.of("element",S.ofAny("element")).setVariableArgument(!0);static PARAMETER_ARRAY_RESULT=y.of(ye.EVENT_RESULT_NAME,S.ofArray("eachResult",S.ofAny("eachResult")));constructor(e,t,r){super();const n=new Map;for(const e of t)n.set(e.getParameterName(),e);this.signature=new j(e).setNamespace(a.SYSTEM_ARRAY).setParameters(n).setEvents(G.of(r.getName(),r))}getSignature(){return this.signature}}class xe extends ye{constructor(){super("Add",[ye.PARAMETER_ARRAY_SOURCE,ye.PARAMETER_ARRAY_SECOND_SOURCE],ye.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(ye.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ye.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName());return t.splice(t.length,0,...r),new X([B.outputOf(new Map([]))])}}class ve extends ye{constructor(){super("AddFirst",[ye.PARAMETER_ARRAY_SOURCE,ye.PARAMETER_ANY_NOT_NULL],ye.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(ye.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ye.PARAMETER_ANY_NOT_NULL.getParameterName());if(0==t.length)return t.push(r),new X([B.outputOf(new Map([]))]);t.push(r);let n=t.length-1;for(;n>0;){let e=t[n-1];t[n-1]=t[n],t[n--]=e}return new X([B.outputOf(new Map([]))])}}var Le={};t(Le,"PrimitiveUtil",(()=>Ce));var Ue={};t(Ue,"ExecutionException",(()=>Ve));class Ve extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class Ce{static findPrimitiveNullAsBoolean(e){if(E(e))return new re(l.BOOLEAN,!1);let t=typeof e;if("object"===t)throw new Ve(K.format("$ is not a primitive type",e));let r=e;return"boolean"===t?new re(l.BOOLEAN,r):"string"===t?new re(l.STRING,r):Ce.findPrimitiveNumberType(r)}static findPrimitive(e){if(E(e))return new re(l.NULL,void 0);let t=typeof e;if("object"===t)throw new Ve(K.format("$ is not a primitive type",e));let r=e;return"boolean"===t?new re(l.BOOLEAN,r):"string"===t?new re(l.STRING,r):Ce.findPrimitiveNumberType(r)}static findPrimitiveNumberType(e){if(E(e)||Array.isArray(e)||"object"==typeof e)throw new Ve(K.format("Unable to convert $ to a number.",e));let t=e;try{let e=t;return Number.isInteger(e)?new re(l.LONG,e):new re(l.DOUBLE,e)}catch(e){throw new Ve(K.format("Unable to convert $ to a number.",t),e)}}static compare(e,t){if(e==t)return 0;if(E(e)||E(t))return E(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 n=this.compare(e[r],t[r]);if(0!=n)return n}return 0}return Array.isArray(e)?-1:1}const r=typeof e,n=typeof t;return"object"===r||"object"===n?("object"===r&&"object"===n&&Object.keys(e).forEach((r=>{let n=this.compare(e[r],t[r]);if(0!=n)return n})),"object"===r?-1:1):this.comparePrimitive(e,t)}static comparePrimitive(e,t){return E(e)||E(t)?E(e)&&E(t)?0:E(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)?l.LONG:l.DOUBLE}static toPrimitiveType(e){return e}constructor(){}}class Ge extends ye{constructor(){super("BinarySearch",[Ge.PARAMETER_ARRAY_SOURCE_PRIMITIVE,Ge.PARAMETER_INT_SOURCE_FROM,Ge.PARAMETER_FIND_PRIMITIVE,Ge.PARAMETER_INT_LENGTH],Ge.EVENT_INDEX)}async internalExecute(e){let t=e?.getArguments()?.get(Ge.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Ge.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(Ge.PARAMETER_FIND_PRIMITIVE.getParameterName()),s=e?.getArguments()?.get(Ge.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length||r<0||r>t.length)throw new $("Search source array cannot be empty");if(-1==s&&(s=t.length-r),s=r+s,s>t.length)throw new $("End point for array cannot be more than the size of the source array");let a=-1;for(;r<=s;){let e=Math.floor((r+s)/2);if(0==Ce.compare(t[e],n)){a=e;break}Ce.compare(t[e],n)>0?s=e-1:r=e+1}return new X([B.outputOf(new Map([[Ge.EVENT_INDEX.getName(),a]]))])}}var be={};t(be,"ArrayUtil",(()=>De));class De{static removeAListFrom(e,t){if(!(t&&e&&e.length&&t.length))return;const r=new Set(t);for(let t=0;t<e.length;t++)r.has(e[t])&&(e.splice(t,1),t--)}static of(...e){const t=new Array(e.length);for(let r=0;r<e.length;r++)t[r]=e[r];return t}constructor(){}}class Fe extends ye{constructor(){super("Compare",De.of(Fe.PARAMETER_ARRAY_SOURCE,Fe.PARAMETER_INT_SOURCE_FROM,Fe.PARAMETER_ARRAY_FIND,Fe.PARAMETER_INT_FIND_FROM,Fe.PARAMETER_INT_LENGTH),Fe.EVENT_RESULT_INTEGER)}async internalExecute(e){var t=e?.getArguments()?.get(Fe.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Fe.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(Fe.PARAMETER_ARRAY_FIND.getParameterName()),s=e?.getArguments()?.get(Fe.PARAMETER_INT_FIND_FROM.getParameterName()),a=e?.getArguments()?.get(Fe.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new $("Compare source array cannot be empty");if(0==n.length)throw new $("Compare find array cannot be empty");if(-1==a&&(a=t.length-r),r+a>t.length)throw new $(K.format("Source array size $ is less than comparing size $",t.length,r+a));if(s+a>n.length)throw new $(K.format("Find array size $ is less than comparing size $",n.length,s+a));return new X(De.of(B.outputOf(G.of(Fe.EVENT_RESULT_NAME,this.compare(t,r,r+a,n,s,s+a)))))}compare(e,t,r,n,s,a){if(r<t){let e=t;t=r,r=e}if(a<s){let e=s;s=a,a=e}if(r-t!=a-s)throw new $(K.format("Cannot compare uneven arrays from $ to $ in source array with $ to $ in find array",r,t,a,s));for(let a=t,i=s;a<r;a++,i++){let t=1;if(E(e[a])||E(n[i])){let r=E(e[a]);r==E(n[i])?t=0:r&&(t=-1)}else{let r=typeof e[a],s=typeof n[i];if("object"===r||"object"===s)t=1;else if("string"===r||"string"===s){let r=""+e[a],s=""+n[i];r===s?t=0:r<s&&(t=-1)}else"boolean"===r||"boolean"===s?t=r==s?0:1:"number"===r&&"number"===s&&(t=e[a]-n[i])}if(0!=t)return t}return 0}}class Ye extends ye{constructor(){super("Copy",[Ye.PARAMETER_ARRAY_SOURCE,Ye.PARAMETER_INT_SOURCE_FROM,Ye.PARAMETER_INT_LENGTH,Ye.PARAMETER_BOOLEAN_DEEP_COPY],Ye.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(Ye.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Ye.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(Ye.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),r+n>t.length)throw new $(K.format("Array has no elements from $ to $ as the array size is $",r,r+n,t.length));var s=e?.getArguments()?.get(Ye.PARAMETER_BOOLEAN_DEEP_COPY.getParameterName());const a=new Array(n);for(let e=r;e<r+n;e++)E(t[e])||(a[e-r]=s?JSON.parse(JSON.stringify(t[e])):t[e]);return new X([B.outputOf(G.of(Ye.EVENT_RESULT_NAME,a))])}}class Be extends ye{constructor(){super("Delete",[ye.PARAMETER_ARRAY_SOURCE,ye.PARAMETER_ANY_VAR_ARGS],ye.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(Be.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Be.PARAMETER_ANY_VAR_ARGS.getParameterName());if(null==r)throw new $("The deletable var args are empty. So cannot be proceeded further.");if(0==t.length||0==r.length)throw new $("Expected a source or deletable for an array but not found any");let n=new Set,s=[];for(let e=t.length-1;e>=0;e--)for(let s=0;s<r.length;s++)n.has(e)||0!=Ce.compare(t[e],r[s])||n.add(t[e]);return s=t.filter((e=>!n.has(e))),t.splice(0,t.length,...s),new X([B.outputOf(new Map([]))])}}class He extends ye{constructor(){super("DeleteFirst",[He.PARAMETER_ARRAY_SOURCE],He.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(He.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new $("Given source array is empty");return t.shift(),new X([B.outputOf(new Map([]))])}}class ke extends ye{constructor(){super("DeleteFrom",[ke.PARAMETER_ARRAY_SOURCE,ke.PARAMETER_INT_SOURCE_FROM,ke.PARAMETER_INT_LENGTH],ke.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(ke.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ke.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(ke.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new $("There are no elements to be deleted");if(r>=t.length||r<0)throw new $("The int source for the array should be in between 0 and length of the array ");if(-1==n&&(n=t.length-r),r+n>t.length)throw new $("Requested length to be deleted is more than the size of array ");return t.splice(r,n),new X([B.outputOf(new Map([]))])}}class $e extends ye{constructor(){super("DeleteLast",[$e.PARAMETER_ARRAY_SOURCE],$e.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get($e.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new $("Given source array is empty");return t.pop(),new X([B.outputOf(new Map([]))])}}class Xe extends ye{constructor(){super("Disjoint",[Xe.PARAMETER_ARRAY_SOURCE,Xe.PARAMETER_INT_SOURCE_FROM,Xe.PARAMETER_ARRAY_SECOND_SOURCE,Xe.PARAMETER_INT_SECOND_SOURCE_FROM,Xe.PARAMETER_INT_LENGTH],Xe.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(Xe.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Xe.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(Xe.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(Xe.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(Xe.PARAMETER_INT_LENGTH.getParameterName());if(-1==a&&(a=t.length<=n.length?t.length-r:n.length-s),a>t.length||a>n.length||r+a>t.length||s+a>n.length)throw new $("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(n[e+s]);let E=new Set;i.forEach((e=>{o.has(e)?o.delete(e):E.add(e)})),o.forEach((e=>{i.has(e)||E.add(e)}));let u=[];return E.forEach((e=>u.push(e))),new X([B.outputOf(new Map([[Xe.EVENT_RESULT_ARRAY.getName(),u]]))])}}class We extends ye{constructor(){super("Equals",[We.PARAMETER_ARRAY_SOURCE,We.PARAMETER_INT_SOURCE_FROM,We.PARAMETER_ARRAY_FIND,We.PARAMETER_INT_FIND_FROM,We.PARAMETER_INT_LENGTH],We.EVENT_RESULT_BOOLEAN)}async internalExecute(e){let t=new Fe,r=(await t.execute(e)).allResults()[0].getResult().get(We.EVENT_RESULT_NAME);return new X([B.outputOf(G.of(We.EVENT_RESULT_NAME,0==r))])}}class je extends ye{constructor(){super("Fill",[je.PARAMETER_ARRAY_SOURCE,je.PARAMETER_INT_SOURCE_FROM,je.PARAMETER_INT_LENGTH,je.PARAMETER_ANY],je.EVENT_RESULT_EMPTY)}async internalExecute(e){var t=e?.getArguments()?.get(je.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(je.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(je.PARAMETER_INT_LENGTH.getParameterName()),s=e?.getArguments()?.get(je.PARAMETER_ANY.getParameterName());if(r<0)throw new $(K.format("Arrays out of bound trying to access $ index",r));-1==n&&(n=t.length-r);let a=r+n-t.length;if(a>0)for(let e=0;e<a;e++)t.push();for(let e=r;e<r+n;e++)t[e]=E(s)?s:JSON.parse(JSON.stringify(s));return new X([B.outputOf(G.of())])}}class qe extends ye{constructor(){super("Frequency",[qe.PARAMETER_ARRAY_SOURCE,qe.PARAMETER_ANY,qe.PARAMETER_INT_SOURCE_FROM,qe.PARAMETER_INT_LENGTH],qe.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(qe.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(qe.PARAMETER_ANY.getParameterName()),n=e?.getArguments()?.get(qe.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(qe.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)return new X([B.outputOf(new Map([[qe.EVENT_RESULT_INTEGER.getName(),0]]))]);if(n>t.length)throw new $("Given start point is more than the size of source");if(E(r))throw new $("Given find was null. Hence cannot be found in the array");let a=n+s;if(-1==s&&(a=t.length-n),a>t.length)throw new $("Given length is more than the size of source");let i=0;for(let e=n;e<a&&e<t.length;e++)0==Ce.compare(t[e],r)&&i++;return new X([B.outputOf(new Map([[qe.EVENT_RESULT_INTEGER.getName(),i]]))])}}class Je extends ye{constructor(){super("IndexOf",[Je.PARAMETER_ARRAY_SOURCE,Je.PARAMETER_ANY_NOT_NULL,Je.PARAMETER_INT_FIND_FROM],Je.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(Je.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(Je.PARAMETER_ANY_NOT_NULL.getParameterName());let n=e?.getArguments()?.get(Je.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new X([B.outputOf(new Map([[Je.EVENT_RESULT_INTEGER.getName(),-1]]))]);if(n<0||n>t.length)throw new $("The size of the search index of the array is greater than the size of the array");let s=-1;for(let e=n;e<t.length;e++)if(0==Ce.compare(t[e],r)){s=e;break}return new X([B.outputOf(new Map([[Je.EVENT_RESULT_INTEGER.getName(),s]]))])}}class ze extends ye{constructor(){super("IndexOfArray",[ze.PARAMETER_ARRAY_SOURCE,ze.PARAMETER_ARRAY_SECOND_SOURCE,ze.PARAMETER_INT_FIND_FROM],ze.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(ze.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ze.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(ze.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length||0==r.length)return new X([B.outputOf(new Map([[ze.EVENT_RESULT_INTEGER.getName(),-1]]))]);if(n<0||n>t.length||t.length<r.length)throw new $("Given from second source is more than the size of the source array");let s=r.length,a=-1;for(let e=n;e<t.length;e++){let n=0;if(0==Ce.compare(t[e],r[n])){for(;n<s&&0==Ce.compare(t[e+n],r[n]);)n++;if(n==s){a=e;break}}}return new X([B.outputOf(new Map([[ze.EVENT_RESULT_INTEGER.getName(),a]]))])}}class Qe extends ye{constructor(){super("LastIndexOf",[Qe.PARAMETER_ARRAY_SOURCE,Qe.PARAMETER_ANY_NOT_NULL,Qe.PARAMETER_INT_FIND_FROM],Qe.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(Qe.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(Qe.PARAMETER_ANY_NOT_NULL.getParameterName());let n=e?.getArguments()?.get(Qe.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new X([B.outputOf(new Map([[Qe.EVENT_RESULT_INTEGER.getName(),-1]]))]);if(n<0||n>t.length)throw new $("The value of length shouldn't the exceed the size of the array or shouldn't be in terms");let s=-1;for(let e=t.length-1;e>=n;e--)if(0==Ce.compare(t[e],r)){s=e;break}return new X([B.outputOf(new Map([[Qe.EVENT_RESULT_INTEGER.getName(),s]]))])}}class Ke extends ye{constructor(){super("LastIndexOfArray",[Ke.PARAMETER_ARRAY_SOURCE,Ke.PARAMETER_ARRAY_SECOND_SOURCE,Ke.PARAMETER_INT_FIND_FROM],Ke.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(Ke.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Ke.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(Ke.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new X([B.outputOf(new Map([[Ke.EVENT_RESULT_ARRAY.getName(),-1]]))]);if(n<0||n>t.length||r.length>t.length)throw new $("Given from index is more than the size of the source array");let s=r.length,a=-1;for(let e=n;e<t.length;e++){let n=0;if(0==Ce.compare(t[e],r[n])){for(;n<s&&0==Ce.compare(t[e+n],r[n]);)n++;n==s&&(a=e)}}return new X([B.outputOf(new Map([[Ke.EVENT_RESULT_INTEGER.getName(),a]]))])}}class Ze extends ye{constructor(){super("Max",[Ze.PARAMETER_ARRAY_SOURCE_PRIMITIVE],Ze.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(Ze.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==t.length)throw new $("Search source array cannot be empty");let r=t[0];for(let e=1;e<t.length;e++){let n=t[e];Ce.comparePrimitive(r,n)>=0||(r=n)}return new X([B.outputOf(new Map([[Ze.EVENT_RESULT_ANY.getName(),r]]))])}}class et extends ye{constructor(){super("Min",[et.PARAMETER_ARRAY_SOURCE_PRIMITIVE],et.EVENT_RESULT_ANY)}async internalExecute(e){let t,r=e?.getArguments()?.get(et.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==r.length)throw new $("Search source array cannot be empty");for(let e=0;e<r.length;e++)E(r[e])||(void 0===t||Ce.comparePrimitive(r[e],t)<0)&&(t=r[e]);return new X([B.outputOf(new Map([[et.EVENT_RESULT_ANY.getName(),t]]))])}}class tt extends ye{constructor(){super("MisMatch",[tt.PARAMETER_ARRAY_SOURCE,tt.PARAMETER_INT_FIND_FROM,tt.PARAMETER_ARRAY_SECOND_SOURCE,tt.PARAMETER_INT_SECOND_SOURCE_FROM,tt.PARAMETER_INT_LENGTH],tt.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(tt.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(tt.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(tt.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(tt.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(tt.PARAMETER_INT_LENGTH.getParameterName()),i=r<t.length&&r>0?r:0,o=s<n.length&&s>0?s:0;if(i+a>=t.length||o+a>n.length)throw new $("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]!=n[o+e]){E=e;break}return new X([B.outputOf(new Map([[tt.EVENT_RESULT_INTEGER.getName(),E]]))])}}class rt extends ye{constructor(){super("Reverse",[rt.PARAMETER_ARRAY_SOURCE,rt.PARAMETER_INT_SOURCE_FROM,rt.PARAMETER_INT_LENGTH],rt.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(rt.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(rt.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(rt.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),n>=t.length||n<0||r<0)throw new $("Please provide start point between the start and end indexes or provide the length which was less than the source size ");let s=r+n-1;for(;r<=s;){let e=t[r],n=t[s];t[r++]=n,t[s--]=e}return new X([B.outputOf(new Map([]))])}}class nt extends ye{constructor(){super("Rotate",[nt.PARAMETER_ARRAY_SOURCE,nt.PARAMETER_ROTATE_LENGTH],nt.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(nt.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(nt.PARAMETER_ROTATE_LENGTH.getParameterName());if(0==t.length)return new X([B.outputOf(new Map([]))]);let n=t.length;return r%=n,this.rotate(t,0,r-1),this.rotate(t,r,n-1),this.rotate(t,0,n-1),new X([B.outputOf(new Map([]))])}rotate(e,t,r){for(;t<r;){let n=e[t];e[t++]=e[r],e[r--]=n}}}class st extends ye{constructor(){super("Shuffle",[st.PARAMETER_ARRAY_SOURCE],st.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(st.PARAMETER_ARRAY_SOURCE.getParameterName());if(t.length<=1)return new X([B.outputOf(new Map([]))]);let r=0,n=t.length;for(let e=0;e<n;e++){let e=Math.floor(Math.random()*n)%n,s=t[r];t[r]=t[e],t[e]=s,r=e}return new X([B.outputOf(new Map([]))])}}class at extends ye{constructor(){super("Sort",[at.PARAMETER_ARRAY_SOURCE_PRIMITIVE,at.PARAMETER_INT_FIND_FROM,at.PARAMETER_INT_LENGTH,at.PARAMETER_BOOLEAN_ASCENDING],at.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(at.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName()),r=e?.getArguments()?.get(at.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(at.PARAMETER_INT_LENGTH.getParameterName()),s=e?.getArguments()?.get(at.PARAMETER_BOOLEAN_ASCENDING.getParameterName());if(0==t.length)return new X([B.outputOf(new Map([[at.EVENT_RESULT_EMPTY.getName(),t]]))]);if(-1==n&&(n=t.length-r),r<0||r>=t.length||r+n>t.length)throw new $("Given start point is more than the size of the array or not available at that point");let a=t.slice(r,r+n+1);return a.sort(((e,t)=>function(e,t,r){return e===t?0:null===e?1:null===t?-1:r?e<t?1:-1:e<t?-1:1}(e,t,s))),t.splice(r,n,...a),new X([B.outputOf(new Map([[at.EVENT_RESULT_EMPTY.getName(),t]]))])}}class it extends ye{constructor(){super("SubArray",[it.PARAMETER_ARRAY_SOURCE,it.PARAMETER_INT_FIND_FROM,it.PARAMETER_INT_LENGTH],it.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(it.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(it.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(it.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),n<=0)return new X([B.outputOf(new Map([]))]);if(!(r>=0&&r<t.length)||r+n>t.length)throw new $("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 s=t.slice(r,r+n);return new X([B.outputOf(new Map([[it.EVENT_RESULT_ARRAY.getName(),s]]))])}}class ot{static repoMap=G.ofArrayEntries(V(new xe),V(new ve),V(new Ge),V(new Fe),V(new Ye),V(new Be),V(new He),V(new ke),V(new $e),V(new Xe),V(new We),V(new je),V(new qe),V(new Je),V(new ze),V(new Qe),V(new Ke),V(new Ze),V(new et),V(new tt),V(new rt),V(new nt),V(new st),V(new at),V(new it));static filterableNames=Array.from(ot.repoMap.values()).map((e=>e.getSignature().getFullName()));find(e,t){if(e==a.SYSTEM_ARRAY)return ot.repoMap.get(t)}filter(e){return ot.filterableNames.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}var Et={};t(Et,"ContextElement",(()=>ut));class ut{static NULL=new ut(S.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}}const At=new j("Create").setNamespace(a.SYSTEM_CTX).setParameters(new Map([y.ofEntry("name",(new S).setName("name").setType(f.of(l.STRING)).setMinLength(1).setFormat(Me.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,d.CONSTANT),y.ofEntry("schema",S.SCHEMA,!1,d.CONSTANT)])).setEvents(new Map([Y.outputEventMapEntry(new Map)]));const lt=new j("Get").setNamespace(a.SYSTEM_CTX).setParameters(new Map([y.ofEntry("name",(new S).setName("name").setType(f.of(l.STRING)).setMinLength(1).setFormat(Me.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,d.CONSTANT)])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",S.ofAny("value")]]))]));var mt={};t(mt,"Expression",(()=>Pt));var gt={};t(gt,"LinkedList",(()=>pt));var Rt={};function Tt(e,t){let r=new pt;r.push(e);let n=new pt;for(n.push(t);!r.isEmpty()&&!n.isEmpty();){const e=r.pop(),t=n.pop();if(e===t)continue;const 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])}else{if("object"!==s)return!1;{const s=Object.entries(e),a=Object.entries(t);if(s.length!==a.length)return!1;for(const[e,a]of s)r.push(a),n.push(t[e])}}}return!0}t(Rt,"deepEqual",(()=>Tt));class pt{head=void 0;tail=void 0;length=0;constructor(e){if(e?.length){for(const t of e)if(this.head){const e=new ht(t,this.tail);this.tail.next=e,this.tail=e}else this.tail=this.head=new ht(t);this.length=e.length}}push(e){const t=new ht(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.");const e=this.head.value;if(this.length--,this.head==this.tail)return this.head=this.tail=void 0,e;const 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 new Error(`${e} is out of bounds [0,${this.length}]`);let t=this.head;for(;e>0;)t=this.head.next,--e;return t.value}set(e,t){if(e<0||e>=this.length)throw new $(K.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,e&&(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 new Error("List is empty so cannot peak");return this.head.value}peekLast(){if(!this.tail)throw new Error("List is empty so cannot peak");return this.tail.value}getFirst(){if(!this.head)throw new Error("List is empty so cannot get first");return this.head.value}removeFirst(){return this.pop()}removeLast(){if(!this.tail)throw new Error("List is empty so cannot remove");--this.length;const e=this.tail.value;if(0==this.length)this.head=this.tail=void 0;else{const 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):this}add(e){return++this.length,this.tail||this.head?this.head===this.tail?(this.tail=new ht(e,this.head),this.head.next=this.tail):(this.tail=new ht(e,this.tail),this.tail.previous.next=this.tail):this.head=this.tail=new ht(e),this}map(e,t){let r=new pt,n=this.head,s=0;for(;n;)r.add(e(n.value,s)),n=n.next,++s;return r}indexOf(e){let t=this.head,r=0;for(;t;){if(Tt(t.value,e))return r;t=t.next,++r}return-1}forEach(e,t){let r=this.head,n=0;for(;r;)e(r.value,n),r=r.next,++n}}class ht{constructor(e,t,r){this.value=e,this.next=r,this.previous=t}toString(){return""+this.value}}var ct={};t(ct,"StringBuilder",(()=>Nt));class Nt{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 $(`Index ${e} is greater than or equal to ${this.str.length}`)}substring(e,t){return this.str.substring(e,t)}}var ft={};t(ft,"ExpressionEvaluationException",(()=>_t));class _t extends Error{constructor(e,t,r){super(K.format("$ : $",e,t)),this.cause=r}getCause(){return this.cause}}var St={};t(St,"ExpressionToken",(()=>Mt));class Mt{constructor(e){this.expression=e}getExpression(){return this.expression}toString(){return this.expression}}var Ot={};t(Ot,"ExpressionTokenValue",(()=>wt));class wt extends Mt{constructor(e,t){super(e),this.element=t}getTokenValue(){return this.element}getElement(){return this.element}toString(){return K.format("$: $",this.expression,this.element)}}var It={};t(It,"Operation",(()=>dt));class dt{static MULTIPLICATION=new dt("*");static DIVISION=new dt("/");static INTEGER_DIVISION=new dt("//");static MOD=new dt("%");static ADDITION=new dt("+");static SUBTRACTION=new dt("-");static NOT=new dt("not",void 0,!0);static AND=new dt("and",void 0,!0);static OR=new dt("or",void 0,!0);static LESS_THAN=new dt("<");static LESS_THAN_EQUAL=new dt("<=");static GREATER_THAN=new dt(">");static GREATER_THAN_EQUAL=new dt(">=");static EQUAL=new dt("=");static NOT_EQUAL=new dt("!=");static BITWISE_AND=new dt("&");static BITWISE_OR=new dt("|");static BITWISE_XOR=new dt("^");static BITWISE_COMPLEMENT=new dt("~");static BITWISE_LEFT_SHIFT=new dt("<<");static BITWISE_RIGHT_SHIFT=new dt(">>");static BITWISE_UNSIGNED_RIGHT_SHIFT=new dt(">>>");static UNARY_PLUS=new dt("UN: +","+");static UNARY_MINUS=new dt("UN: -","-");static UNARY_LOGICAL_NOT=new dt("UN: not","not");static UNARY_BITWISE_COMPLEMENT=new dt("UN: ~","~");static ARRAY_OPERATOR=new dt("[");static OBJECT_OPERATOR=new dt(".");static NULLISH_COALESCING_OPERATOR=new dt("??");static CONDITIONAL_TERNARY_OPERATOR=new dt("?");static VALUE_OF=new Map([["MULTIPLICATION",dt.MULTIPLICATION],["DIVISION",dt.DIVISION],["INTEGER_DIVISON",dt.INTEGER_DIVISION],["MOD",dt.MOD],["ADDITION",dt.ADDITION],["SUBTRACTION",dt.SUBTRACTION],["NOT",dt.NOT],["AND",dt.AND],["OR",dt.OR],["LESS_THAN",dt.LESS_THAN],["LESS_THAN_EQUAL",dt.LESS_THAN_EQUAL],["GREATER_THAN",dt.GREATER_THAN],["GREATER_THAN_EQUAL",dt.GREATER_THAN_EQUAL],["EQUAL",dt.EQUAL],["NOT_EQUAL",dt.NOT_EQUAL],["BITWISE_AND",dt.BITWISE_AND],["BITWISE_OR",dt.BITWISE_OR],["BITWISE_XOR",dt.BITWISE_XOR],["BITWISE_COMPLEMENT",dt.BITWISE_COMPLEMENT],["BITWISE_LEFT_SHIFT",dt.BITWISE_LEFT_SHIFT],["BITWISE_RIGHT_SHIFT",dt.BITWISE_RIGHT_SHIFT],["BITWISE_UNSIGNED_RIGHT_SHIFT",dt.BITWISE_UNSIGNED_RIGHT_SHIFT],["UNARY_PLUS",dt.UNARY_PLUS],["UNARY_MINUS",dt.UNARY_MINUS],["UNARY_LOGICAL_NOT",dt.UNARY_LOGICAL_NOT],["UNARY_BITWISE_COMPLEMENT",dt.UNARY_BITWISE_COMPLEMENT],["ARRAY_OPERATOR",dt.ARRAY_OPERATOR],["OBJECT_OPERATOR",dt.OBJECT_OPERATOR],["NULLISH_COALESCING_OPERATOR",dt.NULLISH_COALESCING_OPERATOR],["CONDITIONAL_TERNARY_OPERATOR",dt.CONDITIONAL_TERNARY_OPERATOR]]);static UNARY_OPERATORS=new Set([dt.ADDITION,dt.SUBTRACTION,dt.NOT,dt.BITWISE_COMPLEMENT,dt.UNARY_PLUS,dt.UNARY_MINUS,dt.UNARY_LOGICAL_NOT,dt.UNARY_BITWISE_COMPLEMENT]);static ARITHMETIC_OPERATORS=new Set([dt.MULTIPLICATION,dt.DIVISION,dt.INTEGER_DIVISION,dt.MOD,dt.ADDITION,dt.SUBTRACTION]);static LOGICAL_OPERATORS=new Set([dt.NOT,dt.AND,dt.OR,dt.LESS_THAN,dt.LESS_THAN_EQUAL,dt.GREATER_THAN,dt.GREATER_THAN_EQUAL,dt.EQUAL,dt.NOT_EQUAL,dt.NULLISH_COALESCING_OPERATOR]);static BITWISE_OPERATORS=new Set([dt.BITWISE_AND,dt.BITWISE_COMPLEMENT,dt.BITWISE_LEFT_SHIFT,dt.BITWISE_OR,dt.BITWISE_RIGHT_SHIFT,dt.BITWISE_UNSIGNED_RIGHT_SHIFT,dt.BITWISE_XOR]);static CONDITIONAL_OPERATORS=new Set([dt.CONDITIONAL_TERNARY_OPERATOR]);static OPERATOR_PRIORITY=new Map([[dt.UNARY_PLUS,1],[dt.UNARY_MINUS,1],[dt.UNARY_LOGICAL_NOT,1],[dt.UNARY_BITWISE_COMPLEMENT,1],[dt.ARRAY_OPERATOR,1],[dt.OBJECT_OPERATOR,1],[dt.MULTIPLICATION,2],[dt.DIVISION,2],[dt.INTEGER_DIVISION,2],[dt.MOD,2],[dt.ADDITION,3],[dt.SUBTRACTION,3],[dt.BITWISE_LEFT_SHIFT,4],[dt.BITWISE_RIGHT_SHIFT,4],[dt.BITWISE_UNSIGNED_RIGHT_SHIFT,4],[dt.LESS_THAN,5],[dt.LESS_THAN_EQUAL,5],[dt.GREATER_THAN,5],[dt.GREATER_THAN_EQUAL,5],[dt.EQUAL,6],[dt.NOT_EQUAL,6],[dt.BITWISE_AND,7],[dt.BITWISE_XOR,8],[dt.BITWISE_OR,9],[dt.AND,10],[dt.OR,11],[dt.NULLISH_COALESCING_OPERATOR,11],[dt.CONDITIONAL_TERNARY_OPERATOR,12]]);static OPERATORS=new Set([...Array.from(dt.ARITHMETIC_OPERATORS),...Array.from(dt.LOGICAL_OPERATORS),...Array.from(dt.BITWISE_OPERATORS),dt.ARRAY_OPERATOR,dt.OBJECT_OPERATOR,...Array.from(dt.CONDITIONAL_OPERATORS)].map((e=>e.getOperator())));static OPERATORS_WITHOUT_SPACE_WRAP=new Set([...Array.from(dt.ARITHMETIC_OPERATORS),...Array.from(dt.LOGICAL_OPERATORS),...Array.from(dt.BITWISE_OPERATORS),dt.ARRAY_OPERATOR,dt.OBJECT_OPERATOR,...Array.from(dt.CONDITIONAL_OPERATORS)].filter((e=>!e.shouldBeWrappedInSpace())).map((e=>e.getOperator())));static OPERATION_VALUE_OF=new Map(Array.from(dt.VALUE_OF.entries()).map((([e,t])=>[t.getOperator(),t])));static UNARY_MAP=new Map([[dt.ADDITION,dt.UNARY_PLUS],[dt.SUBTRACTION,dt.UNARY_MINUS],[dt.NOT,dt.UNARY_LOGICAL_NOT],[dt.BITWISE_COMPLEMENT,dt.UNARY_BITWISE_COMPLEMENT],[dt.UNARY_PLUS,dt.UNARY_PLUS],[dt.UNARY_MINUS,dt.UNARY_MINUS],[dt.UNARY_LOGICAL_NOT,dt.UNARY_LOGICAL_NOT],[dt.UNARY_BITWISE_COMPLEMENT,dt.UNARY_BITWISE_COMPLEMENT]]);static BIGGEST_OPERATOR_SIZE=Array.from(dt.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 dt.VALUE_OF.get(e)}toString(){return this.operator}}class Pt extends Mt{tokens=new pt;ops=new pt;constructor(e,t,r,n){super(e||""),t&&this.tokens.push(t),r&&this.tokens.push(r),n&&this.ops.push(n),this.evaluate()}getTokens(){return this.tokens}getOperations(){return this.ops}evaluate(){const e=this.expression.length;let t,r="",n=new Nt(""),s=0,a=!1;for(;s<e;){switch(r=this.expression[s],t=n.toString(),r){case" ":a=this.processTokenSepearator(n,t,a);break;case"(":s=this.processSubExpression(e,n,t,s,a),a=!1;break;case")":throw new _t(this.expression,"Extra closing parenthesis found");case"]":throw new _t(this.expression,"Extra closing square bracket found");case"'":case'"':{let t=this.processStringLiteral(e,r,s);s=t.getT1(),a=t.getT2();break}case"?":if(s+1<e&&"?"!=this.expression.charAt(s+1)&&0!=s&&"?"!=this.expression.charAt(s-1))s=this.processTernaryOperator(e,n,t,s,a);else{let i=this.processOthers(r,e,n,t,s,a);s=i.getT1(),a=i.getT2(),a&&this.ops.peek()==dt.ARRAY_OPERATOR&&(i=this.process(e,n,s),s=i.getT1(),a=i.getT2())}break;default:let i=this.processOthers(r,e,n,t,s,a);s=i.getT1(),a=i.getT2(),a&&this.ops.peek()==dt.ARRAY_OPERATOR&&(i=this.process(e,n,s),s=i.getT1(),a=i.getT2())}++s}if(t=n.toString(),!Z.isNullOrBlank(t)){if(dt.OPERATORS.has(t))throw new _t(this.expression,"Expression is ending with an operator");this.tokens.push(new Mt(t))}}processStringLiteral(e,t,r){let n="",s=r+1;for(;s<e;s++){let e=this.expression.charAt(s);if(e==t&&"\\"!=this.expression.charAt(s-1))break;n+=e}if(s==e&&this.expression.charAt(s-1)!=t)throw new _t(this.expression,"Missing string ending marker "+t);let a=new re(s,!1);return this.tokens.push(new wt(n,n)),a}process(e,t,r){let n=1;for(++r;r<e&&0!=n;){let e=this.expression.charAt(r);"]"==e?--n:"["==e&&++n,0!=n&&(t.append(e),r++)}return this.tokens.push(new Pt(t.toString())),t.setLength(0),new re(r,!1)}processOthers(e,t,r,n,s,a){let i=t-s;i=i<dt.BIGGEST_OPERATOR_SIZE?i:dt.BIGGEST_OPERATOR_SIZE;for(let e=i;e>0;e--){let t=this.expression.substring(s,s+e);if(dt.OPERATORS_WITHOUT_SPACE_WRAP.has(t))return Z.isNullOrBlank(n)||(this.tokens.push(new Mt(n)),a=!1),this.checkUnaryOperator(this.tokens,this.ops,dt.OPERATION_VALUE_OF.get(t),a),a=!0,r.setLength(0),new re(s+e-1,a)}return r.append(e),new re(s,!1)}processTernaryOperator(e,t,r,n,s){if(s)throw new _t(this.expression,"Ternary operator is followed by an operator");""!=r.trim()&&(this.tokens.push(new Pt(r)),t.setLength(0));let a=1,i="";const o=++n;for(;n<e&&a>0;)i=this.expression.charAt(n),"?"==i?++a:":"==i&&--a,++n;if(":"!=i)throw new _t(this.expression,"':' operater is missing");if(n>=e)throw new _t(this.expression,"Third part of the ternary expression is missing");for(;!this.ops.isEmpty()&&this.hasPrecedence(dt.CONDITIONAL_TERNARY_OPERATOR,this.ops.peek());){let e=this.ops.pop();if(dt.UNARY_OPERATORS.has(e)){const t=this.tokens.pop();this.tokens.push(new Pt("",t,void 0,e))}else{let t=this.tokens.pop(),r=this.tokens.pop();this.tokens.push(new Pt("",r,t,e))}}this.ops.push(dt.CONDITIONAL_TERNARY_OPERATOR),this.tokens.push(new Pt(this.expression.substring(o,n-1)));const E=this.expression.substring(n);if(""===E.trim())throw new _t(this.expression,"Third part of the ternary expression is missing");return this.tokens.push(new Pt(E)),e-1}processSubExpression(e,t,r,n,s){if(dt.OPERATORS.has(r))this.checkUnaryOperator(this.tokens,this.ops,dt.OPERATION_VALUE_OF.get(r),s),t.setLength(0);else if(!Z.isNullOrBlank(r))throw new _t(this.expression,K.format("Unkown token : $ found.",r));let a=1;const i=new Nt;let o=this.expression.charAt(n);for(n++;n<e&&a>0;)o=this.expression.charAt(n),"("==o?a++:")"==o&&a--,0!=a&&(i.append(o),n++);if(")"!=o)throw new _t(this.expression,"Missing a closed parenthesis");for(;i.length()>2&&"("==i.charAt(0)&&")"==i.charAt(i.length()-1);)i.deleteCharAt(0),i.setLength(i.length()-1);return this.tokens.push(new Pt(i.toString().trim())),n}processTokenSepearator(e,t,r){return Z.isNullOrBlank(t)||(dt.OPERATORS.has(t)?(this.checkUnaryOperator(this.tokens,this.ops,dt.OPERATION_VALUE_OF.get(t),r),r=!0):(this.tokens.push(new Mt(t)),r=!1)),e.setLength(0),r}checkUnaryOperator(e,t,r,n){if(r)if(n||e.isEmpty()){if(!dt.UNARY_OPERATORS.has(r))throw new _t(this.expression,K.format("Extra operator $ found.",r));{const e=dt.UNARY_MAP.get(r);e&&t.push(e)}}else{for(;!t.isEmpty()&&this.hasPrecedence(r,t.peek());){let r=t.pop();if(dt.UNARY_OPERATORS.has(r)){let t=e.pop();e.push(new Pt("",t,void 0,r))}else{let t=e.pop(),n=e.pop();e.push(new Pt("",n,t,r))}}t.push(r)}}hasPrecedence(e,t){let r=dt.OPERATOR_PRIORITY.get(e),n=dt.OPERATOR_PRIORITY.get(t);if(!r||!n)throw new Error("Unknown operators provided");return n<r}toString(){if(this.ops.isEmpty())return 1==this.tokens.size()?this.tokens.get(0).toString():"Error: No tokens";let e=new Nt,t=0;const r=this.ops.toArray(),n=this.tokens.toArray();for(let s=0;s<r.length;s++)if(r[s].getOperator().startsWith("UN: "))e.append("(").append(r[s].getOperator().substring(4)).append(n[t]instanceof Pt?n[t].toString():n[t]).append(")"),t++;else if(r[s]==dt.CONDITIONAL_TERNARY_OPERATOR){let r=n[t++];e.insert(0,r.toString()),e.insert(0,":"),r=n[t++],e.insert(0,r.toString()),e.insert(0,"?"),r=n[t++],e.insert(0,r.toString()).append(")"),e.insert(0,"(")}else{if(0==t){const r=n[t++];e.insert(0,r.toString())}const a=n[t++];e.insert(0,r[s].getOperator()).insert(0,a.toString()).insert(0,"(").append(")")}return e.toString()}equals(e){return this.expression==e.expression}}var yt={};t(yt,"ExpressionEvaluator",(()=>kr));var xt={};t(xt,"LogicalNullishCoalescingOperator",(()=>Ut));var vt={};t(vt,"BinaryOperator",(()=>Lt));class Lt{nullCheck(e,t,r){if(E(e)||E(t))throw new Ve(K.format("$ cannot be applied to a null value",r.getOperatorName()))}}class Ut extends Lt{apply(e,t){return E(e)?t:e}}var Vt={};t(Vt,"ArithmeticAdditionOperator",(()=>Ct));class Ct extends Lt{apply(e,t){return this.nullCheck(e,t,dt.ADDITION),e+t}}var Gt={};t(Gt,"ArithmeticDivisionOperator",(()=>bt));class bt extends Lt{apply(e,t){return this.nullCheck(e,t,dt.DIVISION),e/t}}var Dt={};t(Dt,"ArithmeticIntegerDivisionOperator",(()=>Ft));class Ft extends Lt{apply(e,t){return this.nullCheck(e,t,dt.DIVISION),Math.floor(e/t)}}var Yt={};t(Yt,"ArithmeticModulusOperator",(()=>Bt));class Bt extends Lt{apply(e,t){return this.nullCheck(e,t,dt.MOD),e%t}}var Ht={};t(Ht,"ArithmeticMultiplicationOperator",(()=>kt));class kt extends Lt{apply(e,t){this.nullCheck(e,t,dt.MULTIPLICATION);const r="string"==typeof e;if(r||"string"===typeof t){let n=r?e:t,s=r?t:e,a="",i=s<0;s=Math.abs(s);let o=Math.floor(s);for(;o-- >0;)a+=n;let E=Math.floor(n.length*(s-Math.floor(s)));if(E<0&&(E=-E),0!=E&&(a+=n.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 $t={};t($t,"ArithmeticSubtractionOperator",(()=>Xt));class Xt extends Lt{apply(e,t){return this.nullCheck(e,t,dt.SUBTRACTION),e-t}}var Wt={};t(Wt,"ArrayOperator",(()=>jt));class jt extends Lt{apply(e,t){if(!e)throw new Ve("Cannot apply array operator on a null value");if(!t)throw new Ve("Cannot retrive null index value");if(!Array.isArray(e)&&"string"!=typeof e)throw new Ve(K.format("Cannot retrieve value from a primitive value $",e));if(t>=e.length)throw new Ve(K.format("Cannot retrieve index $ from the array of length $",t,e.length));return e[t]}}var qt={};t(qt,"BitwiseAndOperator",(()=>Jt));class Jt extends Lt{apply(e,t){return this.nullCheck(e,t,dt.BITWISE_AND),e&t}}var zt={};t(zt,"BitwiseLeftShiftOperator",(()=>Qt));class Qt extends Lt{apply(e,t){return this.nullCheck(e,t,dt.BITWISE_LEFT_SHIFT),e<<t}}var Kt={};t(Kt,"BitwiseOrOperator",(()=>Zt));class Zt extends Lt{apply(e,t){return this.nullCheck(e,t,dt.BITWISE_OR),e|t}}var er={};t(er,"BitwiseRightShiftOperator",(()=>tr));class tr extends Lt{apply(e,t){return this.nullCheck(e,t,dt.BITWISE_RIGHT_SHIFT),e>>t}}var rr={};t(rr,"BitwiseUnsignedRightShiftOperator",(()=>nr));class nr extends Lt{apply(e,t){return this.nullCheck(e,t,dt.BITWISE_UNSIGNED_RIGHT_SHIFT),e>>>t}}var sr={};t(sr,"BitwiseXorOperator",(()=>ar));class ar extends Lt{apply(e,t){return this.nullCheck(e,t,dt.BITWISE_XOR),e^t}}var ir={};t(ir,"LogicalAndOperator",(()=>or));class or extends Lt{apply(e,t){const r=Ce.findPrimitiveNullAsBoolean(e),n=Ce.findPrimitiveNullAsBoolean(t);if(r.getT1()!=l.BOOLEAN)throw new Ve(K.format("Boolean value expected but found $",r.getT2()));if(n.getT1()!=l.BOOLEAN)throw new Ve(K.format("Boolean value expected but found $",n.getT2()));return r.getT2()&&n.getT2()}}var Er={};t(Er,"LogicalEqualOperator",(()=>ur));class ur extends Lt{apply(e,t){return Tt(e,t)}}var Ar={};t(Ar,"LogicalGreaterThanEqualOperator",(()=>lr));class lr extends Lt{apply(e,t){const r=Ce.findPrimitiveNullAsBoolean(e),n=Ce.findPrimitiveNullAsBoolean(t);if(r.getT1()==l.BOOLEAN||n.getT1()==l.BOOLEAN)throw new Ve(K.format("Cannot compare >= with the values $ and $",r.getT2(),n.getT2()));return r.getT2()>=n.getT2()}}var mr={};t(mr,"LogicalGreaterThanOperator",(()=>gr));class gr extends Lt{apply(e,t){const r=Ce.findPrimitiveNullAsBoolean(e),n=Ce.findPrimitiveNullAsBoolean(t);if(r.getT1()==l.BOOLEAN||n.getT1()==l.BOOLEAN)throw new Ve(K.format("Cannot compare > with the values $ and $",r.getT2(),n.getT2()));return r.getT2()>n.getT2()}}var Rr={};t(Rr,"LogicalLessThanEqualOperator",(()=>Tr));class Tr extends Lt{apply(e,t){const r=Ce.findPrimitiveNullAsBoolean(e),n=Ce.findPrimitiveNullAsBoolean(t);if(r.getT1()==l.BOOLEAN||n.getT1()==l.BOOLEAN)throw new Ve(K.format("Cannot compare <= with the values $ and $",r.getT2(),n.getT2()));return r.getT2()<=n.getT2()}}var pr={};t(pr,"LogicalLessThanOperator",(()=>hr));class hr extends Lt{apply(e,t){const r=Ce.findPrimitiveNullAsBoolean(e),n=Ce.findPrimitiveNullAsBoolean(t);if(r.getT1()==l.BOOLEAN||n.getT1()==l.BOOLEAN)throw new Ve(K.format("Cannot compare < with the values $ and $",r.getT2(),n.getT2()));return r.getT2()<n.getT2()}}var cr={};t(cr,"LogicalNotEqualOperator",(()=>Nr));class Nr extends Lt{apply(e,t){return!Tt(e,t)}}var fr={};t(fr,"LogicalOrOperator",(()=>_r));class _r extends Lt{apply(e,t){const r=Ce.findPrimitiveNullAsBoolean(e),n=Ce.findPrimitiveNullAsBoolean(t);if(r.getT1()!=l.BOOLEAN)throw new Ve(K.format("Boolean value expected but found $",r.getT2()));if(n.getT1()!=l.BOOLEAN)throw new Ve(K.format("Boolean value expected but found $",n.getT2()));return r.getT2()||n.getT2()}}var Sr={};t(Sr,"ObjectOperator",(()=>Mr));class Mr extends Lt{apply(e,t){if(!e)throw new Ve("Cannot apply array operator on a null value");if(!t)throw new Ve("Cannot retrive null property value");const r=typeof e;if(!Array.isArray(e)&&"string"!=r&&"object"!=r)throw new Ve(K.format("Cannot retrieve value from a primitive value $",e));return e[t]}}var Or={};t(Or,"ArithmeticUnaryMinusOperator",(()=>dr));var wr={};t(wr,"UnaryOperator",(()=>Ir));class Ir{nullCheck(e,t){if(E(e))throw new Ve(K.format("$ cannot be applied to a null value",t.getOperatorName()))}}class dr extends Ir{apply(e){return this.nullCheck(e,dt.UNARY_MINUS),Ce.findPrimitiveNumberType(e),-e}}var Pr={};t(Pr,"ArithmeticUnaryPlusOperator",(()=>yr));class yr extends Ir{apply(e){return this.nullCheck(e,dt.UNARY_PLUS),Ce.findPrimitiveNumberType(e),e}}var xr={};t(xr,"BitwiseComplementOperator",(()=>vr));class vr extends Ir{apply(e){this.nullCheck(e,dt.UNARY_BITWISE_COMPLEMENT);let t=Ce.findPrimitiveNumberType(e);if(t.getT1()!=l.INTEGER&&t.getT1()!=l.LONG)throw new Ve(K.format("Unable to apply bitwise operator on $",e));return~e}}var Lr={};t(Lr,"LogicalNotOperator",(()=>Ur));class Ur extends Ir{apply(e){return!e&&""!==e}}var Vr={};t(Vr,"LiteralTokenValueExtractor",(()=>Dr));var Cr={};t(Cr,"TokenValueExtractor",(()=>Gr));class Gr{static REGEX_SQUARE_BRACKETS=/[\[\]]/;static REGEX_DOT=/\./;getValue(e){let t=this.getPrefix();if(!e.startsWith(t))throw new $(K.format("Token $ doesn't start with $",e,t));return this.getValueInternal(e)}retrieveElementFrom(e,t,r,n){if(E(n))return;if(t.length==r)return n;let s=t[r].split(Gr.REGEX_SQUARE_BRACKETS).map((e=>e.trim())).filter((e=>!Z.isNullOrBlank(e))).reduce(((n,s,a)=>this.resolveForEachPartOfTokenWithBrackets(e,t,r,s,n,a)),n);return this.retrieveElementFrom(e,t,r+1,s)}resolveForEachPartOfTokenWithBrackets(e,t,r,n,s,a){if(!E(s)){if(0===a){if(Array.isArray(s)){if("length"===n)return s.length;try{let e=parseInt(n);if(isNaN(e))throw new Error(K.format("$ is not a number",e));if(e>=s.length)return;return s[e]}catch(t){throw new _t(e,K.format("$ couldn't be parsed into integer in $",n,e),t)}}return this.checkIfObject(e,t,r,s),s[n]}if(n?.startsWith('"')){if(!n.endsWith('"')||1==n.length||2==n.length)throw new _t(e,K.format("$ is missing a double quote or empty key found",e));return this.checkIfObject(e,t,r,s),s[n.substring(1,n.length-1)]}try{let t=parseInt(n);if(isNaN(t))throw new Error(K.format("$ is not a number",t));if(!Array.isArray(s))throw new _t(e,K.format("Expecting an array with index $ while processing the expression",t,e));if(t>=s.length)return;return s[t]}catch(t){throw new _t(e,K.format("$ couldn't be parsed into integer in $",n,e),t)}}}checkIfObject(e,t,r,n){if("object"!=typeof n||Array.isArray(n))throw new _t(e,K.format("Unable to retrive $ from $ in the path $",t[r],n.toString(),e))}}const br=new Map([["true",!0],["false",!1],["null",void 0],["undefined",void 0]]);class Dr extends Gr{static INSTANCE=new Dr;getValueInternal(e){if(!Z.isNullOrBlank(e))return e=e.trim(),br.has(e)?br.get(e):e.startsWith('"')?this.processString(e):this.processNumbers(e)}processNumbers(e){try{let t=Number(e);if(isNaN(t))throw new Error("Parse number error");return t}catch(t){throw new _t(e,K.format("Unable to parse the literal or expression $",e),t)}}processString(e){if(!e.endsWith('"'))throw new _t(e,K.format("String literal $ is not closed properly",e));return e.substring(1,e.length-1)}getPrefix(){return""}}var Fr={},Yr={};t(Yr,"ConditionalTernaryOperator",(()=>Br));class Br extends class{nullCheck(e,t,r,n){if(E(e)||E(t)||E(r))throw new Ve(K.format("$ cannot be applied to a null value",n.getOperatorName()))}}{apply(e,t,r){return e?t:r}}e(Fr,Yr);class Hr extends Gr{static PREFIX="_internal.";values=new Map;addValue(e,t){this.values.set(e,t)}getValueInternal(e){let t=e.split(Gr.REGEX_DOT),r=t[1],n=r.indexOf("["),s=2;return-1!=n&&(r=t[1].substring(0,n),t[1]=t[1].substring(n),s=1),this.retrieveElementFrom(e,t,s,this.values.get(r))}getPrefix(){return Hr.PREFIX}}class kr{static UNARY_OPERATORS_MAP=new Map([[dt.UNARY_BITWISE_COMPLEMENT,new vr],[dt.UNARY_LOGICAL_NOT,new Ur],[dt.UNARY_MINUS,new dr],[dt.UNARY_PLUS,new yr]]);static TERNARY_OPERATORS_MAP=new Map([[dt.CONDITIONAL_TERNARY_OPERATOR,new Br]]);static BINARY_OPERATORS_MAP=new Map([[dt.ADDITION,new Ct],[dt.DIVISION,new bt],[dt.INTEGER_DIVISION,new Ft],[dt.MOD,new Bt],[dt.MULTIPLICATION,new kt],[dt.SUBTRACTION,new Xt],[dt.BITWISE_AND,new Jt],[dt.BITWISE_LEFT_SHIFT,new Qt],[dt.BITWISE_OR,new Zt],[dt.BITWISE_RIGHT_SHIFT,new tr],[dt.BITWISE_UNSIGNED_RIGHT_SHIFT,new nr],[dt.BITWISE_XOR,new ar],[dt.AND,new or],[dt.EQUAL,new ur],[dt.GREATER_THAN,new gr],[dt.GREATER_THAN_EQUAL,new lr],[dt.LESS_THAN,new hr],[dt.LESS_THAN_EQUAL,new Tr],[dt.OR,new _r],[dt.NOT_EQUAL,new Nr],[dt.NULLISH_COALESCING_OPERATOR,new Ut],[dt.ARRAY_OPERATOR,new jt],[dt.OBJECT_OPERATOR,new Mr]]);static UNARY_OPERATORS_MAP_KEY_SET=new Set(kr.UNARY_OPERATORS_MAP.keys());internalTokenValueExtractor=new Hr;constructor(e){e instanceof Pt?(this.exp=e,this.expression=this.exp.getExpression()):this.expression=e}evaluate(e){const t=this.processNestingExpression(this.expression,e);return this.expression=t.getT1(),this.exp=t.getT2(),(e=new Map(e.entries())).set(this.internalTokenValueExtractor.getPrefix(),this.internalTokenValueExtractor),this.evaluateExpression(this.exp,e)}processNestingExpression(e,t){let r=0,n=0;const s=new pt;for(;n<e.length-1;){if("{"==e.charAt(n)&&"{"==e.charAt(n+1))0==r&&s.push(new re(n+2,-1)),r++,n++;else if("}"==e.charAt(n)&&"}"==e.charAt(n+1)){if(r--,r<0)throw new _t(e,"Expecting {{ nesting path operator to be started before closing");0==r&&s.push(s.pop().setT2(n)),n++}n++}let a=this.replaceNestingExpression(e,t,s);return new re(a,new Pt(a))}replaceNestingExpression(e,t,r){let n=e;for(var s of r.toArray()){if(-1==s.getT2())throw new _t(e,"Expecting }} nesting path operator to be closed");let r=new kr(n.substring(s.getT1(),s.getT2())).evaluate(t);n=n.substring(0,s.getT1()-2)+r+n.substring(s.getT2()+2)}return n}getExpression(){return this.exp||(this.exp=new Pt(this.expression)),this.exp}getExpressionString(){return this.expression}evaluateExpression(e,t){let r=e.getOperations(),n=e.getTokens();for(;!r.isEmpty();){let e=r.pop(),o=n.pop();if(kr.UNARY_OPERATORS_MAP_KEY_SET.has(e))n.push(this.applyUnaryOperation(e,this.getValueFromToken(t,o)));else if(e==dt.OBJECT_OPERATOR||e==dt.ARRAY_OPERATOR)this.processObjectOrArrayOperator(t,r,n,e,o);else if(e==dt.CONDITIONAL_TERNARY_OPERATOR){const r=n.pop(),E=n.pop();var s=this.getValueFromToken(t,E),a=this.getValueFromToken(t,r),i=this.getValueFromToken(t,o);n.push(this.applyTernaryOperation(e,s,a,i))}else{const r=n.pop();s=this.getValueFromToken(t,r),a=this.getValueFromToken(t,o);n.push(this.applyBinaryOperation(e,s,a))}}if(n.isEmpty())throw new Ve(K.format("Expression : $ evaluated to null",e));if(1!=n.size())throw new Ve(K.format("Expression : $ evaluated multiple values $",e,n));const o=n.get(0);if(o instanceof wt)return o.getElement();if(!(o instanceof Pt))return this.getValueFromToken(t,o);throw new Ve(K.format("Expression : $ evaluated to $",e,n.get(0)))}processObjectOrArrayOperator(e,t,r,n,s){const a=new pt,i=new pt;if(!n||!s)return;do{i.push(n),s instanceof Pt?a.push(new wt(s.toString(),this.evaluateExpression(s,e))):s&&a.push(s),s=r.isEmpty()?void 0:r.pop(),n=t.isEmpty()?void 0:t.pop()}while(n==dt.OBJECT_OPERATOR||n==dt.ARRAY_OPERATOR);s&&(s instanceof Pt?a.push(new wt(s.toString(),this.evaluateExpression(s,e))):a.push(s)),n&&t.push(n);let o=a.pop();if(o instanceof wt&&"object"==typeof o.getTokenValue()){const e=(new Date).getTime()+""+Math.round(1e3*Math.random());this.internalTokenValueExtractor.addValue(e,o.getTokenValue()),o=new Mt(Hr.PREFIX+e)}let E=new Nt(o instanceof wt?o.getTokenValue():o.toString());for(;!a.isEmpty();)o=a.pop(),n=i.pop(),E.append(n.getOperator()).append(o instanceof wt?o.getTokenValue():o.toString()),n==dt.ARRAY_OPERATOR&&E.append("]");let u=E.toString(),A=u.substring(0,u.indexOf(".")+1);if(A.length>2&&e.has(A))r.push(new wt(u,this.getValue(u,e)));else{let e;try{e=Dr.INSTANCE.getValue(u)}catch(t){e=u}r.push(new wt(u,e))}}applyTernaryOperation(e,t,r,n){let s=kr.TERNARY_OPERATORS_MAP.get(e);if(!s)throw new _t(this.expression,K.format("No operator found to evaluate $",this.getExpression()));return new wt(e.toString(),s.apply(t,r,n))}applyBinaryOperation(e,t,r){let n=typeof t,s=typeof r,a=kr.BINARY_OPERATORS_MAP.get(e);if(("object"===n||"object"===s)&&e!==dt.EQUAL&&e!==dt.NOT_EQUAL&&e!==dt.NULLISH_COALESCING_OPERATOR)throw new _t(this.expression,K.format("Cannot evaluate expression $ $ $",t,e.getOperator(),r));if(!a)throw new _t(this.expression,K.format("No operator found to evaluate $ $ $",t,e.getOperator(),r));return new wt(e.toString(),a.apply(t,r))}applyUnaryOperation(e,t){if("object"===typeof t||Array.isArray(t))throw new _t(this.expression,K.format("The operator $ cannot be applied to $",e.getOperator(),t));let r=kr.UNARY_OPERATORS_MAP.get(e);if(!r)throw new _t(this.expression,K.format("No Unary operator $ is found to apply on $",e.getOperator(),t));return new wt(e.toString(),r.apply(t))}getValueFromToken(e,t){return t instanceof Pt?this.evaluateExpression(t,e):t instanceof wt?t.getElement():this.getValue(t.getExpression(),e)}getValue(e,t){if(e.length<=5)return Dr.INSTANCE.getValue(e);const r=e.substring(0,e.indexOf(".")+1);return(t.get(r)??Dr.INSTANCE).getValue(e)}}const $r=new j("Set").setNamespace(a.SYSTEM_CTX).setParameters(new Map([y.ofEntry("name",(new S).setName("name").setType(f.of(l.STRING)).setMinLength(1),!1,d.CONSTANT),y.ofEntry("value",S.ofAny("value"))])).setEvents(new Map([Y.outputEventMapEntry(new Map)]));const Xr=new j("GenerateEvent").setNamespace(a.SYSTEM).setParameters(new Map([y.ofEntry("eventName",S.ofString("eventName").setDefaultValue("output")),y.ofEntry("results",S.ofObject("results").setProperties(new Map([["name",S.ofString("name")],["value",y.EXPRESSION]])),!0)])).setEvents(new Map([Y.outputEventMapEntry(new Map)]));class Wr extends Pe{static CONDITION="condition";static SIGNATURE=new j("If").setNamespace(a.SYSTEM).setParameters(new Map([y.ofEntry(Wr.CONDITION,S.of(Wr.CONDITION,l.BOOLEAN))])).setEvents(new Map([Y.eventMapEntry(Y.TRUE,new Map),Y.eventMapEntry(Y.FALSE,new Map),Y.outputEventMapEntry(new Map)]));getSignature(){return Wr.SIGNATURE}async internalExecute(e){var t=e.getArguments()?.get(Wr.CONDITION);return new X([B.of(t?Y.TRUE:Y.FALSE,new Map),B.outputOf(new Map)])}}const jr=new j("CountLoop").setNamespace(a.SYSTEM_LOOP).setParameters(new Map([y.ofEntry("count",S.of("count",l.INTEGER))])).setEvents(new Map([Y.eventMapEntry(Y.ITERATION,new Map([["index",S.of("index",l.INTEGER)]])),Y.outputEventMapEntry(new Map([["value",S.of("value",l.INTEGER)]]))]));const qr=new j("RangeLoop").setNamespace(a.SYSTEM_LOOP).setParameters(new Map([y.ofEntry("from",S.of("from",l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE).setDefaultValue(0)),y.ofEntry("to",S.of("to",l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE).setDefaultValue(1)),y.ofEntry("step",S.of("step",l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE).setDefaultValue(1).setNot((new S).setConstant(0)))])).setEvents(new Map([Y.eventMapEntry(Y.ITERATION,new Map([["index",S.of("index",l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE)]])),Y.outputEventMapEntry(new Map([["value",S.of("value",l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE)]]))]));const Jr=new j("Add").setNamespace(a.MATH).setParameters(new Map([["value",new y("value",S.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",S.ofNumber("value")]]))]));const zr=[()=>new Map([["value",new y("value",S.ofNumber("value"))]]),()=>new Map([["value1",new y("value1",S.ofNumber("value1"))],["value2",new y("value2",S.ofNumber("value2"))]])];class Qr extends Pe{constructor(e,t,r=1,...n){super(),n&&n.length||(n=[l.DOUBLE]),this.parametersNumber=r,this.mathFunction=t,this.signature=new j(e).setNamespace(a.MATH).setParameters(zr[r-1]()).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",(new S).setType(f.of(...n)).setName("value")]]))]))}getSignature(){return this.signature}async internalExecute(e){let t,r=Ce.findPrimitiveNumberType(e.getArguments()?.get(1==this.parametersNumber?"value":"value1")).getT2();return 2==this.parametersNumber&&(t=Ce.findPrimitiveNumberType(e.getArguments()?.get("value2")).getT2()),new X([B.outputOf(new Map([["value",this.mathFunction.call(this,r,t)]]))])}}class Kr extends Pe{static SIGNATURE=new j("Hypotenuse").setNamespace(a.MATH).setParameters(new Map([["value",new y("value",S.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",(new S).setType(f.of(l.DOUBLE)).setName("value")]]))]));constructor(){super()}getSignature(){return Kr.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get("value");return new X([B.outputOf(new Map([["value",Math.sqrt(t.reduce(((e,t)=>e+t*t),0))]]))])}}const Zr=new j("Maximum").setNamespace(a.MATH).setParameters(new Map([["value",new y("value",S.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",S.ofNumber("value")]]))]));const en=new j("Minimum").setNamespace(a.MATH).setParameters(new Map([["value",new y("value",S.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",S.ofNumber("value")]]))]));class tn extends Pe{static SIGNATURE=new j("Random").setNamespace(a.MATH).setEvents(new Map([Y.outputEventMapEntry(G.of("value",S.ofDouble("value")))]));getSignature(){return tn.SIGNATURE}async internalExecute(e){return new X([B.outputOf(new Map([["value",Math.random()]]))])}}class rn extends Pe{static MIN_VALUE="minValue";static MAX_VALUE="maxValue";static VALUE="value";static SIGNATURE=new j("RandomFloat").setParameters(G.of(rn.MIN_VALUE,y.of(rn.MIN_VALUE,S.ofFloat(rn.MIN_VALUE).setDefaultValue(0)),rn.MAX_VALUE,y.of(rn.MAX_VALUE,S.ofFloat(rn.MAX_VALUE).setDefaultValue(2147483647)))).setNamespace(a.MATH).setEvents(new Map([Y.outputEventMapEntry(G.of(rn.VALUE,S.ofFloat(rn.VALUE)))]));getSignature(){return rn.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(rn.MIN_VALUE),r=e.getArguments()?.get(rn.MAX_VALUE),n=Math.random()*(r-t)+t;return new X([B.outputOf(new Map([[rn.VALUE,n]]))])}}class nn extends Pe{static MIN_VALUE="minValue";static MAX_VALUE="maxValue";static VALUE="value";static SIGNATURE=new j("RandomInt").setParameters(G.of(nn.MIN_VALUE,y.of(nn.MIN_VALUE,S.ofInteger(nn.MIN_VALUE).setDefaultValue(0)),nn.MAX_VALUE,y.of(nn.MAX_VALUE,S.ofInteger(nn.MAX_VALUE).setDefaultValue(2147483647)))).setNamespace(a.MATH).setEvents(new Map([Y.outputEventMapEntry(G.of(nn.VALUE,S.ofInteger(nn.VALUE)))]));getSignature(){return nn.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(nn.MIN_VALUE),r=e.getArguments()?.get(nn.MAX_VALUE),n=Math.floor(Math.random()*(r-t)+t);return new X([B.outputOf(new Map([[nn.VALUE,n]]))])}}const sn={Absolute:new Qr("Absolute",(e=>Math.abs(e)),1,l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE),ACosine:new Qr("ArcCosine",(e=>Math.acos(e))),ASine:new Qr("ArcSine",(e=>Math.asin(e))),ATangent:new Qr("ArcTangent",(e=>Math.atan(e))),Ceiling:new Qr("Ceiling",(e=>Math.ceil(e))),Cosine:new Qr("Cosine",(e=>Math.cos(e))),CosineH:new Qr("HyperbolicCosine",(e=>Math.cosh(e))),CubeRoot:new Qr("CubeRoot",(e=>Math.cbrt(e))),Exponential:new Qr("Exponential",(e=>Math.exp(e))),Expm1:new Qr("ExponentialMinus1",(e=>Math.expm1(e))),Floor:new Qr("Floor",(e=>Math.floor(e))),Log:new Qr("LogNatural",(e=>Math.log(e))),Log10:new Qr("Log10",(e=>Math.log10(e))),Round:new Qr("Round",(e=>Math.round(e)),1,l.INTEGER,l.LONG),Sine:new Qr("Sine",(e=>Math.sin(e))),SineH:new Qr("HyperbolicSine",(e=>Math.sinh(e))),Tangent:new Qr("Tangent",(e=>Math.tan(e))),TangentH:new Qr("HyperbolicTangent",(e=>Math.tanh(e))),ToDegrees:new Qr("ToDegrees",(e=>e*(Math.PI/180))),ToRadians:new Qr("ToRadians",(e=>e*(180/Math.PI))),SquareRoot:new Qr("SquareRoot",(e=>Math.sqrt(e))),ArcTangent:new Qr("ArcTangent2",((e,t)=>Math.atan2(e,t)),2),Power:new Qr("Power",((e,t)=>Math.pow(e,t)),2),Add:new class extends Pe{getSignature(){return Jr}async internalExecute(e){let t=e.getArguments()?.get("value");return new X([B.outputOf(new Map([["value",t.reduce(((e,t)=>e+t),0)]]))])}},Hypotenuse:new Kr,Maximum:new class extends Pe{getSignature(){return Zr}async internalExecute(e){let t=e.getArguments()?.get("value");return new X([B.outputOf(new Map([["value",t.reduce(((e,t)=>!e&&0!==e||t>e?t:e))]]))])}},Minimum:new class extends Pe{getSignature(){return en}async internalExecute(e){let t=e.getArguments()?.get("value");return new X([B.outputOf(new Map([["value",t.reduce(((e,t)=>!e&&0!==e||t<e?t:e))]]))])}},Random:new tn,RandomFloat:new rn,RandomInt:new nn},an=Object.values(sn).map((e=>e.getSignature().getFullName()));class on{find(e,t){if(e==a.MATH)return sn[t]}filter(e){return an.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}class En extends Pe{static VALUES="values";static SIGNATURE=new j("Print").setNamespace(a.SYSTEM).setParameters(new Map([y.ofEntry(En.VALUES,S.ofAny(En.VALUES),!0)]));getSignature(){return En.SIGNATURE}async internalExecute(e){var t=e.getArguments()?.get(En.VALUES);return console?.log(...t),new X([B.outputOf(new Map)])}}class un extends Pe{static PARAMETER_STRING_NAME="string";static PARAMETER_SEARCH_STRING_NAME="searchString";static PARAMETER_SECOND_STRING_NAME="secondString";static PARAMETER_THIRD_STRING_NAME="thirdString";static PARAMETER_INDEX_NAME="index";static PARAMETER_SECOND_INDEX_NAME="secondIndex";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new y(un.PARAMETER_STRING_NAME,S.ofString(un.PARAMETER_STRING_NAME));static PARAMETER_SECOND_STRING=new y(un.PARAMETER_SECOND_STRING_NAME,S.ofString(un.PARAMETER_SECOND_STRING_NAME));static PARAMETER_THIRD_STRING=new y(un.PARAMETER_THIRD_STRING_NAME,S.ofString(un.PARAMETER_THIRD_STRING_NAME));static PARAMETER_INDEX=new y(un.PARAMETER_INDEX_NAME,S.ofInteger(un.PARAMETER_INDEX_NAME));static PARAMETER_SECOND_INDEX=new y(un.PARAMETER_SECOND_INDEX_NAME,S.ofInteger(un.PARAMETER_SECOND_INDEX_NAME));static PARAMETER_SEARCH_STRING=new y(un.PARAMETER_SEARCH_STRING_NAME,S.ofString(un.PARAMETER_STRING_NAME));static EVENT_STRING=new Y(Y.OUTPUT,G.of(un.EVENT_RESULT_NAME,S.ofString(un.EVENT_RESULT_NAME)));static EVENT_BOOLEAN=new Y(Y.OUTPUT,G.of(un.EVENT_RESULT_NAME,S.ofBoolean(un.EVENT_RESULT_NAME)));static EVENT_INT=new Y(Y.OUTPUT,G.of(un.EVENT_RESULT_NAME,S.ofInteger(un.EVENT_RESULT_NAME)));static EVENT_ARRAY=new Y(Y.OUTPUT,G.of(un.EVENT_RESULT_NAME,S.ofArray(un.EVENT_RESULT_NAME)));constructor(e,t,r,...n){super();const s=new Map;n.forEach((e=>s.set(e.getParameterName(),e))),this.signature=new j(t).setNamespace(e).setParameters(s).setEvents(G.of(r.getName(),r))}getSignature(){return this.signature}static ofEntryAsStringBooleanOutput(e,t){return[e,new class extends un{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(un.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(un.PARAMETER_SEARCH_STRING_NAME);return new X([B.outputOf(G.of(un.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,un.EVENT_BOOLEAN,un.PARAMETER_STRING,un.PARAMETER_SEARCH_STRING)]}static ofEntryAsStringAndIntegerStringOutput(e,t){return[e,new class extends un{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(un.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(un.PARAMETER_INDEX_NAME);return new X([B.outputOf(G.of(un.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,un.EVENT_STRING,un.PARAMETER_STRING,un.PARAMETER_INDEX)]}static ofEntryAsStringIntegerOutput(e,t){return[e,new class extends un{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(un.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(un.PARAMETER_SEARCH_STRING_NAME);return new X([B.outputOf(G.of(un.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,un.EVENT_INT,un.PARAMETER_STRING,un.PARAMETER_SEARCH_STRING)]}static ofEntryString(e,t){return[e,new class extends un{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(un.PARAMETER_STRING_NAME);return new X([B.outputOf(G.of(un.EVENT_RESULT_NAME,t(r)))])}}(a.STRING,e,un.EVENT_STRING,un.PARAMETER_STRING)]}static ofEntryStringBooleanOutput(e,t){return[e,new class extends un{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(un.PARAMETER_STRING_NAME);return new X([B.outputOf(G.of(un.EVENT_RESULT_NAME,t(r)))])}}(a.STRING,e,un.EVENT_BOOLEAN,un.PARAMETER_STRING)]}static ofEntryAsStringStringIntegerIntegerOutput(e,t){return[e,new class extends un{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(un.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(un.PARAMETER_SEARCH_STRING_NAME),s=e?.getArguments()?.get(un.PARAMETER_INDEX_NAME);return new X([B.outputOf(G.of(un.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,un.EVENT_INT,un.PARAMETER_STRING,un.PARAMETER_SEARCH_STRING,un.PARAMETER_INDEX)]}static ofEntryAsStringIntegerIntegerStringOutput(e,t){return[e,new class extends un{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(un.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(un.PARAMETER_INDEX_NAME),s=e?.getArguments()?.get(un.PARAMETER_SECOND_INDEX_NAME);return new X([B.outputOf(G.of(un.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,un.EVENT_INT,un.PARAMETER_STRING,un.PARAMETER_INDEX,un.PARAMETER_SECOND_INDEX)]}static ofEntryAsStringStringStringStringOutput(e,t){return[e,new class extends un{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(un.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(un.PARAMETER_SECOND_STRING_NAME),s=e?.getArguments()?.get(un.PARAMETER_THIRD_STRING_NAME);return new X([B.outputOf(G.of(un.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,un.EVENT_STRING,un.PARAMETER_STRING,un.PARAMETER_SECOND_STRING,un.PARAMETER_THIRD_STRING)]}}class An extends Pe{static VALUE="value";static SCHEMA=(new S).setName(An.VALUE).setType(new N(l.STRING));static SIGNATURE=new j("Concatenate").setNamespace(a.STRING).setParameters(new Map([[An.VALUE,new y(An.VALUE,An.SCHEMA).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([[An.VALUE,S.ofString(An.VALUE)]]))]));constructor(){super()}getSignature(){return An.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(An.VALUE),r="";return t.reduce(((e,t)=>r=e+t),r),new X([B.outputOf(new Map([[An.VALUE,r]]))])}}class ln extends Pe{static PARAMETER_STRING_NAME="string";static PARAMETER_AT_START_NAME="startPosition";static PARAMETER_AT_END_NAME="endPosition";static EVENT_RESULT_NAME="result";PARAMETER_STRING=new y(ln.PARAMETER_STRING_NAME,S.ofString(ln.PARAMETER_STRING_NAME));PARAMETER_AT_START=new y(ln.PARAMETER_AT_START_NAME,S.ofInteger(ln.PARAMETER_AT_START_NAME));PARAMETER_AT_END=new y(ln.PARAMETER_AT_END_NAME,S.ofInteger(ln.PARAMETER_AT_END_NAME));EVENT_STRING=new Y(Y.OUTPUT,new Map([[ln.EVENT_RESULT_NAME,S.ofString(ln.EVENT_RESULT_NAME)]]));signature=new j("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]]));constructor(){super()}getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(ln.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(ln.PARAMETER_AT_START_NAME),n=e?.getArguments()?.get(ln.PARAMETER_AT_END_NAME);if(n>=r){let e="";return e+=t.substring(0,r),e+=t.substring(n),new X([B.outputOf(new Map([[ln.EVENT_RESULT_NAME,e.toString()]]))])}return new X([B.outputOf(new Map([[ln.EVENT_RESULT_NAME,t]]))])}}class mn extends Pe{static PARAMETER_STRING_NAME="string";static PARAMETER_AT_POSITION_NAME="position";static PARAMETER_INSERT_STRING_NAME="insertString";EVENT_RESULT_NAME="result";PARAMETER_STRING=new y(mn.PARAMETER_STRING_NAME,S.ofString(mn.PARAMETER_STRING_NAME));PARAMETER_AT_POSITION=new y(mn.PARAMETER_AT_POSITION_NAME,S.ofInteger(mn.PARAMETER_AT_POSITION_NAME));PARAMETER_INSERT_STRING=new y(mn.PARAMETER_INSERT_STRING_NAME,S.ofString(mn.PARAMETER_INSERT_STRING_NAME));EVENT_STRING=new Y(Y.OUTPUT,new Map([[this.EVENT_RESULT_NAME,S.ofString(this.EVENT_RESULT_NAME)]]));signature=new j("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,S.ofString(this.EVENT_RESULT_NAME)]]))]));getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(mn.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(mn.PARAMETER_AT_POSITION_NAME),n=e?.getArguments()?.get(mn.PARAMETER_INSERT_STRING_NAME),s="";return s+=t.substring(0,r),s+=n,s+=t.substring(r),new X([B.outputOf(new Map([[this.EVENT_RESULT_NAME,s]]))])}}class gn extends Pe{static PARAMETER_STRING_NAME="string";static PARAMETER_POSTPAD_STRING_NAME="postpadString";static PARAMETER_LENGTH_NAME="length";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new y(gn.PARAMETER_STRING_NAME,S.ofString(gn.PARAMETER_STRING_NAME));static PARAMETER_POSTPAD_STRING=new y(gn.PARAMETER_POSTPAD_STRING_NAME,S.ofString(gn.PARAMETER_POSTPAD_STRING_NAME));static PARAMETER_LENGTH=new y(gn.PARAMETER_LENGTH_NAME,S.ofInteger(gn.PARAMETER_LENGTH_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[gn.EVENT_RESULT_NAME,S.ofString(gn.EVENT_RESULT_NAME)]]));signature=new j("PostPad").setNamespace(a.STRING).setParameters(new Map([[gn.PARAMETER_STRING.getParameterName(),gn.PARAMETER_STRING],[gn.PARAMETER_POSTPAD_STRING.getParameterName(),gn.PARAMETER_POSTPAD_STRING],[gn.PARAMETER_LENGTH.getParameterName(),gn.PARAMETER_LENGTH]])).setEvents(new Map([[gn.EVENT_STRING.getName(),gn.EVENT_STRING]]));constructor(){super()}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(gn.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(gn.PARAMETER_POSTPAD_STRING_NAME),n=e.getArguments()?.get(gn.PARAMETER_LENGTH_NAME),s="",a=r.length;for(s+=t;a<=n;)s+=r,a+=r.length;return s.length-t.length<n&&(s+=r.substring(0,n-(s.length-t.length))),new X([B.of(gn.EVENT_RESULT_NAME,new Map([[gn.EVENT_RESULT_NAME,s.toString()]]))])}}class Rn extends Pe{static PARAMETER_STRING_NAME="string";static PARAMETER_PREPAD_STRING_NAME="prepadString";static PARAMETER_LENGTH_NAME="length";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new y(Rn.PARAMETER_STRING_NAME,S.ofString(Rn.PARAMETER_STRING_NAME));static PARAMETER_PREPAD_STRING=new y(Rn.PARAMETER_PREPAD_STRING_NAME,S.ofString(Rn.PARAMETER_PREPAD_STRING_NAME));static PARAMETER_LENGTH=new y(Rn.PARAMETER_LENGTH_NAME,S.ofInteger(Rn.PARAMETER_LENGTH_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[Rn.EVENT_RESULT_NAME,S.ofString(Rn.EVENT_RESULT_NAME)]]));signature=new j("PrePad").setNamespace(a.STRING).setParameters(new Map([[Rn.PARAMETER_STRING.getParameterName(),Rn.PARAMETER_STRING],[Rn.PARAMETER_PREPAD_STRING.getParameterName(),Rn.PARAMETER_PREPAD_STRING],[Rn.PARAMETER_LENGTH.getParameterName(),Rn.PARAMETER_LENGTH]])).setEvents(new Map([[Rn.EVENT_STRING.getName(),Rn.EVENT_STRING]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(Rn.PARAMETER_STRING_NAME),r=e.getArguments()?.get(Rn.PARAMETER_PREPAD_STRING_NAME),n=e.getArguments()?.get(Rn.PARAMETER_LENGTH_NAME),s="",a=r.length;for(;a<=n;)s+=r,a+=r.length;return s.length<n&&(s+=r.substring(0,n-s.length)),s+=t,new X([B.of(Rn.EVENT_RESULT_NAME,new Map([[Rn.EVENT_RESULT_NAME,s]]))])}}class Tn extends Pe{static PARAMETER_STRING_NAME="string";static PARAMETER_BOOLEAN_NAME="boolean";static PARAMETER_FIRST_OFFSET_NAME="firstOffset";static PARAMETER_OTHER_STRING_NAME="otherString";static PARAMETER_SECOND_OFFSET_NAME="secondOffset";static PARAMETER_INTEGER_NAME="length";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new y(Tn.PARAMETER_STRING_NAME,S.ofString(Tn.PARAMETER_STRING_NAME));static PARAMETER_OTHER_STRING=new y(Tn.PARAMETER_OTHER_STRING_NAME,S.ofString(Tn.PARAMETER_OTHER_STRING_NAME));static PARAMETER_FIRST_OFFSET=new y(Tn.PARAMETER_FIRST_OFFSET_NAME,S.ofInteger(Tn.PARAMETER_FIRST_OFFSET_NAME));static PARAMETER_SECOND_OFFSET=new y(Tn.PARAMETER_SECOND_OFFSET_NAME,S.ofInteger(Tn.PARAMETER_SECOND_OFFSET_NAME));static PARAMETER_INTEGER=new y(Tn.PARAMETER_INTEGER_NAME,S.ofInteger(Tn.PARAMETER_INTEGER_NAME));static PARAMETER_BOOLEAN=new y(Tn.PARAMETER_BOOLEAN_NAME,S.ofBoolean(Tn.PARAMETER_BOOLEAN_NAME));static EVENT_BOOLEAN=new Y(Y.OUTPUT,new Map([[Tn.EVENT_RESULT_NAME,S.ofBoolean(Tn.EVENT_RESULT_NAME)]]));signature=new j("RegionMatches").setNamespace(a.STRING).setParameters(new Map([[Tn.PARAMETER_STRING.getParameterName(),Tn.PARAMETER_STRING],[Tn.PARAMETER_BOOLEAN.getParameterName(),Tn.PARAMETER_BOOLEAN],[Tn.PARAMETER_FIRST_OFFSET.getParameterName(),Tn.PARAMETER_FIRST_OFFSET],[Tn.PARAMETER_OTHER_STRING.getParameterName(),Tn.PARAMETER_OTHER_STRING],[Tn.PARAMETER_SECOND_OFFSET.getParameterName(),Tn.PARAMETER_SECOND_OFFSET],[Tn.PARAMETER_INTEGER.getParameterName(),Tn.PARAMETER_INTEGER]])).setEvents(new Map([[Tn.EVENT_BOOLEAN.getName(),Tn.EVENT_BOOLEAN]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(Tn.PARAMETER_STRING_NAME),r=e.getArguments()?.get(Tn.PARAMETER_BOOLEAN_NAME),n=e.getArguments()?.get(Tn.PARAMETER_FIRST_OFFSET_NAME),s=e?.getArguments()?.get(Tn.PARAMETER_OTHER_STRING_NAME),a=e?.getArguments()?.get(Tn.PARAMETER_SECOND_OFFSET_NAME),i=e.getArguments()?.get(Tn.PARAMETER_INTEGER_NAME),o=!1;if(n<0||a<0||n+i>t.length||a+i>s.length)o=!1;else if(r){t=t.substring(n,n+i).toUpperCase(),o=t==s.substring(a,a+i).toUpperCase()}else{t=t.substring(n,n+i),o=t==s.substring(a,i)}return new X([B.outputOf(new Map([[Tn.EVENT_RESULT_NAME,o]]))])}}class pn extends Pe{static PARAMETER_STRING_NAME="string";static PARAMETER_AT_START_NAME="startPosition";static PARAMETER_AT_LENGTH_NAME="lengthPosition";static PARAMETER_REPLACE_STRING_NAME="replaceString";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new y(pn.PARAMETER_STRING_NAME,S.ofString(pn.PARAMETER_STRING_NAME));static PARAMETER_AT_START=new y(pn.PARAMETER_AT_START_NAME,S.ofInteger(pn.PARAMETER_AT_START_NAME));static PARAMETER_AT_LENGTH=new y(pn.PARAMETER_AT_LENGTH_NAME,S.ofInteger(pn.PARAMETER_AT_LENGTH_NAME));static PARAMETER_REPLACE_STRING=new y(pn.PARAMETER_REPLACE_STRING_NAME,S.ofString(pn.PARAMETER_REPLACE_STRING_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[pn.EVENT_RESULT_NAME,S.ofString(pn.EVENT_RESULT_NAME)]]));constructor(){super()}signature=new j("ReplaceAtGivenPosition").setNamespace(a.STRING).setParameters(new Map([[pn.PARAMETER_STRING.getParameterName(),pn.PARAMETER_STRING],[pn.PARAMETER_AT_START.getParameterName(),pn.PARAMETER_AT_START],[pn.PARAMETER_AT_LENGTH.getParameterName(),pn.PARAMETER_AT_LENGTH],[pn.PARAMETER_REPLACE_STRING.getParameterName(),pn.PARAMETER_REPLACE_STRING]])).setEvents(new Map([[pn.EVENT_STRING.getName(),pn.EVENT_STRING]]));getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(pn.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(pn.PARAMETER_AT_START_NAME),n=e?.getArguments()?.get(pn.PARAMETER_AT_LENGTH_NAME),s=e?.getArguments()?.get(pn.PARAMETER_REPLACE_STRING_NAME);t.length;if(r<n){let e="";e+=t.substring(0,r),e+=s,e+=t.substring(r+n)}return new X([B.outputOf(new Map([[pn.EVENT_RESULT_NAME,t]]))])}}class hn extends Pe{VALUE="value";SIGNATURE=new j("Reverse").setNamespace(a.STRING).setParameters(new Map([[this.VALUE,new y(this.VALUE,S.ofString(this.VALUE)).setVariableArgument(!1)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([[this.VALUE,(new S).setType(f.of(l.STRING)).setName(this.VALUE)]]))]));constructor(){super()}getSignature(){return this.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(this.VALUE),r=t.length-1,n="";for(;r>=0;)n+=t.charAt(r--);return new X([B.outputOf(G.of(this.VALUE,n))])}}class cn extends Pe{PARAMETER_STRING_NAME="string";PARAMETER_SPLIT_STRING_NAME="searchString";EVENT_RESULT_NAME="result";PARAMETER_STRING=new y(this.PARAMETER_STRING_NAME,S.ofString(this.PARAMETER_STRING_NAME));PARAMETER_SPLIT_STRING=new y(this.PARAMETER_SPLIT_STRING_NAME,S.ofString(this.PARAMETER_SPLIT_STRING_NAME));EVENT_ARRAY=new Y(Y.OUTPUT,G.of(this.EVENT_RESULT_NAME,S.ofArray(this.EVENT_RESULT_NAME)));getSignature(){return new j("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,S.ofArray(this.EVENT_RESULT_NAME)]]))]))}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(this.PARAMETER_STRING_NAME),r=e.getArguments()?.get(this.PARAMETER_SPLIT_STRING_NAME);return new X([B.outputOf(G.of(this.EVENT_ARRAY.getName(),t.split(r)))])}}class Nn extends Pe{PARAMETER_INPUT_ANYTYPE_NAME="anytype";EVENT_RESULT_NAME="result";PARAMETER_INPUT_ANYTYPE=new y(this.PARAMETER_INPUT_ANYTYPE_NAME,S.ofAny(this.PARAMETER_INPUT_ANYTYPE_NAME));EVENT_STRING=new Y(Y.OUTPUT,new Map([[this.EVENT_RESULT_NAME,S.ofString(this.EVENT_RESULT_NAME)]]));getSignature(){return new j("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]]))}constructor(){super()}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 X([B.outputOf(new Map([[this.EVENT_RESULT_NAME,r]]))])}}class fn extends Pe{static PARAMETER_STRING_NAME="string";static PARAMETER_LENGTH_NAME="length";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new y(fn.PARAMETER_STRING_NAME,S.ofString(fn.PARAMETER_STRING_NAME));static PARAMETER_LENGTH=new y(fn.PARAMETER_LENGTH_NAME,S.ofInteger(fn.PARAMETER_LENGTH_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[fn.EVENT_RESULT_NAME,S.ofString(fn.EVENT_RESULT_NAME)]]));signature=new j("TrimTo").setNamespace(a.STRING).setParameters(new Map([[fn.PARAMETER_STRING.getParameterName(),fn.PARAMETER_STRING],[fn.PARAMETER_LENGTH.getParameterName(),fn.PARAMETER_LENGTH]])).setEvents(new Map([[fn.EVENT_STRING.getName(),fn.EVENT_STRING]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(fn.PARAMETER_STRING_NAME),r=e.getArguments()?.get(fn.PARAMETER_LENGTH_NAME);return new X([B.of(fn.EVENT_RESULT_NAME,new Map([[fn.EVENT_RESULT_NAME,t.substring(0,r)]]))])}}class _n{static repoMap=G.ofArrayEntries(un.ofEntryString("Trim",(e=>e.trim())),un.ofEntryString("LowerCase",(e=>e.toLocaleLowerCase())),un.ofEntryString("UpperCase",(e=>e.toUpperCase())),un.ofEntryStringBooleanOutput("IsBlank",(e=>""===e.trim())),un.ofEntryStringBooleanOutput("IsEmpty",(e=>""===e)),un.ofEntryAsStringBooleanOutput("Contains",((e,t)=>-1!=e.indexOf(t))),un.ofEntryAsStringBooleanOutput("EndsWith",((e,t)=>e.endsWith(t))),un.ofEntryAsStringBooleanOutput("EqualsIgnoreCase",((e,t)=>e.toUpperCase()==t.toUpperCase())),un.ofEntryAsStringBooleanOutput("Matches",((e,t)=>new RegExp(t).test(e))),un.ofEntryAsStringIntegerOutput("IndexOf",((e,t)=>e.indexOf(t))),un.ofEntryAsStringIntegerOutput("LastIndexOf",((e,t)=>e.lastIndexOf(t))),un.ofEntryAsStringAndIntegerStringOutput("Repeat",((e,t)=>e.repeat(t))),un.ofEntryAsStringStringIntegerIntegerOutput("IndexOfWithStartPoint",((e,t,r)=>e.indexOf(t,r))),un.ofEntryAsStringStringIntegerIntegerOutput("LastIndexOfWithStartPoint",((e,t,r)=>e.lastIndexOf(t,r))),un.ofEntryAsStringStringStringStringOutput("Replace",((e,t,r)=>e)),un.ofEntryAsStringStringStringStringOutput("ReplaceFirst",((e,t,r)=>e.replace(t,r))),un.ofEntryAsStringIntegerIntegerStringOutput("SubString",((e,t,r)=>e.substring(t,r))),V(new An),V(new ln),V(new mn),V(new gn),V(new Rn),V(new Tn),V(new pn),V(new hn),V(new cn),V(new Nn),V(new fn));static filterableNames=Array.from(_n.repoMap.values()).map((e=>e.getSignature().getFullName()));find(e,t){if(e==a.STRING)return _n.repoMap.get(t)}filter(e){return _n.filterableNames.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}var Sn={};t(Sn,"HybridRepository",(()=>Mn));class Mn{constructor(...e){this.repos=e}find(e,t){for(let r of this.repos){let n=r.find(e,t);if(n)return n}}filter(e){let t=new Set;for(let r of this.repos)r.filter(e).forEach((e=>t.add(e)));return Array.from(t)}}const On=new Map([[a.SYSTEM_CTX,new Map([V(new class extends Pe{getSignature(){return At}async internalExecute(e){const t=e?.getArguments()?.get("name");if(e?.getContext()?.has(t))throw new $(K.format("Context already has an element for '$' ",t));let r=S.from(e?.getArguments()?.get("schema"));if(!r)throw new $("Schema is not supplied.");return e.getContext().set(t,new ut(r,E(r.getDefaultValue())?void 0:r.getDefaultValue())),new X([B.outputOf(new Map)])}}),V(new class extends Pe{getSignature(){return lt}async internalExecute(e){const t=e?.getArguments()?.get("name");if(!e.getContext()?.has(t))throw new $(K.format("Context don't have an element for '$' ",t));return new X([B.outputOf(new Map(["value",e.getContext()?.get(t)?.getElement()]))])}}),V(new class extends Pe{getSignature(){return $r}async internalExecute(e){let t=e?.getArguments()?.get("name");if(Z.isNullOrBlank(t))throw new $("Empty string is not a valid name for the context element");let r=e?.getArguments()?.get("value");const n=new Pt(t),s=n.getTokens().peekLast();if(!s.getExpression().startsWith("Context")||s instanceof Pt||s instanceof wt&&!s.getElement().toString().startsWith("Context"))throw new Ve(K.format("The context path $ is not a valid path in context",t));for(const e of n.getOperations().toArray())if(e!=dt.ARRAY_OPERATOR&&e!=dt.OBJECT_OPERATOR)throw new Ve(K.format("Expected a reference to the context location, but found an expression $",t));for(let r=0;r<n.getTokens().size();r++){let s=n.getTokens().get(r);s instanceof Pt&&n.getTokens().set(r,new wt(t,new kr(s).evaluate(e.getValuesMap())))}return this.modifyContext(e,t,r,n)}modifyContext(e,t,r,n){const s=n.getTokens();s.removeLast();const a=n.getOperations();a.removeLast();let i=e.getContext()?.get(s.removeLast().getExpression());if(E(i))throw new $(K.format("Context doesn't have any element with name '$' ",t));if(a.isEmpty())return i.setElement(r),new X([B.outputOf(new Map)]);let o=i.getElement(),u=a.removeLast(),A=s.removeLast(),l=A instanceof wt?A.getElement():A.getExpression();for(E(o)&&(o=u==dt.OBJECT_OPERATOR?{}:[],i.setElement(o));!a.isEmpty();)o=u==dt.OBJECT_OPERATOR?this.getDataFromObject(o,l,a.peekLast()):this.getDataFromArray(o,l,a.peekLast()),u=a.removeLast(),A=s.removeLast(),l=A instanceof wt?A.getElement():A.getExpression();return u==dt.OBJECT_OPERATOR?this.putDataInObject(o,l,r):this.putDataInArray(o,l,r),new X([B.outputOf(new Map)])}getDataFromArray(e,t,r){if(!Array.isArray(e))throw new $(K.format("Expected an array but found $",e));const n=parseInt(t);if(isNaN(n))throw new $(K.format("Expected an array index but found $",t));if(n<0)throw new $(K.format("Array index is out of bound - $",t));let s=e[n];return E(s)&&(s=r==dt.OBJECT_OPERATOR?{}:[],e[n]=s),s}getDataFromObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new $(K.format("Expected an object but found $",e));let n=e[t];return E(n)&&(n=r==dt.OBJECT_OPERATOR?{}:[],e[t]=n),n}putDataInArray(e,t,r){if(!Array.isArray(e))throw new $(K.format("Expected an array but found $",e));const n=parseInt(t);if(isNaN(n))throw new $(K.format("Expected an array index but found $",t));if(n<0)throw new $(K.format("Array index is out of bound - $",t));e[n]=r}putDataInObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new $(K.format("Expected an object but found $",e));e[t]=r}})])],[a.SYSTEM_LOOP,new Map([V(new class extends Pe{getSignature(){return qr}async internalExecute(e){let t=e.getArguments()?.get("from"),r=e.getArguments()?.get("to"),n=e.getArguments()?.get("step");const s=n>0;let a=t,i=!1;return new X({next(){if(i)return;if(s&&a>=r||!s&&a<=r)return i=!0,B.outputOf(new Map([["value",a]]));const e=B.of(Y.ITERATION,new Map([["index",a]]));return a+=n,e}})}}),V(new class extends Pe{getSignature(){return jr}async internalExecute(e){let t=e.getArguments()?.get("count"),r=0;return new X({next(){if(r>=t)return B.outputOf(new Map([["value",t]]));const e=B.of(Y.ITERATION,new Map([["index",r]]));return++r,e}})}})])],[a.SYSTEM,new Map([V(new Wr),V(new class extends Pe{getSignature(){return Xr}async internalExecute(e){const t=e.getEvents(),r=e.getArguments()?.get("eventName"),n=e?.getArguments()?.get("results").map((t=>{let r=t.value;if(E(r))throw new $("Expect a value object");let n=r.value;return r.isExpression&&(n=new kr(n).evaluate(e.getValuesMap())),[t.name,n]})).reduce(((e,t)=>(e.set(t[0],t[1]),e)),new Map);return t?.has(r)||t?.set(r,[]),t?.get(r)?.push(n),new X([B.outputOf(new Map)])}}),V(new En)])]]),wn=Array.from(On.values()).flatMap((e=>Array.from(e.values()))).map((e=>e.getSignature().getFullName()));class In extends Mn{constructor(){super({find:(e,t)=>On.get(e)?.get(t),filter:e=>Array.from(wn).filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))},new on,new _n,new ot)}}var dn={};t(dn,"StatementExecution",(()=>xn));var Pn={};t(Pn,"StatementMessage",(()=>yn));class yn{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 xn{messages=new Array;dependencies=new Set;constructor(e){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 yn(e,t))}addDependency(e){this.dependencies.add(e)}getDepenedencies(){return this.dependencies}equals(e){if(!(e instanceof xn))return!1;return e.statement.equals(this.statement)}}var vn={};t(vn,"ContextTokenValueExtractor",(()=>Ln));class Ln extends Gr{static PREFIX="Context.";constructor(e){super(),this.context=e}getValueInternal(e){let t=e.split(Gr.REGEX_DOT),r=t[1],n=r.indexOf("["),s=2;return-1!=n&&(r=t[1].substring(0,n),t[1]=t[1].substring(n),s=1),this.retrieveElementFrom(e,t,s,this.context.get(r)?.getElement())}getPrefix(){return Ln.PREFIX}}var Un={};t(Un,"OutputMapTokenValueExtractor",(()=>Vn));class Vn extends Gr{static PREFIX="Steps.";constructor(e){super(),this.output=e}getValueInternal(e){let t=e.split(Gr.REGEX_DOT),r=1,n=this.output.get(t[r++]);if(!n||r>=t.length)return;let s=n.get(t[r++]);if(!s||r>=t.length)return;let a=s.get(t[r++]);return this.retrieveElementFrom(e,t,r,a)}getPrefix(){return Vn.PREFIX}}var Cn={};t(Cn,"ArgumentsTokenValueExtractor",(()=>Gn));class Gn extends Gr{static PREFIX="Arguments.";constructor(e){super(),this.args=e}getValueInternal(e){let t=e.split(Gr.REGEX_DOT),r=t[1],n=r.indexOf("["),s=2;return-1!=n&&(r=t[1].substring(0,n),t[1]=t[1].substring(n),s=1),this.retrieveElementFrom(e,t,s,this.args.get(r))}getPrefix(){return Gn.PREFIX}}var bn={};t(bn,"GraphVertex",(()=>Yn));var Dn={};t(Dn,"ExecutionGraph",(()=>Fn));class Fn{nodeMap=new Map;constructor(e=!1){this.isSubGrph=e}getVerticesData(){return Array.from(this.nodeMap.values()).map((e=>e.getData()))}addVertex(e){if(!this.nodeMap.has(e.getUniqueKey())){let t=new Yn(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 pt(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(const 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 Yn{outVertices=new Map;inVertices=new Set;constructor(e,t){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 re(this,e)),t}addInEdgeTo(e,t){return this.inVertices.add(new re(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=new Fn(!0);var r=new pt(Array.from(this.outVertices.get(e)??[]));for(r.map((e=>e.getData())).forEach((e=>t.addVertex(e)));!r.isEmpty();){var n=r.pop();Array.from(n.outVertices.values()).flatMap((e=>Array.from(e))).forEach((e=>{t.addVertex(e.getData()),r.add(e)}))}return t}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\t\t");return this.getKey()+":\n\tIn: "+e+"\n\tOut: \n\t\t"+t}}var Bn={};t(Bn,"KIRuntime",(()=>Zn));var Hn={};t(Hn,"JsonExpression",(()=>kn));class kn{constructor(e){this.expression=e}getExpression(){return this.expression}}var $n={};let Xn;var Wn;t($n,"ParameterReferenceType",(()=>Xn)),(Wn=Xn||(Xn={})).VALUE="VALUE",Wn.EXPRESSION="EXPRESSION";var jn={};function qn(){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(jn,"FunctionExecutionParameters",(()=>Jn));class Jn{count=0;valueExtractors=new Map;constructor(e,t,r){this.functionRepository=e,this.schemaRepository=t,this.executionId=r??qn()}getExecutionId(){return this.executionId}getContext(){return this.context}setContext(e){this.context=e;let t=new Ln(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 Vn(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(const t of e)this.valueExtractors.set(t.getPrefix(),t);return this}setValuesMap(e){for(const[t,r]of e.entries())this.valueExtractors.set(t,r);return this}}var zn={};let Qn;var Kn;t(zn,"StatementMessageType",(()=>Qn)),(Kn=Qn||(Qn={})).ERROR="ERROR",Kn.WARNING="WARNING",Kn.MESSAGE="MESSAGE";class Zn extends Pe{static PARAMETER_NEEDS_A_VALUE='Parameter "$" needs a value';static STEP_REGEX_PATTERN=new RegExp("Steps\\.([a-zA-Z0-9\\\\-]{1,})\\.([a-zA-Z0-9\\\\-]{1,})","g");static VERSION=1;static MAX_EXECUTION_ITERATIONS=1e7;debugMode=!1;constructor(e,t=!1){if(super(),this.debugMode=t,this.fd=e,this.fd.getVersion()>Zn.VERSION)throw new $("Runtime is at a lower version "+Zn.VERSION+" and trying to run code from version "+this.fd.getVersion()+".")}getSignature(){return this.fd}async getExecutionPlan(e,t){let r=new Fn;for(let n of Array.from(this.fd.getSteps().values()))r.addVertex(this.prepareStatementExecution(n,e,t));let n=this.makeEdges(r);return Array.from(n.getT2().entries()).forEach((e=>{let t=r.getNodeMap().get(e[0])?.getData();t&&t.addMessage(Qn.ERROR,e[1])})),r}async internalExecute(e){e.getContext()||e.setContext(new Map),e.getEvents()||e.setEvents(new Map),e.getSteps()||e.setSteps(new Map),e.getArguments()&&e.addTokenValueExtractor(new Gn(e.getArguments())),this.debugMode&&(console.log(`EID: ${e.getExecutionId()} Executing: ${this.fd.getNamespace()}.${this.fd.getName()}`),console.log(`EID: ${e.getExecutionId()} Parameters: `,e));let t=await this.getExecutionPlan(e.getFunctionRepository(),e.getSchemaRepository());this.debugMode&&console.log(`EID: ${e.getExecutionId()} ${t?.toString()}`);let r=t.getVerticesData().filter((e=>e.getMessages().length)).map((e=>e.getStatement().getStatementName()+": \n"+e.getMessages().join(",")));if(r?.length)throw new $("Please fix the errors in the function definition before execution : \n"+r.join(",\n"));return await this.executeGraph(t,e)}async executeGraph(e,t){let r=new pt;r.addAll(e.getVerticesWithNoIncomingEdges());let n=new pt;for(;!(r.isEmpty()&&n.isEmpty()||t.getEvents()?.has(Y.OUTPUT));)if(await this.processBranchQue(t,r,n),await this.processExecutionQue(t,r,n),t.setCount(t.getCount()+1),t.getCount()==Zn.MAX_EXECUTION_ITERATIONS)throw new $("Execution locked in an infinite loop");if(!e.isSubGraph()&&!t.getEvents()?.size){const e=this.getSignature().getEvents();if(e.size&&e.get(Y.OUTPUT)?.getParameters()?.size)throw new $("No events raised")}return new X(Array.from(t.getEvents()?.entries()??[]).flatMap((e=>e[1].map((t=>B.of(e[0],t))))))}async processExecutionQue(e,t,r){if(!t.isEmpty()){let n=t.pop();await this.allDependenciesResolvedVertex(n,e.getSteps())?await this.executeVertex(n,e,r,t,e.getFunctionRepository()):t.add(n)}}async processBranchQue(e,t,r){if(r.length){let n=r.pop();await this.allDependenciesResolvedTuples(n.getT2(),e.getSteps())?await this.executeBranch(e,t,n):r.add(n)}}async executeBranch(e,t,r){let n,s=r.getT4();do{if(await this.executeGraph(r.getT1(),e),n=r.getT3().next(),n&&(e.getSteps()?.has(s.getData().getStatement().getStatementName())||e.getSteps()?.set(s.getData().getStatement().getStatementName(),new Map),e.getSteps()?.get(s.getData().getStatement().getStatementName())?.set(n.getName(),this.resolveInternalExpressions(n.getResult(),e)),this.debugMode)){const t=s.getData().getStatement();console.log(`EID: ${e.getExecutionId()} Step : ${t.getStatementName()} => ${t.getNamespace()}.${t.getName()}`),console.log(`EID: ${e.getExecutionId()} Event : ${n.getName()} : `,e.getSteps().get(t.getStatementName()).get(n.getName()))}}while(n&&n.getName()!=Y.OUTPUT);n?.getName()==Y.OUTPUT&&s.getOutVertices().has(Y.OUTPUT)&&(s?.getOutVertices()?.get(Y.OUTPUT)??[]).forEach((async r=>{await this.allDependenciesResolvedVertex(r,e.getSteps())&&t.add(r)}))}async executeVertex(e,t,r,n,s){let a=e.getData().getStatement(),i=s.find(a.getNamespace(),a.getName());if(!i)throw new $(K.format("$.$ function is not found.",a.getNamespace(),a.getName()));let o=i?.getSignature().getParameters(),E=this.getArgumentsFromParametersMap(t,a,o??new Map);this.debugMode&&(console.log(`EID: ${t.getExecutionId()} Step : ${a.getStatementName()} => ${a.getNamespace()}.${a.getName()}`),console.log(`EID: ${t.getExecutionId()} Arguments : `,E));let u,A=t.getContext();u=i instanceof Zn?new Jn(t.getFunctionRepository(),t.getSchemaRepository(),`${t.getExecutionId()}_${a.getStatementName()}`).setArguments(E).setValuesMap(new Map(Array.from(t.getValuesMap().values()).filter((e=>e.getPrefix()!==Gn.PREFIX&&e.getPrefix()!==Vn.PREFIX&&e.getPrefix()!==Ln.PREFIX)).map((e=>[e.getPrefix(),e])))):new Jn(t.getFunctionRepository(),t.getSchemaRepository(),t.getExecutionId()).setValuesMap(t.getValuesMap()).setContext(A).setArguments(E).setEvents(t.getEvents()).setSteps(t.getSteps()).setStatementExecution(e.getData()).setCount(t.getCount());let l=await i.execute(u),m=l.next();if(!m)throw new $(K.format("Executing $ returned no events",a.getStatementName()));let g=m.getName()==Y.OUTPUT;if(t.getSteps()?.has(a.getStatementName())||t.getSteps().set(a.getStatementName(),new Map),t.getSteps().get(a.getStatementName()).set(m.getName(),this.resolveInternalExpressions(m.getResult(),t)),this.debugMode&&(console.log(`EID: ${t.getExecutionId()} Step : ${a.getStatementName()} => ${a.getNamespace()}.${a.getName()}`),console.log(`EID: ${t.getExecutionId()} Event : ${m.getName()} : `,t.getSteps().get(a.getStatementName()).get(m.getName()))),g){let r=e.getOutVertices().get(Y.OUTPUT);r&&r.forEach((async e=>{await this.allDependenciesResolvedVertex(e,t.getSteps())&&n.add(e)}))}else{let t=e.getSubGraphOfType(m.getName()),n=this.makeEdges(t).getT1();r.push(new se(t,n,l,e))}}resolveInternalExpressions(e,t){return e?Array.from(e.entries()).map((e=>new re(e[0],this.resolveInternalExpression(e[1],t)))).reduce(((e,t)=>(e.set(t.getT1(),t.getT2()),e)),new Map):e}resolveInternalExpression(e,t){if(E(e)||"object"!=typeof e)return e;if(e instanceof kn){return new kr(e.getExpression()).evaluate(t.getValuesMap())}if(Array.isArray(e)){let r=[];for(let n of e)r.push(this.resolveInternalExpression(n,t));return r}if("object"==typeof e){let r={};for(let n of Object.entries(e))r[n[0]]=this.resolveInternalExpression(n[1],t);return r}}allDependenciesResolvedTuples(e,t){for(let r of e){if(!t.has(r.getT1()))return!1;if(!t.get(r.getT1())?.get(r.getT2()))return!1}return!0}allDependenciesResolvedVertex(e,t){return!e.getInVertices().size||0==Array.from(e.getInVertices()).filter((e=>{let r=e.getT1().getData().getStatement().getStatementName(),n=e.getT2();return!(t.has(r)&&t.get(r)?.has(n))})).length}getArgumentsFromParametersMap(e,t,r){return Array.from(t.getParameterMap().entries()).map((t=>{let n,s=Array.from(t[1]?.values()??[]);if(!s?.length)return new re(t[0],n);let a=r.get(t[0]);return a?(n=a.isVariableArgument()?s.sort(((e,t)=>(e.getOrder()??0)-(t.getOrder()??0))).filter((e=>!E(e))).map((t=>this.parameterReferenceEvaluation(e,t))).flatMap((e=>Array.isArray(e)?e:[e])):this.parameterReferenceEvaluation(e,s[0]),new re(t[0],n)):new re(t[0],void 0)})).filter((e=>!E(e.getT2()))).reduce(((e,t)=>(e.set(t.getT1(),t.getT2()),e)),new Map)}parameterReferenceEvaluation(e,t){let r;if(t.getType()==Xn.VALUE)r=this.resolveInternalExpression(t.getValue(),e);else if(t.getType()==Xn.EXPRESSION&&!Z.isNullOrBlank(t.getExpression())){r=new kr(t.getExpression()??"").evaluate(e.getValuesMap())}return r}prepareStatementExecution(e,t,r){let n=new xn(e),s=t.find(e.getNamespace(),e.getName());if(!s)return n.addMessage(Qn.ERROR,K.format("$.$ is not available",e.getNamespace(),e.getName())),n;let a=new Map(s.getSignature().getParameters());if(!e.getParameterMap())return n;for(let t of Array.from(e.getParameterMap().entries())){let e=a.get(t[0]);if(!e)continue;let s=Array.from(t[1]?.values()??[]);if(s.length||e.isVariableArgument()){if(e.isVariableArgument()){s.sort(((e,t)=>(e.getOrder()??0)-(t.getOrder()??0)));for(let t of s)this.parameterReferenceValidation(n,e,t,r)}else if(s.length){let t=s[0];this.parameterReferenceValidation(n,e,t,r)}a.delete(e.getParameterName())}else oe.hasDefaultValueOrNullSchemaType(e.getSchema(),r)||n.addMessage(Qn.ERROR,K.format(Zn.PARAMETER_NEEDS_A_VALUE,e.getParameterName())),a.delete(e.getParameterName())}if(!E(n.getStatement().getDependentStatements()))for(let e of n.getStatement().getDependentStatements().entries())e[1]&&n.addDependency(e[0]);if(a.size)for(let e of Array.from(a.values()))e.isVariableArgument()||oe.hasDefaultValueOrNullSchemaType(e.getSchema(),r)||n.addMessage(Qn.ERROR,K.format(Zn.PARAMETER_NEEDS_A_VALUE,e.getParameterName()));return n}parameterReferenceValidation(e,t,r,n){if(r){if(r.getType()==Xn.VALUE){if(E(r.getValue())&&!oe.hasDefaultValueOrNullSchemaType(t.getSchema(),n)&&e.addMessage(Qn.ERROR,K.format(Zn.PARAMETER_NEEDS_A_VALUE,t.getParameterName())),E(r.getValue()))return;let s=new pt;for(s.push(new re(t.getSchema(),r.getValue()));!s.isEmpty();){let t=s.pop();if(t.getT2()instanceof kn)this.addDependencies(e,t.getT2().getExpression());else{if(E(t.getT1())||E(t.getT1().getType()))continue;if(t.getT1().getType()?.contains(l.ARRAY)&&Array.isArray(t.getT2())){let e=t.getT1().getItems();if(!e)continue;if(e.isSingleType())for(let r of t.getT2())s.push(new re(e.getSingleSchema(),r));else{let r=t.getT2();for(let t=0;t<r.length;t++)s.push(new re(e.getTupleSchema()[t],r[t]))}}else if(t.getT1().getType()?.contains(l.OBJECT)&&"object"==typeof t.getT2()){let r=t.getT1();if(r.getName()===y.EXPRESSION.getName()&&r.getNamespace()===y.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])&&s.push(new re(r.getProperties().get(e[0]),e[1]))}}}}else if(r.getType()==Xn.EXPRESSION)if(Z.isNullOrBlank(r.getExpression()))E(oe.getDefaultValue(t.getSchema(),n))&&e.addMessage(Qn.ERROR,K.format(Zn.PARAMETER_NEEDS_A_VALUE,t.getParameterName()));else try{this.addDependencies(e,r.getExpression())}catch(t){e.addMessage(Qn.ERROR,K.format("Error evaluating $ : $",r.getExpression(),t))}}else E(oe.getDefaultValue(t.getSchema(),n))&&e.addMessage(Qn.ERROR,K.format(Zn.PARAMETER_NEEDS_A_VALUE,t.getParameterName()))}addDependencies(e,t){t&&Array.from(t.match(Zn.STEP_REGEX_PATTERN)??[]).forEach((t=>e.addDependency(t)))}makeEdges(e){let t=e.getNodeMap().values(),r=[],n=new Map;for(let s of Array.from(t))for(let t of s.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)?s.addInEdgeTo(e.getNodeMap().get(i),E):(r.push(new re(i,E)),n.set(s.getData().getStatement().getStatementName(),K.format("Unable to find the step with name $",i)))}return new re(r,n)}}var es={};t(es,"KIRunConstants",(()=>ts));class ts{static NAMESPACE="namespace";static NAME="name";static ID="id";constructor(){}}var rs={};t(rs,"Position",(()=>ns));class ns{static SCHEMA_NAME="Position";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(ns.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["left",S.ofFloat("left")],["top",S.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)}}var ss={};t(ss,"FunctionDefinition",(()=>Rs));var as={};t(as,"Statement",(()=>As));var is={};t(is,"AbstractStatement",(()=>os));class os{override=!1;constructor(e){e&&(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}}var Es={};t(Es,"ParameterReference",(()=>us));class us{static SCHEMA_NAME="ParameterReference";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(us.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["key",S.ofString("key")],["value",S.ofAny("value")],["expression",S.ofString("expression")],["type",S.ofString("type").setEnums(["EXPRESSION","VALUE"])],["order",S.ofInteger("order")]]));constructor(e){if(e instanceof us){let t=e;this.key=t.key,this.type=t.type,this.value=E(t.value)?void 0:JSON.parse(JSON.stringify(t.value)),this.expression=t.expression,this.order=t.order}else this.type=e,this.key=qn()}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){const t=new us(Xn.EXPRESSION).setExpression(e);return[t.getKey(),t]}static ofValue(e){const t=new us(Xn.VALUE).setValue(e);return[t.getKey(),t]}static from(e){return new us(e.type).setValue(e.value).setExpression(e.expression).setKey(e.key).setOrder(e.order)}}class As extends os{static SCHEMA_NAME="Statement";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(As.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["statementName",S.ofString("statementName")],["comment",S.ofString("comment")],["description",S.ofString("description")],["namespace",S.ofString("namespace")],["name",S.ofString("name")],["dependentStatements",S.ofObject("dependentstatement").setAdditionalProperties((new _).setSchemaValue(S.ofBoolean("exists")))],["parameterMap",(new S).setName("parameterMap").setAdditionalProperties((new _).setSchemaValue(S.ofObject("parameterReference").setAdditionalProperties((new _).setSchemaValue(us.SCHEMA))))],["position",ns.SCHEMA]]));constructor(e,t,r){if(super(e instanceof As?e:void 0),e instanceof As){let t=e;this.statementName=t.statementName,this.name=t.name,this.namespace=t.namespace,t.parameterMap&&(this.parameterMap=new Map(Array.from(t.parameterMap.entries()).map((e=>[e[0],new Map(Array.from(e[1].entries()).map((e=>[e[0],new us(e[1])])))])))),t.dependentStatements&&(this.dependentStatements=new Map(Array.from(t.dependentStatements.entries())))}else{if(this.statementName=e,!r||!t)throw new 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}equals(e){if(!(e instanceof As))return!1;return e.statementName==this.statementName}static ofEntry(e){return[e.statementName,e]}static from(e){return new As(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])=>us.from(t))).map((e=>[e.getKey(),e])))])))).setDependentStatements(new Map(Object.entries(e.dependentStatements??{}))).setPosition(ns.from(e.position)).setComment(e.comment).setDescription(e.description)}}var ls={};t(ls,"StatementGroup",(()=>ms));class ms extends os{static SCHEMA_NAME="StatementGroup";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(ms.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["statementGroupName",S.ofString("statementGroupName")],["comment",S.ofString("comment")],["description",S.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 ms(e.statementGroupName,new Map(Object.entries(e.statements||{}).map((([e,t])=>[e,"true"==(""+t)?.toLowerCase()])))).setPosition(ns.from(e.position)).setComment(e.comment).setDescription(e.description)}}const gs=(new S).setNamespace(a.SYSTEM).setName("FunctionDefinition").setProperties(new Map([["name",S.ofString("name")],["namespace",S.ofString("namespace")],["parameters",S.ofArray("parameters",y.SCHEMA)],["events",S.ofObject("events").setAdditionalProperties((new _).setSchemaValue(Y.SCHEMA))],["steps",S.ofObject("steps").setAdditionalProperties((new _).setSchemaValue(As.SCHEMA))]]));gs.getProperties()?.set("parts",S.ofArray("parts",gs));class Rs extends j{static SCHEMA=gs;version=1;constructor(e){super(e)}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 Rs(e.name).setSteps(new Map(Object.values(e.steps??{}).filter((e=>!!e)).map((e=>[e.statementName,As.from(e)])))).setStepGroups(new Map(Object.values(e.stepGroups??{}).filter((e=>!!e)).map((e=>[e.statementGroupName,ms.from(e)])))).setParts(Array.from(e.parts??[]).filter((e=>!!e)).map((e=>Rs.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,y.from(e)])))):new Rs("unknown")}}var Ts={};t(Ts,"Argument",(()=>ps));class ps{argumentIndex=0;constructor(e,t,r){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 ps(0,e,t)}}var hs={};e(hs,Or),e(hs,Pr),e(hs,xr),e(hs,Lr),e(hs,wr);var cs={};e(cs,Vt),e(cs,Gt),e(cs,Dt),e(cs,Yt),e(cs,Ht),e(cs,$t),e(cs,Wt),e(cs,vt),e(cs,qt),e(cs,zt),e(cs,Kt),e(cs,er),e(cs,rr),e(cs,sr),e(cs,ir),e(cs,Er),e(cs,Ar),e(cs,mr),e(cs,Rr),e(cs,cr),e(cs,pr),e(cs,fr),e(cs,Sr),e(cs,xt),e(module.exports,r),e(module.exports,U),e(module.exports,{}),e(module.exports,Le),e(module.exports,C),e(module.exports,o),e(module.exports,gt),e(module.exports,ct),e(module.exports,Q),e(module.exports,z),e(module.exports,te),e(module.exports,be),e(module.exports,Rt),e(module.exports,dn),e(module.exports,Pn),e(module.exports,Et),e(module.exports,vn),e(module.exports,Un),e(module.exports,Cn),e(module.exports,bn),e(module.exports,{}),e(module.exports,Dn),e(module.exports,Bn),e(module.exports,zn),e(module.exports,jn),e(module.exports,mt),e(module.exports,Cr),e(module.exports,Vr),e(module.exports,yt),e(module.exports,It),e(module.exports,St),e(module.exports,ft),e(module.exports,Ot),e(module.exports,{}),e(module.exports,q),e(module.exports,s),e(module.exports,Hn),e(module.exports,n),e(module.exports,he),e(module.exports,ge),e(module.exports,Te),e(module.exports,le),e(module.exports,Ee),e(module.exports,_e),e(module.exports,Ne),e(module.exports,J),e(module.exports,ae),e(module.exports,O),e(module.exports,Ae),e(module.exports,i),e(module.exports,c),e(module.exports,g),e(module.exports,R),e(module.exports,T),e(module.exports,A),e(module.exports,ee),e(module.exports,Se),e(module.exports,Sn),e(module.exports,es),e(module.exports,M),e(module.exports,H),e(module.exports,rs),e(module.exports,ss),e(module.exports,$n),e(module.exports,D),e(module.exports,is),e(module.exports,as),e(module.exports,{}),e(module.exports,ls),e(module.exports,W),e(module.exports,F),e(module.exports,I),e(module.exports,Ts),e(module.exports,Es),e(module.exports,Ue),e(module.exports,k),e(module.exports,hs),e(module.exports,cs),e(module.exports,Fr);
1
+ function e(e,t){return Object.keys(t).forEach((function(r){"default"===r||"__esModule"===r||e.hasOwnProperty(r)||Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[r]}})})),e}function t(e,t,r,n){Object.defineProperty(e,t,{get:r,set:n,enumerable:!0,configurable:!0})}var r={};t(r,"KIRunSchemaRepository",(()=>L));var n={};t(n,"AdditionalType",(()=>_)),t(n,"Schema",(()=>S));var s={};t(s,"Namespaces",(()=>a));class a{static SYSTEM="System";static SYSTEM_CTX="System.Context";static SYSTEM_LOOP="System.Loop";static SYSTEM_ARRAY="System.Array";static MATH="System.Math";static STRING="System.String";constructor(){}}var i={};t(i,"ArraySchemaType",(()=>u));var o={};function E(e){return null==e}t(o,"isNullValue",(()=>E));class u{constructor(e){e&&(this.singleSchema=e.singleSchema?new S(e.singleSchema):void 0,this.tupleSchema=e.tupleSchema?e.tupleSchema.map((e=>new S(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!E(this.singleSchema)}static of(...e){return 1==e.length?(new u).setSingleSchema(e[0]):(new u).setTupleSchema(e)}static from(e){if(!e)return;if(Array.isArray(e))return(new u).setTupleSchema(S.fromListOfSchemas(e));let t=Object.keys(e);if(-1!=t.indexOf("singleSchema"))return(new u).setSingleSchema(S.from(e.singleSchema));if(-1!=t.indexOf("tupleSchema"))return(new u).setTupleSchema(S.fromListOfSchemas(e.tupleSchema));let r=S.from(e);return r?(new u).setSingleSchema(r):void 0}}var A={};let l;var m;t(A,"SchemaType",(()=>l)),(m=l||(l={})).INTEGER="Integer",m.LONG="Long",m.FLOAT="Float",m.DOUBLE="Double",m.STRING="String",m.OBJECT="Object",m.ARRAY="Array",m.BOOLEAN="Boolean",m.NULL="Null";var g={};t(g,"TypeUtil",(()=>f));var R={};t(R,"MultipleType",(()=>h));var T={};t(T,"Type",(()=>p));class p{}class h extends p{constructor(e){super(),this.type=e instanceof h?new Set(Array.from(e.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)}}var c={};t(c,"SingleType",(()=>N));class N extends p{constructor(e){super(),this.type=e instanceof N?e.type:e}getType(){return this.type}getAllowedSchemaTypes(){return new Set([this.type])}contains(e){return this.type==e}}class f{static of(...e){return 1==e.length?new N(e[0]):new h(new Set(e))}static from(e){return"string"==typeof e?new N(l[e]):Array.isArray(e)?new h(new Set(e.map((e=>e)).map((e=>l[e])))):void 0}}class _{constructor(e){e&&(this.booleanValue=e.booleanValue,e.schemaValue&&(this.schemaValue=new S(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(E(e))return;const t=new _;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=S.from(e.schemaValue):t.schemaValue=S.from(e)}return t}}class S{static NULL=(new S).setNamespace(a.SYSTEM).setName("Null").setType(f.of(l.NULL)).setConstant(void 0);static TYPE_SCHEMA=(new S).setType(f.of(l.STRING)).setEnums(["INTEGER","LONG","FLOAT","DOUBLE","STRING","OBJECT","ARRAY","BOOLEAN","NULL"]);static SCHEMA=(new S).setNamespace(a.SYSTEM).setName("Schema").setType(f.of(l.OBJECT)).setProperties(new Map([["namespace",S.of("namespace",l.STRING).setDefaultValue("_")],["name",S.ofString("name")],["version",S.of("version",l.INTEGER).setDefaultValue(1)],["ref",S.ofString("ref")],["type",(new S).setAnyOf([S.TYPE_SCHEMA,S.ofArray("type",S.TYPE_SCHEMA)])],["anyOf",S.ofArray("anyOf",S.ofRef("System.Schema"))],["allOf",S.ofArray("allOf",S.ofRef("System.Schema"))],["oneOf",S.ofArray("oneOf",S.ofRef("System.Schema"))],["not",S.ofRef("System.Schema")],["title",S.ofString("title")],["description",S.ofString("description")],["id",S.ofString("id")],["examples",S.ofAny("examples")],["defaultValue",S.ofAny("defaultValue")],["comment",S.ofString("comment")],["enums",S.ofArray("enums",S.ofString("enums"))],["constant",S.ofAny("constant")],["pattern",S.ofString("pattern")],["format",S.of("format",l.STRING).setEnums(["DATETIME","TIME","DATE","EMAIL","REGEX"])],["minLength",S.ofInteger("minLength")],["maxLength",S.ofInteger("maxLength")],["multipleOf",S.ofLong("multipleOf")],["minimum",S.ofNumber("minimum")],["maximum",S.ofNumber("maximum")],["exclusiveMinimum",S.ofNumber("exclusiveMinimum")],["exclusiveMaximum",S.ofNumber("exclusiveMaximum")],["properties",S.of("properties",l.OBJECT).setAdditionalProperties((new _).setSchemaValue(S.ofRef("System.Schema")))],["additionalProperties",(new S).setName("additionalProperty").setNamespace(a.SYSTEM).setAnyOf([S.ofBoolean("additionalProperty"),S.ofObject("additionalProperty").setRef("System.Schema")]).setDefaultValue(!0)],["required",S.ofArray("required",S.ofString("required")).setDefaultValue([])],["propertyNames",S.ofRef("System.Schema")],["minProperties",S.ofInteger("minProperties")],["maxProperties",S.ofInteger("maxProperties")],["patternProperties",S.of("patternProperties",l.OBJECT).setAdditionalProperties((new _).setSchemaValue(S.ofRef("System.Schema")))],["items",(new S).setName("items").setAnyOf([S.ofRef("System.Schema").setName("item"),S.ofArray("tuple",S.ofRef("System.Schema"))])],["contains",S.ofRef("System.Schema")],["minContains",S.ofInteger("minContains")],["maxContains",S.ofInteger("maxContains")],["minItems",S.ofInteger("minItems")],["maxItems",S.ofInteger("maxItems")],["uniqueItems",S.ofBoolean("uniqueItems")],["additionalItems",(new S).setName("additionalItems").setNamespace(a.SYSTEM).setAnyOf([S.ofBoolean("additionalItems"),S.ofObject("additionalItems").setRef("System.Schema")])],["$defs",S.of("$defs",l.OBJECT).setAdditionalProperties((new _).setSchemaValue(S.ofRef("System.Schema")))],["permission",S.ofString("permission")]])).setRequired([]);static ofString(e){return(new S).setType(f.of(l.STRING)).setName(e)}static ofInteger(e){return(new S).setType(f.of(l.INTEGER)).setName(e)}static ofFloat(e){return(new S).setType(f.of(l.FLOAT)).setName(e)}static ofLong(e){return(new S).setType(f.of(l.LONG)).setName(e)}static ofDouble(e){return(new S).setType(f.of(l.DOUBLE)).setName(e)}static ofAny(e){return(new S).setType(f.of(l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE,l.STRING,l.BOOLEAN,l.ARRAY,l.NULL,l.OBJECT)).setName(e)}static ofAnyNotNull(e){return(new S).setType(f.of(l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE,l.STRING,l.BOOLEAN,l.ARRAY,l.OBJECT)).setName(e)}static ofNumber(e){return(new S).setType(f.of(l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE)).setName(e)}static ofBoolean(e){return(new S).setType(f.of(l.BOOLEAN)).setName(e)}static of(e,...t){return(new S).setType(f.of(...t)).setName(e)}static ofObject(e){return(new S).setType(f.of(l.OBJECT)).setName(e)}static ofRef(e){return(new S).setRef(e)}static ofArray(e,...t){return(new S).setType(f.of(l.ARRAY)).setName(e).setItems(u.of(...t))}static fromListOfSchemas(e){if(E(e)&&!Array.isArray(e))return;let t=[];for(let r of Array.from(e)){let e=S.from(r);e&&t.push(e)}return t}static fromMapOfSchemas(e){if(E(e))return;const t=new Map;return Object.entries(e).forEach((([e,r])=>{let n=S.from(r);n&&t.set(e,n)})),t}static from(e,t=!1){if(E(e))return;let r=new S;return r.namespace=e.namespace??"_",r.name=e.name,r.version=e.version??1,r.ref=e.ref,r.type=t?new N(l.STRING):f.from(e.type),r.anyOf=S.fromListOfSchemas(e.anyOf),r.allOf=S.fromListOfSchemas(e.allOf),r.oneOf=S.fromListOfSchemas(e.oneOf),r.not=S.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=S.fromMapOfSchemas(e.properties),r.additionalProperties=_.from(e.additionalProperties),r.required=e.required,r.propertyNames=S.from(e.propertyNames,!0),r.minProperties=e.minProperties,r.maxProperties=e.maxProperties,r.patternProperties=S.fromMapOfSchemas(e.patternProperties),r.items=u.from(e.items),r.additionalItems=_.from(e.additionalItems),r.contains=S.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=S.fromMapOfSchemas(e.$defs),r.permission=e.permission,r}namespace="_";version=1;constructor(e){e&&(this.namespace=e.namespace,this.name=e.name,this.version=e.version,this.ref=e.ref,this.type=e.type instanceof N?new N(e.type):new h(e.type),this.anyOf=e.anyOf?.map((e=>new S(e))),this.allOf=e.allOf?.map((e=>new S(e))),this.oneOf=e.oneOf?.map((e=>new S(e))),this.not=this.not?new S(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 S(e[1])]))):void 0,this.additionalProperties=e.additionalProperties?new _(e.additionalProperties):void 0,this.required=e.required?[...e.required]:void 0,this.propertyNames=e.propertyNames?new S(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 S(e[1])]))):void 0,this.items=e.items?new u(e.items):void 0,this.contains=e.contains?new S(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 _(e.additionalItems):void 0,this.$defs=e.$defs?new Map(Array.from(e.$defs.entries()).map((e=>[e[0],new S(e[1])]))):void 0,this.permission=e.permission)}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 N(l.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}}var M={};t(M,"Parameter",(()=>y));var O={};t(O,"SchemaReferenceException",(()=>w));class w 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}}var I={};let d;var P;t(I,"ParameterType",(()=>d)),(P=d||(d={})).CONSTANT="CONSTANT",P.EXPRESSION="EXPRESSION";class y{static SCHEMA_NAME="Parameter";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(y.SCHEMA_NAME).setProperties(new Map([["schema",S.SCHEMA],["parameterName",S.ofString("parameterName")],["variableArgument",S.of("variableArgument",l.BOOLEAN).setDefaultValue(!1)],["type",S.ofString("type").setEnums(["EXPRESSION","CONSTANT"])]]));static EXPRESSION=(new S).setNamespace(a.SYSTEM).setName("ParameterExpression").setType(f.of(l.OBJECT)).setProperties(new Map([["isExpression",S.ofBoolean("isExpression").setDefaultValue(!0)],["value",S.ofAny("value")]]));variableArgument=!1;type=d.EXPRESSION;constructor(e,t){if(e instanceof y)this.schema=new S(e.schema),this.parameterName=e.parameterName,this.variableArgument=e.variableArgument,this.type=e.type;else{if(!t)throw new 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,n=d.EXPRESSION){return[e,new y(e,t).setType(n).setVariableArgument(r)]}static of(e,t,r=!1,n=d.EXPRESSION){return new y(e,t).setType(n).setVariableArgument(r)}static from(e){const t=S.from(e.schema);if(!t)throw new w("","Parameter requires Schema");return new y(e.parameterName,t).setVariableArgument(!!e.variableArguments).setType(e.type??d.EXPRESSION)}}const x=new Map([["any",S.ofAny("any").setNamespace(a.SYSTEM)],["boolean",S.ofBoolean("boolean").setNamespace(a.SYSTEM)],["double",S.ofDouble("double").setNamespace(a.SYSTEM)],["float",S.ofFloat("float").setNamespace(a.SYSTEM)],["integer",S.ofInteger("integer").setNamespace(a.SYSTEM)],["long",S.ofLong("long").setNamespace(a.SYSTEM)],["number",S.ofNumber("number").setNamespace(a.SYSTEM)],["string",S.ofString("string").setNamespace(a.SYSTEM)],[y.EXPRESSION.getName(),y.EXPRESSION],[S.NULL.getName(),S.NULL],[S.SCHEMA.getName(),S.SCHEMA]]),v=Array.from(x.values()).map((e=>e.getFullName()));class L{find(e,t){if(a.SYSTEM==e)return x.get(t)}filter(e){return v.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}var U={};function V(e){return[e.getSignature().getName(),e]}t(U,"KIRunFunctionRepository",(()=>In));var C={};t(C,"MapUtil",(()=>G)),t(C,"MapEntry",(()=>b));class G{static of(e,t,r,n,s,a,i,o,u,A,l,m,g,R,T,p,h,c,N,f){const _=new Map;return E(e)||E(t)||_.set(e,t),E(r)||E(n)||_.set(r,n),E(s)||E(a)||_.set(s,a),E(i)||E(o)||_.set(i,o),E(u)||E(A)||_.set(u,A),E(l)||E(m)||_.set(l,m),E(g)||E(R)||_.set(g,R),E(T)||E(p)||_.set(T,p),E(h)||E(c)||_.set(h,c),E(N)||E(f)||_.set(N,f),_}static ofArrayEntries(...e){const t=new Map;for(const[r,n]of e)t.set(r,n);return t}static entry(e,t){return new b(e,t)}static ofEntries(...e){const t=new Map;for(const r of e)t.set(r.k,r.v);return t}static ofEntriesArray(...e){const t=new Map;for(let r=0;r<e.length;r++)t.set(e[r][0],e[r][1]);return t}constructor(){}}class b{constructor(e,t){this.k=e,this.v=t}}var D={};t(D,"EventResult",(()=>B));var F={};t(F,"Event",(()=>Y));class Y{static OUTPUT="output";static ERROR="error";static ITERATION="iteration";static TRUE="true";static FALSE="false";static SCHEMA_NAME="Event";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(Y.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["name",S.ofString("name")],["parameters",S.ofObject("parameter").setAdditionalProperties((new _).setSchemaValue(S.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 S(e[1])])));else{if(this.name=e,!t)throw new 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=>{const t=S.from(e[1]);if(!t)throw new w("","Event expects a schema");return[e[0],t]}))))}}class B{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 B.of(Y.OUTPUT,e)}static of(e,t){return new B(e,t)}}var H={};t(H,"FunctionOutput",(()=>X));var k={};t(k,"KIRuntimeException",(()=>$));class $ extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class X{index=0;constructor(e){if(E(e))throw new $("Function output is generating null");Array.isArray(e)&&e.length&&e[0]instanceof B?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;const e=this.generator.next();return e&&this.fo.push(e),e}allResults(){return this.fo}}var W={};t(W,"FunctionSignature",(()=>j));class j{static SCHEMA_NAME="FunctionSignature";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(j.SCHEMA_NAME).setProperties(new Map([["name",S.ofString("name")],["namespace",S.ofString("namespace")],["parameters",S.ofObject("parameters").setAdditionalProperties((new _).setSchemaValue(y.SCHEMA))],["events",S.ofObject("events").setAdditionalProperties((new _).setSchemaValue(Y.SCHEMA))]]));namespace="_";parameters=new Map;events=new Map;constructor(e){e instanceof j?(this.name=e.name,this.namespace=e.namespace,this.parameters=new Map(Array.from(e.parameters.entries()).map((e=>[e[0],new y(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}}var q={};t(q,"AbstractFunction",(()=>Pe));var J={};t(J,"SchemaValidator",(()=>de));var z={};t(z,"StringUtil",(()=>Z));var Q={};t(Q,"StringFormatter",(()=>K));class K{static format(e,...t){if(!t||0==t.length)return e;let r="",n=0,s="",a=s,i=e.length;for(let o=0;o<i;o++)s=e.charAt(o),"$"==s&&"\\"==a?r=r.substring(0,o-1)+s:"$"==s&&n<t.length?r+=t[n++]:r+=s,a=s;return r.toString()}constructor(){}}class Z{constructor(){}static nthIndex(e,t,r=0,n){if(!e)throw new $("String cannot be null");if(r<0||r>=e.length)throw new $(K.format("Cannot search from index : $",r));if(n<=0||n>e.length)throw new $(K.format("Cannot search for occurance : $",n));for(;r<e.length;){if(e.charAt(r)==t&&0==--n)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 isNullOrBlank(e){return!e||""==e.trim()}}var ee={};t(ee,"SchemaUtil",(()=>oe));var te={};t(te,"Tuple2",(()=>re)),t(te,"Tuple3",(()=>ne)),t(te,"Tuple4",(()=>se));class re{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 ne extends re{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 se extends ne{constructor(e,t,r,n){super(e,t,r),this.fr=n}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}}var ae={};t(ae,"SchemaValidationException",(()=>ie));class ie extends Error{constructor(e,t,r=[],n){super(t+(r?r.map((e=>e.message)).reduce(((e,t)=>e+"\n"+t),""):"")),this.schemaPath=e,this.cause=n}getSchemaPath(){return this.schemaPath}getCause(){return this.cause}}class oe{static UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH="Unable to retrive schema from referenced path";static CYCLIC_REFERENCE_LIMIT_COUNTER=20;static getDefaultValue(e,t){if(e)return e.getConstant()?e.getConstant():E(e.getDefaultValue())?oe.getDefaultValue(oe.getSchemaFromRef(e,t,e.getRef()),t):e.getDefaultValue()}static hasDefaultValueOrNullSchemaType(e,t){return!!e&&(!!e.getConstant()||(!!e.getDefaultValue()||(E(e.getRef())?!!e.getType()?.getAllowedSchemaTypes().has(l.NULL):this.hasDefaultValueOrNullSchemaType(oe.getSchemaFromRef(e,t,e.getRef()),t))))}static getSchemaFromRef(e,t,r,n=0){if(++n==oe.CYCLIC_REFERENCE_LIMIT_COUNTER)throw new ie(r??"","Schema has a cyclic reference");if(!e||!r||Z.isNullOrBlank(r))return;if(!r.startsWith("#")){var s=oe.resolveExternalSchema(e,t,r);s&&(e=s.getT1(),r=s.getT2())}let a=r.split("/");return 1===a.length?e:oe.resolveInternalSchema(e,t,r,n,a,1)}static resolveInternalSchema(e,t,r,n,s,a){let i=e;if(a!==s.length){for(;a<s.length;){if("$defs"===s[a]){if(++a>=s.length||!i.get$defs())throw new w(r,oe.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);i=i.get$defs()?.get(s[a])}else{if(i&&(!i.getType()?.contains(l.OBJECT)||!i.getProperties()))throw new w(r,"Cannot retrievie schema from non Object type schemas");i=i.getProperties()?.get(s[a])}if(a++,!i)throw new w(r,oe.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);if(!Z.isNullOrBlank(i.getRef())&&(i=oe.getSchemaFromRef(i,t,i.getRef(),n),!i))throw new w(r,oe.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH)}return i}}static resolveExternalSchema(e,t,r){if(!t)return;let n=Z.splitAtFirstOccurance(r??"","/");if(!n[0])return;let s=Z.splitAtFirstOccurance(n[0],".");if(!s[0]||!s[1])return;let a=t.find(s[0],s[1]);if(a){if(!n[1]||""===n[1])return new re(a,r);if(r="#/"+n[1],!a)throw new w(r,oe.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);return new re(a,r)}}constructor(){}}var Ee={};t(Ee,"AnyOfAllOfOneOfValidator",(()=>ue));class ue{static validate(e,t,r,n){let s=[];return t.getOneOf()&&!t.getOneOf()?ue.oneOf(e,t,r,n,s):t.getAllOf()&&!t.getAllOf()?ue.allOf(e,t,r,n,s):t.getAnyOf()&&!t.getAnyOf()&&ue.anyOf(e,t,r,n,s),n}static anyOf(e,t,r,n,s){let a=!1;for(let i of t.getAnyOf()??[])try{ue.validate(e,i,r,n),a=!0;break}catch(e){a=!1,s.push(e)}if(!a)throw new ie(de.path(e),"The value don't satisfy any of the schemas.",s)}static allOf(e,t,r,n,s){let a=0;for(let i of t.getAllOf()??[])try{ue.validate(e,i,r,n),a++}catch(e){s.push(e)}if(a!==t.getAllOf()?.length)throw new ie(de.path(e),"The value doesn't satisfy some of the schemas.",s)}static oneOf(e,t,r,n,s){let a=0;for(let i of t.getOneOf()??[])try{ue.validate(e,i,r,n),a++}catch(e){s.push(e)}if(1!=a)throw new ie(de.path(e),0==a?"The value does not satisfy any schema":"The value satisfy more than one schema",s)}constructor(){}}var Ae={};t(Ae,"TypeValidator",(()=>Ie));var le={};t(le,"ArrayValidator",(()=>me));class me{static validate(e,t,r,n){if(E(n))throw new ie(de.path(e),"Expected an array but found null");if(!Array.isArray(n))throw new ie(de.path(e),n.toString()+" is not an Array");let s=n;return me.checkMinMaxItems(e,t,s),me.checkItems(e,t,r,s),me.checkUniqueItems(e,t,s),me.checkContains(t,e,r,s),n}static checkContains(e,t,r,n){if(E(e.getContains()))return;let s=me.countContains(t,e,r,n,E(e.getMinContains())&&E(e.getMaxContains()));if(0===s)throw new ie(de.path(t),"None of the items are of type contains schema");if(!E(e.getMinContains())&&e.getMinContains()>s)throw new ie(de.path(t),"The minimum number of the items of type contains schema should be "+e.getMinContains()+" but found "+s);if(!E(e.getMaxContains())&&e.getMaxContains()<s)throw new ie(de.path(t),"The maximum number of the items of type contains schema should be "+e.getMaxContains()+" but found "+s)}static countContains(e,t,r,n,s){let a=0;for(let i=0;i<n.length;i++){let o=e?[...e]:[];try{if(de.validate(o,t.getContains(),r,n[i]),a++,s)break}catch(e){}}return a}static checkUniqueItems(e,t,r){if(t.getUniqueItems()&&t.getUniqueItems()){if(new Set(r).size!==r.length)throw new ie(de.path(e),"Items on the array are not unique")}}static checkMinMaxItems(e,t,r){if(t.getMinItems()&&t.getMinItems()>r.length)throw new ie(de.path(e),"Array should have minimum of "+t.getMinItems()+" elements");if(t.getMaxItems()&&t.getMaxItems()<r.length)throw new ie(de.path(e),"Array can have maximum of "+t.getMaxItems()+" elements")}static checkItems(e,t,r,n){if(!t.getItems())return;let s=t.getItems();if(s.getSingleSchema())for(let t=0;t<n.length;t++){let a=e?[...e]:[],i=de.validate(a,s.getSingleSchema(),r,n[t]);n[t]=i}if(s.getTupleSchema()){if(s.getTupleSchema().length!==n.length&&E(t?.getAdditionalItems()))throw new ie(de.path(e),"Expected an array with only "+s.getTupleSchema().length+" but found "+n.length);this.checkItemsInTupleSchema(e,r,n,s),this.checkAdditionalItems(e,t,r,n,s)}}static checkItemsInTupleSchema(e,t,r,n){for(let s=0;s<n.getTupleSchema()?.length;s++){let a=e?[...e]:[],i=de.validate(a,n.getTupleSchema()[s],t,r[s]);r[s]=i}}static checkAdditionalItems(e,t,r,n,s){if(!E(t.getAdditionalItems())){let a=t.getAdditionalItems();if(a?.getBooleanValue()){let i=S.ofAny("item");if(!1===a?.getBooleanValue()&&n.length>s.getTupleSchema()?.length)throw new ie(de.path(e),"No Additional Items are defined");this.checkEachItemInAdditionalItems(e,t,r,n,s,i)}else if(a?.getSchemaValue()){let i=a.getSchemaValue();this.checkEachItemInAdditionalItems(e,t,r,n,s,i)}}}static checkEachItemInAdditionalItems(e,t,r,n,s,a){for(let t=s.getTupleSchema()?.length;t<n.length;t++){let s=e?[...e]:[],i=de.validate(s,a,r,n[t]);n[t]=i}}constructor(){}}var ge={};t(ge,"BooleanValidator",(()=>Re));class Re{static validate(e,t,r){if(E(r))throw new ie(de.path(e),"Expected a boolean but found null");if("boolean"!=typeof r)throw new ie(de.path(e),r.toString()+" is not a boolean");return r}constructor(){}}var Te={};t(Te,"NullValidator",(()=>pe));class pe{static validate(e,t,r){if(r)throw new ie(de.path(e),"Expected a null but found "+r);return r}constructor(){}}var he={};t(he,"NumberValidator",(()=>ce));class ce{static validate(e,t,r,n){if(E(n))throw new ie(de.path(t),"Expected a number but found null");if("number"!=typeof n)throw new ie(de.path(t),n.toString()+" is not a "+e);let s=ce.extractNumber(e,t,r,n);return ce.checkRange(t,r,n,s),ce.checkMultipleOf(t,r,n,s),n}static extractNumber(e,t,r,n){let s=n;try{e!=l.LONG&&e!=l.INTEGER||(s=Math.round(s))}catch(r){throw new ie(de.path(t),n+" is not a number of type "+e,r)}if(E(s)||(e==l.LONG||e==l.INTEGER)&&s!=n)throw new ie(de.path(t),n.toString()+" is not a number of type "+e);return s}static checkMultipleOf(e,t,r,n){if(t.getMultipleOf()){if(n%t.getMultipleOf()!=0)throw new ie(de.path(e),r.toString()+" is not multiple of "+t.getMultipleOf())}}static checkRange(e,t,r,n){if(t.getMinimum()&&ce.numberCompare(n,t.getMinimum())<0)throw new ie(de.path(e),r.toString()+" should be greater than or equal to "+t.getMinimum());if(t.getMaximum()&&ce.numberCompare(n,t.getMaximum())>0)throw new ie(de.path(e),r.toString()+" should be less than or equal to "+t.getMaximum());if(t.getExclusiveMinimum()&&ce.numberCompare(n,t.getExclusiveMinimum())<=0)throw new ie(de.path(e),r.toString()+" should be greater than "+t.getExclusiveMinimum());if(t.getExclusiveMaximum()&&ce.numberCompare(n,t.getExclusiveMaximum())>0)throw new ie(de.path(e),r.toString()+" should be less than "+t.getExclusiveMaximum())}static numberCompare(e,t){return e-t}constructor(){}}var Ne={};t(Ne,"ObjectValidator",(()=>fe));class fe{static validate(e,t,r,n){if(E(n))throw new ie(de.path(e),"Expected an object but found null");if("object"!=typeof n||Array.isArray(n))throw new ie(de.path(e),n.toString()+" is not an Object");let s=n,a=new Set(Object.keys(s));fe.checkMinMaxProperties(e,t,a),t.getPropertyNames()&&fe.checkPropertyNameSchema(e,t,r,a),t.getRequired()&&fe.checkRequired(e,t,s),t.getProperties()&&fe.checkProperties(e,t,r,s,a),t.getPatternProperties()&&fe.checkPatternProperties(e,t,r,s,a),t.getAdditionalProperties()&&fe.checkAddtionalProperties(e,t,r,s,a)}static checkPropertyNameSchema(e,t,r,n){for(let s of Array.from(n.values()))try{de.validate(e,t.getPropertyNames(),r,s)}catch(t){throw new ie(de.path(e),"Property name '"+s+"' does not fit the property schema")}}static checkRequired(e,t,r){for(const n of t.getRequired()??[])if(E(r[n]))throw new ie(de.path(e),n+" is mandatory")}static checkAddtionalProperties(e,t,r,n,s){let a=t.getAdditionalProperties();if(a.getSchemaValue())for(let t of Array.from(s.values())){let s=e?[...e]:[],i=de.validate(s,a.getSchemaValue(),r,n[t]);n[t]=i}else if(!1===a.getBooleanValue()&&s.size)throw new ie(de.path(e),Array.from(s)+" is/are additional properties which are not allowed.")}static checkPatternProperties(e,t,r,n,s){const a=new Map;for(const e of Array.from(t.getPatternProperties().keys()))a.set(e,new RegExp(e));for(const i of Array.from(s.values())){const o=e?[...e]:[];for(const e of Array.from(a.entries()))if(e[1].test(i)){const a=de.validate(o,t.getPatternProperties().get(e[0]),r,n[i]);n[i]=a,s.delete(i);break}}}static checkProperties(e,t,r,n,s){for(const a of Array.from(t.getProperties())){let t=n[a[0]];if(!n.hasOwnProperty(a[0])&&E(t)){if(E(oe.getDefaultValue(a[1],r)))continue}let i=e?[...e]:[],o=de.validate(i,a[1],r,t);n[a[0]]=o,s.delete(a[0])}}static checkMinMaxProperties(e,t,r){if(t.getMinProperties()&&r.size<t.getMinProperties())throw new ie(de.path(e),"Object should have minimum of "+t.getMinProperties()+" properties");if(t.getMaxProperties()&&r.size>t.getMaxProperties())throw new ie(de.path(e),"Object can have maximum of "+t.getMaxProperties()+" properties")}constructor(){}}var _e={};t(_e,"StringValidator",(()=>we));var Se={};let Me;var Oe;t(Se,"StringFormat",(()=>Me)),(Oe=Me||(Me={})).DATETIME="DATETIME",Oe.TIME="TIME",Oe.DATE="DATE",Oe.EMAIL="EMAIL",Oe.REGEX="REGEX";class we{static TIME=/^([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?([+-][01][0-9]:[0-5][0-9])?$/;static DATE=/^[0-9]{4,4}-([0][0-9]|[1][0-2])-(0[1-9]|[1-2][1-9]|3[01])$/;static 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 EMAIL=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;static validate(e,t,r){if(E(r))throw new ie(de.path(e),"Expected a string but found "+r);if("string"!=typeof r)throw new ie(de.path(e),r.toString()+" is not String");t.getFormat()==Me.TIME?we.patternMatcher(e,t,r,we.TIME,"time pattern"):t.getFormat()==Me.DATE?we.patternMatcher(e,t,r,we.DATE,"date pattern"):t.getFormat()==Me.DATETIME?we.patternMatcher(e,t,r,we.DATETIME,"date time pattern"):t.getFormat()==Me.EMAIL?we.patternMatcher(e,t,r,we.EMAIL,"email pattern"):t.getPattern()&&we.patternMatcher(e,t,r,new RegExp(t.getPattern()),"pattern "+t.getPattern());let n=r.length;if(t.getMinLength()&&n<t.getMinLength())throw new ie(de.path(e),"Expected a minimum of "+t.getMinLength()+" characters");if(t.getMaxLength()&&n>t.getMaxLength())throw new ie(de.path(e),"Expected a maximum of "+t.getMaxLength()+" characters");return r}static patternMatcher(e,t,r,n,s){if(!n.test(r))throw new ie(de.path(e),r.toString()+" is not matched with the "+s)}constructor(){}}class Ie{static validate(e,t,r,n,s){if(t==l.STRING)we.validate(e,r,s);else if(t==l.LONG||t==l.INTEGER||t==l.DOUBLE||t==l.FLOAT)ce.validate(t,e,r,s);else if(t==l.BOOLEAN)Re.validate(e,r,s);else if(t==l.OBJECT)fe.validate(e,r,n,s);else if(t==l.ARRAY)me.validate(e,r,n,s);else{if(t!=l.NULL)throw new ie(de.path(e),t+" is not a valid type.");pe.validate(e,r,s)}return s}constructor(){}}class de{static path(e){return e?e.map((e=>e.getTitle()??"")).filter((e=>!!e)).reduce(((e,t,r)=>e+(0===r?"":".")+t),""):""}static validate(e,t,r,n){if(!t)throw new ie(de.path(e),"No schema found to validate");if(e||(e=new Array),e.push(t),E(n)&&!E(t.getDefaultValue()))return JSON.parse(JSON.stringify(t.getDefaultValue()));if(t.getConstant())return de.constantValidation(e,t,n);if(t.getEnums()&&!t.getEnums()?.length)return de.enumCheck(e,t,n);if(t.getFormat()&&E(t.getType()))throw new ie(this.path(e),"Type is missing in schema for declared "+t.getFormat()?.toString()+" format.");if(t.getType()&&de.typeValidation(e,t,r,n),!Z.isNullOrBlank(t.getRef()))return de.validate(e,oe.getSchemaFromRef(e[0],r,t.getRef()),r,n);if((t.getOneOf()||t.getAllOf()||t.getAnyOf())&&ue.validate(e,t,r,n),t.getNot()){let s=!1;try{de.validate(e,t.getNot(),r,n),s=!0}catch(e){s=!1}if(s)throw new ie(de.path(e),"Schema validated value in not condition.")}return n}static constantValidation(e,t,r){if(!t.getConstant().equals(r))throw new ie(de.path(e),"Expecting a constant value : "+r);return r}static enumCheck(e,t,r){let n=!1;for(let e of t.getEnums()??[])if(e===r){n=!0;break}if(n)return r;throw new ie(de.path(e),"Value is not one of "+t.getEnums())}static typeValidation(e,t,r,n){let s=!1,a=[];for(const i of Array.from(t.getType()?.getAllowedSchemaTypes()?.values()??[]))try{Ie.validate(e,i,t,r,n),s=!0;break}catch(e){s=!1,a.push(e)}if(!s)throw new ie(de.path(e),"Value "+JSON.stringify(n)+" is not of valid type(s)",a)}constructor(){}}class Pe{validateArguments(e,t,r){return Array.from(this.getSignature().getParameters().entries()).map((n=>{let s=n[1];try{return this.validateArgument(e,t,n,s)}catch(e){const t=this.getSignature();throw new $(`Error while executing the function ${t.getNamespace()}.${t.getName()}'s parameter ${s.getParameterName()} with step name '${r?.getStatement().getStatementName()??"Unknown Step"}' with error : ${e?.message}`)}})).reduce(((e,t)=>(e.set(t.getT1(),t.getT2()),e)),new Map)}validateArgument(e,t,r,n){let s,a=r[0],i=e.get(r[0]);if(E(i)&&!n.isVariableArgument())return new re(a,de.validate(void 0,n.getSchema(),t,void 0));if(!n?.isVariableArgument())return new re(a,de.validate(void 0,n.getSchema(),t,i));Array.isArray(i)?s=i:(s=[],E(i)?E(n.getSchema().getDefaultValue())||s.push(n.getSchema().getDefaultValue()):s.push(i));for(let e=0;e<s.length;e++)s[e]=de.validate(void 0,n.getSchema(),t,s[e]);return new re(a,s)}async execute(e){e.setArguments(this.validateArguments(e.getArguments()??new Map,e.getSchemaRepository(),e.getStatementExecution()));try{return this.internalExecute(e)}catch(t){const r=this.getSignature();throw new $(`Error while executing the function ${r.getNamespace()}.${r.getName()} with step name '${e.getStatementExecution()?.getStatement().getStatementName()??"Unknown Step"}' with error : ${t?.message}`)}}getProbableEventSignature(e){return this.getSignature().getEvents()}}class ye extends Pe{static EVENT_INDEX_NAME="index";static EVENT_RESULT_NAME="result";static EVENT_INDEX=new Y(Y.OUTPUT,G.of(ye.EVENT_INDEX_NAME,S.ofInteger(ye.EVENT_INDEX_NAME)));static EVENT_RESULT_INTEGER=new Y(Y.OUTPUT,G.of(ye.EVENT_RESULT_NAME,S.ofInteger(ye.EVENT_RESULT_NAME)));static EVENT_RESULT_BOOLEAN=new Y(Y.OUTPUT,G.of(ye.EVENT_RESULT_NAME,S.ofBoolean(ye.EVENT_RESULT_NAME)));static EVENT_RESULT_ARRAY=new Y(Y.OUTPUT,G.of(ye.EVENT_RESULT_NAME,S.ofArray(ye.EVENT_RESULT_NAME,S.ofAny(ye.EVENT_RESULT_NAME))));static EVENT_RESULT_EMPTY=new Y(Y.OUTPUT,G.of());static EVENT_RESULT_ANY=new Y(Y.OUTPUT,G.of(this.EVENT_RESULT_NAME,S.ofAny(this.EVENT_RESULT_NAME)));static PARAMETER_INT_LENGTH=y.of("length",S.ofInteger("length").setDefaultValue(-1));static PARAMETER_ARRAY_FIND=y.of("find",S.ofArray("eachFind",S.ofAny("eachFind")));static PARAMETER_INT_SOURCE_FROM=y.of("srcFrom",S.ofInteger("srcFrom").setDefaultValue(0).setMinimum(0));static PARAMETER_INT_SECOND_SOURCE_FROM=y.of("secondSrcFrom",S.ofInteger("secondSrcFrom").setDefaultValue(0));static PARAMETER_INT_FIND_FROM=y.of("findFrom",S.ofInteger("findFrom").setDefaultValue(0));static PARAMETER_INT_OFFSET=y.of("offset",S.ofInteger("offset").setDefaultValue(0));static PARAMETER_ROTATE_LENGTH=y.of("rotateLength",S.ofInteger("rotateLength").setDefaultValue(1).setMinimum(1));static PARAMETER_BOOLEAN_ASCENDING=y.of("ascending",S.ofBoolean("ascending").setDefaultValue(!1));static PARAMETER_FIND_PRIMITIVE=y.of("findPrimitive",S.of("findPrimitive",l.STRING,l.DOUBLE,l.FLOAT,l.INTEGER,l.LONG));static PARAMETER_ARRAY_SOURCE=y.of("source",S.ofArray("eachSource",S.ofAny("eachSource")));static PARAMETER_ARRAY_SECOND_SOURCE=y.of("secondSource",S.ofArray("eachSecondSource",S.ofAny("eachSecondSource")));static PARAMETER_ARRAY_SOURCE_PRIMITIVE=y.of("source",S.ofArray("eachSource",(new S).setName("eachSource").setType(f.of(l.STRING,l.NULL,l.INTEGER,l.FLOAT,l.DOUBLE,l.LONG))));static PARAMETER_BOOLEAN_DEEP_COPY=y.of("deepCopy",S.ofBoolean("deepCopy").setDefaultValue(!0));static PARAMETER_ANY=y.of("element",S.ofAny("element"));static PARAMETER_ANY_NOT_NULL=y.of("elementObject",S.ofAnyNotNull("elementObject"));static PARAMETER_ANY_VAR_ARGS=y.of("element",S.ofAny("element")).setVariableArgument(!0);static PARAMETER_ARRAY_RESULT=y.of(ye.EVENT_RESULT_NAME,S.ofArray("eachResult",S.ofAny("eachResult")));constructor(e,t,r){super();const n=new Map;for(const e of t)n.set(e.getParameterName(),e);this.signature=new j(e).setNamespace(a.SYSTEM_ARRAY).setParameters(n).setEvents(G.of(r.getName(),r))}getSignature(){return this.signature}}class xe extends ye{constructor(){super("Add",[ye.PARAMETER_ARRAY_SOURCE,ye.PARAMETER_ARRAY_SECOND_SOURCE],ye.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(ye.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ye.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName());return t.splice(t.length,0,...r),new X([B.outputOf(new Map([]))])}}class ve extends ye{constructor(){super("AddFirst",[ye.PARAMETER_ARRAY_SOURCE,ye.PARAMETER_ANY_NOT_NULL],ye.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(ye.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ye.PARAMETER_ANY_NOT_NULL.getParameterName());if(0==t.length)return t.push(r),new X([B.outputOf(new Map([]))]);t.push(r);let n=t.length-1;for(;n>0;){let e=t[n-1];t[n-1]=t[n],t[n--]=e}return new X([B.outputOf(new Map([]))])}}var Le={};t(Le,"PrimitiveUtil",(()=>Ce));var Ue={};t(Ue,"ExecutionException",(()=>Ve));class Ve extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class Ce{static findPrimitiveNullAsBoolean(e){if(E(e))return new re(l.BOOLEAN,!1);let t=typeof e;if("object"===t)throw new Ve(K.format("$ is not a primitive type",e));let r=e;return"boolean"===t?new re(l.BOOLEAN,r):"string"===t?new re(l.STRING,r):Ce.findPrimitiveNumberType(r)}static findPrimitive(e){if(E(e))return new re(l.NULL,void 0);let t=typeof e;if("object"===t)throw new Ve(K.format("$ is not a primitive type",e));let r=e;return"boolean"===t?new re(l.BOOLEAN,r):"string"===t?new re(l.STRING,r):Ce.findPrimitiveNumberType(r)}static findPrimitiveNumberType(e){if(E(e)||Array.isArray(e)||"object"==typeof e)throw new Ve(K.format("Unable to convert $ to a number.",e));let t=e;try{let e=t;return Number.isInteger(e)?new re(l.LONG,e):new re(l.DOUBLE,e)}catch(e){throw new Ve(K.format("Unable to convert $ to a number.",t),e)}}static compare(e,t){if(e==t)return 0;if(E(e)||E(t))return E(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 n=this.compare(e[r],t[r]);if(0!=n)return n}return 0}return Array.isArray(e)?-1:1}const r=typeof e,n=typeof t;return"object"===r||"object"===n?("object"===r&&"object"===n&&Object.keys(e).forEach((r=>{let n=this.compare(e[r],t[r]);if(0!=n)return n})),"object"===r?-1:1):this.comparePrimitive(e,t)}static comparePrimitive(e,t){return E(e)||E(t)?E(e)&&E(t)?0:E(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)?l.LONG:l.DOUBLE}static toPrimitiveType(e){return e}constructor(){}}class Ge extends ye{constructor(){super("BinarySearch",[Ge.PARAMETER_ARRAY_SOURCE_PRIMITIVE,Ge.PARAMETER_INT_SOURCE_FROM,Ge.PARAMETER_FIND_PRIMITIVE,Ge.PARAMETER_INT_LENGTH],Ge.EVENT_INDEX)}async internalExecute(e){let t=e?.getArguments()?.get(Ge.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Ge.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(Ge.PARAMETER_FIND_PRIMITIVE.getParameterName()),s=e?.getArguments()?.get(Ge.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length||r<0||r>t.length)throw new $("Search source array cannot be empty");if(-1==s&&(s=t.length-r),s=r+s,s>t.length)throw new $("End point for array cannot be more than the size of the source array");let a=-1;for(;r<=s;){let e=Math.floor((r+s)/2);if(0==Ce.compare(t[e],n)){a=e;break}Ce.compare(t[e],n)>0?s=e-1:r=e+1}return new X([B.outputOf(new Map([[Ge.EVENT_INDEX.getName(),a]]))])}}var be={};t(be,"ArrayUtil",(()=>De));class De{static removeAListFrom(e,t){if(!(t&&e&&e.length&&t.length))return;const r=new Set(t);for(let t=0;t<e.length;t++)r.has(e[t])&&(e.splice(t,1),t--)}static of(...e){const t=new Array(e.length);for(let r=0;r<e.length;r++)t[r]=e[r];return t}constructor(){}}class Fe extends ye{constructor(){super("Compare",De.of(Fe.PARAMETER_ARRAY_SOURCE,Fe.PARAMETER_INT_SOURCE_FROM,Fe.PARAMETER_ARRAY_FIND,Fe.PARAMETER_INT_FIND_FROM,Fe.PARAMETER_INT_LENGTH),Fe.EVENT_RESULT_INTEGER)}async internalExecute(e){var t=e?.getArguments()?.get(Fe.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Fe.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(Fe.PARAMETER_ARRAY_FIND.getParameterName()),s=e?.getArguments()?.get(Fe.PARAMETER_INT_FIND_FROM.getParameterName()),a=e?.getArguments()?.get(Fe.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new $("Compare source array cannot be empty");if(0==n.length)throw new $("Compare find array cannot be empty");if(-1==a&&(a=t.length-r),r+a>t.length)throw new $(K.format("Source array size $ is less than comparing size $",t.length,r+a));if(s+a>n.length)throw new $(K.format("Find array size $ is less than comparing size $",n.length,s+a));return new X(De.of(B.outputOf(G.of(Fe.EVENT_RESULT_NAME,this.compare(t,r,r+a,n,s,s+a)))))}compare(e,t,r,n,s,a){if(r<t){let e=t;t=r,r=e}if(a<s){let e=s;s=a,a=e}if(r-t!=a-s)throw new $(K.format("Cannot compare uneven arrays from $ to $ in source array with $ to $ in find array",r,t,a,s));for(let a=t,i=s;a<r;a++,i++){let t=1;if(E(e[a])||E(n[i])){let r=E(e[a]);r==E(n[i])?t=0:r&&(t=-1)}else{let r=typeof e[a],s=typeof n[i];if("object"===r||"object"===s)t=1;else if("string"===r||"string"===s){let r=""+e[a],s=""+n[i];r===s?t=0:r<s&&(t=-1)}else"boolean"===r||"boolean"===s?t=r==s?0:1:"number"===r&&"number"===s&&(t=e[a]-n[i])}if(0!=t)return t}return 0}}class Ye extends ye{constructor(){super("Copy",[Ye.PARAMETER_ARRAY_SOURCE,Ye.PARAMETER_INT_SOURCE_FROM,Ye.PARAMETER_INT_LENGTH,Ye.PARAMETER_BOOLEAN_DEEP_COPY],Ye.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(Ye.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Ye.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(Ye.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),r+n>t.length)throw new $(K.format("Array has no elements from $ to $ as the array size is $",r,r+n,t.length));var s=e?.getArguments()?.get(Ye.PARAMETER_BOOLEAN_DEEP_COPY.getParameterName());const a=new Array(n);for(let e=r;e<r+n;e++)E(t[e])||(a[e-r]=s?JSON.parse(JSON.stringify(t[e])):t[e]);return new X([B.outputOf(G.of(Ye.EVENT_RESULT_NAME,a))])}}class Be extends ye{constructor(){super("Delete",[ye.PARAMETER_ARRAY_SOURCE,ye.PARAMETER_ANY_VAR_ARGS],ye.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(Be.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Be.PARAMETER_ANY_VAR_ARGS.getParameterName());if(null==r)throw new $("The deletable var args are empty. So cannot be proceeded further.");if(0==t.length||0==r.length)throw new $("Expected a source or deletable for an array but not found any");let n=new Set,s=[];for(let e=t.length-1;e>=0;e--)for(let s=0;s<r.length;s++)n.has(e)||0!=Ce.compare(t[e],r[s])||n.add(t[e]);return s=t.filter((e=>!n.has(e))),t.splice(0,t.length,...s),new X([B.outputOf(new Map([]))])}}class He extends ye{constructor(){super("DeleteFirst",[He.PARAMETER_ARRAY_SOURCE],He.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(He.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new $("Given source array is empty");return t.shift(),new X([B.outputOf(new Map([]))])}}class ke extends ye{constructor(){super("DeleteFrom",[ke.PARAMETER_ARRAY_SOURCE,ke.PARAMETER_INT_SOURCE_FROM,ke.PARAMETER_INT_LENGTH],ke.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(ke.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ke.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(ke.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new $("There are no elements to be deleted");if(r>=t.length||r<0)throw new $("The int source for the array should be in between 0 and length of the array ");if(-1==n&&(n=t.length-r),r+n>t.length)throw new $("Requested length to be deleted is more than the size of array ");return t.splice(r,n),new X([B.outputOf(new Map([]))])}}class $e extends ye{constructor(){super("DeleteLast",[$e.PARAMETER_ARRAY_SOURCE],$e.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get($e.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new $("Given source array is empty");return t.pop(),new X([B.outputOf(new Map([]))])}}class Xe extends ye{constructor(){super("Disjoint",[Xe.PARAMETER_ARRAY_SOURCE,Xe.PARAMETER_INT_SOURCE_FROM,Xe.PARAMETER_ARRAY_SECOND_SOURCE,Xe.PARAMETER_INT_SECOND_SOURCE_FROM,Xe.PARAMETER_INT_LENGTH],Xe.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(Xe.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Xe.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(Xe.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(Xe.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(Xe.PARAMETER_INT_LENGTH.getParameterName());if(-1==a&&(a=t.length<=n.length?t.length-r:n.length-s),a>t.length||a>n.length||r+a>t.length||s+a>n.length)throw new $("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(n[e+s]);let E=new Set;i.forEach((e=>{o.has(e)?o.delete(e):E.add(e)})),o.forEach((e=>{i.has(e)||E.add(e)}));let u=[];return E.forEach((e=>u.push(e))),new X([B.outputOf(new Map([[Xe.EVENT_RESULT_ARRAY.getName(),u]]))])}}class We extends ye{constructor(){super("Equals",[We.PARAMETER_ARRAY_SOURCE,We.PARAMETER_INT_SOURCE_FROM,We.PARAMETER_ARRAY_FIND,We.PARAMETER_INT_FIND_FROM,We.PARAMETER_INT_LENGTH],We.EVENT_RESULT_BOOLEAN)}async internalExecute(e){let t=new Fe,r=(await t.execute(e)).allResults()[0].getResult().get(We.EVENT_RESULT_NAME);return new X([B.outputOf(G.of(We.EVENT_RESULT_NAME,0==r))])}}class je extends ye{constructor(){super("Fill",[je.PARAMETER_ARRAY_SOURCE,je.PARAMETER_INT_SOURCE_FROM,je.PARAMETER_INT_LENGTH,je.PARAMETER_ANY],je.EVENT_RESULT_EMPTY)}async internalExecute(e){var t=e?.getArguments()?.get(je.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(je.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(je.PARAMETER_INT_LENGTH.getParameterName()),s=e?.getArguments()?.get(je.PARAMETER_ANY.getParameterName());if(r<0)throw new $(K.format("Arrays out of bound trying to access $ index",r));-1==n&&(n=t.length-r);let a=r+n-t.length;if(a>0)for(let e=0;e<a;e++)t.push();for(let e=r;e<r+n;e++)t[e]=E(s)?s:JSON.parse(JSON.stringify(s));return new X([B.outputOf(G.of())])}}class qe extends ye{constructor(){super("Frequency",[qe.PARAMETER_ARRAY_SOURCE,qe.PARAMETER_ANY,qe.PARAMETER_INT_SOURCE_FROM,qe.PARAMETER_INT_LENGTH],qe.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(qe.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(qe.PARAMETER_ANY.getParameterName()),n=e?.getArguments()?.get(qe.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(qe.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)return new X([B.outputOf(new Map([[qe.EVENT_RESULT_INTEGER.getName(),0]]))]);if(n>t.length)throw new $("Given start point is more than the size of source");if(E(r))throw new $("Given find was null. Hence cannot be found in the array");let a=n+s;if(-1==s&&(a=t.length-n),a>t.length)throw new $("Given length is more than the size of source");let i=0;for(let e=n;e<a&&e<t.length;e++)0==Ce.compare(t[e],r)&&i++;return new X([B.outputOf(new Map([[qe.EVENT_RESULT_INTEGER.getName(),i]]))])}}class Je extends ye{constructor(){super("IndexOf",[Je.PARAMETER_ARRAY_SOURCE,Je.PARAMETER_ANY_NOT_NULL,Je.PARAMETER_INT_FIND_FROM],Je.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(Je.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(Je.PARAMETER_ANY_NOT_NULL.getParameterName());let n=e?.getArguments()?.get(Je.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new X([B.outputOf(new Map([[Je.EVENT_RESULT_INTEGER.getName(),-1]]))]);if(n<0||n>t.length)throw new $("The size of the search index of the array is greater than the size of the array");let s=-1;for(let e=n;e<t.length;e++)if(0==Ce.compare(t[e],r)){s=e;break}return new X([B.outputOf(new Map([[Je.EVENT_RESULT_INTEGER.getName(),s]]))])}}class ze extends ye{constructor(){super("IndexOfArray",[ze.PARAMETER_ARRAY_SOURCE,ze.PARAMETER_ARRAY_SECOND_SOURCE,ze.PARAMETER_INT_FIND_FROM],ze.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(ze.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ze.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(ze.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length||0==r.length)return new X([B.outputOf(new Map([[ze.EVENT_RESULT_INTEGER.getName(),-1]]))]);if(n<0||n>t.length||t.length<r.length)throw new $("Given from second source is more than the size of the source array");let s=r.length,a=-1;for(let e=n;e<t.length;e++){let n=0;if(0==Ce.compare(t[e],r[n])){for(;n<s&&0==Ce.compare(t[e+n],r[n]);)n++;if(n==s){a=e;break}}}return new X([B.outputOf(new Map([[ze.EVENT_RESULT_INTEGER.getName(),a]]))])}}class Qe extends ye{constructor(){super("LastIndexOf",[Qe.PARAMETER_ARRAY_SOURCE,Qe.PARAMETER_ANY_NOT_NULL,Qe.PARAMETER_INT_FIND_FROM],Qe.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(Qe.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(Qe.PARAMETER_ANY_NOT_NULL.getParameterName());let n=e?.getArguments()?.get(Qe.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new X([B.outputOf(new Map([[Qe.EVENT_RESULT_INTEGER.getName(),-1]]))]);if(n<0||n>t.length)throw new $("The value of length shouldn't the exceed the size of the array or shouldn't be in terms");let s=-1;for(let e=t.length-1;e>=n;e--)if(0==Ce.compare(t[e],r)){s=e;break}return new X([B.outputOf(new Map([[Qe.EVENT_RESULT_INTEGER.getName(),s]]))])}}class Ke extends ye{constructor(){super("LastIndexOfArray",[Ke.PARAMETER_ARRAY_SOURCE,Ke.PARAMETER_ARRAY_SECOND_SOURCE,Ke.PARAMETER_INT_FIND_FROM],Ke.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(Ke.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Ke.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(Ke.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new X([B.outputOf(new Map([[Ke.EVENT_RESULT_ARRAY.getName(),-1]]))]);if(n<0||n>t.length||r.length>t.length)throw new $("Given from index is more than the size of the source array");let s=r.length,a=-1;for(let e=n;e<t.length;e++){let n=0;if(0==Ce.compare(t[e],r[n])){for(;n<s&&0==Ce.compare(t[e+n],r[n]);)n++;n==s&&(a=e)}}return new X([B.outputOf(new Map([[Ke.EVENT_RESULT_INTEGER.getName(),a]]))])}}class Ze extends ye{constructor(){super("Max",[Ze.PARAMETER_ARRAY_SOURCE_PRIMITIVE],Ze.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(Ze.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==t.length)throw new $("Search source array cannot be empty");let r=t[0];for(let e=1;e<t.length;e++){let n=t[e];Ce.comparePrimitive(r,n)>=0||(r=n)}return new X([B.outputOf(new Map([[Ze.EVENT_RESULT_ANY.getName(),r]]))])}}class et extends ye{constructor(){super("Min",[et.PARAMETER_ARRAY_SOURCE_PRIMITIVE],et.EVENT_RESULT_ANY)}async internalExecute(e){let t,r=e?.getArguments()?.get(et.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==r.length)throw new $("Search source array cannot be empty");for(let e=0;e<r.length;e++)E(r[e])||(void 0===t||Ce.comparePrimitive(r[e],t)<0)&&(t=r[e]);return new X([B.outputOf(new Map([[et.EVENT_RESULT_ANY.getName(),t]]))])}}class tt extends ye{constructor(){super("MisMatch",[tt.PARAMETER_ARRAY_SOURCE,tt.PARAMETER_INT_FIND_FROM,tt.PARAMETER_ARRAY_SECOND_SOURCE,tt.PARAMETER_INT_SECOND_SOURCE_FROM,tt.PARAMETER_INT_LENGTH],tt.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(tt.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(tt.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(tt.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(tt.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(tt.PARAMETER_INT_LENGTH.getParameterName()),i=r<t.length&&r>0?r:0,o=s<n.length&&s>0?s:0;if(i+a>=t.length||o+a>n.length)throw new $("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]!=n[o+e]){E=e;break}return new X([B.outputOf(new Map([[tt.EVENT_RESULT_INTEGER.getName(),E]]))])}}class rt extends ye{constructor(){super("Reverse",[rt.PARAMETER_ARRAY_SOURCE,rt.PARAMETER_INT_SOURCE_FROM,rt.PARAMETER_INT_LENGTH],rt.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(rt.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(rt.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(rt.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),n>=t.length||n<0||r<0)throw new $("Please provide start point between the start and end indexes or provide the length which was less than the source size ");let s=r+n-1;for(;r<=s;){let e=t[r],n=t[s];t[r++]=n,t[s--]=e}return new X([B.outputOf(new Map([]))])}}class nt extends ye{constructor(){super("Rotate",[nt.PARAMETER_ARRAY_SOURCE,nt.PARAMETER_ROTATE_LENGTH],nt.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(nt.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(nt.PARAMETER_ROTATE_LENGTH.getParameterName());if(0==t.length)return new X([B.outputOf(new Map([]))]);let n=t.length;return r%=n,this.rotate(t,0,r-1),this.rotate(t,r,n-1),this.rotate(t,0,n-1),new X([B.outputOf(new Map([]))])}rotate(e,t,r){for(;t<r;){let n=e[t];e[t++]=e[r],e[r--]=n}}}class st extends ye{constructor(){super("Shuffle",[st.PARAMETER_ARRAY_SOURCE],st.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(st.PARAMETER_ARRAY_SOURCE.getParameterName());if(t.length<=1)return new X([B.outputOf(new Map([]))]);let r=0,n=t.length;for(let e=0;e<n;e++){let e=Math.floor(Math.random()*n)%n,s=t[r];t[r]=t[e],t[e]=s,r=e}return new X([B.outputOf(new Map([]))])}}class at extends ye{constructor(){super("Sort",[at.PARAMETER_ARRAY_SOURCE_PRIMITIVE,at.PARAMETER_INT_FIND_FROM,at.PARAMETER_INT_LENGTH,at.PARAMETER_BOOLEAN_ASCENDING],at.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(at.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName()),r=e?.getArguments()?.get(at.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(at.PARAMETER_INT_LENGTH.getParameterName()),s=e?.getArguments()?.get(at.PARAMETER_BOOLEAN_ASCENDING.getParameterName());if(0==t.length)return new X([B.outputOf(new Map([[at.EVENT_RESULT_EMPTY.getName(),t]]))]);if(-1==n&&(n=t.length-r),r<0||r>=t.length||r+n>t.length)throw new $("Given start point is more than the size of the array or not available at that point");let a=t.slice(r,r+n+1);return a.sort(((e,t)=>function(e,t,r){return e===t?0:null===e?1:null===t?-1:r?e<t?1:-1:e<t?-1:1}(e,t,s))),t.splice(r,n,...a),new X([B.outputOf(new Map([[at.EVENT_RESULT_EMPTY.getName(),t]]))])}}class it extends ye{constructor(){super("SubArray",[it.PARAMETER_ARRAY_SOURCE,it.PARAMETER_INT_FIND_FROM,it.PARAMETER_INT_LENGTH],it.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(it.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(it.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(it.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),n<=0)return new X([B.outputOf(new Map([]))]);if(!(r>=0&&r<t.length)||r+n>t.length)throw new $("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 s=t.slice(r,r+n);return new X([B.outputOf(new Map([[it.EVENT_RESULT_ARRAY.getName(),s]]))])}}class ot{static repoMap=G.ofArrayEntries(V(new xe),V(new ve),V(new Ge),V(new Fe),V(new Ye),V(new Be),V(new He),V(new ke),V(new $e),V(new Xe),V(new We),V(new je),V(new qe),V(new Je),V(new ze),V(new Qe),V(new Ke),V(new Ze),V(new et),V(new tt),V(new rt),V(new nt),V(new st),V(new at),V(new it));static filterableNames=Array.from(ot.repoMap.values()).map((e=>e.getSignature().getFullName()));find(e,t){if(e==a.SYSTEM_ARRAY)return ot.repoMap.get(t)}filter(e){return ot.filterableNames.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}var Et={};t(Et,"ContextElement",(()=>ut));class ut{static NULL=new ut(S.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}}const At=new j("Create").setNamespace(a.SYSTEM_CTX).setParameters(new Map([y.ofEntry("name",(new S).setName("name").setType(f.of(l.STRING)).setMinLength(1).setFormat(Me.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,d.CONSTANT),y.ofEntry("schema",S.SCHEMA,!1,d.CONSTANT)])).setEvents(new Map([Y.outputEventMapEntry(new Map)]));const lt=new j("Get").setNamespace(a.SYSTEM_CTX).setParameters(new Map([y.ofEntry("name",(new S).setName("name").setType(f.of(l.STRING)).setMinLength(1).setFormat(Me.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,d.CONSTANT)])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",S.ofAny("value")]]))]));var mt={};t(mt,"Expression",(()=>Pt));var gt={};t(gt,"LinkedList",(()=>pt));var Rt={};function Tt(e,t){let r=new pt;r.push(e);let n=new pt;for(n.push(t);!r.isEmpty()&&!n.isEmpty();){const e=r.pop(),t=n.pop();if(e===t)continue;const 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])}else{if("object"!==s)return!1;{const s=Object.entries(e),a=Object.entries(t);if(s.length!==a.length)return!1;for(const[e,a]of s)r.push(a),n.push(t[e])}}}return!0}t(Rt,"deepEqual",(()=>Tt));class pt{head=void 0;tail=void 0;length=0;constructor(e){if(e?.length){for(const t of e)if(this.head){const e=new ht(t,this.tail);this.tail.next=e,this.tail=e}else this.tail=this.head=new ht(t);this.length=e.length}}push(e){const t=new ht(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.");const e=this.head.value;if(this.length--,this.head==this.tail)return this.head=this.tail=void 0,e;const 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 new Error(`${e} is out of bounds [0,${this.length}]`);let t=this.head;for(;e>0;)t=this.head.next,--e;return t.value}set(e,t){if(e<0||e>=this.length)throw new $(K.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,e&&(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 new Error("List is empty so cannot peak");return this.head.value}peekLast(){if(!this.tail)throw new Error("List is empty so cannot peak");return this.tail.value}getFirst(){if(!this.head)throw new Error("List is empty so cannot get first");return this.head.value}removeFirst(){return this.pop()}removeLast(){if(!this.tail)throw new Error("List is empty so cannot remove");--this.length;const e=this.tail.value;if(0==this.length)this.head=this.tail=void 0;else{const 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):this}add(e){return++this.length,this.tail||this.head?this.head===this.tail?(this.tail=new ht(e,this.head),this.head.next=this.tail):(this.tail=new ht(e,this.tail),this.tail.previous.next=this.tail):this.head=this.tail=new ht(e),this}map(e,t){let r=new pt,n=this.head,s=0;for(;n;)r.add(e(n.value,s)),n=n.next,++s;return r}indexOf(e){let t=this.head,r=0;for(;t;){if(Tt(t.value,e))return r;t=t.next,++r}return-1}forEach(e,t){let r=this.head,n=0;for(;r;)e(r.value,n),r=r.next,++n}}class ht{constructor(e,t,r){this.value=e,this.next=r,this.previous=t}toString(){return""+this.value}}var ct={};t(ct,"StringBuilder",(()=>Nt));class Nt{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 $(`Index ${e} is greater than or equal to ${this.str.length}`)}substring(e,t){return this.str.substring(e,t)}}var ft={};t(ft,"ExpressionEvaluationException",(()=>_t));class _t extends Error{constructor(e,t,r){super(K.format("$ : $",e,t)),this.cause=r}getCause(){return this.cause}}var St={};t(St,"ExpressionToken",(()=>Mt));class Mt{constructor(e){this.expression=e}getExpression(){return this.expression}toString(){return this.expression}}var Ot={};t(Ot,"ExpressionTokenValue",(()=>wt));class wt extends Mt{constructor(e,t){super(e),this.element=t}getTokenValue(){return this.element}getElement(){return this.element}toString(){return K.format("$: $",this.expression,this.element)}}var It={};t(It,"Operation",(()=>dt));class dt{static MULTIPLICATION=new dt("*");static DIVISION=new dt("/");static INTEGER_DIVISION=new dt("//");static MOD=new dt("%");static ADDITION=new dt("+");static SUBTRACTION=new dt("-");static NOT=new dt("not",void 0,!0);static AND=new dt("and",void 0,!0);static OR=new dt("or",void 0,!0);static LESS_THAN=new dt("<");static LESS_THAN_EQUAL=new dt("<=");static GREATER_THAN=new dt(">");static GREATER_THAN_EQUAL=new dt(">=");static EQUAL=new dt("=");static NOT_EQUAL=new dt("!=");static BITWISE_AND=new dt("&");static BITWISE_OR=new dt("|");static BITWISE_XOR=new dt("^");static BITWISE_COMPLEMENT=new dt("~");static BITWISE_LEFT_SHIFT=new dt("<<");static BITWISE_RIGHT_SHIFT=new dt(">>");static BITWISE_UNSIGNED_RIGHT_SHIFT=new dt(">>>");static UNARY_PLUS=new dt("UN: +","+");static UNARY_MINUS=new dt("UN: -","-");static UNARY_LOGICAL_NOT=new dt("UN: not","not");static UNARY_BITWISE_COMPLEMENT=new dt("UN: ~","~");static ARRAY_OPERATOR=new dt("[");static OBJECT_OPERATOR=new dt(".");static NULLISH_COALESCING_OPERATOR=new dt("??");static CONDITIONAL_TERNARY_OPERATOR=new dt("?");static VALUE_OF=new Map([["MULTIPLICATION",dt.MULTIPLICATION],["DIVISION",dt.DIVISION],["INTEGER_DIVISON",dt.INTEGER_DIVISION],["MOD",dt.MOD],["ADDITION",dt.ADDITION],["SUBTRACTION",dt.SUBTRACTION],["NOT",dt.NOT],["AND",dt.AND],["OR",dt.OR],["LESS_THAN",dt.LESS_THAN],["LESS_THAN_EQUAL",dt.LESS_THAN_EQUAL],["GREATER_THAN",dt.GREATER_THAN],["GREATER_THAN_EQUAL",dt.GREATER_THAN_EQUAL],["EQUAL",dt.EQUAL],["NOT_EQUAL",dt.NOT_EQUAL],["BITWISE_AND",dt.BITWISE_AND],["BITWISE_OR",dt.BITWISE_OR],["BITWISE_XOR",dt.BITWISE_XOR],["BITWISE_COMPLEMENT",dt.BITWISE_COMPLEMENT],["BITWISE_LEFT_SHIFT",dt.BITWISE_LEFT_SHIFT],["BITWISE_RIGHT_SHIFT",dt.BITWISE_RIGHT_SHIFT],["BITWISE_UNSIGNED_RIGHT_SHIFT",dt.BITWISE_UNSIGNED_RIGHT_SHIFT],["UNARY_PLUS",dt.UNARY_PLUS],["UNARY_MINUS",dt.UNARY_MINUS],["UNARY_LOGICAL_NOT",dt.UNARY_LOGICAL_NOT],["UNARY_BITWISE_COMPLEMENT",dt.UNARY_BITWISE_COMPLEMENT],["ARRAY_OPERATOR",dt.ARRAY_OPERATOR],["OBJECT_OPERATOR",dt.OBJECT_OPERATOR],["NULLISH_COALESCING_OPERATOR",dt.NULLISH_COALESCING_OPERATOR],["CONDITIONAL_TERNARY_OPERATOR",dt.CONDITIONAL_TERNARY_OPERATOR]]);static UNARY_OPERATORS=new Set([dt.ADDITION,dt.SUBTRACTION,dt.NOT,dt.BITWISE_COMPLEMENT,dt.UNARY_PLUS,dt.UNARY_MINUS,dt.UNARY_LOGICAL_NOT,dt.UNARY_BITWISE_COMPLEMENT]);static ARITHMETIC_OPERATORS=new Set([dt.MULTIPLICATION,dt.DIVISION,dt.INTEGER_DIVISION,dt.MOD,dt.ADDITION,dt.SUBTRACTION]);static LOGICAL_OPERATORS=new Set([dt.NOT,dt.AND,dt.OR,dt.LESS_THAN,dt.LESS_THAN_EQUAL,dt.GREATER_THAN,dt.GREATER_THAN_EQUAL,dt.EQUAL,dt.NOT_EQUAL,dt.NULLISH_COALESCING_OPERATOR]);static BITWISE_OPERATORS=new Set([dt.BITWISE_AND,dt.BITWISE_COMPLEMENT,dt.BITWISE_LEFT_SHIFT,dt.BITWISE_OR,dt.BITWISE_RIGHT_SHIFT,dt.BITWISE_UNSIGNED_RIGHT_SHIFT,dt.BITWISE_XOR]);static CONDITIONAL_OPERATORS=new Set([dt.CONDITIONAL_TERNARY_OPERATOR]);static OPERATOR_PRIORITY=new Map([[dt.UNARY_PLUS,1],[dt.UNARY_MINUS,1],[dt.UNARY_LOGICAL_NOT,1],[dt.UNARY_BITWISE_COMPLEMENT,1],[dt.ARRAY_OPERATOR,1],[dt.OBJECT_OPERATOR,1],[dt.MULTIPLICATION,2],[dt.DIVISION,2],[dt.INTEGER_DIVISION,2],[dt.MOD,2],[dt.ADDITION,3],[dt.SUBTRACTION,3],[dt.BITWISE_LEFT_SHIFT,4],[dt.BITWISE_RIGHT_SHIFT,4],[dt.BITWISE_UNSIGNED_RIGHT_SHIFT,4],[dt.LESS_THAN,5],[dt.LESS_THAN_EQUAL,5],[dt.GREATER_THAN,5],[dt.GREATER_THAN_EQUAL,5],[dt.EQUAL,6],[dt.NOT_EQUAL,6],[dt.BITWISE_AND,7],[dt.BITWISE_XOR,8],[dt.BITWISE_OR,9],[dt.AND,10],[dt.OR,11],[dt.NULLISH_COALESCING_OPERATOR,11],[dt.CONDITIONAL_TERNARY_OPERATOR,12]]);static OPERATORS=new Set([...Array.from(dt.ARITHMETIC_OPERATORS),...Array.from(dt.LOGICAL_OPERATORS),...Array.from(dt.BITWISE_OPERATORS),dt.ARRAY_OPERATOR,dt.OBJECT_OPERATOR,...Array.from(dt.CONDITIONAL_OPERATORS)].map((e=>e.getOperator())));static OPERATORS_WITHOUT_SPACE_WRAP=new Set([...Array.from(dt.ARITHMETIC_OPERATORS),...Array.from(dt.LOGICAL_OPERATORS),...Array.from(dt.BITWISE_OPERATORS),dt.ARRAY_OPERATOR,dt.OBJECT_OPERATOR,...Array.from(dt.CONDITIONAL_OPERATORS)].filter((e=>!e.shouldBeWrappedInSpace())).map((e=>e.getOperator())));static OPERATION_VALUE_OF=new Map(Array.from(dt.VALUE_OF.entries()).map((([e,t])=>[t.getOperator(),t])));static UNARY_MAP=new Map([[dt.ADDITION,dt.UNARY_PLUS],[dt.SUBTRACTION,dt.UNARY_MINUS],[dt.NOT,dt.UNARY_LOGICAL_NOT],[dt.BITWISE_COMPLEMENT,dt.UNARY_BITWISE_COMPLEMENT],[dt.UNARY_PLUS,dt.UNARY_PLUS],[dt.UNARY_MINUS,dt.UNARY_MINUS],[dt.UNARY_LOGICAL_NOT,dt.UNARY_LOGICAL_NOT],[dt.UNARY_BITWISE_COMPLEMENT,dt.UNARY_BITWISE_COMPLEMENT]]);static BIGGEST_OPERATOR_SIZE=Array.from(dt.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 dt.VALUE_OF.get(e)}toString(){return this.operator}}class Pt extends Mt{tokens=new pt;ops=new pt;constructor(e,t,r,n){super(e||""),t&&this.tokens.push(t),r&&this.tokens.push(r),n&&this.ops.push(n),this.evaluate()}getTokens(){return this.tokens}getOperations(){return this.ops}evaluate(){const e=this.expression.length;let t,r="",n=new Nt(""),s=0,a=!1;for(;s<e;){switch(r=this.expression[s],t=n.toString(),r){case" ":a=this.processTokenSepearator(n,t,a);break;case"(":s=this.processSubExpression(e,n,t,s,a),a=!1;break;case")":throw new _t(this.expression,"Extra closing parenthesis found");case"]":throw new _t(this.expression,"Extra closing square bracket found");case"'":case'"':{let t=this.processStringLiteral(e,r,s);s=t.getT1(),a=t.getT2();break}case"?":if(s+1<e&&"?"!=this.expression.charAt(s+1)&&0!=s&&"?"!=this.expression.charAt(s-1))s=this.processTernaryOperator(e,n,t,s,a);else{let i=this.processOthers(r,e,n,t,s,a);s=i.getT1(),a=i.getT2(),a&&this.ops.peek()==dt.ARRAY_OPERATOR&&(i=this.process(e,n,s),s=i.getT1(),a=i.getT2())}break;default:let i=this.processOthers(r,e,n,t,s,a);s=i.getT1(),a=i.getT2(),a&&this.ops.peek()==dt.ARRAY_OPERATOR&&(i=this.process(e,n,s),s=i.getT1(),a=i.getT2())}++s}if(t=n.toString(),!Z.isNullOrBlank(t)){if(dt.OPERATORS.has(t))throw new _t(this.expression,"Expression is ending with an operator");this.tokens.push(new Mt(t))}}processStringLiteral(e,t,r){let n="",s=r+1;for(;s<e;s++){let e=this.expression.charAt(s);if(e==t&&"\\"!=this.expression.charAt(s-1))break;n+=e}if(s==e&&this.expression.charAt(s-1)!=t)throw new _t(this.expression,"Missing string ending marker "+t);let a=new re(s,!1);return this.tokens.push(new wt(n,n)),a}process(e,t,r){let n=1;for(++r;r<e&&0!=n;){let e=this.expression.charAt(r);"]"==e?--n:"["==e&&++n,0!=n&&(t.append(e),r++)}return this.tokens.push(new Pt(t.toString())),t.setLength(0),new re(r,!1)}processOthers(e,t,r,n,s,a){let i=t-s;i=i<dt.BIGGEST_OPERATOR_SIZE?i:dt.BIGGEST_OPERATOR_SIZE;for(let e=i;e>0;e--){let t=this.expression.substring(s,s+e);if(dt.OPERATORS_WITHOUT_SPACE_WRAP.has(t))return Z.isNullOrBlank(n)||(this.tokens.push(new Mt(n)),a=!1),this.checkUnaryOperator(this.tokens,this.ops,dt.OPERATION_VALUE_OF.get(t),a),a=!0,r.setLength(0),new re(s+e-1,a)}return r.append(e),new re(s,!1)}processTernaryOperator(e,t,r,n,s){if(s)throw new _t(this.expression,"Ternary operator is followed by an operator");""!=r.trim()&&(this.tokens.push(new Pt(r)),t.setLength(0));let a=1,i="";const o=++n;for(;n<e&&a>0;)i=this.expression.charAt(n),"?"==i?++a:":"==i&&--a,++n;if(":"!=i)throw new _t(this.expression,"':' operater is missing");if(n>=e)throw new _t(this.expression,"Third part of the ternary expression is missing");for(;!this.ops.isEmpty()&&this.hasPrecedence(dt.CONDITIONAL_TERNARY_OPERATOR,this.ops.peek());){let e=this.ops.pop();if(dt.UNARY_OPERATORS.has(e)){const t=this.tokens.pop();this.tokens.push(new Pt("",t,void 0,e))}else{let t=this.tokens.pop(),r=this.tokens.pop();this.tokens.push(new Pt("",r,t,e))}}this.ops.push(dt.CONDITIONAL_TERNARY_OPERATOR),this.tokens.push(new Pt(this.expression.substring(o,n-1)));const E=this.expression.substring(n);if(""===E.trim())throw new _t(this.expression,"Third part of the ternary expression is missing");return this.tokens.push(new Pt(E)),e-1}processSubExpression(e,t,r,n,s){if(dt.OPERATORS.has(r))this.checkUnaryOperator(this.tokens,this.ops,dt.OPERATION_VALUE_OF.get(r),s),t.setLength(0);else if(!Z.isNullOrBlank(r))throw new _t(this.expression,K.format("Unkown token : $ found.",r));let a=1;const i=new Nt;let o=this.expression.charAt(n);for(n++;n<e&&a>0;)o=this.expression.charAt(n),"("==o?a++:")"==o&&a--,0!=a&&(i.append(o),n++);if(")"!=o)throw new _t(this.expression,"Missing a closed parenthesis");for(;i.length()>2&&"("==i.charAt(0)&&")"==i.charAt(i.length()-1);)i.deleteCharAt(0),i.setLength(i.length()-1);return this.tokens.push(new Pt(i.toString().trim())),n}processTokenSepearator(e,t,r){return Z.isNullOrBlank(t)||(dt.OPERATORS.has(t)?(this.checkUnaryOperator(this.tokens,this.ops,dt.OPERATION_VALUE_OF.get(t),r),r=!0):(this.tokens.push(new Mt(t)),r=!1)),e.setLength(0),r}checkUnaryOperator(e,t,r,n){if(r)if(n||e.isEmpty()){if(!dt.UNARY_OPERATORS.has(r))throw new _t(this.expression,K.format("Extra operator $ found.",r));{const e=dt.UNARY_MAP.get(r);e&&t.push(e)}}else{for(;!t.isEmpty()&&this.hasPrecedence(r,t.peek());){let r=t.pop();if(dt.UNARY_OPERATORS.has(r)){let t=e.pop();e.push(new Pt("",t,void 0,r))}else{let t=e.pop(),n=e.pop();e.push(new Pt("",n,t,r))}}t.push(r)}}hasPrecedence(e,t){let r=dt.OPERATOR_PRIORITY.get(e),n=dt.OPERATOR_PRIORITY.get(t);if(!r||!n)throw new Error("Unknown operators provided");return n<r}toString(){if(this.ops.isEmpty())return 1==this.tokens.size()?this.tokens.get(0).toString():"Error: No tokens";let e=new Nt,t=0;const r=this.ops.toArray(),n=this.tokens.toArray();for(let s=0;s<r.length;s++)if(r[s].getOperator().startsWith("UN: "))e.append("(").append(r[s].getOperator().substring(4)).append(n[t]instanceof Pt?n[t].toString():n[t]).append(")"),t++;else if(r[s]==dt.CONDITIONAL_TERNARY_OPERATOR){let r=n[t++];e.insert(0,r.toString()),e.insert(0,":"),r=n[t++],e.insert(0,r.toString()),e.insert(0,"?"),r=n[t++],e.insert(0,r.toString()).append(")"),e.insert(0,"(")}else{if(0==t){const r=n[t++];e.insert(0,r.toString())}const a=n[t++];e.insert(0,r[s].getOperator()).insert(0,a.toString()).insert(0,"(").append(")")}return e.toString()}equals(e){return this.expression==e.expression}}var yt={};t(yt,"ExpressionEvaluator",(()=>kr));var xt={};t(xt,"LogicalNullishCoalescingOperator",(()=>Ut));var vt={};t(vt,"BinaryOperator",(()=>Lt));class Lt{nullCheck(e,t,r){if(E(e)||E(t))throw new Ve(K.format("$ cannot be applied to a null value",r.getOperatorName()))}}class Ut extends Lt{apply(e,t){return E(e)?t:e}}var Vt={};t(Vt,"ArithmeticAdditionOperator",(()=>Ct));class Ct extends Lt{apply(e,t){return this.nullCheck(e,t,dt.ADDITION),e+t}}var Gt={};t(Gt,"ArithmeticDivisionOperator",(()=>bt));class bt extends Lt{apply(e,t){return this.nullCheck(e,t,dt.DIVISION),e/t}}var Dt={};t(Dt,"ArithmeticIntegerDivisionOperator",(()=>Ft));class Ft extends Lt{apply(e,t){return this.nullCheck(e,t,dt.DIVISION),Math.floor(e/t)}}var Yt={};t(Yt,"ArithmeticModulusOperator",(()=>Bt));class Bt extends Lt{apply(e,t){return this.nullCheck(e,t,dt.MOD),e%t}}var Ht={};t(Ht,"ArithmeticMultiplicationOperator",(()=>kt));class kt extends Lt{apply(e,t){this.nullCheck(e,t,dt.MULTIPLICATION);const r="string"==typeof e;if(r||"string"===typeof t){let n=r?e:t,s=r?t:e,a="",i=s<0;s=Math.abs(s);let o=Math.floor(s);for(;o-- >0;)a+=n;let E=Math.floor(n.length*(s-Math.floor(s)));if(E<0&&(E=-E),0!=E&&(a+=n.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 $t={};t($t,"ArithmeticSubtractionOperator",(()=>Xt));class Xt extends Lt{apply(e,t){return this.nullCheck(e,t,dt.SUBTRACTION),e-t}}var Wt={};t(Wt,"ArrayOperator",(()=>jt));class jt extends Lt{apply(e,t){if(!e)throw new Ve("Cannot apply array operator on a null value");if(!t)throw new Ve("Cannot retrive null index value");if(!Array.isArray(e)&&"string"!=typeof e)throw new Ve(K.format("Cannot retrieve value from a primitive value $",e));if(t>=e.length)throw new Ve(K.format("Cannot retrieve index $ from the array of length $",t,e.length));return e[t]}}var qt={};t(qt,"BitwiseAndOperator",(()=>Jt));class Jt extends Lt{apply(e,t){return this.nullCheck(e,t,dt.BITWISE_AND),e&t}}var zt={};t(zt,"BitwiseLeftShiftOperator",(()=>Qt));class Qt extends Lt{apply(e,t){return this.nullCheck(e,t,dt.BITWISE_LEFT_SHIFT),e<<t}}var Kt={};t(Kt,"BitwiseOrOperator",(()=>Zt));class Zt extends Lt{apply(e,t){return this.nullCheck(e,t,dt.BITWISE_OR),e|t}}var er={};t(er,"BitwiseRightShiftOperator",(()=>tr));class tr extends Lt{apply(e,t){return this.nullCheck(e,t,dt.BITWISE_RIGHT_SHIFT),e>>t}}var rr={};t(rr,"BitwiseUnsignedRightShiftOperator",(()=>nr));class nr extends Lt{apply(e,t){return this.nullCheck(e,t,dt.BITWISE_UNSIGNED_RIGHT_SHIFT),e>>>t}}var sr={};t(sr,"BitwiseXorOperator",(()=>ar));class ar extends Lt{apply(e,t){return this.nullCheck(e,t,dt.BITWISE_XOR),e^t}}var ir={};t(ir,"LogicalAndOperator",(()=>or));class or extends Lt{apply(e,t){const r=Ce.findPrimitiveNullAsBoolean(e),n=Ce.findPrimitiveNullAsBoolean(t);if(r.getT1()!=l.BOOLEAN)throw new Ve(K.format("Boolean value expected but found $",r.getT2()));if(n.getT1()!=l.BOOLEAN)throw new Ve(K.format("Boolean value expected but found $",n.getT2()));return r.getT2()&&n.getT2()}}var Er={};t(Er,"LogicalEqualOperator",(()=>ur));class ur extends Lt{apply(e,t){return Tt(e,t)}}var Ar={};t(Ar,"LogicalGreaterThanEqualOperator",(()=>lr));class lr extends Lt{apply(e,t){const r=Ce.findPrimitiveNullAsBoolean(e),n=Ce.findPrimitiveNullAsBoolean(t);if(r.getT1()==l.BOOLEAN||n.getT1()==l.BOOLEAN)throw new Ve(K.format("Cannot compare >= with the values $ and $",r.getT2(),n.getT2()));return r.getT2()>=n.getT2()}}var mr={};t(mr,"LogicalGreaterThanOperator",(()=>gr));class gr extends Lt{apply(e,t){const r=Ce.findPrimitiveNullAsBoolean(e),n=Ce.findPrimitiveNullAsBoolean(t);if(r.getT1()==l.BOOLEAN||n.getT1()==l.BOOLEAN)throw new Ve(K.format("Cannot compare > with the values $ and $",r.getT2(),n.getT2()));return r.getT2()>n.getT2()}}var Rr={};t(Rr,"LogicalLessThanEqualOperator",(()=>Tr));class Tr extends Lt{apply(e,t){const r=Ce.findPrimitiveNullAsBoolean(e),n=Ce.findPrimitiveNullAsBoolean(t);if(r.getT1()==l.BOOLEAN||n.getT1()==l.BOOLEAN)throw new Ve(K.format("Cannot compare <= with the values $ and $",r.getT2(),n.getT2()));return r.getT2()<=n.getT2()}}var pr={};t(pr,"LogicalLessThanOperator",(()=>hr));class hr extends Lt{apply(e,t){const r=Ce.findPrimitiveNullAsBoolean(e),n=Ce.findPrimitiveNullAsBoolean(t);if(r.getT1()==l.BOOLEAN||n.getT1()==l.BOOLEAN)throw new Ve(K.format("Cannot compare < with the values $ and $",r.getT2(),n.getT2()));return r.getT2()<n.getT2()}}var cr={};t(cr,"LogicalNotEqualOperator",(()=>Nr));class Nr extends Lt{apply(e,t){return!Tt(e,t)}}var fr={};t(fr,"LogicalOrOperator",(()=>_r));class _r extends Lt{apply(e,t){const r=Ce.findPrimitiveNullAsBoolean(e),n=Ce.findPrimitiveNullAsBoolean(t);if(r.getT1()!=l.BOOLEAN)throw new Ve(K.format("Boolean value expected but found $",r.getT2()));if(n.getT1()!=l.BOOLEAN)throw new Ve(K.format("Boolean value expected but found $",n.getT2()));return r.getT2()||n.getT2()}}var Sr={};t(Sr,"ObjectOperator",(()=>Mr));class Mr extends Lt{apply(e,t){if(!e)throw new Ve("Cannot apply array operator on a null value");if(!t)throw new Ve("Cannot retrive null property value");const r=typeof e;if(!Array.isArray(e)&&"string"!=r&&"object"!=r)throw new Ve(K.format("Cannot retrieve value from a primitive value $",e));return e[t]}}var Or={};t(Or,"ArithmeticUnaryMinusOperator",(()=>dr));var wr={};t(wr,"UnaryOperator",(()=>Ir));class Ir{nullCheck(e,t){if(E(e))throw new Ve(K.format("$ cannot be applied to a null value",t.getOperatorName()))}}class dr extends Ir{apply(e){return this.nullCheck(e,dt.UNARY_MINUS),Ce.findPrimitiveNumberType(e),-e}}var Pr={};t(Pr,"ArithmeticUnaryPlusOperator",(()=>yr));class yr extends Ir{apply(e){return this.nullCheck(e,dt.UNARY_PLUS),Ce.findPrimitiveNumberType(e),e}}var xr={};t(xr,"BitwiseComplementOperator",(()=>vr));class vr extends Ir{apply(e){this.nullCheck(e,dt.UNARY_BITWISE_COMPLEMENT);let t=Ce.findPrimitiveNumberType(e);if(t.getT1()!=l.INTEGER&&t.getT1()!=l.LONG)throw new Ve(K.format("Unable to apply bitwise operator on $",e));return~e}}var Lr={};t(Lr,"LogicalNotOperator",(()=>Ur));class Ur extends Ir{apply(e){return!e&&""!==e}}var Vr={};t(Vr,"LiteralTokenValueExtractor",(()=>Dr));var Cr={};t(Cr,"TokenValueExtractor",(()=>Gr));class Gr{static REGEX_SQUARE_BRACKETS=/[\[\]]/;static REGEX_DOT=/\./;getValue(e){let t=this.getPrefix();if(!e.startsWith(t))throw new $(K.format("Token $ doesn't start with $",e,t));return this.getValueInternal(e)}retrieveElementFrom(e,t,r,n){if(E(n))return;if(t.length==r)return n;let s=t[r].split(Gr.REGEX_SQUARE_BRACKETS).map((e=>e.trim())).filter((e=>!Z.isNullOrBlank(e))).reduce(((n,s,a)=>this.resolveForEachPartOfTokenWithBrackets(e,t,r,s,n,a)),n);return this.retrieveElementFrom(e,t,r+1,s)}resolveForEachPartOfTokenWithBrackets(e,t,r,n,s,a){if(!E(s)){if(0===a){if(Array.isArray(s)){if("length"===n)return s.length;try{let e=parseInt(n);if(isNaN(e))throw new Error(K.format("$ is not a number",e));if(e>=s.length)return;return s[e]}catch(t){throw new _t(e,K.format("$ couldn't be parsed into integer in $",n,e),t)}}return this.checkIfObject(e,t,r,s),s[n]}if(n?.startsWith('"')){if(!n.endsWith('"')||1==n.length||2==n.length)throw new _t(e,K.format("$ is missing a double quote or empty key found",e));return this.checkIfObject(e,t,r,s),s[n.substring(1,n.length-1)]}try{let t=parseInt(n);if(isNaN(t))throw new Error(K.format("$ is not a number",t));if(!Array.isArray(s))throw new _t(e,K.format("Expecting an array with index $ while processing the expression",t,e));if(t>=s.length)return;return s[t]}catch(t){throw new _t(e,K.format("$ couldn't be parsed into integer in $",n,e),t)}}}checkIfObject(e,t,r,n){if("object"!=typeof n||Array.isArray(n))throw new _t(e,K.format("Unable to retrive $ from $ in the path $",t[r],n.toString(),e))}}const br=new Map([["true",!0],["false",!1],["null",void 0],["undefined",void 0]]);class Dr extends Gr{static INSTANCE=new Dr;getValueInternal(e){if(!Z.isNullOrBlank(e))return e=e.trim(),br.has(e)?br.get(e):e.startsWith('"')?this.processString(e):this.processNumbers(e)}processNumbers(e){try{let t=Number(e);if(isNaN(t))throw new Error("Parse number error");return t}catch(t){throw new _t(e,K.format("Unable to parse the literal or expression $",e),t)}}processString(e){if(!e.endsWith('"'))throw new _t(e,K.format("String literal $ is not closed properly",e));return e.substring(1,e.length-1)}getPrefix(){return""}}var Fr={},Yr={};t(Yr,"ConditionalTernaryOperator",(()=>Br));class Br extends class{nullCheck(e,t,r,n){if(E(e)||E(t)||E(r))throw new Ve(K.format("$ cannot be applied to a null value",n.getOperatorName()))}}{apply(e,t,r){return e?t:r}}e(Fr,Yr);class Hr extends Gr{static PREFIX="_internal.";values=new Map;addValue(e,t){this.values.set(e,t)}getValueInternal(e){let t=e.split(Gr.REGEX_DOT),r=t[1],n=r.indexOf("["),s=2;return-1!=n&&(r=t[1].substring(0,n),t[1]=t[1].substring(n),s=1),this.retrieveElementFrom(e,t,s,this.values.get(r))}getPrefix(){return Hr.PREFIX}}class kr{static UNARY_OPERATORS_MAP=new Map([[dt.UNARY_BITWISE_COMPLEMENT,new vr],[dt.UNARY_LOGICAL_NOT,new Ur],[dt.UNARY_MINUS,new dr],[dt.UNARY_PLUS,new yr]]);static TERNARY_OPERATORS_MAP=new Map([[dt.CONDITIONAL_TERNARY_OPERATOR,new Br]]);static BINARY_OPERATORS_MAP=new Map([[dt.ADDITION,new Ct],[dt.DIVISION,new bt],[dt.INTEGER_DIVISION,new Ft],[dt.MOD,new Bt],[dt.MULTIPLICATION,new kt],[dt.SUBTRACTION,new Xt],[dt.BITWISE_AND,new Jt],[dt.BITWISE_LEFT_SHIFT,new Qt],[dt.BITWISE_OR,new Zt],[dt.BITWISE_RIGHT_SHIFT,new tr],[dt.BITWISE_UNSIGNED_RIGHT_SHIFT,new nr],[dt.BITWISE_XOR,new ar],[dt.AND,new or],[dt.EQUAL,new ur],[dt.GREATER_THAN,new gr],[dt.GREATER_THAN_EQUAL,new lr],[dt.LESS_THAN,new hr],[dt.LESS_THAN_EQUAL,new Tr],[dt.OR,new _r],[dt.NOT_EQUAL,new Nr],[dt.NULLISH_COALESCING_OPERATOR,new Ut],[dt.ARRAY_OPERATOR,new jt],[dt.OBJECT_OPERATOR,new Mr]]);static UNARY_OPERATORS_MAP_KEY_SET=new Set(kr.UNARY_OPERATORS_MAP.keys());internalTokenValueExtractor=new Hr;constructor(e){e instanceof Pt?(this.exp=e,this.expression=this.exp.getExpression()):this.expression=e}evaluate(e){const t=this.processNestingExpression(this.expression,e);return this.expression=t.getT1(),this.exp=t.getT2(),(e=new Map(e.entries())).set(this.internalTokenValueExtractor.getPrefix(),this.internalTokenValueExtractor),this.evaluateExpression(this.exp,e)}processNestingExpression(e,t){let r=0,n=0;const s=new pt;for(;n<e.length-1;){if("{"==e.charAt(n)&&"{"==e.charAt(n+1))0==r&&s.push(new re(n+2,-1)),r++,n++;else if("}"==e.charAt(n)&&"}"==e.charAt(n+1)){if(r--,r<0)throw new _t(e,"Expecting {{ nesting path operator to be started before closing");0==r&&s.push(s.pop().setT2(n)),n++}n++}let a=this.replaceNestingExpression(e,t,s);return new re(a,new Pt(a))}replaceNestingExpression(e,t,r){let n=e;for(var s of r.toArray()){if(-1==s.getT2())throw new _t(e,"Expecting }} nesting path operator to be closed");let r=new kr(n.substring(s.getT1(),s.getT2())).evaluate(t);n=n.substring(0,s.getT1()-2)+r+n.substring(s.getT2()+2)}return n}getExpression(){return this.exp||(this.exp=new Pt(this.expression)),this.exp}getExpressionString(){return this.expression}evaluateExpression(e,t){let r=e.getOperations(),n=e.getTokens();for(;!r.isEmpty();){let e=r.pop(),o=n.pop();if(kr.UNARY_OPERATORS_MAP_KEY_SET.has(e))n.push(this.applyUnaryOperation(e,this.getValueFromToken(t,o)));else if(e==dt.OBJECT_OPERATOR||e==dt.ARRAY_OPERATOR)this.processObjectOrArrayOperator(t,r,n,e,o);else if(e==dt.CONDITIONAL_TERNARY_OPERATOR){const r=n.pop(),E=n.pop();var s=this.getValueFromToken(t,E),a=this.getValueFromToken(t,r),i=this.getValueFromToken(t,o);n.push(this.applyTernaryOperation(e,s,a,i))}else{const r=n.pop();s=this.getValueFromToken(t,r),a=this.getValueFromToken(t,o);n.push(this.applyBinaryOperation(e,s,a))}}if(n.isEmpty())throw new Ve(K.format("Expression : $ evaluated to null",e));if(1!=n.size())throw new Ve(K.format("Expression : $ evaluated multiple values $",e,n));const o=n.get(0);if(o instanceof wt)return o.getElement();if(!(o instanceof Pt))return this.getValueFromToken(t,o);throw new Ve(K.format("Expression : $ evaluated to $",e,n.get(0)))}processObjectOrArrayOperator(e,t,r,n,s){const a=new pt,i=new pt;if(!n||!s)return;do{i.push(n),s instanceof Pt?a.push(new wt(s.toString(),this.evaluateExpression(s,e))):s&&a.push(s),s=r.isEmpty()?void 0:r.pop(),n=t.isEmpty()?void 0:t.pop()}while(n==dt.OBJECT_OPERATOR||n==dt.ARRAY_OPERATOR);s&&(s instanceof Pt?a.push(new wt(s.toString(),this.evaluateExpression(s,e))):a.push(s)),n&&t.push(n);let o=a.pop();if(o instanceof wt&&"object"==typeof o.getTokenValue()){const e=(new Date).getTime()+""+Math.round(1e3*Math.random());this.internalTokenValueExtractor.addValue(e,o.getTokenValue()),o=new Mt(Hr.PREFIX+e)}let E=new Nt(o instanceof wt?o.getTokenValue():o.toString());for(;!a.isEmpty();)o=a.pop(),n=i.pop(),E.append(n.getOperator()).append(o instanceof wt?o.getTokenValue():o.toString()),n==dt.ARRAY_OPERATOR&&E.append("]");let u=E.toString(),A=u.substring(0,u.indexOf(".")+1);if(A.length>2&&e.has(A))r.push(new wt(u,this.getValue(u,e)));else{let e;try{e=Dr.INSTANCE.getValue(u)}catch(t){e=u}r.push(new wt(u,e))}}applyTernaryOperation(e,t,r,n){let s=kr.TERNARY_OPERATORS_MAP.get(e);if(!s)throw new _t(this.expression,K.format("No operator found to evaluate $",this.getExpression()));return new wt(e.toString(),s.apply(t,r,n))}applyBinaryOperation(e,t,r){let n=typeof t,s=typeof r,a=kr.BINARY_OPERATORS_MAP.get(e);if(("object"===n||"object"===s)&&e!==dt.EQUAL&&e!==dt.NOT_EQUAL&&e!==dt.NULLISH_COALESCING_OPERATOR)throw new _t(this.expression,K.format("Cannot evaluate expression $ $ $",t,e.getOperator(),r));if(!a)throw new _t(this.expression,K.format("No operator found to evaluate $ $ $",t,e.getOperator(),r));return new wt(e.toString(),a.apply(t,r))}applyUnaryOperation(e,t){if("object"===typeof t||Array.isArray(t))throw new _t(this.expression,K.format("The operator $ cannot be applied to $",e.getOperator(),t));let r=kr.UNARY_OPERATORS_MAP.get(e);if(!r)throw new _t(this.expression,K.format("No Unary operator $ is found to apply on $",e.getOperator(),t));return new wt(e.toString(),r.apply(t))}getValueFromToken(e,t){return t instanceof Pt?this.evaluateExpression(t,e):t instanceof wt?t.getElement():this.getValue(t.getExpression(),e)}getValue(e,t){if(e.length<=5)return Dr.INSTANCE.getValue(e);const r=e.substring(0,e.indexOf(".")+1);return(t.get(r)??Dr.INSTANCE).getValue(e)}}const $r=new j("Set").setNamespace(a.SYSTEM_CTX).setParameters(new Map([y.ofEntry("name",(new S).setName("name").setType(f.of(l.STRING)).setMinLength(1),!1,d.CONSTANT),y.ofEntry("value",S.ofAny("value"))])).setEvents(new Map([Y.outputEventMapEntry(new Map)]));const Xr=new j("GenerateEvent").setNamespace(a.SYSTEM).setParameters(new Map([y.ofEntry("eventName",S.ofString("eventName").setDefaultValue("output")),y.ofEntry("results",S.ofObject("results").setProperties(new Map([["name",S.ofString("name")],["value",y.EXPRESSION]])),!0)])).setEvents(new Map([Y.outputEventMapEntry(new Map)]));class Wr extends Pe{static CONDITION="condition";static SIGNATURE=new j("If").setNamespace(a.SYSTEM).setParameters(new Map([y.ofEntry(Wr.CONDITION,S.of(Wr.CONDITION,l.BOOLEAN))])).setEvents(new Map([Y.eventMapEntry(Y.TRUE,new Map),Y.eventMapEntry(Y.FALSE,new Map),Y.outputEventMapEntry(new Map)]));getSignature(){return Wr.SIGNATURE}async internalExecute(e){var t=e.getArguments()?.get(Wr.CONDITION);return new X([B.of(t?Y.TRUE:Y.FALSE,new Map),B.outputOf(new Map)])}}const jr=new j("CountLoop").setNamespace(a.SYSTEM_LOOP).setParameters(new Map([y.ofEntry("count",S.of("count",l.INTEGER))])).setEvents(new Map([Y.eventMapEntry(Y.ITERATION,new Map([["index",S.of("index",l.INTEGER)]])),Y.outputEventMapEntry(new Map([["value",S.of("value",l.INTEGER)]]))]));const qr=new j("RangeLoop").setNamespace(a.SYSTEM_LOOP).setParameters(new Map([y.ofEntry("from",S.of("from",l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE).setDefaultValue(0)),y.ofEntry("to",S.of("to",l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE).setDefaultValue(1)),y.ofEntry("step",S.of("step",l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE).setDefaultValue(1).setNot((new S).setConstant(0)))])).setEvents(new Map([Y.eventMapEntry(Y.ITERATION,new Map([["index",S.of("index",l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE)]])),Y.outputEventMapEntry(new Map([["value",S.of("value",l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE)]]))]));const Jr=new j("Add").setNamespace(a.MATH).setParameters(new Map([["value",new y("value",S.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",S.ofNumber("value")]]))]));const zr=[()=>new Map([["value",new y("value",S.ofNumber("value"))]]),()=>new Map([["value1",new y("value1",S.ofNumber("value1"))],["value2",new y("value2",S.ofNumber("value2"))]])];class Qr extends Pe{constructor(e,t,r=1,...n){super(),n&&n.length||(n=[l.DOUBLE]),this.parametersNumber=r,this.mathFunction=t,this.signature=new j(e).setNamespace(a.MATH).setParameters(zr[r-1]()).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",(new S).setType(f.of(...n)).setName("value")]]))]))}getSignature(){return this.signature}async internalExecute(e){let t,r=Ce.findPrimitiveNumberType(e.getArguments()?.get(1==this.parametersNumber?"value":"value1")).getT2();return 2==this.parametersNumber&&(t=Ce.findPrimitiveNumberType(e.getArguments()?.get("value2")).getT2()),new X([B.outputOf(new Map([["value",this.mathFunction.call(this,r,t)]]))])}}class Kr extends Pe{static SIGNATURE=new j("Hypotenuse").setNamespace(a.MATH).setParameters(new Map([["value",new y("value",S.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",(new S).setType(f.of(l.DOUBLE)).setName("value")]]))]));constructor(){super()}getSignature(){return Kr.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get("value");return new X([B.outputOf(new Map([["value",Math.sqrt(t.reduce(((e,t)=>e+t*t),0))]]))])}}const Zr=new j("Maximum").setNamespace(a.MATH).setParameters(new Map([["value",new y("value",S.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",S.ofNumber("value")]]))]));const en=new j("Minimum").setNamespace(a.MATH).setParameters(new Map([["value",new y("value",S.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",S.ofNumber("value")]]))]));class tn extends Pe{static SIGNATURE=new j("Random").setNamespace(a.MATH).setEvents(new Map([Y.outputEventMapEntry(G.of("value",S.ofDouble("value")))]));getSignature(){return tn.SIGNATURE}async internalExecute(e){return new X([B.outputOf(new Map([["value",Math.random()]]))])}}class rn extends Pe{static MIN_VALUE="minValue";static MAX_VALUE="maxValue";static VALUE="value";static SIGNATURE=new j("RandomFloat").setParameters(G.of(rn.MIN_VALUE,y.of(rn.MIN_VALUE,S.ofFloat(rn.MIN_VALUE).setDefaultValue(0)),rn.MAX_VALUE,y.of(rn.MAX_VALUE,S.ofFloat(rn.MAX_VALUE).setDefaultValue(2147483647)))).setNamespace(a.MATH).setEvents(new Map([Y.outputEventMapEntry(G.of(rn.VALUE,S.ofFloat(rn.VALUE)))]));getSignature(){return rn.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(rn.MIN_VALUE),r=e.getArguments()?.get(rn.MAX_VALUE),n=Math.random()*(r-t)+t;return new X([B.outputOf(new Map([[rn.VALUE,n]]))])}}class nn extends Pe{static MIN_VALUE="minValue";static MAX_VALUE="maxValue";static VALUE="value";static SIGNATURE=new j("RandomInt").setParameters(G.of(nn.MIN_VALUE,y.of(nn.MIN_VALUE,S.ofInteger(nn.MIN_VALUE).setDefaultValue(0)),nn.MAX_VALUE,y.of(nn.MAX_VALUE,S.ofInteger(nn.MAX_VALUE).setDefaultValue(2147483647)))).setNamespace(a.MATH).setEvents(new Map([Y.outputEventMapEntry(G.of(nn.VALUE,S.ofInteger(nn.VALUE)))]));getSignature(){return nn.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(nn.MIN_VALUE),r=e.getArguments()?.get(nn.MAX_VALUE),n=Math.floor(Math.random()*(r-t)+t);return new X([B.outputOf(new Map([[nn.VALUE,n]]))])}}const sn={Absolute:new Qr("Absolute",(e=>Math.abs(e)),1,l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE),ACosine:new Qr("ArcCosine",(e=>Math.acos(e))),ASine:new Qr("ArcSine",(e=>Math.asin(e))),ATangent:new Qr("ArcTangent",(e=>Math.atan(e))),Ceiling:new Qr("Ceiling",(e=>Math.ceil(e))),Cosine:new Qr("Cosine",(e=>Math.cos(e))),CosineH:new Qr("HyperbolicCosine",(e=>Math.cosh(e))),CubeRoot:new Qr("CubeRoot",(e=>Math.cbrt(e))),Exponential:new Qr("Exponential",(e=>Math.exp(e))),Expm1:new Qr("ExponentialMinus1",(e=>Math.expm1(e))),Floor:new Qr("Floor",(e=>Math.floor(e))),Log:new Qr("LogNatural",(e=>Math.log(e))),Log10:new Qr("Log10",(e=>Math.log10(e))),Round:new Qr("Round",(e=>Math.round(e)),1,l.INTEGER,l.LONG),Sine:new Qr("Sine",(e=>Math.sin(e))),SineH:new Qr("HyperbolicSine",(e=>Math.sinh(e))),Tangent:new Qr("Tangent",(e=>Math.tan(e))),TangentH:new Qr("HyperbolicTangent",(e=>Math.tanh(e))),ToDegrees:new Qr("ToDegrees",(e=>e*(Math.PI/180))),ToRadians:new Qr("ToRadians",(e=>e*(180/Math.PI))),SquareRoot:new Qr("SquareRoot",(e=>Math.sqrt(e))),ArcTangent:new Qr("ArcTangent2",((e,t)=>Math.atan2(e,t)),2),Power:new Qr("Power",((e,t)=>Math.pow(e,t)),2),Add:new class extends Pe{getSignature(){return Jr}async internalExecute(e){let t=e.getArguments()?.get("value");return new X([B.outputOf(new Map([["value",t.reduce(((e,t)=>e+t),0)]]))])}},Hypotenuse:new Kr,Maximum:new class extends Pe{getSignature(){return Zr}async internalExecute(e){let t=e.getArguments()?.get("value");return new X([B.outputOf(new Map([["value",t.reduce(((e,t)=>!e&&0!==e||t>e?t:e))]]))])}},Minimum:new class extends Pe{getSignature(){return en}async internalExecute(e){let t=e.getArguments()?.get("value");return new X([B.outputOf(new Map([["value",t.reduce(((e,t)=>!e&&0!==e||t<e?t:e))]]))])}},Random:new tn,RandomFloat:new rn,RandomInt:new nn},an=Object.values(sn).map((e=>e.getSignature().getFullName()));class on{find(e,t){if(e==a.MATH)return sn[t]}filter(e){return an.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}class En extends Pe{static VALUES="values";static SIGNATURE=new j("Print").setNamespace(a.SYSTEM).setParameters(new Map([y.ofEntry(En.VALUES,S.ofAny(En.VALUES),!0)]));getSignature(){return En.SIGNATURE}async internalExecute(e){var t=e.getArguments()?.get(En.VALUES);return console?.log(...t),new X([B.outputOf(new Map)])}}class un extends Pe{static PARAMETER_STRING_NAME="string";static PARAMETER_SEARCH_STRING_NAME="searchString";static PARAMETER_SECOND_STRING_NAME="secondString";static PARAMETER_THIRD_STRING_NAME="thirdString";static PARAMETER_INDEX_NAME="index";static PARAMETER_SECOND_INDEX_NAME="secondIndex";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new y(un.PARAMETER_STRING_NAME,S.ofString(un.PARAMETER_STRING_NAME));static PARAMETER_SECOND_STRING=new y(un.PARAMETER_SECOND_STRING_NAME,S.ofString(un.PARAMETER_SECOND_STRING_NAME));static PARAMETER_THIRD_STRING=new y(un.PARAMETER_THIRD_STRING_NAME,S.ofString(un.PARAMETER_THIRD_STRING_NAME));static PARAMETER_INDEX=new y(un.PARAMETER_INDEX_NAME,S.ofInteger(un.PARAMETER_INDEX_NAME));static PARAMETER_SECOND_INDEX=new y(un.PARAMETER_SECOND_INDEX_NAME,S.ofInteger(un.PARAMETER_SECOND_INDEX_NAME));static PARAMETER_SEARCH_STRING=new y(un.PARAMETER_SEARCH_STRING_NAME,S.ofString(un.PARAMETER_STRING_NAME));static EVENT_STRING=new Y(Y.OUTPUT,G.of(un.EVENT_RESULT_NAME,S.ofString(un.EVENT_RESULT_NAME)));static EVENT_BOOLEAN=new Y(Y.OUTPUT,G.of(un.EVENT_RESULT_NAME,S.ofBoolean(un.EVENT_RESULT_NAME)));static EVENT_INT=new Y(Y.OUTPUT,G.of(un.EVENT_RESULT_NAME,S.ofInteger(un.EVENT_RESULT_NAME)));static EVENT_ARRAY=new Y(Y.OUTPUT,G.of(un.EVENT_RESULT_NAME,S.ofArray(un.EVENT_RESULT_NAME)));constructor(e,t,r,...n){super();const s=new Map;n.forEach((e=>s.set(e.getParameterName(),e))),this.signature=new j(t).setNamespace(e).setParameters(s).setEvents(G.of(r.getName(),r))}getSignature(){return this.signature}static ofEntryAsStringBooleanOutput(e,t){return[e,new class extends un{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(un.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(un.PARAMETER_SEARCH_STRING_NAME);return new X([B.outputOf(G.of(un.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,un.EVENT_BOOLEAN,un.PARAMETER_STRING,un.PARAMETER_SEARCH_STRING)]}static ofEntryAsStringAndIntegerStringOutput(e,t){return[e,new class extends un{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(un.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(un.PARAMETER_INDEX_NAME);return new X([B.outputOf(G.of(un.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,un.EVENT_STRING,un.PARAMETER_STRING,un.PARAMETER_INDEX)]}static ofEntryAsStringIntegerOutput(e,t){return[e,new class extends un{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(un.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(un.PARAMETER_SEARCH_STRING_NAME);return new X([B.outputOf(G.of(un.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,un.EVENT_INT,un.PARAMETER_STRING,un.PARAMETER_SEARCH_STRING)]}static ofEntryString(e,t){return[e,new class extends un{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(un.PARAMETER_STRING_NAME);return new X([B.outputOf(G.of(un.EVENT_RESULT_NAME,t(r)))])}}(a.STRING,e,un.EVENT_STRING,un.PARAMETER_STRING)]}static ofEntryStringBooleanOutput(e,t){return[e,new class extends un{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(un.PARAMETER_STRING_NAME);return new X([B.outputOf(G.of(un.EVENT_RESULT_NAME,t(r)))])}}(a.STRING,e,un.EVENT_BOOLEAN,un.PARAMETER_STRING)]}static ofEntryAsStringStringIntegerIntegerOutput(e,t){return[e,new class extends un{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(un.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(un.PARAMETER_SEARCH_STRING_NAME),s=e?.getArguments()?.get(un.PARAMETER_INDEX_NAME);return new X([B.outputOf(G.of(un.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,un.EVENT_INT,un.PARAMETER_STRING,un.PARAMETER_SEARCH_STRING,un.PARAMETER_INDEX)]}static ofEntryAsStringIntegerIntegerStringOutput(e,t){return[e,new class extends un{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(un.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(un.PARAMETER_INDEX_NAME),s=e?.getArguments()?.get(un.PARAMETER_SECOND_INDEX_NAME);return new X([B.outputOf(G.of(un.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,un.EVENT_INT,un.PARAMETER_STRING,un.PARAMETER_INDEX,un.PARAMETER_SECOND_INDEX)]}static ofEntryAsStringStringStringStringOutput(e,t){return[e,new class extends un{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(un.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(un.PARAMETER_SECOND_STRING_NAME),s=e?.getArguments()?.get(un.PARAMETER_THIRD_STRING_NAME);return new X([B.outputOf(G.of(un.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,un.EVENT_STRING,un.PARAMETER_STRING,un.PARAMETER_SECOND_STRING,un.PARAMETER_THIRD_STRING)]}}class An extends Pe{static VALUE="value";static SCHEMA=(new S).setName(An.VALUE).setType(new N(l.STRING));static SIGNATURE=new j("Concatenate").setNamespace(a.STRING).setParameters(new Map([[An.VALUE,new y(An.VALUE,An.SCHEMA).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([[An.VALUE,S.ofString(An.VALUE)]]))]));constructor(){super()}getSignature(){return An.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(An.VALUE),r="";return t.reduce(((e,t)=>r=e+t),r),new X([B.outputOf(new Map([[An.VALUE,r]]))])}}class ln extends Pe{static PARAMETER_STRING_NAME="string";static PARAMETER_AT_START_NAME="startPosition";static PARAMETER_AT_END_NAME="endPosition";static EVENT_RESULT_NAME="result";PARAMETER_STRING=new y(ln.PARAMETER_STRING_NAME,S.ofString(ln.PARAMETER_STRING_NAME));PARAMETER_AT_START=new y(ln.PARAMETER_AT_START_NAME,S.ofInteger(ln.PARAMETER_AT_START_NAME));PARAMETER_AT_END=new y(ln.PARAMETER_AT_END_NAME,S.ofInteger(ln.PARAMETER_AT_END_NAME));EVENT_STRING=new Y(Y.OUTPUT,new Map([[ln.EVENT_RESULT_NAME,S.ofString(ln.EVENT_RESULT_NAME)]]));signature=new j("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]]));constructor(){super()}getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(ln.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(ln.PARAMETER_AT_START_NAME),n=e?.getArguments()?.get(ln.PARAMETER_AT_END_NAME);if(n>=r){let e="";return e+=t.substring(0,r),e+=t.substring(n),new X([B.outputOf(new Map([[ln.EVENT_RESULT_NAME,e.toString()]]))])}return new X([B.outputOf(new Map([[ln.EVENT_RESULT_NAME,t]]))])}}class mn extends Pe{static PARAMETER_STRING_NAME="string";static PARAMETER_AT_POSITION_NAME="position";static PARAMETER_INSERT_STRING_NAME="insertString";EVENT_RESULT_NAME="result";PARAMETER_STRING=new y(mn.PARAMETER_STRING_NAME,S.ofString(mn.PARAMETER_STRING_NAME));PARAMETER_AT_POSITION=new y(mn.PARAMETER_AT_POSITION_NAME,S.ofInteger(mn.PARAMETER_AT_POSITION_NAME));PARAMETER_INSERT_STRING=new y(mn.PARAMETER_INSERT_STRING_NAME,S.ofString(mn.PARAMETER_INSERT_STRING_NAME));EVENT_STRING=new Y(Y.OUTPUT,new Map([[this.EVENT_RESULT_NAME,S.ofString(this.EVENT_RESULT_NAME)]]));signature=new j("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,S.ofString(this.EVENT_RESULT_NAME)]]))]));getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(mn.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(mn.PARAMETER_AT_POSITION_NAME),n=e?.getArguments()?.get(mn.PARAMETER_INSERT_STRING_NAME),s="";return s+=t.substring(0,r),s+=n,s+=t.substring(r),new X([B.outputOf(new Map([[this.EVENT_RESULT_NAME,s]]))])}}class gn extends Pe{static PARAMETER_STRING_NAME="string";static PARAMETER_POSTPAD_STRING_NAME="postpadString";static PARAMETER_LENGTH_NAME="length";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new y(gn.PARAMETER_STRING_NAME,S.ofString(gn.PARAMETER_STRING_NAME));static PARAMETER_POSTPAD_STRING=new y(gn.PARAMETER_POSTPAD_STRING_NAME,S.ofString(gn.PARAMETER_POSTPAD_STRING_NAME));static PARAMETER_LENGTH=new y(gn.PARAMETER_LENGTH_NAME,S.ofInteger(gn.PARAMETER_LENGTH_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[gn.EVENT_RESULT_NAME,S.ofString(gn.EVENT_RESULT_NAME)]]));signature=new j("PostPad").setNamespace(a.STRING).setParameters(new Map([[gn.PARAMETER_STRING.getParameterName(),gn.PARAMETER_STRING],[gn.PARAMETER_POSTPAD_STRING.getParameterName(),gn.PARAMETER_POSTPAD_STRING],[gn.PARAMETER_LENGTH.getParameterName(),gn.PARAMETER_LENGTH]])).setEvents(new Map([[gn.EVENT_STRING.getName(),gn.EVENT_STRING]]));constructor(){super()}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(gn.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(gn.PARAMETER_POSTPAD_STRING_NAME),n=e.getArguments()?.get(gn.PARAMETER_LENGTH_NAME),s="",a=r.length;for(s+=t;a<=n;)s+=r,a+=r.length;return s.length-t.length<n&&(s+=r.substring(0,n-(s.length-t.length))),new X([B.of(gn.EVENT_RESULT_NAME,new Map([[gn.EVENT_RESULT_NAME,s.toString()]]))])}}class Rn extends Pe{static PARAMETER_STRING_NAME="string";static PARAMETER_PREPAD_STRING_NAME="prepadString";static PARAMETER_LENGTH_NAME="length";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new y(Rn.PARAMETER_STRING_NAME,S.ofString(Rn.PARAMETER_STRING_NAME));static PARAMETER_PREPAD_STRING=new y(Rn.PARAMETER_PREPAD_STRING_NAME,S.ofString(Rn.PARAMETER_PREPAD_STRING_NAME));static PARAMETER_LENGTH=new y(Rn.PARAMETER_LENGTH_NAME,S.ofInteger(Rn.PARAMETER_LENGTH_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[Rn.EVENT_RESULT_NAME,S.ofString(Rn.EVENT_RESULT_NAME)]]));signature=new j("PrePad").setNamespace(a.STRING).setParameters(new Map([[Rn.PARAMETER_STRING.getParameterName(),Rn.PARAMETER_STRING],[Rn.PARAMETER_PREPAD_STRING.getParameterName(),Rn.PARAMETER_PREPAD_STRING],[Rn.PARAMETER_LENGTH.getParameterName(),Rn.PARAMETER_LENGTH]])).setEvents(new Map([[Rn.EVENT_STRING.getName(),Rn.EVENT_STRING]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(Rn.PARAMETER_STRING_NAME),r=e.getArguments()?.get(Rn.PARAMETER_PREPAD_STRING_NAME),n=e.getArguments()?.get(Rn.PARAMETER_LENGTH_NAME),s="",a=r.length;for(;a<=n;)s+=r,a+=r.length;return s.length<n&&(s+=r.substring(0,n-s.length)),s+=t,new X([B.of(Rn.EVENT_RESULT_NAME,new Map([[Rn.EVENT_RESULT_NAME,s]]))])}}class Tn extends Pe{static PARAMETER_STRING_NAME="string";static PARAMETER_BOOLEAN_NAME="boolean";static PARAMETER_FIRST_OFFSET_NAME="firstOffset";static PARAMETER_OTHER_STRING_NAME="otherString";static PARAMETER_SECOND_OFFSET_NAME="secondOffset";static PARAMETER_INTEGER_NAME="length";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new y(Tn.PARAMETER_STRING_NAME,S.ofString(Tn.PARAMETER_STRING_NAME));static PARAMETER_OTHER_STRING=new y(Tn.PARAMETER_OTHER_STRING_NAME,S.ofString(Tn.PARAMETER_OTHER_STRING_NAME));static PARAMETER_FIRST_OFFSET=new y(Tn.PARAMETER_FIRST_OFFSET_NAME,S.ofInteger(Tn.PARAMETER_FIRST_OFFSET_NAME));static PARAMETER_SECOND_OFFSET=new y(Tn.PARAMETER_SECOND_OFFSET_NAME,S.ofInteger(Tn.PARAMETER_SECOND_OFFSET_NAME));static PARAMETER_INTEGER=new y(Tn.PARAMETER_INTEGER_NAME,S.ofInteger(Tn.PARAMETER_INTEGER_NAME));static PARAMETER_BOOLEAN=new y(Tn.PARAMETER_BOOLEAN_NAME,S.ofBoolean(Tn.PARAMETER_BOOLEAN_NAME));static EVENT_BOOLEAN=new Y(Y.OUTPUT,new Map([[Tn.EVENT_RESULT_NAME,S.ofBoolean(Tn.EVENT_RESULT_NAME)]]));signature=new j("RegionMatches").setNamespace(a.STRING).setParameters(new Map([[Tn.PARAMETER_STRING.getParameterName(),Tn.PARAMETER_STRING],[Tn.PARAMETER_BOOLEAN.getParameterName(),Tn.PARAMETER_BOOLEAN],[Tn.PARAMETER_FIRST_OFFSET.getParameterName(),Tn.PARAMETER_FIRST_OFFSET],[Tn.PARAMETER_OTHER_STRING.getParameterName(),Tn.PARAMETER_OTHER_STRING],[Tn.PARAMETER_SECOND_OFFSET.getParameterName(),Tn.PARAMETER_SECOND_OFFSET],[Tn.PARAMETER_INTEGER.getParameterName(),Tn.PARAMETER_INTEGER]])).setEvents(new Map([[Tn.EVENT_BOOLEAN.getName(),Tn.EVENT_BOOLEAN]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(Tn.PARAMETER_STRING_NAME),r=e.getArguments()?.get(Tn.PARAMETER_BOOLEAN_NAME),n=e.getArguments()?.get(Tn.PARAMETER_FIRST_OFFSET_NAME),s=e?.getArguments()?.get(Tn.PARAMETER_OTHER_STRING_NAME),a=e?.getArguments()?.get(Tn.PARAMETER_SECOND_OFFSET_NAME),i=e.getArguments()?.get(Tn.PARAMETER_INTEGER_NAME),o=!1;if(n<0||a<0||n+i>t.length||a+i>s.length)o=!1;else if(r){t=t.substring(n,n+i).toUpperCase(),o=t==s.substring(a,a+i).toUpperCase()}else{t=t.substring(n,n+i),o=t==s.substring(a,i)}return new X([B.outputOf(new Map([[Tn.EVENT_RESULT_NAME,o]]))])}}class pn extends Pe{static PARAMETER_STRING_NAME="string";static PARAMETER_AT_START_NAME="startPosition";static PARAMETER_AT_LENGTH_NAME="lengthPosition";static PARAMETER_REPLACE_STRING_NAME="replaceString";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new y(pn.PARAMETER_STRING_NAME,S.ofString(pn.PARAMETER_STRING_NAME));static PARAMETER_AT_START=new y(pn.PARAMETER_AT_START_NAME,S.ofInteger(pn.PARAMETER_AT_START_NAME));static PARAMETER_AT_LENGTH=new y(pn.PARAMETER_AT_LENGTH_NAME,S.ofInteger(pn.PARAMETER_AT_LENGTH_NAME));static PARAMETER_REPLACE_STRING=new y(pn.PARAMETER_REPLACE_STRING_NAME,S.ofString(pn.PARAMETER_REPLACE_STRING_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[pn.EVENT_RESULT_NAME,S.ofString(pn.EVENT_RESULT_NAME)]]));constructor(){super()}signature=new j("ReplaceAtGivenPosition").setNamespace(a.STRING).setParameters(new Map([[pn.PARAMETER_STRING.getParameterName(),pn.PARAMETER_STRING],[pn.PARAMETER_AT_START.getParameterName(),pn.PARAMETER_AT_START],[pn.PARAMETER_AT_LENGTH.getParameterName(),pn.PARAMETER_AT_LENGTH],[pn.PARAMETER_REPLACE_STRING.getParameterName(),pn.PARAMETER_REPLACE_STRING]])).setEvents(new Map([[pn.EVENT_STRING.getName(),pn.EVENT_STRING]]));getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(pn.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(pn.PARAMETER_AT_START_NAME),n=e?.getArguments()?.get(pn.PARAMETER_AT_LENGTH_NAME),s=e?.getArguments()?.get(pn.PARAMETER_REPLACE_STRING_NAME);t.length;if(r<n){let e="";e+=t.substring(0,r),e+=s,e+=t.substring(r+n)}return new X([B.outputOf(new Map([[pn.EVENT_RESULT_NAME,t]]))])}}class hn extends Pe{VALUE="value";SIGNATURE=new j("Reverse").setNamespace(a.STRING).setParameters(new Map([[this.VALUE,new y(this.VALUE,S.ofString(this.VALUE)).setVariableArgument(!1)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([[this.VALUE,(new S).setType(f.of(l.STRING)).setName(this.VALUE)]]))]));constructor(){super()}getSignature(){return this.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(this.VALUE),r=t.length-1,n="";for(;r>=0;)n+=t.charAt(r--);return new X([B.outputOf(G.of(this.VALUE,n))])}}class cn extends Pe{PARAMETER_STRING_NAME="string";PARAMETER_SPLIT_STRING_NAME="searchString";EVENT_RESULT_NAME="result";PARAMETER_STRING=new y(this.PARAMETER_STRING_NAME,S.ofString(this.PARAMETER_STRING_NAME));PARAMETER_SPLIT_STRING=new y(this.PARAMETER_SPLIT_STRING_NAME,S.ofString(this.PARAMETER_SPLIT_STRING_NAME));EVENT_ARRAY=new Y(Y.OUTPUT,G.of(this.EVENT_RESULT_NAME,S.ofArray(this.EVENT_RESULT_NAME)));getSignature(){return new j("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,S.ofArray(this.EVENT_RESULT_NAME)]]))]))}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(this.PARAMETER_STRING_NAME),r=e.getArguments()?.get(this.PARAMETER_SPLIT_STRING_NAME);return new X([B.outputOf(G.of(this.EVENT_ARRAY.getName(),t.split(r)))])}}class Nn extends Pe{PARAMETER_INPUT_ANYTYPE_NAME="anytype";EVENT_RESULT_NAME="result";PARAMETER_INPUT_ANYTYPE=new y(this.PARAMETER_INPUT_ANYTYPE_NAME,S.ofAny(this.PARAMETER_INPUT_ANYTYPE_NAME));EVENT_STRING=new Y(Y.OUTPUT,new Map([[this.EVENT_RESULT_NAME,S.ofString(this.EVENT_RESULT_NAME)]]));getSignature(){return new j("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]]))}constructor(){super()}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 X([B.outputOf(new Map([[this.EVENT_RESULT_NAME,r]]))])}}class fn extends Pe{static PARAMETER_STRING_NAME="string";static PARAMETER_LENGTH_NAME="length";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new y(fn.PARAMETER_STRING_NAME,S.ofString(fn.PARAMETER_STRING_NAME));static PARAMETER_LENGTH=new y(fn.PARAMETER_LENGTH_NAME,S.ofInteger(fn.PARAMETER_LENGTH_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[fn.EVENT_RESULT_NAME,S.ofString(fn.EVENT_RESULT_NAME)]]));signature=new j("TrimTo").setNamespace(a.STRING).setParameters(new Map([[fn.PARAMETER_STRING.getParameterName(),fn.PARAMETER_STRING],[fn.PARAMETER_LENGTH.getParameterName(),fn.PARAMETER_LENGTH]])).setEvents(new Map([[fn.EVENT_STRING.getName(),fn.EVENT_STRING]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(fn.PARAMETER_STRING_NAME),r=e.getArguments()?.get(fn.PARAMETER_LENGTH_NAME);return new X([B.of(fn.EVENT_RESULT_NAME,new Map([[fn.EVENT_RESULT_NAME,t.substring(0,r)]]))])}}class _n{static repoMap=G.ofArrayEntries(un.ofEntryString("Trim",(e=>e.trim())),un.ofEntryString("LowerCase",(e=>e.toLocaleLowerCase())),un.ofEntryString("UpperCase",(e=>e.toUpperCase())),un.ofEntryStringBooleanOutput("IsBlank",(e=>""===e.trim())),un.ofEntryStringBooleanOutput("IsEmpty",(e=>""===e)),un.ofEntryAsStringBooleanOutput("Contains",((e,t)=>-1!=e.indexOf(t))),un.ofEntryAsStringBooleanOutput("EndsWith",((e,t)=>e.endsWith(t))),un.ofEntryAsStringBooleanOutput("EqualsIgnoreCase",((e,t)=>e.toUpperCase()==t.toUpperCase())),un.ofEntryAsStringBooleanOutput("Matches",((e,t)=>new RegExp(t).test(e))),un.ofEntryAsStringIntegerOutput("IndexOf",((e,t)=>e.indexOf(t))),un.ofEntryAsStringIntegerOutput("LastIndexOf",((e,t)=>e.lastIndexOf(t))),un.ofEntryAsStringAndIntegerStringOutput("Repeat",((e,t)=>e.repeat(t))),un.ofEntryAsStringStringIntegerIntegerOutput("IndexOfWithStartPoint",((e,t,r)=>e.indexOf(t,r))),un.ofEntryAsStringStringIntegerIntegerOutput("LastIndexOfWithStartPoint",((e,t,r)=>e.lastIndexOf(t,r))),un.ofEntryAsStringStringStringStringOutput("Replace",((e,t,r)=>e)),un.ofEntryAsStringStringStringStringOutput("ReplaceFirst",((e,t,r)=>e.replace(t,r))),un.ofEntryAsStringIntegerIntegerStringOutput("SubString",((e,t,r)=>e.substring(t,r))),V(new An),V(new ln),V(new mn),V(new gn),V(new Rn),V(new Tn),V(new pn),V(new hn),V(new cn),V(new Nn),V(new fn));static filterableNames=Array.from(_n.repoMap.values()).map((e=>e.getSignature().getFullName()));find(e,t){if(e==a.STRING)return _n.repoMap.get(t)}filter(e){return _n.filterableNames.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}var Sn={};t(Sn,"HybridRepository",(()=>Mn));class Mn{constructor(...e){this.repos=e}find(e,t){for(let r of this.repos){let n=r.find(e,t);if(n)return n}}filter(e){let t=new Set;for(let r of this.repos)r.filter(e).forEach((e=>t.add(e)));return Array.from(t)}}const On=new Map([[a.SYSTEM_CTX,new Map([V(new class extends Pe{getSignature(){return At}async internalExecute(e){const t=e?.getArguments()?.get("name");if(e?.getContext()?.has(t))throw new $(K.format("Context already has an element for '$' ",t));let r=S.from(e?.getArguments()?.get("schema"));if(!r)throw new $("Schema is not supplied.");return e.getContext().set(t,new ut(r,E(r.getDefaultValue())?void 0:r.getDefaultValue())),new X([B.outputOf(new Map)])}}),V(new class extends Pe{getSignature(){return lt}async internalExecute(e){const t=e?.getArguments()?.get("name");if(!e.getContext()?.has(t))throw new $(K.format("Context don't have an element for '$' ",t));return new X([B.outputOf(new Map(["value",e.getContext()?.get(t)?.getElement()]))])}}),V(new class extends Pe{getSignature(){return $r}async internalExecute(e){let t=e?.getArguments()?.get("name");if(Z.isNullOrBlank(t))throw new $("Empty string is not a valid name for the context element");let r=e?.getArguments()?.get("value");const n=new Pt(t),s=n.getTokens().peekLast();if(!s.getExpression().startsWith("Context")||s instanceof Pt||s instanceof wt&&!s.getElement().toString().startsWith("Context"))throw new Ve(K.format("The context path $ is not a valid path in context",t));for(const e of n.getOperations().toArray())if(e!=dt.ARRAY_OPERATOR&&e!=dt.OBJECT_OPERATOR)throw new Ve(K.format("Expected a reference to the context location, but found an expression $",t));for(let r=0;r<n.getTokens().size();r++){let s=n.getTokens().get(r);s instanceof Pt&&n.getTokens().set(r,new wt(t,new kr(s).evaluate(e.getValuesMap())))}return this.modifyContext(e,t,r,n)}modifyContext(e,t,r,n){const s=n.getTokens();s.removeLast();const a=n.getOperations();a.removeLast();let i=e.getContext()?.get(s.removeLast().getExpression());if(E(i))throw new $(K.format("Context doesn't have any element with name '$' ",t));if(a.isEmpty())return i.setElement(r),new X([B.outputOf(new Map)]);let o=i.getElement(),u=a.removeLast(),A=s.removeLast(),l=A instanceof wt?A.getElement():A.getExpression();for(E(o)&&(o=u==dt.OBJECT_OPERATOR?{}:[],i.setElement(o));!a.isEmpty();)o=u==dt.OBJECT_OPERATOR?this.getDataFromObject(o,l,a.peekLast()):this.getDataFromArray(o,l,a.peekLast()),u=a.removeLast(),A=s.removeLast(),l=A instanceof wt?A.getElement():A.getExpression();return u==dt.OBJECT_OPERATOR?this.putDataInObject(o,l,r):this.putDataInArray(o,l,r),new X([B.outputOf(new Map)])}getDataFromArray(e,t,r){if(!Array.isArray(e))throw new $(K.format("Expected an array but found $",e));const n=parseInt(t);if(isNaN(n))throw new $(K.format("Expected an array index but found $",t));if(n<0)throw new $(K.format("Array index is out of bound - $",t));let s=e[n];return E(s)&&(s=r==dt.OBJECT_OPERATOR?{}:[],e[n]=s),s}getDataFromObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new $(K.format("Expected an object but found $",e));let n=e[t];return E(n)&&(n=r==dt.OBJECT_OPERATOR?{}:[],e[t]=n),n}putDataInArray(e,t,r){if(!Array.isArray(e))throw new $(K.format("Expected an array but found $",e));const n=parseInt(t);if(isNaN(n))throw new $(K.format("Expected an array index but found $",t));if(n<0)throw new $(K.format("Array index is out of bound - $",t));e[n]=r}putDataInObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new $(K.format("Expected an object but found $",e));e[t]=r}})])],[a.SYSTEM_LOOP,new Map([V(new class extends Pe{getSignature(){return qr}async internalExecute(e){let t=e.getArguments()?.get("from"),r=e.getArguments()?.get("to"),n=e.getArguments()?.get("step");const s=n>0;let a=t,i=!1;return new X({next(){if(i)return;if(s&&a>=r||!s&&a<=r)return i=!0,B.outputOf(new Map([["value",a]]));const e=B.of(Y.ITERATION,new Map([["index",a]]));return a+=n,e}})}}),V(new class extends Pe{getSignature(){return jr}async internalExecute(e){let t=e.getArguments()?.get("count"),r=0;return new X({next(){if(r>=t)return B.outputOf(new Map([["value",t]]));const e=B.of(Y.ITERATION,new Map([["index",r]]));return++r,e}})}})])],[a.SYSTEM,new Map([V(new Wr),V(new class extends Pe{getSignature(){return Xr}async internalExecute(e){const t=e.getEvents(),r=e.getArguments()?.get("eventName"),n=e?.getArguments()?.get("results").map((t=>{let r=t.value;if(E(r))throw new $("Expect a value object");let n=r.value;return r.isExpression&&(n=new kr(n).evaluate(e.getValuesMap())),[t.name,n]})).reduce(((e,t)=>(e.set(t[0],t[1]),e)),new Map);return t?.has(r)||t?.set(r,[]),t?.get(r)?.push(n),new X([B.outputOf(new Map)])}}),V(new En)])]]),wn=Array.from(On.values()).flatMap((e=>Array.from(e.values()))).map((e=>e.getSignature().getFullName()));class In extends Mn{constructor(){super({find:(e,t)=>On.get(e)?.get(t),filter:e=>Array.from(wn).filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))},new on,new _n,new ot)}}var dn={};t(dn,"StatementExecution",(()=>xn));var Pn={};t(Pn,"StatementMessage",(()=>yn));class yn{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 xn{messages=new Array;dependencies=new Set;constructor(e){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 yn(e,t))}addDependency(e){this.dependencies.add(e)}getDepenedencies(){return this.dependencies}equals(e){if(!(e instanceof xn))return!1;return e.statement.equals(this.statement)}}var vn={};t(vn,"ContextTokenValueExtractor",(()=>Ln));class Ln extends Gr{static PREFIX="Context.";constructor(e){super(),this.context=e}getValueInternal(e){let t=e.split(Gr.REGEX_DOT),r=t[1],n=r.indexOf("["),s=2;return-1!=n&&(r=t[1].substring(0,n),t[1]=t[1].substring(n),s=1),this.retrieveElementFrom(e,t,s,this.context.get(r)?.getElement())}getPrefix(){return Ln.PREFIX}}var Un={};t(Un,"OutputMapTokenValueExtractor",(()=>Vn));class Vn extends Gr{static PREFIX="Steps.";constructor(e){super(),this.output=e}getValueInternal(e){let t=e.split(Gr.REGEX_DOT),r=1,n=this.output.get(t[r++]);if(!n||r>=t.length)return;let s=n.get(t[r++]);if(!s||r>=t.length)return;let a=s.get(t[r++]);return this.retrieveElementFrom(e,t,r,a)}getPrefix(){return Vn.PREFIX}}var Cn={};t(Cn,"ArgumentsTokenValueExtractor",(()=>Gn));class Gn extends Gr{static PREFIX="Arguments.";constructor(e){super(),this.args=e}getValueInternal(e){let t=e.split(Gr.REGEX_DOT),r=t[1],n=r.indexOf("["),s=2;return-1!=n&&(r=t[1].substring(0,n),t[1]=t[1].substring(n),s=1),this.retrieveElementFrom(e,t,s,this.args.get(r))}getPrefix(){return Gn.PREFIX}}var bn={};t(bn,"GraphVertex",(()=>Yn));var Dn={};t(Dn,"ExecutionGraph",(()=>Fn));class Fn{nodeMap=new Map;constructor(e=!1){this.isSubGrph=e}getVerticesData(){return Array.from(this.nodeMap.values()).map((e=>e.getData()))}addVertex(e){if(!this.nodeMap.has(e.getUniqueKey())){let t=new Yn(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 pt(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(const 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 Yn{outVertices=new Map;inVertices=new Set;constructor(e,t){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 re(this,e)),t}addInEdgeTo(e,t){return this.inVertices.add(new re(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=new Fn(!0);var r=new pt(Array.from(this.outVertices.get(e)??[]));for(r.map((e=>e.getData())).forEach((e=>t.addVertex(e)));!r.isEmpty();){var n=r.pop();Array.from(n.outVertices.values()).flatMap((e=>Array.from(e))).forEach((e=>{t.addVertex(e.getData()),r.add(e)}))}return t}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\t\t");return this.getKey()+":\n\tIn: "+e+"\n\tOut: \n\t\t"+t}}var Bn={};t(Bn,"KIRuntime",(()=>Zn));var Hn={};t(Hn,"JsonExpression",(()=>kn));class kn{constructor(e){this.expression=e}getExpression(){return this.expression}}var $n={};let Xn;var Wn;t($n,"ParameterReferenceType",(()=>Xn)),(Wn=Xn||(Xn={})).VALUE="VALUE",Wn.EXPRESSION="EXPRESSION";var jn={};function qn(){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(jn,"FunctionExecutionParameters",(()=>Jn));class Jn{count=0;valueExtractors=new Map;constructor(e,t,r){this.functionRepository=e,this.schemaRepository=t,this.executionId=r??qn()}getExecutionId(){return this.executionId}getContext(){return this.context}setContext(e){this.context=e;let t=new Ln(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 Vn(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(const t of e)this.valueExtractors.set(t.getPrefix(),t);return this}setValuesMap(e){for(const[t,r]of e.entries())this.valueExtractors.set(t,r);return this}}var zn={};let Qn;var Kn;t(zn,"StatementMessageType",(()=>Qn)),(Kn=Qn||(Qn={})).ERROR="ERROR",Kn.WARNING="WARNING",Kn.MESSAGE="MESSAGE";class Zn extends Pe{static PARAMETER_NEEDS_A_VALUE='Parameter "$" needs a value';static STEP_REGEX_PATTERN=new RegExp("Steps\\.([a-zA-Z0-9\\\\-]{1,})\\.([a-zA-Z0-9\\\\-]{1,})","g");static VERSION=1;static MAX_EXECUTION_ITERATIONS=1e7;debugMode=!1;constructor(e,t=!1){if(super(),this.debugMode=t,this.fd=e,this.fd.getVersion()>Zn.VERSION)throw new $("Runtime is at a lower version "+Zn.VERSION+" and trying to run code from version "+this.fd.getVersion()+".")}getSignature(){return this.fd}async getExecutionPlan(e,t){let r=new Fn;for(let n of Array.from(this.fd.getSteps().values()))r.addVertex(this.prepareStatementExecution(n,e,t));let n=this.makeEdges(r);return Array.from(n.getT2().entries()).forEach((e=>{let t=r.getNodeMap().get(e[0])?.getData();t&&t.addMessage(Qn.ERROR,e[1])})),r}async internalExecute(e){e.getContext()||e.setContext(new Map),e.getEvents()||e.setEvents(new Map),e.getSteps()||e.setSteps(new Map),e.getArguments()&&e.addTokenValueExtractor(new Gn(e.getArguments())),this.debugMode&&(console.log(`EID: ${e.getExecutionId()} Executing: ${this.fd.getNamespace()}.${this.fd.getName()}`),console.log(`EID: ${e.getExecutionId()} Parameters: `,e));let t=await this.getExecutionPlan(e.getFunctionRepository(),e.getSchemaRepository());this.debugMode&&console.log(`EID: ${e.getExecutionId()} ${t?.toString()}`);let r=t.getVerticesData().filter((e=>e.getMessages().length)).map((e=>e.getStatement().getStatementName()+": \n"+e.getMessages().join(",")));if(r?.length)throw new $("Please fix the errors in the function definition before execution : \n"+r.join(",\n"));return await this.executeGraph(t,e)}async executeGraph(e,t){let r=new pt;r.addAll(e.getVerticesWithNoIncomingEdges());let n=new pt;for(;!(r.isEmpty()&&n.isEmpty()||t.getEvents()?.has(Y.OUTPUT));)if(await this.processBranchQue(t,r,n),await this.processExecutionQue(t,r,n),t.setCount(t.getCount()+1),t.getCount()==Zn.MAX_EXECUTION_ITERATIONS)throw new $("Execution locked in an infinite loop");if(!e.isSubGraph()&&!t.getEvents()?.size){const e=this.getSignature().getEvents();if(e.size&&e.get(Y.OUTPUT)?.getParameters()?.size)throw new $("No events raised")}const s=Array.from(t.getEvents()?.entries()??[]).flatMap((e=>e[1].map((t=>B.of(e[0],t)))));return s.length||e.isSubGraph()?new X(s):new X([B.of(Y.OUTPUT,new Map)])}async processExecutionQue(e,t,r){if(!t.isEmpty()){let n=t.pop();await this.allDependenciesResolvedVertex(n,e.getSteps())?await this.executeVertex(n,e,r,t,e.getFunctionRepository()):t.add(n)}}async processBranchQue(e,t,r){if(r.length){let n=r.pop();await this.allDependenciesResolvedTuples(n.getT2(),e.getSteps())?await this.executeBranch(e,t,n):r.add(n)}}async executeBranch(e,t,r){let n,s=r.getT4();do{if(await this.executeGraph(r.getT1(),e),n=r.getT3().next(),n&&(e.getSteps()?.has(s.getData().getStatement().getStatementName())||e.getSteps()?.set(s.getData().getStatement().getStatementName(),new Map),e.getSteps()?.get(s.getData().getStatement().getStatementName())?.set(n.getName(),this.resolveInternalExpressions(n.getResult(),e)),this.debugMode)){const t=s.getData().getStatement();console.log(`EID: ${e.getExecutionId()} Step : ${t.getStatementName()} => ${t.getNamespace()}.${t.getName()}`),console.log(`EID: ${e.getExecutionId()} Event : ${n.getName()} : `,e.getSteps().get(t.getStatementName()).get(n.getName()))}}while(n&&n.getName()!=Y.OUTPUT);n?.getName()==Y.OUTPUT&&s.getOutVertices().has(Y.OUTPUT)&&(s?.getOutVertices()?.get(Y.OUTPUT)??[]).forEach((async r=>{await this.allDependenciesResolvedVertex(r,e.getSteps())&&t.add(r)}))}async executeVertex(e,t,r,n,s){let a=e.getData().getStatement(),i=s.find(a.getNamespace(),a.getName());if(!i)throw new $(K.format("$.$ function is not found.",a.getNamespace(),a.getName()));let o=i?.getSignature().getParameters(),E=this.getArgumentsFromParametersMap(t,a,o??new Map);this.debugMode&&(console.log(`EID: ${t.getExecutionId()} Step : ${a.getStatementName()} => ${a.getNamespace()}.${a.getName()}`),console.log(`EID: ${t.getExecutionId()} Arguments : `,E));let u,A=t.getContext();u=i instanceof Zn?new Jn(t.getFunctionRepository(),t.getSchemaRepository(),`${t.getExecutionId()}_${a.getStatementName()}`).setArguments(E).setValuesMap(new Map(Array.from(t.getValuesMap().values()).filter((e=>e.getPrefix()!==Gn.PREFIX&&e.getPrefix()!==Vn.PREFIX&&e.getPrefix()!==Ln.PREFIX)).map((e=>[e.getPrefix(),e])))):new Jn(t.getFunctionRepository(),t.getSchemaRepository(),t.getExecutionId()).setValuesMap(t.getValuesMap()).setContext(A).setArguments(E).setEvents(t.getEvents()).setSteps(t.getSteps()).setStatementExecution(e.getData()).setCount(t.getCount());let l=await i.execute(u),m=l.next();if(!m)throw new $(K.format("Executing $ returned no events",a.getStatementName()));let g=m.getName()==Y.OUTPUT;if(t.getSteps()?.has(a.getStatementName())||t.getSteps().set(a.getStatementName(),new Map),t.getSteps().get(a.getStatementName()).set(m.getName(),this.resolveInternalExpressions(m.getResult(),t)),this.debugMode&&(console.log(`EID: ${t.getExecutionId()} Step : ${a.getStatementName()} => ${a.getNamespace()}.${a.getName()}`),console.log(`EID: ${t.getExecutionId()} Event : ${m.getName()} : `,t.getSteps().get(a.getStatementName()).get(m.getName()))),g){let r=e.getOutVertices().get(Y.OUTPUT);r&&r.forEach((async e=>{await this.allDependenciesResolvedVertex(e,t.getSteps())&&n.add(e)}))}else{let t=e.getSubGraphOfType(m.getName()),n=this.makeEdges(t).getT1();r.push(new se(t,n,l,e))}}resolveInternalExpressions(e,t){return e?Array.from(e.entries()).map((e=>new re(e[0],this.resolveInternalExpression(e[1],t)))).reduce(((e,t)=>(e.set(t.getT1(),t.getT2()),e)),new Map):e}resolveInternalExpression(e,t){if(E(e)||"object"!=typeof e)return e;if(e instanceof kn){return new kr(e.getExpression()).evaluate(t.getValuesMap())}if(Array.isArray(e)){let r=[];for(let n of e)r.push(this.resolveInternalExpression(n,t));return r}if("object"==typeof e){let r={};for(let n of Object.entries(e))r[n[0]]=this.resolveInternalExpression(n[1],t);return r}}allDependenciesResolvedTuples(e,t){for(let r of e){if(!t.has(r.getT1()))return!1;if(!t.get(r.getT1())?.get(r.getT2()))return!1}return!0}allDependenciesResolvedVertex(e,t){return!e.getInVertices().size||0==Array.from(e.getInVertices()).filter((e=>{let r=e.getT1().getData().getStatement().getStatementName(),n=e.getT2();return!(t.has(r)&&t.get(r)?.has(n))})).length}getArgumentsFromParametersMap(e,t,r){return Array.from(t.getParameterMap().entries()).map((t=>{let n,s=Array.from(t[1]?.values()??[]);if(!s?.length)return new re(t[0],n);let a=r.get(t[0]);return a?(n=a.isVariableArgument()?s.sort(((e,t)=>(e.getOrder()??0)-(t.getOrder()??0))).filter((e=>!E(e))).map((t=>this.parameterReferenceEvaluation(e,t))).flatMap((e=>Array.isArray(e)?e:[e])):this.parameterReferenceEvaluation(e,s[0]),new re(t[0],n)):new re(t[0],void 0)})).filter((e=>!E(e.getT2()))).reduce(((e,t)=>(e.set(t.getT1(),t.getT2()),e)),new Map)}parameterReferenceEvaluation(e,t){let r;if(t.getType()==Xn.VALUE)r=this.resolveInternalExpression(t.getValue(),e);else if(t.getType()==Xn.EXPRESSION&&!Z.isNullOrBlank(t.getExpression())){r=new kr(t.getExpression()??"").evaluate(e.getValuesMap())}return r}prepareStatementExecution(e,t,r){let n=new xn(e),s=t.find(e.getNamespace(),e.getName());if(!s)return n.addMessage(Qn.ERROR,K.format("$.$ is not available",e.getNamespace(),e.getName())),n;let a=new Map(s.getSignature().getParameters());if(!e.getParameterMap())return n;for(let t of Array.from(e.getParameterMap().entries())){let e=a.get(t[0]);if(!e)continue;let s=Array.from(t[1]?.values()??[]);if(s.length||e.isVariableArgument()){if(e.isVariableArgument()){s.sort(((e,t)=>(e.getOrder()??0)-(t.getOrder()??0)));for(let t of s)this.parameterReferenceValidation(n,e,t,r)}else if(s.length){let t=s[0];this.parameterReferenceValidation(n,e,t,r)}a.delete(e.getParameterName())}else oe.hasDefaultValueOrNullSchemaType(e.getSchema(),r)||n.addMessage(Qn.ERROR,K.format(Zn.PARAMETER_NEEDS_A_VALUE,e.getParameterName())),a.delete(e.getParameterName())}if(!E(n.getStatement().getDependentStatements()))for(let e of n.getStatement().getDependentStatements().entries())e[1]&&n.addDependency(e[0]);if(a.size)for(let e of Array.from(a.values()))e.isVariableArgument()||oe.hasDefaultValueOrNullSchemaType(e.getSchema(),r)||n.addMessage(Qn.ERROR,K.format(Zn.PARAMETER_NEEDS_A_VALUE,e.getParameterName()));return n}parameterReferenceValidation(e,t,r,n){if(r){if(r.getType()==Xn.VALUE){if(E(r.getValue())&&!oe.hasDefaultValueOrNullSchemaType(t.getSchema(),n)&&e.addMessage(Qn.ERROR,K.format(Zn.PARAMETER_NEEDS_A_VALUE,t.getParameterName())),E(r.getValue()))return;let s=new pt;for(s.push(new re(t.getSchema(),r.getValue()));!s.isEmpty();){let t=s.pop();if(t.getT2()instanceof kn)this.addDependencies(e,t.getT2().getExpression());else{if(E(t.getT1())||E(t.getT1().getType()))continue;if(t.getT1().getType()?.contains(l.ARRAY)&&Array.isArray(t.getT2())){let e=t.getT1().getItems();if(!e)continue;if(e.isSingleType())for(let r of t.getT2())s.push(new re(e.getSingleSchema(),r));else{let r=t.getT2();for(let t=0;t<r.length;t++)s.push(new re(e.getTupleSchema()[t],r[t]))}}else if(t.getT1().getType()?.contains(l.OBJECT)&&"object"==typeof t.getT2()){let r=t.getT1();if(r.getName()===y.EXPRESSION.getName()&&r.getNamespace()===y.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])&&s.push(new re(r.getProperties().get(e[0]),e[1]))}}}}else if(r.getType()==Xn.EXPRESSION)if(Z.isNullOrBlank(r.getExpression()))E(oe.getDefaultValue(t.getSchema(),n))&&e.addMessage(Qn.ERROR,K.format(Zn.PARAMETER_NEEDS_A_VALUE,t.getParameterName()));else try{this.addDependencies(e,r.getExpression())}catch(t){e.addMessage(Qn.ERROR,K.format("Error evaluating $ : $",r.getExpression(),t))}}else E(oe.getDefaultValue(t.getSchema(),n))&&e.addMessage(Qn.ERROR,K.format(Zn.PARAMETER_NEEDS_A_VALUE,t.getParameterName()))}addDependencies(e,t){t&&Array.from(t.match(Zn.STEP_REGEX_PATTERN)??[]).forEach((t=>e.addDependency(t)))}makeEdges(e){let t=e.getNodeMap().values(),r=[],n=new Map;for(let s of Array.from(t))for(let t of s.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)?s.addInEdgeTo(e.getNodeMap().get(i),E):(r.push(new re(i,E)),n.set(s.getData().getStatement().getStatementName(),K.format("Unable to find the step with name $",i)))}return new re(r,n)}}var es={};t(es,"KIRunConstants",(()=>ts));class ts{static NAMESPACE="namespace";static NAME="name";static ID="id";constructor(){}}var rs={};t(rs,"Position",(()=>ns));class ns{static SCHEMA_NAME="Position";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(ns.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["left",S.ofFloat("left")],["top",S.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)}}var ss={};t(ss,"FunctionDefinition",(()=>Rs));var as={};t(as,"Statement",(()=>As));var is={};t(is,"AbstractStatement",(()=>os));class os{override=!1;constructor(e){e&&(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}}var Es={};t(Es,"ParameterReference",(()=>us));class us{static SCHEMA_NAME="ParameterReference";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(us.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["key",S.ofString("key")],["value",S.ofAny("value")],["expression",S.ofString("expression")],["type",S.ofString("type").setEnums(["EXPRESSION","VALUE"])],["order",S.ofInteger("order")]]));constructor(e){if(e instanceof us){let t=e;this.key=t.key,this.type=t.type,this.value=E(t.value)?void 0:JSON.parse(JSON.stringify(t.value)),this.expression=t.expression,this.order=t.order}else this.type=e,this.key=qn()}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){const t=new us(Xn.EXPRESSION).setExpression(e);return[t.getKey(),t]}static ofValue(e){const t=new us(Xn.VALUE).setValue(e);return[t.getKey(),t]}static from(e){return new us(e.type).setValue(e.value).setExpression(e.expression).setKey(e.key).setOrder(e.order)}}class As extends os{static SCHEMA_NAME="Statement";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(As.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["statementName",S.ofString("statementName")],["comment",S.ofString("comment")],["description",S.ofString("description")],["namespace",S.ofString("namespace")],["name",S.ofString("name")],["dependentStatements",S.ofObject("dependentstatement").setAdditionalProperties((new _).setSchemaValue(S.ofBoolean("exists")))],["parameterMap",(new S).setName("parameterMap").setAdditionalProperties((new _).setSchemaValue(S.ofObject("parameterReference").setAdditionalProperties((new _).setSchemaValue(us.SCHEMA))))],["position",ns.SCHEMA]]));constructor(e,t,r){if(super(e instanceof As?e:void 0),e instanceof As){let t=e;this.statementName=t.statementName,this.name=t.name,this.namespace=t.namespace,t.parameterMap&&(this.parameterMap=new Map(Array.from(t.parameterMap.entries()).map((e=>[e[0],new Map(Array.from(e[1].entries()).map((e=>[e[0],new us(e[1])])))])))),t.dependentStatements&&(this.dependentStatements=new Map(Array.from(t.dependentStatements.entries())))}else{if(this.statementName=e,!r||!t)throw new 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}equals(e){if(!(e instanceof As))return!1;return e.statementName==this.statementName}static ofEntry(e){return[e.statementName,e]}static from(e){return new As(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])=>us.from(t))).map((e=>[e.getKey(),e])))])))).setDependentStatements(new Map(Object.entries(e.dependentStatements??{}))).setPosition(ns.from(e.position)).setComment(e.comment).setDescription(e.description)}}var ls={};t(ls,"StatementGroup",(()=>ms));class ms extends os{static SCHEMA_NAME="StatementGroup";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(ms.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["statementGroupName",S.ofString("statementGroupName")],["comment",S.ofString("comment")],["description",S.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 ms(e.statementGroupName,new Map(Object.entries(e.statements||{}).map((([e,t])=>[e,"true"==(""+t)?.toLowerCase()])))).setPosition(ns.from(e.position)).setComment(e.comment).setDescription(e.description)}}const gs=(new S).setNamespace(a.SYSTEM).setName("FunctionDefinition").setProperties(new Map([["name",S.ofString("name")],["namespace",S.ofString("namespace")],["parameters",S.ofArray("parameters",y.SCHEMA)],["events",S.ofObject("events").setAdditionalProperties((new _).setSchemaValue(Y.SCHEMA))],["steps",S.ofObject("steps").setAdditionalProperties((new _).setSchemaValue(As.SCHEMA))]]));gs.getProperties()?.set("parts",S.ofArray("parts",gs));class Rs extends j{static SCHEMA=gs;version=1;constructor(e){super(e)}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 Rs(e.name).setSteps(new Map(Object.values(e.steps??{}).filter((e=>!!e)).map((e=>[e.statementName,As.from(e)])))).setStepGroups(new Map(Object.values(e.stepGroups??{}).filter((e=>!!e)).map((e=>[e.statementGroupName,ms.from(e)])))).setParts(Array.from(e.parts??[]).filter((e=>!!e)).map((e=>Rs.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,y.from(e)])))):new Rs("unknown")}}var Ts={};t(Ts,"Argument",(()=>ps));class ps{argumentIndex=0;constructor(e,t,r){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 ps(0,e,t)}}var hs={};e(hs,Or),e(hs,Pr),e(hs,xr),e(hs,Lr),e(hs,wr);var cs={};e(cs,Vt),e(cs,Gt),e(cs,Dt),e(cs,Yt),e(cs,Ht),e(cs,$t),e(cs,Wt),e(cs,vt),e(cs,qt),e(cs,zt),e(cs,Kt),e(cs,er),e(cs,rr),e(cs,sr),e(cs,ir),e(cs,Er),e(cs,Ar),e(cs,mr),e(cs,Rr),e(cs,cr),e(cs,pr),e(cs,fr),e(cs,Sr),e(cs,xt),e(module.exports,r),e(module.exports,U),e(module.exports,{}),e(module.exports,Le),e(module.exports,C),e(module.exports,o),e(module.exports,gt),e(module.exports,ct),e(module.exports,Q),e(module.exports,z),e(module.exports,te),e(module.exports,be),e(module.exports,Rt),e(module.exports,dn),e(module.exports,Pn),e(module.exports,Et),e(module.exports,vn),e(module.exports,Un),e(module.exports,Cn),e(module.exports,bn),e(module.exports,{}),e(module.exports,Dn),e(module.exports,Bn),e(module.exports,zn),e(module.exports,jn),e(module.exports,mt),e(module.exports,Cr),e(module.exports,Vr),e(module.exports,yt),e(module.exports,It),e(module.exports,St),e(module.exports,ft),e(module.exports,Ot),e(module.exports,{}),e(module.exports,q),e(module.exports,s),e(module.exports,Hn),e(module.exports,n),e(module.exports,he),e(module.exports,ge),e(module.exports,Te),e(module.exports,le),e(module.exports,Ee),e(module.exports,_e),e(module.exports,Ne),e(module.exports,J),e(module.exports,ae),e(module.exports,O),e(module.exports,Ae),e(module.exports,i),e(module.exports,c),e(module.exports,g),e(module.exports,R),e(module.exports,T),e(module.exports,A),e(module.exports,ee),e(module.exports,Se),e(module.exports,Sn),e(module.exports,es),e(module.exports,M),e(module.exports,H),e(module.exports,rs),e(module.exports,ss),e(module.exports,$n),e(module.exports,D),e(module.exports,is),e(module.exports,as),e(module.exports,{}),e(module.exports,ls),e(module.exports,W),e(module.exports,F),e(module.exports,I),e(module.exports,Ts),e(module.exports,Es),e(module.exports,Ue),e(module.exports,k),e(module.exports,hs),e(module.exports,cs),e(module.exports,Fr);
2
2
  //# sourceMappingURL=index.js.map