@fincity/kirun-js 1.6.16 → 1.6.17

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 SYSTEM_OBJECT="System.Object";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 p={};t(p,"MultipleType",(()=>c));var R={};t(R,"Type",(()=>T));class T{}class c extends T{constructor(e){super(),this.type=e instanceof c?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 h={};t(h,"SingleType",(()=>N));class N extends T{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 c(new Set(e))}static from(e){return"string"==typeof e?new N(l[e]):Array.isArray(e)?new c(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 c(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 C(e){return[e.getSignature().getName(),e]}t(U,"KIRunFunctionRepository",(()=>Un));var V={};t(V,"MapUtil",(()=>G)),t(V,"MapEntry",(()=>b));class G{static of(e,t,r,n,s,a,i,o,u,A,l,m,g,p,R,T,c,h,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(p)||_.set(g,p),E(R)||E(T)||_.set(R,T),E(c)||E(h)||_.set(c,h),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",(()=>j));var k={};t(k,"KIRuntimeException",(()=>$));class $ extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class j{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 X={};t(X,"FunctionSignature",(()=>W));class W{static SCHEMA_NAME="FunctionSignature";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(W.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 W?(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(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",(()=>pe));class pe{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 Re={};t(Re,"NullValidator",(()=>Te));class Te{static validate(e,t,r){if(r)throw new ie(de.path(e),"Expected a null but found "+r);return r}constructor(){}}var ce={};t(ce,"NumberValidator",(()=>he));class he{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=he.extractNumber(e,t,r,n);return he.checkRange(t,r,n,s),he.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()&&he.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()&&he.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()&&he.numberCompare(n,t.getExclusiveMinimum())<=0)throw new ie(de.path(e),r.toString()+" should be greater than "+t.getExclusiveMinimum());if(t.getExclusiveMaximum()&&he.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)he.validate(t,e,r,s);else if(t==l.BOOLEAN)pe.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.");Te.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 W(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 j([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 j([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 j([B.outputOf(new Map([]))])}}class Le extends ye{constructor(){super("ArrayToObjects",[ye.PARAMETER_ARRAY_SOURCE,y.of("keyName",S.ofString("keyName"),!0)],ye.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(Le.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get("keyName");if(!t?.length)return new j([B.outputOf(new Map([[ye.EVENT_RESULT_NAME,[]]]))]);let n=t.map((e=>{const t={};if(Array.isArray(e))if(r.length)r.forEach(((r,n)=>{t[r]=e[n]}));else for(let r=0;r<e.length;r++)t[`value${r+1}`]=e[r];else t[r.length?r[0]:"value"]=e;return t}));return new j([B.outputOf(new Map([[ye.EVENT_RESULT_NAME,n]]))])}}var Ue={};t(Ue,"PrimitiveUtil",(()=>Ge));var Ce={};t(Ce,"ExecutionException",(()=>Ve));class Ve extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class Ge{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):Ge.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):Ge.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 be extends ye{constructor(){super("BinarySearch",[be.PARAMETER_ARRAY_SOURCE_PRIMITIVE,be.PARAMETER_INT_SOURCE_FROM,be.PARAMETER_FIND_PRIMITIVE,be.PARAMETER_INT_LENGTH],be.EVENT_INDEX)}async internalExecute(e){let t=e?.getArguments()?.get(be.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(be.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(be.PARAMETER_FIND_PRIMITIVE.getParameterName()),s=e?.getArguments()?.get(be.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==Ge.compare(t[e],n)){a=e;break}Ge.compare(t[e],n)>0?s=e-1:r=e+1}return new j([B.outputOf(new Map([[be.EVENT_INDEX.getName(),a]]))])}}var De={};t(De,"ArrayUtil",(()=>Fe));class Fe{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 Ye extends ye{constructor(){super("Compare",Fe.of(Ye.PARAMETER_ARRAY_SOURCE,Ye.PARAMETER_INT_SOURCE_FROM,Ye.PARAMETER_ARRAY_FIND,Ye.PARAMETER_INT_FIND_FROM,Ye.PARAMETER_INT_LENGTH),Ye.EVENT_RESULT_INTEGER)}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_ARRAY_FIND.getParameterName()),s=e?.getArguments()?.get(Ye.PARAMETER_INT_FIND_FROM.getParameterName()),a=e?.getArguments()?.get(Ye.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 j(Fe.of(B.outputOf(G.of(Ye.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 Be extends ye{constructor(){super("Copy",[Be.PARAMETER_ARRAY_SOURCE,Be.PARAMETER_INT_SOURCE_FROM,Be.PARAMETER_INT_LENGTH,Be.PARAMETER_BOOLEAN_DEEP_COPY],Be.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(Be.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Be.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(Be.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(Be.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 j([B.outputOf(G.of(Be.EVENT_RESULT_NAME,a))])}}class He 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(He.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(He.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!=Ge.compare(t[e],r[s])||n.add(t[e]);return s=t.filter((e=>!n.has(e))),t.splice(0,t.length,...s),new j([B.outputOf(new Map([]))])}}class ke extends ye{constructor(){super("DeleteFirst",[ke.PARAMETER_ARRAY_SOURCE],ke.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(ke.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new $("Given source array is empty");return t.shift(),new j([B.outputOf(new Map([]))])}}class $e extends ye{constructor(){super("DeleteFrom",[$e.PARAMETER_ARRAY_SOURCE,$e.PARAMETER_INT_SOURCE_FROM,$e.PARAMETER_INT_LENGTH],$e.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get($e.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get($e.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get($e.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 j([B.outputOf(new Map([]))])}}class je extends ye{constructor(){super("DeleteLast",[je.PARAMETER_ARRAY_SOURCE],je.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(je.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new $("Given source array is empty");return t.pop(),new j([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 j([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 Ye,r=(await t.execute(e)).allResults()[0].getResult().get(We.EVENT_RESULT_NAME);return new j([B.outputOf(G.of(We.EVENT_RESULT_NAME,0==r))])}}class qe extends ye{constructor(){super("Fill",[qe.PARAMETER_ARRAY_SOURCE,qe.PARAMETER_INT_SOURCE_FROM,qe.PARAMETER_INT_LENGTH,qe.PARAMETER_ANY],qe.EVENT_RESULT_EMPTY)}async internalExecute(e){var t=e?.getArguments()?.get(qe.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(qe.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(qe.PARAMETER_INT_LENGTH.getParameterName()),s=e?.getArguments()?.get(qe.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 j([B.outputOf(G.of())])}}class Je extends ye{constructor(){super("Frequency",[Je.PARAMETER_ARRAY_SOURCE,Je.PARAMETER_ANY,Je.PARAMETER_INT_SOURCE_FROM,Je.PARAMETER_INT_LENGTH],Je.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(Je.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Je.PARAMETER_ANY.getParameterName()),n=e?.getArguments()?.get(Je.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(Je.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)return new j([B.outputOf(new Map([[Je.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==Ge.compare(t[e],r)&&i++;return new j([B.outputOf(new Map([[Je.EVENT_RESULT_INTEGER.getName(),i]]))])}}class ze extends ye{constructor(){super("IndexOf",[ze.PARAMETER_ARRAY_SOURCE,ze.PARAMETER_ANY_NOT_NULL,ze.PARAMETER_INT_FIND_FROM],ze.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(ze.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(ze.PARAMETER_ANY_NOT_NULL.getParameterName());let n=e?.getArguments()?.get(ze.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new j([B.outputOf(new Map([[ze.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==Ge.compare(t[e],r)){s=e;break}return new j([B.outputOf(new Map([[ze.EVENT_RESULT_INTEGER.getName(),s]]))])}}class Qe extends ye{constructor(){super("IndexOfArray",[Qe.PARAMETER_ARRAY_SOURCE,Qe.PARAMETER_ARRAY_SECOND_SOURCE,Qe.PARAMETER_INT_FIND_FROM],Qe.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(Qe.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Qe.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(Qe.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length||0==r.length)return new j([B.outputOf(new Map([[Qe.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==Ge.compare(t[e],r[n])){for(;n<s&&0==Ge.compare(t[e+n],r[n]);)n++;if(n==s){a=e;break}}}return new j([B.outputOf(new Map([[Qe.EVENT_RESULT_INTEGER.getName(),a]]))])}}class Ke extends ye{constructor(){super("LastIndexOf",[Ke.PARAMETER_ARRAY_SOURCE,Ke.PARAMETER_ANY_NOT_NULL,Ke.PARAMETER_INT_FIND_FROM],Ke.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(Ke.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(Ke.PARAMETER_ANY_NOT_NULL.getParameterName());let n=e?.getArguments()?.get(Ke.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new j([B.outputOf(new Map([[Ke.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==Ge.compare(t[e],r)){s=e;break}return new j([B.outputOf(new Map([[Ke.EVENT_RESULT_INTEGER.getName(),s]]))])}}class Ze extends ye{constructor(){super("LastIndexOfArray",[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)return new j([B.outputOf(new Map([[Ze.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==Ge.compare(t[e],r[n])){for(;n<s&&0==Ge.compare(t[e+n],r[n]);)n++;n==s&&(a=e)}}return new j([B.outputOf(new Map([[Ze.EVENT_RESULT_INTEGER.getName(),a]]))])}}class et extends ye{constructor(){super("Max",[et.PARAMETER_ARRAY_SOURCE_PRIMITIVE],et.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(et.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];Ge.comparePrimitive(r,n)>=0||(r=n)}return new j([B.outputOf(new Map([[et.EVENT_RESULT_ANY.getName(),r]]))])}}class tt extends ye{constructor(){super("Min",[tt.PARAMETER_ARRAY_SOURCE_PRIMITIVE],tt.EVENT_RESULT_ANY)}async internalExecute(e){let t,r=e?.getArguments()?.get(tt.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||Ge.comparePrimitive(r[e],t)<0)&&(t=r[e]);return new j([B.outputOf(new Map([[tt.EVENT_RESULT_ANY.getName(),t]]))])}}class rt extends ye{constructor(){super("MisMatch",[rt.PARAMETER_ARRAY_SOURCE,rt.PARAMETER_INT_FIND_FROM,rt.PARAMETER_ARRAY_SECOND_SOURCE,rt.PARAMETER_INT_SECOND_SOURCE_FROM,rt.PARAMETER_INT_LENGTH],rt.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(rt.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(rt.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(rt.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(rt.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(rt.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 j([B.outputOf(new Map([[rt.EVENT_RESULT_INTEGER.getName(),E]]))])}}class nt extends ye{constructor(){super("Reverse",[nt.PARAMETER_ARRAY_SOURCE,nt.PARAMETER_INT_SOURCE_FROM,nt.PARAMETER_INT_LENGTH],nt.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(nt.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(nt.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(nt.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 j([B.outputOf(new Map([]))])}}class st extends ye{constructor(){super("Rotate",[st.PARAMETER_ARRAY_SOURCE,st.PARAMETER_ROTATE_LENGTH],st.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(st.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(st.PARAMETER_ROTATE_LENGTH.getParameterName());if(0==t.length)return new j([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 j([B.outputOf(new Map([]))])}rotate(e,t,r){for(;t<r;){let n=e[t];e[t++]=e[r],e[r--]=n}}}class at extends ye{constructor(){super("Shuffle",[at.PARAMETER_ARRAY_SOURCE],at.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(at.PARAMETER_ARRAY_SOURCE.getParameterName());if(t.length<=1)return new j([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 j([B.outputOf(new Map([]))])}}class it extends ye{constructor(){super("Sort",[it.PARAMETER_ARRAY_SOURCE_PRIMITIVE,it.PARAMETER_INT_FIND_FROM,it.PARAMETER_INT_LENGTH,it.PARAMETER_BOOLEAN_ASCENDING],it.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(it.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName()),r=e?.getArguments()?.get(it.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(it.PARAMETER_INT_LENGTH.getParameterName()),s=e?.getArguments()?.get(it.PARAMETER_BOOLEAN_ASCENDING.getParameterName());if(0==t.length)return new j([B.outputOf(new Map([[it.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 j([B.outputOf(new Map([[it.EVENT_RESULT_EMPTY.getName(),t]]))])}}class ot extends ye{constructor(){super("SubArray",[ot.PARAMETER_ARRAY_SOURCE,ot.PARAMETER_INT_FIND_FROM,ot.PARAMETER_INT_LENGTH],ot.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(ot.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ot.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(ot.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),n<=0)return new j([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 j([B.outputOf(new Map([[ot.EVENT_RESULT_ARRAY.getName(),s]]))])}}class Et{static repoMap=G.ofArrayEntries(C(new xe),C(new ve),C(new be),C(new Ye),C(new Be),C(new He),C(new ke),C(new $e),C(new je),C(new Xe),C(new We),C(new qe),C(new Je),C(new ze),C(new Qe),C(new Ke),C(new Ze),C(new et),C(new tt),C(new rt),C(new nt),C(new st),C(new at),C(new it),C(new ot),C(new Le));static filterableNames=Array.from(Et.repoMap.values()).map((e=>e.getSignature().getFullName()));find(e,t){if(e==a.SYSTEM_ARRAY)return Et.repoMap.get(t)}filter(e){return Et.filterableNames.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}var ut={};t(ut,"ContextElement",(()=>At));class At{static NULL=new At(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 lt=new W("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 mt=new W("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 gt={};t(gt,"Expression",(()=>yt));var pt={};t(pt,"LinkedList",(()=>ct));var Rt={};function Tt(e,t){let r=new ct;r.push(e);let n=new ct;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 ct{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 ct,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 Nt={};t(Nt,"StringBuilder",(()=>ft));class ft{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 _t={};t(_t,"ExpressionEvaluationException",(()=>St));class St extends Error{constructor(e,t,r){super(K.format("$ : $",e,t)),this.cause=r}getCause(){return this.cause}}var Mt={};t(Mt,"ExpressionToken",(()=>Ot));class Ot{constructor(e){this.expression=e}getExpression(){return this.expression}toString(){return this.expression}}var wt={};t(wt,"ExpressionTokenValue",(()=>It));class It extends Ot{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 dt={};t(dt,"Operation",(()=>Pt));class Pt{static MULTIPLICATION=new Pt("*");static DIVISION=new Pt("/");static INTEGER_DIVISION=new Pt("//");static MOD=new Pt("%");static ADDITION=new Pt("+");static SUBTRACTION=new Pt("-");static NOT=new Pt("not",void 0,!0);static AND=new Pt("and",void 0,!0);static OR=new Pt("or",void 0,!0);static LESS_THAN=new Pt("<");static LESS_THAN_EQUAL=new Pt("<=");static GREATER_THAN=new Pt(">");static GREATER_THAN_EQUAL=new Pt(">=");static EQUAL=new Pt("=");static NOT_EQUAL=new Pt("!=");static BITWISE_AND=new Pt("&");static BITWISE_OR=new Pt("|");static BITWISE_XOR=new Pt("^");static BITWISE_COMPLEMENT=new Pt("~");static BITWISE_LEFT_SHIFT=new Pt("<<");static BITWISE_RIGHT_SHIFT=new Pt(">>");static BITWISE_UNSIGNED_RIGHT_SHIFT=new Pt(">>>");static UNARY_PLUS=new Pt("UN: +","+");static UNARY_MINUS=new Pt("UN: -","-");static UNARY_LOGICAL_NOT=new Pt("UN: not","not");static UNARY_BITWISE_COMPLEMENT=new Pt("UN: ~","~");static ARRAY_OPERATOR=new Pt("[");static OBJECT_OPERATOR=new Pt(".");static NULLISH_COALESCING_OPERATOR=new Pt("??");static CONDITIONAL_TERNARY_OPERATOR=new Pt("?");static VALUE_OF=new Map([["MULTIPLICATION",Pt.MULTIPLICATION],["DIVISION",Pt.DIVISION],["INTEGER_DIVISON",Pt.INTEGER_DIVISION],["MOD",Pt.MOD],["ADDITION",Pt.ADDITION],["SUBTRACTION",Pt.SUBTRACTION],["NOT",Pt.NOT],["AND",Pt.AND],["OR",Pt.OR],["LESS_THAN",Pt.LESS_THAN],["LESS_THAN_EQUAL",Pt.LESS_THAN_EQUAL],["GREATER_THAN",Pt.GREATER_THAN],["GREATER_THAN_EQUAL",Pt.GREATER_THAN_EQUAL],["EQUAL",Pt.EQUAL],["NOT_EQUAL",Pt.NOT_EQUAL],["BITWISE_AND",Pt.BITWISE_AND],["BITWISE_OR",Pt.BITWISE_OR],["BITWISE_XOR",Pt.BITWISE_XOR],["BITWISE_COMPLEMENT",Pt.BITWISE_COMPLEMENT],["BITWISE_LEFT_SHIFT",Pt.BITWISE_LEFT_SHIFT],["BITWISE_RIGHT_SHIFT",Pt.BITWISE_RIGHT_SHIFT],["BITWISE_UNSIGNED_RIGHT_SHIFT",Pt.BITWISE_UNSIGNED_RIGHT_SHIFT],["UNARY_PLUS",Pt.UNARY_PLUS],["UNARY_MINUS",Pt.UNARY_MINUS],["UNARY_LOGICAL_NOT",Pt.UNARY_LOGICAL_NOT],["UNARY_BITWISE_COMPLEMENT",Pt.UNARY_BITWISE_COMPLEMENT],["ARRAY_OPERATOR",Pt.ARRAY_OPERATOR],["OBJECT_OPERATOR",Pt.OBJECT_OPERATOR],["NULLISH_COALESCING_OPERATOR",Pt.NULLISH_COALESCING_OPERATOR],["CONDITIONAL_TERNARY_OPERATOR",Pt.CONDITIONAL_TERNARY_OPERATOR]]);static UNARY_OPERATORS=new Set([Pt.ADDITION,Pt.SUBTRACTION,Pt.NOT,Pt.BITWISE_COMPLEMENT,Pt.UNARY_PLUS,Pt.UNARY_MINUS,Pt.UNARY_LOGICAL_NOT,Pt.UNARY_BITWISE_COMPLEMENT]);static ARITHMETIC_OPERATORS=new Set([Pt.MULTIPLICATION,Pt.DIVISION,Pt.INTEGER_DIVISION,Pt.MOD,Pt.ADDITION,Pt.SUBTRACTION]);static LOGICAL_OPERATORS=new Set([Pt.NOT,Pt.AND,Pt.OR,Pt.LESS_THAN,Pt.LESS_THAN_EQUAL,Pt.GREATER_THAN,Pt.GREATER_THAN_EQUAL,Pt.EQUAL,Pt.NOT_EQUAL,Pt.NULLISH_COALESCING_OPERATOR]);static BITWISE_OPERATORS=new Set([Pt.BITWISE_AND,Pt.BITWISE_COMPLEMENT,Pt.BITWISE_LEFT_SHIFT,Pt.BITWISE_OR,Pt.BITWISE_RIGHT_SHIFT,Pt.BITWISE_UNSIGNED_RIGHT_SHIFT,Pt.BITWISE_XOR]);static CONDITIONAL_OPERATORS=new Set([Pt.CONDITIONAL_TERNARY_OPERATOR]);static OPERATOR_PRIORITY=new Map([[Pt.UNARY_PLUS,1],[Pt.UNARY_MINUS,1],[Pt.UNARY_LOGICAL_NOT,1],[Pt.UNARY_BITWISE_COMPLEMENT,1],[Pt.ARRAY_OPERATOR,1],[Pt.OBJECT_OPERATOR,1],[Pt.MULTIPLICATION,2],[Pt.DIVISION,2],[Pt.INTEGER_DIVISION,2],[Pt.MOD,2],[Pt.ADDITION,3],[Pt.SUBTRACTION,3],[Pt.BITWISE_LEFT_SHIFT,4],[Pt.BITWISE_RIGHT_SHIFT,4],[Pt.BITWISE_UNSIGNED_RIGHT_SHIFT,4],[Pt.LESS_THAN,5],[Pt.LESS_THAN_EQUAL,5],[Pt.GREATER_THAN,5],[Pt.GREATER_THAN_EQUAL,5],[Pt.EQUAL,6],[Pt.NOT_EQUAL,6],[Pt.BITWISE_AND,7],[Pt.BITWISE_XOR,8],[Pt.BITWISE_OR,9],[Pt.AND,10],[Pt.OR,11],[Pt.NULLISH_COALESCING_OPERATOR,11],[Pt.CONDITIONAL_TERNARY_OPERATOR,12]]);static OPERATORS=new Set([...Array.from(Pt.ARITHMETIC_OPERATORS),...Array.from(Pt.LOGICAL_OPERATORS),...Array.from(Pt.BITWISE_OPERATORS),Pt.ARRAY_OPERATOR,Pt.OBJECT_OPERATOR,...Array.from(Pt.CONDITIONAL_OPERATORS)].map((e=>e.getOperator())));static OPERATORS_WITHOUT_SPACE_WRAP=new Set([...Array.from(Pt.ARITHMETIC_OPERATORS),...Array.from(Pt.LOGICAL_OPERATORS),...Array.from(Pt.BITWISE_OPERATORS),Pt.ARRAY_OPERATOR,Pt.OBJECT_OPERATOR,...Array.from(Pt.CONDITIONAL_OPERATORS)].filter((e=>!e.shouldBeWrappedInSpace())).map((e=>e.getOperator())));static OPERATION_VALUE_OF=new Map(Array.from(Pt.VALUE_OF.entries()).map((([e,t])=>[t.getOperator(),t])));static UNARY_MAP=new Map([[Pt.ADDITION,Pt.UNARY_PLUS],[Pt.SUBTRACTION,Pt.UNARY_MINUS],[Pt.NOT,Pt.UNARY_LOGICAL_NOT],[Pt.BITWISE_COMPLEMENT,Pt.UNARY_BITWISE_COMPLEMENT],[Pt.UNARY_PLUS,Pt.UNARY_PLUS],[Pt.UNARY_MINUS,Pt.UNARY_MINUS],[Pt.UNARY_LOGICAL_NOT,Pt.UNARY_LOGICAL_NOT],[Pt.UNARY_BITWISE_COMPLEMENT,Pt.UNARY_BITWISE_COMPLEMENT]]);static BIGGEST_OPERATOR_SIZE=Array.from(Pt.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 Pt.VALUE_OF.get(e)}toString(){return this.operator}}class yt extends Ot{tokens=new ct;ops=new ct;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 ft(""),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 St(this.expression,"Extra closing parenthesis found");case"]":throw new St(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()==Pt.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()==Pt.ARRAY_OPERATOR&&(i=this.process(e,n,s),s=i.getT1(),a=i.getT2())}++s}if(t=n.toString(),!Z.isNullOrBlank(t)){if(Pt.OPERATORS.has(t))throw new St(this.expression,"Expression is ending with an operator");this.tokens.push(new Ot(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 St(this.expression,"Missing string ending marker "+t);let a=new re(s,!1);return this.tokens.push(new It(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 yt(t.toString())),t.setLength(0),new re(r,!1)}processOthers(e,t,r,n,s,a){let i=t-s;i=i<Pt.BIGGEST_OPERATOR_SIZE?i:Pt.BIGGEST_OPERATOR_SIZE;for(let e=i;e>0;e--){let t=this.expression.substring(s,s+e);if(Pt.OPERATORS_WITHOUT_SPACE_WRAP.has(t))return Z.isNullOrBlank(n)||(this.tokens.push(new Ot(n)),a=!1),this.checkUnaryOperator(this.tokens,this.ops,Pt.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 St(this.expression,"Ternary operator is followed by an operator");""!=r.trim()&&(this.tokens.push(new yt(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 St(this.expression,"':' operater is missing");if(n>=e)throw new St(this.expression,"Third part of the ternary expression is missing");for(;!this.ops.isEmpty()&&this.hasPrecedence(Pt.CONDITIONAL_TERNARY_OPERATOR,this.ops.peek());){let e=this.ops.pop();if(Pt.UNARY_OPERATORS.has(e)){const t=this.tokens.pop();this.tokens.push(new yt("",t,void 0,e))}else{let t=this.tokens.pop(),r=this.tokens.pop();this.tokens.push(new yt("",r,t,e))}}this.ops.push(Pt.CONDITIONAL_TERNARY_OPERATOR),this.tokens.push(new yt(this.expression.substring(o,n-1)));const E=this.expression.substring(n);if(""===E.trim())throw new St(this.expression,"Third part of the ternary expression is missing");return this.tokens.push(new yt(E)),e-1}processSubExpression(e,t,r,n,s){if(Pt.OPERATORS.has(r))this.checkUnaryOperator(this.tokens,this.ops,Pt.OPERATION_VALUE_OF.get(r),s),t.setLength(0);else if(!Z.isNullOrBlank(r))throw new St(this.expression,K.format("Unkown token : $ found.",r));let a=1;const i=new ft;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 St(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 yt(i.toString().trim())),n}processTokenSepearator(e,t,r){return Z.isNullOrBlank(t)||(Pt.OPERATORS.has(t)?(this.checkUnaryOperator(this.tokens,this.ops,Pt.OPERATION_VALUE_OF.get(t),r),r=!0):(this.tokens.push(new Ot(t)),r=!1)),e.setLength(0),r}checkUnaryOperator(e,t,r,n){if(r)if(n||e.isEmpty()){if(!Pt.UNARY_OPERATORS.has(r))throw new St(this.expression,K.format("Extra operator $ found.",r));{const e=Pt.UNARY_MAP.get(r);e&&t.push(e)}}else{for(;!t.isEmpty()&&this.hasPrecedence(r,t.peek());){let r=t.pop();if(Pt.UNARY_OPERATORS.has(r)){let t=e.pop();e.push(new yt("",t,void 0,r))}else{let t=e.pop(),n=e.pop();e.push(new yt("",n,t,r))}}t.push(r)}}hasPrecedence(e,t){let r=Pt.OPERATOR_PRIORITY.get(e),n=Pt.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 ft,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 yt?n[t].toString():n[t]).append(")"),t++;else if(r[s]==Pt.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 xt={};t(xt,"ExpressionEvaluator",(()=>$r));var vt={};t(vt,"LogicalNullishCoalescingOperator",(()=>Ct));var Lt={};t(Lt,"BinaryOperator",(()=>Ut));class Ut{nullCheck(e,t,r){if(E(e)||E(t))throw new Ve(K.format("$ cannot be applied to a null value",r.getOperatorName()))}}class Ct extends Ut{apply(e,t){return E(e)?t:e}}var Vt={};t(Vt,"ArithmeticAdditionOperator",(()=>Gt));class Gt extends Ut{apply(e,t){return this.nullCheck(e,t,Pt.ADDITION),e+t}}var bt={};t(bt,"ArithmeticDivisionOperator",(()=>Dt));class Dt extends Ut{apply(e,t){return this.nullCheck(e,t,Pt.DIVISION),e/t}}var Ft={};t(Ft,"ArithmeticIntegerDivisionOperator",(()=>Yt));class Yt extends Ut{apply(e,t){return this.nullCheck(e,t,Pt.DIVISION),Math.floor(e/t)}}var Bt={};t(Bt,"ArithmeticModulusOperator",(()=>Ht));class Ht extends Ut{apply(e,t){return this.nullCheck(e,t,Pt.MOD),e%t}}var kt={};t(kt,"ArithmeticMultiplicationOperator",(()=>$t));class $t extends Ut{apply(e,t){this.nullCheck(e,t,Pt.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 jt={};t(jt,"ArithmeticSubtractionOperator",(()=>Xt));class Xt extends Ut{apply(e,t){return this.nullCheck(e,t,Pt.SUBTRACTION),e-t}}var Wt={};t(Wt,"ArrayOperator",(()=>qt));class qt extends Ut{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 Jt={};t(Jt,"BitwiseAndOperator",(()=>zt));class zt extends Ut{apply(e,t){return this.nullCheck(e,t,Pt.BITWISE_AND),e&t}}var Qt={};t(Qt,"BitwiseLeftShiftOperator",(()=>Kt));class Kt extends Ut{apply(e,t){return this.nullCheck(e,t,Pt.BITWISE_LEFT_SHIFT),e<<t}}var Zt={};t(Zt,"BitwiseOrOperator",(()=>er));class er extends Ut{apply(e,t){return this.nullCheck(e,t,Pt.BITWISE_OR),e|t}}var tr={};t(tr,"BitwiseRightShiftOperator",(()=>rr));class rr extends Ut{apply(e,t){return this.nullCheck(e,t,Pt.BITWISE_RIGHT_SHIFT),e>>t}}var nr={};t(nr,"BitwiseUnsignedRightShiftOperator",(()=>sr));class sr extends Ut{apply(e,t){return this.nullCheck(e,t,Pt.BITWISE_UNSIGNED_RIGHT_SHIFT),e>>>t}}var ar={};t(ar,"BitwiseXorOperator",(()=>ir));class ir extends Ut{apply(e,t){return this.nullCheck(e,t,Pt.BITWISE_XOR),e^t}}var or={};t(or,"LogicalAndOperator",(()=>Er));class Er extends Ut{apply(e,t){const r=Ge.findPrimitiveNullAsBoolean(e),n=Ge.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 ur={};t(ur,"LogicalEqualOperator",(()=>Ar));class Ar extends Ut{apply(e,t){return Tt(e,t)}}var lr={};t(lr,"LogicalGreaterThanEqualOperator",(()=>mr));class mr extends Ut{apply(e,t){const r=Ge.findPrimitiveNullAsBoolean(e),n=Ge.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 gr={};t(gr,"LogicalGreaterThanOperator",(()=>pr));class pr extends Ut{apply(e,t){const r=Ge.findPrimitiveNullAsBoolean(e),n=Ge.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 Ut{apply(e,t){const r=Ge.findPrimitiveNullAsBoolean(e),n=Ge.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,"LogicalLessThanOperator",(()=>hr));class hr extends Ut{apply(e,t){const r=Ge.findPrimitiveNullAsBoolean(e),n=Ge.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 Nr={};t(Nr,"LogicalNotEqualOperator",(()=>fr));class fr extends Ut{apply(e,t){return!Tt(e,t)}}var _r={};t(_r,"LogicalOrOperator",(()=>Sr));class Sr extends Ut{apply(e,t){const r=Ge.findPrimitiveNullAsBoolean(e),n=Ge.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 Mr={};t(Mr,"ObjectOperator",(()=>Or));class Or extends Ut{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 wr={};t(wr,"ArithmeticUnaryMinusOperator",(()=>Pr));var Ir={};t(Ir,"UnaryOperator",(()=>dr));class dr{nullCheck(e,t){if(E(e))throw new Ve(K.format("$ cannot be applied to a null value",t.getOperatorName()))}}class Pr extends dr{apply(e){return this.nullCheck(e,Pt.UNARY_MINUS),Ge.findPrimitiveNumberType(e),-e}}var yr={};t(yr,"ArithmeticUnaryPlusOperator",(()=>xr));class xr extends dr{apply(e){return this.nullCheck(e,Pt.UNARY_PLUS),Ge.findPrimitiveNumberType(e),e}}var vr={};t(vr,"BitwiseComplementOperator",(()=>Lr));class Lr extends dr{apply(e){this.nullCheck(e,Pt.UNARY_BITWISE_COMPLEMENT);let t=Ge.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 Ur={};t(Ur,"LogicalNotOperator",(()=>Cr));class Cr extends dr{apply(e){return!e&&""!==e}}var Vr={};t(Vr,"LiteralTokenValueExtractor",(()=>Fr));var Gr={};t(Gr,"TokenValueExtractor",(()=>br));class br{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(br.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("length"===n&&"string"==typeof s)return s.length;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 St(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 St(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 St(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 St(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 St(e,K.format("Unable to retrive $ from $ in the path $",t[r],n.toString(),e))}}const Dr=new Map([["true",!0],["false",!1],["null",void 0],["undefined",void 0]]);class Fr extends br{static INSTANCE=new Fr;getValueInternal(e){if(!Z.isNullOrBlank(e))return e=e.trim(),Dr.has(e)?Dr.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 St(e,K.format("Unable to parse the literal or expression $",e),t)}}processString(e){if(!e.endsWith('"'))throw new St(e,K.format("String literal $ is not closed properly",e));return e.substring(1,e.length-1)}getPrefix(){return""}}var Yr={},Br={};t(Br,"ConditionalTernaryOperator",(()=>Hr));class Hr 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(Yr,Br);class kr extends br{static PREFIX="_internal.";values=new Map;addValue(e,t){this.values.set(e,t)}getValueInternal(e){let t=e.split(br.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 kr.PREFIX}}class $r{static UNARY_OPERATORS_MAP=new Map([[Pt.UNARY_BITWISE_COMPLEMENT,new Lr],[Pt.UNARY_LOGICAL_NOT,new Cr],[Pt.UNARY_MINUS,new Pr],[Pt.UNARY_PLUS,new xr]]);static TERNARY_OPERATORS_MAP=new Map([[Pt.CONDITIONAL_TERNARY_OPERATOR,new Hr]]);static BINARY_OPERATORS_MAP=new Map([[Pt.ADDITION,new Gt],[Pt.DIVISION,new Dt],[Pt.INTEGER_DIVISION,new Yt],[Pt.MOD,new Ht],[Pt.MULTIPLICATION,new $t],[Pt.SUBTRACTION,new Xt],[Pt.BITWISE_AND,new zt],[Pt.BITWISE_LEFT_SHIFT,new Kt],[Pt.BITWISE_OR,new er],[Pt.BITWISE_RIGHT_SHIFT,new rr],[Pt.BITWISE_UNSIGNED_RIGHT_SHIFT,new sr],[Pt.BITWISE_XOR,new ir],[Pt.AND,new Er],[Pt.EQUAL,new Ar],[Pt.GREATER_THAN,new pr],[Pt.GREATER_THAN_EQUAL,new mr],[Pt.LESS_THAN,new hr],[Pt.LESS_THAN_EQUAL,new Tr],[Pt.OR,new Sr],[Pt.NOT_EQUAL,new fr],[Pt.NULLISH_COALESCING_OPERATOR,new Ct],[Pt.ARRAY_OPERATOR,new qt],[Pt.OBJECT_OPERATOR,new Or]]);static UNARY_OPERATORS_MAP_KEY_SET=new Set($r.UNARY_OPERATORS_MAP.keys());internalTokenValueExtractor=new kr;constructor(e){e instanceof yt?(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 ct;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 St(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 yt(a))}replaceNestingExpression(e,t,r){let n=e;for(var s of r.toArray()){if(-1==s.getT2())throw new St(e,"Expecting }} nesting path operator to be closed");let r=new $r(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 yt(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($r.UNARY_OPERATORS_MAP_KEY_SET.has(e))n.push(this.applyUnaryOperation(e,this.getValueFromToken(t,o)));else if(e==Pt.OBJECT_OPERATOR||e==Pt.ARRAY_OPERATOR)this.processObjectOrArrayOperator(t,r,n,e,o);else if(e==Pt.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 It)return o.getElement();if(!(o instanceof yt))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 ct,i=new ct;if(!n||!s)return;do{i.push(n),s instanceof yt?a.push(new It(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==Pt.OBJECT_OPERATOR||n==Pt.ARRAY_OPERATOR);s&&(s instanceof yt?a.push(new It(s.toString(),this.evaluateExpression(s,e))):a.push(s)),n&&t.push(n);let o=a.pop();if(o instanceof It&&"object"==typeof o.getTokenValue()){const e=(new Date).getTime()+""+Math.round(1e3*Math.random());this.internalTokenValueExtractor.addValue(e,o.getTokenValue()),o=new Ot(kr.PREFIX+e)}let E=new ft(o instanceof It?o.getTokenValue():o.toString());for(;!a.isEmpty();)o=a.pop(),n=i.pop(),E.append(n.getOperator()).append(o instanceof It?o.getTokenValue():o.toString()),n==Pt.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 It(u,this.getValue(u,e)));else{let e;try{e=Fr.INSTANCE.getValue(u)}catch(t){e=u}r.push(new It(u,e))}}applyTernaryOperation(e,t,r,n){let s=$r.TERNARY_OPERATORS_MAP.get(e);if(!s)throw new St(this.expression,K.format("No operator found to evaluate $",this.getExpression()));return new It(e.toString(),s.apply(t,r,n))}applyBinaryOperation(e,t,r){let n=typeof t,s=typeof r,a=$r.BINARY_OPERATORS_MAP.get(e);if(("object"===n||"object"===s)&&e!==Pt.EQUAL&&e!==Pt.NOT_EQUAL&&e!==Pt.NULLISH_COALESCING_OPERATOR)throw new St(this.expression,K.format("Cannot evaluate expression $ $ $",t,e.getOperator(),r));if(!a)throw new St(this.expression,K.format("No operator found to evaluate $ $ $",t,e.getOperator(),r));return new It(e.toString(),a.apply(t,r))}applyUnaryOperation(e,t){if("object"===typeof t||Array.isArray(t))throw new St(this.expression,K.format("The operator $ cannot be applied to $",e.getOperator(),t));let r=$r.UNARY_OPERATORS_MAP.get(e);if(!r)throw new St(this.expression,K.format("No Unary operator $ is found to apply on $",e.getOperator(),t));return new It(e.toString(),r.apply(t))}getValueFromToken(e,t){return t instanceof yt?this.evaluateExpression(t,e):t instanceof It?t.getElement():this.getValue(t.getExpression(),e)}getValue(e,t){if(e.length<=5)return Fr.INSTANCE.getValue(e);const r=e.substring(0,e.indexOf(".")+1);return(t.get(r)??Fr.INSTANCE).getValue(e)}}const jr=new W("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 W("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 W("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 j([B.of(t?Y.TRUE:Y.FALSE,new Map),B.outputOf(new Map)])}}const qr=new W("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 Jr=new W("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 zr=new W("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 Qr=[()=>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 Kr extends Pe{constructor(e,t,r=1,...n){super(),n&&n.length||(n=[l.DOUBLE]),this.parametersNumber=r,this.mathFunction=t,this.signature=new W(e).setNamespace(a.MATH).setParameters(Qr[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=Ge.findPrimitiveNumberType(e.getArguments()?.get(1==this.parametersNumber?"value":"value1")).getT2();return 2==this.parametersNumber&&(t=Ge.findPrimitiveNumberType(e.getArguments()?.get("value2")).getT2()),new j([B.outputOf(new Map([["value",this.mathFunction.call(this,r,t)]]))])}}class Zr extends Pe{static SIGNATURE=new W("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 Zr.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get("value");return new j([B.outputOf(new Map([["value",Math.sqrt(t.reduce(((e,t)=>e+t*t),0))]]))])}}const en=new W("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 tn=new W("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 rn extends Pe{static SIGNATURE=new W("Random").setNamespace(a.MATH).setEvents(new Map([Y.outputEventMapEntry(G.of("value",S.ofDouble("value")))]));getSignature(){return rn.SIGNATURE}async internalExecute(e){return new j([B.outputOf(new Map([["value",Math.random()]]))])}}class nn extends Pe{static MIN_VALUE="minValue";static MAX_VALUE="maxValue";static VALUE="value";static SIGNATURE=new W("RandomFloat").setParameters(G.of(nn.MIN_VALUE,y.of(nn.MIN_VALUE,S.ofFloat(nn.MIN_VALUE).setDefaultValue(0)),nn.MAX_VALUE,y.of(nn.MAX_VALUE,S.ofFloat(nn.MAX_VALUE).setDefaultValue(2147483647)))).setNamespace(a.MATH).setEvents(new Map([Y.outputEventMapEntry(G.of(nn.VALUE,S.ofFloat(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.random()*(r-t)+t;return new j([B.outputOf(new Map([[nn.VALUE,n]]))])}}class sn extends Pe{static MIN_VALUE="minValue";static MAX_VALUE="maxValue";static VALUE="value";static SIGNATURE=new W("RandomInt").setParameters(G.of(sn.MIN_VALUE,y.of(sn.MIN_VALUE,S.ofInteger(sn.MIN_VALUE).setDefaultValue(0)),sn.MAX_VALUE,y.of(sn.MAX_VALUE,S.ofInteger(sn.MAX_VALUE).setDefaultValue(2147483647)))).setNamespace(a.MATH).setEvents(new Map([Y.outputEventMapEntry(G.of(sn.VALUE,S.ofInteger(sn.VALUE)))]));getSignature(){return sn.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(sn.MIN_VALUE),r=e.getArguments()?.get(sn.MAX_VALUE),n=Math.floor(Math.random()*(r-t)+t);return new j([B.outputOf(new Map([[sn.VALUE,n]]))])}}const an={Absolute:new Kr("Absolute",(e=>Math.abs(e)),1,l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE),ACosine:new Kr("ArcCosine",(e=>Math.acos(e))),ASine:new Kr("ArcSine",(e=>Math.asin(e))),ATangent:new Kr("ArcTangent",(e=>Math.atan(e))),Ceiling:new Kr("Ceiling",(e=>Math.ceil(e))),Cosine:new Kr("Cosine",(e=>Math.cos(e))),CosineH:new Kr("HyperbolicCosine",(e=>Math.cosh(e))),CubeRoot:new Kr("CubeRoot",(e=>Math.cbrt(e))),Exponential:new Kr("Exponential",(e=>Math.exp(e))),Expm1:new Kr("ExponentialMinus1",(e=>Math.expm1(e))),Floor:new Kr("Floor",(e=>Math.floor(e))),Log:new Kr("LogNatural",(e=>Math.log(e))),Log10:new Kr("Log10",(e=>Math.log10(e))),Round:new Kr("Round",(e=>Math.round(e)),1,l.INTEGER,l.LONG),Sine:new Kr("Sine",(e=>Math.sin(e))),SineH:new Kr("HyperbolicSine",(e=>Math.sinh(e))),Tangent:new Kr("Tangent",(e=>Math.tan(e))),TangentH:new Kr("HyperbolicTangent",(e=>Math.tanh(e))),ToDegrees:new Kr("ToDegrees",(e=>e*(Math.PI/180))),ToRadians:new Kr("ToRadians",(e=>e*(180/Math.PI))),SquareRoot:new Kr("SquareRoot",(e=>Math.sqrt(e))),ArcTangent:new Kr("ArcTangent2",((e,t)=>Math.atan2(e,t)),2),Power:new Kr("Power",((e,t)=>Math.pow(e,t)),2),Add:new class extends Pe{getSignature(){return zr}async internalExecute(e){let t=e.getArguments()?.get("value");return new j([B.outputOf(new Map([["value",t.reduce(((e,t)=>e+t),0)]]))])}},Hypotenuse:new Zr,Maximum:new class extends Pe{getSignature(){return en}async internalExecute(e){let t=e.getArguments()?.get("value");return new j([B.outputOf(new Map([["value",t.reduce(((e,t)=>!e&&0!==e||t>e?t:e))]]))])}},Minimum:new class extends Pe{getSignature(){return tn}async internalExecute(e){let t=e.getArguments()?.get("value");return new j([B.outputOf(new Map([["value",t.reduce(((e,t)=>!e&&0!==e||t<e?t:e))]]))])}},Random:new rn,RandomFloat:new nn,RandomInt:new sn},on=Object.values(an).map((e=>e.getSignature().getFullName()));class En{find(e,t){if(e==a.MATH)return an[t]}filter(e){return on.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}var un={};function An(e){return e?structuredClone?structuredClone(e):JSON.parse(JSON.stringify(e)):e}t(un,"duplicate",(()=>An));class ln extends Pe{constructor(e,t){super(),this.signature=new W(e).setNamespace(a.SYSTEM_OBJECT).setParameters(new Map([y.ofEntry("source",S.ofAny("source"))])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",t]]))]))}getSignature(){return this.signature}}const mn={ObjectValues:new class extends ln{constructor(){super("ObjectValues",S.ofArray("value",S.ofAny("value")))}async internalExecute(e){var t=e.getArguments()?.get("source");if(E(t))return new j([B.outputOf(new Map([["value",[]]]))]);let r=Object.entries(An(t)).sort(((e,t)=>e[0].localeCompare(t[0]))).map((e=>e[1]));return new j([B.outputOf(new Map([["value",r]]))])}},ObjectKeys:new class extends ln{constructor(){super("ObjectKeys",S.ofArray("value",S.ofString("value")))}async internalExecute(e){var t=e.getArguments()?.get("source");if(E(t))return new j([B.outputOf(new Map([["value",[]]]))]);let r=Object.keys(An(t)).sort(((e,t)=>e.localeCompare(t)));return new j([B.outputOf(new Map([["value",r]]))])}},ObjectEntries:new class extends ln{constructor(){super("ObjectEntries",S.ofArray("value",S.ofArray("tuple",S.ofString("key"),S.ofAny("value"))))}async internalExecute(e){var t=e.getArguments()?.get("source");if(E(t))return new j([B.outputOf(new Map([["value",[]]]))]);let r=Object.entries(An(t)).sort(((e,t)=>e[0].localeCompare(t[0])));return new j([B.outputOf(new Map([["value",r]]))])}},ObjectDeleteKey:new class extends Pe{constructor(){super(),this.signature=new W("ObjectDeleteKey").setNamespace(a.SYSTEM_OBJECT).setParameters(new Map([y.ofEntry("source",S.ofAny("source")),y.ofEntry("key",S.ofString("key"))])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",S.ofAny("value")]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get("source"),r=e.getArguments()?.get("key");return E(t)?new j([B.outputOf(new Map([["value",void 0]]))]):(t=An(t),delete t[r],new j([B.outputOf(new Map([["value",t]]))]))}}},gn=Object.values(mn).map((e=>e.getSignature().getFullName()));class pn{find(e,t){if(e==a.SYSTEM_OBJECT)return mn[t]}filter(e){return gn.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}class Rn extends Pe{static VALUES="values";static SIGNATURE=new W("Print").setNamespace(a.SYSTEM).setParameters(new Map([y.ofEntry(Rn.VALUES,S.ofAny(Rn.VALUES),!0)]));getSignature(){return Rn.SIGNATURE}async internalExecute(e){var t=e.getArguments()?.get(Rn.VALUES);return console?.log(...t),new j([B.outputOf(new Map)])}}class Tn 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(Tn.PARAMETER_STRING_NAME,S.ofString(Tn.PARAMETER_STRING_NAME));static PARAMETER_SECOND_STRING=new y(Tn.PARAMETER_SECOND_STRING_NAME,S.ofString(Tn.PARAMETER_SECOND_STRING_NAME));static PARAMETER_THIRD_STRING=new y(Tn.PARAMETER_THIRD_STRING_NAME,S.ofString(Tn.PARAMETER_THIRD_STRING_NAME));static PARAMETER_INDEX=new y(Tn.PARAMETER_INDEX_NAME,S.ofInteger(Tn.PARAMETER_INDEX_NAME));static PARAMETER_SECOND_INDEX=new y(Tn.PARAMETER_SECOND_INDEX_NAME,S.ofInteger(Tn.PARAMETER_SECOND_INDEX_NAME));static PARAMETER_SEARCH_STRING=new y(Tn.PARAMETER_SEARCH_STRING_NAME,S.ofString(Tn.PARAMETER_STRING_NAME));static EVENT_STRING=new Y(Y.OUTPUT,G.of(Tn.EVENT_RESULT_NAME,S.ofString(Tn.EVENT_RESULT_NAME)));static EVENT_BOOLEAN=new Y(Y.OUTPUT,G.of(Tn.EVENT_RESULT_NAME,S.ofBoolean(Tn.EVENT_RESULT_NAME)));static EVENT_INT=new Y(Y.OUTPUT,G.of(Tn.EVENT_RESULT_NAME,S.ofInteger(Tn.EVENT_RESULT_NAME)));static EVENT_ARRAY=new Y(Y.OUTPUT,G.of(Tn.EVENT_RESULT_NAME,S.ofArray(Tn.EVENT_RESULT_NAME)));constructor(e,t,r,...n){super();const s=new Map;n.forEach((e=>s.set(e.getParameterName(),e))),this.signature=new W(t).setNamespace(e).setParameters(s).setEvents(G.of(r.getName(),r))}getSignature(){return this.signature}static ofEntryAsStringBooleanOutput(e,t){return[e,new class extends Tn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Tn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Tn.PARAMETER_SEARCH_STRING_NAME);return new j([B.outputOf(G.of(Tn.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,Tn.EVENT_BOOLEAN,Tn.PARAMETER_STRING,Tn.PARAMETER_SEARCH_STRING)]}static ofEntryAsStringAndIntegerStringOutput(e,t){return[e,new class extends Tn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Tn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Tn.PARAMETER_INDEX_NAME);return new j([B.outputOf(G.of(Tn.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,Tn.EVENT_STRING,Tn.PARAMETER_STRING,Tn.PARAMETER_INDEX)]}static ofEntryAsStringIntegerOutput(e,t){return[e,new class extends Tn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Tn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Tn.PARAMETER_SEARCH_STRING_NAME);return new j([B.outputOf(G.of(Tn.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,Tn.EVENT_INT,Tn.PARAMETER_STRING,Tn.PARAMETER_SEARCH_STRING)]}static ofEntryString(e,t){return[e,new class extends Tn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Tn.PARAMETER_STRING_NAME);return new j([B.outputOf(G.of(Tn.EVENT_RESULT_NAME,t(r)))])}}(a.STRING,e,Tn.EVENT_STRING,Tn.PARAMETER_STRING)]}static ofEntryStringBooleanOutput(e,t){return[e,new class extends Tn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Tn.PARAMETER_STRING_NAME);return new j([B.outputOf(G.of(Tn.EVENT_RESULT_NAME,t(r)))])}}(a.STRING,e,Tn.EVENT_BOOLEAN,Tn.PARAMETER_STRING)]}static ofEntryAsStringStringIntegerIntegerOutput(e,t){return[e,new class extends Tn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Tn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Tn.PARAMETER_SEARCH_STRING_NAME),s=e?.getArguments()?.get(Tn.PARAMETER_INDEX_NAME);return new j([B.outputOf(G.of(Tn.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,Tn.EVENT_INT,Tn.PARAMETER_STRING,Tn.PARAMETER_SEARCH_STRING,Tn.PARAMETER_INDEX)]}static ofEntryAsStringIntegerIntegerStringOutput(e,t){return[e,new class extends Tn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Tn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Tn.PARAMETER_INDEX_NAME),s=e?.getArguments()?.get(Tn.PARAMETER_SECOND_INDEX_NAME);return new j([B.outputOf(G.of(Tn.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,Tn.EVENT_INT,Tn.PARAMETER_STRING,Tn.PARAMETER_INDEX,Tn.PARAMETER_SECOND_INDEX)]}static ofEntryAsStringStringStringStringOutput(e,t){return[e,new class extends Tn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Tn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Tn.PARAMETER_SECOND_STRING_NAME),s=e?.getArguments()?.get(Tn.PARAMETER_THIRD_STRING_NAME);return new j([B.outputOf(G.of(Tn.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,Tn.EVENT_STRING,Tn.PARAMETER_STRING,Tn.PARAMETER_SECOND_STRING,Tn.PARAMETER_THIRD_STRING)]}}class cn extends Pe{static VALUE="value";static SCHEMA=(new S).setName(cn.VALUE).setType(new N(l.STRING));static SIGNATURE=new W("Concatenate").setNamespace(a.STRING).setParameters(new Map([[cn.VALUE,new y(cn.VALUE,cn.SCHEMA).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([[cn.VALUE,S.ofString(cn.VALUE)]]))]));constructor(){super()}getSignature(){return cn.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(cn.VALUE),r="";return t.reduce(((e,t)=>r=e+t),r),new j([B.outputOf(new Map([[cn.VALUE,r]]))])}}class hn 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(hn.PARAMETER_STRING_NAME,S.ofString(hn.PARAMETER_STRING_NAME));PARAMETER_AT_START=new y(hn.PARAMETER_AT_START_NAME,S.ofInteger(hn.PARAMETER_AT_START_NAME));PARAMETER_AT_END=new y(hn.PARAMETER_AT_END_NAME,S.ofInteger(hn.PARAMETER_AT_END_NAME));EVENT_STRING=new Y(Y.OUTPUT,new Map([[hn.EVENT_RESULT_NAME,S.ofString(hn.EVENT_RESULT_NAME)]]));signature=new W("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(hn.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(hn.PARAMETER_AT_START_NAME),n=e?.getArguments()?.get(hn.PARAMETER_AT_END_NAME);if(n>=r){let e="";return e+=t.substring(0,r),e+=t.substring(n),new j([B.outputOf(new Map([[hn.EVENT_RESULT_NAME,e.toString()]]))])}return new j([B.outputOf(new Map([[hn.EVENT_RESULT_NAME,t]]))])}}class Nn 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(Nn.PARAMETER_STRING_NAME,S.ofString(Nn.PARAMETER_STRING_NAME));PARAMETER_AT_POSITION=new y(Nn.PARAMETER_AT_POSITION_NAME,S.ofInteger(Nn.PARAMETER_AT_POSITION_NAME));PARAMETER_INSERT_STRING=new y(Nn.PARAMETER_INSERT_STRING_NAME,S.ofString(Nn.PARAMETER_INSERT_STRING_NAME));EVENT_STRING=new Y(Y.OUTPUT,new Map([[this.EVENT_RESULT_NAME,S.ofString(this.EVENT_RESULT_NAME)]]));signature=new W("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(Nn.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(Nn.PARAMETER_AT_POSITION_NAME),n=e?.getArguments()?.get(Nn.PARAMETER_INSERT_STRING_NAME),s="";return s+=t.substring(0,r),s+=n,s+=t.substring(r),new j([B.outputOf(new Map([[this.EVENT_RESULT_NAME,s]]))])}}class fn 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(fn.PARAMETER_STRING_NAME,S.ofString(fn.PARAMETER_STRING_NAME));static PARAMETER_POSTPAD_STRING=new y(fn.PARAMETER_POSTPAD_STRING_NAME,S.ofString(fn.PARAMETER_POSTPAD_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 W("PostPad").setNamespace(a.STRING).setParameters(new Map([[fn.PARAMETER_STRING.getParameterName(),fn.PARAMETER_STRING],[fn.PARAMETER_POSTPAD_STRING.getParameterName(),fn.PARAMETER_POSTPAD_STRING],[fn.PARAMETER_LENGTH.getParameterName(),fn.PARAMETER_LENGTH]])).setEvents(new Map([[fn.EVENT_STRING.getName(),fn.EVENT_STRING]]));constructor(){super()}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(fn.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(fn.PARAMETER_POSTPAD_STRING_NAME),n=e.getArguments()?.get(fn.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 j([B.of(fn.EVENT_RESULT_NAME,new Map([[fn.EVENT_RESULT_NAME,s.toString()]]))])}}class _n 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(_n.PARAMETER_STRING_NAME,S.ofString(_n.PARAMETER_STRING_NAME));static PARAMETER_PREPAD_STRING=new y(_n.PARAMETER_PREPAD_STRING_NAME,S.ofString(_n.PARAMETER_PREPAD_STRING_NAME));static PARAMETER_LENGTH=new y(_n.PARAMETER_LENGTH_NAME,S.ofInteger(_n.PARAMETER_LENGTH_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[_n.EVENT_RESULT_NAME,S.ofString(_n.EVENT_RESULT_NAME)]]));signature=new W("PrePad").setNamespace(a.STRING).setParameters(new Map([[_n.PARAMETER_STRING.getParameterName(),_n.PARAMETER_STRING],[_n.PARAMETER_PREPAD_STRING.getParameterName(),_n.PARAMETER_PREPAD_STRING],[_n.PARAMETER_LENGTH.getParameterName(),_n.PARAMETER_LENGTH]])).setEvents(new Map([[_n.EVENT_STRING.getName(),_n.EVENT_STRING]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(_n.PARAMETER_STRING_NAME),r=e.getArguments()?.get(_n.PARAMETER_PREPAD_STRING_NAME),n=e.getArguments()?.get(_n.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 j([B.of(_n.EVENT_RESULT_NAME,new Map([[_n.EVENT_RESULT_NAME,s]]))])}}class Sn 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(Sn.PARAMETER_STRING_NAME,S.ofString(Sn.PARAMETER_STRING_NAME));static PARAMETER_OTHER_STRING=new y(Sn.PARAMETER_OTHER_STRING_NAME,S.ofString(Sn.PARAMETER_OTHER_STRING_NAME));static PARAMETER_FIRST_OFFSET=new y(Sn.PARAMETER_FIRST_OFFSET_NAME,S.ofInteger(Sn.PARAMETER_FIRST_OFFSET_NAME));static PARAMETER_SECOND_OFFSET=new y(Sn.PARAMETER_SECOND_OFFSET_NAME,S.ofInteger(Sn.PARAMETER_SECOND_OFFSET_NAME));static PARAMETER_INTEGER=new y(Sn.PARAMETER_INTEGER_NAME,S.ofInteger(Sn.PARAMETER_INTEGER_NAME));static PARAMETER_BOOLEAN=new y(Sn.PARAMETER_BOOLEAN_NAME,S.ofBoolean(Sn.PARAMETER_BOOLEAN_NAME));static EVENT_BOOLEAN=new Y(Y.OUTPUT,new Map([[Sn.EVENT_RESULT_NAME,S.ofBoolean(Sn.EVENT_RESULT_NAME)]]));signature=new W("RegionMatches").setNamespace(a.STRING).setParameters(new Map([[Sn.PARAMETER_STRING.getParameterName(),Sn.PARAMETER_STRING],[Sn.PARAMETER_BOOLEAN.getParameterName(),Sn.PARAMETER_BOOLEAN],[Sn.PARAMETER_FIRST_OFFSET.getParameterName(),Sn.PARAMETER_FIRST_OFFSET],[Sn.PARAMETER_OTHER_STRING.getParameterName(),Sn.PARAMETER_OTHER_STRING],[Sn.PARAMETER_SECOND_OFFSET.getParameterName(),Sn.PARAMETER_SECOND_OFFSET],[Sn.PARAMETER_INTEGER.getParameterName(),Sn.PARAMETER_INTEGER]])).setEvents(new Map([[Sn.EVENT_BOOLEAN.getName(),Sn.EVENT_BOOLEAN]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(Sn.PARAMETER_STRING_NAME),r=e.getArguments()?.get(Sn.PARAMETER_BOOLEAN_NAME),n=e.getArguments()?.get(Sn.PARAMETER_FIRST_OFFSET_NAME),s=e?.getArguments()?.get(Sn.PARAMETER_OTHER_STRING_NAME),a=e?.getArguments()?.get(Sn.PARAMETER_SECOND_OFFSET_NAME),i=e.getArguments()?.get(Sn.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 j([B.outputOf(new Map([[Sn.EVENT_RESULT_NAME,o]]))])}}class Mn 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(Mn.PARAMETER_STRING_NAME,S.ofString(Mn.PARAMETER_STRING_NAME));static PARAMETER_AT_START=new y(Mn.PARAMETER_AT_START_NAME,S.ofInteger(Mn.PARAMETER_AT_START_NAME));static PARAMETER_AT_LENGTH=new y(Mn.PARAMETER_AT_LENGTH_NAME,S.ofInteger(Mn.PARAMETER_AT_LENGTH_NAME));static PARAMETER_REPLACE_STRING=new y(Mn.PARAMETER_REPLACE_STRING_NAME,S.ofString(Mn.PARAMETER_REPLACE_STRING_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[Mn.EVENT_RESULT_NAME,S.ofString(Mn.EVENT_RESULT_NAME)]]));constructor(){super()}signature=new W("ReplaceAtGivenPosition").setNamespace(a.STRING).setParameters(new Map([[Mn.PARAMETER_STRING.getParameterName(),Mn.PARAMETER_STRING],[Mn.PARAMETER_AT_START.getParameterName(),Mn.PARAMETER_AT_START],[Mn.PARAMETER_AT_LENGTH.getParameterName(),Mn.PARAMETER_AT_LENGTH],[Mn.PARAMETER_REPLACE_STRING.getParameterName(),Mn.PARAMETER_REPLACE_STRING]])).setEvents(new Map([[Mn.EVENT_STRING.getName(),Mn.EVENT_STRING]]));getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(Mn.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(Mn.PARAMETER_AT_START_NAME),n=e?.getArguments()?.get(Mn.PARAMETER_AT_LENGTH_NAME),s=e?.getArguments()?.get(Mn.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 j([B.outputOf(new Map([[Mn.EVENT_RESULT_NAME,t]]))])}}class On extends Pe{VALUE="value";SIGNATURE=new W("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 j([B.outputOf(G.of(this.VALUE,n))])}}class wn 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 W("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 j([B.outputOf(G.of(this.EVENT_RESULT_NAME,t.split(r)))])}}class In 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 W("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 j([B.outputOf(new Map([[this.EVENT_RESULT_NAME,r]]))])}}class dn extends Pe{static PARAMETER_STRING_NAME="string";static PARAMETER_LENGTH_NAME="length";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new y(dn.PARAMETER_STRING_NAME,S.ofString(dn.PARAMETER_STRING_NAME));static PARAMETER_LENGTH=new y(dn.PARAMETER_LENGTH_NAME,S.ofInteger(dn.PARAMETER_LENGTH_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[dn.EVENT_RESULT_NAME,S.ofString(dn.EVENT_RESULT_NAME)]]));signature=new W("TrimTo").setNamespace(a.STRING).setParameters(new Map([[dn.PARAMETER_STRING.getParameterName(),dn.PARAMETER_STRING],[dn.PARAMETER_LENGTH.getParameterName(),dn.PARAMETER_LENGTH]])).setEvents(new Map([[dn.EVENT_STRING.getName(),dn.EVENT_STRING]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(dn.PARAMETER_STRING_NAME),r=e.getArguments()?.get(dn.PARAMETER_LENGTH_NAME);return new j([B.of(dn.EVENT_RESULT_NAME,new Map([[dn.EVENT_RESULT_NAME,t.substring(0,r)]]))])}}class Pn{static repoMap=G.ofArrayEntries(Tn.ofEntryString("Trim",(e=>e.trim())),Tn.ofEntryString("LowerCase",(e=>e.toLocaleLowerCase())),Tn.ofEntryString("UpperCase",(e=>e.toUpperCase())),Tn.ofEntryStringBooleanOutput("IsBlank",(e=>""===e.trim())),Tn.ofEntryStringBooleanOutput("IsEmpty",(e=>""===e)),Tn.ofEntryAsStringBooleanOutput("Contains",((e,t)=>-1!=e.indexOf(t))),Tn.ofEntryAsStringBooleanOutput("EndsWith",((e,t)=>e.endsWith(t))),Tn.ofEntryAsStringBooleanOutput("EqualsIgnoreCase",((e,t)=>e.toUpperCase()==t.toUpperCase())),Tn.ofEntryAsStringBooleanOutput("Matches",((e,t)=>new RegExp(t).test(e))),Tn.ofEntryAsStringIntegerOutput("IndexOf",((e,t)=>e.indexOf(t))),Tn.ofEntryAsStringIntegerOutput("LastIndexOf",((e,t)=>e.lastIndexOf(t))),Tn.ofEntryAsStringAndIntegerStringOutput("Repeat",((e,t)=>e.repeat(t))),Tn.ofEntryAsStringStringIntegerIntegerOutput("IndexOfWithStartPoint",((e,t,r)=>e.indexOf(t,r))),Tn.ofEntryAsStringStringIntegerIntegerOutput("LastIndexOfWithStartPoint",((e,t,r)=>e.lastIndexOf(t,r))),Tn.ofEntryAsStringStringStringStringOutput("Replace",((e,t,r)=>e)),Tn.ofEntryAsStringStringStringStringOutput("ReplaceFirst",((e,t,r)=>e.replace(t,r))),Tn.ofEntryAsStringIntegerIntegerStringOutput("SubString",((e,t,r)=>e.substring(t,r))),C(new cn),C(new hn),C(new Nn),C(new fn),C(new _n),C(new Sn),C(new Mn),C(new On),C(new wn),C(new In),C(new dn));static filterableNames=Array.from(Pn.repoMap.values()).map((e=>e.getSignature().getFullName()));find(e,t){if(e==a.STRING)return Pn.repoMap.get(t)}filter(e){return Pn.filterableNames.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}var yn={};t(yn,"HybridRepository",(()=>xn));class xn{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 vn=new Map([[a.SYSTEM_CTX,new Map([C(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 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 At(r,E(r.getDefaultValue())?void 0:r.getDefaultValue())),new j([B.outputOf(new Map)])}}),C(new class extends Pe{getSignature(){return mt}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 j([B.outputOf(new Map(["value",e.getContext()?.get(t)?.getElement()]))])}}),C(new class extends Pe{getSignature(){return jr}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 yt(t),s=n.getTokens().peekLast();if(!s.getExpression().startsWith("Context")||s instanceof yt||s instanceof It&&!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!=Pt.ARRAY_OPERATOR&&e!=Pt.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 yt&&n.getTokens().set(r,new It(t,new $r(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 j([B.outputOf(new Map)]);let o=i.getElement(),u=a.removeLast(),A=s.removeLast(),l=A instanceof It?A.getElement():A.getExpression();for(E(o)&&(o=u==Pt.OBJECT_OPERATOR?{}:[],i.setElement(o));!a.isEmpty();)o=u==Pt.OBJECT_OPERATOR?this.getDataFromObject(o,l,a.peekLast()):this.getDataFromArray(o,l,a.peekLast()),u=a.removeLast(),A=s.removeLast(),l=A instanceof It?A.getElement():A.getExpression();return u==Pt.OBJECT_OPERATOR?this.putDataInObject(o,l,r):this.putDataInArray(o,l,r),new j([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==Pt.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==Pt.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([C(new class extends Pe{getSignature(){return Jr}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 j({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}})}}),C(new class extends Pe{getSignature(){return qr}async internalExecute(e){let t=e.getArguments()?.get("count"),r=0;return new j({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([C(new Wr),C(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 $r(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 j([B.outputOf(new Map)])}}),C(new Rn)])]]),Ln=Array.from(vn.values()).flatMap((e=>Array.from(e.values()))).map((e=>e.getSignature().getFullName()));class Un extends xn{constructor(){super({find:(e,t)=>vn.get(e)?.get(t),filter:e=>Array.from(Ln).filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))},new En,new Pn,new Et,new pn)}}var Cn={};t(Cn,"StatementExecution",(()=>bn));var Vn={};t(Vn,"StatementMessage",(()=>Gn));class Gn{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 bn{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 Gn(e,t))}addDependency(e){this.dependencies.add(e)}getDepenedencies(){return this.dependencies}equals(e){if(!(e instanceof bn))return!1;return e.statement.equals(this.statement)}}var Dn={};t(Dn,"ContextTokenValueExtractor",(()=>Fn));class Fn extends br{static PREFIX="Context.";constructor(e){super(),this.context=e}getValueInternal(e){let t=e.split(br.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 Fn.PREFIX}}var Yn={};t(Yn,"OutputMapTokenValueExtractor",(()=>Bn));class Bn extends br{static PREFIX="Steps.";constructor(e){super(),this.output=e}getValueInternal(e){let t=e.split(br.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;const a=t[r].indexOf("[");if(-1===a){let n=s.get(t[r++]);return this.retrieveElementFrom(e,t,r,n)}const i=t[r].substring(0,a);let o=s.get(i);return this.retrieveElementFrom(e,t,r,{[i]:o})}getPrefix(){return Bn.PREFIX}}var Hn={};t(Hn,"ArgumentsTokenValueExtractor",(()=>kn));class kn extends br{static PREFIX="Arguments.";constructor(e){super(),this.args=e}getValueInternal(e){let t=e.split(br.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 kn.PREFIX}}var $n={};t($n,"GraphVertex",(()=>Wn));var jn={};t(jn,"ExecutionGraph",(()=>Xn));class Xn{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 Wn(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 ct(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 Wn{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 Xn(!0);var r=new ct(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 qn={};t(qn,"KIRuntime",(()=>is));var Jn={};t(Jn,"JsonExpression",(()=>zn));class zn{constructor(e){this.expression=e}getExpression(){return this.expression}}var Qn={};let Kn;var Zn;t(Qn,"ParameterReferenceType",(()=>Kn)),(Zn=Kn||(Kn={})).VALUE="VALUE",Zn.EXPRESSION="EXPRESSION";var es={};function ts(){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(es,"FunctionExecutionParameters",(()=>rs));class rs{count=0;valueExtractors=new Map;constructor(e,t,r){this.functionRepository=e,this.schemaRepository=t,this.executionId=r??ts()}getExecutionId(){return this.executionId}getContext(){return this.context}setContext(e){this.context=e;let t=new Fn(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 Bn(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 ns={};let ss;var as;t(ns,"StatementMessageType",(()=>ss)),(as=ss||(ss={})).ERROR="ERROR",as.WARNING="WARNING",as.MESSAGE="MESSAGE";class is 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()>is.VERSION)throw new $("Runtime is at a lower version "+is.VERSION+" and trying to run code from version "+this.fd.getVersion()+".")}getSignature(){return this.fd}async getExecutionPlan(e,t){let r=new Xn;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(ss.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 kn(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 ct;r.addAll(e.getVerticesWithNoIncomingEdges());let n=new ct;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()==is.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 j(s):new j([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 is?new rs(t.getFunctionRepository(),t.getSchemaRepository(),`${t.getExecutionId()}_${a.getStatementName()}`).setArguments(E).setValuesMap(new Map(Array.from(t.getValuesMap().values()).filter((e=>e.getPrefix()!==kn.PREFIX&&e.getPrefix()!==Bn.PREFIX&&e.getPrefix()!==Fn.PREFIX)).map((e=>[e.getPrefix(),e])))):new rs(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 zn){return new $r(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()==Kn.VALUE)r=this.resolveInternalExpression(t.getValue(),e);else if(t.getType()==Kn.EXPRESSION&&!Z.isNullOrBlank(t.getExpression())){r=new $r(t.getExpression()??"").evaluate(e.getValuesMap())}return r}prepareStatementExecution(e,t,r){let n=new bn(e),s=t.find(e.getNamespace(),e.getName());if(!s)return n.addMessage(ss.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(ss.ERROR,K.format(is.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(ss.ERROR,K.format(is.PARAMETER_NEEDS_A_VALUE,e.getParameterName()));return n}parameterReferenceValidation(e,t,r,n){if(r){if(r.getType()==Kn.VALUE){if(E(r.getValue())&&!oe.hasDefaultValueOrNullSchemaType(t.getSchema(),n)&&e.addMessage(ss.ERROR,K.format(is.PARAMETER_NEEDS_A_VALUE,t.getParameterName())),E(r.getValue()))return;let s=new ct;for(s.push(new re(t.getSchema(),r.getValue()));!s.isEmpty();){let t=s.pop();if(t.getT2()instanceof zn)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()==Kn.EXPRESSION)if(Z.isNullOrBlank(r.getExpression()))E(oe.getDefaultValue(t.getSchema(),n))&&e.addMessage(ss.ERROR,K.format(is.PARAMETER_NEEDS_A_VALUE,t.getParameterName()));else try{this.addDependencies(e,r.getExpression())}catch(t){e.addMessage(ss.ERROR,K.format("Error evaluating $ : $",r.getExpression(),t))}}else E(oe.getDefaultValue(t.getSchema(),n))&&e.addMessage(ss.ERROR,K.format(is.PARAMETER_NEEDS_A_VALUE,t.getParameterName()))}addDependencies(e,t){t&&Array.from(t.match(is.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 os={};t(os,"KIRunConstants",(()=>Es));class Es{static NAMESPACE="namespace";static NAME="name";static ID="id";constructor(){}}var us={};t(us,"Position",(()=>As));class As{static SCHEMA_NAME="Position";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(As.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 As(e.left,e.top)}}var ls={};t(ls,"FunctionDefinition",(()=>_s));var ms={};t(ms,"Statement",(()=>cs));var gs={};t(gs,"AbstractStatement",(()=>ps));class ps{override=!1;constructor(e){e&&(this.comment=e.comment,this.description=e.description,this.position=e.position?new As(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 Rs={};t(Rs,"ParameterReference",(()=>Ts));class Ts{static SCHEMA_NAME="ParameterReference";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(Ts.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 Ts){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=ts()}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 Ts(Kn.EXPRESSION).setExpression(e);return[t.getKey(),t]}static ofValue(e){const t=new Ts(Kn.VALUE).setValue(e);return[t.getKey(),t]}static from(e){return new Ts(e.type).setValue(e.value).setExpression(e.expression).setKey(e.key).setOrder(e.order)}}class cs extends ps{static SCHEMA_NAME="Statement";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(cs.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(Ts.SCHEMA))))],["position",As.SCHEMA]]));constructor(e,t,r){if(super(e instanceof cs?e:void 0),e instanceof cs){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 Ts(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 cs))return!1;return e.statementName==this.statementName}static ofEntry(e){return[e.statementName,e]}static from(e){return new cs(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])=>Ts.from(t))).map((e=>[e.getKey(),e])))])))).setDependentStatements(new Map(Object.entries(e.dependentStatements??{}))).setPosition(As.from(e.position)).setComment(e.comment).setDescription(e.description)}}var hs={};t(hs,"StatementGroup",(()=>Ns));class Ns extends ps{static SCHEMA_NAME="StatementGroup";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(Ns.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["statementGroupName",S.ofString("statementGroupName")],["comment",S.ofString("comment")],["description",S.ofString("description")],["position",As.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 Ns(e.statementGroupName,new Map(Object.entries(e.statements||{}).map((([e,t])=>[e,"true"==(""+t)?.toLowerCase()])))).setPosition(As.from(e.position)).setComment(e.comment).setDescription(e.description)}}const fs=(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(cs.SCHEMA))]]));fs.getProperties()?.set("parts",S.ofArray("parts",fs));class _s extends W{static SCHEMA=fs;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 _s(e.name).setSteps(new Map(Object.values(e.steps??{}).filter((e=>!!e)).map((e=>[e.statementName,cs.from(e)])))).setStepGroups(new Map(Object.values(e.stepGroups??{}).filter((e=>!!e)).map((e=>[e.statementGroupName,Ns.from(e)])))).setParts(Array.from(e.parts??[]).filter((e=>!!e)).map((e=>_s.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 _s("unknown")}}var Ss={};t(Ss,"Argument",(()=>Ms));class Ms{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 Ms(0,e,t)}}var Os={};e(Os,wr),e(Os,yr),e(Os,vr),e(Os,Ur),e(Os,Ir);var ws={};e(ws,Vt),e(ws,bt),e(ws,Ft),e(ws,Bt),e(ws,kt),e(ws,jt),e(ws,Wt),e(ws,Lt),e(ws,Jt),e(ws,Qt),e(ws,Zt),e(ws,tr),e(ws,nr),e(ws,ar),e(ws,or),e(ws,ur),e(ws,lr),e(ws,gr),e(ws,Rr),e(ws,Nr),e(ws,cr),e(ws,_r),e(ws,Mr),e(ws,vt),e(module.exports,r),e(module.exports,U),e(module.exports,{}),e(module.exports,Ue),e(module.exports,V),e(module.exports,o),e(module.exports,pt),e(module.exports,Nt),e(module.exports,Q),e(module.exports,z),e(module.exports,te),e(module.exports,De),e(module.exports,Rt),e(module.exports,un),e(module.exports,Cn),e(module.exports,Vn),e(module.exports,ut),e(module.exports,Dn),e(module.exports,Yn),e(module.exports,Hn),e(module.exports,$n),e(module.exports,{}),e(module.exports,jn),e(module.exports,qn),e(module.exports,ns),e(module.exports,es),e(module.exports,gt),e(module.exports,Gr),e(module.exports,Vr),e(module.exports,xt),e(module.exports,dt),e(module.exports,Mt),e(module.exports,_t),e(module.exports,wt),e(module.exports,{}),e(module.exports,q),e(module.exports,s),e(module.exports,Jn),e(module.exports,n),e(module.exports,ce),e(module.exports,ge),e(module.exports,Re),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,h),e(module.exports,g),e(module.exports,p),e(module.exports,R),e(module.exports,A),e(module.exports,ee),e(module.exports,Se),e(module.exports,yn),e(module.exports,os),e(module.exports,M),e(module.exports,H),e(module.exports,us),e(module.exports,ls),e(module.exports,Qn),e(module.exports,D),e(module.exports,gs),e(module.exports,ms),e(module.exports,{}),e(module.exports,hs),e(module.exports,X),e(module.exports,F),e(module.exports,I),e(module.exports,Ss),e(module.exports,Rs),e(module.exports,Ce),e(module.exports,k),e(module.exports,Os),e(module.exports,ws),e(module.exports,Yr);
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 SYSTEM_OBJECT="System.Object";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 g;t(A,"SchemaType",(()=>l)),(g=l||(l={})).INTEGER="Integer",g.LONG="Long",g.FLOAT="Float",g.DOUBLE="Double",g.STRING="String",g.OBJECT="Object",g.ARRAY="Array",g.BOOLEAN="Boolean",g.NULL="Null";var m={};t(m,"TypeUtil",(()=>f));var R={};t(R,"MultipleType",(()=>c));var p={};t(p,"Type",(()=>T));class T{}class c extends T{constructor(e){super(),this.type=e instanceof c?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 h={};t(h,"SingleType",(()=>N));class N extends T{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 c(new Set(e))}static from(e){return"string"==typeof e?new N(l[e]):Array.isArray(e)?new c(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 c(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 C(e){return[e.getSignature().getName(),e]}t(U,"KIRunFunctionRepository",(()=>Cn));var V={};t(V,"MapUtil",(()=>G)),t(V,"MapEntry",(()=>b));class G{static of(e,t,r,n,s,a,i,o,u,A,l,g,m,R,p,T,c,h,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(g)||_.set(l,g),E(m)||E(R)||_.set(m,R),E(p)||E(T)||_.set(p,T),E(c)||E(h)||_.set(c,h),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",(()=>j));var k={};t(k,"KIRuntimeException",(()=>$));class $ extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class j{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 X={};t(X,"FunctionSignature",(()=>W));class W{static SCHEMA_NAME="FunctionSignature";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(W.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 W?(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(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",(()=>ge));class ge{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 ge.checkMinMaxItems(e,t,s),ge.checkItems(e,t,r,s),ge.checkUniqueItems(e,t,s),ge.checkContains(t,e,r,s),n}static checkContains(e,t,r,n){if(E(e.getContains()))return;let s=ge.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 me={};t(me,"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 pe={};t(pe,"NullValidator",(()=>Te));class Te{static validate(e,t,r){if(r)throw new ie(de.path(e),"Expected a null but found "+r);return r}constructor(){}}var ce={};t(ce,"NumberValidator",(()=>he));class he{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=he.extractNumber(e,t,r,n);return he.checkRange(t,r,n,s),he.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()&&he.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()&&he.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()&&he.numberCompare(n,t.getExclusiveMinimum())<=0)throw new ie(de.path(e),r.toString()+" should be greater than "+t.getExclusiveMinimum());if(t.getExclusiveMaximum()&&he.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)he.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)ge.validate(e,r,n,s);else{if(t!=l.NULL)throw new ie(de.path(e),t+" is not a valid type.");Te.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 W(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 j([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 j([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 j([B.outputOf(new Map([]))])}}class Le extends ye{constructor(){super("ArrayToObjects",[ye.PARAMETER_ARRAY_SOURCE,y.of("keyName",S.ofString("keyName"),!0)],ye.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(Le.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get("keyName");if(!t?.length)return new j([B.outputOf(new Map([[ye.EVENT_RESULT_NAME,[]]]))]);let n=t.map((e=>{const t={};if(Array.isArray(e))if(r.length)r.forEach(((r,n)=>{t[r]=e[n]}));else for(let r=0;r<e.length;r++)t[`value${r+1}`]=e[r];else t[r.length?r[0]:"value"]=e;return t}));return new j([B.outputOf(new Map([[ye.EVENT_RESULT_NAME,n]]))])}}var Ue={};t(Ue,"PrimitiveUtil",(()=>Ge));var Ce={};t(Ce,"ExecutionException",(()=>Ve));class Ve extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class Ge{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):Ge.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):Ge.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 be extends ye{constructor(){super("BinarySearch",[be.PARAMETER_ARRAY_SOURCE_PRIMITIVE,be.PARAMETER_INT_SOURCE_FROM,be.PARAMETER_FIND_PRIMITIVE,be.PARAMETER_INT_LENGTH],be.EVENT_INDEX)}async internalExecute(e){let t=e?.getArguments()?.get(be.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(be.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(be.PARAMETER_FIND_PRIMITIVE.getParameterName()),s=e?.getArguments()?.get(be.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==Ge.compare(t[e],n)){a=e;break}Ge.compare(t[e],n)>0?s=e-1:r=e+1}return new j([B.outputOf(new Map([[be.EVENT_INDEX.getName(),a]]))])}}var De={};t(De,"ArrayUtil",(()=>Fe));class Fe{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 Ye extends ye{constructor(){super("Compare",Fe.of(Ye.PARAMETER_ARRAY_SOURCE,Ye.PARAMETER_INT_SOURCE_FROM,Ye.PARAMETER_ARRAY_FIND,Ye.PARAMETER_INT_FIND_FROM,Ye.PARAMETER_INT_LENGTH),Ye.EVENT_RESULT_INTEGER)}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_ARRAY_FIND.getParameterName()),s=e?.getArguments()?.get(Ye.PARAMETER_INT_FIND_FROM.getParameterName()),a=e?.getArguments()?.get(Ye.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 j(Fe.of(B.outputOf(G.of(Ye.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 Be extends ye{constructor(){super("Copy",[Be.PARAMETER_ARRAY_SOURCE,Be.PARAMETER_INT_SOURCE_FROM,Be.PARAMETER_INT_LENGTH,Be.PARAMETER_BOOLEAN_DEEP_COPY],Be.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(Be.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Be.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(Be.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(Be.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 j([B.outputOf(G.of(Be.EVENT_RESULT_NAME,a))])}}class He 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(He.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(He.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!=Ge.compare(t[e],r[s])||n.add(t[e]);return s=t.filter((e=>!n.has(e))),t.splice(0,t.length,...s),new j([B.outputOf(new Map([]))])}}class ke extends ye{constructor(){super("DeleteFirst",[ke.PARAMETER_ARRAY_SOURCE],ke.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(ke.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new $("Given source array is empty");return t.shift(),new j([B.outputOf(new Map([]))])}}class $e extends ye{constructor(){super("DeleteFrom",[$e.PARAMETER_ARRAY_SOURCE,$e.PARAMETER_INT_SOURCE_FROM,$e.PARAMETER_INT_LENGTH],$e.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get($e.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get($e.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get($e.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 j([B.outputOf(new Map([]))])}}class je extends ye{constructor(){super("DeleteLast",[je.PARAMETER_ARRAY_SOURCE],je.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(je.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new $("Given source array is empty");return t.pop(),new j([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 j([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 Ye,r=(await t.execute(e)).allResults()[0].getResult().get(We.EVENT_RESULT_NAME);return new j([B.outputOf(G.of(We.EVENT_RESULT_NAME,0==r))])}}class qe extends ye{constructor(){super("Fill",[qe.PARAMETER_ARRAY_SOURCE,qe.PARAMETER_INT_SOURCE_FROM,qe.PARAMETER_INT_LENGTH,qe.PARAMETER_ANY],qe.EVENT_RESULT_EMPTY)}async internalExecute(e){var t=e?.getArguments()?.get(qe.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(qe.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(qe.PARAMETER_INT_LENGTH.getParameterName()),s=e?.getArguments()?.get(qe.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 j([B.outputOf(G.of())])}}class Je extends ye{constructor(){super("Frequency",[Je.PARAMETER_ARRAY_SOURCE,Je.PARAMETER_ANY,Je.PARAMETER_INT_SOURCE_FROM,Je.PARAMETER_INT_LENGTH],Je.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(Je.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Je.PARAMETER_ANY.getParameterName()),n=e?.getArguments()?.get(Je.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(Je.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)return new j([B.outputOf(new Map([[Je.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==Ge.compare(t[e],r)&&i++;return new j([B.outputOf(new Map([[Je.EVENT_RESULT_INTEGER.getName(),i]]))])}}class ze extends ye{constructor(){super("IndexOf",[ze.PARAMETER_ARRAY_SOURCE,ze.PARAMETER_ANY_NOT_NULL,ze.PARAMETER_INT_FIND_FROM],ze.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(ze.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(ze.PARAMETER_ANY_NOT_NULL.getParameterName());let n=e?.getArguments()?.get(ze.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new j([B.outputOf(new Map([[ze.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==Ge.compare(t[e],r)){s=e;break}return new j([B.outputOf(new Map([[ze.EVENT_RESULT_INTEGER.getName(),s]]))])}}class Qe extends ye{constructor(){super("IndexOfArray",[Qe.PARAMETER_ARRAY_SOURCE,Qe.PARAMETER_ARRAY_SECOND_SOURCE,Qe.PARAMETER_INT_FIND_FROM],Qe.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(Qe.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Qe.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(Qe.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length||0==r.length)return new j([B.outputOf(new Map([[Qe.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==Ge.compare(t[e],r[n])){for(;n<s&&0==Ge.compare(t[e+n],r[n]);)n++;if(n==s){a=e;break}}}return new j([B.outputOf(new Map([[Qe.EVENT_RESULT_INTEGER.getName(),a]]))])}}class Ke extends ye{constructor(){super("LastIndexOf",[Ke.PARAMETER_ARRAY_SOURCE,Ke.PARAMETER_ANY_NOT_NULL,Ke.PARAMETER_INT_FIND_FROM],Ke.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(Ke.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(Ke.PARAMETER_ANY_NOT_NULL.getParameterName());let n=e?.getArguments()?.get(Ke.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new j([B.outputOf(new Map([[Ke.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==Ge.compare(t[e],r)){s=e;break}return new j([B.outputOf(new Map([[Ke.EVENT_RESULT_INTEGER.getName(),s]]))])}}class Ze extends ye{constructor(){super("LastIndexOfArray",[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)return new j([B.outputOf(new Map([[Ze.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==Ge.compare(t[e],r[n])){for(;n<s&&0==Ge.compare(t[e+n],r[n]);)n++;n==s&&(a=e)}}return new j([B.outputOf(new Map([[Ze.EVENT_RESULT_INTEGER.getName(),a]]))])}}class et extends ye{constructor(){super("Max",[et.PARAMETER_ARRAY_SOURCE_PRIMITIVE],et.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(et.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];Ge.comparePrimitive(r,n)>=0||(r=n)}return new j([B.outputOf(new Map([[et.EVENT_RESULT_ANY.getName(),r]]))])}}class tt extends ye{constructor(){super("Min",[tt.PARAMETER_ARRAY_SOURCE_PRIMITIVE],tt.EVENT_RESULT_ANY)}async internalExecute(e){let t,r=e?.getArguments()?.get(tt.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||Ge.comparePrimitive(r[e],t)<0)&&(t=r[e]);return new j([B.outputOf(new Map([[tt.EVENT_RESULT_ANY.getName(),t]]))])}}class rt extends ye{constructor(){super("MisMatch",[rt.PARAMETER_ARRAY_SOURCE,rt.PARAMETER_INT_FIND_FROM,rt.PARAMETER_ARRAY_SECOND_SOURCE,rt.PARAMETER_INT_SECOND_SOURCE_FROM,rt.PARAMETER_INT_LENGTH],rt.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(rt.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(rt.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(rt.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(rt.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(rt.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 j([B.outputOf(new Map([[rt.EVENT_RESULT_INTEGER.getName(),E]]))])}}class nt extends ye{constructor(){super("Reverse",[nt.PARAMETER_ARRAY_SOURCE,nt.PARAMETER_INT_SOURCE_FROM,nt.PARAMETER_INT_LENGTH],nt.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(nt.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(nt.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(nt.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 j([B.outputOf(new Map([]))])}}class st extends ye{constructor(){super("Rotate",[st.PARAMETER_ARRAY_SOURCE,st.PARAMETER_ROTATE_LENGTH],st.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(st.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(st.PARAMETER_ROTATE_LENGTH.getParameterName());if(0==t.length)return new j([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 j([B.outputOf(new Map([]))])}rotate(e,t,r){for(;t<r;){let n=e[t];e[t++]=e[r],e[r--]=n}}}class at extends ye{constructor(){super("Shuffle",[at.PARAMETER_ARRAY_SOURCE],at.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(at.PARAMETER_ARRAY_SOURCE.getParameterName());if(t.length<=1)return new j([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 j([B.outputOf(new Map([]))])}}class it extends ye{constructor(){super("Sort",[it.PARAMETER_ARRAY_SOURCE_PRIMITIVE,it.PARAMETER_INT_FIND_FROM,it.PARAMETER_INT_LENGTH,it.PARAMETER_BOOLEAN_ASCENDING],it.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(it.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName()),r=e?.getArguments()?.get(it.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(it.PARAMETER_INT_LENGTH.getParameterName()),s=e?.getArguments()?.get(it.PARAMETER_BOOLEAN_ASCENDING.getParameterName());if(0==t.length)return new j([B.outputOf(new Map([[it.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 j([B.outputOf(new Map([[it.EVENT_RESULT_EMPTY.getName(),t]]))])}}class ot extends ye{constructor(){super("SubArray",[ot.PARAMETER_ARRAY_SOURCE,ot.PARAMETER_INT_FIND_FROM,ot.PARAMETER_INT_LENGTH],ot.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(ot.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ot.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(ot.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),n<=0)return new j([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 j([B.outputOf(new Map([[ot.EVENT_RESULT_ARRAY.getName(),s]]))])}}class Et extends ye{constructor(){super("Insert",[Et.PARAMETER_ARRAY_SOURCE,Et.PARAMETER_INT_OFFSET,Et.PARAMETER_ANY],Et.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(Et.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Et.PARAMETER_INT_OFFSET.getParameterName());var n=e?.getArguments()?.get(Et.PARAMETER_ANY.getParameterName());if(E(n)||E(r)||r>t.length)throw new $("Please valid resouces to insert at the correct location");if(0==t.length)return 0==r&&t.push(n),new j([B.outputOf(new Map([]))]);t.push(n);let s=t.length-1;for(r++;s>=r;){let e=t[s-1];t[s-1]=t[s],t[s--]=e}return new j([B.outputOf(new Map([]))])}}class ut{static repoMap=G.ofArrayEntries(C(new xe),C(new ve),C(new be),C(new Ye),C(new Be),C(new He),C(new ke),C(new $e),C(new je),C(new Xe),C(new We),C(new qe),C(new Je),C(new ze),C(new Qe),C(new Ke),C(new Ze),C(new et),C(new tt),C(new rt),C(new nt),C(new st),C(new at),C(new it),C(new ot),C(new Le),C(new Et));static filterableNames=Array.from(ut.repoMap.values()).map((e=>e.getSignature().getFullName()));find(e,t){if(e==a.SYSTEM_ARRAY)return ut.repoMap.get(t)}filter(e){return ut.filterableNames.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}var At={};t(At,"ContextElement",(()=>lt));class lt{static NULL=new lt(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 gt=new W("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 mt=new W("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 Rt={};t(Rt,"Expression",(()=>xt));var pt={};t(pt,"LinkedList",(()=>ht));var Tt={};function ct(e,t){let r=new ht;r.push(e);let n=new ht;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(Tt,"deepEqual",(()=>ct));class ht{head=void 0;tail=void 0;length=0;constructor(e){if(e?.length){for(const t of e)if(this.head){const e=new Nt(t,this.tail);this.tail.next=e,this.tail=e}else this.tail=this.head=new Nt(t);this.length=e.length}}push(e){const t=new Nt(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 Nt(e,this.head),this.head.next=this.tail):(this.tail=new Nt(e,this.tail),this.tail.previous.next=this.tail):this.head=this.tail=new Nt(e),this}map(e,t){let r=new ht,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(ct(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 Nt{constructor(e,t,r){this.value=e,this.next=r,this.previous=t}toString(){return""+this.value}}var ft={};t(ft,"StringBuilder",(()=>_t));class _t{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 St={};t(St,"ExpressionEvaluationException",(()=>Mt));class Mt extends Error{constructor(e,t,r){super(K.format("$ : $",e,t)),this.cause=r}getCause(){return this.cause}}var Ot={};t(Ot,"ExpressionToken",(()=>wt));class wt{constructor(e){this.expression=e}getExpression(){return this.expression}toString(){return this.expression}}var It={};t(It,"ExpressionTokenValue",(()=>dt));class dt extends wt{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 Pt={};t(Pt,"Operation",(()=>yt));class yt{static MULTIPLICATION=new yt("*");static DIVISION=new yt("/");static INTEGER_DIVISION=new yt("//");static MOD=new yt("%");static ADDITION=new yt("+");static SUBTRACTION=new yt("-");static NOT=new yt("not",void 0,!0);static AND=new yt("and",void 0,!0);static OR=new yt("or",void 0,!0);static LESS_THAN=new yt("<");static LESS_THAN_EQUAL=new yt("<=");static GREATER_THAN=new yt(">");static GREATER_THAN_EQUAL=new yt(">=");static EQUAL=new yt("=");static NOT_EQUAL=new yt("!=");static BITWISE_AND=new yt("&");static BITWISE_OR=new yt("|");static BITWISE_XOR=new yt("^");static BITWISE_COMPLEMENT=new yt("~");static BITWISE_LEFT_SHIFT=new yt("<<");static BITWISE_RIGHT_SHIFT=new yt(">>");static BITWISE_UNSIGNED_RIGHT_SHIFT=new yt(">>>");static UNARY_PLUS=new yt("UN: +","+");static UNARY_MINUS=new yt("UN: -","-");static UNARY_LOGICAL_NOT=new yt("UN: not","not");static UNARY_BITWISE_COMPLEMENT=new yt("UN: ~","~");static ARRAY_OPERATOR=new yt("[");static OBJECT_OPERATOR=new yt(".");static NULLISH_COALESCING_OPERATOR=new yt("??");static CONDITIONAL_TERNARY_OPERATOR=new yt("?");static VALUE_OF=new Map([["MULTIPLICATION",yt.MULTIPLICATION],["DIVISION",yt.DIVISION],["INTEGER_DIVISON",yt.INTEGER_DIVISION],["MOD",yt.MOD],["ADDITION",yt.ADDITION],["SUBTRACTION",yt.SUBTRACTION],["NOT",yt.NOT],["AND",yt.AND],["OR",yt.OR],["LESS_THAN",yt.LESS_THAN],["LESS_THAN_EQUAL",yt.LESS_THAN_EQUAL],["GREATER_THAN",yt.GREATER_THAN],["GREATER_THAN_EQUAL",yt.GREATER_THAN_EQUAL],["EQUAL",yt.EQUAL],["NOT_EQUAL",yt.NOT_EQUAL],["BITWISE_AND",yt.BITWISE_AND],["BITWISE_OR",yt.BITWISE_OR],["BITWISE_XOR",yt.BITWISE_XOR],["BITWISE_COMPLEMENT",yt.BITWISE_COMPLEMENT],["BITWISE_LEFT_SHIFT",yt.BITWISE_LEFT_SHIFT],["BITWISE_RIGHT_SHIFT",yt.BITWISE_RIGHT_SHIFT],["BITWISE_UNSIGNED_RIGHT_SHIFT",yt.BITWISE_UNSIGNED_RIGHT_SHIFT],["UNARY_PLUS",yt.UNARY_PLUS],["UNARY_MINUS",yt.UNARY_MINUS],["UNARY_LOGICAL_NOT",yt.UNARY_LOGICAL_NOT],["UNARY_BITWISE_COMPLEMENT",yt.UNARY_BITWISE_COMPLEMENT],["ARRAY_OPERATOR",yt.ARRAY_OPERATOR],["OBJECT_OPERATOR",yt.OBJECT_OPERATOR],["NULLISH_COALESCING_OPERATOR",yt.NULLISH_COALESCING_OPERATOR],["CONDITIONAL_TERNARY_OPERATOR",yt.CONDITIONAL_TERNARY_OPERATOR]]);static UNARY_OPERATORS=new Set([yt.ADDITION,yt.SUBTRACTION,yt.NOT,yt.BITWISE_COMPLEMENT,yt.UNARY_PLUS,yt.UNARY_MINUS,yt.UNARY_LOGICAL_NOT,yt.UNARY_BITWISE_COMPLEMENT]);static ARITHMETIC_OPERATORS=new Set([yt.MULTIPLICATION,yt.DIVISION,yt.INTEGER_DIVISION,yt.MOD,yt.ADDITION,yt.SUBTRACTION]);static LOGICAL_OPERATORS=new Set([yt.NOT,yt.AND,yt.OR,yt.LESS_THAN,yt.LESS_THAN_EQUAL,yt.GREATER_THAN,yt.GREATER_THAN_EQUAL,yt.EQUAL,yt.NOT_EQUAL,yt.NULLISH_COALESCING_OPERATOR]);static BITWISE_OPERATORS=new Set([yt.BITWISE_AND,yt.BITWISE_COMPLEMENT,yt.BITWISE_LEFT_SHIFT,yt.BITWISE_OR,yt.BITWISE_RIGHT_SHIFT,yt.BITWISE_UNSIGNED_RIGHT_SHIFT,yt.BITWISE_XOR]);static CONDITIONAL_OPERATORS=new Set([yt.CONDITIONAL_TERNARY_OPERATOR]);static OPERATOR_PRIORITY=new Map([[yt.UNARY_PLUS,1],[yt.UNARY_MINUS,1],[yt.UNARY_LOGICAL_NOT,1],[yt.UNARY_BITWISE_COMPLEMENT,1],[yt.ARRAY_OPERATOR,1],[yt.OBJECT_OPERATOR,1],[yt.MULTIPLICATION,2],[yt.DIVISION,2],[yt.INTEGER_DIVISION,2],[yt.MOD,2],[yt.ADDITION,3],[yt.SUBTRACTION,3],[yt.BITWISE_LEFT_SHIFT,4],[yt.BITWISE_RIGHT_SHIFT,4],[yt.BITWISE_UNSIGNED_RIGHT_SHIFT,4],[yt.LESS_THAN,5],[yt.LESS_THAN_EQUAL,5],[yt.GREATER_THAN,5],[yt.GREATER_THAN_EQUAL,5],[yt.EQUAL,6],[yt.NOT_EQUAL,6],[yt.BITWISE_AND,7],[yt.BITWISE_XOR,8],[yt.BITWISE_OR,9],[yt.AND,10],[yt.OR,11],[yt.NULLISH_COALESCING_OPERATOR,11],[yt.CONDITIONAL_TERNARY_OPERATOR,12]]);static OPERATORS=new Set([...Array.from(yt.ARITHMETIC_OPERATORS),...Array.from(yt.LOGICAL_OPERATORS),...Array.from(yt.BITWISE_OPERATORS),yt.ARRAY_OPERATOR,yt.OBJECT_OPERATOR,...Array.from(yt.CONDITIONAL_OPERATORS)].map((e=>e.getOperator())));static OPERATORS_WITHOUT_SPACE_WRAP=new Set([...Array.from(yt.ARITHMETIC_OPERATORS),...Array.from(yt.LOGICAL_OPERATORS),...Array.from(yt.BITWISE_OPERATORS),yt.ARRAY_OPERATOR,yt.OBJECT_OPERATOR,...Array.from(yt.CONDITIONAL_OPERATORS)].filter((e=>!e.shouldBeWrappedInSpace())).map((e=>e.getOperator())));static OPERATION_VALUE_OF=new Map(Array.from(yt.VALUE_OF.entries()).map((([e,t])=>[t.getOperator(),t])));static UNARY_MAP=new Map([[yt.ADDITION,yt.UNARY_PLUS],[yt.SUBTRACTION,yt.UNARY_MINUS],[yt.NOT,yt.UNARY_LOGICAL_NOT],[yt.BITWISE_COMPLEMENT,yt.UNARY_BITWISE_COMPLEMENT],[yt.UNARY_PLUS,yt.UNARY_PLUS],[yt.UNARY_MINUS,yt.UNARY_MINUS],[yt.UNARY_LOGICAL_NOT,yt.UNARY_LOGICAL_NOT],[yt.UNARY_BITWISE_COMPLEMENT,yt.UNARY_BITWISE_COMPLEMENT]]);static BIGGEST_OPERATOR_SIZE=Array.from(yt.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 yt.VALUE_OF.get(e)}toString(){return this.operator}}class xt extends wt{tokens=new ht;ops=new ht;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 _t(""),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 Mt(this.expression,"Extra closing parenthesis found");case"]":throw new Mt(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()==yt.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()==yt.ARRAY_OPERATOR&&(i=this.process(e,n,s),s=i.getT1(),a=i.getT2())}++s}if(t=n.toString(),!Z.isNullOrBlank(t)){if(yt.OPERATORS.has(t))throw new Mt(this.expression,"Expression is ending with an operator");this.tokens.push(new wt(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 Mt(this.expression,"Missing string ending marker "+t);let a=new re(s,!1);return this.tokens.push(new dt(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 xt(t.toString())),t.setLength(0),new re(r,!1)}processOthers(e,t,r,n,s,a){let i=t-s;i=i<yt.BIGGEST_OPERATOR_SIZE?i:yt.BIGGEST_OPERATOR_SIZE;for(let e=i;e>0;e--){let t=this.expression.substring(s,s+e);if(yt.OPERATORS_WITHOUT_SPACE_WRAP.has(t))return Z.isNullOrBlank(n)||(this.tokens.push(new wt(n)),a=!1),this.checkUnaryOperator(this.tokens,this.ops,yt.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 Mt(this.expression,"Ternary operator is followed by an operator");""!=r.trim()&&(this.tokens.push(new xt(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 Mt(this.expression,"':' operater is missing");if(n>=e)throw new Mt(this.expression,"Third part of the ternary expression is missing");for(;!this.ops.isEmpty()&&this.hasPrecedence(yt.CONDITIONAL_TERNARY_OPERATOR,this.ops.peek());){let e=this.ops.pop();if(yt.UNARY_OPERATORS.has(e)){const t=this.tokens.pop();this.tokens.push(new xt("",t,void 0,e))}else{let t=this.tokens.pop(),r=this.tokens.pop();this.tokens.push(new xt("",r,t,e))}}this.ops.push(yt.CONDITIONAL_TERNARY_OPERATOR),this.tokens.push(new xt(this.expression.substring(o,n-1)));const E=this.expression.substring(n);if(""===E.trim())throw new Mt(this.expression,"Third part of the ternary expression is missing");return this.tokens.push(new xt(E)),e-1}processSubExpression(e,t,r,n,s){if(yt.OPERATORS.has(r))this.checkUnaryOperator(this.tokens,this.ops,yt.OPERATION_VALUE_OF.get(r),s),t.setLength(0);else if(!Z.isNullOrBlank(r))throw new Mt(this.expression,K.format("Unkown token : $ found.",r));let a=1;const i=new _t;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 Mt(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 xt(i.toString().trim())),n}processTokenSepearator(e,t,r){return Z.isNullOrBlank(t)||(yt.OPERATORS.has(t)?(this.checkUnaryOperator(this.tokens,this.ops,yt.OPERATION_VALUE_OF.get(t),r),r=!0):(this.tokens.push(new wt(t)),r=!1)),e.setLength(0),r}checkUnaryOperator(e,t,r,n){if(r)if(n||e.isEmpty()){if(!yt.UNARY_OPERATORS.has(r))throw new Mt(this.expression,K.format("Extra operator $ found.",r));{const e=yt.UNARY_MAP.get(r);e&&t.push(e)}}else{for(;!t.isEmpty()&&this.hasPrecedence(r,t.peek());){let r=t.pop();if(yt.UNARY_OPERATORS.has(r)){let t=e.pop();e.push(new xt("",t,void 0,r))}else{let t=e.pop(),n=e.pop();e.push(new xt("",n,t,r))}}t.push(r)}}hasPrecedence(e,t){let r=yt.OPERATOR_PRIORITY.get(e),n=yt.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 _t,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 xt?n[t].toString():n[t]).append(")"),t++;else if(r[s]==yt.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 vt={};t(vt,"ExpressionEvaluator",(()=>jr));var Lt={};t(Lt,"LogicalNullishCoalescingOperator",(()=>Vt));var Ut={};t(Ut,"BinaryOperator",(()=>Ct));class Ct{nullCheck(e,t,r){if(E(e)||E(t))throw new Ve(K.format("$ cannot be applied to a null value",r.getOperatorName()))}}class Vt extends Ct{apply(e,t){return E(e)?t:e}}var Gt={};t(Gt,"ArithmeticAdditionOperator",(()=>bt));class bt extends Ct{apply(e,t){return this.nullCheck(e,t,yt.ADDITION),e+t}}var Dt={};t(Dt,"ArithmeticDivisionOperator",(()=>Ft));class Ft extends Ct{apply(e,t){return this.nullCheck(e,t,yt.DIVISION),e/t}}var Yt={};t(Yt,"ArithmeticIntegerDivisionOperator",(()=>Bt));class Bt extends Ct{apply(e,t){return this.nullCheck(e,t,yt.DIVISION),Math.floor(e/t)}}var Ht={};t(Ht,"ArithmeticModulusOperator",(()=>kt));class kt extends Ct{apply(e,t){return this.nullCheck(e,t,yt.MOD),e%t}}var $t={};t($t,"ArithmeticMultiplicationOperator",(()=>jt));class jt extends Ct{apply(e,t){this.nullCheck(e,t,yt.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 Xt={};t(Xt,"ArithmeticSubtractionOperator",(()=>Wt));class Wt extends Ct{apply(e,t){return this.nullCheck(e,t,yt.SUBTRACTION),e-t}}var qt={};t(qt,"ArrayOperator",(()=>Jt));class Jt extends Ct{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 zt={};t(zt,"BitwiseAndOperator",(()=>Qt));class Qt extends Ct{apply(e,t){return this.nullCheck(e,t,yt.BITWISE_AND),e&t}}var Kt={};t(Kt,"BitwiseLeftShiftOperator",(()=>Zt));class Zt extends Ct{apply(e,t){return this.nullCheck(e,t,yt.BITWISE_LEFT_SHIFT),e<<t}}var er={};t(er,"BitwiseOrOperator",(()=>tr));class tr extends Ct{apply(e,t){return this.nullCheck(e,t,yt.BITWISE_OR),e|t}}var rr={};t(rr,"BitwiseRightShiftOperator",(()=>nr));class nr extends Ct{apply(e,t){return this.nullCheck(e,t,yt.BITWISE_RIGHT_SHIFT),e>>t}}var sr={};t(sr,"BitwiseUnsignedRightShiftOperator",(()=>ar));class ar extends Ct{apply(e,t){return this.nullCheck(e,t,yt.BITWISE_UNSIGNED_RIGHT_SHIFT),e>>>t}}var ir={};t(ir,"BitwiseXorOperator",(()=>or));class or extends Ct{apply(e,t){return this.nullCheck(e,t,yt.BITWISE_XOR),e^t}}var Er={};t(Er,"LogicalAndOperator",(()=>ur));class ur extends Ct{apply(e,t){const r=Ge.findPrimitiveNullAsBoolean(e),n=Ge.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 Ar={};t(Ar,"LogicalEqualOperator",(()=>lr));class lr extends Ct{apply(e,t){return ct(e,t)}}var gr={};t(gr,"LogicalGreaterThanEqualOperator",(()=>mr));class mr extends Ct{apply(e,t){const r=Ge.findPrimitiveNullAsBoolean(e),n=Ge.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,"LogicalGreaterThanOperator",(()=>pr));class pr extends Ct{apply(e,t){const r=Ge.findPrimitiveNullAsBoolean(e),n=Ge.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 Tr={};t(Tr,"LogicalLessThanEqualOperator",(()=>cr));class cr extends Ct{apply(e,t){const r=Ge.findPrimitiveNullAsBoolean(e),n=Ge.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 hr={};t(hr,"LogicalLessThanOperator",(()=>Nr));class Nr extends Ct{apply(e,t){const r=Ge.findPrimitiveNullAsBoolean(e),n=Ge.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 fr={};t(fr,"LogicalNotEqualOperator",(()=>_r));class _r extends Ct{apply(e,t){return!ct(e,t)}}var Sr={};t(Sr,"LogicalOrOperator",(()=>Mr));class Mr extends Ct{apply(e,t){const r=Ge.findPrimitiveNullAsBoolean(e),n=Ge.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 Or={};t(Or,"ObjectOperator",(()=>wr));class wr extends Ct{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 Ir={};t(Ir,"ArithmeticUnaryMinusOperator",(()=>yr));var dr={};t(dr,"UnaryOperator",(()=>Pr));class Pr{nullCheck(e,t){if(E(e))throw new Ve(K.format("$ cannot be applied to a null value",t.getOperatorName()))}}class yr extends Pr{apply(e){return this.nullCheck(e,yt.UNARY_MINUS),Ge.findPrimitiveNumberType(e),-e}}var xr={};t(xr,"ArithmeticUnaryPlusOperator",(()=>vr));class vr extends Pr{apply(e){return this.nullCheck(e,yt.UNARY_PLUS),Ge.findPrimitiveNumberType(e),e}}var Lr={};t(Lr,"BitwiseComplementOperator",(()=>Ur));class Ur extends Pr{apply(e){this.nullCheck(e,yt.UNARY_BITWISE_COMPLEMENT);let t=Ge.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 Cr={};t(Cr,"LogicalNotOperator",(()=>Vr));class Vr extends Pr{apply(e){return!e&&""!==e}}var Gr={};t(Gr,"LiteralTokenValueExtractor",(()=>Yr));var br={};t(br,"TokenValueExtractor",(()=>Dr));class Dr{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(Dr.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("length"===n&&"string"==typeof s)return s.length;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 Mt(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 Mt(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 Mt(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 Mt(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 Mt(e,K.format("Unable to retrive $ from $ in the path $",t[r],n.toString(),e))}}const Fr=new Map([["true",!0],["false",!1],["null",void 0],["undefined",void 0]]);class Yr extends Dr{static INSTANCE=new Yr;getValueInternal(e){if(!Z.isNullOrBlank(e))return e=e.trim(),Fr.has(e)?Fr.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 Mt(e,K.format("Unable to parse the literal or expression $",e),t)}}processString(e){if(!e.endsWith('"'))throw new Mt(e,K.format("String literal $ is not closed properly",e));return e.substring(1,e.length-1)}getPrefix(){return""}}var Br={},Hr={};t(Hr,"ConditionalTernaryOperator",(()=>kr));class kr 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(Br,Hr);class $r extends Dr{static PREFIX="_internal.";values=new Map;addValue(e,t){this.values.set(e,t)}getValueInternal(e){let t=e.split(Dr.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 $r.PREFIX}}class jr{static UNARY_OPERATORS_MAP=new Map([[yt.UNARY_BITWISE_COMPLEMENT,new Ur],[yt.UNARY_LOGICAL_NOT,new Vr],[yt.UNARY_MINUS,new yr],[yt.UNARY_PLUS,new vr]]);static TERNARY_OPERATORS_MAP=new Map([[yt.CONDITIONAL_TERNARY_OPERATOR,new kr]]);static BINARY_OPERATORS_MAP=new Map([[yt.ADDITION,new bt],[yt.DIVISION,new Ft],[yt.INTEGER_DIVISION,new Bt],[yt.MOD,new kt],[yt.MULTIPLICATION,new jt],[yt.SUBTRACTION,new Wt],[yt.BITWISE_AND,new Qt],[yt.BITWISE_LEFT_SHIFT,new Zt],[yt.BITWISE_OR,new tr],[yt.BITWISE_RIGHT_SHIFT,new nr],[yt.BITWISE_UNSIGNED_RIGHT_SHIFT,new ar],[yt.BITWISE_XOR,new or],[yt.AND,new ur],[yt.EQUAL,new lr],[yt.GREATER_THAN,new pr],[yt.GREATER_THAN_EQUAL,new mr],[yt.LESS_THAN,new Nr],[yt.LESS_THAN_EQUAL,new cr],[yt.OR,new Mr],[yt.NOT_EQUAL,new _r],[yt.NULLISH_COALESCING_OPERATOR,new Vt],[yt.ARRAY_OPERATOR,new Jt],[yt.OBJECT_OPERATOR,new wr]]);static UNARY_OPERATORS_MAP_KEY_SET=new Set(jr.UNARY_OPERATORS_MAP.keys());internalTokenValueExtractor=new $r;constructor(e){e instanceof xt?(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 ht;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 Mt(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 xt(a))}replaceNestingExpression(e,t,r){let n=e;for(var s of r.toArray()){if(-1==s.getT2())throw new Mt(e,"Expecting }} nesting path operator to be closed");let r=new jr(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 xt(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(jr.UNARY_OPERATORS_MAP_KEY_SET.has(e))n.push(this.applyUnaryOperation(e,this.getValueFromToken(t,o)));else if(e==yt.OBJECT_OPERATOR||e==yt.ARRAY_OPERATOR)this.processObjectOrArrayOperator(t,r,n,e,o);else if(e==yt.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 dt)return o.getElement();if(!(o instanceof xt))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 ht,i=new ht;if(!n||!s)return;do{i.push(n),s instanceof xt?a.push(new dt(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==yt.OBJECT_OPERATOR||n==yt.ARRAY_OPERATOR);s&&(s instanceof xt?a.push(new dt(s.toString(),this.evaluateExpression(s,e))):a.push(s)),n&&t.push(n);let o=a.pop();if(o instanceof dt&&"object"==typeof o.getTokenValue()){const e=(new Date).getTime()+""+Math.round(1e3*Math.random());this.internalTokenValueExtractor.addValue(e,o.getTokenValue()),o=new wt($r.PREFIX+e)}let E=new _t(o instanceof dt?o.getTokenValue():o.toString());for(;!a.isEmpty();)o=a.pop(),n=i.pop(),E.append(n.getOperator()).append(o instanceof dt?o.getTokenValue():o.toString()),n==yt.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 dt(u,this.getValue(u,e)));else{let e;try{e=Yr.INSTANCE.getValue(u)}catch(t){e=u}r.push(new dt(u,e))}}applyTernaryOperation(e,t,r,n){let s=jr.TERNARY_OPERATORS_MAP.get(e);if(!s)throw new Mt(this.expression,K.format("No operator found to evaluate $",this.getExpression()));return new dt(e.toString(),s.apply(t,r,n))}applyBinaryOperation(e,t,r){let n=typeof t,s=typeof r,a=jr.BINARY_OPERATORS_MAP.get(e);if(("object"===n||"object"===s)&&e!==yt.EQUAL&&e!==yt.NOT_EQUAL&&e!==yt.NULLISH_COALESCING_OPERATOR)throw new Mt(this.expression,K.format("Cannot evaluate expression $ $ $",t,e.getOperator(),r));if(!a)throw new Mt(this.expression,K.format("No operator found to evaluate $ $ $",t,e.getOperator(),r));return new dt(e.toString(),a.apply(t,r))}applyUnaryOperation(e,t){if("object"===typeof t||Array.isArray(t))throw new Mt(this.expression,K.format("The operator $ cannot be applied to $",e.getOperator(),t));let r=jr.UNARY_OPERATORS_MAP.get(e);if(!r)throw new Mt(this.expression,K.format("No Unary operator $ is found to apply on $",e.getOperator(),t));return new dt(e.toString(),r.apply(t))}getValueFromToken(e,t){return t instanceof xt?this.evaluateExpression(t,e):t instanceof dt?t.getElement():this.getValue(t.getExpression(),e)}getValue(e,t){if(e.length<=5)return Yr.INSTANCE.getValue(e);const r=e.substring(0,e.indexOf(".")+1);return(t.get(r)??Yr.INSTANCE).getValue(e)}}const Xr=new W("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 Wr=new W("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 qr extends Pe{static CONDITION="condition";static SIGNATURE=new W("If").setNamespace(a.SYSTEM).setParameters(new Map([y.ofEntry(qr.CONDITION,S.of(qr.CONDITION,l.BOOLEAN))])).setEvents(new Map([Y.eventMapEntry(Y.TRUE,new Map),Y.eventMapEntry(Y.FALSE,new Map),Y.outputEventMapEntry(new Map)]));getSignature(){return qr.SIGNATURE}async internalExecute(e){var t=e.getArguments()?.get(qr.CONDITION);return new j([B.of(t?Y.TRUE:Y.FALSE,new Map),B.outputOf(new Map)])}}const Jr=new W("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 zr=new W("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 Qr=new W("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 Kr=[()=>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 Zr extends Pe{constructor(e,t,r=1,...n){super(),n&&n.length||(n=[l.DOUBLE]),this.parametersNumber=r,this.mathFunction=t,this.signature=new W(e).setNamespace(a.MATH).setParameters(Kr[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=Ge.findPrimitiveNumberType(e.getArguments()?.get(1==this.parametersNumber?"value":"value1")).getT2();return 2==this.parametersNumber&&(t=Ge.findPrimitiveNumberType(e.getArguments()?.get("value2")).getT2()),new j([B.outputOf(new Map([["value",this.mathFunction.call(this,r,t)]]))])}}class en extends Pe{static SIGNATURE=new W("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 en.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get("value");return new j([B.outputOf(new Map([["value",Math.sqrt(t.reduce(((e,t)=>e+t*t),0))]]))])}}const tn=new W("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 rn=new W("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 nn extends Pe{static SIGNATURE=new W("Random").setNamespace(a.MATH).setEvents(new Map([Y.outputEventMapEntry(G.of("value",S.ofDouble("value")))]));getSignature(){return nn.SIGNATURE}async internalExecute(e){return new j([B.outputOf(new Map([["value",Math.random()]]))])}}class sn extends Pe{static MIN_VALUE="minValue";static MAX_VALUE="maxValue";static VALUE="value";static SIGNATURE=new W("RandomFloat").setParameters(G.of(sn.MIN_VALUE,y.of(sn.MIN_VALUE,S.ofFloat(sn.MIN_VALUE).setDefaultValue(0)),sn.MAX_VALUE,y.of(sn.MAX_VALUE,S.ofFloat(sn.MAX_VALUE).setDefaultValue(2147483647)))).setNamespace(a.MATH).setEvents(new Map([Y.outputEventMapEntry(G.of(sn.VALUE,S.ofFloat(sn.VALUE)))]));getSignature(){return sn.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(sn.MIN_VALUE),r=e.getArguments()?.get(sn.MAX_VALUE),n=Math.random()*(r-t)+t;return new j([B.outputOf(new Map([[sn.VALUE,n]]))])}}class an extends Pe{static MIN_VALUE="minValue";static MAX_VALUE="maxValue";static VALUE="value";static SIGNATURE=new W("RandomInt").setParameters(G.of(an.MIN_VALUE,y.of(an.MIN_VALUE,S.ofInteger(an.MIN_VALUE).setDefaultValue(0)),an.MAX_VALUE,y.of(an.MAX_VALUE,S.ofInteger(an.MAX_VALUE).setDefaultValue(2147483647)))).setNamespace(a.MATH).setEvents(new Map([Y.outputEventMapEntry(G.of(an.VALUE,S.ofInteger(an.VALUE)))]));getSignature(){return an.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(an.MIN_VALUE),r=e.getArguments()?.get(an.MAX_VALUE),n=Math.floor(Math.random()*(r-t)+t);return new j([B.outputOf(new Map([[an.VALUE,n]]))])}}const on={Absolute:new Zr("Absolute",(e=>Math.abs(e)),1,l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE),ACosine:new Zr("ArcCosine",(e=>Math.acos(e))),ASine:new Zr("ArcSine",(e=>Math.asin(e))),ATangent:new Zr("ArcTangent",(e=>Math.atan(e))),Ceiling:new Zr("Ceiling",(e=>Math.ceil(e))),Cosine:new Zr("Cosine",(e=>Math.cos(e))),CosineH:new Zr("HyperbolicCosine",(e=>Math.cosh(e))),CubeRoot:new Zr("CubeRoot",(e=>Math.cbrt(e))),Exponential:new Zr("Exponential",(e=>Math.exp(e))),Expm1:new Zr("ExponentialMinus1",(e=>Math.expm1(e))),Floor:new Zr("Floor",(e=>Math.floor(e))),Log:new Zr("LogNatural",(e=>Math.log(e))),Log10:new Zr("Log10",(e=>Math.log10(e))),Round:new Zr("Round",(e=>Math.round(e)),1,l.INTEGER,l.LONG),Sine:new Zr("Sine",(e=>Math.sin(e))),SineH:new Zr("HyperbolicSine",(e=>Math.sinh(e))),Tangent:new Zr("Tangent",(e=>Math.tan(e))),TangentH:new Zr("HyperbolicTangent",(e=>Math.tanh(e))),ToDegrees:new Zr("ToDegrees",(e=>e*(Math.PI/180))),ToRadians:new Zr("ToRadians",(e=>e*(180/Math.PI))),SquareRoot:new Zr("SquareRoot",(e=>Math.sqrt(e))),ArcTangent:new Zr("ArcTangent2",((e,t)=>Math.atan2(e,t)),2),Power:new Zr("Power",((e,t)=>Math.pow(e,t)),2),Add:new class extends Pe{getSignature(){return Qr}async internalExecute(e){let t=e.getArguments()?.get("value");return new j([B.outputOf(new Map([["value",t.reduce(((e,t)=>e+t),0)]]))])}},Hypotenuse:new en,Maximum:new class extends Pe{getSignature(){return tn}async internalExecute(e){let t=e.getArguments()?.get("value");return new j([B.outputOf(new Map([["value",t.reduce(((e,t)=>!e&&0!==e||t>e?t:e))]]))])}},Minimum:new class extends Pe{getSignature(){return rn}async internalExecute(e){let t=e.getArguments()?.get("value");return new j([B.outputOf(new Map([["value",t.reduce(((e,t)=>!e&&0!==e||t<e?t:e))]]))])}},Random:new nn,RandomFloat:new sn,RandomInt:new an},En=Object.values(on).map((e=>e.getSignature().getFullName()));class un{find(e,t){if(e==a.MATH)return on[t]}filter(e){return En.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}var An={};function ln(e){return e?structuredClone?structuredClone(e):JSON.parse(JSON.stringify(e)):e}t(An,"duplicate",(()=>ln));class gn extends Pe{constructor(e,t){super(),this.signature=new W(e).setNamespace(a.SYSTEM_OBJECT).setParameters(new Map([y.ofEntry("source",S.ofAny("source"))])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",t]]))]))}getSignature(){return this.signature}}const mn={ObjectValues:new class extends gn{constructor(){super("ObjectValues",S.ofArray("value",S.ofAny("value")))}async internalExecute(e){var t=e.getArguments()?.get("source");if(E(t))return new j([B.outputOf(new Map([["value",[]]]))]);let r=Object.entries(ln(t)).sort(((e,t)=>e[0].localeCompare(t[0]))).map((e=>e[1]));return new j([B.outputOf(new Map([["value",r]]))])}},ObjectKeys:new class extends gn{constructor(){super("ObjectKeys",S.ofArray("value",S.ofString("value")))}async internalExecute(e){var t=e.getArguments()?.get("source");if(E(t))return new j([B.outputOf(new Map([["value",[]]]))]);let r=Object.keys(ln(t)).sort(((e,t)=>e.localeCompare(t)));return new j([B.outputOf(new Map([["value",r]]))])}},ObjectEntries:new class extends gn{constructor(){super("ObjectEntries",S.ofArray("value",S.ofArray("tuple",S.ofString("key"),S.ofAny("value"))))}async internalExecute(e){var t=e.getArguments()?.get("source");if(E(t))return new j([B.outputOf(new Map([["value",[]]]))]);let r=Object.entries(ln(t)).sort(((e,t)=>e[0].localeCompare(t[0])));return new j([B.outputOf(new Map([["value",r]]))])}},ObjectDeleteKey:new class extends Pe{constructor(){super(),this.signature=new W("ObjectDeleteKey").setNamespace(a.SYSTEM_OBJECT).setParameters(new Map([y.ofEntry("source",S.ofAny("source")),y.ofEntry("key",S.ofString("key"))])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",S.ofAny("value")]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get("source"),r=e.getArguments()?.get("key");return E(t)?new j([B.outputOf(new Map([["value",void 0]]))]):(t=ln(t),delete t[r],new j([B.outputOf(new Map([["value",t]]))]))}}},Rn=Object.values(mn).map((e=>e.getSignature().getFullName()));class pn{find(e,t){if(e==a.SYSTEM_OBJECT)return mn[t]}filter(e){return Rn.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}class Tn extends Pe{static VALUES="values";static SIGNATURE=new W("Print").setNamespace(a.SYSTEM).setParameters(new Map([y.ofEntry(Tn.VALUES,S.ofAny(Tn.VALUES),!0)]));getSignature(){return Tn.SIGNATURE}async internalExecute(e){var t=e.getArguments()?.get(Tn.VALUES);return console?.log(...t),new j([B.outputOf(new Map)])}}class cn 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(cn.PARAMETER_STRING_NAME,S.ofString(cn.PARAMETER_STRING_NAME));static PARAMETER_SECOND_STRING=new y(cn.PARAMETER_SECOND_STRING_NAME,S.ofString(cn.PARAMETER_SECOND_STRING_NAME));static PARAMETER_THIRD_STRING=new y(cn.PARAMETER_THIRD_STRING_NAME,S.ofString(cn.PARAMETER_THIRD_STRING_NAME));static PARAMETER_INDEX=new y(cn.PARAMETER_INDEX_NAME,S.ofInteger(cn.PARAMETER_INDEX_NAME));static PARAMETER_SECOND_INDEX=new y(cn.PARAMETER_SECOND_INDEX_NAME,S.ofInteger(cn.PARAMETER_SECOND_INDEX_NAME));static PARAMETER_SEARCH_STRING=new y(cn.PARAMETER_SEARCH_STRING_NAME,S.ofString(cn.PARAMETER_STRING_NAME));static EVENT_STRING=new Y(Y.OUTPUT,G.of(cn.EVENT_RESULT_NAME,S.ofString(cn.EVENT_RESULT_NAME)));static EVENT_BOOLEAN=new Y(Y.OUTPUT,G.of(cn.EVENT_RESULT_NAME,S.ofBoolean(cn.EVENT_RESULT_NAME)));static EVENT_INT=new Y(Y.OUTPUT,G.of(cn.EVENT_RESULT_NAME,S.ofInteger(cn.EVENT_RESULT_NAME)));static EVENT_ARRAY=new Y(Y.OUTPUT,G.of(cn.EVENT_RESULT_NAME,S.ofArray(cn.EVENT_RESULT_NAME)));constructor(e,t,r,...n){super();const s=new Map;n.forEach((e=>s.set(e.getParameterName(),e))),this.signature=new W(t).setNamespace(e).setParameters(s).setEvents(G.of(r.getName(),r))}getSignature(){return this.signature}static ofEntryAsStringBooleanOutput(e,t){return[e,new class extends cn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(cn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(cn.PARAMETER_SEARCH_STRING_NAME);return new j([B.outputOf(G.of(cn.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,cn.EVENT_BOOLEAN,cn.PARAMETER_STRING,cn.PARAMETER_SEARCH_STRING)]}static ofEntryAsStringAndIntegerStringOutput(e,t){return[e,new class extends cn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(cn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(cn.PARAMETER_INDEX_NAME);return new j([B.outputOf(G.of(cn.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,cn.EVENT_STRING,cn.PARAMETER_STRING,cn.PARAMETER_INDEX)]}static ofEntryAsStringIntegerOutput(e,t){return[e,new class extends cn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(cn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(cn.PARAMETER_SEARCH_STRING_NAME);return new j([B.outputOf(G.of(cn.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,cn.EVENT_INT,cn.PARAMETER_STRING,cn.PARAMETER_SEARCH_STRING)]}static ofEntryString(e,t){return[e,new class extends cn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(cn.PARAMETER_STRING_NAME);return new j([B.outputOf(G.of(cn.EVENT_RESULT_NAME,t(r)))])}}(a.STRING,e,cn.EVENT_STRING,cn.PARAMETER_STRING)]}static ofEntryStringBooleanOutput(e,t){return[e,new class extends cn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(cn.PARAMETER_STRING_NAME);return new j([B.outputOf(G.of(cn.EVENT_RESULT_NAME,t(r)))])}}(a.STRING,e,cn.EVENT_BOOLEAN,cn.PARAMETER_STRING)]}static ofEntryAsStringStringIntegerIntegerOutput(e,t){return[e,new class extends cn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(cn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(cn.PARAMETER_SEARCH_STRING_NAME),s=e?.getArguments()?.get(cn.PARAMETER_INDEX_NAME);return new j([B.outputOf(G.of(cn.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,cn.EVENT_INT,cn.PARAMETER_STRING,cn.PARAMETER_SEARCH_STRING,cn.PARAMETER_INDEX)]}static ofEntryAsStringIntegerIntegerStringOutput(e,t){return[e,new class extends cn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(cn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(cn.PARAMETER_INDEX_NAME),s=e?.getArguments()?.get(cn.PARAMETER_SECOND_INDEX_NAME);return new j([B.outputOf(G.of(cn.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,cn.EVENT_INT,cn.PARAMETER_STRING,cn.PARAMETER_INDEX,cn.PARAMETER_SECOND_INDEX)]}static ofEntryAsStringStringStringStringOutput(e,t){return[e,new class extends cn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(cn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(cn.PARAMETER_SECOND_STRING_NAME),s=e?.getArguments()?.get(cn.PARAMETER_THIRD_STRING_NAME);return new j([B.outputOf(G.of(cn.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,cn.EVENT_STRING,cn.PARAMETER_STRING,cn.PARAMETER_SECOND_STRING,cn.PARAMETER_THIRD_STRING)]}}class hn extends Pe{static VALUE="value";static SCHEMA=(new S).setName(hn.VALUE).setType(new N(l.STRING));static SIGNATURE=new W("Concatenate").setNamespace(a.STRING).setParameters(new Map([[hn.VALUE,new y(hn.VALUE,hn.SCHEMA).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([[hn.VALUE,S.ofString(hn.VALUE)]]))]));constructor(){super()}getSignature(){return hn.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(hn.VALUE),r="";return t.reduce(((e,t)=>r=e+t),r),new j([B.outputOf(new Map([[hn.VALUE,r]]))])}}class Nn 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(Nn.PARAMETER_STRING_NAME,S.ofString(Nn.PARAMETER_STRING_NAME));PARAMETER_AT_START=new y(Nn.PARAMETER_AT_START_NAME,S.ofInteger(Nn.PARAMETER_AT_START_NAME));PARAMETER_AT_END=new y(Nn.PARAMETER_AT_END_NAME,S.ofInteger(Nn.PARAMETER_AT_END_NAME));EVENT_STRING=new Y(Y.OUTPUT,new Map([[Nn.EVENT_RESULT_NAME,S.ofString(Nn.EVENT_RESULT_NAME)]]));signature=new W("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(Nn.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(Nn.PARAMETER_AT_START_NAME),n=e?.getArguments()?.get(Nn.PARAMETER_AT_END_NAME);if(n>=r){let e="";return e+=t.substring(0,r),e+=t.substring(n),new j([B.outputOf(new Map([[Nn.EVENT_RESULT_NAME,e.toString()]]))])}return new j([B.outputOf(new Map([[Nn.EVENT_RESULT_NAME,t]]))])}}class fn 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(fn.PARAMETER_STRING_NAME,S.ofString(fn.PARAMETER_STRING_NAME));PARAMETER_AT_POSITION=new y(fn.PARAMETER_AT_POSITION_NAME,S.ofInteger(fn.PARAMETER_AT_POSITION_NAME));PARAMETER_INSERT_STRING=new y(fn.PARAMETER_INSERT_STRING_NAME,S.ofString(fn.PARAMETER_INSERT_STRING_NAME));EVENT_STRING=new Y(Y.OUTPUT,new Map([[this.EVENT_RESULT_NAME,S.ofString(this.EVENT_RESULT_NAME)]]));signature=new W("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(fn.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(fn.PARAMETER_AT_POSITION_NAME),n=e?.getArguments()?.get(fn.PARAMETER_INSERT_STRING_NAME),s="";return s+=t.substring(0,r),s+=n,s+=t.substring(r),new j([B.outputOf(new Map([[this.EVENT_RESULT_NAME,s]]))])}}class _n 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(_n.PARAMETER_STRING_NAME,S.ofString(_n.PARAMETER_STRING_NAME));static PARAMETER_POSTPAD_STRING=new y(_n.PARAMETER_POSTPAD_STRING_NAME,S.ofString(_n.PARAMETER_POSTPAD_STRING_NAME));static PARAMETER_LENGTH=new y(_n.PARAMETER_LENGTH_NAME,S.ofInteger(_n.PARAMETER_LENGTH_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[_n.EVENT_RESULT_NAME,S.ofString(_n.EVENT_RESULT_NAME)]]));signature=new W("PostPad").setNamespace(a.STRING).setParameters(new Map([[_n.PARAMETER_STRING.getParameterName(),_n.PARAMETER_STRING],[_n.PARAMETER_POSTPAD_STRING.getParameterName(),_n.PARAMETER_POSTPAD_STRING],[_n.PARAMETER_LENGTH.getParameterName(),_n.PARAMETER_LENGTH]])).setEvents(new Map([[_n.EVENT_STRING.getName(),_n.EVENT_STRING]]));constructor(){super()}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(_n.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(_n.PARAMETER_POSTPAD_STRING_NAME),n=e.getArguments()?.get(_n.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 j([B.of(_n.EVENT_RESULT_NAME,new Map([[_n.EVENT_RESULT_NAME,s.toString()]]))])}}class Sn 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(Sn.PARAMETER_STRING_NAME,S.ofString(Sn.PARAMETER_STRING_NAME));static PARAMETER_PREPAD_STRING=new y(Sn.PARAMETER_PREPAD_STRING_NAME,S.ofString(Sn.PARAMETER_PREPAD_STRING_NAME));static PARAMETER_LENGTH=new y(Sn.PARAMETER_LENGTH_NAME,S.ofInteger(Sn.PARAMETER_LENGTH_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[Sn.EVENT_RESULT_NAME,S.ofString(Sn.EVENT_RESULT_NAME)]]));signature=new W("PrePad").setNamespace(a.STRING).setParameters(new Map([[Sn.PARAMETER_STRING.getParameterName(),Sn.PARAMETER_STRING],[Sn.PARAMETER_PREPAD_STRING.getParameterName(),Sn.PARAMETER_PREPAD_STRING],[Sn.PARAMETER_LENGTH.getParameterName(),Sn.PARAMETER_LENGTH]])).setEvents(new Map([[Sn.EVENT_STRING.getName(),Sn.EVENT_STRING]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(Sn.PARAMETER_STRING_NAME),r=e.getArguments()?.get(Sn.PARAMETER_PREPAD_STRING_NAME),n=e.getArguments()?.get(Sn.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 j([B.of(Sn.EVENT_RESULT_NAME,new Map([[Sn.EVENT_RESULT_NAME,s]]))])}}class Mn 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(Mn.PARAMETER_STRING_NAME,S.ofString(Mn.PARAMETER_STRING_NAME));static PARAMETER_OTHER_STRING=new y(Mn.PARAMETER_OTHER_STRING_NAME,S.ofString(Mn.PARAMETER_OTHER_STRING_NAME));static PARAMETER_FIRST_OFFSET=new y(Mn.PARAMETER_FIRST_OFFSET_NAME,S.ofInteger(Mn.PARAMETER_FIRST_OFFSET_NAME));static PARAMETER_SECOND_OFFSET=new y(Mn.PARAMETER_SECOND_OFFSET_NAME,S.ofInteger(Mn.PARAMETER_SECOND_OFFSET_NAME));static PARAMETER_INTEGER=new y(Mn.PARAMETER_INTEGER_NAME,S.ofInteger(Mn.PARAMETER_INTEGER_NAME));static PARAMETER_BOOLEAN=new y(Mn.PARAMETER_BOOLEAN_NAME,S.ofBoolean(Mn.PARAMETER_BOOLEAN_NAME));static EVENT_BOOLEAN=new Y(Y.OUTPUT,new Map([[Mn.EVENT_RESULT_NAME,S.ofBoolean(Mn.EVENT_RESULT_NAME)]]));signature=new W("RegionMatches").setNamespace(a.STRING).setParameters(new Map([[Mn.PARAMETER_STRING.getParameterName(),Mn.PARAMETER_STRING],[Mn.PARAMETER_BOOLEAN.getParameterName(),Mn.PARAMETER_BOOLEAN],[Mn.PARAMETER_FIRST_OFFSET.getParameterName(),Mn.PARAMETER_FIRST_OFFSET],[Mn.PARAMETER_OTHER_STRING.getParameterName(),Mn.PARAMETER_OTHER_STRING],[Mn.PARAMETER_SECOND_OFFSET.getParameterName(),Mn.PARAMETER_SECOND_OFFSET],[Mn.PARAMETER_INTEGER.getParameterName(),Mn.PARAMETER_INTEGER]])).setEvents(new Map([[Mn.EVENT_BOOLEAN.getName(),Mn.EVENT_BOOLEAN]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(Mn.PARAMETER_STRING_NAME),r=e.getArguments()?.get(Mn.PARAMETER_BOOLEAN_NAME),n=e.getArguments()?.get(Mn.PARAMETER_FIRST_OFFSET_NAME),s=e?.getArguments()?.get(Mn.PARAMETER_OTHER_STRING_NAME),a=e?.getArguments()?.get(Mn.PARAMETER_SECOND_OFFSET_NAME),i=e.getArguments()?.get(Mn.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 j([B.outputOf(new Map([[Mn.EVENT_RESULT_NAME,o]]))])}}class On 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(On.PARAMETER_STRING_NAME,S.ofString(On.PARAMETER_STRING_NAME));static PARAMETER_AT_START=new y(On.PARAMETER_AT_START_NAME,S.ofInteger(On.PARAMETER_AT_START_NAME));static PARAMETER_AT_LENGTH=new y(On.PARAMETER_AT_LENGTH_NAME,S.ofInteger(On.PARAMETER_AT_LENGTH_NAME));static PARAMETER_REPLACE_STRING=new y(On.PARAMETER_REPLACE_STRING_NAME,S.ofString(On.PARAMETER_REPLACE_STRING_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[On.EVENT_RESULT_NAME,S.ofString(On.EVENT_RESULT_NAME)]]));constructor(){super()}signature=new W("ReplaceAtGivenPosition").setNamespace(a.STRING).setParameters(new Map([[On.PARAMETER_STRING.getParameterName(),On.PARAMETER_STRING],[On.PARAMETER_AT_START.getParameterName(),On.PARAMETER_AT_START],[On.PARAMETER_AT_LENGTH.getParameterName(),On.PARAMETER_AT_LENGTH],[On.PARAMETER_REPLACE_STRING.getParameterName(),On.PARAMETER_REPLACE_STRING]])).setEvents(new Map([[On.EVENT_STRING.getName(),On.EVENT_STRING]]));getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(On.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(On.PARAMETER_AT_START_NAME),n=e?.getArguments()?.get(On.PARAMETER_AT_LENGTH_NAME),s=e?.getArguments()?.get(On.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 j([B.outputOf(new Map([[On.EVENT_RESULT_NAME,t]]))])}}class wn extends Pe{VALUE="value";SIGNATURE=new W("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 j([B.outputOf(G.of(this.VALUE,n))])}}class In 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 W("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 j([B.outputOf(G.of(this.EVENT_RESULT_NAME,t.split(r)))])}}class dn 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 W("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 j([B.outputOf(new Map([[this.EVENT_RESULT_NAME,r]]))])}}class Pn extends Pe{static PARAMETER_STRING_NAME="string";static PARAMETER_LENGTH_NAME="length";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new y(Pn.PARAMETER_STRING_NAME,S.ofString(Pn.PARAMETER_STRING_NAME));static PARAMETER_LENGTH=new y(Pn.PARAMETER_LENGTH_NAME,S.ofInteger(Pn.PARAMETER_LENGTH_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[Pn.EVENT_RESULT_NAME,S.ofString(Pn.EVENT_RESULT_NAME)]]));signature=new W("TrimTo").setNamespace(a.STRING).setParameters(new Map([[Pn.PARAMETER_STRING.getParameterName(),Pn.PARAMETER_STRING],[Pn.PARAMETER_LENGTH.getParameterName(),Pn.PARAMETER_LENGTH]])).setEvents(new Map([[Pn.EVENT_STRING.getName(),Pn.EVENT_STRING]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(Pn.PARAMETER_STRING_NAME),r=e.getArguments()?.get(Pn.PARAMETER_LENGTH_NAME);return new j([B.of(Pn.EVENT_RESULT_NAME,new Map([[Pn.EVENT_RESULT_NAME,t.substring(0,r)]]))])}}class yn{static repoMap=G.ofArrayEntries(cn.ofEntryString("Trim",(e=>e.trim())),cn.ofEntryString("LowerCase",(e=>e.toLocaleLowerCase())),cn.ofEntryString("UpperCase",(e=>e.toUpperCase())),cn.ofEntryStringBooleanOutput("IsBlank",(e=>""===e.trim())),cn.ofEntryStringBooleanOutput("IsEmpty",(e=>""===e)),cn.ofEntryAsStringBooleanOutput("Contains",((e,t)=>-1!=e.indexOf(t))),cn.ofEntryAsStringBooleanOutput("EndsWith",((e,t)=>e.endsWith(t))),cn.ofEntryAsStringBooleanOutput("EqualsIgnoreCase",((e,t)=>e.toUpperCase()==t.toUpperCase())),cn.ofEntryAsStringBooleanOutput("Matches",((e,t)=>new RegExp(t).test(e))),cn.ofEntryAsStringIntegerOutput("IndexOf",((e,t)=>e.indexOf(t))),cn.ofEntryAsStringIntegerOutput("LastIndexOf",((e,t)=>e.lastIndexOf(t))),cn.ofEntryAsStringAndIntegerStringOutput("Repeat",((e,t)=>e.repeat(t))),cn.ofEntryAsStringStringIntegerIntegerOutput("IndexOfWithStartPoint",((e,t,r)=>e.indexOf(t,r))),cn.ofEntryAsStringStringIntegerIntegerOutput("LastIndexOfWithStartPoint",((e,t,r)=>e.lastIndexOf(t,r))),cn.ofEntryAsStringStringStringStringOutput("Replace",((e,t,r)=>e)),cn.ofEntryAsStringStringStringStringOutput("ReplaceFirst",((e,t,r)=>e.replace(t,r))),cn.ofEntryAsStringIntegerIntegerStringOutput("SubString",((e,t,r)=>e.substring(t,r))),C(new hn),C(new Nn),C(new fn),C(new _n),C(new Sn),C(new Mn),C(new On),C(new wn),C(new In),C(new dn),C(new Pn));static filterableNames=Array.from(yn.repoMap.values()).map((e=>e.getSignature().getFullName()));find(e,t){if(e==a.STRING)return yn.repoMap.get(t)}filter(e){return yn.filterableNames.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}var xn={};t(xn,"HybridRepository",(()=>vn));class vn{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 Ln=new Map([[a.SYSTEM_CTX,new Map([C(new class extends Pe{getSignature(){return gt}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 lt(r,E(r.getDefaultValue())?void 0:r.getDefaultValue())),new j([B.outputOf(new Map)])}}),C(new class extends Pe{getSignature(){return mt}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 j([B.outputOf(new Map(["value",e.getContext()?.get(t)?.getElement()]))])}}),C(new class extends Pe{getSignature(){return Xr}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 xt(t),s=n.getTokens().peekLast();if(!s.getExpression().startsWith("Context")||s instanceof xt||s instanceof dt&&!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!=yt.ARRAY_OPERATOR&&e!=yt.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 xt&&n.getTokens().set(r,new dt(t,new jr(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 j([B.outputOf(new Map)]);let o=i.getElement(),u=a.removeLast(),A=s.removeLast(),l=A instanceof dt?A.getElement():A.getExpression();for(E(o)&&(o=u==yt.OBJECT_OPERATOR?{}:[],i.setElement(o));!a.isEmpty();)o=u==yt.OBJECT_OPERATOR?this.getDataFromObject(o,l,a.peekLast()):this.getDataFromArray(o,l,a.peekLast()),u=a.removeLast(),A=s.removeLast(),l=A instanceof dt?A.getElement():A.getExpression();return u==yt.OBJECT_OPERATOR?this.putDataInObject(o,l,r):this.putDataInArray(o,l,r),new j([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==yt.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==yt.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([C(new class extends Pe{getSignature(){return zr}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 j({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}})}}),C(new class extends Pe{getSignature(){return Jr}async internalExecute(e){let t=e.getArguments()?.get("count"),r=0;return new j({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([C(new qr),C(new class extends Pe{getSignature(){return Wr}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 jr(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 j([B.outputOf(new Map)])}}),C(new Tn)])]]),Un=Array.from(Ln.values()).flatMap((e=>Array.from(e.values()))).map((e=>e.getSignature().getFullName()));class Cn extends vn{constructor(){super({find:(e,t)=>Ln.get(e)?.get(t),filter:e=>Array.from(Un).filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))},new un,new yn,new ut,new pn)}}var Vn={};t(Vn,"StatementExecution",(()=>Dn));var Gn={};t(Gn,"StatementMessage",(()=>bn));class bn{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 Dn{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 bn(e,t))}addDependency(e){this.dependencies.add(e)}getDepenedencies(){return this.dependencies}equals(e){if(!(e instanceof Dn))return!1;return e.statement.equals(this.statement)}}var Fn={};t(Fn,"ContextTokenValueExtractor",(()=>Yn));class Yn extends Dr{static PREFIX="Context.";constructor(e){super(),this.context=e}getValueInternal(e){let t=e.split(Dr.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 Yn.PREFIX}}var Bn={};t(Bn,"OutputMapTokenValueExtractor",(()=>Hn));class Hn extends Dr{static PREFIX="Steps.";constructor(e){super(),this.output=e}getValueInternal(e){let t=e.split(Dr.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;const a=t[r].indexOf("[");if(-1===a){let n=s.get(t[r++]);return this.retrieveElementFrom(e,t,r,n)}const i=t[r].substring(0,a);let o=s.get(i);return this.retrieveElementFrom(e,t,r,{[i]:o})}getPrefix(){return Hn.PREFIX}}var kn={};t(kn,"ArgumentsTokenValueExtractor",(()=>$n));class $n extends Dr{static PREFIX="Arguments.";constructor(e){super(),this.args=e}getValueInternal(e){let t=e.split(Dr.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 $n.PREFIX}}var jn={};t(jn,"GraphVertex",(()=>qn));var Xn={};t(Xn,"ExecutionGraph",(()=>Wn));class Wn{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 qn(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 ht(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 qn{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 Wn(!0);var r=new ht(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 Jn={};t(Jn,"KIRuntime",(()=>os));var zn={};t(zn,"JsonExpression",(()=>Qn));class Qn{constructor(e){this.expression=e}getExpression(){return this.expression}}var Kn={};let Zn;var es;t(Kn,"ParameterReferenceType",(()=>Zn)),(es=Zn||(Zn={})).VALUE="VALUE",es.EXPRESSION="EXPRESSION";var ts={};function rs(){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(ts,"FunctionExecutionParameters",(()=>ns));class ns{count=0;valueExtractors=new Map;constructor(e,t,r){this.functionRepository=e,this.schemaRepository=t,this.executionId=r??rs()}getExecutionId(){return this.executionId}getContext(){return this.context}setContext(e){this.context=e;let t=new Yn(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 Hn(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 ss={};let as;var is;t(ss,"StatementMessageType",(()=>as)),(is=as||(as={})).ERROR="ERROR",is.WARNING="WARNING",is.MESSAGE="MESSAGE";class os 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()>os.VERSION)throw new $("Runtime is at a lower version "+os.VERSION+" and trying to run code from version "+this.fd.getVersion()+".")}getSignature(){return this.fd}async getExecutionPlan(e,t){let r=new Wn;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(as.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 $n(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 ht;r.addAll(e.getVerticesWithNoIncomingEdges());let n=new ht;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()==os.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 j(s):new j([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 os?new ns(t.getFunctionRepository(),t.getSchemaRepository(),`${t.getExecutionId()}_${a.getStatementName()}`).setArguments(E).setValuesMap(new Map(Array.from(t.getValuesMap().values()).filter((e=>e.getPrefix()!==$n.PREFIX&&e.getPrefix()!==Hn.PREFIX&&e.getPrefix()!==Yn.PREFIX)).map((e=>[e.getPrefix(),e])))):new ns(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),g=l.next();if(!g)throw new $(K.format("Executing $ returned no events",a.getStatementName()));let m=g.getName()==Y.OUTPUT;if(t.getSteps()?.has(a.getStatementName())||t.getSteps().set(a.getStatementName(),new Map),t.getSteps().get(a.getStatementName()).set(g.getName(),this.resolveInternalExpressions(g.getResult(),t)),this.debugMode&&(console.log(`EID: ${t.getExecutionId()} Step : ${a.getStatementName()} => ${a.getNamespace()}.${a.getName()}`),console.log(`EID: ${t.getExecutionId()} Event : ${g.getName()} : `,t.getSteps().get(a.getStatementName()).get(g.getName()))),m){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(g.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 Qn){return new jr(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()==Zn.VALUE)r=this.resolveInternalExpression(t.getValue(),e);else if(t.getType()==Zn.EXPRESSION&&!Z.isNullOrBlank(t.getExpression())){r=new jr(t.getExpression()??"").evaluate(e.getValuesMap())}return r}prepareStatementExecution(e,t,r){let n=new Dn(e),s=t.find(e.getNamespace(),e.getName());if(!s)return n.addMessage(as.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(as.ERROR,K.format(os.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(as.ERROR,K.format(os.PARAMETER_NEEDS_A_VALUE,e.getParameterName()));return n}parameterReferenceValidation(e,t,r,n){if(r){if(r.getType()==Zn.VALUE){if(E(r.getValue())&&!oe.hasDefaultValueOrNullSchemaType(t.getSchema(),n)&&e.addMessage(as.ERROR,K.format(os.PARAMETER_NEEDS_A_VALUE,t.getParameterName())),E(r.getValue()))return;let s=new ht;for(s.push(new re(t.getSchema(),r.getValue()));!s.isEmpty();){let t=s.pop();if(t.getT2()instanceof Qn)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()==Zn.EXPRESSION)if(Z.isNullOrBlank(r.getExpression()))E(oe.getDefaultValue(t.getSchema(),n))&&e.addMessage(as.ERROR,K.format(os.PARAMETER_NEEDS_A_VALUE,t.getParameterName()));else try{this.addDependencies(e,r.getExpression())}catch(t){e.addMessage(as.ERROR,K.format("Error evaluating $ : $",r.getExpression(),t))}}else E(oe.getDefaultValue(t.getSchema(),n))&&e.addMessage(as.ERROR,K.format(os.PARAMETER_NEEDS_A_VALUE,t.getParameterName()))}addDependencies(e,t){t&&Array.from(t.match(os.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",(()=>us));class us{static NAMESPACE="namespace";static NAME="name";static ID="id";constructor(){}}var As={};t(As,"Position",(()=>ls));class ls{static SCHEMA_NAME="Position";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(ls.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 ls(e.left,e.top)}}var gs={};t(gs,"FunctionDefinition",(()=>Ss));var ms={};t(ms,"Statement",(()=>hs));var Rs={};t(Rs,"AbstractStatement",(()=>ps));class ps{override=!1;constructor(e){e&&(this.comment=e.comment,this.description=e.description,this.position=e.position?new ls(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 Ts={};t(Ts,"ParameterReference",(()=>cs));class cs{static SCHEMA_NAME="ParameterReference";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(cs.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 cs){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=rs()}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 cs(Zn.EXPRESSION).setExpression(e);return[t.getKey(),t]}static ofValue(e){const t=new cs(Zn.VALUE).setValue(e);return[t.getKey(),t]}static from(e){return new cs(e.type).setValue(e.value).setExpression(e.expression).setKey(e.key).setOrder(e.order)}}class hs extends ps{static SCHEMA_NAME="Statement";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(hs.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(cs.SCHEMA))))],["position",ls.SCHEMA]]));constructor(e,t,r){if(super(e instanceof hs?e:void 0),e instanceof hs){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 cs(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 hs))return!1;return e.statementName==this.statementName}static ofEntry(e){return[e.statementName,e]}static from(e){return new hs(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])=>cs.from(t))).map((e=>[e.getKey(),e])))])))).setDependentStatements(new Map(Object.entries(e.dependentStatements??{}))).setPosition(ls.from(e.position)).setComment(e.comment).setDescription(e.description)}}var Ns={};t(Ns,"StatementGroup",(()=>fs));class fs extends ps{static SCHEMA_NAME="StatementGroup";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(fs.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["statementGroupName",S.ofString("statementGroupName")],["comment",S.ofString("comment")],["description",S.ofString("description")],["position",ls.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 fs(e.statementGroupName,new Map(Object.entries(e.statements||{}).map((([e,t])=>[e,"true"==(""+t)?.toLowerCase()])))).setPosition(ls.from(e.position)).setComment(e.comment).setDescription(e.description)}}const _s=(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(hs.SCHEMA))]]));_s.getProperties()?.set("parts",S.ofArray("parts",_s));class Ss extends W{static SCHEMA=_s;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 Ss(e.name).setSteps(new Map(Object.values(e.steps??{}).filter((e=>!!e)).map((e=>[e.statementName,hs.from(e)])))).setStepGroups(new Map(Object.values(e.stepGroups??{}).filter((e=>!!e)).map((e=>[e.statementGroupName,fs.from(e)])))).setParts(Array.from(e.parts??[]).filter((e=>!!e)).map((e=>Ss.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 Ss("unknown")}}var Ms={};t(Ms,"Argument",(()=>Os));class Os{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 Os(0,e,t)}}var ws={};e(ws,Ir),e(ws,xr),e(ws,Lr),e(ws,Cr),e(ws,dr);var Is={};e(Is,Gt),e(Is,Dt),e(Is,Yt),e(Is,Ht),e(Is,$t),e(Is,Xt),e(Is,qt),e(Is,Ut),e(Is,zt),e(Is,Kt),e(Is,er),e(Is,rr),e(Is,sr),e(Is,ir),e(Is,Er),e(Is,Ar),e(Is,gr),e(Is,Rr),e(Is,Tr),e(Is,fr),e(Is,hr),e(Is,Sr),e(Is,Or),e(Is,Lt),e(module.exports,r),e(module.exports,U),e(module.exports,{}),e(module.exports,Ue),e(module.exports,V),e(module.exports,o),e(module.exports,pt),e(module.exports,ft),e(module.exports,Q),e(module.exports,z),e(module.exports,te),e(module.exports,De),e(module.exports,Tt),e(module.exports,An),e(module.exports,Vn),e(module.exports,Gn),e(module.exports,At),e(module.exports,Fn),e(module.exports,Bn),e(module.exports,kn),e(module.exports,jn),e(module.exports,{}),e(module.exports,Xn),e(module.exports,Jn),e(module.exports,ss),e(module.exports,ts),e(module.exports,Rt),e(module.exports,br),e(module.exports,Gr),e(module.exports,vt),e(module.exports,Pt),e(module.exports,Ot),e(module.exports,St),e(module.exports,It),e(module.exports,{}),e(module.exports,q),e(module.exports,s),e(module.exports,zn),e(module.exports,n),e(module.exports,ce),e(module.exports,me),e(module.exports,pe),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,h),e(module.exports,m),e(module.exports,R),e(module.exports,p),e(module.exports,A),e(module.exports,ee),e(module.exports,Se),e(module.exports,xn),e(module.exports,Es),e(module.exports,M),e(module.exports,H),e(module.exports,As),e(module.exports,gs),e(module.exports,Kn),e(module.exports,D),e(module.exports,Rs),e(module.exports,ms),e(module.exports,{}),e(module.exports,Ns),e(module.exports,X),e(module.exports,F),e(module.exports,I),e(module.exports,Ms),e(module.exports,Ts),e(module.exports,Ce),e(module.exports,k),e(module.exports,ws),e(module.exports,Is),e(module.exports,Br);
2
2
  //# sourceMappingURL=index.js.map