@fincity/kirun-js 1.4.11 → 1.4.13

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",(()=>v));var n={};t(n,"AdditionalPropertiesType",(()=>_)),t(n,"Schema",(()=>S));var s={};t(s,"Namespaces",(()=>a));class a{static SYSTEM="System";static SYSTEM_CTX="System.Context";static SYSTEM_LOOP="System.Loop";static SYSTEM_ARRAY="System.Array";static MATH="System.Math";static STRING="System.String";constructor(){}}var i={};t(i,"ArraySchemaType",(()=>u));var o={};function E(e){return null==e}t(o,"isNullValue",(()=>E));class u{constructor(e){e&&(this.singleSchema=e.singleSchema?new S(e.singleSchema):void 0,this.tupleSchema=e.tupleSchema?e.tupleSchema.map((e=>new S(e))):void 0)}setSingleSchema(e){return this.singleSchema=e,this}setTupleSchema(e){return this.tupleSchema=e,this}getSingleSchema(){return this.singleSchema}getTupleSchema(){return this.tupleSchema}isSingleType(){return!E(this.singleSchema)}static of(...e){return 1==e.length?(new u).setSingleSchema(e[0]):(new u).setTupleSchema(e)}static from(e){if(!e)return;Array.isArray(e)&&u.of(...S.fromListOfSchemas(e));let t=S.from(e);return t?u.of(t):void 0}}var A={};let R;var l;t(A,"SchemaType",(()=>R)),(l=R||(R={})).INTEGER="Integer",l.LONG="Long",l.FLOAT="Float",l.DOUBLE="Double",l.STRING="String",l.OBJECT="Object",l.ARRAY="Array",l.BOOLEAN="Boolean",l.NULL="Null";var T={};t(T,"TypeUtil",(()=>f));var g={};t(g,"MultipleType",(()=>h));var p={};t(p,"Type",(()=>m));class m{}class h extends m{constructor(e){super(),this.type=e instanceof h?new Set(Array.from(e.type)):new Set(Array.from(e))}getType(){return this.type}setType(e){return this.type=e,this}getAllowedSchemaTypes(){return this.type}contains(e){return this.type?.has(e)}}var c={};t(c,"SingleType",(()=>N));class N extends m{constructor(e){super(),this.type=e instanceof N?e.type:e}getType(){return this.type}getAllowedSchemaTypes(){return new Set([this.type])}contains(e){return this.type==e}}class f{static of(...e){return 1==e.length?new N(e[0]):new h(new Set(e))}static from(e){return"string"==typeof e?new N(R[e]):Array.isArray(e)?new h(new Set(e.map((e=>e)).map((e=>R[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)return;const t=new _;return t.booleanValue=e.booleanValue,t.schemaValue=e.schemaValue,t}}class S{static NULL=(new S).setNamespace(a.SYSTEM).setName("Null").setType(f.of(R.NULL)).setConstant(void 0);static TYPE_SCHEMA=(new S).setType(f.of(R.STRING)).setEnums(["INTEGER","LONG","FLOAT","DOUBLE","STRING","OBJECT","ARRAY","BOOLEAN","NULL"]);static SCHEMA=(new S).setNamespace(a.SYSTEM).setName("Schema").setType(f.of(R.OBJECT)).setProperties(new Map([["namespace",S.of("namespace",R.STRING).setDefaultValue("_")],["name",S.ofString("name")],["version",S.of("version",R.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("#/"))],["allOf",S.ofArray("allOf",S.ofRef("#/"))],["oneOf",S.ofArray("oneOf",S.ofRef("#/"))],["not",S.ofRef("#/")],["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",R.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",R.OBJECT).setAdditionalProperties((new _).setSchemaValue(S.ofRef("#/")))],["additionalProperties",(new S).setName("additionalProperty").setNamespace(a.SYSTEM).setAnyOf([S.ofBoolean("additionalProperty"),S.ofObject("additionalProperty").setRef("#/")]).setDefaultValue(!0)],["required",S.ofArray("required",S.ofString("required")).setDefaultValue([])],["propertyNames",S.ofRef("#/")],["minProperties",S.ofInteger("minProperties")],["maxProperties",S.ofInteger("maxProperties")],["patternProperties",S.of("patternProperties",R.OBJECT).setAdditionalProperties((new _).setSchemaValue(S.ofRef("#/")))],["items",(new S).setName("items").setAnyOf([S.ofRef("#/").setName("item"),S.ofArray("tuple",S.ofRef("#/"))])],["contains",S.ofRef("#/")],["minItems",S.ofInteger("minItems")],["maxItems",S.ofInteger("maxItems")],["uniqueItems",S.ofBoolean("uniqueItems")],["$defs",S.of("$defs",R.OBJECT).setAdditionalProperties((new _).setSchemaValue(S.ofRef("#/")))],["permission",S.ofString("permission")]])).setRequired([]);static ofString(e){return(new S).setType(f.of(R.STRING)).setName(e)}static ofInteger(e){return(new S).setType(f.of(R.INTEGER)).setName(e)}static ofFloat(e){return(new S).setType(f.of(R.FLOAT)).setName(e)}static ofLong(e){return(new S).setType(f.of(R.LONG)).setName(e)}static ofDouble(e){return(new S).setType(f.of(R.DOUBLE)).setName(e)}static ofAny(e){return(new S).setType(f.of(R.INTEGER,R.LONG,R.FLOAT,R.DOUBLE,R.STRING,R.BOOLEAN,R.ARRAY,R.NULL,R.OBJECT)).setName(e)}static ofAnyNotNull(e){return(new S).setType(f.of(R.INTEGER,R.LONG,R.FLOAT,R.DOUBLE,R.STRING,R.BOOLEAN,R.ARRAY,R.OBJECT)).setName(e)}static ofNumber(e){return(new S).setType(f.of(R.INTEGER,R.LONG,R.FLOAT,R.DOUBLE)).setName(e)}static ofBoolean(e){return(new S).setType(f.of(R.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(R.OBJECT)).setName(e)}static ofRef(e){return(new S).setRef(e)}static ofArray(e,...t){return(new S).setType(f.of(R.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(R.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.contains=S.from(e.contains),r.minItems=e.minItems,r.maxItems=e.maxItems,r.uniqueItems=e.uniqueItems,r.$defs=S.fromMapOfSchemas(e.$defs),r.permission=e.permission,r}namespace="_";version=1;constructor(e){e&&(this.namespace=e.namespace,this.name=e.name,this.version=e.version,this.ref=e.ref,this.type=e.type instanceof N?new N(e.type):new h(e.type),this.anyOf=e.anyOf?.map((e=>new S(e))),this.allOf=e.allOf?.map((e=>new S(e))),this.oneOf=e.oneOf?.map((e=>new S(e))),this.not=this.not?new S(this.not):void 0,this.description=e.description,this.examples=e.examples?JSON.parse(JSON.stringify(e.examples)):void 0,this.defaultValue=e.defaultValue?JSON.parse(JSON.stringify(e.defaultValue)):void 0,this.comment=e.comment,this.enums=e.enums?[...e.enums]:void 0,this.constant=e.constant?JSON.parse(JSON.stringify(e.constant)):void 0,this.pattern=e.pattern,this.format=e.format,this.minLength=e.minLength,this.maxLength=e.maxLength,this.multipleOf=e.multipleOf,this.minimum=e.minimum,this.maximum=e.maximum,this.exclusiveMinimum=e.exclusiveMinimum,this.exclusiveMaximum=e.exclusiveMaximum,this.properties=e.properties?new Map(Array.from(e.properties.entries()).map((e=>[e[0],new S(e[1])]))):void 0,this.additionalProperties=e.additionalProperties?new _(e.additionalProperties):void 0,this.required=e.required?[...e.required]:void 0,this.propertyNames=e.propertyNames?new S(e.propertyNames):void 0,this.minProperties=e.minProperties,this.maxProperties=e.maxProperties,this.patternProperties=e.patternProperties?new Map(Array.from(e.patternProperties.entries()).map((e=>[e[0],new S(e[1])]))):void 0,this.items=e.items?new u(e.items):void 0,this.contains=e.contains?new S(this.contains):void 0,this.minItems=e.minItems,this.maxItems=e.maxItems,this.uniqueItems=e.uniqueItems,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.getFullName()}getFullName(){return this.namespace&&"_"!=this.namespace?this.namespace+"."+this.name: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}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(R.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}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 P;var d;t(I,"ParameterType",(()=>P)),(d=P||(P={})).CONSTANT="CONSTANT",d.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",R.BOOLEAN).setDefaultValue(!1)],["type",S.ofString("type").setEnums(["EXPRESSION","CONSTANT"])]]));static EXPRESSION=(new S).setNamespace(a.SYSTEM).setName("ParameterExpression").setType(f.of(R.OBJECT)).setProperties(new Map([["isExpression",S.ofBoolean("isExpression").setDefaultValue(!0)],["value",S.ofAny("value")]]));variableArgument=!1;type=P.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=P.EXPRESSION){return[e,new y(e,t).setType(n).setVariableArgument(r)]}static of(e,t,r=!1,n=P.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??P.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]]);class v{find(e,t){if(a.SYSTEM==e)return x.get(t)}}var L={};function U(e){return[e.getSignature().getName(),e]}t(L,"KIRunFunctionRepository",(()=>Sn));var V={};t(V,"MapUtil",(()=>G)),t(V,"MapEntry",(()=>C));class G{static of(e,t,r,n,s,a,i,o,u,A,R,l,T,g,p,m,h,c,N,f){const _=new Map;return E(e)||E(t)||_.set(e,t),E(r)||E(n)||_.set(r,n),E(s)||E(a)||_.set(s,a),E(i)||E(o)||_.set(i,o),E(u)||E(A)||_.set(u,A),E(R)||E(l)||_.set(R,l),E(T)||E(g)||_.set(T,g),E(p)||E(m)||_.set(p,m),E(h)||E(c)||_.set(h,c),E(N)||E(f)||_.set(N,f),_}static ofArrayEntries(...e){const t=new Map;for(const[r,n]of e)t.set(r,n);return t}static entry(e,t){return new C(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 C{constructor(e,t){this.k=e,this.v=t}}var D={};t(D,"EventResult",(()=>Y));var b={};t(b,"Event",(()=>F));class F{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(F.SCHEMA_NAME).setType(f.of(R.OBJECT)).setProperties(new Map([["name",S.ofString("name")],["parameters",S.ofObject("parameter").setAdditionalProperties((new _).setSchemaValue(S.SCHEMA))]]));constructor(e,t){if(e instanceof F)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 F.eventMapEntry(F.OUTPUT,e)}static eventMapEntry(e,t){return[e,new F(e,t)]}static from(e){return new F(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 Y{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 Y.of(F.OUTPUT,e)}static of(e,t){return new Y(e,t)}}var B={};t(B,"FunctionOutput",(()=>$));var H={};t(H,"KIRuntimeException",(()=>k));class k extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class ${index=0;constructor(e){if(E(e))throw new k("Function output is generating null");Array.isArray(e)&&e.length&&e[0]instanceof Y?this.fo=e:(this.fo=[],this.generator=e)}next(){if(!this.generator)return this.index<this.fo.length?this.fo[this.index++]:void 0;const e=this.generator.next();return e&&this.fo.push(e),e}allResults(){return this.fo}}var 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(F.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 F(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}}var j={};t(j,"AbstractFunction",(()=>Pe));var q={};t(q,"SchemaValidator",(()=>Ie));var J={};t(J,"StringUtil",(()=>K));var z={};t(z,"StringFormatter",(()=>Q));class Q{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 K{constructor(){}static nthIndex(e,t,r=0,n){if(!e)throw new k("String cannot be null");if(r<0||r>=e.length)throw new k(Q.format("Cannot search from index : $",r));if(n<=0||n>e.length)throw new k(Q.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 Z={};t(Z,"SchemaUtil",(()=>ie));var ee={};t(ee,"Tuple2",(()=>te)),t(ee,"Tuple3",(()=>re)),t(ee,"Tuple4",(()=>ne));class te{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 re extends te{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 ne extends re{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 se={};t(se,"SchemaValidationException",(()=>ae));class ae 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 ie{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.getDefaultValue()?e.getDefaultValue():ie.getDefaultValue(ie.getSchemaFromRef(e,t,e.getRef()),t)}static getSchemaFromRef(e,t,r,n=0){if(++n==ie.CYCLIC_REFERENCE_LIMIT_COUNTER)throw new ae(r??"","Schema has a cyclic reference");if(!e||!r||K.isNullOrBlank(r))return;if(!r.startsWith("#")){var s=ie.resolveExternalSchema(e,t,r);s&&(e=s.getT1(),r=s.getT2())}let a=r.split("/");return 1===a.length?e:ie.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,ie.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);i=i.get$defs()?.get(s[a])}else{if(i&&(!i.getType()?.contains(R.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,ie.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);if(!K.isNullOrBlank(i.getRef())&&(i=ie.getSchemaFromRef(i,t,i.getRef(),n),!i))throw new w(r,ie.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH)}return i}}static resolveExternalSchema(e,t,r){if(!t)return;let n=K.splitAtFirstOccurance(r??"","/");if(!n[0])return;let s=K.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 te(a,r);if(r="#/"+n[1],!a)throw new w(r,ie.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);return new te(a,r)}}constructor(){}}var oe={};t(oe,"AnyOfAllOfOneOfValidator",(()=>Ee));class Ee{static validate(e,t,r,n){let s=[];return t.getOneOf()&&!t.getOneOf()?Ee.oneOf(e,t,r,n,s):t.getAllOf()&&!t.getAllOf()?Ee.allOf(e,t,r,n,s):t.getAnyOf()&&!t.getAnyOf()&&Ee.anyOf(e,t,r,n,s),n}static anyOf(e,t,r,n,s){let a=!1;for(let i of t.getAnyOf()??[])try{Ee.validate(e,i,r,n),a=!0;break}catch(e){a=!1,s.push(e)}if(!a)throw new ae(Ie.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{Ee.validate(e,i,r,n),a++}catch(e){s.push(e)}if(a!==t.getAllOf()?.length)throw new ae(Ie.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{Ee.validate(e,i,r,n),a++}catch(e){s.push(e)}if(1!=a)throw new ae(Ie.path(e),0==a?"The value does not satisfy any schema":"The value satisfy more than one schema",s)}constructor(){}}var ue={};t(ue,"TypeValidator",(()=>we));var Ae={};t(Ae,"ArrayValidator",(()=>Re));class Re{static validate(e,t,r,n){if(E(n))throw new ae(Ie.path(e),"Expected an array but found null");if(!Array.isArray(n))throw new ae(Ie.path(e),n.toString()+" is not an Array");let s=n;return Re.checkMinMaxItems(e,t,s),Re.checkItems(e,t,r,s),Re.checkUniqueItems(e,t,s),Re.checkContains(e,t,r,s),n}static checkContains(e,t,r,n){if(!t.getContains())return;let s=!1;for(let a=0;a<n.length;a++){let i=e?[...e]:[];try{Ie.validate(i,t.getContains(),r,n[a]),s=!0;break}catch(e){s=!1}}if(!s)throw new ae(Ie.path(e),"None of the items are of type contains schema")}static checkUniqueItems(e,t,r){if(t.getUniqueItems()&&t.getUniqueItems()){if(new Set(r).size!==r.length)throw new ae(Ie.path(e),"Items on the array are not unique")}}static checkMinMaxItems(e,t,r){if(t.getMinItems()&&t.getMinItems()>r.length)throw new ae(Ie.path(e),"Array should have minimum of "+t.getMinItems()+" elements");if(t.getMaxItems()&&t.getMaxItems()<r.length)throw new ae(Ie.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=Ie.validate(a,s.getSingleSchema(),r,n[t]);n[t]=i}if(s.getTupleSchema()){if(s.getTupleSchema().length!==n.length)throw new ae(Ie.path(e),"Expected an array with only "+s.getTupleSchema().length+" but found "+n.length);for(let t=0;t<n.length;t++){let a=e?[...e]:[],i=Ie.validate(a,s.getTupleSchema()[t],r,n[t]);n[t]=i}}}constructor(){}}var le={};t(le,"BooleanValidator",(()=>Te));class Te{static validate(e,t,r){if(E(r))throw new ae(Ie.path(e),"Expected a boolean but found null");if("boolean"!=typeof r)throw new ae(Ie.path(e),r.toString()+" is not a boolean");return r}constructor(){}}var ge={};t(ge,"NullValidator",(()=>pe));class pe{static validate(e,t,r){if(r)throw new ae(Ie.path(e),"Expected a null but found "+r);return r}constructor(){}}var me={};t(me,"NumberValidator",(()=>he));class he{static validate(e,t,r,n){if(E(n))throw new ae(Ie.path(t),"Expected a number but found null");if("number"!=typeof n)throw new ae(Ie.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!=R.LONG&&e!=R.INTEGER||(s=Math.round(s))}catch(r){throw new ae(Ie.path(t),n+" is not a number of type "+e,r)}if(E(s)||(e==R.LONG||e==R.INTEGER)&&s!=n)throw new ae(Ie.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 ae(Ie.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 ae(Ie.path(e),r.toString()+" should be greater than or equal to "+t.getMinimum());if(t.getMaximum()&&he.numberCompare(n,t.getMaximum())>0)throw new ae(Ie.path(e),r.toString()+" should be less than or equal to "+t.getMaximum());if(t.getExclusiveMinimum()&&he.numberCompare(n,t.getExclusiveMinimum())<=0)throw new ae(Ie.path(e),r.toString()+" should be greater than "+t.getExclusiveMinimum());if(t.getExclusiveMaximum()&&he.numberCompare(n,t.getExclusiveMaximum())>0)throw new ae(Ie.path(e),r.toString()+" should be less than "+t.getExclusiveMaximum())}static numberCompare(e,t){return e-t}constructor(){}}var ce={};t(ce,"ObjectValidator",(()=>Ne));class Ne{static validate(e,t,r,n){if(E(n))throw new ae(Ie.path(e),"Expected an object but found null");if("object"!=typeof n||Array.isArray(n))throw new ae(Ie.path(e),n.toString()+" is not an Object");let s=n,a=new Set(Object.keys(s));Ne.checkMinMaxProperties(e,t,a),t.getPropertyNames()&&Ne.checkPropertyNameSchema(e,t,r,a),t.getRequired()&&Ne.checkRequired(e,t,s),t.getProperties()&&Ne.checkProperties(e,t,r,s,a),t.getPatternProperties()&&Ne.checkPatternProperties(e,t,r,s,a),t.getAdditionalProperties()&&Ne.checkAddtionalProperties(e,t,r,s,a)}static checkPropertyNameSchema(e,t,r,n){for(let s of Array.from(n.values()))try{Ie.validate(e,t.getPropertyNames(),r,s)}catch(t){throw new ae(Ie.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 ae(Ie.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=Ie.validate(s,a.getSchemaValue(),r,n[t]);n[t]=i}else if(!1===a.getBooleanValue()&&s.size)throw new ae(Ie.path(e),s.toString()+" 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=Ie.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(E(t))continue;let i=e?[...e]:[],o=Ie.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 ae(Ie.path(e),"Object should have minimum of "+t.getMinProperties()+" properties");if(t.getMaxProperties()&&r.size>t.getMaxProperties())throw new ae(Ie.path(e),"Object can have maximum of "+t.getMaxProperties()+" properties")}constructor(){}}var fe={};t(fe,"StringValidator",(()=>Oe));var _e={};let Se;var Me;t(_e,"StringFormat",(()=>Se)),(Me=Se||(Se={})).DATETIME="DATETIME",Me.TIME="TIME",Me.DATE="DATE",Me.EMAIL="EMAIL",Me.REGEX="REGEX";class Oe{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 ae(Ie.path(e),"Expected a string but found "+r);if("string"!=typeof r)throw new ae(Ie.path(e),r.toString()+" is not String");t.getFormat()==Se.TIME?Oe.patternMatcher(e,t,r,Oe.TIME,"time pattern"):t.getFormat()==Se.DATE?Oe.patternMatcher(e,t,r,Oe.DATE,"date pattern"):t.getFormat()==Se.DATETIME?Oe.patternMatcher(e,t,r,Oe.DATETIME,"date time pattern"):t.getFormat()==Se.EMAIL?Oe.patternMatcher(e,t,r,Oe.EMAIL,"email pattern"):t.getPattern()&&Oe.patternMatcher(e,t,r,new RegExp(t.getPattern()),"pattern "+t.getPattern());let n=r.length;if(t.getMinLength()&&n<t.getMinLength())throw new ae(Ie.path(e),"Expected a minimum of "+t.getMinLength()+" characters");if(t.getMaxLength()&&n>t.getMaxLength())throw new ae(Ie.path(e),"Expected a maximum of "+t.getMaxLength()+" characters");return r}static patternMatcher(e,t,r,n,s){if(!n.test(r))throw new ae(Ie.path(e),r.toString()+" is not matched with the "+s)}constructor(){}}class we{static validate(e,t,r,n,s){if(t==R.STRING)Oe.validate(e,r,s);else if(t==R.LONG||t==R.INTEGER||t==R.DOUBLE||t==R.FLOAT)he.validate(t,e,r,s);else if(t==R.BOOLEAN)Te.validate(e,r,s);else if(t==R.OBJECT)Ne.validate(e,r,n,s);else if(t==R.ARRAY)Re.validate(e,r,n,s);else{if(t!=R.NULL)throw new ae(Ie.path(e),t+" is not a valid type.");pe.validate(e,r,s)}return s}constructor(){}}class Ie{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 ae(Ie.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 Ie.constantValidation(e,t,n);if(t.getEnums()&&!t.getEnums()?.length)return Ie.enumCheck(e,t,n);if(t.getType()&&Ie.typeValidation(e,t,r,n),!K.isNullOrBlank(t.getRef()))return Ie.validate(e,ie.getSchemaFromRef(e[0],r,t.getRef()),r,n);if((t.getOneOf()||t.getAllOf()||t.getAnyOf())&&Ee.validate(e,t,r,n),t.getNot()){let s=!1;try{Ie.validate(e,t.getNot(),r,n),s=!0}catch(e){s=!1}if(s)throw new ae(Ie.path(e),"Schema validated value in not condition.")}return n}static constantValidation(e,t,r){if(!t.getConstant().equals(r))throw new ae(Ie.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 ae(Ie.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{we.validate(e,i,t,r,n),s=!0;break}catch(e){s=!1,a.push(e)}if(!s)throw new ae(Ie.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 k(`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 te(a,Ie.validate(void 0,n.getSchema(),t,void 0));if(!n?.isVariableArgument())return new te(a,Ie.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]=Ie.validate(void 0,n.getSchema(),t,s[e]);return new te(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 k(`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 de extends Pe{static EVENT_INDEX_NAME="index";static EVENT_RESULT_NAME="result";static EVENT_INDEX=new F(F.OUTPUT,G.of(de.EVENT_INDEX_NAME,S.ofInteger(de.EVENT_INDEX_NAME)));static EVENT_RESULT_INTEGER=new F(F.OUTPUT,G.of(de.EVENT_RESULT_NAME,S.ofInteger(de.EVENT_RESULT_NAME)));static EVENT_RESULT_BOOLEAN=new F(F.OUTPUT,G.of(de.EVENT_RESULT_NAME,S.ofBoolean(de.EVENT_RESULT_NAME)));static EVENT_RESULT_ARRAY=new F(F.OUTPUT,G.of(de.EVENT_RESULT_NAME,S.ofArray(de.EVENT_RESULT_NAME,S.ofAny(de.EVENT_RESULT_NAME))));static EVENT_RESULT_EMPTY=new F(F.OUTPUT,G.of());static EVENT_RESULT_ANY=new F(F.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",R.STRING,R.DOUBLE,R.FLOAT,R.INTEGER,R.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(R.STRING,R.NULL,R.INTEGER,R.FLOAT,R.DOUBLE,R.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(de.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 ye extends de{constructor(){super("Add",[de.PARAMETER_ARRAY_SOURCE,de.PARAMETER_ARRAY_SECOND_SOURCE],de.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(de.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(de.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName());return t.splice(t.length,0,...r),new $([Y.outputOf(new Map([]))])}}class xe extends de{constructor(){super("AddFirst",[de.PARAMETER_ARRAY_SOURCE,de.PARAMETER_ANY_NOT_NULL],de.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(de.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(de.PARAMETER_ANY_NOT_NULL.getParameterName());if(0==t.length)return t.push(r),new $([Y.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 $([Y.outputOf(new Map([]))])}}var ve={};t(ve,"PrimitiveUtil",(()=>Ve));var Le={};t(Le,"ExecutionException",(()=>Ue));class Ue extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class Ve{static findPrimitiveNullAsBoolean(e){if(E(e))return new te(R.BOOLEAN,!1);let t=typeof e;if("object"===t)throw new Ue(Q.format("$ is not a primitive type",e));let r=e;return"boolean"===t?new te(R.BOOLEAN,r):"string"===t?new te(R.STRING,r):Ve.findPrimitiveNumberType(r)}static findPrimitive(e){if(E(e))return new te(R.NULL,void 0);let t=typeof e;if("object"===t)throw new Ue(Q.format("$ is not a primitive type",e));let r=e;return"boolean"===t?new te(R.BOOLEAN,r):"string"===t?new te(R.STRING,r):Ve.findPrimitiveNumberType(r)}static findPrimitiveNumberType(e){if(E(e)||Array.isArray(e)||"object"==typeof e)throw new Ue(Q.format("Unable to convert $ to a number.",e));let t=e;try{let e=t;return Number.isInteger(e)?new te(R.LONG,e):new te(R.DOUBLE,e)}catch(e){throw new Ue(Q.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)?R.LONG:R.DOUBLE}static toPrimitiveType(e){return e}constructor(){}}class Ge extends de{constructor(){super("BinarySearch",[Ge.PARAMETER_ARRAY_SOURCE_PRIMITIVE,Ge.PARAMETER_INT_SOURCE_FROM,Ge.PARAMETER_FIND_PRIMITIVE,Ge.PARAMETER_INT_LENGTH],Ge.EVENT_INDEX)}async internalExecute(e){let t=e?.getArguments()?.get(Ge.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Ge.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(Ge.PARAMETER_FIND_PRIMITIVE.getParameterName()),s=e?.getArguments()?.get(Ge.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length||r<0||r>t.length)throw new k("Search source array cannot be empty");if(-1==s&&(s=t.length-r),s=r+s,s>t.length)throw new k("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==Ve.compare(t[e],n)){a=e;break}Ve.compare(t[e],n)>0?s=e-1:r=e+1}return new $([Y.outputOf(new Map([[Ge.EVENT_INDEX.getName(),a]]))])}}var Ce={};t(Ce,"ArrayUtil",(()=>De));class De{static removeAListFrom(e,t){if(!(t&&e&&e.length&&t.length))return;const r=new Set(t);for(let t=0;t<e.length;t++)r.has(e[t])&&(e.splice(t,1),t--)}static of(...e){const t=new Array(e.length);for(let r=0;r<e.length;r++)t[r]=e[r];return t}constructor(){}}class be extends de{constructor(){super("Compare",De.of(be.PARAMETER_ARRAY_SOURCE,be.PARAMETER_INT_SOURCE_FROM,be.PARAMETER_ARRAY_FIND,be.PARAMETER_INT_FIND_FROM,be.PARAMETER_INT_LENGTH),be.EVENT_RESULT_INTEGER)}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_ARRAY_FIND.getParameterName()),s=e?.getArguments()?.get(be.PARAMETER_INT_FIND_FROM.getParameterName()),a=e?.getArguments()?.get(be.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new k("Compare source array cannot be empty");if(0==n.length)throw new k("Compare find array cannot be empty");if(-1==a&&(a=t.length-r),r+a>t.length)throw new k(Q.format("Source array size $ is less than comparing size $",t.length,r+a));if(s+a>n.length)throw new k(Q.format("Find array size $ is less than comparing size $",n.length,s+a));return new $(De.of(Y.outputOf(G.of(be.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(Q.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 Fe extends de{constructor(){super("Copy",[Fe.PARAMETER_ARRAY_SOURCE,Fe.PARAMETER_INT_SOURCE_FROM,Fe.PARAMETER_INT_LENGTH,Fe.PARAMETER_BOOLEAN_DEEP_COPY],Fe.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(Fe.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Fe.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(Fe.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),r+n>t.length)throw new k(Q.format("Array has no elements from $ to $ as the array size is $",r,r+n,t.length));var s=e?.getArguments()?.get(Fe.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 $([Y.outputOf(G.of(Fe.EVENT_RESULT_NAME,a))])}}class Ye extends de{constructor(){super("Delete",[de.PARAMETER_ARRAY_SOURCE,de.PARAMETER_ANY_VAR_ARGS],de.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(Ye.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Ye.PARAMETER_ANY_VAR_ARGS.getParameterName());if(null==r)throw new k("The deletable var args are empty. So cannot be proceeded further.");if(0==t.length||0==r.length)throw new k("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!=Ve.compare(t[e],r[s])||n.add(t[e]);return s=t.filter((e=>!n.has(e))),t.splice(0,t.length,...s),new $([Y.outputOf(new Map([]))])}}class Be extends de{constructor(){super("DeleteFirst",[Be.PARAMETER_ARRAY_SOURCE],Be.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(Be.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new k("Given source array is empty");return t.shift(),new $([Y.outputOf(new Map([]))])}}class He extends de{constructor(){super("DeleteFrom",[He.PARAMETER_ARRAY_SOURCE,He.PARAMETER_INT_SOURCE_FROM,He.PARAMETER_INT_LENGTH],He.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(He.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(He.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(He.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new k("There are no elements to be deleted");if(r>=t.length||r<0)throw new k("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 k("Requested length to be deleted is more than the size of array ");return t.splice(r,n),new $([Y.outputOf(new Map([]))])}}class ke extends de{constructor(){super("DeleteLast",[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 k("Given source array is empty");return t.pop(),new $([Y.outputOf(new Map([]))])}}class $e extends de{constructor(){super("Disjoint",[$e.PARAMETER_ARRAY_SOURCE,$e.PARAMETER_INT_SOURCE_FROM,$e.PARAMETER_ARRAY_SECOND_SOURCE,$e.PARAMETER_INT_SECOND_SOURCE_FROM,$e.PARAMETER_INT_LENGTH],$e.EVENT_RESULT_ARRAY)}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_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get($e.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get($e.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 k("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 $([Y.outputOf(new Map([[$e.EVENT_RESULT_ARRAY.getName(),u]]))])}}class Xe extends de{constructor(){super("Equals",[Xe.PARAMETER_ARRAY_SOURCE,Xe.PARAMETER_INT_SOURCE_FROM,Xe.PARAMETER_ARRAY_FIND,Xe.PARAMETER_INT_FIND_FROM,Xe.PARAMETER_INT_LENGTH],Xe.EVENT_RESULT_BOOLEAN)}async internalExecute(e){let t=new be,r=(await t.execute(e)).allResults()[0].getResult().get(Xe.EVENT_RESULT_NAME);return new $([Y.outputOf(G.of(Xe.EVENT_RESULT_NAME,0==r))])}}class We extends de{constructor(){super("Fill",[We.PARAMETER_ARRAY_SOURCE,We.PARAMETER_INT_SOURCE_FROM,We.PARAMETER_INT_LENGTH,We.PARAMETER_ANY],We.EVENT_RESULT_EMPTY)}async internalExecute(e){var t=e?.getArguments()?.get(We.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(We.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(We.PARAMETER_INT_LENGTH.getParameterName()),s=e?.getArguments()?.get(We.PARAMETER_ANY.getParameterName());if(r<0)throw new k(Q.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 $([Y.outputOf(G.of())])}}class je extends de{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 $([Y.outputOf(new Map([[je.EVENT_RESULT_INTEGER.getName(),0]]))]);if(n>t.length)throw new k("Given start point is more than the size of source");if(E(r))throw new k("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 k("Given length is more than the size of source");let i=0;for(let e=n;e<a&&e<t.length;e++)0==Ve.compare(t[e],r)&&i++;return new $([Y.outputOf(new Map([[je.EVENT_RESULT_INTEGER.getName(),i]]))])}}class qe extends de{constructor(){super("IndexOf",[qe.PARAMETER_ARRAY_SOURCE,qe.PARAMETER_ANY_NOT_NULL,qe.PARAMETER_INT_FIND_FROM],qe.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(qe.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(qe.PARAMETER_ANY_NOT_NULL.getParameterName());let n=e?.getArguments()?.get(qe.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new $([Y.outputOf(new Map([[qe.EVENT_RESULT_INTEGER.getName(),-1]]))]);if(n<0||n>t.length)throw new k("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==Ve.compare(t[e],r)){s=e;break}return new $([Y.outputOf(new Map([[qe.EVENT_RESULT_INTEGER.getName(),s]]))])}}class Je extends de{constructor(){super("IndexOfArray",[Je.PARAMETER_ARRAY_SOURCE,Je.PARAMETER_ARRAY_SECOND_SOURCE,Je.PARAMETER_INT_FIND_FROM],Je.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(Je.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Je.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(Je.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length||0==r.length)return new $([Y.outputOf(new Map([[Je.EVENT_RESULT_INTEGER.getName(),-1]]))]);if(n<0||n>t.length||t.length<r.length)throw new k("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==Ve.compare(t[e],r[n])){for(;n<s&&0==Ve.compare(t[e+n],r[n]);)n++;if(n==s){a=e;break}}}return new $([Y.outputOf(new Map([[Je.EVENT_RESULT_INTEGER.getName(),a]]))])}}class ze extends de{constructor(){super("LastIndexOf",[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 $([Y.outputOf(new Map([[ze.EVENT_RESULT_INTEGER.getName(),-1]]))]);if(n<0||n>t.length)throw new k("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==Ve.compare(t[e],r)){s=e;break}return new $([Y.outputOf(new Map([[ze.EVENT_RESULT_INTEGER.getName(),s]]))])}}class Qe extends de{constructor(){super("LastIndexOfArray",[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)return new $([Y.outputOf(new Map([[Qe.EVENT_RESULT_ARRAY.getName(),-1]]))]);if(n<0||n>t.length||r.length>t.length)throw new k("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==Ve.compare(t[e],r[n])){for(;n<s&&0==Ve.compare(t[e+n],r[n]);)n++;n==s&&(a=e)}}return new $([Y.outputOf(new Map([[Qe.EVENT_RESULT_INTEGER.getName(),a]]))])}}class Ke extends de{constructor(){super("Max",[Ke.PARAMETER_ARRAY_SOURCE_PRIMITIVE],Ke.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(Ke.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==t.length)throw new k("Search source array cannot be empty");let r=t[0];for(let e=1;e<t.length;e++){let n=t[e];Ve.comparePrimitive(r,n)>=0||(r=n)}return new $([Y.outputOf(new Map([[Ke.EVENT_RESULT_ANY.getName(),r]]))])}}class Ze extends de{constructor(){super("Min",[Ze.PARAMETER_ARRAY_SOURCE_PRIMITIVE],Ze.EVENT_RESULT_ANY)}async internalExecute(e){let t,r=e?.getArguments()?.get(Ze.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==r.length)throw new k("Search source array cannot be empty");for(let e=0;e<r.length;e++)E(r[e])||(void 0===t||Ve.comparePrimitive(r[e],t)<0)&&(t=r[e]);return new $([Y.outputOf(new Map([[Ze.EVENT_RESULT_ANY.getName(),t]]))])}}class et extends de{constructor(){super("MisMatch",[et.PARAMETER_ARRAY_SOURCE,et.PARAMETER_INT_FIND_FROM,et.PARAMETER_ARRAY_SECOND_SOURCE,et.PARAMETER_INT_SECOND_SOURCE_FROM,et.PARAMETER_INT_LENGTH],et.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(et.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(et.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(et.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(et.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(et.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 k("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 $([Y.outputOf(new Map([[et.EVENT_RESULT_INTEGER.getName(),E]]))])}}class tt extends de{constructor(){super("Reverse",[tt.PARAMETER_ARRAY_SOURCE,tt.PARAMETER_INT_SOURCE_FROM,tt.PARAMETER_INT_LENGTH],tt.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(tt.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(tt.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(tt.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),n>=t.length||n<0||r<0)throw new k("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 $([Y.outputOf(new Map([]))])}}class rt extends de{constructor(){super("Rotate",[rt.PARAMETER_ARRAY_SOURCE,rt.PARAMETER_ROTATE_LENGTH],rt.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(rt.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(rt.PARAMETER_ROTATE_LENGTH.getParameterName());if(0==t.length)return new $([Y.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 $([Y.outputOf(new Map([]))])}rotate(e,t,r){for(;t<r;){let n=e[t];e[t++]=e[r],e[r--]=n}}}class nt extends de{constructor(){super("Shuffle",[nt.PARAMETER_ARRAY_SOURCE],nt.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(nt.PARAMETER_ARRAY_SOURCE.getParameterName());if(t.length<=1)return new $([Y.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 $([Y.outputOf(new Map([]))])}}class st extends de{constructor(){super("Sort",[st.PARAMETER_ARRAY_SOURCE_PRIMITIVE,st.PARAMETER_INT_FIND_FROM,st.PARAMETER_INT_LENGTH,st.PARAMETER_BOOLEAN_ASCENDING],st.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(st.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName()),r=e?.getArguments()?.get(st.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(st.PARAMETER_INT_LENGTH.getParameterName()),s=e?.getArguments()?.get(st.PARAMETER_BOOLEAN_ASCENDING.getParameterName());if(0==t.length)return new $([Y.outputOf(new Map([[st.EVENT_RESULT_EMPTY.getName(),t]]))]);if(-1==n&&(n=t.length-r),r<0||r>=t.length||r+n>t.length)throw new k("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 $([Y.outputOf(new Map([[st.EVENT_RESULT_EMPTY.getName(),t]]))])}}class at extends de{constructor(){super("SubArray",[at.PARAMETER_ARRAY_SOURCE,at.PARAMETER_INT_FIND_FROM,at.PARAMETER_INT_LENGTH],at.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(at.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(at.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(at.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),n<=0)return new $([Y.outputOf(new Map([]))]);if(!(r>=0&&r<t.length)||r+n>t.length)throw new k("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 $([Y.outputOf(new Map([[at.EVENT_RESULT_ARRAY.getName(),s]]))])}}class it{static repoMap=G.ofArrayEntries(U(new ye),U(new xe),U(new Ge),U(new be),U(new Fe),U(new Ye),U(new Be),U(new He),U(new ke),U(new $e),U(new Xe),U(new We),U(new je),U(new qe),U(new Je),U(new ze),U(new Qe),U(new Ke),U(new Ze),U(new et),U(new tt),U(new rt),U(new nt),U(new st),U(new at));find(e,t){if(e==a.SYSTEM_ARRAY)return it.repoMap.get(t)}}var ot={};t(ot,"ContextElement",(()=>Et));class Et{static NULL=new Et(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 ut=new W("Create").setNamespace(a.SYSTEM_CTX).setParameters(new Map([y.ofEntry("name",(new S).setName("name").setType(f.of(R.STRING)).setMinLength(1).setFormat(Se.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,P.CONSTANT),y.ofEntry("schema",S.SCHEMA,!1,P.CONSTANT)])).setEvents(new Map([F.outputEventMapEntry(new Map)]));const At=new W("Get").setNamespace(a.SYSTEM_CTX).setParameters(new Map([y.ofEntry("name",(new S).setName("name").setType(f.of(R.STRING)).setMinLength(1).setFormat(Se.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,P.CONSTANT)])).setEvents(new Map([F.outputEventMapEntry(new Map([["value",S.ofAny("value")]]))]));var Rt={};t(Rt,"Expression",(()=>Pt));var lt={};t(lt,"LinkedList",(()=>pt));var Tt={};function gt(e,t){let r=new pt;r.push(e);let n=new pt;for(n.push(t);!r.isEmpty()&&!n.isEmpty();){const e=r.pop(),t=n.pop();if(e===t)continue;const s=typeof e,a=typeof t;if("undefined"===s||"undefined"===a){if(!e&&!t)continue;return!1}if(s!==a)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!=t.length)return!1;for(let s=0;s<e.length;s++)r.push(e[s]),n.push(t[s])}else{if("object"!==s)return!1;{const s=Object.entries(e),a=Object.entries(t);if(s.length!==a.length)return!1;for(const[e,a]of s)r.push(a),n.push(t[e])}}}return!0}t(Tt,"deepEqual",(()=>gt));class pt{head=void 0;tail=void 0;length=0;constructor(e){if(e?.length){for(const t of e)if(this.head){const e=new mt(t,this.tail);this.tail.next=e,this.tail=e}else this.tail=this.head=new mt(t);this.length=e.length}}push(e){const t=new mt(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(Q.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 mt(e,this.head),this.head.next=this.tail):(this.tail=new mt(e,this.tail),this.tail.previous.next=this.tail):this.head=this.tail=new mt(e),this}map(e,t){let r=new pt,n=this.head,s=0;for(;n;)r.add(e(n.value,s)),n=n.next,++s;return r}indexOf(e){let t=this.head,r=0;for(;t;){if(gt(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 mt{constructor(e,t,r){this.value=e,this.next=r,this.previous=t}toString(){return""+this.value}}var ht={};t(ht,"StringBuilder",(()=>ct));class ct{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 k(`Index ${e} is greater than or equal to ${this.str.length}`)}substring(e,t){return this.str.substring(e,t)}}var Nt={};t(Nt,"ExpressionEvaluationException",(()=>ft));class ft extends Error{constructor(e,t,r){super(Q.format("$ : $",e,t)),this.cause=r}getCause(){return this.cause}}var _t={};t(_t,"ExpressionToken",(()=>St));class St{constructor(e){this.expression=e}getExpression(){return this.expression}toString(){return this.expression}}var Mt={};t(Mt,"ExpressionTokenValue",(()=>Ot));class Ot extends St{constructor(e,t){super(e),this.element=t}getTokenValue(){return this.element}getElement(){return this.element}toString(){return Q.format("$: $",this.expression,this.element)}}var wt={};t(wt,"Operation",(()=>It));class It{static MULTIPLICATION=new It("*");static DIVISION=new It("/");static INTEGER_DIVISION=new It("//");static MOD=new It("%");static ADDITION=new It("+");static SUBTRACTION=new It("-");static NOT=new It("not",void 0,!0);static AND=new It("and",void 0,!0);static OR=new It("or",void 0,!0);static LESS_THAN=new It("<");static LESS_THAN_EQUAL=new It("<=");static GREATER_THAN=new It(">");static GREATER_THAN_EQUAL=new It(">=");static EQUAL=new It("=");static NOT_EQUAL=new It("!=");static BITWISE_AND=new It("&");static BITWISE_OR=new It("|");static BITWISE_XOR=new It("^");static BITWISE_COMPLEMENT=new It("~");static BITWISE_LEFT_SHIFT=new It("<<");static BITWISE_RIGHT_SHIFT=new It(">>");static BITWISE_UNSIGNED_RIGHT_SHIFT=new It(">>>");static UNARY_PLUS=new It("UN: +","+");static UNARY_MINUS=new It("UN: -","-");static UNARY_LOGICAL_NOT=new It("UN: not","not");static UNARY_BITWISE_COMPLEMENT=new It("UN: ~","~");static ARRAY_OPERATOR=new It("[");static OBJECT_OPERATOR=new It(".");static NULLISH_COALESCING_OPERATOR=new It("??");static CONDITIONAL_TERNARY_OPERATOR=new It("?");static VALUE_OF=new Map([["MULTIPLICATION",It.MULTIPLICATION],["DIVISION",It.DIVISION],["INTEGER_DIVISON",It.INTEGER_DIVISION],["MOD",It.MOD],["ADDITION",It.ADDITION],["SUBTRACTION",It.SUBTRACTION],["NOT",It.NOT],["AND",It.AND],["OR",It.OR],["LESS_THAN",It.LESS_THAN],["LESS_THAN_EQUAL",It.LESS_THAN_EQUAL],["GREATER_THAN",It.GREATER_THAN],["GREATER_THAN_EQUAL",It.GREATER_THAN_EQUAL],["EQUAL",It.EQUAL],["NOT_EQUAL",It.NOT_EQUAL],["BITWISE_AND",It.BITWISE_AND],["BITWISE_OR",It.BITWISE_OR],["BITWISE_XOR",It.BITWISE_XOR],["BITWISE_COMPLEMENT",It.BITWISE_COMPLEMENT],["BITWISE_LEFT_SHIFT",It.BITWISE_LEFT_SHIFT],["BITWISE_RIGHT_SHIFT",It.BITWISE_RIGHT_SHIFT],["BITWISE_UNSIGNED_RIGHT_SHIFT",It.BITWISE_UNSIGNED_RIGHT_SHIFT],["UNARY_PLUS",It.UNARY_PLUS],["UNARY_MINUS",It.UNARY_MINUS],["UNARY_LOGICAL_NOT",It.UNARY_LOGICAL_NOT],["UNARY_BITWISE_COMPLEMENT",It.UNARY_BITWISE_COMPLEMENT],["ARRAY_OPERATOR",It.ARRAY_OPERATOR],["OBJECT_OPERATOR",It.OBJECT_OPERATOR],["NULLISH_COALESCING_OPERATOR",It.NULLISH_COALESCING_OPERATOR],["CONDITIONAL_TERNARY_OPERATOR",It.CONDITIONAL_TERNARY_OPERATOR]]);static UNARY_OPERATORS=new Set([It.ADDITION,It.SUBTRACTION,It.NOT,It.BITWISE_COMPLEMENT,It.UNARY_PLUS,It.UNARY_MINUS,It.UNARY_LOGICAL_NOT,It.UNARY_BITWISE_COMPLEMENT]);static ARITHMETIC_OPERATORS=new Set([It.MULTIPLICATION,It.DIVISION,It.INTEGER_DIVISION,It.MOD,It.ADDITION,It.SUBTRACTION]);static LOGICAL_OPERATORS=new Set([It.NOT,It.AND,It.OR,It.LESS_THAN,It.LESS_THAN_EQUAL,It.GREATER_THAN,It.GREATER_THAN_EQUAL,It.EQUAL,It.NOT_EQUAL,It.NULLISH_COALESCING_OPERATOR]);static BITWISE_OPERATORS=new Set([It.BITWISE_AND,It.BITWISE_COMPLEMENT,It.BITWISE_LEFT_SHIFT,It.BITWISE_OR,It.BITWISE_RIGHT_SHIFT,It.BITWISE_UNSIGNED_RIGHT_SHIFT,It.BITWISE_XOR]);static CONDITIONAL_OPERATORS=new Set([It.CONDITIONAL_TERNARY_OPERATOR]);static OPERATOR_PRIORITY=new Map([[It.UNARY_PLUS,1],[It.UNARY_MINUS,1],[It.UNARY_LOGICAL_NOT,1],[It.UNARY_BITWISE_COMPLEMENT,1],[It.ARRAY_OPERATOR,1],[It.OBJECT_OPERATOR,1],[It.MULTIPLICATION,2],[It.DIVISION,2],[It.INTEGER_DIVISION,2],[It.MOD,2],[It.ADDITION,3],[It.SUBTRACTION,3],[It.BITWISE_LEFT_SHIFT,4],[It.BITWISE_RIGHT_SHIFT,4],[It.BITWISE_UNSIGNED_RIGHT_SHIFT,4],[It.LESS_THAN,5],[It.LESS_THAN_EQUAL,5],[It.GREATER_THAN,5],[It.GREATER_THAN_EQUAL,5],[It.EQUAL,6],[It.NOT_EQUAL,6],[It.BITWISE_AND,7],[It.BITWISE_XOR,8],[It.BITWISE_OR,9],[It.AND,10],[It.OR,11],[It.NULLISH_COALESCING_OPERATOR,11],[It.CONDITIONAL_TERNARY_OPERATOR,12]]);static OPERATORS=new Set([...Array.from(It.ARITHMETIC_OPERATORS),...Array.from(It.LOGICAL_OPERATORS),...Array.from(It.BITWISE_OPERATORS),It.ARRAY_OPERATOR,It.OBJECT_OPERATOR,...Array.from(It.CONDITIONAL_OPERATORS)].map((e=>e.getOperator())));static OPERATORS_WITHOUT_SPACE_WRAP=new Set([...Array.from(It.ARITHMETIC_OPERATORS),...Array.from(It.LOGICAL_OPERATORS),...Array.from(It.BITWISE_OPERATORS),It.ARRAY_OPERATOR,It.OBJECT_OPERATOR,...Array.from(It.CONDITIONAL_OPERATORS)].filter((e=>!e.shouldBeWrappedInSpace())).map((e=>e.getOperator())));static OPERATION_VALUE_OF=new Map(Array.from(It.VALUE_OF.entries()).map((([e,t])=>[t.getOperator(),t])));static UNARY_MAP=new Map([[It.ADDITION,It.UNARY_PLUS],[It.SUBTRACTION,It.UNARY_MINUS],[It.NOT,It.UNARY_LOGICAL_NOT],[It.BITWISE_COMPLEMENT,It.UNARY_BITWISE_COMPLEMENT],[It.UNARY_PLUS,It.UNARY_PLUS],[It.UNARY_MINUS,It.UNARY_MINUS],[It.UNARY_LOGICAL_NOT,It.UNARY_LOGICAL_NOT],[It.UNARY_BITWISE_COMPLEMENT,It.UNARY_BITWISE_COMPLEMENT]]);static BIGGEST_OPERATOR_SIZE=Array.from(It.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 It.VALUE_OF.get(e)}toString(){return this.operator}}class Pt extends St{tokens=new pt;ops=new pt;constructor(e,t,r,n){super(e||""),t&&this.tokens.push(t),r&&this.tokens.push(r),n&&this.ops.push(n),this.evaluate()}getTokens(){return this.tokens}getOperations(){return this.ops}evaluate(){const e=this.expression.length;let t,r="",n=new ct(""),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 ft(this.expression,"Extra closing parenthesis found");case"]":throw new ft(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()==It.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()==It.ARRAY_OPERATOR&&(i=this.process(e,n,s),s=i.getT1(),a=i.getT2())}++s}if(t=n.toString(),!K.isNullOrBlank(t)){if(It.OPERATORS.has(t))throw new ft(this.expression,"Expression is ending with an operator");this.tokens.push(new St(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 ft(this.expression,"Missing string ending marker "+t);let a=new te(s,!1);return this.tokens.push(new Ot(n,n)),a}process(e,t,r){let n=1;for(++r;r<e&&0!=n;){let e=this.expression.charAt(r);"]"==e?--n:"["==e&&++n,0!=n&&(t.append(e),r++)}return this.tokens.push(new Pt(t.toString())),t.setLength(0),new te(r,!1)}processOthers(e,t,r,n,s,a){let i=t-s;i=i<It.BIGGEST_OPERATOR_SIZE?i:It.BIGGEST_OPERATOR_SIZE;for(let e=i;e>0;e--){let t=this.expression.substring(s,s+e);if(It.OPERATORS_WITHOUT_SPACE_WRAP.has(t))return K.isNullOrBlank(n)||(this.tokens.push(new St(n)),a=!1),this.checkUnaryOperator(this.tokens,this.ops,It.OPERATION_VALUE_OF.get(t),a),a=!0,r.setLength(0),new te(s+e-1,a)}return r.append(e),new te(s,!1)}processTernaryOperator(e,t,r,n,s){if(s)throw new ft(this.expression,"Ternary operator is followed by an operator");""!=r.trim()&&(this.tokens.push(new Pt(r)),t.setLength(0));let a=1,i="";const o=++n;for(;n<e&&a>0;)i=this.expression.charAt(n),"?"==i?++a:":"==i&&--a,++n;if(":"!=i)throw new ft(this.expression,"':' operater is missing");if(n>=e)throw new ft(this.expression,"Third part of the ternary expression is missing");for(;!this.ops.isEmpty()&&this.hasPrecedence(It.CONDITIONAL_TERNARY_OPERATOR,this.ops.peek());){let e=this.ops.pop();if(It.UNARY_OPERATORS.has(e)){const t=this.tokens.pop();this.tokens.push(new Pt("",t,void 0,e))}else{let t=this.tokens.pop(),r=this.tokens.pop();this.tokens.push(new Pt("",r,t,e))}}this.ops.push(It.CONDITIONAL_TERNARY_OPERATOR),this.tokens.push(new Pt(this.expression.substring(o,n-1)));const E=this.expression.substring(n);if(""===E.trim())throw new ft(this.expression,"Third part of the ternary expression is missing");return this.tokens.push(new Pt(E)),e-1}processSubExpression(e,t,r,n,s){if(It.OPERATORS.has(r))this.checkUnaryOperator(this.tokens,this.ops,It.OPERATION_VALUE_OF.get(r),s),t.setLength(0);else if(!K.isNullOrBlank(r))throw new ft(this.expression,Q.format("Unkown token : $ found.",r));let a=1;const i=new ct;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 ft(this.expression,"Missing a closed parenthesis");for(;i.length()>2&&"("==i.charAt(0)&&")"==i.charAt(i.length()-1);)i.deleteCharAt(0),i.setLength(i.length()-1);return this.tokens.push(new Pt(i.toString().trim())),n}processTokenSepearator(e,t,r){return K.isNullOrBlank(t)||(It.OPERATORS.has(t)?(this.checkUnaryOperator(this.tokens,this.ops,It.OPERATION_VALUE_OF.get(t),r),r=!0):(this.tokens.push(new St(t)),r=!1)),e.setLength(0),r}checkUnaryOperator(e,t,r,n){if(r)if(n||e.isEmpty()){if(!It.UNARY_OPERATORS.has(r))throw new ft(this.expression,Q.format("Extra operator $ found.",r));{const e=It.UNARY_MAP.get(r);e&&t.push(e)}}else{for(;!t.isEmpty()&&this.hasPrecedence(r,t.peek());){let r=t.pop();if(It.UNARY_OPERATORS.has(r)){let t=e.pop();e.push(new Pt("",t,void 0,r))}else{let t=e.pop(),n=e.pop();e.push(new Pt("",n,t,r))}}t.push(r)}}hasPrecedence(e,t){let r=It.OPERATOR_PRIORITY.get(e),n=It.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 ct,t=0;const r=this.ops.toArray(),n=this.tokens.toArray();for(let s=0;s<r.length;s++)if(r[s].getOperator().startsWith("UN: "))e.append("(").append(r[s].getOperator().substring(4)).append(n[t]instanceof Pt?n[t].toString():n[t]).append(")"),t++;else if(r[s]==It.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 dt={};t(dt,"ExpressionEvaluator",(()=>Hr));var yt={};t(yt,"LogicalNullishCoalescingOperator",(()=>Lt));var xt={};t(xt,"BinaryOperator",(()=>vt));class vt{nullCheck(e,t,r){if(E(e)||E(t))throw new Ue(Q.format("$ cannot be applied to a null value",r.getOperatorName()))}}class Lt extends vt{apply(e,t){return E(e)?t:e}}var Ut={};t(Ut,"ArithmeticAdditionOperator",(()=>Vt));class Vt extends vt{apply(e,t){return this.nullCheck(e,t,It.ADDITION),e+t}}var Gt={};t(Gt,"ArithmeticDivisionOperator",(()=>Ct));class Ct extends vt{apply(e,t){return this.nullCheck(e,t,It.DIVISION),e/t}}var Dt={};t(Dt,"ArithmeticIntegerDivisionOperator",(()=>bt));class bt extends vt{apply(e,t){return this.nullCheck(e,t,It.DIVISION),Math.floor(e/t)}}var Ft={};t(Ft,"ArithmeticModulusOperator",(()=>Yt));class Yt extends vt{apply(e,t){return this.nullCheck(e,t,It.MOD),e%t}}var Bt={};t(Bt,"ArithmeticMultiplicationOperator",(()=>Ht));class Ht extends vt{apply(e,t){this.nullCheck(e,t,It.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 kt={};t(kt,"ArithmeticSubtractionOperator",(()=>$t));class $t extends vt{apply(e,t){return this.nullCheck(e,t,It.SUBTRACTION),e-t}}var Xt={};t(Xt,"ArrayOperator",(()=>Wt));class Wt extends vt{apply(e,t){if(!e)throw new Ue("Cannot apply array operator on a null value");if(!t)throw new Ue("Cannot retrive null index value");if(!Array.isArray(e)&&"string"!=typeof e)throw new Ue(Q.format("Cannot retrieve value from a primitive value $",e));if(t>=e.length)throw new Ue(Q.format("Cannot retrieve index $ from the array of length $",t,e.length));return e[t]}}var jt={};t(jt,"BitwiseAndOperator",(()=>qt));class qt extends vt{apply(e,t){return this.nullCheck(e,t,It.BITWISE_AND),e&t}}var Jt={};t(Jt,"BitwiseLeftShiftOperator",(()=>zt));class zt extends vt{apply(e,t){return this.nullCheck(e,t,It.BITWISE_LEFT_SHIFT),e<<t}}var Qt={};t(Qt,"BitwiseOrOperator",(()=>Kt));class Kt extends vt{apply(e,t){return this.nullCheck(e,t,It.BITWISE_OR),e|t}}var Zt={};t(Zt,"BitwiseRightShiftOperator",(()=>er));class er extends vt{apply(e,t){return this.nullCheck(e,t,It.BITWISE_RIGHT_SHIFT),e>>t}}var tr={};t(tr,"BitwiseUnsignedRightShiftOperator",(()=>rr));class rr extends vt{apply(e,t){return this.nullCheck(e,t,It.BITWISE_UNSIGNED_RIGHT_SHIFT),e>>>t}}var nr={};t(nr,"BitwiseXorOperator",(()=>sr));class sr extends vt{apply(e,t){return this.nullCheck(e,t,It.BITWISE_XOR),e^t}}var ar={};t(ar,"LogicalAndOperator",(()=>ir));class ir extends vt{apply(e,t){const r=Ve.findPrimitiveNullAsBoolean(e),n=Ve.findPrimitiveNullAsBoolean(t);if(r.getT1()!=R.BOOLEAN)throw new Ue(Q.format("Boolean value expected but found $",r.getT2()));if(n.getT1()!=R.BOOLEAN)throw new Ue(Q.format("Boolean value expected but found $",n.getT2()));return r.getT2()&&n.getT2()}}var or={};t(or,"LogicalEqualOperator",(()=>Er));class Er extends vt{apply(e,t){return gt(e,t)}}var ur={};t(ur,"LogicalGreaterThanEqualOperator",(()=>Ar));class Ar extends vt{apply(e,t){const r=Ve.findPrimitiveNullAsBoolean(e),n=Ve.findPrimitiveNullAsBoolean(t);if(r.getT1()==R.BOOLEAN||n.getT1()==R.BOOLEAN)throw new Ue(Q.format("Cannot compare >= with the values $ and $",r.getT2(),n.getT2()));return r.getT2()>=n.getT2()}}var Rr={};t(Rr,"LogicalGreaterThanOperator",(()=>lr));class lr extends vt{apply(e,t){const r=Ve.findPrimitiveNullAsBoolean(e),n=Ve.findPrimitiveNullAsBoolean(t);if(r.getT1()==R.BOOLEAN||n.getT1()==R.BOOLEAN)throw new Ue(Q.format("Cannot compare > with the values $ and $",r.getT2(),n.getT2()));return r.getT2()>n.getT2()}}var Tr={};t(Tr,"LogicalLessThanEqualOperator",(()=>gr));class gr extends vt{apply(e,t){const r=Ve.findPrimitiveNullAsBoolean(e),n=Ve.findPrimitiveNullAsBoolean(t);if(r.getT1()==R.BOOLEAN||n.getT1()==R.BOOLEAN)throw new Ue(Q.format("Cannot compare <= with the values $ and $",r.getT2(),n.getT2()));return r.getT2()<=n.getT2()}}var pr={};t(pr,"LogicalLessThanOperator",(()=>mr));class mr extends vt{apply(e,t){const r=Ve.findPrimitiveNullAsBoolean(e),n=Ve.findPrimitiveNullAsBoolean(t);if(r.getT1()==R.BOOLEAN||n.getT1()==R.BOOLEAN)throw new Ue(Q.format("Cannot compare < with the values $ and $",r.getT2(),n.getT2()));return r.getT2()<n.getT2()}}var hr={};t(hr,"LogicalNotEqualOperator",(()=>cr));class cr extends vt{apply(e,t){return!gt(e,t)}}var Nr={};t(Nr,"LogicalOrOperator",(()=>fr));class fr extends vt{apply(e,t){const r=Ve.findPrimitiveNullAsBoolean(e),n=Ve.findPrimitiveNullAsBoolean(t);if(r.getT1()!=R.BOOLEAN)throw new Ue(Q.format("Boolean value expected but found $",r.getT2()));if(n.getT1()!=R.BOOLEAN)throw new Ue(Q.format("Boolean value expected but found $",n.getT2()));return r.getT2()||n.getT2()}}var _r={};t(_r,"ObjectOperator",(()=>Sr));class Sr extends vt{apply(e,t){if(!e)throw new Ue("Cannot apply array operator on a null value");if(!t)throw new Ue("Cannot retrive null property value");const r=typeof e;if(!Array.isArray(e)&&"string"!=r&&"object"!=r)throw new Ue(Q.format("Cannot retrieve value from a primitive value $",e));return e[t]}}var Mr={};t(Mr,"ArithmeticUnaryMinusOperator",(()=>Ir));var Or={};t(Or,"UnaryOperator",(()=>wr));class wr{nullCheck(e,t){if(E(e))throw new Ue(Q.format("$ cannot be applied to a null value",t.getOperatorName()))}}class Ir extends wr{apply(e){return this.nullCheck(e,It.UNARY_MINUS),Ve.findPrimitiveNumberType(e),-e}}var Pr={};t(Pr,"ArithmeticUnaryPlusOperator",(()=>dr));class dr extends wr{apply(e){return this.nullCheck(e,It.UNARY_PLUS),Ve.findPrimitiveNumberType(e),e}}var yr={};t(yr,"BitwiseComplementOperator",(()=>xr));class xr extends wr{apply(e){this.nullCheck(e,It.UNARY_BITWISE_COMPLEMENT);let t=Ve.findPrimitiveNumberType(e);if(t.getT1()!=R.INTEGER&&t.getT1()!=R.LONG)throw new Ue(Q.format("Unable to apply bitwise operator on $",e));return~e}}var vr={};t(vr,"LogicalNotOperator",(()=>Lr));class Lr extends wr{apply(e){return!e&&""!==e}}var Ur={};t(Ur,"LiteralTokenValueExtractor",(()=>Dr));var Vr={};t(Vr,"TokenValueExtractor",(()=>Gr));class Gr{static REGEX_SQUARE_BRACKETS=/[\[\]]/;static REGEX_DOT=/\./;getValue(e){let t=this.getPrefix();if(!e.startsWith(t))throw new k(Q.format("Token $ doesn't start with $",e,t));return this.getValueInternal(e)}retrieveElementFrom(e,t,r,n){if(E(n))return;if(t.length==r)return n;let s=t[r].split(Gr.REGEX_SQUARE_BRACKETS).map((e=>e.trim())).filter((e=>!K.isNullOrBlank(e))).reduce(((n,s,a)=>this.resolveForEachPartOfTokenWithBrackets(e,t,r,s,n,a)),n);return this.retrieveElementFrom(e,t,r+1,s)}resolveForEachPartOfTokenWithBrackets(e,t,r,n,s,a){if(!E(s)){if(0===a){if(Array.isArray(s)){if("length"===n)return s.length;try{let e=parseInt(n);if(isNaN(e))throw new Error(Q.format("$ is not a number",e));if(e>=s.length)return;return s[e]}catch(t){throw new ft(e,Q.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 ft(e,Q.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(Q.format("$ is not a number",t));if(!Array.isArray(s))throw new ft(e,Q.format("Expecting an array with index $ while processing the expression",t,e));if(t>=s.length)return;return s[t]}catch(t){throw new ft(e,Q.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 ft(e,Q.format("Unable to retrive $ from $ in the path $",t[r],n.toString(),e))}}const Cr=new Map([["true",!0],["false",!1],["null",void 0]]);class Dr extends Gr{static INSTANCE=new Dr;getValueInternal(e){if(!K.isNullOrBlank(e))return e=e.trim(),Cr.has(e)?Cr.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 ft(e,Q.format("Unable to parse the literal or expression $",e),t)}}processString(e){if(!e.endsWith('"'))throw new ft(e,Q.format("String literal $ is not closed properly",e));return e.substring(1,e.length-1)}getPrefix(){return""}}var br={},Fr={};t(Fr,"ConditionalTernaryOperator",(()=>Yr));class Yr extends class{nullCheck(e,t,r,n){if(E(e)||E(t)||E(r))throw new Ue(Q.format("$ cannot be applied to a null value",n.getOperatorName()))}}{apply(e,t,r){return e?t:r}}e(br,Fr);class Br extends Gr{static PREFIX="_internal.";values=new Map;addValue(e,t){this.values.set(e,t)}getValueInternal(e){let t=e.split(Gr.REGEX_DOT),r=t[1],n=r.indexOf("["),s=2;return-1!=n&&(r=t[1].substring(0,n),t[1]=t[1].substring(n),s=1),this.retrieveElementFrom(e,t,s,this.values.get(r))}getPrefix(){return Br.PREFIX}}class Hr{static UNARY_OPERATORS_MAP=new Map([[It.UNARY_BITWISE_COMPLEMENT,new xr],[It.UNARY_LOGICAL_NOT,new Lr],[It.UNARY_MINUS,new Ir],[It.UNARY_PLUS,new dr]]);static TERNARY_OPERATORS_MAP=new Map([[It.CONDITIONAL_TERNARY_OPERATOR,new Yr]]);static BINARY_OPERATORS_MAP=new Map([[It.ADDITION,new Vt],[It.DIVISION,new Ct],[It.INTEGER_DIVISION,new bt],[It.MOD,new Yt],[It.MULTIPLICATION,new Ht],[It.SUBTRACTION,new $t],[It.BITWISE_AND,new qt],[It.BITWISE_LEFT_SHIFT,new zt],[It.BITWISE_OR,new Kt],[It.BITWISE_RIGHT_SHIFT,new er],[It.BITWISE_UNSIGNED_RIGHT_SHIFT,new rr],[It.BITWISE_XOR,new sr],[It.AND,new ir],[It.EQUAL,new Er],[It.GREATER_THAN,new lr],[It.GREATER_THAN_EQUAL,new Ar],[It.LESS_THAN,new mr],[It.LESS_THAN_EQUAL,new gr],[It.OR,new fr],[It.NOT_EQUAL,new cr],[It.NULLISH_COALESCING_OPERATOR,new Lt],[It.ARRAY_OPERATOR,new Wt],[It.OBJECT_OPERATOR,new Sr]]);static UNARY_OPERATORS_MAP_KEY_SET=new Set(Hr.UNARY_OPERATORS_MAP.keys());internalTokenValueExtractor=new Br;constructor(e){e instanceof Pt?(this.exp=e,this.expression=this.exp.getExpression()):this.expression=e}evaluate(e){const t=this.processNestingExpression(this.expression,e);return this.expression=t.getT1(),this.exp=t.getT2(),(e=new Map(e.entries())).set(this.internalTokenValueExtractor.getPrefix(),this.internalTokenValueExtractor),this.evaluateExpression(this.exp,e)}processNestingExpression(e,t){let r=0,n=0;const s=new pt;for(;n<e.length-1;){if("{"==e.charAt(n)&&"{"==e.charAt(n+1))0==r&&s.push(new te(n+2,-1)),r++,n++;else if("}"==e.charAt(n)&&"}"==e.charAt(n+1)){if(r--,r<0)throw new ft(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 te(a,new Pt(a))}replaceNestingExpression(e,t,r){let n=e;for(var s of r.toArray()){if(-1==s.getT2())throw new ft(e,"Expecting }} nesting path operator to be closed");let r=new Hr(n.substring(s.getT1(),s.getT2())).evaluate(t);n=n.substring(0,s.getT1()-2)+r+n.substring(s.getT2()+2)}return n}getExpression(){return this.exp||(this.exp=new Pt(this.expression)),this.exp}getExpressionString(){return this.expression}evaluateExpression(e,t){let r=e.getOperations(),n=e.getTokens();for(;!r.isEmpty();){let e=r.pop(),o=n.pop();if(Hr.UNARY_OPERATORS_MAP_KEY_SET.has(e))n.push(this.applyUnaryOperation(e,this.getValueFromToken(t,o)));else if(e==It.OBJECT_OPERATOR||e==It.ARRAY_OPERATOR)this.processObjectOrArrayOperator(t,r,n,e,o);else if(e==It.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 Ue(Q.format("Expression : $ evaluated to null",e));if(1!=n.size())throw new Ue(Q.format("Expression : $ evaluated multiple values $",e,n));const o=n.get(0);if(o instanceof Ot)return o.getElement();if(!(o instanceof Pt))return this.getValueFromToken(t,o);throw new Ue(Q.format("Expression : $ evaluated to $",e,n.get(0)))}processObjectOrArrayOperator(e,t,r,n,s){const a=new pt,i=new pt;if(!n||!s)return;do{i.push(n),s instanceof Pt?a.push(new Ot(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==It.OBJECT_OPERATOR||n==It.ARRAY_OPERATOR);s&&(s instanceof Pt?a.push(new Ot(s.toString(),this.evaluateExpression(s,e))):a.push(s)),n&&t.push(n);let o=a.pop();if(o instanceof Ot&&"object"==typeof o.getTokenValue()){const e=(new Date).getTime()+""+Math.round(1e3*Math.random());this.internalTokenValueExtractor.addValue(e,o.getTokenValue()),o=new St(Br.PREFIX+e)}let E=new ct(o instanceof Ot?o.getTokenValue():o.toString());for(;!a.isEmpty();)o=a.pop(),n=i.pop(),E.append(n.getOperator()).append(o instanceof Ot?o.getTokenValue():o.toString()),n==It.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 Ot(u,this.getValue(u,e)));else{let e;try{e=Dr.INSTANCE.getValue(u)}catch(t){e=u}r.push(new Ot(u,e))}}applyTernaryOperation(e,t,r,n){let s=Hr.TERNARY_OPERATORS_MAP.get(e);if(!s)throw new ft(this.expression,Q.format("No operator found to evaluate $",this.getExpression()));return new Ot(e.toString(),s.apply(t,r,n))}applyBinaryOperation(e,t,r){let n=typeof t,s=typeof r,a=Hr.BINARY_OPERATORS_MAP.get(e);if(("object"===n||"object"===s)&&e!==It.EQUAL&&e!==It.NOT_EQUAL&&e!==It.NULLISH_COALESCING_OPERATOR)throw new ft(this.expression,Q.format("Cannot evaluate expression $ $ $",t,e.getOperator(),r));if(!a)throw new ft(this.expression,Q.format("No operator found to evaluate $ $ $",t,e.getOperator(),r));return new Ot(e.toString(),a.apply(t,r))}applyUnaryOperation(e,t){if("object"===typeof t||Array.isArray(t))throw new ft(this.expression,Q.format("The operator $ cannot be applied to $",e.getOperator(),t));let r=Hr.UNARY_OPERATORS_MAP.get(e);if(!r)throw new ft(this.expression,Q.format("No Unary operator $ is found to apply on $",e.getOperator(),t));return new Ot(e.toString(),r.apply(t))}getValueFromToken(e,t){return t instanceof Pt?this.evaluateExpression(t,e):t instanceof Ot?t.getElement():this.getValue(t.getExpression(),e)}getValue(e,t){if(e.length<=5)return Dr.INSTANCE.getValue(e);const r=e.substring(0,e.indexOf(".")+1);return(t.get(r)??Dr.INSTANCE).getValue(e)}}const kr=new W("Set").setNamespace(a.SYSTEM_CTX).setParameters(new Map([y.ofEntry("name",(new S).setName("name").setType(f.of(R.STRING)).setMinLength(1),!1,P.CONSTANT),y.ofEntry("value",S.ofAny("value"))])).setEvents(new Map([F.outputEventMapEntry(new Map)]));const $r=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([F.outputEventMapEntry(new Map)]));class Xr extends Pe{static CONDITION="condition";static SIGNATURE=new W("If").setNamespace(a.SYSTEM).setParameters(new Map([y.ofEntry(Xr.CONDITION,S.of(Xr.CONDITION,R.BOOLEAN))])).setEvents(new Map([F.eventMapEntry(F.TRUE,new Map),F.eventMapEntry(F.FALSE,new Map),F.outputEventMapEntry(new Map)]));getSignature(){return Xr.SIGNATURE}async internalExecute(e){var t=e.getArguments()?.get(Xr.CONDITION);return new $([Y.of(t?F.TRUE:F.FALSE,new Map),Y.outputOf(new Map)])}}const Wr=new W("CountLoop").setNamespace(a.SYSTEM_LOOP).setParameters(new Map([y.ofEntry("count",S.of("count",R.INTEGER).setDefaultValue(1))])).setEvents(new Map([F.eventMapEntry(F.ITERATION,new Map([["index",S.of("index",R.INTEGER)]])),F.outputEventMapEntry(new Map([["value",S.of("value",R.INTEGER)]]))]));const jr=new W("RangeLoop").setNamespace(a.SYSTEM_LOOP).setParameters(new Map([y.ofEntry("from",S.of("from",R.INTEGER,R.LONG,R.FLOAT,R.DOUBLE).setDefaultValue(0)),y.ofEntry("to",S.of("to",R.INTEGER,R.LONG,R.FLOAT,R.DOUBLE).setDefaultValue(1)),y.ofEntry("step",S.of("step",R.INTEGER,R.LONG,R.FLOAT,R.DOUBLE).setDefaultValue(1).setNot((new S).setConstant(0)))])).setEvents(new Map([F.eventMapEntry(F.ITERATION,new Map([["index",S.of("index",R.INTEGER,R.LONG,R.FLOAT,R.DOUBLE)]])),F.outputEventMapEntry(new Map([["value",S.of("value",R.INTEGER,R.LONG,R.FLOAT,R.DOUBLE)]]))]));const qr=new W("Add").setNamespace(a.MATH).setParameters(new Map([["value",new y("value",S.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([F.outputEventMapEntry(new Map([["value",S.ofNumber("value")]]))]));const Jr=[()=>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=[R.DOUBLE]),this.parametersNumber=r,this.mathFunction=t,this.signature=new W(e).setNamespace(a.MATH).setParameters(Jr[r-1]()).setEvents(new Map([F.outputEventMapEntry(new Map([["value",(new S).setType(f.of(...n)).setName("value")]]))]))}getSignature(){return this.signature}async internalExecute(e){let t,r=Ve.findPrimitiveNumberType(e.getArguments()?.get(1==this.parametersNumber?"value":"value1")).getT2();return 2==this.parametersNumber&&(t=Ve.findPrimitiveNumberType(e.getArguments()?.get("value2")).getT2()),new $([Y.outputOf(new Map([["value",this.mathFunction.call(this,r,t)]]))])}}class Qr 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([F.outputEventMapEntry(new Map([["value",(new S).setType(f.of(R.DOUBLE)).setName("value")]]))]));constructor(){super()}getSignature(){return Qr.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get("value");return new $([Y.outputOf(new Map([["value",Math.sqrt(t.reduce(((e,t)=>e+t*t),0))]]))])}}const Kr=new W("Maximum").setNamespace(a.MATH).setParameters(new Map([["value",new y("value",S.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([F.outputEventMapEntry(new Map([["value",S.ofNumber("value")]]))]));const Zr=new W("Minimum").setNamespace(a.MATH).setParameters(new Map([["value",new y("value",S.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([F.outputEventMapEntry(new Map([["value",S.ofNumber("value")]]))]));class en extends Pe{static SIGNATURE=new W("Random").setNamespace(a.MATH).setEvents(new Map([F.outputEventMapEntry(G.of("value",S.ofDouble("value")))]));getSignature(){return en.SIGNATURE}async internalExecute(e){return new $([Y.outputOf(new Map([["value",Math.random()]]))])}}class tn extends Pe{static MIN_VALUE="minValue";static MAX_VALUE="maxValue";static VALUE="value";static SIGNATURE=new W("RandomFloat").setParameters(G.of(tn.MIN_VALUE,y.of(tn.MIN_VALUE,S.ofFloat(tn.MIN_VALUE).setDefaultValue(0)),tn.MAX_VALUE,y.of(tn.MAX_VALUE,S.ofFloat(tn.MAX_VALUE).setDefaultValue(2147483647)))).setNamespace(a.MATH).setEvents(new Map([F.outputEventMapEntry(G.of(tn.VALUE,S.ofFloat(tn.VALUE)))]));getSignature(){return tn.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(tn.MIN_VALUE),r=e.getArguments()?.get(tn.MAX_VALUE),n=Math.random()*(r-t)+t;return new $([Y.outputOf(new Map([[tn.VALUE,n]]))])}}class rn extends Pe{static MIN_VALUE="minValue";static MAX_VALUE="maxValue";static VALUE="value";static SIGNATURE=new W("RandomInt").setParameters(G.of(rn.MIN_VALUE,y.of(rn.MIN_VALUE,S.ofInteger(rn.MIN_VALUE).setDefaultValue(0)),rn.MAX_VALUE,y.of(rn.MAX_VALUE,S.ofInteger(rn.MAX_VALUE).setDefaultValue(2147483647)))).setNamespace(a.MATH).setEvents(new Map([F.outputEventMapEntry(G.of(rn.VALUE,S.ofInteger(rn.VALUE)))]));getSignature(){return rn.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(rn.MIN_VALUE),r=e.getArguments()?.get(rn.MAX_VALUE),n=Math.floor(Math.random()*(r-t)+t);return new $([Y.outputOf(new Map([[rn.VALUE,n]]))])}}const nn={Absolute:new zr("Absolute",(e=>Math.abs(e)),1,R.INTEGER,R.LONG,R.FLOAT,R.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,R.INTEGER,R.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 $([Y.outputOf(new Map([["value",t.reduce(((e,t)=>e+t),0)]]))])}},Hypotenuse:new Qr,Maximum:new class extends Pe{getSignature(){return Kr}async internalExecute(e){let t=e.getArguments()?.get("value");return new $([Y.outputOf(new Map([["value",t.reduce(((e,t)=>!e&&0!==e||t>e?t:e))]]))])}},Minimum:new class extends Pe{getSignature(){return Zr}async internalExecute(e){let t=e.getArguments()?.get("value");return new $([Y.outputOf(new Map([["value",t.reduce(((e,t)=>!e&&0!==e||t<e?t:e))]]))])}},Random:new en,RandomFloat:new tn,RandomInt:new rn};class sn{find(e,t){if(e==a.MATH)return nn[t]}}class an 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(an.PARAMETER_STRING_NAME,S.ofString(an.PARAMETER_STRING_NAME));static PARAMETER_SECOND_STRING=new y(an.PARAMETER_SECOND_STRING_NAME,S.ofString(an.PARAMETER_SECOND_STRING_NAME));static PARAMETER_THIRD_STRING=new y(an.PARAMETER_THIRD_STRING_NAME,S.ofString(an.PARAMETER_THIRD_STRING_NAME));static PARAMETER_INDEX=new y(an.PARAMETER_INDEX_NAME,S.ofInteger(an.PARAMETER_INDEX_NAME));static PARAMETER_SECOND_INDEX=new y(an.PARAMETER_SECOND_INDEX_NAME,S.ofInteger(an.PARAMETER_SECOND_INDEX_NAME));static PARAMETER_SEARCH_STRING=new y(an.PARAMETER_SEARCH_STRING_NAME,S.ofString(an.PARAMETER_STRING_NAME));static EVENT_STRING=new F(F.OUTPUT,G.of(an.EVENT_RESULT_NAME,S.ofString(an.EVENT_RESULT_NAME)));static EVENT_BOOLEAN=new F(F.OUTPUT,G.of(an.EVENT_RESULT_NAME,S.ofBoolean(an.EVENT_RESULT_NAME)));static EVENT_INT=new F(F.OUTPUT,G.of(an.EVENT_RESULT_NAME,S.ofInteger(an.EVENT_RESULT_NAME)));static EVENT_ARRAY=new F(F.OUTPUT,G.of(an.EVENT_RESULT_NAME,S.ofArray(an.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 an{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(an.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(an.PARAMETER_SEARCH_STRING_NAME);return new $([Y.outputOf(G.of(an.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,an.EVENT_BOOLEAN,an.PARAMETER_STRING,an.PARAMETER_SEARCH_STRING)]}static ofEntryAsStringAndIntegerStringOutput(e,t){return[e,new class extends an{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(an.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(an.PARAMETER_INDEX_NAME);return new $([Y.outputOf(G.of(an.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,an.EVENT_STRING,an.PARAMETER_STRING,an.PARAMETER_INDEX)]}static ofEntryAsStringIntegerOutput(e,t){return[e,new class extends an{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(an.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(an.PARAMETER_SEARCH_STRING_NAME);return new $([Y.outputOf(G.of(an.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,an.EVENT_INT,an.PARAMETER_STRING,an.PARAMETER_SEARCH_STRING)]}static ofEntryString(e,t){return[e,new class extends an{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(an.PARAMETER_STRING_NAME);return new $([Y.outputOf(G.of(an.EVENT_RESULT_NAME,t(r)))])}}(a.STRING,e,an.EVENT_STRING,an.PARAMETER_STRING)]}static ofEntryStringBooleanOutput(e,t){return[e,new class extends an{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(an.PARAMETER_STRING_NAME);return new $([Y.outputOf(G.of(an.EVENT_RESULT_NAME,t(r)))])}}(a.STRING,e,an.EVENT_BOOLEAN,an.PARAMETER_STRING)]}static ofEntryAsStringStringIntegerIntegerOutput(e,t){return[e,new class extends an{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(an.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(an.PARAMETER_SEARCH_STRING_NAME),s=e?.getArguments()?.get(an.PARAMETER_INDEX_NAME);return new $([Y.outputOf(G.of(an.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,an.EVENT_INT,an.PARAMETER_STRING,an.PARAMETER_SEARCH_STRING,an.PARAMETER_INDEX)]}static ofEntryAsStringIntegerIntegerStringOutput(e,t){return[e,new class extends an{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(an.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(an.PARAMETER_INDEX_NAME),s=e?.getArguments()?.get(an.PARAMETER_SECOND_INDEX_NAME);return new $([Y.outputOf(G.of(an.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,an.EVENT_INT,an.PARAMETER_STRING,an.PARAMETER_INDEX,an.PARAMETER_SECOND_INDEX)]}static ofEntryAsStringStringStringStringOutput(e,t){return[e,new class extends an{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(an.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(an.PARAMETER_SECOND_STRING_NAME),s=e?.getArguments()?.get(an.PARAMETER_THIRD_STRING_NAME);return new $([Y.outputOf(G.of(an.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,an.EVENT_STRING,an.PARAMETER_STRING,an.PARAMETER_SECOND_STRING,an.PARAMETER_THIRD_STRING)]}}class on extends Pe{static VALUE="value";static SCHEMA=(new S).setName(on.VALUE).setType(new N(R.STRING));static SIGNATURE=new W("Concatenate").setNamespace(a.STRING).setParameters(new Map([[on.VALUE,new y(on.VALUE,on.SCHEMA).setVariableArgument(!0)]])).setEvents(new Map([F.outputEventMapEntry(new Map([[on.VALUE,S.ofString(on.VALUE)]]))]));constructor(){super()}getSignature(){return on.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(on.VALUE),r="";return t.reduce(((e,t)=>r=e+t),r),new $([Y.outputOf(new Map([[on.VALUE,r]]))])}}class En 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(En.PARAMETER_STRING_NAME,S.ofString(En.PARAMETER_STRING_NAME));PARAMETER_AT_START=new y(En.PARAMETER_AT_START_NAME,S.ofInteger(En.PARAMETER_AT_START_NAME));PARAMETER_AT_END=new y(En.PARAMETER_AT_END_NAME,S.ofInteger(En.PARAMETER_AT_END_NAME));EVENT_STRING=new F(F.OUTPUT,new Map([[En.EVENT_RESULT_NAME,S.ofString(En.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(En.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(En.PARAMETER_AT_START_NAME),n=e?.getArguments()?.get(En.PARAMETER_AT_END_NAME);if(n>=r){let e="";return e+=t.substring(0,r),e+=t.substring(n),new $([Y.outputOf(new Map([[En.EVENT_RESULT_NAME,e.toString()]]))])}return new $([Y.outputOf(new Map([[En.EVENT_RESULT_NAME,t]]))])}}class un 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(un.PARAMETER_STRING_NAME,S.ofString(un.PARAMETER_STRING_NAME));PARAMETER_AT_POSITION=new y(un.PARAMETER_AT_POSITION_NAME,S.ofInteger(un.PARAMETER_AT_POSITION_NAME));PARAMETER_INSERT_STRING=new y(un.PARAMETER_INSERT_STRING_NAME,S.ofString(un.PARAMETER_INSERT_STRING_NAME));EVENT_STRING=new F(F.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([F.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(un.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(un.PARAMETER_AT_POSITION_NAME),n=e?.getArguments()?.get(un.PARAMETER_INSERT_STRING_NAME),s="";return s+=t.substring(0,r),s+=n,s+=t.substring(r),new $([Y.outputOf(new Map([[this.EVENT_RESULT_NAME,s]]))])}}class An 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(An.PARAMETER_STRING_NAME,S.ofString(An.PARAMETER_STRING_NAME));static PARAMETER_POSTPAD_STRING=new y(An.PARAMETER_POSTPAD_STRING_NAME,S.ofString(An.PARAMETER_POSTPAD_STRING_NAME));static PARAMETER_LENGTH=new y(An.PARAMETER_LENGTH_NAME,S.ofInteger(An.PARAMETER_LENGTH_NAME));static EVENT_STRING=new F(F.OUTPUT,new Map([[An.EVENT_RESULT_NAME,S.ofString(An.EVENT_RESULT_NAME)]]));signature=new W("PostPad").setNamespace(a.STRING).setParameters(new Map([[An.PARAMETER_STRING.getParameterName(),An.PARAMETER_STRING],[An.PARAMETER_POSTPAD_STRING.getParameterName(),An.PARAMETER_POSTPAD_STRING],[An.PARAMETER_LENGTH.getParameterName(),An.PARAMETER_LENGTH]])).setEvents(new Map([[An.EVENT_STRING.getName(),An.EVENT_STRING]]));constructor(){super()}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(An.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(An.PARAMETER_POSTPAD_STRING_NAME),n=e.getArguments()?.get(An.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 $([Y.of(An.EVENT_RESULT_NAME,new Map([[An.EVENT_RESULT_NAME,s.toString()]]))])}}class Rn extends Pe{static PARAMETER_STRING_NAME="string";static PARAMETER_PREPAD_STRING_NAME="prepadString";static PARAMETER_LENGTH_NAME="length";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new y(Rn.PARAMETER_STRING_NAME,S.ofString(Rn.PARAMETER_STRING_NAME));static PARAMETER_PREPAD_STRING=new y(Rn.PARAMETER_PREPAD_STRING_NAME,S.ofString(Rn.PARAMETER_PREPAD_STRING_NAME));static PARAMETER_LENGTH=new y(Rn.PARAMETER_LENGTH_NAME,S.ofInteger(Rn.PARAMETER_LENGTH_NAME));static EVENT_STRING=new F(F.OUTPUT,new Map([[Rn.EVENT_RESULT_NAME,S.ofString(Rn.EVENT_RESULT_NAME)]]));signature=new W("PrePad").setNamespace(a.STRING).setParameters(new Map([[Rn.PARAMETER_STRING.getParameterName(),Rn.PARAMETER_STRING],[Rn.PARAMETER_PREPAD_STRING.getParameterName(),Rn.PARAMETER_PREPAD_STRING],[Rn.PARAMETER_LENGTH.getParameterName(),Rn.PARAMETER_LENGTH]])).setEvents(new Map([[Rn.EVENT_STRING.getName(),Rn.EVENT_STRING]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(Rn.PARAMETER_STRING_NAME),r=e.getArguments()?.get(Rn.PARAMETER_PREPAD_STRING_NAME),n=e.getArguments()?.get(Rn.PARAMETER_LENGTH_NAME),s="",a=r.length;for(;a<=n;)s+=r,a+=r.length;return s.length<n&&(s+=r.substring(0,n-s.length)),s+=t,new $([Y.of(Rn.EVENT_RESULT_NAME,new Map([[Rn.EVENT_RESULT_NAME,s]]))])}}class ln 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(ln.PARAMETER_STRING_NAME,S.ofString(ln.PARAMETER_STRING_NAME));static PARAMETER_OTHER_STRING=new y(ln.PARAMETER_OTHER_STRING_NAME,S.ofString(ln.PARAMETER_OTHER_STRING_NAME));static PARAMETER_FIRST_OFFSET=new y(ln.PARAMETER_FIRST_OFFSET_NAME,S.ofInteger(ln.PARAMETER_FIRST_OFFSET_NAME));static PARAMETER_SECOND_OFFSET=new y(ln.PARAMETER_SECOND_OFFSET_NAME,S.ofInteger(ln.PARAMETER_SECOND_OFFSET_NAME));static PARAMETER_INTEGER=new y(ln.PARAMETER_INTEGER_NAME,S.ofInteger(ln.PARAMETER_INTEGER_NAME));static PARAMETER_BOOLEAN=new y(ln.PARAMETER_BOOLEAN_NAME,S.ofBoolean(ln.PARAMETER_BOOLEAN_NAME));static EVENT_BOOLEAN=new F(F.OUTPUT,new Map([[ln.EVENT_RESULT_NAME,S.ofBoolean(ln.EVENT_RESULT_NAME)]]));signature=new W("RegionMatches").setNamespace(a.STRING).setParameters(new Map([[ln.PARAMETER_STRING.getParameterName(),ln.PARAMETER_STRING],[ln.PARAMETER_BOOLEAN.getParameterName(),ln.PARAMETER_BOOLEAN],[ln.PARAMETER_FIRST_OFFSET.getParameterName(),ln.PARAMETER_FIRST_OFFSET],[ln.PARAMETER_OTHER_STRING.getParameterName(),ln.PARAMETER_OTHER_STRING],[ln.PARAMETER_SECOND_OFFSET.getParameterName(),ln.PARAMETER_SECOND_OFFSET],[ln.PARAMETER_INTEGER.getParameterName(),ln.PARAMETER_INTEGER]])).setEvents(new Map([[ln.EVENT_BOOLEAN.getName(),ln.EVENT_BOOLEAN]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(ln.PARAMETER_STRING_NAME),r=e.getArguments()?.get(ln.PARAMETER_BOOLEAN_NAME),n=e.getArguments()?.get(ln.PARAMETER_FIRST_OFFSET_NAME),s=e?.getArguments()?.get(ln.PARAMETER_OTHER_STRING_NAME),a=e?.getArguments()?.get(ln.PARAMETER_SECOND_OFFSET_NAME),i=e.getArguments()?.get(ln.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 $([Y.outputOf(new Map([[ln.EVENT_RESULT_NAME,o]]))])}}class Tn 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(Tn.PARAMETER_STRING_NAME,S.ofString(Tn.PARAMETER_STRING_NAME));static PARAMETER_AT_START=new y(Tn.PARAMETER_AT_START_NAME,S.ofInteger(Tn.PARAMETER_AT_START_NAME));static PARAMETER_AT_LENGTH=new y(Tn.PARAMETER_AT_LENGTH_NAME,S.ofInteger(Tn.PARAMETER_AT_LENGTH_NAME));static PARAMETER_REPLACE_STRING=new y(Tn.PARAMETER_REPLACE_STRING_NAME,S.ofString(Tn.PARAMETER_REPLACE_STRING_NAME));static EVENT_STRING=new F(F.OUTPUT,new Map([[Tn.EVENT_RESULT_NAME,S.ofString(Tn.EVENT_RESULT_NAME)]]));constructor(){super()}signature=new W("ReplaceAtGivenPosition").setNamespace(a.STRING).setParameters(new Map([[Tn.PARAMETER_STRING.getParameterName(),Tn.PARAMETER_STRING],[Tn.PARAMETER_AT_START.getParameterName(),Tn.PARAMETER_AT_START],[Tn.PARAMETER_AT_LENGTH.getParameterName(),Tn.PARAMETER_AT_LENGTH],[Tn.PARAMETER_REPLACE_STRING.getParameterName(),Tn.PARAMETER_REPLACE_STRING]])).setEvents(new Map([[Tn.EVENT_STRING.getName(),Tn.EVENT_STRING]]));getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(Tn.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(Tn.PARAMETER_AT_START_NAME),n=e?.getArguments()?.get(Tn.PARAMETER_AT_LENGTH_NAME),s=e?.getArguments()?.get(Tn.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 $([Y.outputOf(new Map([[Tn.EVENT_RESULT_NAME,t]]))])}}class gn 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([F.outputEventMapEntry(new Map([[this.VALUE,(new S).setType(f.of(R.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 $([Y.outputOf(G.of(this.VALUE,n))])}}class pn 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 F(F.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([F.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 $([Y.outputOf(G.of(this.EVENT_ARRAY.getName(),t.split(r)))])}}class mn 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 F(F.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 $([Y.outputOf(new Map([[this.EVENT_RESULT_NAME,r]]))])}}class hn extends Pe{static PARAMETER_STRING_NAME="string";static PARAMETER_LENGTH_NAME="length";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new y(hn.PARAMETER_STRING_NAME,S.ofString(hn.PARAMETER_STRING_NAME));static PARAMETER_LENGTH=new y(hn.PARAMETER_LENGTH_NAME,S.ofInteger(hn.PARAMETER_LENGTH_NAME));static EVENT_STRING=new F(F.OUTPUT,new Map([[hn.EVENT_RESULT_NAME,S.ofString(hn.EVENT_RESULT_NAME)]]));signature=new W("TrimTo").setNamespace(a.STRING).setParameters(new Map([[hn.PARAMETER_STRING.getParameterName(),hn.PARAMETER_STRING],[hn.PARAMETER_LENGTH.getParameterName(),hn.PARAMETER_LENGTH]])).setEvents(new Map([[hn.EVENT_STRING.getName(),hn.EVENT_STRING]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(hn.PARAMETER_STRING_NAME),r=e.getArguments()?.get(hn.PARAMETER_LENGTH_NAME);return new $([Y.of(hn.EVENT_RESULT_NAME,new Map([[hn.EVENT_RESULT_NAME,t.substring(0,r)]]))])}}class cn{static repoMap=G.ofArrayEntries(an.ofEntryString("Trim",(e=>e.trim())),an.ofEntryString("LowerCase",(e=>e.toLocaleLowerCase())),an.ofEntryString("UpperCase",(e=>e.toUpperCase())),an.ofEntryStringBooleanOutput("IsBlank",(e=>""===e.trim())),an.ofEntryStringBooleanOutput("IsEmpty",(e=>""===e)),an.ofEntryAsStringBooleanOutput("Contains",((e,t)=>-1!=e.indexOf(t))),an.ofEntryAsStringBooleanOutput("EndsWith",((e,t)=>e.endsWith(t))),an.ofEntryAsStringBooleanOutput("EqualsIgnoreCase",((e,t)=>e.toUpperCase()==t.toUpperCase())),an.ofEntryAsStringBooleanOutput("Matches",((e,t)=>new RegExp(t).test(e))),an.ofEntryAsStringIntegerOutput("IndexOf",((e,t)=>e.indexOf(t))),an.ofEntryAsStringIntegerOutput("LastIndexOf",((e,t)=>e.lastIndexOf(t))),an.ofEntryAsStringAndIntegerStringOutput("Repeat",((e,t)=>e.repeat(t))),an.ofEntryAsStringStringIntegerIntegerOutput("IndexOfWithStartPoint",((e,t,r)=>e.indexOf(t,r))),an.ofEntryAsStringStringIntegerIntegerOutput("LastIndexOfWithStartPoint",((e,t,r)=>e.lastIndexOf(t,r))),an.ofEntryAsStringStringStringStringOutput("Replace",((e,t,r)=>e)),an.ofEntryAsStringStringStringStringOutput("ReplaceFirst",((e,t,r)=>e.replace(t,r))),an.ofEntryAsStringIntegerIntegerStringOutput("SubString",((e,t,r)=>e.substring(t,r))),U(new on),U(new En),U(new un),U(new An),U(new Rn),U(new ln),U(new Tn),U(new gn),U(new pn),U(new mn),U(new hn));find(e,t){if(e==a.STRING)return cn.repoMap.get(t)}}var Nn={};t(Nn,"HybridRepository",(()=>fn));class fn{constructor(...e){this.repos=e}find(e,t){for(let r of this.repos){let n=r.find(e,t);if(n)return n}}}const _n=new Map([[a.SYSTEM_CTX,new Map([U(new class extends Pe{getSignature(){return ut}async internalExecute(e){const t=e?.getArguments()?.get("name");if(e?.getContext()?.has(t))throw new k(Q.format("Context already has an element for '$' ",t));let r=S.from(e?.getArguments()?.get("schema"));if(!r)throw new k("Schema is not supplied.");return e.getContext().set(t,new Et(r,E(r.getDefaultValue())?void 0:r.getDefaultValue())),new $([Y.outputOf(new Map)])}}),U(new class extends Pe{getSignature(){return At}async internalExecute(e){const t=e?.getArguments()?.get("name");if(!e.getContext()?.has(t))throw new k(Q.format("Context don't have an element for '$' ",t));return new $([Y.outputOf(new Map(["value",e.getContext()?.get(t)?.getElement()]))])}}),U(new class extends Pe{getSignature(){return kr}async internalExecute(e){let t=e?.getArguments()?.get("name");if(K.isNullOrBlank(t))throw new k("Empty string is not a valid name for the context element");let r=e?.getArguments()?.get("value");const n=new Pt(t),s=n.getTokens().peekLast();if(!s.getExpression().startsWith("Context")||s instanceof Pt||s instanceof Ot&&!s.getElement().toString().startsWith("Context"))throw new Ue(Q.format("The context path $ is not a valid path in context",t));for(const e of n.getOperations().toArray())if(e!=It.ARRAY_OPERATOR&&e!=It.OBJECT_OPERATOR)throw new Ue(Q.format("Expected a reference to the context location, but found an expression $",t));for(let r=0;r<n.getTokens().size();r++){let s=n.getTokens().get(r);s instanceof Pt&&n.getTokens().set(r,new Ot(t,new Hr(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(Q.format("Context doesn't have any element with name '$' ",t));if(a.isEmpty())return i.setElement(r),new $([Y.outputOf(new Map)]);let o=i.getElement(),u=a.removeLast(),A=s.removeLast(),R=A instanceof Ot?A.getElement():A.getExpression();for(E(o)&&(o=u==It.OBJECT_OPERATOR?{}:[],i.setElement(o));!a.isEmpty();)o=u==It.OBJECT_OPERATOR?this.getDataFromObject(o,R,a.peekLast()):this.getDataFromArray(o,R,a.peekLast()),u=a.removeLast(),A=s.removeLast(),R=A instanceof Ot?A.getElement():A.getExpression();return u==It.OBJECT_OPERATOR?this.putDataInObject(o,R,r):this.putDataInArray(o,R,r),new $([Y.outputOf(new Map)])}getDataFromArray(e,t,r){if(!Array.isArray(e))throw new k(Q.format("Expected an array but found $",e));const n=parseInt(t);if(isNaN(n))throw new k(Q.format("Expected an array index but found $",t));if(n<0)throw new k(Q.format("Array index is out of bound - $",t));let s=e[n];return E(s)&&(s=r==It.OBJECT_OPERATOR?{}:[],e[n]=s),s}getDataFromObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new k(Q.format("Expected an object but found $",e));let n=e[t];return E(n)&&(n=r==It.OBJECT_OPERATOR?{}:[],e[t]=n),n}putDataInArray(e,t,r){if(!Array.isArray(e))throw new k(Q.format("Expected an array but found $",e));const n=parseInt(t);if(isNaN(n))throw new k(Q.format("Expected an array index but found $",t));if(n<0)throw new k(Q.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(Q.format("Expected an object but found $",e));e[t]=r}})])],[a.SYSTEM_LOOP,new Map([U(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 $({next(){if(i)return;if(s&&a>=r||!s&&a<=r)return i=!0,Y.outputOf(new Map([["value",a]]));const e=Y.of(F.ITERATION,new Map([["index",a]]));return a+=n,e}})}}),U(new class extends Pe{getSignature(){return Wr}async internalExecute(e){let t=e.getArguments()?.get("count"),r=0;return new $({next(){if(r>=t)return Y.outputOf(new Map([["value",r]]));const e=Y.of(F.ITERATION,new Map([["index",r]]));return++r,e}})}})])],[a.SYSTEM,new Map([U(new Xr),U(new class extends Pe{getSignature(){return $r}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 k("Expect a value object");let n=r.value;return r.isExpression&&(n=new Hr(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 $([Y.outputOf(new Map)])}})])]]);class Sn extends fn{constructor(){super({find:(e,t)=>_n.get(e)?.get(t)},new sn,new cn,new it)}}var Mn={};t(Mn,"StatementExecution",(()=>In));var On={};t(On,"StatementMessage",(()=>wn));class wn{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 In{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 wn(e,t))}addDependency(e){this.dependencies.add(e)}getDepenedencies(){return this.dependencies}equals(e){if(!(e instanceof In))return!1;return e.statement.equals(this.statement)}}var Pn={};t(Pn,"ContextTokenValueExtractor",(()=>dn));class dn extends Gr{static PREFIX="Context.";constructor(e){super(),this.context=e}getValueInternal(e){let t=e.split(Gr.REGEX_DOT),r=t[1],n=r.indexOf("["),s=2;return-1!=n&&(r=t[1].substring(0,n),t[1]=t[1].substring(n),s=1),this.retrieveElementFrom(e,t,s,this.context.get(r)?.getElement())}getPrefix(){return dn.PREFIX}}var yn={};t(yn,"OutputMapTokenValueExtractor",(()=>xn));class xn extends Gr{static PREFIX="Steps.";constructor(e){super(),this.output=e}getValueInternal(e){let t=e.split(Gr.REGEX_DOT),r=1,n=this.output.get(t[r++]);if(!n||r>=t.length)return;let s=n.get(t[r++]);if(!s||r>=t.length)return;let a=s.get(t[r++]);return this.retrieveElementFrom(e,t,r,a)}getPrefix(){return xn.PREFIX}}var vn={};t(vn,"ArgumentsTokenValueExtractor",(()=>Ln));class Ln extends Gr{static PREFIX="Arguments.";constructor(e){super(),this.args=e}getValueInternal(e){let t=e.split(Gr.REGEX_DOT),r=t[1],n=r.indexOf("["),s=2;return-1!=n&&(r=t[1].substring(0,n),t[1]=t[1].substring(n),s=1),this.retrieveElementFrom(e,t,s,this.args.get(r))}getPrefix(){return Ln.PREFIX}}var Un={};t(Un,"GraphVertex",(()=>Cn));var Vn={};t(Vn,"ExecutionGraph",(()=>Gn));class Gn{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 Cn(this,e);this.nodeMap.set(e.getUniqueKey(),t)}return this.nodeMap.get(e.getUniqueKey())}getVertex(e){return this.nodeMap.get(e)}getVertexData(e){if(this.nodeMap.has(e))return this.nodeMap.get(e).getData()}getVerticesWithNoIncomingEdges(){return Array.from(this.nodeMap.values()).filter((e=>!e.hasIncomingEdges()))}isCyclic(){let e,t=new pt(this.getVerticesWithNoIncomingEdges()),r=new Set;for(;!t.isEmpty();){if(r.has(t.getFirst().getKey()))return!0;e=t.removeFirst(),r.add(e.getKey()),e.hasOutgoingEdges()&&t.addAll(Array.from(e.getOutVertices().values()).flatMap((e=>Array.from(e))))}return!1}addVertices(e){for(const t of e)this.addVertex(t)}getNodeMap(){return this.nodeMap}isSubGraph(){return this.isSubGrph}toString(){return"Execution Graph : \n"+Array.from(this.nodeMap.values()).map((e=>e.toString())).join("\n")}}class Cn{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 te(this,e)),t}addInEdgeTo(e,t){return this.inVertices.add(new te(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 Gn(!0);var r=new pt(Array.from(this.outVertices.get(e)??[]));for(r.map((e=>e.getData())).forEach((e=>t.addVertex(e)));!r.isEmpty();){var n=r.pop();Array.from(n.outVertices.values()).flatMap((e=>Array.from(e))).forEach((e=>{t.addVertex(e.getData()),r.add(e)}))}return t}toString(){var e=Array.from(this.getInVertices()).map((e=>e.getT1().getKey()+"("+e.getT2()+")")).join(", "),t=Array.from(this.outVertices.entries()).map((([e,t])=>e+": "+Array.from(t).map((e=>e.getKey())).join(","))).join("\n\t\t");return this.getKey()+":\n\tIn: "+e+"\n\tOut: \n\t\t"+t}}var Dn={};t(Dn,"KIRuntime",(()=>Jn));var bn={};t(bn,"JsonExpression",(()=>Fn));class Fn{constructor(e){this.expression=e}getExpression(){return this.expression}}var Yn={};let Bn;var Hn;t(Yn,"ParameterReferenceType",(()=>Bn)),(Hn=Bn||(Bn={})).VALUE="VALUE",Hn.EXPRESSION="EXPRESSION";var kn={};function $n(){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(kn,"FunctionExecutionParameters",(()=>Xn));class Xn{count=0;valueExtractors=new Map;constructor(e,t,r){this.functionRepository=e,this.schemaRepository=t,this.executionId=r??$n()}getExecutionId(){return this.executionId}getContext(){return this.context}setContext(e){this.context=e;let t=new dn(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 xn(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 Wn={};let jn;var qn;t(Wn,"StatementMessageType",(()=>jn)),(qn=jn||(jn={})).ERROR="ERROR",qn.WARNING="WARNING",qn.MESSAGE="MESSAGE";class Jn 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()>Jn.VERSION)throw new k("Runtime is at a lower version "+Jn.VERSION+" and trying to run code from version "+this.fd.getVersion()+".")}getSignature(){return this.fd}async getExecutionPlan(e){let t=new Gn;for(let r of Array.from(this.fd.getSteps().values()))t.addVertex(this.prepareStatementExecution(r,e.getFunctionRepository(),e.getSchemaRepository()));return new te(this.makeEdges(t),t)}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 Ln(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);this.debugMode&&console.log(`EID: ${e.getExecutionId()} ${t.getT2()?.toString()}`);let r=t.getT1();if(this.debugMode&&r.length&&(console.log(`EID: ${e.getExecutionId()} Unresolved Dependencies: `),console.log(`EID: ${e.getExecutionId()} `,r.map((e=>Q.format("Steps.$.$",e.getT1(),e.getT2()))))),r.length)throw new k(Q.format("Found these unresolved dependencies : $ ",r.map((e=>Q.format("Steps.$.$",e.getT1(),e.getT2())))));let n=t.getT2().getVerticesData().filter((e=>e.getMessages().length)).map((e=>e.getStatement().getStatementName()+": \n"+e.getMessages().join(",")));if(n?.length)throw new k("Please fix the errors in the function definition before execution : \n"+n.join(",\n"));return await this.executeGraph(t.getT2(),e)}async executeGraph(e,t){let r=new pt;r.addAll(e.getVerticesWithNoIncomingEdges());let n=new pt;for(;!(r.isEmpty()&&n.isEmpty()||t.getEvents()?.has(F.OUTPUT));)if(await this.processBranchQue(t,r,n),await this.processExecutionQue(t,r,n),t.setCount(t.getCount()+1),t.getCount()==Jn.MAX_EXECUTION_ITERATIONS)throw new k("Execution locked in an infinite loop");if(!e.isSubGraph()&&!t.getEvents()?.size)throw new k("No events raised");return new $(Array.from(t.getEvents()?.entries()??[]).flatMap((e=>e[1].map((t=>Y.of(e[0],t))))))}async processExecutionQue(e,t,r){if(!t.isEmpty()){let n=t.pop();await this.allDependenciesResolvedVertex(n,e.getSteps())?await this.executeVertex(n,e,r,t,e.getFunctionRepository()):t.add(n)}}async processBranchQue(e,t,r){if(r.length){let n=r.pop();await this.allDependenciesResolvedTuples(n.getT2(),e.getSteps())?await this.executeBranch(e,t,n):r.add(n)}}async executeBranch(e,t,r){let n,s=r.getT4();do{if(await this.executeGraph(r.getT1(),e),n=r.getT3().next(),n&&(e.getSteps()?.has(s.getData().getStatement().getStatementName())||e.getSteps()?.set(s.getData().getStatement().getStatementName(),new Map),e.getSteps()?.get(s.getData().getStatement().getStatementName())?.set(n.getName(),this.resolveInternalExpressions(n.getResult(),e)),this.debugMode)){const t=s.getData().getStatement();console.log(`EID: ${e.getExecutionId()} Step : ${t.getStatementName()} => ${t.getNamespace()}.${t.getName()}`),console.log(`EID: ${e.getExecutionId()} Event : ${n.getName()} : `,e.getSteps().get(t.getStatementName()).get(n.getName()))}}while(n&&n.getName()!=F.OUTPUT);n?.getName()==F.OUTPUT&&s.getOutVertices().has(F.OUTPUT)&&(s?.getOutVertices()?.get(F.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(Q.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 Jn?new Xn(t.getFunctionRepository(),t.getSchemaRepository(),`${t.getExecutionId()}_${a.getStatementName()}`).setArguments(E):new Xn(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 R=await i.execute(u),l=R.next();if(!l)throw new k(Q.format("Executing $ returned no events",a.getStatementName()));let T=l.getName()==F.OUTPUT;if(t.getSteps()?.has(a.getStatementName())||t.getSteps().set(a.getStatementName(),new Map),t.getSteps().get(a.getStatementName()).set(l.getName(),this.resolveInternalExpressions(l.getResult(),t)),this.debugMode&&(console.log(`EID: ${t.getExecutionId()} Step : ${a.getStatementName()} => ${a.getNamespace()}.${a.getName()}`),console.log(`EID: ${t.getExecutionId()} Event : ${l.getName()} : `,t.getSteps().get(a.getStatementName()).get(l.getName()))),T){let r=e.getOutVertices().get(F.OUTPUT);r&&r.forEach((async e=>{await this.allDependenciesResolvedVertex(e,t.getSteps())&&n.add(e)}))}else{let t=e.getSubGraphOfType(l.getName()),n=this.makeEdges(t);r.push(new ne(t,n,R,e))}}resolveInternalExpressions(e,t){return e?Array.from(e.entries()).map((e=>new te(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 Fn){return new Hr(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 te(t[0],n);let a=r.get(t[0]);return a?(n=a.isVariableArgument()?s.map((t=>this.parameterReferenceEvaluation(e,t))).flatMap((e=>Array.isArray(e)?e:[e])):this.parameterReferenceEvaluation(e,s[0]),new te(t[0],n)):new te(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()==Bn.VALUE)r=this.resolveInternalExpression(t.getValue(),e);else if(t.getType()==Bn.EXPRESSION&&!K.isNullOrBlank(t.getExpression())){r=new Hr(t.getExpression()??"").evaluate(e.getValuesMap())}return r}prepareStatementExecution(e,t,r){let n=new In(e),s=t.find(e.getNamespace(),e.getName());if(!s)throw new k(Q.format("$.$ was not available",e.getNamespace(),e.getName()));let a=new Map(s.getSignature().getParameters());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())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 E(ie.getDefaultValue(e.getSchema(),r))&&n.addMessage(jn.ERROR,Q.format(Jn.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()||E(ie.getDefaultValue(e.getSchema(),r))&&n.addMessage(jn.ERROR,Q.format(Jn.PARAMETER_NEEDS_A_VALUE,e.getParameterName()));return n}parameterReferenceValidation(e,t,r,n){if(r){if(r.getType()==Bn.VALUE){E(r.getValue())&&E(ie.getDefaultValue(t.getSchema(),n))&&e.addMessage(jn.ERROR,Q.format(Jn.PARAMETER_NEEDS_A_VALUE,t.getParameterName()));let s=new pt;for(s.push(new te(t.getSchema(),r.getValue()));!s.isEmpty();){let t=s.pop();if(t.getT2()instanceof Fn)this.addDependencies(e,t.getT2().getExpression());else{if(E(t.getT1())||E(t.getT1().getType()))continue;if(t.getT1().getType()?.contains(R.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 te(e.getSingleSchema(),r));else{let r=t.getT2();for(let t=0;t<r.length;t++)s.push(new te(e.getTupleSchema()[t],r[t]))}}else if(t.getT1().getType()?.contains(R.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 te(r.getProperties().get(e[0]),e[1]))}}}}else if(r.getType()==Bn.EXPRESSION)if(K.isNullOrBlank(r.getExpression()))E(ie.getDefaultValue(t.getSchema(),n))&&e.addMessage(jn.ERROR,Q.format(Jn.PARAMETER_NEEDS_A_VALUE,t.getParameterName()));else try{this.addDependencies(e,r.getExpression())}catch(t){e.addMessage(jn.ERROR,Q.format("Error evaluating $ : $",r.getExpression(),t))}}else E(ie.getDefaultValue(t.getSchema(),n))&&e.addMessage(jn.ERROR,Q.format(Jn.PARAMETER_NEEDS_A_VALUE,t.getParameterName()))}addDependencies(e,t){t&&Array.from(t.match(Jn.STEP_REGEX_PATTERN)??[]).forEach((t=>e.addDependency(t)))}makeEdges(e){let t=e.getNodeMap().values(),r=[];for(let n of Array.from(t))for(let t of n.getData().getDependencies()){let s=t.indexOf(".",6),a=t.substring(6,s),i=t.indexOf(".",s+1),o=-1==i?t.substring(s+1):t.substring(s+1,i);e.getNodeMap().has(a)||r.push(new te(a,o));let E=e.getNodeMap().get(a);E&&n.addInEdgeTo(E,o)}return r}}var zn={};t(zn,"KIRunConstants",(()=>Qn));class Qn{static NAMESPACE="namespace";static NAME="name";static ID="id";constructor(){}}var Kn={};t(Kn,"Position",(()=>Zn));class Zn{static SCHEMA_NAME="Position";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(Zn.SCHEMA_NAME).setType(f.of(R.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){return e?new Zn(e.left,e.top):new Zn(-1,-1)}}var es={};t(es,"FunctionDefinition",(()=>As));var ts={};t(ts,"Statement",(()=>is));var rs={};t(rs,"AbstractStatement",(()=>ns));class ns{override=!1;constructor(e){e&&(this.comment=e.comment,this.description=e.description,this.position=e.position?new Zn(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 ss={};t(ss,"ParameterReference",(()=>as));class as{static SCHEMA_NAME="ParameterReference";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(as.SCHEMA_NAME).setType(f.of(R.OBJECT)).setProperties(new Map([["key",S.ofString("key")],["value",S.ofAny("value")],["expression",S.ofString("expression")],["type",S.ofString("type").setEnums(["EXPRESSION","VALUE"])]]));constructor(e){if(e instanceof as){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}else this.type=e,this.key=$n()}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}static ofExpression(e){const t=new as(Bn.EXPRESSION).setExpression(e);return[t.getKey(),t]}static ofValue(e){const t=new as(Bn.VALUE).setValue(e);return[t.getKey(),t]}static from(e){return new as(e.type).setValue(e.value).setExpression(e.expression).setKey(e.key)}}class is extends ns{static SCHEMA_NAME="Statement";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(is.SCHEMA_NAME).setType(f.of(R.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(as.SCHEMA))))],["position",Zn.SCHEMA]]));constructor(e,t,r){if(super(e instanceof is?e:void 0),e instanceof is){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 as(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 is))return!1;return e.statementName==this.statementName}static ofEntry(e){return[e.statementName,e]}static from(e){return new is(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])=>as.from(t))).map((e=>[e.getKey(),e])))])))).setDependentStatements(new Map(Object.entries(e.dependentStatements??{}))).setPosition(Zn.from(e.position)).setComment(e.comment).setDescription(e.description)}}var os={};t(os,"StatementGroup",(()=>Es));class Es extends ns{static SCHEMA_NAME="StatementGroup";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(Es.SCHEMA_NAME).setType(f.of(R.OBJECT)).setProperties(new Map([["statementGroupName",S.ofString("statementGroupName")],["comment",S.ofString("comment")],["description",S.ofString("description")],["position",Zn.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 Es(e.statementGroupName,new Map(Object.entries(e.statements||{}).map((([e,t])=>[e,"true"==(""+t)?.toLowerCase()])))).setPosition(Zn.from(e.position)).setComment(e.comment).setDescription(e.description)}}const us=(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(F.SCHEMA))],["steps",S.ofObject("steps").setAdditionalProperties((new _).setSchemaValue(is.SCHEMA))]]));us.getProperties()?.set("parts",S.ofArray("parts",us));class As extends W{static SCHEMA=us;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 As(e.name).setSteps(new Map(Object.values(e.steps??{}).filter((e=>!!e)).map((e=>[e.statementName,is.from(e)])))).setStepGroups(new Map(Object.values(e.stepGroups??{}).filter((e=>!!e)).map((e=>[e.statementGroupName,Es.from(e)])))).setParts(Array.from(e.parts??[]).filter((e=>!!e)).map((e=>As.from(e)))).setVersion(e.version??1).setEvents(new Map(Object.values(e.events??{}).filter((e=>!!e)).map((e=>[e.name,F.from(e)])))).setParameters(new Map(Object.values(e.parameters??{}).filter((e=>!!e)).map((e=>[e.parameterName,y.from(e)])))):new As("unknown")}}var Rs={};t(Rs,"Argument",(()=>ls));class ls{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 ls(0,e,t)}}var Ts={};e(Ts,Mr),e(Ts,Pr),e(Ts,yr),e(Ts,vr),e(Ts,Or);var gs={};e(gs,Ut),e(gs,Gt),e(gs,Dt),e(gs,Ft),e(gs,Bt),e(gs,kt),e(gs,Xt),e(gs,xt),e(gs,jt),e(gs,Jt),e(gs,Qt),e(gs,Zt),e(gs,tr),e(gs,nr),e(gs,ar),e(gs,or),e(gs,ur),e(gs,Rr),e(gs,Tr),e(gs,hr),e(gs,pr),e(gs,Nr),e(gs,_r),e(gs,yt),e(module.exports,r),e(module.exports,L),e(module.exports,{}),e(module.exports,ve),e(module.exports,V),e(module.exports,o),e(module.exports,lt),e(module.exports,ht),e(module.exports,z),e(module.exports,J),e(module.exports,ee),e(module.exports,Ce),e(module.exports,Tt),e(module.exports,Mn),e(module.exports,On),e(module.exports,ot),e(module.exports,Pn),e(module.exports,yn),e(module.exports,vn),e(module.exports,Un),e(module.exports,{}),e(module.exports,Vn),e(module.exports,Dn),e(module.exports,Wn),e(module.exports,kn),e(module.exports,Rt),e(module.exports,Vr),e(module.exports,Ur),e(module.exports,dt),e(module.exports,wt),e(module.exports,_t),e(module.exports,Nt),e(module.exports,Mt),e(module.exports,{}),e(module.exports,j),e(module.exports,s),e(module.exports,bn),e(module.exports,n),e(module.exports,me),e(module.exports,le),e(module.exports,ge),e(module.exports,Ae),e(module.exports,oe),e(module.exports,fe),e(module.exports,ce),e(module.exports,q),e(module.exports,se),e(module.exports,O),e(module.exports,ue),e(module.exports,i),e(module.exports,c),e(module.exports,T),e(module.exports,g),e(module.exports,p),e(module.exports,A),e(module.exports,Z),e(module.exports,_e),e(module.exports,Nn),e(module.exports,zn),e(module.exports,M),e(module.exports,B),e(module.exports,Kn),e(module.exports,es),e(module.exports,Yn),e(module.exports,D),e(module.exports,rs),e(module.exports,ts),e(module.exports,{}),e(module.exports,os),e(module.exports,X),e(module.exports,b),e(module.exports,I),e(module.exports,Rs),e(module.exports,ss),e(module.exports,Le),e(module.exports,H),e(module.exports,Ts),e(module.exports,gs),e(module.exports,br);
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",(()=>v));var n={};t(n,"AdditionalPropertiesType",(()=>_)),t(n,"Schema",(()=>S));var s={};t(s,"Namespaces",(()=>a));class a{static SYSTEM="System";static SYSTEM_CTX="System.Context";static SYSTEM_LOOP="System.Loop";static SYSTEM_ARRAY="System.Array";static MATH="System.Math";static STRING="System.String";constructor(){}}var i={};t(i,"ArraySchemaType",(()=>u));var o={};function E(e){return null==e}t(o,"isNullValue",(()=>E));class u{constructor(e){e&&(this.singleSchema=e.singleSchema?new S(e.singleSchema):void 0,this.tupleSchema=e.tupleSchema?e.tupleSchema.map((e=>new S(e))):void 0)}setSingleSchema(e){return this.singleSchema=e,this}setTupleSchema(e){return this.tupleSchema=e,this}getSingleSchema(){return this.singleSchema}getTupleSchema(){return this.tupleSchema}isSingleType(){return!E(this.singleSchema)}static of(...e){return 1==e.length?(new u).setSingleSchema(e[0]):(new u).setTupleSchema(e)}static from(e){if(!e)return;Array.isArray(e)&&u.of(...S.fromListOfSchemas(e));let t=S.from(e);return t?u.of(t):void 0}}var A={};let R;var l;t(A,"SchemaType",(()=>R)),(l=R||(R={})).INTEGER="Integer",l.LONG="Long",l.FLOAT="Float",l.DOUBLE="Double",l.STRING="String",l.OBJECT="Object",l.ARRAY="Array",l.BOOLEAN="Boolean",l.NULL="Null";var T={};t(T,"TypeUtil",(()=>f));var g={};t(g,"MultipleType",(()=>h));var p={};t(p,"Type",(()=>m));class m{}class h extends m{constructor(e){super(),this.type=e instanceof h?new Set(Array.from(e.type)):new Set(Array.from(e))}getType(){return this.type}setType(e){return this.type=e,this}getAllowedSchemaTypes(){return this.type}contains(e){return this.type?.has(e)}}var c={};t(c,"SingleType",(()=>N));class N extends m{constructor(e){super(),this.type=e instanceof N?e.type:e}getType(){return this.type}getAllowedSchemaTypes(){return new Set([this.type])}contains(e){return this.type==e}}class f{static of(...e){return 1==e.length?new N(e[0]):new h(new Set(e))}static from(e){return"string"==typeof e?new N(R[e]):Array.isArray(e)?new h(new Set(e.map((e=>e)).map((e=>R[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)return;const t=new _;return t.booleanValue=e.booleanValue,t.schemaValue=e.schemaValue,t}}class S{static NULL=(new S).setNamespace(a.SYSTEM).setName("Null").setType(f.of(R.NULL)).setConstant(void 0);static TYPE_SCHEMA=(new S).setType(f.of(R.STRING)).setEnums(["INTEGER","LONG","FLOAT","DOUBLE","STRING","OBJECT","ARRAY","BOOLEAN","NULL"]);static SCHEMA=(new S).setNamespace(a.SYSTEM).setName("Schema").setType(f.of(R.OBJECT)).setProperties(new Map([["namespace",S.of("namespace",R.STRING).setDefaultValue("_")],["name",S.ofString("name")],["version",S.of("version",R.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("#/"))],["allOf",S.ofArray("allOf",S.ofRef("#/"))],["oneOf",S.ofArray("oneOf",S.ofRef("#/"))],["not",S.ofRef("#/")],["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",R.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",R.OBJECT).setAdditionalProperties((new _).setSchemaValue(S.ofRef("#/")))],["additionalProperties",(new S).setName("additionalProperty").setNamespace(a.SYSTEM).setAnyOf([S.ofBoolean("additionalProperty"),S.ofObject("additionalProperty").setRef("#/")]).setDefaultValue(!0)],["required",S.ofArray("required",S.ofString("required")).setDefaultValue([])],["propertyNames",S.ofRef("#/")],["minProperties",S.ofInteger("minProperties")],["maxProperties",S.ofInteger("maxProperties")],["patternProperties",S.of("patternProperties",R.OBJECT).setAdditionalProperties((new _).setSchemaValue(S.ofRef("#/")))],["items",(new S).setName("items").setAnyOf([S.ofRef("#/").setName("item"),S.ofArray("tuple",S.ofRef("#/"))])],["contains",S.ofRef("#/")],["minItems",S.ofInteger("minItems")],["maxItems",S.ofInteger("maxItems")],["uniqueItems",S.ofBoolean("uniqueItems")],["$defs",S.of("$defs",R.OBJECT).setAdditionalProperties((new _).setSchemaValue(S.ofRef("#/")))],["permission",S.ofString("permission")]])).setRequired([]);static ofString(e){return(new S).setType(f.of(R.STRING)).setName(e)}static ofInteger(e){return(new S).setType(f.of(R.INTEGER)).setName(e)}static ofFloat(e){return(new S).setType(f.of(R.FLOAT)).setName(e)}static ofLong(e){return(new S).setType(f.of(R.LONG)).setName(e)}static ofDouble(e){return(new S).setType(f.of(R.DOUBLE)).setName(e)}static ofAny(e){return(new S).setType(f.of(R.INTEGER,R.LONG,R.FLOAT,R.DOUBLE,R.STRING,R.BOOLEAN,R.ARRAY,R.NULL,R.OBJECT)).setName(e)}static ofAnyNotNull(e){return(new S).setType(f.of(R.INTEGER,R.LONG,R.FLOAT,R.DOUBLE,R.STRING,R.BOOLEAN,R.ARRAY,R.OBJECT)).setName(e)}static ofNumber(e){return(new S).setType(f.of(R.INTEGER,R.LONG,R.FLOAT,R.DOUBLE)).setName(e)}static ofBoolean(e){return(new S).setType(f.of(R.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(R.OBJECT)).setName(e)}static ofRef(e){return(new S).setRef(e)}static ofArray(e,...t){return(new S).setType(f.of(R.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(R.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.contains=S.from(e.contains),r.minItems=e.minItems,r.maxItems=e.maxItems,r.uniqueItems=e.uniqueItems,r.$defs=S.fromMapOfSchemas(e.$defs),r.permission=e.permission,r}namespace="_";version=1;constructor(e){e&&(this.namespace=e.namespace,this.name=e.name,this.version=e.version,this.ref=e.ref,this.type=e.type instanceof N?new N(e.type):new h(e.type),this.anyOf=e.anyOf?.map((e=>new S(e))),this.allOf=e.allOf?.map((e=>new S(e))),this.oneOf=e.oneOf?.map((e=>new S(e))),this.not=this.not?new S(this.not):void 0,this.description=e.description,this.examples=e.examples?JSON.parse(JSON.stringify(e.examples)):void 0,this.defaultValue=e.defaultValue?JSON.parse(JSON.stringify(e.defaultValue)):void 0,this.comment=e.comment,this.enums=e.enums?[...e.enums]:void 0,this.constant=e.constant?JSON.parse(JSON.stringify(e.constant)):void 0,this.pattern=e.pattern,this.format=e.format,this.minLength=e.minLength,this.maxLength=e.maxLength,this.multipleOf=e.multipleOf,this.minimum=e.minimum,this.maximum=e.maximum,this.exclusiveMinimum=e.exclusiveMinimum,this.exclusiveMaximum=e.exclusiveMaximum,this.properties=e.properties?new Map(Array.from(e.properties.entries()).map((e=>[e[0],new S(e[1])]))):void 0,this.additionalProperties=e.additionalProperties?new _(e.additionalProperties):void 0,this.required=e.required?[...e.required]:void 0,this.propertyNames=e.propertyNames?new S(e.propertyNames):void 0,this.minProperties=e.minProperties,this.maxProperties=e.maxProperties,this.patternProperties=e.patternProperties?new Map(Array.from(e.patternProperties.entries()).map((e=>[e[0],new S(e[1])]))):void 0,this.items=e.items?new u(e.items):void 0,this.contains=e.contains?new S(this.contains):void 0,this.minItems=e.minItems,this.maxItems=e.maxItems,this.uniqueItems=e.uniqueItems,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.getFullName()}getFullName(){return this.namespace&&"_"!=this.namespace?this.namespace+"."+this.name: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}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(R.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}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 P;var d;t(I,"ParameterType",(()=>P)),(d=P||(P={})).CONSTANT="CONSTANT",d.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",R.BOOLEAN).setDefaultValue(!1)],["type",S.ofString("type").setEnums(["EXPRESSION","CONSTANT"])]]));static EXPRESSION=(new S).setNamespace(a.SYSTEM).setName("ParameterExpression").setType(f.of(R.OBJECT)).setProperties(new Map([["isExpression",S.ofBoolean("isExpression").setDefaultValue(!0)],["value",S.ofAny("value")]]));variableArgument=!1;type=P.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=P.EXPRESSION){return[e,new y(e,t).setType(n).setVariableArgument(r)]}static of(e,t,r=!1,n=P.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??P.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]]);class v{find(e,t){if(a.SYSTEM==e)return x.get(t)}}var L={};function U(e){return[e.getSignature().getName(),e]}t(L,"KIRunFunctionRepository",(()=>Sn));var V={};t(V,"MapUtil",(()=>G)),t(V,"MapEntry",(()=>C));class G{static of(e,t,r,n,s,a,i,o,u,A,R,l,T,g,p,m,h,c,N,f){const _=new Map;return E(e)||E(t)||_.set(e,t),E(r)||E(n)||_.set(r,n),E(s)||E(a)||_.set(s,a),E(i)||E(o)||_.set(i,o),E(u)||E(A)||_.set(u,A),E(R)||E(l)||_.set(R,l),E(T)||E(g)||_.set(T,g),E(p)||E(m)||_.set(p,m),E(h)||E(c)||_.set(h,c),E(N)||E(f)||_.set(N,f),_}static ofArrayEntries(...e){const t=new Map;for(const[r,n]of e)t.set(r,n);return t}static entry(e,t){return new C(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 C{constructor(e,t){this.k=e,this.v=t}}var D={};t(D,"EventResult",(()=>Y));var b={};t(b,"Event",(()=>F));class F{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(F.SCHEMA_NAME).setType(f.of(R.OBJECT)).setProperties(new Map([["name",S.ofString("name")],["parameters",S.ofObject("parameter").setAdditionalProperties((new _).setSchemaValue(S.SCHEMA))]]));constructor(e,t){if(e instanceof F)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 F.eventMapEntry(F.OUTPUT,e)}static eventMapEntry(e,t){return[e,new F(e,t)]}static from(e){return new F(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 Y{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 Y.of(F.OUTPUT,e)}static of(e,t){return new Y(e,t)}}var B={};t(B,"FunctionOutput",(()=>$));var H={};t(H,"KIRuntimeException",(()=>k));class k extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class ${index=0;constructor(e){if(E(e))throw new k("Function output is generating null");Array.isArray(e)&&e.length&&e[0]instanceof Y?this.fo=e:(this.fo=[],this.generator=e)}next(){if(!this.generator)return this.index<this.fo.length?this.fo[this.index++]:void 0;const e=this.generator.next();return e&&this.fo.push(e),e}allResults(){return this.fo}}var 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(F.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 F(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}}var j={};t(j,"AbstractFunction",(()=>Pe));var q={};t(q,"SchemaValidator",(()=>Ie));var J={};t(J,"StringUtil",(()=>K));var z={};t(z,"StringFormatter",(()=>Q));class Q{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 K{constructor(){}static nthIndex(e,t,r=0,n){if(!e)throw new k("String cannot be null");if(r<0||r>=e.length)throw new k(Q.format("Cannot search from index : $",r));if(n<=0||n>e.length)throw new k(Q.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 Z={};t(Z,"SchemaUtil",(()=>ie));var ee={};t(ee,"Tuple2",(()=>te)),t(ee,"Tuple3",(()=>re)),t(ee,"Tuple4",(()=>ne));class te{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 re extends te{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 ne extends re{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 se={};t(se,"SchemaValidationException",(()=>ae));class ae 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 ie{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.getDefaultValue()?e.getDefaultValue():ie.getDefaultValue(ie.getSchemaFromRef(e,t,e.getRef()),t)}static getSchemaFromRef(e,t,r,n=0){if(++n==ie.CYCLIC_REFERENCE_LIMIT_COUNTER)throw new ae(r??"","Schema has a cyclic reference");if(!e||!r||K.isNullOrBlank(r))return;if(!r.startsWith("#")){var s=ie.resolveExternalSchema(e,t,r);s&&(e=s.getT1(),r=s.getT2())}let a=r.split("/");return 1===a.length?e:ie.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,ie.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);i=i.get$defs()?.get(s[a])}else{if(i&&(!i.getType()?.contains(R.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,ie.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);if(!K.isNullOrBlank(i.getRef())&&(i=ie.getSchemaFromRef(i,t,i.getRef(),n),!i))throw new w(r,ie.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH)}return i}}static resolveExternalSchema(e,t,r){if(!t)return;let n=K.splitAtFirstOccurance(r??"","/");if(!n[0])return;let s=K.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 te(a,r);if(r="#/"+n[1],!a)throw new w(r,ie.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);return new te(a,r)}}constructor(){}}var oe={};t(oe,"AnyOfAllOfOneOfValidator",(()=>Ee));class Ee{static validate(e,t,r,n){let s=[];return t.getOneOf()&&!t.getOneOf()?Ee.oneOf(e,t,r,n,s):t.getAllOf()&&!t.getAllOf()?Ee.allOf(e,t,r,n,s):t.getAnyOf()&&!t.getAnyOf()&&Ee.anyOf(e,t,r,n,s),n}static anyOf(e,t,r,n,s){let a=!1;for(let i of t.getAnyOf()??[])try{Ee.validate(e,i,r,n),a=!0;break}catch(e){a=!1,s.push(e)}if(!a)throw new ae(Ie.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{Ee.validate(e,i,r,n),a++}catch(e){s.push(e)}if(a!==t.getAllOf()?.length)throw new ae(Ie.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{Ee.validate(e,i,r,n),a++}catch(e){s.push(e)}if(1!=a)throw new ae(Ie.path(e),0==a?"The value does not satisfy any schema":"The value satisfy more than one schema",s)}constructor(){}}var ue={};t(ue,"TypeValidator",(()=>we));var Ae={};t(Ae,"ArrayValidator",(()=>Re));class Re{static validate(e,t,r,n){if(E(n))throw new ae(Ie.path(e),"Expected an array but found null");if(!Array.isArray(n))throw new ae(Ie.path(e),n.toString()+" is not an Array");let s=n;return Re.checkMinMaxItems(e,t,s),Re.checkItems(e,t,r,s),Re.checkUniqueItems(e,t,s),Re.checkContains(e,t,r,s),n}static checkContains(e,t,r,n){if(!t.getContains())return;let s=!1;for(let a=0;a<n.length;a++){let i=e?[...e]:[];try{Ie.validate(i,t.getContains(),r,n[a]),s=!0;break}catch(e){s=!1}}if(!s)throw new ae(Ie.path(e),"None of the items are of type contains schema")}static checkUniqueItems(e,t,r){if(t.getUniqueItems()&&t.getUniqueItems()){if(new Set(r).size!==r.length)throw new ae(Ie.path(e),"Items on the array are not unique")}}static checkMinMaxItems(e,t,r){if(t.getMinItems()&&t.getMinItems()>r.length)throw new ae(Ie.path(e),"Array should have minimum of "+t.getMinItems()+" elements");if(t.getMaxItems()&&t.getMaxItems()<r.length)throw new ae(Ie.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=Ie.validate(a,s.getSingleSchema(),r,n[t]);n[t]=i}if(s.getTupleSchema()){if(s.getTupleSchema().length!==n.length)throw new ae(Ie.path(e),"Expected an array with only "+s.getTupleSchema().length+" but found "+n.length);for(let t=0;t<n.length;t++){let a=e?[...e]:[],i=Ie.validate(a,s.getTupleSchema()[t],r,n[t]);n[t]=i}}}constructor(){}}var le={};t(le,"BooleanValidator",(()=>Te));class Te{static validate(e,t,r){if(E(r))throw new ae(Ie.path(e),"Expected a boolean but found null");if("boolean"!=typeof r)throw new ae(Ie.path(e),r.toString()+" is not a boolean");return r}constructor(){}}var ge={};t(ge,"NullValidator",(()=>pe));class pe{static validate(e,t,r){if(r)throw new ae(Ie.path(e),"Expected a null but found "+r);return r}constructor(){}}var me={};t(me,"NumberValidator",(()=>he));class he{static validate(e,t,r,n){if(E(n))throw new ae(Ie.path(t),"Expected a number but found null");if("number"!=typeof n)throw new ae(Ie.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!=R.LONG&&e!=R.INTEGER||(s=Math.round(s))}catch(r){throw new ae(Ie.path(t),n+" is not a number of type "+e,r)}if(E(s)||(e==R.LONG||e==R.INTEGER)&&s!=n)throw new ae(Ie.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 ae(Ie.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 ae(Ie.path(e),r.toString()+" should be greater than or equal to "+t.getMinimum());if(t.getMaximum()&&he.numberCompare(n,t.getMaximum())>0)throw new ae(Ie.path(e),r.toString()+" should be less than or equal to "+t.getMaximum());if(t.getExclusiveMinimum()&&he.numberCompare(n,t.getExclusiveMinimum())<=0)throw new ae(Ie.path(e),r.toString()+" should be greater than "+t.getExclusiveMinimum());if(t.getExclusiveMaximum()&&he.numberCompare(n,t.getExclusiveMaximum())>0)throw new ae(Ie.path(e),r.toString()+" should be less than "+t.getExclusiveMaximum())}static numberCompare(e,t){return e-t}constructor(){}}var ce={};t(ce,"ObjectValidator",(()=>Ne));class Ne{static validate(e,t,r,n){if(E(n))throw new ae(Ie.path(e),"Expected an object but found null");if("object"!=typeof n||Array.isArray(n))throw new ae(Ie.path(e),n.toString()+" is not an Object");let s=n,a=new Set(Object.keys(s));Ne.checkMinMaxProperties(e,t,a),t.getPropertyNames()&&Ne.checkPropertyNameSchema(e,t,r,a),t.getRequired()&&Ne.checkRequired(e,t,s),t.getProperties()&&Ne.checkProperties(e,t,r,s,a),t.getPatternProperties()&&Ne.checkPatternProperties(e,t,r,s,a),t.getAdditionalProperties()&&Ne.checkAddtionalProperties(e,t,r,s,a)}static checkPropertyNameSchema(e,t,r,n){for(let s of Array.from(n.values()))try{Ie.validate(e,t.getPropertyNames(),r,s)}catch(t){throw new ae(Ie.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 ae(Ie.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=Ie.validate(s,a.getSchemaValue(),r,n[t]);n[t]=i}else if(!1===a.getBooleanValue()&&s.size)throw new ae(Ie.path(e),s.toString()+" 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=Ie.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(E(t))continue;let i=e?[...e]:[],o=Ie.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 ae(Ie.path(e),"Object should have minimum of "+t.getMinProperties()+" properties");if(t.getMaxProperties()&&r.size>t.getMaxProperties())throw new ae(Ie.path(e),"Object can have maximum of "+t.getMaxProperties()+" properties")}constructor(){}}var fe={};t(fe,"StringValidator",(()=>Oe));var _e={};let Se;var Me;t(_e,"StringFormat",(()=>Se)),(Me=Se||(Se={})).DATETIME="DATETIME",Me.TIME="TIME",Me.DATE="DATE",Me.EMAIL="EMAIL",Me.REGEX="REGEX";class Oe{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 ae(Ie.path(e),"Expected a string but found "+r);if("string"!=typeof r)throw new ae(Ie.path(e),r.toString()+" is not String");t.getFormat()==Se.TIME?Oe.patternMatcher(e,t,r,Oe.TIME,"time pattern"):t.getFormat()==Se.DATE?Oe.patternMatcher(e,t,r,Oe.DATE,"date pattern"):t.getFormat()==Se.DATETIME?Oe.patternMatcher(e,t,r,Oe.DATETIME,"date time pattern"):t.getFormat()==Se.EMAIL?Oe.patternMatcher(e,t,r,Oe.EMAIL,"email pattern"):t.getPattern()&&Oe.patternMatcher(e,t,r,new RegExp(t.getPattern()),"pattern "+t.getPattern());let n=r.length;if(t.getMinLength()&&n<t.getMinLength())throw new ae(Ie.path(e),"Expected a minimum of "+t.getMinLength()+" characters");if(t.getMaxLength()&&n>t.getMaxLength())throw new ae(Ie.path(e),"Expected a maximum of "+t.getMaxLength()+" characters");return r}static patternMatcher(e,t,r,n,s){if(!n.test(r))throw new ae(Ie.path(e),r.toString()+" is not matched with the "+s)}constructor(){}}class we{static validate(e,t,r,n,s){if(t==R.STRING)Oe.validate(e,r,s);else if(t==R.LONG||t==R.INTEGER||t==R.DOUBLE||t==R.FLOAT)he.validate(t,e,r,s);else if(t==R.BOOLEAN)Te.validate(e,r,s);else if(t==R.OBJECT)Ne.validate(e,r,n,s);else if(t==R.ARRAY)Re.validate(e,r,n,s);else{if(t!=R.NULL)throw new ae(Ie.path(e),t+" is not a valid type.");pe.validate(e,r,s)}return s}constructor(){}}class Ie{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 ae(Ie.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 Ie.constantValidation(e,t,n);if(t.getEnums()&&!t.getEnums()?.length)return Ie.enumCheck(e,t,n);if(t.getType()&&Ie.typeValidation(e,t,r,n),!K.isNullOrBlank(t.getRef()))return Ie.validate(e,ie.getSchemaFromRef(e[0],r,t.getRef()),r,n);if((t.getOneOf()||t.getAllOf()||t.getAnyOf())&&Ee.validate(e,t,r,n),t.getNot()){let s=!1;try{Ie.validate(e,t.getNot(),r,n),s=!0}catch(e){s=!1}if(s)throw new ae(Ie.path(e),"Schema validated value in not condition.")}return n}static constantValidation(e,t,r){if(!t.getConstant().equals(r))throw new ae(Ie.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 ae(Ie.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{we.validate(e,i,t,r,n),s=!0;break}catch(e){s=!1,a.push(e)}if(!s)throw new ae(Ie.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 k(`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 te(a,Ie.validate(void 0,n.getSchema(),t,void 0));if(!n?.isVariableArgument())return new te(a,Ie.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]=Ie.validate(void 0,n.getSchema(),t,s[e]);return new te(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 k(`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 de extends Pe{static EVENT_INDEX_NAME="index";static EVENT_RESULT_NAME="result";static EVENT_INDEX=new F(F.OUTPUT,G.of(de.EVENT_INDEX_NAME,S.ofInteger(de.EVENT_INDEX_NAME)));static EVENT_RESULT_INTEGER=new F(F.OUTPUT,G.of(de.EVENT_RESULT_NAME,S.ofInteger(de.EVENT_RESULT_NAME)));static EVENT_RESULT_BOOLEAN=new F(F.OUTPUT,G.of(de.EVENT_RESULT_NAME,S.ofBoolean(de.EVENT_RESULT_NAME)));static EVENT_RESULT_ARRAY=new F(F.OUTPUT,G.of(de.EVENT_RESULT_NAME,S.ofArray(de.EVENT_RESULT_NAME,S.ofAny(de.EVENT_RESULT_NAME))));static EVENT_RESULT_EMPTY=new F(F.OUTPUT,G.of());static EVENT_RESULT_ANY=new F(F.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",R.STRING,R.DOUBLE,R.FLOAT,R.INTEGER,R.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(R.STRING,R.NULL,R.INTEGER,R.FLOAT,R.DOUBLE,R.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(de.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 ye extends de{constructor(){super("Add",[de.PARAMETER_ARRAY_SOURCE,de.PARAMETER_ARRAY_SECOND_SOURCE],de.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(de.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(de.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName());return t.splice(t.length,0,...r),new $([Y.outputOf(new Map([]))])}}class xe extends de{constructor(){super("AddFirst",[de.PARAMETER_ARRAY_SOURCE,de.PARAMETER_ANY_NOT_NULL],de.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(de.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(de.PARAMETER_ANY_NOT_NULL.getParameterName());if(0==t.length)return t.push(r),new $([Y.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 $([Y.outputOf(new Map([]))])}}var ve={};t(ve,"PrimitiveUtil",(()=>Ve));var Le={};t(Le,"ExecutionException",(()=>Ue));class Ue extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class Ve{static findPrimitiveNullAsBoolean(e){if(E(e))return new te(R.BOOLEAN,!1);let t=typeof e;if("object"===t)throw new Ue(Q.format("$ is not a primitive type",e));let r=e;return"boolean"===t?new te(R.BOOLEAN,r):"string"===t?new te(R.STRING,r):Ve.findPrimitiveNumberType(r)}static findPrimitive(e){if(E(e))return new te(R.NULL,void 0);let t=typeof e;if("object"===t)throw new Ue(Q.format("$ is not a primitive type",e));let r=e;return"boolean"===t?new te(R.BOOLEAN,r):"string"===t?new te(R.STRING,r):Ve.findPrimitiveNumberType(r)}static findPrimitiveNumberType(e){if(E(e)||Array.isArray(e)||"object"==typeof e)throw new Ue(Q.format("Unable to convert $ to a number.",e));let t=e;try{let e=t;return Number.isInteger(e)?new te(R.LONG,e):new te(R.DOUBLE,e)}catch(e){throw new Ue(Q.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)?R.LONG:R.DOUBLE}static toPrimitiveType(e){return e}constructor(){}}class Ge extends de{constructor(){super("BinarySearch",[Ge.PARAMETER_ARRAY_SOURCE_PRIMITIVE,Ge.PARAMETER_INT_SOURCE_FROM,Ge.PARAMETER_FIND_PRIMITIVE,Ge.PARAMETER_INT_LENGTH],Ge.EVENT_INDEX)}async internalExecute(e){let t=e?.getArguments()?.get(Ge.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Ge.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(Ge.PARAMETER_FIND_PRIMITIVE.getParameterName()),s=e?.getArguments()?.get(Ge.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length||r<0||r>t.length)throw new k("Search source array cannot be empty");if(-1==s&&(s=t.length-r),s=r+s,s>t.length)throw new k("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==Ve.compare(t[e],n)){a=e;break}Ve.compare(t[e],n)>0?s=e-1:r=e+1}return new $([Y.outputOf(new Map([[Ge.EVENT_INDEX.getName(),a]]))])}}var Ce={};t(Ce,"ArrayUtil",(()=>De));class De{static removeAListFrom(e,t){if(!(t&&e&&e.length&&t.length))return;const r=new Set(t);for(let t=0;t<e.length;t++)r.has(e[t])&&(e.splice(t,1),t--)}static of(...e){const t=new Array(e.length);for(let r=0;r<e.length;r++)t[r]=e[r];return t}constructor(){}}class be extends de{constructor(){super("Compare",De.of(be.PARAMETER_ARRAY_SOURCE,be.PARAMETER_INT_SOURCE_FROM,be.PARAMETER_ARRAY_FIND,be.PARAMETER_INT_FIND_FROM,be.PARAMETER_INT_LENGTH),be.EVENT_RESULT_INTEGER)}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_ARRAY_FIND.getParameterName()),s=e?.getArguments()?.get(be.PARAMETER_INT_FIND_FROM.getParameterName()),a=e?.getArguments()?.get(be.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new k("Compare source array cannot be empty");if(0==n.length)throw new k("Compare find array cannot be empty");if(-1==a&&(a=t.length-r),r+a>t.length)throw new k(Q.format("Source array size $ is less than comparing size $",t.length,r+a));if(s+a>n.length)throw new k(Q.format("Find array size $ is less than comparing size $",n.length,s+a));return new $(De.of(Y.outputOf(G.of(be.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(Q.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 Fe extends de{constructor(){super("Copy",[Fe.PARAMETER_ARRAY_SOURCE,Fe.PARAMETER_INT_SOURCE_FROM,Fe.PARAMETER_INT_LENGTH,Fe.PARAMETER_BOOLEAN_DEEP_COPY],Fe.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(Fe.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Fe.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(Fe.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),r+n>t.length)throw new k(Q.format("Array has no elements from $ to $ as the array size is $",r,r+n,t.length));var s=e?.getArguments()?.get(Fe.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 $([Y.outputOf(G.of(Fe.EVENT_RESULT_NAME,a))])}}class Ye extends de{constructor(){super("Delete",[de.PARAMETER_ARRAY_SOURCE,de.PARAMETER_ANY_VAR_ARGS],de.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(Ye.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Ye.PARAMETER_ANY_VAR_ARGS.getParameterName());if(null==r)throw new k("The deletable var args are empty. So cannot be proceeded further.");if(0==t.length||0==r.length)throw new k("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!=Ve.compare(t[e],r[s])||n.add(t[e]);return s=t.filter((e=>!n.has(e))),t.splice(0,t.length,...s),new $([Y.outputOf(new Map([]))])}}class Be extends de{constructor(){super("DeleteFirst",[Be.PARAMETER_ARRAY_SOURCE],Be.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(Be.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new k("Given source array is empty");return t.shift(),new $([Y.outputOf(new Map([]))])}}class He extends de{constructor(){super("DeleteFrom",[He.PARAMETER_ARRAY_SOURCE,He.PARAMETER_INT_SOURCE_FROM,He.PARAMETER_INT_LENGTH],He.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(He.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(He.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(He.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new k("There are no elements to be deleted");if(r>=t.length||r<0)throw new k("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 k("Requested length to be deleted is more than the size of array ");return t.splice(r,n),new $([Y.outputOf(new Map([]))])}}class ke extends de{constructor(){super("DeleteLast",[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 k("Given source array is empty");return t.pop(),new $([Y.outputOf(new Map([]))])}}class $e extends de{constructor(){super("Disjoint",[$e.PARAMETER_ARRAY_SOURCE,$e.PARAMETER_INT_SOURCE_FROM,$e.PARAMETER_ARRAY_SECOND_SOURCE,$e.PARAMETER_INT_SECOND_SOURCE_FROM,$e.PARAMETER_INT_LENGTH],$e.EVENT_RESULT_ARRAY)}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_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get($e.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get($e.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 k("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 $([Y.outputOf(new Map([[$e.EVENT_RESULT_ARRAY.getName(),u]]))])}}class Xe extends de{constructor(){super("Equals",[Xe.PARAMETER_ARRAY_SOURCE,Xe.PARAMETER_INT_SOURCE_FROM,Xe.PARAMETER_ARRAY_FIND,Xe.PARAMETER_INT_FIND_FROM,Xe.PARAMETER_INT_LENGTH],Xe.EVENT_RESULT_BOOLEAN)}async internalExecute(e){let t=new be,r=(await t.execute(e)).allResults()[0].getResult().get(Xe.EVENT_RESULT_NAME);return new $([Y.outputOf(G.of(Xe.EVENT_RESULT_NAME,0==r))])}}class We extends de{constructor(){super("Fill",[We.PARAMETER_ARRAY_SOURCE,We.PARAMETER_INT_SOURCE_FROM,We.PARAMETER_INT_LENGTH,We.PARAMETER_ANY],We.EVENT_RESULT_EMPTY)}async internalExecute(e){var t=e?.getArguments()?.get(We.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(We.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(We.PARAMETER_INT_LENGTH.getParameterName()),s=e?.getArguments()?.get(We.PARAMETER_ANY.getParameterName());if(r<0)throw new k(Q.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 $([Y.outputOf(G.of())])}}class je extends de{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 $([Y.outputOf(new Map([[je.EVENT_RESULT_INTEGER.getName(),0]]))]);if(n>t.length)throw new k("Given start point is more than the size of source");if(E(r))throw new k("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 k("Given length is more than the size of source");let i=0;for(let e=n;e<a&&e<t.length;e++)0==Ve.compare(t[e],r)&&i++;return new $([Y.outputOf(new Map([[je.EVENT_RESULT_INTEGER.getName(),i]]))])}}class qe extends de{constructor(){super("IndexOf",[qe.PARAMETER_ARRAY_SOURCE,qe.PARAMETER_ANY_NOT_NULL,qe.PARAMETER_INT_FIND_FROM],qe.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(qe.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(qe.PARAMETER_ANY_NOT_NULL.getParameterName());let n=e?.getArguments()?.get(qe.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new $([Y.outputOf(new Map([[qe.EVENT_RESULT_INTEGER.getName(),-1]]))]);if(n<0||n>t.length)throw new k("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==Ve.compare(t[e],r)){s=e;break}return new $([Y.outputOf(new Map([[qe.EVENT_RESULT_INTEGER.getName(),s]]))])}}class Je extends de{constructor(){super("IndexOfArray",[Je.PARAMETER_ARRAY_SOURCE,Je.PARAMETER_ARRAY_SECOND_SOURCE,Je.PARAMETER_INT_FIND_FROM],Je.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(Je.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Je.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(Je.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length||0==r.length)return new $([Y.outputOf(new Map([[Je.EVENT_RESULT_INTEGER.getName(),-1]]))]);if(n<0||n>t.length||t.length<r.length)throw new k("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==Ve.compare(t[e],r[n])){for(;n<s&&0==Ve.compare(t[e+n],r[n]);)n++;if(n==s){a=e;break}}}return new $([Y.outputOf(new Map([[Je.EVENT_RESULT_INTEGER.getName(),a]]))])}}class ze extends de{constructor(){super("LastIndexOf",[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 $([Y.outputOf(new Map([[ze.EVENT_RESULT_INTEGER.getName(),-1]]))]);if(n<0||n>t.length)throw new k("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==Ve.compare(t[e],r)){s=e;break}return new $([Y.outputOf(new Map([[ze.EVENT_RESULT_INTEGER.getName(),s]]))])}}class Qe extends de{constructor(){super("LastIndexOfArray",[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)return new $([Y.outputOf(new Map([[Qe.EVENT_RESULT_ARRAY.getName(),-1]]))]);if(n<0||n>t.length||r.length>t.length)throw new k("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==Ve.compare(t[e],r[n])){for(;n<s&&0==Ve.compare(t[e+n],r[n]);)n++;n==s&&(a=e)}}return new $([Y.outputOf(new Map([[Qe.EVENT_RESULT_INTEGER.getName(),a]]))])}}class Ke extends de{constructor(){super("Max",[Ke.PARAMETER_ARRAY_SOURCE_PRIMITIVE],Ke.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(Ke.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==t.length)throw new k("Search source array cannot be empty");let r=t[0];for(let e=1;e<t.length;e++){let n=t[e];Ve.comparePrimitive(r,n)>=0||(r=n)}return new $([Y.outputOf(new Map([[Ke.EVENT_RESULT_ANY.getName(),r]]))])}}class Ze extends de{constructor(){super("Min",[Ze.PARAMETER_ARRAY_SOURCE_PRIMITIVE],Ze.EVENT_RESULT_ANY)}async internalExecute(e){let t,r=e?.getArguments()?.get(Ze.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==r.length)throw new k("Search source array cannot be empty");for(let e=0;e<r.length;e++)E(r[e])||(void 0===t||Ve.comparePrimitive(r[e],t)<0)&&(t=r[e]);return new $([Y.outputOf(new Map([[Ze.EVENT_RESULT_ANY.getName(),t]]))])}}class et extends de{constructor(){super("MisMatch",[et.PARAMETER_ARRAY_SOURCE,et.PARAMETER_INT_FIND_FROM,et.PARAMETER_ARRAY_SECOND_SOURCE,et.PARAMETER_INT_SECOND_SOURCE_FROM,et.PARAMETER_INT_LENGTH],et.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(et.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(et.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(et.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(et.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(et.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 k("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 $([Y.outputOf(new Map([[et.EVENT_RESULT_INTEGER.getName(),E]]))])}}class tt extends de{constructor(){super("Reverse",[tt.PARAMETER_ARRAY_SOURCE,tt.PARAMETER_INT_SOURCE_FROM,tt.PARAMETER_INT_LENGTH],tt.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(tt.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(tt.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(tt.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),n>=t.length||n<0||r<0)throw new k("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 $([Y.outputOf(new Map([]))])}}class rt extends de{constructor(){super("Rotate",[rt.PARAMETER_ARRAY_SOURCE,rt.PARAMETER_ROTATE_LENGTH],rt.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(rt.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(rt.PARAMETER_ROTATE_LENGTH.getParameterName());if(0==t.length)return new $([Y.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 $([Y.outputOf(new Map([]))])}rotate(e,t,r){for(;t<r;){let n=e[t];e[t++]=e[r],e[r--]=n}}}class nt extends de{constructor(){super("Shuffle",[nt.PARAMETER_ARRAY_SOURCE],nt.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(nt.PARAMETER_ARRAY_SOURCE.getParameterName());if(t.length<=1)return new $([Y.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 $([Y.outputOf(new Map([]))])}}class st extends de{constructor(){super("Sort",[st.PARAMETER_ARRAY_SOURCE_PRIMITIVE,st.PARAMETER_INT_FIND_FROM,st.PARAMETER_INT_LENGTH,st.PARAMETER_BOOLEAN_ASCENDING],st.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(st.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName()),r=e?.getArguments()?.get(st.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(st.PARAMETER_INT_LENGTH.getParameterName()),s=e?.getArguments()?.get(st.PARAMETER_BOOLEAN_ASCENDING.getParameterName());if(0==t.length)return new $([Y.outputOf(new Map([[st.EVENT_RESULT_EMPTY.getName(),t]]))]);if(-1==n&&(n=t.length-r),r<0||r>=t.length||r+n>t.length)throw new k("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 $([Y.outputOf(new Map([[st.EVENT_RESULT_EMPTY.getName(),t]]))])}}class at extends de{constructor(){super("SubArray",[at.PARAMETER_ARRAY_SOURCE,at.PARAMETER_INT_FIND_FROM,at.PARAMETER_INT_LENGTH],at.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(at.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(at.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(at.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),n<=0)return new $([Y.outputOf(new Map([]))]);if(!(r>=0&&r<t.length)||r+n>t.length)throw new k("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 $([Y.outputOf(new Map([[at.EVENT_RESULT_ARRAY.getName(),s]]))])}}class it{static repoMap=G.ofArrayEntries(U(new ye),U(new xe),U(new Ge),U(new be),U(new Fe),U(new Ye),U(new Be),U(new He),U(new ke),U(new $e),U(new Xe),U(new We),U(new je),U(new qe),U(new Je),U(new ze),U(new Qe),U(new Ke),U(new Ze),U(new et),U(new tt),U(new rt),U(new nt),U(new st),U(new at));find(e,t){if(e==a.SYSTEM_ARRAY)return it.repoMap.get(t)}}var ot={};t(ot,"ContextElement",(()=>Et));class Et{static NULL=new Et(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 ut=new W("Create").setNamespace(a.SYSTEM_CTX).setParameters(new Map([y.ofEntry("name",(new S).setName("name").setType(f.of(R.STRING)).setMinLength(1).setFormat(Se.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,P.CONSTANT),y.ofEntry("schema",S.SCHEMA,!1,P.CONSTANT)])).setEvents(new Map([F.outputEventMapEntry(new Map)]));const At=new W("Get").setNamespace(a.SYSTEM_CTX).setParameters(new Map([y.ofEntry("name",(new S).setName("name").setType(f.of(R.STRING)).setMinLength(1).setFormat(Se.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,P.CONSTANT)])).setEvents(new Map([F.outputEventMapEntry(new Map([["value",S.ofAny("value")]]))]));var Rt={};t(Rt,"Expression",(()=>Pt));var lt={};t(lt,"LinkedList",(()=>pt));var Tt={};function gt(e,t){let r=new pt;r.push(e);let n=new pt;for(n.push(t);!r.isEmpty()&&!n.isEmpty();){const e=r.pop(),t=n.pop();if(e===t)continue;const s=typeof e,a=typeof t;if("undefined"===s||"undefined"===a){if(!e&&!t)continue;return!1}if(s!==a)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!=t.length)return!1;for(let s=0;s<e.length;s++)r.push(e[s]),n.push(t[s])}else{if("object"!==s)return!1;{const s=Object.entries(e),a=Object.entries(t);if(s.length!==a.length)return!1;for(const[e,a]of s)r.push(a),n.push(t[e])}}}return!0}t(Tt,"deepEqual",(()=>gt));class pt{head=void 0;tail=void 0;length=0;constructor(e){if(e?.length){for(const t of e)if(this.head){const e=new mt(t,this.tail);this.tail.next=e,this.tail=e}else this.tail=this.head=new mt(t);this.length=e.length}}push(e){const t=new mt(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(Q.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 mt(e,this.head),this.head.next=this.tail):(this.tail=new mt(e,this.tail),this.tail.previous.next=this.tail):this.head=this.tail=new mt(e),this}map(e,t){let r=new pt,n=this.head,s=0;for(;n;)r.add(e(n.value,s)),n=n.next,++s;return r}indexOf(e){let t=this.head,r=0;for(;t;){if(gt(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 mt{constructor(e,t,r){this.value=e,this.next=r,this.previous=t}toString(){return""+this.value}}var ht={};t(ht,"StringBuilder",(()=>ct));class ct{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 k(`Index ${e} is greater than or equal to ${this.str.length}`)}substring(e,t){return this.str.substring(e,t)}}var Nt={};t(Nt,"ExpressionEvaluationException",(()=>ft));class ft extends Error{constructor(e,t,r){super(Q.format("$ : $",e,t)),this.cause=r}getCause(){return this.cause}}var _t={};t(_t,"ExpressionToken",(()=>St));class St{constructor(e){this.expression=e}getExpression(){return this.expression}toString(){return this.expression}}var Mt={};t(Mt,"ExpressionTokenValue",(()=>Ot));class Ot extends St{constructor(e,t){super(e),this.element=t}getTokenValue(){return this.element}getElement(){return this.element}toString(){return Q.format("$: $",this.expression,this.element)}}var wt={};t(wt,"Operation",(()=>It));class It{static MULTIPLICATION=new It("*");static DIVISION=new It("/");static INTEGER_DIVISION=new It("//");static MOD=new It("%");static ADDITION=new It("+");static SUBTRACTION=new It("-");static NOT=new It("not",void 0,!0);static AND=new It("and",void 0,!0);static OR=new It("or",void 0,!0);static LESS_THAN=new It("<");static LESS_THAN_EQUAL=new It("<=");static GREATER_THAN=new It(">");static GREATER_THAN_EQUAL=new It(">=");static EQUAL=new It("=");static NOT_EQUAL=new It("!=");static BITWISE_AND=new It("&");static BITWISE_OR=new It("|");static BITWISE_XOR=new It("^");static BITWISE_COMPLEMENT=new It("~");static BITWISE_LEFT_SHIFT=new It("<<");static BITWISE_RIGHT_SHIFT=new It(">>");static BITWISE_UNSIGNED_RIGHT_SHIFT=new It(">>>");static UNARY_PLUS=new It("UN: +","+");static UNARY_MINUS=new It("UN: -","-");static UNARY_LOGICAL_NOT=new It("UN: not","not");static UNARY_BITWISE_COMPLEMENT=new It("UN: ~","~");static ARRAY_OPERATOR=new It("[");static OBJECT_OPERATOR=new It(".");static NULLISH_COALESCING_OPERATOR=new It("??");static CONDITIONAL_TERNARY_OPERATOR=new It("?");static VALUE_OF=new Map([["MULTIPLICATION",It.MULTIPLICATION],["DIVISION",It.DIVISION],["INTEGER_DIVISON",It.INTEGER_DIVISION],["MOD",It.MOD],["ADDITION",It.ADDITION],["SUBTRACTION",It.SUBTRACTION],["NOT",It.NOT],["AND",It.AND],["OR",It.OR],["LESS_THAN",It.LESS_THAN],["LESS_THAN_EQUAL",It.LESS_THAN_EQUAL],["GREATER_THAN",It.GREATER_THAN],["GREATER_THAN_EQUAL",It.GREATER_THAN_EQUAL],["EQUAL",It.EQUAL],["NOT_EQUAL",It.NOT_EQUAL],["BITWISE_AND",It.BITWISE_AND],["BITWISE_OR",It.BITWISE_OR],["BITWISE_XOR",It.BITWISE_XOR],["BITWISE_COMPLEMENT",It.BITWISE_COMPLEMENT],["BITWISE_LEFT_SHIFT",It.BITWISE_LEFT_SHIFT],["BITWISE_RIGHT_SHIFT",It.BITWISE_RIGHT_SHIFT],["BITWISE_UNSIGNED_RIGHT_SHIFT",It.BITWISE_UNSIGNED_RIGHT_SHIFT],["UNARY_PLUS",It.UNARY_PLUS],["UNARY_MINUS",It.UNARY_MINUS],["UNARY_LOGICAL_NOT",It.UNARY_LOGICAL_NOT],["UNARY_BITWISE_COMPLEMENT",It.UNARY_BITWISE_COMPLEMENT],["ARRAY_OPERATOR",It.ARRAY_OPERATOR],["OBJECT_OPERATOR",It.OBJECT_OPERATOR],["NULLISH_COALESCING_OPERATOR",It.NULLISH_COALESCING_OPERATOR],["CONDITIONAL_TERNARY_OPERATOR",It.CONDITIONAL_TERNARY_OPERATOR]]);static UNARY_OPERATORS=new Set([It.ADDITION,It.SUBTRACTION,It.NOT,It.BITWISE_COMPLEMENT,It.UNARY_PLUS,It.UNARY_MINUS,It.UNARY_LOGICAL_NOT,It.UNARY_BITWISE_COMPLEMENT]);static ARITHMETIC_OPERATORS=new Set([It.MULTIPLICATION,It.DIVISION,It.INTEGER_DIVISION,It.MOD,It.ADDITION,It.SUBTRACTION]);static LOGICAL_OPERATORS=new Set([It.NOT,It.AND,It.OR,It.LESS_THAN,It.LESS_THAN_EQUAL,It.GREATER_THAN,It.GREATER_THAN_EQUAL,It.EQUAL,It.NOT_EQUAL,It.NULLISH_COALESCING_OPERATOR]);static BITWISE_OPERATORS=new Set([It.BITWISE_AND,It.BITWISE_COMPLEMENT,It.BITWISE_LEFT_SHIFT,It.BITWISE_OR,It.BITWISE_RIGHT_SHIFT,It.BITWISE_UNSIGNED_RIGHT_SHIFT,It.BITWISE_XOR]);static CONDITIONAL_OPERATORS=new Set([It.CONDITIONAL_TERNARY_OPERATOR]);static OPERATOR_PRIORITY=new Map([[It.UNARY_PLUS,1],[It.UNARY_MINUS,1],[It.UNARY_LOGICAL_NOT,1],[It.UNARY_BITWISE_COMPLEMENT,1],[It.ARRAY_OPERATOR,1],[It.OBJECT_OPERATOR,1],[It.MULTIPLICATION,2],[It.DIVISION,2],[It.INTEGER_DIVISION,2],[It.MOD,2],[It.ADDITION,3],[It.SUBTRACTION,3],[It.BITWISE_LEFT_SHIFT,4],[It.BITWISE_RIGHT_SHIFT,4],[It.BITWISE_UNSIGNED_RIGHT_SHIFT,4],[It.LESS_THAN,5],[It.LESS_THAN_EQUAL,5],[It.GREATER_THAN,5],[It.GREATER_THAN_EQUAL,5],[It.EQUAL,6],[It.NOT_EQUAL,6],[It.BITWISE_AND,7],[It.BITWISE_XOR,8],[It.BITWISE_OR,9],[It.AND,10],[It.OR,11],[It.NULLISH_COALESCING_OPERATOR,11],[It.CONDITIONAL_TERNARY_OPERATOR,12]]);static OPERATORS=new Set([...Array.from(It.ARITHMETIC_OPERATORS),...Array.from(It.LOGICAL_OPERATORS),...Array.from(It.BITWISE_OPERATORS),It.ARRAY_OPERATOR,It.OBJECT_OPERATOR,...Array.from(It.CONDITIONAL_OPERATORS)].map((e=>e.getOperator())));static OPERATORS_WITHOUT_SPACE_WRAP=new Set([...Array.from(It.ARITHMETIC_OPERATORS),...Array.from(It.LOGICAL_OPERATORS),...Array.from(It.BITWISE_OPERATORS),It.ARRAY_OPERATOR,It.OBJECT_OPERATOR,...Array.from(It.CONDITIONAL_OPERATORS)].filter((e=>!e.shouldBeWrappedInSpace())).map((e=>e.getOperator())));static OPERATION_VALUE_OF=new Map(Array.from(It.VALUE_OF.entries()).map((([e,t])=>[t.getOperator(),t])));static UNARY_MAP=new Map([[It.ADDITION,It.UNARY_PLUS],[It.SUBTRACTION,It.UNARY_MINUS],[It.NOT,It.UNARY_LOGICAL_NOT],[It.BITWISE_COMPLEMENT,It.UNARY_BITWISE_COMPLEMENT],[It.UNARY_PLUS,It.UNARY_PLUS],[It.UNARY_MINUS,It.UNARY_MINUS],[It.UNARY_LOGICAL_NOT,It.UNARY_LOGICAL_NOT],[It.UNARY_BITWISE_COMPLEMENT,It.UNARY_BITWISE_COMPLEMENT]]);static BIGGEST_OPERATOR_SIZE=Array.from(It.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 It.VALUE_OF.get(e)}toString(){return this.operator}}class Pt extends St{tokens=new pt;ops=new pt;constructor(e,t,r,n){super(e||""),t&&this.tokens.push(t),r&&this.tokens.push(r),n&&this.ops.push(n),this.evaluate()}getTokens(){return this.tokens}getOperations(){return this.ops}evaluate(){const e=this.expression.length;let t,r="",n=new ct(""),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 ft(this.expression,"Extra closing parenthesis found");case"]":throw new ft(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()==It.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()==It.ARRAY_OPERATOR&&(i=this.process(e,n,s),s=i.getT1(),a=i.getT2())}++s}if(t=n.toString(),!K.isNullOrBlank(t)){if(It.OPERATORS.has(t))throw new ft(this.expression,"Expression is ending with an operator");this.tokens.push(new St(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 ft(this.expression,"Missing string ending marker "+t);let a=new te(s,!1);return this.tokens.push(new Ot(n,n)),a}process(e,t,r){let n=1;for(++r;r<e&&0!=n;){let e=this.expression.charAt(r);"]"==e?--n:"["==e&&++n,0!=n&&(t.append(e),r++)}return this.tokens.push(new Pt(t.toString())),t.setLength(0),new te(r,!1)}processOthers(e,t,r,n,s,a){let i=t-s;i=i<It.BIGGEST_OPERATOR_SIZE?i:It.BIGGEST_OPERATOR_SIZE;for(let e=i;e>0;e--){let t=this.expression.substring(s,s+e);if(It.OPERATORS_WITHOUT_SPACE_WRAP.has(t))return K.isNullOrBlank(n)||(this.tokens.push(new St(n)),a=!1),this.checkUnaryOperator(this.tokens,this.ops,It.OPERATION_VALUE_OF.get(t),a),a=!0,r.setLength(0),new te(s+e-1,a)}return r.append(e),new te(s,!1)}processTernaryOperator(e,t,r,n,s){if(s)throw new ft(this.expression,"Ternary operator is followed by an operator");""!=r.trim()&&(this.tokens.push(new Pt(r)),t.setLength(0));let a=1,i="";const o=++n;for(;n<e&&a>0;)i=this.expression.charAt(n),"?"==i?++a:":"==i&&--a,++n;if(":"!=i)throw new ft(this.expression,"':' operater is missing");if(n>=e)throw new ft(this.expression,"Third part of the ternary expression is missing");for(;!this.ops.isEmpty()&&this.hasPrecedence(It.CONDITIONAL_TERNARY_OPERATOR,this.ops.peek());){let e=this.ops.pop();if(It.UNARY_OPERATORS.has(e)){const t=this.tokens.pop();this.tokens.push(new Pt("",t,void 0,e))}else{let t=this.tokens.pop(),r=this.tokens.pop();this.tokens.push(new Pt("",r,t,e))}}this.ops.push(It.CONDITIONAL_TERNARY_OPERATOR),this.tokens.push(new Pt(this.expression.substring(o,n-1)));const E=this.expression.substring(n);if(""===E.trim())throw new ft(this.expression,"Third part of the ternary expression is missing");return this.tokens.push(new Pt(E)),e-1}processSubExpression(e,t,r,n,s){if(It.OPERATORS.has(r))this.checkUnaryOperator(this.tokens,this.ops,It.OPERATION_VALUE_OF.get(r),s),t.setLength(0);else if(!K.isNullOrBlank(r))throw new ft(this.expression,Q.format("Unkown token : $ found.",r));let a=1;const i=new ct;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 ft(this.expression,"Missing a closed parenthesis");for(;i.length()>2&&"("==i.charAt(0)&&")"==i.charAt(i.length()-1);)i.deleteCharAt(0),i.setLength(i.length()-1);return this.tokens.push(new Pt(i.toString().trim())),n}processTokenSepearator(e,t,r){return K.isNullOrBlank(t)||(It.OPERATORS.has(t)?(this.checkUnaryOperator(this.tokens,this.ops,It.OPERATION_VALUE_OF.get(t),r),r=!0):(this.tokens.push(new St(t)),r=!1)),e.setLength(0),r}checkUnaryOperator(e,t,r,n){if(r)if(n||e.isEmpty()){if(!It.UNARY_OPERATORS.has(r))throw new ft(this.expression,Q.format("Extra operator $ found.",r));{const e=It.UNARY_MAP.get(r);e&&t.push(e)}}else{for(;!t.isEmpty()&&this.hasPrecedence(r,t.peek());){let r=t.pop();if(It.UNARY_OPERATORS.has(r)){let t=e.pop();e.push(new Pt("",t,void 0,r))}else{let t=e.pop(),n=e.pop();e.push(new Pt("",n,t,r))}}t.push(r)}}hasPrecedence(e,t){let r=It.OPERATOR_PRIORITY.get(e),n=It.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 ct,t=0;const r=this.ops.toArray(),n=this.tokens.toArray();for(let s=0;s<r.length;s++)if(r[s].getOperator().startsWith("UN: "))e.append("(").append(r[s].getOperator().substring(4)).append(n[t]instanceof Pt?n[t].toString():n[t]).append(")"),t++;else if(r[s]==It.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 dt={};t(dt,"ExpressionEvaluator",(()=>Hr));var yt={};t(yt,"LogicalNullishCoalescingOperator",(()=>Lt));var xt={};t(xt,"BinaryOperator",(()=>vt));class vt{nullCheck(e,t,r){if(E(e)||E(t))throw new Ue(Q.format("$ cannot be applied to a null value",r.getOperatorName()))}}class Lt extends vt{apply(e,t){return E(e)?t:e}}var Ut={};t(Ut,"ArithmeticAdditionOperator",(()=>Vt));class Vt extends vt{apply(e,t){return this.nullCheck(e,t,It.ADDITION),e+t}}var Gt={};t(Gt,"ArithmeticDivisionOperator",(()=>Ct));class Ct extends vt{apply(e,t){return this.nullCheck(e,t,It.DIVISION),e/t}}var Dt={};t(Dt,"ArithmeticIntegerDivisionOperator",(()=>bt));class bt extends vt{apply(e,t){return this.nullCheck(e,t,It.DIVISION),Math.floor(e/t)}}var Ft={};t(Ft,"ArithmeticModulusOperator",(()=>Yt));class Yt extends vt{apply(e,t){return this.nullCheck(e,t,It.MOD),e%t}}var Bt={};t(Bt,"ArithmeticMultiplicationOperator",(()=>Ht));class Ht extends vt{apply(e,t){this.nullCheck(e,t,It.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 kt={};t(kt,"ArithmeticSubtractionOperator",(()=>$t));class $t extends vt{apply(e,t){return this.nullCheck(e,t,It.SUBTRACTION),e-t}}var Xt={};t(Xt,"ArrayOperator",(()=>Wt));class Wt extends vt{apply(e,t){if(!e)throw new Ue("Cannot apply array operator on a null value");if(!t)throw new Ue("Cannot retrive null index value");if(!Array.isArray(e)&&"string"!=typeof e)throw new Ue(Q.format("Cannot retrieve value from a primitive value $",e));if(t>=e.length)throw new Ue(Q.format("Cannot retrieve index $ from the array of length $",t,e.length));return e[t]}}var jt={};t(jt,"BitwiseAndOperator",(()=>qt));class qt extends vt{apply(e,t){return this.nullCheck(e,t,It.BITWISE_AND),e&t}}var Jt={};t(Jt,"BitwiseLeftShiftOperator",(()=>zt));class zt extends vt{apply(e,t){return this.nullCheck(e,t,It.BITWISE_LEFT_SHIFT),e<<t}}var Qt={};t(Qt,"BitwiseOrOperator",(()=>Kt));class Kt extends vt{apply(e,t){return this.nullCheck(e,t,It.BITWISE_OR),e|t}}var Zt={};t(Zt,"BitwiseRightShiftOperator",(()=>er));class er extends vt{apply(e,t){return this.nullCheck(e,t,It.BITWISE_RIGHT_SHIFT),e>>t}}var tr={};t(tr,"BitwiseUnsignedRightShiftOperator",(()=>rr));class rr extends vt{apply(e,t){return this.nullCheck(e,t,It.BITWISE_UNSIGNED_RIGHT_SHIFT),e>>>t}}var nr={};t(nr,"BitwiseXorOperator",(()=>sr));class sr extends vt{apply(e,t){return this.nullCheck(e,t,It.BITWISE_XOR),e^t}}var ar={};t(ar,"LogicalAndOperator",(()=>ir));class ir extends vt{apply(e,t){const r=Ve.findPrimitiveNullAsBoolean(e),n=Ve.findPrimitiveNullAsBoolean(t);if(r.getT1()!=R.BOOLEAN)throw new Ue(Q.format("Boolean value expected but found $",r.getT2()));if(n.getT1()!=R.BOOLEAN)throw new Ue(Q.format("Boolean value expected but found $",n.getT2()));return r.getT2()&&n.getT2()}}var or={};t(or,"LogicalEqualOperator",(()=>Er));class Er extends vt{apply(e,t){return gt(e,t)}}var ur={};t(ur,"LogicalGreaterThanEqualOperator",(()=>Ar));class Ar extends vt{apply(e,t){const r=Ve.findPrimitiveNullAsBoolean(e),n=Ve.findPrimitiveNullAsBoolean(t);if(r.getT1()==R.BOOLEAN||n.getT1()==R.BOOLEAN)throw new Ue(Q.format("Cannot compare >= with the values $ and $",r.getT2(),n.getT2()));return r.getT2()>=n.getT2()}}var Rr={};t(Rr,"LogicalGreaterThanOperator",(()=>lr));class lr extends vt{apply(e,t){const r=Ve.findPrimitiveNullAsBoolean(e),n=Ve.findPrimitiveNullAsBoolean(t);if(r.getT1()==R.BOOLEAN||n.getT1()==R.BOOLEAN)throw new Ue(Q.format("Cannot compare > with the values $ and $",r.getT2(),n.getT2()));return r.getT2()>n.getT2()}}var Tr={};t(Tr,"LogicalLessThanEqualOperator",(()=>gr));class gr extends vt{apply(e,t){const r=Ve.findPrimitiveNullAsBoolean(e),n=Ve.findPrimitiveNullAsBoolean(t);if(r.getT1()==R.BOOLEAN||n.getT1()==R.BOOLEAN)throw new Ue(Q.format("Cannot compare <= with the values $ and $",r.getT2(),n.getT2()));return r.getT2()<=n.getT2()}}var pr={};t(pr,"LogicalLessThanOperator",(()=>mr));class mr extends vt{apply(e,t){const r=Ve.findPrimitiveNullAsBoolean(e),n=Ve.findPrimitiveNullAsBoolean(t);if(r.getT1()==R.BOOLEAN||n.getT1()==R.BOOLEAN)throw new Ue(Q.format("Cannot compare < with the values $ and $",r.getT2(),n.getT2()));return r.getT2()<n.getT2()}}var hr={};t(hr,"LogicalNotEqualOperator",(()=>cr));class cr extends vt{apply(e,t){return!gt(e,t)}}var Nr={};t(Nr,"LogicalOrOperator",(()=>fr));class fr extends vt{apply(e,t){const r=Ve.findPrimitiveNullAsBoolean(e),n=Ve.findPrimitiveNullAsBoolean(t);if(r.getT1()!=R.BOOLEAN)throw new Ue(Q.format("Boolean value expected but found $",r.getT2()));if(n.getT1()!=R.BOOLEAN)throw new Ue(Q.format("Boolean value expected but found $",n.getT2()));return r.getT2()||n.getT2()}}var _r={};t(_r,"ObjectOperator",(()=>Sr));class Sr extends vt{apply(e,t){if(!e)throw new Ue("Cannot apply array operator on a null value");if(!t)throw new Ue("Cannot retrive null property value");const r=typeof e;if(!Array.isArray(e)&&"string"!=r&&"object"!=r)throw new Ue(Q.format("Cannot retrieve value from a primitive value $",e));return e[t]}}var Mr={};t(Mr,"ArithmeticUnaryMinusOperator",(()=>Ir));var Or={};t(Or,"UnaryOperator",(()=>wr));class wr{nullCheck(e,t){if(E(e))throw new Ue(Q.format("$ cannot be applied to a null value",t.getOperatorName()))}}class Ir extends wr{apply(e){return this.nullCheck(e,It.UNARY_MINUS),Ve.findPrimitiveNumberType(e),-e}}var Pr={};t(Pr,"ArithmeticUnaryPlusOperator",(()=>dr));class dr extends wr{apply(e){return this.nullCheck(e,It.UNARY_PLUS),Ve.findPrimitiveNumberType(e),e}}var yr={};t(yr,"BitwiseComplementOperator",(()=>xr));class xr extends wr{apply(e){this.nullCheck(e,It.UNARY_BITWISE_COMPLEMENT);let t=Ve.findPrimitiveNumberType(e);if(t.getT1()!=R.INTEGER&&t.getT1()!=R.LONG)throw new Ue(Q.format("Unable to apply bitwise operator on $",e));return~e}}var vr={};t(vr,"LogicalNotOperator",(()=>Lr));class Lr extends wr{apply(e){return!e&&""!==e}}var Ur={};t(Ur,"LiteralTokenValueExtractor",(()=>Dr));var Vr={};t(Vr,"TokenValueExtractor",(()=>Gr));class Gr{static REGEX_SQUARE_BRACKETS=/[\[\]]/;static REGEX_DOT=/\./;getValue(e){let t=this.getPrefix();if(!e.startsWith(t))throw new k(Q.format("Token $ doesn't start with $",e,t));return this.getValueInternal(e)}retrieveElementFrom(e,t,r,n){if(E(n))return;if(t.length==r)return n;let s=t[r].split(Gr.REGEX_SQUARE_BRACKETS).map((e=>e.trim())).filter((e=>!K.isNullOrBlank(e))).reduce(((n,s,a)=>this.resolveForEachPartOfTokenWithBrackets(e,t,r,s,n,a)),n);return this.retrieveElementFrom(e,t,r+1,s)}resolveForEachPartOfTokenWithBrackets(e,t,r,n,s,a){if(!E(s)){if(0===a){if(Array.isArray(s)){if("length"===n)return s.length;try{let e=parseInt(n);if(isNaN(e))throw new Error(Q.format("$ is not a number",e));if(e>=s.length)return;return s[e]}catch(t){throw new ft(e,Q.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 ft(e,Q.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(Q.format("$ is not a number",t));if(!Array.isArray(s))throw new ft(e,Q.format("Expecting an array with index $ while processing the expression",t,e));if(t>=s.length)return;return s[t]}catch(t){throw new ft(e,Q.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 ft(e,Q.format("Unable to retrive $ from $ in the path $",t[r],n.toString(),e))}}const Cr=new Map([["true",!0],["false",!1],["null",void 0]]);class Dr extends Gr{static INSTANCE=new Dr;getValueInternal(e){if(!K.isNullOrBlank(e))return e=e.trim(),Cr.has(e)?Cr.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 ft(e,Q.format("Unable to parse the literal or expression $",e),t)}}processString(e){if(!e.endsWith('"'))throw new ft(e,Q.format("String literal $ is not closed properly",e));return e.substring(1,e.length-1)}getPrefix(){return""}}var br={},Fr={};t(Fr,"ConditionalTernaryOperator",(()=>Yr));class Yr extends class{nullCheck(e,t,r,n){if(E(e)||E(t)||E(r))throw new Ue(Q.format("$ cannot be applied to a null value",n.getOperatorName()))}}{apply(e,t,r){return e?t:r}}e(br,Fr);class Br extends Gr{static PREFIX="_internal.";values=new Map;addValue(e,t){this.values.set(e,t)}getValueInternal(e){let t=e.split(Gr.REGEX_DOT),r=t[1],n=r.indexOf("["),s=2;return-1!=n&&(r=t[1].substring(0,n),t[1]=t[1].substring(n),s=1),this.retrieveElementFrom(e,t,s,this.values.get(r))}getPrefix(){return Br.PREFIX}}class Hr{static UNARY_OPERATORS_MAP=new Map([[It.UNARY_BITWISE_COMPLEMENT,new xr],[It.UNARY_LOGICAL_NOT,new Lr],[It.UNARY_MINUS,new Ir],[It.UNARY_PLUS,new dr]]);static TERNARY_OPERATORS_MAP=new Map([[It.CONDITIONAL_TERNARY_OPERATOR,new Yr]]);static BINARY_OPERATORS_MAP=new Map([[It.ADDITION,new Vt],[It.DIVISION,new Ct],[It.INTEGER_DIVISION,new bt],[It.MOD,new Yt],[It.MULTIPLICATION,new Ht],[It.SUBTRACTION,new $t],[It.BITWISE_AND,new qt],[It.BITWISE_LEFT_SHIFT,new zt],[It.BITWISE_OR,new Kt],[It.BITWISE_RIGHT_SHIFT,new er],[It.BITWISE_UNSIGNED_RIGHT_SHIFT,new rr],[It.BITWISE_XOR,new sr],[It.AND,new ir],[It.EQUAL,new Er],[It.GREATER_THAN,new lr],[It.GREATER_THAN_EQUAL,new Ar],[It.LESS_THAN,new mr],[It.LESS_THAN_EQUAL,new gr],[It.OR,new fr],[It.NOT_EQUAL,new cr],[It.NULLISH_COALESCING_OPERATOR,new Lt],[It.ARRAY_OPERATOR,new Wt],[It.OBJECT_OPERATOR,new Sr]]);static UNARY_OPERATORS_MAP_KEY_SET=new Set(Hr.UNARY_OPERATORS_MAP.keys());internalTokenValueExtractor=new Br;constructor(e){e instanceof Pt?(this.exp=e,this.expression=this.exp.getExpression()):this.expression=e}evaluate(e){const t=this.processNestingExpression(this.expression,e);return this.expression=t.getT1(),this.exp=t.getT2(),(e=new Map(e.entries())).set(this.internalTokenValueExtractor.getPrefix(),this.internalTokenValueExtractor),this.evaluateExpression(this.exp,e)}processNestingExpression(e,t){let r=0,n=0;const s=new pt;for(;n<e.length-1;){if("{"==e.charAt(n)&&"{"==e.charAt(n+1))0==r&&s.push(new te(n+2,-1)),r++,n++;else if("}"==e.charAt(n)&&"}"==e.charAt(n+1)){if(r--,r<0)throw new ft(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 te(a,new Pt(a))}replaceNestingExpression(e,t,r){let n=e;for(var s of r.toArray()){if(-1==s.getT2())throw new ft(e,"Expecting }} nesting path operator to be closed");let r=new Hr(n.substring(s.getT1(),s.getT2())).evaluate(t);n=n.substring(0,s.getT1()-2)+r+n.substring(s.getT2()+2)}return n}getExpression(){return this.exp||(this.exp=new Pt(this.expression)),this.exp}getExpressionString(){return this.expression}evaluateExpression(e,t){let r=e.getOperations(),n=e.getTokens();for(;!r.isEmpty();){let e=r.pop(),o=n.pop();if(Hr.UNARY_OPERATORS_MAP_KEY_SET.has(e))n.push(this.applyUnaryOperation(e,this.getValueFromToken(t,o)));else if(e==It.OBJECT_OPERATOR||e==It.ARRAY_OPERATOR)this.processObjectOrArrayOperator(t,r,n,e,o);else if(e==It.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 Ue(Q.format("Expression : $ evaluated to null",e));if(1!=n.size())throw new Ue(Q.format("Expression : $ evaluated multiple values $",e,n));const o=n.get(0);if(o instanceof Ot)return o.getElement();if(!(o instanceof Pt))return this.getValueFromToken(t,o);throw new Ue(Q.format("Expression : $ evaluated to $",e,n.get(0)))}processObjectOrArrayOperator(e,t,r,n,s){const a=new pt,i=new pt;if(!n||!s)return;do{i.push(n),s instanceof Pt?a.push(new Ot(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==It.OBJECT_OPERATOR||n==It.ARRAY_OPERATOR);s&&(s instanceof Pt?a.push(new Ot(s.toString(),this.evaluateExpression(s,e))):a.push(s)),n&&t.push(n);let o=a.pop();if(o instanceof Ot&&"object"==typeof o.getTokenValue()){const e=(new Date).getTime()+""+Math.round(1e3*Math.random());this.internalTokenValueExtractor.addValue(e,o.getTokenValue()),o=new St(Br.PREFIX+e)}let E=new ct(o instanceof Ot?o.getTokenValue():o.toString());for(;!a.isEmpty();)o=a.pop(),n=i.pop(),E.append(n.getOperator()).append(o instanceof Ot?o.getTokenValue():o.toString()),n==It.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 Ot(u,this.getValue(u,e)));else{let e;try{e=Dr.INSTANCE.getValue(u)}catch(t){e=u}r.push(new Ot(u,e))}}applyTernaryOperation(e,t,r,n){let s=Hr.TERNARY_OPERATORS_MAP.get(e);if(!s)throw new ft(this.expression,Q.format("No operator found to evaluate $",this.getExpression()));return new Ot(e.toString(),s.apply(t,r,n))}applyBinaryOperation(e,t,r){let n=typeof t,s=typeof r,a=Hr.BINARY_OPERATORS_MAP.get(e);if(("object"===n||"object"===s)&&e!==It.EQUAL&&e!==It.NOT_EQUAL&&e!==It.NULLISH_COALESCING_OPERATOR)throw new ft(this.expression,Q.format("Cannot evaluate expression $ $ $",t,e.getOperator(),r));if(!a)throw new ft(this.expression,Q.format("No operator found to evaluate $ $ $",t,e.getOperator(),r));return new Ot(e.toString(),a.apply(t,r))}applyUnaryOperation(e,t){if("object"===typeof t||Array.isArray(t))throw new ft(this.expression,Q.format("The operator $ cannot be applied to $",e.getOperator(),t));let r=Hr.UNARY_OPERATORS_MAP.get(e);if(!r)throw new ft(this.expression,Q.format("No Unary operator $ is found to apply on $",e.getOperator(),t));return new Ot(e.toString(),r.apply(t))}getValueFromToken(e,t){return t instanceof Pt?this.evaluateExpression(t,e):t instanceof Ot?t.getElement():this.getValue(t.getExpression(),e)}getValue(e,t){if(e.length<=5)return Dr.INSTANCE.getValue(e);const r=e.substring(0,e.indexOf(".")+1);return(t.get(r)??Dr.INSTANCE).getValue(e)}}const kr=new W("Set").setNamespace(a.SYSTEM_CTX).setParameters(new Map([y.ofEntry("name",(new S).setName("name").setType(f.of(R.STRING)).setMinLength(1),!1,P.CONSTANT),y.ofEntry("value",S.ofAny("value"))])).setEvents(new Map([F.outputEventMapEntry(new Map)]));const $r=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([F.outputEventMapEntry(new Map)]));class Xr extends Pe{static CONDITION="condition";static SIGNATURE=new W("If").setNamespace(a.SYSTEM).setParameters(new Map([y.ofEntry(Xr.CONDITION,S.of(Xr.CONDITION,R.BOOLEAN))])).setEvents(new Map([F.eventMapEntry(F.TRUE,new Map),F.eventMapEntry(F.FALSE,new Map),F.outputEventMapEntry(new Map)]));getSignature(){return Xr.SIGNATURE}async internalExecute(e){var t=e.getArguments()?.get(Xr.CONDITION);return new $([Y.of(t?F.TRUE:F.FALSE,new Map),Y.outputOf(new Map)])}}const Wr=new W("CountLoop").setNamespace(a.SYSTEM_LOOP).setParameters(new Map([y.ofEntry("count",S.of("count",R.INTEGER))])).setEvents(new Map([F.eventMapEntry(F.ITERATION,new Map([["index",S.of("index",R.INTEGER)]])),F.outputEventMapEntry(new Map([["value",S.of("value",R.INTEGER)]]))]));const jr=new W("RangeLoop").setNamespace(a.SYSTEM_LOOP).setParameters(new Map([y.ofEntry("from",S.of("from",R.INTEGER,R.LONG,R.FLOAT,R.DOUBLE).setDefaultValue(0)),y.ofEntry("to",S.of("to",R.INTEGER,R.LONG,R.FLOAT,R.DOUBLE).setDefaultValue(1)),y.ofEntry("step",S.of("step",R.INTEGER,R.LONG,R.FLOAT,R.DOUBLE).setDefaultValue(1).setNot((new S).setConstant(0)))])).setEvents(new Map([F.eventMapEntry(F.ITERATION,new Map([["index",S.of("index",R.INTEGER,R.LONG,R.FLOAT,R.DOUBLE)]])),F.outputEventMapEntry(new Map([["value",S.of("value",R.INTEGER,R.LONG,R.FLOAT,R.DOUBLE)]]))]));const qr=new W("Add").setNamespace(a.MATH).setParameters(new Map([["value",new y("value",S.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([F.outputEventMapEntry(new Map([["value",S.ofNumber("value")]]))]));const Jr=[()=>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=[R.DOUBLE]),this.parametersNumber=r,this.mathFunction=t,this.signature=new W(e).setNamespace(a.MATH).setParameters(Jr[r-1]()).setEvents(new Map([F.outputEventMapEntry(new Map([["value",(new S).setType(f.of(...n)).setName("value")]]))]))}getSignature(){return this.signature}async internalExecute(e){let t,r=Ve.findPrimitiveNumberType(e.getArguments()?.get(1==this.parametersNumber?"value":"value1")).getT2();return 2==this.parametersNumber&&(t=Ve.findPrimitiveNumberType(e.getArguments()?.get("value2")).getT2()),new $([Y.outputOf(new Map([["value",this.mathFunction.call(this,r,t)]]))])}}class Qr 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([F.outputEventMapEntry(new Map([["value",(new S).setType(f.of(R.DOUBLE)).setName("value")]]))]));constructor(){super()}getSignature(){return Qr.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get("value");return new $([Y.outputOf(new Map([["value",Math.sqrt(t.reduce(((e,t)=>e+t*t),0))]]))])}}const Kr=new W("Maximum").setNamespace(a.MATH).setParameters(new Map([["value",new y("value",S.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([F.outputEventMapEntry(new Map([["value",S.ofNumber("value")]]))]));const Zr=new W("Minimum").setNamespace(a.MATH).setParameters(new Map([["value",new y("value",S.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([F.outputEventMapEntry(new Map([["value",S.ofNumber("value")]]))]));class en extends Pe{static SIGNATURE=new W("Random").setNamespace(a.MATH).setEvents(new Map([F.outputEventMapEntry(G.of("value",S.ofDouble("value")))]));getSignature(){return en.SIGNATURE}async internalExecute(e){return new $([Y.outputOf(new Map([["value",Math.random()]]))])}}class tn extends Pe{static MIN_VALUE="minValue";static MAX_VALUE="maxValue";static VALUE="value";static SIGNATURE=new W("RandomFloat").setParameters(G.of(tn.MIN_VALUE,y.of(tn.MIN_VALUE,S.ofFloat(tn.MIN_VALUE).setDefaultValue(0)),tn.MAX_VALUE,y.of(tn.MAX_VALUE,S.ofFloat(tn.MAX_VALUE).setDefaultValue(2147483647)))).setNamespace(a.MATH).setEvents(new Map([F.outputEventMapEntry(G.of(tn.VALUE,S.ofFloat(tn.VALUE)))]));getSignature(){return tn.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(tn.MIN_VALUE),r=e.getArguments()?.get(tn.MAX_VALUE),n=Math.random()*(r-t)+t;return new $([Y.outputOf(new Map([[tn.VALUE,n]]))])}}class rn extends Pe{static MIN_VALUE="minValue";static MAX_VALUE="maxValue";static VALUE="value";static SIGNATURE=new W("RandomInt").setParameters(G.of(rn.MIN_VALUE,y.of(rn.MIN_VALUE,S.ofInteger(rn.MIN_VALUE).setDefaultValue(0)),rn.MAX_VALUE,y.of(rn.MAX_VALUE,S.ofInteger(rn.MAX_VALUE).setDefaultValue(2147483647)))).setNamespace(a.MATH).setEvents(new Map([F.outputEventMapEntry(G.of(rn.VALUE,S.ofInteger(rn.VALUE)))]));getSignature(){return rn.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(rn.MIN_VALUE),r=e.getArguments()?.get(rn.MAX_VALUE),n=Math.floor(Math.random()*(r-t)+t);return new $([Y.outputOf(new Map([[rn.VALUE,n]]))])}}const nn={Absolute:new zr("Absolute",(e=>Math.abs(e)),1,R.INTEGER,R.LONG,R.FLOAT,R.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,R.INTEGER,R.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 $([Y.outputOf(new Map([["value",t.reduce(((e,t)=>e+t),0)]]))])}},Hypotenuse:new Qr,Maximum:new class extends Pe{getSignature(){return Kr}async internalExecute(e){let t=e.getArguments()?.get("value");return new $([Y.outputOf(new Map([["value",t.reduce(((e,t)=>!e&&0!==e||t>e?t:e))]]))])}},Minimum:new class extends Pe{getSignature(){return Zr}async internalExecute(e){let t=e.getArguments()?.get("value");return new $([Y.outputOf(new Map([["value",t.reduce(((e,t)=>!e&&0!==e||t<e?t:e))]]))])}},Random:new en,RandomFloat:new tn,RandomInt:new rn};class sn{find(e,t){if(e==a.MATH)return nn[t]}}class an 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(an.PARAMETER_STRING_NAME,S.ofString(an.PARAMETER_STRING_NAME));static PARAMETER_SECOND_STRING=new y(an.PARAMETER_SECOND_STRING_NAME,S.ofString(an.PARAMETER_SECOND_STRING_NAME));static PARAMETER_THIRD_STRING=new y(an.PARAMETER_THIRD_STRING_NAME,S.ofString(an.PARAMETER_THIRD_STRING_NAME));static PARAMETER_INDEX=new y(an.PARAMETER_INDEX_NAME,S.ofInteger(an.PARAMETER_INDEX_NAME));static PARAMETER_SECOND_INDEX=new y(an.PARAMETER_SECOND_INDEX_NAME,S.ofInteger(an.PARAMETER_SECOND_INDEX_NAME));static PARAMETER_SEARCH_STRING=new y(an.PARAMETER_SEARCH_STRING_NAME,S.ofString(an.PARAMETER_STRING_NAME));static EVENT_STRING=new F(F.OUTPUT,G.of(an.EVENT_RESULT_NAME,S.ofString(an.EVENT_RESULT_NAME)));static EVENT_BOOLEAN=new F(F.OUTPUT,G.of(an.EVENT_RESULT_NAME,S.ofBoolean(an.EVENT_RESULT_NAME)));static EVENT_INT=new F(F.OUTPUT,G.of(an.EVENT_RESULT_NAME,S.ofInteger(an.EVENT_RESULT_NAME)));static EVENT_ARRAY=new F(F.OUTPUT,G.of(an.EVENT_RESULT_NAME,S.ofArray(an.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 an{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(an.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(an.PARAMETER_SEARCH_STRING_NAME);return new $([Y.outputOf(G.of(an.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,an.EVENT_BOOLEAN,an.PARAMETER_STRING,an.PARAMETER_SEARCH_STRING)]}static ofEntryAsStringAndIntegerStringOutput(e,t){return[e,new class extends an{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(an.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(an.PARAMETER_INDEX_NAME);return new $([Y.outputOf(G.of(an.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,an.EVENT_STRING,an.PARAMETER_STRING,an.PARAMETER_INDEX)]}static ofEntryAsStringIntegerOutput(e,t){return[e,new class extends an{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(an.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(an.PARAMETER_SEARCH_STRING_NAME);return new $([Y.outputOf(G.of(an.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,an.EVENT_INT,an.PARAMETER_STRING,an.PARAMETER_SEARCH_STRING)]}static ofEntryString(e,t){return[e,new class extends an{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(an.PARAMETER_STRING_NAME);return new $([Y.outputOf(G.of(an.EVENT_RESULT_NAME,t(r)))])}}(a.STRING,e,an.EVENT_STRING,an.PARAMETER_STRING)]}static ofEntryStringBooleanOutput(e,t){return[e,new class extends an{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(an.PARAMETER_STRING_NAME);return new $([Y.outputOf(G.of(an.EVENT_RESULT_NAME,t(r)))])}}(a.STRING,e,an.EVENT_BOOLEAN,an.PARAMETER_STRING)]}static ofEntryAsStringStringIntegerIntegerOutput(e,t){return[e,new class extends an{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(an.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(an.PARAMETER_SEARCH_STRING_NAME),s=e?.getArguments()?.get(an.PARAMETER_INDEX_NAME);return new $([Y.outputOf(G.of(an.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,an.EVENT_INT,an.PARAMETER_STRING,an.PARAMETER_SEARCH_STRING,an.PARAMETER_INDEX)]}static ofEntryAsStringIntegerIntegerStringOutput(e,t){return[e,new class extends an{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(an.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(an.PARAMETER_INDEX_NAME),s=e?.getArguments()?.get(an.PARAMETER_SECOND_INDEX_NAME);return new $([Y.outputOf(G.of(an.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,an.EVENT_INT,an.PARAMETER_STRING,an.PARAMETER_INDEX,an.PARAMETER_SECOND_INDEX)]}static ofEntryAsStringStringStringStringOutput(e,t){return[e,new class extends an{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(an.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(an.PARAMETER_SECOND_STRING_NAME),s=e?.getArguments()?.get(an.PARAMETER_THIRD_STRING_NAME);return new $([Y.outputOf(G.of(an.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,an.EVENT_STRING,an.PARAMETER_STRING,an.PARAMETER_SECOND_STRING,an.PARAMETER_THIRD_STRING)]}}class on extends Pe{static VALUE="value";static SCHEMA=(new S).setName(on.VALUE).setType(new N(R.STRING));static SIGNATURE=new W("Concatenate").setNamespace(a.STRING).setParameters(new Map([[on.VALUE,new y(on.VALUE,on.SCHEMA).setVariableArgument(!0)]])).setEvents(new Map([F.outputEventMapEntry(new Map([[on.VALUE,S.ofString(on.VALUE)]]))]));constructor(){super()}getSignature(){return on.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(on.VALUE),r="";return t.reduce(((e,t)=>r=e+t),r),new $([Y.outputOf(new Map([[on.VALUE,r]]))])}}class En 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(En.PARAMETER_STRING_NAME,S.ofString(En.PARAMETER_STRING_NAME));PARAMETER_AT_START=new y(En.PARAMETER_AT_START_NAME,S.ofInteger(En.PARAMETER_AT_START_NAME));PARAMETER_AT_END=new y(En.PARAMETER_AT_END_NAME,S.ofInteger(En.PARAMETER_AT_END_NAME));EVENT_STRING=new F(F.OUTPUT,new Map([[En.EVENT_RESULT_NAME,S.ofString(En.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(En.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(En.PARAMETER_AT_START_NAME),n=e?.getArguments()?.get(En.PARAMETER_AT_END_NAME);if(n>=r){let e="";return e+=t.substring(0,r),e+=t.substring(n),new $([Y.outputOf(new Map([[En.EVENT_RESULT_NAME,e.toString()]]))])}return new $([Y.outputOf(new Map([[En.EVENT_RESULT_NAME,t]]))])}}class un 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(un.PARAMETER_STRING_NAME,S.ofString(un.PARAMETER_STRING_NAME));PARAMETER_AT_POSITION=new y(un.PARAMETER_AT_POSITION_NAME,S.ofInteger(un.PARAMETER_AT_POSITION_NAME));PARAMETER_INSERT_STRING=new y(un.PARAMETER_INSERT_STRING_NAME,S.ofString(un.PARAMETER_INSERT_STRING_NAME));EVENT_STRING=new F(F.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([F.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(un.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(un.PARAMETER_AT_POSITION_NAME),n=e?.getArguments()?.get(un.PARAMETER_INSERT_STRING_NAME),s="";return s+=t.substring(0,r),s+=n,s+=t.substring(r),new $([Y.outputOf(new Map([[this.EVENT_RESULT_NAME,s]]))])}}class An 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(An.PARAMETER_STRING_NAME,S.ofString(An.PARAMETER_STRING_NAME));static PARAMETER_POSTPAD_STRING=new y(An.PARAMETER_POSTPAD_STRING_NAME,S.ofString(An.PARAMETER_POSTPAD_STRING_NAME));static PARAMETER_LENGTH=new y(An.PARAMETER_LENGTH_NAME,S.ofInteger(An.PARAMETER_LENGTH_NAME));static EVENT_STRING=new F(F.OUTPUT,new Map([[An.EVENT_RESULT_NAME,S.ofString(An.EVENT_RESULT_NAME)]]));signature=new W("PostPad").setNamespace(a.STRING).setParameters(new Map([[An.PARAMETER_STRING.getParameterName(),An.PARAMETER_STRING],[An.PARAMETER_POSTPAD_STRING.getParameterName(),An.PARAMETER_POSTPAD_STRING],[An.PARAMETER_LENGTH.getParameterName(),An.PARAMETER_LENGTH]])).setEvents(new Map([[An.EVENT_STRING.getName(),An.EVENT_STRING]]));constructor(){super()}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(An.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(An.PARAMETER_POSTPAD_STRING_NAME),n=e.getArguments()?.get(An.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 $([Y.of(An.EVENT_RESULT_NAME,new Map([[An.EVENT_RESULT_NAME,s.toString()]]))])}}class Rn extends Pe{static PARAMETER_STRING_NAME="string";static PARAMETER_PREPAD_STRING_NAME="prepadString";static PARAMETER_LENGTH_NAME="length";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new y(Rn.PARAMETER_STRING_NAME,S.ofString(Rn.PARAMETER_STRING_NAME));static PARAMETER_PREPAD_STRING=new y(Rn.PARAMETER_PREPAD_STRING_NAME,S.ofString(Rn.PARAMETER_PREPAD_STRING_NAME));static PARAMETER_LENGTH=new y(Rn.PARAMETER_LENGTH_NAME,S.ofInteger(Rn.PARAMETER_LENGTH_NAME));static EVENT_STRING=new F(F.OUTPUT,new Map([[Rn.EVENT_RESULT_NAME,S.ofString(Rn.EVENT_RESULT_NAME)]]));signature=new W("PrePad").setNamespace(a.STRING).setParameters(new Map([[Rn.PARAMETER_STRING.getParameterName(),Rn.PARAMETER_STRING],[Rn.PARAMETER_PREPAD_STRING.getParameterName(),Rn.PARAMETER_PREPAD_STRING],[Rn.PARAMETER_LENGTH.getParameterName(),Rn.PARAMETER_LENGTH]])).setEvents(new Map([[Rn.EVENT_STRING.getName(),Rn.EVENT_STRING]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(Rn.PARAMETER_STRING_NAME),r=e.getArguments()?.get(Rn.PARAMETER_PREPAD_STRING_NAME),n=e.getArguments()?.get(Rn.PARAMETER_LENGTH_NAME),s="",a=r.length;for(;a<=n;)s+=r,a+=r.length;return s.length<n&&(s+=r.substring(0,n-s.length)),s+=t,new $([Y.of(Rn.EVENT_RESULT_NAME,new Map([[Rn.EVENT_RESULT_NAME,s]]))])}}class ln 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(ln.PARAMETER_STRING_NAME,S.ofString(ln.PARAMETER_STRING_NAME));static PARAMETER_OTHER_STRING=new y(ln.PARAMETER_OTHER_STRING_NAME,S.ofString(ln.PARAMETER_OTHER_STRING_NAME));static PARAMETER_FIRST_OFFSET=new y(ln.PARAMETER_FIRST_OFFSET_NAME,S.ofInteger(ln.PARAMETER_FIRST_OFFSET_NAME));static PARAMETER_SECOND_OFFSET=new y(ln.PARAMETER_SECOND_OFFSET_NAME,S.ofInteger(ln.PARAMETER_SECOND_OFFSET_NAME));static PARAMETER_INTEGER=new y(ln.PARAMETER_INTEGER_NAME,S.ofInteger(ln.PARAMETER_INTEGER_NAME));static PARAMETER_BOOLEAN=new y(ln.PARAMETER_BOOLEAN_NAME,S.ofBoolean(ln.PARAMETER_BOOLEAN_NAME));static EVENT_BOOLEAN=new F(F.OUTPUT,new Map([[ln.EVENT_RESULT_NAME,S.ofBoolean(ln.EVENT_RESULT_NAME)]]));signature=new W("RegionMatches").setNamespace(a.STRING).setParameters(new Map([[ln.PARAMETER_STRING.getParameterName(),ln.PARAMETER_STRING],[ln.PARAMETER_BOOLEAN.getParameterName(),ln.PARAMETER_BOOLEAN],[ln.PARAMETER_FIRST_OFFSET.getParameterName(),ln.PARAMETER_FIRST_OFFSET],[ln.PARAMETER_OTHER_STRING.getParameterName(),ln.PARAMETER_OTHER_STRING],[ln.PARAMETER_SECOND_OFFSET.getParameterName(),ln.PARAMETER_SECOND_OFFSET],[ln.PARAMETER_INTEGER.getParameterName(),ln.PARAMETER_INTEGER]])).setEvents(new Map([[ln.EVENT_BOOLEAN.getName(),ln.EVENT_BOOLEAN]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(ln.PARAMETER_STRING_NAME),r=e.getArguments()?.get(ln.PARAMETER_BOOLEAN_NAME),n=e.getArguments()?.get(ln.PARAMETER_FIRST_OFFSET_NAME),s=e?.getArguments()?.get(ln.PARAMETER_OTHER_STRING_NAME),a=e?.getArguments()?.get(ln.PARAMETER_SECOND_OFFSET_NAME),i=e.getArguments()?.get(ln.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 $([Y.outputOf(new Map([[ln.EVENT_RESULT_NAME,o]]))])}}class Tn 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(Tn.PARAMETER_STRING_NAME,S.ofString(Tn.PARAMETER_STRING_NAME));static PARAMETER_AT_START=new y(Tn.PARAMETER_AT_START_NAME,S.ofInteger(Tn.PARAMETER_AT_START_NAME));static PARAMETER_AT_LENGTH=new y(Tn.PARAMETER_AT_LENGTH_NAME,S.ofInteger(Tn.PARAMETER_AT_LENGTH_NAME));static PARAMETER_REPLACE_STRING=new y(Tn.PARAMETER_REPLACE_STRING_NAME,S.ofString(Tn.PARAMETER_REPLACE_STRING_NAME));static EVENT_STRING=new F(F.OUTPUT,new Map([[Tn.EVENT_RESULT_NAME,S.ofString(Tn.EVENT_RESULT_NAME)]]));constructor(){super()}signature=new W("ReplaceAtGivenPosition").setNamespace(a.STRING).setParameters(new Map([[Tn.PARAMETER_STRING.getParameterName(),Tn.PARAMETER_STRING],[Tn.PARAMETER_AT_START.getParameterName(),Tn.PARAMETER_AT_START],[Tn.PARAMETER_AT_LENGTH.getParameterName(),Tn.PARAMETER_AT_LENGTH],[Tn.PARAMETER_REPLACE_STRING.getParameterName(),Tn.PARAMETER_REPLACE_STRING]])).setEvents(new Map([[Tn.EVENT_STRING.getName(),Tn.EVENT_STRING]]));getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(Tn.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(Tn.PARAMETER_AT_START_NAME),n=e?.getArguments()?.get(Tn.PARAMETER_AT_LENGTH_NAME),s=e?.getArguments()?.get(Tn.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 $([Y.outputOf(new Map([[Tn.EVENT_RESULT_NAME,t]]))])}}class gn 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([F.outputEventMapEntry(new Map([[this.VALUE,(new S).setType(f.of(R.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 $([Y.outputOf(G.of(this.VALUE,n))])}}class pn 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 F(F.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([F.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 $([Y.outputOf(G.of(this.EVENT_ARRAY.getName(),t.split(r)))])}}class mn 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 F(F.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 $([Y.outputOf(new Map([[this.EVENT_RESULT_NAME,r]]))])}}class hn extends Pe{static PARAMETER_STRING_NAME="string";static PARAMETER_LENGTH_NAME="length";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new y(hn.PARAMETER_STRING_NAME,S.ofString(hn.PARAMETER_STRING_NAME));static PARAMETER_LENGTH=new y(hn.PARAMETER_LENGTH_NAME,S.ofInteger(hn.PARAMETER_LENGTH_NAME));static EVENT_STRING=new F(F.OUTPUT,new Map([[hn.EVENT_RESULT_NAME,S.ofString(hn.EVENT_RESULT_NAME)]]));signature=new W("TrimTo").setNamespace(a.STRING).setParameters(new Map([[hn.PARAMETER_STRING.getParameterName(),hn.PARAMETER_STRING],[hn.PARAMETER_LENGTH.getParameterName(),hn.PARAMETER_LENGTH]])).setEvents(new Map([[hn.EVENT_STRING.getName(),hn.EVENT_STRING]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(hn.PARAMETER_STRING_NAME),r=e.getArguments()?.get(hn.PARAMETER_LENGTH_NAME);return new $([Y.of(hn.EVENT_RESULT_NAME,new Map([[hn.EVENT_RESULT_NAME,t.substring(0,r)]]))])}}class cn{static repoMap=G.ofArrayEntries(an.ofEntryString("Trim",(e=>e.trim())),an.ofEntryString("LowerCase",(e=>e.toLocaleLowerCase())),an.ofEntryString("UpperCase",(e=>e.toUpperCase())),an.ofEntryStringBooleanOutput("IsBlank",(e=>""===e.trim())),an.ofEntryStringBooleanOutput("IsEmpty",(e=>""===e)),an.ofEntryAsStringBooleanOutput("Contains",((e,t)=>-1!=e.indexOf(t))),an.ofEntryAsStringBooleanOutput("EndsWith",((e,t)=>e.endsWith(t))),an.ofEntryAsStringBooleanOutput("EqualsIgnoreCase",((e,t)=>e.toUpperCase()==t.toUpperCase())),an.ofEntryAsStringBooleanOutput("Matches",((e,t)=>new RegExp(t).test(e))),an.ofEntryAsStringIntegerOutput("IndexOf",((e,t)=>e.indexOf(t))),an.ofEntryAsStringIntegerOutput("LastIndexOf",((e,t)=>e.lastIndexOf(t))),an.ofEntryAsStringAndIntegerStringOutput("Repeat",((e,t)=>e.repeat(t))),an.ofEntryAsStringStringIntegerIntegerOutput("IndexOfWithStartPoint",((e,t,r)=>e.indexOf(t,r))),an.ofEntryAsStringStringIntegerIntegerOutput("LastIndexOfWithStartPoint",((e,t,r)=>e.lastIndexOf(t,r))),an.ofEntryAsStringStringStringStringOutput("Replace",((e,t,r)=>e)),an.ofEntryAsStringStringStringStringOutput("ReplaceFirst",((e,t,r)=>e.replace(t,r))),an.ofEntryAsStringIntegerIntegerStringOutput("SubString",((e,t,r)=>e.substring(t,r))),U(new on),U(new En),U(new un),U(new An),U(new Rn),U(new ln),U(new Tn),U(new gn),U(new pn),U(new mn),U(new hn));find(e,t){if(e==a.STRING)return cn.repoMap.get(t)}}var Nn={};t(Nn,"HybridRepository",(()=>fn));class fn{constructor(...e){this.repos=e}find(e,t){for(let r of this.repos){let n=r.find(e,t);if(n)return n}}}const _n=new Map([[a.SYSTEM_CTX,new Map([U(new class extends Pe{getSignature(){return ut}async internalExecute(e){const t=e?.getArguments()?.get("name");if(e?.getContext()?.has(t))throw new k(Q.format("Context already has an element for '$' ",t));let r=S.from(e?.getArguments()?.get("schema"));if(!r)throw new k("Schema is not supplied.");return e.getContext().set(t,new Et(r,E(r.getDefaultValue())?void 0:r.getDefaultValue())),new $([Y.outputOf(new Map)])}}),U(new class extends Pe{getSignature(){return At}async internalExecute(e){const t=e?.getArguments()?.get("name");if(!e.getContext()?.has(t))throw new k(Q.format("Context don't have an element for '$' ",t));return new $([Y.outputOf(new Map(["value",e.getContext()?.get(t)?.getElement()]))])}}),U(new class extends Pe{getSignature(){return kr}async internalExecute(e){let t=e?.getArguments()?.get("name");if(K.isNullOrBlank(t))throw new k("Empty string is not a valid name for the context element");let r=e?.getArguments()?.get("value");const n=new Pt(t),s=n.getTokens().peekLast();if(!s.getExpression().startsWith("Context")||s instanceof Pt||s instanceof Ot&&!s.getElement().toString().startsWith("Context"))throw new Ue(Q.format("The context path $ is not a valid path in context",t));for(const e of n.getOperations().toArray())if(e!=It.ARRAY_OPERATOR&&e!=It.OBJECT_OPERATOR)throw new Ue(Q.format("Expected a reference to the context location, but found an expression $",t));for(let r=0;r<n.getTokens().size();r++){let s=n.getTokens().get(r);s instanceof Pt&&n.getTokens().set(r,new Ot(t,new Hr(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(Q.format("Context doesn't have any element with name '$' ",t));if(a.isEmpty())return i.setElement(r),new $([Y.outputOf(new Map)]);let o=i.getElement(),u=a.removeLast(),A=s.removeLast(),R=A instanceof Ot?A.getElement():A.getExpression();for(E(o)&&(o=u==It.OBJECT_OPERATOR?{}:[],i.setElement(o));!a.isEmpty();)o=u==It.OBJECT_OPERATOR?this.getDataFromObject(o,R,a.peekLast()):this.getDataFromArray(o,R,a.peekLast()),u=a.removeLast(),A=s.removeLast(),R=A instanceof Ot?A.getElement():A.getExpression();return u==It.OBJECT_OPERATOR?this.putDataInObject(o,R,r):this.putDataInArray(o,R,r),new $([Y.outputOf(new Map)])}getDataFromArray(e,t,r){if(!Array.isArray(e))throw new k(Q.format("Expected an array but found $",e));const n=parseInt(t);if(isNaN(n))throw new k(Q.format("Expected an array index but found $",t));if(n<0)throw new k(Q.format("Array index is out of bound - $",t));let s=e[n];return E(s)&&(s=r==It.OBJECT_OPERATOR?{}:[],e[n]=s),s}getDataFromObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new k(Q.format("Expected an object but found $",e));let n=e[t];return E(n)&&(n=r==It.OBJECT_OPERATOR?{}:[],e[t]=n),n}putDataInArray(e,t,r){if(!Array.isArray(e))throw new k(Q.format("Expected an array but found $",e));const n=parseInt(t);if(isNaN(n))throw new k(Q.format("Expected an array index but found $",t));if(n<0)throw new k(Q.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(Q.format("Expected an object but found $",e));e[t]=r}})])],[a.SYSTEM_LOOP,new Map([U(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 $({next(){if(i)return;if(s&&a>=r||!s&&a<=r)return i=!0,Y.outputOf(new Map([["value",a]]));const e=Y.of(F.ITERATION,new Map([["index",a]]));return a+=n,e}})}}),U(new class extends Pe{getSignature(){return Wr}async internalExecute(e){let t=e.getArguments()?.get("count"),r=0;return new $({next(){if(r>=t)return Y.outputOf(new Map([["value",t]]));const e=Y.of(F.ITERATION,new Map([["index",r]]));return++r,e}})}})])],[a.SYSTEM,new Map([U(new Xr),U(new class extends Pe{getSignature(){return $r}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 k("Expect a value object");let n=r.value;return r.isExpression&&(n=new Hr(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 $([Y.outputOf(new Map)])}})])]]);class Sn extends fn{constructor(){super({find:(e,t)=>_n.get(e)?.get(t)},new sn,new cn,new it)}}var Mn={};t(Mn,"StatementExecution",(()=>In));var On={};t(On,"StatementMessage",(()=>wn));class wn{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 In{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 wn(e,t))}addDependency(e){this.dependencies.add(e)}getDepenedencies(){return this.dependencies}equals(e){if(!(e instanceof In))return!1;return e.statement.equals(this.statement)}}var Pn={};t(Pn,"ContextTokenValueExtractor",(()=>dn));class dn extends Gr{static PREFIX="Context.";constructor(e){super(),this.context=e}getValueInternal(e){let t=e.split(Gr.REGEX_DOT),r=t[1],n=r.indexOf("["),s=2;return-1!=n&&(r=t[1].substring(0,n),t[1]=t[1].substring(n),s=1),this.retrieveElementFrom(e,t,s,this.context.get(r)?.getElement())}getPrefix(){return dn.PREFIX}}var yn={};t(yn,"OutputMapTokenValueExtractor",(()=>xn));class xn extends Gr{static PREFIX="Steps.";constructor(e){super(),this.output=e}getValueInternal(e){let t=e.split(Gr.REGEX_DOT),r=1,n=this.output.get(t[r++]);if(!n||r>=t.length)return;let s=n.get(t[r++]);if(!s||r>=t.length)return;let a=s.get(t[r++]);return this.retrieveElementFrom(e,t,r,a)}getPrefix(){return xn.PREFIX}}var vn={};t(vn,"ArgumentsTokenValueExtractor",(()=>Ln));class Ln extends Gr{static PREFIX="Arguments.";constructor(e){super(),this.args=e}getValueInternal(e){let t=e.split(Gr.REGEX_DOT),r=t[1],n=r.indexOf("["),s=2;return-1!=n&&(r=t[1].substring(0,n),t[1]=t[1].substring(n),s=1),this.retrieveElementFrom(e,t,s,this.args.get(r))}getPrefix(){return Ln.PREFIX}}var Un={};t(Un,"GraphVertex",(()=>Cn));var Vn={};t(Vn,"ExecutionGraph",(()=>Gn));class Gn{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 Cn(this,e);this.nodeMap.set(e.getUniqueKey(),t)}return this.nodeMap.get(e.getUniqueKey())}getVertex(e){return this.nodeMap.get(e)}getVertexData(e){if(this.nodeMap.has(e))return this.nodeMap.get(e).getData()}getVerticesWithNoIncomingEdges(){return Array.from(this.nodeMap.values()).filter((e=>!e.hasIncomingEdges()))}isCyclic(){let e,t=new pt(this.getVerticesWithNoIncomingEdges()),r=new Set;for(;!t.isEmpty();){if(r.has(t.getFirst().getKey()))return!0;e=t.removeFirst(),r.add(e.getKey()),e.hasOutgoingEdges()&&t.addAll(Array.from(e.getOutVertices().values()).flatMap((e=>Array.from(e))))}return!1}addVertices(e){for(const t of e)this.addVertex(t)}getNodeMap(){return this.nodeMap}isSubGraph(){return this.isSubGrph}toString(){return"Execution Graph : \n"+Array.from(this.nodeMap.values()).map((e=>e.toString())).join("\n")}}class Cn{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 te(this,e)),t}addInEdgeTo(e,t){return this.inVertices.add(new te(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 Gn(!0);var r=new pt(Array.from(this.outVertices.get(e)??[]));for(r.map((e=>e.getData())).forEach((e=>t.addVertex(e)));!r.isEmpty();){var n=r.pop();Array.from(n.outVertices.values()).flatMap((e=>Array.from(e))).forEach((e=>{t.addVertex(e.getData()),r.add(e)}))}return t}toString(){var e=Array.from(this.getInVertices()).map((e=>e.getT1().getKey()+"("+e.getT2()+")")).join(", "),t=Array.from(this.outVertices.entries()).map((([e,t])=>e+": "+Array.from(t).map((e=>e.getKey())).join(","))).join("\n\t\t");return this.getKey()+":\n\tIn: "+e+"\n\tOut: \n\t\t"+t}}var Dn={};t(Dn,"KIRuntime",(()=>Jn));var bn={};t(bn,"JsonExpression",(()=>Fn));class Fn{constructor(e){this.expression=e}getExpression(){return this.expression}}var Yn={};let Bn;var Hn;t(Yn,"ParameterReferenceType",(()=>Bn)),(Hn=Bn||(Bn={})).VALUE="VALUE",Hn.EXPRESSION="EXPRESSION";var kn={};function $n(){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(kn,"FunctionExecutionParameters",(()=>Xn));class Xn{count=0;valueExtractors=new Map;constructor(e,t,r){this.functionRepository=e,this.schemaRepository=t,this.executionId=r??$n()}getExecutionId(){return this.executionId}getContext(){return this.context}setContext(e){this.context=e;let t=new dn(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 xn(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 Wn={};let jn;var qn;t(Wn,"StatementMessageType",(()=>jn)),(qn=jn||(jn={})).ERROR="ERROR",qn.WARNING="WARNING",qn.MESSAGE="MESSAGE";class Jn 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()>Jn.VERSION)throw new k("Runtime is at a lower version "+Jn.VERSION+" and trying to run code from version "+this.fd.getVersion()+".")}getSignature(){return this.fd}async getExecutionPlan(e){let t=new Gn;for(let r of Array.from(this.fd.getSteps().values()))t.addVertex(this.prepareStatementExecution(r,e.getFunctionRepository(),e.getSchemaRepository()));return new te(this.makeEdges(t),t)}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 Ln(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);this.debugMode&&console.log(`EID: ${e.getExecutionId()} ${t.getT2()?.toString()}`);let r=t.getT1();if(this.debugMode&&r.length&&(console.log(`EID: ${e.getExecutionId()} Unresolved Dependencies: `),console.log(`EID: ${e.getExecutionId()} `,r.map((e=>Q.format("Steps.$.$",e.getT1(),e.getT2()))))),r.length)throw new k(Q.format("Found these unresolved dependencies : $ ",r.map((e=>Q.format("Steps.$.$",e.getT1(),e.getT2())))));let n=t.getT2().getVerticesData().filter((e=>e.getMessages().length)).map((e=>e.getStatement().getStatementName()+": \n"+e.getMessages().join(",")));if(n?.length)throw new k("Please fix the errors in the function definition before execution : \n"+n.join(",\n"));return await this.executeGraph(t.getT2(),e)}async executeGraph(e,t){let r=new pt;r.addAll(e.getVerticesWithNoIncomingEdges());let n=new pt;for(;!(r.isEmpty()&&n.isEmpty()||t.getEvents()?.has(F.OUTPUT));)if(await this.processBranchQue(t,r,n),await this.processExecutionQue(t,r,n),t.setCount(t.getCount()+1),t.getCount()==Jn.MAX_EXECUTION_ITERATIONS)throw new k("Execution locked in an infinite loop");if(!e.isSubGraph()&&!t.getEvents()?.size)throw new k("No events raised");return new $(Array.from(t.getEvents()?.entries()??[]).flatMap((e=>e[1].map((t=>Y.of(e[0],t))))))}async processExecutionQue(e,t,r){if(!t.isEmpty()){let n=t.pop();await this.allDependenciesResolvedVertex(n,e.getSteps())?await this.executeVertex(n,e,r,t,e.getFunctionRepository()):t.add(n)}}async processBranchQue(e,t,r){if(r.length){let n=r.pop();await this.allDependenciesResolvedTuples(n.getT2(),e.getSteps())?await this.executeBranch(e,t,n):r.add(n)}}async executeBranch(e,t,r){let n,s=r.getT4();do{if(await this.executeGraph(r.getT1(),e),n=r.getT3().next(),n&&(e.getSteps()?.has(s.getData().getStatement().getStatementName())||e.getSteps()?.set(s.getData().getStatement().getStatementName(),new Map),e.getSteps()?.get(s.getData().getStatement().getStatementName())?.set(n.getName(),this.resolveInternalExpressions(n.getResult(),e)),this.debugMode)){const t=s.getData().getStatement();console.log(`EID: ${e.getExecutionId()} Step : ${t.getStatementName()} => ${t.getNamespace()}.${t.getName()}`),console.log(`EID: ${e.getExecutionId()} Event : ${n.getName()} : `,e.getSteps().get(t.getStatementName()).get(n.getName()))}}while(n&&n.getName()!=F.OUTPUT);n?.getName()==F.OUTPUT&&s.getOutVertices().has(F.OUTPUT)&&(s?.getOutVertices()?.get(F.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(Q.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 Jn?new Xn(t.getFunctionRepository(),t.getSchemaRepository(),`${t.getExecutionId()}_${a.getStatementName()}`).setArguments(E).setValuesMap(new Map(Array.from(t.getValuesMap().values()).filter((e=>e.getPrefix()!==Ln.PREFIX&&e.getPrefix()!==xn.PREFIX&&e.getPrefix()!==dn.PREFIX)).map((e=>[e.getPrefix(),e])))):new Xn(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 R=await i.execute(u),l=R.next();if(!l)throw new k(Q.format("Executing $ returned no events",a.getStatementName()));let T=l.getName()==F.OUTPUT;if(t.getSteps()?.has(a.getStatementName())||t.getSteps().set(a.getStatementName(),new Map),t.getSteps().get(a.getStatementName()).set(l.getName(),this.resolveInternalExpressions(l.getResult(),t)),this.debugMode&&(console.log(`EID: ${t.getExecutionId()} Step : ${a.getStatementName()} => ${a.getNamespace()}.${a.getName()}`),console.log(`EID: ${t.getExecutionId()} Event : ${l.getName()} : `,t.getSteps().get(a.getStatementName()).get(l.getName()))),T){let r=e.getOutVertices().get(F.OUTPUT);r&&r.forEach((async e=>{await this.allDependenciesResolvedVertex(e,t.getSteps())&&n.add(e)}))}else{let t=e.getSubGraphOfType(l.getName()),n=this.makeEdges(t);r.push(new ne(t,n,R,e))}}resolveInternalExpressions(e,t){return e?Array.from(e.entries()).map((e=>new te(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 Fn){return new Hr(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 te(t[0],n);let a=r.get(t[0]);return a?(n=a.isVariableArgument()?s.map((t=>this.parameterReferenceEvaluation(e,t))).flatMap((e=>Array.isArray(e)?e:[e])):this.parameterReferenceEvaluation(e,s[0]),new te(t[0],n)):new te(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()==Bn.VALUE)r=this.resolveInternalExpression(t.getValue(),e);else if(t.getType()==Bn.EXPRESSION&&!K.isNullOrBlank(t.getExpression())){r=new Hr(t.getExpression()??"").evaluate(e.getValuesMap())}return r}prepareStatementExecution(e,t,r){let n=new In(e),s=t.find(e.getNamespace(),e.getName());if(!s)throw new k(Q.format("$.$ was not available",e.getNamespace(),e.getName()));let a=new Map(s.getSignature().getParameters());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())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 E(ie.getDefaultValue(e.getSchema(),r))&&n.addMessage(jn.ERROR,Q.format(Jn.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()||E(ie.getDefaultValue(e.getSchema(),r))&&n.addMessage(jn.ERROR,Q.format(Jn.PARAMETER_NEEDS_A_VALUE,e.getParameterName()));return n}parameterReferenceValidation(e,t,r,n){if(r){if(r.getType()==Bn.VALUE){E(r.getValue())&&E(ie.getDefaultValue(t.getSchema(),n))&&e.addMessage(jn.ERROR,Q.format(Jn.PARAMETER_NEEDS_A_VALUE,t.getParameterName()));let s=new pt;for(s.push(new te(t.getSchema(),r.getValue()));!s.isEmpty();){let t=s.pop();if(t.getT2()instanceof Fn)this.addDependencies(e,t.getT2().getExpression());else{if(E(t.getT1())||E(t.getT1().getType()))continue;if(t.getT1().getType()?.contains(R.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 te(e.getSingleSchema(),r));else{let r=t.getT2();for(let t=0;t<r.length;t++)s.push(new te(e.getTupleSchema()[t],r[t]))}}else if(t.getT1().getType()?.contains(R.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 te(r.getProperties().get(e[0]),e[1]))}}}}else if(r.getType()==Bn.EXPRESSION)if(K.isNullOrBlank(r.getExpression()))E(ie.getDefaultValue(t.getSchema(),n))&&e.addMessage(jn.ERROR,Q.format(Jn.PARAMETER_NEEDS_A_VALUE,t.getParameterName()));else try{this.addDependencies(e,r.getExpression())}catch(t){e.addMessage(jn.ERROR,Q.format("Error evaluating $ : $",r.getExpression(),t))}}else E(ie.getDefaultValue(t.getSchema(),n))&&e.addMessage(jn.ERROR,Q.format(Jn.PARAMETER_NEEDS_A_VALUE,t.getParameterName()))}addDependencies(e,t){t&&Array.from(t.match(Jn.STEP_REGEX_PATTERN)??[]).forEach((t=>e.addDependency(t)))}makeEdges(e){let t=e.getNodeMap().values(),r=[];for(let n of Array.from(t))for(let t of n.getData().getDependencies()){let s=t.indexOf(".",6),a=t.substring(6,s),i=t.indexOf(".",s+1),o=-1==i?t.substring(s+1):t.substring(s+1,i);e.getNodeMap().has(a)||r.push(new te(a,o));let E=e.getNodeMap().get(a);E&&n.addInEdgeTo(E,o)}return r}}var zn={};t(zn,"KIRunConstants",(()=>Qn));class Qn{static NAMESPACE="namespace";static NAME="name";static ID="id";constructor(){}}var Kn={};t(Kn,"Position",(()=>Zn));class Zn{static SCHEMA_NAME="Position";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(Zn.SCHEMA_NAME).setType(f.of(R.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){return e?new Zn(e.left,e.top):new Zn(-1,-1)}}var es={};t(es,"FunctionDefinition",(()=>As));var ts={};t(ts,"Statement",(()=>is));var rs={};t(rs,"AbstractStatement",(()=>ns));class ns{override=!1;constructor(e){e&&(this.comment=e.comment,this.description=e.description,this.position=e.position?new Zn(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 ss={};t(ss,"ParameterReference",(()=>as));class as{static SCHEMA_NAME="ParameterReference";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(as.SCHEMA_NAME).setType(f.of(R.OBJECT)).setProperties(new Map([["key",S.ofString("key")],["value",S.ofAny("value")],["expression",S.ofString("expression")],["type",S.ofString("type").setEnums(["EXPRESSION","VALUE"])]]));constructor(e){if(e instanceof as){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}else this.type=e,this.key=$n()}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}static ofExpression(e){const t=new as(Bn.EXPRESSION).setExpression(e);return[t.getKey(),t]}static ofValue(e){const t=new as(Bn.VALUE).setValue(e);return[t.getKey(),t]}static from(e){return new as(e.type).setValue(e.value).setExpression(e.expression).setKey(e.key)}}class is extends ns{static SCHEMA_NAME="Statement";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(is.SCHEMA_NAME).setType(f.of(R.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(as.SCHEMA))))],["position",Zn.SCHEMA]]));constructor(e,t,r){if(super(e instanceof is?e:void 0),e instanceof is){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 as(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 is))return!1;return e.statementName==this.statementName}static ofEntry(e){return[e.statementName,e]}static from(e){return new is(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])=>as.from(t))).map((e=>[e.getKey(),e])))])))).setDependentStatements(new Map(Object.entries(e.dependentStatements??{}))).setPosition(Zn.from(e.position)).setComment(e.comment).setDescription(e.description)}}var os={};t(os,"StatementGroup",(()=>Es));class Es extends ns{static SCHEMA_NAME="StatementGroup";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(Es.SCHEMA_NAME).setType(f.of(R.OBJECT)).setProperties(new Map([["statementGroupName",S.ofString("statementGroupName")],["comment",S.ofString("comment")],["description",S.ofString("description")],["position",Zn.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 Es(e.statementGroupName,new Map(Object.entries(e.statements||{}).map((([e,t])=>[e,"true"==(""+t)?.toLowerCase()])))).setPosition(Zn.from(e.position)).setComment(e.comment).setDescription(e.description)}}const us=(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(F.SCHEMA))],["steps",S.ofObject("steps").setAdditionalProperties((new _).setSchemaValue(is.SCHEMA))]]));us.getProperties()?.set("parts",S.ofArray("parts",us));class As extends W{static SCHEMA=us;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 As(e.name).setSteps(new Map(Object.values(e.steps??{}).filter((e=>!!e)).map((e=>[e.statementName,is.from(e)])))).setStepGroups(new Map(Object.values(e.stepGroups??{}).filter((e=>!!e)).map((e=>[e.statementGroupName,Es.from(e)])))).setParts(Array.from(e.parts??[]).filter((e=>!!e)).map((e=>As.from(e)))).setVersion(e.version??1).setEvents(new Map(Object.values(e.events??{}).filter((e=>!!e)).map((e=>[e.name,F.from(e)])))).setParameters(new Map(Object.values(e.parameters??{}).filter((e=>!!e)).map((e=>[e.parameterName,y.from(e)])))):new As("unknown")}}var Rs={};t(Rs,"Argument",(()=>ls));class ls{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 ls(0,e,t)}}var Ts={};e(Ts,Mr),e(Ts,Pr),e(Ts,yr),e(Ts,vr),e(Ts,Or);var gs={};e(gs,Ut),e(gs,Gt),e(gs,Dt),e(gs,Ft),e(gs,Bt),e(gs,kt),e(gs,Xt),e(gs,xt),e(gs,jt),e(gs,Jt),e(gs,Qt),e(gs,Zt),e(gs,tr),e(gs,nr),e(gs,ar),e(gs,or),e(gs,ur),e(gs,Rr),e(gs,Tr),e(gs,hr),e(gs,pr),e(gs,Nr),e(gs,_r),e(gs,yt),e(module.exports,r),e(module.exports,L),e(module.exports,{}),e(module.exports,ve),e(module.exports,V),e(module.exports,o),e(module.exports,lt),e(module.exports,ht),e(module.exports,z),e(module.exports,J),e(module.exports,ee),e(module.exports,Ce),e(module.exports,Tt),e(module.exports,Mn),e(module.exports,On),e(module.exports,ot),e(module.exports,Pn),e(module.exports,yn),e(module.exports,vn),e(module.exports,Un),e(module.exports,{}),e(module.exports,Vn),e(module.exports,Dn),e(module.exports,Wn),e(module.exports,kn),e(module.exports,Rt),e(module.exports,Vr),e(module.exports,Ur),e(module.exports,dt),e(module.exports,wt),e(module.exports,_t),e(module.exports,Nt),e(module.exports,Mt),e(module.exports,{}),e(module.exports,j),e(module.exports,s),e(module.exports,bn),e(module.exports,n),e(module.exports,me),e(module.exports,le),e(module.exports,ge),e(module.exports,Ae),e(module.exports,oe),e(module.exports,fe),e(module.exports,ce),e(module.exports,q),e(module.exports,se),e(module.exports,O),e(module.exports,ue),e(module.exports,i),e(module.exports,c),e(module.exports,T),e(module.exports,g),e(module.exports,p),e(module.exports,A),e(module.exports,Z),e(module.exports,_e),e(module.exports,Nn),e(module.exports,zn),e(module.exports,M),e(module.exports,B),e(module.exports,Kn),e(module.exports,es),e(module.exports,Yn),e(module.exports,D),e(module.exports,rs),e(module.exports,ts),e(module.exports,{}),e(module.exports,os),e(module.exports,X),e(module.exports,b),e(module.exports,I),e(module.exports,Rs),e(module.exports,ss),e(module.exports,Le),e(module.exports,H),e(module.exports,Ts),e(module.exports,gs),e(module.exports,br);
2
2
  //# sourceMappingURL=index.js.map