@fincity/kirun-js 2.4.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/module.js CHANGED
@@ -1,2 +1,2 @@
1
- function e(e,t,r,n){Object.defineProperty(e,t,{get:r,set:n,enumerable:!0,configurable:!0})}function t(e,t){return Object.keys(t).forEach(function(r){"default"===r||"__esModule"===r||Object.prototype.hasOwnProperty.call(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[r]}})}),e}e({},"KIRunSchemaRepository",()=>V);var r,n,a,s,i,o,E,u,A,l,c={};e(c,"AdditionalType",()=>P),e(c,"Schema",()=>y),e({},"Namespaces",()=>g);class g{static{this.SYSTEM="System"}static{this.SYSTEM_CTX="System.Context"}static{this.SYSTEM_LOOP="System.Loop"}static{this.SYSTEM_ARRAY="System.Array"}static{this.SYSTEM_OBJECT="System.Object"}static{this.MATH="System.Math"}static{this.STRING="System.String"}static{this.DATE="System.Date"}constructor(){}}function h(e){return null==e}e({},"ArraySchemaType",()=>p),e({},"isNullValue",()=>h);class p{constructor(e){if(!e)return;this.singleSchema=e.singleSchema?new y(e.singleSchema):void 0,this.tupleSchema=e.tupleSchema?e.tupleSchema.map(e=>new y(e)):void 0}setSingleSchema(e){return this.singleSchema=e,this}setTupleSchema(e){return this.tupleSchema=e,this}getSingleSchema(){return this.singleSchema}getTupleSchema(){return this.tupleSchema}isSingleType(){return!h(this.singleSchema)}static of(...e){return 1==e.length?new p().setSingleSchema(e[0]):new p().setTupleSchema(e)}static from(e){if(!e)return;if(Array.isArray(e))return new p().setTupleSchema(y.fromListOfSchemas(e));let t=Object.keys(e);if(-1!=t.indexOf("singleSchema"))return new p().setSingleSchema(y.from(e.singleSchema));if(-1!=t.indexOf("tupleSchema"))return new p().setTupleSchema(y.fromListOfSchemas(e.tupleSchema));let r=y.from(e);if(r)return new p().setSingleSchema(r)}}e({},"SchemaType",()=>r),(o=r||(r={})).INTEGER="Integer",o.LONG="Long",o.FLOAT="Float",o.DOUBLE="Double",o.STRING="String",o.OBJECT="Object",o.ARRAY="Array",o.BOOLEAN="Boolean",o.NULL="Null",e({},"TypeUtil",()=>f),e({},"MultipleType",()=>m),e({},"Type",()=>T);class T{}class m extends T{constructor(e){super(),e instanceof m?this.type=new Set(Array.from(e.type)):this.type=new Set(Array.from(e))}getType(){return this.type}setType(e){return this.type=e,this}getAllowedSchemaTypes(){return this.type}contains(e){return this.type?.has(e)}}e({},"SingleType",()=>R);class R extends T{constructor(e){super(),e instanceof R?this.type=e.type:this.type=e}getType(){return this.type}getAllowedSchemaTypes(){return new Set([this.type])}contains(e){return this.type==e}}class f{static of(...e){return 1==e.length?new R(e[0]):new m(new Set(e))}static from(e){return"string"==typeof e?new R(r[f.fromJSONType(e)]):Array.isArray(e)?new m(new Set(e.map(f.fromJSONType).map(e=>e).map(e=>r[e]))):void 0}static fromJSONType(e){let t=e.toUpperCase();return"NUMBER"===t?"DOUBLE":t}}let N="additionalProperty",_="additionalItems",S="enums",M="items",d="System.Schema",w="required",O="version",I="namespace";class P{constructor(e){if(!e||(this.booleanValue=e.booleanValue,!e.schemaValue))return;this.schemaValue=new y(e.schemaValue)}getBooleanValue(){return this.booleanValue}getSchemaValue(){return this.schemaValue}setBooleanValue(e){return this.booleanValue=e,this}setSchemaValue(e){return this.schemaValue=e,this}static from(e){if(h(e))return;let t=new P;if("boolean"==typeof e)t.booleanValue=e;else{let r=Object.keys(e);-1!=r.indexOf("booleanValue")?t.booleanValue=e.booleanValue:-1!=r.indexOf("schemaValue")?t.schemaValue=y.from(e.schemaValue):t.schemaValue=y.from(e)}return t}}class y{static{this.NULL=new y().setNamespace(g.SYSTEM).setName("Null").setType(f.of(r.NULL)).setConstant(void 0)}static{this.TYPE_SCHEMA=new y().setType(f.of(r.STRING)).setEnums(["INTEGER","LONG","FLOAT","DOUBLE","STRING","OBJECT","ARRAY","BOOLEAN","NULL"])}static{this.SCHEMA=new y().setNamespace(g.SYSTEM).setName("Schema").setType(f.of(r.OBJECT)).setProperties(new Map([[I,y.of(I,r.STRING).setDefaultValue("_")],["name",y.ofString("name")],[O,y.of(O,r.INTEGER).setDefaultValue(1)],["ref",y.ofString("ref")],["type",new y().setAnyOf([y.TYPE_SCHEMA,y.ofArray("type",y.TYPE_SCHEMA)])],["anyOf",y.ofArray("anyOf",y.ofRef(d))],["allOf",y.ofArray("allOf",y.ofRef(d))],["oneOf",y.ofArray("oneOf",y.ofRef(d))],["not",y.ofRef(d)],["title",y.ofString("title")],["description",y.ofString("description")],["id",y.ofString("id")],["examples",y.ofAny("examples")],["defaultValue",y.ofAny("defaultValue")],["comment",y.ofString("comment")],[S,y.ofArray(S,y.ofString(S))],["constant",y.ofAny("constant")],["pattern",y.ofString("pattern")],["format",y.of("format",r.STRING).setEnums(["DATETIME","TIME","DATE","EMAIL","REGEX"])],["minLength",y.ofInteger("minLength")],["maxLength",y.ofInteger("maxLength")],["multipleOf",y.ofLong("multipleOf")],["minimum",y.ofNumber("minimum")],["maximum",y.ofNumber("maximum")],["exclusiveMinimum",y.ofNumber("exclusiveMinimum")],["exclusiveMaximum",y.ofNumber("exclusiveMaximum")],["properties",y.of("properties",r.OBJECT).setAdditionalProperties(new P().setSchemaValue(y.ofRef(d)))],["additionalProperties",new y().setName(N).setNamespace(g.SYSTEM).setAnyOf([y.ofBoolean(N),y.ofObject(N).setRef(d)]).setDefaultValue(!0)],[w,y.ofArray(w,y.ofString(w)).setDefaultValue([])],["propertyNames",y.ofRef(d)],["minProperties",y.ofInteger("minProperties")],["maxProperties",y.ofInteger("maxProperties")],["patternProperties",y.of("patternProperties",r.OBJECT).setAdditionalProperties(new P().setSchemaValue(y.ofRef(d)))],[M,new y().setName(M).setAnyOf([y.ofRef(d).setName("item"),y.ofArray("tuple",y.ofRef(d))])],["contains",y.ofRef(d)],["minContains",y.ofInteger("minContains")],["maxContains",y.ofInteger("maxContains")],["minItems",y.ofInteger("minItems")],["maxItems",y.ofInteger("maxItems")],["uniqueItems",y.ofBoolean("uniqueItems")],["additionalItems",new y().setName(_).setNamespace(g.SYSTEM).setAnyOf([y.ofBoolean(_),y.ofObject(_).setRef(d)])],["$defs",y.of("$defs",r.OBJECT).setAdditionalProperties(new P().setSchemaValue(y.ofRef(d)))],["permission",y.ofString("permission")]])).setRequired([])}static ofString(e){return new y().setType(f.of(r.STRING)).setName(e)}static ofInteger(e){return new y().setType(f.of(r.INTEGER)).setName(e)}static ofFloat(e){return new y().setType(f.of(r.FLOAT)).setName(e)}static ofLong(e){return new y().setType(f.of(r.LONG)).setName(e)}static ofDouble(e){return new y().setType(f.of(r.DOUBLE)).setName(e)}static ofAny(e){return new y().setType(f.of(r.INTEGER,r.LONG,r.FLOAT,r.DOUBLE,r.STRING,r.BOOLEAN,r.ARRAY,r.NULL,r.OBJECT)).setName(e)}static ofAnyNotNull(e){return new y().setType(f.of(r.INTEGER,r.LONG,r.FLOAT,r.DOUBLE,r.STRING,r.BOOLEAN,r.ARRAY,r.OBJECT)).setName(e)}static ofNumber(e){return new y().setType(f.of(r.INTEGER,r.LONG,r.FLOAT,r.DOUBLE)).setName(e)}static ofBoolean(e){return new y().setType(f.of(r.BOOLEAN)).setName(e)}static of(e,...t){return new y().setType(f.of(...t)).setName(e)}static ofObject(e){return new y().setType(f.of(r.OBJECT)).setName(e)}static ofRef(e){return new y().setRef(e)}static ofArray(e,...t){return new y().setType(f.of(r.ARRAY)).setName(e).setItems(p.of(...t))}static fromListOfSchemas(e){if(h(e)&&!Array.isArray(e))return;let t=[];for(let r of Array.from(e)){let e=y.from(r);e&&t.push(e)}return t}static fromMapOfSchemas(e){if(h(e))return;let t=new Map;return Object.entries(e).forEach(([e,r])=>{let n=y.from(r);n&&t.set(e,n)}),t}static from(e,t=!1){if(h(e))return;let n=new y;return n.namespace=e.namespace??"_",n.name=e.name,n.version=e.version??1,n.ref=e.ref,t?n.type=new R(r.STRING):n.type=f.from(e.type),n.anyOf=y.fromListOfSchemas(e.anyOf),n.allOf=y.fromListOfSchemas(e.allOf),n.oneOf=y.fromListOfSchemas(e.oneOf),n.not=y.from(e.not),n.description=e.description,n.examples=e.examples?[...e.examples]:void 0,n.defaultValue=e.defaultValue,n.comment=e.comment,n.enums=e.enums?[...e.enums]:void 0,n.constant=e.constant,n.pattern=e.pattern,n.format=e.format,n.minLength=e.minLength,n.maxLength=e.maxLength,n.multipleOf=e.multipleOf,n.minimum=e.minimum,n.maximum=e.maximum,n.exclusiveMinimum=e.exclusiveMinimum,n.exclusiveMaximum=e.exclusiveMaximum,n.properties=y.fromMapOfSchemas(e.properties),n.additionalProperties=P.from(e.additionalProperties),n.required=e.required,n.propertyNames=y.from(e.propertyNames,!0),n.minProperties=e.minProperties,n.maxProperties=e.maxProperties,n.patternProperties=y.fromMapOfSchemas(e.patternProperties),n.items=p.from(e.items),n.additionalItems=P.from(e.additionalItems),n.contains=y.from(e.contains),n.minContains=e.minContains,n.maxContains=e.maxContains,n.minItems=e.minItems,n.maxItems=e.maxItems,n.uniqueItems=e.uniqueItems,n.$defs=y.fromMapOfSchemas(e.$defs),n.permission=e.permission,n}constructor(e){if(this.namespace="_",this.version=1,!e)return;this.namespace=e.namespace,this.name=e.name,this.version=e.version,this.ref=e.ref,h(e.type)||(this.type=e.type instanceof R?new R(e.type):new m(e.type)),this.anyOf=e.anyOf?.map(e=>new y(e)),this.allOf=e.allOf?.map(e=>new y(e)),this.oneOf=e.oneOf?.map(e=>new y(e)),this.not=this.not?new y(this.not):void 0,this.description=e.description,this.examples=e.examples?JSON.parse(JSON.stringify(e.examples)):void 0,this.defaultValue=e.defaultValue?JSON.parse(JSON.stringify(e.defaultValue)):void 0,this.comment=e.comment,this.enums=e.enums?[...e.enums]:void 0,this.constant=e.constant?JSON.parse(JSON.stringify(e.constant)):void 0,this.pattern=e.pattern,this.format=e.format,this.minLength=e.minLength,this.maxLength=e.maxLength,this.multipleOf=e.multipleOf,this.minimum=e.minimum,this.maximum=e.maximum,this.exclusiveMinimum=e.exclusiveMinimum,this.exclusiveMaximum=e.exclusiveMaximum,this.properties=e.properties?new Map(Array.from(e.properties.entries()).map(e=>[e[0],new y(e[1])])):void 0,this.additionalProperties=e.additionalProperties?new P(e.additionalProperties):void 0,this.required=e.required?[...e.required]:void 0,this.propertyNames=e.propertyNames?new y(e.propertyNames):void 0,this.minProperties=e.minProperties,this.maxProperties=e.maxProperties,this.patternProperties=e.patternProperties?new Map(Array.from(e.patternProperties.entries()).map(e=>[e[0],new y(e[1])])):void 0,this.items=e.items?new p(e.items):void 0,this.contains=e.contains?new y(this.contains):void 0,this.minContains=e.minContains,this.maxContains=e.maxContains,this.minItems=e.minItems,this.maxItems=e.maxItems,this.uniqueItems=e.uniqueItems,this.additionalItems=e.additionalItems?new P(e.additionalItems):void 0,this.$defs=e.$defs?new Map(Array.from(e.$defs.entries()).map(e=>[e[0],new y(e[1])])):void 0,this.permission=e.permission}getTitle(){return this.namespace&&"_"!=this.namespace?this.namespace+"."+this.name:this.name}getFullName(){return this.namespace+"."+this.name}get$defs(){return this.$defs}set$defs(e){return this.$defs=e,this}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getVersion(){return this.version}setVersion(e){return this.version=e,this}getRef(){return this.ref}setRef(e){return this.ref=e,this}getType(){return this.type}setType(e){return this.type=e,this}getAnyOf(){return this.anyOf}setAnyOf(e){return this.anyOf=e,this}getAllOf(){return this.allOf}setAllOf(e){return this.allOf=e,this}getOneOf(){return this.oneOf}setOneOf(e){return this.oneOf=e,this}getNot(){return this.not}setNot(e){return this.not=e,this}getDescription(){return this.description}setDescription(e){return this.description=e,this}getExamples(){return this.examples}setExamples(e){return this.examples=e,this}getDefaultValue(){return this.defaultValue}setDefaultValue(e){return this.defaultValue=e,this}getComment(){return this.comment}setComment(e){return this.comment=e,this}getEnums(){return this.enums}setEnums(e){return this.enums=e,this}getConstant(){return this.constant}setConstant(e){return this.constant=e,this}getPattern(){return this.pattern}setPattern(e){return this.pattern=e,this}getFormat(){return this.format}setFormat(e){return this.format=e,this}getMinLength(){return this.minLength}setMinLength(e){return this.minLength=e,this}getMaxLength(){return this.maxLength}setMaxLength(e){return this.maxLength=e,this}getMultipleOf(){return this.multipleOf}setMultipleOf(e){return this.multipleOf=e,this}getMinimum(){return this.minimum}setMinimum(e){return this.minimum=e,this}getMaximum(){return this.maximum}setMaximum(e){return this.maximum=e,this}getExclusiveMinimum(){return this.exclusiveMinimum}setExclusiveMinimum(e){return this.exclusiveMinimum=e,this}getExclusiveMaximum(){return this.exclusiveMaximum}setExclusiveMaximum(e){return this.exclusiveMaximum=e,this}getProperties(){return this.properties}setProperties(e){return this.properties=e,this}getAdditionalProperties(){return this.additionalProperties}setAdditionalProperties(e){return this.additionalProperties=e,this}getAdditionalItems(){return this.additionalItems}setAdditionalItems(e){return this.additionalItems=e,this}getRequired(){return this.required}setRequired(e){return this.required=e,this}getPropertyNames(){return this.propertyNames}setPropertyNames(e){return this.propertyNames=e,this.propertyNames.type=new R(r.STRING),this}getMinProperties(){return this.minProperties}setMinProperties(e){return this.minProperties=e,this}getMaxProperties(){return this.maxProperties}setMaxProperties(e){return this.maxProperties=e,this}getPatternProperties(){return this.patternProperties}setPatternProperties(e){return this.patternProperties=e,this}getItems(){return this.items}setItems(e){return this.items=e,this}getContains(){return this.contains}setContains(e){return this.contains=e,this}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}}e({},"Parameter",()=>v),e({},"SchemaReferenceException",()=>x);class x extends Error{constructor(e,t,r){super(e.trim()?e+"-"+t:t),this.schemaPath=e,this.cause=r}getSchemaPath(){return this.schemaPath}getCause(){return this.cause}}e({},"ParameterType",()=>n),(E=n||(n={})).CONSTANT="CONSTANT",E.EXPRESSION="EXPRESSION";let L="value";class v{static{this.SCHEMA_NAME="Parameter"}static{this.SCHEMA=new y().setNamespace(g.SYSTEM).setName(v.SCHEMA_NAME).setProperties(new Map([["schema",y.SCHEMA],["parameterName",y.ofString("parameterName")],["variableArgument",y.of("variableArgument",r.BOOLEAN).setDefaultValue(!1)],["type",y.ofString("type").setEnums(["EXPRESSION","CONSTANT"])]]))}static{this.EXPRESSION=new y().setNamespace(g.SYSTEM).setName("ParameterExpression").setType(f.of(r.OBJECT)).setProperties(new Map([["isExpression",y.ofBoolean("isExpression").setDefaultValue(!0)],[L,y.ofAny(L)]]))}constructor(e,t){if(this.variableArgument=!1,this.type=n.EXPRESSION,e instanceof v)this.schema=new y(e.schema),this.parameterName=e.parameterName,this.variableArgument=e.variableArgument,this.type=e.type;else{if(!t)throw Error("Unknown constructor signature");this.schema=t,this.parameterName=e}}getSchema(){return this.schema}setSchema(e){return this.schema=e,this}getParameterName(){return this.parameterName}setParameterName(e){return this.parameterName=e,this}isVariableArgument(){return this.variableArgument}setVariableArgument(e){return this.variableArgument=e,this}getType(){return this.type}setType(e){return this.type=e,this}static ofEntry(e,t,r=!1,a=n.EXPRESSION){return[e,new v(e,t).setType(a).setVariableArgument(r)]}static of(e,t,r=!1,a=n.EXPRESSION){return new v(e,t).setType(a).setVariableArgument(r)}static from(e){let t=y.from(e.schema);if(!t)throw new x("","Parameter requires Schema");return new v(e.parameterName,t).setVariableArgument(!!e.variableArgument).setType(e.type??n.EXPRESSION)}}let U=new Map([["any",y.ofAny("any").setNamespace(g.SYSTEM)],["boolean",y.ofBoolean("boolean").setNamespace(g.SYSTEM)],["double",y.ofDouble("double").setNamespace(g.SYSTEM)],["float",y.ofFloat("float").setNamespace(g.SYSTEM)],["integer",y.ofInteger("integer").setNamespace(g.SYSTEM)],["long",y.ofLong("long").setNamespace(g.SYSTEM)],["number",y.ofNumber("number").setNamespace(g.SYSTEM)],["string",y.ofString("string").setNamespace(g.SYSTEM)],["Date.timeStamp",y.ofString("timeStamp").setNamespace(g.DATE)],[v.EXPRESSION.getName(),v.EXPRESSION],[y.NULL.getName(),y.NULL],[y.SCHEMA.getName(),y.SCHEMA]]),b=Array.from(U.values()).map(e=>e.getFullName());class V{async find(e,t){return g.SYSTEM!=e?Promise.resolve(void 0):Promise.resolve(U.get(t))}async filter(e){return Promise.resolve(b.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}function C(e){return[e.getSignature().getName(),e]}e({},"KIRunFunctionRepository",()=>ae);var D={};e(D,"MapUtil",()=>G),e(D,"MapEntry",()=>$);class G{static of(e,t,r,n,a,s,i,o,E,u,A,l,c,g,p,T,m,R,f,N){let _=new Map;return h(e)||h(t)||_.set(e,t),h(r)||h(n)||_.set(r,n),h(a)||h(s)||_.set(a,s),h(i)||h(o)||_.set(i,o),h(E)||h(u)||_.set(E,u),h(A)||h(l)||_.set(A,l),h(c)||h(g)||_.set(c,g),h(p)||h(T)||_.set(p,T),h(m)||h(R)||_.set(m,R),h(f)||h(N)||_.set(f,N),_}static ofArrayEntries(...e){let t=new Map;for(let[r,n]of e)t.set(r,n);return t}static entry(e,t){return new $(e,t)}static ofEntries(...e){let t=new Map;for(let r of e)t.set(r.k,r.v);return t}static ofEntriesArray(...e){let t=new Map;for(let r=0;r<e.length;r++)t.set(e[r][0],e[r][1]);return t}constructor(){}}class ${constructor(e,t){this.k=e,this.v=t}}e({},"EventResult",()=>Y),e({},"Event",()=>F);class F{static{this.OUTPUT="output"}static{this.ERROR="error"}static{this.ITERATION="iteration"}static{this.TRUE="true"}static{this.FALSE="false"}static{this.SCHEMA_NAME="Event"}static{this.SCHEMA=new y().setNamespace(g.SYSTEM).setName(F.SCHEMA_NAME).setType(f.of(r.OBJECT)).setProperties(new Map([["name",y.ofString("name")],["parameters",y.ofObject("parameter").setAdditionalProperties(new P().setSchemaValue(y.SCHEMA))]]))}constructor(e,t){if(e instanceof F)this.name=e.name,this.parameters=new Map(Array.from(e.parameters.entries()).map(e=>[e[0],new y(e[1])]));else{if(this.name=e,!t)throw Error("Unknown constructor format");this.parameters=t}}getName(){return this.name}setName(e){return this.name=e,this}getParameters(){return this.parameters}setParameters(e){return this.parameters=e,this}static outputEventMapEntry(e){return F.eventMapEntry(F.OUTPUT,e)}static eventMapEntry(e,t){return[e,new F(e,t)]}static from(e){return new F(e.name,new Map(Object.entries(e.parameters??{}).map(e=>{let t=y.from(e[1]);if(!t)throw new x("","Event expects a schema");return[e[0],t]})))}}class Y{constructor(e,t){this.name=e,this.result=t}getName(){return this.name}setName(e){return this.name=e,this}getResult(){return this.result}setResult(e){return this.result=e,this}static outputOf(e){return Y.of(F.OUTPUT,e)}static of(e,t){return new Y(e,t)}}e({},"FunctionOutput",()=>H),e({},"KIRuntimeException",()=>B);class B extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class H{constructor(e){if(this.index=0,h(e))throw new B("Function output is generating null");Array.isArray(e)&&e.length&&e[0]instanceof Y?this.fo=e:(this.fo=[],Array.isArray(e)||(this.generator=e))}next(){if(!this.generator)return this.index<this.fo.length?this.fo[this.index++]:void 0;let e=this.generator.next();return e&&this.fo.push(e),e}allResults(){return this.fo}}e({},"FunctionSignature",()=>k);class k{static{this.SCHEMA_NAME="FunctionSignature"}static{this.SCHEMA=new y().setNamespace(g.SYSTEM).setName(k.SCHEMA_NAME).setProperties(new Map([["name",y.ofString("name")],["namespace",y.ofString("namespace")],["parameters",y.ofObject("parameters").setAdditionalProperties(new P().setSchemaValue(v.SCHEMA))],["events",y.ofObject("events").setAdditionalProperties(new P().setSchemaValue(F.SCHEMA))]]))}constructor(e){this.namespace="_",this.parameters=new Map,this.events=new Map,e instanceof k?(this.name=e.name,this.namespace=e.namespace,this.parameters=new Map(Array.from(e.parameters.entries()).map(e=>[e[0],new v(e[1])])),this.events=new Map(Array.from(e.events.entries()).map(e=>[e[0],new F(e[1])]))):this.name=e}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getParameters(){return this.parameters}setParameters(e){return this.parameters=e,this}getEvents(){return this.events}setEvents(e){return this.events=e,this}getFullName(){return this.namespace+"."+this.name}}e({},"AbstractFunction",()=>el),e({},"SchemaValidator",()=>eA),e({},"deepEqual",()=>q),e({},"LinkedList",()=>W),e({},"StringFormatter",()=>j);class j{static format(e,...t){if(!t||0==t.length)return e;let r="",n=0,a="",s=a,i=e.length;for(let o=0;o<i;o++)"$"==(a=e.charAt(o))&&"\\"==s?r=r.substring(0,o-1)+a:"$"==a&&n<t.length?r+=t[n++]:r+=a,s=a;return r.toString()}constructor(){}}class W{constructor(e){if(this.head=void 0,this.tail=void 0,this.length=0,e?.length){for(let t of e)if(this.head){let e=new X(t,this.tail);this.tail.next=e,this.tail=e}else this.tail=this.head=new X(t);this.length=e.length}}push(e){let t=new X(e,void 0,this.head);this.head?(this.head.previous=t,this.head=t):this.tail=this.head=t,this.length++}pop(){if(!this.head)throw Error("List is empty and cannot pop further.");let e=this.head.value;if(this.length--,this.head==this.tail)return this.head=this.tail=void 0,e;let t=this.head;return this.head=t.next,t.next=void 0,t.previous=void 0,this.head.previous=void 0,e}isEmpty(){return!this.length}size(){return this.length}get(e){if(e<0||e>=this.length)throw Error(`${e} is out of bounds [0,${this.length}]`);let t=this.head;for(;e>0;)t=this.head.next,--e;return t.value}set(e,t){if(e<0||e>=this.length)throw new B(j.format("Index $ out of bound to set the value in linked list.",e));let r=this.head;for(;e>0;)r=this.head.next,--e;return r.value=t,this}toString(){let e=this.head,t="";for(;e;)t+=e.value,(e=e.next)&&(t+=", ");return`[${t}]`}toArray(){let e=[],t=this.head;for(;t;)e.push(t.value),t=t.next;return e}peek(){if(!this.head)throw Error("List is empty so cannot peak");return this.head.value}peekLast(){if(!this.tail)throw Error("List is empty so cannot peak");return this.tail.value}getFirst(){if(!this.head)throw Error("List is empty so cannot get first");return this.head.value}removeFirst(){return this.pop()}removeLast(){if(!this.tail)throw Error("List is empty so cannot remove");--this.length;let e=this.tail.value;if(0==this.length)this.head=this.tail=void 0;else{let e=this.tail.previous;e.next=void 0,this.tail.previous=void 0,this.tail=e}return e}addAll(e){return e&&e.length&&e.forEach(this.add.bind(this)),this}add(e){return++this.length,this.tail||this.head?this.head===this.tail?(this.tail=new X(e,this.head),this.head.next=this.tail):(this.tail=new X(e,this.tail),this.tail.previous.next=this.tail):this.head=this.tail=new X(e),this}map(e,t){let r=new W,n=this.head,a=0;for(;n;)r.add(e(n.value,a)),n=n.next,++a;return r}indexOf(e){let t=this.head,r=0;for(;t;){if(q(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 X{constructor(e,t,r){this.value=e,this.next=r,this.previous=t}toString(){return""+this.value}}function q(e,t){let r=new W;r.push(e);let n=new W;for(n.push(t);!r.isEmpty()&&!n.isEmpty();){let e=r.pop(),t=n.pop();if(e===t)continue;let a=typeof e,s=typeof t;if("undefined"===a||"undefined"===s){if(!e&&!t)continue;return!1}if(a!==s)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!=t.length)return!1;for(let a=0;a<e.length;a++)r.push(e[a]),n.push(t[a]);continue}if("object"===a){if("object"!==s||null===e||null===t)return!1;let a=Object.entries(e),i=Object.entries(t);if(a.length!==i.length)return!1;for(let[e,s]of a)r.push(s),n.push(t[e]);continue}return!1}return!0}e({},"StringUtil",()=>J);class J{constructor(){}static nthIndex(e,t,r=0,n){if(!e)throw new B("String cannot be null");if(r<0||r>=e.length)throw new B(j.format("Cannot search from index : $",r));if(n<=0||n>e.length)throw new B(j.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()}}e({},"SchemaUtil",()=>et);var z={};e(z,"Tuple2",()=>K),e(z,"Tuple3",()=>Q),e(z,"Tuple4",()=>Z);class K{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 Q extends K{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 Z extends Q{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}}e({},"SchemaValidationException",()=>ee);class ee 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 et{static{this.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH="Unable to retrive schema from referenced path"}static{this.CYCLIC_REFERENCE_LIMIT_COUNTER=20}static async getDefaultValue(e,t){if(e)return e.getConstant()?e.getConstant():h(e.getDefaultValue())?et.getDefaultValue(await et.getSchemaFromRef(e,t,e.getRef()),t):e.getDefaultValue()}static async hasDefaultValueOrNullSchemaType(e,t){return e?e.getConstant()||!h(e.getDefaultValue())?Promise.resolve(!0):h(e.getRef())?e.getType()?.getAllowedSchemaTypes().has(r.NULL)?Promise.resolve(!0):Promise.resolve(!1):this.hasDefaultValueOrNullSchemaType(await et.getSchemaFromRef(e,t,e.getRef()),t):Promise.resolve(!1)}static async getSchemaFromRef(e,t,r,n=0){if(++n==et.CYCLIC_REFERENCE_LIMIT_COUNTER)throw new ee(r??"","Schema has a cyclic reference");if(!e||!r||J.isNullOrBlank(r))return Promise.resolve(void 0);if(!r.startsWith("#")){var a=await et.resolveExternalSchema(e,t,r);a&&(e=a.getT1(),r=a.getT2())}let s=r.split("/");return 1===s.length?Promise.resolve(e):Promise.resolve(et.resolveInternalSchema(e,t,r,n,s,1))}static async resolveInternalSchema(e,t,n,a,s,i){let o=e;if(i!==s.length){for(;i<s.length;){if("$defs"===s[i]){if(++i>=s.length||!o.get$defs())throw new x(n,et.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);o=o.get$defs()?.get(s[i])}else{if(o&&(!o.getType()?.contains(r.OBJECT)||!o.getProperties()))throw new x(n,"Cannot retrievie schema from non Object type schemas");o=o.getProperties()?.get(s[i])}if(i++,!o||!J.isNullOrBlank(o.getRef())&&!(o=await et.getSchemaFromRef(o,t,o.getRef(),a)))throw new x(n,et.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH)}return Promise.resolve(o)}}static async resolveExternalSchema(e,t,r){if(!t)return Promise.resolve(void 0);let n=J.splitAtFirstOccurance(r??"","/");if(!n[0])return Promise.resolve(void 0);let a=J.splitAtFirstOccurance(n[0],".");if(!a[0]||!a[1])return Promise.resolve(void 0);let s=await t.find(a[0],a[1]);if(!s)return Promise.resolve(void 0);if(!n[1]||""===n[1])return Promise.resolve(new K(s,r));if(r="#/"+n[1],!s)throw new x(r,et.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);return Promise.resolve(new K(s,r))}constructor(){}}e({},"AnyOfAllOfOneOfValidator",()=>er);class er{static validate(e,t,r,n){let a=[];return t.getOneOf()&&!t.getOneOf()?er.oneOf(e,t,r,n,a):t.getAllOf()&&!t.getAllOf()?er.allOf(e,t,r,n,a):t.getAnyOf()&&!t.getAnyOf()&&er.anyOf(e,t,r,n,a),n}static anyOf(e,t,r,n,a){let s=!1;for(let i of t.getAnyOf()??[])try{er.validate(e,i,r,n),s=!0;break}catch(e){s=!1,a.push(e)}if(!s)throw new ee(eA.path(e),"The value don't satisfy any of the schemas.",a)}static allOf(e,t,r,n,a){let s=0;for(let i of t.getAllOf()??[])try{er.validate(e,i,r,n),s++}catch(e){a.push(e)}if(s!==t.getAllOf()?.length)throw new ee(eA.path(e),"The value doesn't satisfy some of the schemas.",a)}static oneOf(e,t,r,n,a){let s=0;for(let i of t.getOneOf()??[])try{er.validate(e,i,r,n),s++}catch(e){a.push(e)}if(1!=s)throw new ee(eA.path(e),0==s?"The value does not satisfy any schema":"The value satisfy more than one schema",a)}constructor(){}}e({},"TypeValidator",()=>eu),e({},"ArrayValidator",()=>en);class en{static async validate(e,t,r,n){if(h(n))throw new ee(eA.path(e),"Expected an array but found null");if(!Array.isArray(n))throw new ee(eA.path(e),n.toString()+" is not an Array");return en.checkMinMaxItems(e,t,n),await en.checkItems(e,t,r,n),en.checkUniqueItems(e,t,n),await en.checkContains(t,e,r,n),n}static async checkContains(e,t,r,n){if(h(e.getContains()))return;let a=await en.countContains(t,e,r,n,h(e.getMinContains())&&h(e.getMaxContains()));if(0===a)throw new ee(eA.path(t),"None of the items are of type contains schema");if(!h(e.getMinContains())&&e.getMinContains()>a)throw new ee(eA.path(t),"The minimum number of the items of type contains schema should be "+e.getMinContains()+" but found "+a);if(!h(e.getMaxContains())&&e.getMaxContains()<a)throw new ee(eA.path(t),"The maximum number of the items of type contains schema should be "+e.getMaxContains()+" but found "+a)}static async countContains(e,t,r,n,a){let s=0;for(let i=0;i<n.length;i++){let o=e?[...e]:[];try{if(await eA.validate(o,t.getContains(),r,n[i]),s++,a)break}catch(e){}}return s}static checkUniqueItems(e,t,r){if(t.getUniqueItems()&&t.getUniqueItems()&&new Set(r).size!==r.length)throw new ee(eA.path(e),"Items on the array are not unique")}static checkMinMaxItems(e,t,r){if(t.getMinItems()&&t.getMinItems()>r.length)throw new ee(eA.path(e),"Array should have minimum of "+t.getMinItems()+" elements");if(t.getMaxItems()&&t.getMaxItems()<r.length)throw new ee(eA.path(e),"Array can have maximum of "+t.getMaxItems()+" elements")}static async checkItems(e,t,r,n){if(!t.getItems())return;let a=t.getItems();if(a.getSingleSchema())for(let t=0;t<n.length;t++){let s=e?[...e]:[],i=await eA.validate(s,a.getSingleSchema(),r,n[t]);n[t]=i}if(a.getTupleSchema()){if(a.getTupleSchema().length!==n.length&&h(t?.getAdditionalItems()))throw new ee(eA.path(e),"Expected an array with only "+a.getTupleSchema().length+" but found "+n.length);await this.checkItemsInTupleSchema(e,r,n,a),await this.checkAdditionalItems(e,t,r,n,a)}}static async checkItemsInTupleSchema(e,t,r,n){for(let a=0;a<n.getTupleSchema()?.length;a++){let s=e?[...e]:[],i=await eA.validate(s,n.getTupleSchema()[a],t,r[a]);r[a]=i}}static async checkAdditionalItems(e,t,r,n,a){if(!h(t.getAdditionalItems())){let s=t.getAdditionalItems();if(s?.getBooleanValue()){let i=y.ofAny("item");if(s?.getBooleanValue()===!1&&n.length>a.getTupleSchema()?.length)throw new ee(eA.path(e),"No Additional Items are defined");await this.checkEachItemInAdditionalItems(e,t,r,n,a,i)}else if(s?.getSchemaValue()){let i=s.getSchemaValue();await this.checkEachItemInAdditionalItems(e,t,r,n,a,i)}}}static async checkEachItemInAdditionalItems(e,t,r,n,a,s){for(let t=a.getTupleSchema()?.length;t<n.length;t++){let a=e?[...e]:[],i=await eA.validate(a,s,r,n[t]);n[t]=i}}constructor(){}}e({},"BooleanValidator",()=>ea);class ea{static validate(e,t,r){if(h(r))throw new ee(eA.path(e),"Expected a boolean but found null");if("boolean"!=typeof r)throw new ee(eA.path(e),r.toString()+" is not a boolean");return r}constructor(){}}e({},"NullValidator",()=>es);class es{static validate(e,t,r){if(h(r))return r;throw new ee(eA.path(e),"Expected a null but found "+r)}constructor(){}}e({},"NumberValidator",()=>ei);class ei{static validate(e,t,r,n){if(h(n))throw new ee(eA.path(t),"Expected a number but found null");if("number"!=typeof n)throw new ee(eA.path(t),n.toString()+" is not a "+e);let a=ei.extractNumber(e,t,r,n);return ei.checkRange(t,r,n,a),ei.checkMultipleOf(t,r,n,a),n}static extractNumber(e,t,n,a){let s=a;try{(e==r.LONG||e==r.INTEGER)&&(s=Math.round(s))}catch(r){throw new ee(eA.path(t),a+" is not a number of type "+e,r)}if(h(s)||(e==r.LONG||e==r.INTEGER)&&s!=a)throw new ee(eA.path(t),a.toString()+" is not a number of type "+e);return s}static checkMultipleOf(e,t,r,n){if(t.getMultipleOf()&&n%t.getMultipleOf()!=0)throw new ee(eA.path(e),r.toString()+" is not multiple of "+t.getMultipleOf())}static checkRange(e,t,r,n){if(!h(t.getMinimum())&&0>ei.numberCompare(n,t.getMinimum()))throw new ee(eA.path(e),r.toString()+" should be greater than or equal to "+t.getMinimum());if(!h(t.getMaximum())&&ei.numberCompare(n,t.getMaximum())>0)throw new ee(eA.path(e),r.toString()+" should be less than or equal to "+t.getMaximum());if(!h(t.getExclusiveMinimum())&&0>=ei.numberCompare(n,t.getExclusiveMinimum()))throw new ee(eA.path(e),r.toString()+" should be greater than "+t.getExclusiveMinimum());if(!h(t.getExclusiveMaximum())&&ei.numberCompare(n,t.getExclusiveMaximum())>0)throw new ee(eA.path(e),r.toString()+" should be less than "+t.getExclusiveMaximum())}static numberCompare(e,t){return e-t}constructor(){}}e({},"ObjectValidator",()=>eo);class eo{static async validate(e,t,r,n){if(h(n))throw new ee(eA.path(e),"Expected an object but found null");if("object"!=typeof n||Array.isArray(n))throw new ee(eA.path(e),n.toString()+" is not an Object");let a=new Set(Object.keys(n));eo.checkMinMaxProperties(e,t,a),t.getPropertyNames()&&await eo.checkPropertyNameSchema(e,t,r,a),t.getRequired()&&eo.checkRequired(e,t,n),t.getProperties()&&await eo.checkProperties(e,t,r,n,a),t.getPatternProperties()&&await eo.checkPatternProperties(e,t,r,n,a),t.getAdditionalProperties()&&await eo.checkAddtionalProperties(e,t,r,n,a)}static async checkPropertyNameSchema(e,t,r,n){for(let a of Array.from(n.values()))try{await eA.validate(e,t.getPropertyNames(),r,a)}catch(t){throw new ee(eA.path(e),"Property name '"+a+"' does not fit the property schema")}}static checkRequired(e,t,r){for(let n of t.getRequired()??[])if(h(r[n]))throw new ee(eA.path(e),n+" is mandatory")}static async checkAddtionalProperties(e,t,r,n,a){let s=t.getAdditionalProperties();if(s.getSchemaValue())for(let t of Array.from(a.values())){let a=e?[...e]:[],i=await eA.validate(a,s.getSchemaValue(),r,n[t]);n[t]=i}else if(!1===s.getBooleanValue()&&a.size)throw new ee(eA.path(e),Array.from(a)+" is/are additional properties which are not allowed.")}static async checkPatternProperties(e,t,r,n,a){let s=new Map;for(let e of Array.from(t.getPatternProperties().keys()))s.set(e,new RegExp(e));for(let i of Array.from(a.values())){let o=e?[...e]:[];for(let e of Array.from(s.entries()))if(e[1].test(i)){let s=await eA.validate(o,t.getPatternProperties().get(e[0]),r,n[i]);n[i]=s,a.delete(i);break}}}static async checkProperties(e,t,r,n,a){for(let s of Array.from(t.getProperties())){let t=n[s[0]];if(!n.hasOwnProperty(s[0])&&h(t)&&h(await et.getDefaultValue(s[1],r)))continue;let i=e?[...e]:[],o=await eA.validate(i,s[1],r,t);n[s[0]]=o,a.delete(s[0])}}static checkMinMaxProperties(e,t,r){if(t.getMinProperties()&&r.size<t.getMinProperties())throw new ee(eA.path(e),"Object should have minimum of "+t.getMinProperties()+" properties");if(t.getMaxProperties()&&r.size>t.getMaxProperties())throw new ee(eA.path(e),"Object can have maximum of "+t.getMaxProperties()+" properties")}constructor(){}}e({},"StringValidator",()=>eE),e({},"StringFormat",()=>a),(u=a||(a={})).DATETIME="DATETIME",u.TIME="TIME",u.DATE="DATE",u.EMAIL="EMAIL",u.REGEX="REGEX";class eE{static{this.TIME=/^([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?([+-][01][0-9]:[0-5][0-9])?$/}static{this.DATE=/^[0-9]{4,4}-([0][0-9]|[1][0-2])-(0[1-9]|[1-2][1-9]|3[01])$/}static{this.DATETIME=/^[0-9]{4,4}-([0][0-9]|[1][0-2])-(0[1-9]|[1-2][1-9]|3[01])T([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?([+-][01][0-9]:[0-5][0-9])?$/}static{this.EMAIL=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/}static validate(e,t,r){if(h(r))throw new ee(eA.path(e),"Expected a string but found "+r);if("string"!=typeof r)throw new ee(eA.path(e),r.toString()+" is not String");t.getFormat()==a.TIME?eE.patternMatcher(e,t,r,eE.TIME,"time pattern"):t.getFormat()==a.DATE?eE.patternMatcher(e,t,r,eE.DATE,"date pattern"):t.getFormat()==a.DATETIME?eE.patternMatcher(e,t,r,eE.DATETIME,"date time pattern"):t.getFormat()==a.EMAIL?eE.patternMatcher(e,t,r,eE.EMAIL,"email pattern"):t.getPattern()&&eE.patternMatcher(e,t,r,new RegExp(t.getPattern()),"pattern "+t.getPattern());let n=r.length;if(t.getMinLength()&&n<t.getMinLength())throw new ee(eA.path(e),"Expected a minimum of "+t.getMinLength()+" characters");if(t.getMaxLength()&&n>t.getMaxLength())throw new ee(eA.path(e),"Expected a maximum of "+t.getMaxLength()+" characters");return r}static patternMatcher(e,t,r,n,a){if(!n.test(r))throw new ee(eA.path(e),r.toString()+" is not matched with the "+a)}constructor(){}}class eu{static async validate(e,t,n,a,s){if(t==r.STRING)eE.validate(e,n,s);else if(t==r.LONG||t==r.INTEGER||t==r.DOUBLE||t==r.FLOAT)ei.validate(t,e,n,s);else if(t==r.BOOLEAN)ea.validate(e,n,s);else if(t==r.OBJECT)await eo.validate(e,n,a,s);else if(t==r.ARRAY)await en.validate(e,n,a,s);else if(t==r.NULL)es.validate(e,n,s);else throw new ee(eA.path(e),t+" is not a valid type.");return s}constructor(){}}class eA{static path(e){return e?e.map(e=>e.getTitle()??"").filter(e=>!!e).reduce((e,t,r)=>e+(0===r?"":".")+t,""):""}static async validate(e,t,r,n){if(!t)throw new ee(eA.path(e),"No schema found to validate");if(e||(e=[]),e.push(t),h(n)&&!h(t.getDefaultValue()))return JSON.parse(JSON.stringify(t.getDefaultValue()));if(!h(t.getConstant()))return eA.constantValidation(e,t,n);if(t.getEnums()&&!t.getEnums()?.length)return eA.enumCheck(e,t,n);if(t.getFormat()&&h(t.getType()))throw new ee(this.path(e),"Type is missing in schema for declared "+t.getFormat()?.toString()+" format.");if(t.getType()&&await eA.typeValidation(e,t,r,n),!J.isNullOrBlank(t.getRef()))return await eA.validate(e,await et.getSchemaFromRef(e[0],r,t.getRef()),r,n);if((t.getOneOf()||t.getAllOf()||t.getAnyOf())&&er.validate(e,t,r,n),t.getNot()){let a=!1;try{await eA.validate(e,t.getNot(),r,n),a=!0}catch(e){a=!1}if(a)throw new ee(eA.path(e),"Schema validated value in not condition.")}return n}static constantValidation(e,t,r){if(!q(t.getConstant(),r))throw new ee(eA.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 ee(eA.path(e),"Value is not one of "+t.getEnums())}static async typeValidation(e,t,r,n){let a,s=!1,i=[];for(a of Array.from(t.getType()?.getAllowedSchemaTypes()?.values()??[]))try{await eu.validate(e,a,t,r,n),s=!0;break}catch(e){s=!1,i.push(e)}if(!s)throw new ee(eA.path(e),"Value "+JSON.stringify(n)+" is not of valid type(s)",i)}constructor(){}}class el{async validateArguments(e,t,r){let n=new Map;for(let a of Array.from(this.getSignature().getParameters().entries())){let s=a[1];try{let r=await this.validateArgument(e,t,a,s);n.set(r.getT1(),r.getT2())}catch(t){let e=this.getSignature();throw new B(`Error while executing the function ${e.getNamespace()}.${e.getName()}'s parameter ${s.getParameterName()} with step name '${r?.getStatement().getStatementName()??"Unknown Step"}' with error : ${t?.message}`)}}return n}async validateArgument(e,t,r,n){let a,s=r[0],i=e.get(r[0]);if(h(i)&&!n.isVariableArgument())return new K(s,await eA.validate(void 0,n.getSchema(),t,void 0));if(!n?.isVariableArgument())return new K(s,await eA.validate(void 0,n.getSchema(),t,i));Array.isArray(i)?a=i:(a=[],h(i)?h(n.getSchema().getDefaultValue())||a.push(n.getSchema().getDefaultValue()):a.push(i));for(let e=0;e<a.length;e++)a[e]=await eA.validate(void 0,n.getSchema(),t,a[e]);return new K(s,a)}async execute(e){let t=await this.validateArguments(e.getArguments()??new Map,e.getSchemaRepository(),e.getStatementExecution());e.setArguments(t);try{return this.internalExecute(e)}catch(r){let t=this.getSignature();throw new B(`Error while executing the function ${t.getNamespace()}.${t.getName()} with step name '${e.getStatementExecution()?.getStatement().getStatementName()??"Unknown Step"}' with error : ${r?.message}`)}}getProbableEventSignature(e){return this.getSignature().getEvents()}}class ec extends el{static{this.EVENT_INDEX_NAME="index"}static{this.EVENT_RESULT_NAME="result"}static{this.EVENT_INDEX=new F(F.OUTPUT,G.of(ec.EVENT_INDEX_NAME,y.ofInteger(ec.EVENT_INDEX_NAME)))}static{this.EVENT_RESULT_INTEGER=new F(F.OUTPUT,G.of(ec.EVENT_RESULT_NAME,y.ofInteger(ec.EVENT_RESULT_NAME)))}static{this.EVENT_RESULT_BOOLEAN=new F(F.OUTPUT,G.of(ec.EVENT_RESULT_NAME,y.ofBoolean(ec.EVENT_RESULT_NAME)))}static{this.EVENT_RESULT_ARRAY=new F(F.OUTPUT,G.of(ec.EVENT_RESULT_NAME,y.ofArray(ec.EVENT_RESULT_NAME,y.ofAny(ec.EVENT_RESULT_NAME))))}static{this.EVENT_RESULT_EMPTY=new F(F.OUTPUT,G.of())}static{this.EVENT_RESULT_ANY=new F(F.OUTPUT,G.of(this.EVENT_RESULT_NAME,y.ofAny(this.EVENT_RESULT_NAME)))}static{this.EVENT_RESULT_OBJECT=new F(F.OUTPUT,G.of(this.EVENT_RESULT_NAME,y.ofObject(this.EVENT_RESULT_NAME)))}static{this.PARAMETER_INT_LENGTH=v.of("length",y.ofInteger("length").setDefaultValue(-1))}static{this.PARAMETER_ARRAY_FIND=v.of("find",y.ofArray("eachFind",y.ofAny("eachFind")))}static{this.PARAMETER_INT_SOURCE_FROM=v.of("srcFrom",y.ofInteger("srcFrom").setDefaultValue(0).setMinimum(0))}static{this.PARAMETER_INT_SECOND_SOURCE_FROM=v.of("secondSrcFrom",y.ofInteger("secondSrcFrom").setDefaultValue(0))}static{this.PARAMETER_INT_FIND_FROM=v.of("findFrom",y.ofInteger("findFrom").setDefaultValue(0))}static{this.PARAMETER_INT_OFFSET=v.of("offset",y.ofInteger("offset").setDefaultValue(0))}static{this.PARAMETER_ROTATE_LENGTH=v.of("rotateLength",y.ofInteger("rotateLength").setDefaultValue(1).setMinimum(1))}static{this.PARAMETER_BOOLEAN_ASCENDING=v.of("ascending",y.ofBoolean("ascending").setDefaultValue(!0))}static{this.PARAMETER_KEY_PATH=v.of("keyPath",y.ofString("keyPath").setDefaultValue(""))}static{this.PARAMETER_FIND_PRIMITIVE=v.of("findPrimitive",y.of("findPrimitive",r.STRING,r.DOUBLE,r.FLOAT,r.INTEGER,r.LONG))}static{this.PARAMETER_ARRAY_SOURCE=v.of("source",y.ofArray("eachSource",y.ofAny("eachSource")))}static{this.PARAMETER_ARRAY_SECOND_SOURCE=v.of("secondSource",y.ofArray("eachSecondSource",y.ofAny("eachSecondSource")))}static{this.PARAMETER_ARRAY_SOURCE_PRIMITIVE=v.of("source",y.ofArray("eachSource",new y().setName("eachSource").setType(f.of(r.STRING,r.NULL,r.INTEGER,r.FLOAT,r.DOUBLE,r.LONG))))}static{this.PARAMETER_BOOLEAN_DEEP_COPY=v.of("deepCopy",y.ofBoolean("deepCopy").setDefaultValue(!0))}static{this.PARAMETER_ANY=v.of("element",y.ofAny("element"))}static{this.PARAMETER_ANY_NOT_NULL=v.of("elementObject",y.ofAnyNotNull("elementObject"))}static{this.PARAMETER_ANY_VAR_ARGS=v.of("element",y.ofAny("element")).setVariableArgument(!0)}static{this.PARAMETER_ARRAY_RESULT=v.of(ec.EVENT_RESULT_NAME,y.ofArray("eachResult",y.ofAny("eachResult")))}constructor(e,t,r){super();let n=new Map;for(let e of t)n.set(e.getParameterName(),e);this.signature=new k(e).setNamespace(g.SYSTEM_ARRAY).setParameters(n).setEvents(G.of(r.getName(),r))}getSignature(){return this.signature}}class eg extends ec{constructor(){super("Concatenate",[ec.PARAMETER_ARRAY_SOURCE,ec.PARAMETER_ARRAY_SECOND_SOURCE],ec.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(ec.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ec.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName());return new H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,[...t,...r]]]))])}}class eh extends ec{constructor(){super("AddFirst",[ec.PARAMETER_ARRAY_SOURCE,ec.PARAMETER_ANY],ec.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(ec.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ec.PARAMETER_ANY.getParameterName());if(0==(t=[...t]).length)return t.push(r),new H([Y.outputOf(new Map([]))]);t.push(r);let n=t.length-1;for(;n>0;){let e=t[n-1];t[n-1]=t[n],t[n--]=e}return new H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,t]]))])}}let ep="keyName";class eT extends ec{constructor(){super("ArrayToArrayOfObjects",[ec.PARAMETER_ARRAY_SOURCE,v.of(ep,y.ofString(ep),!0)],ec.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eT.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ep);if(!t?.length)return new H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,[]]]))]);let n=t.map(e=>{let 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 H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,n]]))])}}e({},"PrimitiveUtil",()=>eR),e({},"ExecutionException",()=>em);class em extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class eR{static findPrimitiveNullAsBoolean(e){if(h(e))return new K(r.BOOLEAN,!1);let t=typeof e;if("object"===t)throw new em(j.format("$ is not a primitive type",e));return"boolean"===t?new K(r.BOOLEAN,e):"string"===t?new K(r.STRING,e):eR.findPrimitiveNumberType(e)}static findPrimitive(e){if(h(e))return new K(r.NULL,void 0);let t=typeof e;if("object"===t)throw new em(j.format("$ is not a primitive type",e));return"boolean"===t?new K(r.BOOLEAN,e):"string"===t?new K(r.STRING,e):eR.findPrimitiveNumberType(e)}static findPrimitiveNumberType(e){if(h(e)||Array.isArray(e)||"object"==typeof e)throw new em(j.format("Unable to convert $ to a number.",e));try{if(Number.isInteger(e))return new K(r.LONG,e);return new K(r.DOUBLE,e)}catch(t){throw new em(j.format("Unable to convert $ to a number.",e),t)}}static compare(e,t){if(e==t)return 0;if(h(e)||h(t))return h(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}let 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 h(e)||h(t)?h(e)&&h(t)?0:h(e)?-1:1:e==t?0:"boolean"==typeof e||"boolean"==typeof t?e?-1:1:"string"==typeof e||"string"==typeof t?e+""<t+""?-1:1:"number"==typeof e||"number"==typeof t?e-t:0}static baseNumberType(e){return Number.isInteger(e)?r.LONG:r.DOUBLE}static toPrimitiveType(e){return e}constructor(){}}class ef extends ec{constructor(){super("BinarySearch",[ef.PARAMETER_ARRAY_SOURCE_PRIMITIVE,ef.PARAMETER_INT_SOURCE_FROM,ef.PARAMETER_FIND_PRIMITIVE,ef.PARAMETER_INT_LENGTH],ef.EVENT_INDEX)}async internalExecute(e){let t=e?.getArguments()?.get(ef.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ef.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(ef.PARAMETER_FIND_PRIMITIVE.getParameterName()),a=e?.getArguments()?.get(ef.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length||r<0||r>t.length)throw new B("Search source array cannot be empty");if(-1==a&&(a=t.length-r),(a=r+a)>t.length)throw new B("End point for array cannot be more than the size of the source array");let s=-1;for(;r<=a;){let e=Math.floor((r+a)/2);if(0==eR.compare(t[e],n)){s=e;break}eR.compare(t[e],n)>0?a=e-1:r=e+1}return new H([Y.outputOf(new Map([[ef.EVENT_INDEX_NAME,s]]))])}}e({},"ArrayUtil",()=>eN);class eN{static removeAListFrom(e,t){if(!t||!e||!e.length||!t.length)return;let r=new Set(t);for(let t=0;t<e.length;t++)r.has(e[t])&&(e.splice(t,1),t--)}static of(...e){let t=Array(e.length);for(let r=0;r<e.length;r++)t[r]=e[r];return t}constructor(){}}class e_ extends ec{constructor(){super("Compare",eN.of(e_.PARAMETER_ARRAY_SOURCE,e_.PARAMETER_INT_SOURCE_FROM,e_.PARAMETER_ARRAY_FIND,e_.PARAMETER_INT_FIND_FROM,e_.PARAMETER_INT_LENGTH),e_.EVENT_RESULT_INTEGER)}async internalExecute(e){var t=e?.getArguments()?.get(e_.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e_.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(e_.PARAMETER_ARRAY_FIND.getParameterName()),a=e?.getArguments()?.get(e_.PARAMETER_INT_FIND_FROM.getParameterName()),s=e?.getArguments()?.get(e_.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new B("Compare source array cannot be empty");if(0==n.length)throw new B("Compare find array cannot be empty");if(-1==s&&(s=t.length-r),r+s>t.length)throw new B(j.format("Source array size $ is less than comparing size $",t.length,r+s));if(a+s>n.length)throw new B(j.format("Find array size $ is less than comparing size $",n.length,a+s));return new H(eN.of(Y.outputOf(G.of(e_.EVENT_RESULT_NAME,this.compare(t,r,r+s,n,a,a+s)))))}compare(e,t,r,n,a,s){if(r<t){let e=t;t=r,r=e}if(s<a){let e=a;a=s,s=e}if(r-t!=s-a)throw new B(j.format("Cannot compare uneven arrays from $ to $ in source array with $ to $ in find array",r,t,s,a));for(let s=t,i=a;s<r;s++,i++){let t=1;if(h(e[s])||h(n[i])){let r=h(e[s]);r==h(n[i])?t=0:r&&(t=-1)}else{let r=typeof e[s],a=typeof n[i];if("object"===r||"object"===a)t=1;else if("string"===r||"string"===a){let r=""+e[s],a=""+n[i];r===a?t=0:r<a&&(t=-1)}else"boolean"===r||"boolean"===a?t=r==a?0:1:"number"===r&&"number"===a&&(t=e[s]-n[i])}if(0!=t)return t}return 0}}function eS(e){return e?globalThis.structuredClone?globalThis.structuredClone(e):JSON.parse(JSON.stringify(e)):e}e({},"duplicate",()=>eS);class eM extends ec{constructor(){super("Copy",[eM.PARAMETER_ARRAY_SOURCE,eM.PARAMETER_INT_SOURCE_FROM,eM.PARAMETER_INT_LENGTH,eM.PARAMETER_BOOLEAN_DEEP_COPY],eM.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(eM.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eM.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(eM.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),r+n>t.length)throw new B(j.format("Array has no elements from $ to $ as the array size is $",r,r+n,t.length));var a=e?.getArguments()?.get(eM.PARAMETER_BOOLEAN_DEEP_COPY.getParameterName());let s=Array(n);for(let e=r;e<r+n;e++)h(t[e])||(s[e-r]=a?eS(t[e]):t[e]);return new H([Y.outputOf(G.of(eM.EVENT_RESULT_NAME,s))])}}class ed extends ec{constructor(){super("Delete",[ec.PARAMETER_ARRAY_SOURCE,ec.PARAMETER_ANY_VAR_ARGS],ec.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(ed.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ed.PARAMETER_ANY_VAR_ARGS.getParameterName());if(null==r)throw new B("The deletable var args are empty. So cannot be proceeded further.");if(0==t.length||0==r.length)throw new B("Expected a source or deletable for an array but not found any");let n=new Set;for(let e=t.length-1;e>=0;e--)for(let a=0;a<r.length;a++)n.has(e)||0!=eR.compare(t[e],r[a])||n.add(t[e]);return new H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,t.filter(e=>!n.has(e))]]))])}}class ew extends ec{constructor(){super("DeleteFirst",[ew.PARAMETER_ARRAY_SOURCE],ew.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(ew.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new B("Given source array is empty");return(t=[...t]).shift(),new H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,t]]))])}}class eO extends ec{constructor(){super("DeleteFrom",[eO.PARAMETER_ARRAY_SOURCE,eO.PARAMETER_INT_SOURCE_FROM,eO.PARAMETER_INT_LENGTH],eO.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eO.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eO.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(eO.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new B("There are no elements to be deleted");if(r>=(t=[...t]).length||r<0)throw new B("The int source for the array should be in between 0 and length of the array ");if(-1==n&&(n=t.length-r),r+n>t.length)throw new B("Requested length to be deleted is more than the size of array ");return t.splice(r,n),new H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,t]]))])}}class eI extends ec{constructor(){super("DeleteLast",[eI.PARAMETER_ARRAY_SOURCE],eI.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eI.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new B("Given source array is empty");return(t=[...t]).pop(),new H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,t]]))])}}class eP extends ec{constructor(){super("Disjoint",[eP.PARAMETER_ARRAY_SOURCE,eP.PARAMETER_INT_SOURCE_FROM,eP.PARAMETER_ARRAY_SECOND_SOURCE,eP.PARAMETER_INT_SECOND_SOURCE_FROM,eP.PARAMETER_INT_LENGTH],eP.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eP.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eP.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(eP.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),a=e?.getArguments()?.get(eP.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eP.PARAMETER_INT_LENGTH.getParameterName());if(-1==s&&(s=t.length<=n.length?t.length-r:n.length-a),s>t.length||s>n.length||r+s>t.length||a+s>n.length)throw new B("The length which was being requested is more than than the size either source array or second source array");let i=new Set,o=new Set;for(let e=0;e<s;e++)i.add(t[e+r]);for(let e=0;e<s;e++)o.add(n[e+a]);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 H([Y.outputOf(new Map([[eP.EVENT_RESULT_NAME,[...E]]]))])}}class ey extends ec{constructor(){super("Equals",[ey.PARAMETER_ARRAY_SOURCE,ey.PARAMETER_INT_SOURCE_FROM,ey.PARAMETER_ARRAY_FIND,ey.PARAMETER_INT_FIND_FROM,ey.PARAMETER_INT_LENGTH],ey.EVENT_RESULT_BOOLEAN)}async internalExecute(e){let t=new e_,r=(await t.execute(e)).allResults()[0].getResult().get(ey.EVENT_RESULT_NAME);return new H([Y.outputOf(G.of(ey.EVENT_RESULT_NAME,0==r))])}}class ex extends ec{constructor(){super("Fill",[ex.PARAMETER_ARRAY_SOURCE,ex.PARAMETER_INT_SOURCE_FROM,ex.PARAMETER_INT_LENGTH,ex.PARAMETER_ANY],ex.EVENT_RESULT_EMPTY)}async internalExecute(e){var t=e?.getArguments()?.get(ex.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ex.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(ex.PARAMETER_INT_LENGTH.getParameterName()),a=e?.getArguments()?.get(ex.PARAMETER_ANY.getParameterName());if(r<0)throw new B(j.format("Arrays out of bound trying to access $ index",r));-1==n&&(n=t.length-r);let s=r+n-t.length;if(t=[...t],s>0)for(let e=0;e<s;e++)t.push();for(let e=r;e<r+n;e++)t[e]=h(a)?a:eS(a);return new H([Y.outputOf(G.of(ec.EVENT_RESULT_NAME,t))])}}class eL extends ec{constructor(){super("Frequency",[eL.PARAMETER_ARRAY_SOURCE,eL.PARAMETER_ANY,eL.PARAMETER_INT_SOURCE_FROM,eL.PARAMETER_INT_LENGTH],eL.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eL.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eL.PARAMETER_ANY.getParameterName()),n=e?.getArguments()?.get(eL.PARAMETER_INT_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(eL.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)return new H([Y.outputOf(new Map([[eL.EVENT_RESULT_NAME,0]]))]);if(n>t.length)throw new B("Given start point is more than the size of source");let s=n+a;if(-1==a&&(s=t.length-n),s>t.length)throw new B("Given length is more than the size of source");let i=0;for(let e=n;e<s&&e<t.length;e++)0==eR.compare(t[e],r)&&i++;return new H([Y.outputOf(new Map([[eL.EVENT_RESULT_NAME,i]]))])}}class ev extends ec{constructor(){super("IndexOf",[ev.PARAMETER_ARRAY_SOURCE,ev.PARAMETER_ANY_NOT_NULL,ev.PARAMETER_INT_FIND_FROM],ev.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(ev.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(ev.PARAMETER_ANY_NOT_NULL.getParameterName());let n=e?.getArguments()?.get(ev.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new H([Y.outputOf(new Map([[ev.EVENT_RESULT_NAME,-1]]))]);if(n<0||n>t.length)throw new B("The size of the search index of the array is greater than the size of the array");let a=-1;for(let e=n;e<t.length;e++)if(0==eR.compare(t[e],r)){a=e;break}return new H([Y.outputOf(new Map([[ev.EVENT_RESULT_NAME,a]]))])}}class eU extends ec{constructor(){super("IndexOfArray",[eU.PARAMETER_ARRAY_SOURCE,eU.PARAMETER_ARRAY_SECOND_SOURCE,eU.PARAMETER_INT_FIND_FROM],eU.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eU.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eU.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(eU.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length||0==r.length)return new H([Y.outputOf(new Map([[eU.EVENT_RESULT_NAME,-1]]))]);if(n<0||n>t.length||t.length<r.length)throw new B("Given from second source is more than the size of the source array");let a=r.length,s=-1;for(let e=n;e<t.length;e++){let n=0;if(0==eR.compare(t[e],r[n])){for(;n<a&&0==eR.compare(t[e+n],r[n]);)n++;if(n==a){s=e;break}}}return new H([Y.outputOf(new Map([[eU.EVENT_RESULT_NAME,s]]))])}}class eb extends ec{constructor(){super("LastIndexOf",[eb.PARAMETER_ARRAY_SOURCE,eb.PARAMETER_ANY_NOT_NULL,eb.PARAMETER_INT_FIND_FROM],eb.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eb.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(eb.PARAMETER_ANY_NOT_NULL.getParameterName());let n=e?.getArguments()?.get(eb.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new H([Y.outputOf(new Map([[eb.EVENT_RESULT_NAME,-1]]))]);if(n<0||n>t.length)throw new B("The value of length shouldn't the exceed the size of the array or shouldn't be in terms");let a=-1;for(let e=t.length-1;e>=n;e--)if(0==eR.compare(t[e],r)){a=e;break}return new H([Y.outputOf(new Map([[eb.EVENT_RESULT_NAME,a]]))])}}class eV extends ec{constructor(){super("LastIndexOfArray",[eV.PARAMETER_ARRAY_SOURCE,eV.PARAMETER_ARRAY_SECOND_SOURCE,eV.PARAMETER_INT_FIND_FROM],eV.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eV.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eV.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(eV.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new H([Y.outputOf(new Map([[eV.EVENT_RESULT_NAME,-1]]))]);if(n<0||n>t.length||r.length>t.length)throw new B("Given from index is more than the size of the source array");let a=r.length,s=-1;for(let e=n;e<t.length;e++){let n=0;if(0==eR.compare(t[e],r[n])){for(;n<a&&0==eR.compare(t[e+n],r[n]);)n++;n==a&&(s=e)}}return new H([Y.outputOf(new Map([[eV.EVENT_RESULT_NAME,s]]))])}}class eC extends ec{constructor(){super("Max",[eC.PARAMETER_ARRAY_SOURCE_PRIMITIVE],eC.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(eC.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==t.length)throw new B("Search source array cannot be empty");let r=t[0];for(let e=1;e<t.length;e++){let n=t[e];eR.comparePrimitive(r,n)>=0||(r=n)}return new H([Y.outputOf(new Map([[eC.EVENT_RESULT_NAME,r]]))])}}class eD extends ec{constructor(){super("Min",[eD.PARAMETER_ARRAY_SOURCE_PRIMITIVE],eD.EVENT_RESULT_ANY)}async internalExecute(e){let t,r=e?.getArguments()?.get(eD.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==r.length)throw new B("Search source array cannot be empty");for(let e=0;e<r.length;e++)!h(r[e])&&(void 0===t||0>eR.comparePrimitive(r[e],t))&&(t=r[e]);return new H([Y.outputOf(new Map([[eD.EVENT_RESULT_NAME,t]]))])}}class eG extends ec{constructor(){super("MisMatch",[eG.PARAMETER_ARRAY_SOURCE,eG.PARAMETER_INT_FIND_FROM,eG.PARAMETER_ARRAY_SECOND_SOURCE,eG.PARAMETER_INT_SECOND_SOURCE_FROM,eG.PARAMETER_INT_LENGTH],eG.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eG.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eG.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(eG.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),a=e?.getArguments()?.get(eG.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eG.PARAMETER_INT_LENGTH.getParameterName()),i=r<t.length&&r>0?r:0,o=a<n.length&&a>0?a:0;if(i+s>=t.length||o+s>n.length)throw new B("The size of the array for first and second which was being requested is more than size of the given array");let E=-1;for(let e=0;e<s;e++)if(t[i+e]!=n[o+e]){E=e;break}return new H([Y.outputOf(new Map([[eG.EVENT_RESULT_NAME,E]]))])}}class e$ extends ec{constructor(){super("Reverse",[e$.PARAMETER_ARRAY_SOURCE,e$.PARAMETER_INT_SOURCE_FROM,e$.PARAMETER_INT_LENGTH],e$.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(e$.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e$.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(e$.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),n>=t.length||n<0||r<0)throw new B("Please provide start point between the start and end indexes or provide the length which was less than the source size ");t=[...t];let a=r+n-1;for(;r<=a;){let e=t[r],n=t[a];t[r++]=n,t[a--]=e}return new H([Y.outputOf(new Map([[e$.EVENT_RESULT_NAME,t]]))])}}class eF extends ec{constructor(){super("Rotate",[eF.PARAMETER_ARRAY_SOURCE,eF.PARAMETER_ROTATE_LENGTH],eF.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(eF.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eF.PARAMETER_ROTATE_LENGTH.getParameterName());if(0==t.length)return new H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,t]]))]);let n=(t=[...t]).length;return r%=n,this.rotate(t,0,r-1),this.rotate(t,r,n-1),this.rotate(t,0,n-1),new H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,t]]))])}rotate(e,t,r){for(;t<r;){let n=e[t];e[t++]=e[r],e[r--]=n}}}class eY extends ec{constructor(){super("Shuffle",[eY.PARAMETER_ARRAY_SOURCE],eY.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(eY.PARAMETER_ARRAY_SOURCE.getParameterName());if(t.length<=1)return new H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,t]]))]);let r=0,n=(t=[...t]).length;for(let e=0;e<n;e++){let e=Math.floor(Math.random()*n)%n,a=t[r];t[r]=t[e],t[e]=a,r=e}return new H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,t]]))])}}e({},"ObjectValueSetterExtractor",()=>eJ),e({},"Expression",()=>eX),e({},"StringBuilder",()=>eB);class eB{constructor(e){this.str=e??""}append(e){return this.str+=e,this}toString(){return""+this.str}trim(){return this.str=this.str.trim(),this}setLength(e){return this.str=this.str.substring(0,e),this}length(){return this.str.length}charAt(e){return this.str.charAt(e)}deleteCharAt(e){return this.checkIndex(e),this.str=this.str.substring(0,e)+this.str.substring(e+1),this}insert(e,t){return this.str=this.str.substring(0,e)+t+this.str.substring(e),this}checkIndex(e){if(e>=this.str.length)throw new B(`Index ${e} is greater than or equal to ${this.str.length}`)}substring(e,t){return this.str.substring(e,t)}}e({},"ExpressionEvaluationException",()=>eH);class eH extends Error{constructor(e,t,r){super(j.format("$ : $",e,t)),this.cause=r}getCause(){return this.cause}}e({},"ExpressionToken",()=>ek);class ek{constructor(e){this.expression=e}getExpression(){return this.expression}toString(){return this.expression}}e({},"ExpressionTokenValue",()=>ej);class ej extends ek{constructor(e,t){super(e),this.element=t}getTokenValue(){return this.element}getElement(){return this.element}toString(){return j.format("$: $",this.expression,this.element)}}e({},"Operation",()=>eW);class eW{static{this.MULTIPLICATION=new eW("*")}static{this.DIVISION=new eW("/")}static{this.INTEGER_DIVISION=new eW("//")}static{this.MOD=new eW("%")}static{this.ADDITION=new eW("+")}static{this.SUBTRACTION=new eW("-")}static{this.NOT=new eW("not",void 0,!0)}static{this.AND=new eW("and",void 0,!0)}static{this.OR=new eW("or",void 0,!0)}static{this.LESS_THAN=new eW("<")}static{this.LESS_THAN_EQUAL=new eW("<=")}static{this.GREATER_THAN=new eW(">")}static{this.GREATER_THAN_EQUAL=new eW(">=")}static{this.EQUAL=new eW("=")}static{this.NOT_EQUAL=new eW("!=")}static{this.BITWISE_AND=new eW("&")}static{this.BITWISE_OR=new eW("|")}static{this.BITWISE_XOR=new eW("^")}static{this.BITWISE_COMPLEMENT=new eW("~")}static{this.BITWISE_LEFT_SHIFT=new eW("<<")}static{this.BITWISE_RIGHT_SHIFT=new eW(">>")}static{this.BITWISE_UNSIGNED_RIGHT_SHIFT=new eW(">>>")}static{this.UNARY_PLUS=new eW("UN: +","+")}static{this.UNARY_MINUS=new eW("UN: -","-")}static{this.UNARY_LOGICAL_NOT=new eW("UN: not","not")}static{this.UNARY_BITWISE_COMPLEMENT=new eW("UN: ~","~")}static{this.ARRAY_OPERATOR=new eW("[")}static{this.OBJECT_OPERATOR=new eW(".")}static{this.NULLISH_COALESCING_OPERATOR=new eW("??")}static{this.CONDITIONAL_TERNARY_OPERATOR=new eW("?")}static{this.VALUE_OF=new Map([["MULTIPLICATION",eW.MULTIPLICATION],["DIVISION",eW.DIVISION],["INTEGER_DIVISON",eW.INTEGER_DIVISION],["MOD",eW.MOD],["ADDITION",eW.ADDITION],["SUBTRACTION",eW.SUBTRACTION],["NOT",eW.NOT],["AND",eW.AND],["OR",eW.OR],["LESS_THAN",eW.LESS_THAN],["LESS_THAN_EQUAL",eW.LESS_THAN_EQUAL],["GREATER_THAN",eW.GREATER_THAN],["GREATER_THAN_EQUAL",eW.GREATER_THAN_EQUAL],["EQUAL",eW.EQUAL],["NOT_EQUAL",eW.NOT_EQUAL],["BITWISE_AND",eW.BITWISE_AND],["BITWISE_OR",eW.BITWISE_OR],["BITWISE_XOR",eW.BITWISE_XOR],["BITWISE_COMPLEMENT",eW.BITWISE_COMPLEMENT],["BITWISE_LEFT_SHIFT",eW.BITWISE_LEFT_SHIFT],["BITWISE_RIGHT_SHIFT",eW.BITWISE_RIGHT_SHIFT],["BITWISE_UNSIGNED_RIGHT_SHIFT",eW.BITWISE_UNSIGNED_RIGHT_SHIFT],["UNARY_PLUS",eW.UNARY_PLUS],["UNARY_MINUS",eW.UNARY_MINUS],["UNARY_LOGICAL_NOT",eW.UNARY_LOGICAL_NOT],["UNARY_BITWISE_COMPLEMENT",eW.UNARY_BITWISE_COMPLEMENT],["ARRAY_OPERATOR",eW.ARRAY_OPERATOR],["OBJECT_OPERATOR",eW.OBJECT_OPERATOR],["NULLISH_COALESCING_OPERATOR",eW.NULLISH_COALESCING_OPERATOR],["CONDITIONAL_TERNARY_OPERATOR",eW.CONDITIONAL_TERNARY_OPERATOR]])}static{this.UNARY_OPERATORS=new Set([eW.ADDITION,eW.SUBTRACTION,eW.NOT,eW.BITWISE_COMPLEMENT,eW.UNARY_PLUS,eW.UNARY_MINUS,eW.UNARY_LOGICAL_NOT,eW.UNARY_BITWISE_COMPLEMENT])}static{this.ARITHMETIC_OPERATORS=new Set([eW.MULTIPLICATION,eW.DIVISION,eW.INTEGER_DIVISION,eW.MOD,eW.ADDITION,eW.SUBTRACTION])}static{this.LOGICAL_OPERATORS=new Set([eW.NOT,eW.AND,eW.OR,eW.LESS_THAN,eW.LESS_THAN_EQUAL,eW.GREATER_THAN,eW.GREATER_THAN_EQUAL,eW.EQUAL,eW.NOT_EQUAL,eW.NULLISH_COALESCING_OPERATOR])}static{this.BITWISE_OPERATORS=new Set([eW.BITWISE_AND,eW.BITWISE_COMPLEMENT,eW.BITWISE_LEFT_SHIFT,eW.BITWISE_OR,eW.BITWISE_RIGHT_SHIFT,eW.BITWISE_UNSIGNED_RIGHT_SHIFT,eW.BITWISE_XOR])}static{this.CONDITIONAL_OPERATORS=new Set([eW.CONDITIONAL_TERNARY_OPERATOR])}static{this.OPERATOR_PRIORITY=new Map([[eW.UNARY_PLUS,1],[eW.UNARY_MINUS,1],[eW.UNARY_LOGICAL_NOT,1],[eW.UNARY_BITWISE_COMPLEMENT,1],[eW.ARRAY_OPERATOR,1],[eW.OBJECT_OPERATOR,1],[eW.MULTIPLICATION,2],[eW.DIVISION,2],[eW.INTEGER_DIVISION,2],[eW.MOD,2],[eW.ADDITION,3],[eW.SUBTRACTION,3],[eW.BITWISE_LEFT_SHIFT,4],[eW.BITWISE_RIGHT_SHIFT,4],[eW.BITWISE_UNSIGNED_RIGHT_SHIFT,4],[eW.LESS_THAN,5],[eW.LESS_THAN_EQUAL,5],[eW.GREATER_THAN,5],[eW.GREATER_THAN_EQUAL,5],[eW.EQUAL,6],[eW.NOT_EQUAL,6],[eW.BITWISE_AND,7],[eW.BITWISE_XOR,8],[eW.BITWISE_OR,9],[eW.AND,10],[eW.OR,11],[eW.NULLISH_COALESCING_OPERATOR,11],[eW.CONDITIONAL_TERNARY_OPERATOR,12]])}static{this.OPERATORS=new Set([...Array.from(eW.ARITHMETIC_OPERATORS),...Array.from(eW.LOGICAL_OPERATORS),...Array.from(eW.BITWISE_OPERATORS),eW.ARRAY_OPERATOR,eW.OBJECT_OPERATOR,...Array.from(eW.CONDITIONAL_OPERATORS)].map(e=>e.getOperator()))}static{this.OPERATORS_WITHOUT_SPACE_WRAP=new Set([...Array.from(eW.ARITHMETIC_OPERATORS),...Array.from(eW.LOGICAL_OPERATORS),...Array.from(eW.BITWISE_OPERATORS),eW.ARRAY_OPERATOR,eW.OBJECT_OPERATOR,...Array.from(eW.CONDITIONAL_OPERATORS)].filter(e=>!e.shouldBeWrappedInSpace()).map(e=>e.getOperator()))}static{this.OPERATION_VALUE_OF=new Map(Array.from(eW.VALUE_OF.entries()).map(([e,t])=>[t.getOperator(),t]))}static{this.UNARY_MAP=new Map([[eW.ADDITION,eW.UNARY_PLUS],[eW.SUBTRACTION,eW.UNARY_MINUS],[eW.NOT,eW.UNARY_LOGICAL_NOT],[eW.BITWISE_COMPLEMENT,eW.UNARY_BITWISE_COMPLEMENT],[eW.UNARY_PLUS,eW.UNARY_PLUS],[eW.UNARY_MINUS,eW.UNARY_MINUS],[eW.UNARY_LOGICAL_NOT,eW.UNARY_LOGICAL_NOT],[eW.UNARY_BITWISE_COMPLEMENT,eW.UNARY_BITWISE_COMPLEMENT]])}static{this.BIGGEST_OPERATOR_SIZE=Array.from(eW.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 eW.VALUE_OF.get(e)}toString(){return this.operator}}class eX extends ek{constructor(e,t,r,n){super(e||""),this.tokens=new W,this.ops=new W,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(){let e;let t=this.expression.length,r="",n=new eB(""),a=0,s=!1;for(;a<t;){switch(r=this.expression[a],e=n.toString(),r){case" ":s=this.processTokenSepearator(n,e,s);break;case"(":a=this.processSubExpression(t,n,e,a,s),s=!1;break;case")":throw new eH(this.expression,"Extra closing parenthesis found");case"]":throw new eH(this.expression,"Extra closing square bracket found");case"'":case'"':{let e=this.processStringLiteral(t,r,a);a=e.getT1(),s=e.getT2();break}case"?":if(a+1<t&&"?"!=this.expression.charAt(a+1)&&0!=a&&"?"!=this.expression.charAt(a-1))a=this.processTernaryOperator(t,n,e,a,s);else{let i=this.processOthers(r,t,n,e,a,s);a=i.getT1(),(s=i.getT2())&&this.ops.peek()==eW.ARRAY_OPERATOR&&(a=(i=this.process(t,n,a)).getT1(),s=i.getT2())}break;default:let i=this.processOthers(r,t,n,e,a,s);a=i.getT1(),(s=i.getT2())&&this.ops.peek()==eW.ARRAY_OPERATOR&&(a=(i=this.process(t,n,a)).getT1(),s=i.getT2())}++a}if(e=n.toString(),!J.isNullOrBlank(e)){if(eW.OPERATORS.has(e))throw new eH(this.expression,"Expression is ending with an operator");this.tokens.push(new ek(e))}}processStringLiteral(e,t,r){let n="",a=r+1;for(;a<e;a++){let e=this.expression.charAt(a);if(e==t&&"\\"!=this.expression.charAt(a-1))break;n+=e}if(a==e&&this.expression.charAt(a-1)!=t)throw new eH(this.expression,"Missing string ending marker "+t);let s=new K(a,!1);return this.tokens.push(new ej(n,n)),s}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 eX(t.toString())),t.setLength(0),new K(r,!1)}processOthers(e,t,r,n,a,s){let i=t-a;i=i<eW.BIGGEST_OPERATOR_SIZE?i:eW.BIGGEST_OPERATOR_SIZE;for(let e=i;e>0;e--){let t=this.expression.substring(a,a+e);if(eW.OPERATORS_WITHOUT_SPACE_WRAP.has(t))return J.isNullOrBlank(n)||(this.tokens.push(new ek(n)),s=!1),this.checkUnaryOperator(this.tokens,this.ops,eW.OPERATION_VALUE_OF.get(t),s),s=!0,r.setLength(0),new K(a+e-1,s)}return r.append(e),new K(a,!1)}processTernaryOperator(e,t,r,n,a){if(a)throw new eH(this.expression,"Ternary operator is followed by an operator");""!=r.trim()&&(this.tokens.push(new eX(r)),t.setLength(0));let s=1,i="",o=++n;for(;n<e&&s>0;)"?"==(i=this.expression.charAt(n))?++s:":"==i&&--s,++n;if(":"!=i)throw new eH(this.expression,"':' operater is missing");if(n>=e)throw new eH(this.expression,"Third part of the ternary expression is missing");for(;!this.ops.isEmpty()&&this.hasPrecedence(eW.CONDITIONAL_TERNARY_OPERATOR,this.ops.peek());){let e=this.ops.pop();if(eW.UNARY_OPERATORS.has(e)){let t=this.tokens.pop();this.tokens.push(new eX("",t,void 0,e))}else{let t=this.tokens.pop(),r=this.tokens.pop();this.tokens.push(new eX("",r,t,e))}}this.ops.push(eW.CONDITIONAL_TERNARY_OPERATOR),this.tokens.push(new eX(this.expression.substring(o,n-1)));let E=this.expression.substring(n);if(""===E.trim())throw new eH(this.expression,"Third part of the ternary expression is missing");return this.tokens.push(new eX(E)),e-1}processSubExpression(e,t,r,n,a){if(eW.OPERATORS.has(r))this.checkUnaryOperator(this.tokens,this.ops,eW.OPERATION_VALUE_OF.get(r),a),t.setLength(0);else if(!J.isNullOrBlank(r))throw new eH(this.expression,j.format("Unkown token : $ found.",r));let s=1,i=new eB,o=this.expression.charAt(n);for(n++;n<e&&s>0;)"("==(o=this.expression.charAt(n))?s++:")"==o&&s--,0!=s&&(i.append(o),n++);if(")"!=o)throw new eH(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 eX(i.toString().trim())),n}processTokenSepearator(e,t,r){return J.isNullOrBlank(t)||(eW.OPERATORS.has(t)?(this.checkUnaryOperator(this.tokens,this.ops,eW.OPERATION_VALUE_OF.get(t),r),r=!0):(this.tokens.push(new ek(t)),r=!1)),e.setLength(0),r}checkUnaryOperator(e,t,r,n){if(r){if(n||e.isEmpty()){if(eW.UNARY_OPERATORS.has(r)){let e=eW.UNARY_MAP.get(r);e&&t.push(e)}else throw new eH(this.expression,j.format("Extra operator $ found.",r))}else{for(;!t.isEmpty()&&this.hasPrecedence(r,t.peek());){let r=t.pop();if(eW.UNARY_OPERATORS.has(r)){let t=e.pop();e.push(new eX("",t,void 0,r))}else{let t=e.pop(),n=e.pop();e.push(new eX("",n,t,r))}}t.push(r)}}}hasPrecedence(e,t){let r=eW.OPERATOR_PRIORITY.get(e),n=eW.OPERATOR_PRIORITY.get(t);if(!r||!n)throw 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 eB,t=0,r=this.ops.toArray(),n=this.tokens.toArray();for(let a=0;a<r.length;a++)if(r[a].getOperator().startsWith("UN: "))e.append("(").append(r[a].getOperator().substring(4)).append(n[t]instanceof eX?n[t].toString():n[t]).append(")"),t++;else if(r[a]==eW.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){let r=n[t++];e.insert(0,r.toString())}let s=n[t++];e.insert(0,r[a].getOperator()).insert(0,s.toString()).insert(0,"(").append(")")}return e.toString()}equals(e){return this.expression==e.expression}}e({},"TokenValueExtractor",()=>eq);class eq{static{this.REGEX_SQUARE_BRACKETS=/[\[\]]/}static{this.REGEX_DOT=/\./}getValue(e){let t=this.getPrefix();if(!e.startsWith(t))throw new B(j.format("Token $ doesn't start with $",e,t));if(e.endsWith(".__index")){let t=e.substring(0,e.length-8),r=this.getValueInternal(t);if(!h(r?.__index))return r.__index;if(!t.endsWith("]"))return t.substring(t.lastIndexOf(".")+1);{let e=t.substring(t.lastIndexOf("[")+1,t.length-1),r=parseInt(e);return isNaN(r)?e:r}}return this.getValueInternal(e)}retrieveElementFrom(e,t,r,n){if(h(n))return;if(t.length==r)return n;let a=t[r].split(eq.REGEX_SQUARE_BRACKETS).map(e=>e.trim()).filter(e=>!J.isNullOrBlank(e)).reduce((n,a,s)=>this.resolveForEachPartOfTokenWithBrackets(e,t,r,a,n,s),n);return this.retrieveElementFrom(e,t,r+1,a)}resolveForEachPartOfTokenWithBrackets(e,t,r,n,a,s){if(!h(a)){if(0===s){if("length"===n){let e=typeof a;if("string"===e||Array.isArray(a))return a.length;if("object"===e)return Object.keys(a).length}if(Array.isArray(a))try{let e=parseInt(n);if(isNaN(e))throw Error(j.format("$ is not a number",e));if(e>=a.length)return;return a[e]}catch(t){throw new eH(e,j.format("$ couldn't be parsed into integer in $",n,e),t)}return this.checkIfObject(e,t,r,a),a[n]}if(n?.startsWith('"')){if(!n.endsWith('"')||1==n.length||2==n.length)throw new eH(e,j.format("$ is missing a double quote or empty key found",e));return this.checkIfObject(e,t,r,a),a[n.substring(1,n.length-1)]}try{let t=parseInt(n);if(isNaN(t))throw Error(j.format("$ is not a number",t));if(!Array.isArray(a))throw new eH(e,j.format("Expecting an array with index $ while processing the expression",t,e));if(t>=a.length)return;return a[t]}catch(t){throw new eH(e,j.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 eH(e,j.format("Unable to retrive $ from $ in the path $",t[r],n.toString(),e))}}class eJ extends eq{constructor(e,t){super(),this.store=e,this.prefix=t}getValueInternal(e){let t=e.split(eq.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=eS(this.store),this.modifyStore(e,t,r,n)}modifyStore(e,t,r,n){let a=new eX(e),s=a.getTokens();s.removeLast();let i=a.getOperations(),o=i.removeLast(),E=s.removeLast(),u=E instanceof ej?E.getElement():E.getExpression(),A=this.store;for(;!i.isEmpty();)A=o==eW.OBJECT_OPERATOR?this.getDataFromObject(A,u,i.peekLast()):this.getDataFromArray(A,u,i.peekLast()),o=i.removeLast(),u=(E=s.removeLast())instanceof ej?E.getElement():E.getExpression();o==eW.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 B(j.format("Expected an array but found $",e));let n=parseInt(t);if(isNaN(n))throw new B(j.format("Expected an array index but found $",t));if(n<0)throw new B(j.format("Array index is out of bound - $",t));let a=e[n];return h(a)&&(a=r==eW.OBJECT_OPERATOR?{}:[],e[n]=a),a}getDataFromObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new B(j.format("Expected an object but found $",e));let n=e[t];return h(n)&&(n=r==eW.OBJECT_OPERATOR?{}:[],e[t]=n),n}putDataInArray(e,t,r,n,a){if(!Array.isArray(e))throw new B(j.format("Expected an array but found $",e));let s=parseInt(t);if(isNaN(s))throw new B(j.format("Expected an array index but found $",t));if(s<0)throw new B(j.format("Array index is out of bound - $",t));(n||h(e[s]))&&(a&&h(r)?e.splice(s,1):e[s]=r)}putDataInObject(e,t,r,n,a){if(Array.isArray(e)||"object"!=typeof e)throw new B(j.format("Expected an object but found $",e));(n||h(e[t]))&&(a&&h(r)?delete e[t]:e[t]=r)}getPrefix(){return this.prefix}}class ez extends ec{constructor(){super("Sort",[ez.PARAMETER_ARRAY_SOURCE,ez.PARAMETER_INT_FIND_FROM,ez.PARAMETER_INT_LENGTH,ez.PARAMETER_BOOLEAN_ASCENDING,ez.PARAMETER_KEY_PATH],ez.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(ez.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ez.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(ez.PARAMETER_INT_LENGTH.getParameterName()),a=e?.getArguments()?.get(ez.PARAMETER_BOOLEAN_ASCENDING.getParameterName()),s=e?.getArguments()?.get(ez.PARAMETER_KEY_PATH.getParameterName());if(0==t.length)return new H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,t]]))]);if(t=[...t],-1==n&&(n=t.length-r),r<0||r>=t.length||r+n>t.length)throw new B("Given start point is more than the size of the array or not available at that point");let i=t.slice(r,r+n+1),o=new eJ({},"Data.");return i.sort((e,t)=>"object"==typeof e&&"object"==typeof t&&s.length?(o.setStore({a:e,b:t}),eK(o.getValue("Data.a."+s),o.getValue("Data.b."+s),a)):eK(e,t,a)),t.splice(r,n,...i),new H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,t]]))])}}function eK(e,t,r){return e===t?0:null===e?1:null===t?-1:r?e<t?-1:1:e<t?1:-1}class eQ extends ec{constructor(){super("SubArray",[eQ.PARAMETER_ARRAY_SOURCE,eQ.PARAMETER_INT_FIND_FROM,eQ.PARAMETER_INT_LENGTH],eQ.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eQ.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eQ.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(eQ.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),n<=0)return new H([Y.outputOf(new Map([]))]);if(!(r>=0&&r<t.length)||r+n>t.length)throw new B("Given find from point is more than the source size array or the Requested length for the subarray was more than the source size");let a=t.slice(r,r+n);return new H([Y.outputOf(new Map([[eQ.EVENT_RESULT_NAME,a]]))])}}class eZ extends ec{constructor(){super("Insert",[eZ.PARAMETER_ARRAY_SOURCE,eZ.PARAMETER_INT_OFFSET,eZ.PARAMETER_ANY],eZ.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eZ.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eZ.PARAMETER_INT_OFFSET.getParameterName());var n=e?.getArguments()?.get(eZ.PARAMETER_ANY.getParameterName());if(h(n)||h(r)||r>t.length)throw new B("Please valid resouces to insert at the correct location");if(0==(t=[...t]).length)return 0==r&&t.push(n),new H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,t]]))]);t.push(n);let a=t.length-1;for(r++;a>=r;){let e=t[a-1];t[a-1]=t[a],t[a--]=e}return new H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,t]]))])}}class e0 extends ec{constructor(){super("InsertLast",[e0.PARAMETER_ARRAY_SOURCE,e0.PARAMETER_ANY],e0.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(e0.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(e0.PARAMETER_ANY.getParameterName());return(t=[...t]).push(r),new H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,t]]))])}}class e1 extends ec{constructor(){super("RemoveDuplicates",[e1.PARAMETER_ARRAY_SOURCE,e1.PARAMETER_INT_SOURCE_FROM,e1.PARAMETER_INT_LENGTH],e1.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(e1.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e1.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(e1.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),r+n>t.length)throw new B(j.format("Array has no elements from $ to $ as the array size is $",r,r+n,t.length));let a=[...t],s=r+n;for(let e=s-1;e>=r;e--)for(let t=e-1;t>=r;t--)if(q(a[e],a[t])){a.splice(e,1);break}return new H([Y.outputOf(G.of(e1.EVENT_RESULT_NAME,a))])}}let e2="keyPath",e7="valuePath",e5="ignoreNullValues",e4="ignoreNullKeys",e6="ignoreDuplicateKeys";class e9 extends ec{constructor(){super("ArrayToObjects",[ec.PARAMETER_ARRAY_SOURCE,v.of(e2,y.ofString(e2)),v.of(e7,y.of(e7,r.STRING,r.NULL)),v.of(e5,y.ofBoolean(e5).setDefaultValue(!1)),v.of(e4,y.ofBoolean(e4).setDefaultValue(!0)),v.of(e6,y.ofBoolean(e6).setDefaultValue(!1))],ec.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(ec.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e2),n=e?.getArguments()?.get(e7)??"",a=e?.getArguments()?.get(e5),s=e?.getArguments()?.get(e4),i=e?.getArguments()?.get(e6),o=new eJ({},"Data."),E=t.filter(e=>!h(e)).reduce((e,t)=>{o.setStore(t);let E=o.getValue("Data."+r);if(s&&h(E))return e;let u=n?o.getValue("Data."+n):t;return a&&h(u)||i&&e.hasOwnProperty(E)||(e[E]=u),e},{});return new H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,E]]))])}}let e3="source",e8="delimiter",te="result",tt=new k("Join").setNamespace(g.SYSTEM_ARRAY).setParameters(new Map([[e3,new v(e3,y.ofArray(e3,y.of("each",r.STRING,r.INTEGER,r.LONG,r.DOUBLE,r.FLOAT,r.NULL)))],[e8,new v(e8,y.ofString(e8).setDefaultValue(""))]])).setEvents(new Map([F.outputEventMapEntry(new Map([[te,y.ofString(te)]]))]));class tr extends el{getSignature(){return tt}async internalExecute(e){let t=e?.getArguments()?.get(e3),r=e?.getArguments()?.get(e8);return new H([Y.outputOf(new Map([[te,t.join(r)]]))])}}class tn{static{this.repoMap=G.ofArrayEntries(C(new eg),C(new eh),C(new ef),C(new e_),C(new eM),C(new ed),C(new ew),C(new eO),C(new eI),C(new eP),C(new ey),C(new ex),C(new eL),C(new ev),C(new eU),C(new eb),C(new eV),C(new eC),C(new eD),C(new eG),C(new e$),C(new eF),C(new eY),C(new ez),C(new eQ),C(new eT),C(new eZ),C(new e0),C(new e1),C(new e9),C(new tr))}static{this.filterableNames=Array.from(tn.repoMap.values()).map(e=>e.getSignature().getFullName())}async find(e,t){return e!=g.SYSTEM_ARRAY?Promise.resolve(void 0):Promise.resolve(tn.repoMap.get(t))}async filter(e){return Promise.resolve(tn.filterableNames.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}e({},"ContextElement",()=>ta);class ta{static{this.NULL=new ta(y.NULL,void 0)}constructor(e,t){this.schema=e,this.element=t}getSchema(){return this.schema}setSchema(e){return this.schema=e,this}getElement(){return this.element}setElement(e){return this.element=e,this}}let ts="name",ti="schema",to=new k("Create").setNamespace(g.SYSTEM_CTX).setParameters(new Map([v.ofEntry(ts,new y().setName(ts).setType(f.of(r.STRING)).setMinLength(1).setFormat(a.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,n.CONSTANT),v.ofEntry(ti,y.SCHEMA,!1,n.CONSTANT)])).setEvents(new Map([F.outputEventMapEntry(new Map)])),tE="name",tu="value",tA=new k("Get").setNamespace(g.SYSTEM_CTX).setParameters(new Map([v.ofEntry(tE,new y().setName(tE).setType(f.of(r.STRING)).setMinLength(1).setFormat(a.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,n.CONSTANT)])).setEvents(new Map([F.outputEventMapEntry(new Map([[tu,y.ofAny(tu)]]))]));e({},"ExpressionEvaluator",()=>rl);var tl={};e(tl,"LogicalNullishCoalescingOperator",()=>th);var tc={};e(tc,"BinaryOperator",()=>tg);class tg{nullCheck(e,t,r){if(h(e)||h(t))throw new em(j.format("$ cannot be applied to a null value",r.getOperatorName()))}}class th extends tg{apply(e,t){return h(e)?t:e}}var tp={};e(tp,"ArithmeticAdditionOperator",()=>tT);class tT extends tg{apply(e,t){return h(e)?t:h(t)?e:e+t}}var tm={};e(tm,"ArithmeticDivisionOperator",()=>tR);class tR extends tg{apply(e,t){return this.nullCheck(e,t,eW.DIVISION),e/t}}var tf={};e(tf,"ArithmeticIntegerDivisionOperator",()=>tN);class tN extends tg{apply(e,t){return this.nullCheck(e,t,eW.DIVISION),Math.floor(e/t)}}var t_={};e(t_,"ArithmeticModulusOperator",()=>tS);class tS extends tg{apply(e,t){return this.nullCheck(e,t,eW.MOD),e%t}}var tM={};e(tM,"ArithmeticMultiplicationOperator",()=>td);class td extends tg{apply(e,t){this.nullCheck(e,t,eW.MULTIPLICATION);let r="string"==typeof e,n=typeof t;if(r||"string"===n){let n=r?e:t,a=r?t:e,s="",i=a<0,o=Math.floor(a=Math.abs(a));for(;o-- >0;)s+=n;let E=Math.floor(n.length*(a-Math.floor(a)));if(E<0&&(E=-E),0!=E&&(s+=n.substring(0,E)),i){let e="";for(let t=s.length-1;t>=0;t--)e+=s[t];return e}return s}return e*t}}var tw={};e(tw,"ArithmeticSubtractionOperator",()=>tO);class tO extends tg{apply(e,t){return this.nullCheck(e,t,eW.SUBTRACTION),e-t}}var tI={};e(tI,"ArrayOperator",()=>tP);class tP extends tg{apply(e,t){if(!e)throw new em("Cannot apply array operator on a null value");if(!t)throw new em("Cannot retrive null index value");if(!Array.isArray(e)&&"string"!=typeof e)throw new em(j.format("Cannot retrieve value from a primitive value $",e));if(t>=e.length)throw new em(j.format("Cannot retrieve index $ from the array of length $",t,e.length));return e[t]}}var ty={};e(ty,"BitwiseAndOperator",()=>tx);class tx extends tg{apply(e,t){return this.nullCheck(e,t,eW.BITWISE_AND),e&t}}var tL={};e(tL,"BitwiseLeftShiftOperator",()=>tv);class tv extends tg{apply(e,t){return this.nullCheck(e,t,eW.BITWISE_LEFT_SHIFT),e<<t}}var tU={};e(tU,"BitwiseOrOperator",()=>tb);class tb extends tg{apply(e,t){return this.nullCheck(e,t,eW.BITWISE_OR),e|t}}var tV={};e(tV,"BitwiseRightShiftOperator",()=>tC);class tC extends tg{apply(e,t){return this.nullCheck(e,t,eW.BITWISE_RIGHT_SHIFT),e>>t}}var tD={};e(tD,"BitwiseUnsignedRightShiftOperator",()=>tG);class tG extends tg{apply(e,t){return this.nullCheck(e,t,eW.BITWISE_UNSIGNED_RIGHT_SHIFT),e>>>t}}var t$={};e(t$,"BitwiseXorOperator",()=>tF);class tF extends tg{apply(e,t){return this.nullCheck(e,t,eW.BITWISE_XOR),e^t}}var tY={};e(tY,"LogicalAndOperator",()=>tB);class tB extends tg{apply(e,t){return!!e&&""!==e&&!!t&&""!==t}}var tH={};e(tH,"LogicalEqualOperator",()=>tk);class tk extends tg{apply(e,t){return q(e,t)}}var tj={};e(tj,"LogicalGreaterThanEqualOperator",()=>tW);class tW extends tg{apply(e,t){let n=eR.findPrimitiveNullAsBoolean(e),a=eR.findPrimitiveNullAsBoolean(t);if(n.getT1()==r.BOOLEAN||a.getT1()==r.BOOLEAN)throw new em(j.format("Cannot compare >= with the values $ and $",n.getT2(),a.getT2()));return n.getT2()>=a.getT2()}}var tX={};e(tX,"LogicalGreaterThanOperator",()=>tq);class tq extends tg{apply(e,t){let n=eR.findPrimitiveNullAsBoolean(e),a=eR.findPrimitiveNullAsBoolean(t);if(n.getT1()==r.BOOLEAN||a.getT1()==r.BOOLEAN)throw new em(j.format("Cannot compare > with the values $ and $",n.getT2(),a.getT2()));return n.getT2()>a.getT2()}}var tJ={};e(tJ,"LogicalLessThanEqualOperator",()=>tz);class tz extends tg{apply(e,t){let n=eR.findPrimitiveNullAsBoolean(e),a=eR.findPrimitiveNullAsBoolean(t);if(n.getT1()==r.BOOLEAN||a.getT1()==r.BOOLEAN)throw new em(j.format("Cannot compare <= with the values $ and $",n.getT2(),a.getT2()));return n.getT2()<=a.getT2()}}var tK={};e(tK,"LogicalLessThanOperator",()=>tQ);class tQ extends tg{apply(e,t){let n=eR.findPrimitiveNullAsBoolean(e),a=eR.findPrimitiveNullAsBoolean(t);if(n.getT1()==r.BOOLEAN||a.getT1()==r.BOOLEAN)throw new em(j.format("Cannot compare < with the values $ and $",n.getT2(),a.getT2()));return n.getT2()<a.getT2()}}var tZ={};e(tZ,"LogicalNotEqualOperator",()=>t0);class t0 extends tg{apply(e,t){return!q(e,t)}}var t1={};e(t1,"LogicalOrOperator",()=>t2);class t2 extends tg{apply(e,t){return!!e&&""!==e||!!t&&""!==t}}var t7={};e(t7,"ObjectOperator",()=>t5);class t5 extends tg{apply(e,t){if(!e)throw new em("Cannot apply array operator on a null value");if(!t)throw new em("Cannot retrive null property value");let r=typeof e;if(!Array.isArray(e)&&"string"!=r&&"object"!=r)throw new em(j.format("Cannot retrieve value from a primitive value $",e));return e[t]}}var t4={};e(t4,"ArithmeticUnaryMinusOperator",()=>t3);var t6={};e(t6,"UnaryOperator",()=>t9);class t9{nullCheck(e,t){if(h(e))throw new em(j.format("$ cannot be applied to a null value",t.getOperatorName()))}}class t3 extends t9{apply(e){return this.nullCheck(e,eW.UNARY_MINUS),eR.findPrimitiveNumberType(e),-e}}var t8={};e(t8,"ArithmeticUnaryPlusOperator",()=>re);class re extends t9{apply(e){return this.nullCheck(e,eW.UNARY_PLUS),eR.findPrimitiveNumberType(e),e}}var rt={};e(rt,"BitwiseComplementOperator",()=>rr);class rr extends t9{apply(e){this.nullCheck(e,eW.UNARY_BITWISE_COMPLEMENT);let t=eR.findPrimitiveNumberType(e);if(t.getT1()!=r.INTEGER&&t.getT1()!=r.LONG)throw new em(j.format("Unable to apply bitwise operator on $",e));return~e}}var rn={};e(rn,"LogicalNotOperator",()=>ra);class ra extends t9{apply(e){return!e&&""!==e}}e({},"LiteralTokenValueExtractor",()=>ri);let rs=new Map([["true",!0],["false",!1],["null",void 0],["undefined",void 0]]);class ri extends eq{static{this.INSTANCE=new ri}getValueInternal(e){if(!J.isNullOrBlank(e))return(e=e.trim(),rs.has(e))?rs.get(e):e.startsWith('"')?this.processString(e):this.processNumbers(e)}processNumbers(e){try{let t=Number(e);if(isNaN(t))throw Error("Parse number error");return t}catch(t){throw new eH(e,j.format("Unable to parse the literal or expression $",e),t)}}processString(e){if(!e.endsWith('"'))throw new eH(e,j.format("String literal $ is not closed properly",e));return e.substring(1,e.length-1)}getPrefix(){return""}getStore(){}getValueFromExtractors(e,t){return t.has(e+".")?t.get(e+".")?.getStore():this.getValue(e)}}var ro={};e(ro,"ConditionalTernaryOperator",()=>ru);class rE{nullCheck(e,t,r,n){if(h(e)||h(t)||h(r))throw new em(j.format("$ cannot be applied to a null value",n.getOperatorName()))}}class ru extends rE{apply(e,t,r){return e?t:r}}t({},ro);class rA extends eq{static{this.PREFIX="_internal."}addValue(e,t){this.values.set(e,t)}getValueInternal(e){let t=e.split(eq.REGEX_DOT),r=t[1],n=r.indexOf("["),a=2;return -1!=n&&(r=t[1].substring(0,n),t[1]=t[1].substring(n),a=1),this.retrieveElementFrom(e,t,a,this.values.get(r))}getPrefix(){return rA.PREFIX}getStore(){}constructor(...e){super(...e),this.values=new Map}}class rl{static{this.UNARY_OPERATORS_MAP=new Map([[eW.UNARY_BITWISE_COMPLEMENT,new rr],[eW.UNARY_LOGICAL_NOT,new ra],[eW.UNARY_MINUS,new t3],[eW.UNARY_PLUS,new re]])}static{this.TERNARY_OPERATORS_MAP=new Map([[eW.CONDITIONAL_TERNARY_OPERATOR,new ru]])}static{this.BINARY_OPERATORS_MAP=new Map([[eW.ADDITION,new tT],[eW.DIVISION,new tR],[eW.INTEGER_DIVISION,new tN],[eW.MOD,new tS],[eW.MULTIPLICATION,new td],[eW.SUBTRACTION,new tO],[eW.BITWISE_AND,new tx],[eW.BITWISE_LEFT_SHIFT,new tv],[eW.BITWISE_OR,new tb],[eW.BITWISE_RIGHT_SHIFT,new tC],[eW.BITWISE_UNSIGNED_RIGHT_SHIFT,new tG],[eW.BITWISE_XOR,new tF],[eW.AND,new tB],[eW.EQUAL,new tk],[eW.GREATER_THAN,new tq],[eW.GREATER_THAN_EQUAL,new tW],[eW.LESS_THAN,new tQ],[eW.LESS_THAN_EQUAL,new tz],[eW.OR,new t2],[eW.NOT_EQUAL,new t0],[eW.NULLISH_COALESCING_OPERATOR,new th],[eW.ARRAY_OPERATOR,new tP],[eW.OBJECT_OPERATOR,new t5]])}static{this.UNARY_OPERATORS_MAP_KEY_SET=new Set(rl.UNARY_OPERATORS_MAP.keys())}constructor(e){this.internalTokenValueExtractor=new rA,e instanceof eX?(this.exp=e,this.expression=this.exp.getExpression()):this.expression=e}evaluate(e){let 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,a=new W;for(;n<e.length-1;){if("{"==e.charAt(n)&&"{"==e.charAt(n+1))0==r&&a.push(new K(n+2,-1)),r++,n++;else if("}"==e.charAt(n)&&"}"==e.charAt(n+1)){if(--r<0)throw new eH(e,"Expecting {{ nesting path operator to be started before closing");0==r&&a.push(a.pop().setT2(n)),n++}n++}let s=this.replaceNestingExpression(e,t,a);return new K(s,new eX(s))}replaceNestingExpression(e,t,r){let n=e;for(let a of r.toArray()){if(-1==a.getT2())throw new eH(e,"Expecting }} nesting path operator to be closed");let r=new rl(n.substring(a.getT1(),a.getT2())).evaluate(t);n=n.substring(0,a.getT1()-2)+r+n.substring(a.getT2()+2)}return n}getExpression(){return this.exp||(this.exp=new eX(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(),a=n.pop();if(rl.UNARY_OPERATORS_MAP_KEY_SET.has(e))n.push(this.applyUnaryOperation(e,this.getValueFromToken(t,a)));else if(e==eW.OBJECT_OPERATOR||e==eW.ARRAY_OPERATOR)this.processObjectOrArrayOperator(t,r,n,e,a);else if(e==eW.CONDITIONAL_TERNARY_OPERATOR){let r=n.pop(),s=n.pop(),i=this.getValueFromToken(t,s),o=this.getValueFromToken(t,r),E=this.getValueFromToken(t,a);n.push(this.applyTernaryOperation(e,i,o,E))}else{let r=n.pop(),s=this.getValueFromToken(t,r),i=this.getValueFromToken(t,a);n.push(this.applyBinaryOperation(e,s,i))}}if(n.isEmpty())throw new em(j.format("Expression : $ evaluated to null",e));if(1!=n.size())throw new em(j.format("Expression : $ evaluated multiple values $",e,n));let a=n.get(0);if(a instanceof ej)return a.getElement();if(!(a instanceof eX))return this.getValueFromToken(t,a);throw new em(j.format("Expression : $ evaluated to $",e,n.get(0)))}processObjectOrArrayOperator(e,t,r,n,a){let s=new W,i=new W;if(!n||!a)return;do i.push(n),a instanceof eX?s.push(new ej(a.toString(),this.evaluateExpression(a,e))):a&&s.push(a),a=r.isEmpty()?void 0:r.pop(),n=t.isEmpty()?void 0:t.pop();while(n==eW.OBJECT_OPERATOR||n==eW.ARRAY_OPERATOR)a&&(a instanceof eX?s.push(new ej(a.toString(),this.evaluateExpression(a,e))):s.push(a)),n&&t.push(n);let o=s.pop();if(o instanceof ej&&"object"==typeof o.getTokenValue()){let e=new Date().getTime()+""+Math.round(1e3*Math.random());this.internalTokenValueExtractor.addValue(e,o.getTokenValue()),o=new ek(rA.PREFIX+e)}let E=new eB(o instanceof ej?o.getTokenValue():o.toString());for(;!s.isEmpty();)o=s.pop(),n=i.pop(),E.append(n.getOperator()).append(o instanceof ej?o.getTokenValue():o.toString()),n==eW.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 ej(u,this.getValue(u,e)));else{let e;try{e=ri.INSTANCE.getValue(u)}catch(t){e=u}r.push(new ej(u,e))}}applyTernaryOperation(e,t,r,n){let a=rl.TERNARY_OPERATORS_MAP.get(e);if(!a)throw new eH(this.expression,j.format("No operator found to evaluate $",this.getExpression()));return new ej(e.toString(),a.apply(t,r,n))}applyBinaryOperation(e,t,r){let n=typeof t,a=typeof r,s=rl.BINARY_OPERATORS_MAP.get(e);if(("object"===n||"object"===a)&&e!==eW.EQUAL&&e!==eW.NOT_EQUAL&&e!==eW.NULLISH_COALESCING_OPERATOR&&e!==eW.AND&&e!==eW.OR)throw new eH(this.expression,j.format("Cannot evaluate expression $ $ $",t,e.getOperator(),r));if(!s)throw new eH(this.expression,j.format("No operator found to evaluate $ $ $",t,e.getOperator(),r));return new ej(e.toString(),s.apply(t,r))}applyUnaryOperation(e,t){let r=typeof t;if(e.getOperator()!=eW.NOT.getOperator()&&e.getOperator()!=eW.UNARY_LOGICAL_NOT.getOperator()&&("object"===r||Array.isArray(t)))throw new eH(this.expression,j.format("The operator $ cannot be applied to $",e.getOperator(),t));let n=rl.UNARY_OPERATORS_MAP.get(e);if(!n)throw new eH(this.expression,j.format("No Unary operator $ is found to apply on $",e.getOperator(),t));return new ej(e.toString(),n.apply(t))}getValueFromToken(e,t){return t instanceof eX?this.evaluateExpression(t,e):t instanceof ej?t.getElement():this.getValue(t.getExpression(),e)}getValue(e,t){let r=e.substring(0,e.indexOf(".")+1);return t.has(r)?t.get(r).getValue(e):ri.INSTANCE.getValueFromExtractors(e,t)}}let rc="name",rg="value",rh=new k("Set").setNamespace(g.SYSTEM_CTX).setParameters(new Map([v.ofEntry(rc,new y().setName(rc).setType(f.of(r.STRING)).setMinLength(1),!1),v.ofEntry(rg,y.ofAny(rg))])).setEvents(new Map([F.outputEventMapEntry(new Map)])),rp="value",rT="eventName",rm="results",rR=new k("GenerateEvent").setNamespace(g.SYSTEM).setParameters(new Map([v.ofEntry(rT,y.ofString(rT).setDefaultValue("output")),v.ofEntry(rm,y.ofObject(rm).setProperties(new Map([["name",y.ofString("name")],[rp,v.EXPRESSION]])),!0)])).setEvents(new Map([F.outputEventMapEntry(new Map)]));class rf extends el{static{this.CONDITION="condition"}static{this.SIGNATURE=new k("If").setNamespace(g.SYSTEM).setParameters(new Map([v.ofEntry(rf.CONDITION,y.ofAny(rf.CONDITION))])).setEvents(new Map([F.eventMapEntry(F.TRUE,new Map),F.eventMapEntry(F.FALSE,new Map),F.outputEventMapEntry(new Map)]))}getSignature(){return rf.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(rf.CONDITION);return new H([Y.of(t||""===t?F.TRUE:F.FALSE,new Map),Y.outputOf(new Map)])}}let rN="stepName",r_=new k("Break").setNamespace(g.SYSTEM_LOOP).setParameters(new Map([v.ofEntry(rN,y.of(rN,r.STRING))])).setEvents(new Map([F.outputEventMapEntry(new Map([]))])),rS="count",rM="value",rd="index",rw=new k("CountLoop").setNamespace(g.SYSTEM_LOOP).setParameters(new Map([v.ofEntry(rS,y.of(rS,r.INTEGER))])).setEvents(new Map([F.eventMapEntry(F.ITERATION,new Map([[rd,y.of(rd,r.INTEGER)]])),F.outputEventMapEntry(new Map([[rM,y.of(rM,r.INTEGER)]]))])),rO="source",rI="each",rP="index",ry="value",rx=new k("ForEachLoop").setNamespace(g.SYSTEM_LOOP).setParameters(new Map([v.ofEntry(rO,y.ofArray(rO,y.ofAny(rO)))])).setEvents(new Map([F.eventMapEntry(F.ITERATION,new Map([[rP,y.of(rP,r.INTEGER)],[rI,y.ofAny(rI)]])),F.outputEventMapEntry(new Map([[ry,y.of(ry,r.INTEGER)]]))])),rL="from",rv="step",rU="value",rb="index",rV=new k("RangeLoop").setNamespace(g.SYSTEM_LOOP).setParameters(new Map([v.ofEntry(rL,y.of(rL,r.INTEGER,r.LONG,r.FLOAT,r.DOUBLE).setDefaultValue(0)),v.ofEntry("to",y.of("to",r.INTEGER,r.LONG,r.FLOAT,r.DOUBLE).setDefaultValue(1)),v.ofEntry(rv,y.of(rv,r.INTEGER,r.LONG,r.FLOAT,r.DOUBLE).setDefaultValue(1).setNot(new y().setConstant(0)))])).setEvents(new Map([F.eventMapEntry(F.ITERATION,new Map([[rb,y.of(rb,r.INTEGER,r.LONG,r.FLOAT,r.DOUBLE)]])),F.outputEventMapEntry(new Map([[rU,y.of(rU,r.INTEGER,r.LONG,r.FLOAT,r.DOUBLE)]]))])),rC="value",rD=new k("Add").setNamespace(g.MATH).setParameters(new Map([[rC,new v(rC,y.ofNumber(rC)).setVariableArgument(!0)]])).setEvents(new Map([F.outputEventMapEntry(new Map([[rC,y.ofNumber(rC)]]))])),rG="value",r$="value1",rF="value2",rY=[()=>new Map([[rG,new v(rG,y.ofNumber(rG))]]),()=>new Map([[r$,new v(r$,y.ofNumber(r$))],[rF,new v(rF,y.ofNumber(rF))]])];class rB extends el{constructor(e,t,n=1,...a){super(),a&&a.length||(a=[r.DOUBLE]),this.parametersNumber=n,this.mathFunction=t,this.signature=new k(e).setNamespace(g.MATH).setParameters(rY[n-1]()).setEvents(new Map([F.outputEventMapEntry(new Map([[rG,new y().setType(f.of(...a)).setName(rG)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t,r=eR.findPrimitiveNumberType(e.getArguments()?.get(1==this.parametersNumber?rG:r$)).getT2();return 2==this.parametersNumber&&(t=eR.findPrimitiveNumberType(e.getArguments()?.get(rF)).getT2()),new H([Y.outputOf(new Map([[rG,this.mathFunction.call(this,r,t)]]))])}}let rH="value";class rk extends el{static{this.SIGNATURE=new k("Hypotenuse").setNamespace(g.MATH).setParameters(new Map([[rH,new v(rH,y.ofNumber(rH)).setVariableArgument(!0)]])).setEvents(new Map([F.outputEventMapEntry(new Map([[rH,new y().setType(f.of(r.DOUBLE)).setName(rH)]]))]))}constructor(){super()}getSignature(){return rk.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(rH);return new H([Y.outputOf(new Map([[rH,Math.sqrt(t.reduce((e,t)=>e+=t*t,0))]]))])}}let rj="value",rW=new k("Maximum").setNamespace(g.MATH).setParameters(new Map([[rj,new v(rj,y.ofNumber(rj)).setVariableArgument(!0)]])).setEvents(new Map([F.outputEventMapEntry(new Map([[rj,y.ofNumber(rj)]]))])),rX="value",rq=new k("Minimum").setNamespace(g.MATH).setParameters(new Map([[rX,new v(rX,y.ofNumber(rX)).setVariableArgument(!0)]])).setEvents(new Map([F.outputEventMapEntry(new Map([[rX,y.ofNumber(rX)]]))])),rJ="value";class rz extends el{static{this.SIGNATURE=new k("Random").setNamespace(g.MATH).setEvents(new Map([F.outputEventMapEntry(G.of(rJ,y.ofDouble(rJ)))]))}getSignature(){return rz.SIGNATURE}async internalExecute(e){return new H([Y.outputOf(new Map([[rJ,Math.random()]]))])}}class rK extends el{static{this.MIN_VALUE="minValue"}static{this.MAX_VALUE="maxValue"}static{this.VALUE="value"}static{this.SIGNATURE=new k("RandomFloat").setParameters(G.of(rK.MIN_VALUE,v.of(rK.MIN_VALUE,y.ofFloat(rK.MIN_VALUE).setDefaultValue(0)),rK.MAX_VALUE,v.of(rK.MAX_VALUE,y.ofFloat(rK.MAX_VALUE).setDefaultValue(0x7fffffff)))).setNamespace(g.MATH).setEvents(new Map([F.outputEventMapEntry(G.of(rK.VALUE,y.ofFloat(rK.VALUE)))]))}getSignature(){return rK.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(rK.MIN_VALUE),r=Math.random()*(e.getArguments()?.get(rK.MAX_VALUE)-t)+t;return new H([Y.outputOf(new Map([[rK.VALUE,r]]))])}}class rQ extends el{static{this.MIN_VALUE="minValue"}static{this.MAX_VALUE="maxValue"}static{this.VALUE="value"}static{this.SIGNATURE=new k("RandomInt").setParameters(G.of(rQ.MIN_VALUE,v.of(rQ.MIN_VALUE,y.ofInteger(rQ.MIN_VALUE).setDefaultValue(0)),rQ.MAX_VALUE,v.of(rQ.MAX_VALUE,y.ofInteger(rQ.MAX_VALUE).setDefaultValue(0x7fffffff)))).setNamespace(g.MATH).setEvents(new Map([F.outputEventMapEntry(G.of(rQ.VALUE,y.ofInteger(rQ.VALUE)))]))}getSignature(){return rQ.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(rQ.MIN_VALUE),r=Math.floor(Math.random()*(e.getArguments()?.get(rQ.MAX_VALUE)-t)+t);return new H([Y.outputOf(new Map([[rQ.VALUE,r]]))])}}let rZ={Absolute:new rB("Absolute",e=>Math.abs(e),1,r.INTEGER,r.LONG,r.FLOAT,r.DOUBLE),ArcCosine:new rB("ArcCosine",e=>Math.acos(e)),ArcSine:new rB("ArcSine",e=>Math.asin(e)),ArcTangent:new rB("ArcTangent",e=>Math.atan(e)),Ceiling:new rB("Ceiling",e=>Math.ceil(e)),Cosine:new rB("Cosine",e=>Math.cos(e)),HyperbolicCosine:new rB("HyperbolicCosine",e=>Math.cosh(e)),CubeRoot:new rB("CubeRoot",e=>Math.cbrt(e)),Exponential:new rB("Exponential",e=>Math.exp(e)),ExponentialMinus1:new rB("ExponentialMinus1",e=>Math.expm1(e)),Floor:new rB("Floor",e=>Math.floor(e)),LogNatural:new rB("LogNatural",e=>Math.log(e)),Log10:new rB("Log10",e=>Math.log10(e)),Round:new rB("Round",e=>Math.round(e),1,r.INTEGER,r.LONG),Sine:new rB("Sine",e=>Math.sin(e)),HyperbolicSine:new rB("HyperbolicSine",e=>Math.sinh(e)),Tangent:new rB("Tangent",e=>Math.tan(e)),HyperbolicTangent:new rB("HyperbolicTangent",e=>Math.tanh(e)),ToDegrees:new rB("ToDegrees",e=>Math.PI/180*e),ToRadians:new rB("ToRadians",e=>180/Math.PI*e),SquareRoot:new rB("SquareRoot",e=>Math.sqrt(e)),ArcTangent2:new rB("ArcTangent2",(e,t)=>Math.atan2(e,t),2),Power:new rB("Power",(e,t)=>Math.pow(e,t),2),Add:new class extends el{getSignature(){return rD}async internalExecute(e){let t=e.getArguments()?.get(rC);return new H([Y.outputOf(new Map([[rC,t.reduce((e,t)=>e+=t,0)]]))])}},Hypotenuse:new rk,Maximum:new class extends el{getSignature(){return rW}async internalExecute(e){let t=e.getArguments()?.get(rj);return new H([Y.outputOf(new Map([[rj,t.reduce((e,t)=>!e&&0!==e||t>e?t:e)]]))])}},Minimum:new class extends el{getSignature(){return rq}async internalExecute(e){let t=e.getArguments()?.get(rX);return new H([Y.outputOf(new Map([[rX,t.reduce((e,t)=>!e&&0!==e||t<e?t:e)]]))])}},Random:new rz,RandomFloat:new rK,RandomInt:new rQ},r0=Object.values(rZ).map(e=>e.getSignature().getFullName());class r1{async find(e,t){return e!=g.MATH?Promise.resolve(void 0):Promise.resolve(rZ[t])}async filter(e){return Promise.resolve(r0.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}let r2="value",r7="source",r5="source";class r4 extends el{constructor(e,t){super(),this.signature=new k(e).setNamespace(g.SYSTEM_OBJECT).setParameters(new Map([v.ofEntry(r5,y.ofAny(r5))])).setEvents(new Map([F.outputEventMapEntry(new Map([["value",t]]))]))}getSignature(){return this.signature}}let r6="value",r9="value",r3="value",r8="source",ne="overwrite",nt="deleteKeyOnNull",nr="value",nn={ObjectValues:new class extends r4{constructor(){super("ObjectValues",y.ofArray(nr,y.ofAny(nr)))}async internalExecute(e){var t=e.getArguments()?.get("source");if(h(t))return new H([Y.outputOf(new Map([[nr,[]]]))]);let r=Object.entries(eS(t)).sort((e,t)=>e[0].localeCompare(t[0])).map(e=>e[1]);return new H([Y.outputOf(new Map([[nr,r]]))])}},ObjectKeys:new class extends r4{constructor(){super("ObjectKeys",y.ofArray(r9,y.ofString(r9)))}async internalExecute(e){var t=e.getArguments()?.get("source");if(h(t))return new H([Y.outputOf(new Map([[r9,[]]]))]);let r=Object.keys(eS(t)).sort((e,t)=>e.localeCompare(t));return new H([Y.outputOf(new Map([[r9,r]]))])}},ObjectEntries:new class extends r4{constructor(){super("ObjectEntries",y.ofArray(r6,y.ofArray("tuple",y.ofString("key"),y.ofAny("value"))))}async internalExecute(e){var t=e.getArguments()?.get("source");if(h(t))return new H([Y.outputOf(new Map([[r6,[]]]))]);let r=Object.entries(eS(t)).sort((e,t)=>e[0].localeCompare(t[0]));return new H([Y.outputOf(new Map([[r6,r]]))])}},ObjectDeleteKey:new class extends el{constructor(){super(),this.signature=new k("ObjectDeleteKey").setNamespace(g.SYSTEM_OBJECT).setParameters(new Map([v.ofEntry(r7,y.ofAny(r7)),v.ofEntry("key",y.ofString("key"))])).setEvents(new Map([F.outputEventMapEntry(new Map([[r2,y.ofAny(r2)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(r7),r=e.getArguments()?.get("key");return h(t)?new H([Y.outputOf(new Map([[r2,void 0]]))]):(t=eS(t),delete t[r],new H([Y.outputOf(new Map([[r2,t]]))]))}},ObjectPutValue:new class extends el{constructor(){super(),this.signature=new k("ObjectPutValue").setNamespace(g.SYSTEM_OBJECT).setParameters(new Map([v.ofEntry(r8,y.ofObject(r8)),v.ofEntry("key",y.ofString("key")),v.ofEntry(r3,y.ofAny(r3)),v.ofEntry(ne,y.ofBoolean(ne).setDefaultValue(!0)),v.ofEntry(nt,y.ofBoolean(nt).setDefaultValue(!1))])).setEvents(new Map([F.outputEventMapEntry(new Map([[r3,y.ofObject(r3)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(r8),r=e.getArguments()?.get("key"),n=e.getArguments()?.get(r3),a=e.getArguments()?.get(ne),s=e.getArguments()?.get(nt),i=new eJ(t,"Data.");return i.setValue(r,n,a,s),new H([Y.outputOf(new Map([[r3,i.getStore()]]))])}}},na=Object.values(nn).map(e=>e.getSignature().getFullName());class ns{async find(e,t){return e!=g.SYSTEM_OBJECT?Promise.resolve(void 0):Promise.resolve(nn[t])}async filter(e){return Promise.resolve(na.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}class ni extends el{static{this.VALUES="values"}static{this.SIGNATURE=new k("Print").setNamespace(g.SYSTEM).setParameters(new Map([v.ofEntry(ni.VALUES,y.ofAny(ni.VALUES),!0)]))}getSignature(){return ni.SIGNATURE}async internalExecute(e){var t=e.getArguments()?.get(ni.VALUES);return console?.log(...t),new H([Y.outputOf(new Map)])}}class no extends el{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_SEARCH_STRING_NAME="searchString"}static{this.PARAMETER_SECOND_STRING_NAME="secondString"}static{this.PARAMETER_THIRD_STRING_NAME="thirdString"}static{this.PARAMETER_INDEX_NAME="index"}static{this.PARAMETER_SECOND_INDEX_NAME="secondIndex"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new v(no.PARAMETER_STRING_NAME,y.ofString(no.PARAMETER_STRING_NAME))}static{this.PARAMETER_SECOND_STRING=new v(no.PARAMETER_SECOND_STRING_NAME,y.ofString(no.PARAMETER_SECOND_STRING_NAME))}static{this.PARAMETER_THIRD_STRING=new v(no.PARAMETER_THIRD_STRING_NAME,y.ofString(no.PARAMETER_THIRD_STRING_NAME))}static{this.PARAMETER_INDEX=new v(no.PARAMETER_INDEX_NAME,y.ofInteger(no.PARAMETER_INDEX_NAME))}static{this.PARAMETER_SECOND_INDEX=new v(no.PARAMETER_SECOND_INDEX_NAME,y.ofInteger(no.PARAMETER_SECOND_INDEX_NAME))}static{this.PARAMETER_SEARCH_STRING=new v(no.PARAMETER_SEARCH_STRING_NAME,y.ofString(no.PARAMETER_STRING_NAME))}static{this.EVENT_STRING=new F(F.OUTPUT,G.of(no.EVENT_RESULT_NAME,y.ofString(no.EVENT_RESULT_NAME)))}static{this.EVENT_BOOLEAN=new F(F.OUTPUT,G.of(no.EVENT_RESULT_NAME,y.ofBoolean(no.EVENT_RESULT_NAME)))}static{this.EVENT_INT=new F(F.OUTPUT,G.of(no.EVENT_RESULT_NAME,y.ofInteger(no.EVENT_RESULT_NAME)))}static{this.EVENT_ARRAY=new F(F.OUTPUT,G.of(no.EVENT_RESULT_NAME,y.ofArray(no.EVENT_RESULT_NAME)))}constructor(e,t,r,...n){super();let a=new Map;n.forEach(e=>a.set(e.getParameterName(),e)),this.signature=new k(t).setNamespace(e).setParameters(a).setEvents(G.of(r.getName(),r))}getSignature(){return this.signature}static ofEntryAsStringBooleanOutput(e,t){return[e,new class extends no{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(no.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(no.PARAMETER_SEARCH_STRING_NAME);return new H([Y.outputOf(G.of(no.EVENT_RESULT_NAME,t(r,n)))])}}(g.STRING,e,no.EVENT_BOOLEAN,no.PARAMETER_STRING,no.PARAMETER_SEARCH_STRING)]}static ofEntryAsStringAndIntegerStringOutput(e,t){return[e,new class extends no{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(no.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(no.PARAMETER_INDEX_NAME);return new H([Y.outputOf(G.of(no.EVENT_RESULT_NAME,t(r,n)))])}}(g.STRING,e,no.EVENT_STRING,no.PARAMETER_STRING,no.PARAMETER_INDEX)]}static ofEntryAsStringIntegerOutput(e,t){return[e,new class extends no{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(no.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(no.PARAMETER_SEARCH_STRING_NAME);return new H([Y.outputOf(G.of(no.EVENT_RESULT_NAME,t(r,n)))])}}(g.STRING,e,no.EVENT_INT,no.PARAMETER_STRING,no.PARAMETER_SEARCH_STRING)]}static ofEntryString(e,t){return[e,new class extends no{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(no.PARAMETER_STRING_NAME);return new H([Y.outputOf(G.of(no.EVENT_RESULT_NAME,t(r)))])}}(g.STRING,e,no.EVENT_STRING,no.PARAMETER_STRING)]}static ofEntryStringBooleanOutput(e,t){return[e,new class extends no{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(no.PARAMETER_STRING_NAME);return new H([Y.outputOf(G.of(no.EVENT_RESULT_NAME,t(r)))])}}(g.STRING,e,no.EVENT_BOOLEAN,no.PARAMETER_STRING)]}static ofEntryAsStringStringIntegerIntegerOutput(e,t){return[e,new class extends no{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(no.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(no.PARAMETER_SEARCH_STRING_NAME),a=e?.getArguments()?.get(no.PARAMETER_INDEX_NAME);return new H([Y.outputOf(G.of(no.EVENT_RESULT_NAME,t(r,n,a)))])}}(g.STRING,e,no.EVENT_INT,no.PARAMETER_STRING,no.PARAMETER_SEARCH_STRING,no.PARAMETER_INDEX)]}static ofEntryAsStringIntegerIntegerStringOutput(e,t){return[e,new class extends no{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(no.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(no.PARAMETER_INDEX_NAME),a=e?.getArguments()?.get(no.PARAMETER_SECOND_INDEX_NAME);return new H([Y.outputOf(G.of(no.EVENT_RESULT_NAME,t(r,n,a)))])}}(g.STRING,e,no.EVENT_INT,no.PARAMETER_STRING,no.PARAMETER_INDEX,no.PARAMETER_SECOND_INDEX)]}static ofEntryAsStringStringStringStringOutput(e,t){return[e,new class extends no{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(no.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(no.PARAMETER_SECOND_STRING_NAME),a=e?.getArguments()?.get(no.PARAMETER_THIRD_STRING_NAME);return new H([Y.outputOf(G.of(no.EVENT_RESULT_NAME,t(r,n,a)))])}}(g.STRING,e,no.EVENT_STRING,no.PARAMETER_STRING,no.PARAMETER_SECOND_STRING,no.PARAMETER_THIRD_STRING)]}}class nE extends el{static{this.VALUE="value"}static{this.SCHEMA=new y().setName(nE.VALUE).setType(new R(r.STRING))}static{this.SIGNATURE=new k("Concatenate").setNamespace(g.STRING).setParameters(new Map([[nE.VALUE,new v(nE.VALUE,nE.SCHEMA).setVariableArgument(!0)]])).setEvents(new Map([F.outputEventMapEntry(new Map([[nE.VALUE,y.ofString(nE.VALUE)]]))]))}constructor(){super()}getSignature(){return nE.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(nE.VALUE),r="";return t.reduce((e,t)=>r=e+t,r),new H([Y.outputOf(new Map([[nE.VALUE,r]]))])}}class nu extends el{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_AT_START_NAME="startPosition"}static{this.PARAMETER_AT_END_NAME="endPosition"}static{this.EVENT_RESULT_NAME="result"}constructor(){super(),this.PARAMETER_STRING=new v(nu.PARAMETER_STRING_NAME,y.ofString(nu.PARAMETER_STRING_NAME)),this.PARAMETER_AT_START=new v(nu.PARAMETER_AT_START_NAME,y.ofInteger(nu.PARAMETER_AT_START_NAME)),this.PARAMETER_AT_END=new v(nu.PARAMETER_AT_END_NAME,y.ofInteger(nu.PARAMETER_AT_END_NAME)),this.EVENT_STRING=new F(F.OUTPUT,new Map([[nu.EVENT_RESULT_NAME,y.ofString(nu.EVENT_RESULT_NAME)]])),this.signature=new k("DeleteForGivenLength").setNamespace(g.STRING).setParameters(new Map([[this.PARAMETER_STRING.getParameterName(),this.PARAMETER_STRING],[this.PARAMETER_AT_START.getParameterName(),this.PARAMETER_AT_START],[this.PARAMETER_AT_END.getParameterName(),this.PARAMETER_AT_END]])).setEvents(new Map([[this.EVENT_STRING.getName(),this.EVENT_STRING]]))}getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(nu.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(nu.PARAMETER_AT_START_NAME),n=e?.getArguments()?.get(nu.PARAMETER_AT_END_NAME);if(n>=r){let e="";return e+=t.substring(0,r)+t.substring(n),new H([Y.outputOf(new Map([[nu.EVENT_RESULT_NAME,e.toString()]]))])}return new H([Y.outputOf(new Map([[nu.EVENT_RESULT_NAME,t]]))])}}class nA extends el{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_AT_POSITION_NAME="position"}static{this.PARAMETER_INSERT_STRING_NAME="insertString"}getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(nA.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(nA.PARAMETER_AT_POSITION_NAME),n=e?.getArguments()?.get(nA.PARAMETER_INSERT_STRING_NAME),a="";return a+=t.substring(0,r)+n+t.substring(r),new H([Y.outputOf(new Map([[this.EVENT_RESULT_NAME,a]]))])}constructor(...e){super(...e),this.EVENT_RESULT_NAME="result",this.PARAMETER_STRING=new v(nA.PARAMETER_STRING_NAME,y.ofString(nA.PARAMETER_STRING_NAME)),this.PARAMETER_AT_POSITION=new v(nA.PARAMETER_AT_POSITION_NAME,y.ofInteger(nA.PARAMETER_AT_POSITION_NAME)),this.PARAMETER_INSERT_STRING=new v(nA.PARAMETER_INSERT_STRING_NAME,y.ofString(nA.PARAMETER_INSERT_STRING_NAME)),this.EVENT_STRING=new F(F.OUTPUT,new Map([[this.EVENT_RESULT_NAME,y.ofString(this.EVENT_RESULT_NAME)]])),this.signature=new k("InsertAtGivenPosition").setNamespace(g.STRING).setParameters(new Map([[this.PARAMETER_STRING.getParameterName(),this.PARAMETER_STRING],[this.PARAMETER_AT_POSITION.getParameterName(),this.PARAMETER_AT_POSITION],[this.PARAMETER_INSERT_STRING.getParameterName(),this.PARAMETER_INSERT_STRING]])).setEvents(new Map([F.outputEventMapEntry(new Map([[this.EVENT_RESULT_NAME,y.ofString(this.EVENT_RESULT_NAME)]]))]))}}class nl extends el{static{this.PARAMETER_REGEX_NAME="regex"}static{this.PARAMETER_STRING_NAME="string"}static{this.EVENT_RESULT_NAME="result"}static{this.signature=new k("Matches").setNamespace(g.STRING).setParameters(G.ofEntries(G.entry(...v.ofEntry(nl.PARAMETER_REGEX_NAME,y.ofString(nl.PARAMETER_REGEX_NAME))),G.entry(...v.ofEntry(nl.PARAMETER_STRING_NAME,y.ofString(nl.PARAMETER_STRING_NAME))))).setEvents(G.ofEntries(G.entry(...F.outputEventMapEntry(new Map([[nl.EVENT_RESULT_NAME,y.ofBoolean(nl.EVENT_RESULT_NAME)]])))))}getSignature(){return nl.signature}async internalExecute(e){let t=e.getArguments()?.get(nl.PARAMETER_REGEX_NAME),r=e.getArguments()?.get(nl.PARAMETER_STRING_NAME);return new H([Y.outputOf(new Map([[nl.EVENT_RESULT_NAME,!!r.match(t)?.length]]))])}}class nc extends el{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_POSTPAD_STRING_NAME="postpadString"}static{this.PARAMETER_LENGTH_NAME="length"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new v(nc.PARAMETER_STRING_NAME,y.ofString(nc.PARAMETER_STRING_NAME))}static{this.PARAMETER_POSTPAD_STRING=new v(nc.PARAMETER_POSTPAD_STRING_NAME,y.ofString(nc.PARAMETER_POSTPAD_STRING_NAME))}static{this.PARAMETER_LENGTH=new v(nc.PARAMETER_LENGTH_NAME,y.ofInteger(nc.PARAMETER_LENGTH_NAME))}static{this.EVENT_STRING=new F(F.OUTPUT,new Map([[nc.EVENT_RESULT_NAME,y.ofString(nc.EVENT_RESULT_NAME)]]))}constructor(){super(),this.signature=new k("PostPad").setNamespace(g.STRING).setParameters(new Map([[nc.PARAMETER_STRING.getParameterName(),nc.PARAMETER_STRING],[nc.PARAMETER_POSTPAD_STRING.getParameterName(),nc.PARAMETER_POSTPAD_STRING],[nc.PARAMETER_LENGTH.getParameterName(),nc.PARAMETER_LENGTH]])).setEvents(new Map([[nc.EVENT_STRING.getName(),nc.EVENT_STRING]]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(nc.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(nc.PARAMETER_POSTPAD_STRING_NAME),n=e.getArguments()?.get(nc.PARAMETER_LENGTH_NAME),a="",s=r.length;for(a+=t;s<=n;)a+=r,s+=r.length;return a.length-t.length<n&&(a+=r.substring(0,n-(a.length-t.length))),new H([Y.outputOf(new Map([[nc.EVENT_RESULT_NAME,a.toString()]]))])}}class ng extends el{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_PREPAD_STRING_NAME="prepadString"}static{this.PARAMETER_LENGTH_NAME="length"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new v(ng.PARAMETER_STRING_NAME,y.ofString(ng.PARAMETER_STRING_NAME))}static{this.PARAMETER_PREPAD_STRING=new v(ng.PARAMETER_PREPAD_STRING_NAME,y.ofString(ng.PARAMETER_PREPAD_STRING_NAME))}static{this.PARAMETER_LENGTH=new v(ng.PARAMETER_LENGTH_NAME,y.ofInteger(ng.PARAMETER_LENGTH_NAME))}static{this.EVENT_STRING=new F(F.OUTPUT,new Map([[ng.EVENT_RESULT_NAME,y.ofString(ng.EVENT_RESULT_NAME)]]))}getSignature(){return this.signature}constructor(){super(),this.signature=new k("PrePad").setNamespace(g.STRING).setParameters(new Map([[ng.PARAMETER_STRING.getParameterName(),ng.PARAMETER_STRING],[ng.PARAMETER_PREPAD_STRING.getParameterName(),ng.PARAMETER_PREPAD_STRING],[ng.PARAMETER_LENGTH.getParameterName(),ng.PARAMETER_LENGTH]])).setEvents(new Map([[ng.EVENT_STRING.getName(),ng.EVENT_STRING]]))}async internalExecute(e){let t=e.getArguments()?.get(ng.PARAMETER_STRING_NAME),r=e.getArguments()?.get(ng.PARAMETER_PREPAD_STRING_NAME),n=e.getArguments()?.get(ng.PARAMETER_LENGTH_NAME),a="",s=r.length;for(;s<=n;)a+=r,s+=r.length;return a.length<n&&(a+=r.substring(0,n-a.length)),a+=t,new H([Y.outputOf(new Map([[ng.EVENT_RESULT_NAME,a]]))])}}class nh extends el{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_BOOLEAN_NAME="boolean"}static{this.PARAMETER_FIRST_OFFSET_NAME="firstOffset"}static{this.PARAMETER_OTHER_STRING_NAME="otherString"}static{this.PARAMETER_SECOND_OFFSET_NAME="secondOffset"}static{this.PARAMETER_INTEGER_NAME="length"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new v(nh.PARAMETER_STRING_NAME,y.ofString(nh.PARAMETER_STRING_NAME))}static{this.PARAMETER_OTHER_STRING=new v(nh.PARAMETER_OTHER_STRING_NAME,y.ofString(nh.PARAMETER_OTHER_STRING_NAME))}static{this.PARAMETER_FIRST_OFFSET=new v(nh.PARAMETER_FIRST_OFFSET_NAME,y.ofInteger(nh.PARAMETER_FIRST_OFFSET_NAME))}static{this.PARAMETER_SECOND_OFFSET=new v(nh.PARAMETER_SECOND_OFFSET_NAME,y.ofInteger(nh.PARAMETER_SECOND_OFFSET_NAME))}static{this.PARAMETER_INTEGER=new v(nh.PARAMETER_INTEGER_NAME,y.ofInteger(nh.PARAMETER_INTEGER_NAME))}static{this.PARAMETER_BOOLEAN=new v(nh.PARAMETER_BOOLEAN_NAME,y.ofBoolean(nh.PARAMETER_BOOLEAN_NAME))}static{this.EVENT_BOOLEAN=new F(F.OUTPUT,new Map([[nh.EVENT_RESULT_NAME,y.ofBoolean(nh.EVENT_RESULT_NAME)]]))}getSignature(){return this.signature}constructor(){super(),this.signature=new k("RegionMatches").setNamespace(g.STRING).setParameters(new Map([[nh.PARAMETER_STRING.getParameterName(),nh.PARAMETER_STRING],[nh.PARAMETER_BOOLEAN.getParameterName(),nh.PARAMETER_BOOLEAN],[nh.PARAMETER_FIRST_OFFSET.getParameterName(),nh.PARAMETER_FIRST_OFFSET],[nh.PARAMETER_OTHER_STRING.getParameterName(),nh.PARAMETER_OTHER_STRING],[nh.PARAMETER_SECOND_OFFSET.getParameterName(),nh.PARAMETER_SECOND_OFFSET],[nh.PARAMETER_INTEGER.getParameterName(),nh.PARAMETER_INTEGER]])).setEvents(new Map([[nh.EVENT_BOOLEAN.getName(),nh.EVENT_BOOLEAN]]))}async internalExecute(e){let t=e.getArguments()?.get(nh.PARAMETER_STRING_NAME),r=e.getArguments()?.get(nh.PARAMETER_BOOLEAN_NAME),n=e.getArguments()?.get(nh.PARAMETER_FIRST_OFFSET_NAME),a=e?.getArguments()?.get(nh.PARAMETER_OTHER_STRING_NAME),s=e?.getArguments()?.get(nh.PARAMETER_SECOND_OFFSET_NAME),i=e.getArguments()?.get(nh.PARAMETER_INTEGER_NAME),o=!1;return o=!(n<0)&&!(s<0)&&!(n+i>t.length)&&!(s+i>a.length)&&(r?(t=t.substring(n,n+i).toUpperCase())==a.substring(s,s+i).toUpperCase():(t=t.substring(n,n+i))==a.substring(s,i)),new H([Y.outputOf(new Map([[nh.EVENT_RESULT_NAME,o]]))])}}class np extends el{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_AT_START_NAME="startPosition"}static{this.PARAMETER_AT_LENGTH_NAME="lengthPosition"}static{this.PARAMETER_REPLACE_STRING_NAME="replaceString"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new v(np.PARAMETER_STRING_NAME,y.ofString(np.PARAMETER_STRING_NAME))}static{this.PARAMETER_AT_START=new v(np.PARAMETER_AT_START_NAME,y.ofInteger(np.PARAMETER_AT_START_NAME))}static{this.PARAMETER_AT_LENGTH=new v(np.PARAMETER_AT_LENGTH_NAME,y.ofInteger(np.PARAMETER_AT_LENGTH_NAME))}static{this.PARAMETER_REPLACE_STRING=new v(np.PARAMETER_REPLACE_STRING_NAME,y.ofString(np.PARAMETER_REPLACE_STRING_NAME))}static{this.EVENT_STRING=new F(F.OUTPUT,new Map([[np.EVENT_RESULT_NAME,y.ofString(np.EVENT_RESULT_NAME)]]))}constructor(){super(),this.signature=new k("ReplaceAtGivenPosition").setNamespace(g.STRING).setParameters(new Map([[np.PARAMETER_STRING.getParameterName(),np.PARAMETER_STRING],[np.PARAMETER_AT_START.getParameterName(),np.PARAMETER_AT_START],[np.PARAMETER_AT_LENGTH.getParameterName(),np.PARAMETER_AT_LENGTH],[np.PARAMETER_REPLACE_STRING.getParameterName(),np.PARAMETER_REPLACE_STRING]])).setEvents(new Map([[np.EVENT_STRING.getName(),np.EVENT_STRING]]))}getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(np.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(np.PARAMETER_AT_START_NAME),n=e?.getArguments()?.get(np.PARAMETER_AT_LENGTH_NAME);return e?.getArguments()?.get(np.PARAMETER_REPLACE_STRING_NAME),t.length,r<n&&(t.substring(0,r),t.substring(r+n)),new H([Y.outputOf(new Map([[np.EVENT_RESULT_NAME,t]]))])}}class nT extends el{constructor(){super(),this.VALUE="value",this.SIGNATURE=new k("Reverse").setNamespace(g.STRING).setParameters(new Map([[this.VALUE,new v(this.VALUE,y.ofString(this.VALUE)).setVariableArgument(!1)]])).setEvents(new Map([F.outputEventMapEntry(new Map([[this.VALUE,new y().setType(f.of(r.STRING)).setName(this.VALUE)]]))]))}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 H([Y.outputOf(G.of(this.VALUE,n))])}}class nm extends el{getSignature(){return new k("Split").setNamespace(g.STRING).setParameters(new Map([[this.PARAMETER_STRING_NAME,this.PARAMETER_STRING],[this.PARAMETER_SPLIT_STRING_NAME,this.PARAMETER_SPLIT_STRING]])).setEvents(new Map([F.outputEventMapEntry(new Map([[this.EVENT_RESULT_NAME,y.ofArray(this.EVENT_RESULT_NAME)]]))]))}constructor(){super(),this.PARAMETER_STRING_NAME="string",this.PARAMETER_SPLIT_STRING_NAME="searchString",this.EVENT_RESULT_NAME="result",this.PARAMETER_STRING=new v(this.PARAMETER_STRING_NAME,y.ofString(this.PARAMETER_STRING_NAME)),this.PARAMETER_SPLIT_STRING=new v(this.PARAMETER_SPLIT_STRING_NAME,y.ofString(this.PARAMETER_SPLIT_STRING_NAME)),this.EVENT_ARRAY=new F(F.OUTPUT,G.of(this.EVENT_RESULT_NAME,y.ofArray(this.EVENT_RESULT_NAME)))}async internalExecute(e){let t=e.getArguments()?.get(this.PARAMETER_STRING_NAME),r=e.getArguments()?.get(this.PARAMETER_SPLIT_STRING_NAME);return new H([Y.outputOf(G.of(this.EVENT_RESULT_NAME,t.split(r)))])}}class nR extends el{getSignature(){return new k("ToString").setNamespace(g.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(),this.PARAMETER_INPUT_ANYTYPE_NAME="anytype",this.EVENT_RESULT_NAME="result",this.PARAMETER_INPUT_ANYTYPE=new v(this.PARAMETER_INPUT_ANYTYPE_NAME,y.ofAny(this.PARAMETER_INPUT_ANYTYPE_NAME)),this.EVENT_STRING=new F(F.OUTPUT,new Map([[this.EVENT_RESULT_NAME,y.ofString(this.EVENT_RESULT_NAME)]]))}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 H([Y.outputOf(new Map([[this.EVENT_RESULT_NAME,r]]))])}}class nf extends el{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_LENGTH_NAME="length"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new v(nf.PARAMETER_STRING_NAME,y.ofString(nf.PARAMETER_STRING_NAME))}static{this.PARAMETER_LENGTH=new v(nf.PARAMETER_LENGTH_NAME,y.ofInteger(nf.PARAMETER_LENGTH_NAME))}static{this.EVENT_STRING=new F(F.OUTPUT,new Map([[nf.EVENT_RESULT_NAME,y.ofString(nf.EVENT_RESULT_NAME)]]))}getSignature(){return this.signature}constructor(){super(),this.signature=new k("TrimTo").setNamespace(g.STRING).setParameters(new Map([[nf.PARAMETER_STRING.getParameterName(),nf.PARAMETER_STRING],[nf.PARAMETER_LENGTH.getParameterName(),nf.PARAMETER_LENGTH]])).setEvents(new Map([[nf.EVENT_STRING.getName(),nf.EVENT_STRING]]))}async internalExecute(e){let t=e.getArguments()?.get(nf.PARAMETER_STRING_NAME),r=e.getArguments()?.get(nf.PARAMETER_LENGTH_NAME);return new H([Y.outputOf(new Map([[nf.EVENT_RESULT_NAME,t.substring(0,r)]]))])}}class nN{static{this.repoMap=G.ofArrayEntries(no.ofEntryString("Trim",e=>e.trim()),no.ofEntryString("LowerCase",e=>e.toLocaleLowerCase()),no.ofEntryString("UpperCase",e=>e.toUpperCase()),no.ofEntryStringBooleanOutput("IsBlank",e=>""===e.trim()),no.ofEntryStringBooleanOutput("IsEmpty",e=>""===e),no.ofEntryAsStringBooleanOutput("Contains",(e,t)=>-1!=e.indexOf(t)),no.ofEntryAsStringBooleanOutput("EndsWith",(e,t)=>e.endsWith(t)),no.ofEntryAsStringBooleanOutput("StartsWith",(e,t)=>e.startsWith(t)),no.ofEntryAsStringBooleanOutput("EqualsIgnoreCase",(e,t)=>e.toUpperCase()==t.toUpperCase()),no.ofEntryAsStringBooleanOutput("Matches",(e,t)=>new RegExp(t).test(e)),no.ofEntryAsStringIntegerOutput("IndexOf",(e,t)=>e.indexOf(t)),no.ofEntryAsStringIntegerOutput("LastIndexOf",(e,t)=>e.lastIndexOf(t)),no.ofEntryAsStringAndIntegerStringOutput("Repeat",(e,t)=>e.repeat(t)),no.ofEntryAsStringStringIntegerIntegerOutput("IndexOfWithStartPoint",(e,t,r)=>e.indexOf(t,r)),no.ofEntryAsStringStringIntegerIntegerOutput("LastIndexOfWithStartPoint",(e,t,r)=>e.lastIndexOf(t,r)),no.ofEntryAsStringStringStringStringOutput("Replace",(e,t,r)=>e.replaceAll(t,r)),no.ofEntryAsStringStringStringStringOutput("ReplaceFirst",(e,t,r)=>e.replace(t,r)),no.ofEntryAsStringIntegerIntegerStringOutput("SubString",(e,t,r)=>e.substring(t,r)),C(new nE),C(new nu),C(new nA),C(new nc),C(new ng),C(new nh),C(new np),C(new nT),C(new nm),C(new nR),C(new nf),C(new nl))}static{this.filterableNames=Array.from(nN.repoMap.values()).map(e=>e.getSignature().getFullName())}async find(e,t){return e!=g.STRING?Promise.resolve(void 0):Promise.resolve(nN.repoMap.get(t))}async filter(e){return Promise.resolve(nN.filterableNames.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}class n_{constructor(){}static isLeapYear(e){return e%4==0&&e%100!=0||e%400==0}static validYearRange(e){return e<275761&&e>-271821}static validMonthRange(e){return e<=12&&e>0}static validDate(e,t,r){if(r<=0||t<=0)return!1;switch(t){case 2:return n_.validYearRange(e)&&n_.validMonthRange(t)&&n_.isLeapYear(e)&&r<30||!n_.isLeapYear(e)&&r<29;case 4:case 6:case 9:case 11:return n_.validYearRange(e)&&n_.validMonthRange(t)&&r<=30;default:return n_.validYearRange(e)&&n_.validMonthRange(t)&&r<=31}}static validHourRange(e){return e<24&&e>=0}static validMinuteSecondRange(e){return e<60&&e>=0}static validMilliSecondRange(e){return e<1e3&&e>=0}static validateWithOptionalMillis(e){return n_.validMilliSecondRange(n_.convertToInt(e.substring(1,4)))&&n_.validateLocalTime(e.substring(4))}getYear(e){let t=e.charAt(0);if("+"==t||"-"==t){let r=n_.convertToInt(e.substring(1,7));return"-"==t?-1*r:r}return n_.convertToInt(e.substring(0,4))}static validateLocalTime(e){return"Z"==e.charAt(0)||6==e.length&&("+"==e.charAt(0)||"-"==e.charAt(0))&&n_.validHourRange(n_.convertToInt(e.substring(1,3)))&&":"==e.charAt(3)&&n_.validMinuteSecondRange(n_.convertToInt(e.substring(4,e.length-1)))}static validate(e){if(e.length<20||e.length>32)return!1;let t=e.charAt(0);return"+"==t||"-"==t?"-"==e.charAt(7)&&"-"==e.charAt(10)&&"T"==e.charAt(13)&&":"==e.charAt(16)&&":"==e.charAt(19)&&"."==e.charAt(22)&&n_.validDate(n_.convertToInt(e.substring(1,7)),n_.convertToInt(e.substring(8,10)),n_.convertToInt(e.substring(11,13)))&&n_.validHourRange(n_.convertToInt(e.substring(14,16)))&&n_.validMinuteSecondRange(n_.convertToInt(e.substring(17,19)))&&n_.validMinuteSecondRange(n_.convertToInt(e.substring(20,22)))&&n_.validateWithOptionalMillis(e.substring(22)):"-"==e.charAt(4)&&"-"==e.charAt(7)&&"T"==e.charAt(10)&&":"==e.charAt(13)&&":"==e.charAt(16)&&"."==e.charAt(19)&&n_.validDate(n_.convertToInt(e.substring(0,4)),n_.convertToInt(e.substring(5,7)),n_.convertToInt(e.substring(8,10)))&&n_.validHourRange(n_.convertToInt(e.substring(11,13)))&&n_.validMinuteSecondRange(n_.convertToInt(e.substring(14,16)))&&n_.validMinuteSecondRange(n_.convertToInt(e.substring(17,19)))&&n_.validateWithOptionalMillis(e.substring(19))}static convertToInt(e){var t=parseInt(e);return isNaN(t)?Number.MIN_VALUE:t}}class nS extends el{static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_DATE_NAME="isoDate"}static{this.PARAMETER_FIELD_NAME="value"}static{this.PARAMETER_INT_NAME="intValue"}static{this.PARAMETER_UNIT_NAME="unit"}static{this.PARAMETER_DATE=new v(nS.PARAMETER_DATE_NAME,y.ofString(this.PARAMETER_DATE_NAME).setRef(g.DATE+".timeStamp"))}static{this.PARAMETER_FIELD=new v(nS.PARAMETER_FIELD_NAME,y.ofInteger(this.PARAMETER_FIELD_NAME))}static{this.PARAMETER_INT=new v(nS.PARAMETER_INT_NAME,y.ofInteger(this.PARAMETER_INT_NAME))}static{this.PARAMETER_UNIT=new v(nS.PARAMETER_UNIT_NAME,y.ofString(this.PARAMETER_UNIT_NAME).setEnums(["YEAR","MONTH","DAY","HOUR","MINUTE","SECOND","MILLISECOND"]))}static{this.EVENT_INT=new F(F.OUTPUT,G.of(nS.EVENT_RESULT_NAME,y.ofInteger(nS.EVENT_RESULT_NAME)))}static{this.EVENT_BOOLEAN=new F(F.OUTPUT,G.of(nS.EVENT_RESULT_NAME,y.ofBoolean(nS.EVENT_RESULT_NAME)))}static{this.EVENT_DATE=new F(F.OUTPUT,G.of(nS.EVENT_RESULT_NAME,y.ofString(nS.EVENT_RESULT_NAME).setRef(g.DATE+".timeStamp")))}getSignature(){return this.signature}constructor(e,t,r,...n){super();let a=new Map;n.forEach(e=>a.set(e.getParameterName(),e)),this.signature=new k(t).setNamespace(e).setParameters(a).setEvents(G.of(r.getName(),r))}static ofEntryDateAndBooleanOutput(e,t){return[e,new class extends nS{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e.getArguments()?.get(nS.PARAMETER_DATE_NAME);if(h(r)||!n_.validate(r))throw new B("Please provide a valid date.");return new H([Y.outputOf(G.of(nS.EVENT_RESULT_NAME,t(r)))])}}(g.DATE,e,nS.EVENT_BOOLEAN,nS.PARAMETER_DATE)]}static ofEntryDateAndIntegerOutput(e,t){return[e,new class extends nS{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e.getArguments()?.get(nS.PARAMETER_DATE_NAME);if(h(r)||!n_.validate(r))throw new B("Please provide a valid date object");return new H([Y.outputOf(G.of(nS.EVENT_RESULT_NAME,t(r)))])}}(g.DATE,e,nS.EVENT_INT,nS.PARAMETER_DATE)]}static ofEntryDateWithIntegerUnitWithOutputName(e,t){return[e,new class extends nS{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e.getArguments()?.get(nS.PARAMETER_DATE_NAME);if(h(r)||!n_.validate(r))throw new B("Please provide a valid date object");let n=e.getArguments()?.get(nS.PARAMETER_INT_NAME),a=e.getArguments()?.get(nS.PARAMETER_UNIT_NAME);return new H([Y.outputOf(G.of(nS.EVENT_RESULT_NAME,t(r,n,a)))])}}(g.DATE,e,nS.EVENT_DATE,nS.PARAMETER_DATE,nS.PARAMETER_INT,nS.PARAMETER_UNIT)]}}let nM="result",nd="isoDate";class nw extends el{getSignature(){return new k("DateToEpoch").setNamespace(g.DATE).setParameters(G.of(nd,v.of(nd,y.ofRef(g.DATE+".timeStamp")))).setEvents(new Map([F.outputEventMapEntry(new Map([[nM,y.ofLong(nM)]]))]))}async internalExecute(e){var t=e.getArguments()?.get(nd);if(h(t)||!n_.validate(t))throw new B("Please provide a valid date object");let r=new Date(t).getTime();return new H([Y.of(nM,G.of(nM,r))])}}let nO="isoDateOne",nI="isoDateTwo",nP=new k("DifferenceOfTimestamps").setNamespace(g.DATE).setParameters(new Map([[nO,new v(nO,y.ofString(nO).setRef(g.DATE+".timeStamp"))],[nI,new v(nI,y.ofString(nI).setRef(g.DATE+".timeStamp"))]]));class ny extends el{getSignature(){return nP}async internalExecute(e){let t=e?.getArguments()?.get(nO),r=e?.getArguments()?.get(nI);if(!n_.validate(t)||!n_.validate(r))throw new B("Please provide valid ISO date for both the given dates.");let n=new Date(t),a=new Date(r);return new H([Y.outputOf(new Map([["result",(a.getTime()-n.getTime())/6e4]]))])}}let nx="epoch",nL="date",nv=new k("EpochToDate").setNamespace(g.DATE).setParameters(new Map([[nx,new v(nx,new y().setAnyOf([y.ofInteger(nx),y.ofLong(nx),y.ofString(nx)]))]])).setEvents(new Map([F.outputEventMapEntry(new Map([[nL,y.ofRef(`${g.DATE}.timeStamp`)]]))]));class nU extends el{getSignature(){return nv}async internalExecute(e){var t=e.getArguments()?.get(nx);if(h(t)||"boolean"==typeof t||("string"==typeof t&&(t=parseInt(t)),isNaN(t)))throw new B("Please provide a valid value for epoch.");return t=t>0xe8d4a50fff?t:1e3*t,new H([Y.outputOf(new Map([[nL,new Date(t).toISOString()]]))])}}let nb="date",nV=new k("GetCurrentTimeStamp").setNamespace(g.DATE).setParameters(new Map([])).setEvents(new Map([F.outputEventMapEntry(new Map([[nb,y.ofRef(`${g.DATE}.timeStamp`)]]))]));class nC extends el{getSignature(){return nV}async internalExecute(e){let t=new Date(Date.now()).toISOString();return new H([Y.of(nb,new Map([[nb,t]]))])}}let nD="isoDate",nG="result",n$=new k("GetTimeAsArray").setNamespace(g.DATE).setParameters(G.of(nD,v.of(nD,y.ofRef(g.DATE+".timeStamp")))).setEvents(new Map([F.outputEventMapEntry(new Map([[nG,y.ofArray(nG).setItems(p.of(y.ofNumber("number")))]]))]));class nF extends el{getSignature(){return n$}async internalExecute(e){var t=e.getArguments()?.get(nD);if(h(t)||!n_.validate(t))throw new B("Please provide a valid date object");let r=new Date(t),n=[r.getUTCFullYear(),r.getUTCMonth()+1,r.getUTCDate(),r.getUTCHours(),r.getUTCMinutes(),r.getUTCSeconds(),r.getUTCMilliseconds()];return new H([Y.outputOf(new Map([[nG,n]]))])}}let nY="isoDate",nB="result",nH=new k("GetTimeAsObject").setNamespace(g.DATE).setParameters(G.of(nY,v.of(nY,y.ofRef(g.DATE+".timeStamp")))).setEvents(new Map([F.outputEventMapEntry(new Map([[nB,y.ofObject(nB).setProperties(new Map([["year",y.ofNumber("year")],["month",y.ofNumber("month")],["day",y.ofNumber("day")],["hours",y.ofNumber("hours")],["minutes",y.ofNumber("minutes")],["seconds",y.ofNumber("seconds")],["milliseconds",y.ofNumber("milliseconds")]]))]]))]));class nk extends el{getSignature(){return nH}async internalExecute(e){var t=e.getArguments()?.get(nY);if(h(t)||!n_.validate(t))throw new B("Please provide a valid date object");let r=new Date(t),n={year:r.getUTCFullYear(),month:r.getUTCMonth()+1,day:r.getUTCDate(),hours:r.getUTCHours(),minutes:r.getUTCMinutes(),seconds:r.getUTCSeconds(),milliseconds:r.getUTCMilliseconds()};return new H([Y.outputOf(new Map([[nB,n]]))])}}let nj="isoDate",nW="output",nX=new k("IsValidISODate").setNamespace(g.DATE).setParameters(G.of(nj,v.of(nj,y.ofRef(g.DATE+".timeStamp")))).setEvents(G.of(nW,new F(nW,G.of(nW,y.ofBoolean(nW)))));class nq extends el{getSignature(){return nX}async internalExecute(e){var t=e.getArguments()?.get(nj);if(h(t))throw new B("Please provide a valid date object");return new H([Y.of(nW,G.of(nW,n_.validate(t)))])}}let nJ="isoDates",nz="result",nK="Please provide a valid date",nQ=new k("MaximumTimestamp").setNamespace(g.DATE).setParameters(new Map([[nJ,v.of(nJ,y.ofString(nJ).setRef(g.DATE+".timeStamp")).setVariableArgument(!0)]])).setEvents(new Map([[nz,new F(nz,new Map([[nz,y.ofString(nz).setRef(g.DATE+".timeStamp")]]))]]));class nZ extends el{getSignature(){return nQ}async internalExecute(e){let t=e?.getArguments()?.get(nJ),r=t.length;if(0===r)throw new B(nK);if(1==r){let e=t[0];if(!n_.validate(e))throw new B(nK);return new H([Y.outputOf(new Map([[nz,e]]))])}let n=0,a=new Date(t[0]).getTime();for(let e=1;e<r;e++){let r=t[e];if(!n_.validate(r))throw new B(nK);let s=new Date(r).getTime();s>a&&(a=s,n=e)}return new H([Y.outputOf(new Map([[nz,t[n]]]))])}}let n0="isoDates",n1="result",n2="Please provide a valid date",n7=new k("MinimumTimestamp").setNamespace(g.DATE).setParameters(new Map([[n0,v.of(n0,y.ofString(n0).setRef(g.DATE+".timeStamp")).setVariableArgument(!0)]])).setEvents(new Map([[n1,new F(n1,new Map([[n1,y.ofString(n1).setRef(g.DATE+".timeStamp")]]))]]));class n5 extends el{getSignature(){return n7}async internalExecute(e){let t=e?.getArguments()?.get(n0),r=t.length;if(0===r)throw new B(n2);if(1==r){let e=t[0];if(!n_.validate(e))throw new B(n2);return new H([Y.outputOf(new Map([[n1,e]]))])}let n=0,a=new Date(t[0]).getTime();for(let e=1;e<r;e++){let r=t[e];if(!n_.validate(r))throw new B(n2);let s=new Date(r).getTime();s<a&&(a=s,n=e)}return new H([Y.outputOf(new Map([[n1,t[n]]]))])}}class n4{static{this.repoMap=G.ofArrayEntries(C(new nw),C(new nU),C(new nC),C(new ny),C(new nq),C(new nF),C(new nk),C(new nZ),C(new n5),nS.ofEntryDateAndBooleanOutput("IsLeapYear",e=>{let t=new Date(e).getUTCFullYear();return t%4==0&&t%100!=0||t%400==0}),nS.ofEntryDateAndIntegerOutput("GetDate",e=>new Date(e).getUTCDate()),nS.ofEntryDateAndIntegerOutput("GetDay",e=>new Date(e).getUTCDay()),nS.ofEntryDateAndIntegerOutput("GetFullYear",e=>new Date(e).getUTCFullYear()),nS.ofEntryDateAndIntegerOutput("GetMonth",e=>new Date(e).getUTCMonth()),nS.ofEntryDateAndIntegerOutput("GetHours",e=>new Date(e).getUTCHours()),nS.ofEntryDateAndIntegerOutput("GetMinutes",e=>new Date(e).getUTCMinutes()),nS.ofEntryDateAndIntegerOutput("GetSeconds",e=>new Date(e).getUTCSeconds()),nS.ofEntryDateAndIntegerOutput("GetMilliSeconds",e=>new Date(e).getUTCMilliseconds()),nS.ofEntryDateAndIntegerOutput("GetTime",e=>new Date(e).getTime()),nS.ofEntryDateWithIntegerUnitWithOutputName("AddTime",(e,t,r)=>this.changeAmountToUnit(e,r,t,!0)),nS.ofEntryDateWithIntegerUnitWithOutputName("SubtractTime",(e,t,r)=>this.changeAmountToUnit(e,r,t,!1)))}static{this.filterableNames=Array.from(n4.repoMap.values()).map(e=>e.getSignature().getFullName())}static changeAmountToUnit(e,t,r,n){let a=n?r:-1*r,s=this.getFullUTCDate(e),i=this.getTimezoneOffset(e);switch(t){case"MILLISECOND":s.setMilliseconds(s.getMilliseconds()+a);break;case"SECOND":s.setSeconds(s.getSeconds()+a);break;case"MINUTE":s.setMinutes(s.getMinutes()+a);break;case"HOUR":s.setHours(s.getHours()+a);break;case"DAY":s.setDate(s.getDate()+a);break;case"MONTH":s.setMonth(s.getMonth()+a);break;case"YEAR":s.setFullYear(s.getFullYear()+a);break;default:throw new B("No such unit: "+t)}return this.formatDate(s,i)}static getTimezoneOffset(e){if("Z"===e.charAt(e.length-1))return"+00:00";let t=-1!==e.indexOf("+")?e.lastIndexOf("+"):e.lastIndexOf("-");if(-1===t)return"+00:00";let r=e.substring(t);return 3===r.length?r=r.substring(0,1)+"0"+r.substring(1)+":00":5===r.length&&(r=r.substring(0,3)+":"+r.substring(3)),r}static getFullUTCDate(e){-1!==e.lastIndexOf("+")?e=e.substring(0,e.lastIndexOf("+"))+"Z":-1!==e.lastIndexOf("-")&&(e=e.substring(0,e.lastIndexOf("-"))+"Z");let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,t.getUTCDate(),t.getUTCHours(),t.getUTCMinutes(),t.getUTCSeconds(),t.getUTCMilliseconds()))}static formatDate(e,t){let r=e=>e.toString().padStart(2,"0"),n=0===e.getUTCMonth()?e.getUTCFullYear()-1:e.getUTCFullYear(),a=r(0===e.getUTCMonth()?12:e.getUTCMonth()),s=r(e.getUTCDate()),i=r(e.getUTCHours()),o=r(e.getUTCMinutes()),E=r(e.getUTCSeconds()),u=r(e.getUTCMilliseconds());return`${n}-${a}-${s}T${i}:${o}:${E}.${u}${t}`}find(e,t){return e!=g.DATE?Promise.resolve(void 0):Promise.resolve(n4.repoMap.get(t))}filter(e){return Promise.resolve(n4.filterableNames.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}class n6 extends el{static{this.MILLIS="millis"}static{this.SIGNATURE=new k("Wait").setNamespace(g.SYSTEM).setParameters(new Map([v.ofEntry(n6.MILLIS,y.ofNumber(n6.MILLIS).setMinimum(0).setDefaultValue(0))])).setEvents(new Map([F.outputEventMapEntry(new Map)]))}getSignature(){return n6.SIGNATURE}async internalExecute(e){var t=e.getArguments()?.get(n6.MILLIS);return await new Promise(e=>setTimeout(e,t)),new H([Y.outputOf(new Map)])}}e({},"HybridRepository",()=>n9);class n9{constructor(...e){this.repos=e}async find(e,t){for(let r of this.repos){let n=await r.find(e,t);if(n)return n}}async filter(e){let t=new Set;for(let r of this.repos)(await r.filter(e)).forEach(e=>t.add(e));return Array.from(t)}}let n3=new Map([[g.SYSTEM_CTX,new Map([C(new class extends el{getSignature(){return to}async internalExecute(e){let t=e?.getArguments()?.get(ts);if(e?.getContext()?.has(t))throw new B(j.format("Context already has an element for '$' ",t));let r=y.from(e?.getArguments()?.get(ti));if(!r)throw new B("Schema is not supplied.");return e.getContext().set(t,new ta(r,h(r.getDefaultValue())?void 0:r.getDefaultValue())),new H([Y.outputOf(new Map)])}}),C(new class extends el{getSignature(){return tA}async internalExecute(e){let t=e?.getArguments()?.get(tE);if(!e.getContext()?.has(t))throw new B(j.format("Context don't have an element for '$' ",t));return new H([Y.outputOf(new Map([tu,e.getContext()?.get(t)?.getElement()]))])}}),C(new class extends el{getSignature(){return rh}async internalExecute(e){let t=e?.getArguments()?.get(rc);if(J.isNullOrBlank(t))throw new B("Empty string is not a valid name for the context element");let r=e?.getArguments()?.get(rg),n=new eX(t),a=n.getTokens().peekLast();if(!a.getExpression().startsWith("Context")||a instanceof eX||a instanceof ej&&!a.getElement().toString().startsWith("Context"))throw new em(j.format("The context path $ is not a valid path in context",t));for(let e of n.getOperations().toArray())if(e!=eW.ARRAY_OPERATOR&&e!=eW.OBJECT_OPERATOR)throw new em(j.format("Expected a reference to the context location, but found an expression $",t));for(let r=0;r<n.getTokens().size();r++){let a=n.getTokens().get(r);a instanceof eX&&n.getTokens().set(r,new ej(t,new rl(a).evaluate(e.getValuesMap())))}return this.modifyContext(e,t,r,n)}modifyContext(e,t,r,n){let a=n.getTokens();a.removeLast();let s=n.getOperations();s.removeLast();let i=e.getContext()?.get(a.removeLast().getExpression());if(h(i))throw new B(j.format("Context doesn't have any element with name '$' ",t));if(s.isEmpty())return i.setElement(r),new H([Y.outputOf(new Map)]);let o=i.getElement(),E=s.removeLast(),u=a.removeLast(),A=u instanceof ej?u.getElement():u.getExpression();for(h(o)&&(o=E==eW.OBJECT_OPERATOR?{}:[],i.setElement(o));!s.isEmpty();)o=E==eW.OBJECT_OPERATOR?this.getDataFromObject(o,A,s.peekLast()):this.getDataFromArray(o,A,s.peekLast()),E=s.removeLast(),A=(u=a.removeLast())instanceof ej?u.getElement():u.getExpression();return E==eW.OBJECT_OPERATOR?this.putDataInObject(o,A,r):this.putDataInArray(o,A,r),new H([Y.outputOf(new Map)])}getDataFromArray(e,t,r){if(!Array.isArray(e))throw new B(j.format("Expected an array but found $",e));let n=parseInt(t);if(isNaN(n))throw new B(j.format("Expected an array index but found $",t));if(n<0)throw new B(j.format("Array index is out of bound - $",t));let a=e[n];return h(a)&&(a=r==eW.OBJECT_OPERATOR?{}:[],e[n]=a),a}getDataFromObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new B(j.format("Expected an object but found $",e));let n=e[t];return h(n)&&(n=r==eW.OBJECT_OPERATOR?{}:[],e[t]=n),n}putDataInArray(e,t,r){if(!Array.isArray(e))throw new B(j.format("Expected an array but found $",e));let n=parseInt(t);if(isNaN(n))throw new B(j.format("Expected an array index but found $",t));if(n<0)throw new B(j.format("Array index is out of bound - $",t));e[n]=r}putDataInObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new B(j.format("Expected an object but found $",e));e[t]=r}})])],[g.SYSTEM_LOOP,new Map([C(new class extends el{getSignature(){return rV}async internalExecute(e){let t=e.getArguments()?.get(rL),r=e.getArguments()?.get("to"),n=e.getArguments()?.get(rv),a=n>0,s=t,i=!1,o=e.getStatementExecution()?.getStatement()?.getStatementName();return new H({next(){if(i)return;if(a&&s>=r||!a&&s<=r||o&&e.getExecutionContext()?.get(o))return i=!0,o&&e.getExecutionContext()?.delete(o),Y.outputOf(new Map([[rU,s]]));let t=Y.of(F.ITERATION,new Map([[rb,s]]));return s+=n,t}})}}),C(new class extends el{getSignature(){return rw}async internalExecute(e){let t=e.getArguments()?.get(rS),r=0,n=e.getStatementExecution()?.getStatement()?.getStatementName();return new H({next(){if(r>=t||n&&e.getExecutionContext()?.get(n))return n&&e.getExecutionContext()?.delete(n),Y.outputOf(new Map([[rM,r]]));let a=Y.of(F.ITERATION,new Map([[rd,r]]));return++r,a}})}}),C(new class extends el{getSignature(){return r_}async internalExecute(e){let t=e.getArguments()?.get(rN);return e.getExecutionContext().set(t,!0),new H([Y.outputOf(new Map)])}}),C(new class extends el{getSignature(){return rx}async internalExecute(e){let t=e.getArguments()?.get(rO),r=0,n=e.getStatementExecution()?.getStatement()?.getStatementName();return new H({next(){if(r>=t.length||n&&e.getExecutionContext()?.get(n))return n&&e.getExecutionContext()?.delete(n),Y.outputOf(new Map([[ry,r]]));let a=Y.of(F.ITERATION,new Map([[rP,r],[rI,t[r]]]));return++r,a}})}})])],[g.SYSTEM,new Map([C(new rf),C(new class extends el{getSignature(){return rR}async internalExecute(e){let t=e.getEvents(),r=e.getArguments(),n=r?.get(rT),a=e?.getArguments()?.get(rm).map(t=>{let r=t[rp];if(h(r))throw new B("Expect a value object");let n=r.value;return r.isExpression&&(n=new rl(n).evaluate(e.getValuesMap())),[t.name,n]}).reduce((e,t)=>(e.set(t[0],t[1]),e),new Map);return t?.has(n)||t?.set(n,[]),t?.get(n)?.push(a),new H([Y.outputOf(new Map)])}}),C(new ni),C(new n6),C(new tr)])]]),n8=Array.from(n3.values()).flatMap(e=>Array.from(e.values())).map(e=>e.getSignature().getFullName());class ae extends n9{constructor(){super({find:async(e,t)=>n3.get(e)?.get(t),filter:async e=>Array.from(n8).filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase()))},new r1,new nN,new tn,new ns,new n4)}}e({},"StatementExecution",()=>ar),e({},"StatementMessage",()=>at);class at{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 ar{constructor(e){this.messages=[],this.dependencies=new Set,this.statement=e}getStatement(){return this.statement}setStatement(e){return this.statement=e,this}getMessages(){return this.messages}setMessages(e){return this.messages=e,this}getDependencies(){return this.dependencies}setDependencies(e){return this.dependencies=e,this}getUniqueKey(){return this.statement.getStatementName()}addMessage(e,t){this.messages.push(new at(e,t))}addDependency(e){this.dependencies.add(e)}getDepenedencies(){return this.dependencies}equals(e){return e instanceof ar&&e.statement.equals(this.statement)}}e({},"ContextTokenValueExtractor",()=>an);class an extends eq{static{this.PREFIX="Context."}constructor(e){super(),this.context=e}getValueInternal(e){let t=e.split(eq.REGEX_DOT),r=t[1],n=r.indexOf("["),a=2;return -1!=n&&(r=t[1].substring(0,n),t[1]=t[1].substring(n),a=1),this.retrieveElementFrom(e,t,a,this.context.get(r)?.getElement())}getPrefix(){return an.PREFIX}getStore(){return h(this.context)?this.context:Array.from(this.context.entries()).reduce((e,[t,r])=>(h(r)||(e[t]=r.getElement()),e),{})}}e({},"OutputMapTokenValueExtractor",()=>aa);class aa extends eq{static{this.PREFIX="Steps."}constructor(e){super(),this.output=e}getValueInternal(e){let t=e.split(eq.REGEX_DOT),r=1,n=this.output.get(t[r++]);if(!n||r>=t.length)return;let a=n.get(t[r++]);if(!a||r>t.length)return;if(r===t.length)return a;let s=t[r].indexOf("[");if(-1===s){let n=a.get(t[r++]);return this.retrieveElementFrom(e,t,r,n)}let i=t[r].substring(0,s),o=a.get(i);return this.retrieveElementFrom(e,t,r,{[i]:o})}getPrefix(){return aa.PREFIX}getStore(){return this.convertMapToObj(this.output)}convertMapToObj(e){return 0===e.size?{}:Array.from(e.entries()).reduce((e,[t,r])=>(e[t]=r instanceof Map?this.convertMapToObj(r):r,e),{})}}e({},"ArgumentsTokenValueExtractor",()=>as);class as extends eq{static{this.PREFIX="Arguments."}constructor(e){super(),this.args=e}getValueInternal(e){let t=e.split(eq.REGEX_DOT),r=t[1],n=r.indexOf("["),a=2;return -1!=n&&(r=t[1].substring(0,n),t[1]=t[1].substring(n),a=1),this.retrieveElementFrom(e,t,a,this.args.get(r))}getPrefix(){return as.PREFIX}getStore(){return h(this.args)?this.args:Array.from(this.args.entries()).reduce((e,[t,r])=>(e[t]=r,e),{})}}e({},"GraphVertex",()=>ao),e({},"ExecutionGraph",()=>ai);class ai{constructor(e=!1){this.nodeMap=new Map,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 ao(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 W(this.getVerticesWithNoIncomingEdges()),r=new Set;for(;!t.isEmpty();){if(r.has(t.getFirst().getKey()))return!0;e=t.removeFirst(),r.add(e.getKey()),e.hasOutgoingEdges()&&t.addAll(Array.from(e.getOutVertices().values()).flatMap(e=>Array.from(e)))}return!1}addVertices(e){for(let t of e)this.addVertex(t)}getNodeMap(){return this.nodeMap}isSubGraph(){return this.isSubGrph}toString(){return"Execution Graph : \n"+Array.from(this.nodeMap.values()).map(e=>e.toString()).join("\n")}}class ao{constructor(e,t){this.outVertices=new Map,this.inVertices=new Set,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 K(this,e)),t}addInEdgeTo(e,t){return this.inVertices.add(new K(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 ai(!0);var r=new W(Array.from(this.outVertices.get(e)??[]));for(r.map(e=>e.getData()).forEach(e=>t.addVertex(e));!r.isEmpty();)Array.from(r.pop().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 ");return this.getKey()+":\n In: "+e+"\n Out: \n "+t}}e({},"KIRuntime",()=>al),e({},"JsonExpression",()=>aE);class aE{constructor(e){this.expression=e}getExpression(){return this.expression}}function au(){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)})}e({},"ParameterReferenceType",()=>s),(A=s||(s={})).VALUE="VALUE",A.EXPRESSION="EXPRESSION",e({},"FunctionExecutionParameters",()=>aA);class aA{constructor(e,t,r){this.count=0,this.executionContext=new Map,this.valueExtractors=new Map,this.functionRepository=e,this.schemaRepository=t,this.executionId=r??au()}getExecutionId(){return this.executionId}getContext(){return this.context}setContext(e){this.context=e;let t=new an(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 aa(e);return this.valueExtractors.set(t.getPrefix(),t),this}getCount(){return this.count}setCount(e){return this.count=e,this}getValuesMap(){return this.valueExtractors}getFunctionRepository(){return this.functionRepository}setFunctionRepository(e){return this.functionRepository=e,this}getSchemaRepository(){return this.schemaRepository}setSchemaRepository(e){return this.schemaRepository=e,this}addTokenValueExtractor(...e){for(let t of e)this.valueExtractors.set(t.getPrefix(),t);return this}setValuesMap(e){for(let[t,r]of e.entries())this.valueExtractors.set(t,r);return this}setExecutionContext(e){return this.executionContext=e,this}getExecutionContext(){return this.executionContext}}e({},"StatementMessageType",()=>i),(l=i||(i={})).ERROR="ERROR",l.WARNING="WARNING",l.MESSAGE="MESSAGE";class al extends el{static{this.PARAMETER_NEEDS_A_VALUE='Parameter "$" needs a value'}static{this.STEP_REGEX_PATTERN=RegExp("Steps\\.([a-zA-Z0-9\\\\-]{1,})\\.([a-zA-Z0-9\\\\-]{1,})","g")}static{this.VERSION=1}static{this.MAX_EXECUTION_ITERATIONS=1e7}constructor(e,t=!1){if(super(),this.debugMode=!1,this.debugMode=t,this.fd=e,this.fd.getVersion()>al.VERSION)throw new B("Runtime is at a lower version "+al.VERSION+" and trying to run code from version "+this.fd.getVersion()+".")}getSignature(){return this.fd}async getExecutionPlan(e,t){let r=new ai;for(let n of Array.from(this.fd.getSteps().values()))r.addVertex(await this.prepareStatementExecution(n,e,t));return Array.from(this.makeEdges(r).getT2().entries()).forEach(e=>{let t=r.getNodeMap().get(e[0])?.getData();t&&t.addMessage(i.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 as(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 B("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 W;r.addAll(e.getVerticesWithNoIncomingEdges());let n=new W;for(;(!r.isEmpty()||!n.isEmpty())&&!t.getEvents()?.has(F.OUTPUT);)if(await this.processBranchQue(t,r,n),await this.processExecutionQue(t,r,n),t.setCount(t.getCount()+1),t.getCount()==al.MAX_EXECUTION_ITERATIONS)throw new B("Execution locked in an infinite loop");if(!e.isSubGraph()&&!t.getEvents()?.size){let e=this.getSignature().getEvents();if(e.size&&e.get(F.OUTPUT)?.getParameters()?.size)throw new B("No events raised")}let a=Array.from(t.getEvents()?.entries()??[]).flatMap(e=>e[1].map(t=>Y.of(e[0],t)));return new H(a.length||e.isSubGraph()?a:[Y.of(F.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,a=r.getT4();do if(r.getT1().getVerticesData().map(e=>e.getStatement().getStatementName()).forEach(t=>e.getSteps()?.delete(t)),await this.executeGraph(r.getT1(),e),(n=r.getT3().next())&&(e.getSteps()?.has(a.getData().getStatement().getStatementName())||e.getSteps()?.set(a.getData().getStatement().getStatementName(),new Map),e.getSteps()?.get(a.getData().getStatement().getStatementName())?.set(n.getName(),this.resolveInternalExpressions(n.getResult(),e)),this.debugMode)){let t=a.getData().getStatement();console.log(`EID: ${e.getExecutionId()} Step : ${t.getStatementName()} => ${t.getNamespace()}.${t.getName()}`),console.log(`EID: ${e.getExecutionId()} Event : ${n.getName()} : `,e.getSteps().get(t.getStatementName()).get(n.getName()))}while(n&&n.getName()!=F.OUTPUT)n?.getName()==F.OUTPUT&&a.getOutVertices().has(F.OUTPUT)&&(a?.getOutVertices()?.get(F.OUTPUT)??[]).forEach(async r=>{await this.allDependenciesResolvedVertex(r,e.getSteps())&&t.add(r)})}async executeVertex(e,t,r,n,a){let s,i=e.getData().getStatement();if(i.getExecuteIftrue().size&&!(Array.from(i.getExecuteIftrue().entries())??[]).filter(e=>e[1]).map(([e])=>new rl(e).evaluate(t.getValuesMap())).every(e=>!h(e)&&!1!==e))return;let o=await a.find(i.getNamespace(),i.getName());if(!o)throw new B(j.format("$.$ function is not found.",i.getNamespace(),i.getName()));let E=o?.getSignature().getParameters(),u=this.getArgumentsFromParametersMap(t,i,E??new Map);this.debugMode&&(console.log(`EID: ${t.getExecutionId()} Step : ${i.getStatementName()} => ${i.getNamespace()}.${i.getName()}`),console.log(`EID: ${t.getExecutionId()} Arguments : `,u));let A=t.getContext();s=o instanceof al?new aA(t.getFunctionRepository(),t.getSchemaRepository(),`${t.getExecutionId()}_${i.getStatementName()}`).setArguments(u).setValuesMap(new Map(Array.from(t.getValuesMap().values()).filter(e=>e.getPrefix()!==as.PREFIX&&e.getPrefix()!==aa.PREFIX&&e.getPrefix()!==an.PREFIX).map(e=>[e.getPrefix(),e]))):new aA(t.getFunctionRepository(),t.getSchemaRepository(),t.getExecutionId()).setValuesMap(t.getValuesMap()).setContext(A).setArguments(u).setEvents(t.getEvents()).setSteps(t.getSteps()).setStatementExecution(e.getData()).setCount(t.getCount()).setExecutionContext(t.getExecutionContext());let l=await o.execute(s),c=l.next();if(!c)throw new B(j.format("Executing $ returned no events",i.getStatementName()));let g=c.getName()==F.OUTPUT;if(t.getSteps()?.has(i.getStatementName())||t.getSteps().set(i.getStatementName(),new Map),t.getSteps().get(i.getStatementName()).set(c.getName(),this.resolveInternalExpressions(c.getResult(),t)),this.debugMode&&(console.log(`EID: ${t.getExecutionId()} Step : ${i.getStatementName()} => ${i.getNamespace()}.${i.getName()}`),console.log(`EID: ${t.getExecutionId()} Event : ${c.getName()} : `,t.getSteps().get(i.getStatementName()).get(c.getName()))),g){let r=e.getOutVertices().get(F.OUTPUT);r&&r.forEach(async e=>{await this.allDependenciesResolvedVertex(e,t.getSteps())&&n.add(e)})}else{let t=e.getSubGraphOfType(c.getName()),n=this.makeEdges(t).getT1();r.push(new Z(t,n,l,e))}}resolveInternalExpressions(e,t){return e?Array.from(e.entries()).map(e=>new K(e[0],this.resolveInternalExpression(e[1],t))).reduce((e,t)=>(e.set(t.getT1(),t.getT2()),e),new Map):e}resolveInternalExpression(e,t){if(h(e)||"object"!=typeof e)return e;if(e instanceof aE)return new rl(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())||!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,a=Array.from(t[1]?.values()??[]);if(!a?.length)return new K(t[0],n);let s=r.get(t[0]);return s?(n=s.isVariableArgument()?a.sort((e,t)=>(e.getOrder()??0)-(t.getOrder()??0)).filter(e=>!h(e)).map(t=>this.parameterReferenceEvaluation(e,t)).flatMap(e=>Array.isArray(e)?e:[e]):this.parameterReferenceEvaluation(e,a[0]),new K(t[0],n)):new K(t[0],void 0)}).filter(e=>!h(e.getT2())).reduce((e,t)=>(e.set(t.getT1(),t.getT2()),e),new Map)}parameterReferenceEvaluation(e,t){let r;return t.getType()==s.VALUE?r=this.resolveInternalExpression(t.getValue(),e):t.getType()!=s.EXPRESSION||J.isNullOrBlank(t.getExpression())||(r=new rl(t.getExpression()??"").evaluate(e.getValuesMap())),r}async prepareStatementExecution(e,t,r){let n=new ar(e),a=await t.find(e.getNamespace(),e.getName());if(!a)return n.addMessage(i.ERROR,j.format("$.$ is not available",e.getNamespace(),e.getName())),Promise.resolve(n);let s=new Map(a.getSignature().getParameters());if(!e.getParameterMap())return Promise.resolve(n);for(let t of Array.from(e.getParameterMap().entries())){let e=s.get(t[0]);if(!e)continue;let a=Array.from(t[1]?.values()??[]);if(!a.length&&!e.isVariableArgument()){await et.hasDefaultValueOrNullSchemaType(e.getSchema(),r)||n.addMessage(i.ERROR,j.format(al.PARAMETER_NEEDS_A_VALUE,e.getParameterName())),s.delete(e.getParameterName());continue}if(e.isVariableArgument())for(let t of(a.sort((e,t)=>(e.getOrder()??0)-(t.getOrder()??0)),a))this.parameterReferenceValidation(n,e,t,r);else if(a.length){let t=a[0];this.parameterReferenceValidation(n,e,t,r)}s.delete(e.getParameterName())}if(!h(n.getStatement().getDependentStatements()))for(let e of Array.from(n.getStatement().getDependentStatements().entries()))e[1]&&n.addDependency(e[0]);if(!h(n.getStatement().getExecuteIftrue()))for(let e of Array.from(n.getStatement().getExecuteIftrue().entries()))e[1]&&this.addDependencies(n,e[0]);if(s.size)for(let e of Array.from(s.values()))e.isVariableArgument()||await et.hasDefaultValueOrNullSchemaType(e.getSchema(),r)||n.addMessage(i.ERROR,j.format(al.PARAMETER_NEEDS_A_VALUE,e.getParameterName()));return Promise.resolve(n)}async parameterReferenceValidation(e,t,n,a){if(n){if(n.getType()==s.VALUE){if(h(n.getValue())&&!await et.hasDefaultValueOrNullSchemaType(t.getSchema(),a)&&e.addMessage(i.ERROR,j.format(al.PARAMETER_NEEDS_A_VALUE,t.getParameterName())),h(n.getValue()))return;let s=new W;for(s.push(new K(t.getSchema(),n.getValue()));!s.isEmpty();){let t=s.pop();if(t.getT2() instanceof aE)this.addDependencies(e,t.getT2().getExpression());else{if(h(t.getT1())||h(t.getT1().getType()))continue;if(t.getT1().getType()?.contains(r.ARRAY)&&Array.isArray(t.getT2())){let e=t.getT1().getItems();if(!e)continue;if(e.isSingleType())for(let r of t.getT2())s.push(new K(e.getSingleSchema(),r));else{let r=t.getT2();for(let t=0;t<r.length;t++)s.push(new K(e.getTupleSchema()[t],r[t]))}}else if(t.getT1().getType()?.contains(r.OBJECT)&&"object"==typeof t.getT2()){let r=t.getT1();if(r.getName()===v.EXPRESSION.getName()&&r.getNamespace()===v.EXPRESSION.getNamespace()){let r=t.getT2();r.isExpression&&this.addDependencies(e,r.value)}else if(r.getProperties())for(let e of Object.entries(t.getT2()))r.getProperties().has(e[0])&&s.push(new K(r.getProperties().get(e[0]),e[1]))}}}}else if(n.getType()==s.EXPRESSION){if(J.isNullOrBlank(n.getExpression()))h(et.getDefaultValue(t.getSchema(),a))&&e.addMessage(i.ERROR,j.format(al.PARAMETER_NEEDS_A_VALUE,t.getParameterName()));else try{this.addDependencies(e,n.getExpression())}catch(t){e.addMessage(i.ERROR,j.format("Error evaluating $ : $",n.getExpression(),t))}}}else h(await et.getDefaultValue(t.getSchema(),a))&&e.addMessage(i.ERROR,j.format(al.PARAMETER_NEEDS_A_VALUE,t.getParameterName()))}addDependencies(e,t){t&&Array.from(t.match(al.STEP_REGEX_PATTERN)??[]).forEach(t=>e.addDependency(t))}makeEdges(e){let t=e.getNodeMap().values(),r=[],n=new Map;for(let a of Array.from(t))for(let t of Array.from(a.getData().getDependencies())){let s=t.indexOf(".",6),i=t.substring(6,s),o=t.indexOf(".",s+1),E=-1==o?t.substring(s+1):t.substring(s+1,o);e.getNodeMap().has(i)?a.addInEdgeTo(e.getNodeMap().get(i),E):(r.push(new K(i,E)),n.set(a.getData().getStatement().getStatementName(),j.format("Unable to find the step with name $",i)))}return new K(r,n)}}e({},"KIRunConstants",()=>ac);class ac{static{this.NAMESPACE="namespace"}static{this.NAME="name"}static{this.ID="id"}constructor(){}}e({},"Position",()=>ag);class ag{static{this.SCHEMA_NAME="Position"}static{this.SCHEMA=new y().setNamespace(g.SYSTEM).setName(ag.SCHEMA_NAME).setType(f.of(r.OBJECT)).setProperties(new Map([["left",y.ofFloat("left")],["top",y.ofFloat("top")]]))}constructor(e,t){this.left=e,this.top=t}getLeft(){return this.left}setLeft(e){return this.left=e,this}getTop(){return this.top}setTop(e){return this.top=e,this}static from(e){if(e)return new ag(e.left,e.top)}}e({},"FunctionDefinition",()=>af),e({},"Statement",()=>aT),e({},"AbstractStatement",()=>ah);class ah{constructor(e){if(this.override=!1,!e)return;this.comment=e.comment,this.description=e.description,this.position=e.position?new ag(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}}e({},"ParameterReference",()=>ap);class ap{static{this.SCHEMA_NAME="ParameterReference"}static{this.SCHEMA=new y().setNamespace(g.SYSTEM).setName(ap.SCHEMA_NAME).setType(f.of(r.OBJECT)).setProperties(new Map([["key",y.ofString("key")],["value",y.ofAny("value")],["expression",y.ofString("expression")],["type",y.ofString("type").setEnums(["EXPRESSION","VALUE"])],["order",y.ofInteger("order")]]))}constructor(e){e instanceof ap?(this.key=e.key,this.type=e.type,this.value=h(e.value)?void 0:JSON.parse(JSON.stringify(e.value)),this.expression=e.expression,this.order=e.order):(this.type=e,this.key=au())}getType(){return this.type}setType(e){return this.type=e,this}getKey(){return this.key}setKey(e){return this.key=e,this}getValue(){return this.value}setValue(e){return this.value=e,this}getExpression(){return this.expression}setExpression(e){return this.expression=e,this}setOrder(e){return this.order=e,this}getOrder(){return this.order}static ofExpression(e){let t=new ap(s.EXPRESSION).setExpression(e);return[t.getKey(),t]}static ofValue(e){let t=new ap(s.VALUE).setValue(e);return[t.getKey(),t]}static from(e){return new ap(e.type).setValue(e.value).setExpression(e.expression).setKey(e.key).setOrder(e.order)}}class aT extends ah{static{this.SCHEMA_NAME="Statement"}static{this.SCHEMA=new y().setNamespace(g.SYSTEM).setName(aT.SCHEMA_NAME).setType(f.of(r.OBJECT)).setProperties(new Map([["statementName",y.ofString("statementName")],["comment",y.ofString("comment")],["description",y.ofString("description")],["namespace",y.ofString("namespace")],["name",y.ofString("name")],["dependentStatements",y.ofObject("dependentstatement").setAdditionalProperties(new P().setSchemaValue(y.ofBoolean("exists"))).setDefaultValue({})],["executeIftrue",y.ofObject("executeIftrue").setAdditionalProperties(new P().setSchemaValue(y.ofBoolean("exists"))).setDefaultValue({})],["parameterMap",new y().setName("parameterMap").setAdditionalProperties(new P().setSchemaValue(y.ofObject("parameterReference").setAdditionalProperties(new P().setSchemaValue(ap.SCHEMA))))],["position",ag.SCHEMA]]))}constructor(e,t,r){if(super(e instanceof aT?e:void 0),e instanceof aT)this.statementName=e.statementName,this.name=e.name,this.namespace=e.namespace,e.parameterMap&&(this.parameterMap=new Map(Array.from(e.parameterMap.entries()).map(e=>[e[0],new Map(Array.from(e[1].entries()).map(e=>[e[0],new ap(e[1])]))]))),e.dependentStatements&&(this.dependentStatements=new Map(Array.from(e.dependentStatements.entries())));else{if(this.statementName=e,!r||!t)throw Error("Unknown constructor");this.namespace=t,this.name=r}}getStatementName(){return this.statementName}setStatementName(e){return this.statementName=e,this}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getParameterMap(){return this.parameterMap||(this.parameterMap=new Map),this.parameterMap}setParameterMap(e){return this.parameterMap=e,this}getDependentStatements(){return this.dependentStatements??new Map}setDependentStatements(e){return this.dependentStatements=e,this}getExecuteIftrue(){return this.executeIftrue??new Map}setExecuteIftrue(e){return this.executeIftrue=e,this}equals(e){return e instanceof aT&&e.statementName==this.statementName}static ofEntry(e){return[e.statementName,e]}static from(e){return new aT(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])=>ap.from(t)).map(e=>[e.getKey(),e]))]))).setDependentStatements(new Map(Object.entries(e.dependentStatements??{}))).setExecuteIftrue(new Map(Object.entries(e.executeIftrue??{}))).setPosition(ag.from(e.position)).setComment(e.comment).setDescription(e.description)}}e({},"StatementGroup",()=>am);class am extends ah{static{this.SCHEMA_NAME="StatementGroup"}static{this.SCHEMA=new y().setNamespace(g.SYSTEM).setName(am.SCHEMA_NAME).setType(f.of(r.OBJECT)).setProperties(new Map([["statementGroupName",y.ofString("statementGroupName")],["comment",y.ofString("comment")],["description",y.ofString("description")],["position",ag.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 am(e.statementGroupName,new Map(Object.entries(e.statements||{}).map(([e,t])=>[e,(""+t)?.toLowerCase()=="true"]))).setPosition(ag.from(e.position)).setComment(e.comment).setDescription(e.description)}}let aR=new y().setNamespace(g.SYSTEM).setName("FunctionDefinition").setProperties(new Map([["name",y.ofString("name")],["namespace",y.ofString("namespace")],["parameters",y.ofArray("parameters",v.SCHEMA)],["events",y.ofObject("events").setAdditionalProperties(new P().setSchemaValue(F.SCHEMA))],["steps",y.ofObject("steps").setAdditionalProperties(new P().setSchemaValue(aT.SCHEMA))]]));aR.getProperties()?.set("parts",y.ofArray("parts",aR));class af extends k{static{this.SCHEMA=aR}constructor(e){super(e),this.version=1}getVersion(){return this.version}setVersion(e){return this.version=e,this}getSteps(){return this.steps??new Map}setSteps(e){return this.steps=e,this}getStepGroups(){return this.stepGroups}setStepGroups(e){return this.stepGroups=e,this}getParts(){return this.parts}setParts(e){return this.parts=e,this}static from(e){return e?new af(e.name).setSteps(new Map(Object.values(e.steps??{}).filter(e=>!!e).map(e=>[e.statementName,aT.from(e)]))).setStepGroups(new Map(Object.values(e.stepGroups??{}).filter(e=>!!e).map(e=>[e.statementGroupName,am.from(e)]))).setParts(Array.from(e.parts??[]).filter(e=>!!e).map(e=>af.from(e))).setVersion(e.version??1).setEvents(new Map(Object.values(e.events??{}).filter(e=>!!e).map(e=>[e.name,F.from(e)]))).setParameters(new Map(Object.values(e.parameters??{}).filter(e=>!!e).map(e=>[e.parameterName,v.from(e)]))).setNamespace(e.namespace):new af("unknown")}}e({},"Argument",()=>aN);class aN{constructor(e,t,r){this.argumentIndex=0,this.argumentIndex=e,this.name=t,this.value=r}getArgumentIndex(){return this.argumentIndex}setArgumentIndex(e){return this.argumentIndex=e,this}getName(){return this.name}setName(e){return this.name=e,this}getValue(){return this.value}setValue(e){return this.value=e,this}static of(e,t){return new aN(0,e,t)}}var a_={};t(a_,t4),t(a_,t8),t(a_,rt),t(a_,rn),t(a_,t6);var aS={};t(aS,tp),t(aS,tm),t(aS,tf),t(aS,t_),t(aS,tM),t(aS,tw),t(aS,tI),t(aS,tc),t(aS,ty),t(aS,tL),t(aS,tU),t(aS,tV),t(aS,tD),t(aS,t$),t(aS,tY),t(aS,tH),t(aS,tj),t(aS,tX),t(aS,tJ),t(aS,tZ),t(aS,tK),t(aS,t1),t(aS,t7),t(aS,tl);export{V as KIRunSchemaRepository,ae as KIRunFunctionRepository,eR as PrimitiveUtil,G as MapUtil,$ as MapEntry,h as isNullValue,W as LinkedList,eB as StringBuilder,j as StringFormatter,J as StringUtil,K as Tuple2,Q as Tuple3,Z as Tuple4,eN as ArrayUtil,q as deepEqual,eS as duplicate,ar as StatementExecution,at as StatementMessage,ta as ContextElement,an as ContextTokenValueExtractor,aa as OutputMapTokenValueExtractor,as as ArgumentsTokenValueExtractor,ao as GraphVertex,ai as ExecutionGraph,al as KIRuntime,i as StatementMessageType,aA as FunctionExecutionParameters,eX as Expression,eq as TokenValueExtractor,ri as LiteralTokenValueExtractor,eJ as ObjectValueSetterExtractor,rl as ExpressionEvaluator,eW as Operation,ek as ExpressionToken,eH as ExpressionEvaluationException,ej as ExpressionTokenValue,el as AbstractFunction,g as Namespaces,aE as JsonExpression,P as AdditionalType,y as Schema,ei as NumberValidator,ea as BooleanValidator,es as NullValidator,en as ArrayValidator,er as AnyOfAllOfOneOfValidator,eE as StringValidator,eo as ObjectValidator,eA as SchemaValidator,ee as SchemaValidationException,x as SchemaReferenceException,eu as TypeValidator,p as ArraySchemaType,R as SingleType,f as TypeUtil,m as MultipleType,T as Type,r as SchemaType,et as SchemaUtil,a as StringFormat,n9 as HybridRepository,ac as KIRunConstants,v as Parameter,H as FunctionOutput,ag as Position,af as FunctionDefinition,s as ParameterReferenceType,Y as EventResult,ah as AbstractStatement,aT as Statement,am as StatementGroup,k as FunctionSignature,F as Event,n as ParameterType,aN as Argument,ap as ParameterReference,em as ExecutionException,B as KIRuntimeException,t3 as ArithmeticUnaryMinusOperator,re as ArithmeticUnaryPlusOperator,rr as BitwiseComplementOperator,ra as LogicalNotOperator,t9 as UnaryOperator,tT as ArithmeticAdditionOperator,tR as ArithmeticDivisionOperator,tN as ArithmeticIntegerDivisionOperator,tS as ArithmeticModulusOperator,td as ArithmeticMultiplicationOperator,tO as ArithmeticSubtractionOperator,tP as ArrayOperator,tg as BinaryOperator,tx as BitwiseAndOperator,tv as BitwiseLeftShiftOperator,tb as BitwiseOrOperator,tC as BitwiseRightShiftOperator,tG as BitwiseUnsignedRightShiftOperator,tF as BitwiseXorOperator,tB as LogicalAndOperator,tk as LogicalEqualOperator,tW as LogicalGreaterThanEqualOperator,tq as LogicalGreaterThanOperator,tz as LogicalLessThanEqualOperator,t0 as LogicalNotEqualOperator,tQ as LogicalLessThanOperator,t2 as LogicalOrOperator,t5 as ObjectOperator,th as LogicalNullishCoalescingOperator,ru as ConditionalTernaryOperator};
1
+ function e(e,t,r,n){Object.defineProperty(e,t,{get:r,set:n,enumerable:!0,configurable:!0})}function t(e,t){return Object.keys(t).forEach(function(r){"default"===r||"__esModule"===r||Object.prototype.hasOwnProperty.call(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[r]}})}),e}e({},"KIRunSchemaRepository",()=>V);var r,n,a,s,i,o,E,u,A,l,c={};e(c,"AdditionalType",()=>P),e(c,"Schema",()=>y),e({},"Namespaces",()=>g);class g{static{this.SYSTEM="System"}static{this.SYSTEM_CTX="System.Context"}static{this.SYSTEM_LOOP="System.Loop"}static{this.SYSTEM_ARRAY="System.Array"}static{this.SYSTEM_OBJECT="System.Object"}static{this.MATH="System.Math"}static{this.STRING="System.String"}static{this.DATE="System.Date"}constructor(){}}function h(e){return null==e}e({},"ArraySchemaType",()=>p),e({},"isNullValue",()=>h);class p{constructor(e){if(!e)return;this.singleSchema=e.singleSchema?new y(e.singleSchema):void 0,this.tupleSchema=e.tupleSchema?e.tupleSchema.map(e=>new y(e)):void 0}setSingleSchema(e){return this.singleSchema=e,this}setTupleSchema(e){return this.tupleSchema=e,this}getSingleSchema(){return this.singleSchema}getTupleSchema(){return this.tupleSchema}isSingleType(){return!h(this.singleSchema)}static of(...e){return 1==e.length?new p().setSingleSchema(e[0]):new p().setTupleSchema(e)}static from(e){if(!e)return;if(Array.isArray(e))return new p().setTupleSchema(y.fromListOfSchemas(e));let t=Object.keys(e);if(-1!=t.indexOf("singleSchema"))return new p().setSingleSchema(y.from(e.singleSchema));if(-1!=t.indexOf("tupleSchema"))return new p().setTupleSchema(y.fromListOfSchemas(e.tupleSchema));let r=y.from(e);if(r)return new p().setSingleSchema(r)}}e({},"SchemaType",()=>r),(o=r||(r={})).INTEGER="Integer",o.LONG="Long",o.FLOAT="Float",o.DOUBLE="Double",o.STRING="String",o.OBJECT="Object",o.ARRAY="Array",o.BOOLEAN="Boolean",o.NULL="Null",e({},"TypeUtil",()=>f),e({},"MultipleType",()=>m),e({},"Type",()=>T);class T{}class m extends T{constructor(e){super(),e instanceof m?this.type=new Set(Array.from(e.type)):this.type=new Set(Array.from(e))}getType(){return this.type}setType(e){return this.type=e,this}getAllowedSchemaTypes(){return this.type}contains(e){return this.type?.has(e)}}e({},"SingleType",()=>R);class R extends T{constructor(e){super(),e instanceof R?this.type=e.type:this.type=e}getType(){return this.type}getAllowedSchemaTypes(){return new Set([this.type])}contains(e){return this.type==e}}class f{static of(...e){return 1==e.length?new R(e[0]):new m(new Set(e))}static from(e){return"string"==typeof e?new R(r[f.fromJSONType(e)]):Array.isArray(e)?new m(new Set(e.map(f.fromJSONType).map(e=>e).map(e=>r[e]))):void 0}static fromJSONType(e){let t=e.toUpperCase();return"NUMBER"===t?"DOUBLE":t}}let N="additionalProperty",_="additionalItems",S="enums",M="items",d="System.Schema",w="required",O="version",I="namespace";class P{constructor(e){if(!e||(this.booleanValue=e.booleanValue,!e.schemaValue))return;this.schemaValue=new y(e.schemaValue)}getBooleanValue(){return this.booleanValue}getSchemaValue(){return this.schemaValue}setBooleanValue(e){return this.booleanValue=e,this}setSchemaValue(e){return this.schemaValue=e,this}static from(e){if(h(e))return;let t=new P;if("boolean"==typeof e)t.booleanValue=e;else{let r=Object.keys(e);-1!=r.indexOf("booleanValue")?t.booleanValue=e.booleanValue:-1!=r.indexOf("schemaValue")?t.schemaValue=y.from(e.schemaValue):t.schemaValue=y.from(e)}return t}}class y{static{this.NULL=new y().setNamespace(g.SYSTEM).setName("Null").setType(f.of(r.NULL)).setConstant(void 0)}static{this.TYPE_SCHEMA=new y().setType(f.of(r.STRING)).setEnums(["INTEGER","LONG","FLOAT","DOUBLE","STRING","OBJECT","ARRAY","BOOLEAN","NULL"])}static{this.SCHEMA=new y().setNamespace(g.SYSTEM).setName("Schema").setType(f.of(r.OBJECT)).setProperties(new Map([[I,y.of(I,r.STRING).setDefaultValue("_")],["name",y.ofString("name")],[O,y.of(O,r.INTEGER).setDefaultValue(1)],["ref",y.ofString("ref")],["type",new y().setAnyOf([y.TYPE_SCHEMA,y.ofArray("type",y.TYPE_SCHEMA)])],["anyOf",y.ofArray("anyOf",y.ofRef(d))],["allOf",y.ofArray("allOf",y.ofRef(d))],["oneOf",y.ofArray("oneOf",y.ofRef(d))],["not",y.ofRef(d)],["title",y.ofString("title")],["description",y.ofString("description")],["id",y.ofString("id")],["examples",y.ofAny("examples")],["defaultValue",y.ofAny("defaultValue")],["comment",y.ofString("comment")],[S,y.ofArray(S,y.ofString(S))],["constant",y.ofAny("constant")],["pattern",y.ofString("pattern")],["format",y.of("format",r.STRING).setEnums(["DATETIME","TIME","DATE","EMAIL","REGEX"])],["minLength",y.ofInteger("minLength")],["maxLength",y.ofInteger("maxLength")],["multipleOf",y.ofLong("multipleOf")],["minimum",y.ofNumber("minimum")],["maximum",y.ofNumber("maximum")],["exclusiveMinimum",y.ofNumber("exclusiveMinimum")],["exclusiveMaximum",y.ofNumber("exclusiveMaximum")],["properties",y.of("properties",r.OBJECT).setAdditionalProperties(new P().setSchemaValue(y.ofRef(d)))],["additionalProperties",new y().setName(N).setNamespace(g.SYSTEM).setAnyOf([y.ofBoolean(N),y.ofObject(N).setRef(d)]).setDefaultValue(!0)],[w,y.ofArray(w,y.ofString(w)).setDefaultValue([])],["propertyNames",y.ofRef(d)],["minProperties",y.ofInteger("minProperties")],["maxProperties",y.ofInteger("maxProperties")],["patternProperties",y.of("patternProperties",r.OBJECT).setAdditionalProperties(new P().setSchemaValue(y.ofRef(d)))],[M,new y().setName(M).setAnyOf([y.ofRef(d).setName("item"),y.ofArray("tuple",y.ofRef(d))])],["contains",y.ofRef(d)],["minContains",y.ofInteger("minContains")],["maxContains",y.ofInteger("maxContains")],["minItems",y.ofInteger("minItems")],["maxItems",y.ofInteger("maxItems")],["uniqueItems",y.ofBoolean("uniqueItems")],["additionalItems",new y().setName(_).setNamespace(g.SYSTEM).setAnyOf([y.ofBoolean(_),y.ofObject(_).setRef(d)])],["$defs",y.of("$defs",r.OBJECT).setAdditionalProperties(new P().setSchemaValue(y.ofRef(d)))],["permission",y.ofString("permission")]])).setRequired([])}static ofString(e){return new y().setType(f.of(r.STRING)).setName(e)}static ofInteger(e){return new y().setType(f.of(r.INTEGER)).setName(e)}static ofFloat(e){return new y().setType(f.of(r.FLOAT)).setName(e)}static ofLong(e){return new y().setType(f.of(r.LONG)).setName(e)}static ofDouble(e){return new y().setType(f.of(r.DOUBLE)).setName(e)}static ofAny(e){return new y().setType(f.of(r.INTEGER,r.LONG,r.FLOAT,r.DOUBLE,r.STRING,r.BOOLEAN,r.ARRAY,r.NULL,r.OBJECT)).setName(e)}static ofAnyNotNull(e){return new y().setType(f.of(r.INTEGER,r.LONG,r.FLOAT,r.DOUBLE,r.STRING,r.BOOLEAN,r.ARRAY,r.OBJECT)).setName(e)}static ofNumber(e){return new y().setType(f.of(r.INTEGER,r.LONG,r.FLOAT,r.DOUBLE)).setName(e)}static ofBoolean(e){return new y().setType(f.of(r.BOOLEAN)).setName(e)}static of(e,...t){return new y().setType(f.of(...t)).setName(e)}static ofObject(e){return new y().setType(f.of(r.OBJECT)).setName(e)}static ofRef(e){return new y().setRef(e)}static ofArray(e,...t){return new y().setType(f.of(r.ARRAY)).setName(e).setItems(p.of(...t))}static fromListOfSchemas(e){if(h(e)&&!Array.isArray(e))return;let t=[];for(let r of Array.from(e)){let e=y.from(r);e&&t.push(e)}return t}static fromMapOfSchemas(e){if(h(e))return;let t=new Map;return Object.entries(e).forEach(([e,r])=>{let n=y.from(r);n&&t.set(e,n)}),t}static from(e,t=!1){if(h(e))return;let n=new y;return n.namespace=e.namespace??"_",n.name=e.name,n.version=e.version??1,n.ref=e.ref,t?n.type=new R(r.STRING):n.type=f.from(e.type),n.anyOf=y.fromListOfSchemas(e.anyOf),n.allOf=y.fromListOfSchemas(e.allOf),n.oneOf=y.fromListOfSchemas(e.oneOf),n.not=y.from(e.not),n.description=e.description,n.examples=e.examples?[...e.examples]:void 0,n.defaultValue=e.defaultValue,n.comment=e.comment,n.enums=e.enums?[...e.enums]:void 0,n.constant=e.constant,n.pattern=e.pattern,n.format=e.format,n.minLength=e.minLength,n.maxLength=e.maxLength,n.multipleOf=e.multipleOf,n.minimum=e.minimum,n.maximum=e.maximum,n.exclusiveMinimum=e.exclusiveMinimum,n.exclusiveMaximum=e.exclusiveMaximum,n.properties=y.fromMapOfSchemas(e.properties),n.additionalProperties=P.from(e.additionalProperties),n.required=e.required,n.propertyNames=y.from(e.propertyNames,!0),n.minProperties=e.minProperties,n.maxProperties=e.maxProperties,n.patternProperties=y.fromMapOfSchemas(e.patternProperties),n.items=p.from(e.items),n.additionalItems=P.from(e.additionalItems),n.contains=y.from(e.contains),n.minContains=e.minContains,n.maxContains=e.maxContains,n.minItems=e.minItems,n.maxItems=e.maxItems,n.uniqueItems=e.uniqueItems,n.$defs=y.fromMapOfSchemas(e.$defs),n.permission=e.permission,n}constructor(e){if(this.namespace="_",this.version=1,!e)return;this.namespace=e.namespace,this.name=e.name,this.version=e.version,this.ref=e.ref,h(e.type)||(this.type=e.type instanceof R?new R(e.type):new m(e.type)),this.anyOf=e.anyOf?.map(e=>new y(e)),this.allOf=e.allOf?.map(e=>new y(e)),this.oneOf=e.oneOf?.map(e=>new y(e)),this.not=this.not?new y(this.not):void 0,this.description=e.description,this.examples=e.examples?JSON.parse(JSON.stringify(e.examples)):void 0,this.defaultValue=e.defaultValue?JSON.parse(JSON.stringify(e.defaultValue)):void 0,this.comment=e.comment,this.enums=e.enums?[...e.enums]:void 0,this.constant=e.constant?JSON.parse(JSON.stringify(e.constant)):void 0,this.pattern=e.pattern,this.format=e.format,this.minLength=e.minLength,this.maxLength=e.maxLength,this.multipleOf=e.multipleOf,this.minimum=e.minimum,this.maximum=e.maximum,this.exclusiveMinimum=e.exclusiveMinimum,this.exclusiveMaximum=e.exclusiveMaximum,this.properties=e.properties?new Map(Array.from(e.properties.entries()).map(e=>[e[0],new y(e[1])])):void 0,this.additionalProperties=e.additionalProperties?new P(e.additionalProperties):void 0,this.required=e.required?[...e.required]:void 0,this.propertyNames=e.propertyNames?new y(e.propertyNames):void 0,this.minProperties=e.minProperties,this.maxProperties=e.maxProperties,this.patternProperties=e.patternProperties?new Map(Array.from(e.patternProperties.entries()).map(e=>[e[0],new y(e[1])])):void 0,this.items=e.items?new p(e.items):void 0,this.contains=e.contains?new y(this.contains):void 0,this.minContains=e.minContains,this.maxContains=e.maxContains,this.minItems=e.minItems,this.maxItems=e.maxItems,this.uniqueItems=e.uniqueItems,this.additionalItems=e.additionalItems?new P(e.additionalItems):void 0,this.$defs=e.$defs?new Map(Array.from(e.$defs.entries()).map(e=>[e[0],new y(e[1])])):void 0,this.permission=e.permission}getTitle(){return this.namespace&&"_"!=this.namespace?this.namespace+"."+this.name:this.name}getFullName(){return this.namespace+"."+this.name}get$defs(){return this.$defs}set$defs(e){return this.$defs=e,this}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getVersion(){return this.version}setVersion(e){return this.version=e,this}getRef(){return this.ref}setRef(e){return this.ref=e,this}getType(){return this.type}setType(e){return this.type=e,this}getAnyOf(){return this.anyOf}setAnyOf(e){return this.anyOf=e,this}getAllOf(){return this.allOf}setAllOf(e){return this.allOf=e,this}getOneOf(){return this.oneOf}setOneOf(e){return this.oneOf=e,this}getNot(){return this.not}setNot(e){return this.not=e,this}getDescription(){return this.description}setDescription(e){return this.description=e,this}getExamples(){return this.examples}setExamples(e){return this.examples=e,this}getDefaultValue(){return this.defaultValue}setDefaultValue(e){return this.defaultValue=e,this}getComment(){return this.comment}setComment(e){return this.comment=e,this}getEnums(){return this.enums}setEnums(e){return this.enums=e,this}getConstant(){return this.constant}setConstant(e){return this.constant=e,this}getPattern(){return this.pattern}setPattern(e){return this.pattern=e,this}getFormat(){return this.format}setFormat(e){return this.format=e,this}getMinLength(){return this.minLength}setMinLength(e){return this.minLength=e,this}getMaxLength(){return this.maxLength}setMaxLength(e){return this.maxLength=e,this}getMultipleOf(){return this.multipleOf}setMultipleOf(e){return this.multipleOf=e,this}getMinimum(){return this.minimum}setMinimum(e){return this.minimum=e,this}getMaximum(){return this.maximum}setMaximum(e){return this.maximum=e,this}getExclusiveMinimum(){return this.exclusiveMinimum}setExclusiveMinimum(e){return this.exclusiveMinimum=e,this}getExclusiveMaximum(){return this.exclusiveMaximum}setExclusiveMaximum(e){return this.exclusiveMaximum=e,this}getProperties(){return this.properties}setProperties(e){return this.properties=e,this}getAdditionalProperties(){return this.additionalProperties}setAdditionalProperties(e){return this.additionalProperties=e,this}getAdditionalItems(){return this.additionalItems}setAdditionalItems(e){return this.additionalItems=e,this}getRequired(){return this.required}setRequired(e){return this.required=e,this}getPropertyNames(){return this.propertyNames}setPropertyNames(e){return this.propertyNames=e,this.propertyNames.type=new R(r.STRING),this}getMinProperties(){return this.minProperties}setMinProperties(e){return this.minProperties=e,this}getMaxProperties(){return this.maxProperties}setMaxProperties(e){return this.maxProperties=e,this}getPatternProperties(){return this.patternProperties}setPatternProperties(e){return this.patternProperties=e,this}getItems(){return this.items}setItems(e){return this.items=e,this}getContains(){return this.contains}setContains(e){return this.contains=e,this}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}}e({},"Parameter",()=>v),e({},"SchemaReferenceException",()=>x);class x extends Error{constructor(e,t,r){super(e.trim()?e+"-"+t:t),this.schemaPath=e,this.cause=r}getSchemaPath(){return this.schemaPath}getCause(){return this.cause}}e({},"ParameterType",()=>n),(E=n||(n={})).CONSTANT="CONSTANT",E.EXPRESSION="EXPRESSION";let L="value";class v{static{this.SCHEMA_NAME="Parameter"}static{this.SCHEMA=new y().setNamespace(g.SYSTEM).setName(v.SCHEMA_NAME).setProperties(new Map([["schema",y.SCHEMA],["parameterName",y.ofString("parameterName")],["variableArgument",y.of("variableArgument",r.BOOLEAN).setDefaultValue(!1)],["type",y.ofString("type").setEnums(["EXPRESSION","CONSTANT"])]]))}static{this.EXPRESSION=new y().setNamespace(g.SYSTEM).setName("ParameterExpression").setType(f.of(r.OBJECT)).setProperties(new Map([["isExpression",y.ofBoolean("isExpression").setDefaultValue(!0)],[L,y.ofAny(L)]]))}constructor(e,t){if(this.variableArgument=!1,this.type=n.EXPRESSION,e instanceof v)this.schema=new y(e.schema),this.parameterName=e.parameterName,this.variableArgument=e.variableArgument,this.type=e.type;else{if(!t)throw Error("Unknown constructor signature");this.schema=t,this.parameterName=e}}getSchema(){return this.schema}setSchema(e){return this.schema=e,this}getParameterName(){return this.parameterName}setParameterName(e){return this.parameterName=e,this}isVariableArgument(){return this.variableArgument}setVariableArgument(e){return this.variableArgument=e,this}getType(){return this.type}setType(e){return this.type=e,this}static ofEntry(e,t,r=!1,a=n.EXPRESSION){return[e,new v(e,t).setType(a).setVariableArgument(r)]}static of(e,t,r=!1,a=n.EXPRESSION){return new v(e,t).setType(a).setVariableArgument(r)}static from(e){let t=y.from(e.schema);if(!t)throw new x("","Parameter requires Schema");return new v(e.parameterName,t).setVariableArgument(!!e.variableArgument).setType(e.type??n.EXPRESSION)}}let U=new Map([["any",y.ofAny("any").setNamespace(g.SYSTEM)],["boolean",y.ofBoolean("boolean").setNamespace(g.SYSTEM)],["double",y.ofDouble("double").setNamespace(g.SYSTEM)],["float",y.ofFloat("float").setNamespace(g.SYSTEM)],["integer",y.ofInteger("integer").setNamespace(g.SYSTEM)],["long",y.ofLong("long").setNamespace(g.SYSTEM)],["number",y.ofNumber("number").setNamespace(g.SYSTEM)],["string",y.ofString("string").setNamespace(g.SYSTEM)],["Date.timeStamp",y.ofString("timeStamp").setNamespace(g.DATE)],[v.EXPRESSION.getName(),v.EXPRESSION],[y.NULL.getName(),y.NULL],[y.SCHEMA.getName(),y.SCHEMA]]),b=Array.from(U.values()).map(e=>e.getFullName());class V{async find(e,t){return g.SYSTEM!=e?Promise.resolve(void 0):Promise.resolve(U.get(t))}async filter(e){return Promise.resolve(b.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}function C(e){return[e.getSignature().getName(),e]}e({},"KIRunFunctionRepository",()=>ae);var D={};e(D,"MapUtil",()=>G),e(D,"MapEntry",()=>$);class G{static of(e,t,r,n,a,s,i,o,E,u,A,l,c,g,p,T,m,R,f,N){let _=new Map;return h(e)||h(t)||_.set(e,t),h(r)||h(n)||_.set(r,n),h(a)||h(s)||_.set(a,s),h(i)||h(o)||_.set(i,o),h(E)||h(u)||_.set(E,u),h(A)||h(l)||_.set(A,l),h(c)||h(g)||_.set(c,g),h(p)||h(T)||_.set(p,T),h(m)||h(R)||_.set(m,R),h(f)||h(N)||_.set(f,N),_}static ofArrayEntries(...e){let t=new Map;for(let[r,n]of e)t.set(r,n);return t}static entry(e,t){return new $(e,t)}static ofEntries(...e){let t=new Map;for(let r of e)t.set(r.k,r.v);return t}static ofEntriesArray(...e){let t=new Map;for(let r=0;r<e.length;r++)t.set(e[r][0],e[r][1]);return t}constructor(){}}class ${constructor(e,t){this.k=e,this.v=t}}e({},"EventResult",()=>Y),e({},"Event",()=>F);class F{static{this.OUTPUT="output"}static{this.ERROR="error"}static{this.ITERATION="iteration"}static{this.TRUE="true"}static{this.FALSE="false"}static{this.SCHEMA_NAME="Event"}static{this.SCHEMA=new y().setNamespace(g.SYSTEM).setName(F.SCHEMA_NAME).setType(f.of(r.OBJECT)).setProperties(new Map([["name",y.ofString("name")],["parameters",y.ofObject("parameter").setAdditionalProperties(new P().setSchemaValue(y.SCHEMA))]]))}constructor(e,t){if(e instanceof F)this.name=e.name,this.parameters=new Map(Array.from(e.parameters.entries()).map(e=>[e[0],new y(e[1])]));else{if(this.name=e,!t)throw Error("Unknown constructor format");this.parameters=t}}getName(){return this.name}setName(e){return this.name=e,this}getParameters(){return this.parameters}setParameters(e){return this.parameters=e,this}static outputEventMapEntry(e){return F.eventMapEntry(F.OUTPUT,e)}static eventMapEntry(e,t){return[e,new F(e,t)]}static from(e){return new F(e.name,new Map(Object.entries(e.parameters??{}).map(e=>{let t=y.from(e[1]);if(!t)throw new x("","Event expects a schema");return[e[0],t]})))}}class Y{constructor(e,t){this.name=e,this.result=t}getName(){return this.name}setName(e){return this.name=e,this}getResult(){return this.result}setResult(e){return this.result=e,this}static outputOf(e){return Y.of(F.OUTPUT,e)}static of(e,t){return new Y(e,t)}}e({},"FunctionOutput",()=>H),e({},"KIRuntimeException",()=>B);class B extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class H{constructor(e){if(this.index=0,h(e))throw new B("Function output is generating null");Array.isArray(e)&&e.length&&e[0]instanceof Y?this.fo=e:(this.fo=[],Array.isArray(e)||(this.generator=e))}next(){if(!this.generator)return this.index<this.fo.length?this.fo[this.index++]:void 0;let e=this.generator.next();return e&&this.fo.push(e),e}allResults(){return this.fo}}e({},"FunctionSignature",()=>k);class k{static{this.SCHEMA_NAME="FunctionSignature"}static{this.SCHEMA=new y().setNamespace(g.SYSTEM).setName(k.SCHEMA_NAME).setProperties(new Map([["name",y.ofString("name")],["namespace",y.ofString("namespace")],["parameters",y.ofObject("parameters").setAdditionalProperties(new P().setSchemaValue(v.SCHEMA))],["events",y.ofObject("events").setAdditionalProperties(new P().setSchemaValue(F.SCHEMA))]]))}constructor(e){this.namespace="_",this.parameters=new Map,this.events=new Map,e instanceof k?(this.name=e.name,this.namespace=e.namespace,this.parameters=new Map(Array.from(e.parameters.entries()).map(e=>[e[0],new v(e[1])])),this.events=new Map(Array.from(e.events.entries()).map(e=>[e[0],new F(e[1])]))):this.name=e}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getParameters(){return this.parameters}setParameters(e){return this.parameters=e,this}getEvents(){return this.events}setEvents(e){return this.events=e,this}getFullName(){return this.namespace+"."+this.name}}e({},"AbstractFunction",()=>el),e({},"SchemaValidator",()=>eA),e({},"deepEqual",()=>q),e({},"LinkedList",()=>W),e({},"StringFormatter",()=>j);class j{static format(e,...t){if(!t||0==t.length)return e;let r="",n=0,a="",s=a,i=e.length;for(let o=0;o<i;o++)"$"==(a=e.charAt(o))&&"\\"==s?r=r.substring(0,o-1)+a:"$"==a&&n<t.length?r+=t[n++]:r+=a,s=a;return r.toString()}constructor(){}}class W{constructor(e){if(this.head=void 0,this.tail=void 0,this.length=0,e?.length){for(let t of e)if(this.head){let e=new X(t,this.tail);this.tail.next=e,this.tail=e}else this.tail=this.head=new X(t);this.length=e.length}}push(e){let t=new X(e,void 0,this.head);this.head?(this.head.previous=t,this.head=t):this.tail=this.head=t,this.length++}pop(){if(!this.head)throw Error("List is empty and cannot pop further.");let e=this.head.value;if(this.length--,this.head==this.tail)return this.head=this.tail=void 0,e;let t=this.head;return this.head=t.next,t.next=void 0,t.previous=void 0,this.head.previous=void 0,e}isEmpty(){return!this.length}size(){return this.length}get(e){if(e<0||e>=this.length)throw Error(`${e} is out of bounds [0,${this.length}]`);let t=this.head;for(;e>0;)t=this.head.next,--e;return t.value}set(e,t){if(e<0||e>=this.length)throw new B(j.format("Index $ out of bound to set the value in linked list.",e));let r=this.head;for(;e>0;)r=this.head.next,--e;return r.value=t,this}toString(){let e=this.head,t="";for(;e;)t+=e.value,(e=e.next)&&(t+=", ");return`[${t}]`}toArray(){let e=[],t=this.head;for(;t;)e.push(t.value),t=t.next;return e}peek(){if(!this.head)throw Error("List is empty so cannot peak");return this.head.value}peekLast(){if(!this.tail)throw Error("List is empty so cannot peak");return this.tail.value}getFirst(){if(!this.head)throw Error("List is empty so cannot get first");return this.head.value}removeFirst(){return this.pop()}removeLast(){if(!this.tail)throw Error("List is empty so cannot remove");--this.length;let e=this.tail.value;if(0==this.length)this.head=this.tail=void 0;else{let e=this.tail.previous;e.next=void 0,this.tail.previous=void 0,this.tail=e}return e}addAll(e){return e&&e.length&&e.forEach(this.add.bind(this)),this}add(e){return++this.length,this.tail||this.head?this.head===this.tail?(this.tail=new X(e,this.head),this.head.next=this.tail):(this.tail=new X(e,this.tail),this.tail.previous.next=this.tail):this.head=this.tail=new X(e),this}map(e,t){let r=new W,n=this.head,a=0;for(;n;)r.add(e(n.value,a)),n=n.next,++a;return r}indexOf(e){let t=this.head,r=0;for(;t;){if(q(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 X{constructor(e,t,r){this.value=e,this.next=r,this.previous=t}toString(){return""+this.value}}function q(e,t){let r=new W;r.push(e);let n=new W;for(n.push(t);!r.isEmpty()&&!n.isEmpty();){let e=r.pop(),t=n.pop();if(e===t)continue;let a=typeof e,s=typeof t;if("undefined"===a||"undefined"===s){if(!e&&!t)continue;return!1}if(a!==s)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!=t.length)return!1;for(let a=0;a<e.length;a++)r.push(e[a]),n.push(t[a]);continue}if("object"===a){if("object"!==s||null===e||null===t)return!1;let a=Object.entries(e),i=Object.entries(t);if(a.length!==i.length)return!1;for(let[e,s]of a)r.push(s),n.push(t[e]);continue}return!1}return!0}e({},"StringUtil",()=>J);class J{constructor(){}static nthIndex(e,t,r=0,n){if(!e)throw new B("String cannot be null");if(r<0||r>=e.length)throw new B(j.format("Cannot search from index : $",r));if(n<=0||n>e.length)throw new B(j.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()}}e({},"SchemaUtil",()=>et);var z={};e(z,"Tuple2",()=>K),e(z,"Tuple3",()=>Q),e(z,"Tuple4",()=>Z);class K{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 Q extends K{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 Z extends Q{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}}e({},"SchemaValidationException",()=>ee);class ee 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 et{static{this.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH="Unable to retrive schema from referenced path"}static{this.CYCLIC_REFERENCE_LIMIT_COUNTER=20}static async getDefaultValue(e,t){if(e)return e.getConstant()?e.getConstant():h(e.getDefaultValue())?et.getDefaultValue(await et.getSchemaFromRef(e,t,e.getRef()),t):e.getDefaultValue()}static async hasDefaultValueOrNullSchemaType(e,t){return e?e.getConstant()||!h(e.getDefaultValue())?Promise.resolve(!0):h(e.getRef())?e.getType()?.getAllowedSchemaTypes().has(r.NULL)?Promise.resolve(!0):Promise.resolve(!1):this.hasDefaultValueOrNullSchemaType(await et.getSchemaFromRef(e,t,e.getRef()),t):Promise.resolve(!1)}static async getSchemaFromRef(e,t,r,n=0){if(++n==et.CYCLIC_REFERENCE_LIMIT_COUNTER)throw new ee(r??"","Schema has a cyclic reference");if(!e||!r||J.isNullOrBlank(r))return Promise.resolve(void 0);if(!r.startsWith("#")){var a=await et.resolveExternalSchema(e,t,r);a&&(e=a.getT1(),r=a.getT2())}let s=r.split("/");return 1===s.length?Promise.resolve(e):Promise.resolve(et.resolveInternalSchema(e,t,r,n,s,1))}static async resolveInternalSchema(e,t,n,a,s,i){let o=e;if(i!==s.length){for(;i<s.length;){if("$defs"===s[i]){if(++i>=s.length||!o.get$defs())throw new x(n,et.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);o=o.get$defs()?.get(s[i])}else{if(o&&(!o.getType()?.contains(r.OBJECT)||!o.getProperties()))throw new x(n,"Cannot retrievie schema from non Object type schemas");o=o.getProperties()?.get(s[i])}if(i++,!o||!J.isNullOrBlank(o.getRef())&&!(o=await et.getSchemaFromRef(o,t,o.getRef(),a)))throw new x(n,et.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH)}return Promise.resolve(o)}}static async resolveExternalSchema(e,t,r){if(!t)return Promise.resolve(void 0);let n=J.splitAtFirstOccurance(r??"","/");if(!n[0])return Promise.resolve(void 0);let a=J.splitAtFirstOccurance(n[0],".");if(!a[0]||!a[1])return Promise.resolve(void 0);let s=await t.find(a[0],a[1]);if(!s)return Promise.resolve(void 0);if(!n[1]||""===n[1])return Promise.resolve(new K(s,r));if(r="#/"+n[1],!s)throw new x(r,et.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);return Promise.resolve(new K(s,r))}constructor(){}}e({},"AnyOfAllOfOneOfValidator",()=>er);class er{static validate(e,t,r,n){let a=[];return t.getOneOf()&&!t.getOneOf()?er.oneOf(e,t,r,n,a):t.getAllOf()&&!t.getAllOf()?er.allOf(e,t,r,n,a):t.getAnyOf()&&!t.getAnyOf()&&er.anyOf(e,t,r,n,a),n}static anyOf(e,t,r,n,a){let s=!1;for(let i of t.getAnyOf()??[])try{er.validate(e,i,r,n),s=!0;break}catch(e){s=!1,a.push(e)}if(!s)throw new ee(eA.path(e),"The value don't satisfy any of the schemas.",a)}static allOf(e,t,r,n,a){let s=0;for(let i of t.getAllOf()??[])try{er.validate(e,i,r,n),s++}catch(e){a.push(e)}if(s!==t.getAllOf()?.length)throw new ee(eA.path(e),"The value doesn't satisfy some of the schemas.",a)}static oneOf(e,t,r,n,a){let s=0;for(let i of t.getOneOf()??[])try{er.validate(e,i,r,n),s++}catch(e){a.push(e)}if(1!=s)throw new ee(eA.path(e),0==s?"The value does not satisfy any schema":"The value satisfy more than one schema",a)}constructor(){}}e({},"TypeValidator",()=>eu),e({},"ArrayValidator",()=>en);class en{static async validate(e,t,r,n){if(h(n))throw new ee(eA.path(e),"Expected an array but found null");if(!Array.isArray(n))throw new ee(eA.path(e),n.toString()+" is not an Array");return en.checkMinMaxItems(e,t,n),await en.checkItems(e,t,r,n),en.checkUniqueItems(e,t,n),await en.checkContains(t,e,r,n),n}static async checkContains(e,t,r,n){if(h(e.getContains()))return;let a=await en.countContains(t,e,r,n,h(e.getMinContains())&&h(e.getMaxContains()));if(0===a)throw new ee(eA.path(t),"None of the items are of type contains schema");if(!h(e.getMinContains())&&e.getMinContains()>a)throw new ee(eA.path(t),"The minimum number of the items of type contains schema should be "+e.getMinContains()+" but found "+a);if(!h(e.getMaxContains())&&e.getMaxContains()<a)throw new ee(eA.path(t),"The maximum number of the items of type contains schema should be "+e.getMaxContains()+" but found "+a)}static async countContains(e,t,r,n,a){let s=0;for(let i=0;i<n.length;i++){let o=e?[...e]:[];try{if(await eA.validate(o,t.getContains(),r,n[i]),s++,a)break}catch(e){}}return s}static checkUniqueItems(e,t,r){if(t.getUniqueItems()&&t.getUniqueItems()&&new Set(r).size!==r.length)throw new ee(eA.path(e),"Items on the array are not unique")}static checkMinMaxItems(e,t,r){if(t.getMinItems()&&t.getMinItems()>r.length)throw new ee(eA.path(e),"Array should have minimum of "+t.getMinItems()+" elements");if(t.getMaxItems()&&t.getMaxItems()<r.length)throw new ee(eA.path(e),"Array can have maximum of "+t.getMaxItems()+" elements")}static async checkItems(e,t,r,n){if(!t.getItems())return;let a=t.getItems();if(a.getSingleSchema())for(let t=0;t<n.length;t++){let s=e?[...e]:[],i=await eA.validate(s,a.getSingleSchema(),r,n[t]);n[t]=i}if(a.getTupleSchema()){if(a.getTupleSchema().length!==n.length&&h(t?.getAdditionalItems()))throw new ee(eA.path(e),"Expected an array with only "+a.getTupleSchema().length+" but found "+n.length);await this.checkItemsInTupleSchema(e,r,n,a),await this.checkAdditionalItems(e,t,r,n,a)}}static async checkItemsInTupleSchema(e,t,r,n){for(let a=0;a<n.getTupleSchema()?.length;a++){let s=e?[...e]:[],i=await eA.validate(s,n.getTupleSchema()[a],t,r[a]);r[a]=i}}static async checkAdditionalItems(e,t,r,n,a){if(!h(t.getAdditionalItems())){let s=t.getAdditionalItems();if(s?.getBooleanValue()){let i=y.ofAny("item");if(s?.getBooleanValue()===!1&&n.length>a.getTupleSchema()?.length)throw new ee(eA.path(e),"No Additional Items are defined");await this.checkEachItemInAdditionalItems(e,t,r,n,a,i)}else if(s?.getSchemaValue()){let i=s.getSchemaValue();await this.checkEachItemInAdditionalItems(e,t,r,n,a,i)}}}static async checkEachItemInAdditionalItems(e,t,r,n,a,s){for(let t=a.getTupleSchema()?.length;t<n.length;t++){let a=e?[...e]:[],i=await eA.validate(a,s,r,n[t]);n[t]=i}}constructor(){}}e({},"BooleanValidator",()=>ea);class ea{static validate(e,t,r){if(h(r))throw new ee(eA.path(e),"Expected a boolean but found null");if("boolean"!=typeof r)throw new ee(eA.path(e),r.toString()+" is not a boolean");return r}constructor(){}}e({},"NullValidator",()=>es);class es{static validate(e,t,r){if(h(r))return r;throw new ee(eA.path(e),"Expected a null but found "+r)}constructor(){}}e({},"NumberValidator",()=>ei);class ei{static validate(e,t,r,n){if(h(n))throw new ee(eA.path(t),"Expected a number but found null");if("number"!=typeof n)throw new ee(eA.path(t),n.toString()+" is not a "+e);let a=ei.extractNumber(e,t,r,n);return ei.checkRange(t,r,n,a),ei.checkMultipleOf(t,r,n,a),n}static extractNumber(e,t,n,a){let s=a;try{(e==r.LONG||e==r.INTEGER)&&(s=Math.round(s))}catch(r){throw new ee(eA.path(t),a+" is not a number of type "+e,r)}if(h(s)||(e==r.LONG||e==r.INTEGER)&&s!=a)throw new ee(eA.path(t),a.toString()+" is not a number of type "+e);return s}static checkMultipleOf(e,t,r,n){if(t.getMultipleOf()&&n%t.getMultipleOf()!=0)throw new ee(eA.path(e),r.toString()+" is not multiple of "+t.getMultipleOf())}static checkRange(e,t,r,n){if(!h(t.getMinimum())&&0>ei.numberCompare(n,t.getMinimum()))throw new ee(eA.path(e),r.toString()+" should be greater than or equal to "+t.getMinimum());if(!h(t.getMaximum())&&ei.numberCompare(n,t.getMaximum())>0)throw new ee(eA.path(e),r.toString()+" should be less than or equal to "+t.getMaximum());if(!h(t.getExclusiveMinimum())&&0>=ei.numberCompare(n,t.getExclusiveMinimum()))throw new ee(eA.path(e),r.toString()+" should be greater than "+t.getExclusiveMinimum());if(!h(t.getExclusiveMaximum())&&ei.numberCompare(n,t.getExclusiveMaximum())>0)throw new ee(eA.path(e),r.toString()+" should be less than "+t.getExclusiveMaximum())}static numberCompare(e,t){return e-t}constructor(){}}e({},"ObjectValidator",()=>eo);class eo{static async validate(e,t,r,n){if(h(n))throw new ee(eA.path(e),"Expected an object but found null");if("object"!=typeof n||Array.isArray(n))throw new ee(eA.path(e),n.toString()+" is not an Object");let a=new Set(Object.keys(n));eo.checkMinMaxProperties(e,t,a),t.getPropertyNames()&&await eo.checkPropertyNameSchema(e,t,r,a),t.getRequired()&&eo.checkRequired(e,t,n),t.getProperties()&&await eo.checkProperties(e,t,r,n,a),t.getPatternProperties()&&await eo.checkPatternProperties(e,t,r,n,a),t.getAdditionalProperties()&&await eo.checkAddtionalProperties(e,t,r,n,a)}static async checkPropertyNameSchema(e,t,r,n){for(let a of Array.from(n.values()))try{await eA.validate(e,t.getPropertyNames(),r,a)}catch(t){throw new ee(eA.path(e),"Property name '"+a+"' does not fit the property schema")}}static checkRequired(e,t,r){for(let n of t.getRequired()??[])if(h(r[n]))throw new ee(eA.path(e),n+" is mandatory")}static async checkAddtionalProperties(e,t,r,n,a){let s=t.getAdditionalProperties();if(s.getSchemaValue())for(let t of Array.from(a.values())){let a=e?[...e]:[],i=await eA.validate(a,s.getSchemaValue(),r,n[t]);n[t]=i}else if(!1===s.getBooleanValue()&&a.size)throw new ee(eA.path(e),Array.from(a)+" is/are additional properties which are not allowed.")}static async checkPatternProperties(e,t,r,n,a){let s=new Map;for(let e of Array.from(t.getPatternProperties().keys()))s.set(e,new RegExp(e));for(let i of Array.from(a.values())){let o=e?[...e]:[];for(let e of Array.from(s.entries()))if(e[1].test(i)){let s=await eA.validate(o,t.getPatternProperties().get(e[0]),r,n[i]);n[i]=s,a.delete(i);break}}}static async checkProperties(e,t,r,n,a){for(let s of Array.from(t.getProperties())){let t=n[s[0]];if(!n.hasOwnProperty(s[0])&&h(t)&&h(await et.getDefaultValue(s[1],r)))continue;let i=e?[...e]:[],o=await eA.validate(i,s[1],r,t);n[s[0]]=o,a.delete(s[0])}}static checkMinMaxProperties(e,t,r){if(t.getMinProperties()&&r.size<t.getMinProperties())throw new ee(eA.path(e),"Object should have minimum of "+t.getMinProperties()+" properties");if(t.getMaxProperties()&&r.size>t.getMaxProperties())throw new ee(eA.path(e),"Object can have maximum of "+t.getMaxProperties()+" properties")}constructor(){}}e({},"StringValidator",()=>eE),e({},"StringFormat",()=>a),(u=a||(a={})).DATETIME="DATETIME",u.TIME="TIME",u.DATE="DATE",u.EMAIL="EMAIL",u.REGEX="REGEX";class eE{static{this.TIME=/^([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?([+-][01][0-9]:[0-5][0-9])?$/}static{this.DATE=/^[0-9]{4,4}-([0][0-9]|[1][0-2])-(0[1-9]|[1-2][1-9]|3[01])$/}static{this.DATETIME=/^[0-9]{4,4}-([0][0-9]|[1][0-2])-(0[1-9]|[1-2][1-9]|3[01])T([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?([+-][01][0-9]:[0-5][0-9])?$/}static{this.EMAIL=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/}static validate(e,t,r){if(h(r))throw new ee(eA.path(e),"Expected a string but found "+r);if("string"!=typeof r)throw new ee(eA.path(e),r.toString()+" is not String");t.getFormat()==a.TIME?eE.patternMatcher(e,t,r,eE.TIME,"time pattern"):t.getFormat()==a.DATE?eE.patternMatcher(e,t,r,eE.DATE,"date pattern"):t.getFormat()==a.DATETIME?eE.patternMatcher(e,t,r,eE.DATETIME,"date time pattern"):t.getFormat()==a.EMAIL?eE.patternMatcher(e,t,r,eE.EMAIL,"email pattern"):t.getPattern()&&eE.patternMatcher(e,t,r,new RegExp(t.getPattern()),"pattern "+t.getPattern());let n=r.length;if(t.getMinLength()&&n<t.getMinLength())throw new ee(eA.path(e),"Expected a minimum of "+t.getMinLength()+" characters");if(t.getMaxLength()&&n>t.getMaxLength())throw new ee(eA.path(e),"Expected a maximum of "+t.getMaxLength()+" characters");return r}static patternMatcher(e,t,r,n,a){if(!n.test(r))throw new ee(eA.path(e),r.toString()+" is not matched with the "+a)}constructor(){}}class eu{static async validate(e,t,n,a,s){if(t==r.STRING)eE.validate(e,n,s);else if(t==r.LONG||t==r.INTEGER||t==r.DOUBLE||t==r.FLOAT)ei.validate(t,e,n,s);else if(t==r.BOOLEAN)ea.validate(e,n,s);else if(t==r.OBJECT)await eo.validate(e,n,a,s);else if(t==r.ARRAY)await en.validate(e,n,a,s);else if(t==r.NULL)es.validate(e,n,s);else throw new ee(eA.path(e),t+" is not a valid type.");return s}constructor(){}}class eA{static path(e){return e?e.map(e=>e.getTitle()??"").filter(e=>!!e).reduce((e,t,r)=>e+(0===r?"":".")+t,""):""}static async validate(e,t,r,n){if(!t)throw new ee(eA.path(e),"No schema found to validate");if(e||(e=[]),e.push(t),h(n)&&!h(t.getDefaultValue()))return JSON.parse(JSON.stringify(t.getDefaultValue()));if(!h(t.getConstant()))return eA.constantValidation(e,t,n);if(t.getEnums()&&!t.getEnums()?.length)return eA.enumCheck(e,t,n);if(t.getFormat()&&h(t.getType()))throw new ee(this.path(e),"Type is missing in schema for declared "+t.getFormat()?.toString()+" format.");if(t.getType()&&await eA.typeValidation(e,t,r,n),!J.isNullOrBlank(t.getRef()))return await eA.validate(e,await et.getSchemaFromRef(e[0],r,t.getRef()),r,n);if((t.getOneOf()||t.getAllOf()||t.getAnyOf())&&er.validate(e,t,r,n),t.getNot()){let a=!1;try{await eA.validate(e,t.getNot(),r,n),a=!0}catch(e){a=!1}if(a)throw new ee(eA.path(e),"Schema validated value in not condition.")}return n}static constantValidation(e,t,r){if(!q(t.getConstant(),r))throw new ee(eA.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 ee(eA.path(e),"Value is not one of "+t.getEnums())}static async typeValidation(e,t,r,n){let a,s=!1,i=[];for(a of Array.from(t.getType()?.getAllowedSchemaTypes()?.values()??[]))try{await eu.validate(e,a,t,r,n),s=!0;break}catch(e){s=!1,i.push(e)}if(!s)throw new ee(eA.path(e),"Value "+JSON.stringify(n)+" is not of valid type(s)",i)}constructor(){}}class el{async validateArguments(e,t,r){let n=new Map;for(let a of Array.from(this.getSignature().getParameters().entries())){let s=a[1];try{let r=await this.validateArgument(e,t,a,s);n.set(r.getT1(),r.getT2())}catch(t){let e=this.getSignature();throw new B(`Error while executing the function ${e.getNamespace()}.${e.getName()}'s parameter ${s.getParameterName()} with step name '${r?.getStatement().getStatementName()??"Unknown Step"}' with error : ${t?.message}`)}}return n}async validateArgument(e,t,r,n){let a,s=r[0],i=e.get(r[0]);if(h(i)&&!n.isVariableArgument())return new K(s,await eA.validate(void 0,n.getSchema(),t,void 0));if(!n?.isVariableArgument())return new K(s,await eA.validate(void 0,n.getSchema(),t,i));Array.isArray(i)?a=i:(a=[],h(i)?h(n.getSchema().getDefaultValue())||a.push(n.getSchema().getDefaultValue()):a.push(i));for(let e=0;e<a.length;e++)a[e]=await eA.validate(void 0,n.getSchema(),t,a[e]);return new K(s,a)}async execute(e){let t=await this.validateArguments(e.getArguments()??new Map,e.getSchemaRepository(),e.getStatementExecution());e.setArguments(t);try{return this.internalExecute(e)}catch(r){let t=this.getSignature();throw new B(`Error while executing the function ${t.getNamespace()}.${t.getName()} with step name '${e.getStatementExecution()?.getStatement().getStatementName()??"Unknown Step"}' with error : ${r?.message}`)}}getProbableEventSignature(e){return this.getSignature().getEvents()}}class ec extends el{static{this.EVENT_INDEX_NAME="index"}static{this.EVENT_RESULT_NAME="result"}static{this.EVENT_INDEX=new F(F.OUTPUT,G.of(ec.EVENT_INDEX_NAME,y.ofInteger(ec.EVENT_INDEX_NAME)))}static{this.EVENT_RESULT_INTEGER=new F(F.OUTPUT,G.of(ec.EVENT_RESULT_NAME,y.ofInteger(ec.EVENT_RESULT_NAME)))}static{this.EVENT_RESULT_BOOLEAN=new F(F.OUTPUT,G.of(ec.EVENT_RESULT_NAME,y.ofBoolean(ec.EVENT_RESULT_NAME)))}static{this.EVENT_RESULT_ARRAY=new F(F.OUTPUT,G.of(ec.EVENT_RESULT_NAME,y.ofArray(ec.EVENT_RESULT_NAME,y.ofAny(ec.EVENT_RESULT_NAME))))}static{this.EVENT_RESULT_EMPTY=new F(F.OUTPUT,G.of())}static{this.EVENT_RESULT_ANY=new F(F.OUTPUT,G.of(this.EVENT_RESULT_NAME,y.ofAny(this.EVENT_RESULT_NAME)))}static{this.EVENT_RESULT_OBJECT=new F(F.OUTPUT,G.of(this.EVENT_RESULT_NAME,y.ofObject(this.EVENT_RESULT_NAME)))}static{this.PARAMETER_INT_LENGTH=v.of("length",y.ofInteger("length").setDefaultValue(-1))}static{this.PARAMETER_ARRAY_FIND=v.of("find",y.ofArray("eachFind",y.ofAny("eachFind")))}static{this.PARAMETER_INT_SOURCE_FROM=v.of("srcFrom",y.ofInteger("srcFrom").setDefaultValue(0).setMinimum(0))}static{this.PARAMETER_INT_SECOND_SOURCE_FROM=v.of("secondSrcFrom",y.ofInteger("secondSrcFrom").setDefaultValue(0))}static{this.PARAMETER_INT_FIND_FROM=v.of("findFrom",y.ofInteger("findFrom").setDefaultValue(0))}static{this.PARAMETER_INT_OFFSET=v.of("offset",y.ofInteger("offset").setDefaultValue(0))}static{this.PARAMETER_ROTATE_LENGTH=v.of("rotateLength",y.ofInteger("rotateLength").setDefaultValue(1).setMinimum(1))}static{this.PARAMETER_BOOLEAN_ASCENDING=v.of("ascending",y.ofBoolean("ascending").setDefaultValue(!0))}static{this.PARAMETER_KEY_PATH=v.of("keyPath",y.ofString("keyPath").setDefaultValue(""))}static{this.PARAMETER_FIND_PRIMITIVE=v.of("findPrimitive",y.of("findPrimitive",r.STRING,r.DOUBLE,r.FLOAT,r.INTEGER,r.LONG))}static{this.PARAMETER_ARRAY_SOURCE=v.of("source",y.ofArray("eachSource",y.ofAny("eachSource")))}static{this.PARAMETER_ARRAY_SECOND_SOURCE=v.of("secondSource",y.ofArray("eachSecondSource",y.ofAny("eachSecondSource")))}static{this.PARAMETER_ARRAY_SOURCE_PRIMITIVE=v.of("source",y.ofArray("eachSource",new y().setName("eachSource").setType(f.of(r.STRING,r.NULL,r.INTEGER,r.FLOAT,r.DOUBLE,r.LONG))))}static{this.PARAMETER_BOOLEAN_DEEP_COPY=v.of("deepCopy",y.ofBoolean("deepCopy").setDefaultValue(!0))}static{this.PARAMETER_ANY=v.of("element",y.ofAny("element"))}static{this.PARAMETER_ANY_NOT_NULL=v.of("elementObject",y.ofAnyNotNull("elementObject"))}static{this.PARAMETER_ANY_VAR_ARGS=v.of("element",y.ofAny("element")).setVariableArgument(!0)}static{this.PARAMETER_ARRAY_RESULT=v.of(ec.EVENT_RESULT_NAME,y.ofArray("eachResult",y.ofAny("eachResult")))}constructor(e,t,r){super();let n=new Map;for(let e of t)n.set(e.getParameterName(),e);this.signature=new k(e).setNamespace(g.SYSTEM_ARRAY).setParameters(n).setEvents(G.of(r.getName(),r))}getSignature(){return this.signature}}class eg extends ec{constructor(){super("Concatenate",[ec.PARAMETER_ARRAY_SOURCE,ec.PARAMETER_ARRAY_SECOND_SOURCE],ec.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(ec.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ec.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName());return new H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,[...t,...r]]]))])}}class eh extends ec{constructor(){super("AddFirst",[ec.PARAMETER_ARRAY_SOURCE,ec.PARAMETER_ANY],ec.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(ec.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ec.PARAMETER_ANY.getParameterName());if(0==(t=[...t]).length)return t.push(r),new H([Y.outputOf(new Map([]))]);t.push(r);let n=t.length-1;for(;n>0;){let e=t[n-1];t[n-1]=t[n],t[n--]=e}return new H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,t]]))])}}let ep="keyName";class eT extends ec{constructor(){super("ArrayToArrayOfObjects",[ec.PARAMETER_ARRAY_SOURCE,v.of(ep,y.ofString(ep),!0)],ec.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eT.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ep);if(!t?.length)return new H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,[]]]))]);let n=t.map(e=>{let 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 H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,n]]))])}}e({},"PrimitiveUtil",()=>eR),e({},"ExecutionException",()=>em);class em extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class eR{static findPrimitiveNullAsBoolean(e){if(h(e))return new K(r.BOOLEAN,!1);let t=typeof e;if("object"===t)throw new em(j.format("$ is not a primitive type",e));return"boolean"===t?new K(r.BOOLEAN,e):"string"===t?new K(r.STRING,e):eR.findPrimitiveNumberType(e)}static findPrimitive(e){if(h(e))return new K(r.NULL,void 0);let t=typeof e;if("object"===t)throw new em(j.format("$ is not a primitive type",e));return"boolean"===t?new K(r.BOOLEAN,e):"string"===t?new K(r.STRING,e):eR.findPrimitiveNumberType(e)}static findPrimitiveNumberType(e){if(h(e)||Array.isArray(e)||"object"==typeof e)throw new em(j.format("Unable to convert $ to a number.",e));try{if(Number.isInteger(e))return new K(r.LONG,e);return new K(r.DOUBLE,e)}catch(t){throw new em(j.format("Unable to convert $ to a number.",e),t)}}static compare(e,t){if(e==t)return 0;if(h(e)||h(t))return h(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}let 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 h(e)||h(t)?h(e)&&h(t)?0:h(e)?-1:1:e==t?0:"boolean"==typeof e||"boolean"==typeof t?e?-1:1:"string"==typeof e||"string"==typeof t?e+""<t+""?-1:1:"number"==typeof e||"number"==typeof t?e-t:0}static baseNumberType(e){return Number.isInteger(e)?r.LONG:r.DOUBLE}static toPrimitiveType(e){return e}constructor(){}}class ef extends ec{constructor(){super("BinarySearch",[ef.PARAMETER_ARRAY_SOURCE_PRIMITIVE,ef.PARAMETER_INT_SOURCE_FROM,ef.PARAMETER_FIND_PRIMITIVE,ef.PARAMETER_INT_LENGTH],ef.EVENT_INDEX)}async internalExecute(e){let t=e?.getArguments()?.get(ef.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ef.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(ef.PARAMETER_FIND_PRIMITIVE.getParameterName()),a=e?.getArguments()?.get(ef.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length||r<0||r>t.length)throw new B("Search source array cannot be empty");if(-1==a&&(a=t.length-r),(a=r+a)>t.length)throw new B("End point for array cannot be more than the size of the source array");let s=-1;for(;r<=a;){let e=Math.floor((r+a)/2);if(0==eR.compare(t[e],n)){s=e;break}eR.compare(t[e],n)>0?a=e-1:r=e+1}return new H([Y.outputOf(new Map([[ef.EVENT_INDEX_NAME,s]]))])}}e({},"ArrayUtil",()=>eN);class eN{static removeAListFrom(e,t){if(!t||!e||!e.length||!t.length)return;let r=new Set(t);for(let t=0;t<e.length;t++)r.has(e[t])&&(e.splice(t,1),t--)}static of(...e){let t=Array(e.length);for(let r=0;r<e.length;r++)t[r]=e[r];return t}constructor(){}}class e_ extends ec{constructor(){super("Compare",eN.of(e_.PARAMETER_ARRAY_SOURCE,e_.PARAMETER_INT_SOURCE_FROM,e_.PARAMETER_ARRAY_FIND,e_.PARAMETER_INT_FIND_FROM,e_.PARAMETER_INT_LENGTH),e_.EVENT_RESULT_INTEGER)}async internalExecute(e){var t=e?.getArguments()?.get(e_.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e_.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(e_.PARAMETER_ARRAY_FIND.getParameterName()),a=e?.getArguments()?.get(e_.PARAMETER_INT_FIND_FROM.getParameterName()),s=e?.getArguments()?.get(e_.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new B("Compare source array cannot be empty");if(0==n.length)throw new B("Compare find array cannot be empty");if(-1==s&&(s=t.length-r),r+s>t.length)throw new B(j.format("Source array size $ is less than comparing size $",t.length,r+s));if(a+s>n.length)throw new B(j.format("Find array size $ is less than comparing size $",n.length,a+s));return new H(eN.of(Y.outputOf(G.of(e_.EVENT_RESULT_NAME,this.compare(t,r,r+s,n,a,a+s)))))}compare(e,t,r,n,a,s){if(r<t){let e=t;t=r,r=e}if(s<a){let e=a;a=s,s=e}if(r-t!=s-a)throw new B(j.format("Cannot compare uneven arrays from $ to $ in source array with $ to $ in find array",r,t,s,a));for(let s=t,i=a;s<r;s++,i++){let t=1;if(h(e[s])||h(n[i])){let r=h(e[s]);r==h(n[i])?t=0:r&&(t=-1)}else{let r=typeof e[s],a=typeof n[i];if("object"===r||"object"===a)t=1;else if("string"===r||"string"===a){let r=""+e[s],a=""+n[i];r===a?t=0:r<a&&(t=-1)}else"boolean"===r||"boolean"===a?t=r==a?0:1:"number"===r&&"number"===a&&(t=e[s]-n[i])}if(0!=t)return t}return 0}}function eS(e){return e?globalThis.structuredClone?globalThis.structuredClone(e):JSON.parse(JSON.stringify(e)):e}e({},"duplicate",()=>eS);class eM extends ec{constructor(){super("Copy",[eM.PARAMETER_ARRAY_SOURCE,eM.PARAMETER_INT_SOURCE_FROM,eM.PARAMETER_INT_LENGTH,eM.PARAMETER_BOOLEAN_DEEP_COPY],eM.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(eM.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eM.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(eM.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),r+n>t.length)throw new B(j.format("Array has no elements from $ to $ as the array size is $",r,r+n,t.length));var a=e?.getArguments()?.get(eM.PARAMETER_BOOLEAN_DEEP_COPY.getParameterName());let s=Array(n);for(let e=r;e<r+n;e++)h(t[e])||(s[e-r]=a?eS(t[e]):t[e]);return new H([Y.outputOf(G.of(eM.EVENT_RESULT_NAME,s))])}}class ed extends ec{constructor(){super("Delete",[ec.PARAMETER_ARRAY_SOURCE,ec.PARAMETER_ANY_VAR_ARGS],ec.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(ed.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ed.PARAMETER_ANY_VAR_ARGS.getParameterName());if(null==r)throw new B("The deletable var args are empty. So cannot be proceeded further.");if(0==t.length||0==r.length)throw new B("Expected a source or deletable for an array but not found any");let n=new Set;for(let e=t.length-1;e>=0;e--)for(let a=0;a<r.length;a++)n.has(e)||0!=eR.compare(t[e],r[a])||n.add(t[e]);return new H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,t.filter(e=>!n.has(e))]]))])}}class ew extends ec{constructor(){super("DeleteFirst",[ew.PARAMETER_ARRAY_SOURCE],ew.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(ew.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new B("Given source array is empty");return(t=[...t]).shift(),new H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,t]]))])}}class eO extends ec{constructor(){super("DeleteFrom",[eO.PARAMETER_ARRAY_SOURCE,eO.PARAMETER_INT_SOURCE_FROM,eO.PARAMETER_INT_LENGTH],eO.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eO.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eO.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(eO.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new B("There are no elements to be deleted");if(r>=(t=[...t]).length||r<0)throw new B("The int source for the array should be in between 0 and length of the array ");if(-1==n&&(n=t.length-r),r+n>t.length)throw new B("Requested length to be deleted is more than the size of array ");return t.splice(r,n),new H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,t]]))])}}class eI extends ec{constructor(){super("DeleteLast",[eI.PARAMETER_ARRAY_SOURCE],eI.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eI.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new B("Given source array is empty");return(t=[...t]).pop(),new H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,t]]))])}}class eP extends ec{constructor(){super("Disjoint",[eP.PARAMETER_ARRAY_SOURCE,eP.PARAMETER_INT_SOURCE_FROM,eP.PARAMETER_ARRAY_SECOND_SOURCE,eP.PARAMETER_INT_SECOND_SOURCE_FROM,eP.PARAMETER_INT_LENGTH],eP.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eP.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eP.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(eP.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),a=e?.getArguments()?.get(eP.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eP.PARAMETER_INT_LENGTH.getParameterName());if(-1==s&&(s=t.length<=n.length?t.length-r:n.length-a),s>t.length||s>n.length||r+s>t.length||a+s>n.length)throw new B("The length which was being requested is more than than the size either source array or second source array");let i=new Set,o=new Set;for(let e=0;e<s;e++)i.add(t[e+r]);for(let e=0;e<s;e++)o.add(n[e+a]);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 H([Y.outputOf(new Map([[eP.EVENT_RESULT_NAME,[...E]]]))])}}class ey extends ec{constructor(){super("Equals",[ey.PARAMETER_ARRAY_SOURCE,ey.PARAMETER_INT_SOURCE_FROM,ey.PARAMETER_ARRAY_FIND,ey.PARAMETER_INT_FIND_FROM,ey.PARAMETER_INT_LENGTH],ey.EVENT_RESULT_BOOLEAN)}async internalExecute(e){let t=new e_,r=(await t.execute(e)).allResults()[0].getResult().get(ey.EVENT_RESULT_NAME);return new H([Y.outputOf(G.of(ey.EVENT_RESULT_NAME,0==r))])}}class ex extends ec{constructor(){super("Fill",[ex.PARAMETER_ARRAY_SOURCE,ex.PARAMETER_INT_SOURCE_FROM,ex.PARAMETER_INT_LENGTH,ex.PARAMETER_ANY],ex.EVENT_RESULT_EMPTY)}async internalExecute(e){var t=e?.getArguments()?.get(ex.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ex.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(ex.PARAMETER_INT_LENGTH.getParameterName()),a=e?.getArguments()?.get(ex.PARAMETER_ANY.getParameterName());if(r<0)throw new B(j.format("Arrays out of bound trying to access $ index",r));-1==n&&(n=t.length-r);let s=r+n-t.length;if(t=[...t],s>0)for(let e=0;e<s;e++)t.push();for(let e=r;e<r+n;e++)t[e]=h(a)?a:eS(a);return new H([Y.outputOf(G.of(ec.EVENT_RESULT_NAME,t))])}}class eL extends ec{constructor(){super("Frequency",[eL.PARAMETER_ARRAY_SOURCE,eL.PARAMETER_ANY,eL.PARAMETER_INT_SOURCE_FROM,eL.PARAMETER_INT_LENGTH],eL.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eL.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eL.PARAMETER_ANY.getParameterName()),n=e?.getArguments()?.get(eL.PARAMETER_INT_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(eL.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)return new H([Y.outputOf(new Map([[eL.EVENT_RESULT_NAME,0]]))]);if(n>t.length)throw new B("Given start point is more than the size of source");let s=n+a;if(-1==a&&(s=t.length-n),s>t.length)throw new B("Given length is more than the size of source");let i=0;for(let e=n;e<s&&e<t.length;e++)0==eR.compare(t[e],r)&&i++;return new H([Y.outputOf(new Map([[eL.EVENT_RESULT_NAME,i]]))])}}class ev extends ec{constructor(){super("IndexOf",[ev.PARAMETER_ARRAY_SOURCE,ev.PARAMETER_ANY_NOT_NULL,ev.PARAMETER_INT_FIND_FROM],ev.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(ev.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(ev.PARAMETER_ANY_NOT_NULL.getParameterName());let n=e?.getArguments()?.get(ev.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new H([Y.outputOf(new Map([[ev.EVENT_RESULT_NAME,-1]]))]);if(n<0||n>t.length)throw new B("The size of the search index of the array is greater than the size of the array");let a=-1;for(let e=n;e<t.length;e++)if(0==eR.compare(t[e],r)){a=e;break}return new H([Y.outputOf(new Map([[ev.EVENT_RESULT_NAME,a]]))])}}class eU extends ec{constructor(){super("IndexOfArray",[eU.PARAMETER_ARRAY_SOURCE,eU.PARAMETER_ARRAY_SECOND_SOURCE,eU.PARAMETER_INT_FIND_FROM],eU.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eU.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eU.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(eU.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length||0==r.length)return new H([Y.outputOf(new Map([[eU.EVENT_RESULT_NAME,-1]]))]);if(n<0||n>t.length||t.length<r.length)throw new B("Given from second source is more than the size of the source array");let a=r.length,s=-1;for(let e=n;e<t.length;e++){let n=0;if(0==eR.compare(t[e],r[n])){for(;n<a&&0==eR.compare(t[e+n],r[n]);)n++;if(n==a){s=e;break}}}return new H([Y.outputOf(new Map([[eU.EVENT_RESULT_NAME,s]]))])}}class eb extends ec{constructor(){super("LastIndexOf",[eb.PARAMETER_ARRAY_SOURCE,eb.PARAMETER_ANY_NOT_NULL,eb.PARAMETER_INT_FIND_FROM],eb.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eb.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(eb.PARAMETER_ANY_NOT_NULL.getParameterName());let n=e?.getArguments()?.get(eb.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new H([Y.outputOf(new Map([[eb.EVENT_RESULT_NAME,-1]]))]);if(n<0||n>t.length)throw new B("The value of length shouldn't the exceed the size of the array or shouldn't be in terms");let a=-1;for(let e=t.length-1;e>=n;e--)if(0==eR.compare(t[e],r)){a=e;break}return new H([Y.outputOf(new Map([[eb.EVENT_RESULT_NAME,a]]))])}}class eV extends ec{constructor(){super("LastIndexOfArray",[eV.PARAMETER_ARRAY_SOURCE,eV.PARAMETER_ARRAY_SECOND_SOURCE,eV.PARAMETER_INT_FIND_FROM],eV.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eV.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eV.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(eV.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new H([Y.outputOf(new Map([[eV.EVENT_RESULT_NAME,-1]]))]);if(n<0||n>t.length||r.length>t.length)throw new B("Given from index is more than the size of the source array");let a=r.length,s=-1;for(let e=n;e<t.length;e++){let n=0;if(0==eR.compare(t[e],r[n])){for(;n<a&&0==eR.compare(t[e+n],r[n]);)n++;n==a&&(s=e)}}return new H([Y.outputOf(new Map([[eV.EVENT_RESULT_NAME,s]]))])}}class eC extends ec{constructor(){super("Max",[eC.PARAMETER_ARRAY_SOURCE_PRIMITIVE],eC.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(eC.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==t.length)throw new B("Search source array cannot be empty");let r=t[0];for(let e=1;e<t.length;e++){let n=t[e];eR.comparePrimitive(r,n)>=0||(r=n)}return new H([Y.outputOf(new Map([[eC.EVENT_RESULT_NAME,r]]))])}}class eD extends ec{constructor(){super("Min",[eD.PARAMETER_ARRAY_SOURCE_PRIMITIVE],eD.EVENT_RESULT_ANY)}async internalExecute(e){let t,r=e?.getArguments()?.get(eD.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==r.length)throw new B("Search source array cannot be empty");for(let e=0;e<r.length;e++)!h(r[e])&&(void 0===t||0>eR.comparePrimitive(r[e],t))&&(t=r[e]);return new H([Y.outputOf(new Map([[eD.EVENT_RESULT_NAME,t]]))])}}class eG extends ec{constructor(){super("MisMatch",[eG.PARAMETER_ARRAY_SOURCE,eG.PARAMETER_INT_FIND_FROM,eG.PARAMETER_ARRAY_SECOND_SOURCE,eG.PARAMETER_INT_SECOND_SOURCE_FROM,eG.PARAMETER_INT_LENGTH],eG.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eG.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eG.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(eG.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),a=e?.getArguments()?.get(eG.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eG.PARAMETER_INT_LENGTH.getParameterName()),i=r<t.length&&r>0?r:0,o=a<n.length&&a>0?a:0;if(i+s>=t.length||o+s>n.length)throw new B("The size of the array for first and second which was being requested is more than size of the given array");let E=-1;for(let e=0;e<s;e++)if(t[i+e]!=n[o+e]){E=e;break}return new H([Y.outputOf(new Map([[eG.EVENT_RESULT_NAME,E]]))])}}class e$ extends ec{constructor(){super("Reverse",[e$.PARAMETER_ARRAY_SOURCE,e$.PARAMETER_INT_SOURCE_FROM,e$.PARAMETER_INT_LENGTH],e$.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(e$.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e$.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(e$.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),n>=t.length||n<0||r<0)throw new B("Please provide start point between the start and end indexes or provide the length which was less than the source size ");t=[...t];let a=r+n-1;for(;r<=a;){let e=t[r],n=t[a];t[r++]=n,t[a--]=e}return new H([Y.outputOf(new Map([[e$.EVENT_RESULT_NAME,t]]))])}}class eF extends ec{constructor(){super("Rotate",[eF.PARAMETER_ARRAY_SOURCE,eF.PARAMETER_ROTATE_LENGTH],eF.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(eF.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eF.PARAMETER_ROTATE_LENGTH.getParameterName());if(0==t.length)return new H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,t]]))]);let n=(t=[...t]).length;return r%=n,this.rotate(t,0,r-1),this.rotate(t,r,n-1),this.rotate(t,0,n-1),new H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,t]]))])}rotate(e,t,r){for(;t<r;){let n=e[t];e[t++]=e[r],e[r--]=n}}}class eY extends ec{constructor(){super("Shuffle",[eY.PARAMETER_ARRAY_SOURCE],eY.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(eY.PARAMETER_ARRAY_SOURCE.getParameterName());if(t.length<=1)return new H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,t]]))]);let r=0,n=(t=[...t]).length;for(let e=0;e<n;e++){let e=Math.floor(Math.random()*n)%n,a=t[r];t[r]=t[e],t[e]=a,r=e}return new H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,t]]))])}}e({},"ObjectValueSetterExtractor",()=>eJ),e({},"Expression",()=>eX),e({},"StringBuilder",()=>eB);class eB{constructor(e){this.str=e??""}append(e){return this.str+=e,this}toString(){return""+this.str}trim(){return this.str=this.str.trim(),this}setLength(e){return this.str=this.str.substring(0,e),this}length(){return this.str.length}charAt(e){return this.str.charAt(e)}deleteCharAt(e){return this.checkIndex(e),this.str=this.str.substring(0,e)+this.str.substring(e+1),this}insert(e,t){return this.str=this.str.substring(0,e)+t+this.str.substring(e),this}checkIndex(e){if(e>=this.str.length)throw new B(`Index ${e} is greater than or equal to ${this.str.length}`)}substring(e,t){return this.str.substring(e,t)}}e({},"ExpressionEvaluationException",()=>eH);class eH extends Error{constructor(e,t,r){super(j.format("$ : $",e,t)),this.cause=r}getCause(){return this.cause}}e({},"ExpressionToken",()=>ek);class ek{constructor(e){this.expression=e}getExpression(){return this.expression}toString(){return this.expression}}e({},"ExpressionTokenValue",()=>ej);class ej extends ek{constructor(e,t){super(e),this.element=t}getTokenValue(){return this.element}getElement(){return this.element}toString(){return j.format("$: $",this.expression,this.element)}}e({},"Operation",()=>eW);class eW{static{this.MULTIPLICATION=new eW("*")}static{this.DIVISION=new eW("/")}static{this.INTEGER_DIVISION=new eW("//")}static{this.MOD=new eW("%")}static{this.ADDITION=new eW("+")}static{this.SUBTRACTION=new eW("-")}static{this.NOT=new eW("not",void 0,!0)}static{this.AND=new eW("and",void 0,!0)}static{this.OR=new eW("or",void 0,!0)}static{this.LESS_THAN=new eW("<")}static{this.LESS_THAN_EQUAL=new eW("<=")}static{this.GREATER_THAN=new eW(">")}static{this.GREATER_THAN_EQUAL=new eW(">=")}static{this.EQUAL=new eW("=")}static{this.NOT_EQUAL=new eW("!=")}static{this.BITWISE_AND=new eW("&")}static{this.BITWISE_OR=new eW("|")}static{this.BITWISE_XOR=new eW("^")}static{this.BITWISE_COMPLEMENT=new eW("~")}static{this.BITWISE_LEFT_SHIFT=new eW("<<")}static{this.BITWISE_RIGHT_SHIFT=new eW(">>")}static{this.BITWISE_UNSIGNED_RIGHT_SHIFT=new eW(">>>")}static{this.UNARY_PLUS=new eW("UN: +","+")}static{this.UNARY_MINUS=new eW("UN: -","-")}static{this.UNARY_LOGICAL_NOT=new eW("UN: not","not")}static{this.UNARY_BITWISE_COMPLEMENT=new eW("UN: ~","~")}static{this.ARRAY_OPERATOR=new eW("[")}static{this.OBJECT_OPERATOR=new eW(".")}static{this.NULLISH_COALESCING_OPERATOR=new eW("??")}static{this.CONDITIONAL_TERNARY_OPERATOR=new eW("?")}static{this.VALUE_OF=new Map([["MULTIPLICATION",eW.MULTIPLICATION],["DIVISION",eW.DIVISION],["INTEGER_DIVISON",eW.INTEGER_DIVISION],["MOD",eW.MOD],["ADDITION",eW.ADDITION],["SUBTRACTION",eW.SUBTRACTION],["NOT",eW.NOT],["AND",eW.AND],["OR",eW.OR],["LESS_THAN",eW.LESS_THAN],["LESS_THAN_EQUAL",eW.LESS_THAN_EQUAL],["GREATER_THAN",eW.GREATER_THAN],["GREATER_THAN_EQUAL",eW.GREATER_THAN_EQUAL],["EQUAL",eW.EQUAL],["NOT_EQUAL",eW.NOT_EQUAL],["BITWISE_AND",eW.BITWISE_AND],["BITWISE_OR",eW.BITWISE_OR],["BITWISE_XOR",eW.BITWISE_XOR],["BITWISE_COMPLEMENT",eW.BITWISE_COMPLEMENT],["BITWISE_LEFT_SHIFT",eW.BITWISE_LEFT_SHIFT],["BITWISE_RIGHT_SHIFT",eW.BITWISE_RIGHT_SHIFT],["BITWISE_UNSIGNED_RIGHT_SHIFT",eW.BITWISE_UNSIGNED_RIGHT_SHIFT],["UNARY_PLUS",eW.UNARY_PLUS],["UNARY_MINUS",eW.UNARY_MINUS],["UNARY_LOGICAL_NOT",eW.UNARY_LOGICAL_NOT],["UNARY_BITWISE_COMPLEMENT",eW.UNARY_BITWISE_COMPLEMENT],["ARRAY_OPERATOR",eW.ARRAY_OPERATOR],["OBJECT_OPERATOR",eW.OBJECT_OPERATOR],["NULLISH_COALESCING_OPERATOR",eW.NULLISH_COALESCING_OPERATOR],["CONDITIONAL_TERNARY_OPERATOR",eW.CONDITIONAL_TERNARY_OPERATOR]])}static{this.UNARY_OPERATORS=new Set([eW.ADDITION,eW.SUBTRACTION,eW.NOT,eW.BITWISE_COMPLEMENT,eW.UNARY_PLUS,eW.UNARY_MINUS,eW.UNARY_LOGICAL_NOT,eW.UNARY_BITWISE_COMPLEMENT])}static{this.ARITHMETIC_OPERATORS=new Set([eW.MULTIPLICATION,eW.DIVISION,eW.INTEGER_DIVISION,eW.MOD,eW.ADDITION,eW.SUBTRACTION])}static{this.LOGICAL_OPERATORS=new Set([eW.NOT,eW.AND,eW.OR,eW.LESS_THAN,eW.LESS_THAN_EQUAL,eW.GREATER_THAN,eW.GREATER_THAN_EQUAL,eW.EQUAL,eW.NOT_EQUAL,eW.NULLISH_COALESCING_OPERATOR])}static{this.BITWISE_OPERATORS=new Set([eW.BITWISE_AND,eW.BITWISE_COMPLEMENT,eW.BITWISE_LEFT_SHIFT,eW.BITWISE_OR,eW.BITWISE_RIGHT_SHIFT,eW.BITWISE_UNSIGNED_RIGHT_SHIFT,eW.BITWISE_XOR])}static{this.CONDITIONAL_OPERATORS=new Set([eW.CONDITIONAL_TERNARY_OPERATOR])}static{this.OPERATOR_PRIORITY=new Map([[eW.UNARY_PLUS,1],[eW.UNARY_MINUS,1],[eW.UNARY_LOGICAL_NOT,1],[eW.UNARY_BITWISE_COMPLEMENT,1],[eW.ARRAY_OPERATOR,1],[eW.OBJECT_OPERATOR,1],[eW.MULTIPLICATION,2],[eW.DIVISION,2],[eW.INTEGER_DIVISION,2],[eW.MOD,2],[eW.ADDITION,3],[eW.SUBTRACTION,3],[eW.BITWISE_LEFT_SHIFT,4],[eW.BITWISE_RIGHT_SHIFT,4],[eW.BITWISE_UNSIGNED_RIGHT_SHIFT,4],[eW.LESS_THAN,5],[eW.LESS_THAN_EQUAL,5],[eW.GREATER_THAN,5],[eW.GREATER_THAN_EQUAL,5],[eW.EQUAL,6],[eW.NOT_EQUAL,6],[eW.BITWISE_AND,7],[eW.BITWISE_XOR,8],[eW.BITWISE_OR,9],[eW.AND,10],[eW.OR,11],[eW.NULLISH_COALESCING_OPERATOR,11],[eW.CONDITIONAL_TERNARY_OPERATOR,12]])}static{this.OPERATORS=new Set([...Array.from(eW.ARITHMETIC_OPERATORS),...Array.from(eW.LOGICAL_OPERATORS),...Array.from(eW.BITWISE_OPERATORS),eW.ARRAY_OPERATOR,eW.OBJECT_OPERATOR,...Array.from(eW.CONDITIONAL_OPERATORS)].map(e=>e.getOperator()))}static{this.OPERATORS_WITHOUT_SPACE_WRAP=new Set([...Array.from(eW.ARITHMETIC_OPERATORS),...Array.from(eW.LOGICAL_OPERATORS),...Array.from(eW.BITWISE_OPERATORS),eW.ARRAY_OPERATOR,eW.OBJECT_OPERATOR,...Array.from(eW.CONDITIONAL_OPERATORS)].filter(e=>!e.shouldBeWrappedInSpace()).map(e=>e.getOperator()))}static{this.OPERATION_VALUE_OF=new Map(Array.from(eW.VALUE_OF.entries()).map(([e,t])=>[t.getOperator(),t]))}static{this.UNARY_MAP=new Map([[eW.ADDITION,eW.UNARY_PLUS],[eW.SUBTRACTION,eW.UNARY_MINUS],[eW.NOT,eW.UNARY_LOGICAL_NOT],[eW.BITWISE_COMPLEMENT,eW.UNARY_BITWISE_COMPLEMENT],[eW.UNARY_PLUS,eW.UNARY_PLUS],[eW.UNARY_MINUS,eW.UNARY_MINUS],[eW.UNARY_LOGICAL_NOT,eW.UNARY_LOGICAL_NOT],[eW.UNARY_BITWISE_COMPLEMENT,eW.UNARY_BITWISE_COMPLEMENT]])}static{this.BIGGEST_OPERATOR_SIZE=Array.from(eW.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 eW.VALUE_OF.get(e)}toString(){return this.operator}}class eX extends ek{constructor(e,t,r,n){super(e||""),this.tokens=new W,this.ops=new W,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(){let e;let t=this.expression.length,r="",n=new eB(""),a=0,s=!1;for(;a<t;){switch(r=this.expression[a],e=n.toString(),r){case" ":s=this.processTokenSepearator(n,e,s);break;case"(":a=this.processSubExpression(t,n,e,a,s),s=!1;break;case")":throw new eH(this.expression,"Extra closing parenthesis found");case"]":throw new eH(this.expression,"Extra closing square bracket found");case"'":case'"':{let e=this.processStringLiteral(t,r,a);a=e.getT1(),s=e.getT2();break}case"?":if(a+1<t&&"?"!=this.expression.charAt(a+1)&&0!=a&&"?"!=this.expression.charAt(a-1))a=this.processTernaryOperator(t,n,e,a,s);else{let i=this.processOthers(r,t,n,e,a,s);a=i.getT1(),(s=i.getT2())&&this.ops.peek()==eW.ARRAY_OPERATOR&&(a=(i=this.process(t,n,a)).getT1(),s=i.getT2())}break;default:let i=this.processOthers(r,t,n,e,a,s);a=i.getT1(),(s=i.getT2())&&this.ops.peek()==eW.ARRAY_OPERATOR&&(a=(i=this.process(t,n,a)).getT1(),s=i.getT2())}++a}if(e=n.toString(),!J.isNullOrBlank(e)){if(eW.OPERATORS.has(e))throw new eH(this.expression,"Expression is ending with an operator");this.tokens.push(new ek(e))}}processStringLiteral(e,t,r){let n="",a=r+1;for(;a<e;a++){let e=this.expression.charAt(a);if(e==t&&"\\"!=this.expression.charAt(a-1))break;n+=e}if(a==e&&this.expression.charAt(a-1)!=t)throw new eH(this.expression,"Missing string ending marker "+t);let s=new K(a,!1);return this.tokens.push(new ej(n,n)),s}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 eX(t.toString())),t.setLength(0),new K(r,!1)}processOthers(e,t,r,n,a,s){let i=t-a;i=i<eW.BIGGEST_OPERATOR_SIZE?i:eW.BIGGEST_OPERATOR_SIZE;for(let e=i;e>0;e--){let t=this.expression.substring(a,a+e);if(eW.OPERATORS_WITHOUT_SPACE_WRAP.has(t))return J.isNullOrBlank(n)||(this.tokens.push(new ek(n)),s=!1),this.checkUnaryOperator(this.tokens,this.ops,eW.OPERATION_VALUE_OF.get(t),s),s=!0,r.setLength(0),new K(a+e-1,s)}return r.append(e),new K(a,!1)}processTernaryOperator(e,t,r,n,a){if(a)throw new eH(this.expression,"Ternary operator is followed by an operator");""!=r.trim()&&(this.tokens.push(new eX(r)),t.setLength(0));let s=1,i="",o=++n;for(;n<e&&s>0;)"?"==(i=this.expression.charAt(n))?++s:":"==i&&--s,++n;if(":"!=i)throw new eH(this.expression,"':' operater is missing");if(n>=e)throw new eH(this.expression,"Third part of the ternary expression is missing");for(;!this.ops.isEmpty()&&this.hasPrecedence(eW.CONDITIONAL_TERNARY_OPERATOR,this.ops.peek());){let e=this.ops.pop();if(eW.UNARY_OPERATORS.has(e)){let t=this.tokens.pop();this.tokens.push(new eX("",t,void 0,e))}else{let t=this.tokens.pop(),r=this.tokens.pop();this.tokens.push(new eX("",r,t,e))}}this.ops.push(eW.CONDITIONAL_TERNARY_OPERATOR),this.tokens.push(new eX(this.expression.substring(o,n-1)));let E=this.expression.substring(n);if(""===E.trim())throw new eH(this.expression,"Third part of the ternary expression is missing");return this.tokens.push(new eX(E)),e-1}processSubExpression(e,t,r,n,a){if(eW.OPERATORS.has(r))this.checkUnaryOperator(this.tokens,this.ops,eW.OPERATION_VALUE_OF.get(r),a),t.setLength(0);else if(!J.isNullOrBlank(r))throw new eH(this.expression,j.format("Unkown token : $ found.",r));let s=1,i=new eB,o=this.expression.charAt(n);for(n++;n<e&&s>0;)"("==(o=this.expression.charAt(n))?s++:")"==o&&s--,0!=s&&(i.append(o),n++);if(")"!=o)throw new eH(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 eX(i.toString().trim())),n}processTokenSepearator(e,t,r){return J.isNullOrBlank(t)||(eW.OPERATORS.has(t)?(this.checkUnaryOperator(this.tokens,this.ops,eW.OPERATION_VALUE_OF.get(t),r),r=!0):(this.tokens.push(new ek(t)),r=!1)),e.setLength(0),r}checkUnaryOperator(e,t,r,n){if(r){if(n||e.isEmpty()){if(eW.UNARY_OPERATORS.has(r)){let e=eW.UNARY_MAP.get(r);e&&t.push(e)}else throw new eH(this.expression,j.format("Extra operator $ found.",r))}else{for(;!t.isEmpty()&&this.hasPrecedence(r,t.peek());){let r=t.pop();if(eW.UNARY_OPERATORS.has(r)){let t=e.pop();e.push(new eX("",t,void 0,r))}else{let t=e.pop(),n=e.pop();e.push(new eX("",n,t,r))}}t.push(r)}}}hasPrecedence(e,t){let r=eW.OPERATOR_PRIORITY.get(e),n=eW.OPERATOR_PRIORITY.get(t);if(!r||!n)throw 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 eB,t=0,r=this.ops.toArray(),n=this.tokens.toArray();for(let a=0;a<r.length;a++)if(r[a].getOperator().startsWith("UN: "))e.append("(").append(r[a].getOperator().substring(4)).append(n[t]instanceof eX?n[t].toString():n[t]).append(")"),t++;else if(r[a]==eW.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){let r=n[t++];e.insert(0,r.toString())}let s=n[t++];e.insert(0,r[a].getOperator()).insert(0,s.toString()).insert(0,"(").append(")")}return e.toString()}equals(e){return this.expression==e.expression}}e({},"TokenValueExtractor",()=>eq);class eq{static{this.REGEX_SQUARE_BRACKETS=/[\[\]]/}static{this.REGEX_DOT=/\./}getValue(e){let t=this.getPrefix();if(!e.startsWith(t))throw new B(j.format("Token $ doesn't start with $",e,t));if(e.endsWith(".__index")){let t=e.substring(0,e.length-8),r=this.getValueInternal(t);if(!h(r?.__index))return r.__index;if(!t.endsWith("]"))return t.substring(t.lastIndexOf(".")+1);{let e=t.substring(t.lastIndexOf("[")+1,t.length-1),r=parseInt(e);return isNaN(r)?e:r}}return this.getValueInternal(e)}retrieveElementFrom(e,t,r,n){if(h(n))return;if(t.length==r)return n;let a=t[r].split(eq.REGEX_SQUARE_BRACKETS).map(e=>e.trim()).filter(e=>!J.isNullOrBlank(e)).reduce((n,a)=>this.resolveForEachPartOfTokenWithBrackets(e,t,r,a,n),n);return this.retrieveElementFrom(e,t,r+1,a)}resolveForEachPartOfTokenWithBrackets(e,t,r,n,a){if(!h(a))return"length"===n?this.getLength(e,a):Array.isArray(a)?this.handleArrayAccess(e,n,a):this.handleObjectAccess(e,t,r,n,a)}getLength(e,t){let r=typeof t;if("string"===r||Array.isArray(t))return t.length;if("object"===r)return"length"in t?t.length:Object.keys(t).length;throw new eH(e,j.format("Length can't be found in token $",e))}handleArrayAccess(e,t,r){let n=parseInt(t);if(isNaN(n))throw new eH(e,j.format("$ is not a number",t));if(n<0||n>=r.length)throw new eH(e,j.format("Index $ is out of bounds for array of length $",n,r.length));return r[n]}handleObjectAccess(e,t,r,n,a){if(n.startsWith('"')){if(!n.endsWith('"')||1==n.length||2==n.length)throw new eH(e,j.format("$ is missing a double quote or empty key found",e));n=n.substring(1,t.length-2)}return this.checkIfObject(e,t,r,a),a[n]}checkIfObject(e,t,r,n){if("object"!=typeof n||Array.isArray(n))throw new eH(e,j.format("Unable to retrieve $ from $ in the path $",t[r],n.toString(),e))}}class eJ extends eq{constructor(e,t){super(),this.store=e,this.prefix=t}getValueInternal(e){let t=e.split(eq.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=eS(this.store),this.modifyStore(e,t,r,n)}modifyStore(e,t,r,n){let a=new eX(e),s=a.getTokens();s.removeLast();let i=a.getOperations(),o=i.removeLast(),E=s.removeLast(),u=E instanceof ej?E.getElement():E.getExpression(),A=this.store;for(;!i.isEmpty();)A=o==eW.OBJECT_OPERATOR?this.getDataFromObject(A,u,i.peekLast()):this.getDataFromArray(A,u,i.peekLast()),o=i.removeLast(),u=(E=s.removeLast())instanceof ej?E.getElement():E.getExpression();o==eW.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 B(j.format("Expected an array but found $",e));let n=parseInt(t);if(isNaN(n))throw new B(j.format("Expected an array index but found $",t));if(n<0)throw new B(j.format("Array index is out of bound - $",t));let a=e[n];return h(a)&&(a=r==eW.OBJECT_OPERATOR?{}:[],e[n]=a),a}getDataFromObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new B(j.format("Expected an object but found $",e));let n=e[t];return h(n)&&(n=r==eW.OBJECT_OPERATOR?{}:[],e[t]=n),n}putDataInArray(e,t,r,n,a){if(!Array.isArray(e))throw new B(j.format("Expected an array but found $",e));let s=parseInt(t);if(isNaN(s))throw new B(j.format("Expected an array index but found $",t));if(s<0)throw new B(j.format("Array index is out of bound - $",t));(n||h(e[s]))&&(a&&h(r)?e.splice(s,1):e[s]=r)}putDataInObject(e,t,r,n,a){if(Array.isArray(e)||"object"!=typeof e)throw new B(j.format("Expected an object but found $",e));(n||h(e[t]))&&(a&&h(r)?delete e[t]:e[t]=r)}getPrefix(){return this.prefix}}class ez extends ec{constructor(){super("Sort",[ez.PARAMETER_ARRAY_SOURCE,ez.PARAMETER_INT_FIND_FROM,ez.PARAMETER_INT_LENGTH,ez.PARAMETER_BOOLEAN_ASCENDING,ez.PARAMETER_KEY_PATH],ez.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(ez.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ez.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(ez.PARAMETER_INT_LENGTH.getParameterName()),a=e?.getArguments()?.get(ez.PARAMETER_BOOLEAN_ASCENDING.getParameterName()),s=e?.getArguments()?.get(ez.PARAMETER_KEY_PATH.getParameterName());if(0==t.length)return new H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,t]]))]);if(t=[...t],-1==n&&(n=t.length-r),r<0||r>=t.length||r+n>t.length)throw new B("Given start point is more than the size of the array or not available at that point");let i=t.slice(r,r+n+1),o=new eJ({},"Data.");return i.sort((e,t)=>"object"==typeof e&&"object"==typeof t&&s.length?(o.setStore({a:e,b:t}),eK(o.getValue("Data.a."+s),o.getValue("Data.b."+s),a)):eK(e,t,a)),t.splice(r,n,...i),new H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,t]]))])}}function eK(e,t,r){return e===t?0:null===e?1:null===t?-1:r?e<t?-1:1:e<t?1:-1}class eQ extends ec{constructor(){super("SubArray",[eQ.PARAMETER_ARRAY_SOURCE,eQ.PARAMETER_INT_FIND_FROM,eQ.PARAMETER_INT_LENGTH],eQ.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eQ.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eQ.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(eQ.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),n<=0)return new H([Y.outputOf(new Map([]))]);if(!(r>=0&&r<t.length)||r+n>t.length)throw new B("Given find from point is more than the source size array or the Requested length for the subarray was more than the source size");let a=t.slice(r,r+n);return new H([Y.outputOf(new Map([[eQ.EVENT_RESULT_NAME,a]]))])}}class eZ extends ec{constructor(){super("Insert",[eZ.PARAMETER_ARRAY_SOURCE,eZ.PARAMETER_INT_OFFSET,eZ.PARAMETER_ANY],eZ.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eZ.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eZ.PARAMETER_INT_OFFSET.getParameterName());var n=e?.getArguments()?.get(eZ.PARAMETER_ANY.getParameterName());if(h(n)||h(r)||r>t.length)throw new B("Please valid resouces to insert at the correct location");if(0==(t=[...t]).length)return 0==r&&t.push(n),new H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,t]]))]);t.push(n);let a=t.length-1;for(r++;a>=r;){let e=t[a-1];t[a-1]=t[a],t[a--]=e}return new H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,t]]))])}}class e0 extends ec{constructor(){super("InsertLast",[e0.PARAMETER_ARRAY_SOURCE,e0.PARAMETER_ANY],e0.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(e0.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(e0.PARAMETER_ANY.getParameterName());return(t=[...t]).push(r),new H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,t]]))])}}class e1 extends ec{constructor(){super("RemoveDuplicates",[e1.PARAMETER_ARRAY_SOURCE,e1.PARAMETER_INT_SOURCE_FROM,e1.PARAMETER_INT_LENGTH],e1.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(e1.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e1.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(e1.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),r+n>t.length)throw new B(j.format("Array has no elements from $ to $ as the array size is $",r,r+n,t.length));let a=[...t],s=r+n;for(let e=s-1;e>=r;e--)for(let t=e-1;t>=r;t--)if(q(a[e],a[t])){a.splice(e,1);break}return new H([Y.outputOf(G.of(e1.EVENT_RESULT_NAME,a))])}}let e2="keyPath",e7="valuePath",e5="ignoreNullValues",e4="ignoreNullKeys",e6="ignoreDuplicateKeys";class e9 extends ec{constructor(){super("ArrayToObjects",[ec.PARAMETER_ARRAY_SOURCE,v.of(e2,y.ofString(e2)),v.of(e7,y.of(e7,r.STRING,r.NULL)),v.of(e5,y.ofBoolean(e5).setDefaultValue(!1)),v.of(e4,y.ofBoolean(e4).setDefaultValue(!0)),v.of(e6,y.ofBoolean(e6).setDefaultValue(!1))],ec.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(ec.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e2),n=e?.getArguments()?.get(e7)??"",a=e?.getArguments()?.get(e5),s=e?.getArguments()?.get(e4),i=e?.getArguments()?.get(e6),o=new eJ({},"Data."),E=t.filter(e=>!h(e)).reduce((e,t)=>{o.setStore(t);let E=o.getValue("Data."+r);if(s&&h(E))return e;let u=n?o.getValue("Data."+n):t;return a&&h(u)||i&&e.hasOwnProperty(E)||(e[E]=u),e},{});return new H([Y.outputOf(new Map([[ec.EVENT_RESULT_NAME,E]]))])}}let e3="source",e8="delimiter",te="result",tt=new k("Join").setNamespace(g.SYSTEM_ARRAY).setParameters(new Map([[e3,new v(e3,y.ofArray(e3,y.of("each",r.STRING,r.INTEGER,r.LONG,r.DOUBLE,r.FLOAT,r.NULL)))],[e8,new v(e8,y.ofString(e8).setDefaultValue(""))]])).setEvents(new Map([F.outputEventMapEntry(new Map([[te,y.ofString(te)]]))]));class tr extends el{getSignature(){return tt}async internalExecute(e){let t=e?.getArguments()?.get(e3),r=e?.getArguments()?.get(e8);return new H([Y.outputOf(new Map([[te,t.join(r)]]))])}}class tn{static{this.repoMap=G.ofArrayEntries(C(new eg),C(new eh),C(new ef),C(new e_),C(new eM),C(new ed),C(new ew),C(new eO),C(new eI),C(new eP),C(new ey),C(new ex),C(new eL),C(new ev),C(new eU),C(new eb),C(new eV),C(new eC),C(new eD),C(new eG),C(new e$),C(new eF),C(new eY),C(new ez),C(new eQ),C(new eT),C(new eZ),C(new e0),C(new e1),C(new e9),C(new tr))}static{this.filterableNames=Array.from(tn.repoMap.values()).map(e=>e.getSignature().getFullName())}async find(e,t){return e!=g.SYSTEM_ARRAY?Promise.resolve(void 0):Promise.resolve(tn.repoMap.get(t))}async filter(e){return Promise.resolve(tn.filterableNames.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}e({},"ContextElement",()=>ta);class ta{static{this.NULL=new ta(y.NULL,void 0)}constructor(e,t){this.schema=e,this.element=t}getSchema(){return this.schema}setSchema(e){return this.schema=e,this}getElement(){return this.element}setElement(e){return this.element=e,this}}let ts="name",ti="schema",to=new k("Create").setNamespace(g.SYSTEM_CTX).setParameters(new Map([v.ofEntry(ts,new y().setName(ts).setType(f.of(r.STRING)).setMinLength(1).setFormat(a.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,n.CONSTANT),v.ofEntry(ti,y.SCHEMA,!1,n.CONSTANT)])).setEvents(new Map([F.outputEventMapEntry(new Map)])),tE="name",tu="value",tA=new k("Get").setNamespace(g.SYSTEM_CTX).setParameters(new Map([v.ofEntry(tE,new y().setName(tE).setType(f.of(r.STRING)).setMinLength(1).setFormat(a.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,n.CONSTANT)])).setEvents(new Map([F.outputEventMapEntry(new Map([[tu,y.ofAny(tu)]]))]));e({},"ExpressionEvaluator",()=>rl);var tl={};e(tl,"LogicalNullishCoalescingOperator",()=>th);var tc={};e(tc,"BinaryOperator",()=>tg);class tg{nullCheck(e,t,r){if(h(e)||h(t))throw new em(j.format("$ cannot be applied to a null value",r.getOperatorName()))}}class th extends tg{apply(e,t){return h(e)?t:e}}var tp={};e(tp,"ArithmeticAdditionOperator",()=>tT);class tT extends tg{apply(e,t){return h(e)?t:h(t)?e:e+t}}var tm={};e(tm,"ArithmeticDivisionOperator",()=>tR);class tR extends tg{apply(e,t){return this.nullCheck(e,t,eW.DIVISION),e/t}}var tf={};e(tf,"ArithmeticIntegerDivisionOperator",()=>tN);class tN extends tg{apply(e,t){return this.nullCheck(e,t,eW.DIVISION),Math.floor(e/t)}}var t_={};e(t_,"ArithmeticModulusOperator",()=>tS);class tS extends tg{apply(e,t){return this.nullCheck(e,t,eW.MOD),e%t}}var tM={};e(tM,"ArithmeticMultiplicationOperator",()=>td);class td extends tg{apply(e,t){this.nullCheck(e,t,eW.MULTIPLICATION);let r="string"==typeof e,n=typeof t;if(r||"string"===n){let n=r?e:t,a=r?t:e,s="",i=a<0,o=Math.floor(a=Math.abs(a));for(;o-- >0;)s+=n;let E=Math.floor(n.length*(a-Math.floor(a)));if(E<0&&(E=-E),0!=E&&(s+=n.substring(0,E)),i){let e="";for(let t=s.length-1;t>=0;t--)e+=s[t];return e}return s}return e*t}}var tw={};e(tw,"ArithmeticSubtractionOperator",()=>tO);class tO extends tg{apply(e,t){return this.nullCheck(e,t,eW.SUBTRACTION),e-t}}var tI={};e(tI,"ArrayOperator",()=>tP);class tP extends tg{apply(e,t){if(!e)throw new em("Cannot apply array operator on a null value");if(!t)throw new em("Cannot retrive null index value");if(!Array.isArray(e)&&"string"!=typeof e)throw new em(j.format("Cannot retrieve value from a primitive value $",e));if(t>=e.length)throw new em(j.format("Cannot retrieve index $ from the array of length $",t,e.length));return e[t]}}var ty={};e(ty,"BitwiseAndOperator",()=>tx);class tx extends tg{apply(e,t){return this.nullCheck(e,t,eW.BITWISE_AND),e&t}}var tL={};e(tL,"BitwiseLeftShiftOperator",()=>tv);class tv extends tg{apply(e,t){return this.nullCheck(e,t,eW.BITWISE_LEFT_SHIFT),e<<t}}var tU={};e(tU,"BitwiseOrOperator",()=>tb);class tb extends tg{apply(e,t){return this.nullCheck(e,t,eW.BITWISE_OR),e|t}}var tV={};e(tV,"BitwiseRightShiftOperator",()=>tC);class tC extends tg{apply(e,t){return this.nullCheck(e,t,eW.BITWISE_RIGHT_SHIFT),e>>t}}var tD={};e(tD,"BitwiseUnsignedRightShiftOperator",()=>tG);class tG extends tg{apply(e,t){return this.nullCheck(e,t,eW.BITWISE_UNSIGNED_RIGHT_SHIFT),e>>>t}}var t$={};e(t$,"BitwiseXorOperator",()=>tF);class tF extends tg{apply(e,t){return this.nullCheck(e,t,eW.BITWISE_XOR),e^t}}var tY={};e(tY,"LogicalAndOperator",()=>tB);class tB extends tg{apply(e,t){return!!e&&""!==e&&!!t&&""!==t}}var tH={};e(tH,"LogicalEqualOperator",()=>tk);class tk extends tg{apply(e,t){return q(e,t)}}var tj={};e(tj,"LogicalGreaterThanEqualOperator",()=>tW);class tW extends tg{apply(e,t){let n=eR.findPrimitiveNullAsBoolean(e),a=eR.findPrimitiveNullAsBoolean(t);if(n.getT1()==r.BOOLEAN||a.getT1()==r.BOOLEAN)throw new em(j.format("Cannot compare >= with the values $ and $",n.getT2(),a.getT2()));return n.getT2()>=a.getT2()}}var tX={};e(tX,"LogicalGreaterThanOperator",()=>tq);class tq extends tg{apply(e,t){let n=eR.findPrimitiveNullAsBoolean(e),a=eR.findPrimitiveNullAsBoolean(t);if(n.getT1()==r.BOOLEAN||a.getT1()==r.BOOLEAN)throw new em(j.format("Cannot compare > with the values $ and $",n.getT2(),a.getT2()));return n.getT2()>a.getT2()}}var tJ={};e(tJ,"LogicalLessThanEqualOperator",()=>tz);class tz extends tg{apply(e,t){let n=eR.findPrimitiveNullAsBoolean(e),a=eR.findPrimitiveNullAsBoolean(t);if(n.getT1()==r.BOOLEAN||a.getT1()==r.BOOLEAN)throw new em(j.format("Cannot compare <= with the values $ and $",n.getT2(),a.getT2()));return n.getT2()<=a.getT2()}}var tK={};e(tK,"LogicalLessThanOperator",()=>tQ);class tQ extends tg{apply(e,t){let n=eR.findPrimitiveNullAsBoolean(e),a=eR.findPrimitiveNullAsBoolean(t);if(n.getT1()==r.BOOLEAN||a.getT1()==r.BOOLEAN)throw new em(j.format("Cannot compare < with the values $ and $",n.getT2(),a.getT2()));return n.getT2()<a.getT2()}}var tZ={};e(tZ,"LogicalNotEqualOperator",()=>t0);class t0 extends tg{apply(e,t){return!q(e,t)}}var t1={};e(t1,"LogicalOrOperator",()=>t2);class t2 extends tg{apply(e,t){return!!e&&""!==e||!!t&&""!==t}}var t7={};e(t7,"ObjectOperator",()=>t5);class t5 extends tg{apply(e,t){if(!e)throw new em("Cannot apply array operator on a null value");if(!t)throw new em("Cannot retrive null property value");let r=typeof e;if(!Array.isArray(e)&&"string"!=r&&"object"!=r)throw new em(j.format("Cannot retrieve value from a primitive value $",e));return e[t]}}var t4={};e(t4,"ArithmeticUnaryMinusOperator",()=>t3);var t6={};e(t6,"UnaryOperator",()=>t9);class t9{nullCheck(e,t){if(h(e))throw new em(j.format("$ cannot be applied to a null value",t.getOperatorName()))}}class t3 extends t9{apply(e){return this.nullCheck(e,eW.UNARY_MINUS),eR.findPrimitiveNumberType(e),-e}}var t8={};e(t8,"ArithmeticUnaryPlusOperator",()=>re);class re extends t9{apply(e){return this.nullCheck(e,eW.UNARY_PLUS),eR.findPrimitiveNumberType(e),e}}var rt={};e(rt,"BitwiseComplementOperator",()=>rr);class rr extends t9{apply(e){this.nullCheck(e,eW.UNARY_BITWISE_COMPLEMENT);let t=eR.findPrimitiveNumberType(e);if(t.getT1()!=r.INTEGER&&t.getT1()!=r.LONG)throw new em(j.format("Unable to apply bitwise operator on $",e));return~e}}var rn={};e(rn,"LogicalNotOperator",()=>ra);class ra extends t9{apply(e){return!e&&""!==e}}e({},"LiteralTokenValueExtractor",()=>ri);let rs=new Map([["true",!0],["false",!1],["null",void 0],["undefined",void 0]]);class ri extends eq{static{this.INSTANCE=new ri}getValueInternal(e){if(!J.isNullOrBlank(e))return(e=e.trim(),rs.has(e))?rs.get(e):e.startsWith('"')?this.processString(e):this.processNumbers(e)}processNumbers(e){try{let t=Number(e);if(isNaN(t))throw Error("Parse number error");return t}catch(t){throw new eH(e,j.format("Unable to parse the literal or expression $",e),t)}}processString(e){if(!e.endsWith('"'))throw new eH(e,j.format("String literal $ is not closed properly",e));return e.substring(1,e.length-1)}getPrefix(){return""}getStore(){}getValueFromExtractors(e,t){return t.has(e+".")?t.get(e+".")?.getStore():this.getValue(e)}}var ro={};e(ro,"ConditionalTernaryOperator",()=>ru);class rE{nullCheck(e,t,r,n){if(h(e)||h(t)||h(r))throw new em(j.format("$ cannot be applied to a null value",n.getOperatorName()))}}class ru extends rE{apply(e,t,r){return e?t:r}}t({},ro);class rA extends eq{static{this.PREFIX="_internal."}addValue(e,t){this.values.set(e,t)}getValueInternal(e){let t=e.split(eq.REGEX_DOT),r=t[1],n=r.indexOf("["),a=2;return -1!=n&&(r=t[1].substring(0,n),t[1]=t[1].substring(n),a=1),this.retrieveElementFrom(e,t,a,this.values.get(r))}getPrefix(){return rA.PREFIX}getStore(){}constructor(...e){super(...e),this.values=new Map}}class rl{static{this.UNARY_OPERATORS_MAP=new Map([[eW.UNARY_BITWISE_COMPLEMENT,new rr],[eW.UNARY_LOGICAL_NOT,new ra],[eW.UNARY_MINUS,new t3],[eW.UNARY_PLUS,new re]])}static{this.TERNARY_OPERATORS_MAP=new Map([[eW.CONDITIONAL_TERNARY_OPERATOR,new ru]])}static{this.BINARY_OPERATORS_MAP=new Map([[eW.ADDITION,new tT],[eW.DIVISION,new tR],[eW.INTEGER_DIVISION,new tN],[eW.MOD,new tS],[eW.MULTIPLICATION,new td],[eW.SUBTRACTION,new tO],[eW.BITWISE_AND,new tx],[eW.BITWISE_LEFT_SHIFT,new tv],[eW.BITWISE_OR,new tb],[eW.BITWISE_RIGHT_SHIFT,new tC],[eW.BITWISE_UNSIGNED_RIGHT_SHIFT,new tG],[eW.BITWISE_XOR,new tF],[eW.AND,new tB],[eW.EQUAL,new tk],[eW.GREATER_THAN,new tq],[eW.GREATER_THAN_EQUAL,new tW],[eW.LESS_THAN,new tQ],[eW.LESS_THAN_EQUAL,new tz],[eW.OR,new t2],[eW.NOT_EQUAL,new t0],[eW.NULLISH_COALESCING_OPERATOR,new th],[eW.ARRAY_OPERATOR,new tP],[eW.OBJECT_OPERATOR,new t5]])}static{this.UNARY_OPERATORS_MAP_KEY_SET=new Set(rl.UNARY_OPERATORS_MAP.keys())}constructor(e){this.internalTokenValueExtractor=new rA,e instanceof eX?(this.exp=e,this.expression=this.exp.getExpression()):this.expression=e}evaluate(e){let 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,a=new W;for(;n<e.length-1;){if("{"==e.charAt(n)&&"{"==e.charAt(n+1))0==r&&a.push(new K(n+2,-1)),r++,n++;else if("}"==e.charAt(n)&&"}"==e.charAt(n+1)){if(--r<0)throw new eH(e,"Expecting {{ nesting path operator to be started before closing");0==r&&a.push(a.pop().setT2(n)),n++}n++}let s=this.replaceNestingExpression(e,t,a);return new K(s,new eX(s))}replaceNestingExpression(e,t,r){let n=e;for(let a of r.toArray()){if(-1==a.getT2())throw new eH(e,"Expecting }} nesting path operator to be closed");let r=new rl(n.substring(a.getT1(),a.getT2())).evaluate(t);n=n.substring(0,a.getT1()-2)+r+n.substring(a.getT2()+2)}return n}getExpression(){return this.exp||(this.exp=new eX(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(),a=n.pop();if(rl.UNARY_OPERATORS_MAP_KEY_SET.has(e))n.push(this.applyUnaryOperation(e,this.getValueFromToken(t,a)));else if(e==eW.OBJECT_OPERATOR||e==eW.ARRAY_OPERATOR)this.processObjectOrArrayOperator(t,r,n,e,a);else if(e==eW.CONDITIONAL_TERNARY_OPERATOR){let r=n.pop(),s=n.pop(),i=this.getValueFromToken(t,s),o=this.getValueFromToken(t,r),E=this.getValueFromToken(t,a);n.push(this.applyTernaryOperation(e,i,o,E))}else{let r=n.pop(),s=this.getValueFromToken(t,r),i=this.getValueFromToken(t,a);n.push(this.applyBinaryOperation(e,s,i))}}if(n.isEmpty())throw new em(j.format("Expression : $ evaluated to null",e));if(1!=n.size())throw new em(j.format("Expression : $ evaluated multiple values $",e,n));let a=n.get(0);if(a instanceof ej)return a.getElement();if(!(a instanceof eX))return this.getValueFromToken(t,a);throw new em(j.format("Expression : $ evaluated to $",e,n.get(0)))}processObjectOrArrayOperator(e,t,r,n,a){let s=new W,i=new W;if(!n||!a)return;do i.push(n),a instanceof eX?s.push(new ej(a.toString(),this.evaluateExpression(a,e))):a&&s.push(a),a=r.isEmpty()?void 0:r.pop(),n=t.isEmpty()?void 0:t.pop();while(n==eW.OBJECT_OPERATOR||n==eW.ARRAY_OPERATOR)a&&(a instanceof eX?s.push(new ej(a.toString(),this.evaluateExpression(a,e))):s.push(a)),n&&t.push(n);let o=s.pop();if(o instanceof ej&&"object"==typeof o.getTokenValue()){let e=new Date().getTime()+""+Math.round(1e3*Math.random());this.internalTokenValueExtractor.addValue(e,o.getTokenValue()),o=new ek(rA.PREFIX+e)}let E=new eB(o instanceof ej?o.getTokenValue():o.toString());for(;!s.isEmpty();)o=s.pop(),n=i.pop(),E.append(n.getOperator()).append(o instanceof ej?o.getTokenValue():o.toString()),n==eW.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 ej(u,this.getValue(u,e)));else{let e;try{e=ri.INSTANCE.getValue(u)}catch(t){e=u}r.push(new ej(u,e))}}applyTernaryOperation(e,t,r,n){let a=rl.TERNARY_OPERATORS_MAP.get(e);if(!a)throw new eH(this.expression,j.format("No operator found to evaluate $",this.getExpression()));return new ej(e.toString(),a.apply(t,r,n))}applyBinaryOperation(e,t,r){let n=typeof t,a=typeof r,s=rl.BINARY_OPERATORS_MAP.get(e);if(("object"===n||"object"===a)&&e!==eW.EQUAL&&e!==eW.NOT_EQUAL&&e!==eW.NULLISH_COALESCING_OPERATOR&&e!==eW.AND&&e!==eW.OR)throw new eH(this.expression,j.format("Cannot evaluate expression $ $ $",t,e.getOperator(),r));if(!s)throw new eH(this.expression,j.format("No operator found to evaluate $ $ $",t,e.getOperator(),r));return new ej(e.toString(),s.apply(t,r))}applyUnaryOperation(e,t){let r=typeof t;if(e.getOperator()!=eW.NOT.getOperator()&&e.getOperator()!=eW.UNARY_LOGICAL_NOT.getOperator()&&("object"===r||Array.isArray(t)))throw new eH(this.expression,j.format("The operator $ cannot be applied to $",e.getOperator(),t));let n=rl.UNARY_OPERATORS_MAP.get(e);if(!n)throw new eH(this.expression,j.format("No Unary operator $ is found to apply on $",e.getOperator(),t));return new ej(e.toString(),n.apply(t))}getValueFromToken(e,t){return t instanceof eX?this.evaluateExpression(t,e):t instanceof ej?t.getElement():this.getValue(t.getExpression(),e)}getValue(e,t){let r=e.substring(0,e.indexOf(".")+1);return t.has(r)?t.get(r).getValue(e):ri.INSTANCE.getValueFromExtractors(e,t)}}let rc="name",rg="value",rh=new k("Set").setNamespace(g.SYSTEM_CTX).setParameters(new Map([v.ofEntry(rc,new y().setName(rc).setType(f.of(r.STRING)).setMinLength(1),!1),v.ofEntry(rg,y.ofAny(rg))])).setEvents(new Map([F.outputEventMapEntry(new Map)])),rp="value",rT="eventName",rm="results",rR=new k("GenerateEvent").setNamespace(g.SYSTEM).setParameters(new Map([v.ofEntry(rT,y.ofString(rT).setDefaultValue("output")),v.ofEntry(rm,y.ofObject(rm).setProperties(new Map([["name",y.ofString("name")],[rp,v.EXPRESSION]])),!0)])).setEvents(new Map([F.outputEventMapEntry(new Map)]));class rf extends el{static{this.CONDITION="condition"}static{this.SIGNATURE=new k("If").setNamespace(g.SYSTEM).setParameters(new Map([v.ofEntry(rf.CONDITION,y.ofAny(rf.CONDITION))])).setEvents(new Map([F.eventMapEntry(F.TRUE,new Map),F.eventMapEntry(F.FALSE,new Map),F.outputEventMapEntry(new Map)]))}getSignature(){return rf.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(rf.CONDITION);return new H([Y.of(t||""===t?F.TRUE:F.FALSE,new Map),Y.outputOf(new Map)])}}let rN="stepName",r_=new k("Break").setNamespace(g.SYSTEM_LOOP).setParameters(new Map([v.ofEntry(rN,y.of(rN,r.STRING))])).setEvents(new Map([F.outputEventMapEntry(new Map([]))])),rS="count",rM="value",rd="index",rw=new k("CountLoop").setNamespace(g.SYSTEM_LOOP).setParameters(new Map([v.ofEntry(rS,y.of(rS,r.INTEGER))])).setEvents(new Map([F.eventMapEntry(F.ITERATION,new Map([[rd,y.of(rd,r.INTEGER)]])),F.outputEventMapEntry(new Map([[rM,y.of(rM,r.INTEGER)]]))])),rO="source",rI="each",rP="index",ry="value",rx=new k("ForEachLoop").setNamespace(g.SYSTEM_LOOP).setParameters(new Map([v.ofEntry(rO,y.ofArray(rO,y.ofAny(rO)))])).setEvents(new Map([F.eventMapEntry(F.ITERATION,new Map([[rP,y.of(rP,r.INTEGER)],[rI,y.ofAny(rI)]])),F.outputEventMapEntry(new Map([[ry,y.of(ry,r.INTEGER)]]))])),rL="from",rv="step",rU="value",rb="index",rV=new k("RangeLoop").setNamespace(g.SYSTEM_LOOP).setParameters(new Map([v.ofEntry(rL,y.of(rL,r.INTEGER,r.LONG,r.FLOAT,r.DOUBLE).setDefaultValue(0)),v.ofEntry("to",y.of("to",r.INTEGER,r.LONG,r.FLOAT,r.DOUBLE).setDefaultValue(1)),v.ofEntry(rv,y.of(rv,r.INTEGER,r.LONG,r.FLOAT,r.DOUBLE).setDefaultValue(1).setNot(new y().setConstant(0)))])).setEvents(new Map([F.eventMapEntry(F.ITERATION,new Map([[rb,y.of(rb,r.INTEGER,r.LONG,r.FLOAT,r.DOUBLE)]])),F.outputEventMapEntry(new Map([[rU,y.of(rU,r.INTEGER,r.LONG,r.FLOAT,r.DOUBLE)]]))])),rC="value",rD=new k("Add").setNamespace(g.MATH).setParameters(new Map([[rC,new v(rC,y.ofNumber(rC)).setVariableArgument(!0)]])).setEvents(new Map([F.outputEventMapEntry(new Map([[rC,y.ofNumber(rC)]]))])),rG="value",r$="value1",rF="value2",rY=[()=>new Map([[rG,new v(rG,y.ofNumber(rG))]]),()=>new Map([[r$,new v(r$,y.ofNumber(r$))],[rF,new v(rF,y.ofNumber(rF))]])];class rB extends el{constructor(e,t,n=1,...a){super(),a&&a.length||(a=[r.DOUBLE]),this.parametersNumber=n,this.mathFunction=t,this.signature=new k(e).setNamespace(g.MATH).setParameters(rY[n-1]()).setEvents(new Map([F.outputEventMapEntry(new Map([[rG,new y().setType(f.of(...a)).setName(rG)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t,r=eR.findPrimitiveNumberType(e.getArguments()?.get(1==this.parametersNumber?rG:r$)).getT2();return 2==this.parametersNumber&&(t=eR.findPrimitiveNumberType(e.getArguments()?.get(rF)).getT2()),new H([Y.outputOf(new Map([[rG,this.mathFunction.call(this,r,t)]]))])}}let rH="value";class rk extends el{static{this.SIGNATURE=new k("Hypotenuse").setNamespace(g.MATH).setParameters(new Map([[rH,new v(rH,y.ofNumber(rH)).setVariableArgument(!0)]])).setEvents(new Map([F.outputEventMapEntry(new Map([[rH,new y().setType(f.of(r.DOUBLE)).setName(rH)]]))]))}constructor(){super()}getSignature(){return rk.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(rH);return new H([Y.outputOf(new Map([[rH,Math.sqrt(t.reduce((e,t)=>e+=t*t,0))]]))])}}let rj="value",rW=new k("Maximum").setNamespace(g.MATH).setParameters(new Map([[rj,new v(rj,y.ofNumber(rj)).setVariableArgument(!0)]])).setEvents(new Map([F.outputEventMapEntry(new Map([[rj,y.ofNumber(rj)]]))])),rX="value",rq=new k("Minimum").setNamespace(g.MATH).setParameters(new Map([[rX,new v(rX,y.ofNumber(rX)).setVariableArgument(!0)]])).setEvents(new Map([F.outputEventMapEntry(new Map([[rX,y.ofNumber(rX)]]))])),rJ="value";class rz extends el{static{this.SIGNATURE=new k("Random").setNamespace(g.MATH).setEvents(new Map([F.outputEventMapEntry(G.of(rJ,y.ofDouble(rJ)))]))}getSignature(){return rz.SIGNATURE}async internalExecute(e){return new H([Y.outputOf(new Map([[rJ,Math.random()]]))])}}class rK extends el{static{this.MIN_VALUE="minValue"}static{this.MAX_VALUE="maxValue"}static{this.VALUE="value"}static{this.SIGNATURE=new k("RandomFloat").setParameters(G.of(rK.MIN_VALUE,v.of(rK.MIN_VALUE,y.ofFloat(rK.MIN_VALUE).setDefaultValue(0)),rK.MAX_VALUE,v.of(rK.MAX_VALUE,y.ofFloat(rK.MAX_VALUE).setDefaultValue(0x7fffffff)))).setNamespace(g.MATH).setEvents(new Map([F.outputEventMapEntry(G.of(rK.VALUE,y.ofFloat(rK.VALUE)))]))}getSignature(){return rK.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(rK.MIN_VALUE),r=Math.random()*(e.getArguments()?.get(rK.MAX_VALUE)-t)+t;return new H([Y.outputOf(new Map([[rK.VALUE,r]]))])}}class rQ extends el{static{this.MIN_VALUE="minValue"}static{this.MAX_VALUE="maxValue"}static{this.VALUE="value"}static{this.SIGNATURE=new k("RandomInt").setParameters(G.of(rQ.MIN_VALUE,v.of(rQ.MIN_VALUE,y.ofInteger(rQ.MIN_VALUE).setDefaultValue(0)),rQ.MAX_VALUE,v.of(rQ.MAX_VALUE,y.ofInteger(rQ.MAX_VALUE).setDefaultValue(0x7fffffff)))).setNamespace(g.MATH).setEvents(new Map([F.outputEventMapEntry(G.of(rQ.VALUE,y.ofInteger(rQ.VALUE)))]))}getSignature(){return rQ.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(rQ.MIN_VALUE),r=Math.floor(Math.random()*(e.getArguments()?.get(rQ.MAX_VALUE)-t)+t);return new H([Y.outputOf(new Map([[rQ.VALUE,r]]))])}}let rZ={Absolute:new rB("Absolute",e=>Math.abs(e),1,r.INTEGER,r.LONG,r.FLOAT,r.DOUBLE),ArcCosine:new rB("ArcCosine",e=>Math.acos(e)),ArcSine:new rB("ArcSine",e=>Math.asin(e)),ArcTangent:new rB("ArcTangent",e=>Math.atan(e)),Ceiling:new rB("Ceiling",e=>Math.ceil(e)),Cosine:new rB("Cosine",e=>Math.cos(e)),HyperbolicCosine:new rB("HyperbolicCosine",e=>Math.cosh(e)),CubeRoot:new rB("CubeRoot",e=>Math.cbrt(e)),Exponential:new rB("Exponential",e=>Math.exp(e)),ExponentialMinus1:new rB("ExponentialMinus1",e=>Math.expm1(e)),Floor:new rB("Floor",e=>Math.floor(e)),LogNatural:new rB("LogNatural",e=>Math.log(e)),Log10:new rB("Log10",e=>Math.log10(e)),Round:new rB("Round",e=>Math.round(e),1,r.INTEGER,r.LONG),Sine:new rB("Sine",e=>Math.sin(e)),HyperbolicSine:new rB("HyperbolicSine",e=>Math.sinh(e)),Tangent:new rB("Tangent",e=>Math.tan(e)),HyperbolicTangent:new rB("HyperbolicTangent",e=>Math.tanh(e)),ToDegrees:new rB("ToDegrees",e=>Math.PI/180*e),ToRadians:new rB("ToRadians",e=>180/Math.PI*e),SquareRoot:new rB("SquareRoot",e=>Math.sqrt(e)),ArcTangent2:new rB("ArcTangent2",(e,t)=>Math.atan2(e,t),2),Power:new rB("Power",(e,t)=>Math.pow(e,t),2),Add:new class extends el{getSignature(){return rD}async internalExecute(e){let t=e.getArguments()?.get(rC);return new H([Y.outputOf(new Map([[rC,t.reduce((e,t)=>e+=t,0)]]))])}},Hypotenuse:new rk,Maximum:new class extends el{getSignature(){return rW}async internalExecute(e){let t=e.getArguments()?.get(rj);return new H([Y.outputOf(new Map([[rj,t.reduce((e,t)=>!e&&0!==e||t>e?t:e)]]))])}},Minimum:new class extends el{getSignature(){return rq}async internalExecute(e){let t=e.getArguments()?.get(rX);return new H([Y.outputOf(new Map([[rX,t.reduce((e,t)=>!e&&0!==e||t<e?t:e)]]))])}},Random:new rz,RandomFloat:new rK,RandomInt:new rQ},r0=Object.values(rZ).map(e=>e.getSignature().getFullName());class r1{async find(e,t){return e!=g.MATH?Promise.resolve(void 0):Promise.resolve(rZ[t])}async filter(e){return Promise.resolve(r0.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}let r2="value",r7="source",r5="source";class r4 extends el{constructor(e,t){super(),this.signature=new k(e).setNamespace(g.SYSTEM_OBJECT).setParameters(new Map([v.ofEntry(r5,y.ofAny(r5))])).setEvents(new Map([F.outputEventMapEntry(new Map([["value",t]]))]))}getSignature(){return this.signature}}let r6="value",r9="value",r3="value",r8="source",ne="overwrite",nt="deleteKeyOnNull",nr="value",nn={ObjectValues:new class extends r4{constructor(){super("ObjectValues",y.ofArray(nr,y.ofAny(nr)))}async internalExecute(e){var t=e.getArguments()?.get("source");if(h(t))return new H([Y.outputOf(new Map([[nr,[]]]))]);let r=Object.entries(eS(t)).sort((e,t)=>e[0].localeCompare(t[0])).map(e=>e[1]);return new H([Y.outputOf(new Map([[nr,r]]))])}},ObjectKeys:new class extends r4{constructor(){super("ObjectKeys",y.ofArray(r9,y.ofString(r9)))}async internalExecute(e){var t=e.getArguments()?.get("source");if(h(t))return new H([Y.outputOf(new Map([[r9,[]]]))]);let r=Object.keys(eS(t)).sort((e,t)=>e.localeCompare(t));return new H([Y.outputOf(new Map([[r9,r]]))])}},ObjectEntries:new class extends r4{constructor(){super("ObjectEntries",y.ofArray(r6,y.ofArray("tuple",y.ofString("key"),y.ofAny("value"))))}async internalExecute(e){var t=e.getArguments()?.get("source");if(h(t))return new H([Y.outputOf(new Map([[r6,[]]]))]);let r=Object.entries(eS(t)).sort((e,t)=>e[0].localeCompare(t[0]));return new H([Y.outputOf(new Map([[r6,r]]))])}},ObjectDeleteKey:new class extends el{constructor(){super(),this.signature=new k("ObjectDeleteKey").setNamespace(g.SYSTEM_OBJECT).setParameters(new Map([v.ofEntry(r7,y.ofAny(r7)),v.ofEntry("key",y.ofString("key"))])).setEvents(new Map([F.outputEventMapEntry(new Map([[r2,y.ofAny(r2)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(r7),r=e.getArguments()?.get("key");return h(t)?new H([Y.outputOf(new Map([[r2,void 0]]))]):(t=eS(t),delete t[r],new H([Y.outputOf(new Map([[r2,t]]))]))}},ObjectPutValue:new class extends el{constructor(){super(),this.signature=new k("ObjectPutValue").setNamespace(g.SYSTEM_OBJECT).setParameters(new Map([v.ofEntry(r8,y.ofObject(r8)),v.ofEntry("key",y.ofString("key")),v.ofEntry(r3,y.ofAny(r3)),v.ofEntry(ne,y.ofBoolean(ne).setDefaultValue(!0)),v.ofEntry(nt,y.ofBoolean(nt).setDefaultValue(!1))])).setEvents(new Map([F.outputEventMapEntry(new Map([[r3,y.ofObject(r3)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(r8),r=e.getArguments()?.get("key"),n=e.getArguments()?.get(r3),a=e.getArguments()?.get(ne),s=e.getArguments()?.get(nt),i=new eJ(t,"Data.");return i.setValue(r,n,a,s),new H([Y.outputOf(new Map([[r3,i.getStore()]]))])}}},na=Object.values(nn).map(e=>e.getSignature().getFullName());class ns{async find(e,t){return e!=g.SYSTEM_OBJECT?Promise.resolve(void 0):Promise.resolve(nn[t])}async filter(e){return Promise.resolve(na.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}class ni extends el{static{this.VALUES="values"}static{this.SIGNATURE=new k("Print").setNamespace(g.SYSTEM).setParameters(new Map([v.ofEntry(ni.VALUES,y.ofAny(ni.VALUES),!0)]))}getSignature(){return ni.SIGNATURE}async internalExecute(e){var t=e.getArguments()?.get(ni.VALUES);return console?.log(...t),new H([Y.outputOf(new Map)])}}class no extends el{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_SEARCH_STRING_NAME="searchString"}static{this.PARAMETER_SECOND_STRING_NAME="secondString"}static{this.PARAMETER_THIRD_STRING_NAME="thirdString"}static{this.PARAMETER_INDEX_NAME="index"}static{this.PARAMETER_SECOND_INDEX_NAME="secondIndex"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new v(no.PARAMETER_STRING_NAME,y.ofString(no.PARAMETER_STRING_NAME))}static{this.PARAMETER_SECOND_STRING=new v(no.PARAMETER_SECOND_STRING_NAME,y.ofString(no.PARAMETER_SECOND_STRING_NAME))}static{this.PARAMETER_THIRD_STRING=new v(no.PARAMETER_THIRD_STRING_NAME,y.ofString(no.PARAMETER_THIRD_STRING_NAME))}static{this.PARAMETER_INDEX=new v(no.PARAMETER_INDEX_NAME,y.ofInteger(no.PARAMETER_INDEX_NAME))}static{this.PARAMETER_SECOND_INDEX=new v(no.PARAMETER_SECOND_INDEX_NAME,y.ofInteger(no.PARAMETER_SECOND_INDEX_NAME))}static{this.PARAMETER_SEARCH_STRING=new v(no.PARAMETER_SEARCH_STRING_NAME,y.ofString(no.PARAMETER_STRING_NAME))}static{this.EVENT_STRING=new F(F.OUTPUT,G.of(no.EVENT_RESULT_NAME,y.ofString(no.EVENT_RESULT_NAME)))}static{this.EVENT_BOOLEAN=new F(F.OUTPUT,G.of(no.EVENT_RESULT_NAME,y.ofBoolean(no.EVENT_RESULT_NAME)))}static{this.EVENT_INT=new F(F.OUTPUT,G.of(no.EVENT_RESULT_NAME,y.ofInteger(no.EVENT_RESULT_NAME)))}static{this.EVENT_ARRAY=new F(F.OUTPUT,G.of(no.EVENT_RESULT_NAME,y.ofArray(no.EVENT_RESULT_NAME)))}constructor(e,t,r,...n){super();let a=new Map;n.forEach(e=>a.set(e.getParameterName(),e)),this.signature=new k(t).setNamespace(e).setParameters(a).setEvents(G.of(r.getName(),r))}getSignature(){return this.signature}static ofEntryAsStringBooleanOutput(e,t){return[e,new class extends no{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(no.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(no.PARAMETER_SEARCH_STRING_NAME);return new H([Y.outputOf(G.of(no.EVENT_RESULT_NAME,t(r,n)))])}}(g.STRING,e,no.EVENT_BOOLEAN,no.PARAMETER_STRING,no.PARAMETER_SEARCH_STRING)]}static ofEntryAsStringAndIntegerStringOutput(e,t){return[e,new class extends no{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(no.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(no.PARAMETER_INDEX_NAME);return new H([Y.outputOf(G.of(no.EVENT_RESULT_NAME,t(r,n)))])}}(g.STRING,e,no.EVENT_STRING,no.PARAMETER_STRING,no.PARAMETER_INDEX)]}static ofEntryAsStringIntegerOutput(e,t){return[e,new class extends no{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(no.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(no.PARAMETER_SEARCH_STRING_NAME);return new H([Y.outputOf(G.of(no.EVENT_RESULT_NAME,t(r,n)))])}}(g.STRING,e,no.EVENT_INT,no.PARAMETER_STRING,no.PARAMETER_SEARCH_STRING)]}static ofEntryString(e,t){return[e,new class extends no{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(no.PARAMETER_STRING_NAME);return new H([Y.outputOf(G.of(no.EVENT_RESULT_NAME,t(r)))])}}(g.STRING,e,no.EVENT_STRING,no.PARAMETER_STRING)]}static ofEntryStringBooleanOutput(e,t){return[e,new class extends no{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(no.PARAMETER_STRING_NAME);return new H([Y.outputOf(G.of(no.EVENT_RESULT_NAME,t(r)))])}}(g.STRING,e,no.EVENT_BOOLEAN,no.PARAMETER_STRING)]}static ofEntryAsStringStringIntegerIntegerOutput(e,t){return[e,new class extends no{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(no.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(no.PARAMETER_SEARCH_STRING_NAME),a=e?.getArguments()?.get(no.PARAMETER_INDEX_NAME);return new H([Y.outputOf(G.of(no.EVENT_RESULT_NAME,t(r,n,a)))])}}(g.STRING,e,no.EVENT_INT,no.PARAMETER_STRING,no.PARAMETER_SEARCH_STRING,no.PARAMETER_INDEX)]}static ofEntryAsStringIntegerIntegerStringOutput(e,t){return[e,new class extends no{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(no.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(no.PARAMETER_INDEX_NAME),a=e?.getArguments()?.get(no.PARAMETER_SECOND_INDEX_NAME);return new H([Y.outputOf(G.of(no.EVENT_RESULT_NAME,t(r,n,a)))])}}(g.STRING,e,no.EVENT_INT,no.PARAMETER_STRING,no.PARAMETER_INDEX,no.PARAMETER_SECOND_INDEX)]}static ofEntryAsStringStringStringStringOutput(e,t){return[e,new class extends no{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(no.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(no.PARAMETER_SECOND_STRING_NAME),a=e?.getArguments()?.get(no.PARAMETER_THIRD_STRING_NAME);return new H([Y.outputOf(G.of(no.EVENT_RESULT_NAME,t(r,n,a)))])}}(g.STRING,e,no.EVENT_STRING,no.PARAMETER_STRING,no.PARAMETER_SECOND_STRING,no.PARAMETER_THIRD_STRING)]}}class nE extends el{static{this.VALUE="value"}static{this.SCHEMA=new y().setName(nE.VALUE).setType(new R(r.STRING))}static{this.SIGNATURE=new k("Concatenate").setNamespace(g.STRING).setParameters(new Map([[nE.VALUE,new v(nE.VALUE,nE.SCHEMA).setVariableArgument(!0)]])).setEvents(new Map([F.outputEventMapEntry(new Map([[nE.VALUE,y.ofString(nE.VALUE)]]))]))}constructor(){super()}getSignature(){return nE.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(nE.VALUE),r="";return t.reduce((e,t)=>r=e+t,r),new H([Y.outputOf(new Map([[nE.VALUE,r]]))])}}class nu extends el{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_AT_START_NAME="startPosition"}static{this.PARAMETER_AT_END_NAME="endPosition"}static{this.EVENT_RESULT_NAME="result"}constructor(){super(),this.PARAMETER_STRING=new v(nu.PARAMETER_STRING_NAME,y.ofString(nu.PARAMETER_STRING_NAME)),this.PARAMETER_AT_START=new v(nu.PARAMETER_AT_START_NAME,y.ofInteger(nu.PARAMETER_AT_START_NAME)),this.PARAMETER_AT_END=new v(nu.PARAMETER_AT_END_NAME,y.ofInteger(nu.PARAMETER_AT_END_NAME)),this.EVENT_STRING=new F(F.OUTPUT,new Map([[nu.EVENT_RESULT_NAME,y.ofString(nu.EVENT_RESULT_NAME)]])),this.signature=new k("DeleteForGivenLength").setNamespace(g.STRING).setParameters(new Map([[this.PARAMETER_STRING.getParameterName(),this.PARAMETER_STRING],[this.PARAMETER_AT_START.getParameterName(),this.PARAMETER_AT_START],[this.PARAMETER_AT_END.getParameterName(),this.PARAMETER_AT_END]])).setEvents(new Map([[this.EVENT_STRING.getName(),this.EVENT_STRING]]))}getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(nu.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(nu.PARAMETER_AT_START_NAME),n=e?.getArguments()?.get(nu.PARAMETER_AT_END_NAME);if(n>=r){let e="";return e+=t.substring(0,r)+t.substring(n),new H([Y.outputOf(new Map([[nu.EVENT_RESULT_NAME,e.toString()]]))])}return new H([Y.outputOf(new Map([[nu.EVENT_RESULT_NAME,t]]))])}}class nA extends el{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_AT_POSITION_NAME="position"}static{this.PARAMETER_INSERT_STRING_NAME="insertString"}getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(nA.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(nA.PARAMETER_AT_POSITION_NAME),n=e?.getArguments()?.get(nA.PARAMETER_INSERT_STRING_NAME),a="";return a+=t.substring(0,r)+n+t.substring(r),new H([Y.outputOf(new Map([[this.EVENT_RESULT_NAME,a]]))])}constructor(...e){super(...e),this.EVENT_RESULT_NAME="result",this.PARAMETER_STRING=new v(nA.PARAMETER_STRING_NAME,y.ofString(nA.PARAMETER_STRING_NAME)),this.PARAMETER_AT_POSITION=new v(nA.PARAMETER_AT_POSITION_NAME,y.ofInteger(nA.PARAMETER_AT_POSITION_NAME)),this.PARAMETER_INSERT_STRING=new v(nA.PARAMETER_INSERT_STRING_NAME,y.ofString(nA.PARAMETER_INSERT_STRING_NAME)),this.EVENT_STRING=new F(F.OUTPUT,new Map([[this.EVENT_RESULT_NAME,y.ofString(this.EVENT_RESULT_NAME)]])),this.signature=new k("InsertAtGivenPosition").setNamespace(g.STRING).setParameters(new Map([[this.PARAMETER_STRING.getParameterName(),this.PARAMETER_STRING],[this.PARAMETER_AT_POSITION.getParameterName(),this.PARAMETER_AT_POSITION],[this.PARAMETER_INSERT_STRING.getParameterName(),this.PARAMETER_INSERT_STRING]])).setEvents(new Map([F.outputEventMapEntry(new Map([[this.EVENT_RESULT_NAME,y.ofString(this.EVENT_RESULT_NAME)]]))]))}}class nl extends el{static{this.PARAMETER_REGEX_NAME="regex"}static{this.PARAMETER_STRING_NAME="string"}static{this.EVENT_RESULT_NAME="result"}static{this.signature=new k("Matches").setNamespace(g.STRING).setParameters(G.ofEntries(G.entry(...v.ofEntry(nl.PARAMETER_REGEX_NAME,y.ofString(nl.PARAMETER_REGEX_NAME))),G.entry(...v.ofEntry(nl.PARAMETER_STRING_NAME,y.ofString(nl.PARAMETER_STRING_NAME))))).setEvents(G.ofEntries(G.entry(...F.outputEventMapEntry(new Map([[nl.EVENT_RESULT_NAME,y.ofBoolean(nl.EVENT_RESULT_NAME)]])))))}getSignature(){return nl.signature}async internalExecute(e){let t=e.getArguments()?.get(nl.PARAMETER_REGEX_NAME),r=e.getArguments()?.get(nl.PARAMETER_STRING_NAME);return new H([Y.outputOf(new Map([[nl.EVENT_RESULT_NAME,!!r.match(t)?.length]]))])}}class nc extends el{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_POSTPAD_STRING_NAME="postpadString"}static{this.PARAMETER_LENGTH_NAME="length"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new v(nc.PARAMETER_STRING_NAME,y.ofString(nc.PARAMETER_STRING_NAME))}static{this.PARAMETER_POSTPAD_STRING=new v(nc.PARAMETER_POSTPAD_STRING_NAME,y.ofString(nc.PARAMETER_POSTPAD_STRING_NAME))}static{this.PARAMETER_LENGTH=new v(nc.PARAMETER_LENGTH_NAME,y.ofInteger(nc.PARAMETER_LENGTH_NAME))}static{this.EVENT_STRING=new F(F.OUTPUT,new Map([[nc.EVENT_RESULT_NAME,y.ofString(nc.EVENT_RESULT_NAME)]]))}constructor(){super(),this.signature=new k("PostPad").setNamespace(g.STRING).setParameters(new Map([[nc.PARAMETER_STRING.getParameterName(),nc.PARAMETER_STRING],[nc.PARAMETER_POSTPAD_STRING.getParameterName(),nc.PARAMETER_POSTPAD_STRING],[nc.PARAMETER_LENGTH.getParameterName(),nc.PARAMETER_LENGTH]])).setEvents(new Map([[nc.EVENT_STRING.getName(),nc.EVENT_STRING]]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(nc.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(nc.PARAMETER_POSTPAD_STRING_NAME),n=e.getArguments()?.get(nc.PARAMETER_LENGTH_NAME),a="",s=r.length;for(a+=t;s<=n;)a+=r,s+=r.length;return a.length-t.length<n&&(a+=r.substring(0,n-(a.length-t.length))),new H([Y.outputOf(new Map([[nc.EVENT_RESULT_NAME,a.toString()]]))])}}class ng extends el{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_PREPAD_STRING_NAME="prepadString"}static{this.PARAMETER_LENGTH_NAME="length"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new v(ng.PARAMETER_STRING_NAME,y.ofString(ng.PARAMETER_STRING_NAME))}static{this.PARAMETER_PREPAD_STRING=new v(ng.PARAMETER_PREPAD_STRING_NAME,y.ofString(ng.PARAMETER_PREPAD_STRING_NAME))}static{this.PARAMETER_LENGTH=new v(ng.PARAMETER_LENGTH_NAME,y.ofInteger(ng.PARAMETER_LENGTH_NAME))}static{this.EVENT_STRING=new F(F.OUTPUT,new Map([[ng.EVENT_RESULT_NAME,y.ofString(ng.EVENT_RESULT_NAME)]]))}getSignature(){return this.signature}constructor(){super(),this.signature=new k("PrePad").setNamespace(g.STRING).setParameters(new Map([[ng.PARAMETER_STRING.getParameterName(),ng.PARAMETER_STRING],[ng.PARAMETER_PREPAD_STRING.getParameterName(),ng.PARAMETER_PREPAD_STRING],[ng.PARAMETER_LENGTH.getParameterName(),ng.PARAMETER_LENGTH]])).setEvents(new Map([[ng.EVENT_STRING.getName(),ng.EVENT_STRING]]))}async internalExecute(e){let t=e.getArguments()?.get(ng.PARAMETER_STRING_NAME),r=e.getArguments()?.get(ng.PARAMETER_PREPAD_STRING_NAME),n=e.getArguments()?.get(ng.PARAMETER_LENGTH_NAME),a="",s=r.length;for(;s<=n;)a+=r,s+=r.length;return a.length<n&&(a+=r.substring(0,n-a.length)),a+=t,new H([Y.outputOf(new Map([[ng.EVENT_RESULT_NAME,a]]))])}}class nh extends el{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_BOOLEAN_NAME="boolean"}static{this.PARAMETER_FIRST_OFFSET_NAME="firstOffset"}static{this.PARAMETER_OTHER_STRING_NAME="otherString"}static{this.PARAMETER_SECOND_OFFSET_NAME="secondOffset"}static{this.PARAMETER_INTEGER_NAME="length"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new v(nh.PARAMETER_STRING_NAME,y.ofString(nh.PARAMETER_STRING_NAME))}static{this.PARAMETER_OTHER_STRING=new v(nh.PARAMETER_OTHER_STRING_NAME,y.ofString(nh.PARAMETER_OTHER_STRING_NAME))}static{this.PARAMETER_FIRST_OFFSET=new v(nh.PARAMETER_FIRST_OFFSET_NAME,y.ofInteger(nh.PARAMETER_FIRST_OFFSET_NAME))}static{this.PARAMETER_SECOND_OFFSET=new v(nh.PARAMETER_SECOND_OFFSET_NAME,y.ofInteger(nh.PARAMETER_SECOND_OFFSET_NAME))}static{this.PARAMETER_INTEGER=new v(nh.PARAMETER_INTEGER_NAME,y.ofInteger(nh.PARAMETER_INTEGER_NAME))}static{this.PARAMETER_BOOLEAN=new v(nh.PARAMETER_BOOLEAN_NAME,y.ofBoolean(nh.PARAMETER_BOOLEAN_NAME))}static{this.EVENT_BOOLEAN=new F(F.OUTPUT,new Map([[nh.EVENT_RESULT_NAME,y.ofBoolean(nh.EVENT_RESULT_NAME)]]))}getSignature(){return this.signature}constructor(){super(),this.signature=new k("RegionMatches").setNamespace(g.STRING).setParameters(new Map([[nh.PARAMETER_STRING.getParameterName(),nh.PARAMETER_STRING],[nh.PARAMETER_BOOLEAN.getParameterName(),nh.PARAMETER_BOOLEAN],[nh.PARAMETER_FIRST_OFFSET.getParameterName(),nh.PARAMETER_FIRST_OFFSET],[nh.PARAMETER_OTHER_STRING.getParameterName(),nh.PARAMETER_OTHER_STRING],[nh.PARAMETER_SECOND_OFFSET.getParameterName(),nh.PARAMETER_SECOND_OFFSET],[nh.PARAMETER_INTEGER.getParameterName(),nh.PARAMETER_INTEGER]])).setEvents(new Map([[nh.EVENT_BOOLEAN.getName(),nh.EVENT_BOOLEAN]]))}async internalExecute(e){let t=e.getArguments()?.get(nh.PARAMETER_STRING_NAME),r=e.getArguments()?.get(nh.PARAMETER_BOOLEAN_NAME),n=e.getArguments()?.get(nh.PARAMETER_FIRST_OFFSET_NAME),a=e?.getArguments()?.get(nh.PARAMETER_OTHER_STRING_NAME),s=e?.getArguments()?.get(nh.PARAMETER_SECOND_OFFSET_NAME),i=e.getArguments()?.get(nh.PARAMETER_INTEGER_NAME),o=!1;return o=!(n<0)&&!(s<0)&&!(n+i>t.length)&&!(s+i>a.length)&&(r?(t=t.substring(n,n+i).toUpperCase())==a.substring(s,s+i).toUpperCase():(t=t.substring(n,n+i))==a.substring(s,i)),new H([Y.outputOf(new Map([[nh.EVENT_RESULT_NAME,o]]))])}}class np extends el{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_AT_START_NAME="startPosition"}static{this.PARAMETER_AT_LENGTH_NAME="lengthPosition"}static{this.PARAMETER_REPLACE_STRING_NAME="replaceString"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new v(np.PARAMETER_STRING_NAME,y.ofString(np.PARAMETER_STRING_NAME))}static{this.PARAMETER_AT_START=new v(np.PARAMETER_AT_START_NAME,y.ofInteger(np.PARAMETER_AT_START_NAME))}static{this.PARAMETER_AT_LENGTH=new v(np.PARAMETER_AT_LENGTH_NAME,y.ofInteger(np.PARAMETER_AT_LENGTH_NAME))}static{this.PARAMETER_REPLACE_STRING=new v(np.PARAMETER_REPLACE_STRING_NAME,y.ofString(np.PARAMETER_REPLACE_STRING_NAME))}static{this.EVENT_STRING=new F(F.OUTPUT,new Map([[np.EVENT_RESULT_NAME,y.ofString(np.EVENT_RESULT_NAME)]]))}constructor(){super(),this.signature=new k("ReplaceAtGivenPosition").setNamespace(g.STRING).setParameters(new Map([[np.PARAMETER_STRING.getParameterName(),np.PARAMETER_STRING],[np.PARAMETER_AT_START.getParameterName(),np.PARAMETER_AT_START],[np.PARAMETER_AT_LENGTH.getParameterName(),np.PARAMETER_AT_LENGTH],[np.PARAMETER_REPLACE_STRING.getParameterName(),np.PARAMETER_REPLACE_STRING]])).setEvents(new Map([[np.EVENT_STRING.getName(),np.EVENT_STRING]]))}getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(np.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(np.PARAMETER_AT_START_NAME),n=e?.getArguments()?.get(np.PARAMETER_AT_LENGTH_NAME);return e?.getArguments()?.get(np.PARAMETER_REPLACE_STRING_NAME),t.length,r<n&&(t.substring(0,r),t.substring(r+n)),new H([Y.outputOf(new Map([[np.EVENT_RESULT_NAME,t]]))])}}class nT extends el{constructor(){super(),this.VALUE="value",this.SIGNATURE=new k("Reverse").setNamespace(g.STRING).setParameters(new Map([[this.VALUE,new v(this.VALUE,y.ofString(this.VALUE)).setVariableArgument(!1)]])).setEvents(new Map([F.outputEventMapEntry(new Map([[this.VALUE,new y().setType(f.of(r.STRING)).setName(this.VALUE)]]))]))}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 H([Y.outputOf(G.of(this.VALUE,n))])}}class nm extends el{getSignature(){return new k("Split").setNamespace(g.STRING).setParameters(new Map([[this.PARAMETER_STRING_NAME,this.PARAMETER_STRING],[this.PARAMETER_SPLIT_STRING_NAME,this.PARAMETER_SPLIT_STRING]])).setEvents(new Map([F.outputEventMapEntry(new Map([[this.EVENT_RESULT_NAME,y.ofArray(this.EVENT_RESULT_NAME)]]))]))}constructor(){super(),this.PARAMETER_STRING_NAME="string",this.PARAMETER_SPLIT_STRING_NAME="searchString",this.EVENT_RESULT_NAME="result",this.PARAMETER_STRING=new v(this.PARAMETER_STRING_NAME,y.ofString(this.PARAMETER_STRING_NAME)),this.PARAMETER_SPLIT_STRING=new v(this.PARAMETER_SPLIT_STRING_NAME,y.ofString(this.PARAMETER_SPLIT_STRING_NAME)),this.EVENT_ARRAY=new F(F.OUTPUT,G.of(this.EVENT_RESULT_NAME,y.ofArray(this.EVENT_RESULT_NAME)))}async internalExecute(e){let t=e.getArguments()?.get(this.PARAMETER_STRING_NAME),r=e.getArguments()?.get(this.PARAMETER_SPLIT_STRING_NAME);return new H([Y.outputOf(G.of(this.EVENT_RESULT_NAME,t.split(r)))])}}class nR extends el{getSignature(){return new k("ToString").setNamespace(g.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(),this.PARAMETER_INPUT_ANYTYPE_NAME="anytype",this.EVENT_RESULT_NAME="result",this.PARAMETER_INPUT_ANYTYPE=new v(this.PARAMETER_INPUT_ANYTYPE_NAME,y.ofAny(this.PARAMETER_INPUT_ANYTYPE_NAME)),this.EVENT_STRING=new F(F.OUTPUT,new Map([[this.EVENT_RESULT_NAME,y.ofString(this.EVENT_RESULT_NAME)]]))}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 H([Y.outputOf(new Map([[this.EVENT_RESULT_NAME,r]]))])}}class nf extends el{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_LENGTH_NAME="length"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new v(nf.PARAMETER_STRING_NAME,y.ofString(nf.PARAMETER_STRING_NAME))}static{this.PARAMETER_LENGTH=new v(nf.PARAMETER_LENGTH_NAME,y.ofInteger(nf.PARAMETER_LENGTH_NAME))}static{this.EVENT_STRING=new F(F.OUTPUT,new Map([[nf.EVENT_RESULT_NAME,y.ofString(nf.EVENT_RESULT_NAME)]]))}getSignature(){return this.signature}constructor(){super(),this.signature=new k("TrimTo").setNamespace(g.STRING).setParameters(new Map([[nf.PARAMETER_STRING.getParameterName(),nf.PARAMETER_STRING],[nf.PARAMETER_LENGTH.getParameterName(),nf.PARAMETER_LENGTH]])).setEvents(new Map([[nf.EVENT_STRING.getName(),nf.EVENT_STRING]]))}async internalExecute(e){let t=e.getArguments()?.get(nf.PARAMETER_STRING_NAME),r=e.getArguments()?.get(nf.PARAMETER_LENGTH_NAME);return new H([Y.outputOf(new Map([[nf.EVENT_RESULT_NAME,t.substring(0,r)]]))])}}class nN{static{this.repoMap=G.ofArrayEntries(no.ofEntryString("Trim",e=>e.trim()),no.ofEntryString("LowerCase",e=>e.toLocaleLowerCase()),no.ofEntryString("UpperCase",e=>e.toUpperCase()),no.ofEntryStringBooleanOutput("IsBlank",e=>""===e.trim()),no.ofEntryStringBooleanOutput("IsEmpty",e=>""===e),no.ofEntryAsStringBooleanOutput("Contains",(e,t)=>-1!=e.indexOf(t)),no.ofEntryAsStringBooleanOutput("EndsWith",(e,t)=>e.endsWith(t)),no.ofEntryAsStringBooleanOutput("StartsWith",(e,t)=>e.startsWith(t)),no.ofEntryAsStringBooleanOutput("EqualsIgnoreCase",(e,t)=>e.toUpperCase()==t.toUpperCase()),no.ofEntryAsStringBooleanOutput("Matches",(e,t)=>new RegExp(t).test(e)),no.ofEntryAsStringIntegerOutput("IndexOf",(e,t)=>e.indexOf(t)),no.ofEntryAsStringIntegerOutput("LastIndexOf",(e,t)=>e.lastIndexOf(t)),no.ofEntryAsStringAndIntegerStringOutput("Repeat",(e,t)=>e.repeat(t)),no.ofEntryAsStringStringIntegerIntegerOutput("IndexOfWithStartPoint",(e,t,r)=>e.indexOf(t,r)),no.ofEntryAsStringStringIntegerIntegerOutput("LastIndexOfWithStartPoint",(e,t,r)=>e.lastIndexOf(t,r)),no.ofEntryAsStringStringStringStringOutput("Replace",(e,t,r)=>e.replaceAll(t,r)),no.ofEntryAsStringStringStringStringOutput("ReplaceFirst",(e,t,r)=>e.replace(t,r)),no.ofEntryAsStringIntegerIntegerStringOutput("SubString",(e,t,r)=>e.substring(t,r)),C(new nE),C(new nu),C(new nA),C(new nc),C(new ng),C(new nh),C(new np),C(new nT),C(new nm),C(new nR),C(new nf),C(new nl))}static{this.filterableNames=Array.from(nN.repoMap.values()).map(e=>e.getSignature().getFullName())}async find(e,t){return e!=g.STRING?Promise.resolve(void 0):Promise.resolve(nN.repoMap.get(t))}async filter(e){return Promise.resolve(nN.filterableNames.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}class n_{constructor(){}static isLeapYear(e){return e%4==0&&e%100!=0||e%400==0}static validYearRange(e){return e<275761&&e>-271821}static validMonthRange(e){return e<=12&&e>0}static validDate(e,t,r){if(r<=0||t<=0)return!1;switch(t){case 2:return n_.validYearRange(e)&&n_.validMonthRange(t)&&n_.isLeapYear(e)&&r<30||!n_.isLeapYear(e)&&r<29;case 4:case 6:case 9:case 11:return n_.validYearRange(e)&&n_.validMonthRange(t)&&r<=30;default:return n_.validYearRange(e)&&n_.validMonthRange(t)&&r<=31}}static validHourRange(e){return e<24&&e>=0}static validMinuteSecondRange(e){return e<60&&e>=0}static validMilliSecondRange(e){return e<1e3&&e>=0}static validateWithOptionalMillis(e){return n_.validMilliSecondRange(n_.convertToInt(e.substring(1,4)))&&n_.validateLocalTime(e.substring(4))}getYear(e){let t=e.charAt(0);if("+"==t||"-"==t){let r=n_.convertToInt(e.substring(1,7));return"-"==t?-1*r:r}return n_.convertToInt(e.substring(0,4))}static validateLocalTime(e){return"Z"==e.charAt(0)||6==e.length&&("+"==e.charAt(0)||"-"==e.charAt(0))&&n_.validHourRange(n_.convertToInt(e.substring(1,3)))&&":"==e.charAt(3)&&n_.validMinuteSecondRange(n_.convertToInt(e.substring(4,e.length-1)))}static validate(e){if(e.length<20||e.length>32)return!1;let t=e.charAt(0);return"+"==t||"-"==t?"-"==e.charAt(7)&&"-"==e.charAt(10)&&"T"==e.charAt(13)&&":"==e.charAt(16)&&":"==e.charAt(19)&&"."==e.charAt(22)&&n_.validDate(n_.convertToInt(e.substring(1,7)),n_.convertToInt(e.substring(8,10)),n_.convertToInt(e.substring(11,13)))&&n_.validHourRange(n_.convertToInt(e.substring(14,16)))&&n_.validMinuteSecondRange(n_.convertToInt(e.substring(17,19)))&&n_.validMinuteSecondRange(n_.convertToInt(e.substring(20,22)))&&n_.validateWithOptionalMillis(e.substring(22)):"-"==e.charAt(4)&&"-"==e.charAt(7)&&"T"==e.charAt(10)&&":"==e.charAt(13)&&":"==e.charAt(16)&&"."==e.charAt(19)&&n_.validDate(n_.convertToInt(e.substring(0,4)),n_.convertToInt(e.substring(5,7)),n_.convertToInt(e.substring(8,10)))&&n_.validHourRange(n_.convertToInt(e.substring(11,13)))&&n_.validMinuteSecondRange(n_.convertToInt(e.substring(14,16)))&&n_.validMinuteSecondRange(n_.convertToInt(e.substring(17,19)))&&n_.validateWithOptionalMillis(e.substring(19))}static convertToInt(e){var t=parseInt(e);return isNaN(t)?Number.MIN_VALUE:t}}class nS extends el{static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_DATE_NAME="isoDate"}static{this.PARAMETER_FIELD_NAME="value"}static{this.PARAMETER_INT_NAME="intValue"}static{this.PARAMETER_UNIT_NAME="unit"}static{this.PARAMETER_DATE=new v(nS.PARAMETER_DATE_NAME,y.ofString(this.PARAMETER_DATE_NAME).setRef(g.DATE+".timeStamp"))}static{this.PARAMETER_FIELD=new v(nS.PARAMETER_FIELD_NAME,y.ofInteger(this.PARAMETER_FIELD_NAME))}static{this.PARAMETER_INT=new v(nS.PARAMETER_INT_NAME,y.ofInteger(this.PARAMETER_INT_NAME))}static{this.PARAMETER_UNIT=new v(nS.PARAMETER_UNIT_NAME,y.ofString(this.PARAMETER_UNIT_NAME).setEnums(["YEAR","MONTH","DAY","HOUR","MINUTE","SECOND","MILLISECOND"]))}static{this.EVENT_INT=new F(F.OUTPUT,G.of(nS.EVENT_RESULT_NAME,y.ofInteger(nS.EVENT_RESULT_NAME)))}static{this.EVENT_BOOLEAN=new F(F.OUTPUT,G.of(nS.EVENT_RESULT_NAME,y.ofBoolean(nS.EVENT_RESULT_NAME)))}static{this.EVENT_DATE=new F(F.OUTPUT,G.of(nS.EVENT_RESULT_NAME,y.ofString(nS.EVENT_RESULT_NAME).setRef(g.DATE+".timeStamp")))}getSignature(){return this.signature}constructor(e,t,r,...n){super();let a=new Map;n.forEach(e=>a.set(e.getParameterName(),e)),this.signature=new k(t).setNamespace(e).setParameters(a).setEvents(G.of(r.getName(),r))}static ofEntryDateAndBooleanOutput(e,t){return[e,new class extends nS{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e.getArguments()?.get(nS.PARAMETER_DATE_NAME);if(h(r)||!n_.validate(r))throw new B("Please provide a valid date.");return new H([Y.outputOf(G.of(nS.EVENT_RESULT_NAME,t(r)))])}}(g.DATE,e,nS.EVENT_BOOLEAN,nS.PARAMETER_DATE)]}static ofEntryDateAndIntegerOutput(e,t){return[e,new class extends nS{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e.getArguments()?.get(nS.PARAMETER_DATE_NAME);if(h(r)||!n_.validate(r))throw new B("Please provide a valid date object");return new H([Y.outputOf(G.of(nS.EVENT_RESULT_NAME,t(r)))])}}(g.DATE,e,nS.EVENT_INT,nS.PARAMETER_DATE)]}static ofEntryDateWithIntegerUnitWithOutputName(e,t){return[e,new class extends nS{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e.getArguments()?.get(nS.PARAMETER_DATE_NAME);if(h(r)||!n_.validate(r))throw new B("Please provide a valid date object");let n=e.getArguments()?.get(nS.PARAMETER_INT_NAME),a=e.getArguments()?.get(nS.PARAMETER_UNIT_NAME);return new H([Y.outputOf(G.of(nS.EVENT_RESULT_NAME,t(r,n,a)))])}}(g.DATE,e,nS.EVENT_DATE,nS.PARAMETER_DATE,nS.PARAMETER_INT,nS.PARAMETER_UNIT)]}}let nM="result",nd="isoDate";class nw extends el{getSignature(){return new k("DateToEpoch").setNamespace(g.DATE).setParameters(G.of(nd,v.of(nd,y.ofRef(g.DATE+".timeStamp")))).setEvents(new Map([F.outputEventMapEntry(new Map([[nM,y.ofLong(nM)]]))]))}async internalExecute(e){var t=e.getArguments()?.get(nd);if(h(t)||!n_.validate(t))throw new B("Please provide a valid date object");let r=new Date(t).getTime();return new H([Y.of(nM,G.of(nM,r))])}}let nO="isoDateOne",nI="isoDateTwo",nP=new k("DifferenceOfTimestamps").setNamespace(g.DATE).setParameters(new Map([[nO,new v(nO,y.ofString(nO).setRef(g.DATE+".timeStamp"))],[nI,new v(nI,y.ofString(nI).setRef(g.DATE+".timeStamp"))]]));class ny extends el{getSignature(){return nP}async internalExecute(e){let t=e?.getArguments()?.get(nO),r=e?.getArguments()?.get(nI);if(!n_.validate(t)||!n_.validate(r))throw new B("Please provide valid ISO date for both the given dates.");let n=new Date(t),a=new Date(r);return new H([Y.outputOf(new Map([["result",(a.getTime()-n.getTime())/6e4]]))])}}let nx="epoch",nL="date",nv=new k("EpochToDate").setNamespace(g.DATE).setParameters(new Map([[nx,new v(nx,new y().setAnyOf([y.ofInteger(nx),y.ofLong(nx),y.ofString(nx)]))]])).setEvents(new Map([F.outputEventMapEntry(new Map([[nL,y.ofRef(`${g.DATE}.timeStamp`)]]))]));class nU extends el{getSignature(){return nv}async internalExecute(e){var t=e.getArguments()?.get(nx);if(h(t)||"boolean"==typeof t||("string"==typeof t&&(t=parseInt(t)),isNaN(t)))throw new B("Please provide a valid value for epoch.");return t=t>0xe8d4a50fff?t:1e3*t,new H([Y.outputOf(new Map([[nL,new Date(t).toISOString()]]))])}}let nb="date",nV=new k("GetCurrentTimeStamp").setNamespace(g.DATE).setParameters(new Map([])).setEvents(new Map([F.outputEventMapEntry(new Map([[nb,y.ofRef(`${g.DATE}.timeStamp`)]]))]));class nC extends el{getSignature(){return nV}async internalExecute(e){let t=new Date(Date.now()).toISOString();return new H([Y.of(nb,new Map([[nb,t]]))])}}let nD="isoDate",nG="result",n$=new k("GetTimeAsArray").setNamespace(g.DATE).setParameters(G.of(nD,v.of(nD,y.ofRef(g.DATE+".timeStamp")))).setEvents(new Map([F.outputEventMapEntry(new Map([[nG,y.ofArray(nG).setItems(p.of(y.ofNumber("number")))]]))]));class nF extends el{getSignature(){return n$}async internalExecute(e){var t=e.getArguments()?.get(nD);if(h(t)||!n_.validate(t))throw new B("Please provide a valid date object");let r=new Date(t),n=[r.getUTCFullYear(),r.getUTCMonth()+1,r.getUTCDate(),r.getUTCHours(),r.getUTCMinutes(),r.getUTCSeconds(),r.getUTCMilliseconds()];return new H([Y.outputOf(new Map([[nG,n]]))])}}let nY="isoDate",nB="result",nH=new k("GetTimeAsObject").setNamespace(g.DATE).setParameters(G.of(nY,v.of(nY,y.ofRef(g.DATE+".timeStamp")))).setEvents(new Map([F.outputEventMapEntry(new Map([[nB,y.ofObject(nB).setProperties(new Map([["year",y.ofNumber("year")],["month",y.ofNumber("month")],["day",y.ofNumber("day")],["hours",y.ofNumber("hours")],["minutes",y.ofNumber("minutes")],["seconds",y.ofNumber("seconds")],["milliseconds",y.ofNumber("milliseconds")]]))]]))]));class nk extends el{getSignature(){return nH}async internalExecute(e){var t=e.getArguments()?.get(nY);if(h(t)||!n_.validate(t))throw new B("Please provide a valid date object");let r=new Date(t),n={year:r.getUTCFullYear(),month:r.getUTCMonth()+1,day:r.getUTCDate(),hours:r.getUTCHours(),minutes:r.getUTCMinutes(),seconds:r.getUTCSeconds(),milliseconds:r.getUTCMilliseconds()};return new H([Y.outputOf(new Map([[nB,n]]))])}}let nj="isoDate",nW="output",nX=new k("IsValidISODate").setNamespace(g.DATE).setParameters(G.of(nj,v.of(nj,y.ofRef(g.DATE+".timeStamp")))).setEvents(G.of(nW,new F(nW,G.of(nW,y.ofBoolean(nW)))));class nq extends el{getSignature(){return nX}async internalExecute(e){var t=e.getArguments()?.get(nj);if(h(t))throw new B("Please provide a valid date object");return new H([Y.of(nW,G.of(nW,n_.validate(t)))])}}let nJ="isoDates",nz="result",nK="Please provide a valid date",nQ=new k("MaximumTimestamp").setNamespace(g.DATE).setParameters(new Map([[nJ,v.of(nJ,y.ofString(nJ).setRef(g.DATE+".timeStamp")).setVariableArgument(!0)]])).setEvents(new Map([[nz,new F(nz,new Map([[nz,y.ofString(nz).setRef(g.DATE+".timeStamp")]]))]]));class nZ extends el{getSignature(){return nQ}async internalExecute(e){let t=e?.getArguments()?.get(nJ),r=t.length;if(0===r)throw new B(nK);if(1==r){let e=t[0];if(!n_.validate(e))throw new B(nK);return new H([Y.outputOf(new Map([[nz,e]]))])}let n=0,a=new Date(t[0]).getTime();for(let e=1;e<r;e++){let r=t[e];if(!n_.validate(r))throw new B(nK);let s=new Date(r).getTime();s>a&&(a=s,n=e)}return new H([Y.outputOf(new Map([[nz,t[n]]]))])}}let n0="isoDates",n1="result",n2="Please provide a valid date",n7=new k("MinimumTimestamp").setNamespace(g.DATE).setParameters(new Map([[n0,v.of(n0,y.ofString(n0).setRef(g.DATE+".timeStamp")).setVariableArgument(!0)]])).setEvents(new Map([[n1,new F(n1,new Map([[n1,y.ofString(n1).setRef(g.DATE+".timeStamp")]]))]]));class n5 extends el{getSignature(){return n7}async internalExecute(e){let t=e?.getArguments()?.get(n0),r=t.length;if(0===r)throw new B(n2);if(1==r){let e=t[0];if(!n_.validate(e))throw new B(n2);return new H([Y.outputOf(new Map([[n1,e]]))])}let n=0,a=new Date(t[0]).getTime();for(let e=1;e<r;e++){let r=t[e];if(!n_.validate(r))throw new B(n2);let s=new Date(r).getTime();s<a&&(a=s,n=e)}return new H([Y.outputOf(new Map([[n1,t[n]]]))])}}class n4{static{this.repoMap=G.ofArrayEntries(C(new nw),C(new nU),C(new nC),C(new ny),C(new nq),C(new nF),C(new nk),C(new nZ),C(new n5),nS.ofEntryDateAndBooleanOutput("IsLeapYear",e=>{let t=new Date(e).getUTCFullYear();return t%4==0&&t%100!=0||t%400==0}),nS.ofEntryDateAndIntegerOutput("GetDate",e=>new Date(e).getUTCDate()),nS.ofEntryDateAndIntegerOutput("GetDay",e=>new Date(e).getUTCDay()),nS.ofEntryDateAndIntegerOutput("GetFullYear",e=>new Date(e).getUTCFullYear()),nS.ofEntryDateAndIntegerOutput("GetMonth",e=>new Date(e).getUTCMonth()),nS.ofEntryDateAndIntegerOutput("GetHours",e=>new Date(e).getUTCHours()),nS.ofEntryDateAndIntegerOutput("GetMinutes",e=>new Date(e).getUTCMinutes()),nS.ofEntryDateAndIntegerOutput("GetSeconds",e=>new Date(e).getUTCSeconds()),nS.ofEntryDateAndIntegerOutput("GetMilliSeconds",e=>new Date(e).getUTCMilliseconds()),nS.ofEntryDateAndIntegerOutput("GetTime",e=>new Date(e).getTime()),nS.ofEntryDateWithIntegerUnitWithOutputName("AddTime",(e,t,r)=>this.changeAmountToUnit(e,r,t,!0)),nS.ofEntryDateWithIntegerUnitWithOutputName("SubtractTime",(e,t,r)=>this.changeAmountToUnit(e,r,t,!1)))}static{this.filterableNames=Array.from(n4.repoMap.values()).map(e=>e.getSignature().getFullName())}static changeAmountToUnit(e,t,r,n){let a=n?r:-1*r,s=this.getFullUTCDate(e),i=this.getTimezoneOffset(e);switch(t){case"MILLISECOND":s.setMilliseconds(s.getMilliseconds()+a);break;case"SECOND":s.setSeconds(s.getSeconds()+a);break;case"MINUTE":s.setMinutes(s.getMinutes()+a);break;case"HOUR":s.setHours(s.getHours()+a);break;case"DAY":s.setDate(s.getDate()+a);break;case"MONTH":s.setMonth(s.getMonth()+a);break;case"YEAR":s.setFullYear(s.getFullYear()+a);break;default:throw new B("No such unit: "+t)}return this.formatDate(s,i)}static getTimezoneOffset(e){if("Z"===e.charAt(e.length-1))return"+00:00";let t=-1!==e.indexOf("+")?e.lastIndexOf("+"):e.lastIndexOf("-");if(-1===t)return"+00:00";let r=e.substring(t);return 3===r.length?r=r.substring(0,1)+"0"+r.substring(1)+":00":5===r.length&&(r=r.substring(0,3)+":"+r.substring(3)),r}static getFullUTCDate(e){-1!==e.lastIndexOf("+")?e=e.substring(0,e.lastIndexOf("+"))+"Z":-1!==e.lastIndexOf("-")&&(e=e.substring(0,e.lastIndexOf("-"))+"Z");let t=new Date(e);return new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth()+1,t.getUTCDate(),t.getUTCHours(),t.getUTCMinutes(),t.getUTCSeconds(),t.getUTCMilliseconds()))}static formatDate(e,t){let r=e=>e.toString().padStart(2,"0"),n=0===e.getUTCMonth()?e.getUTCFullYear()-1:e.getUTCFullYear(),a=r(0===e.getUTCMonth()?12:e.getUTCMonth()),s=r(e.getUTCDate()),i=r(e.getUTCHours()),o=r(e.getUTCMinutes()),E=r(e.getUTCSeconds()),u=r(e.getUTCMilliseconds());return`${n}-${a}-${s}T${i}:${o}:${E}.${u}${t}`}find(e,t){return e!=g.DATE?Promise.resolve(void 0):Promise.resolve(n4.repoMap.get(t))}filter(e){return Promise.resolve(n4.filterableNames.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}class n6 extends el{static{this.MILLIS="millis"}static{this.SIGNATURE=new k("Wait").setNamespace(g.SYSTEM).setParameters(new Map([v.ofEntry(n6.MILLIS,y.ofNumber(n6.MILLIS).setMinimum(0).setDefaultValue(0))])).setEvents(new Map([F.outputEventMapEntry(new Map)]))}getSignature(){return n6.SIGNATURE}async internalExecute(e){var t=e.getArguments()?.get(n6.MILLIS);return await new Promise(e=>setTimeout(e,t)),new H([Y.outputOf(new Map)])}}e({},"HybridRepository",()=>n9);class n9{constructor(...e){this.repos=e}async find(e,t){for(let r of this.repos){let n=await r.find(e,t);if(n)return n}}async filter(e){let t=new Set;for(let r of this.repos)(await r.filter(e)).forEach(e=>t.add(e));return Array.from(t)}}let n3=new Map([[g.SYSTEM_CTX,new Map([C(new class extends el{getSignature(){return to}async internalExecute(e){let t=e?.getArguments()?.get(ts);if(e?.getContext()?.has(t))throw new B(j.format("Context already has an element for '$' ",t));let r=y.from(e?.getArguments()?.get(ti));if(!r)throw new B("Schema is not supplied.");return e.getContext().set(t,new ta(r,h(r.getDefaultValue())?void 0:r.getDefaultValue())),new H([Y.outputOf(new Map)])}}),C(new class extends el{getSignature(){return tA}async internalExecute(e){let t=e?.getArguments()?.get(tE);if(!e.getContext()?.has(t))throw new B(j.format("Context don't have an element for '$' ",t));return new H([Y.outputOf(new Map([tu,e.getContext()?.get(t)?.getElement()]))])}}),C(new class extends el{getSignature(){return rh}async internalExecute(e){let t=e?.getArguments()?.get(rc);if(J.isNullOrBlank(t))throw new B("Empty string is not a valid name for the context element");let r=e?.getArguments()?.get(rg),n=new eX(t),a=n.getTokens().peekLast();if(!a.getExpression().startsWith("Context")||a instanceof eX||a instanceof ej&&!a.getElement().toString().startsWith("Context"))throw new em(j.format("The context path $ is not a valid path in context",t));for(let e of n.getOperations().toArray())if(e!=eW.ARRAY_OPERATOR&&e!=eW.OBJECT_OPERATOR)throw new em(j.format("Expected a reference to the context location, but found an expression $",t));for(let r=0;r<n.getTokens().size();r++){let a=n.getTokens().get(r);a instanceof eX&&n.getTokens().set(r,new ej(t,new rl(a).evaluate(e.getValuesMap())))}return this.modifyContext(e,t,r,n)}modifyContext(e,t,r,n){let a=n.getTokens();a.removeLast();let s=n.getOperations();s.removeLast();let i=e.getContext()?.get(a.removeLast().getExpression());if(h(i))throw new B(j.format("Context doesn't have any element with name '$' ",t));if(s.isEmpty())return i.setElement(r),new H([Y.outputOf(new Map)]);let o=i.getElement(),E=s.removeLast(),u=a.removeLast(),A=u instanceof ej?u.getElement():u.getExpression();for(h(o)&&(o=E==eW.OBJECT_OPERATOR?{}:[],i.setElement(o));!s.isEmpty();)o=E==eW.OBJECT_OPERATOR?this.getDataFromObject(o,A,s.peekLast()):this.getDataFromArray(o,A,s.peekLast()),E=s.removeLast(),A=(u=a.removeLast())instanceof ej?u.getElement():u.getExpression();return E==eW.OBJECT_OPERATOR?this.putDataInObject(o,A,r):this.putDataInArray(o,A,r),new H([Y.outputOf(new Map)])}getDataFromArray(e,t,r){if(!Array.isArray(e))throw new B(j.format("Expected an array but found $",e));let n=parseInt(t);if(isNaN(n))throw new B(j.format("Expected an array index but found $",t));if(n<0)throw new B(j.format("Array index is out of bound - $",t));let a=e[n];return h(a)&&(a=r==eW.OBJECT_OPERATOR?{}:[],e[n]=a),a}getDataFromObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new B(j.format("Expected an object but found $",e));let n=e[t];return h(n)&&(n=r==eW.OBJECT_OPERATOR?{}:[],e[t]=n),n}putDataInArray(e,t,r){if(!Array.isArray(e))throw new B(j.format("Expected an array but found $",e));let n=parseInt(t);if(isNaN(n))throw new B(j.format("Expected an array index but found $",t));if(n<0)throw new B(j.format("Array index is out of bound - $",t));e[n]=r}putDataInObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new B(j.format("Expected an object but found $",e));e[t]=r}})])],[g.SYSTEM_LOOP,new Map([C(new class extends el{getSignature(){return rV}async internalExecute(e){let t=e.getArguments()?.get(rL),r=e.getArguments()?.get("to"),n=e.getArguments()?.get(rv),a=n>0,s=t,i=!1,o=e.getStatementExecution()?.getStatement()?.getStatementName();return new H({next(){if(i)return;if(a&&s>=r||!a&&s<=r||o&&e.getExecutionContext()?.get(o))return i=!0,o&&e.getExecutionContext()?.delete(o),Y.outputOf(new Map([[rU,s]]));let t=Y.of(F.ITERATION,new Map([[rb,s]]));return s+=n,t}})}}),C(new class extends el{getSignature(){return rw}async internalExecute(e){let t=e.getArguments()?.get(rS),r=0,n=e.getStatementExecution()?.getStatement()?.getStatementName();return new H({next(){if(r>=t||n&&e.getExecutionContext()?.get(n))return n&&e.getExecutionContext()?.delete(n),Y.outputOf(new Map([[rM,r]]));let a=Y.of(F.ITERATION,new Map([[rd,r]]));return++r,a}})}}),C(new class extends el{getSignature(){return r_}async internalExecute(e){let t=e.getArguments()?.get(rN);return e.getExecutionContext().set(t,!0),new H([Y.outputOf(new Map)])}}),C(new class extends el{getSignature(){return rx}async internalExecute(e){let t=e.getArguments()?.get(rO),r=0,n=e.getStatementExecution()?.getStatement()?.getStatementName();return new H({next(){if(r>=t.length||n&&e.getExecutionContext()?.get(n))return n&&e.getExecutionContext()?.delete(n),Y.outputOf(new Map([[ry,r]]));let a=Y.of(F.ITERATION,new Map([[rP,r],[rI,t[r]]]));return++r,a}})}})])],[g.SYSTEM,new Map([C(new rf),C(new class extends el{getSignature(){return rR}async internalExecute(e){let t=e.getEvents(),r=e.getArguments(),n=r?.get(rT),a=e?.getArguments()?.get(rm).map(t=>{let r=t[rp];if(h(r))throw new B("Expect a value object");let n=r.value;return r.isExpression&&(n=new rl(n).evaluate(e.getValuesMap())),[t.name,n]}).reduce((e,t)=>(e.set(t[0],t[1]),e),new Map);return t?.has(n)||t?.set(n,[]),t?.get(n)?.push(a),new H([Y.outputOf(new Map)])}}),C(new ni),C(new n6),C(new tr)])]]),n8=Array.from(n3.values()).flatMap(e=>Array.from(e.values())).map(e=>e.getSignature().getFullName());class ae extends n9{constructor(){super({find:async(e,t)=>n3.get(e)?.get(t),filter:async e=>Array.from(n8).filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase()))},new r1,new nN,new tn,new ns,new n4)}}e({},"StatementExecution",()=>ar),e({},"StatementMessage",()=>at);class at{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 ar{constructor(e){this.messages=[],this.dependencies=new Set,this.statement=e}getStatement(){return this.statement}setStatement(e){return this.statement=e,this}getMessages(){return this.messages}setMessages(e){return this.messages=e,this}getDependencies(){return this.dependencies}setDependencies(e){return this.dependencies=e,this}getUniqueKey(){return this.statement.getStatementName()}addMessage(e,t){this.messages.push(new at(e,t))}addDependency(e){this.dependencies.add(e)}getDepenedencies(){return this.dependencies}equals(e){return e instanceof ar&&e.statement.equals(this.statement)}}e({},"ContextTokenValueExtractor",()=>an);class an extends eq{static{this.PREFIX="Context."}constructor(e){super(),this.context=e}getValueInternal(e){let t=e.split(eq.REGEX_DOT),r=t[1],n=r.indexOf("["),a=2;return -1!=n&&(r=t[1].substring(0,n),t[1]=t[1].substring(n),a=1),this.retrieveElementFrom(e,t,a,this.context.get(r)?.getElement())}getPrefix(){return an.PREFIX}getStore(){return h(this.context)?this.context:Array.from(this.context.entries()).reduce((e,[t,r])=>(h(r)||(e[t]=r.getElement()),e),{})}}e({},"OutputMapTokenValueExtractor",()=>aa);class aa extends eq{static{this.PREFIX="Steps."}constructor(e){super(),this.output=e}getValueInternal(e){let t=e.split(eq.REGEX_DOT),r=1,n=this.output.get(t[r++]);if(!n||r>=t.length)return;let a=n.get(t[r++]);if(!a||r>t.length)return;if(r===t.length)return a;let s=t[r].indexOf("[");if(-1===s){let n=a.get(t[r++]);return this.retrieveElementFrom(e,t,r,n)}let i=t[r].substring(0,s),o=a.get(i);return this.retrieveElementFrom(e,t,r,{[i]:o})}getPrefix(){return aa.PREFIX}getStore(){return this.convertMapToObj(this.output)}convertMapToObj(e){return 0===e.size?{}:Array.from(e.entries()).reduce((e,[t,r])=>(e[t]=r instanceof Map?this.convertMapToObj(r):r,e),{})}}e({},"ArgumentsTokenValueExtractor",()=>as);class as extends eq{static{this.PREFIX="Arguments."}constructor(e){super(),this.args=e}getValueInternal(e){let t=e.split(eq.REGEX_DOT),r=t[1],n=r.indexOf("["),a=2;return -1!=n&&(r=t[1].substring(0,n),t[1]=t[1].substring(n),a=1),this.retrieveElementFrom(e,t,a,this.args.get(r))}getPrefix(){return as.PREFIX}getStore(){return h(this.args)?this.args:Array.from(this.args.entries()).reduce((e,[t,r])=>(e[t]=r,e),{})}}e({},"GraphVertex",()=>ao),e({},"ExecutionGraph",()=>ai);class ai{constructor(e=!1){this.nodeMap=new Map,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 ao(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 W(this.getVerticesWithNoIncomingEdges()),r=new Set;for(;!t.isEmpty();){if(r.has(t.getFirst().getKey()))return!0;e=t.removeFirst(),r.add(e.getKey()),e.hasOutgoingEdges()&&t.addAll(Array.from(e.getOutVertices().values()).flatMap(e=>Array.from(e)))}return!1}addVertices(e){for(let t of e)this.addVertex(t)}getNodeMap(){return this.nodeMap}isSubGraph(){return this.isSubGrph}toString(){return"Execution Graph : \n"+Array.from(this.nodeMap.values()).map(e=>e.toString()).join("\n")}}class ao{constructor(e,t){this.outVertices=new Map,this.inVertices=new Set,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 K(this,e)),t}addInEdgeTo(e,t){return this.inVertices.add(new K(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 ai(!0);var r=new W(Array.from(this.outVertices.get(e)??[]));for(r.map(e=>e.getData()).forEach(e=>t.addVertex(e));!r.isEmpty();)Array.from(r.pop().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 ");return this.getKey()+":\n In: "+e+"\n Out: \n "+t}}e({},"KIRuntime",()=>al),e({},"JsonExpression",()=>aE);class aE{constructor(e){this.expression=e}getExpression(){return this.expression}}function au(){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)})}e({},"ParameterReferenceType",()=>s),(A=s||(s={})).VALUE="VALUE",A.EXPRESSION="EXPRESSION",e({},"FunctionExecutionParameters",()=>aA);class aA{constructor(e,t,r){this.count=0,this.executionContext=new Map,this.valueExtractors=new Map,this.functionRepository=e,this.schemaRepository=t,this.executionId=r??au()}getExecutionId(){return this.executionId}getContext(){return this.context}setContext(e){this.context=e;let t=new an(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 aa(e);return this.valueExtractors.set(t.getPrefix(),t),this}getCount(){return this.count}setCount(e){return this.count=e,this}getValuesMap(){return this.valueExtractors}getFunctionRepository(){return this.functionRepository}setFunctionRepository(e){return this.functionRepository=e,this}getSchemaRepository(){return this.schemaRepository}setSchemaRepository(e){return this.schemaRepository=e,this}addTokenValueExtractor(...e){for(let t of e)this.valueExtractors.set(t.getPrefix(),t);return this}setValuesMap(e){for(let[t,r]of e.entries())this.valueExtractors.set(t,r);return this}setExecutionContext(e){return this.executionContext=e,this}getExecutionContext(){return this.executionContext}}e({},"StatementMessageType",()=>i),(l=i||(i={})).ERROR="ERROR",l.WARNING="WARNING",l.MESSAGE="MESSAGE";class al extends el{static{this.PARAMETER_NEEDS_A_VALUE='Parameter "$" needs a value'}static{this.STEP_REGEX_PATTERN=RegExp("Steps\\.([a-zA-Z0-9\\\\-]{1,})\\.([a-zA-Z0-9\\\\-]{1,})","g")}static{this.VERSION=1}static{this.MAX_EXECUTION_ITERATIONS=1e7}constructor(e,t=!1){if(super(),this.debugMode=!1,this.debugMode=t,this.fd=e,this.fd.getVersion()>al.VERSION)throw new B("Runtime is at a lower version "+al.VERSION+" and trying to run code from version "+this.fd.getVersion()+".")}getSignature(){return this.fd}async getExecutionPlan(e,t){let r=new ai;for(let n of Array.from(this.fd.getSteps().values()))r.addVertex(await this.prepareStatementExecution(n,e,t));return Array.from(this.makeEdges(r).getT2().entries()).forEach(e=>{let t=r.getNodeMap().get(e[0])?.getData();t&&t.addMessage(i.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 as(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 B("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 W;r.addAll(e.getVerticesWithNoIncomingEdges());let n=new W;for(;(!r.isEmpty()||!n.isEmpty())&&!t.getEvents()?.has(F.OUTPUT);)if(await this.processBranchQue(t,r,n),await this.processExecutionQue(t,r,n),t.setCount(t.getCount()+1),t.getCount()==al.MAX_EXECUTION_ITERATIONS)throw new B("Execution locked in an infinite loop");if(!e.isSubGraph()&&!t.getEvents()?.size){let e=this.getSignature().getEvents();if(e.size&&e.get(F.OUTPUT)?.getParameters()?.size)throw new B("No events raised")}let a=Array.from(t.getEvents()?.entries()??[]).flatMap(e=>e[1].map(t=>Y.of(e[0],t)));return new H(a.length||e.isSubGraph()?a:[Y.of(F.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,a=r.getT4();do if(r.getT1().getVerticesData().map(e=>e.getStatement().getStatementName()).forEach(t=>e.getSteps()?.delete(t)),await this.executeGraph(r.getT1(),e),(n=r.getT3().next())&&(e.getSteps()?.has(a.getData().getStatement().getStatementName())||e.getSteps()?.set(a.getData().getStatement().getStatementName(),new Map),e.getSteps()?.get(a.getData().getStatement().getStatementName())?.set(n.getName(),this.resolveInternalExpressions(n.getResult(),e)),this.debugMode)){let t=a.getData().getStatement();console.log(`EID: ${e.getExecutionId()} Step : ${t.getStatementName()} => ${t.getNamespace()}.${t.getName()}`),console.log(`EID: ${e.getExecutionId()} Event : ${n.getName()} : `,e.getSteps().get(t.getStatementName()).get(n.getName()))}while(n&&n.getName()!=F.OUTPUT)n?.getName()==F.OUTPUT&&a.getOutVertices().has(F.OUTPUT)&&(a?.getOutVertices()?.get(F.OUTPUT)??[]).forEach(async r=>{await this.allDependenciesResolvedVertex(r,e.getSteps())&&t.add(r)})}async executeVertex(e,t,r,n,a){let s,i=e.getData().getStatement();if(i.getExecuteIftrue().size&&!(Array.from(i.getExecuteIftrue().entries())??[]).filter(e=>e[1]).map(([e])=>new rl(e).evaluate(t.getValuesMap())).every(e=>!h(e)&&!1!==e))return;let o=await a.find(i.getNamespace(),i.getName());if(!o)throw new B(j.format("$.$ function is not found.",i.getNamespace(),i.getName()));let E=o?.getSignature().getParameters(),u=this.getArgumentsFromParametersMap(t,i,E??new Map);this.debugMode&&(console.log(`EID: ${t.getExecutionId()} Step : ${i.getStatementName()} => ${i.getNamespace()}.${i.getName()}`),console.log(`EID: ${t.getExecutionId()} Arguments : `,u));let A=t.getContext();s=o instanceof al?new aA(t.getFunctionRepository(),t.getSchemaRepository(),`${t.getExecutionId()}_${i.getStatementName()}`).setArguments(u).setValuesMap(new Map(Array.from(t.getValuesMap().values()).filter(e=>e.getPrefix()!==as.PREFIX&&e.getPrefix()!==aa.PREFIX&&e.getPrefix()!==an.PREFIX).map(e=>[e.getPrefix(),e]))):new aA(t.getFunctionRepository(),t.getSchemaRepository(),t.getExecutionId()).setValuesMap(t.getValuesMap()).setContext(A).setArguments(u).setEvents(t.getEvents()).setSteps(t.getSteps()).setStatementExecution(e.getData()).setCount(t.getCount()).setExecutionContext(t.getExecutionContext());let l=await o.execute(s),c=l.next();if(!c)throw new B(j.format("Executing $ returned no events",i.getStatementName()));let g=c.getName()==F.OUTPUT;if(t.getSteps()?.has(i.getStatementName())||t.getSteps().set(i.getStatementName(),new Map),t.getSteps().get(i.getStatementName()).set(c.getName(),this.resolveInternalExpressions(c.getResult(),t)),this.debugMode&&(console.log(`EID: ${t.getExecutionId()} Step : ${i.getStatementName()} => ${i.getNamespace()}.${i.getName()}`),console.log(`EID: ${t.getExecutionId()} Event : ${c.getName()} : `,t.getSteps().get(i.getStatementName()).get(c.getName()))),g){let r=e.getOutVertices().get(F.OUTPUT);r&&r.forEach(async e=>{await this.allDependenciesResolvedVertex(e,t.getSteps())&&n.add(e)})}else{let t=e.getSubGraphOfType(c.getName()),n=this.makeEdges(t).getT1();r.push(new Z(t,n,l,e))}}resolveInternalExpressions(e,t){return e?Array.from(e.entries()).map(e=>new K(e[0],this.resolveInternalExpression(e[1],t))).reduce((e,t)=>(e.set(t.getT1(),t.getT2()),e),new Map):e}resolveInternalExpression(e,t){if(h(e)||"object"!=typeof e)return e;if(e instanceof aE)return new rl(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())||!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,a=Array.from(t[1]?.values()??[]);if(!a?.length)return new K(t[0],n);let s=r.get(t[0]);return s?(n=s.isVariableArgument()?a.sort((e,t)=>(e.getOrder()??0)-(t.getOrder()??0)).filter(e=>!h(e)).map(t=>this.parameterReferenceEvaluation(e,t)).flatMap(e=>Array.isArray(e)?e:[e]):this.parameterReferenceEvaluation(e,a[0]),new K(t[0],n)):new K(t[0],void 0)}).filter(e=>!h(e.getT2())).reduce((e,t)=>(e.set(t.getT1(),t.getT2()),e),new Map)}parameterReferenceEvaluation(e,t){let r;return t.getType()==s.VALUE?r=this.resolveInternalExpression(t.getValue(),e):t.getType()!=s.EXPRESSION||J.isNullOrBlank(t.getExpression())||(r=new rl(t.getExpression()??"").evaluate(e.getValuesMap())),r}async prepareStatementExecution(e,t,r){let n=new ar(e),a=await t.find(e.getNamespace(),e.getName());if(!a)return n.addMessage(i.ERROR,j.format("$.$ is not available",e.getNamespace(),e.getName())),Promise.resolve(n);let s=new Map(a.getSignature().getParameters());if(!e.getParameterMap())return Promise.resolve(n);for(let t of Array.from(e.getParameterMap().entries())){let e=s.get(t[0]);if(!e)continue;let a=Array.from(t[1]?.values()??[]);if(!a.length&&!e.isVariableArgument()){await et.hasDefaultValueOrNullSchemaType(e.getSchema(),r)||n.addMessage(i.ERROR,j.format(al.PARAMETER_NEEDS_A_VALUE,e.getParameterName())),s.delete(e.getParameterName());continue}if(e.isVariableArgument())for(let t of(a.sort((e,t)=>(e.getOrder()??0)-(t.getOrder()??0)),a))this.parameterReferenceValidation(n,e,t,r);else if(a.length){let t=a[0];this.parameterReferenceValidation(n,e,t,r)}s.delete(e.getParameterName())}if(!h(n.getStatement().getDependentStatements()))for(let e of Array.from(n.getStatement().getDependentStatements().entries()))e[1]&&n.addDependency(e[0]);if(!h(n.getStatement().getExecuteIftrue()))for(let e of Array.from(n.getStatement().getExecuteIftrue().entries()))e[1]&&this.addDependencies(n,e[0]);if(s.size)for(let e of Array.from(s.values()))e.isVariableArgument()||await et.hasDefaultValueOrNullSchemaType(e.getSchema(),r)||n.addMessage(i.ERROR,j.format(al.PARAMETER_NEEDS_A_VALUE,e.getParameterName()));return Promise.resolve(n)}async parameterReferenceValidation(e,t,n,a){if(n){if(n.getType()==s.VALUE){if(h(n.getValue())&&!await et.hasDefaultValueOrNullSchemaType(t.getSchema(),a)&&e.addMessage(i.ERROR,j.format(al.PARAMETER_NEEDS_A_VALUE,t.getParameterName())),h(n.getValue()))return;let s=new W;for(s.push(new K(t.getSchema(),n.getValue()));!s.isEmpty();){let t=s.pop();if(t.getT2() instanceof aE)this.addDependencies(e,t.getT2().getExpression());else{if(h(t.getT1())||h(t.getT1().getType()))continue;if(t.getT1().getType()?.contains(r.ARRAY)&&Array.isArray(t.getT2())){let e=t.getT1().getItems();if(!e)continue;if(e.isSingleType())for(let r of t.getT2())s.push(new K(e.getSingleSchema(),r));else{let r=t.getT2();for(let t=0;t<r.length;t++)s.push(new K(e.getTupleSchema()[t],r[t]))}}else if(t.getT1().getType()?.contains(r.OBJECT)&&"object"==typeof t.getT2()){let r=t.getT1();if(r.getName()===v.EXPRESSION.getName()&&r.getNamespace()===v.EXPRESSION.getNamespace()){let r=t.getT2();r.isExpression&&this.addDependencies(e,r.value)}else if(r.getProperties())for(let e of Object.entries(t.getT2()))r.getProperties().has(e[0])&&s.push(new K(r.getProperties().get(e[0]),e[1]))}}}}else if(n.getType()==s.EXPRESSION){if(J.isNullOrBlank(n.getExpression()))h(et.getDefaultValue(t.getSchema(),a))&&e.addMessage(i.ERROR,j.format(al.PARAMETER_NEEDS_A_VALUE,t.getParameterName()));else try{this.addDependencies(e,n.getExpression())}catch(t){e.addMessage(i.ERROR,j.format("Error evaluating $ : $",n.getExpression(),t))}}}else h(await et.getDefaultValue(t.getSchema(),a))&&e.addMessage(i.ERROR,j.format(al.PARAMETER_NEEDS_A_VALUE,t.getParameterName()))}addDependencies(e,t){t&&Array.from(t.match(al.STEP_REGEX_PATTERN)??[]).forEach(t=>e.addDependency(t))}makeEdges(e){let t=e.getNodeMap().values(),r=[],n=new Map;for(let a of Array.from(t))for(let t of Array.from(a.getData().getDependencies())){let s=t.indexOf(".",6),i=t.substring(6,s),o=t.indexOf(".",s+1),E=-1==o?t.substring(s+1):t.substring(s+1,o);e.getNodeMap().has(i)?a.addInEdgeTo(e.getNodeMap().get(i),E):(r.push(new K(i,E)),n.set(a.getData().getStatement().getStatementName(),j.format("Unable to find the step with name $",i)))}return new K(r,n)}}e({},"KIRunConstants",()=>ac);class ac{static{this.NAMESPACE="namespace"}static{this.NAME="name"}static{this.ID="id"}constructor(){}}e({},"Position",()=>ag);class ag{static{this.SCHEMA_NAME="Position"}static{this.SCHEMA=new y().setNamespace(g.SYSTEM).setName(ag.SCHEMA_NAME).setType(f.of(r.OBJECT)).setProperties(new Map([["left",y.ofFloat("left")],["top",y.ofFloat("top")]]))}constructor(e,t){this.left=e,this.top=t}getLeft(){return this.left}setLeft(e){return this.left=e,this}getTop(){return this.top}setTop(e){return this.top=e,this}static from(e){if(e)return new ag(e.left,e.top)}}e({},"FunctionDefinition",()=>af),e({},"Statement",()=>aT),e({},"AbstractStatement",()=>ah);class ah{constructor(e){if(this.override=!1,!e)return;this.comment=e.comment,this.description=e.description,this.position=e.position?new ag(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}}e({},"ParameterReference",()=>ap);class ap{static{this.SCHEMA_NAME="ParameterReference"}static{this.SCHEMA=new y().setNamespace(g.SYSTEM).setName(ap.SCHEMA_NAME).setType(f.of(r.OBJECT)).setProperties(new Map([["key",y.ofString("key")],["value",y.ofAny("value")],["expression",y.ofString("expression")],["type",y.ofString("type").setEnums(["EXPRESSION","VALUE"])],["order",y.ofInteger("order")]]))}constructor(e){e instanceof ap?(this.key=e.key,this.type=e.type,this.value=h(e.value)?void 0:JSON.parse(JSON.stringify(e.value)),this.expression=e.expression,this.order=e.order):(this.type=e,this.key=au())}getType(){return this.type}setType(e){return this.type=e,this}getKey(){return this.key}setKey(e){return this.key=e,this}getValue(){return this.value}setValue(e){return this.value=e,this}getExpression(){return this.expression}setExpression(e){return this.expression=e,this}setOrder(e){return this.order=e,this}getOrder(){return this.order}static ofExpression(e){let t=new ap(s.EXPRESSION).setExpression(e);return[t.getKey(),t]}static ofValue(e){let t=new ap(s.VALUE).setValue(e);return[t.getKey(),t]}static from(e){return new ap(e.type).setValue(e.value).setExpression(e.expression).setKey(e.key).setOrder(e.order)}}class aT extends ah{static{this.SCHEMA_NAME="Statement"}static{this.SCHEMA=new y().setNamespace(g.SYSTEM).setName(aT.SCHEMA_NAME).setType(f.of(r.OBJECT)).setProperties(new Map([["statementName",y.ofString("statementName")],["comment",y.ofString("comment")],["description",y.ofString("description")],["namespace",y.ofString("namespace")],["name",y.ofString("name")],["dependentStatements",y.ofObject("dependentstatement").setAdditionalProperties(new P().setSchemaValue(y.ofBoolean("exists"))).setDefaultValue({})],["executeIftrue",y.ofObject("executeIftrue").setAdditionalProperties(new P().setSchemaValue(y.ofBoolean("exists"))).setDefaultValue({})],["parameterMap",new y().setName("parameterMap").setAdditionalProperties(new P().setSchemaValue(y.ofObject("parameterReference").setAdditionalProperties(new P().setSchemaValue(ap.SCHEMA))))],["position",ag.SCHEMA]]))}constructor(e,t,r){if(super(e instanceof aT?e:void 0),e instanceof aT)this.statementName=e.statementName,this.name=e.name,this.namespace=e.namespace,e.parameterMap&&(this.parameterMap=new Map(Array.from(e.parameterMap.entries()).map(e=>[e[0],new Map(Array.from(e[1].entries()).map(e=>[e[0],new ap(e[1])]))]))),e.dependentStatements&&(this.dependentStatements=new Map(Array.from(e.dependentStatements.entries())));else{if(this.statementName=e,!r||!t)throw Error("Unknown constructor");this.namespace=t,this.name=r}}getStatementName(){return this.statementName}setStatementName(e){return this.statementName=e,this}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getParameterMap(){return this.parameterMap||(this.parameterMap=new Map),this.parameterMap}setParameterMap(e){return this.parameterMap=e,this}getDependentStatements(){return this.dependentStatements??new Map}setDependentStatements(e){return this.dependentStatements=e,this}getExecuteIftrue(){return this.executeIftrue??new Map}setExecuteIftrue(e){return this.executeIftrue=e,this}equals(e){return e instanceof aT&&e.statementName==this.statementName}static ofEntry(e){return[e.statementName,e]}static from(e){return new aT(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])=>ap.from(t)).map(e=>[e.getKey(),e]))]))).setDependentStatements(new Map(Object.entries(e.dependentStatements??{}))).setExecuteIftrue(new Map(Object.entries(e.executeIftrue??{}))).setPosition(ag.from(e.position)).setComment(e.comment).setDescription(e.description)}}e({},"StatementGroup",()=>am);class am extends ah{static{this.SCHEMA_NAME="StatementGroup"}static{this.SCHEMA=new y().setNamespace(g.SYSTEM).setName(am.SCHEMA_NAME).setType(f.of(r.OBJECT)).setProperties(new Map([["statementGroupName",y.ofString("statementGroupName")],["comment",y.ofString("comment")],["description",y.ofString("description")],["position",ag.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 am(e.statementGroupName,new Map(Object.entries(e.statements||{}).map(([e,t])=>[e,(""+t)?.toLowerCase()=="true"]))).setPosition(ag.from(e.position)).setComment(e.comment).setDescription(e.description)}}let aR=new y().setNamespace(g.SYSTEM).setName("FunctionDefinition").setProperties(new Map([["name",y.ofString("name")],["namespace",y.ofString("namespace")],["parameters",y.ofArray("parameters",v.SCHEMA)],["events",y.ofObject("events").setAdditionalProperties(new P().setSchemaValue(F.SCHEMA))],["steps",y.ofObject("steps").setAdditionalProperties(new P().setSchemaValue(aT.SCHEMA))]]));aR.getProperties()?.set("parts",y.ofArray("parts",aR));class af extends k{static{this.SCHEMA=aR}constructor(e){super(e),this.version=1}getVersion(){return this.version}setVersion(e){return this.version=e,this}getSteps(){return this.steps??new Map}setSteps(e){return this.steps=e,this}getStepGroups(){return this.stepGroups}setStepGroups(e){return this.stepGroups=e,this}getParts(){return this.parts}setParts(e){return this.parts=e,this}static from(e){return e?new af(e.name).setSteps(new Map(Object.values(e.steps??{}).filter(e=>!!e).map(e=>[e.statementName,aT.from(e)]))).setStepGroups(new Map(Object.values(e.stepGroups??{}).filter(e=>!!e).map(e=>[e.statementGroupName,am.from(e)]))).setParts(Array.from(e.parts??[]).filter(e=>!!e).map(e=>af.from(e))).setVersion(e.version??1).setEvents(new Map(Object.values(e.events??{}).filter(e=>!!e).map(e=>[e.name,F.from(e)]))).setParameters(new Map(Object.values(e.parameters??{}).filter(e=>!!e).map(e=>[e.parameterName,v.from(e)]))).setNamespace(e.namespace):new af("unknown")}}e({},"Argument",()=>aN);class aN{constructor(e,t,r){this.argumentIndex=0,this.argumentIndex=e,this.name=t,this.value=r}getArgumentIndex(){return this.argumentIndex}setArgumentIndex(e){return this.argumentIndex=e,this}getName(){return this.name}setName(e){return this.name=e,this}getValue(){return this.value}setValue(e){return this.value=e,this}static of(e,t){return new aN(0,e,t)}}var a_={};t(a_,t4),t(a_,t8),t(a_,rt),t(a_,rn),t(a_,t6);var aS={};t(aS,tp),t(aS,tm),t(aS,tf),t(aS,t_),t(aS,tM),t(aS,tw),t(aS,tI),t(aS,tc),t(aS,ty),t(aS,tL),t(aS,tU),t(aS,tV),t(aS,tD),t(aS,t$),t(aS,tY),t(aS,tH),t(aS,tj),t(aS,tX),t(aS,tJ),t(aS,tZ),t(aS,tK),t(aS,t1),t(aS,t7),t(aS,tl);export{V as KIRunSchemaRepository,ae as KIRunFunctionRepository,eR as PrimitiveUtil,G as MapUtil,$ as MapEntry,h as isNullValue,W as LinkedList,eB as StringBuilder,j as StringFormatter,J as StringUtil,K as Tuple2,Q as Tuple3,Z as Tuple4,eN as ArrayUtil,q as deepEqual,eS as duplicate,ar as StatementExecution,at as StatementMessage,ta as ContextElement,an as ContextTokenValueExtractor,aa as OutputMapTokenValueExtractor,as as ArgumentsTokenValueExtractor,ao as GraphVertex,ai as ExecutionGraph,al as KIRuntime,i as StatementMessageType,aA as FunctionExecutionParameters,eX as Expression,eq as TokenValueExtractor,ri as LiteralTokenValueExtractor,eJ as ObjectValueSetterExtractor,rl as ExpressionEvaluator,eW as Operation,ek as ExpressionToken,eH as ExpressionEvaluationException,ej as ExpressionTokenValue,el as AbstractFunction,g as Namespaces,aE as JsonExpression,P as AdditionalType,y as Schema,ei as NumberValidator,ea as BooleanValidator,es as NullValidator,en as ArrayValidator,er as AnyOfAllOfOneOfValidator,eE as StringValidator,eo as ObjectValidator,eA as SchemaValidator,ee as SchemaValidationException,x as SchemaReferenceException,eu as TypeValidator,p as ArraySchemaType,R as SingleType,f as TypeUtil,m as MultipleType,T as Type,r as SchemaType,et as SchemaUtil,a as StringFormat,n9 as HybridRepository,ac as KIRunConstants,v as Parameter,H as FunctionOutput,ag as Position,af as FunctionDefinition,s as ParameterReferenceType,Y as EventResult,ah as AbstractStatement,aT as Statement,am as StatementGroup,k as FunctionSignature,F as Event,n as ParameterType,aN as Argument,ap as ParameterReference,em as ExecutionException,B as KIRuntimeException,t3 as ArithmeticUnaryMinusOperator,re as ArithmeticUnaryPlusOperator,rr as BitwiseComplementOperator,ra as LogicalNotOperator,t9 as UnaryOperator,tT as ArithmeticAdditionOperator,tR as ArithmeticDivisionOperator,tN as ArithmeticIntegerDivisionOperator,tS as ArithmeticModulusOperator,td as ArithmeticMultiplicationOperator,tO as ArithmeticSubtractionOperator,tP as ArrayOperator,tg as BinaryOperator,tx as BitwiseAndOperator,tv as BitwiseLeftShiftOperator,tb as BitwiseOrOperator,tC as BitwiseRightShiftOperator,tG as BitwiseUnsignedRightShiftOperator,tF as BitwiseXorOperator,tB as LogicalAndOperator,tk as LogicalEqualOperator,tW as LogicalGreaterThanEqualOperator,tq as LogicalGreaterThanOperator,tz as LogicalLessThanEqualOperator,t0 as LogicalNotEqualOperator,tQ as LogicalLessThanOperator,t2 as LogicalOrOperator,t5 as ObjectOperator,th as LogicalNullishCoalescingOperator,ru as ConditionalTernaryOperator};
2
2
  //# sourceMappingURL=module.js.map