@fincity/kirun-js 1.8.0 → 1.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function e(e,t){return Object.keys(t).forEach((function(r){"default"===r||"__esModule"===r||e.hasOwnProperty(r)||Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[r]}})})),e}function t(e,t,r,n){Object.defineProperty(e,t,{get:r,set:n,enumerable:!0,configurable:!0})}var r={};t(r,"KIRunSchemaRepository",(()=>L));var n={};t(n,"AdditionalType",(()=>_)),t(n,"Schema",(()=>S));var s={};t(s,"Namespaces",(()=>a));class a{static SYSTEM="System";static SYSTEM_CTX="System.Context";static SYSTEM_LOOP="System.Loop";static SYSTEM_ARRAY="System.Array";static SYSTEM_OBJECT="System.Object";static MATH="System.Math";static STRING="System.String";constructor(){}}var i={};t(i,"ArraySchemaType",(()=>u));var o={};function E(e){return null==e}t(o,"isNullValue",(()=>E));class u{constructor(e){e&&(this.singleSchema=e.singleSchema?new S(e.singleSchema):void 0,this.tupleSchema=e.tupleSchema?e.tupleSchema.map((e=>new S(e))):void 0)}setSingleSchema(e){return this.singleSchema=e,this}setTupleSchema(e){return this.tupleSchema=e,this}getSingleSchema(){return this.singleSchema}getTupleSchema(){return this.tupleSchema}isSingleType(){return!E(this.singleSchema)}static of(...e){return 1==e.length?(new u).setSingleSchema(e[0]):(new u).setTupleSchema(e)}static from(e){if(!e)return;if(Array.isArray(e))return(new u).setTupleSchema(S.fromListOfSchemas(e));let t=Object.keys(e);if(-1!=t.indexOf("singleSchema"))return(new u).setSingleSchema(S.from(e.singleSchema));if(-1!=t.indexOf("tupleSchema"))return(new u).setTupleSchema(S.fromListOfSchemas(e.tupleSchema));let r=S.from(e);return r?(new u).setSingleSchema(r):void 0}}var A={};let l;var g;t(A,"SchemaType",(()=>l)),(g=l||(l={})).INTEGER="Integer",g.LONG="Long",g.FLOAT="Float",g.DOUBLE="Double",g.STRING="String",g.OBJECT="Object",g.ARRAY="Array",g.BOOLEAN="Boolean",g.NULL="Null";var m={};t(m,"TypeUtil",(()=>f));var R={};t(R,"MultipleType",(()=>T));var c={};t(c,"Type",(()=>p));class p{}class T extends p{constructor(e){super(),this.type=e instanceof T?new Set(Array.from(e.type)):new Set(Array.from(e))}getType(){return this.type}setType(e){return this.type=e,this}getAllowedSchemaTypes(){return this.type}contains(e){return this.type?.has(e)}}var h={};t(h,"SingleType",(()=>N));class N extends p{constructor(e){super(),this.type=e instanceof N?e.type:e}getType(){return this.type}getAllowedSchemaTypes(){return new Set([this.type])}contains(e){return this.type==e}}class f{static of(...e){return 1==e.length?new N(e[0]):new T(new Set(e))}static from(e){return"string"==typeof e?new N(l[e]):Array.isArray(e)?new T(new Set(e.map((e=>e)).map((e=>l[e])))):void 0}}class _{constructor(e){e&&(this.booleanValue=e.booleanValue,e.schemaValue&&(this.schemaValue=new S(e.schemaValue)))}getBooleanValue(){return this.booleanValue}getSchemaValue(){return this.schemaValue}setBooleanValue(e){return this.booleanValue=e,this}setSchemaValue(e){return this.schemaValue=e,this}static from(e){if(E(e))return;const t=new _;if("boolean"==typeof e)t.booleanValue=e;else{let r=Object.keys(e);-1!=r.indexOf("booleanValue")?t.booleanValue=e.booleanValue:-1!=r.indexOf("schemaValue")?t.schemaValue=S.from(e.schemaValue):t.schemaValue=S.from(e)}return t}}class S{static NULL=(new S).setNamespace(a.SYSTEM).setName("Null").setType(f.of(l.NULL)).setConstant(void 0);static TYPE_SCHEMA=(new S).setType(f.of(l.STRING)).setEnums(["INTEGER","LONG","FLOAT","DOUBLE","STRING","OBJECT","ARRAY","BOOLEAN","NULL"]);static SCHEMA=(new S).setNamespace(a.SYSTEM).setName("Schema").setType(f.of(l.OBJECT)).setProperties(new Map([["namespace",S.of("namespace",l.STRING).setDefaultValue("_")],["name",S.ofString("name")],["version",S.of("version",l.INTEGER).setDefaultValue(1)],["ref",S.ofString("ref")],["type",(new S).setAnyOf([S.TYPE_SCHEMA,S.ofArray("type",S.TYPE_SCHEMA)])],["anyOf",S.ofArray("anyOf",S.ofRef("System.Schema"))],["allOf",S.ofArray("allOf",S.ofRef("System.Schema"))],["oneOf",S.ofArray("oneOf",S.ofRef("System.Schema"))],["not",S.ofRef("System.Schema")],["title",S.ofString("title")],["description",S.ofString("description")],["id",S.ofString("id")],["examples",S.ofAny("examples")],["defaultValue",S.ofAny("defaultValue")],["comment",S.ofString("comment")],["enums",S.ofArray("enums",S.ofString("enums"))],["constant",S.ofAny("constant")],["pattern",S.ofString("pattern")],["format",S.of("format",l.STRING).setEnums(["DATETIME","TIME","DATE","EMAIL","REGEX"])],["minLength",S.ofInteger("minLength")],["maxLength",S.ofInteger("maxLength")],["multipleOf",S.ofLong("multipleOf")],["minimum",S.ofNumber("minimum")],["maximum",S.ofNumber("maximum")],["exclusiveMinimum",S.ofNumber("exclusiveMinimum")],["exclusiveMaximum",S.ofNumber("exclusiveMaximum")],["properties",S.of("properties",l.OBJECT).setAdditionalProperties((new _).setSchemaValue(S.ofRef("System.Schema")))],["additionalProperties",(new S).setName("additionalProperty").setNamespace(a.SYSTEM).setAnyOf([S.ofBoolean("additionalProperty"),S.ofObject("additionalProperty").setRef("System.Schema")]).setDefaultValue(!0)],["required",S.ofArray("required",S.ofString("required")).setDefaultValue([])],["propertyNames",S.ofRef("System.Schema")],["minProperties",S.ofInteger("minProperties")],["maxProperties",S.ofInteger("maxProperties")],["patternProperties",S.of("patternProperties",l.OBJECT).setAdditionalProperties((new _).setSchemaValue(S.ofRef("System.Schema")))],["items",(new S).setName("items").setAnyOf([S.ofRef("System.Schema").setName("item"),S.ofArray("tuple",S.ofRef("System.Schema"))])],["contains",S.ofRef("System.Schema")],["minContains",S.ofInteger("minContains")],["maxContains",S.ofInteger("maxContains")],["minItems",S.ofInteger("minItems")],["maxItems",S.ofInteger("maxItems")],["uniqueItems",S.ofBoolean("uniqueItems")],["additionalItems",(new S).setName("additionalItems").setNamespace(a.SYSTEM).setAnyOf([S.ofBoolean("additionalItems"),S.ofObject("additionalItems").setRef("System.Schema")])],["$defs",S.of("$defs",l.OBJECT).setAdditionalProperties((new _).setSchemaValue(S.ofRef("System.Schema")))],["permission",S.ofString("permission")]])).setRequired([]);static ofString(e){return(new S).setType(f.of(l.STRING)).setName(e)}static ofInteger(e){return(new S).setType(f.of(l.INTEGER)).setName(e)}static ofFloat(e){return(new S).setType(f.of(l.FLOAT)).setName(e)}static ofLong(e){return(new S).setType(f.of(l.LONG)).setName(e)}static ofDouble(e){return(new S).setType(f.of(l.DOUBLE)).setName(e)}static ofAny(e){return(new S).setType(f.of(l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE,l.STRING,l.BOOLEAN,l.ARRAY,l.NULL,l.OBJECT)).setName(e)}static ofAnyNotNull(e){return(new S).setType(f.of(l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE,l.STRING,l.BOOLEAN,l.ARRAY,l.OBJECT)).setName(e)}static ofNumber(e){return(new S).setType(f.of(l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE)).setName(e)}static ofBoolean(e){return(new S).setType(f.of(l.BOOLEAN)).setName(e)}static of(e,...t){return(new S).setType(f.of(...t)).setName(e)}static ofObject(e){return(new S).setType(f.of(l.OBJECT)).setName(e)}static ofRef(e){return(new S).setRef(e)}static ofArray(e,...t){return(new S).setType(f.of(l.ARRAY)).setName(e).setItems(u.of(...t))}static fromListOfSchemas(e){if(E(e)&&!Array.isArray(e))return;let t=[];for(let r of Array.from(e)){let e=S.from(r);e&&t.push(e)}return t}static fromMapOfSchemas(e){if(E(e))return;const t=new Map;return Object.entries(e).forEach((([e,r])=>{let n=S.from(r);n&&t.set(e,n)})),t}static from(e,t=!1){if(E(e))return;let r=new S;return r.namespace=e.namespace??"_",r.name=e.name,r.version=e.version??1,r.ref=e.ref,r.type=t?new N(l.STRING):f.from(e.type),r.anyOf=S.fromListOfSchemas(e.anyOf),r.allOf=S.fromListOfSchemas(e.allOf),r.oneOf=S.fromListOfSchemas(e.oneOf),r.not=S.from(e.not),r.description=e.description,r.examples=e.examples?[...e.examples]:void 0,r.defaultValue=e.defaultValue,r.comment=e.comment,r.enums=e.enums?[...e.enums]:void 0,r.constant=e.constant,r.pattern=e.pattern,r.format=e.format,r.minLength=e.minLength,r.maxLength=e.maxLength,r.multipleOf=e.multipleOf,r.minimum=e.minimum,r.maximum=e.maximum,r.exclusiveMinimum=e.exclusiveMinimum,r.exclusiveMaximum=e.exclusiveMaximum,r.properties=S.fromMapOfSchemas(e.properties),r.additionalProperties=_.from(e.additionalProperties),r.required=e.required,r.propertyNames=S.from(e.propertyNames,!0),r.minProperties=e.minProperties,r.maxProperties=e.maxProperties,r.patternProperties=S.fromMapOfSchemas(e.patternProperties),r.items=u.from(e.items),r.additionalItems=_.from(e.additionalItems),r.contains=S.from(e.contains),r.minContains=e.minContains,r.maxContains=e.maxContains,r.minItems=e.minItems,r.maxItems=e.maxItems,r.uniqueItems=e.uniqueItems,r.$defs=S.fromMapOfSchemas(e.$defs),r.permission=e.permission,r}namespace="_";version=1;constructor(e){e&&(this.namespace=e.namespace,this.name=e.name,this.version=e.version,this.ref=e.ref,this.type=e.type instanceof N?new N(e.type):new T(e.type),this.anyOf=e.anyOf?.map((e=>new S(e))),this.allOf=e.allOf?.map((e=>new S(e))),this.oneOf=e.oneOf?.map((e=>new S(e))),this.not=this.not?new S(this.not):void 0,this.description=e.description,this.examples=e.examples?JSON.parse(JSON.stringify(e.examples)):void 0,this.defaultValue=e.defaultValue?JSON.parse(JSON.stringify(e.defaultValue)):void 0,this.comment=e.comment,this.enums=e.enums?[...e.enums]:void 0,this.constant=e.constant?JSON.parse(JSON.stringify(e.constant)):void 0,this.pattern=e.pattern,this.format=e.format,this.minLength=e.minLength,this.maxLength=e.maxLength,this.multipleOf=e.multipleOf,this.minimum=e.minimum,this.maximum=e.maximum,this.exclusiveMinimum=e.exclusiveMinimum,this.exclusiveMaximum=e.exclusiveMaximum,this.properties=e.properties?new Map(Array.from(e.properties.entries()).map((e=>[e[0],new S(e[1])]))):void 0,this.additionalProperties=e.additionalProperties?new _(e.additionalProperties):void 0,this.required=e.required?[...e.required]:void 0,this.propertyNames=e.propertyNames?new S(e.propertyNames):void 0,this.minProperties=e.minProperties,this.maxProperties=e.maxProperties,this.patternProperties=e.patternProperties?new Map(Array.from(e.patternProperties.entries()).map((e=>[e[0],new S(e[1])]))):void 0,this.items=e.items?new u(e.items):void 0,this.contains=e.contains?new S(this.contains):void 0,this.minContains=e.minContains,this.maxContains=e.maxContains,this.minItems=e.minItems,this.maxItems=e.maxItems,this.uniqueItems=e.uniqueItems,this.additionalItems=e.additionalItems?new _(e.additionalItems):void 0,this.$defs=e.$defs?new Map(Array.from(e.$defs.entries()).map((e=>[e[0],new S(e[1])]))):void 0,this.permission=e.permission)}getTitle(){return this.namespace&&"_"!=this.namespace?this.namespace+"."+this.name:this.name}getFullName(){return this.namespace+"."+this.name}get$defs(){return this.$defs}set$defs(e){return this.$defs=e,this}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getVersion(){return this.version}setVersion(e){return this.version=e,this}getRef(){return this.ref}setRef(e){return this.ref=e,this}getType(){return this.type}setType(e){return this.type=e,this}getAnyOf(){return this.anyOf}setAnyOf(e){return this.anyOf=e,this}getAllOf(){return this.allOf}setAllOf(e){return this.allOf=e,this}getOneOf(){return this.oneOf}setOneOf(e){return this.oneOf=e,this}getNot(){return this.not}setNot(e){return this.not=e,this}getDescription(){return this.description}setDescription(e){return this.description=e,this}getExamples(){return this.examples}setExamples(e){return this.examples=e,this}getDefaultValue(){return this.defaultValue}setDefaultValue(e){return this.defaultValue=e,this}getComment(){return this.comment}setComment(e){return this.comment=e,this}getEnums(){return this.enums}setEnums(e){return this.enums=e,this}getConstant(){return this.constant}setConstant(e){return this.constant=e,this}getPattern(){return this.pattern}setPattern(e){return this.pattern=e,this}getFormat(){return this.format}setFormat(e){return this.format=e,this}getMinLength(){return this.minLength}setMinLength(e){return this.minLength=e,this}getMaxLength(){return this.maxLength}setMaxLength(e){return this.maxLength=e,this}getMultipleOf(){return this.multipleOf}setMultipleOf(e){return this.multipleOf=e,this}getMinimum(){return this.minimum}setMinimum(e){return this.minimum=e,this}getMaximum(){return this.maximum}setMaximum(e){return this.maximum=e,this}getExclusiveMinimum(){return this.exclusiveMinimum}setExclusiveMinimum(e){return this.exclusiveMinimum=e,this}getExclusiveMaximum(){return this.exclusiveMaximum}setExclusiveMaximum(e){return this.exclusiveMaximum=e,this}getProperties(){return this.properties}setProperties(e){return this.properties=e,this}getAdditionalProperties(){return this.additionalProperties}setAdditionalProperties(e){return this.additionalProperties=e,this}getAdditionalItems(){return this.additionalItems}setAdditionalItems(e){return this.additionalItems=e,this}getRequired(){return this.required}setRequired(e){return this.required=e,this}getPropertyNames(){return this.propertyNames}setPropertyNames(e){return this.propertyNames=e,this.propertyNames.type=new N(l.STRING),this}getMinProperties(){return this.minProperties}setMinProperties(e){return this.minProperties=e,this}getMaxProperties(){return this.maxProperties}setMaxProperties(e){return this.maxProperties=e,this}getPatternProperties(){return this.patternProperties}setPatternProperties(e){return this.patternProperties=e,this}getItems(){return this.items}setItems(e){return this.items=e,this}getContains(){return this.contains}setContains(e){return this.contains=e,this}getMinContains(){return this.minContains}setMinContains(e){return this.minContains=e,this}getMaxContains(){return this.maxContains}setMaxContains(e){return this.maxContains=e,this}getMinItems(){return this.minItems}setMinItems(e){return this.minItems=e,this}getMaxItems(){return this.maxItems}setMaxItems(e){return this.maxItems=e,this}getUniqueItems(){return this.uniqueItems}setUniqueItems(e){return this.uniqueItems=e,this}getPermission(){return this.permission}setPermission(e){return this.permission=e,this}}var M={};t(M,"Parameter",(()=>y));var O={};t(O,"SchemaReferenceException",(()=>w));class w extends Error{constructor(e,t,r){super(e.trim()?e+"-"+t:t),this.schemaPath=e,this.cause=r}getSchemaPath(){return this.schemaPath}getCause(){return this.cause}}var d={};let I;var P;t(d,"ParameterType",(()=>I)),(P=I||(I={})).CONSTANT="CONSTANT",P.EXPRESSION="EXPRESSION";class y{static SCHEMA_NAME="Parameter";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(y.SCHEMA_NAME).setProperties(new Map([["schema",S.SCHEMA],["parameterName",S.ofString("parameterName")],["variableArgument",S.of("variableArgument",l.BOOLEAN).setDefaultValue(!1)],["type",S.ofString("type").setEnums(["EXPRESSION","CONSTANT"])]]));static EXPRESSION=(new S).setNamespace(a.SYSTEM).setName("ParameterExpression").setType(f.of(l.OBJECT)).setProperties(new Map([["isExpression",S.ofBoolean("isExpression").setDefaultValue(!0)],["value",S.ofAny("value")]]));variableArgument=!1;type=I.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=I.EXPRESSION){return[e,new y(e,t).setType(n).setVariableArgument(r)]}static of(e,t,r=!1,n=I.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??I.EXPRESSION)}}const x=new Map([["any",S.ofAny("any").setNamespace(a.SYSTEM)],["boolean",S.ofBoolean("boolean").setNamespace(a.SYSTEM)],["double",S.ofDouble("double").setNamespace(a.SYSTEM)],["float",S.ofFloat("float").setNamespace(a.SYSTEM)],["integer",S.ofInteger("integer").setNamespace(a.SYSTEM)],["long",S.ofLong("long").setNamespace(a.SYSTEM)],["number",S.ofNumber("number").setNamespace(a.SYSTEM)],["string",S.ofString("string").setNamespace(a.SYSTEM)],[y.EXPRESSION.getName(),y.EXPRESSION],[S.NULL.getName(),S.NULL],[S.SCHEMA.getName(),S.SCHEMA]]),v=Array.from(x.values()).map((e=>e.getFullName()));class L{find(e,t){if(a.SYSTEM==e)return x.get(t)}filter(e){return v.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}var U={};function V(e){return[e.getSignature().getName(),e]}t(U,"KIRunFunctionRepository",(()=>Yn));var C={};t(C,"MapUtil",(()=>G)),t(C,"MapEntry",(()=>b));class G{static of(e,t,r,n,s,a,i,o,u,A,l,g,m,R,c,p,T,h,N,f){const _=new Map;return E(e)||E(t)||_.set(e,t),E(r)||E(n)||_.set(r,n),E(s)||E(a)||_.set(s,a),E(i)||E(o)||_.set(i,o),E(u)||E(A)||_.set(u,A),E(l)||E(g)||_.set(l,g),E(m)||E(R)||_.set(m,R),E(c)||E(p)||_.set(c,p),E(T)||E(h)||_.set(T,h),E(N)||E(f)||_.set(N,f),_}static ofArrayEntries(...e){const t=new Map;for(const[r,n]of e)t.set(r,n);return t}static entry(e,t){return new b(e,t)}static ofEntries(...e){const t=new Map;for(const r of e)t.set(r.k,r.v);return t}static ofEntriesArray(...e){const t=new Map;for(let r=0;r<e.length;r++)t.set(e[r][0],e[r][1]);return t}constructor(){}}class b{constructor(e,t){this.k=e,this.v=t}}var D={};t(D,"EventResult",(()=>B));var F={};t(F,"Event",(()=>Y));class Y{static OUTPUT="output";static ERROR="error";static ITERATION="iteration";static TRUE="true";static FALSE="false";static SCHEMA_NAME="Event";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(Y.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["name",S.ofString("name")],["parameters",S.ofObject("parameter").setAdditionalProperties((new _).setSchemaValue(S.SCHEMA))]]));constructor(e,t){if(e instanceof Y)this.name=e.name,this.parameters=new Map(Array.from(e.parameters.entries()).map((e=>[e[0],new S(e[1])])));else{if(this.name=e,!t)throw new Error("Unknown constructor format");this.parameters=t}}getName(){return this.name}setName(e){return this.name=e,this}getParameters(){return this.parameters}setParameters(e){return this.parameters=e,this}static outputEventMapEntry(e){return Y.eventMapEntry(Y.OUTPUT,e)}static eventMapEntry(e,t){return[e,new Y(e,t)]}static from(e){return new Y(e.name,new Map(Object.entries(e.parameters??{}).map((e=>{const t=S.from(e[1]);if(!t)throw new w("","Event expects a schema");return[e[0],t]}))))}}class B{constructor(e,t){this.name=e,this.result=t}getName(){return this.name}setName(e){return this.name=e,this}getResult(){return this.result}setResult(e){return this.result=e,this}static outputOf(e){return B.of(Y.OUTPUT,e)}static of(e,t){return new B(e,t)}}var H={};t(H,"FunctionOutput",(()=>j));var k={};t(k,"KIRuntimeException",(()=>$));class $ extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class j{index=0;constructor(e){if(E(e))throw new $("Function output is generating null");Array.isArray(e)&&e.length&&e[0]instanceof B?this.fo=e:(this.fo=[],Array.isArray(e)||(this.generator=e))}next(){if(!this.generator)return this.index<this.fo.length?this.fo[this.index++]:void 0;const e=this.generator.next();return e&&this.fo.push(e),e}allResults(){return this.fo}}var X={};t(X,"FunctionSignature",(()=>W));class W{static SCHEMA_NAME="FunctionSignature";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(W.SCHEMA_NAME).setProperties(new Map([["name",S.ofString("name")],["namespace",S.ofString("namespace")],["parameters",S.ofObject("parameters").setAdditionalProperties((new _).setSchemaValue(y.SCHEMA))],["events",S.ofObject("events").setAdditionalProperties((new _).setSchemaValue(Y.SCHEMA))]]));namespace="_";parameters=new Map;events=new Map;constructor(e){e instanceof W?(this.name=e.name,this.namespace=e.namespace,this.parameters=new Map(Array.from(e.parameters.entries()).map((e=>[e[0],new y(e[1])]))),this.events=new Map(Array.from(e.events.entries()).map((e=>[e[0],new Y(e[1])])))):this.name=e}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getParameters(){return this.parameters}setParameters(e){return this.parameters=e,this}getEvents(){return this.events}setEvents(e){return this.events=e,this}getFullName(){return this.namespace+"."+this.name}}var q={};t(q,"AbstractFunction",(()=>Ue));var J={};t(J,"SchemaValidator",(()=>Le));var z={};t(z,"deepEqual",(()=>re));var K={};t(K,"LinkedList",(()=>ee));var Q={};t(Q,"StringFormatter",(()=>Z));class Z{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 ee{head=void 0;tail=void 0;length=0;constructor(e){if(e?.length){for(const t of e)if(this.head){const e=new te(t,this.tail);this.tail.next=e,this.tail=e}else this.tail=this.head=new te(t);this.length=e.length}}push(e){const t=new te(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 $(Z.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 te(e,this.head),this.head.next=this.tail):(this.tail=new te(e,this.tail),this.tail.previous.next=this.tail):this.head=this.tail=new te(e),this}map(e,t){let r=new ee,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(re(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 te{constructor(e,t,r){this.value=e,this.next=r,this.previous=t}toString(){return""+this.value}}function re(e,t){let r=new ee;r.push(e);let n=new ee;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}var ne={};t(ne,"StringUtil",(()=>se));class se{constructor(){}static nthIndex(e,t,r=0,n){if(!e)throw new $("String cannot be null");if(r<0||r>=e.length)throw new $(Z.format("Cannot search from index : $",r));if(n<=0||n>e.length)throw new $(Z.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 ae={};t(ae,"SchemaUtil",(()=>ge));var ie={};t(ie,"Tuple2",(()=>oe)),t(ie,"Tuple3",(()=>Ee)),t(ie,"Tuple4",(()=>ue));class oe{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 Ee extends oe{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 ue extends Ee{constructor(e,t,r,n){super(e,t,r),this.fr=n}getT4(){return this.fr}setT1(e){return this.f=e,this}setT2(e){return this.s=e,this}setT3(e){return this.t=e,this}setT4(e){return this.fr=e,this}}var Ae={};t(Ae,"SchemaValidationException",(()=>le));class le 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 ge{static UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH="Unable to retrive schema from referenced path";static CYCLIC_REFERENCE_LIMIT_COUNTER=20;static getDefaultValue(e,t){if(e)return e.getConstant()?e.getConstant():E(e.getDefaultValue())?ge.getDefaultValue(ge.getSchemaFromRef(e,t,e.getRef()),t):e.getDefaultValue()}static hasDefaultValueOrNullSchemaType(e,t){return!!e&&(!!e.getConstant()||(!E(e.getDefaultValue())||(E(e.getRef())?!!e.getType()?.getAllowedSchemaTypes().has(l.NULL):this.hasDefaultValueOrNullSchemaType(ge.getSchemaFromRef(e,t,e.getRef()),t))))}static getSchemaFromRef(e,t,r,n=0){if(++n==ge.CYCLIC_REFERENCE_LIMIT_COUNTER)throw new le(r??"","Schema has a cyclic reference");if(!e||!r||se.isNullOrBlank(r))return;if(!r.startsWith("#")){var s=ge.resolveExternalSchema(e,t,r);s&&(e=s.getT1(),r=s.getT2())}let a=r.split("/");return 1===a.length?e:ge.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,ge.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);i=i.get$defs()?.get(s[a])}else{if(i&&(!i.getType()?.contains(l.OBJECT)||!i.getProperties()))throw new w(r,"Cannot retrievie schema from non Object type schemas");i=i.getProperties()?.get(s[a])}if(a++,!i)throw new w(r,ge.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);if(!se.isNullOrBlank(i.getRef())&&(i=ge.getSchemaFromRef(i,t,i.getRef(),n),!i))throw new w(r,ge.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH)}return i}}static resolveExternalSchema(e,t,r){if(!t)return;let n=se.splitAtFirstOccurance(r??"","/");if(!n[0])return;let s=se.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 oe(a,r);if(r="#/"+n[1],!a)throw new w(r,ge.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);return new oe(a,r)}}constructor(){}}var me={};t(me,"AnyOfAllOfOneOfValidator",(()=>Re));class Re{static validate(e,t,r,n){let s=[];return t.getOneOf()&&!t.getOneOf()?Re.oneOf(e,t,r,n,s):t.getAllOf()&&!t.getAllOf()?Re.allOf(e,t,r,n,s):t.getAnyOf()&&!t.getAnyOf()&&Re.anyOf(e,t,r,n,s),n}static anyOf(e,t,r,n,s){let a=!1;for(let i of t.getAnyOf()??[])try{Re.validate(e,i,r,n),a=!0;break}catch(e){a=!1,s.push(e)}if(!a)throw new le(Le.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{Re.validate(e,i,r,n),a++}catch(e){s.push(e)}if(a!==t.getAllOf()?.length)throw new le(Le.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{Re.validate(e,i,r,n),a++}catch(e){s.push(e)}if(1!=a)throw new le(Le.path(e),0==a?"The value does not satisfy any schema":"The value satisfy more than one schema",s)}constructor(){}}var ce={};t(ce,"TypeValidator",(()=>ve));var pe={};t(pe,"ArrayValidator",(()=>Te));class Te{static validate(e,t,r,n){if(E(n))throw new le(Le.path(e),"Expected an array but found null");if(!Array.isArray(n))throw new le(Le.path(e),n.toString()+" is not an Array");let s=n;return Te.checkMinMaxItems(e,t,s),Te.checkItems(e,t,r,s),Te.checkUniqueItems(e,t,s),Te.checkContains(t,e,r,s),n}static checkContains(e,t,r,n){if(E(e.getContains()))return;let s=Te.countContains(t,e,r,n,E(e.getMinContains())&&E(e.getMaxContains()));if(0===s)throw new le(Le.path(t),"None of the items are of type contains schema");if(!E(e.getMinContains())&&e.getMinContains()>s)throw new le(Le.path(t),"The minimum number of the items of type contains schema should be "+e.getMinContains()+" but found "+s);if(!E(e.getMaxContains())&&e.getMaxContains()<s)throw new le(Le.path(t),"The maximum number of the items of type contains schema should be "+e.getMaxContains()+" but found "+s)}static countContains(e,t,r,n,s){let a=0;for(let i=0;i<n.length;i++){let o=e?[...e]:[];try{if(Le.validate(o,t.getContains(),r,n[i]),a++,s)break}catch(e){}}return a}static checkUniqueItems(e,t,r){if(t.getUniqueItems()&&t.getUniqueItems()){if(new Set(r).size!==r.length)throw new le(Le.path(e),"Items on the array are not unique")}}static checkMinMaxItems(e,t,r){if(t.getMinItems()&&t.getMinItems()>r.length)throw new le(Le.path(e),"Array should have minimum of "+t.getMinItems()+" elements");if(t.getMaxItems()&&t.getMaxItems()<r.length)throw new le(Le.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=Le.validate(a,s.getSingleSchema(),r,n[t]);n[t]=i}if(s.getTupleSchema()){if(s.getTupleSchema().length!==n.length&&E(t?.getAdditionalItems()))throw new le(Le.path(e),"Expected an array with only "+s.getTupleSchema().length+" but found "+n.length);this.checkItemsInTupleSchema(e,r,n,s),this.checkAdditionalItems(e,t,r,n,s)}}static checkItemsInTupleSchema(e,t,r,n){for(let s=0;s<n.getTupleSchema()?.length;s++){let a=e?[...e]:[],i=Le.validate(a,n.getTupleSchema()[s],t,r[s]);r[s]=i}}static checkAdditionalItems(e,t,r,n,s){if(!E(t.getAdditionalItems())){let a=t.getAdditionalItems();if(a?.getBooleanValue()){let i=S.ofAny("item");if(!1===a?.getBooleanValue()&&n.length>s.getTupleSchema()?.length)throw new le(Le.path(e),"No Additional Items are defined");this.checkEachItemInAdditionalItems(e,t,r,n,s,i)}else if(a?.getSchemaValue()){let i=a.getSchemaValue();this.checkEachItemInAdditionalItems(e,t,r,n,s,i)}}}static checkEachItemInAdditionalItems(e,t,r,n,s,a){for(let t=s.getTupleSchema()?.length;t<n.length;t++){let s=e?[...e]:[],i=Le.validate(s,a,r,n[t]);n[t]=i}}constructor(){}}var he={};t(he,"BooleanValidator",(()=>Ne));class Ne{static validate(e,t,r){if(E(r))throw new le(Le.path(e),"Expected a boolean but found null");if("boolean"!=typeof r)throw new le(Le.path(e),r.toString()+" is not a boolean");return r}constructor(){}}var fe={};t(fe,"NullValidator",(()=>_e));class _e{static validate(e,t,r){if(r)throw new le(Le.path(e),"Expected a null but found "+r);return r}constructor(){}}var Se={};t(Se,"NumberValidator",(()=>Me));class Me{static validate(e,t,r,n){if(E(n))throw new le(Le.path(t),"Expected a number but found null");if("number"!=typeof n)throw new le(Le.path(t),n.toString()+" is not a "+e);let s=Me.extractNumber(e,t,r,n);return Me.checkRange(t,r,n,s),Me.checkMultipleOf(t,r,n,s),n}static extractNumber(e,t,r,n){let s=n;try{e!=l.LONG&&e!=l.INTEGER||(s=Math.round(s))}catch(r){throw new le(Le.path(t),n+" is not a number of type "+e,r)}if(E(s)||(e==l.LONG||e==l.INTEGER)&&s!=n)throw new le(Le.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 le(Le.path(e),r.toString()+" is not multiple of "+t.getMultipleOf())}}static checkRange(e,t,r,n){if(t.getMinimum()&&Me.numberCompare(n,t.getMinimum())<0)throw new le(Le.path(e),r.toString()+" should be greater than or equal to "+t.getMinimum());if(t.getMaximum()&&Me.numberCompare(n,t.getMaximum())>0)throw new le(Le.path(e),r.toString()+" should be less than or equal to "+t.getMaximum());if(t.getExclusiveMinimum()&&Me.numberCompare(n,t.getExclusiveMinimum())<=0)throw new le(Le.path(e),r.toString()+" should be greater than "+t.getExclusiveMinimum());if(t.getExclusiveMaximum()&&Me.numberCompare(n,t.getExclusiveMaximum())>0)throw new le(Le.path(e),r.toString()+" should be less than "+t.getExclusiveMaximum())}static numberCompare(e,t){return e-t}constructor(){}}var Oe={};t(Oe,"ObjectValidator",(()=>we));class we{static validate(e,t,r,n){if(E(n))throw new le(Le.path(e),"Expected an object but found null");if("object"!=typeof n||Array.isArray(n))throw new le(Le.path(e),n.toString()+" is not an Object");let s=n,a=new Set(Object.keys(s));we.checkMinMaxProperties(e,t,a),t.getPropertyNames()&&we.checkPropertyNameSchema(e,t,r,a),t.getRequired()&&we.checkRequired(e,t,s),t.getProperties()&&we.checkProperties(e,t,r,s,a),t.getPatternProperties()&&we.checkPatternProperties(e,t,r,s,a),t.getAdditionalProperties()&&we.checkAddtionalProperties(e,t,r,s,a)}static checkPropertyNameSchema(e,t,r,n){for(let s of Array.from(n.values()))try{Le.validate(e,t.getPropertyNames(),r,s)}catch(t){throw new le(Le.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 le(Le.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=Le.validate(s,a.getSchemaValue(),r,n[t]);n[t]=i}else if(!1===a.getBooleanValue()&&s.size)throw new le(Le.path(e),Array.from(s)+" is/are additional properties which are not allowed.")}static checkPatternProperties(e,t,r,n,s){const a=new Map;for(const e of Array.from(t.getPatternProperties().keys()))a.set(e,new RegExp(e));for(const i of Array.from(s.values())){const o=e?[...e]:[];for(const e of Array.from(a.entries()))if(e[1].test(i)){const a=Le.validate(o,t.getPatternProperties().get(e[0]),r,n[i]);n[i]=a,s.delete(i);break}}}static checkProperties(e,t,r,n,s){for(const a of Array.from(t.getProperties())){let t=n[a[0]];if(!n.hasOwnProperty(a[0])&&E(t)){if(E(ge.getDefaultValue(a[1],r)))continue}let i=e?[...e]:[],o=Le.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 le(Le.path(e),"Object should have minimum of "+t.getMinProperties()+" properties");if(t.getMaxProperties()&&r.size>t.getMaxProperties())throw new le(Le.path(e),"Object can have maximum of "+t.getMaxProperties()+" properties")}constructor(){}}var de={};t(de,"StringValidator",(()=>xe));var Ie={};let Pe;var ye;t(Ie,"StringFormat",(()=>Pe)),(ye=Pe||(Pe={})).DATETIME="DATETIME",ye.TIME="TIME",ye.DATE="DATE",ye.EMAIL="EMAIL",ye.REGEX="REGEX";class xe{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 le(Le.path(e),"Expected a string but found "+r);if("string"!=typeof r)throw new le(Le.path(e),r.toString()+" is not String");t.getFormat()==Pe.TIME?xe.patternMatcher(e,t,r,xe.TIME,"time pattern"):t.getFormat()==Pe.DATE?xe.patternMatcher(e,t,r,xe.DATE,"date pattern"):t.getFormat()==Pe.DATETIME?xe.patternMatcher(e,t,r,xe.DATETIME,"date time pattern"):t.getFormat()==Pe.EMAIL?xe.patternMatcher(e,t,r,xe.EMAIL,"email pattern"):t.getPattern()&&xe.patternMatcher(e,t,r,new RegExp(t.getPattern()),"pattern "+t.getPattern());let n=r.length;if(t.getMinLength()&&n<t.getMinLength())throw new le(Le.path(e),"Expected a minimum of "+t.getMinLength()+" characters");if(t.getMaxLength()&&n>t.getMaxLength())throw new le(Le.path(e),"Expected a maximum of "+t.getMaxLength()+" characters");return r}static patternMatcher(e,t,r,n,s){if(!n.test(r))throw new le(Le.path(e),r.toString()+" is not matched with the "+s)}constructor(){}}class ve{static validate(e,t,r,n,s){if(t==l.STRING)xe.validate(e,r,s);else if(t==l.LONG||t==l.INTEGER||t==l.DOUBLE||t==l.FLOAT)Me.validate(t,e,r,s);else if(t==l.BOOLEAN)Ne.validate(e,r,s);else if(t==l.OBJECT)we.validate(e,r,n,s);else if(t==l.ARRAY)Te.validate(e,r,n,s);else{if(t!=l.NULL)throw new le(Le.path(e),t+" is not a valid type.");_e.validate(e,r,s)}return s}constructor(){}}class Le{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 le(Le.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(!E(t.getConstant()))return Le.constantValidation(e,t,n);if(t.getEnums()&&!t.getEnums()?.length)return Le.enumCheck(e,t,n);if(t.getFormat()&&E(t.getType()))throw new le(this.path(e),"Type is missing in schema for declared "+t.getFormat()?.toString()+" format.");if(t.getType()&&Le.typeValidation(e,t,r,n),!se.isNullOrBlank(t.getRef()))return Le.validate(e,ge.getSchemaFromRef(e[0],r,t.getRef()),r,n);if((t.getOneOf()||t.getAllOf()||t.getAnyOf())&&Re.validate(e,t,r,n),t.getNot()){let s=!1;try{Le.validate(e,t.getNot(),r,n),s=!0}catch(e){s=!1}if(s)throw new le(Le.path(e),"Schema validated value in not condition.")}return n}static constantValidation(e,t,r){if(!re(t.getConstant(),r))throw new le(Le.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 le(Le.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{ve.validate(e,i,t,r,n),s=!0;break}catch(e){s=!1,a.push(e)}if(!s)throw new le(Le.path(e),"Value "+JSON.stringify(n)+" is not of valid type(s)",a)}constructor(){}}class Ue{validateArguments(e,t,r){return Array.from(this.getSignature().getParameters().entries()).map((n=>{let s=n[1];try{return this.validateArgument(e,t,n,s)}catch(e){const t=this.getSignature();throw new $(`Error while executing the function ${t.getNamespace()}.${t.getName()}'s parameter ${s.getParameterName()} with step name '${r?.getStatement().getStatementName()??"Unknown Step"}' with error : ${e?.message}`)}})).reduce(((e,t)=>(e.set(t.getT1(),t.getT2()),e)),new Map)}validateArgument(e,t,r,n){let s,a=r[0],i=e.get(r[0]);if(E(i)&&!n.isVariableArgument())return new oe(a,Le.validate(void 0,n.getSchema(),t,void 0));if(!n?.isVariableArgument())return new oe(a,Le.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]=Le.validate(void 0,n.getSchema(),t,s[e]);return new oe(a,s)}async execute(e){e.setArguments(this.validateArguments(e.getArguments()??new Map,e.getSchemaRepository(),e.getStatementExecution()));try{return this.internalExecute(e)}catch(t){const r=this.getSignature();throw new $(`Error while executing the function ${r.getNamespace()}.${r.getName()} with step name '${e.getStatementExecution()?.getStatement().getStatementName()??"Unknown Step"}' with error : ${t?.message}`)}}getProbableEventSignature(e){return this.getSignature().getEvents()}}class Ve extends Ue{static EVENT_INDEX_NAME="index";static EVENT_RESULT_NAME="result";static EVENT_INDEX=new Y(Y.OUTPUT,G.of(Ve.EVENT_INDEX_NAME,S.ofInteger(Ve.EVENT_INDEX_NAME)));static EVENT_RESULT_INTEGER=new Y(Y.OUTPUT,G.of(Ve.EVENT_RESULT_NAME,S.ofInteger(Ve.EVENT_RESULT_NAME)));static EVENT_RESULT_BOOLEAN=new Y(Y.OUTPUT,G.of(Ve.EVENT_RESULT_NAME,S.ofBoolean(Ve.EVENT_RESULT_NAME)));static EVENT_RESULT_ARRAY=new Y(Y.OUTPUT,G.of(Ve.EVENT_RESULT_NAME,S.ofArray(Ve.EVENT_RESULT_NAME,S.ofAny(Ve.EVENT_RESULT_NAME))));static EVENT_RESULT_EMPTY=new Y(Y.OUTPUT,G.of());static EVENT_RESULT_ANY=new Y(Y.OUTPUT,G.of(this.EVENT_RESULT_NAME,S.ofAny(this.EVENT_RESULT_NAME)));static EVENT_RESULT_OBJECT=new Y(Y.OUTPUT,G.of(this.EVENT_RESULT_NAME,S.ofObject(this.EVENT_RESULT_NAME)));static PARAMETER_INT_LENGTH=y.of("length",S.ofInteger("length").setDefaultValue(-1));static PARAMETER_ARRAY_FIND=y.of("find",S.ofArray("eachFind",S.ofAny("eachFind")));static PARAMETER_INT_SOURCE_FROM=y.of("srcFrom",S.ofInteger("srcFrom").setDefaultValue(0).setMinimum(0));static PARAMETER_INT_SECOND_SOURCE_FROM=y.of("secondSrcFrom",S.ofInteger("secondSrcFrom").setDefaultValue(0));static PARAMETER_INT_FIND_FROM=y.of("findFrom",S.ofInteger("findFrom").setDefaultValue(0));static PARAMETER_INT_OFFSET=y.of("offset",S.ofInteger("offset").setDefaultValue(0));static PARAMETER_ROTATE_LENGTH=y.of("rotateLength",S.ofInteger("rotateLength").setDefaultValue(1).setMinimum(1));static PARAMETER_BOOLEAN_ASCENDING=y.of("ascending",S.ofBoolean("ascending").setDefaultValue(!1));static PARAMETER_FIND_PRIMITIVE=y.of("findPrimitive",S.of("findPrimitive",l.STRING,l.DOUBLE,l.FLOAT,l.INTEGER,l.LONG));static PARAMETER_ARRAY_SOURCE=y.of("source",S.ofArray("eachSource",S.ofAny("eachSource")));static PARAMETER_ARRAY_SECOND_SOURCE=y.of("secondSource",S.ofArray("eachSecondSource",S.ofAny("eachSecondSource")));static PARAMETER_ARRAY_SOURCE_PRIMITIVE=y.of("source",S.ofArray("eachSource",(new S).setName("eachSource").setType(f.of(l.STRING,l.NULL,l.INTEGER,l.FLOAT,l.DOUBLE,l.LONG))));static PARAMETER_BOOLEAN_DEEP_COPY=y.of("deepCopy",S.ofBoolean("deepCopy").setDefaultValue(!0));static PARAMETER_ANY=y.of("element",S.ofAny("element"));static PARAMETER_ANY_NOT_NULL=y.of("elementObject",S.ofAnyNotNull("elementObject"));static PARAMETER_ANY_VAR_ARGS=y.of("element",S.ofAny("element")).setVariableArgument(!0);static PARAMETER_ARRAY_RESULT=y.of(Ve.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 Ce extends Ve{constructor(){super("Concatenate",[Ve.PARAMETER_ARRAY_SOURCE,Ve.PARAMETER_ARRAY_SECOND_SOURCE],Ve.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(Ve.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Ve.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName());return new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,[...t,...r]]]))])}}class Ge extends Ve{constructor(){super("AddFirst",[Ve.PARAMETER_ARRAY_SOURCE,Ve.PARAMETER_ANY],Ve.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(Ve.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Ve.PARAMETER_ANY.getParameterName());if(t=[...t],0==t.length)return t.push(r),new j([B.outputOf(new Map([]))]);t.push(r);let n=t.length-1;for(;n>0;){let e=t[n-1];t[n-1]=t[n],t[n--]=e}return new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,t]]))])}}class be extends Ve{constructor(){super("ArrayToObjects",[Ve.PARAMETER_ARRAY_SOURCE,y.of("keyName",S.ofString("keyName"),!0)],Ve.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(be.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get("keyName");if(!t?.length)return new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,[]]]))]);let n=t.map((e=>{const t={};if(Array.isArray(e))if(r.length)r.forEach(((r,n)=>{t[r]=e[n]}));else for(let r=0;r<e.length;r++)t[`value${r+1}`]=e[r];else t[r.length?r[0]:"value"]=e;return t}));return new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,n]]))])}}var De={};t(De,"PrimitiveUtil",(()=>Be));var Fe={};t(Fe,"ExecutionException",(()=>Ye));class Ye extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class Be{static findPrimitiveNullAsBoolean(e){if(E(e))return new oe(l.BOOLEAN,!1);let t=typeof e;if("object"===t)throw new Ye(Z.format("$ is not a primitive type",e));let r=e;return"boolean"===t?new oe(l.BOOLEAN,r):"string"===t?new oe(l.STRING,r):Be.findPrimitiveNumberType(r)}static findPrimitive(e){if(E(e))return new oe(l.NULL,void 0);let t=typeof e;if("object"===t)throw new Ye(Z.format("$ is not a primitive type",e));let r=e;return"boolean"===t?new oe(l.BOOLEAN,r):"string"===t?new oe(l.STRING,r):Be.findPrimitiveNumberType(r)}static findPrimitiveNumberType(e){if(E(e)||Array.isArray(e)||"object"==typeof e)throw new Ye(Z.format("Unable to convert $ to a number.",e));let t=e;try{let e=t;return Number.isInteger(e)?new oe(l.LONG,e):new oe(l.DOUBLE,e)}catch(e){throw new Ye(Z.format("Unable to convert $ to a number.",t),e)}}static compare(e,t){if(e==t)return 0;if(E(e)||E(t))return E(e)?-1:1;if(Array.isArray(e)||Array.isArray(t)){if(Array.isArray(e)&&Array.isArray(t)){if(e.length!=t.length)return e.length-t.length;for(let r=0;r<e.length;r++){let n=this.compare(e[r],t[r]);if(0!=n)return n}return 0}return Array.isArray(e)?-1:1}const r=typeof e,n=typeof t;return"object"===r||"object"===n?("object"===r&&"object"===n&&Object.keys(e).forEach((r=>{let n=this.compare(e[r],t[r]);if(0!=n)return n})),"object"===r?-1:1):this.comparePrimitive(e,t)}static comparePrimitive(e,t){return E(e)||E(t)?E(e)&&E(t)?0:E(e)?-1:1:e==t?0:"boolean"==typeof e||"boolean"==typeof t?e?-1:1:"string"==typeof e||"string"==typeof t?e+""<t+""?-1:1:"number"==typeof e||"number"==typeof t?e-t:0}static baseNumberType(e){return Number.isInteger(e)?l.LONG:l.DOUBLE}static toPrimitiveType(e){return e}constructor(){}}class He extends Ve{constructor(){super("BinarySearch",[He.PARAMETER_ARRAY_SOURCE_PRIMITIVE,He.PARAMETER_INT_SOURCE_FROM,He.PARAMETER_FIND_PRIMITIVE,He.PARAMETER_INT_LENGTH],He.EVENT_INDEX)}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_FIND_PRIMITIVE.getParameterName()),s=e?.getArguments()?.get(He.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length||r<0||r>t.length)throw new $("Search source array cannot be empty");if(-1==s&&(s=t.length-r),s=r+s,s>t.length)throw new $("End point for array cannot be more than the size of the source array");let a=-1;for(;r<=s;){let e=Math.floor((r+s)/2);if(0==Be.compare(t[e],n)){a=e;break}Be.compare(t[e],n)>0?s=e-1:r=e+1}return new j([B.outputOf(new Map([[He.EVENT_INDEX_NAME,a]]))])}}var ke={};t(ke,"ArrayUtil",(()=>$e));class $e{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 je extends Ve{constructor(){super("Compare",$e.of(je.PARAMETER_ARRAY_SOURCE,je.PARAMETER_INT_SOURCE_FROM,je.PARAMETER_ARRAY_FIND,je.PARAMETER_INT_FIND_FROM,je.PARAMETER_INT_LENGTH),je.EVENT_RESULT_INTEGER)}async internalExecute(e){var t=e?.getArguments()?.get(je.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(je.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(je.PARAMETER_ARRAY_FIND.getParameterName()),s=e?.getArguments()?.get(je.PARAMETER_INT_FIND_FROM.getParameterName()),a=e?.getArguments()?.get(je.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new $("Compare source array cannot be empty");if(0==n.length)throw new $("Compare find array cannot be empty");if(-1==a&&(a=t.length-r),r+a>t.length)throw new $(Z.format("Source array size $ is less than comparing size $",t.length,r+a));if(s+a>n.length)throw new $(Z.format("Find array size $ is less than comparing size $",n.length,s+a));return new j($e.of(B.outputOf(G.of(je.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 $(Z.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}}var Xe={};function We(e){return e?structuredClone?structuredClone(e):JSON.parse(JSON.stringify(e)):e}t(Xe,"duplicate",(()=>We));class qe extends Ve{constructor(){super("Copy",[qe.PARAMETER_ARRAY_SOURCE,qe.PARAMETER_INT_SOURCE_FROM,qe.PARAMETER_INT_LENGTH,qe.PARAMETER_BOOLEAN_DEEP_COPY],qe.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(qe.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(qe.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(qe.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),r+n>t.length)throw new $(Z.format("Array has no elements from $ to $ as the array size is $",r,r+n,t.length));var s=e?.getArguments()?.get(qe.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?We(t[e]):t[e]);return new j([B.outputOf(G.of(qe.EVENT_RESULT_NAME,a))])}}class Je extends Ve{constructor(){super("Delete",[Ve.PARAMETER_ARRAY_SOURCE,Ve.PARAMETER_ANY_VAR_ARGS],Ve.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(Je.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Je.PARAMETER_ANY_VAR_ARGS.getParameterName());if(null==r)throw new $("The deletable var args are empty. So cannot be proceeded further.");if(0==t.length||0==r.length)throw new $("Expected a source or deletable for an array but not found any");let n=new Set;for(let e=t.length-1;e>=0;e--)for(let s=0;s<r.length;s++)n.has(e)||0!=Be.compare(t[e],r[s])||n.add(t[e]);return new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,t.filter((e=>!n.has(e)))]]))])}}class ze extends Ve{constructor(){super("DeleteFirst",[ze.PARAMETER_ARRAY_SOURCE],ze.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(ze.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new $("Given source array is empty");return t=[...t],t.shift(),new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,t]]))])}}class Ke extends Ve{constructor(){super("DeleteFrom",[Ke.PARAMETER_ARRAY_SOURCE,Ke.PARAMETER_INT_SOURCE_FROM,Ke.PARAMETER_INT_LENGTH],Ke.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(Ke.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Ke.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(Ke.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new $("There are no elements to be deleted");if(t=[...t],r>=t.length||r<0)throw new $("The int source for the array should be in between 0 and length of the array ");if(-1==n&&(n=t.length-r),r+n>t.length)throw new $("Requested length to be deleted is more than the size of array ");return t.splice(r,n),new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,t]]))])}}class Qe extends Ve{constructor(){super("DeleteLast",[Qe.PARAMETER_ARRAY_SOURCE],Qe.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(Qe.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new $("Given source array is empty");return t=[...t],t.pop(),new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,t]]))])}}class Ze extends Ve{constructor(){super("Disjoint",[Ze.PARAMETER_ARRAY_SOURCE,Ze.PARAMETER_INT_SOURCE_FROM,Ze.PARAMETER_ARRAY_SECOND_SOURCE,Ze.PARAMETER_INT_SECOND_SOURCE_FROM,Ze.PARAMETER_INT_LENGTH],Ze.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(Ze.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Ze.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(Ze.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(Ze.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(Ze.PARAMETER_INT_LENGTH.getParameterName());if(-1==a&&(a=t.length<=n.length?t.length-r:n.length-s),a>t.length||a>n.length||r+a>t.length||s+a>n.length)throw new $("The length which was being requested is more than than the size either source array or second source array");let i=new Set,o=new Set;for(let e=0;e<a;e++)i.add(t[e+r]);for(let e=0;e<a;e++)o.add(n[e+s]);let E=new Set;return i.forEach((e=>{o.has(e)?o.delete(e):E.add(e)})),o.forEach((e=>{i.has(e)||E.add(e)})),new j([B.outputOf(new Map([[Ze.EVENT_RESULT_NAME,[...E]]]))])}}class et extends Ve{constructor(){super("Equals",[et.PARAMETER_ARRAY_SOURCE,et.PARAMETER_INT_SOURCE_FROM,et.PARAMETER_ARRAY_FIND,et.PARAMETER_INT_FIND_FROM,et.PARAMETER_INT_LENGTH],et.EVENT_RESULT_BOOLEAN)}async internalExecute(e){let t=new je,r=(await t.execute(e)).allResults()[0].getResult().get(et.EVENT_RESULT_NAME);return new j([B.outputOf(G.of(et.EVENT_RESULT_NAME,0==r))])}}class tt extends Ve{constructor(){super("Fill",[tt.PARAMETER_ARRAY_SOURCE,tt.PARAMETER_INT_SOURCE_FROM,tt.PARAMETER_INT_LENGTH,tt.PARAMETER_ANY],tt.EVENT_RESULT_EMPTY)}async internalExecute(e){var 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()),s=e?.getArguments()?.get(tt.PARAMETER_ANY.getParameterName());if(r<0)throw new $(Z.format("Arrays out of bound trying to access $ index",r));-1==n&&(n=t.length-r);let a=r+n-t.length;if(t=[...t],a>0)for(let e=0;e<a;e++)t.push();for(let e=r;e<r+n;e++)t[e]=E(s)?s:We(s);return new j([B.outputOf(G.of(Ve.EVENT_RESULT_NAME,t))])}}class rt extends Ve{constructor(){super("Frequency",[rt.PARAMETER_ARRAY_SOURCE,rt.PARAMETER_ANY,rt.PARAMETER_INT_SOURCE_FROM,rt.PARAMETER_INT_LENGTH],rt.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(rt.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(rt.PARAMETER_ANY.getParameterName()),n=e?.getArguments()?.get(rt.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(rt.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)return new j([B.outputOf(new Map([[rt.EVENT_RESULT_NAME,0]]))]);if(n>t.length)throw new $("Given start point is more than the size of source");let a=n+s;if(-1==s&&(a=t.length-n),a>t.length)throw new $("Given length is more than the size of source");let i=0;for(let e=n;e<a&&e<t.length;e++)0==Be.compare(t[e],r)&&i++;return new j([B.outputOf(new Map([[rt.EVENT_RESULT_NAME,i]]))])}}class nt extends Ve{constructor(){super("IndexOf",[nt.PARAMETER_ARRAY_SOURCE,nt.PARAMETER_ANY_NOT_NULL,nt.PARAMETER_INT_FIND_FROM],nt.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(nt.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(nt.PARAMETER_ANY_NOT_NULL.getParameterName());let n=e?.getArguments()?.get(nt.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new j([B.outputOf(new Map([[nt.EVENT_RESULT_NAME,-1]]))]);if(n<0||n>t.length)throw new $("The size of the search index of the array is greater than the size of the array");let s=-1;for(let e=n;e<t.length;e++)if(0==Be.compare(t[e],r)){s=e;break}return new j([B.outputOf(new Map([[nt.EVENT_RESULT_NAME,s]]))])}}class st extends Ve{constructor(){super("IndexOfArray",[st.PARAMETER_ARRAY_SOURCE,st.PARAMETER_ARRAY_SECOND_SOURCE,st.PARAMETER_INT_FIND_FROM],st.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(st.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(st.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(st.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length||0==r.length)return new j([B.outputOf(new Map([[st.EVENT_RESULT_NAME,-1]]))]);if(n<0||n>t.length||t.length<r.length)throw new $("Given from second source is more than the size of the source array");let s=r.length,a=-1;for(let e=n;e<t.length;e++){let n=0;if(0==Be.compare(t[e],r[n])){for(;n<s&&0==Be.compare(t[e+n],r[n]);)n++;if(n==s){a=e;break}}}return new j([B.outputOf(new Map([[st.EVENT_RESULT_NAME,a]]))])}}class at extends Ve{constructor(){super("LastIndexOf",[at.PARAMETER_ARRAY_SOURCE,at.PARAMETER_ANY_NOT_NULL,at.PARAMETER_INT_FIND_FROM],at.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(at.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(at.PARAMETER_ANY_NOT_NULL.getParameterName());let n=e?.getArguments()?.get(at.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new j([B.outputOf(new Map([[at.EVENT_RESULT_NAME,-1]]))]);if(n<0||n>t.length)throw new $("The value of length shouldn't the exceed the size of the array or shouldn't be in terms");let s=-1;for(let e=t.length-1;e>=n;e--)if(0==Be.compare(t[e],r)){s=e;break}return new j([B.outputOf(new Map([[at.EVENT_RESULT_NAME,s]]))])}}class it extends Ve{constructor(){super("LastIndexOfArray",[it.PARAMETER_ARRAY_SOURCE,it.PARAMETER_ARRAY_SECOND_SOURCE,it.PARAMETER_INT_FIND_FROM],it.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(it.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(it.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(it.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new j([B.outputOf(new Map([[it.EVENT_RESULT_NAME,-1]]))]);if(n<0||n>t.length||r.length>t.length)throw new $("Given from index is more than the size of the source array");let s=r.length,a=-1;for(let e=n;e<t.length;e++){let n=0;if(0==Be.compare(t[e],r[n])){for(;n<s&&0==Be.compare(t[e+n],r[n]);)n++;n==s&&(a=e)}}return new j([B.outputOf(new Map([[it.EVENT_RESULT_NAME,a]]))])}}class ot extends Ve{constructor(){super("Max",[ot.PARAMETER_ARRAY_SOURCE_PRIMITIVE],ot.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(ot.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==t.length)throw new $("Search source array cannot be empty");let r=t[0];for(let e=1;e<t.length;e++){let n=t[e];Be.comparePrimitive(r,n)>=0||(r=n)}return new j([B.outputOf(new Map([[ot.EVENT_RESULT_NAME,r]]))])}}class Et extends Ve{constructor(){super("Min",[Et.PARAMETER_ARRAY_SOURCE_PRIMITIVE],Et.EVENT_RESULT_ANY)}async internalExecute(e){let t,r=e?.getArguments()?.get(Et.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==r.length)throw new $("Search source array cannot be empty");for(let e=0;e<r.length;e++)E(r[e])||(void 0===t||Be.comparePrimitive(r[e],t)<0)&&(t=r[e]);return new j([B.outputOf(new Map([[Et.EVENT_RESULT_NAME,t]]))])}}class ut extends Ve{constructor(){super("MisMatch",[ut.PARAMETER_ARRAY_SOURCE,ut.PARAMETER_INT_FIND_FROM,ut.PARAMETER_ARRAY_SECOND_SOURCE,ut.PARAMETER_INT_SECOND_SOURCE_FROM,ut.PARAMETER_INT_LENGTH],ut.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(ut.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ut.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(ut.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(ut.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(ut.PARAMETER_INT_LENGTH.getParameterName()),i=r<t.length&&r>0?r:0,o=s<n.length&&s>0?s:0;if(i+a>=t.length||o+a>n.length)throw new $("The size of the array for first and second which was being requested is more than size of the given array");let E=-1;for(let e=0;e<a;e++)if(t[i+e]!=n[o+e]){E=e;break}return new j([B.outputOf(new Map([[ut.EVENT_RESULT_NAME,E]]))])}}class At extends Ve{constructor(){super("Reverse",[At.PARAMETER_ARRAY_SOURCE,At.PARAMETER_INT_SOURCE_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_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(At.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),n>=t.length||n<0||r<0)throw new $("Please provide start point between the start and end indexes or provide the length which was less than the source size ");t=[...t];let s=r+n-1;for(;r<=s;){let e=t[r],n=t[s];t[r++]=n,t[s--]=e}return new j([B.outputOf(new Map([[At.EVENT_RESULT_NAME,t]]))])}}class lt extends Ve{constructor(){super("Rotate",[lt.PARAMETER_ARRAY_SOURCE,lt.PARAMETER_ROTATE_LENGTH],lt.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(lt.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(lt.PARAMETER_ROTATE_LENGTH.getParameterName());if(0==t.length)return new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,t]]))]);t=[...t];let n=t.length;return r%=n,this.rotate(t,0,r-1),this.rotate(t,r,n-1),this.rotate(t,0,n-1),new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,t]]))])}rotate(e,t,r){for(;t<r;){let n=e[t];e[t++]=e[r],e[r--]=n}}}class gt extends Ve{constructor(){super("Shuffle",[gt.PARAMETER_ARRAY_SOURCE],gt.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(gt.PARAMETER_ARRAY_SOURCE.getParameterName());if(t.length<=1)return new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,t]]))]);t=[...t];let r=0,n=t.length;for(let e=0;e<n;e++){let e=Math.floor(Math.random()*n)%n,s=t[r];t[r]=t[e],t[e]=s,r=e}return new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,t]]))])}}class mt extends Ve{constructor(){super("Sort",[mt.PARAMETER_ARRAY_SOURCE_PRIMITIVE,mt.PARAMETER_INT_FIND_FROM,mt.PARAMETER_INT_LENGTH,mt.PARAMETER_BOOLEAN_ASCENDING],mt.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(mt.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName()),r=e?.getArguments()?.get(mt.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(mt.PARAMETER_INT_LENGTH.getParameterName()),s=e?.getArguments()?.get(mt.PARAMETER_BOOLEAN_ASCENDING.getParameterName());if(0==t.length)return new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,t]]))]);if(t=[...t],-1==n&&(n=t.length-r),r<0||r>=t.length||r+n>t.length)throw new $("Given start point is more than the size of the array or not available at that point");let a=t.slice(r,r+n+1);return a.sort(((e,t)=>function(e,t,r){return e===t?0:null===e?1:null===t?-1:r?e<t?1:-1:e<t?-1:1}(e,t,s))),t.splice(r,n,...a),new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,t]]))])}}class Rt extends Ve{constructor(){super("SubArray",[Rt.PARAMETER_ARRAY_SOURCE,Rt.PARAMETER_INT_FIND_FROM,Rt.PARAMETER_INT_LENGTH],Rt.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(Rt.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Rt.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(Rt.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),n<=0)return new j([B.outputOf(new Map([]))]);if(!(r>=0&&r<t.length)||r+n>t.length)throw new $("Given find from point is more than the source size array or the Requested length for the subarray was more than the source size");let s=t.slice(r,r+n);return new j([B.outputOf(new Map([[Rt.EVENT_RESULT_NAME,s]]))])}}class ct extends Ve{constructor(){super("Insert",[ct.PARAMETER_ARRAY_SOURCE,ct.PARAMETER_INT_OFFSET,ct.PARAMETER_ANY],ct.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(ct.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ct.PARAMETER_INT_OFFSET.getParameterName());var n=e?.getArguments()?.get(ct.PARAMETER_ANY.getParameterName());if(E(n)||E(r)||r>t.length)throw new $("Please valid resouces to insert at the correct location");if(t=[...t],0==t.length)return 0==r&&t.push(n),new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,t]]))]);t.push(n);let s=t.length-1;for(r++;s>=r;){let e=t[s-1];t[s-1]=t[s],t[s--]=e}return new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,t]]))])}}class pt extends Ve{constructor(){super("InsertLast",[pt.PARAMETER_ARRAY_SOURCE,pt.PARAMETER_ANY],pt.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(pt.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(pt.PARAMETER_ANY.getParameterName());return t=[...t],t.push(r),new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,t]]))])}}class Tt extends Ve{constructor(){super("RemoveDuplicates",[Tt.PARAMETER_ARRAY_SOURCE,Tt.PARAMETER_INT_SOURCE_FROM,Tt.PARAMETER_INT_LENGTH],Tt.EVENT_RESULT_ARRAY)}async internalExecute(e){var 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),r+n>t.length)throw new $(Z.format("Array has no elements from $ to $ as the array size is $",r,r+n,t.length));const s=[...t];for(let e=r+n-1;e>=r;e--)for(let t=e-1;t>=r;t--)if(re(s[e],s[t])){s.splice(e,1);break}return new j([B.outputOf(G.of(Tt.EVENT_RESULT_NAME,s))])}}var ht={};t(ht,"ObjectValueSetterExtractor",(()=>Ut));var Nt={};t(Nt,"Expression",(()=>xt));var ft={};t(ft,"StringBuilder",(()=>_t));class _t{constructor(e){this.str=e??""}append(e){return this.str+=e,this}toString(){return""+this.str}trim(){return this.str=this.str.trim(),this}setLength(e){return this.str=this.str.substring(0,e),this}length(){return this.str.length}charAt(e){return this.str.charAt(e)}deleteCharAt(e){return this.checkIndex(e),this.str=this.str.substring(0,e)+this.str.substring(e+1),this}insert(e,t){return this.str=this.str.substring(0,e)+t+this.str.substring(e),this}checkIndex(e){if(e>=this.str.length)throw new $(`Index ${e} is greater than or equal to ${this.str.length}`)}substring(e,t){return this.str.substring(e,t)}}var St={};t(St,"ExpressionEvaluationException",(()=>Mt));class Mt extends Error{constructor(e,t,r){super(Z.format("$ : $",e,t)),this.cause=r}getCause(){return this.cause}}var Ot={};t(Ot,"ExpressionToken",(()=>wt));class wt{constructor(e){this.expression=e}getExpression(){return this.expression}toString(){return this.expression}}var dt={};t(dt,"ExpressionTokenValue",(()=>It));class It extends wt{constructor(e,t){super(e),this.element=t}getTokenValue(){return this.element}getElement(){return this.element}toString(){return Z.format("$: $",this.expression,this.element)}}var Pt={};t(Pt,"Operation",(()=>yt));class yt{static MULTIPLICATION=new yt("*");static DIVISION=new yt("/");static INTEGER_DIVISION=new yt("//");static MOD=new yt("%");static ADDITION=new yt("+");static SUBTRACTION=new yt("-");static NOT=new yt("not",void 0,!0);static AND=new yt("and",void 0,!0);static OR=new yt("or",void 0,!0);static LESS_THAN=new yt("<");static LESS_THAN_EQUAL=new yt("<=");static GREATER_THAN=new yt(">");static GREATER_THAN_EQUAL=new yt(">=");static EQUAL=new yt("=");static NOT_EQUAL=new yt("!=");static BITWISE_AND=new yt("&");static BITWISE_OR=new yt("|");static BITWISE_XOR=new yt("^");static BITWISE_COMPLEMENT=new yt("~");static BITWISE_LEFT_SHIFT=new yt("<<");static BITWISE_RIGHT_SHIFT=new yt(">>");static BITWISE_UNSIGNED_RIGHT_SHIFT=new yt(">>>");static UNARY_PLUS=new yt("UN: +","+");static UNARY_MINUS=new yt("UN: -","-");static UNARY_LOGICAL_NOT=new yt("UN: not","not");static UNARY_BITWISE_COMPLEMENT=new yt("UN: ~","~");static ARRAY_OPERATOR=new yt("[");static OBJECT_OPERATOR=new yt(".");static NULLISH_COALESCING_OPERATOR=new yt("??");static CONDITIONAL_TERNARY_OPERATOR=new yt("?");static VALUE_OF=new Map([["MULTIPLICATION",yt.MULTIPLICATION],["DIVISION",yt.DIVISION],["INTEGER_DIVISON",yt.INTEGER_DIVISION],["MOD",yt.MOD],["ADDITION",yt.ADDITION],["SUBTRACTION",yt.SUBTRACTION],["NOT",yt.NOT],["AND",yt.AND],["OR",yt.OR],["LESS_THAN",yt.LESS_THAN],["LESS_THAN_EQUAL",yt.LESS_THAN_EQUAL],["GREATER_THAN",yt.GREATER_THAN],["GREATER_THAN_EQUAL",yt.GREATER_THAN_EQUAL],["EQUAL",yt.EQUAL],["NOT_EQUAL",yt.NOT_EQUAL],["BITWISE_AND",yt.BITWISE_AND],["BITWISE_OR",yt.BITWISE_OR],["BITWISE_XOR",yt.BITWISE_XOR],["BITWISE_COMPLEMENT",yt.BITWISE_COMPLEMENT],["BITWISE_LEFT_SHIFT",yt.BITWISE_LEFT_SHIFT],["BITWISE_RIGHT_SHIFT",yt.BITWISE_RIGHT_SHIFT],["BITWISE_UNSIGNED_RIGHT_SHIFT",yt.BITWISE_UNSIGNED_RIGHT_SHIFT],["UNARY_PLUS",yt.UNARY_PLUS],["UNARY_MINUS",yt.UNARY_MINUS],["UNARY_LOGICAL_NOT",yt.UNARY_LOGICAL_NOT],["UNARY_BITWISE_COMPLEMENT",yt.UNARY_BITWISE_COMPLEMENT],["ARRAY_OPERATOR",yt.ARRAY_OPERATOR],["OBJECT_OPERATOR",yt.OBJECT_OPERATOR],["NULLISH_COALESCING_OPERATOR",yt.NULLISH_COALESCING_OPERATOR],["CONDITIONAL_TERNARY_OPERATOR",yt.CONDITIONAL_TERNARY_OPERATOR]]);static UNARY_OPERATORS=new Set([yt.ADDITION,yt.SUBTRACTION,yt.NOT,yt.BITWISE_COMPLEMENT,yt.UNARY_PLUS,yt.UNARY_MINUS,yt.UNARY_LOGICAL_NOT,yt.UNARY_BITWISE_COMPLEMENT]);static ARITHMETIC_OPERATORS=new Set([yt.MULTIPLICATION,yt.DIVISION,yt.INTEGER_DIVISION,yt.MOD,yt.ADDITION,yt.SUBTRACTION]);static LOGICAL_OPERATORS=new Set([yt.NOT,yt.AND,yt.OR,yt.LESS_THAN,yt.LESS_THAN_EQUAL,yt.GREATER_THAN,yt.GREATER_THAN_EQUAL,yt.EQUAL,yt.NOT_EQUAL,yt.NULLISH_COALESCING_OPERATOR]);static BITWISE_OPERATORS=new Set([yt.BITWISE_AND,yt.BITWISE_COMPLEMENT,yt.BITWISE_LEFT_SHIFT,yt.BITWISE_OR,yt.BITWISE_RIGHT_SHIFT,yt.BITWISE_UNSIGNED_RIGHT_SHIFT,yt.BITWISE_XOR]);static CONDITIONAL_OPERATORS=new Set([yt.CONDITIONAL_TERNARY_OPERATOR]);static OPERATOR_PRIORITY=new Map([[yt.UNARY_PLUS,1],[yt.UNARY_MINUS,1],[yt.UNARY_LOGICAL_NOT,1],[yt.UNARY_BITWISE_COMPLEMENT,1],[yt.ARRAY_OPERATOR,1],[yt.OBJECT_OPERATOR,1],[yt.MULTIPLICATION,2],[yt.DIVISION,2],[yt.INTEGER_DIVISION,2],[yt.MOD,2],[yt.ADDITION,3],[yt.SUBTRACTION,3],[yt.BITWISE_LEFT_SHIFT,4],[yt.BITWISE_RIGHT_SHIFT,4],[yt.BITWISE_UNSIGNED_RIGHT_SHIFT,4],[yt.LESS_THAN,5],[yt.LESS_THAN_EQUAL,5],[yt.GREATER_THAN,5],[yt.GREATER_THAN_EQUAL,5],[yt.EQUAL,6],[yt.NOT_EQUAL,6],[yt.BITWISE_AND,7],[yt.BITWISE_XOR,8],[yt.BITWISE_OR,9],[yt.AND,10],[yt.OR,11],[yt.NULLISH_COALESCING_OPERATOR,11],[yt.CONDITIONAL_TERNARY_OPERATOR,12]]);static OPERATORS=new Set([...Array.from(yt.ARITHMETIC_OPERATORS),...Array.from(yt.LOGICAL_OPERATORS),...Array.from(yt.BITWISE_OPERATORS),yt.ARRAY_OPERATOR,yt.OBJECT_OPERATOR,...Array.from(yt.CONDITIONAL_OPERATORS)].map((e=>e.getOperator())));static OPERATORS_WITHOUT_SPACE_WRAP=new Set([...Array.from(yt.ARITHMETIC_OPERATORS),...Array.from(yt.LOGICAL_OPERATORS),...Array.from(yt.BITWISE_OPERATORS),yt.ARRAY_OPERATOR,yt.OBJECT_OPERATOR,...Array.from(yt.CONDITIONAL_OPERATORS)].filter((e=>!e.shouldBeWrappedInSpace())).map((e=>e.getOperator())));static OPERATION_VALUE_OF=new Map(Array.from(yt.VALUE_OF.entries()).map((([e,t])=>[t.getOperator(),t])));static UNARY_MAP=new Map([[yt.ADDITION,yt.UNARY_PLUS],[yt.SUBTRACTION,yt.UNARY_MINUS],[yt.NOT,yt.UNARY_LOGICAL_NOT],[yt.BITWISE_COMPLEMENT,yt.UNARY_BITWISE_COMPLEMENT],[yt.UNARY_PLUS,yt.UNARY_PLUS],[yt.UNARY_MINUS,yt.UNARY_MINUS],[yt.UNARY_LOGICAL_NOT,yt.UNARY_LOGICAL_NOT],[yt.UNARY_BITWISE_COMPLEMENT,yt.UNARY_BITWISE_COMPLEMENT]]);static BIGGEST_OPERATOR_SIZE=Array.from(yt.VALUE_OF.values()).map((e=>e.getOperator())).filter((e=>!e.startsWith("UN: "))).map((e=>e.length)).reduce(((e,t)=>e>t?e:t),0);constructor(e,t,r=!1){this.operator=e,this.operatorName=t??e,this._shouldBeWrappedInSpace=r}getOperator(){return this.operator}getOperatorName(){return this.operatorName}shouldBeWrappedInSpace(){return this._shouldBeWrappedInSpace}valueOf(e){return yt.VALUE_OF.get(e)}toString(){return this.operator}}class xt extends wt{tokens=new ee;ops=new ee;constructor(e,t,r,n){super(e||""),t&&this.tokens.push(t),r&&this.tokens.push(r),n&&this.ops.push(n),this.evaluate()}getTokens(){return this.tokens}getOperations(){return this.ops}evaluate(){const e=this.expression.length;let t,r="",n=new _t(""),s=0,a=!1;for(;s<e;){switch(r=this.expression[s],t=n.toString(),r){case" ":a=this.processTokenSepearator(n,t,a);break;case"(":s=this.processSubExpression(e,n,t,s,a),a=!1;break;case")":throw new Mt(this.expression,"Extra closing parenthesis found");case"]":throw new Mt(this.expression,"Extra closing square bracket found");case"'":case'"':{let t=this.processStringLiteral(e,r,s);s=t.getT1(),a=t.getT2();break}case"?":if(s+1<e&&"?"!=this.expression.charAt(s+1)&&0!=s&&"?"!=this.expression.charAt(s-1))s=this.processTernaryOperator(e,n,t,s,a);else{let i=this.processOthers(r,e,n,t,s,a);s=i.getT1(),a=i.getT2(),a&&this.ops.peek()==yt.ARRAY_OPERATOR&&(i=this.process(e,n,s),s=i.getT1(),a=i.getT2())}break;default:let i=this.processOthers(r,e,n,t,s,a);s=i.getT1(),a=i.getT2(),a&&this.ops.peek()==yt.ARRAY_OPERATOR&&(i=this.process(e,n,s),s=i.getT1(),a=i.getT2())}++s}if(t=n.toString(),!se.isNullOrBlank(t)){if(yt.OPERATORS.has(t))throw new Mt(this.expression,"Expression is ending with an operator");this.tokens.push(new wt(t))}}processStringLiteral(e,t,r){let n="",s=r+1;for(;s<e;s++){let e=this.expression.charAt(s);if(e==t&&"\\"!=this.expression.charAt(s-1))break;n+=e}if(s==e&&this.expression.charAt(s-1)!=t)throw new Mt(this.expression,"Missing string ending marker "+t);let a=new oe(s,!1);return this.tokens.push(new It(n,n)),a}process(e,t,r){let n=1;for(++r;r<e&&0!=n;){let e=this.expression.charAt(r);"]"==e?--n:"["==e&&++n,0!=n&&(t.append(e),r++)}return this.tokens.push(new xt(t.toString())),t.setLength(0),new oe(r,!1)}processOthers(e,t,r,n,s,a){let i=t-s;i=i<yt.BIGGEST_OPERATOR_SIZE?i:yt.BIGGEST_OPERATOR_SIZE;for(let e=i;e>0;e--){let t=this.expression.substring(s,s+e);if(yt.OPERATORS_WITHOUT_SPACE_WRAP.has(t))return se.isNullOrBlank(n)||(this.tokens.push(new wt(n)),a=!1),this.checkUnaryOperator(this.tokens,this.ops,yt.OPERATION_VALUE_OF.get(t),a),a=!0,r.setLength(0),new oe(s+e-1,a)}return r.append(e),new oe(s,!1)}processTernaryOperator(e,t,r,n,s){if(s)throw new Mt(this.expression,"Ternary operator is followed by an operator");""!=r.trim()&&(this.tokens.push(new xt(r)),t.setLength(0));let a=1,i="";const o=++n;for(;n<e&&a>0;)i=this.expression.charAt(n),"?"==i?++a:":"==i&&--a,++n;if(":"!=i)throw new Mt(this.expression,"':' operater is missing");if(n>=e)throw new Mt(this.expression,"Third part of the ternary expression is missing");for(;!this.ops.isEmpty()&&this.hasPrecedence(yt.CONDITIONAL_TERNARY_OPERATOR,this.ops.peek());){let e=this.ops.pop();if(yt.UNARY_OPERATORS.has(e)){const t=this.tokens.pop();this.tokens.push(new xt("",t,void 0,e))}else{let t=this.tokens.pop(),r=this.tokens.pop();this.tokens.push(new xt("",r,t,e))}}this.ops.push(yt.CONDITIONAL_TERNARY_OPERATOR),this.tokens.push(new xt(this.expression.substring(o,n-1)));const E=this.expression.substring(n);if(""===E.trim())throw new Mt(this.expression,"Third part of the ternary expression is missing");return this.tokens.push(new xt(E)),e-1}processSubExpression(e,t,r,n,s){if(yt.OPERATORS.has(r))this.checkUnaryOperator(this.tokens,this.ops,yt.OPERATION_VALUE_OF.get(r),s),t.setLength(0);else if(!se.isNullOrBlank(r))throw new Mt(this.expression,Z.format("Unkown token : $ found.",r));let a=1;const i=new _t;let o=this.expression.charAt(n);for(n++;n<e&&a>0;)o=this.expression.charAt(n),"("==o?a++:")"==o&&a--,0!=a&&(i.append(o),n++);if(")"!=o)throw new Mt(this.expression,"Missing a closed parenthesis");for(;i.length()>2&&"("==i.charAt(0)&&")"==i.charAt(i.length()-1);)i.deleteCharAt(0),i.setLength(i.length()-1);return this.tokens.push(new xt(i.toString().trim())),n}processTokenSepearator(e,t,r){return se.isNullOrBlank(t)||(yt.OPERATORS.has(t)?(this.checkUnaryOperator(this.tokens,this.ops,yt.OPERATION_VALUE_OF.get(t),r),r=!0):(this.tokens.push(new wt(t)),r=!1)),e.setLength(0),r}checkUnaryOperator(e,t,r,n){if(r)if(n||e.isEmpty()){if(!yt.UNARY_OPERATORS.has(r))throw new Mt(this.expression,Z.format("Extra operator $ found.",r));{const e=yt.UNARY_MAP.get(r);e&&t.push(e)}}else{for(;!t.isEmpty()&&this.hasPrecedence(r,t.peek());){let r=t.pop();if(yt.UNARY_OPERATORS.has(r)){let t=e.pop();e.push(new xt("",t,void 0,r))}else{let t=e.pop(),n=e.pop();e.push(new xt("",n,t,r))}}t.push(r)}}hasPrecedence(e,t){let r=yt.OPERATOR_PRIORITY.get(e),n=yt.OPERATOR_PRIORITY.get(t);if(!r||!n)throw new Error("Unknown operators provided");return n<r}toString(){if(this.ops.isEmpty())return 1==this.tokens.size()?this.tokens.get(0).toString():"Error: No tokens";let e=new _t,t=0;const r=this.ops.toArray(),n=this.tokens.toArray();for(let s=0;s<r.length;s++)if(r[s].getOperator().startsWith("UN: "))e.append("(").append(r[s].getOperator().substring(4)).append(n[t]instanceof xt?n[t].toString():n[t]).append(")"),t++;else if(r[s]==yt.CONDITIONAL_TERNARY_OPERATOR){let r=n[t++];e.insert(0,r.toString()),e.insert(0,":"),r=n[t++],e.insert(0,r.toString()),e.insert(0,"?"),r=n[t++],e.insert(0,r.toString()).append(")"),e.insert(0,"(")}else{if(0==t){const r=n[t++];e.insert(0,r.toString())}const a=n[t++];e.insert(0,r[s].getOperator()).insert(0,a.toString()).insert(0,"(").append(")")}return e.toString()}equals(e){return this.expression==e.expression}}var vt={};t(vt,"TokenValueExtractor",(()=>Lt));class Lt{static REGEX_SQUARE_BRACKETS=/[\[\]]/;static REGEX_DOT=/\./;getValue(e){let t=this.getPrefix();if(!e.startsWith(t))throw new $(Z.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(Lt.REGEX_SQUARE_BRACKETS).map((e=>e.trim())).filter((e=>!se.isNullOrBlank(e))).reduce(((n,s,a)=>this.resolveForEachPartOfTokenWithBrackets(e,t,r,s,n,a)),n);return this.retrieveElementFrom(e,t,r+1,s)}resolveForEachPartOfTokenWithBrackets(e,t,r,n,s,a){if(!E(s)){if(0===a){if("length"===n&&"string"==typeof s)return s.length;if(Array.isArray(s)){if("length"===n)return s.length;try{let e=parseInt(n);if(isNaN(e))throw new Error(Z.format("$ is not a number",e));if(e>=s.length)return;return s[e]}catch(t){throw new Mt(e,Z.format("$ couldn't be parsed into integer in $",n,e),t)}}return this.checkIfObject(e,t,r,s),s[n]}if(n?.startsWith('"')){if(!n.endsWith('"')||1==n.length||2==n.length)throw new Mt(e,Z.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(Z.format("$ is not a number",t));if(!Array.isArray(s))throw new Mt(e,Z.format("Expecting an array with index $ while processing the expression",t,e));if(t>=s.length)return;return s[t]}catch(t){throw new Mt(e,Z.format("$ couldn't be parsed into integer in $",n,e),t)}}}checkIfObject(e,t,r,n){if("object"!=typeof n||Array.isArray(n))throw new Mt(e,Z.format("Unable to retrive $ from $ in the path $",t[r],n.toString(),e))}}class Ut extends Lt{constructor(e,t){super(),this.store=e,this.prefix=t}getValueInternal(e){let t=e.split(Lt.REGEX_DOT);return this.retrieveElementFrom(e,t,1,this.store)}getStore(){return this.store}setStore(e){return this.store=e,this}setValue(e,t,r=!0,n=!1){this.store=We(this.store),this.modifyStore(e,t,r,n)}modifyStore(e,t,r,n){const s=new xt(e),a=s.getTokens();a.removeLast();const i=s.getOperations();let o=i.removeLast(),E=a.removeLast(),u=E instanceof It?E.getElement():E.getExpression(),A=this.store;for(;!i.isEmpty();)A=o==yt.OBJECT_OPERATOR?this.getDataFromObject(A,u,i.peekLast()):this.getDataFromArray(A,u,i.peekLast()),o=i.removeLast(),E=a.removeLast(),u=E instanceof It?E.getElement():E.getExpression();o==yt.OBJECT_OPERATOR?this.putDataInObject(A,u,t,r,n):this.putDataInArray(A,u,t,r,n)}getDataFromArray(e,t,r){if(!Array.isArray(e))throw new $(Z.format("Expected an array but found $",e));const n=parseInt(t);if(isNaN(n))throw new $(Z.format("Expected an array index but found $",t));if(n<0)throw new $(Z.format("Array index is out of bound - $",t));let s=e[n];return E(s)&&(s=r==yt.OBJECT_OPERATOR?{}:[],e[n]=s),s}getDataFromObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new $(Z.format("Expected an object but found $",e));let n=e[t];return E(n)&&(n=r==yt.OBJECT_OPERATOR?{}:[],e[t]=n),n}putDataInArray(e,t,r,n,s){if(!Array.isArray(e))throw new $(Z.format("Expected an array but found $",e));const a=parseInt(t);if(isNaN(a))throw new $(Z.format("Expected an array index but found $",t));if(a<0)throw new $(Z.format("Array index is out of bound - $",t));(n||E(e[a]))&&(s&&E(r)?e.splice(a,1):e[a]=r)}putDataInObject(e,t,r,n,s){if(Array.isArray(e)||"object"!=typeof e)throw new $(Z.format("Expected an object but found $",e));(n||E(e[t]))&&(s&&E(r)?delete e[t]:e[t]=r)}getPrefix(){return this.prefix}}class Vt extends Ve{constructor(){super("ArrayToObjects",[Ve.PARAMETER_ARRAY_SOURCE,y.of("keyPath",S.ofString("keyPath")),y.of("valuePath",S.of("valuePath",l.STRING,l.NULL)),y.of("ignoreNullValues",S.ofBoolean("ignoreNullValues").setDefaultValue(!1)),y.of("ignoreNullKeys",S.ofBoolean("ignoreNullKeys").setDefaultValue(!0)),y.of("ignoreDuplicateKeys",S.ofBoolean("ignoreDuplicateKeys").setDefaultValue(!1))],Ve.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(Ve.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get("keyPath"),n=e?.getArguments()?.get("valuePath")??"",s=e?.getArguments()?.get("ignoreNullValues"),a=e?.getArguments()?.get("ignoreNullKeys"),i=e?.getArguments()?.get("ignoreDuplicateKeys");const o=new Ut({},"Data."),u=t.filter((e=>!E(e))).reduce(((e,t)=>{o.setStore(t);const u=o.getValue("Data."+r);if(a&&E(u))return e;const A=n?o.getValue("Data."+n):t;return s&&E(A)||i&&e.hasOwnProperty(u)||(e[u]=A),e}),{});return new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,u]]))])}}class Ct{static repoMap=G.ofArrayEntries(V(new Ce),V(new Ge),V(new He),V(new je),V(new qe),V(new Je),V(new ze),V(new Ke),V(new Qe),V(new Ze),V(new et),V(new tt),V(new rt),V(new nt),V(new st),V(new at),V(new it),V(new ot),V(new Et),V(new ut),V(new At),V(new lt),V(new gt),V(new mt),V(new Rt),V(new be),V(new ct),V(new pt),V(new Tt),V(new Vt));static filterableNames=Array.from(Ct.repoMap.values()).map((e=>e.getSignature().getFullName()));find(e,t){if(e==a.SYSTEM_ARRAY)return Ct.repoMap.get(t)}filter(e){return Ct.filterableNames.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}var Gt={};t(Gt,"ContextElement",(()=>bt));class bt{static NULL=new bt(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 Dt=new W("Create").setNamespace(a.SYSTEM_CTX).setParameters(new Map([y.ofEntry("name",(new S).setName("name").setType(f.of(l.STRING)).setMinLength(1).setFormat(Pe.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,I.CONSTANT),y.ofEntry("schema",S.SCHEMA,!1,I.CONSTANT)])).setEvents(new Map([Y.outputEventMapEntry(new Map)]));const Ft=new W("Get").setNamespace(a.SYSTEM_CTX).setParameters(new Map([y.ofEntry("name",(new S).setName("name").setType(f.of(l.STRING)).setMinLength(1).setFormat(Pe.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,I.CONSTANT)])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",S.ofAny("value")]]))]));var Yt={};t(Yt,"ExpressionEvaluator",(()=>Qr));var Bt={};t(Bt,"LogicalNullishCoalescingOperator",(()=>$t));var Ht={};t(Ht,"BinaryOperator",(()=>kt));class kt{nullCheck(e,t,r){if(E(e)||E(t))throw new Ye(Z.format("$ cannot be applied to a null value",r.getOperatorName()))}}class $t extends kt{apply(e,t){return E(e)?t:e}}var jt={};t(jt,"ArithmeticAdditionOperator",(()=>Xt));class Xt extends kt{apply(e,t){return E(e)?t:E(t)?e:e+t}}var Wt={};t(Wt,"ArithmeticDivisionOperator",(()=>qt));class qt extends kt{apply(e,t){return this.nullCheck(e,t,yt.DIVISION),e/t}}var Jt={};t(Jt,"ArithmeticIntegerDivisionOperator",(()=>zt));class zt extends kt{apply(e,t){return this.nullCheck(e,t,yt.DIVISION),Math.floor(e/t)}}var Kt={};t(Kt,"ArithmeticModulusOperator",(()=>Qt));class Qt extends kt{apply(e,t){return this.nullCheck(e,t,yt.MOD),e%t}}var Zt={};t(Zt,"ArithmeticMultiplicationOperator",(()=>er));class er extends kt{apply(e,t){this.nullCheck(e,t,yt.MULTIPLICATION);const r="string"==typeof e;if(r||"string"===typeof t){let n=r?e:t,s=r?t:e,a="",i=s<0;s=Math.abs(s);let o=Math.floor(s);for(;o-- >0;)a+=n;let E=Math.floor(n.length*(s-Math.floor(s)));if(E<0&&(E=-E),0!=E&&(a+=n.substring(0,E)),i){let e="";for(let t=a.length-1;t>=0;t--)e+=a[t];return e}return a}return e*t}}var tr={};t(tr,"ArithmeticSubtractionOperator",(()=>rr));class rr extends kt{apply(e,t){return this.nullCheck(e,t,yt.SUBTRACTION),e-t}}var nr={};t(nr,"ArrayOperator",(()=>sr));class sr extends kt{apply(e,t){if(!e)throw new Ye("Cannot apply array operator on a null value");if(!t)throw new Ye("Cannot retrive null index value");if(!Array.isArray(e)&&"string"!=typeof e)throw new Ye(Z.format("Cannot retrieve value from a primitive value $",e));if(t>=e.length)throw new Ye(Z.format("Cannot retrieve index $ from the array of length $",t,e.length));return e[t]}}var ar={};t(ar,"BitwiseAndOperator",(()=>ir));class ir extends kt{apply(e,t){return this.nullCheck(e,t,yt.BITWISE_AND),e&t}}var or={};t(or,"BitwiseLeftShiftOperator",(()=>Er));class Er extends kt{apply(e,t){return this.nullCheck(e,t,yt.BITWISE_LEFT_SHIFT),e<<t}}var ur={};t(ur,"BitwiseOrOperator",(()=>Ar));class Ar extends kt{apply(e,t){return this.nullCheck(e,t,yt.BITWISE_OR),e|t}}var lr={};t(lr,"BitwiseRightShiftOperator",(()=>gr));class gr extends kt{apply(e,t){return this.nullCheck(e,t,yt.BITWISE_RIGHT_SHIFT),e>>t}}var mr={};t(mr,"BitwiseUnsignedRightShiftOperator",(()=>Rr));class Rr extends kt{apply(e,t){return this.nullCheck(e,t,yt.BITWISE_UNSIGNED_RIGHT_SHIFT),e>>>t}}var cr={};t(cr,"BitwiseXorOperator",(()=>pr));class pr extends kt{apply(e,t){return this.nullCheck(e,t,yt.BITWISE_XOR),e^t}}var Tr={};t(Tr,"LogicalAndOperator",(()=>hr));class hr extends kt{apply(e,t){const r=Be.findPrimitiveNullAsBoolean(e),n=Be.findPrimitiveNullAsBoolean(t);if(r.getT1()!=l.BOOLEAN)throw new Ye(Z.format("Boolean value expected but found $",r.getT2()));if(n.getT1()!=l.BOOLEAN)throw new Ye(Z.format("Boolean value expected but found $",n.getT2()));return r.getT2()&&n.getT2()}}var Nr={};t(Nr,"LogicalEqualOperator",(()=>fr));class fr extends kt{apply(e,t){return re(e,t)}}var _r={};t(_r,"LogicalGreaterThanEqualOperator",(()=>Sr));class Sr extends kt{apply(e,t){const r=Be.findPrimitiveNullAsBoolean(e),n=Be.findPrimitiveNullAsBoolean(t);if(r.getT1()==l.BOOLEAN||n.getT1()==l.BOOLEAN)throw new Ye(Z.format("Cannot compare >= with the values $ and $",r.getT2(),n.getT2()));return r.getT2()>=n.getT2()}}var Mr={};t(Mr,"LogicalGreaterThanOperator",(()=>Or));class Or extends kt{apply(e,t){const r=Be.findPrimitiveNullAsBoolean(e),n=Be.findPrimitiveNullAsBoolean(t);if(r.getT1()==l.BOOLEAN||n.getT1()==l.BOOLEAN)throw new Ye(Z.format("Cannot compare > with the values $ and $",r.getT2(),n.getT2()));return r.getT2()>n.getT2()}}var wr={};t(wr,"LogicalLessThanEqualOperator",(()=>dr));class dr extends kt{apply(e,t){const r=Be.findPrimitiveNullAsBoolean(e),n=Be.findPrimitiveNullAsBoolean(t);if(r.getT1()==l.BOOLEAN||n.getT1()==l.BOOLEAN)throw new Ye(Z.format("Cannot compare <= with the values $ and $",r.getT2(),n.getT2()));return r.getT2()<=n.getT2()}}var Ir={};t(Ir,"LogicalLessThanOperator",(()=>Pr));class Pr extends kt{apply(e,t){const r=Be.findPrimitiveNullAsBoolean(e),n=Be.findPrimitiveNullAsBoolean(t);if(r.getT1()==l.BOOLEAN||n.getT1()==l.BOOLEAN)throw new Ye(Z.format("Cannot compare < with the values $ and $",r.getT2(),n.getT2()));return r.getT2()<n.getT2()}}var yr={};t(yr,"LogicalNotEqualOperator",(()=>xr));class xr extends kt{apply(e,t){return!re(e,t)}}var vr={};t(vr,"LogicalOrOperator",(()=>Lr));class Lr extends kt{apply(e,t){const r=Be.findPrimitiveNullAsBoolean(e),n=Be.findPrimitiveNullAsBoolean(t);if(r.getT1()!=l.BOOLEAN)throw new Ye(Z.format("Boolean value expected but found $",r.getT2()));if(n.getT1()!=l.BOOLEAN)throw new Ye(Z.format("Boolean value expected but found $",n.getT2()));return r.getT2()||n.getT2()}}var Ur={};t(Ur,"ObjectOperator",(()=>Vr));class Vr extends kt{apply(e,t){if(!e)throw new Ye("Cannot apply array operator on a null value");if(!t)throw new Ye("Cannot retrive null property value");const r=typeof e;if(!Array.isArray(e)&&"string"!=r&&"object"!=r)throw new Ye(Z.format("Cannot retrieve value from a primitive value $",e));return e[t]}}var Cr={};t(Cr,"ArithmeticUnaryMinusOperator",(()=>Dr));var Gr={};t(Gr,"UnaryOperator",(()=>br));class br{nullCheck(e,t){if(E(e))throw new Ye(Z.format("$ cannot be applied to a null value",t.getOperatorName()))}}class Dr extends br{apply(e){return this.nullCheck(e,yt.UNARY_MINUS),Be.findPrimitiveNumberType(e),-e}}var Fr={};t(Fr,"ArithmeticUnaryPlusOperator",(()=>Yr));class Yr extends br{apply(e){return this.nullCheck(e,yt.UNARY_PLUS),Be.findPrimitiveNumberType(e),e}}var Br={};t(Br,"BitwiseComplementOperator",(()=>Hr));class Hr extends br{apply(e){this.nullCheck(e,yt.UNARY_BITWISE_COMPLEMENT);let t=Be.findPrimitiveNumberType(e);if(t.getT1()!=l.INTEGER&&t.getT1()!=l.LONG)throw new Ye(Z.format("Unable to apply bitwise operator on $",e));return~e}}var kr={};t(kr,"LogicalNotOperator",(()=>$r));class $r extends br{apply(e){return!e&&""!==e}}var jr={};t(jr,"LiteralTokenValueExtractor",(()=>Wr));const Xr=new Map([["true",!0],["false",!1],["null",void 0],["undefined",void 0]]);class Wr extends Lt{static INSTANCE=new Wr;getValueInternal(e){if(!se.isNullOrBlank(e))return e=e.trim(),Xr.has(e)?Xr.get(e):e.startsWith('"')?this.processString(e):this.processNumbers(e)}processNumbers(e){try{let t=Number(e);if(isNaN(t))throw new Error("Parse number error");return t}catch(t){throw new Mt(e,Z.format("Unable to parse the literal or expression $",e),t)}}processString(e){if(!e.endsWith('"'))throw new Mt(e,Z.format("String literal $ is not closed properly",e));return e.substring(1,e.length-1)}getPrefix(){return""}}var qr={},Jr={};t(Jr,"ConditionalTernaryOperator",(()=>zr));class zr extends class{nullCheck(e,t,r,n){if(E(e)||E(t)||E(r))throw new Ye(Z.format("$ cannot be applied to a null value",n.getOperatorName()))}}{apply(e,t,r){return e?t:r}}e(qr,Jr);class Kr extends Lt{static PREFIX="_internal.";values=new Map;addValue(e,t){this.values.set(e,t)}getValueInternal(e){let t=e.split(Lt.REGEX_DOT),r=t[1],n=r.indexOf("["),s=2;return-1!=n&&(r=t[1].substring(0,n),t[1]=t[1].substring(n),s=1),this.retrieveElementFrom(e,t,s,this.values.get(r))}getPrefix(){return Kr.PREFIX}}class Qr{static UNARY_OPERATORS_MAP=new Map([[yt.UNARY_BITWISE_COMPLEMENT,new Hr],[yt.UNARY_LOGICAL_NOT,new $r],[yt.UNARY_MINUS,new Dr],[yt.UNARY_PLUS,new Yr]]);static TERNARY_OPERATORS_MAP=new Map([[yt.CONDITIONAL_TERNARY_OPERATOR,new zr]]);static BINARY_OPERATORS_MAP=new Map([[yt.ADDITION,new Xt],[yt.DIVISION,new qt],[yt.INTEGER_DIVISION,new zt],[yt.MOD,new Qt],[yt.MULTIPLICATION,new er],[yt.SUBTRACTION,new rr],[yt.BITWISE_AND,new ir],[yt.BITWISE_LEFT_SHIFT,new Er],[yt.BITWISE_OR,new Ar],[yt.BITWISE_RIGHT_SHIFT,new gr],[yt.BITWISE_UNSIGNED_RIGHT_SHIFT,new Rr],[yt.BITWISE_XOR,new pr],[yt.AND,new hr],[yt.EQUAL,new fr],[yt.GREATER_THAN,new Or],[yt.GREATER_THAN_EQUAL,new Sr],[yt.LESS_THAN,new Pr],[yt.LESS_THAN_EQUAL,new dr],[yt.OR,new Lr],[yt.NOT_EQUAL,new xr],[yt.NULLISH_COALESCING_OPERATOR,new $t],[yt.ARRAY_OPERATOR,new sr],[yt.OBJECT_OPERATOR,new Vr]]);static UNARY_OPERATORS_MAP_KEY_SET=new Set(Qr.UNARY_OPERATORS_MAP.keys());internalTokenValueExtractor=new Kr;constructor(e){e instanceof xt?(this.exp=e,this.expression=this.exp.getExpression()):this.expression=e}evaluate(e){const t=this.processNestingExpression(this.expression,e);return this.expression=t.getT1(),this.exp=t.getT2(),(e=new Map(e.entries())).set(this.internalTokenValueExtractor.getPrefix(),this.internalTokenValueExtractor),this.evaluateExpression(this.exp,e)}processNestingExpression(e,t){let r=0,n=0;const s=new ee;for(;n<e.length-1;){if("{"==e.charAt(n)&&"{"==e.charAt(n+1))0==r&&s.push(new oe(n+2,-1)),r++,n++;else if("}"==e.charAt(n)&&"}"==e.charAt(n+1)){if(r--,r<0)throw new Mt(e,"Expecting {{ nesting path operator to be started before closing");0==r&&s.push(s.pop().setT2(n)),n++}n++}let a=this.replaceNestingExpression(e,t,s);return new oe(a,new xt(a))}replaceNestingExpression(e,t,r){let n=e;for(var s of r.toArray()){if(-1==s.getT2())throw new Mt(e,"Expecting }} nesting path operator to be closed");let r=new Qr(n.substring(s.getT1(),s.getT2())).evaluate(t);n=n.substring(0,s.getT1()-2)+r+n.substring(s.getT2()+2)}return n}getExpression(){return this.exp||(this.exp=new xt(this.expression)),this.exp}getExpressionString(){return this.expression}evaluateExpression(e,t){let r=e.getOperations(),n=e.getTokens();for(;!r.isEmpty();){let e=r.pop(),o=n.pop();if(Qr.UNARY_OPERATORS_MAP_KEY_SET.has(e))n.push(this.applyUnaryOperation(e,this.getValueFromToken(t,o)));else if(e==yt.OBJECT_OPERATOR||e==yt.ARRAY_OPERATOR)this.processObjectOrArrayOperator(t,r,n,e,o);else if(e==yt.CONDITIONAL_TERNARY_OPERATOR){const r=n.pop(),E=n.pop();var s=this.getValueFromToken(t,E),a=this.getValueFromToken(t,r),i=this.getValueFromToken(t,o);n.push(this.applyTernaryOperation(e,s,a,i))}else{const r=n.pop();s=this.getValueFromToken(t,r),a=this.getValueFromToken(t,o);n.push(this.applyBinaryOperation(e,s,a))}}if(n.isEmpty())throw new Ye(Z.format("Expression : $ evaluated to null",e));if(1!=n.size())throw new Ye(Z.format("Expression : $ evaluated multiple values $",e,n));const o=n.get(0);if(o instanceof It)return o.getElement();if(!(o instanceof xt))return this.getValueFromToken(t,o);throw new Ye(Z.format("Expression : $ evaluated to $",e,n.get(0)))}processObjectOrArrayOperator(e,t,r,n,s){const a=new ee,i=new ee;if(!n||!s)return;do{i.push(n),s instanceof xt?a.push(new It(s.toString(),this.evaluateExpression(s,e))):s&&a.push(s),s=r.isEmpty()?void 0:r.pop(),n=t.isEmpty()?void 0:t.pop()}while(n==yt.OBJECT_OPERATOR||n==yt.ARRAY_OPERATOR);s&&(s instanceof xt?a.push(new It(s.toString(),this.evaluateExpression(s,e))):a.push(s)),n&&t.push(n);let o=a.pop();if(o instanceof It&&"object"==typeof o.getTokenValue()){const e=(new Date).getTime()+""+Math.round(1e3*Math.random());this.internalTokenValueExtractor.addValue(e,o.getTokenValue()),o=new wt(Kr.PREFIX+e)}let E=new _t(o instanceof It?o.getTokenValue():o.toString());for(;!a.isEmpty();)o=a.pop(),n=i.pop(),E.append(n.getOperator()).append(o instanceof It?o.getTokenValue():o.toString()),n==yt.ARRAY_OPERATOR&&E.append("]");let u=E.toString(),A=u.substring(0,u.indexOf(".")+1);if(A.length>2&&e.has(A))r.push(new It(u,this.getValue(u,e)));else{let e;try{e=Wr.INSTANCE.getValue(u)}catch(t){e=u}r.push(new It(u,e))}}applyTernaryOperation(e,t,r,n){let s=Qr.TERNARY_OPERATORS_MAP.get(e);if(!s)throw new Mt(this.expression,Z.format("No operator found to evaluate $",this.getExpression()));return new It(e.toString(),s.apply(t,r,n))}applyBinaryOperation(e,t,r){let n=typeof t,s=typeof r,a=Qr.BINARY_OPERATORS_MAP.get(e);if(("object"===n||"object"===s)&&e!==yt.EQUAL&&e!==yt.NOT_EQUAL&&e!==yt.NULLISH_COALESCING_OPERATOR)throw new Mt(this.expression,Z.format("Cannot evaluate expression $ $ $",t,e.getOperator(),r));if(!a)throw new Mt(this.expression,Z.format("No operator found to evaluate $ $ $",t,e.getOperator(),r));return new It(e.toString(),a.apply(t,r))}applyUnaryOperation(e,t){if("object"===typeof t||Array.isArray(t))throw new Mt(this.expression,Z.format("The operator $ cannot be applied to $",e.getOperator(),t));let r=Qr.UNARY_OPERATORS_MAP.get(e);if(!r)throw new Mt(this.expression,Z.format("No Unary operator $ is found to apply on $",e.getOperator(),t));return new It(e.toString(),r.apply(t))}getValueFromToken(e,t){return t instanceof xt?this.evaluateExpression(t,e):t instanceof It?t.getElement():this.getValue(t.getExpression(),e)}getValue(e,t){if(e.length<=5)return Wr.INSTANCE.getValue(e);const r=e.substring(0,e.indexOf(".")+1);return(t.get(r)??Wr.INSTANCE).getValue(e)}}const Zr=new W("Set").setNamespace(a.SYSTEM_CTX).setParameters(new Map([y.ofEntry("name",(new S).setName("name").setType(f.of(l.STRING)).setMinLength(1),!1,I.CONSTANT),y.ofEntry("value",S.ofAny("value"))])).setEvents(new Map([Y.outputEventMapEntry(new Map)]));const en=new W("GenerateEvent").setNamespace(a.SYSTEM).setParameters(new Map([y.ofEntry("eventName",S.ofString("eventName").setDefaultValue("output")),y.ofEntry("results",S.ofObject("results").setProperties(new Map([["name",S.ofString("name")],["value",y.EXPRESSION]])),!0)])).setEvents(new Map([Y.outputEventMapEntry(new Map)]));class tn extends Ue{static CONDITION="condition";static SIGNATURE=new W("If").setNamespace(a.SYSTEM).setParameters(new Map([y.ofEntry(tn.CONDITION,S.of(tn.CONDITION,l.BOOLEAN))])).setEvents(new Map([Y.eventMapEntry(Y.TRUE,new Map),Y.eventMapEntry(Y.FALSE,new Map),Y.outputEventMapEntry(new Map)]));getSignature(){return tn.SIGNATURE}async internalExecute(e){var t=e.getArguments()?.get(tn.CONDITION);return new j([B.of(t?Y.TRUE:Y.FALSE,new Map),B.outputOf(new Map)])}}const rn=new W("Break").setNamespace(a.SYSTEM_LOOP).setParameters(new Map([y.ofEntry("stepName",S.of("stepName",l.STRING))])).setEvents(new Map([Y.outputEventMapEntry(new Map([]))]));const nn=new W("CountLoop").setNamespace(a.SYSTEM_LOOP).setParameters(new Map([y.ofEntry("count",S.of("count",l.INTEGER))])).setEvents(new Map([Y.eventMapEntry(Y.ITERATION,new Map([["index",S.of("index",l.INTEGER)]])),Y.outputEventMapEntry(new Map([["value",S.of("value",l.INTEGER)]]))]));const sn=new W("RangeLoop").setNamespace(a.SYSTEM_LOOP).setParameters(new Map([y.ofEntry("from",S.of("from",l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE).setDefaultValue(0)),y.ofEntry("to",S.of("to",l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE).setDefaultValue(1)),y.ofEntry("step",S.of("step",l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE).setDefaultValue(1).setNot((new S).setConstant(0)))])).setEvents(new Map([Y.eventMapEntry(Y.ITERATION,new Map([["index",S.of("index",l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE)]])),Y.outputEventMapEntry(new Map([["value",S.of("value",l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE)]]))]));const an=new W("Add").setNamespace(a.MATH).setParameters(new Map([["value",new y("value",S.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",S.ofNumber("value")]]))]));const on=[()=>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 En extends Ue{constructor(e,t,r=1,...n){super(),n&&n.length||(n=[l.DOUBLE]),this.parametersNumber=r,this.mathFunction=t,this.signature=new W(e).setNamespace(a.MATH).setParameters(on[r-1]()).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",(new S).setType(f.of(...n)).setName("value")]]))]))}getSignature(){return this.signature}async internalExecute(e){let t,r=Be.findPrimitiveNumberType(e.getArguments()?.get(1==this.parametersNumber?"value":"value1")).getT2();return 2==this.parametersNumber&&(t=Be.findPrimitiveNumberType(e.getArguments()?.get("value2")).getT2()),new j([B.outputOf(new Map([["value",this.mathFunction.call(this,r,t)]]))])}}class un extends Ue{static SIGNATURE=new W("Hypotenuse").setNamespace(a.MATH).setParameters(new Map([["value",new y("value",S.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",(new S).setType(f.of(l.DOUBLE)).setName("value")]]))]));constructor(){super()}getSignature(){return un.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get("value");return new j([B.outputOf(new Map([["value",Math.sqrt(t.reduce(((e,t)=>e+t*t),0))]]))])}}const An=new W("Maximum").setNamespace(a.MATH).setParameters(new Map([["value",new y("value",S.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",S.ofNumber("value")]]))]));const ln=new W("Minimum").setNamespace(a.MATH).setParameters(new Map([["value",new y("value",S.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",S.ofNumber("value")]]))]));class gn extends Ue{static SIGNATURE=new W("Random").setNamespace(a.MATH).setEvents(new Map([Y.outputEventMapEntry(G.of("value",S.ofDouble("value")))]));getSignature(){return gn.SIGNATURE}async internalExecute(e){return new j([B.outputOf(new Map([["value",Math.random()]]))])}}class mn extends Ue{static MIN_VALUE="minValue";static MAX_VALUE="maxValue";static VALUE="value";static SIGNATURE=new W("RandomFloat").setParameters(G.of(mn.MIN_VALUE,y.of(mn.MIN_VALUE,S.ofFloat(mn.MIN_VALUE).setDefaultValue(0)),mn.MAX_VALUE,y.of(mn.MAX_VALUE,S.ofFloat(mn.MAX_VALUE).setDefaultValue(2147483647)))).setNamespace(a.MATH).setEvents(new Map([Y.outputEventMapEntry(G.of(mn.VALUE,S.ofFloat(mn.VALUE)))]));getSignature(){return mn.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(mn.MIN_VALUE),r=e.getArguments()?.get(mn.MAX_VALUE),n=Math.random()*(r-t)+t;return new j([B.outputOf(new Map([[mn.VALUE,n]]))])}}class Rn extends Ue{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([Y.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 j([B.outputOf(new Map([[Rn.VALUE,n]]))])}}const cn={Absolute:new En("Absolute",(e=>Math.abs(e)),1,l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE),ACosine:new En("ArcCosine",(e=>Math.acos(e))),ASine:new En("ArcSine",(e=>Math.asin(e))),ATangent:new En("ArcTangent",(e=>Math.atan(e))),Ceiling:new En("Ceiling",(e=>Math.ceil(e))),Cosine:new En("Cosine",(e=>Math.cos(e))),CosineH:new En("HyperbolicCosine",(e=>Math.cosh(e))),CubeRoot:new En("CubeRoot",(e=>Math.cbrt(e))),Exponential:new En("Exponential",(e=>Math.exp(e))),Expm1:new En("ExponentialMinus1",(e=>Math.expm1(e))),Floor:new En("Floor",(e=>Math.floor(e))),Log:new En("LogNatural",(e=>Math.log(e))),Log10:new En("Log10",(e=>Math.log10(e))),Round:new En("Round",(e=>Math.round(e)),1,l.INTEGER,l.LONG),Sine:new En("Sine",(e=>Math.sin(e))),SineH:new En("HyperbolicSine",(e=>Math.sinh(e))),Tangent:new En("Tangent",(e=>Math.tan(e))),TangentH:new En("HyperbolicTangent",(e=>Math.tanh(e))),ToDegrees:new En("ToDegrees",(e=>e*(Math.PI/180))),ToRadians:new En("ToRadians",(e=>e*(180/Math.PI))),SquareRoot:new En("SquareRoot",(e=>Math.sqrt(e))),ArcTangent:new En("ArcTangent2",((e,t)=>Math.atan2(e,t)),2),Power:new En("Power",((e,t)=>Math.pow(e,t)),2),Add:new class extends Ue{getSignature(){return an}async internalExecute(e){let t=e.getArguments()?.get("value");return new j([B.outputOf(new Map([["value",t.reduce(((e,t)=>e+t),0)]]))])}},Hypotenuse:new un,Maximum:new class extends Ue{getSignature(){return An}async internalExecute(e){let t=e.getArguments()?.get("value");return new j([B.outputOf(new Map([["value",t.reduce(((e,t)=>!e&&0!==e||t>e?t:e))]]))])}},Minimum:new class extends Ue{getSignature(){return ln}async internalExecute(e){let t=e.getArguments()?.get("value");return new j([B.outputOf(new Map([["value",t.reduce(((e,t)=>!e&&0!==e||t<e?t:e))]]))])}},Random:new gn,RandomFloat:new mn,RandomInt:new Rn},pn=Object.values(cn).map((e=>e.getSignature().getFullName()));class Tn{find(e,t){if(e==a.MATH)return cn[t]}filter(e){return pn.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}class hn extends Ue{constructor(e,t){super(),this.signature=new W(e).setNamespace(a.SYSTEM_OBJECT).setParameters(new Map([y.ofEntry("source",S.ofAny("source"))])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",t]]))]))}getSignature(){return this.signature}}const Nn={ObjectValues:new class extends hn{constructor(){super("ObjectValues",S.ofArray("value",S.ofAny("value")))}async internalExecute(e){var t=e.getArguments()?.get("source");if(E(t))return new j([B.outputOf(new Map([["value",[]]]))]);let r=Object.entries(We(t)).sort(((e,t)=>e[0].localeCompare(t[0]))).map((e=>e[1]));return new j([B.outputOf(new Map([["value",r]]))])}},ObjectKeys:new class extends hn{constructor(){super("ObjectKeys",S.ofArray("value",S.ofString("value")))}async internalExecute(e){var t=e.getArguments()?.get("source");if(E(t))return new j([B.outputOf(new Map([["value",[]]]))]);let r=Object.keys(We(t)).sort(((e,t)=>e.localeCompare(t)));return new j([B.outputOf(new Map([["value",r]]))])}},ObjectEntries:new class extends hn{constructor(){super("ObjectEntries",S.ofArray("value",S.ofArray("tuple",S.ofString("key"),S.ofAny("value"))))}async internalExecute(e){var t=e.getArguments()?.get("source");if(E(t))return new j([B.outputOf(new Map([["value",[]]]))]);let r=Object.entries(We(t)).sort(((e,t)=>e[0].localeCompare(t[0])));return new j([B.outputOf(new Map([["value",r]]))])}},ObjectDeleteKey:new class extends Ue{constructor(){super(),this.signature=new W("ObjectDeleteKey").setNamespace(a.SYSTEM_OBJECT).setParameters(new Map([y.ofEntry("source",S.ofAny("source")),y.ofEntry("key",S.ofString("key"))])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",S.ofAny("value")]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get("source"),r=e.getArguments()?.get("key");return E(t)?new j([B.outputOf(new Map([["value",void 0]]))]):(t=We(t),delete t[r],new j([B.outputOf(new Map([["value",t]]))]))}},ObjectPutValue:new class extends Ue{constructor(){super(),this.signature=new W("ObjectPutValue").setNamespace(a.SYSTEM_OBJECT).setParameters(new Map([y.ofEntry("source",S.ofObject("source")),y.ofEntry("key",S.ofString("key")),y.ofEntry("value",S.ofAny("value")),y.ofEntry("overwrite",S.ofBoolean("overwrite").setDefaultValue(!0)),y.ofEntry("deleteKeyOnNull",S.ofBoolean("deleteKeyOnNull").setDefaultValue(!1))])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",S.ofObject("value")]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get("source"),r=e.getArguments()?.get("key"),n=e.getArguments()?.get("value"),s=e.getArguments()?.get("overwrite"),a=e.getArguments()?.get("deleteKeyOnNull");const i=new Ut(t,"Data.");return i.setValue(r,n,s,a),new j([B.outputOf(new Map([["value",i.getStore()]]))])}}},fn=Object.values(Nn).map((e=>e.getSignature().getFullName()));class _n{find(e,t){if(e==a.SYSTEM_OBJECT)return Nn[t]}filter(e){return fn.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}class Sn extends Ue{static VALUES="values";static SIGNATURE=new W("Print").setNamespace(a.SYSTEM).setParameters(new Map([y.ofEntry(Sn.VALUES,S.ofAny(Sn.VALUES),!0)]));getSignature(){return Sn.SIGNATURE}async internalExecute(e){var t=e.getArguments()?.get(Sn.VALUES);return console?.log(...t),new j([B.outputOf(new Map)])}}class Mn extends Ue{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(Mn.PARAMETER_STRING_NAME,S.ofString(Mn.PARAMETER_STRING_NAME));static PARAMETER_SECOND_STRING=new y(Mn.PARAMETER_SECOND_STRING_NAME,S.ofString(Mn.PARAMETER_SECOND_STRING_NAME));static PARAMETER_THIRD_STRING=new y(Mn.PARAMETER_THIRD_STRING_NAME,S.ofString(Mn.PARAMETER_THIRD_STRING_NAME));static PARAMETER_INDEX=new y(Mn.PARAMETER_INDEX_NAME,S.ofInteger(Mn.PARAMETER_INDEX_NAME));static PARAMETER_SECOND_INDEX=new y(Mn.PARAMETER_SECOND_INDEX_NAME,S.ofInteger(Mn.PARAMETER_SECOND_INDEX_NAME));static PARAMETER_SEARCH_STRING=new y(Mn.PARAMETER_SEARCH_STRING_NAME,S.ofString(Mn.PARAMETER_STRING_NAME));static EVENT_STRING=new Y(Y.OUTPUT,G.of(Mn.EVENT_RESULT_NAME,S.ofString(Mn.EVENT_RESULT_NAME)));static EVENT_BOOLEAN=new Y(Y.OUTPUT,G.of(Mn.EVENT_RESULT_NAME,S.ofBoolean(Mn.EVENT_RESULT_NAME)));static EVENT_INT=new Y(Y.OUTPUT,G.of(Mn.EVENT_RESULT_NAME,S.ofInteger(Mn.EVENT_RESULT_NAME)));static EVENT_ARRAY=new Y(Y.OUTPUT,G.of(Mn.EVENT_RESULT_NAME,S.ofArray(Mn.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 Mn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Mn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Mn.PARAMETER_SEARCH_STRING_NAME);return new j([B.outputOf(G.of(Mn.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,Mn.EVENT_BOOLEAN,Mn.PARAMETER_STRING,Mn.PARAMETER_SEARCH_STRING)]}static ofEntryAsStringAndIntegerStringOutput(e,t){return[e,new class extends Mn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Mn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Mn.PARAMETER_INDEX_NAME);return new j([B.outputOf(G.of(Mn.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,Mn.EVENT_STRING,Mn.PARAMETER_STRING,Mn.PARAMETER_INDEX)]}static ofEntryAsStringIntegerOutput(e,t){return[e,new class extends Mn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Mn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Mn.PARAMETER_SEARCH_STRING_NAME);return new j([B.outputOf(G.of(Mn.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,Mn.EVENT_INT,Mn.PARAMETER_STRING,Mn.PARAMETER_SEARCH_STRING)]}static ofEntryString(e,t){return[e,new class extends Mn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Mn.PARAMETER_STRING_NAME);return new j([B.outputOf(G.of(Mn.EVENT_RESULT_NAME,t(r)))])}}(a.STRING,e,Mn.EVENT_STRING,Mn.PARAMETER_STRING)]}static ofEntryStringBooleanOutput(e,t){return[e,new class extends Mn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Mn.PARAMETER_STRING_NAME);return new j([B.outputOf(G.of(Mn.EVENT_RESULT_NAME,t(r)))])}}(a.STRING,e,Mn.EVENT_BOOLEAN,Mn.PARAMETER_STRING)]}static ofEntryAsStringStringIntegerIntegerOutput(e,t){return[e,new class extends Mn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Mn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Mn.PARAMETER_SEARCH_STRING_NAME),s=e?.getArguments()?.get(Mn.PARAMETER_INDEX_NAME);return new j([B.outputOf(G.of(Mn.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,Mn.EVENT_INT,Mn.PARAMETER_STRING,Mn.PARAMETER_SEARCH_STRING,Mn.PARAMETER_INDEX)]}static ofEntryAsStringIntegerIntegerStringOutput(e,t){return[e,new class extends Mn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Mn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Mn.PARAMETER_INDEX_NAME),s=e?.getArguments()?.get(Mn.PARAMETER_SECOND_INDEX_NAME);return new j([B.outputOf(G.of(Mn.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,Mn.EVENT_INT,Mn.PARAMETER_STRING,Mn.PARAMETER_INDEX,Mn.PARAMETER_SECOND_INDEX)]}static ofEntryAsStringStringStringStringOutput(e,t){return[e,new class extends Mn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Mn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Mn.PARAMETER_SECOND_STRING_NAME),s=e?.getArguments()?.get(Mn.PARAMETER_THIRD_STRING_NAME);return new j([B.outputOf(G.of(Mn.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,Mn.EVENT_STRING,Mn.PARAMETER_STRING,Mn.PARAMETER_SECOND_STRING,Mn.PARAMETER_THIRD_STRING)]}}class On extends Ue{static VALUE="value";static SCHEMA=(new S).setName(On.VALUE).setType(new N(l.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([Y.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 j([B.outputOf(new Map([[On.VALUE,r]]))])}}class wn extends Ue{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(wn.PARAMETER_STRING_NAME,S.ofString(wn.PARAMETER_STRING_NAME));PARAMETER_AT_START=new y(wn.PARAMETER_AT_START_NAME,S.ofInteger(wn.PARAMETER_AT_START_NAME));PARAMETER_AT_END=new y(wn.PARAMETER_AT_END_NAME,S.ofInteger(wn.PARAMETER_AT_END_NAME));EVENT_STRING=new Y(Y.OUTPUT,new Map([[wn.EVENT_RESULT_NAME,S.ofString(wn.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(wn.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(wn.PARAMETER_AT_START_NAME),n=e?.getArguments()?.get(wn.PARAMETER_AT_END_NAME);if(n>=r){let e="";return e+=t.substring(0,r),e+=t.substring(n),new j([B.outputOf(new Map([[wn.EVENT_RESULT_NAME,e.toString()]]))])}return new j([B.outputOf(new Map([[wn.EVENT_RESULT_NAME,t]]))])}}class dn extends Ue{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(dn.PARAMETER_STRING_NAME,S.ofString(dn.PARAMETER_STRING_NAME));PARAMETER_AT_POSITION=new y(dn.PARAMETER_AT_POSITION_NAME,S.ofInteger(dn.PARAMETER_AT_POSITION_NAME));PARAMETER_INSERT_STRING=new y(dn.PARAMETER_INSERT_STRING_NAME,S.ofString(dn.PARAMETER_INSERT_STRING_NAME));EVENT_STRING=new Y(Y.OUTPUT,new Map([[this.EVENT_RESULT_NAME,S.ofString(this.EVENT_RESULT_NAME)]]));signature=new W("InsertAtGivenPosition").setNamespace(a.STRING).setParameters(new Map([[this.PARAMETER_STRING.getParameterName(),this.PARAMETER_STRING],[this.PARAMETER_AT_POSITION.getParameterName(),this.PARAMETER_AT_POSITION],[this.PARAMETER_INSERT_STRING.getParameterName(),this.PARAMETER_INSERT_STRING]])).setEvents(new Map([Y.outputEventMapEntry(new Map([[this.EVENT_RESULT_NAME,S.ofString(this.EVENT_RESULT_NAME)]]))]));getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(dn.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(dn.PARAMETER_AT_POSITION_NAME),n=e?.getArguments()?.get(dn.PARAMETER_INSERT_STRING_NAME),s="";return s+=t.substring(0,r),s+=n,s+=t.substring(r),new j([B.outputOf(new Map([[this.EVENT_RESULT_NAME,s]]))])}}class In extends Ue{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(In.PARAMETER_STRING_NAME,S.ofString(In.PARAMETER_STRING_NAME));static PARAMETER_POSTPAD_STRING=new y(In.PARAMETER_POSTPAD_STRING_NAME,S.ofString(In.PARAMETER_POSTPAD_STRING_NAME));static PARAMETER_LENGTH=new y(In.PARAMETER_LENGTH_NAME,S.ofInteger(In.PARAMETER_LENGTH_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[In.EVENT_RESULT_NAME,S.ofString(In.EVENT_RESULT_NAME)]]));signature=new W("PostPad").setNamespace(a.STRING).setParameters(new Map([[In.PARAMETER_STRING.getParameterName(),In.PARAMETER_STRING],[In.PARAMETER_POSTPAD_STRING.getParameterName(),In.PARAMETER_POSTPAD_STRING],[In.PARAMETER_LENGTH.getParameterName(),In.PARAMETER_LENGTH]])).setEvents(new Map([[In.EVENT_STRING.getName(),In.EVENT_STRING]]));constructor(){super()}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(In.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(In.PARAMETER_POSTPAD_STRING_NAME),n=e.getArguments()?.get(In.PARAMETER_LENGTH_NAME),s="",a=r.length;for(s+=t;a<=n;)s+=r,a+=r.length;return s.length-t.length<n&&(s+=r.substring(0,n-(s.length-t.length))),new j([B.of(In.EVENT_RESULT_NAME,new Map([[In.EVENT_RESULT_NAME,s.toString()]]))])}}class Pn extends Ue{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(Pn.PARAMETER_STRING_NAME,S.ofString(Pn.PARAMETER_STRING_NAME));static PARAMETER_PREPAD_STRING=new y(Pn.PARAMETER_PREPAD_STRING_NAME,S.ofString(Pn.PARAMETER_PREPAD_STRING_NAME));static PARAMETER_LENGTH=new y(Pn.PARAMETER_LENGTH_NAME,S.ofInteger(Pn.PARAMETER_LENGTH_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[Pn.EVENT_RESULT_NAME,S.ofString(Pn.EVENT_RESULT_NAME)]]));signature=new W("PrePad").setNamespace(a.STRING).setParameters(new Map([[Pn.PARAMETER_STRING.getParameterName(),Pn.PARAMETER_STRING],[Pn.PARAMETER_PREPAD_STRING.getParameterName(),Pn.PARAMETER_PREPAD_STRING],[Pn.PARAMETER_LENGTH.getParameterName(),Pn.PARAMETER_LENGTH]])).setEvents(new Map([[Pn.EVENT_STRING.getName(),Pn.EVENT_STRING]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(Pn.PARAMETER_STRING_NAME),r=e.getArguments()?.get(Pn.PARAMETER_PREPAD_STRING_NAME),n=e.getArguments()?.get(Pn.PARAMETER_LENGTH_NAME),s="",a=r.length;for(;a<=n;)s+=r,a+=r.length;return s.length<n&&(s+=r.substring(0,n-s.length)),s+=t,new j([B.of(Pn.EVENT_RESULT_NAME,new Map([[Pn.EVENT_RESULT_NAME,s]]))])}}class yn extends Ue{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(yn.PARAMETER_STRING_NAME,S.ofString(yn.PARAMETER_STRING_NAME));static PARAMETER_OTHER_STRING=new y(yn.PARAMETER_OTHER_STRING_NAME,S.ofString(yn.PARAMETER_OTHER_STRING_NAME));static PARAMETER_FIRST_OFFSET=new y(yn.PARAMETER_FIRST_OFFSET_NAME,S.ofInteger(yn.PARAMETER_FIRST_OFFSET_NAME));static PARAMETER_SECOND_OFFSET=new y(yn.PARAMETER_SECOND_OFFSET_NAME,S.ofInteger(yn.PARAMETER_SECOND_OFFSET_NAME));static PARAMETER_INTEGER=new y(yn.PARAMETER_INTEGER_NAME,S.ofInteger(yn.PARAMETER_INTEGER_NAME));static PARAMETER_BOOLEAN=new y(yn.PARAMETER_BOOLEAN_NAME,S.ofBoolean(yn.PARAMETER_BOOLEAN_NAME));static EVENT_BOOLEAN=new Y(Y.OUTPUT,new Map([[yn.EVENT_RESULT_NAME,S.ofBoolean(yn.EVENT_RESULT_NAME)]]));signature=new W("RegionMatches").setNamespace(a.STRING).setParameters(new Map([[yn.PARAMETER_STRING.getParameterName(),yn.PARAMETER_STRING],[yn.PARAMETER_BOOLEAN.getParameterName(),yn.PARAMETER_BOOLEAN],[yn.PARAMETER_FIRST_OFFSET.getParameterName(),yn.PARAMETER_FIRST_OFFSET],[yn.PARAMETER_OTHER_STRING.getParameterName(),yn.PARAMETER_OTHER_STRING],[yn.PARAMETER_SECOND_OFFSET.getParameterName(),yn.PARAMETER_SECOND_OFFSET],[yn.PARAMETER_INTEGER.getParameterName(),yn.PARAMETER_INTEGER]])).setEvents(new Map([[yn.EVENT_BOOLEAN.getName(),yn.EVENT_BOOLEAN]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(yn.PARAMETER_STRING_NAME),r=e.getArguments()?.get(yn.PARAMETER_BOOLEAN_NAME),n=e.getArguments()?.get(yn.PARAMETER_FIRST_OFFSET_NAME),s=e?.getArguments()?.get(yn.PARAMETER_OTHER_STRING_NAME),a=e?.getArguments()?.get(yn.PARAMETER_SECOND_OFFSET_NAME),i=e.getArguments()?.get(yn.PARAMETER_INTEGER_NAME),o=!1;if(n<0||a<0||n+i>t.length||a+i>s.length)o=!1;else if(r){t=t.substring(n,n+i).toUpperCase(),o=t==s.substring(a,a+i).toUpperCase()}else{t=t.substring(n,n+i),o=t==s.substring(a,i)}return new j([B.outputOf(new Map([[yn.EVENT_RESULT_NAME,o]]))])}}class xn extends Ue{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(xn.PARAMETER_STRING_NAME,S.ofString(xn.PARAMETER_STRING_NAME));static PARAMETER_AT_START=new y(xn.PARAMETER_AT_START_NAME,S.ofInteger(xn.PARAMETER_AT_START_NAME));static PARAMETER_AT_LENGTH=new y(xn.PARAMETER_AT_LENGTH_NAME,S.ofInteger(xn.PARAMETER_AT_LENGTH_NAME));static PARAMETER_REPLACE_STRING=new y(xn.PARAMETER_REPLACE_STRING_NAME,S.ofString(xn.PARAMETER_REPLACE_STRING_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[xn.EVENT_RESULT_NAME,S.ofString(xn.EVENT_RESULT_NAME)]]));constructor(){super()}signature=new W("ReplaceAtGivenPosition").setNamespace(a.STRING).setParameters(new Map([[xn.PARAMETER_STRING.getParameterName(),xn.PARAMETER_STRING],[xn.PARAMETER_AT_START.getParameterName(),xn.PARAMETER_AT_START],[xn.PARAMETER_AT_LENGTH.getParameterName(),xn.PARAMETER_AT_LENGTH],[xn.PARAMETER_REPLACE_STRING.getParameterName(),xn.PARAMETER_REPLACE_STRING]])).setEvents(new Map([[xn.EVENT_STRING.getName(),xn.EVENT_STRING]]));getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(xn.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(xn.PARAMETER_AT_START_NAME),n=e?.getArguments()?.get(xn.PARAMETER_AT_LENGTH_NAME),s=e?.getArguments()?.get(xn.PARAMETER_REPLACE_STRING_NAME);t.length;if(r<n){let e="";e+=t.substring(0,r),e+=s,e+=t.substring(r+n)}return new j([B.outputOf(new Map([[xn.EVENT_RESULT_NAME,t]]))])}}class vn extends Ue{VALUE="value";SIGNATURE=new W("Reverse").setNamespace(a.STRING).setParameters(new Map([[this.VALUE,new y(this.VALUE,S.ofString(this.VALUE)).setVariableArgument(!1)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([[this.VALUE,(new S).setType(f.of(l.STRING)).setName(this.VALUE)]]))]));constructor(){super()}getSignature(){return this.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(this.VALUE),r=t.length-1,n="";for(;r>=0;)n+=t.charAt(r--);return new j([B.outputOf(G.of(this.VALUE,n))])}}class Ln extends Ue{PARAMETER_STRING_NAME="string";PARAMETER_SPLIT_STRING_NAME="searchString";EVENT_RESULT_NAME="result";PARAMETER_STRING=new y(this.PARAMETER_STRING_NAME,S.ofString(this.PARAMETER_STRING_NAME));PARAMETER_SPLIT_STRING=new y(this.PARAMETER_SPLIT_STRING_NAME,S.ofString(this.PARAMETER_SPLIT_STRING_NAME));EVENT_ARRAY=new Y(Y.OUTPUT,G.of(this.EVENT_RESULT_NAME,S.ofArray(this.EVENT_RESULT_NAME)));getSignature(){return new W("Split").setNamespace(a.STRING).setParameters(new Map([[this.PARAMETER_STRING_NAME,this.PARAMETER_STRING],[this.PARAMETER_SPLIT_STRING_NAME,this.PARAMETER_SPLIT_STRING]])).setEvents(new Map([Y.outputEventMapEntry(new Map([[this.EVENT_RESULT_NAME,S.ofArray(this.EVENT_RESULT_NAME)]]))]))}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(this.PARAMETER_STRING_NAME),r=e.getArguments()?.get(this.PARAMETER_SPLIT_STRING_NAME);return new j([B.outputOf(G.of(this.EVENT_RESULT_NAME,t.split(r)))])}}class Un extends Ue{PARAMETER_INPUT_ANYTYPE_NAME="anytype";EVENT_RESULT_NAME="result";PARAMETER_INPUT_ANYTYPE=new y(this.PARAMETER_INPUT_ANYTYPE_NAME,S.ofAny(this.PARAMETER_INPUT_ANYTYPE_NAME));EVENT_STRING=new Y(Y.OUTPUT,new Map([[this.EVENT_RESULT_NAME,S.ofString(this.EVENT_RESULT_NAME)]]));getSignature(){return new W("ToString").setNamespace(a.STRING).setParameters(new Map([[this.PARAMETER_INPUT_ANYTYPE.getParameterName(),this.PARAMETER_INPUT_ANYTYPE]])).setEvents(new Map([[this.EVENT_STRING.getName(),this.EVENT_STRING]]))}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(this.PARAMETER_INPUT_ANYTYPE_NAME),r="";return r="object"==typeof t?JSON.stringify(t,void 0,2):""+t,new j([B.outputOf(new Map([[this.EVENT_RESULT_NAME,r]]))])}}class Vn extends Ue{static PARAMETER_STRING_NAME="string";static PARAMETER_LENGTH_NAME="length";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new y(Vn.PARAMETER_STRING_NAME,S.ofString(Vn.PARAMETER_STRING_NAME));static PARAMETER_LENGTH=new y(Vn.PARAMETER_LENGTH_NAME,S.ofInteger(Vn.PARAMETER_LENGTH_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[Vn.EVENT_RESULT_NAME,S.ofString(Vn.EVENT_RESULT_NAME)]]));signature=new W("TrimTo").setNamespace(a.STRING).setParameters(new Map([[Vn.PARAMETER_STRING.getParameterName(),Vn.PARAMETER_STRING],[Vn.PARAMETER_LENGTH.getParameterName(),Vn.PARAMETER_LENGTH]])).setEvents(new Map([[Vn.EVENT_STRING.getName(),Vn.EVENT_STRING]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(Vn.PARAMETER_STRING_NAME),r=e.getArguments()?.get(Vn.PARAMETER_LENGTH_NAME);return new j([B.of(Vn.EVENT_RESULT_NAME,new Map([[Vn.EVENT_RESULT_NAME,t.substring(0,r)]]))])}}class Cn{static repoMap=G.ofArrayEntries(Mn.ofEntryString("Trim",(e=>e.trim())),Mn.ofEntryString("LowerCase",(e=>e.toLocaleLowerCase())),Mn.ofEntryString("UpperCase",(e=>e.toUpperCase())),Mn.ofEntryStringBooleanOutput("IsBlank",(e=>""===e.trim())),Mn.ofEntryStringBooleanOutput("IsEmpty",(e=>""===e)),Mn.ofEntryAsStringBooleanOutput("Contains",((e,t)=>-1!=e.indexOf(t))),Mn.ofEntryAsStringBooleanOutput("EndsWith",((e,t)=>e.endsWith(t))),Mn.ofEntryAsStringBooleanOutput("EqualsIgnoreCase",((e,t)=>e.toUpperCase()==t.toUpperCase())),Mn.ofEntryAsStringBooleanOutput("Matches",((e,t)=>new RegExp(t).test(e))),Mn.ofEntryAsStringIntegerOutput("IndexOf",((e,t)=>e.indexOf(t))),Mn.ofEntryAsStringIntegerOutput("LastIndexOf",((e,t)=>e.lastIndexOf(t))),Mn.ofEntryAsStringAndIntegerStringOutput("Repeat",((e,t)=>e.repeat(t))),Mn.ofEntryAsStringStringIntegerIntegerOutput("IndexOfWithStartPoint",((e,t,r)=>e.indexOf(t,r))),Mn.ofEntryAsStringStringIntegerIntegerOutput("LastIndexOfWithStartPoint",((e,t,r)=>e.lastIndexOf(t,r))),Mn.ofEntryAsStringStringStringStringOutput("Replace",((e,t,r)=>e)),Mn.ofEntryAsStringStringStringStringOutput("ReplaceFirst",((e,t,r)=>e.replace(t,r))),Mn.ofEntryAsStringIntegerIntegerStringOutput("SubString",((e,t,r)=>e.substring(t,r))),V(new On),V(new wn),V(new dn),V(new In),V(new Pn),V(new yn),V(new xn),V(new vn),V(new Ln),V(new Un),V(new Vn));static filterableNames=Array.from(Cn.repoMap.values()).map((e=>e.getSignature().getFullName()));find(e,t){if(e==a.STRING)return Cn.repoMap.get(t)}filter(e){return Cn.filterableNames.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}var Gn={};t(Gn,"HybridRepository",(()=>bn));class bn{constructor(...e){this.repos=e}find(e,t){for(let r of this.repos){let n=r.find(e,t);if(n)return n}}filter(e){let t=new Set;for(let r of this.repos)r.filter(e).forEach((e=>t.add(e)));return Array.from(t)}}const Dn=new Map([[a.SYSTEM_CTX,new Map([V(new class extends Ue{getSignature(){return Dt}async internalExecute(e){const t=e?.getArguments()?.get("name");if(e?.getContext()?.has(t))throw new $(Z.format("Context already has an element for '$' ",t));let r=S.from(e?.getArguments()?.get("schema"));if(!r)throw new $("Schema is not supplied.");return e.getContext().set(t,new bt(r,E(r.getDefaultValue())?void 0:r.getDefaultValue())),new j([B.outputOf(new Map)])}}),V(new class extends Ue{getSignature(){return Ft}async internalExecute(e){const t=e?.getArguments()?.get("name");if(!e.getContext()?.has(t))throw new $(Z.format("Context don't have an element for '$' ",t));return new j([B.outputOf(new Map(["value",e.getContext()?.get(t)?.getElement()]))])}}),V(new class extends Ue{getSignature(){return Zr}async internalExecute(e){let t=e?.getArguments()?.get("name");if(se.isNullOrBlank(t))throw new $("Empty string is not a valid name for the context element");let r=e?.getArguments()?.get("value");const n=new xt(t),s=n.getTokens().peekLast();if(!s.getExpression().startsWith("Context")||s instanceof xt||s instanceof It&&!s.getElement().toString().startsWith("Context"))throw new Ye(Z.format("The context path $ is not a valid path in context",t));for(const e of n.getOperations().toArray())if(e!=yt.ARRAY_OPERATOR&&e!=yt.OBJECT_OPERATOR)throw new Ye(Z.format("Expected a reference to the context location, but found an expression $",t));for(let r=0;r<n.getTokens().size();r++){let s=n.getTokens().get(r);s instanceof xt&&n.getTokens().set(r,new It(t,new Qr(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 $(Z.format("Context doesn't have any element with name '$' ",t));if(a.isEmpty())return i.setElement(r),new j([B.outputOf(new Map)]);let o=i.getElement(),u=a.removeLast(),A=s.removeLast(),l=A instanceof It?A.getElement():A.getExpression();for(E(o)&&(o=u==yt.OBJECT_OPERATOR?{}:[],i.setElement(o));!a.isEmpty();)o=u==yt.OBJECT_OPERATOR?this.getDataFromObject(o,l,a.peekLast()):this.getDataFromArray(o,l,a.peekLast()),u=a.removeLast(),A=s.removeLast(),l=A instanceof It?A.getElement():A.getExpression();return u==yt.OBJECT_OPERATOR?this.putDataInObject(o,l,r):this.putDataInArray(o,l,r),new j([B.outputOf(new Map)])}getDataFromArray(e,t,r){if(!Array.isArray(e))throw new $(Z.format("Expected an array but found $",e));const n=parseInt(t);if(isNaN(n))throw new $(Z.format("Expected an array index but found $",t));if(n<0)throw new $(Z.format("Array index is out of bound - $",t));let s=e[n];return E(s)&&(s=r==yt.OBJECT_OPERATOR?{}:[],e[n]=s),s}getDataFromObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new $(Z.format("Expected an object but found $",e));let n=e[t];return E(n)&&(n=r==yt.OBJECT_OPERATOR?{}:[],e[t]=n),n}putDataInArray(e,t,r){if(!Array.isArray(e))throw new $(Z.format("Expected an array but found $",e));const n=parseInt(t);if(isNaN(n))throw new $(Z.format("Expected an array index but found $",t));if(n<0)throw new $(Z.format("Array index is out of bound - $",t));e[n]=r}putDataInObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new $(Z.format("Expected an object but found $",e));e[t]=r}})])],[a.SYSTEM_LOOP,new Map([V(new class extends Ue{getSignature(){return sn}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,o=e.getStatementExecution()?.getStatement()?.getStatementName();return new j({next(){if(i)return;if(s&&a>=r||!s&&a<=r||o&&e.getExecutionContext()?.get(o))return i=!0,o&&e.getExecutionContext()?.delete(o),B.outputOf(new Map([["value",a]]));const t=B.of(Y.ITERATION,new Map([["index",a]]));return a+=n,t}})}}),V(new class extends Ue{getSignature(){return nn}async internalExecute(e){let t=e.getArguments()?.get("count"),r=0,n=e.getStatementExecution()?.getStatement()?.getStatementName();return new j({next(){if(r>=t||n&&e.getExecutionContext()?.get(n))return n&&e.getExecutionContext()?.delete(n),B.outputOf(new Map([["value",r]]));const s=B.of(Y.ITERATION,new Map([["index",r]]));return++r,s}})}}),V(new class extends Ue{getSignature(){return rn}async internalExecute(e){let t=e.getArguments()?.get("stepName");return e.getExecutionContext().set(t,!0),new j([B.outputOf(new Map)])}})])],[a.SYSTEM,new Map([V(new tn),V(new class extends Ue{getSignature(){return en}async internalExecute(e){const t=e.getEvents(),r=e.getArguments()?.get("eventName"),n=e?.getArguments()?.get("results").map((t=>{let r=t.value;if(E(r))throw new $("Expect a value object");let n=r.value;return r.isExpression&&(n=new Qr(n).evaluate(e.getValuesMap())),[t.name,n]})).reduce(((e,t)=>(e.set(t[0],t[1]),e)),new Map);return t?.has(r)||t?.set(r,[]),t?.get(r)?.push(n),new j([B.outputOf(new Map)])}}),V(new Sn)])]]),Fn=Array.from(Dn.values()).flatMap((e=>Array.from(e.values()))).map((e=>e.getSignature().getFullName()));class Yn extends bn{constructor(){super({find:(e,t)=>Dn.get(e)?.get(t),filter:e=>Array.from(Fn).filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))},new Tn,new Cn,new Ct,new _n)}}var Bn={};t(Bn,"StatementExecution",(()=>$n));var Hn={};t(Hn,"StatementMessage",(()=>kn));class kn{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 $n{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 kn(e,t))}addDependency(e){this.dependencies.add(e)}getDepenedencies(){return this.dependencies}equals(e){if(!(e instanceof $n))return!1;return e.statement.equals(this.statement)}}var jn={};t(jn,"ContextTokenValueExtractor",(()=>Xn));class Xn extends Lt{static PREFIX="Context.";constructor(e){super(),this.context=e}getValueInternal(e){let t=e.split(Lt.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 Xn.PREFIX}}var Wn={};t(Wn,"OutputMapTokenValueExtractor",(()=>qn));class qn extends Lt{static PREFIX="Steps.";constructor(e){super(),this.output=e}getValueInternal(e){let t=e.split(Lt.REGEX_DOT),r=1,n=this.output.get(t[r++]);if(!n||r>=t.length)return;let s=n.get(t[r++]);if(!s||r>=t.length)return;const a=t[r].indexOf("[");if(-1===a){let n=s.get(t[r++]);return this.retrieveElementFrom(e,t,r,n)}const i=t[r].substring(0,a);let o=s.get(i);return this.retrieveElementFrom(e,t,r,{[i]:o})}getPrefix(){return qn.PREFIX}}var Jn={};t(Jn,"ArgumentsTokenValueExtractor",(()=>zn));class zn extends Lt{static PREFIX="Arguments.";constructor(e){super(),this.args=e}getValueInternal(e){let t=e.split(Lt.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 zn.PREFIX}}var Kn={};t(Kn,"GraphVertex",(()=>es));var Qn={};t(Qn,"ExecutionGraph",(()=>Zn));class Zn{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 es(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 ee(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 es{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 oe(this,e)),t}addInEdgeTo(e,t){return this.inVertices.add(new oe(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 Zn(!0);var r=new ee(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 ts={};t(ts,"KIRuntime",(()=>ms));var rs={};t(rs,"JsonExpression",(()=>ns));class ns{constructor(e){this.expression=e}getExpression(){return this.expression}}var ss={};let as;var is;t(ss,"ParameterReferenceType",(()=>as)),(is=as||(as={})).VALUE="VALUE",is.EXPRESSION="EXPRESSION";var os={};function Es(){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(os,"FunctionExecutionParameters",(()=>us));class us{count=0;executionContext=new Map;valueExtractors=new Map;constructor(e,t,r){this.functionRepository=e,this.schemaRepository=t,this.executionId=r??Es()}getExecutionId(){return this.executionId}getContext(){return this.context}setContext(e){this.context=e;let t=new Xn(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 qn(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}setExecutionContext(e){return this.executionContext=e,this}getExecutionContext(){return this.executionContext}}var As={};let ls;var gs;t(As,"StatementMessageType",(()=>ls)),(gs=ls||(ls={})).ERROR="ERROR",gs.WARNING="WARNING",gs.MESSAGE="MESSAGE";class ms extends Ue{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()>ms.VERSION)throw new $("Runtime is at a lower version "+ms.VERSION+" and trying to run code from version "+this.fd.getVersion()+".")}getSignature(){return this.fd}async getExecutionPlan(e,t){let r=new Zn;for(let n of Array.from(this.fd.getSteps().values()))r.addVertex(this.prepareStatementExecution(n,e,t));let n=this.makeEdges(r);return Array.from(n.getT2().entries()).forEach((e=>{let t=r.getNodeMap().get(e[0])?.getData();t&&t.addMessage(ls.ERROR,e[1])})),r}async internalExecute(e){e.getContext()||e.setContext(new Map),e.getEvents()||e.setEvents(new Map),e.getSteps()||e.setSteps(new Map),e.getArguments()&&e.addTokenValueExtractor(new zn(e.getArguments())),this.debugMode&&(console.log(`EID: ${e.getExecutionId()} Executing: ${this.fd.getNamespace()}.${this.fd.getName()}`),console.log(`EID: ${e.getExecutionId()} Parameters: `,e));let t=await this.getExecutionPlan(e.getFunctionRepository(),e.getSchemaRepository());this.debugMode&&console.log(`EID: ${e.getExecutionId()} ${t?.toString()}`);let r=t.getVerticesData().filter((e=>e.getMessages().length)).map((e=>e.getStatement().getStatementName()+": \n"+e.getMessages().join(",")));if(r?.length)throw new $("Please fix the errors in the function definition before execution : \n"+r.join(",\n"));return await this.executeGraph(t,e)}async executeGraph(e,t){let r=new ee;r.addAll(e.getVerticesWithNoIncomingEdges());let n=new ee;for(;!(r.isEmpty()&&n.isEmpty()||t.getEvents()?.has(Y.OUTPUT));)if(await this.processBranchQue(t,r,n),await this.processExecutionQue(t,r,n),t.setCount(t.getCount()+1),t.getCount()==ms.MAX_EXECUTION_ITERATIONS)throw new $("Execution locked in an infinite loop");if(!e.isSubGraph()&&!t.getEvents()?.size){const e=this.getSignature().getEvents();if(e.size&&e.get(Y.OUTPUT)?.getParameters()?.size)throw new $("No events raised")}const s=Array.from(t.getEvents()?.entries()??[]).flatMap((e=>e[1].map((t=>B.of(e[0],t)))));return s.length||e.isSubGraph()?new j(s):new j([B.of(Y.OUTPUT,new Map)])}async processExecutionQue(e,t,r){if(!t.isEmpty()){let n=t.pop();await this.allDependenciesResolvedVertex(n,e.getSteps())?await this.executeVertex(n,e,r,t,e.getFunctionRepository()):t.add(n)}}async processBranchQue(e,t,r){if(r.length){let n=r.pop();await this.allDependenciesResolvedTuples(n.getT2(),e.getSteps())?await this.executeBranch(e,t,n):r.add(n)}}async executeBranch(e,t,r){let n,s=r.getT4();do{if(await this.executeGraph(r.getT1(),e),n=r.getT3().next(),n&&(e.getSteps()?.has(s.getData().getStatement().getStatementName())||e.getSteps()?.set(s.getData().getStatement().getStatementName(),new Map),e.getSteps()?.get(s.getData().getStatement().getStatementName())?.set(n.getName(),this.resolveInternalExpressions(n.getResult(),e)),this.debugMode)){const t=s.getData().getStatement();console.log(`EID: ${e.getExecutionId()} Step : ${t.getStatementName()} => ${t.getNamespace()}.${t.getName()}`),console.log(`EID: ${e.getExecutionId()} Event : ${n.getName()} : `,e.getSteps().get(t.getStatementName()).get(n.getName()))}}while(n&&n.getName()!=Y.OUTPUT);n?.getName()==Y.OUTPUT&&s.getOutVertices().has(Y.OUTPUT)&&(s?.getOutVertices()?.get(Y.OUTPUT)??[]).forEach((async r=>{await this.allDependenciesResolvedVertex(r,e.getSteps())&&t.add(r)}))}async executeVertex(e,t,r,n,s){let a=e.getData().getStatement(),i=s.find(a.getNamespace(),a.getName());if(!i)throw new $(Z.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 ms?new us(t.getFunctionRepository(),t.getSchemaRepository(),`${t.getExecutionId()}_${a.getStatementName()}`).setArguments(E).setValuesMap(new Map(Array.from(t.getValuesMap().values()).filter((e=>e.getPrefix()!==zn.PREFIX&&e.getPrefix()!==qn.PREFIX&&e.getPrefix()!==Xn.PREFIX)).map((e=>[e.getPrefix(),e])))):new us(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()).setExecutionContext(t.getExecutionContext());let l=await i.execute(u),g=l.next();if(!g)throw new $(Z.format("Executing $ returned no events",a.getStatementName()));let m=g.getName()==Y.OUTPUT;if(t.getSteps()?.has(a.getStatementName())||t.getSteps().set(a.getStatementName(),new Map),t.getSteps().get(a.getStatementName()).set(g.getName(),this.resolveInternalExpressions(g.getResult(),t)),this.debugMode&&(console.log(`EID: ${t.getExecutionId()} Step : ${a.getStatementName()} => ${a.getNamespace()}.${a.getName()}`),console.log(`EID: ${t.getExecutionId()} Event : ${g.getName()} : `,t.getSteps().get(a.getStatementName()).get(g.getName()))),m){let r=e.getOutVertices().get(Y.OUTPUT);r&&r.forEach((async e=>{await this.allDependenciesResolvedVertex(e,t.getSteps())&&n.add(e)}))}else{let t=e.getSubGraphOfType(g.getName()),n=this.makeEdges(t).getT1();r.push(new ue(t,n,l,e))}}resolveInternalExpressions(e,t){return e?Array.from(e.entries()).map((e=>new oe(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 ns){return new Qr(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 oe(t[0],n);let a=r.get(t[0]);return a?(n=a.isVariableArgument()?s.sort(((e,t)=>(e.getOrder()??0)-(t.getOrder()??0))).filter((e=>!E(e))).map((t=>this.parameterReferenceEvaluation(e,t))).flatMap((e=>Array.isArray(e)?e:[e])):this.parameterReferenceEvaluation(e,s[0]),new oe(t[0],n)):new oe(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()==as.VALUE)r=this.resolveInternalExpression(t.getValue(),e);else if(t.getType()==as.EXPRESSION&&!se.isNullOrBlank(t.getExpression())){r=new Qr(t.getExpression()??"").evaluate(e.getValuesMap())}return r}prepareStatementExecution(e,t,r){let n=new $n(e),s=t.find(e.getNamespace(),e.getName());if(!s)return n.addMessage(ls.ERROR,Z.format("$.$ is not available",e.getNamespace(),e.getName())),n;let a=new Map(s.getSignature().getParameters());if(!e.getParameterMap())return n;for(let t of Array.from(e.getParameterMap().entries())){let e=a.get(t[0]);if(!e)continue;let s=Array.from(t[1]?.values()??[]);if(s.length||e.isVariableArgument()){if(e.isVariableArgument()){s.sort(((e,t)=>(e.getOrder()??0)-(t.getOrder()??0)));for(let t of s)this.parameterReferenceValidation(n,e,t,r)}else if(s.length){let t=s[0];this.parameterReferenceValidation(n,e,t,r)}a.delete(e.getParameterName())}else ge.hasDefaultValueOrNullSchemaType(e.getSchema(),r)||n.addMessage(ls.ERROR,Z.format(ms.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()||ge.hasDefaultValueOrNullSchemaType(e.getSchema(),r)||n.addMessage(ls.ERROR,Z.format(ms.PARAMETER_NEEDS_A_VALUE,e.getParameterName()));return n}parameterReferenceValidation(e,t,r,n){if(r){if(r.getType()==as.VALUE){if(E(r.getValue())&&!ge.hasDefaultValueOrNullSchemaType(t.getSchema(),n)&&e.addMessage(ls.ERROR,Z.format(ms.PARAMETER_NEEDS_A_VALUE,t.getParameterName())),E(r.getValue()))return;let s=new ee;for(s.push(new oe(t.getSchema(),r.getValue()));!s.isEmpty();){let t=s.pop();if(t.getT2()instanceof ns)this.addDependencies(e,t.getT2().getExpression());else{if(E(t.getT1())||E(t.getT1().getType()))continue;if(t.getT1().getType()?.contains(l.ARRAY)&&Array.isArray(t.getT2())){let e=t.getT1().getItems();if(!e)continue;if(e.isSingleType())for(let r of t.getT2())s.push(new oe(e.getSingleSchema(),r));else{let r=t.getT2();for(let t=0;t<r.length;t++)s.push(new oe(e.getTupleSchema()[t],r[t]))}}else if(t.getT1().getType()?.contains(l.OBJECT)&&"object"==typeof t.getT2()){let r=t.getT1();if(r.getName()===y.EXPRESSION.getName()&&r.getNamespace()===y.EXPRESSION.getNamespace()){let r=t.getT2();r.isExpression&&this.addDependencies(e,r.value)}else if(r.getProperties())for(let e of Object.entries(t.getT2()))r.getProperties().has(e[0])&&s.push(new oe(r.getProperties().get(e[0]),e[1]))}}}}else if(r.getType()==as.EXPRESSION)if(se.isNullOrBlank(r.getExpression()))E(ge.getDefaultValue(t.getSchema(),n))&&e.addMessage(ls.ERROR,Z.format(ms.PARAMETER_NEEDS_A_VALUE,t.getParameterName()));else try{this.addDependencies(e,r.getExpression())}catch(t){e.addMessage(ls.ERROR,Z.format("Error evaluating $ : $",r.getExpression(),t))}}else E(ge.getDefaultValue(t.getSchema(),n))&&e.addMessage(ls.ERROR,Z.format(ms.PARAMETER_NEEDS_A_VALUE,t.getParameterName()))}addDependencies(e,t){t&&Array.from(t.match(ms.STEP_REGEX_PATTERN)??[]).forEach((t=>e.addDependency(t)))}makeEdges(e){let t=e.getNodeMap().values(),r=[],n=new Map;for(let s of Array.from(t))for(let t of s.getData().getDependencies()){let a=t.indexOf(".",6),i=t.substring(6,a),o=t.indexOf(".",a+1),E=-1==o?t.substring(a+1):t.substring(a+1,o);e.getNodeMap().has(i)?s.addInEdgeTo(e.getNodeMap().get(i),E):(r.push(new oe(i,E)),n.set(s.getData().getStatement().getStatementName(),Z.format("Unable to find the step with name $",i)))}return new oe(r,n)}}var Rs={};t(Rs,"KIRunConstants",(()=>cs));class cs{static NAMESPACE="namespace";static NAME="name";static ID="id";constructor(){}}var ps={};t(ps,"Position",(()=>Ts));class Ts{static SCHEMA_NAME="Position";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(Ts.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["left",S.ofFloat("left")],["top",S.ofFloat("top")]]));constructor(e,t){this.left=e,this.top=t}getLeft(){return this.left}setLeft(e){return this.left=e,this}getTop(){return this.top}setTop(e){return this.top=e,this}static from(e){if(e)return new Ts(e.left,e.top)}}var hs={};t(hs,"FunctionDefinition",(()=>Ps));var Ns={};t(Ns,"Statement",(()=>Os));var fs={};t(fs,"AbstractStatement",(()=>_s));class _s{override=!1;constructor(e){e&&(this.comment=e.comment,this.description=e.description,this.position=e.position?new Ts(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",(()=>Ms));class Ms{static SCHEMA_NAME="ParameterReference";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(Ms.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["key",S.ofString("key")],["value",S.ofAny("value")],["expression",S.ofString("expression")],["type",S.ofString("type").setEnums(["EXPRESSION","VALUE"])],["order",S.ofInteger("order")]]));constructor(e){if(e instanceof Ms){let t=e;this.key=t.key,this.type=t.type,this.value=E(t.value)?void 0:JSON.parse(JSON.stringify(t.value)),this.expression=t.expression,this.order=t.order}else this.type=e,this.key=Es()}getType(){return this.type}setType(e){return this.type=e,this}getKey(){return this.key}setKey(e){return this.key=e,this}getValue(){return this.value}setValue(e){return this.value=e,this}getExpression(){return this.expression}setExpression(e){return this.expression=e,this}setOrder(e){return this.order=e,this}getOrder(){return this.order}static ofExpression(e){const t=new Ms(as.EXPRESSION).setExpression(e);return[t.getKey(),t]}static ofValue(e){const t=new Ms(as.VALUE).setValue(e);return[t.getKey(),t]}static from(e){return new Ms(e.type).setValue(e.value).setExpression(e.expression).setKey(e.key).setOrder(e.order)}}class Os extends _s{static SCHEMA_NAME="Statement";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(Os.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["statementName",S.ofString("statementName")],["comment",S.ofString("comment")],["description",S.ofString("description")],["namespace",S.ofString("namespace")],["name",S.ofString("name")],["dependentStatements",S.ofObject("dependentstatement").setAdditionalProperties((new _).setSchemaValue(S.ofBoolean("exists")))],["parameterMap",(new S).setName("parameterMap").setAdditionalProperties((new _).setSchemaValue(S.ofObject("parameterReference").setAdditionalProperties((new _).setSchemaValue(Ms.SCHEMA))))],["position",Ts.SCHEMA]]));constructor(e,t,r){if(super(e instanceof Os?e:void 0),e instanceof Os){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 Ms(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 Os))return!1;return e.statementName==this.statementName}static ofEntry(e){return[e.statementName,e]}static from(e){return new Os(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])=>Ms.from(t))).map((e=>[e.getKey(),e])))])))).setDependentStatements(new Map(Object.entries(e.dependentStatements??{}))).setPosition(Ts.from(e.position)).setComment(e.comment).setDescription(e.description)}}var ws={};t(ws,"StatementGroup",(()=>ds));class ds extends _s{static SCHEMA_NAME="StatementGroup";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(ds.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["statementGroupName",S.ofString("statementGroupName")],["comment",S.ofString("comment")],["description",S.ofString("description")],["position",Ts.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 ds(e.statementGroupName,new Map(Object.entries(e.statements||{}).map((([e,t])=>[e,"true"==(""+t)?.toLowerCase()])))).setPosition(Ts.from(e.position)).setComment(e.comment).setDescription(e.description)}}const Is=(new S).setNamespace(a.SYSTEM).setName("FunctionDefinition").setProperties(new Map([["name",S.ofString("name")],["namespace",S.ofString("namespace")],["parameters",S.ofArray("parameters",y.SCHEMA)],["events",S.ofObject("events").setAdditionalProperties((new _).setSchemaValue(Y.SCHEMA))],["steps",S.ofObject("steps").setAdditionalProperties((new _).setSchemaValue(Os.SCHEMA))]]));Is.getProperties()?.set("parts",S.ofArray("parts",Is));class Ps extends W{static SCHEMA=Is;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 Ps(e.name).setSteps(new Map(Object.values(e.steps??{}).filter((e=>!!e)).map((e=>[e.statementName,Os.from(e)])))).setStepGroups(new Map(Object.values(e.stepGroups??{}).filter((e=>!!e)).map((e=>[e.statementGroupName,ds.from(e)])))).setParts(Array.from(e.parts??[]).filter((e=>!!e)).map((e=>Ps.from(e)))).setVersion(e.version??1).setEvents(new Map(Object.values(e.events??{}).filter((e=>!!e)).map((e=>[e.name,Y.from(e)])))).setParameters(new Map(Object.values(e.parameters??{}).filter((e=>!!e)).map((e=>[e.parameterName,y.from(e)])))):new Ps("unknown")}}var ys={};t(ys,"Argument",(()=>xs));class xs{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 xs(0,e,t)}}var vs={};e(vs,Cr),e(vs,Fr),e(vs,Br),e(vs,kr),e(vs,Gr);var Ls={};e(Ls,jt),e(Ls,Wt),e(Ls,Jt),e(Ls,Kt),e(Ls,Zt),e(Ls,tr),e(Ls,nr),e(Ls,Ht),e(Ls,ar),e(Ls,or),e(Ls,ur),e(Ls,lr),e(Ls,mr),e(Ls,cr),e(Ls,Tr),e(Ls,Nr),e(Ls,_r),e(Ls,Mr),e(Ls,wr),e(Ls,yr),e(Ls,Ir),e(Ls,vr),e(Ls,Ur),e(Ls,Bt),e(module.exports,r),e(module.exports,U),e(module.exports,{}),e(module.exports,De),e(module.exports,C),e(module.exports,o),e(module.exports,K),e(module.exports,ft),e(module.exports,Q),e(module.exports,ne),e(module.exports,ie),e(module.exports,ke),e(module.exports,z),e(module.exports,Xe),e(module.exports,Bn),e(module.exports,Hn),e(module.exports,Gt),e(module.exports,jn),e(module.exports,Wn),e(module.exports,Jn),e(module.exports,Kn),e(module.exports,{}),e(module.exports,Qn),e(module.exports,ts),e(module.exports,As),e(module.exports,os),e(module.exports,Nt),e(module.exports,vt),e(module.exports,jr),e(module.exports,ht),e(module.exports,Yt),e(module.exports,Pt),e(module.exports,Ot),e(module.exports,St),e(module.exports,dt),e(module.exports,{}),e(module.exports,q),e(module.exports,s),e(module.exports,rs),e(module.exports,n),e(module.exports,Se),e(module.exports,he),e(module.exports,fe),e(module.exports,pe),e(module.exports,me),e(module.exports,de),e(module.exports,Oe),e(module.exports,J),e(module.exports,Ae),e(module.exports,O),e(module.exports,ce),e(module.exports,i),e(module.exports,h),e(module.exports,m),e(module.exports,R),e(module.exports,c),e(module.exports,A),e(module.exports,ae),e(module.exports,Ie),e(module.exports,Gn),e(module.exports,Rs),e(module.exports,M),e(module.exports,H),e(module.exports,ps),e(module.exports,hs),e(module.exports,ss),e(module.exports,D),e(module.exports,fs),e(module.exports,Ns),e(module.exports,{}),e(module.exports,ws),e(module.exports,X),e(module.exports,F),e(module.exports,d),e(module.exports,ys),e(module.exports,Ss),e(module.exports,Fe),e(module.exports,k),e(module.exports,vs),e(module.exports,Ls),e(module.exports,qr);
|
|
1
|
+
function e(e,t){return Object.keys(t).forEach((function(r){"default"===r||"__esModule"===r||e.hasOwnProperty(r)||Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[r]}})})),e}function t(e,t,r,n){Object.defineProperty(e,t,{get:r,set:n,enumerable:!0,configurable:!0})}var r={};t(r,"KIRunSchemaRepository",(()=>L));var n={};t(n,"AdditionalType",(()=>_)),t(n,"Schema",(()=>S));var s={};t(s,"Namespaces",(()=>a));class a{static SYSTEM="System";static SYSTEM_CTX="System.Context";static SYSTEM_LOOP="System.Loop";static SYSTEM_ARRAY="System.Array";static SYSTEM_OBJECT="System.Object";static MATH="System.Math";static STRING="System.String";constructor(){}}var i={};t(i,"ArraySchemaType",(()=>u));var o={};function E(e){return null==e}t(o,"isNullValue",(()=>E));class u{constructor(e){e&&(this.singleSchema=e.singleSchema?new S(e.singleSchema):void 0,this.tupleSchema=e.tupleSchema?e.tupleSchema.map((e=>new S(e))):void 0)}setSingleSchema(e){return this.singleSchema=e,this}setTupleSchema(e){return this.tupleSchema=e,this}getSingleSchema(){return this.singleSchema}getTupleSchema(){return this.tupleSchema}isSingleType(){return!E(this.singleSchema)}static of(...e){return 1==e.length?(new u).setSingleSchema(e[0]):(new u).setTupleSchema(e)}static from(e){if(!e)return;if(Array.isArray(e))return(new u).setTupleSchema(S.fromListOfSchemas(e));let t=Object.keys(e);if(-1!=t.indexOf("singleSchema"))return(new u).setSingleSchema(S.from(e.singleSchema));if(-1!=t.indexOf("tupleSchema"))return(new u).setTupleSchema(S.fromListOfSchemas(e.tupleSchema));let r=S.from(e);return r?(new u).setSingleSchema(r):void 0}}var A={};let l;var g;t(A,"SchemaType",(()=>l)),(g=l||(l={})).INTEGER="Integer",g.LONG="Long",g.FLOAT="Float",g.DOUBLE="Double",g.STRING="String",g.OBJECT="Object",g.ARRAY="Array",g.BOOLEAN="Boolean",g.NULL="Null";var m={};t(m,"TypeUtil",(()=>f));var R={};t(R,"MultipleType",(()=>T));var c={};t(c,"Type",(()=>p));class p{}class T extends p{constructor(e){super(),this.type=e instanceof T?new Set(Array.from(e.type)):new Set(Array.from(e))}getType(){return this.type}setType(e){return this.type=e,this}getAllowedSchemaTypes(){return this.type}contains(e){return this.type?.has(e)}}var h={};t(h,"SingleType",(()=>N));class N extends p{constructor(e){super(),this.type=e instanceof N?e.type:e}getType(){return this.type}getAllowedSchemaTypes(){return new Set([this.type])}contains(e){return this.type==e}}class f{static of(...e){return 1==e.length?new N(e[0]):new T(new Set(e))}static from(e){return"string"==typeof e?new N(l[e]):Array.isArray(e)?new T(new Set(e.map((e=>e)).map((e=>l[e])))):void 0}}class _{constructor(e){e&&(this.booleanValue=e.booleanValue,e.schemaValue&&(this.schemaValue=new S(e.schemaValue)))}getBooleanValue(){return this.booleanValue}getSchemaValue(){return this.schemaValue}setBooleanValue(e){return this.booleanValue=e,this}setSchemaValue(e){return this.schemaValue=e,this}static from(e){if(E(e))return;const t=new _;if("boolean"==typeof e)t.booleanValue=e;else{let r=Object.keys(e);-1!=r.indexOf("booleanValue")?t.booleanValue=e.booleanValue:-1!=r.indexOf("schemaValue")?t.schemaValue=S.from(e.schemaValue):t.schemaValue=S.from(e)}return t}}class S{static NULL=(new S).setNamespace(a.SYSTEM).setName("Null").setType(f.of(l.NULL)).setConstant(void 0);static TYPE_SCHEMA=(new S).setType(f.of(l.STRING)).setEnums(["INTEGER","LONG","FLOAT","DOUBLE","STRING","OBJECT","ARRAY","BOOLEAN","NULL"]);static SCHEMA=(new S).setNamespace(a.SYSTEM).setName("Schema").setType(f.of(l.OBJECT)).setProperties(new Map([["namespace",S.of("namespace",l.STRING).setDefaultValue("_")],["name",S.ofString("name")],["version",S.of("version",l.INTEGER).setDefaultValue(1)],["ref",S.ofString("ref")],["type",(new S).setAnyOf([S.TYPE_SCHEMA,S.ofArray("type",S.TYPE_SCHEMA)])],["anyOf",S.ofArray("anyOf",S.ofRef("System.Schema"))],["allOf",S.ofArray("allOf",S.ofRef("System.Schema"))],["oneOf",S.ofArray("oneOf",S.ofRef("System.Schema"))],["not",S.ofRef("System.Schema")],["title",S.ofString("title")],["description",S.ofString("description")],["id",S.ofString("id")],["examples",S.ofAny("examples")],["defaultValue",S.ofAny("defaultValue")],["comment",S.ofString("comment")],["enums",S.ofArray("enums",S.ofString("enums"))],["constant",S.ofAny("constant")],["pattern",S.ofString("pattern")],["format",S.of("format",l.STRING).setEnums(["DATETIME","TIME","DATE","EMAIL","REGEX"])],["minLength",S.ofInteger("minLength")],["maxLength",S.ofInteger("maxLength")],["multipleOf",S.ofLong("multipleOf")],["minimum",S.ofNumber("minimum")],["maximum",S.ofNumber("maximum")],["exclusiveMinimum",S.ofNumber("exclusiveMinimum")],["exclusiveMaximum",S.ofNumber("exclusiveMaximum")],["properties",S.of("properties",l.OBJECT).setAdditionalProperties((new _).setSchemaValue(S.ofRef("System.Schema")))],["additionalProperties",(new S).setName("additionalProperty").setNamespace(a.SYSTEM).setAnyOf([S.ofBoolean("additionalProperty"),S.ofObject("additionalProperty").setRef("System.Schema")]).setDefaultValue(!0)],["required",S.ofArray("required",S.ofString("required")).setDefaultValue([])],["propertyNames",S.ofRef("System.Schema")],["minProperties",S.ofInteger("minProperties")],["maxProperties",S.ofInteger("maxProperties")],["patternProperties",S.of("patternProperties",l.OBJECT).setAdditionalProperties((new _).setSchemaValue(S.ofRef("System.Schema")))],["items",(new S).setName("items").setAnyOf([S.ofRef("System.Schema").setName("item"),S.ofArray("tuple",S.ofRef("System.Schema"))])],["contains",S.ofRef("System.Schema")],["minContains",S.ofInteger("minContains")],["maxContains",S.ofInteger("maxContains")],["minItems",S.ofInteger("minItems")],["maxItems",S.ofInteger("maxItems")],["uniqueItems",S.ofBoolean("uniqueItems")],["additionalItems",(new S).setName("additionalItems").setNamespace(a.SYSTEM).setAnyOf([S.ofBoolean("additionalItems"),S.ofObject("additionalItems").setRef("System.Schema")])],["$defs",S.of("$defs",l.OBJECT).setAdditionalProperties((new _).setSchemaValue(S.ofRef("System.Schema")))],["permission",S.ofString("permission")]])).setRequired([]);static ofString(e){return(new S).setType(f.of(l.STRING)).setName(e)}static ofInteger(e){return(new S).setType(f.of(l.INTEGER)).setName(e)}static ofFloat(e){return(new S).setType(f.of(l.FLOAT)).setName(e)}static ofLong(e){return(new S).setType(f.of(l.LONG)).setName(e)}static ofDouble(e){return(new S).setType(f.of(l.DOUBLE)).setName(e)}static ofAny(e){return(new S).setType(f.of(l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE,l.STRING,l.BOOLEAN,l.ARRAY,l.NULL,l.OBJECT)).setName(e)}static ofAnyNotNull(e){return(new S).setType(f.of(l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE,l.STRING,l.BOOLEAN,l.ARRAY,l.OBJECT)).setName(e)}static ofNumber(e){return(new S).setType(f.of(l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE)).setName(e)}static ofBoolean(e){return(new S).setType(f.of(l.BOOLEAN)).setName(e)}static of(e,...t){return(new S).setType(f.of(...t)).setName(e)}static ofObject(e){return(new S).setType(f.of(l.OBJECT)).setName(e)}static ofRef(e){return(new S).setRef(e)}static ofArray(e,...t){return(new S).setType(f.of(l.ARRAY)).setName(e).setItems(u.of(...t))}static fromListOfSchemas(e){if(E(e)&&!Array.isArray(e))return;let t=[];for(let r of Array.from(e)){let e=S.from(r);e&&t.push(e)}return t}static fromMapOfSchemas(e){if(E(e))return;const t=new Map;return Object.entries(e).forEach((([e,r])=>{let n=S.from(r);n&&t.set(e,n)})),t}static from(e,t=!1){if(E(e))return;let r=new S;return r.namespace=e.namespace??"_",r.name=e.name,r.version=e.version??1,r.ref=e.ref,r.type=t?new N(l.STRING):f.from(e.type),r.anyOf=S.fromListOfSchemas(e.anyOf),r.allOf=S.fromListOfSchemas(e.allOf),r.oneOf=S.fromListOfSchemas(e.oneOf),r.not=S.from(e.not),r.description=e.description,r.examples=e.examples?[...e.examples]:void 0,r.defaultValue=e.defaultValue,r.comment=e.comment,r.enums=e.enums?[...e.enums]:void 0,r.constant=e.constant,r.pattern=e.pattern,r.format=e.format,r.minLength=e.minLength,r.maxLength=e.maxLength,r.multipleOf=e.multipleOf,r.minimum=e.minimum,r.maximum=e.maximum,r.exclusiveMinimum=e.exclusiveMinimum,r.exclusiveMaximum=e.exclusiveMaximum,r.properties=S.fromMapOfSchemas(e.properties),r.additionalProperties=_.from(e.additionalProperties),r.required=e.required,r.propertyNames=S.from(e.propertyNames,!0),r.minProperties=e.minProperties,r.maxProperties=e.maxProperties,r.patternProperties=S.fromMapOfSchemas(e.patternProperties),r.items=u.from(e.items),r.additionalItems=_.from(e.additionalItems),r.contains=S.from(e.contains),r.minContains=e.minContains,r.maxContains=e.maxContains,r.minItems=e.minItems,r.maxItems=e.maxItems,r.uniqueItems=e.uniqueItems,r.$defs=S.fromMapOfSchemas(e.$defs),r.permission=e.permission,r}namespace="_";version=1;constructor(e){e&&(this.namespace=e.namespace,this.name=e.name,this.version=e.version,this.ref=e.ref,this.type=e.type instanceof N?new N(e.type):new T(e.type),this.anyOf=e.anyOf?.map((e=>new S(e))),this.allOf=e.allOf?.map((e=>new S(e))),this.oneOf=e.oneOf?.map((e=>new S(e))),this.not=this.not?new S(this.not):void 0,this.description=e.description,this.examples=e.examples?JSON.parse(JSON.stringify(e.examples)):void 0,this.defaultValue=e.defaultValue?JSON.parse(JSON.stringify(e.defaultValue)):void 0,this.comment=e.comment,this.enums=e.enums?[...e.enums]:void 0,this.constant=e.constant?JSON.parse(JSON.stringify(e.constant)):void 0,this.pattern=e.pattern,this.format=e.format,this.minLength=e.minLength,this.maxLength=e.maxLength,this.multipleOf=e.multipleOf,this.minimum=e.minimum,this.maximum=e.maximum,this.exclusiveMinimum=e.exclusiveMinimum,this.exclusiveMaximum=e.exclusiveMaximum,this.properties=e.properties?new Map(Array.from(e.properties.entries()).map((e=>[e[0],new S(e[1])]))):void 0,this.additionalProperties=e.additionalProperties?new _(e.additionalProperties):void 0,this.required=e.required?[...e.required]:void 0,this.propertyNames=e.propertyNames?new S(e.propertyNames):void 0,this.minProperties=e.minProperties,this.maxProperties=e.maxProperties,this.patternProperties=e.patternProperties?new Map(Array.from(e.patternProperties.entries()).map((e=>[e[0],new S(e[1])]))):void 0,this.items=e.items?new u(e.items):void 0,this.contains=e.contains?new S(this.contains):void 0,this.minContains=e.minContains,this.maxContains=e.maxContains,this.minItems=e.minItems,this.maxItems=e.maxItems,this.uniqueItems=e.uniqueItems,this.additionalItems=e.additionalItems?new _(e.additionalItems):void 0,this.$defs=e.$defs?new Map(Array.from(e.$defs.entries()).map((e=>[e[0],new S(e[1])]))):void 0,this.permission=e.permission)}getTitle(){return this.namespace&&"_"!=this.namespace?this.namespace+"."+this.name:this.name}getFullName(){return this.namespace+"."+this.name}get$defs(){return this.$defs}set$defs(e){return this.$defs=e,this}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getVersion(){return this.version}setVersion(e){return this.version=e,this}getRef(){return this.ref}setRef(e){return this.ref=e,this}getType(){return this.type}setType(e){return this.type=e,this}getAnyOf(){return this.anyOf}setAnyOf(e){return this.anyOf=e,this}getAllOf(){return this.allOf}setAllOf(e){return this.allOf=e,this}getOneOf(){return this.oneOf}setOneOf(e){return this.oneOf=e,this}getNot(){return this.not}setNot(e){return this.not=e,this}getDescription(){return this.description}setDescription(e){return this.description=e,this}getExamples(){return this.examples}setExamples(e){return this.examples=e,this}getDefaultValue(){return this.defaultValue}setDefaultValue(e){return this.defaultValue=e,this}getComment(){return this.comment}setComment(e){return this.comment=e,this}getEnums(){return this.enums}setEnums(e){return this.enums=e,this}getConstant(){return this.constant}setConstant(e){return this.constant=e,this}getPattern(){return this.pattern}setPattern(e){return this.pattern=e,this}getFormat(){return this.format}setFormat(e){return this.format=e,this}getMinLength(){return this.minLength}setMinLength(e){return this.minLength=e,this}getMaxLength(){return this.maxLength}setMaxLength(e){return this.maxLength=e,this}getMultipleOf(){return this.multipleOf}setMultipleOf(e){return this.multipleOf=e,this}getMinimum(){return this.minimum}setMinimum(e){return this.minimum=e,this}getMaximum(){return this.maximum}setMaximum(e){return this.maximum=e,this}getExclusiveMinimum(){return this.exclusiveMinimum}setExclusiveMinimum(e){return this.exclusiveMinimum=e,this}getExclusiveMaximum(){return this.exclusiveMaximum}setExclusiveMaximum(e){return this.exclusiveMaximum=e,this}getProperties(){return this.properties}setProperties(e){return this.properties=e,this}getAdditionalProperties(){return this.additionalProperties}setAdditionalProperties(e){return this.additionalProperties=e,this}getAdditionalItems(){return this.additionalItems}setAdditionalItems(e){return this.additionalItems=e,this}getRequired(){return this.required}setRequired(e){return this.required=e,this}getPropertyNames(){return this.propertyNames}setPropertyNames(e){return this.propertyNames=e,this.propertyNames.type=new N(l.STRING),this}getMinProperties(){return this.minProperties}setMinProperties(e){return this.minProperties=e,this}getMaxProperties(){return this.maxProperties}setMaxProperties(e){return this.maxProperties=e,this}getPatternProperties(){return this.patternProperties}setPatternProperties(e){return this.patternProperties=e,this}getItems(){return this.items}setItems(e){return this.items=e,this}getContains(){return this.contains}setContains(e){return this.contains=e,this}getMinContains(){return this.minContains}setMinContains(e){return this.minContains=e,this}getMaxContains(){return this.maxContains}setMaxContains(e){return this.maxContains=e,this}getMinItems(){return this.minItems}setMinItems(e){return this.minItems=e,this}getMaxItems(){return this.maxItems}setMaxItems(e){return this.maxItems=e,this}getUniqueItems(){return this.uniqueItems}setUniqueItems(e){return this.uniqueItems=e,this}getPermission(){return this.permission}setPermission(e){return this.permission=e,this}}var M={};t(M,"Parameter",(()=>y));var O={};t(O,"SchemaReferenceException",(()=>w));class w extends Error{constructor(e,t,r){super(e.trim()?e+"-"+t:t),this.schemaPath=e,this.cause=r}getSchemaPath(){return this.schemaPath}getCause(){return this.cause}}var d={};let I;var P;t(d,"ParameterType",(()=>I)),(P=I||(I={})).CONSTANT="CONSTANT",P.EXPRESSION="EXPRESSION";class y{static SCHEMA_NAME="Parameter";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(y.SCHEMA_NAME).setProperties(new Map([["schema",S.SCHEMA],["parameterName",S.ofString("parameterName")],["variableArgument",S.of("variableArgument",l.BOOLEAN).setDefaultValue(!1)],["type",S.ofString("type").setEnums(["EXPRESSION","CONSTANT"])]]));static EXPRESSION=(new S).setNamespace(a.SYSTEM).setName("ParameterExpression").setType(f.of(l.OBJECT)).setProperties(new Map([["isExpression",S.ofBoolean("isExpression").setDefaultValue(!0)],["value",S.ofAny("value")]]));variableArgument=!1;type=I.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=I.EXPRESSION){return[e,new y(e,t).setType(n).setVariableArgument(r)]}static of(e,t,r=!1,n=I.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??I.EXPRESSION)}}const x=new Map([["any",S.ofAny("any").setNamespace(a.SYSTEM)],["boolean",S.ofBoolean("boolean").setNamespace(a.SYSTEM)],["double",S.ofDouble("double").setNamespace(a.SYSTEM)],["float",S.ofFloat("float").setNamespace(a.SYSTEM)],["integer",S.ofInteger("integer").setNamespace(a.SYSTEM)],["long",S.ofLong("long").setNamespace(a.SYSTEM)],["number",S.ofNumber("number").setNamespace(a.SYSTEM)],["string",S.ofString("string").setNamespace(a.SYSTEM)],[y.EXPRESSION.getName(),y.EXPRESSION],[S.NULL.getName(),S.NULL],[S.SCHEMA.getName(),S.SCHEMA]]),v=Array.from(x.values()).map((e=>e.getFullName()));class L{find(e,t){if(a.SYSTEM==e)return x.get(t)}filter(e){return v.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}var U={};function V(e){return[e.getSignature().getName(),e]}t(U,"KIRunFunctionRepository",(()=>Yn));var C={};t(C,"MapUtil",(()=>G)),t(C,"MapEntry",(()=>b));class G{static of(e,t,r,n,s,a,i,o,u,A,l,g,m,R,c,p,T,h,N,f){const _=new Map;return E(e)||E(t)||_.set(e,t),E(r)||E(n)||_.set(r,n),E(s)||E(a)||_.set(s,a),E(i)||E(o)||_.set(i,o),E(u)||E(A)||_.set(u,A),E(l)||E(g)||_.set(l,g),E(m)||E(R)||_.set(m,R),E(c)||E(p)||_.set(c,p),E(T)||E(h)||_.set(T,h),E(N)||E(f)||_.set(N,f),_}static ofArrayEntries(...e){const t=new Map;for(const[r,n]of e)t.set(r,n);return t}static entry(e,t){return new b(e,t)}static ofEntries(...e){const t=new Map;for(const r of e)t.set(r.k,r.v);return t}static ofEntriesArray(...e){const t=new Map;for(let r=0;r<e.length;r++)t.set(e[r][0],e[r][1]);return t}constructor(){}}class b{constructor(e,t){this.k=e,this.v=t}}var D={};t(D,"EventResult",(()=>B));var F={};t(F,"Event",(()=>Y));class Y{static OUTPUT="output";static ERROR="error";static ITERATION="iteration";static TRUE="true";static FALSE="false";static SCHEMA_NAME="Event";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(Y.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["name",S.ofString("name")],["parameters",S.ofObject("parameter").setAdditionalProperties((new _).setSchemaValue(S.SCHEMA))]]));constructor(e,t){if(e instanceof Y)this.name=e.name,this.parameters=new Map(Array.from(e.parameters.entries()).map((e=>[e[0],new S(e[1])])));else{if(this.name=e,!t)throw new Error("Unknown constructor format");this.parameters=t}}getName(){return this.name}setName(e){return this.name=e,this}getParameters(){return this.parameters}setParameters(e){return this.parameters=e,this}static outputEventMapEntry(e){return Y.eventMapEntry(Y.OUTPUT,e)}static eventMapEntry(e,t){return[e,new Y(e,t)]}static from(e){return new Y(e.name,new Map(Object.entries(e.parameters??{}).map((e=>{const t=S.from(e[1]);if(!t)throw new w("","Event expects a schema");return[e[0],t]}))))}}class B{constructor(e,t){this.name=e,this.result=t}getName(){return this.name}setName(e){return this.name=e,this}getResult(){return this.result}setResult(e){return this.result=e,this}static outputOf(e){return B.of(Y.OUTPUT,e)}static of(e,t){return new B(e,t)}}var H={};t(H,"FunctionOutput",(()=>j));var k={};t(k,"KIRuntimeException",(()=>$));class $ extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class j{index=0;constructor(e){if(E(e))throw new $("Function output is generating null");Array.isArray(e)&&e.length&&e[0]instanceof B?this.fo=e:(this.fo=[],Array.isArray(e)||(this.generator=e))}next(){if(!this.generator)return this.index<this.fo.length?this.fo[this.index++]:void 0;const e=this.generator.next();return e&&this.fo.push(e),e}allResults(){return this.fo}}var X={};t(X,"FunctionSignature",(()=>W));class W{static SCHEMA_NAME="FunctionSignature";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(W.SCHEMA_NAME).setProperties(new Map([["name",S.ofString("name")],["namespace",S.ofString("namespace")],["parameters",S.ofObject("parameters").setAdditionalProperties((new _).setSchemaValue(y.SCHEMA))],["events",S.ofObject("events").setAdditionalProperties((new _).setSchemaValue(Y.SCHEMA))]]));namespace="_";parameters=new Map;events=new Map;constructor(e){e instanceof W?(this.name=e.name,this.namespace=e.namespace,this.parameters=new Map(Array.from(e.parameters.entries()).map((e=>[e[0],new y(e[1])]))),this.events=new Map(Array.from(e.events.entries()).map((e=>[e[0],new Y(e[1])])))):this.name=e}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getParameters(){return this.parameters}setParameters(e){return this.parameters=e,this}getEvents(){return this.events}setEvents(e){return this.events=e,this}getFullName(){return this.namespace+"."+this.name}}var q={};t(q,"AbstractFunction",(()=>Ue));var J={};t(J,"SchemaValidator",(()=>Le));var z={};t(z,"deepEqual",(()=>re));var K={};t(K,"LinkedList",(()=>ee));var Q={};t(Q,"StringFormatter",(()=>Z));class Z{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 ee{head=void 0;tail=void 0;length=0;constructor(e){if(e?.length){for(const t of e)if(this.head){const e=new te(t,this.tail);this.tail.next=e,this.tail=e}else this.tail=this.head=new te(t);this.length=e.length}}push(e){const t=new te(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 $(Z.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 te(e,this.head),this.head.next=this.tail):(this.tail=new te(e,this.tail),this.tail.previous.next=this.tail):this.head=this.tail=new te(e),this}map(e,t){let r=new ee,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(re(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 te{constructor(e,t,r){this.value=e,this.next=r,this.previous=t}toString(){return""+this.value}}function re(e,t){let r=new ee;r.push(e);let n=new ee;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}var ne={};t(ne,"StringUtil",(()=>se));class se{constructor(){}static nthIndex(e,t,r=0,n){if(!e)throw new $("String cannot be null");if(r<0||r>=e.length)throw new $(Z.format("Cannot search from index : $",r));if(n<=0||n>e.length)throw new $(Z.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 ae={};t(ae,"SchemaUtil",(()=>ge));var ie={};t(ie,"Tuple2",(()=>oe)),t(ie,"Tuple3",(()=>Ee)),t(ie,"Tuple4",(()=>ue));class oe{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 Ee extends oe{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 ue extends Ee{constructor(e,t,r,n){super(e,t,r),this.fr=n}getT4(){return this.fr}setT1(e){return this.f=e,this}setT2(e){return this.s=e,this}setT3(e){return this.t=e,this}setT4(e){return this.fr=e,this}}var Ae={};t(Ae,"SchemaValidationException",(()=>le));class le 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 ge{static UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH="Unable to retrive schema from referenced path";static CYCLIC_REFERENCE_LIMIT_COUNTER=20;static getDefaultValue(e,t){if(e)return e.getConstant()?e.getConstant():E(e.getDefaultValue())?ge.getDefaultValue(ge.getSchemaFromRef(e,t,e.getRef()),t):e.getDefaultValue()}static hasDefaultValueOrNullSchemaType(e,t){return!!e&&(!!e.getConstant()||(!E(e.getDefaultValue())||(E(e.getRef())?!!e.getType()?.getAllowedSchemaTypes().has(l.NULL):this.hasDefaultValueOrNullSchemaType(ge.getSchemaFromRef(e,t,e.getRef()),t))))}static getSchemaFromRef(e,t,r,n=0){if(++n==ge.CYCLIC_REFERENCE_LIMIT_COUNTER)throw new le(r??"","Schema has a cyclic reference");if(!e||!r||se.isNullOrBlank(r))return;if(!r.startsWith("#")){var s=ge.resolveExternalSchema(e,t,r);s&&(e=s.getT1(),r=s.getT2())}let a=r.split("/");return 1===a.length?e:ge.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,ge.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);i=i.get$defs()?.get(s[a])}else{if(i&&(!i.getType()?.contains(l.OBJECT)||!i.getProperties()))throw new w(r,"Cannot retrievie schema from non Object type schemas");i=i.getProperties()?.get(s[a])}if(a++,!i)throw new w(r,ge.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);if(!se.isNullOrBlank(i.getRef())&&(i=ge.getSchemaFromRef(i,t,i.getRef(),n),!i))throw new w(r,ge.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH)}return i}}static resolveExternalSchema(e,t,r){if(!t)return;let n=se.splitAtFirstOccurance(r??"","/");if(!n[0])return;let s=se.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 oe(a,r);if(r="#/"+n[1],!a)throw new w(r,ge.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);return new oe(a,r)}}constructor(){}}var me={};t(me,"AnyOfAllOfOneOfValidator",(()=>Re));class Re{static validate(e,t,r,n){let s=[];return t.getOneOf()&&!t.getOneOf()?Re.oneOf(e,t,r,n,s):t.getAllOf()&&!t.getAllOf()?Re.allOf(e,t,r,n,s):t.getAnyOf()&&!t.getAnyOf()&&Re.anyOf(e,t,r,n,s),n}static anyOf(e,t,r,n,s){let a=!1;for(let i of t.getAnyOf()??[])try{Re.validate(e,i,r,n),a=!0;break}catch(e){a=!1,s.push(e)}if(!a)throw new le(Le.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{Re.validate(e,i,r,n),a++}catch(e){s.push(e)}if(a!==t.getAllOf()?.length)throw new le(Le.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{Re.validate(e,i,r,n),a++}catch(e){s.push(e)}if(1!=a)throw new le(Le.path(e),0==a?"The value does not satisfy any schema":"The value satisfy more than one schema",s)}constructor(){}}var ce={};t(ce,"TypeValidator",(()=>ve));var pe={};t(pe,"ArrayValidator",(()=>Te));class Te{static validate(e,t,r,n){if(E(n))throw new le(Le.path(e),"Expected an array but found null");if(!Array.isArray(n))throw new le(Le.path(e),n.toString()+" is not an Array");let s=n;return Te.checkMinMaxItems(e,t,s),Te.checkItems(e,t,r,s),Te.checkUniqueItems(e,t,s),Te.checkContains(t,e,r,s),n}static checkContains(e,t,r,n){if(E(e.getContains()))return;let s=Te.countContains(t,e,r,n,E(e.getMinContains())&&E(e.getMaxContains()));if(0===s)throw new le(Le.path(t),"None of the items are of type contains schema");if(!E(e.getMinContains())&&e.getMinContains()>s)throw new le(Le.path(t),"The minimum number of the items of type contains schema should be "+e.getMinContains()+" but found "+s);if(!E(e.getMaxContains())&&e.getMaxContains()<s)throw new le(Le.path(t),"The maximum number of the items of type contains schema should be "+e.getMaxContains()+" but found "+s)}static countContains(e,t,r,n,s){let a=0;for(let i=0;i<n.length;i++){let o=e?[...e]:[];try{if(Le.validate(o,t.getContains(),r,n[i]),a++,s)break}catch(e){}}return a}static checkUniqueItems(e,t,r){if(t.getUniqueItems()&&t.getUniqueItems()){if(new Set(r).size!==r.length)throw new le(Le.path(e),"Items on the array are not unique")}}static checkMinMaxItems(e,t,r){if(t.getMinItems()&&t.getMinItems()>r.length)throw new le(Le.path(e),"Array should have minimum of "+t.getMinItems()+" elements");if(t.getMaxItems()&&t.getMaxItems()<r.length)throw new le(Le.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=Le.validate(a,s.getSingleSchema(),r,n[t]);n[t]=i}if(s.getTupleSchema()){if(s.getTupleSchema().length!==n.length&&E(t?.getAdditionalItems()))throw new le(Le.path(e),"Expected an array with only "+s.getTupleSchema().length+" but found "+n.length);this.checkItemsInTupleSchema(e,r,n,s),this.checkAdditionalItems(e,t,r,n,s)}}static checkItemsInTupleSchema(e,t,r,n){for(let s=0;s<n.getTupleSchema()?.length;s++){let a=e?[...e]:[],i=Le.validate(a,n.getTupleSchema()[s],t,r[s]);r[s]=i}}static checkAdditionalItems(e,t,r,n,s){if(!E(t.getAdditionalItems())){let a=t.getAdditionalItems();if(a?.getBooleanValue()){let i=S.ofAny("item");if(!1===a?.getBooleanValue()&&n.length>s.getTupleSchema()?.length)throw new le(Le.path(e),"No Additional Items are defined");this.checkEachItemInAdditionalItems(e,t,r,n,s,i)}else if(a?.getSchemaValue()){let i=a.getSchemaValue();this.checkEachItemInAdditionalItems(e,t,r,n,s,i)}}}static checkEachItemInAdditionalItems(e,t,r,n,s,a){for(let t=s.getTupleSchema()?.length;t<n.length;t++){let s=e?[...e]:[],i=Le.validate(s,a,r,n[t]);n[t]=i}}constructor(){}}var he={};t(he,"BooleanValidator",(()=>Ne));class Ne{static validate(e,t,r){if(E(r))throw new le(Le.path(e),"Expected a boolean but found null");if("boolean"!=typeof r)throw new le(Le.path(e),r.toString()+" is not a boolean");return r}constructor(){}}var fe={};t(fe,"NullValidator",(()=>_e));class _e{static validate(e,t,r){if(r)throw new le(Le.path(e),"Expected a null but found "+r);return r}constructor(){}}var Se={};t(Se,"NumberValidator",(()=>Me));class Me{static validate(e,t,r,n){if(E(n))throw new le(Le.path(t),"Expected a number but found null");if("number"!=typeof n)throw new le(Le.path(t),n.toString()+" is not a "+e);let s=Me.extractNumber(e,t,r,n);return Me.checkRange(t,r,n,s),Me.checkMultipleOf(t,r,n,s),n}static extractNumber(e,t,r,n){let s=n;try{e!=l.LONG&&e!=l.INTEGER||(s=Math.round(s))}catch(r){throw new le(Le.path(t),n+" is not a number of type "+e,r)}if(E(s)||(e==l.LONG||e==l.INTEGER)&&s!=n)throw new le(Le.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 le(Le.path(e),r.toString()+" is not multiple of "+t.getMultipleOf())}}static checkRange(e,t,r,n){if(t.getMinimum()&&Me.numberCompare(n,t.getMinimum())<0)throw new le(Le.path(e),r.toString()+" should be greater than or equal to "+t.getMinimum());if(t.getMaximum()&&Me.numberCompare(n,t.getMaximum())>0)throw new le(Le.path(e),r.toString()+" should be less than or equal to "+t.getMaximum());if(t.getExclusiveMinimum()&&Me.numberCompare(n,t.getExclusiveMinimum())<=0)throw new le(Le.path(e),r.toString()+" should be greater than "+t.getExclusiveMinimum());if(t.getExclusiveMaximum()&&Me.numberCompare(n,t.getExclusiveMaximum())>0)throw new le(Le.path(e),r.toString()+" should be less than "+t.getExclusiveMaximum())}static numberCompare(e,t){return e-t}constructor(){}}var Oe={};t(Oe,"ObjectValidator",(()=>we));class we{static validate(e,t,r,n){if(E(n))throw new le(Le.path(e),"Expected an object but found null");if("object"!=typeof n||Array.isArray(n))throw new le(Le.path(e),n.toString()+" is not an Object");let s=n,a=new Set(Object.keys(s));we.checkMinMaxProperties(e,t,a),t.getPropertyNames()&&we.checkPropertyNameSchema(e,t,r,a),t.getRequired()&&we.checkRequired(e,t,s),t.getProperties()&&we.checkProperties(e,t,r,s,a),t.getPatternProperties()&&we.checkPatternProperties(e,t,r,s,a),t.getAdditionalProperties()&&we.checkAddtionalProperties(e,t,r,s,a)}static checkPropertyNameSchema(e,t,r,n){for(let s of Array.from(n.values()))try{Le.validate(e,t.getPropertyNames(),r,s)}catch(t){throw new le(Le.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 le(Le.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=Le.validate(s,a.getSchemaValue(),r,n[t]);n[t]=i}else if(!1===a.getBooleanValue()&&s.size)throw new le(Le.path(e),Array.from(s)+" is/are additional properties which are not allowed.")}static checkPatternProperties(e,t,r,n,s){const a=new Map;for(const e of Array.from(t.getPatternProperties().keys()))a.set(e,new RegExp(e));for(const i of Array.from(s.values())){const o=e?[...e]:[];for(const e of Array.from(a.entries()))if(e[1].test(i)){const a=Le.validate(o,t.getPatternProperties().get(e[0]),r,n[i]);n[i]=a,s.delete(i);break}}}static checkProperties(e,t,r,n,s){for(const a of Array.from(t.getProperties())){let t=n[a[0]];if(!n.hasOwnProperty(a[0])&&E(t)){if(E(ge.getDefaultValue(a[1],r)))continue}let i=e?[...e]:[],o=Le.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 le(Le.path(e),"Object should have minimum of "+t.getMinProperties()+" properties");if(t.getMaxProperties()&&r.size>t.getMaxProperties())throw new le(Le.path(e),"Object can have maximum of "+t.getMaxProperties()+" properties")}constructor(){}}var de={};t(de,"StringValidator",(()=>xe));var Ie={};let Pe;var ye;t(Ie,"StringFormat",(()=>Pe)),(ye=Pe||(Pe={})).DATETIME="DATETIME",ye.TIME="TIME",ye.DATE="DATE",ye.EMAIL="EMAIL",ye.REGEX="REGEX";class xe{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 le(Le.path(e),"Expected a string but found "+r);if("string"!=typeof r)throw new le(Le.path(e),r.toString()+" is not String");t.getFormat()==Pe.TIME?xe.patternMatcher(e,t,r,xe.TIME,"time pattern"):t.getFormat()==Pe.DATE?xe.patternMatcher(e,t,r,xe.DATE,"date pattern"):t.getFormat()==Pe.DATETIME?xe.patternMatcher(e,t,r,xe.DATETIME,"date time pattern"):t.getFormat()==Pe.EMAIL?xe.patternMatcher(e,t,r,xe.EMAIL,"email pattern"):t.getPattern()&&xe.patternMatcher(e,t,r,new RegExp(t.getPattern()),"pattern "+t.getPattern());let n=r.length;if(t.getMinLength()&&n<t.getMinLength())throw new le(Le.path(e),"Expected a minimum of "+t.getMinLength()+" characters");if(t.getMaxLength()&&n>t.getMaxLength())throw new le(Le.path(e),"Expected a maximum of "+t.getMaxLength()+" characters");return r}static patternMatcher(e,t,r,n,s){if(!n.test(r))throw new le(Le.path(e),r.toString()+" is not matched with the "+s)}constructor(){}}class ve{static validate(e,t,r,n,s){if(t==l.STRING)xe.validate(e,r,s);else if(t==l.LONG||t==l.INTEGER||t==l.DOUBLE||t==l.FLOAT)Me.validate(t,e,r,s);else if(t==l.BOOLEAN)Ne.validate(e,r,s);else if(t==l.OBJECT)we.validate(e,r,n,s);else if(t==l.ARRAY)Te.validate(e,r,n,s);else{if(t!=l.NULL)throw new le(Le.path(e),t+" is not a valid type.");_e.validate(e,r,s)}return s}constructor(){}}class Le{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 le(Le.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(!E(t.getConstant()))return Le.constantValidation(e,t,n);if(t.getEnums()&&!t.getEnums()?.length)return Le.enumCheck(e,t,n);if(t.getFormat()&&E(t.getType()))throw new le(this.path(e),"Type is missing in schema for declared "+t.getFormat()?.toString()+" format.");if(t.getType()&&Le.typeValidation(e,t,r,n),!se.isNullOrBlank(t.getRef()))return Le.validate(e,ge.getSchemaFromRef(e[0],r,t.getRef()),r,n);if((t.getOneOf()||t.getAllOf()||t.getAnyOf())&&Re.validate(e,t,r,n),t.getNot()){let s=!1;try{Le.validate(e,t.getNot(),r,n),s=!0}catch(e){s=!1}if(s)throw new le(Le.path(e),"Schema validated value in not condition.")}return n}static constantValidation(e,t,r){if(!re(t.getConstant(),r))throw new le(Le.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 le(Le.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{ve.validate(e,i,t,r,n),s=!0;break}catch(e){s=!1,a.push(e)}if(!s)throw new le(Le.path(e),"Value "+JSON.stringify(n)+" is not of valid type(s)",a)}constructor(){}}class Ue{validateArguments(e,t,r){return Array.from(this.getSignature().getParameters().entries()).map((n=>{let s=n[1];try{return this.validateArgument(e,t,n,s)}catch(e){const t=this.getSignature();throw new $(`Error while executing the function ${t.getNamespace()}.${t.getName()}'s parameter ${s.getParameterName()} with step name '${r?.getStatement().getStatementName()??"Unknown Step"}' with error : ${e?.message}`)}})).reduce(((e,t)=>(e.set(t.getT1(),t.getT2()),e)),new Map)}validateArgument(e,t,r,n){let s,a=r[0],i=e.get(r[0]);if(E(i)&&!n.isVariableArgument())return new oe(a,Le.validate(void 0,n.getSchema(),t,void 0));if(!n?.isVariableArgument())return new oe(a,Le.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]=Le.validate(void 0,n.getSchema(),t,s[e]);return new oe(a,s)}async execute(e){e.setArguments(this.validateArguments(e.getArguments()??new Map,e.getSchemaRepository(),e.getStatementExecution()));try{return this.internalExecute(e)}catch(t){const r=this.getSignature();throw new $(`Error while executing the function ${r.getNamespace()}.${r.getName()} with step name '${e.getStatementExecution()?.getStatement().getStatementName()??"Unknown Step"}' with error : ${t?.message}`)}}getProbableEventSignature(e){return this.getSignature().getEvents()}}class Ve extends Ue{static EVENT_INDEX_NAME="index";static EVENT_RESULT_NAME="result";static EVENT_INDEX=new Y(Y.OUTPUT,G.of(Ve.EVENT_INDEX_NAME,S.ofInteger(Ve.EVENT_INDEX_NAME)));static EVENT_RESULT_INTEGER=new Y(Y.OUTPUT,G.of(Ve.EVENT_RESULT_NAME,S.ofInteger(Ve.EVENT_RESULT_NAME)));static EVENT_RESULT_BOOLEAN=new Y(Y.OUTPUT,G.of(Ve.EVENT_RESULT_NAME,S.ofBoolean(Ve.EVENT_RESULT_NAME)));static EVENT_RESULT_ARRAY=new Y(Y.OUTPUT,G.of(Ve.EVENT_RESULT_NAME,S.ofArray(Ve.EVENT_RESULT_NAME,S.ofAny(Ve.EVENT_RESULT_NAME))));static EVENT_RESULT_EMPTY=new Y(Y.OUTPUT,G.of());static EVENT_RESULT_ANY=new Y(Y.OUTPUT,G.of(this.EVENT_RESULT_NAME,S.ofAny(this.EVENT_RESULT_NAME)));static EVENT_RESULT_OBJECT=new Y(Y.OUTPUT,G.of(this.EVENT_RESULT_NAME,S.ofObject(this.EVENT_RESULT_NAME)));static PARAMETER_INT_LENGTH=y.of("length",S.ofInteger("length").setDefaultValue(-1));static PARAMETER_ARRAY_FIND=y.of("find",S.ofArray("eachFind",S.ofAny("eachFind")));static PARAMETER_INT_SOURCE_FROM=y.of("srcFrom",S.ofInteger("srcFrom").setDefaultValue(0).setMinimum(0));static PARAMETER_INT_SECOND_SOURCE_FROM=y.of("secondSrcFrom",S.ofInteger("secondSrcFrom").setDefaultValue(0));static PARAMETER_INT_FIND_FROM=y.of("findFrom",S.ofInteger("findFrom").setDefaultValue(0));static PARAMETER_INT_OFFSET=y.of("offset",S.ofInteger("offset").setDefaultValue(0));static PARAMETER_ROTATE_LENGTH=y.of("rotateLength",S.ofInteger("rotateLength").setDefaultValue(1).setMinimum(1));static PARAMETER_BOOLEAN_ASCENDING=y.of("ascending",S.ofBoolean("ascending").setDefaultValue(!1));static PARAMETER_FIND_PRIMITIVE=y.of("findPrimitive",S.of("findPrimitive",l.STRING,l.DOUBLE,l.FLOAT,l.INTEGER,l.LONG));static PARAMETER_ARRAY_SOURCE=y.of("source",S.ofArray("eachSource",S.ofAny("eachSource")));static PARAMETER_ARRAY_SECOND_SOURCE=y.of("secondSource",S.ofArray("eachSecondSource",S.ofAny("eachSecondSource")));static PARAMETER_ARRAY_SOURCE_PRIMITIVE=y.of("source",S.ofArray("eachSource",(new S).setName("eachSource").setType(f.of(l.STRING,l.NULL,l.INTEGER,l.FLOAT,l.DOUBLE,l.LONG))));static PARAMETER_BOOLEAN_DEEP_COPY=y.of("deepCopy",S.ofBoolean("deepCopy").setDefaultValue(!0));static PARAMETER_ANY=y.of("element",S.ofAny("element"));static PARAMETER_ANY_NOT_NULL=y.of("elementObject",S.ofAnyNotNull("elementObject"));static PARAMETER_ANY_VAR_ARGS=y.of("element",S.ofAny("element")).setVariableArgument(!0);static PARAMETER_ARRAY_RESULT=y.of(Ve.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 Ce extends Ve{constructor(){super("Concatenate",[Ve.PARAMETER_ARRAY_SOURCE,Ve.PARAMETER_ARRAY_SECOND_SOURCE],Ve.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(Ve.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Ve.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName());return new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,[...t,...r]]]))])}}class Ge extends Ve{constructor(){super("AddFirst",[Ve.PARAMETER_ARRAY_SOURCE,Ve.PARAMETER_ANY],Ve.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(Ve.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Ve.PARAMETER_ANY.getParameterName());if(t=[...t],0==t.length)return t.push(r),new j([B.outputOf(new Map([]))]);t.push(r);let n=t.length-1;for(;n>0;){let e=t[n-1];t[n-1]=t[n],t[n--]=e}return new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,t]]))])}}class be extends Ve{constructor(){super("ArrayToArrayOfObjects",[Ve.PARAMETER_ARRAY_SOURCE,y.of("keyName",S.ofString("keyName"),!0)],Ve.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(be.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get("keyName");if(!t?.length)return new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,[]]]))]);let n=t.map((e=>{const t={};if(Array.isArray(e))if(r.length)r.forEach(((r,n)=>{t[r]=e[n]}));else for(let r=0;r<e.length;r++)t[`value${r+1}`]=e[r];else t[r.length?r[0]:"value"]=e;return t}));return new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,n]]))])}}var De={};t(De,"PrimitiveUtil",(()=>Be));var Fe={};t(Fe,"ExecutionException",(()=>Ye));class Ye extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class Be{static findPrimitiveNullAsBoolean(e){if(E(e))return new oe(l.BOOLEAN,!1);let t=typeof e;if("object"===t)throw new Ye(Z.format("$ is not a primitive type",e));let r=e;return"boolean"===t?new oe(l.BOOLEAN,r):"string"===t?new oe(l.STRING,r):Be.findPrimitiveNumberType(r)}static findPrimitive(e){if(E(e))return new oe(l.NULL,void 0);let t=typeof e;if("object"===t)throw new Ye(Z.format("$ is not a primitive type",e));let r=e;return"boolean"===t?new oe(l.BOOLEAN,r):"string"===t?new oe(l.STRING,r):Be.findPrimitiveNumberType(r)}static findPrimitiveNumberType(e){if(E(e)||Array.isArray(e)||"object"==typeof e)throw new Ye(Z.format("Unable to convert $ to a number.",e));let t=e;try{let e=t;return Number.isInteger(e)?new oe(l.LONG,e):new oe(l.DOUBLE,e)}catch(e){throw new Ye(Z.format("Unable to convert $ to a number.",t),e)}}static compare(e,t){if(e==t)return 0;if(E(e)||E(t))return E(e)?-1:1;if(Array.isArray(e)||Array.isArray(t)){if(Array.isArray(e)&&Array.isArray(t)){if(e.length!=t.length)return e.length-t.length;for(let r=0;r<e.length;r++){let n=this.compare(e[r],t[r]);if(0!=n)return n}return 0}return Array.isArray(e)?-1:1}const r=typeof e,n=typeof t;return"object"===r||"object"===n?("object"===r&&"object"===n&&Object.keys(e).forEach((r=>{let n=this.compare(e[r],t[r]);if(0!=n)return n})),"object"===r?-1:1):this.comparePrimitive(e,t)}static comparePrimitive(e,t){return E(e)||E(t)?E(e)&&E(t)?0:E(e)?-1:1:e==t?0:"boolean"==typeof e||"boolean"==typeof t?e?-1:1:"string"==typeof e||"string"==typeof t?e+""<t+""?-1:1:"number"==typeof e||"number"==typeof t?e-t:0}static baseNumberType(e){return Number.isInteger(e)?l.LONG:l.DOUBLE}static toPrimitiveType(e){return e}constructor(){}}class He extends Ve{constructor(){super("BinarySearch",[He.PARAMETER_ARRAY_SOURCE_PRIMITIVE,He.PARAMETER_INT_SOURCE_FROM,He.PARAMETER_FIND_PRIMITIVE,He.PARAMETER_INT_LENGTH],He.EVENT_INDEX)}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_FIND_PRIMITIVE.getParameterName()),s=e?.getArguments()?.get(He.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length||r<0||r>t.length)throw new $("Search source array cannot be empty");if(-1==s&&(s=t.length-r),s=r+s,s>t.length)throw new $("End point for array cannot be more than the size of the source array");let a=-1;for(;r<=s;){let e=Math.floor((r+s)/2);if(0==Be.compare(t[e],n)){a=e;break}Be.compare(t[e],n)>0?s=e-1:r=e+1}return new j([B.outputOf(new Map([[He.EVENT_INDEX_NAME,a]]))])}}var ke={};t(ke,"ArrayUtil",(()=>$e));class $e{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 je extends Ve{constructor(){super("Compare",$e.of(je.PARAMETER_ARRAY_SOURCE,je.PARAMETER_INT_SOURCE_FROM,je.PARAMETER_ARRAY_FIND,je.PARAMETER_INT_FIND_FROM,je.PARAMETER_INT_LENGTH),je.EVENT_RESULT_INTEGER)}async internalExecute(e){var t=e?.getArguments()?.get(je.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(je.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(je.PARAMETER_ARRAY_FIND.getParameterName()),s=e?.getArguments()?.get(je.PARAMETER_INT_FIND_FROM.getParameterName()),a=e?.getArguments()?.get(je.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new $("Compare source array cannot be empty");if(0==n.length)throw new $("Compare find array cannot be empty");if(-1==a&&(a=t.length-r),r+a>t.length)throw new $(Z.format("Source array size $ is less than comparing size $",t.length,r+a));if(s+a>n.length)throw new $(Z.format("Find array size $ is less than comparing size $",n.length,s+a));return new j($e.of(B.outputOf(G.of(je.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 $(Z.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}}var Xe={};function We(e){return e?structuredClone?structuredClone(e):JSON.parse(JSON.stringify(e)):e}t(Xe,"duplicate",(()=>We));class qe extends Ve{constructor(){super("Copy",[qe.PARAMETER_ARRAY_SOURCE,qe.PARAMETER_INT_SOURCE_FROM,qe.PARAMETER_INT_LENGTH,qe.PARAMETER_BOOLEAN_DEEP_COPY],qe.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(qe.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(qe.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(qe.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),r+n>t.length)throw new $(Z.format("Array has no elements from $ to $ as the array size is $",r,r+n,t.length));var s=e?.getArguments()?.get(qe.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?We(t[e]):t[e]);return new j([B.outputOf(G.of(qe.EVENT_RESULT_NAME,a))])}}class Je extends Ve{constructor(){super("Delete",[Ve.PARAMETER_ARRAY_SOURCE,Ve.PARAMETER_ANY_VAR_ARGS],Ve.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(Je.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Je.PARAMETER_ANY_VAR_ARGS.getParameterName());if(null==r)throw new $("The deletable var args are empty. So cannot be proceeded further.");if(0==t.length||0==r.length)throw new $("Expected a source or deletable for an array but not found any");let n=new Set;for(let e=t.length-1;e>=0;e--)for(let s=0;s<r.length;s++)n.has(e)||0!=Be.compare(t[e],r[s])||n.add(t[e]);return new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,t.filter((e=>!n.has(e)))]]))])}}class ze extends Ve{constructor(){super("DeleteFirst",[ze.PARAMETER_ARRAY_SOURCE],ze.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(ze.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new $("Given source array is empty");return t=[...t],t.shift(),new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,t]]))])}}class Ke extends Ve{constructor(){super("DeleteFrom",[Ke.PARAMETER_ARRAY_SOURCE,Ke.PARAMETER_INT_SOURCE_FROM,Ke.PARAMETER_INT_LENGTH],Ke.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(Ke.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Ke.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(Ke.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new $("There are no elements to be deleted");if(t=[...t],r>=t.length||r<0)throw new $("The int source for the array should be in between 0 and length of the array ");if(-1==n&&(n=t.length-r),r+n>t.length)throw new $("Requested length to be deleted is more than the size of array ");return t.splice(r,n),new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,t]]))])}}class Qe extends Ve{constructor(){super("DeleteLast",[Qe.PARAMETER_ARRAY_SOURCE],Qe.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(Qe.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new $("Given source array is empty");return t=[...t],t.pop(),new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,t]]))])}}class Ze extends Ve{constructor(){super("Disjoint",[Ze.PARAMETER_ARRAY_SOURCE,Ze.PARAMETER_INT_SOURCE_FROM,Ze.PARAMETER_ARRAY_SECOND_SOURCE,Ze.PARAMETER_INT_SECOND_SOURCE_FROM,Ze.PARAMETER_INT_LENGTH],Ze.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(Ze.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Ze.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(Ze.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(Ze.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(Ze.PARAMETER_INT_LENGTH.getParameterName());if(-1==a&&(a=t.length<=n.length?t.length-r:n.length-s),a>t.length||a>n.length||r+a>t.length||s+a>n.length)throw new $("The length which was being requested is more than than the size either source array or second source array");let i=new Set,o=new Set;for(let e=0;e<a;e++)i.add(t[e+r]);for(let e=0;e<a;e++)o.add(n[e+s]);let E=new Set;return i.forEach((e=>{o.has(e)?o.delete(e):E.add(e)})),o.forEach((e=>{i.has(e)||E.add(e)})),new j([B.outputOf(new Map([[Ze.EVENT_RESULT_NAME,[...E]]]))])}}class et extends Ve{constructor(){super("Equals",[et.PARAMETER_ARRAY_SOURCE,et.PARAMETER_INT_SOURCE_FROM,et.PARAMETER_ARRAY_FIND,et.PARAMETER_INT_FIND_FROM,et.PARAMETER_INT_LENGTH],et.EVENT_RESULT_BOOLEAN)}async internalExecute(e){let t=new je,r=(await t.execute(e)).allResults()[0].getResult().get(et.EVENT_RESULT_NAME);return new j([B.outputOf(G.of(et.EVENT_RESULT_NAME,0==r))])}}class tt extends Ve{constructor(){super("Fill",[tt.PARAMETER_ARRAY_SOURCE,tt.PARAMETER_INT_SOURCE_FROM,tt.PARAMETER_INT_LENGTH,tt.PARAMETER_ANY],tt.EVENT_RESULT_EMPTY)}async internalExecute(e){var 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()),s=e?.getArguments()?.get(tt.PARAMETER_ANY.getParameterName());if(r<0)throw new $(Z.format("Arrays out of bound trying to access $ index",r));-1==n&&(n=t.length-r);let a=r+n-t.length;if(t=[...t],a>0)for(let e=0;e<a;e++)t.push();for(let e=r;e<r+n;e++)t[e]=E(s)?s:We(s);return new j([B.outputOf(G.of(Ve.EVENT_RESULT_NAME,t))])}}class rt extends Ve{constructor(){super("Frequency",[rt.PARAMETER_ARRAY_SOURCE,rt.PARAMETER_ANY,rt.PARAMETER_INT_SOURCE_FROM,rt.PARAMETER_INT_LENGTH],rt.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(rt.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(rt.PARAMETER_ANY.getParameterName()),n=e?.getArguments()?.get(rt.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(rt.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)return new j([B.outputOf(new Map([[rt.EVENT_RESULT_NAME,0]]))]);if(n>t.length)throw new $("Given start point is more than the size of source");let a=n+s;if(-1==s&&(a=t.length-n),a>t.length)throw new $("Given length is more than the size of source");let i=0;for(let e=n;e<a&&e<t.length;e++)0==Be.compare(t[e],r)&&i++;return new j([B.outputOf(new Map([[rt.EVENT_RESULT_NAME,i]]))])}}class nt extends Ve{constructor(){super("IndexOf",[nt.PARAMETER_ARRAY_SOURCE,nt.PARAMETER_ANY_NOT_NULL,nt.PARAMETER_INT_FIND_FROM],nt.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(nt.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(nt.PARAMETER_ANY_NOT_NULL.getParameterName());let n=e?.getArguments()?.get(nt.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new j([B.outputOf(new Map([[nt.EVENT_RESULT_NAME,-1]]))]);if(n<0||n>t.length)throw new $("The size of the search index of the array is greater than the size of the array");let s=-1;for(let e=n;e<t.length;e++)if(0==Be.compare(t[e],r)){s=e;break}return new j([B.outputOf(new Map([[nt.EVENT_RESULT_NAME,s]]))])}}class st extends Ve{constructor(){super("IndexOfArray",[st.PARAMETER_ARRAY_SOURCE,st.PARAMETER_ARRAY_SECOND_SOURCE,st.PARAMETER_INT_FIND_FROM],st.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(st.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(st.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(st.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length||0==r.length)return new j([B.outputOf(new Map([[st.EVENT_RESULT_NAME,-1]]))]);if(n<0||n>t.length||t.length<r.length)throw new $("Given from second source is more than the size of the source array");let s=r.length,a=-1;for(let e=n;e<t.length;e++){let n=0;if(0==Be.compare(t[e],r[n])){for(;n<s&&0==Be.compare(t[e+n],r[n]);)n++;if(n==s){a=e;break}}}return new j([B.outputOf(new Map([[st.EVENT_RESULT_NAME,a]]))])}}class at extends Ve{constructor(){super("LastIndexOf",[at.PARAMETER_ARRAY_SOURCE,at.PARAMETER_ANY_NOT_NULL,at.PARAMETER_INT_FIND_FROM],at.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(at.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(at.PARAMETER_ANY_NOT_NULL.getParameterName());let n=e?.getArguments()?.get(at.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new j([B.outputOf(new Map([[at.EVENT_RESULT_NAME,-1]]))]);if(n<0||n>t.length)throw new $("The value of length shouldn't the exceed the size of the array or shouldn't be in terms");let s=-1;for(let e=t.length-1;e>=n;e--)if(0==Be.compare(t[e],r)){s=e;break}return new j([B.outputOf(new Map([[at.EVENT_RESULT_NAME,s]]))])}}class it extends Ve{constructor(){super("LastIndexOfArray",[it.PARAMETER_ARRAY_SOURCE,it.PARAMETER_ARRAY_SECOND_SOURCE,it.PARAMETER_INT_FIND_FROM],it.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(it.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(it.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(it.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new j([B.outputOf(new Map([[it.EVENT_RESULT_NAME,-1]]))]);if(n<0||n>t.length||r.length>t.length)throw new $("Given from index is more than the size of the source array");let s=r.length,a=-1;for(let e=n;e<t.length;e++){let n=0;if(0==Be.compare(t[e],r[n])){for(;n<s&&0==Be.compare(t[e+n],r[n]);)n++;n==s&&(a=e)}}return new j([B.outputOf(new Map([[it.EVENT_RESULT_NAME,a]]))])}}class ot extends Ve{constructor(){super("Max",[ot.PARAMETER_ARRAY_SOURCE_PRIMITIVE],ot.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(ot.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==t.length)throw new $("Search source array cannot be empty");let r=t[0];for(let e=1;e<t.length;e++){let n=t[e];Be.comparePrimitive(r,n)>=0||(r=n)}return new j([B.outputOf(new Map([[ot.EVENT_RESULT_NAME,r]]))])}}class Et extends Ve{constructor(){super("Min",[Et.PARAMETER_ARRAY_SOURCE_PRIMITIVE],Et.EVENT_RESULT_ANY)}async internalExecute(e){let t,r=e?.getArguments()?.get(Et.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==r.length)throw new $("Search source array cannot be empty");for(let e=0;e<r.length;e++)E(r[e])||(void 0===t||Be.comparePrimitive(r[e],t)<0)&&(t=r[e]);return new j([B.outputOf(new Map([[Et.EVENT_RESULT_NAME,t]]))])}}class ut extends Ve{constructor(){super("MisMatch",[ut.PARAMETER_ARRAY_SOURCE,ut.PARAMETER_INT_FIND_FROM,ut.PARAMETER_ARRAY_SECOND_SOURCE,ut.PARAMETER_INT_SECOND_SOURCE_FROM,ut.PARAMETER_INT_LENGTH],ut.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(ut.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ut.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(ut.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(ut.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(ut.PARAMETER_INT_LENGTH.getParameterName()),i=r<t.length&&r>0?r:0,o=s<n.length&&s>0?s:0;if(i+a>=t.length||o+a>n.length)throw new $("The size of the array for first and second which was being requested is more than size of the given array");let E=-1;for(let e=0;e<a;e++)if(t[i+e]!=n[o+e]){E=e;break}return new j([B.outputOf(new Map([[ut.EVENT_RESULT_NAME,E]]))])}}class At extends Ve{constructor(){super("Reverse",[At.PARAMETER_ARRAY_SOURCE,At.PARAMETER_INT_SOURCE_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_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(At.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),n>=t.length||n<0||r<0)throw new $("Please provide start point between the start and end indexes or provide the length which was less than the source size ");t=[...t];let s=r+n-1;for(;r<=s;){let e=t[r],n=t[s];t[r++]=n,t[s--]=e}return new j([B.outputOf(new Map([[At.EVENT_RESULT_NAME,t]]))])}}class lt extends Ve{constructor(){super("Rotate",[lt.PARAMETER_ARRAY_SOURCE,lt.PARAMETER_ROTATE_LENGTH],lt.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(lt.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(lt.PARAMETER_ROTATE_LENGTH.getParameterName());if(0==t.length)return new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,t]]))]);t=[...t];let n=t.length;return r%=n,this.rotate(t,0,r-1),this.rotate(t,r,n-1),this.rotate(t,0,n-1),new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,t]]))])}rotate(e,t,r){for(;t<r;){let n=e[t];e[t++]=e[r],e[r--]=n}}}class gt extends Ve{constructor(){super("Shuffle",[gt.PARAMETER_ARRAY_SOURCE],gt.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(gt.PARAMETER_ARRAY_SOURCE.getParameterName());if(t.length<=1)return new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,t]]))]);t=[...t];let r=0,n=t.length;for(let e=0;e<n;e++){let e=Math.floor(Math.random()*n)%n,s=t[r];t[r]=t[e],t[e]=s,r=e}return new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,t]]))])}}class mt extends Ve{constructor(){super("Sort",[mt.PARAMETER_ARRAY_SOURCE_PRIMITIVE,mt.PARAMETER_INT_FIND_FROM,mt.PARAMETER_INT_LENGTH,mt.PARAMETER_BOOLEAN_ASCENDING],mt.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(mt.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName()),r=e?.getArguments()?.get(mt.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(mt.PARAMETER_INT_LENGTH.getParameterName()),s=e?.getArguments()?.get(mt.PARAMETER_BOOLEAN_ASCENDING.getParameterName());if(0==t.length)return new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,t]]))]);if(t=[...t],-1==n&&(n=t.length-r),r<0||r>=t.length||r+n>t.length)throw new $("Given start point is more than the size of the array or not available at that point");let a=t.slice(r,r+n+1);return a.sort(((e,t)=>function(e,t,r){return e===t?0:null===e?1:null===t?-1:r?e<t?1:-1:e<t?-1:1}(e,t,s))),t.splice(r,n,...a),new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,t]]))])}}class Rt extends Ve{constructor(){super("SubArray",[Rt.PARAMETER_ARRAY_SOURCE,Rt.PARAMETER_INT_FIND_FROM,Rt.PARAMETER_INT_LENGTH],Rt.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(Rt.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Rt.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(Rt.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),n<=0)return new j([B.outputOf(new Map([]))]);if(!(r>=0&&r<t.length)||r+n>t.length)throw new $("Given find from point is more than the source size array or the Requested length for the subarray was more than the source size");let s=t.slice(r,r+n);return new j([B.outputOf(new Map([[Rt.EVENT_RESULT_NAME,s]]))])}}class ct extends Ve{constructor(){super("Insert",[ct.PARAMETER_ARRAY_SOURCE,ct.PARAMETER_INT_OFFSET,ct.PARAMETER_ANY],ct.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(ct.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ct.PARAMETER_INT_OFFSET.getParameterName());var n=e?.getArguments()?.get(ct.PARAMETER_ANY.getParameterName());if(E(n)||E(r)||r>t.length)throw new $("Please valid resouces to insert at the correct location");if(t=[...t],0==t.length)return 0==r&&t.push(n),new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,t]]))]);t.push(n);let s=t.length-1;for(r++;s>=r;){let e=t[s-1];t[s-1]=t[s],t[s--]=e}return new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,t]]))])}}class pt extends Ve{constructor(){super("InsertLast",[pt.PARAMETER_ARRAY_SOURCE,pt.PARAMETER_ANY],pt.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(pt.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(pt.PARAMETER_ANY.getParameterName());return t=[...t],t.push(r),new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,t]]))])}}class Tt extends Ve{constructor(){super("RemoveDuplicates",[Tt.PARAMETER_ARRAY_SOURCE,Tt.PARAMETER_INT_SOURCE_FROM,Tt.PARAMETER_INT_LENGTH],Tt.EVENT_RESULT_ARRAY)}async internalExecute(e){var 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),r+n>t.length)throw new $(Z.format("Array has no elements from $ to $ as the array size is $",r,r+n,t.length));const s=[...t];for(let e=r+n-1;e>=r;e--)for(let t=e-1;t>=r;t--)if(re(s[e],s[t])){s.splice(e,1);break}return new j([B.outputOf(G.of(Tt.EVENT_RESULT_NAME,s))])}}var ht={};t(ht,"ObjectValueSetterExtractor",(()=>Ut));var Nt={};t(Nt,"Expression",(()=>xt));var ft={};t(ft,"StringBuilder",(()=>_t));class _t{constructor(e){this.str=e??""}append(e){return this.str+=e,this}toString(){return""+this.str}trim(){return this.str=this.str.trim(),this}setLength(e){return this.str=this.str.substring(0,e),this}length(){return this.str.length}charAt(e){return this.str.charAt(e)}deleteCharAt(e){return this.checkIndex(e),this.str=this.str.substring(0,e)+this.str.substring(e+1),this}insert(e,t){return this.str=this.str.substring(0,e)+t+this.str.substring(e),this}checkIndex(e){if(e>=this.str.length)throw new $(`Index ${e} is greater than or equal to ${this.str.length}`)}substring(e,t){return this.str.substring(e,t)}}var St={};t(St,"ExpressionEvaluationException",(()=>Mt));class Mt extends Error{constructor(e,t,r){super(Z.format("$ : $",e,t)),this.cause=r}getCause(){return this.cause}}var Ot={};t(Ot,"ExpressionToken",(()=>wt));class wt{constructor(e){this.expression=e}getExpression(){return this.expression}toString(){return this.expression}}var dt={};t(dt,"ExpressionTokenValue",(()=>It));class It extends wt{constructor(e,t){super(e),this.element=t}getTokenValue(){return this.element}getElement(){return this.element}toString(){return Z.format("$: $",this.expression,this.element)}}var Pt={};t(Pt,"Operation",(()=>yt));class yt{static MULTIPLICATION=new yt("*");static DIVISION=new yt("/");static INTEGER_DIVISION=new yt("//");static MOD=new yt("%");static ADDITION=new yt("+");static SUBTRACTION=new yt("-");static NOT=new yt("not",void 0,!0);static AND=new yt("and",void 0,!0);static OR=new yt("or",void 0,!0);static LESS_THAN=new yt("<");static LESS_THAN_EQUAL=new yt("<=");static GREATER_THAN=new yt(">");static GREATER_THAN_EQUAL=new yt(">=");static EQUAL=new yt("=");static NOT_EQUAL=new yt("!=");static BITWISE_AND=new yt("&");static BITWISE_OR=new yt("|");static BITWISE_XOR=new yt("^");static BITWISE_COMPLEMENT=new yt("~");static BITWISE_LEFT_SHIFT=new yt("<<");static BITWISE_RIGHT_SHIFT=new yt(">>");static BITWISE_UNSIGNED_RIGHT_SHIFT=new yt(">>>");static UNARY_PLUS=new yt("UN: +","+");static UNARY_MINUS=new yt("UN: -","-");static UNARY_LOGICAL_NOT=new yt("UN: not","not");static UNARY_BITWISE_COMPLEMENT=new yt("UN: ~","~");static ARRAY_OPERATOR=new yt("[");static OBJECT_OPERATOR=new yt(".");static NULLISH_COALESCING_OPERATOR=new yt("??");static CONDITIONAL_TERNARY_OPERATOR=new yt("?");static VALUE_OF=new Map([["MULTIPLICATION",yt.MULTIPLICATION],["DIVISION",yt.DIVISION],["INTEGER_DIVISON",yt.INTEGER_DIVISION],["MOD",yt.MOD],["ADDITION",yt.ADDITION],["SUBTRACTION",yt.SUBTRACTION],["NOT",yt.NOT],["AND",yt.AND],["OR",yt.OR],["LESS_THAN",yt.LESS_THAN],["LESS_THAN_EQUAL",yt.LESS_THAN_EQUAL],["GREATER_THAN",yt.GREATER_THAN],["GREATER_THAN_EQUAL",yt.GREATER_THAN_EQUAL],["EQUAL",yt.EQUAL],["NOT_EQUAL",yt.NOT_EQUAL],["BITWISE_AND",yt.BITWISE_AND],["BITWISE_OR",yt.BITWISE_OR],["BITWISE_XOR",yt.BITWISE_XOR],["BITWISE_COMPLEMENT",yt.BITWISE_COMPLEMENT],["BITWISE_LEFT_SHIFT",yt.BITWISE_LEFT_SHIFT],["BITWISE_RIGHT_SHIFT",yt.BITWISE_RIGHT_SHIFT],["BITWISE_UNSIGNED_RIGHT_SHIFT",yt.BITWISE_UNSIGNED_RIGHT_SHIFT],["UNARY_PLUS",yt.UNARY_PLUS],["UNARY_MINUS",yt.UNARY_MINUS],["UNARY_LOGICAL_NOT",yt.UNARY_LOGICAL_NOT],["UNARY_BITWISE_COMPLEMENT",yt.UNARY_BITWISE_COMPLEMENT],["ARRAY_OPERATOR",yt.ARRAY_OPERATOR],["OBJECT_OPERATOR",yt.OBJECT_OPERATOR],["NULLISH_COALESCING_OPERATOR",yt.NULLISH_COALESCING_OPERATOR],["CONDITIONAL_TERNARY_OPERATOR",yt.CONDITIONAL_TERNARY_OPERATOR]]);static UNARY_OPERATORS=new Set([yt.ADDITION,yt.SUBTRACTION,yt.NOT,yt.BITWISE_COMPLEMENT,yt.UNARY_PLUS,yt.UNARY_MINUS,yt.UNARY_LOGICAL_NOT,yt.UNARY_BITWISE_COMPLEMENT]);static ARITHMETIC_OPERATORS=new Set([yt.MULTIPLICATION,yt.DIVISION,yt.INTEGER_DIVISION,yt.MOD,yt.ADDITION,yt.SUBTRACTION]);static LOGICAL_OPERATORS=new Set([yt.NOT,yt.AND,yt.OR,yt.LESS_THAN,yt.LESS_THAN_EQUAL,yt.GREATER_THAN,yt.GREATER_THAN_EQUAL,yt.EQUAL,yt.NOT_EQUAL,yt.NULLISH_COALESCING_OPERATOR]);static BITWISE_OPERATORS=new Set([yt.BITWISE_AND,yt.BITWISE_COMPLEMENT,yt.BITWISE_LEFT_SHIFT,yt.BITWISE_OR,yt.BITWISE_RIGHT_SHIFT,yt.BITWISE_UNSIGNED_RIGHT_SHIFT,yt.BITWISE_XOR]);static CONDITIONAL_OPERATORS=new Set([yt.CONDITIONAL_TERNARY_OPERATOR]);static OPERATOR_PRIORITY=new Map([[yt.UNARY_PLUS,1],[yt.UNARY_MINUS,1],[yt.UNARY_LOGICAL_NOT,1],[yt.UNARY_BITWISE_COMPLEMENT,1],[yt.ARRAY_OPERATOR,1],[yt.OBJECT_OPERATOR,1],[yt.MULTIPLICATION,2],[yt.DIVISION,2],[yt.INTEGER_DIVISION,2],[yt.MOD,2],[yt.ADDITION,3],[yt.SUBTRACTION,3],[yt.BITWISE_LEFT_SHIFT,4],[yt.BITWISE_RIGHT_SHIFT,4],[yt.BITWISE_UNSIGNED_RIGHT_SHIFT,4],[yt.LESS_THAN,5],[yt.LESS_THAN_EQUAL,5],[yt.GREATER_THAN,5],[yt.GREATER_THAN_EQUAL,5],[yt.EQUAL,6],[yt.NOT_EQUAL,6],[yt.BITWISE_AND,7],[yt.BITWISE_XOR,8],[yt.BITWISE_OR,9],[yt.AND,10],[yt.OR,11],[yt.NULLISH_COALESCING_OPERATOR,11],[yt.CONDITIONAL_TERNARY_OPERATOR,12]]);static OPERATORS=new Set([...Array.from(yt.ARITHMETIC_OPERATORS),...Array.from(yt.LOGICAL_OPERATORS),...Array.from(yt.BITWISE_OPERATORS),yt.ARRAY_OPERATOR,yt.OBJECT_OPERATOR,...Array.from(yt.CONDITIONAL_OPERATORS)].map((e=>e.getOperator())));static OPERATORS_WITHOUT_SPACE_WRAP=new Set([...Array.from(yt.ARITHMETIC_OPERATORS),...Array.from(yt.LOGICAL_OPERATORS),...Array.from(yt.BITWISE_OPERATORS),yt.ARRAY_OPERATOR,yt.OBJECT_OPERATOR,...Array.from(yt.CONDITIONAL_OPERATORS)].filter((e=>!e.shouldBeWrappedInSpace())).map((e=>e.getOperator())));static OPERATION_VALUE_OF=new Map(Array.from(yt.VALUE_OF.entries()).map((([e,t])=>[t.getOperator(),t])));static UNARY_MAP=new Map([[yt.ADDITION,yt.UNARY_PLUS],[yt.SUBTRACTION,yt.UNARY_MINUS],[yt.NOT,yt.UNARY_LOGICAL_NOT],[yt.BITWISE_COMPLEMENT,yt.UNARY_BITWISE_COMPLEMENT],[yt.UNARY_PLUS,yt.UNARY_PLUS],[yt.UNARY_MINUS,yt.UNARY_MINUS],[yt.UNARY_LOGICAL_NOT,yt.UNARY_LOGICAL_NOT],[yt.UNARY_BITWISE_COMPLEMENT,yt.UNARY_BITWISE_COMPLEMENT]]);static BIGGEST_OPERATOR_SIZE=Array.from(yt.VALUE_OF.values()).map((e=>e.getOperator())).filter((e=>!e.startsWith("UN: "))).map((e=>e.length)).reduce(((e,t)=>e>t?e:t),0);constructor(e,t,r=!1){this.operator=e,this.operatorName=t??e,this._shouldBeWrappedInSpace=r}getOperator(){return this.operator}getOperatorName(){return this.operatorName}shouldBeWrappedInSpace(){return this._shouldBeWrappedInSpace}valueOf(e){return yt.VALUE_OF.get(e)}toString(){return this.operator}}class xt extends wt{tokens=new ee;ops=new ee;constructor(e,t,r,n){super(e||""),t&&this.tokens.push(t),r&&this.tokens.push(r),n&&this.ops.push(n),this.evaluate()}getTokens(){return this.tokens}getOperations(){return this.ops}evaluate(){const e=this.expression.length;let t,r="",n=new _t(""),s=0,a=!1;for(;s<e;){switch(r=this.expression[s],t=n.toString(),r){case" ":a=this.processTokenSepearator(n,t,a);break;case"(":s=this.processSubExpression(e,n,t,s,a),a=!1;break;case")":throw new Mt(this.expression,"Extra closing parenthesis found");case"]":throw new Mt(this.expression,"Extra closing square bracket found");case"'":case'"':{let t=this.processStringLiteral(e,r,s);s=t.getT1(),a=t.getT2();break}case"?":if(s+1<e&&"?"!=this.expression.charAt(s+1)&&0!=s&&"?"!=this.expression.charAt(s-1))s=this.processTernaryOperator(e,n,t,s,a);else{let i=this.processOthers(r,e,n,t,s,a);s=i.getT1(),a=i.getT2(),a&&this.ops.peek()==yt.ARRAY_OPERATOR&&(i=this.process(e,n,s),s=i.getT1(),a=i.getT2())}break;default:let i=this.processOthers(r,e,n,t,s,a);s=i.getT1(),a=i.getT2(),a&&this.ops.peek()==yt.ARRAY_OPERATOR&&(i=this.process(e,n,s),s=i.getT1(),a=i.getT2())}++s}if(t=n.toString(),!se.isNullOrBlank(t)){if(yt.OPERATORS.has(t))throw new Mt(this.expression,"Expression is ending with an operator");this.tokens.push(new wt(t))}}processStringLiteral(e,t,r){let n="",s=r+1;for(;s<e;s++){let e=this.expression.charAt(s);if(e==t&&"\\"!=this.expression.charAt(s-1))break;n+=e}if(s==e&&this.expression.charAt(s-1)!=t)throw new Mt(this.expression,"Missing string ending marker "+t);let a=new oe(s,!1);return this.tokens.push(new It(n,n)),a}process(e,t,r){let n=1;for(++r;r<e&&0!=n;){let e=this.expression.charAt(r);"]"==e?--n:"["==e&&++n,0!=n&&(t.append(e),r++)}return this.tokens.push(new xt(t.toString())),t.setLength(0),new oe(r,!1)}processOthers(e,t,r,n,s,a){let i=t-s;i=i<yt.BIGGEST_OPERATOR_SIZE?i:yt.BIGGEST_OPERATOR_SIZE;for(let e=i;e>0;e--){let t=this.expression.substring(s,s+e);if(yt.OPERATORS_WITHOUT_SPACE_WRAP.has(t))return se.isNullOrBlank(n)||(this.tokens.push(new wt(n)),a=!1),this.checkUnaryOperator(this.tokens,this.ops,yt.OPERATION_VALUE_OF.get(t),a),a=!0,r.setLength(0),new oe(s+e-1,a)}return r.append(e),new oe(s,!1)}processTernaryOperator(e,t,r,n,s){if(s)throw new Mt(this.expression,"Ternary operator is followed by an operator");""!=r.trim()&&(this.tokens.push(new xt(r)),t.setLength(0));let a=1,i="";const o=++n;for(;n<e&&a>0;)i=this.expression.charAt(n),"?"==i?++a:":"==i&&--a,++n;if(":"!=i)throw new Mt(this.expression,"':' operater is missing");if(n>=e)throw new Mt(this.expression,"Third part of the ternary expression is missing");for(;!this.ops.isEmpty()&&this.hasPrecedence(yt.CONDITIONAL_TERNARY_OPERATOR,this.ops.peek());){let e=this.ops.pop();if(yt.UNARY_OPERATORS.has(e)){const t=this.tokens.pop();this.tokens.push(new xt("",t,void 0,e))}else{let t=this.tokens.pop(),r=this.tokens.pop();this.tokens.push(new xt("",r,t,e))}}this.ops.push(yt.CONDITIONAL_TERNARY_OPERATOR),this.tokens.push(new xt(this.expression.substring(o,n-1)));const E=this.expression.substring(n);if(""===E.trim())throw new Mt(this.expression,"Third part of the ternary expression is missing");return this.tokens.push(new xt(E)),e-1}processSubExpression(e,t,r,n,s){if(yt.OPERATORS.has(r))this.checkUnaryOperator(this.tokens,this.ops,yt.OPERATION_VALUE_OF.get(r),s),t.setLength(0);else if(!se.isNullOrBlank(r))throw new Mt(this.expression,Z.format("Unkown token : $ found.",r));let a=1;const i=new _t;let o=this.expression.charAt(n);for(n++;n<e&&a>0;)o=this.expression.charAt(n),"("==o?a++:")"==o&&a--,0!=a&&(i.append(o),n++);if(")"!=o)throw new Mt(this.expression,"Missing a closed parenthesis");for(;i.length()>2&&"("==i.charAt(0)&&")"==i.charAt(i.length()-1);)i.deleteCharAt(0),i.setLength(i.length()-1);return this.tokens.push(new xt(i.toString().trim())),n}processTokenSepearator(e,t,r){return se.isNullOrBlank(t)||(yt.OPERATORS.has(t)?(this.checkUnaryOperator(this.tokens,this.ops,yt.OPERATION_VALUE_OF.get(t),r),r=!0):(this.tokens.push(new wt(t)),r=!1)),e.setLength(0),r}checkUnaryOperator(e,t,r,n){if(r)if(n||e.isEmpty()){if(!yt.UNARY_OPERATORS.has(r))throw new Mt(this.expression,Z.format("Extra operator $ found.",r));{const e=yt.UNARY_MAP.get(r);e&&t.push(e)}}else{for(;!t.isEmpty()&&this.hasPrecedence(r,t.peek());){let r=t.pop();if(yt.UNARY_OPERATORS.has(r)){let t=e.pop();e.push(new xt("",t,void 0,r))}else{let t=e.pop(),n=e.pop();e.push(new xt("",n,t,r))}}t.push(r)}}hasPrecedence(e,t){let r=yt.OPERATOR_PRIORITY.get(e),n=yt.OPERATOR_PRIORITY.get(t);if(!r||!n)throw new Error("Unknown operators provided");return n<r}toString(){if(this.ops.isEmpty())return 1==this.tokens.size()?this.tokens.get(0).toString():"Error: No tokens";let e=new _t,t=0;const r=this.ops.toArray(),n=this.tokens.toArray();for(let s=0;s<r.length;s++)if(r[s].getOperator().startsWith("UN: "))e.append("(").append(r[s].getOperator().substring(4)).append(n[t]instanceof xt?n[t].toString():n[t]).append(")"),t++;else if(r[s]==yt.CONDITIONAL_TERNARY_OPERATOR){let r=n[t++];e.insert(0,r.toString()),e.insert(0,":"),r=n[t++],e.insert(0,r.toString()),e.insert(0,"?"),r=n[t++],e.insert(0,r.toString()).append(")"),e.insert(0,"(")}else{if(0==t){const r=n[t++];e.insert(0,r.toString())}const a=n[t++];e.insert(0,r[s].getOperator()).insert(0,a.toString()).insert(0,"(").append(")")}return e.toString()}equals(e){return this.expression==e.expression}}var vt={};t(vt,"TokenValueExtractor",(()=>Lt));class Lt{static REGEX_SQUARE_BRACKETS=/[\[\]]/;static REGEX_DOT=/\./;getValue(e){let t=this.getPrefix();if(!e.startsWith(t))throw new $(Z.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(Lt.REGEX_SQUARE_BRACKETS).map((e=>e.trim())).filter((e=>!se.isNullOrBlank(e))).reduce(((n,s,a)=>this.resolveForEachPartOfTokenWithBrackets(e,t,r,s,n,a)),n);return this.retrieveElementFrom(e,t,r+1,s)}resolveForEachPartOfTokenWithBrackets(e,t,r,n,s,a){if(!E(s)){if(0===a){if("length"===n&&"string"==typeof s)return s.length;if(Array.isArray(s)){if("length"===n)return s.length;try{let e=parseInt(n);if(isNaN(e))throw new Error(Z.format("$ is not a number",e));if(e>=s.length)return;return s[e]}catch(t){throw new Mt(e,Z.format("$ couldn't be parsed into integer in $",n,e),t)}}return this.checkIfObject(e,t,r,s),s[n]}if(n?.startsWith('"')){if(!n.endsWith('"')||1==n.length||2==n.length)throw new Mt(e,Z.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(Z.format("$ is not a number",t));if(!Array.isArray(s))throw new Mt(e,Z.format("Expecting an array with index $ while processing the expression",t,e));if(t>=s.length)return;return s[t]}catch(t){throw new Mt(e,Z.format("$ couldn't be parsed into integer in $",n,e),t)}}}checkIfObject(e,t,r,n){if("object"!=typeof n||Array.isArray(n))throw new Mt(e,Z.format("Unable to retrive $ from $ in the path $",t[r],n.toString(),e))}}class Ut extends Lt{constructor(e,t){super(),this.store=e,this.prefix=t}getValueInternal(e){let t=e.split(Lt.REGEX_DOT);return this.retrieveElementFrom(e,t,1,this.store)}getStore(){return this.store}setStore(e){return this.store=e,this}setValue(e,t,r=!0,n=!1){this.store=We(this.store),this.modifyStore(e,t,r,n)}modifyStore(e,t,r,n){const s=new xt(e),a=s.getTokens();a.removeLast();const i=s.getOperations();let o=i.removeLast(),E=a.removeLast(),u=E instanceof It?E.getElement():E.getExpression(),A=this.store;for(;!i.isEmpty();)A=o==yt.OBJECT_OPERATOR?this.getDataFromObject(A,u,i.peekLast()):this.getDataFromArray(A,u,i.peekLast()),o=i.removeLast(),E=a.removeLast(),u=E instanceof It?E.getElement():E.getExpression();o==yt.OBJECT_OPERATOR?this.putDataInObject(A,u,t,r,n):this.putDataInArray(A,u,t,r,n)}getDataFromArray(e,t,r){if(!Array.isArray(e))throw new $(Z.format("Expected an array but found $",e));const n=parseInt(t);if(isNaN(n))throw new $(Z.format("Expected an array index but found $",t));if(n<0)throw new $(Z.format("Array index is out of bound - $",t));let s=e[n];return E(s)&&(s=r==yt.OBJECT_OPERATOR?{}:[],e[n]=s),s}getDataFromObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new $(Z.format("Expected an object but found $",e));let n=e[t];return E(n)&&(n=r==yt.OBJECT_OPERATOR?{}:[],e[t]=n),n}putDataInArray(e,t,r,n,s){if(!Array.isArray(e))throw new $(Z.format("Expected an array but found $",e));const a=parseInt(t);if(isNaN(a))throw new $(Z.format("Expected an array index but found $",t));if(a<0)throw new $(Z.format("Array index is out of bound - $",t));(n||E(e[a]))&&(s&&E(r)?e.splice(a,1):e[a]=r)}putDataInObject(e,t,r,n,s){if(Array.isArray(e)||"object"!=typeof e)throw new $(Z.format("Expected an object but found $",e));(n||E(e[t]))&&(s&&E(r)?delete e[t]:e[t]=r)}getPrefix(){return this.prefix}}class Vt extends Ve{constructor(){super("ArrayToObjects",[Ve.PARAMETER_ARRAY_SOURCE,y.of("keyPath",S.ofString("keyPath")),y.of("valuePath",S.of("valuePath",l.STRING,l.NULL)),y.of("ignoreNullValues",S.ofBoolean("ignoreNullValues").setDefaultValue(!1)),y.of("ignoreNullKeys",S.ofBoolean("ignoreNullKeys").setDefaultValue(!0)),y.of("ignoreDuplicateKeys",S.ofBoolean("ignoreDuplicateKeys").setDefaultValue(!1))],Ve.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(Ve.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get("keyPath"),n=e?.getArguments()?.get("valuePath")??"",s=e?.getArguments()?.get("ignoreNullValues"),a=e?.getArguments()?.get("ignoreNullKeys"),i=e?.getArguments()?.get("ignoreDuplicateKeys");const o=new Ut({},"Data."),u=t.filter((e=>!E(e))).reduce(((e,t)=>{o.setStore(t);const u=o.getValue("Data."+r);if(a&&E(u))return e;const A=n?o.getValue("Data."+n):t;return s&&E(A)||i&&e.hasOwnProperty(u)||(e[u]=A),e}),{});return new j([B.outputOf(new Map([[Ve.EVENT_RESULT_NAME,u]]))])}}class Ct{static repoMap=G.ofArrayEntries(V(new Ce),V(new Ge),V(new He),V(new je),V(new qe),V(new Je),V(new ze),V(new Ke),V(new Qe),V(new Ze),V(new et),V(new tt),V(new rt),V(new nt),V(new st),V(new at),V(new it),V(new ot),V(new Et),V(new ut),V(new At),V(new lt),V(new gt),V(new mt),V(new Rt),V(new be),V(new ct),V(new pt),V(new Tt),V(new Vt));static filterableNames=Array.from(Ct.repoMap.values()).map((e=>e.getSignature().getFullName()));find(e,t){if(e==a.SYSTEM_ARRAY)return Ct.repoMap.get(t)}filter(e){return Ct.filterableNames.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}var Gt={};t(Gt,"ContextElement",(()=>bt));class bt{static NULL=new bt(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 Dt=new W("Create").setNamespace(a.SYSTEM_CTX).setParameters(new Map([y.ofEntry("name",(new S).setName("name").setType(f.of(l.STRING)).setMinLength(1).setFormat(Pe.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,I.CONSTANT),y.ofEntry("schema",S.SCHEMA,!1,I.CONSTANT)])).setEvents(new Map([Y.outputEventMapEntry(new Map)]));const Ft=new W("Get").setNamespace(a.SYSTEM_CTX).setParameters(new Map([y.ofEntry("name",(new S).setName("name").setType(f.of(l.STRING)).setMinLength(1).setFormat(Pe.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,I.CONSTANT)])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",S.ofAny("value")]]))]));var Yt={};t(Yt,"ExpressionEvaluator",(()=>Qr));var Bt={};t(Bt,"LogicalNullishCoalescingOperator",(()=>$t));var Ht={};t(Ht,"BinaryOperator",(()=>kt));class kt{nullCheck(e,t,r){if(E(e)||E(t))throw new Ye(Z.format("$ cannot be applied to a null value",r.getOperatorName()))}}class $t extends kt{apply(e,t){return E(e)?t:e}}var jt={};t(jt,"ArithmeticAdditionOperator",(()=>Xt));class Xt extends kt{apply(e,t){return E(e)?t:E(t)?e:e+t}}var Wt={};t(Wt,"ArithmeticDivisionOperator",(()=>qt));class qt extends kt{apply(e,t){return this.nullCheck(e,t,yt.DIVISION),e/t}}var Jt={};t(Jt,"ArithmeticIntegerDivisionOperator",(()=>zt));class zt extends kt{apply(e,t){return this.nullCheck(e,t,yt.DIVISION),Math.floor(e/t)}}var Kt={};t(Kt,"ArithmeticModulusOperator",(()=>Qt));class Qt extends kt{apply(e,t){return this.nullCheck(e,t,yt.MOD),e%t}}var Zt={};t(Zt,"ArithmeticMultiplicationOperator",(()=>er));class er extends kt{apply(e,t){this.nullCheck(e,t,yt.MULTIPLICATION);const r="string"==typeof e;if(r||"string"===typeof t){let n=r?e:t,s=r?t:e,a="",i=s<0;s=Math.abs(s);let o=Math.floor(s);for(;o-- >0;)a+=n;let E=Math.floor(n.length*(s-Math.floor(s)));if(E<0&&(E=-E),0!=E&&(a+=n.substring(0,E)),i){let e="";for(let t=a.length-1;t>=0;t--)e+=a[t];return e}return a}return e*t}}var tr={};t(tr,"ArithmeticSubtractionOperator",(()=>rr));class rr extends kt{apply(e,t){return this.nullCheck(e,t,yt.SUBTRACTION),e-t}}var nr={};t(nr,"ArrayOperator",(()=>sr));class sr extends kt{apply(e,t){if(!e)throw new Ye("Cannot apply array operator on a null value");if(!t)throw new Ye("Cannot retrive null index value");if(!Array.isArray(e)&&"string"!=typeof e)throw new Ye(Z.format("Cannot retrieve value from a primitive value $",e));if(t>=e.length)throw new Ye(Z.format("Cannot retrieve index $ from the array of length $",t,e.length));return e[t]}}var ar={};t(ar,"BitwiseAndOperator",(()=>ir));class ir extends kt{apply(e,t){return this.nullCheck(e,t,yt.BITWISE_AND),e&t}}var or={};t(or,"BitwiseLeftShiftOperator",(()=>Er));class Er extends kt{apply(e,t){return this.nullCheck(e,t,yt.BITWISE_LEFT_SHIFT),e<<t}}var ur={};t(ur,"BitwiseOrOperator",(()=>Ar));class Ar extends kt{apply(e,t){return this.nullCheck(e,t,yt.BITWISE_OR),e|t}}var lr={};t(lr,"BitwiseRightShiftOperator",(()=>gr));class gr extends kt{apply(e,t){return this.nullCheck(e,t,yt.BITWISE_RIGHT_SHIFT),e>>t}}var mr={};t(mr,"BitwiseUnsignedRightShiftOperator",(()=>Rr));class Rr extends kt{apply(e,t){return this.nullCheck(e,t,yt.BITWISE_UNSIGNED_RIGHT_SHIFT),e>>>t}}var cr={};t(cr,"BitwiseXorOperator",(()=>pr));class pr extends kt{apply(e,t){return this.nullCheck(e,t,yt.BITWISE_XOR),e^t}}var Tr={};t(Tr,"LogicalAndOperator",(()=>hr));class hr extends kt{apply(e,t){const r=Be.findPrimitiveNullAsBoolean(e),n=Be.findPrimitiveNullAsBoolean(t);if(r.getT1()!=l.BOOLEAN)throw new Ye(Z.format("Boolean value expected but found $",r.getT2()));if(n.getT1()!=l.BOOLEAN)throw new Ye(Z.format("Boolean value expected but found $",n.getT2()));return r.getT2()&&n.getT2()}}var Nr={};t(Nr,"LogicalEqualOperator",(()=>fr));class fr extends kt{apply(e,t){return re(e,t)}}var _r={};t(_r,"LogicalGreaterThanEqualOperator",(()=>Sr));class Sr extends kt{apply(e,t){const r=Be.findPrimitiveNullAsBoolean(e),n=Be.findPrimitiveNullAsBoolean(t);if(r.getT1()==l.BOOLEAN||n.getT1()==l.BOOLEAN)throw new Ye(Z.format("Cannot compare >= with the values $ and $",r.getT2(),n.getT2()));return r.getT2()>=n.getT2()}}var Mr={};t(Mr,"LogicalGreaterThanOperator",(()=>Or));class Or extends kt{apply(e,t){const r=Be.findPrimitiveNullAsBoolean(e),n=Be.findPrimitiveNullAsBoolean(t);if(r.getT1()==l.BOOLEAN||n.getT1()==l.BOOLEAN)throw new Ye(Z.format("Cannot compare > with the values $ and $",r.getT2(),n.getT2()));return r.getT2()>n.getT2()}}var wr={};t(wr,"LogicalLessThanEqualOperator",(()=>dr));class dr extends kt{apply(e,t){const r=Be.findPrimitiveNullAsBoolean(e),n=Be.findPrimitiveNullAsBoolean(t);if(r.getT1()==l.BOOLEAN||n.getT1()==l.BOOLEAN)throw new Ye(Z.format("Cannot compare <= with the values $ and $",r.getT2(),n.getT2()));return r.getT2()<=n.getT2()}}var Ir={};t(Ir,"LogicalLessThanOperator",(()=>Pr));class Pr extends kt{apply(e,t){const r=Be.findPrimitiveNullAsBoolean(e),n=Be.findPrimitiveNullAsBoolean(t);if(r.getT1()==l.BOOLEAN||n.getT1()==l.BOOLEAN)throw new Ye(Z.format("Cannot compare < with the values $ and $",r.getT2(),n.getT2()));return r.getT2()<n.getT2()}}var yr={};t(yr,"LogicalNotEqualOperator",(()=>xr));class xr extends kt{apply(e,t){return!re(e,t)}}var vr={};t(vr,"LogicalOrOperator",(()=>Lr));class Lr extends kt{apply(e,t){const r=Be.findPrimitiveNullAsBoolean(e),n=Be.findPrimitiveNullAsBoolean(t);if(r.getT1()!=l.BOOLEAN)throw new Ye(Z.format("Boolean value expected but found $",r.getT2()));if(n.getT1()!=l.BOOLEAN)throw new Ye(Z.format("Boolean value expected but found $",n.getT2()));return r.getT2()||n.getT2()}}var Ur={};t(Ur,"ObjectOperator",(()=>Vr));class Vr extends kt{apply(e,t){if(!e)throw new Ye("Cannot apply array operator on a null value");if(!t)throw new Ye("Cannot retrive null property value");const r=typeof e;if(!Array.isArray(e)&&"string"!=r&&"object"!=r)throw new Ye(Z.format("Cannot retrieve value from a primitive value $",e));return e[t]}}var Cr={};t(Cr,"ArithmeticUnaryMinusOperator",(()=>Dr));var Gr={};t(Gr,"UnaryOperator",(()=>br));class br{nullCheck(e,t){if(E(e))throw new Ye(Z.format("$ cannot be applied to a null value",t.getOperatorName()))}}class Dr extends br{apply(e){return this.nullCheck(e,yt.UNARY_MINUS),Be.findPrimitiveNumberType(e),-e}}var Fr={};t(Fr,"ArithmeticUnaryPlusOperator",(()=>Yr));class Yr extends br{apply(e){return this.nullCheck(e,yt.UNARY_PLUS),Be.findPrimitiveNumberType(e),e}}var Br={};t(Br,"BitwiseComplementOperator",(()=>Hr));class Hr extends br{apply(e){this.nullCheck(e,yt.UNARY_BITWISE_COMPLEMENT);let t=Be.findPrimitiveNumberType(e);if(t.getT1()!=l.INTEGER&&t.getT1()!=l.LONG)throw new Ye(Z.format("Unable to apply bitwise operator on $",e));return~e}}var kr={};t(kr,"LogicalNotOperator",(()=>$r));class $r extends br{apply(e){return!e&&""!==e}}var jr={};t(jr,"LiteralTokenValueExtractor",(()=>Wr));const Xr=new Map([["true",!0],["false",!1],["null",void 0],["undefined",void 0]]);class Wr extends Lt{static INSTANCE=new Wr;getValueInternal(e){if(!se.isNullOrBlank(e))return e=e.trim(),Xr.has(e)?Xr.get(e):e.startsWith('"')?this.processString(e):this.processNumbers(e)}processNumbers(e){try{let t=Number(e);if(isNaN(t))throw new Error("Parse number error");return t}catch(t){throw new Mt(e,Z.format("Unable to parse the literal or expression $",e),t)}}processString(e){if(!e.endsWith('"'))throw new Mt(e,Z.format("String literal $ is not closed properly",e));return e.substring(1,e.length-1)}getPrefix(){return""}}var qr={},Jr={};t(Jr,"ConditionalTernaryOperator",(()=>zr));class zr extends class{nullCheck(e,t,r,n){if(E(e)||E(t)||E(r))throw new Ye(Z.format("$ cannot be applied to a null value",n.getOperatorName()))}}{apply(e,t,r){return e?t:r}}e(qr,Jr);class Kr extends Lt{static PREFIX="_internal.";values=new Map;addValue(e,t){this.values.set(e,t)}getValueInternal(e){let t=e.split(Lt.REGEX_DOT),r=t[1],n=r.indexOf("["),s=2;return-1!=n&&(r=t[1].substring(0,n),t[1]=t[1].substring(n),s=1),this.retrieveElementFrom(e,t,s,this.values.get(r))}getPrefix(){return Kr.PREFIX}}class Qr{static UNARY_OPERATORS_MAP=new Map([[yt.UNARY_BITWISE_COMPLEMENT,new Hr],[yt.UNARY_LOGICAL_NOT,new $r],[yt.UNARY_MINUS,new Dr],[yt.UNARY_PLUS,new Yr]]);static TERNARY_OPERATORS_MAP=new Map([[yt.CONDITIONAL_TERNARY_OPERATOR,new zr]]);static BINARY_OPERATORS_MAP=new Map([[yt.ADDITION,new Xt],[yt.DIVISION,new qt],[yt.INTEGER_DIVISION,new zt],[yt.MOD,new Qt],[yt.MULTIPLICATION,new er],[yt.SUBTRACTION,new rr],[yt.BITWISE_AND,new ir],[yt.BITWISE_LEFT_SHIFT,new Er],[yt.BITWISE_OR,new Ar],[yt.BITWISE_RIGHT_SHIFT,new gr],[yt.BITWISE_UNSIGNED_RIGHT_SHIFT,new Rr],[yt.BITWISE_XOR,new pr],[yt.AND,new hr],[yt.EQUAL,new fr],[yt.GREATER_THAN,new Or],[yt.GREATER_THAN_EQUAL,new Sr],[yt.LESS_THAN,new Pr],[yt.LESS_THAN_EQUAL,new dr],[yt.OR,new Lr],[yt.NOT_EQUAL,new xr],[yt.NULLISH_COALESCING_OPERATOR,new $t],[yt.ARRAY_OPERATOR,new sr],[yt.OBJECT_OPERATOR,new Vr]]);static UNARY_OPERATORS_MAP_KEY_SET=new Set(Qr.UNARY_OPERATORS_MAP.keys());internalTokenValueExtractor=new Kr;constructor(e){e instanceof xt?(this.exp=e,this.expression=this.exp.getExpression()):this.expression=e}evaluate(e){const t=this.processNestingExpression(this.expression,e);return this.expression=t.getT1(),this.exp=t.getT2(),(e=new Map(e.entries())).set(this.internalTokenValueExtractor.getPrefix(),this.internalTokenValueExtractor),this.evaluateExpression(this.exp,e)}processNestingExpression(e,t){let r=0,n=0;const s=new ee;for(;n<e.length-1;){if("{"==e.charAt(n)&&"{"==e.charAt(n+1))0==r&&s.push(new oe(n+2,-1)),r++,n++;else if("}"==e.charAt(n)&&"}"==e.charAt(n+1)){if(r--,r<0)throw new Mt(e,"Expecting {{ nesting path operator to be started before closing");0==r&&s.push(s.pop().setT2(n)),n++}n++}let a=this.replaceNestingExpression(e,t,s);return new oe(a,new xt(a))}replaceNestingExpression(e,t,r){let n=e;for(var s of r.toArray()){if(-1==s.getT2())throw new Mt(e,"Expecting }} nesting path operator to be closed");let r=new Qr(n.substring(s.getT1(),s.getT2())).evaluate(t);n=n.substring(0,s.getT1()-2)+r+n.substring(s.getT2()+2)}return n}getExpression(){return this.exp||(this.exp=new xt(this.expression)),this.exp}getExpressionString(){return this.expression}evaluateExpression(e,t){let r=e.getOperations(),n=e.getTokens();for(;!r.isEmpty();){let e=r.pop(),o=n.pop();if(Qr.UNARY_OPERATORS_MAP_KEY_SET.has(e))n.push(this.applyUnaryOperation(e,this.getValueFromToken(t,o)));else if(e==yt.OBJECT_OPERATOR||e==yt.ARRAY_OPERATOR)this.processObjectOrArrayOperator(t,r,n,e,o);else if(e==yt.CONDITIONAL_TERNARY_OPERATOR){const r=n.pop(),E=n.pop();var s=this.getValueFromToken(t,E),a=this.getValueFromToken(t,r),i=this.getValueFromToken(t,o);n.push(this.applyTernaryOperation(e,s,a,i))}else{const r=n.pop();s=this.getValueFromToken(t,r),a=this.getValueFromToken(t,o);n.push(this.applyBinaryOperation(e,s,a))}}if(n.isEmpty())throw new Ye(Z.format("Expression : $ evaluated to null",e));if(1!=n.size())throw new Ye(Z.format("Expression : $ evaluated multiple values $",e,n));const o=n.get(0);if(o instanceof It)return o.getElement();if(!(o instanceof xt))return this.getValueFromToken(t,o);throw new Ye(Z.format("Expression : $ evaluated to $",e,n.get(0)))}processObjectOrArrayOperator(e,t,r,n,s){const a=new ee,i=new ee;if(!n||!s)return;do{i.push(n),s instanceof xt?a.push(new It(s.toString(),this.evaluateExpression(s,e))):s&&a.push(s),s=r.isEmpty()?void 0:r.pop(),n=t.isEmpty()?void 0:t.pop()}while(n==yt.OBJECT_OPERATOR||n==yt.ARRAY_OPERATOR);s&&(s instanceof xt?a.push(new It(s.toString(),this.evaluateExpression(s,e))):a.push(s)),n&&t.push(n);let o=a.pop();if(o instanceof It&&"object"==typeof o.getTokenValue()){const e=(new Date).getTime()+""+Math.round(1e3*Math.random());this.internalTokenValueExtractor.addValue(e,o.getTokenValue()),o=new wt(Kr.PREFIX+e)}let E=new _t(o instanceof It?o.getTokenValue():o.toString());for(;!a.isEmpty();)o=a.pop(),n=i.pop(),E.append(n.getOperator()).append(o instanceof It?o.getTokenValue():o.toString()),n==yt.ARRAY_OPERATOR&&E.append("]");let u=E.toString(),A=u.substring(0,u.indexOf(".")+1);if(A.length>2&&e.has(A))r.push(new It(u,this.getValue(u,e)));else{let e;try{e=Wr.INSTANCE.getValue(u)}catch(t){e=u}r.push(new It(u,e))}}applyTernaryOperation(e,t,r,n){let s=Qr.TERNARY_OPERATORS_MAP.get(e);if(!s)throw new Mt(this.expression,Z.format("No operator found to evaluate $",this.getExpression()));return new It(e.toString(),s.apply(t,r,n))}applyBinaryOperation(e,t,r){let n=typeof t,s=typeof r,a=Qr.BINARY_OPERATORS_MAP.get(e);if(("object"===n||"object"===s)&&e!==yt.EQUAL&&e!==yt.NOT_EQUAL&&e!==yt.NULLISH_COALESCING_OPERATOR)throw new Mt(this.expression,Z.format("Cannot evaluate expression $ $ $",t,e.getOperator(),r));if(!a)throw new Mt(this.expression,Z.format("No operator found to evaluate $ $ $",t,e.getOperator(),r));return new It(e.toString(),a.apply(t,r))}applyUnaryOperation(e,t){if("object"===typeof t||Array.isArray(t))throw new Mt(this.expression,Z.format("The operator $ cannot be applied to $",e.getOperator(),t));let r=Qr.UNARY_OPERATORS_MAP.get(e);if(!r)throw new Mt(this.expression,Z.format("No Unary operator $ is found to apply on $",e.getOperator(),t));return new It(e.toString(),r.apply(t))}getValueFromToken(e,t){return t instanceof xt?this.evaluateExpression(t,e):t instanceof It?t.getElement():this.getValue(t.getExpression(),e)}getValue(e,t){if(e.length<=5)return Wr.INSTANCE.getValue(e);const r=e.substring(0,e.indexOf(".")+1);return(t.get(r)??Wr.INSTANCE).getValue(e)}}const Zr=new W("Set").setNamespace(a.SYSTEM_CTX).setParameters(new Map([y.ofEntry("name",(new S).setName("name").setType(f.of(l.STRING)).setMinLength(1),!1,I.CONSTANT),y.ofEntry("value",S.ofAny("value"))])).setEvents(new Map([Y.outputEventMapEntry(new Map)]));const en=new W("GenerateEvent").setNamespace(a.SYSTEM).setParameters(new Map([y.ofEntry("eventName",S.ofString("eventName").setDefaultValue("output")),y.ofEntry("results",S.ofObject("results").setProperties(new Map([["name",S.ofString("name")],["value",y.EXPRESSION]])),!0)])).setEvents(new Map([Y.outputEventMapEntry(new Map)]));class tn extends Ue{static CONDITION="condition";static SIGNATURE=new W("If").setNamespace(a.SYSTEM).setParameters(new Map([y.ofEntry(tn.CONDITION,S.of(tn.CONDITION,l.BOOLEAN))])).setEvents(new Map([Y.eventMapEntry(Y.TRUE,new Map),Y.eventMapEntry(Y.FALSE,new Map),Y.outputEventMapEntry(new Map)]));getSignature(){return tn.SIGNATURE}async internalExecute(e){var t=e.getArguments()?.get(tn.CONDITION);return new j([B.of(t?Y.TRUE:Y.FALSE,new Map),B.outputOf(new Map)])}}const rn=new W("Break").setNamespace(a.SYSTEM_LOOP).setParameters(new Map([y.ofEntry("stepName",S.of("stepName",l.STRING))])).setEvents(new Map([Y.outputEventMapEntry(new Map([]))]));const nn=new W("CountLoop").setNamespace(a.SYSTEM_LOOP).setParameters(new Map([y.ofEntry("count",S.of("count",l.INTEGER))])).setEvents(new Map([Y.eventMapEntry(Y.ITERATION,new Map([["index",S.of("index",l.INTEGER)]])),Y.outputEventMapEntry(new Map([["value",S.of("value",l.INTEGER)]]))]));const sn=new W("RangeLoop").setNamespace(a.SYSTEM_LOOP).setParameters(new Map([y.ofEntry("from",S.of("from",l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE).setDefaultValue(0)),y.ofEntry("to",S.of("to",l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE).setDefaultValue(1)),y.ofEntry("step",S.of("step",l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE).setDefaultValue(1).setNot((new S).setConstant(0)))])).setEvents(new Map([Y.eventMapEntry(Y.ITERATION,new Map([["index",S.of("index",l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE)]])),Y.outputEventMapEntry(new Map([["value",S.of("value",l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE)]]))]));const an=new W("Add").setNamespace(a.MATH).setParameters(new Map([["value",new y("value",S.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",S.ofNumber("value")]]))]));const on=[()=>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 En extends Ue{constructor(e,t,r=1,...n){super(),n&&n.length||(n=[l.DOUBLE]),this.parametersNumber=r,this.mathFunction=t,this.signature=new W(e).setNamespace(a.MATH).setParameters(on[r-1]()).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",(new S).setType(f.of(...n)).setName("value")]]))]))}getSignature(){return this.signature}async internalExecute(e){let t,r=Be.findPrimitiveNumberType(e.getArguments()?.get(1==this.parametersNumber?"value":"value1")).getT2();return 2==this.parametersNumber&&(t=Be.findPrimitiveNumberType(e.getArguments()?.get("value2")).getT2()),new j([B.outputOf(new Map([["value",this.mathFunction.call(this,r,t)]]))])}}class un extends Ue{static SIGNATURE=new W("Hypotenuse").setNamespace(a.MATH).setParameters(new Map([["value",new y("value",S.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",(new S).setType(f.of(l.DOUBLE)).setName("value")]]))]));constructor(){super()}getSignature(){return un.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get("value");return new j([B.outputOf(new Map([["value",Math.sqrt(t.reduce(((e,t)=>e+t*t),0))]]))])}}const An=new W("Maximum").setNamespace(a.MATH).setParameters(new Map([["value",new y("value",S.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",S.ofNumber("value")]]))]));const ln=new W("Minimum").setNamespace(a.MATH).setParameters(new Map([["value",new y("value",S.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",S.ofNumber("value")]]))]));class gn extends Ue{static SIGNATURE=new W("Random").setNamespace(a.MATH).setEvents(new Map([Y.outputEventMapEntry(G.of("value",S.ofDouble("value")))]));getSignature(){return gn.SIGNATURE}async internalExecute(e){return new j([B.outputOf(new Map([["value",Math.random()]]))])}}class mn extends Ue{static MIN_VALUE="minValue";static MAX_VALUE="maxValue";static VALUE="value";static SIGNATURE=new W("RandomFloat").setParameters(G.of(mn.MIN_VALUE,y.of(mn.MIN_VALUE,S.ofFloat(mn.MIN_VALUE).setDefaultValue(0)),mn.MAX_VALUE,y.of(mn.MAX_VALUE,S.ofFloat(mn.MAX_VALUE).setDefaultValue(2147483647)))).setNamespace(a.MATH).setEvents(new Map([Y.outputEventMapEntry(G.of(mn.VALUE,S.ofFloat(mn.VALUE)))]));getSignature(){return mn.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(mn.MIN_VALUE),r=e.getArguments()?.get(mn.MAX_VALUE),n=Math.random()*(r-t)+t;return new j([B.outputOf(new Map([[mn.VALUE,n]]))])}}class Rn extends Ue{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([Y.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 j([B.outputOf(new Map([[Rn.VALUE,n]]))])}}const cn={Absolute:new En("Absolute",(e=>Math.abs(e)),1,l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE),ACosine:new En("ArcCosine",(e=>Math.acos(e))),ASine:new En("ArcSine",(e=>Math.asin(e))),ATangent:new En("ArcTangent",(e=>Math.atan(e))),Ceiling:new En("Ceiling",(e=>Math.ceil(e))),Cosine:new En("Cosine",(e=>Math.cos(e))),CosineH:new En("HyperbolicCosine",(e=>Math.cosh(e))),CubeRoot:new En("CubeRoot",(e=>Math.cbrt(e))),Exponential:new En("Exponential",(e=>Math.exp(e))),Expm1:new En("ExponentialMinus1",(e=>Math.expm1(e))),Floor:new En("Floor",(e=>Math.floor(e))),Log:new En("LogNatural",(e=>Math.log(e))),Log10:new En("Log10",(e=>Math.log10(e))),Round:new En("Round",(e=>Math.round(e)),1,l.INTEGER,l.LONG),Sine:new En("Sine",(e=>Math.sin(e))),SineH:new En("HyperbolicSine",(e=>Math.sinh(e))),Tangent:new En("Tangent",(e=>Math.tan(e))),TangentH:new En("HyperbolicTangent",(e=>Math.tanh(e))),ToDegrees:new En("ToDegrees",(e=>e*(Math.PI/180))),ToRadians:new En("ToRadians",(e=>e*(180/Math.PI))),SquareRoot:new En("SquareRoot",(e=>Math.sqrt(e))),ArcTangent:new En("ArcTangent2",((e,t)=>Math.atan2(e,t)),2),Power:new En("Power",((e,t)=>Math.pow(e,t)),2),Add:new class extends Ue{getSignature(){return an}async internalExecute(e){let t=e.getArguments()?.get("value");return new j([B.outputOf(new Map([["value",t.reduce(((e,t)=>e+t),0)]]))])}},Hypotenuse:new un,Maximum:new class extends Ue{getSignature(){return An}async internalExecute(e){let t=e.getArguments()?.get("value");return new j([B.outputOf(new Map([["value",t.reduce(((e,t)=>!e&&0!==e||t>e?t:e))]]))])}},Minimum:new class extends Ue{getSignature(){return ln}async internalExecute(e){let t=e.getArguments()?.get("value");return new j([B.outputOf(new Map([["value",t.reduce(((e,t)=>!e&&0!==e||t<e?t:e))]]))])}},Random:new gn,RandomFloat:new mn,RandomInt:new Rn},pn=Object.values(cn).map((e=>e.getSignature().getFullName()));class Tn{find(e,t){if(e==a.MATH)return cn[t]}filter(e){return pn.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}class hn extends Ue{constructor(e,t){super(),this.signature=new W(e).setNamespace(a.SYSTEM_OBJECT).setParameters(new Map([y.ofEntry("source",S.ofAny("source"))])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",t]]))]))}getSignature(){return this.signature}}const Nn={ObjectValues:new class extends hn{constructor(){super("ObjectValues",S.ofArray("value",S.ofAny("value")))}async internalExecute(e){var t=e.getArguments()?.get("source");if(E(t))return new j([B.outputOf(new Map([["value",[]]]))]);let r=Object.entries(We(t)).sort(((e,t)=>e[0].localeCompare(t[0]))).map((e=>e[1]));return new j([B.outputOf(new Map([["value",r]]))])}},ObjectKeys:new class extends hn{constructor(){super("ObjectKeys",S.ofArray("value",S.ofString("value")))}async internalExecute(e){var t=e.getArguments()?.get("source");if(E(t))return new j([B.outputOf(new Map([["value",[]]]))]);let r=Object.keys(We(t)).sort(((e,t)=>e.localeCompare(t)));return new j([B.outputOf(new Map([["value",r]]))])}},ObjectEntries:new class extends hn{constructor(){super("ObjectEntries",S.ofArray("value",S.ofArray("tuple",S.ofString("key"),S.ofAny("value"))))}async internalExecute(e){var t=e.getArguments()?.get("source");if(E(t))return new j([B.outputOf(new Map([["value",[]]]))]);let r=Object.entries(We(t)).sort(((e,t)=>e[0].localeCompare(t[0])));return new j([B.outputOf(new Map([["value",r]]))])}},ObjectDeleteKey:new class extends Ue{constructor(){super(),this.signature=new W("ObjectDeleteKey").setNamespace(a.SYSTEM_OBJECT).setParameters(new Map([y.ofEntry("source",S.ofAny("source")),y.ofEntry("key",S.ofString("key"))])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",S.ofAny("value")]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get("source"),r=e.getArguments()?.get("key");return E(t)?new j([B.outputOf(new Map([["value",void 0]]))]):(t=We(t),delete t[r],new j([B.outputOf(new Map([["value",t]]))]))}},ObjectPutValue:new class extends Ue{constructor(){super(),this.signature=new W("ObjectPutValue").setNamespace(a.SYSTEM_OBJECT).setParameters(new Map([y.ofEntry("source",S.ofObject("source")),y.ofEntry("key",S.ofString("key")),y.ofEntry("value",S.ofAny("value")),y.ofEntry("overwrite",S.ofBoolean("overwrite").setDefaultValue(!0)),y.ofEntry("deleteKeyOnNull",S.ofBoolean("deleteKeyOnNull").setDefaultValue(!1))])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",S.ofObject("value")]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get("source"),r=e.getArguments()?.get("key"),n=e.getArguments()?.get("value"),s=e.getArguments()?.get("overwrite"),a=e.getArguments()?.get("deleteKeyOnNull");const i=new Ut(t,"Data.");return i.setValue(r,n,s,a),new j([B.outputOf(new Map([["value",i.getStore()]]))])}}},fn=Object.values(Nn).map((e=>e.getSignature().getFullName()));class _n{find(e,t){if(e==a.SYSTEM_OBJECT)return Nn[t]}filter(e){return fn.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}class Sn extends Ue{static VALUES="values";static SIGNATURE=new W("Print").setNamespace(a.SYSTEM).setParameters(new Map([y.ofEntry(Sn.VALUES,S.ofAny(Sn.VALUES),!0)]));getSignature(){return Sn.SIGNATURE}async internalExecute(e){var t=e.getArguments()?.get(Sn.VALUES);return console?.log(...t),new j([B.outputOf(new Map)])}}class Mn extends Ue{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(Mn.PARAMETER_STRING_NAME,S.ofString(Mn.PARAMETER_STRING_NAME));static PARAMETER_SECOND_STRING=new y(Mn.PARAMETER_SECOND_STRING_NAME,S.ofString(Mn.PARAMETER_SECOND_STRING_NAME));static PARAMETER_THIRD_STRING=new y(Mn.PARAMETER_THIRD_STRING_NAME,S.ofString(Mn.PARAMETER_THIRD_STRING_NAME));static PARAMETER_INDEX=new y(Mn.PARAMETER_INDEX_NAME,S.ofInteger(Mn.PARAMETER_INDEX_NAME));static PARAMETER_SECOND_INDEX=new y(Mn.PARAMETER_SECOND_INDEX_NAME,S.ofInteger(Mn.PARAMETER_SECOND_INDEX_NAME));static PARAMETER_SEARCH_STRING=new y(Mn.PARAMETER_SEARCH_STRING_NAME,S.ofString(Mn.PARAMETER_STRING_NAME));static EVENT_STRING=new Y(Y.OUTPUT,G.of(Mn.EVENT_RESULT_NAME,S.ofString(Mn.EVENT_RESULT_NAME)));static EVENT_BOOLEAN=new Y(Y.OUTPUT,G.of(Mn.EVENT_RESULT_NAME,S.ofBoolean(Mn.EVENT_RESULT_NAME)));static EVENT_INT=new Y(Y.OUTPUT,G.of(Mn.EVENT_RESULT_NAME,S.ofInteger(Mn.EVENT_RESULT_NAME)));static EVENT_ARRAY=new Y(Y.OUTPUT,G.of(Mn.EVENT_RESULT_NAME,S.ofArray(Mn.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 Mn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Mn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Mn.PARAMETER_SEARCH_STRING_NAME);return new j([B.outputOf(G.of(Mn.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,Mn.EVENT_BOOLEAN,Mn.PARAMETER_STRING,Mn.PARAMETER_SEARCH_STRING)]}static ofEntryAsStringAndIntegerStringOutput(e,t){return[e,new class extends Mn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Mn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Mn.PARAMETER_INDEX_NAME);return new j([B.outputOf(G.of(Mn.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,Mn.EVENT_STRING,Mn.PARAMETER_STRING,Mn.PARAMETER_INDEX)]}static ofEntryAsStringIntegerOutput(e,t){return[e,new class extends Mn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Mn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Mn.PARAMETER_SEARCH_STRING_NAME);return new j([B.outputOf(G.of(Mn.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,Mn.EVENT_INT,Mn.PARAMETER_STRING,Mn.PARAMETER_SEARCH_STRING)]}static ofEntryString(e,t){return[e,new class extends Mn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Mn.PARAMETER_STRING_NAME);return new j([B.outputOf(G.of(Mn.EVENT_RESULT_NAME,t(r)))])}}(a.STRING,e,Mn.EVENT_STRING,Mn.PARAMETER_STRING)]}static ofEntryStringBooleanOutput(e,t){return[e,new class extends Mn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Mn.PARAMETER_STRING_NAME);return new j([B.outputOf(G.of(Mn.EVENT_RESULT_NAME,t(r)))])}}(a.STRING,e,Mn.EVENT_BOOLEAN,Mn.PARAMETER_STRING)]}static ofEntryAsStringStringIntegerIntegerOutput(e,t){return[e,new class extends Mn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Mn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Mn.PARAMETER_SEARCH_STRING_NAME),s=e?.getArguments()?.get(Mn.PARAMETER_INDEX_NAME);return new j([B.outputOf(G.of(Mn.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,Mn.EVENT_INT,Mn.PARAMETER_STRING,Mn.PARAMETER_SEARCH_STRING,Mn.PARAMETER_INDEX)]}static ofEntryAsStringIntegerIntegerStringOutput(e,t){return[e,new class extends Mn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Mn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Mn.PARAMETER_INDEX_NAME),s=e?.getArguments()?.get(Mn.PARAMETER_SECOND_INDEX_NAME);return new j([B.outputOf(G.of(Mn.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,Mn.EVENT_INT,Mn.PARAMETER_STRING,Mn.PARAMETER_INDEX,Mn.PARAMETER_SECOND_INDEX)]}static ofEntryAsStringStringStringStringOutput(e,t){return[e,new class extends Mn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Mn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Mn.PARAMETER_SECOND_STRING_NAME),s=e?.getArguments()?.get(Mn.PARAMETER_THIRD_STRING_NAME);return new j([B.outputOf(G.of(Mn.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,Mn.EVENT_STRING,Mn.PARAMETER_STRING,Mn.PARAMETER_SECOND_STRING,Mn.PARAMETER_THIRD_STRING)]}}class On extends Ue{static VALUE="value";static SCHEMA=(new S).setName(On.VALUE).setType(new N(l.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([Y.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 j([B.outputOf(new Map([[On.VALUE,r]]))])}}class wn extends Ue{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(wn.PARAMETER_STRING_NAME,S.ofString(wn.PARAMETER_STRING_NAME));PARAMETER_AT_START=new y(wn.PARAMETER_AT_START_NAME,S.ofInteger(wn.PARAMETER_AT_START_NAME));PARAMETER_AT_END=new y(wn.PARAMETER_AT_END_NAME,S.ofInteger(wn.PARAMETER_AT_END_NAME));EVENT_STRING=new Y(Y.OUTPUT,new Map([[wn.EVENT_RESULT_NAME,S.ofString(wn.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(wn.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(wn.PARAMETER_AT_START_NAME),n=e?.getArguments()?.get(wn.PARAMETER_AT_END_NAME);if(n>=r){let e="";return e+=t.substring(0,r),e+=t.substring(n),new j([B.outputOf(new Map([[wn.EVENT_RESULT_NAME,e.toString()]]))])}return new j([B.outputOf(new Map([[wn.EVENT_RESULT_NAME,t]]))])}}class dn extends Ue{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(dn.PARAMETER_STRING_NAME,S.ofString(dn.PARAMETER_STRING_NAME));PARAMETER_AT_POSITION=new y(dn.PARAMETER_AT_POSITION_NAME,S.ofInteger(dn.PARAMETER_AT_POSITION_NAME));PARAMETER_INSERT_STRING=new y(dn.PARAMETER_INSERT_STRING_NAME,S.ofString(dn.PARAMETER_INSERT_STRING_NAME));EVENT_STRING=new Y(Y.OUTPUT,new Map([[this.EVENT_RESULT_NAME,S.ofString(this.EVENT_RESULT_NAME)]]));signature=new W("InsertAtGivenPosition").setNamespace(a.STRING).setParameters(new Map([[this.PARAMETER_STRING.getParameterName(),this.PARAMETER_STRING],[this.PARAMETER_AT_POSITION.getParameterName(),this.PARAMETER_AT_POSITION],[this.PARAMETER_INSERT_STRING.getParameterName(),this.PARAMETER_INSERT_STRING]])).setEvents(new Map([Y.outputEventMapEntry(new Map([[this.EVENT_RESULT_NAME,S.ofString(this.EVENT_RESULT_NAME)]]))]));getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(dn.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(dn.PARAMETER_AT_POSITION_NAME),n=e?.getArguments()?.get(dn.PARAMETER_INSERT_STRING_NAME),s="";return s+=t.substring(0,r),s+=n,s+=t.substring(r),new j([B.outputOf(new Map([[this.EVENT_RESULT_NAME,s]]))])}}class In extends Ue{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(In.PARAMETER_STRING_NAME,S.ofString(In.PARAMETER_STRING_NAME));static PARAMETER_POSTPAD_STRING=new y(In.PARAMETER_POSTPAD_STRING_NAME,S.ofString(In.PARAMETER_POSTPAD_STRING_NAME));static PARAMETER_LENGTH=new y(In.PARAMETER_LENGTH_NAME,S.ofInteger(In.PARAMETER_LENGTH_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[In.EVENT_RESULT_NAME,S.ofString(In.EVENT_RESULT_NAME)]]));signature=new W("PostPad").setNamespace(a.STRING).setParameters(new Map([[In.PARAMETER_STRING.getParameterName(),In.PARAMETER_STRING],[In.PARAMETER_POSTPAD_STRING.getParameterName(),In.PARAMETER_POSTPAD_STRING],[In.PARAMETER_LENGTH.getParameterName(),In.PARAMETER_LENGTH]])).setEvents(new Map([[In.EVENT_STRING.getName(),In.EVENT_STRING]]));constructor(){super()}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(In.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(In.PARAMETER_POSTPAD_STRING_NAME),n=e.getArguments()?.get(In.PARAMETER_LENGTH_NAME),s="",a=r.length;for(s+=t;a<=n;)s+=r,a+=r.length;return s.length-t.length<n&&(s+=r.substring(0,n-(s.length-t.length))),new j([B.of(In.EVENT_RESULT_NAME,new Map([[In.EVENT_RESULT_NAME,s.toString()]]))])}}class Pn extends Ue{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(Pn.PARAMETER_STRING_NAME,S.ofString(Pn.PARAMETER_STRING_NAME));static PARAMETER_PREPAD_STRING=new y(Pn.PARAMETER_PREPAD_STRING_NAME,S.ofString(Pn.PARAMETER_PREPAD_STRING_NAME));static PARAMETER_LENGTH=new y(Pn.PARAMETER_LENGTH_NAME,S.ofInteger(Pn.PARAMETER_LENGTH_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[Pn.EVENT_RESULT_NAME,S.ofString(Pn.EVENT_RESULT_NAME)]]));signature=new W("PrePad").setNamespace(a.STRING).setParameters(new Map([[Pn.PARAMETER_STRING.getParameterName(),Pn.PARAMETER_STRING],[Pn.PARAMETER_PREPAD_STRING.getParameterName(),Pn.PARAMETER_PREPAD_STRING],[Pn.PARAMETER_LENGTH.getParameterName(),Pn.PARAMETER_LENGTH]])).setEvents(new Map([[Pn.EVENT_STRING.getName(),Pn.EVENT_STRING]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(Pn.PARAMETER_STRING_NAME),r=e.getArguments()?.get(Pn.PARAMETER_PREPAD_STRING_NAME),n=e.getArguments()?.get(Pn.PARAMETER_LENGTH_NAME),s="",a=r.length;for(;a<=n;)s+=r,a+=r.length;return s.length<n&&(s+=r.substring(0,n-s.length)),s+=t,new j([B.of(Pn.EVENT_RESULT_NAME,new Map([[Pn.EVENT_RESULT_NAME,s]]))])}}class yn extends Ue{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(yn.PARAMETER_STRING_NAME,S.ofString(yn.PARAMETER_STRING_NAME));static PARAMETER_OTHER_STRING=new y(yn.PARAMETER_OTHER_STRING_NAME,S.ofString(yn.PARAMETER_OTHER_STRING_NAME));static PARAMETER_FIRST_OFFSET=new y(yn.PARAMETER_FIRST_OFFSET_NAME,S.ofInteger(yn.PARAMETER_FIRST_OFFSET_NAME));static PARAMETER_SECOND_OFFSET=new y(yn.PARAMETER_SECOND_OFFSET_NAME,S.ofInteger(yn.PARAMETER_SECOND_OFFSET_NAME));static PARAMETER_INTEGER=new y(yn.PARAMETER_INTEGER_NAME,S.ofInteger(yn.PARAMETER_INTEGER_NAME));static PARAMETER_BOOLEAN=new y(yn.PARAMETER_BOOLEAN_NAME,S.ofBoolean(yn.PARAMETER_BOOLEAN_NAME));static EVENT_BOOLEAN=new Y(Y.OUTPUT,new Map([[yn.EVENT_RESULT_NAME,S.ofBoolean(yn.EVENT_RESULT_NAME)]]));signature=new W("RegionMatches").setNamespace(a.STRING).setParameters(new Map([[yn.PARAMETER_STRING.getParameterName(),yn.PARAMETER_STRING],[yn.PARAMETER_BOOLEAN.getParameterName(),yn.PARAMETER_BOOLEAN],[yn.PARAMETER_FIRST_OFFSET.getParameterName(),yn.PARAMETER_FIRST_OFFSET],[yn.PARAMETER_OTHER_STRING.getParameterName(),yn.PARAMETER_OTHER_STRING],[yn.PARAMETER_SECOND_OFFSET.getParameterName(),yn.PARAMETER_SECOND_OFFSET],[yn.PARAMETER_INTEGER.getParameterName(),yn.PARAMETER_INTEGER]])).setEvents(new Map([[yn.EVENT_BOOLEAN.getName(),yn.EVENT_BOOLEAN]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(yn.PARAMETER_STRING_NAME),r=e.getArguments()?.get(yn.PARAMETER_BOOLEAN_NAME),n=e.getArguments()?.get(yn.PARAMETER_FIRST_OFFSET_NAME),s=e?.getArguments()?.get(yn.PARAMETER_OTHER_STRING_NAME),a=e?.getArguments()?.get(yn.PARAMETER_SECOND_OFFSET_NAME),i=e.getArguments()?.get(yn.PARAMETER_INTEGER_NAME),o=!1;if(n<0||a<0||n+i>t.length||a+i>s.length)o=!1;else if(r){t=t.substring(n,n+i).toUpperCase(),o=t==s.substring(a,a+i).toUpperCase()}else{t=t.substring(n,n+i),o=t==s.substring(a,i)}return new j([B.outputOf(new Map([[yn.EVENT_RESULT_NAME,o]]))])}}class xn extends Ue{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(xn.PARAMETER_STRING_NAME,S.ofString(xn.PARAMETER_STRING_NAME));static PARAMETER_AT_START=new y(xn.PARAMETER_AT_START_NAME,S.ofInteger(xn.PARAMETER_AT_START_NAME));static PARAMETER_AT_LENGTH=new y(xn.PARAMETER_AT_LENGTH_NAME,S.ofInteger(xn.PARAMETER_AT_LENGTH_NAME));static PARAMETER_REPLACE_STRING=new y(xn.PARAMETER_REPLACE_STRING_NAME,S.ofString(xn.PARAMETER_REPLACE_STRING_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[xn.EVENT_RESULT_NAME,S.ofString(xn.EVENT_RESULT_NAME)]]));constructor(){super()}signature=new W("ReplaceAtGivenPosition").setNamespace(a.STRING).setParameters(new Map([[xn.PARAMETER_STRING.getParameterName(),xn.PARAMETER_STRING],[xn.PARAMETER_AT_START.getParameterName(),xn.PARAMETER_AT_START],[xn.PARAMETER_AT_LENGTH.getParameterName(),xn.PARAMETER_AT_LENGTH],[xn.PARAMETER_REPLACE_STRING.getParameterName(),xn.PARAMETER_REPLACE_STRING]])).setEvents(new Map([[xn.EVENT_STRING.getName(),xn.EVENT_STRING]]));getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(xn.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(xn.PARAMETER_AT_START_NAME),n=e?.getArguments()?.get(xn.PARAMETER_AT_LENGTH_NAME),s=e?.getArguments()?.get(xn.PARAMETER_REPLACE_STRING_NAME);t.length;if(r<n){let e="";e+=t.substring(0,r),e+=s,e+=t.substring(r+n)}return new j([B.outputOf(new Map([[xn.EVENT_RESULT_NAME,t]]))])}}class vn extends Ue{VALUE="value";SIGNATURE=new W("Reverse").setNamespace(a.STRING).setParameters(new Map([[this.VALUE,new y(this.VALUE,S.ofString(this.VALUE)).setVariableArgument(!1)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([[this.VALUE,(new S).setType(f.of(l.STRING)).setName(this.VALUE)]]))]));constructor(){super()}getSignature(){return this.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(this.VALUE),r=t.length-1,n="";for(;r>=0;)n+=t.charAt(r--);return new j([B.outputOf(G.of(this.VALUE,n))])}}class Ln extends Ue{PARAMETER_STRING_NAME="string";PARAMETER_SPLIT_STRING_NAME="searchString";EVENT_RESULT_NAME="result";PARAMETER_STRING=new y(this.PARAMETER_STRING_NAME,S.ofString(this.PARAMETER_STRING_NAME));PARAMETER_SPLIT_STRING=new y(this.PARAMETER_SPLIT_STRING_NAME,S.ofString(this.PARAMETER_SPLIT_STRING_NAME));EVENT_ARRAY=new Y(Y.OUTPUT,G.of(this.EVENT_RESULT_NAME,S.ofArray(this.EVENT_RESULT_NAME)));getSignature(){return new W("Split").setNamespace(a.STRING).setParameters(new Map([[this.PARAMETER_STRING_NAME,this.PARAMETER_STRING],[this.PARAMETER_SPLIT_STRING_NAME,this.PARAMETER_SPLIT_STRING]])).setEvents(new Map([Y.outputEventMapEntry(new Map([[this.EVENT_RESULT_NAME,S.ofArray(this.EVENT_RESULT_NAME)]]))]))}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(this.PARAMETER_STRING_NAME),r=e.getArguments()?.get(this.PARAMETER_SPLIT_STRING_NAME);return new j([B.outputOf(G.of(this.EVENT_RESULT_NAME,t.split(r)))])}}class Un extends Ue{PARAMETER_INPUT_ANYTYPE_NAME="anytype";EVENT_RESULT_NAME="result";PARAMETER_INPUT_ANYTYPE=new y(this.PARAMETER_INPUT_ANYTYPE_NAME,S.ofAny(this.PARAMETER_INPUT_ANYTYPE_NAME));EVENT_STRING=new Y(Y.OUTPUT,new Map([[this.EVENT_RESULT_NAME,S.ofString(this.EVENT_RESULT_NAME)]]));getSignature(){return new W("ToString").setNamespace(a.STRING).setParameters(new Map([[this.PARAMETER_INPUT_ANYTYPE.getParameterName(),this.PARAMETER_INPUT_ANYTYPE]])).setEvents(new Map([[this.EVENT_STRING.getName(),this.EVENT_STRING]]))}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(this.PARAMETER_INPUT_ANYTYPE_NAME),r="";return r="object"==typeof t?JSON.stringify(t,void 0,2):""+t,new j([B.outputOf(new Map([[this.EVENT_RESULT_NAME,r]]))])}}class Vn extends Ue{static PARAMETER_STRING_NAME="string";static PARAMETER_LENGTH_NAME="length";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new y(Vn.PARAMETER_STRING_NAME,S.ofString(Vn.PARAMETER_STRING_NAME));static PARAMETER_LENGTH=new y(Vn.PARAMETER_LENGTH_NAME,S.ofInteger(Vn.PARAMETER_LENGTH_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[Vn.EVENT_RESULT_NAME,S.ofString(Vn.EVENT_RESULT_NAME)]]));signature=new W("TrimTo").setNamespace(a.STRING).setParameters(new Map([[Vn.PARAMETER_STRING.getParameterName(),Vn.PARAMETER_STRING],[Vn.PARAMETER_LENGTH.getParameterName(),Vn.PARAMETER_LENGTH]])).setEvents(new Map([[Vn.EVENT_STRING.getName(),Vn.EVENT_STRING]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(Vn.PARAMETER_STRING_NAME),r=e.getArguments()?.get(Vn.PARAMETER_LENGTH_NAME);return new j([B.of(Vn.EVENT_RESULT_NAME,new Map([[Vn.EVENT_RESULT_NAME,t.substring(0,r)]]))])}}class Cn{static repoMap=G.ofArrayEntries(Mn.ofEntryString("Trim",(e=>e.trim())),Mn.ofEntryString("LowerCase",(e=>e.toLocaleLowerCase())),Mn.ofEntryString("UpperCase",(e=>e.toUpperCase())),Mn.ofEntryStringBooleanOutput("IsBlank",(e=>""===e.trim())),Mn.ofEntryStringBooleanOutput("IsEmpty",(e=>""===e)),Mn.ofEntryAsStringBooleanOutput("Contains",((e,t)=>-1!=e.indexOf(t))),Mn.ofEntryAsStringBooleanOutput("EndsWith",((e,t)=>e.endsWith(t))),Mn.ofEntryAsStringBooleanOutput("EqualsIgnoreCase",((e,t)=>e.toUpperCase()==t.toUpperCase())),Mn.ofEntryAsStringBooleanOutput("Matches",((e,t)=>new RegExp(t).test(e))),Mn.ofEntryAsStringIntegerOutput("IndexOf",((e,t)=>e.indexOf(t))),Mn.ofEntryAsStringIntegerOutput("LastIndexOf",((e,t)=>e.lastIndexOf(t))),Mn.ofEntryAsStringAndIntegerStringOutput("Repeat",((e,t)=>e.repeat(t))),Mn.ofEntryAsStringStringIntegerIntegerOutput("IndexOfWithStartPoint",((e,t,r)=>e.indexOf(t,r))),Mn.ofEntryAsStringStringIntegerIntegerOutput("LastIndexOfWithStartPoint",((e,t,r)=>e.lastIndexOf(t,r))),Mn.ofEntryAsStringStringStringStringOutput("Replace",((e,t,r)=>e)),Mn.ofEntryAsStringStringStringStringOutput("ReplaceFirst",((e,t,r)=>e.replace(t,r))),Mn.ofEntryAsStringIntegerIntegerStringOutput("SubString",((e,t,r)=>e.substring(t,r))),V(new On),V(new wn),V(new dn),V(new In),V(new Pn),V(new yn),V(new xn),V(new vn),V(new Ln),V(new Un),V(new Vn));static filterableNames=Array.from(Cn.repoMap.values()).map((e=>e.getSignature().getFullName()));find(e,t){if(e==a.STRING)return Cn.repoMap.get(t)}filter(e){return Cn.filterableNames.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}var Gn={};t(Gn,"HybridRepository",(()=>bn));class bn{constructor(...e){this.repos=e}find(e,t){for(let r of this.repos){let n=r.find(e,t);if(n)return n}}filter(e){let t=new Set;for(let r of this.repos)r.filter(e).forEach((e=>t.add(e)));return Array.from(t)}}const Dn=new Map([[a.SYSTEM_CTX,new Map([V(new class extends Ue{getSignature(){return Dt}async internalExecute(e){const t=e?.getArguments()?.get("name");if(e?.getContext()?.has(t))throw new $(Z.format("Context already has an element for '$' ",t));let r=S.from(e?.getArguments()?.get("schema"));if(!r)throw new $("Schema is not supplied.");return e.getContext().set(t,new bt(r,E(r.getDefaultValue())?void 0:r.getDefaultValue())),new j([B.outputOf(new Map)])}}),V(new class extends Ue{getSignature(){return Ft}async internalExecute(e){const t=e?.getArguments()?.get("name");if(!e.getContext()?.has(t))throw new $(Z.format("Context don't have an element for '$' ",t));return new j([B.outputOf(new Map(["value",e.getContext()?.get(t)?.getElement()]))])}}),V(new class extends Ue{getSignature(){return Zr}async internalExecute(e){let t=e?.getArguments()?.get("name");if(se.isNullOrBlank(t))throw new $("Empty string is not a valid name for the context element");let r=e?.getArguments()?.get("value");const n=new xt(t),s=n.getTokens().peekLast();if(!s.getExpression().startsWith("Context")||s instanceof xt||s instanceof It&&!s.getElement().toString().startsWith("Context"))throw new Ye(Z.format("The context path $ is not a valid path in context",t));for(const e of n.getOperations().toArray())if(e!=yt.ARRAY_OPERATOR&&e!=yt.OBJECT_OPERATOR)throw new Ye(Z.format("Expected a reference to the context location, but found an expression $",t));for(let r=0;r<n.getTokens().size();r++){let s=n.getTokens().get(r);s instanceof xt&&n.getTokens().set(r,new It(t,new Qr(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 $(Z.format("Context doesn't have any element with name '$' ",t));if(a.isEmpty())return i.setElement(r),new j([B.outputOf(new Map)]);let o=i.getElement(),u=a.removeLast(),A=s.removeLast(),l=A instanceof It?A.getElement():A.getExpression();for(E(o)&&(o=u==yt.OBJECT_OPERATOR?{}:[],i.setElement(o));!a.isEmpty();)o=u==yt.OBJECT_OPERATOR?this.getDataFromObject(o,l,a.peekLast()):this.getDataFromArray(o,l,a.peekLast()),u=a.removeLast(),A=s.removeLast(),l=A instanceof It?A.getElement():A.getExpression();return u==yt.OBJECT_OPERATOR?this.putDataInObject(o,l,r):this.putDataInArray(o,l,r),new j([B.outputOf(new Map)])}getDataFromArray(e,t,r){if(!Array.isArray(e))throw new $(Z.format("Expected an array but found $",e));const n=parseInt(t);if(isNaN(n))throw new $(Z.format("Expected an array index but found $",t));if(n<0)throw new $(Z.format("Array index is out of bound - $",t));let s=e[n];return E(s)&&(s=r==yt.OBJECT_OPERATOR?{}:[],e[n]=s),s}getDataFromObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new $(Z.format("Expected an object but found $",e));let n=e[t];return E(n)&&(n=r==yt.OBJECT_OPERATOR?{}:[],e[t]=n),n}putDataInArray(e,t,r){if(!Array.isArray(e))throw new $(Z.format("Expected an array but found $",e));const n=parseInt(t);if(isNaN(n))throw new $(Z.format("Expected an array index but found $",t));if(n<0)throw new $(Z.format("Array index is out of bound - $",t));e[n]=r}putDataInObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new $(Z.format("Expected an object but found $",e));e[t]=r}})])],[a.SYSTEM_LOOP,new Map([V(new class extends Ue{getSignature(){return sn}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,o=e.getStatementExecution()?.getStatement()?.getStatementName();return new j({next(){if(i)return;if(s&&a>=r||!s&&a<=r||o&&e.getExecutionContext()?.get(o))return i=!0,o&&e.getExecutionContext()?.delete(o),B.outputOf(new Map([["value",a]]));const t=B.of(Y.ITERATION,new Map([["index",a]]));return a+=n,t}})}}),V(new class extends Ue{getSignature(){return nn}async internalExecute(e){let t=e.getArguments()?.get("count"),r=0,n=e.getStatementExecution()?.getStatement()?.getStatementName();return new j({next(){if(r>=t||n&&e.getExecutionContext()?.get(n))return n&&e.getExecutionContext()?.delete(n),B.outputOf(new Map([["value",r]]));const s=B.of(Y.ITERATION,new Map([["index",r]]));return++r,s}})}}),V(new class extends Ue{getSignature(){return rn}async internalExecute(e){let t=e.getArguments()?.get("stepName");return e.getExecutionContext().set(t,!0),new j([B.outputOf(new Map)])}})])],[a.SYSTEM,new Map([V(new tn),V(new class extends Ue{getSignature(){return en}async internalExecute(e){const t=e.getEvents(),r=e.getArguments()?.get("eventName"),n=e?.getArguments()?.get("results").map((t=>{let r=t.value;if(E(r))throw new $("Expect a value object");let n=r.value;return r.isExpression&&(n=new Qr(n).evaluate(e.getValuesMap())),[t.name,n]})).reduce(((e,t)=>(e.set(t[0],t[1]),e)),new Map);return t?.has(r)||t?.set(r,[]),t?.get(r)?.push(n),new j([B.outputOf(new Map)])}}),V(new Sn)])]]),Fn=Array.from(Dn.values()).flatMap((e=>Array.from(e.values()))).map((e=>e.getSignature().getFullName()));class Yn extends bn{constructor(){super({find:(e,t)=>Dn.get(e)?.get(t),filter:e=>Array.from(Fn).filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))},new Tn,new Cn,new Ct,new _n)}}var Bn={};t(Bn,"StatementExecution",(()=>$n));var Hn={};t(Hn,"StatementMessage",(()=>kn));class kn{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 $n{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 kn(e,t))}addDependency(e){this.dependencies.add(e)}getDepenedencies(){return this.dependencies}equals(e){if(!(e instanceof $n))return!1;return e.statement.equals(this.statement)}}var jn={};t(jn,"ContextTokenValueExtractor",(()=>Xn));class Xn extends Lt{static PREFIX="Context.";constructor(e){super(),this.context=e}getValueInternal(e){let t=e.split(Lt.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 Xn.PREFIX}}var Wn={};t(Wn,"OutputMapTokenValueExtractor",(()=>qn));class qn extends Lt{static PREFIX="Steps.";constructor(e){super(),this.output=e}getValueInternal(e){let t=e.split(Lt.REGEX_DOT),r=1,n=this.output.get(t[r++]);if(!n||r>=t.length)return;let s=n.get(t[r++]);if(!s||r>=t.length)return;const a=t[r].indexOf("[");if(-1===a){let n=s.get(t[r++]);return this.retrieveElementFrom(e,t,r,n)}const i=t[r].substring(0,a);let o=s.get(i);return this.retrieveElementFrom(e,t,r,{[i]:o})}getPrefix(){return qn.PREFIX}}var Jn={};t(Jn,"ArgumentsTokenValueExtractor",(()=>zn));class zn extends Lt{static PREFIX="Arguments.";constructor(e){super(),this.args=e}getValueInternal(e){let t=e.split(Lt.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 zn.PREFIX}}var Kn={};t(Kn,"GraphVertex",(()=>es));var Qn={};t(Qn,"ExecutionGraph",(()=>Zn));class Zn{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 es(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 ee(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 es{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 oe(this,e)),t}addInEdgeTo(e,t){return this.inVertices.add(new oe(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 Zn(!0);var r=new ee(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 ts={};t(ts,"KIRuntime",(()=>ms));var rs={};t(rs,"JsonExpression",(()=>ns));class ns{constructor(e){this.expression=e}getExpression(){return this.expression}}var ss={};let as;var is;t(ss,"ParameterReferenceType",(()=>as)),(is=as||(as={})).VALUE="VALUE",is.EXPRESSION="EXPRESSION";var os={};function Es(){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(os,"FunctionExecutionParameters",(()=>us));class us{count=0;executionContext=new Map;valueExtractors=new Map;constructor(e,t,r){this.functionRepository=e,this.schemaRepository=t,this.executionId=r??Es()}getExecutionId(){return this.executionId}getContext(){return this.context}setContext(e){this.context=e;let t=new Xn(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 qn(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}setExecutionContext(e){return this.executionContext=e,this}getExecutionContext(){return this.executionContext}}var As={};let ls;var gs;t(As,"StatementMessageType",(()=>ls)),(gs=ls||(ls={})).ERROR="ERROR",gs.WARNING="WARNING",gs.MESSAGE="MESSAGE";class ms extends Ue{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()>ms.VERSION)throw new $("Runtime is at a lower version "+ms.VERSION+" and trying to run code from version "+this.fd.getVersion()+".")}getSignature(){return this.fd}async getExecutionPlan(e,t){let r=new Zn;for(let n of Array.from(this.fd.getSteps().values()))r.addVertex(this.prepareStatementExecution(n,e,t));let n=this.makeEdges(r);return Array.from(n.getT2().entries()).forEach((e=>{let t=r.getNodeMap().get(e[0])?.getData();t&&t.addMessage(ls.ERROR,e[1])})),r}async internalExecute(e){e.getContext()||e.setContext(new Map),e.getEvents()||e.setEvents(new Map),e.getSteps()||e.setSteps(new Map),e.getArguments()&&e.addTokenValueExtractor(new zn(e.getArguments())),this.debugMode&&(console.log(`EID: ${e.getExecutionId()} Executing: ${this.fd.getNamespace()}.${this.fd.getName()}`),console.log(`EID: ${e.getExecutionId()} Parameters: `,e));let t=await this.getExecutionPlan(e.getFunctionRepository(),e.getSchemaRepository());this.debugMode&&console.log(`EID: ${e.getExecutionId()} ${t?.toString()}`);let r=t.getVerticesData().filter((e=>e.getMessages().length)).map((e=>e.getStatement().getStatementName()+": \n"+e.getMessages().join(",")));if(r?.length)throw new $("Please fix the errors in the function definition before execution : \n"+r.join(",\n"));return await this.executeGraph(t,e)}async executeGraph(e,t){let r=new ee;r.addAll(e.getVerticesWithNoIncomingEdges());let n=new ee;for(;!(r.isEmpty()&&n.isEmpty()||t.getEvents()?.has(Y.OUTPUT));)if(await this.processBranchQue(t,r,n),await this.processExecutionQue(t,r,n),t.setCount(t.getCount()+1),t.getCount()==ms.MAX_EXECUTION_ITERATIONS)throw new $("Execution locked in an infinite loop");if(!e.isSubGraph()&&!t.getEvents()?.size){const e=this.getSignature().getEvents();if(e.size&&e.get(Y.OUTPUT)?.getParameters()?.size)throw new $("No events raised")}const s=Array.from(t.getEvents()?.entries()??[]).flatMap((e=>e[1].map((t=>B.of(e[0],t)))));return s.length||e.isSubGraph()?new j(s):new j([B.of(Y.OUTPUT,new Map)])}async processExecutionQue(e,t,r){if(!t.isEmpty()){let n=t.pop();await this.allDependenciesResolvedVertex(n,e.getSteps())?await this.executeVertex(n,e,r,t,e.getFunctionRepository()):t.add(n)}}async processBranchQue(e,t,r){if(r.length){let n=r.pop();await this.allDependenciesResolvedTuples(n.getT2(),e.getSteps())?await this.executeBranch(e,t,n):r.add(n)}}async executeBranch(e,t,r){let n,s=r.getT4();do{if(await this.executeGraph(r.getT1(),e),n=r.getT3().next(),n&&(e.getSteps()?.has(s.getData().getStatement().getStatementName())||e.getSteps()?.set(s.getData().getStatement().getStatementName(),new Map),e.getSteps()?.get(s.getData().getStatement().getStatementName())?.set(n.getName(),this.resolveInternalExpressions(n.getResult(),e)),this.debugMode)){const t=s.getData().getStatement();console.log(`EID: ${e.getExecutionId()} Step : ${t.getStatementName()} => ${t.getNamespace()}.${t.getName()}`),console.log(`EID: ${e.getExecutionId()} Event : ${n.getName()} : `,e.getSteps().get(t.getStatementName()).get(n.getName()))}}while(n&&n.getName()!=Y.OUTPUT);n?.getName()==Y.OUTPUT&&s.getOutVertices().has(Y.OUTPUT)&&(s?.getOutVertices()?.get(Y.OUTPUT)??[]).forEach((async r=>{await this.allDependenciesResolvedVertex(r,e.getSteps())&&t.add(r)}))}async executeVertex(e,t,r,n,s){let a=e.getData().getStatement(),i=s.find(a.getNamespace(),a.getName());if(!i)throw new $(Z.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 ms?new us(t.getFunctionRepository(),t.getSchemaRepository(),`${t.getExecutionId()}_${a.getStatementName()}`).setArguments(E).setValuesMap(new Map(Array.from(t.getValuesMap().values()).filter((e=>e.getPrefix()!==zn.PREFIX&&e.getPrefix()!==qn.PREFIX&&e.getPrefix()!==Xn.PREFIX)).map((e=>[e.getPrefix(),e])))):new us(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()).setExecutionContext(t.getExecutionContext());let l=await i.execute(u),g=l.next();if(!g)throw new $(Z.format("Executing $ returned no events",a.getStatementName()));let m=g.getName()==Y.OUTPUT;if(t.getSteps()?.has(a.getStatementName())||t.getSteps().set(a.getStatementName(),new Map),t.getSteps().get(a.getStatementName()).set(g.getName(),this.resolveInternalExpressions(g.getResult(),t)),this.debugMode&&(console.log(`EID: ${t.getExecutionId()} Step : ${a.getStatementName()} => ${a.getNamespace()}.${a.getName()}`),console.log(`EID: ${t.getExecutionId()} Event : ${g.getName()} : `,t.getSteps().get(a.getStatementName()).get(g.getName()))),m){let r=e.getOutVertices().get(Y.OUTPUT);r&&r.forEach((async e=>{await this.allDependenciesResolvedVertex(e,t.getSteps())&&n.add(e)}))}else{let t=e.getSubGraphOfType(g.getName()),n=this.makeEdges(t).getT1();r.push(new ue(t,n,l,e))}}resolveInternalExpressions(e,t){return e?Array.from(e.entries()).map((e=>new oe(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 ns){return new Qr(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 oe(t[0],n);let a=r.get(t[0]);return a?(n=a.isVariableArgument()?s.sort(((e,t)=>(e.getOrder()??0)-(t.getOrder()??0))).filter((e=>!E(e))).map((t=>this.parameterReferenceEvaluation(e,t))).flatMap((e=>Array.isArray(e)?e:[e])):this.parameterReferenceEvaluation(e,s[0]),new oe(t[0],n)):new oe(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()==as.VALUE)r=this.resolveInternalExpression(t.getValue(),e);else if(t.getType()==as.EXPRESSION&&!se.isNullOrBlank(t.getExpression())){r=new Qr(t.getExpression()??"").evaluate(e.getValuesMap())}return r}prepareStatementExecution(e,t,r){let n=new $n(e),s=t.find(e.getNamespace(),e.getName());if(!s)return n.addMessage(ls.ERROR,Z.format("$.$ is not available",e.getNamespace(),e.getName())),n;let a=new Map(s.getSignature().getParameters());if(!e.getParameterMap())return n;for(let t of Array.from(e.getParameterMap().entries())){let e=a.get(t[0]);if(!e)continue;let s=Array.from(t[1]?.values()??[]);if(s.length||e.isVariableArgument()){if(e.isVariableArgument()){s.sort(((e,t)=>(e.getOrder()??0)-(t.getOrder()??0)));for(let t of s)this.parameterReferenceValidation(n,e,t,r)}else if(s.length){let t=s[0];this.parameterReferenceValidation(n,e,t,r)}a.delete(e.getParameterName())}else ge.hasDefaultValueOrNullSchemaType(e.getSchema(),r)||n.addMessage(ls.ERROR,Z.format(ms.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()||ge.hasDefaultValueOrNullSchemaType(e.getSchema(),r)||n.addMessage(ls.ERROR,Z.format(ms.PARAMETER_NEEDS_A_VALUE,e.getParameterName()));return n}parameterReferenceValidation(e,t,r,n){if(r){if(r.getType()==as.VALUE){if(E(r.getValue())&&!ge.hasDefaultValueOrNullSchemaType(t.getSchema(),n)&&e.addMessage(ls.ERROR,Z.format(ms.PARAMETER_NEEDS_A_VALUE,t.getParameterName())),E(r.getValue()))return;let s=new ee;for(s.push(new oe(t.getSchema(),r.getValue()));!s.isEmpty();){let t=s.pop();if(t.getT2()instanceof ns)this.addDependencies(e,t.getT2().getExpression());else{if(E(t.getT1())||E(t.getT1().getType()))continue;if(t.getT1().getType()?.contains(l.ARRAY)&&Array.isArray(t.getT2())){let e=t.getT1().getItems();if(!e)continue;if(e.isSingleType())for(let r of t.getT2())s.push(new oe(e.getSingleSchema(),r));else{let r=t.getT2();for(let t=0;t<r.length;t++)s.push(new oe(e.getTupleSchema()[t],r[t]))}}else if(t.getT1().getType()?.contains(l.OBJECT)&&"object"==typeof t.getT2()){let r=t.getT1();if(r.getName()===y.EXPRESSION.getName()&&r.getNamespace()===y.EXPRESSION.getNamespace()){let r=t.getT2();r.isExpression&&this.addDependencies(e,r.value)}else if(r.getProperties())for(let e of Object.entries(t.getT2()))r.getProperties().has(e[0])&&s.push(new oe(r.getProperties().get(e[0]),e[1]))}}}}else if(r.getType()==as.EXPRESSION)if(se.isNullOrBlank(r.getExpression()))E(ge.getDefaultValue(t.getSchema(),n))&&e.addMessage(ls.ERROR,Z.format(ms.PARAMETER_NEEDS_A_VALUE,t.getParameterName()));else try{this.addDependencies(e,r.getExpression())}catch(t){e.addMessage(ls.ERROR,Z.format("Error evaluating $ : $",r.getExpression(),t))}}else E(ge.getDefaultValue(t.getSchema(),n))&&e.addMessage(ls.ERROR,Z.format(ms.PARAMETER_NEEDS_A_VALUE,t.getParameterName()))}addDependencies(e,t){t&&Array.from(t.match(ms.STEP_REGEX_PATTERN)??[]).forEach((t=>e.addDependency(t)))}makeEdges(e){let t=e.getNodeMap().values(),r=[],n=new Map;for(let s of Array.from(t))for(let t of s.getData().getDependencies()){let a=t.indexOf(".",6),i=t.substring(6,a),o=t.indexOf(".",a+1),E=-1==o?t.substring(a+1):t.substring(a+1,o);e.getNodeMap().has(i)?s.addInEdgeTo(e.getNodeMap().get(i),E):(r.push(new oe(i,E)),n.set(s.getData().getStatement().getStatementName(),Z.format("Unable to find the step with name $",i)))}return new oe(r,n)}}var Rs={};t(Rs,"KIRunConstants",(()=>cs));class cs{static NAMESPACE="namespace";static NAME="name";static ID="id";constructor(){}}var ps={};t(ps,"Position",(()=>Ts));class Ts{static SCHEMA_NAME="Position";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(Ts.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["left",S.ofFloat("left")],["top",S.ofFloat("top")]]));constructor(e,t){this.left=e,this.top=t}getLeft(){return this.left}setLeft(e){return this.left=e,this}getTop(){return this.top}setTop(e){return this.top=e,this}static from(e){if(e)return new Ts(e.left,e.top)}}var hs={};t(hs,"FunctionDefinition",(()=>Ps));var Ns={};t(Ns,"Statement",(()=>Os));var fs={};t(fs,"AbstractStatement",(()=>_s));class _s{override=!1;constructor(e){e&&(this.comment=e.comment,this.description=e.description,this.position=e.position?new Ts(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",(()=>Ms));class Ms{static SCHEMA_NAME="ParameterReference";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(Ms.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["key",S.ofString("key")],["value",S.ofAny("value")],["expression",S.ofString("expression")],["type",S.ofString("type").setEnums(["EXPRESSION","VALUE"])],["order",S.ofInteger("order")]]));constructor(e){if(e instanceof Ms){let t=e;this.key=t.key,this.type=t.type,this.value=E(t.value)?void 0:JSON.parse(JSON.stringify(t.value)),this.expression=t.expression,this.order=t.order}else this.type=e,this.key=Es()}getType(){return this.type}setType(e){return this.type=e,this}getKey(){return this.key}setKey(e){return this.key=e,this}getValue(){return this.value}setValue(e){return this.value=e,this}getExpression(){return this.expression}setExpression(e){return this.expression=e,this}setOrder(e){return this.order=e,this}getOrder(){return this.order}static ofExpression(e){const t=new Ms(as.EXPRESSION).setExpression(e);return[t.getKey(),t]}static ofValue(e){const t=new Ms(as.VALUE).setValue(e);return[t.getKey(),t]}static from(e){return new Ms(e.type).setValue(e.value).setExpression(e.expression).setKey(e.key).setOrder(e.order)}}class Os extends _s{static SCHEMA_NAME="Statement";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(Os.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["statementName",S.ofString("statementName")],["comment",S.ofString("comment")],["description",S.ofString("description")],["namespace",S.ofString("namespace")],["name",S.ofString("name")],["dependentStatements",S.ofObject("dependentstatement").setAdditionalProperties((new _).setSchemaValue(S.ofBoolean("exists")))],["parameterMap",(new S).setName("parameterMap").setAdditionalProperties((new _).setSchemaValue(S.ofObject("parameterReference").setAdditionalProperties((new _).setSchemaValue(Ms.SCHEMA))))],["position",Ts.SCHEMA]]));constructor(e,t,r){if(super(e instanceof Os?e:void 0),e instanceof Os){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 Ms(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 Os))return!1;return e.statementName==this.statementName}static ofEntry(e){return[e.statementName,e]}static from(e){return new Os(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])=>Ms.from(t))).map((e=>[e.getKey(),e])))])))).setDependentStatements(new Map(Object.entries(e.dependentStatements??{}))).setPosition(Ts.from(e.position)).setComment(e.comment).setDescription(e.description)}}var ws={};t(ws,"StatementGroup",(()=>ds));class ds extends _s{static SCHEMA_NAME="StatementGroup";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(ds.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["statementGroupName",S.ofString("statementGroupName")],["comment",S.ofString("comment")],["description",S.ofString("description")],["position",Ts.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 ds(e.statementGroupName,new Map(Object.entries(e.statements||{}).map((([e,t])=>[e,"true"==(""+t)?.toLowerCase()])))).setPosition(Ts.from(e.position)).setComment(e.comment).setDescription(e.description)}}const Is=(new S).setNamespace(a.SYSTEM).setName("FunctionDefinition").setProperties(new Map([["name",S.ofString("name")],["namespace",S.ofString("namespace")],["parameters",S.ofArray("parameters",y.SCHEMA)],["events",S.ofObject("events").setAdditionalProperties((new _).setSchemaValue(Y.SCHEMA))],["steps",S.ofObject("steps").setAdditionalProperties((new _).setSchemaValue(Os.SCHEMA))]]));Is.getProperties()?.set("parts",S.ofArray("parts",Is));class Ps extends W{static SCHEMA=Is;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 Ps(e.name).setSteps(new Map(Object.values(e.steps??{}).filter((e=>!!e)).map((e=>[e.statementName,Os.from(e)])))).setStepGroups(new Map(Object.values(e.stepGroups??{}).filter((e=>!!e)).map((e=>[e.statementGroupName,ds.from(e)])))).setParts(Array.from(e.parts??[]).filter((e=>!!e)).map((e=>Ps.from(e)))).setVersion(e.version??1).setEvents(new Map(Object.values(e.events??{}).filter((e=>!!e)).map((e=>[e.name,Y.from(e)])))).setParameters(new Map(Object.values(e.parameters??{}).filter((e=>!!e)).map((e=>[e.parameterName,y.from(e)])))):new Ps("unknown")}}var ys={};t(ys,"Argument",(()=>xs));class xs{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 xs(0,e,t)}}var vs={};e(vs,Cr),e(vs,Fr),e(vs,Br),e(vs,kr),e(vs,Gr);var Ls={};e(Ls,jt),e(Ls,Wt),e(Ls,Jt),e(Ls,Kt),e(Ls,Zt),e(Ls,tr),e(Ls,nr),e(Ls,Ht),e(Ls,ar),e(Ls,or),e(Ls,ur),e(Ls,lr),e(Ls,mr),e(Ls,cr),e(Ls,Tr),e(Ls,Nr),e(Ls,_r),e(Ls,Mr),e(Ls,wr),e(Ls,yr),e(Ls,Ir),e(Ls,vr),e(Ls,Ur),e(Ls,Bt),e(module.exports,r),e(module.exports,U),e(module.exports,{}),e(module.exports,De),e(module.exports,C),e(module.exports,o),e(module.exports,K),e(module.exports,ft),e(module.exports,Q),e(module.exports,ne),e(module.exports,ie),e(module.exports,ke),e(module.exports,z),e(module.exports,Xe),e(module.exports,Bn),e(module.exports,Hn),e(module.exports,Gt),e(module.exports,jn),e(module.exports,Wn),e(module.exports,Jn),e(module.exports,Kn),e(module.exports,{}),e(module.exports,Qn),e(module.exports,ts),e(module.exports,As),e(module.exports,os),e(module.exports,Nt),e(module.exports,vt),e(module.exports,jr),e(module.exports,ht),e(module.exports,Yt),e(module.exports,Pt),e(module.exports,Ot),e(module.exports,St),e(module.exports,dt),e(module.exports,{}),e(module.exports,q),e(module.exports,s),e(module.exports,rs),e(module.exports,n),e(module.exports,Se),e(module.exports,he),e(module.exports,fe),e(module.exports,pe),e(module.exports,me),e(module.exports,de),e(module.exports,Oe),e(module.exports,J),e(module.exports,Ae),e(module.exports,O),e(module.exports,ce),e(module.exports,i),e(module.exports,h),e(module.exports,m),e(module.exports,R),e(module.exports,c),e(module.exports,A),e(module.exports,ae),e(module.exports,Ie),e(module.exports,Gn),e(module.exports,Rs),e(module.exports,M),e(module.exports,H),e(module.exports,ps),e(module.exports,hs),e(module.exports,ss),e(module.exports,D),e(module.exports,fs),e(module.exports,Ns),e(module.exports,{}),e(module.exports,ws),e(module.exports,X),e(module.exports,F),e(module.exports,d),e(module.exports,ys),e(module.exports,Ss),e(module.exports,Fe),e(module.exports,k),e(module.exports,vs),e(module.exports,Ls),e(module.exports,qr);
|
|
2
2
|
//# sourceMappingURL=index.js.map
|