@fincity/kirun-js 1.4.9 → 1.4.11
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/__tests__/engine/function/system/string/ToStringTest.ts +14 -1
- package/__tests__/engine/repository/KIRunFunctionRepositoryTest.ts +29 -0
- package/__tests__/engine/runtime/KIRuntimeFunctionInFunction.ts +163 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/module.js +1 -1
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +31 -31
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/engine/function/system/array/ArrayFunctionRepository.ts +68 -0
- package/src/engine/function/system/math/MathFunctionRepository.ts +4 -0
- package/src/engine/function/system/math/RandomFloat.ts +1 -1
- package/src/engine/function/system/math/RandomInt.ts +1 -1
- package/src/engine/function/system/string/ReplaceAtGivenPosition.ts +8 -2
- package/src/engine/function/system/string/StringFunctionRepository.ts +23 -0
- package/src/engine/repository/KIRunFunctionRepository.ts +8 -7
- package/src/engine/runtime/FunctionExecutionParameters.ts +1 -2
- package/src/engine/runtime/KIRuntime.ts +37 -14
- package/src/engine/util/mapEntry.ts +5 -0
package/dist/module.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function e(e,t,r,s){Object.defineProperty(e,t,{get:r,set:s,enumerable:!0,configurable:!0})}function t(e,t){return Object.keys(t).forEach((function(r){"default"===r||"__esModule"===r||e.hasOwnProperty(r)||Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[r]}})})),e}e({},"KIRunSchemaRepository",(()=>O));var r={};e(r,"AdditionalPropertiesType",(()=>c)),e(r,"Schema",(()=>m));e({},"Namespaces",(()=>s));class s{static SYSTEM="System";static SYSTEM_CTX="System.Context";static SYSTEM_LOOP="System.Loop";static SYSTEM_ARRAY="System.Array";static MATH="System.Math";static STRING="System.String";constructor(){}}e({},"ArraySchemaType",(()=>a));function n(e){return null==e}e({},"isNullValue",(()=>n));class a{constructor(e){e&&(this.singleSchema=e.singleSchema?new m(e.singleSchema):void 0,this.tupleSchema=e.tupleSchema?e.tupleSchema.map((e=>new m(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!n(this.singleSchema)}static of(...e){return 1==e.length?(new a).setSingleSchema(e[0]):(new a).setTupleSchema(e)}static from(e){if(!e)return;Array.isArray(e)&&a.of(...m.fromListOfSchemas(e));let t=m.from(e);return t?a.of(t):void 0}}let i;var o;e({},"SchemaType",(()=>i)),(o=i||(i={})).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",(()=>l));e({},"MultipleType",(()=>p));e({},"Type",(()=>u));class u{}class p extends u{constructor(e){super(),this.type=e instanceof p?new Set(Array.from(e.type)):new Set(Array.from(e))}getType(){return this.type}setType(e){return this.type=e,this}getAllowedSchemaTypes(){return this.type}contains(e){return this.type?.has(e)}}e({},"SingleType",(()=>h));class h extends u{constructor(e){super(),this.type=e instanceof h?e.type:e}getType(){return this.type}getAllowedSchemaTypes(){return new Set([this.type])}contains(e){return this.type==e}}class l{static of(...e){return 1==e.length?new h(e[0]):new p(new Set(e))}static from(e){return"string"==typeof e?new h(i[e]):Array.isArray(e)?new p(new Set(e.map((e=>e)).map((e=>i[e])))):void 0}}class c{constructor(e){e&&(this.booleanValue=e.booleanValue,e.schemaValue&&(this.schemaValue=new m(e.schemaValue)))}getBooleanValue(){return this.booleanValue}getSchemaValue(){return this.schemaValue}setBooleanValue(e){return this.booleanValue=e,this}setSchemaValue(e){return this.schemaValue=e,this}static from(e){if(!e)return;const t=new c;return t.booleanValue=e.booleanValue,t.schemaValue=e.schemaValue,t}}class m{static NULL=(new m).setNamespace(s.SYSTEM).setName("Null").setType(l.of(i.NULL)).setConstant(void 0);static TYPE_SCHEMA=(new m).setType(l.of(i.STRING)).setEnums(["INTEGER","LONG","FLOAT","DOUBLE","STRING","OBJECT","ARRAY","BOOLEAN","NULL"]);static SCHEMA=(new m).setNamespace(s.SYSTEM).setName("Schema").setType(l.of(i.OBJECT)).setProperties(new Map([["namespace",m.of("namespace",i.STRING).setDefaultValue("_")],["name",m.ofString("name")],["version",m.of("version",i.INTEGER).setDefaultValue(1)],["ref",m.ofString("ref")],["type",(new m).setAnyOf([m.TYPE_SCHEMA,m.ofArray("type",m.TYPE_SCHEMA)])],["anyOf",m.ofArray("anyOf",m.ofRef("#/"))],["allOf",m.ofArray("allOf",m.ofRef("#/"))],["oneOf",m.ofArray("oneOf",m.ofRef("#/"))],["not",m.ofRef("#/")],["title",m.ofString("title")],["description",m.ofString("description")],["id",m.ofString("id")],["examples",m.ofAny("examples")],["defaultValue",m.ofAny("defaultValue")],["comment",m.ofString("comment")],["enums",m.ofArray("enums",m.ofString("enums"))],["constant",m.ofAny("constant")],["pattern",m.ofString("pattern")],["format",m.of("format",i.STRING).setEnums(["DATETIME","TIME","DATE","EMAIL","REGEX"])],["minLength",m.ofInteger("minLength")],["maxLength",m.ofInteger("maxLength")],["multipleOf",m.ofLong("multipleOf")],["minimum",m.ofNumber("minimum")],["maximum",m.ofNumber("maximum")],["exclusiveMinimum",m.ofNumber("exclusiveMinimum")],["exclusiveMaximum",m.ofNumber("exclusiveMaximum")],["properties",m.of("properties",i.OBJECT).setAdditionalProperties((new c).setSchemaValue(m.ofRef("#/")))],["additionalProperties",(new m).setName("additionalProperty").setNamespace(s.SYSTEM).setAnyOf([m.ofBoolean("additionalProperty"),m.ofObject("additionalProperty").setRef("#/")]).setDefaultValue(!0)],["required",m.ofArray("required",m.ofString("required")).setDefaultValue([])],["propertyNames",m.ofRef("#/")],["minProperties",m.ofInteger("minProperties")],["maxProperties",m.ofInteger("maxProperties")],["patternProperties",m.of("patternProperties",i.OBJECT).setAdditionalProperties((new c).setSchemaValue(m.ofRef("#/")))],["items",(new m).setName("items").setAnyOf([m.ofRef("#/").setName("item"),m.ofArray("tuple",m.ofRef("#/"))])],["contains",m.ofRef("#/")],["minItems",m.ofInteger("minItems")],["maxItems",m.ofInteger("maxItems")],["uniqueItems",m.ofBoolean("uniqueItems")],["$defs",m.of("$defs",i.OBJECT).setAdditionalProperties((new c).setSchemaValue(m.ofRef("#/")))],["permission",m.ofString("permission")]])).setRequired([]);static ofString(e){return(new m).setType(l.of(i.STRING)).setName(e)}static ofInteger(e){return(new m).setType(l.of(i.INTEGER)).setName(e)}static ofFloat(e){return(new m).setType(l.of(i.FLOAT)).setName(e)}static ofLong(e){return(new m).setType(l.of(i.LONG)).setName(e)}static ofDouble(e){return(new m).setType(l.of(i.DOUBLE)).setName(e)}static ofAny(e){return(new m).setType(l.of(i.INTEGER,i.LONG,i.FLOAT,i.DOUBLE,i.STRING,i.BOOLEAN,i.ARRAY,i.NULL,i.OBJECT)).setName(e)}static ofAnyNotNull(e){return(new m).setType(l.of(i.INTEGER,i.LONG,i.FLOAT,i.DOUBLE,i.STRING,i.BOOLEAN,i.ARRAY,i.OBJECT)).setName(e)}static ofNumber(e){return(new m).setType(l.of(i.INTEGER,i.LONG,i.FLOAT,i.DOUBLE)).setName(e)}static ofBoolean(e){return(new m).setType(l.of(i.BOOLEAN)).setName(e)}static of(e,...t){return(new m).setType(l.of(...t)).setName(e)}static ofObject(e){return(new m).setType(l.of(i.OBJECT)).setName(e)}static ofRef(e){return(new m).setRef(e)}static ofArray(e,...t){return(new m).setType(l.of(i.ARRAY)).setName(e).setItems(a.of(...t))}static fromListOfSchemas(e){if(n(e)&&!Array.isArray(e))return[];let t=[];for(let r of Array.from(e)){let e=m.from(r);e&&t.push(e)}return t}static fromMapOfSchemas(e){if(n(e))return;const t=new Map;return Object.entries(e).forEach((([e,r])=>{let s=m.from(r);s&&t.set(e,s)})),t}static from(e,t=!1){if(n(e))return;let r=new m;return r.namespace=e.namespace??"_",r.name=e.name,r.version=e.version??1,r.ref=e.ref,r.type=t?new h(i.STRING):l.from(e.type),r.anyOf=m.fromListOfSchemas(e.anyOf),r.allOf=m.fromListOfSchemas(e.allOf),r.oneOf=m.fromListOfSchemas(e.oneOf),r.not=m.from(e.not),r.description=e.description,r.examples=e.examples?[...e.examples]:void 0,r.defaultValue=e.defaultValue,r.comment=e.comment,r.enums=e.enums?[...e.enums]:void 0,r.constant=e.constant,r.pattern=e.pattern,r.format=e.format,r.minLength=e.minLength,r.maxLength=e.maxLength,r.multipleOf=e.multipleOf,r.minimum=e.minimum,r.maximum=e.maximum,r.exclusiveMinimum=e.exclusiveMinimum,r.exclusiveMaximum=e.exclusiveMaximum,r.properties=m.fromMapOfSchemas(e.properties),r.additionalProperties=c.from(e.additionalProperties),r.required=e.required,r.propertyNames=m.from(e.propertyNames,!0),r.minProperties=e.minProperties,r.maxProperties=e.maxProperties,r.patternProperties=m.fromMapOfSchemas(e.patternProperties),r.items=a.from(e.items),r.contains=m.from(e.contains),r.minItems=e.minItems,r.maxItems=e.maxItems,r.uniqueItems=e.uniqueItems,r.$defs=m.fromMapOfSchemas(e.$defs),r.permission=e.permission,r}namespace="_";version=1;constructor(e){e&&(this.namespace=e.namespace,this.name=e.name,this.version=e.version,this.ref=e.ref,this.type=e.type instanceof h?new h(e.type):new p(e.type),this.anyOf=e.anyOf?.map((e=>new m(e))),this.allOf=e.allOf?.map((e=>new m(e))),this.oneOf=e.oneOf?.map((e=>new m(e))),this.not=this.not?new m(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 m(e[1])]))):void 0,this.additionalProperties=e.additionalProperties?new c(e.additionalProperties):void 0,this.required=e.required?[...e.required]:void 0,this.propertyNames=e.propertyNames?new m(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 m(e[1])]))):void 0,this.items=e.items?new a(e.items):void 0,this.contains=e.contains?new m(this.contains):void 0,this.minItems=e.minItems,this.maxItems=e.maxItems,this.uniqueItems=e.uniqueItems,this.$defs=e.$defs?new Map(Array.from(e.$defs.entries()).map((e=>[e[0],new m(e[1])]))):void 0,this.permission=e.permission)}getTitle(){return this.getFullName()}getFullName(){return this.namespace&&"_"!=this.namespace?this.namespace+"."+this.name:this.name}get$defs(){return this.$defs}set$defs(e){return this.$defs=e,this}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getVersion(){return this.version}setVersion(e){return this.version=e,this}getRef(){return this.ref}setRef(e){return this.ref=e,this}getType(){return this.type}setType(e){return this.type=e,this}getAnyOf(){return this.anyOf}setAnyOf(e){return this.anyOf=e,this}getAllOf(){return this.allOf}setAllOf(e){return this.allOf=e,this}getOneOf(){return this.oneOf}setOneOf(e){return this.oneOf=e,this}getNot(){return this.not}setNot(e){return this.not=e,this}getDescription(){return this.description}setDescription(e){return this.description=e,this}getExamples(){return this.examples}setExamples(e){return this.examples=e,this}getDefaultValue(){return this.defaultValue}setDefaultValue(e){return this.defaultValue=e,this}getComment(){return this.comment}setComment(e){return this.comment=e,this}getEnums(){return this.enums}setEnums(e){return this.enums=e,this}getConstant(){return this.constant}setConstant(e){return this.constant=e,this}getPattern(){return this.pattern}setPattern(e){return this.pattern=e,this}getFormat(){return this.format}setFormat(e){return this.format=e,this}getMinLength(){return this.minLength}setMinLength(e){return this.minLength=e,this}getMaxLength(){return this.maxLength}setMaxLength(e){return this.maxLength=e,this}getMultipleOf(){return this.multipleOf}setMultipleOf(e){return this.multipleOf=e,this}getMinimum(){return this.minimum}setMinimum(e){return this.minimum=e,this}getMaximum(){return this.maximum}setMaximum(e){return this.maximum=e,this}getExclusiveMinimum(){return this.exclusiveMinimum}setExclusiveMinimum(e){return this.exclusiveMinimum=e,this}getExclusiveMaximum(){return this.exclusiveMaximum}setExclusiveMaximum(e){return this.exclusiveMaximum=e,this}getProperties(){return this.properties}setProperties(e){return this.properties=e,this}getAdditionalProperties(){return this.additionalProperties}setAdditionalProperties(e){return this.additionalProperties=e,this}getRequired(){return this.required}setRequired(e){return this.required=e,this}getPropertyNames(){return this.propertyNames}setPropertyNames(e){return this.propertyNames=e,this.propertyNames.type=new h(i.STRING),this}getMinProperties(){return this.minProperties}setMinProperties(e){return this.minProperties=e,this}getMaxProperties(){return this.maxProperties}setMaxProperties(e){return this.maxProperties=e,this}getPatternProperties(){return this.patternProperties}setPatternProperties(e){return this.patternProperties=e,this}getItems(){return this.items}setItems(e){return this.items=e,this}getContains(){return this.contains}setContains(e){return this.contains=e,this}getMinItems(){return this.minItems}setMinItems(e){return this.minItems=e,this}getMaxItems(){return this.maxItems}setMaxItems(e){return this.maxItems=e,this}getUniqueItems(){return this.uniqueItems}setUniqueItems(e){return this.uniqueItems=e,this}getPermission(){return this.permission}setPermission(e){return this.permission=e,this}}e({},"Parameter",(()=>T));e({},"SchemaReferenceException",(()=>g));class g 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}}let f;var E;e({},"ParameterType",(()=>f)),(E=f||(f={})).CONSTANT="CONSTANT",E.EXPRESSION="EXPRESSION";class T{static SCHEMA_NAME="Parameter";static SCHEMA=(new m).setNamespace(s.SYSTEM).setName(T.SCHEMA_NAME).setProperties(new Map([["schema",m.SCHEMA],["parameterName",m.ofString("parameterName")],["variableArgument",m.of("variableArgument",i.BOOLEAN).setDefaultValue(!1)],["type",m.ofString("type").setEnums(["EXPRESSION","CONSTANT"])]]));static EXPRESSION=(new m).setNamespace(s.SYSTEM).setName("ParameterExpression").setType(l.of(i.OBJECT)).setProperties(new Map([["isExpression",m.ofBoolean("isExpression").setDefaultValue(!0)],["value",m.ofAny("value")]]));variableArgument=!1;type=f.EXPRESSION;constructor(e,t){if(e instanceof T)this.schema=new m(e.schema),this.parameterName=e.parameterName,this.variableArgument=e.variableArgument,this.type=e.type;else{if(!t)throw new Error("Unknown constructor signature");this.schema=t,this.parameterName=e}}getSchema(){return this.schema}setSchema(e){return this.schema=e,this}getParameterName(){return this.parameterName}setParameterName(e){return this.parameterName=e,this}isVariableArgument(){return this.variableArgument}setVariableArgument(e){return this.variableArgument=e,this}getType(){return this.type}setType(e){return this.type=e,this}static ofEntry(e,t,r=!1,s=f.EXPRESSION){return[e,new T(e,t).setType(s).setVariableArgument(r)]}static of(e,t,r=!1,s=f.EXPRESSION){return new T(e,t).setType(s).setVariableArgument(r)}static from(e){const t=m.from(e.schema);if(!t)throw new g("","Parameter requires Schema");return new T(e.parameterName,t).setVariableArgument(!!e.variableArguments).setType(e.type??f.EXPRESSION)}}const A=new Map([["any",m.ofAny("any").setNamespace(s.SYSTEM)],["boolean",m.ofBoolean("boolean").setNamespace(s.SYSTEM)],["double",m.ofDouble("double").setNamespace(s.SYSTEM)],["float",m.ofFloat("float").setNamespace(s.SYSTEM)],["integer",m.ofInteger("integer").setNamespace(s.SYSTEM)],["long",m.ofLong("long").setNamespace(s.SYSTEM)],["number",m.ofNumber("number").setNamespace(s.SYSTEM)],["string",m.ofString("string").setNamespace(s.SYSTEM)],[T.EXPRESSION.getName(),T.EXPRESSION]]);class O{find(e,t){if(s.SYSTEM==e)return A.get(t)}}e({},"KIRunFunctionRepository",(()=>Ut));e({},"KIRuntimeException",(()=>w));class w extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}let d;var S;e({},"StringFormat",(()=>d)),(S=d||(d={})).DATETIME="DATETIME",S.TIME="TIME",S.DATE="DATE",S.EMAIL="EMAIL",S.REGEX="REGEX";e({},"Event",(()=>N));class N{static OUTPUT="output";static ERROR="error";static ITERATION="iteration";static TRUE="true";static FALSE="false";static SCHEMA_NAME="Event";static SCHEMA=(new m).setNamespace(s.SYSTEM).setName(N.SCHEMA_NAME).setType(l.of(i.OBJECT)).setProperties(new Map([["name",m.ofString("name")],["parameters",m.ofObject("parameter").setAdditionalProperties((new c).setSchemaValue(m.SCHEMA))]]));constructor(e,t){if(e instanceof N)this.name=e.name,this.parameters=new Map(Array.from(e.parameters.entries()).map((e=>[e[0],new m(e[1])])));else{if(this.name=e,!t)throw new Error("Unknown constructor format");this.parameters=t}}getName(){return this.name}setName(e){return this.name=e,this}getParameters(){return this.parameters}setParameters(e){return this.parameters=e,this}static outputEventMapEntry(e){return N.eventMapEntry(N.OUTPUT,e)}static eventMapEntry(e,t){return[e,new N(e,t)]}static from(e){return new N(e.name,new Map(Object.entries(e.parameters??{}).map((e=>{const t=m.from(e[1]);if(!t)throw new g("","Event expects a schema");return[e[0],t]}))))}}e({},"EventResult",(()=>R));class R{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 R.of(N.OUTPUT,e)}static of(e,t){return new R(e,t)}}e({},"FunctionOutput",(()=>y));class y{index=0;constructor(e){if(n(e))throw new w("Function output is generating null");Array.isArray(e)&&e.length&&e[0]instanceof R?this.fo=e:(this.fo=[],this.generator=e)}next(){if(!this.generator)return this.index<this.fo.length?this.fo[this.index++]:void 0;const e=this.generator.next();return e&&this.fo.push(e),e}allResults(){return this.fo}}e({},"FunctionSignature",(()=>I));class I{static SCHEMA_NAME="FunctionSignature";static SCHEMA=(new m).setNamespace(s.SYSTEM).setName(I.SCHEMA_NAME).setProperties(new Map([["name",m.ofString("name")],["namespace",m.ofString("namespace")],["parameters",m.ofObject("parameters").setAdditionalProperties((new c).setSchemaValue(T.SCHEMA))],["events",m.ofObject("events").setAdditionalProperties((new c).setSchemaValue(N.SCHEMA))]]));namespace="_";parameters=new Map;events=new Map;constructor(e){e instanceof I?(this.name=e.name,this.namespace=e.namespace,this.parameters=new Map(Array.from(e.parameters.entries()).map((e=>[e[0],new T(e[1])]))),this.events=new Map(Array.from(e.events.entries()).map((e=>[e[0],new N(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}}e({},"ContextElement",(()=>x));class x{static NULL=new x(m.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}}e({},"StringFormatter",(()=>M));class M{static format(e,...t){if(!t||0==t.length)return e;let r="",s=0,n="",a=n,i=e.length;for(let o=0;o<i;o++)n=e.charAt(o),"$"==n&&"\\"==a?r=r.substring(0,o-1)+n:"$"==n&&s<t.length?r+=t[s++]:r+=n,a=n;return r.toString()}constructor(){}}e({},"AbstractFunction",(()=>W));e({},"SchemaValidator",(()=>Y));e({},"StringUtil",(()=>v));class v{constructor(){}static nthIndex(e,t,r=0,s){if(!e)throw new w("String cannot be null");if(r<0||r>=e.length)throw new w(M.format("Cannot search from index : $",r));if(s<=0||s>e.length)throw new w(M.format("Cannot search for occurance : $",s));for(;r<e.length;){if(e.charAt(r)==t&&0==--s)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",(()=>V));var P={};e(P,"Tuple2",(()=>_)),e(P,"Tuple3",(()=>L)),e(P,"Tuple4",(()=>C));class _{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 L extends _{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 C extends L{constructor(e,t,r,s){super(e,t,r),this.fr=s}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",(()=>b));class b extends Error{constructor(e,t,r=[],s){super(t+(r?r.map((e=>e.message)).reduce(((e,t)=>e+"\n"+t),""):"")),this.schemaPath=e,this.cause=s}getSchemaPath(){return this.schemaPath}getCause(){return this.cause}}class V{static UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH="Unable to retrive schema from referenced path";static CYCLIC_REFERENCE_LIMIT_COUNTER=20;static getDefaultValue(e,t){if(e)return e.getConstant()?e.getConstant():e.getDefaultValue()?e.getDefaultValue():V.getDefaultValue(V.getSchemaFromRef(e,t,e.getRef()),t)}static getSchemaFromRef(e,t,r,s=0){if(++s==V.CYCLIC_REFERENCE_LIMIT_COUNTER)throw new b(r??"","Schema has a cyclic reference");if(!e||!r||v.isNullOrBlank(r))return;if(!r.startsWith("#")){var n=V.resolveExternalSchema(e,t,r);n&&(e=n.getT1(),r=n.getT2())}let a=r.split("/");return 1===a.length?e:V.resolveInternalSchema(e,t,r,s,a,1)}static resolveInternalSchema(e,t,r,s,n,a){let o=e;if(a!==n.length){for(;a<n.length;){if("$defs"===n[a]){if(++a>=n.length||!o.get$defs())throw new g(r,V.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);o=o.get$defs()?.get(n[a])}else{if(o&&(!o.getType()?.contains(i.OBJECT)||!o.getProperties()))throw new g(r,"Cannot retrievie schema from non Object type schemas");o=o.getProperties()?.get(n[a])}if(a++,!o)throw new g(r,V.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);if(!v.isNullOrBlank(o.getRef())&&(o=V.getSchemaFromRef(o,t,o.getRef(),s),!o))throw new g(r,V.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH)}return o}}static resolveExternalSchema(e,t,r){if(!t)return;let s=v.splitAtFirstOccurance(r??"","/");if(!s[0])return;let n=v.splitAtFirstOccurance(s[0],".");if(!n[0]||!n[1])return;let a=t.find(n[0],n[1]);if(a){if(!s[1]||""===s[1])return new _(a,r);if(r="#/"+s[1],!a)throw new g(r,V.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);return new _(a,r)}}constructor(){}}e({},"AnyOfAllOfOneOfValidator",(()=>U));class U{static validate(e,t,r,s){let n=[];return t.getOneOf()&&!t.getOneOf()?U.oneOf(e,t,r,s,n):t.getAllOf()&&!t.getAllOf()?U.allOf(e,t,r,s,n):t.getAnyOf()&&!t.getAnyOf()&&U.anyOf(e,t,r,s,n),s}static anyOf(e,t,r,s,n){let a=!1;for(let i of t.getAnyOf()??[])try{U.validate(e,i,r,s),a=!0;break}catch(e){a=!1,n.push(e)}if(!a)throw new b(Y.path(e),"The value don't satisfy any of the schemas.",n)}static allOf(e,t,r,s,n){let a=0;for(let i of t.getAllOf()??[])try{U.validate(e,i,r,s),a++}catch(e){n.push(e)}if(a!==t.getAllOf()?.length)throw new b(Y.path(e),"The value doesn't satisfy some of the schemas.",n)}static oneOf(e,t,r,s,n){let a=0;for(let i of t.getOneOf()??[])try{U.validate(e,i,r,s),a++}catch(e){n.push(e)}if(1!=a)throw new b(Y.path(e),0==a?"The value does not satisfy any schema":"The value satisfy more than one schema",n)}constructor(){}}e({},"TypeValidator",(()=>H));e({},"ArrayValidator",(()=>B));class B{static validate(e,t,r,s){if(n(s))throw new b(Y.path(e),"Expected an array but found null");if(!Array.isArray(s))throw new b(Y.path(e),s.toString()+" is not an Array");let a=s;return B.checkMinMaxItems(e,t,a),B.checkItems(e,t,r,a),B.checkUniqueItems(e,t,a),B.checkContains(e,t,r,a),s}static checkContains(e,t,r,s){if(!t.getContains())return;let n=!1;for(let a=0;a<s.length;a++){let i=e?[...e]:[];try{Y.validate(i,t.getContains(),r,s[a]),n=!0;break}catch(e){n=!1}}if(!n)throw new b(Y.path(e),"None of the items are of type contains schema")}static checkUniqueItems(e,t,r){if(t.getUniqueItems()&&t.getUniqueItems()){if(new Set(r).size!==r.length)throw new b(Y.path(e),"Items on the array are not unique")}}static checkMinMaxItems(e,t,r){if(t.getMinItems()&&t.getMinItems()>r.length)throw new b(Y.path(e),"Array should have minimum of "+t.getMinItems()+" elements");if(t.getMaxItems()&&t.getMaxItems()<r.length)throw new b(Y.path(e),"Array can have maximum of "+t.getMaxItems()+" elements")}static checkItems(e,t,r,s){if(!t.getItems())return;let n=t.getItems();if(n.getSingleSchema())for(let t=0;t<s.length;t++){let a=e?[...e]:[],i=Y.validate(a,n.getSingleSchema(),r,s[t]);s[t]=i}if(n.getTupleSchema()){if(n.getTupleSchema().length!==s.length)throw new b(Y.path(e),"Expected an array with only "+n.getTupleSchema().length+" but found "+s.length);for(let t=0;t<s.length;t++){let a=e?[...e]:[],i=Y.validate(a,n.getTupleSchema()[t],r,s[t]);s[t]=i}}}constructor(){}}e({},"BooleanValidator",(()=>D));class D{static validate(e,t,r){if(n(r))throw new b(Y.path(e),"Expected a boolean but found null");if("boolean"!=typeof r)throw new b(Y.path(e),r.toString()+" is not a boolean");return r}constructor(){}}e({},"NullValidator",(()=>k));class k{static validate(e,t,r){if(r)throw new b(Y.path(e),"Expected a null but found "+r);return r}constructor(){}}e({},"NumberValidator",(()=>G));class G{static validate(e,t,r,s){if(n(s))throw new b(Y.path(t),"Expected a number but found null");if("number"!=typeof s)throw new b(Y.path(t),s.toString()+" is not a "+e);let a=G.extractNumber(e,t,r,s);return G.checkRange(t,r,s,a),G.checkMultipleOf(t,r,s,a),s}static extractNumber(e,t,r,s){let a=s;try{e!=i.LONG&&e!=i.INTEGER||(a=Math.round(a))}catch(r){throw new b(Y.path(t),s+" is not a number of type "+e,r)}if(n(a)||(e==i.LONG||e==i.INTEGER)&&a!=s)throw new b(Y.path(t),s.toString()+" is not a number of type "+e);return a}static checkMultipleOf(e,t,r,s){if(t.getMultipleOf()){if(s%t.getMultipleOf()!=0)throw new b(Y.path(e),r.toString()+" is not multiple of "+t.getMultipleOf())}}static checkRange(e,t,r,s){if(t.getMinimum()&&G.numberCompare(s,t.getMinimum())<0)throw new b(Y.path(e),r.toString()+" should be greater than or equal to "+t.getMinimum());if(t.getMaximum()&&G.numberCompare(s,t.getMaximum())>0)throw new b(Y.path(e),r.toString()+" should be less than or equal to "+t.getMaximum());if(t.getExclusiveMinimum()&&G.numberCompare(s,t.getExclusiveMinimum())<=0)throw new b(Y.path(e),r.toString()+" should be greater than "+t.getExclusiveMinimum());if(t.getExclusiveMaximum()&&G.numberCompare(s,t.getExclusiveMaximum())>0)throw new b(Y.path(e),r.toString()+" should be less than "+t.getExclusiveMaximum())}static numberCompare(e,t){return e-t}constructor(){}}e({},"ObjectValidator",(()=>F));class F{static validate(e,t,r,s){if(n(s))throw new b(Y.path(e),"Expected an object but found null");if("object"!=typeof s||Array.isArray(s))throw new b(Y.path(e),s.toString()+" is not an Object");let a=s,i=new Set(Object.keys(a));F.checkMinMaxProperties(e,t,i),t.getPropertyNames()&&F.checkPropertyNameSchema(e,t,r,i),t.getRequired()&&F.checkRequired(e,t,a),t.getProperties()&&F.checkProperties(e,t,r,a,i),t.getPatternProperties()&&F.checkPatternProperties(e,t,r,a,i),t.getAdditionalProperties()&&F.checkAddtionalProperties(e,t,r,a,i)}static checkPropertyNameSchema(e,t,r,s){for(let n of Array.from(s.values()))try{Y.validate(e,t.getPropertyNames(),r,n)}catch(t){throw new b(Y.path(e),"Property name '"+n+"' does not fit the property schema")}}static checkRequired(e,t,r){for(const s of t.getRequired()??[])if(n(r[s]))throw new b(Y.path(e),s+" is mandatory")}static checkAddtionalProperties(e,t,r,s,n){let a=t.getAdditionalProperties();if(a.getSchemaValue())for(let t of Array.from(n.values())){let n=e?[...e]:[],i=Y.validate(n,a.getSchemaValue(),r,s[t]);s[t]=i}else if(!1===a.getBooleanValue()&&n.size)throw new b(Y.path(e),n.toString()+" are additional properties which are not allowed.")}static checkPatternProperties(e,t,r,s,n){const a=new Map;for(const e of Array.from(t.getPatternProperties().keys()))a.set(e,new RegExp(e));for(const i of Array.from(n.values())){const o=e?[...e]:[];for(const e of Array.from(a.entries()))if(e[1].test(i)){const a=Y.validate(o,t.getPatternProperties().get(e[0]),r,s[i]);s[i]=a,n.delete(i);break}}}static checkProperties(e,t,r,s,a){for(const i of Array.from(t.getProperties())){let t=s[i[0]];if(n(t))continue;let o=e?[...e]:[],u=Y.validate(o,i[1],r,t);s[i[0]]=u,a.delete(i[0])}}static checkMinMaxProperties(e,t,r){if(t.getMinProperties()&&r.size<t.getMinProperties())throw new b(Y.path(e),"Object should have minimum of "+t.getMinProperties()+" properties");if(t.getMaxProperties()&&r.size>t.getMaxProperties())throw new b(Y.path(e),"Object can have maximum of "+t.getMaxProperties()+" properties")}constructor(){}}e({},"StringValidator",(()=>$));class ${static TIME=/^([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?([+-][01][0-9]:[0-5][0-9])?$/;static DATE=/^[0-9]{4,4}-([0][0-9]|[1][0-2])-(0[1-9]|[1-2][1-9]|3[01])$/;static DATETIME=/^[0-9]{4,4}-([0][0-9]|[1][0-2])-(0[1-9]|[1-2][1-9]|3[01])T([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?([+-][01][0-9]:[0-5][0-9])?$/;static EMAIL=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;static validate(e,t,r){if(n(r))throw new b(Y.path(e),"Expected a string but found "+r);if("string"!=typeof r)throw new b(Y.path(e),r.toString()+" is not String");t.getFormat()==d.TIME?$.patternMatcher(e,t,r,$.TIME,"time pattern"):t.getFormat()==d.DATE?$.patternMatcher(e,t,r,$.DATE,"date pattern"):t.getFormat()==d.DATETIME?$.patternMatcher(e,t,r,$.DATETIME,"date time pattern"):t.getFormat()==d.EMAIL?$.patternMatcher(e,t,r,$.EMAIL,"email pattern"):t.getPattern()&&$.patternMatcher(e,t,r,new RegExp(t.getPattern()),"pattern "+t.getPattern());let s=r.length;if(t.getMinLength()&&s<t.getMinLength())throw new b(Y.path(e),"Expected a minimum of "+t.getMinLength()+" characters");if(t.getMaxLength()&&s>t.getMaxLength())throw new b(Y.path(e),"Expected a maximum of "+t.getMaxLength()+" characters");return r}static patternMatcher(e,t,r,s,n){if(!s.test(r))throw new b(Y.path(e),r.toString()+" is not matched with the "+n)}constructor(){}}class H{static validate(e,t,r,s,n){if(t==i.STRING)$.validate(e,r,n);else if(t==i.LONG||t==i.INTEGER||t==i.DOUBLE||t==i.FLOAT)G.validate(t,e,r,n);else if(t==i.BOOLEAN)D.validate(e,r,n);else if(t==i.OBJECT)F.validate(e,r,s,n);else if(t==i.ARRAY)B.validate(e,r,s,n);else{if(t!=i.NULL)throw new b(Y.path(e),t+" is not a valid type.");k.validate(e,r,n)}return n}constructor(){}}class Y{static path(e){return e?e.map((e=>e.getTitle()??"")).filter((e=>!!e)).reduce(((e,t,r)=>e+(0===r?"":".")+t),""):""}static validate(e,t,r,s){if(!t)throw new b(Y.path(e),"No schema found to validate");if(e||(e=new Array),e.push(t),n(s)&&!n(t.getDefaultValue()))return JSON.parse(JSON.stringify(t.getDefaultValue()));if(t.getConstant())return Y.constantValidation(e,t,s);if(t.getEnums()&&!t.getEnums()?.length)return Y.enumCheck(e,t,s);if(t.getType()&&Y.typeValidation(e,t,r,s),!v.isNullOrBlank(t.getRef()))return Y.validate(e,V.getSchemaFromRef(e[0],r,t.getRef()),r,s);if((t.getOneOf()||t.getAllOf()||t.getAnyOf())&&U.validate(e,t,r,s),t.getNot()){let n=!1;try{Y.validate(e,t.getNot(),r,s),n=!0}catch(e){n=!1}if(n)throw new b(Y.path(e),"Schema validated value in not condition.")}return s}static constantValidation(e,t,r){if(!t.getConstant().equals(r))throw new b(Y.path(e),"Expecting a constant value : "+r);return r}static enumCheck(e,t,r){let s=!1;for(let e of t.getEnums()??[])if(e===r){s=!0;break}if(s)return r;throw new b(Y.path(e),"Value is not one of "+t.getEnums())}static typeValidation(e,t,r,s){let n=!1,a=[];for(const i of Array.from(t.getType()?.getAllowedSchemaTypes()?.values()??[]))try{H.validate(e,i,t,r,s),n=!0;break}catch(e){n=!1,a.push(e)}if(!n)throw new b(Y.path(e),"Value "+JSON.stringify(s)+" is not of valid type(s)",a)}constructor(){}}class W{validateArguments(e,t,r){return Array.from(this.getSignature().getParameters().entries()).map((s=>{let n=s[1];try{return this.validateArgument(e,t,s,n)}catch(e){const t=this.getSignature();throw new w(`Error while executing the function ${t.getNamespace()}.${t.getName()}'s parameter ${n.getParameterName()} with step name '${r?.getStatement().getStatementName()??"Unknown Step"}' with error : ${e?.message}`)}})).reduce(((e,t)=>(e.set(t.getT1(),t.getT2()),e)),new Map)}validateArgument(e,t,r,s){let a,i=r[0],o=e.get(r[0]);if(n(o)&&!s.isVariableArgument())return new _(i,Y.validate(void 0,s.getSchema(),t,void 0));if(!s?.isVariableArgument())return new _(i,Y.validate(void 0,s.getSchema(),t,o));Array.isArray(o)?a=o:(a=[],n(o)?n(s.getSchema().getDefaultValue())||a.push(s.getSchema().getDefaultValue()):a.push(o));for(let e=0;e<a.length;e++)a[e]=Y.validate(void 0,s.getSchema(),t,a[e]);return new _(i,a)}async execute(e){e.setArguments(this.validateArguments(e.getArguments()??new Map,e.getSchemaRepository(),e.getStatementExecution()));try{return this.internalExecute(e)}catch(t){const r=this.getSignature();throw new w(`Error while executing the function ${r.getNamespace()}.${r.getName()} with step name '${e.getStatementExecution()?.getStatement().getStatementName()??"Unknown Step"}' with error : ${t?.message}`)}}getProbableEventSignature(e){return this.getSignature().getEvents()}}const j=new I("Create").setNamespace(s.SYSTEM_CTX).setParameters(new Map([T.ofEntry("name",(new m).setName("name").setType(l.of(i.STRING)).setMinLength(1).setFormat(d.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,f.CONSTANT),T.ofEntry("schema",m.SCHEMA,!1,f.CONSTANT)])).setEvents(new Map([N.outputEventMapEntry(new Map)]));const q=new I("Get").setNamespace(s.SYSTEM_CTX).setParameters(new Map([T.ofEntry("name",(new m).setName("name").setType(l.of(i.STRING)).setMinLength(1).setFormat(d.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,f.CONSTANT)])).setEvents(new Map([N.outputEventMapEntry(new Map([["value",m.ofAny("value")]]))]));e({},"ExecutionException",(()=>X));class X extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}e({},"Expression",(()=>se));e({},"LinkedList",(()=>Q));function J(e,t){let r=new Q;r.push(e);let s=new Q;for(s.push(t);!r.isEmpty()&&!s.isEmpty();){const e=r.pop(),t=s.pop();if(e===t)continue;const n=typeof e,a=typeof t;if("undefined"===n||"undefined"===a){if(!e&&!t)continue;return!1}if(n!==a)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!=t.length)return!1;for(let n=0;n<e.length;n++)r.push(e[n]),s.push(t[n])}else{if("object"!==n)return!1;{const n=Object.entries(e),a=Object.entries(t);if(n.length!==a.length)return!1;for(const[e,a]of n)r.push(a),s.push(t[e])}}}return!0}e({},"deepEqual",(()=>J));class Q{head=void 0;tail=void 0;length=0;constructor(e){if(e?.length){for(const t of e)if(this.head){const e=new K(t,this.tail);this.tail.next=e,this.tail=e}else this.tail=this.head=new K(t);this.length=e.length}}push(e){const t=new K(e,void 0,this.head);this.head?(this.head.previous=t,this.head=t):this.tail=this.head=t,this.length++}pop(){if(!this.head)throw Error("List is empty and cannot pop further.");const e=this.head.value;if(this.length--,this.head==this.tail)return this.head=this.tail=void 0,e;const t=this.head;return this.head=t.next,t.next=void 0,t.previous=void 0,this.head.previous=void 0,e}isEmpty(){return!this.length}size(){return this.length}get(e){if(e<0||e>=this.length)throw new Error(`${e} is out of bounds [0,${this.length}]`);let t=this.head;for(;e>0;)t=this.head.next,--e;return t.value}set(e,t){if(e<0||e>=this.length)throw new w(M.format("Index $ out of bound to set the value in linked list.",e));let r=this.head;for(;e>0;)r=this.head.next,--e;return r.value=t,this}toString(){let e=this.head,t="";for(;e;)t+=e.value,e=e.next,e&&(t+=", ");return`[${t}]`}toArray(){let e=[],t=this.head;for(;t;)e.push(t.value),t=t.next;return e}peek(){if(!this.head)throw new Error("List is empty so cannot peak");return this.head.value}peekLast(){if(!this.tail)throw new Error("List is empty so cannot peak");return this.tail.value}getFirst(){if(!this.head)throw new Error("List is empty so cannot get first");return this.head.value}removeFirst(){return this.pop()}removeLast(){if(!this.tail)throw new Error("List is empty so cannot remove");--this.length;const e=this.tail.value;if(0==this.length)this.head=this.tail=void 0;else{const e=this.tail.previous;e.next=void 0,this.tail.previous=void 0,this.tail=e}return e}addAll(e){return e&&e.length?(e.forEach(this.add.bind(this)),this):this}add(e){return++this.length,this.tail||this.head?this.head===this.tail?(this.tail=new K(e,this.head),this.head.next=this.tail):(this.tail=new K(e,this.tail),this.tail.previous.next=this.tail):this.head=this.tail=new K(e),this}map(e,t){let r=new Q,s=this.head,n=0;for(;s;)r.add(e(s.value,n)),s=s.next,++n;return r}indexOf(e){let t=this.head,r=0;for(;t;){if(J(t.value,e))return r;t=t.next,++r}return-1}forEach(e,t){let r=this.head,s=0;for(;r;)e(r.value,s),r=r.next,++s}}class K{constructor(e,t,r){this.value=e,this.next=r,this.previous=t}toString(){return""+this.value}}e({},"StringBuilder",(()=>z));class z{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 w(`Index ${e} is greater than or equal to ${this.str.length}`)}substring(e,t){return this.str.substring(e,t)}}e({},"ExpressionEvaluationException",(()=>Z));class Z extends Error{constructor(e,t,r){super(M.format("$ : $",e,t)),this.cause=r}getCause(){return this.cause}}e({},"ExpressionToken",(()=>ee));class ee{constructor(e){this.expression=e}getExpression(){return this.expression}toString(){return this.expression}}e({},"ExpressionTokenValue",(()=>te));class te extends ee{constructor(e,t){super(e),this.element=t}getTokenValue(){return this.element}getElement(){return this.element}toString(){return M.format("$: $",this.expression,this.element)}}e({},"Operation",(()=>re));class re{static MULTIPLICATION=new re("*");static DIVISION=new re("/");static INTEGER_DIVISION=new re("//");static MOD=new re("%");static ADDITION=new re("+");static SUBTRACTION=new re("-");static NOT=new re("not",void 0,!0);static AND=new re("and",void 0,!0);static OR=new re("or",void 0,!0);static LESS_THAN=new re("<");static LESS_THAN_EQUAL=new re("<=");static GREATER_THAN=new re(">");static GREATER_THAN_EQUAL=new re(">=");static EQUAL=new re("=");static NOT_EQUAL=new re("!=");static BITWISE_AND=new re("&");static BITWISE_OR=new re("|");static BITWISE_XOR=new re("^");static BITWISE_COMPLEMENT=new re("~");static BITWISE_LEFT_SHIFT=new re("<<");static BITWISE_RIGHT_SHIFT=new re(">>");static BITWISE_UNSIGNED_RIGHT_SHIFT=new re(">>>");static UNARY_PLUS=new re("UN: +","+");static UNARY_MINUS=new re("UN: -","-");static UNARY_LOGICAL_NOT=new re("UN: not","not");static UNARY_BITWISE_COMPLEMENT=new re("UN: ~","~");static ARRAY_OPERATOR=new re("[");static OBJECT_OPERATOR=new re(".");static NULLISH_COALESCING_OPERATOR=new re("??");static CONDITIONAL_TERNARY_OPERATOR=new re("?");static VALUE_OF=new Map([["MULTIPLICATION",re.MULTIPLICATION],["DIVISION",re.DIVISION],["INTEGER_DIVISON",re.INTEGER_DIVISION],["MOD",re.MOD],["ADDITION",re.ADDITION],["SUBTRACTION",re.SUBTRACTION],["NOT",re.NOT],["AND",re.AND],["OR",re.OR],["LESS_THAN",re.LESS_THAN],["LESS_THAN_EQUAL",re.LESS_THAN_EQUAL],["GREATER_THAN",re.GREATER_THAN],["GREATER_THAN_EQUAL",re.GREATER_THAN_EQUAL],["EQUAL",re.EQUAL],["NOT_EQUAL",re.NOT_EQUAL],["BITWISE_AND",re.BITWISE_AND],["BITWISE_OR",re.BITWISE_OR],["BITWISE_XOR",re.BITWISE_XOR],["BITWISE_COMPLEMENT",re.BITWISE_COMPLEMENT],["BITWISE_LEFT_SHIFT",re.BITWISE_LEFT_SHIFT],["BITWISE_RIGHT_SHIFT",re.BITWISE_RIGHT_SHIFT],["BITWISE_UNSIGNED_RIGHT_SHIFT",re.BITWISE_UNSIGNED_RIGHT_SHIFT],["UNARY_PLUS",re.UNARY_PLUS],["UNARY_MINUS",re.UNARY_MINUS],["UNARY_LOGICAL_NOT",re.UNARY_LOGICAL_NOT],["UNARY_BITWISE_COMPLEMENT",re.UNARY_BITWISE_COMPLEMENT],["ARRAY_OPERATOR",re.ARRAY_OPERATOR],["OBJECT_OPERATOR",re.OBJECT_OPERATOR],["NULLISH_COALESCING_OPERATOR",re.NULLISH_COALESCING_OPERATOR],["CONDITIONAL_TERNARY_OPERATOR",re.CONDITIONAL_TERNARY_OPERATOR]]);static UNARY_OPERATORS=new Set([re.ADDITION,re.SUBTRACTION,re.NOT,re.BITWISE_COMPLEMENT,re.UNARY_PLUS,re.UNARY_MINUS,re.UNARY_LOGICAL_NOT,re.UNARY_BITWISE_COMPLEMENT]);static ARITHMETIC_OPERATORS=new Set([re.MULTIPLICATION,re.DIVISION,re.INTEGER_DIVISION,re.MOD,re.ADDITION,re.SUBTRACTION]);static LOGICAL_OPERATORS=new Set([re.NOT,re.AND,re.OR,re.LESS_THAN,re.LESS_THAN_EQUAL,re.GREATER_THAN,re.GREATER_THAN_EQUAL,re.EQUAL,re.NOT_EQUAL,re.NULLISH_COALESCING_OPERATOR]);static BITWISE_OPERATORS=new Set([re.BITWISE_AND,re.BITWISE_COMPLEMENT,re.BITWISE_LEFT_SHIFT,re.BITWISE_OR,re.BITWISE_RIGHT_SHIFT,re.BITWISE_UNSIGNED_RIGHT_SHIFT,re.BITWISE_XOR]);static CONDITIONAL_OPERATORS=new Set([re.CONDITIONAL_TERNARY_OPERATOR]);static OPERATOR_PRIORITY=new Map([[re.UNARY_PLUS,1],[re.UNARY_MINUS,1],[re.UNARY_LOGICAL_NOT,1],[re.UNARY_BITWISE_COMPLEMENT,1],[re.ARRAY_OPERATOR,1],[re.OBJECT_OPERATOR,1],[re.MULTIPLICATION,2],[re.DIVISION,2],[re.INTEGER_DIVISION,2],[re.MOD,2],[re.ADDITION,3],[re.SUBTRACTION,3],[re.BITWISE_LEFT_SHIFT,4],[re.BITWISE_RIGHT_SHIFT,4],[re.BITWISE_UNSIGNED_RIGHT_SHIFT,4],[re.LESS_THAN,5],[re.LESS_THAN_EQUAL,5],[re.GREATER_THAN,5],[re.GREATER_THAN_EQUAL,5],[re.EQUAL,6],[re.NOT_EQUAL,6],[re.BITWISE_AND,7],[re.BITWISE_XOR,8],[re.BITWISE_OR,9],[re.AND,10],[re.OR,11],[re.NULLISH_COALESCING_OPERATOR,11],[re.CONDITIONAL_TERNARY_OPERATOR,12]]);static OPERATORS=new Set([...Array.from(re.ARITHMETIC_OPERATORS),...Array.from(re.LOGICAL_OPERATORS),...Array.from(re.BITWISE_OPERATORS),re.ARRAY_OPERATOR,re.OBJECT_OPERATOR,...Array.from(re.CONDITIONAL_OPERATORS)].map((e=>e.getOperator())));static OPERATORS_WITHOUT_SPACE_WRAP=new Set([...Array.from(re.ARITHMETIC_OPERATORS),...Array.from(re.LOGICAL_OPERATORS),...Array.from(re.BITWISE_OPERATORS),re.ARRAY_OPERATOR,re.OBJECT_OPERATOR,...Array.from(re.CONDITIONAL_OPERATORS)].filter((e=>!e.shouldBeWrappedInSpace())).map((e=>e.getOperator())));static OPERATION_VALUE_OF=new Map(Array.from(re.VALUE_OF.entries()).map((([e,t])=>[t.getOperator(),t])));static UNARY_MAP=new Map([[re.ADDITION,re.UNARY_PLUS],[re.SUBTRACTION,re.UNARY_MINUS],[re.NOT,re.UNARY_LOGICAL_NOT],[re.BITWISE_COMPLEMENT,re.UNARY_BITWISE_COMPLEMENT],[re.UNARY_PLUS,re.UNARY_PLUS],[re.UNARY_MINUS,re.UNARY_MINUS],[re.UNARY_LOGICAL_NOT,re.UNARY_LOGICAL_NOT],[re.UNARY_BITWISE_COMPLEMENT,re.UNARY_BITWISE_COMPLEMENT]]);static BIGGEST_OPERATOR_SIZE=Array.from(re.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 re.VALUE_OF.get(e)}toString(){return this.operator}}class se extends ee{tokens=new Q;ops=new Q;constructor(e,t,r,s){super(e||""),t&&this.tokens.push(t),r&&this.tokens.push(r),s&&this.ops.push(s),this.evaluate()}getTokens(){return this.tokens}getOperations(){return this.ops}evaluate(){const e=this.expression.length;let t,r="",s=new z(""),n=0,a=!1;for(;n<e;){switch(r=this.expression[n],t=s.toString(),r){case" ":a=this.processTokenSepearator(s,t,a);break;case"(":n=this.processSubExpression(e,s,t,n,a),a=!1;break;case")":throw new Z(this.expression,"Extra closing parenthesis found");case"]":throw new Z(this.expression,"Extra closing square bracket found");case"'":case'"':{let t=this.processStringLiteral(e,r,n);n=t.getT1(),a=t.getT2();break}case"?":if(n+1<e&&"?"!=this.expression.charAt(n+1)&&0!=n&&"?"!=this.expression.charAt(n-1))n=this.processTernaryOperator(e,s,t,n,a);else{let i=this.processOthers(r,e,s,t,n,a);n=i.getT1(),a=i.getT2(),a&&this.ops.peek()==re.ARRAY_OPERATOR&&(i=this.process(e,s,n),n=i.getT1(),a=i.getT2())}break;default:let i=this.processOthers(r,e,s,t,n,a);n=i.getT1(),a=i.getT2(),a&&this.ops.peek()==re.ARRAY_OPERATOR&&(i=this.process(e,s,n),n=i.getT1(),a=i.getT2())}++n}if(t=s.toString(),!v.isNullOrBlank(t)){if(re.OPERATORS.has(t))throw new Z(this.expression,"Expression is ending with an operator");this.tokens.push(new ee(t))}}processStringLiteral(e,t,r){let s="",n=r+1;for(;n<e;n++){let e=this.expression.charAt(n);if(e==t&&"\\"!=this.expression.charAt(n-1))break;s+=e}if(n==e&&this.expression.charAt(n-1)!=t)throw new Z(this.expression,"Missing string ending marker "+t);let a=new _(n,!1);return this.tokens.push(new te(s,s)),a}process(e,t,r){let s=1;for(++r;r<e&&0!=s;){let e=this.expression.charAt(r);"]"==e?--s:"["==e&&++s,0!=s&&(t.append(e),r++)}return this.tokens.push(new se(t.toString())),t.setLength(0),new _(r,!1)}processOthers(e,t,r,s,n,a){let i=t-n;i=i<re.BIGGEST_OPERATOR_SIZE?i:re.BIGGEST_OPERATOR_SIZE;for(let e=i;e>0;e--){let t=this.expression.substring(n,n+e);if(re.OPERATORS_WITHOUT_SPACE_WRAP.has(t))return v.isNullOrBlank(s)||(this.tokens.push(new ee(s)),a=!1),this.checkUnaryOperator(this.tokens,this.ops,re.OPERATION_VALUE_OF.get(t),a),a=!0,r.setLength(0),new _(n+e-1,a)}return r.append(e),new _(n,!1)}processTernaryOperator(e,t,r,s,n){if(n)throw new Z(this.expression,"Ternary operator is followed by an operator");""!=r.trim()&&(this.tokens.push(new se(r)),t.setLength(0));let a=1,i="";const o=++s;for(;s<e&&a>0;)i=this.expression.charAt(s),"?"==i?++a:":"==i&&--a,++s;if(":"!=i)throw new Z(this.expression,"':' operater is missing");if(s>=e)throw new Z(this.expression,"Third part of the ternary expression is missing");for(;!this.ops.isEmpty()&&this.hasPrecedence(re.CONDITIONAL_TERNARY_OPERATOR,this.ops.peek());){let e=this.ops.pop();if(re.UNARY_OPERATORS.has(e)){const t=this.tokens.pop();this.tokens.push(new se("",t,void 0,e))}else{let t=this.tokens.pop(),r=this.tokens.pop();this.tokens.push(new se("",r,t,e))}}this.ops.push(re.CONDITIONAL_TERNARY_OPERATOR),this.tokens.push(new se(this.expression.substring(o,s-1)));const u=this.expression.substring(s);if(""===u.trim())throw new Z(this.expression,"Third part of the ternary expression is missing");return this.tokens.push(new se(u)),e-1}processSubExpression(e,t,r,s,n){if(re.OPERATORS.has(r))this.checkUnaryOperator(this.tokens,this.ops,re.OPERATION_VALUE_OF.get(r),n),t.setLength(0);else if(!v.isNullOrBlank(r))throw new Z(this.expression,M.format("Unkown token : $ found.",r));let a=1;const i=new z;let o=this.expression.charAt(s);for(s++;s<e&&a>0;)o=this.expression.charAt(s),"("==o?a++:")"==o&&a--,0!=a&&(i.append(o),s++);if(")"!=o)throw new Z(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 se(i.toString().trim())),s}processTokenSepearator(e,t,r){return v.isNullOrBlank(t)||(re.OPERATORS.has(t)?(this.checkUnaryOperator(this.tokens,this.ops,re.OPERATION_VALUE_OF.get(t),r),r=!0):(this.tokens.push(new ee(t)),r=!1)),e.setLength(0),r}checkUnaryOperator(e,t,r,s){if(r)if(s||e.isEmpty()){if(!re.UNARY_OPERATORS.has(r))throw new Z(this.expression,M.format("Extra operator $ found.",r));{const e=re.UNARY_MAP.get(r);e&&t.push(e)}}else{for(;!t.isEmpty()&&this.hasPrecedence(r,t.peek());){let r=t.pop();if(re.UNARY_OPERATORS.has(r)){let t=e.pop();e.push(new se("",t,void 0,r))}else{let t=e.pop(),s=e.pop();e.push(new se("",s,t,r))}}t.push(r)}}hasPrecedence(e,t){let r=re.OPERATOR_PRIORITY.get(e),s=re.OPERATOR_PRIORITY.get(t);if(!r||!s)throw new Error("Unknown operators provided");return s<r}toString(){if(this.ops.isEmpty())return 1==this.tokens.size()?this.tokens.get(0).toString():"Error: No tokens";let e=new z,t=0;const r=this.ops.toArray(),s=this.tokens.toArray();for(let n=0;n<r.length;n++)if(r[n].getOperator().startsWith("UN: "))e.append("(").append(r[n].getOperator().substring(4)).append(s[t]instanceof se?s[t].toString():s[t]).append(")"),t++;else if(r[n]==re.CONDITIONAL_TERNARY_OPERATOR){let r=s[t++];e.insert(0,r.toString()),e.insert(0,":"),r=s[t++],e.insert(0,r.toString()),e.insert(0,"?"),r=s[t++],e.insert(0,r.toString()).append(")"),e.insert(0,"(")}else{if(0==t){const r=s[t++];e.insert(0,r.toString())}const a=s[t++];e.insert(0,r[n].getOperator()).insert(0,a.toString()).insert(0,"(").append(")")}return e.toString()}equals(e){return this.expression==e.expression}}e({},"ExpressionEvaluator",(()=>ft));var ne={};e(ne,"LogicalNullishCoalescingOperator",(()=>oe));var ae={};e(ae,"BinaryOperator",(()=>ie));class ie{nullCheck(e,t,r){if(n(e)||n(t))throw new X(M.format("$ cannot be applied to a null value",r.getOperatorName()))}}class oe extends ie{apply(e,t){return n(e)?t:e}}var ue={};e(ue,"ArithmeticAdditionOperator",(()=>pe));class pe extends ie{apply(e,t){return this.nullCheck(e,t,re.ADDITION),e+t}}var he={};e(he,"ArithmeticDivisionOperator",(()=>le));class le extends ie{apply(e,t){return this.nullCheck(e,t,re.DIVISION),e/t}}var ce={};e(ce,"ArithmeticIntegerDivisionOperator",(()=>me));class me extends ie{apply(e,t){return this.nullCheck(e,t,re.DIVISION),Math.floor(e/t)}}var ge={};e(ge,"ArithmeticModulusOperator",(()=>fe));class fe extends ie{apply(e,t){return this.nullCheck(e,t,re.MOD),e%t}}var Ee={};e(Ee,"ArithmeticMultiplicationOperator",(()=>Te));class Te extends ie{apply(e,t){this.nullCheck(e,t,re.MULTIPLICATION);const r="string"==typeof e;if(r||"string"===typeof t){let s=r?e:t,n=r?t:e,a="",i=n<0;n=Math.abs(n);let o=Math.floor(n);for(;o-- >0;)a+=s;let u=Math.floor(s.length*(n-Math.floor(n)));if(u<0&&(u=-u),0!=u&&(a+=s.substring(0,u)),i){let e="";for(let t=a.length-1;t>=0;t--)e+=a[t];return e}return a}return e*t}}var Ae={};e(Ae,"ArithmeticSubtractionOperator",(()=>Oe));class Oe extends ie{apply(e,t){return this.nullCheck(e,t,re.SUBTRACTION),e-t}}var we={};e(we,"ArrayOperator",(()=>de));class de extends ie{apply(e,t){if(!e)throw new X("Cannot apply array operator on a null value");if(!t)throw new X("Cannot retrive null index value");if(!Array.isArray(e)&&"string"!=typeof e)throw new X(M.format("Cannot retrieve value from a primitive value $",e));if(t>=e.length)throw new X(M.format("Cannot retrieve index $ from the array of length $",t,e.length));return e[t]}}var Se={};e(Se,"BitwiseAndOperator",(()=>Ne));class Ne extends ie{apply(e,t){return this.nullCheck(e,t,re.BITWISE_AND),e&t}}var Re={};e(Re,"BitwiseLeftShiftOperator",(()=>ye));class ye extends ie{apply(e,t){return this.nullCheck(e,t,re.BITWISE_LEFT_SHIFT),e<<t}}var Ie={};e(Ie,"BitwiseOrOperator",(()=>xe));class xe extends ie{apply(e,t){return this.nullCheck(e,t,re.BITWISE_OR),e|t}}var Me={};e(Me,"BitwiseRightShiftOperator",(()=>ve));class ve extends ie{apply(e,t){return this.nullCheck(e,t,re.BITWISE_RIGHT_SHIFT),e>>t}}var Pe={};e(Pe,"BitwiseUnsignedRightShiftOperator",(()=>_e));class _e extends ie{apply(e,t){return this.nullCheck(e,t,re.BITWISE_UNSIGNED_RIGHT_SHIFT),e>>>t}}var Le={};e(Le,"BitwiseXorOperator",(()=>Ce));class Ce extends ie{apply(e,t){return this.nullCheck(e,t,re.BITWISE_XOR),e^t}}var be={};e(be,"LogicalAndOperator",(()=>Ue));e({},"PrimitiveUtil",(()=>Ve));class Ve{static findPrimitiveNullAsBoolean(e){if(n(e))return new _(i.BOOLEAN,!1);let t=typeof e;if("object"===t)throw new X(M.format("$ is not a primitive type",e));let r=e;return"boolean"===t?new _(i.BOOLEAN,r):"string"===t?new _(i.STRING,r):Ve.findPrimitiveNumberType(r)}static findPrimitive(e){if(n(e))return new _(i.NULL,void 0);let t=typeof e;if("object"===t)throw new X(M.format("$ is not a primitive type",e));let r=e;return"boolean"===t?new _(i.BOOLEAN,r):"string"===t?new _(i.STRING,r):Ve.findPrimitiveNumberType(r)}static findPrimitiveNumberType(e){if(n(e)||Array.isArray(e)||"object"==typeof e)throw new X(M.format("Unable to convert $ to a number.",e));let t=e;try{let e=t;return Number.isInteger(e)?new _(i.LONG,e):new _(i.DOUBLE,e)}catch(e){throw new X(M.format("Unable to convert $ to a number.",t),e)}}static compare(e,t){if(e==t)return 0;if(n(e)||n(t))return n(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 s=this.compare(e[r],t[r]);if(0!=s)return s}return 0}return Array.isArray(e)?-1:1}const r=typeof e,s=typeof t;return"object"===r||"object"===s?("object"===r&&"object"===s&&Object.keys(e).forEach((r=>{let s=this.compare(e[r],t[r]);if(0!=s)return s})),"object"===r?-1:1):this.comparePrimitive(e,t)}static comparePrimitive(e,t){return n(e)||n(t)?n(e)&&n(t)?0:n(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)?i.LONG:i.DOUBLE}static toPrimitiveType(e){return e}constructor(){}}class Ue extends ie{apply(e,t){const r=Ve.findPrimitiveNullAsBoolean(e),s=Ve.findPrimitiveNullAsBoolean(t);if(r.getT1()!=i.BOOLEAN)throw new X(M.format("Boolean value expected but found $",r.getT2()));if(s.getT1()!=i.BOOLEAN)throw new X(M.format("Boolean value expected but found $",s.getT2()));return r.getT2()&&s.getT2()}}var Be={};e(Be,"LogicalEqualOperator",(()=>De));class De extends ie{apply(e,t){return J(e,t)}}var ke={};e(ke,"LogicalGreaterThanEqualOperator",(()=>Ge));class Ge extends ie{apply(e,t){const r=Ve.findPrimitiveNullAsBoolean(e),s=Ve.findPrimitiveNullAsBoolean(t);if(r.getT1()==i.BOOLEAN||s.getT1()==i.BOOLEAN)throw new X(M.format("Cannot compare >= with the values $ and $",r.getT2(),s.getT2()));return r.getT2()>=s.getT2()}}var Fe={};e(Fe,"LogicalGreaterThanOperator",(()=>$e));class $e extends ie{apply(e,t){const r=Ve.findPrimitiveNullAsBoolean(e),s=Ve.findPrimitiveNullAsBoolean(t);if(r.getT1()==i.BOOLEAN||s.getT1()==i.BOOLEAN)throw new X(M.format("Cannot compare > with the values $ and $",r.getT2(),s.getT2()));return r.getT2()>s.getT2()}}var He={};e(He,"LogicalLessThanEqualOperator",(()=>Ye));class Ye extends ie{apply(e,t){const r=Ve.findPrimitiveNullAsBoolean(e),s=Ve.findPrimitiveNullAsBoolean(t);if(r.getT1()==i.BOOLEAN||s.getT1()==i.BOOLEAN)throw new X(M.format("Cannot compare <= with the values $ and $",r.getT2(),s.getT2()));return r.getT2()<=s.getT2()}}var We={};e(We,"LogicalLessThanOperator",(()=>je));class je extends ie{apply(e,t){const r=Ve.findPrimitiveNullAsBoolean(e),s=Ve.findPrimitiveNullAsBoolean(t);if(r.getT1()==i.BOOLEAN||s.getT1()==i.BOOLEAN)throw new X(M.format("Cannot compare < with the values $ and $",r.getT2(),s.getT2()));return r.getT2()<s.getT2()}}var qe={};e(qe,"LogicalNotEqualOperator",(()=>Xe));class Xe extends ie{apply(e,t){return!J(e,t)}}var Je={};e(Je,"LogicalOrOperator",(()=>Qe));class Qe extends ie{apply(e,t){const r=Ve.findPrimitiveNullAsBoolean(e),s=Ve.findPrimitiveNullAsBoolean(t);if(r.getT1()!=i.BOOLEAN)throw new X(M.format("Boolean value expected but found $",r.getT2()));if(s.getT1()!=i.BOOLEAN)throw new X(M.format("Boolean value expected but found $",s.getT2()));return r.getT2()||s.getT2()}}var Ke={};e(Ke,"ObjectOperator",(()=>ze));class ze extends ie{apply(e,t){if(!e)throw new X("Cannot apply array operator on a null value");if(!t)throw new X("Cannot retrive null property value");const r=typeof e;if(!Array.isArray(e)&&"string"!=r&&"object"!=r)throw new X(M.format("Cannot retrieve value from a primitive value $",e));return e[t]}}var Ze={};e(Ze,"ArithmeticUnaryMinusOperator",(()=>rt));var et={};e(et,"UnaryOperator",(()=>tt));class tt{nullCheck(e,t){if(n(e))throw new X(M.format("$ cannot be applied to a null value",t.getOperatorName()))}}class rt extends tt{apply(e){return this.nullCheck(e,re.UNARY_MINUS),Ve.findPrimitiveNumberType(e),-e}}var st={};e(st,"ArithmeticUnaryPlusOperator",(()=>nt));class nt extends tt{apply(e){return this.nullCheck(e,re.UNARY_PLUS),Ve.findPrimitiveNumberType(e),e}}var at={};e(at,"BitwiseComplementOperator",(()=>it));class it extends tt{apply(e){this.nullCheck(e,re.UNARY_BITWISE_COMPLEMENT);let t=Ve.findPrimitiveNumberType(e);if(t.getT1()!=i.INTEGER&&t.getT1()!=i.LONG)throw new X(M.format("Unable to apply bitwise operator on $",e));return~e}}var ot={};e(ot,"LogicalNotOperator",(()=>ut));class ut extends tt{apply(e){return!e&&""!==e}}e({},"LiteralTokenValueExtractor",(()=>lt));e({},"TokenValueExtractor",(()=>pt));class pt{static REGEX_SQUARE_BRACKETS=/[\[\]]/;static REGEX_DOT=/\./;getValue(e){let t=this.getPrefix();if(!e.startsWith(t))throw new w(M.format("Token $ doesn't start with $",e,t));return this.getValueInternal(e)}retrieveElementFrom(e,t,r,s){if(n(s))return;if(t.length==r)return s;let a=t[r].split(pt.REGEX_SQUARE_BRACKETS).map((e=>e.trim())).filter((e=>!v.isNullOrBlank(e))).reduce(((s,n,a)=>this.resolveForEachPartOfTokenWithBrackets(e,t,r,n,s,a)),s);return this.retrieveElementFrom(e,t,r+1,a)}resolveForEachPartOfTokenWithBrackets(e,t,r,s,a,i){if(!n(a)){if(0===i){if(Array.isArray(a)){if("length"===s)return a.length;try{let e=parseInt(s);if(isNaN(e))throw new Error(M.format("$ is not a number",e));if(e>=a.length)return;return a[e]}catch(t){throw new Z(e,M.format("$ couldn't be parsed into integer in $",s,e),t)}}return this.checkIfObject(e,t,r,a),a[s]}if(s?.startsWith('"')){if(!s.endsWith('"')||1==s.length||2==s.length)throw new Z(e,M.format("$ is missing a double quote or empty key found",e));return this.checkIfObject(e,t,r,a),a[s.substring(1,s.length-1)]}try{let t=parseInt(s);if(isNaN(t))throw new Error(M.format("$ is not a number",t));if(!Array.isArray(a))throw new Z(e,M.format("Expecting an array with index $ while processing the expression",t,e));if(t>=a.length)return;return a[t]}catch(t){throw new Z(e,M.format("$ couldn't be parsed into integer in $",s,e),t)}}}checkIfObject(e,t,r,s){if("object"!=typeof s||Array.isArray(s))throw new Z(e,M.format("Unable to retrive $ from $ in the path $",t[r],s.toString(),e))}}const ht=new Map([["true",!0],["false",!1],["null",void 0]]);class lt extends pt{static INSTANCE=new lt;getValueInternal(e){if(!v.isNullOrBlank(e))return e=e.trim(),ht.has(e)?ht.get(e):e.startsWith('"')?this.processString(e):this.processNumbers(e)}processNumbers(e){try{let t=Number(e);if(isNaN(t))throw new Error("Parse number error");return t}catch(t){throw new Z(e,M.format("Unable to parse the literal or expression $",e),t)}}processString(e){if(!e.endsWith('"'))throw new Z(e,M.format("String literal $ is not closed properly",e));return e.substring(1,e.length-1)}getPrefix(){return""}}var ct={};e(ct,"ConditionalTernaryOperator",(()=>mt));class mt extends class{nullCheck(e,t,r,s){if(n(e)||n(t)||n(r))throw new X(M.format("$ cannot be applied to a null value",s.getOperatorName()))}}{apply(e,t,r){return e?t:r}}t({},ct);class gt extends pt{static PREFIX="_internal.";values=new Map;addValue(e,t){this.values.set(e,t)}getValueInternal(e){let t=e.split(pt.REGEX_DOT),r=t[1],s=r.indexOf("["),n=2;return-1!=s&&(r=t[1].substring(0,s),t[1]=t[1].substring(s),n=1),this.retrieveElementFrom(e,t,n,this.values.get(r))}getPrefix(){return gt.PREFIX}}class ft{static UNARY_OPERATORS_MAP=new Map([[re.UNARY_BITWISE_COMPLEMENT,new it],[re.UNARY_LOGICAL_NOT,new ut],[re.UNARY_MINUS,new rt],[re.UNARY_PLUS,new nt]]);static TERNARY_OPERATORS_MAP=new Map([[re.CONDITIONAL_TERNARY_OPERATOR,new mt]]);static BINARY_OPERATORS_MAP=new Map([[re.ADDITION,new pe],[re.DIVISION,new le],[re.INTEGER_DIVISION,new me],[re.MOD,new fe],[re.MULTIPLICATION,new Te],[re.SUBTRACTION,new Oe],[re.BITWISE_AND,new Ne],[re.BITWISE_LEFT_SHIFT,new ye],[re.BITWISE_OR,new xe],[re.BITWISE_RIGHT_SHIFT,new ve],[re.BITWISE_UNSIGNED_RIGHT_SHIFT,new _e],[re.BITWISE_XOR,new Ce],[re.AND,new Ue],[re.EQUAL,new De],[re.GREATER_THAN,new $e],[re.GREATER_THAN_EQUAL,new Ge],[re.LESS_THAN,new je],[re.LESS_THAN_EQUAL,new Ye],[re.OR,new Qe],[re.NOT_EQUAL,new Xe],[re.NULLISH_COALESCING_OPERATOR,new oe],[re.ARRAY_OPERATOR,new de],[re.OBJECT_OPERATOR,new ze]]);static UNARY_OPERATORS_MAP_KEY_SET=new Set(ft.UNARY_OPERATORS_MAP.keys());internalTokenValueExtractor=new gt;constructor(e){e instanceof se?(this.exp=e,this.expression=this.exp.getExpression()):this.expression=e}evaluate(e){const t=this.processNestingExpression(this.expression,e);return this.expression=t.getT1(),this.exp=t.getT2(),(e=new Map(e.entries())).set(this.internalTokenValueExtractor.getPrefix(),this.internalTokenValueExtractor),this.evaluateExpression(this.exp,e)}processNestingExpression(e,t){let r=0,s=0;const n=new Q;for(;s<e.length-1;){if("{"==e.charAt(s)&&"{"==e.charAt(s+1))0==r&&n.push(new _(s+2,-1)),r++,s++;else if("}"==e.charAt(s)&&"}"==e.charAt(s+1)){if(r--,r<0)throw new Z(e,"Expecting {{ nesting path operator to be started before closing");0==r&&n.push(n.pop().setT2(s)),s++}s++}let a=this.replaceNestingExpression(e,t,n);return new _(a,new se(a))}replaceNestingExpression(e,t,r){let s=e;for(var n of r.toArray()){if(-1==n.getT2())throw new Z(e,"Expecting }} nesting path operator to be closed");let r=new ft(s.substring(n.getT1(),n.getT2())).evaluate(t);s=s.substring(0,n.getT1()-2)+r+s.substring(n.getT2()+2)}return s}getExpression(){return this.exp||(this.exp=new se(this.expression)),this.exp}getExpressionString(){return this.expression}evaluateExpression(e,t){let r=e.getOperations(),s=e.getTokens();for(;!r.isEmpty();){let e=r.pop(),o=s.pop();if(ft.UNARY_OPERATORS_MAP_KEY_SET.has(e))s.push(this.applyUnaryOperation(e,this.getValueFromToken(t,o)));else if(e==re.OBJECT_OPERATOR||e==re.ARRAY_OPERATOR)this.processObjectOrArrayOperator(t,r,s,e,o);else if(e==re.CONDITIONAL_TERNARY_OPERATOR){const r=s.pop(),u=s.pop();var n=this.getValueFromToken(t,u),a=this.getValueFromToken(t,r),i=this.getValueFromToken(t,o);s.push(this.applyTernaryOperation(e,n,a,i))}else{const r=s.pop();n=this.getValueFromToken(t,r),a=this.getValueFromToken(t,o);s.push(this.applyBinaryOperation(e,n,a))}}if(s.isEmpty())throw new X(M.format("Expression : $ evaluated to null",e));if(1!=s.size())throw new X(M.format("Expression : $ evaluated multiple values $",e,s));const o=s.get(0);if(o instanceof te)return o.getElement();if(!(o instanceof se))return this.getValueFromToken(t,o);throw new X(M.format("Expression : $ evaluated to $",e,s.get(0)))}processObjectOrArrayOperator(e,t,r,s,n){const a=new Q,i=new Q;if(!s||!n)return;do{i.push(s),n instanceof se?a.push(new te(n.toString(),this.evaluateExpression(n,e))):n&&a.push(n),n=r.isEmpty()?void 0:r.pop(),s=t.isEmpty()?void 0:t.pop()}while(s==re.OBJECT_OPERATOR||s==re.ARRAY_OPERATOR);n&&(n instanceof se?a.push(new te(n.toString(),this.evaluateExpression(n,e))):a.push(n)),s&&t.push(s);let o=a.pop();if(o instanceof te&&"object"==typeof o.getTokenValue()){const e=(new Date).getTime()+""+Math.round(1e3*Math.random());this.internalTokenValueExtractor.addValue(e,o.getTokenValue()),o=new ee(gt.PREFIX+e)}let u=new z(o instanceof te?o.getTokenValue():o.toString());for(;!a.isEmpty();)o=a.pop(),s=i.pop(),u.append(s.getOperator()).append(o instanceof te?o.getTokenValue():o.toString()),s==re.ARRAY_OPERATOR&&u.append("]");let p=u.toString(),h=p.substring(0,p.indexOf(".")+1);if(h.length>2&&e.has(h))r.push(new te(p,this.getValue(p,e)));else{let e;try{e=lt.INSTANCE.getValue(p)}catch(t){e=p}r.push(new te(p,e))}}applyTernaryOperation(e,t,r,s){let n=ft.TERNARY_OPERATORS_MAP.get(e);if(!n)throw new Z(this.expression,M.format("No operator found to evaluate $",this.getExpression()));return new te(e.toString(),n.apply(t,r,s))}applyBinaryOperation(e,t,r){let s=typeof t,n=typeof r,a=ft.BINARY_OPERATORS_MAP.get(e);if(("object"===s||"object"===n)&&e!==re.EQUAL&&e!==re.NOT_EQUAL&&e!==re.NULLISH_COALESCING_OPERATOR)throw new Z(this.expression,M.format("Cannot evaluate expression $ $ $",t,e.getOperator(),r));if(!a)throw new Z(this.expression,M.format("No operator found to evaluate $ $ $",t,e.getOperator(),r));return new te(e.toString(),a.apply(t,r))}applyUnaryOperation(e,t){if("object"===typeof t||Array.isArray(t))throw new Z(this.expression,M.format("The operator $ cannot be applied to $",e.getOperator(),t));let r=ft.UNARY_OPERATORS_MAP.get(e);if(!r)throw new Z(this.expression,M.format("No Unary operator $ is found to apply on $",e.getOperator(),t));return new te(e.toString(),r.apply(t))}getValueFromToken(e,t){return t instanceof se?this.evaluateExpression(t,e):t instanceof te?t.getElement():this.getValue(t.getExpression(),e)}getValue(e,t){if(e.length<=5)return lt.INSTANCE.getValue(e);const r=e.substring(0,e.indexOf(".")+1);return(t.get(r)??lt.INSTANCE).getValue(e)}}const Et=new I("Set").setNamespace(s.SYSTEM_CTX).setParameters(new Map([T.ofEntry("name",(new m).setName("name").setType(l.of(i.STRING)).setMinLength(1),!1,f.CONSTANT),T.ofEntry("value",m.ofAny("value"))])).setEvents(new Map([N.outputEventMapEntry(new Map)]));const Tt=new I("GenerateEvent").setNamespace(s.SYSTEM).setParameters(new Map([T.ofEntry("eventName",m.ofString("eventName").setDefaultValue("output")),T.ofEntry("results",m.ofObject("results").setProperties(new Map([["name",m.ofString("name")],["value",T.EXPRESSION]])),!0)])).setEvents(new Map([N.outputEventMapEntry(new Map)]));class At extends W{static CONDITION="condition";static SIGNATURE=new I("If").setNamespace(s.SYSTEM).setParameters(new Map([T.ofEntry(At.CONDITION,m.of(At.CONDITION,i.BOOLEAN))])).setEvents(new Map([N.eventMapEntry(N.TRUE,new Map),N.eventMapEntry(N.FALSE,new Map),N.outputEventMapEntry(new Map)]));getSignature(){return At.SIGNATURE}async internalExecute(e){var t=e.getArguments()?.get(At.CONDITION);return new y([R.of(t?N.TRUE:N.FALSE,new Map),R.outputOf(new Map)])}}const Ot=new I("CountLoop").setNamespace(s.SYSTEM_LOOP).setParameters(new Map([T.ofEntry("count",m.of("count",i.INTEGER).setDefaultValue(1))])).setEvents(new Map([N.eventMapEntry(N.ITERATION,new Map([["index",m.of("index",i.INTEGER)]])),N.outputEventMapEntry(new Map([["value",m.of("value",i.INTEGER)]]))]));const wt=new I("RangeLoop").setNamespace(s.SYSTEM_LOOP).setParameters(new Map([T.ofEntry("from",m.of("from",i.INTEGER,i.LONG,i.FLOAT,i.DOUBLE).setDefaultValue(0)),T.ofEntry("to",m.of("to",i.INTEGER,i.LONG,i.FLOAT,i.DOUBLE).setDefaultValue(1)),T.ofEntry("step",m.of("step",i.INTEGER,i.LONG,i.FLOAT,i.DOUBLE).setDefaultValue(1).setNot((new m).setConstant(0)))])).setEvents(new Map([N.eventMapEntry(N.ITERATION,new Map([["index",m.of("index",i.INTEGER,i.LONG,i.FLOAT,i.DOUBLE)]])),N.outputEventMapEntry(new Map([["value",m.of("value",i.INTEGER,i.LONG,i.FLOAT,i.DOUBLE)]]))]));const dt=new I("Add").setNamespace(s.MATH).setParameters(new Map([["value",new T("value",m.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([N.outputEventMapEntry(new Map([["value",m.ofNumber("value")]]))]));const St=[()=>new Map([["value",new T("value",m.ofNumber("value"))]]),()=>new Map([["value1",new T("value1",m.ofNumber("value1"))],["value2",new T("value2",m.ofNumber("value2"))]])];class Nt extends W{constructor(e,t,r=1,...n){super(),n&&n.length||(n=[i.DOUBLE]),this.parametersNumber=r,this.mathFunction=t,this.signature=new I(e).setNamespace(s.MATH).setParameters(St[r-1]()).setEvents(new Map([N.outputEventMapEntry(new Map([["value",(new m).setType(l.of(...n)).setName("value")]]))]))}getSignature(){return this.signature}async internalExecute(e){let t,r=Ve.findPrimitiveNumberType(e.getArguments()?.get(1==this.parametersNumber?"value":"value1")).getT2();return 2==this.parametersNumber&&(t=Ve.findPrimitiveNumberType(e.getArguments()?.get("value2")).getT2()),new y([R.outputOf(new Map([["value",this.mathFunction.call(this,r,t)]]))])}}class Rt extends W{static SIGNATURE=new I("Hypotenuse").setNamespace(s.MATH).setParameters(new Map([["value",new T("value",m.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([N.outputEventMapEntry(new Map([["value",(new m).setType(l.of(i.DOUBLE)).setName("value")]]))]));constructor(){super()}getSignature(){return Rt.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get("value");return new y([R.outputOf(new Map([["value",Math.sqrt(t.reduce(((e,t)=>e+t*t),0))]]))])}}const yt=new I("Maximum").setNamespace(s.MATH).setParameters(new Map([["value",new T("value",m.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([N.outputEventMapEntry(new Map([["value",m.ofNumber("value")]]))]));const It=new I("Minimum").setNamespace(s.MATH).setParameters(new Map([["value",new T("value",m.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([N.outputEventMapEntry(new Map([["value",m.ofNumber("value")]]))]));var xt={};e(xt,"MapUtil",(()=>Mt)),e(xt,"MapEntry",(()=>vt));class Mt{static of(e,t,r,s,a,i,o,u,p,h,l,c,m,g,f,E,T,A,O,w){const d=new Map;return n(e)||n(t)||d.set(e,t),n(r)||n(s)||d.set(r,s),n(a)||n(i)||d.set(a,i),n(o)||n(u)||d.set(o,u),n(p)||n(h)||d.set(p,h),n(l)||n(c)||d.set(l,c),n(m)||n(g)||d.set(m,g),n(f)||n(E)||d.set(f,E),n(T)||n(A)||d.set(T,A),n(O)||n(w)||d.set(O,w),d}static ofArrayEntries(...e){const t=new Map;for(const[r,s]of e)t.set(r,s);return t}static entry(e,t){return new vt(e,t)}static ofEntries(...e){const t=new Map;for(const r of e)t.set(r.k,r.v);return t}static ofEntriesArray(...e){const t=new Map;for(let r=0;r<e.length;r++)t.set(e[r][0],e[r][1]);return t}constructor(){}}class vt{constructor(e,t){this.k=e,this.v=t}}class Pt extends W{static SIGNATURE=new I("Random").setNamespace(s.MATH).setEvents(new Map([N.outputEventMapEntry(Mt.of("value",m.ofDouble("value")))]));getSignature(){return Pt.SIGNATURE}async internalExecute(e){return new y([R.outputOf(new Map([["value",Math.random()]]))])}}const _t={Absolute:new Nt("Absolute",(e=>Math.abs(e)),1,i.INTEGER,i.LONG,i.FLOAT,i.DOUBLE),ACosine:new Nt("ArcCosine",(e=>Math.acos(e))),ASine:new Nt("ArcSine",(e=>Math.asin(e))),ATangent:new Nt("ArcTangent",(e=>Math.atan(e))),Ceiling:new Nt("Ceiling",(e=>Math.ceil(e))),Cosine:new Nt("Cosine",(e=>Math.cos(e))),CosineH:new Nt("HyperbolicCosine",(e=>Math.cosh(e))),CubeRoot:new Nt("CubeRoot",(e=>Math.cbrt(e))),Exponential:new Nt("Exponential",(e=>Math.exp(e))),Expm1:new Nt("ExponentialMinus1",(e=>Math.expm1(e))),Floor:new Nt("Floor",(e=>Math.floor(e))),Log:new Nt("LogNatural",(e=>Math.log(e))),Log10:new Nt("Log10",(e=>Math.log10(e))),Round:new Nt("Round",(e=>Math.round(e)),1,i.INTEGER,i.LONG),Sine:new Nt("Sine",(e=>Math.sin(e))),SineH:new Nt("HyperbolicSine",(e=>Math.sinh(e))),Tangent:new Nt("Tangent",(e=>Math.tan(e))),TangentH:new Nt("HyperbolicTangent",(e=>Math.tanh(e))),ToDegrees:new Nt("ToDegrees",(e=>e*(Math.PI/180))),ToRadians:new Nt("ToRadians",(e=>e*(180/Math.PI))),SquareRoot:new Nt("SquareRoot",(e=>Math.sqrt(e))),ArcTangent:new Nt("ArcTangent2",((e,t)=>Math.atan2(e,t)),2),Power:new Nt("Power",((e,t)=>Math.pow(e,t)),2),Add:new class extends W{getSignature(){return dt}async internalExecute(e){let t=e.getArguments()?.get("value");return new y([R.outputOf(new Map([["value",t.reduce(((e,t)=>e+t),0)]]))])}},Hypotenuse:new Rt,Maximum:new class extends W{getSignature(){return yt}async internalExecute(e){let t=e.getArguments()?.get("value");return new y([R.outputOf(new Map([["value",t.reduce(((e,t)=>!e&&0!==e||t>e?t:e))]]))])}},Minimum:new class extends W{getSignature(){return It}async internalExecute(e){let t=e.getArguments()?.get("value");return new y([R.outputOf(new Map([["value",t.reduce(((e,t)=>!e&&0!==e||t<e?t:e))]]))])}},Random:new Pt};class Lt{find(e,t){if(e==s.MATH)return _t[t]}}e({},"HybridRepository",(()=>Ct));class Ct{constructor(...e){this.repos=e}find(e,t){for(let r of this.repos){let s=r.find(e,t);if(s)return s}}}function bt(e){return[e.getSignature().getName(),e]}const Vt=new Map([[s.SYSTEM_CTX,new Map([bt(new class extends W{getSignature(){return j}async internalExecute(e){const t=e?.getArguments()?.get("name");if(e?.getContext()?.has(t))throw new w(M.format("Context already has an element for '$' ",t));let r=m.from(e?.getArguments()?.get("schema"));if(!r)throw new w("Schema is not supplied.");return e.getContext().set(t,new x(r,n(r.getDefaultValue())?void 0:r.getDefaultValue())),new y([R.outputOf(new Map)])}}),bt(new class extends W{getSignature(){return q}async internalExecute(e){const t=e?.getArguments()?.get("name");if(!e.getContext()?.has(t))throw new w(M.format("Context don't have an element for '$' ",t));return new y([R.outputOf(new Map(["value",e.getContext()?.get(t)?.getElement()]))])}}),bt(new class extends W{getSignature(){return Et}async internalExecute(e){let t=e?.getArguments()?.get("name");if(v.isNullOrBlank(t))throw new w("Empty string is not a valid name for the context element");let r=e?.getArguments()?.get("value");const s=new se(t),n=s.getTokens().peekLast();if(!n.getExpression().startsWith("Context")||n instanceof se||n instanceof te&&!n.getElement().toString().startsWith("Context"))throw new X(M.format("The context path $ is not a valid path in context",t));for(const e of s.getOperations().toArray())if(e!=re.ARRAY_OPERATOR&&e!=re.OBJECT_OPERATOR)throw new X(M.format("Expected a reference to the context location, but found an expression $",t));for(let r=0;r<s.getTokens().size();r++){let n=s.getTokens().get(r);n instanceof se&&s.getTokens().set(r,new te(t,new ft(n).evaluate(e.getValuesMap())))}return this.modifyContext(e,t,r,s)}modifyContext(e,t,r,s){const a=s.getTokens();a.removeLast();const i=s.getOperations();i.removeLast();let o=e.getContext()?.get(a.removeLast().getExpression());if(n(o))throw new w(M.format("Context doesn't have any element with name '$' ",t));if(i.isEmpty())return o.setElement(r),new y([R.outputOf(new Map)]);let u=o.getElement(),p=i.removeLast(),h=a.removeLast(),l=h instanceof te?h.getElement():h.getExpression();for(n(u)&&(u=p==re.OBJECT_OPERATOR?{}:[],o.setElement(u));!i.isEmpty();)u=p==re.OBJECT_OPERATOR?this.getDataFromObject(u,l,i.peekLast()):this.getDataFromArray(u,l,i.peekLast()),p=i.removeLast(),h=a.removeLast(),l=h instanceof te?h.getElement():h.getExpression();return p==re.OBJECT_OPERATOR?this.putDataInObject(u,l,r):this.putDataInArray(u,l,r),new y([R.outputOf(new Map)])}getDataFromArray(e,t,r){if(!Array.isArray(e))throw new w(M.format("Expected an array but found $",e));const s=parseInt(t);if(isNaN(s))throw new w(M.format("Expected an array index but found $",t));if(s<0)throw new w(M.format("Array index is out of bound - $",t));let a=e[s];return n(a)&&(a=r==re.OBJECT_OPERATOR?{}:[],e[s]=a),a}getDataFromObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new w(M.format("Expected an object but found $",e));let s=e[t];return n(s)&&(s=r==re.OBJECT_OPERATOR?{}:[],e[t]=s),s}putDataInArray(e,t,r){if(!Array.isArray(e))throw new w(M.format("Expected an array but found $",e));const s=parseInt(t);if(isNaN(s))throw new w(M.format("Expected an array index but found $",t));if(s<0)throw new w(M.format("Array index is out of bound - $",t));e[s]=r}putDataInObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new w(M.format("Expected an object but found $",e));e[t]=r}})])],[s.SYSTEM_LOOP,new Map([bt(new class extends W{getSignature(){return wt}async internalExecute(e){let t=e.getArguments()?.get("from"),r=e.getArguments()?.get("to"),s=e.getArguments()?.get("step");const n=s>0;let a=t,i=!1;return new y({next(){if(i)return;if(n&&a>=r||!n&&a<=r)return i=!0,R.outputOf(new Map([["value",a]]));const e=R.of(N.ITERATION,new Map([["index",a]]));return a+=s,e}})}}),bt(new class extends W{getSignature(){return Ot}async internalExecute(e){let t=e.getArguments()?.get("count"),r=0;return new y({next(){if(r>=t)return R.outputOf(new Map([["value",r]]));const e=R.of(N.ITERATION,new Map([["index",r]]));return++r,e}})}})])],[s.SYSTEM,new Map([bt(new At),bt(new class extends W{getSignature(){return Tt}async internalExecute(e){const t=e.getEvents(),r=e.getArguments()?.get("eventName"),s=e?.getArguments()?.get("results").map((t=>{let r=t.value;if(n(r))throw new w("Expect a value object");let s=r.value;return r.isExpression&&(s=new ft(s).evaluate(e.getValuesMap())),[t.name,s]})).reduce(((e,t)=>(e.set(t[0],t[1]),e)),new Map);return t?.has(r)||t?.set(r,[]),t?.get(r)?.push(s),new y([R.outputOf(new Map)])}})])]]);class Ut extends Ct{constructor(){super({find:(e,t)=>Vt.get(e)?.get(t)},new Lt)}}e({},"ArrayUtil",(()=>Bt));class Bt{static removeAListFrom(e,t){if(!(t&&e&&e.length&&t.length))return;const r=new Set(t);for(let t=0;t<e.length;t++)r.has(e[t])&&(e.splice(t,1),t--)}static of(...e){const t=new Array(e.length);for(let r=0;r<e.length;r++)t[r]=e[r];return t}constructor(){}}e({},"StatementExecution",(()=>kt));e({},"StatementMessage",(()=>Dt));class Dt{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 kt{messages=new Array;dependencies=new Set;constructor(e){this.statement=e}getStatement(){return this.statement}setStatement(e){return this.statement=e,this}getMessages(){return this.messages}setMessages(e){return this.messages=e,this}getDependencies(){return this.dependencies}setDependencies(e){return this.dependencies=e,this}getUniqueKey(){return this.statement.getStatementName()}addMessage(e,t){this.messages.push(new Dt(e,t))}addDependency(e){this.dependencies.add(e)}getDepenedencies(){return this.dependencies}equals(e){if(!(e instanceof kt))return!1;return e.statement.equals(this.statement)}}e({},"ContextTokenValueExtractor",(()=>Gt));class Gt extends pt{static PREFIX="Context.";constructor(e){super(),this.context=e}getValueInternal(e){let t=e.split(pt.REGEX_DOT),r=t[1],s=r.indexOf("["),n=2;return-1!=s&&(r=t[1].substring(0,s),t[1]=t[1].substring(s),n=1),this.retrieveElementFrom(e,t,n,this.context.get(r)?.getElement())}getPrefix(){return Gt.PREFIX}}e({},"OutputMapTokenValueExtractor",(()=>Ft));class Ft extends pt{static PREFIX="Steps.";constructor(e){super(),this.output=e}getValueInternal(e){let t=e.split(pt.REGEX_DOT),r=1,s=this.output.get(t[r++]);if(!s||r>=t.length)return;let n=s.get(t[r++]);if(!n||r>=t.length)return;let a=n.get(t[r++]);return this.retrieveElementFrom(e,t,r,a)}getPrefix(){return Ft.PREFIX}}e({},"ArgumentsTokenValueExtractor",(()=>$t));class $t extends pt{static PREFIX="Arguments.";constructor(e){super(),this.args=e}getValueInternal(e){let t=e.split(pt.REGEX_DOT),r=t[1],s=r.indexOf("["),n=2;return-1!=s&&(r=t[1].substring(0,s),t[1]=t[1].substring(s),n=1),this.retrieveElementFrom(e,t,n,this.args.get(r))}getPrefix(){return $t.PREFIX}}e({},"GraphVertex",(()=>Yt));e({},"ExecutionGraph",(()=>Ht));class Ht{nodeMap=new Map;constructor(e=!1){this.isSubGrph=e}getVerticesData(){return Array.from(this.nodeMap.values()).map((e=>e.getData()))}addVertex(e){if(!this.nodeMap.has(e.getUniqueKey())){let t=new Yt(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 Q(this.getVerticesWithNoIncomingEdges()),r=new Set;for(;!t.isEmpty();){if(r.has(t.getFirst().getKey()))return!0;e=t.removeFirst(),r.add(e.getKey()),e.hasOutgoingEdges()&&t.addAll(Array.from(e.getOutVertices().values()).flatMap((e=>Array.from(e))))}return!1}addVertices(e){for(const t of e)this.addVertex(t)}getNodeMap(){return this.nodeMap}isSubGraph(){return this.isSubGrph}toString(){return"Execution Graph : \n"+Array.from(this.nodeMap.values()).map((e=>e.toString())).join("\n")}}class Yt{outVertices=new Map;inVertices=new Set;constructor(e,t){this.data=t,this.graph=e}getData(){return this.data}setData(e){return this.data=e,this}getOutVertices(){return this.outVertices}setOutVertices(e){return this.outVertices=e,this}getInVertices(){return this.inVertices}setInVertices(e){return this.inVertices=e,this}getGraph(){return this.graph}setGraph(e){return this.graph=e,this}getKey(){return this.data.getUniqueKey()}addOutEdgeTo(e,t){return this.outVertices.has(e)||this.outVertices.set(e,new Set),this.outVertices.get(e).add(t),t.inVertices.add(new _(this,e)),t}addInEdgeTo(e,t){return this.inVertices.add(new _(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 Ht(!0);var r=new Q(Array.from(this.outVertices.get(e)??[]));for(r.map((e=>e.getData())).forEach((e=>t.addVertex(e)));!r.isEmpty();){var s=r.pop();Array.from(s.outVertices.values()).flatMap((e=>Array.from(e))).forEach((e=>{t.addVertex(e.getData()),r.add(e)}))}return t}toString(){var e=Array.from(this.getInVertices()).map((e=>e.getT1().getKey()+"("+e.getT2()+")")).join(", "),t=Array.from(this.outVertices.entries()).map((([e,t])=>e+": "+Array.from(t).map((e=>e.getKey())).join(","))).join("\n\t\t");return this.getKey()+":\n\tIn: "+e+"\n\tOut: \n\t\t"+t}}e({},"KIRuntime",(()=>zt));e({},"JsonExpression",(()=>Wt));class Wt{constructor(e){this.expression=e}getExpression(){return this.expression}}let jt;var qt;e({},"ParameterReferenceType",(()=>jt)),(qt=jt||(jt={})).VALUE="VALUE",qt.EXPRESSION="EXPRESSION";function Xt(){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({},"FunctionExecutionParameters",(()=>Jt));class Jt{count=0;valueExtractors=new Map;constructor(e,t,r){this.functionRepository=e,this.schemaRepository=t,this.executionId=r??Xt()}getExecutionId(){return this.executionId}getContext(){return this.context}setContext(e){this.context=e;let t=new Gt(e);return this.valueExtractors.set(t.getPrefix(),t),this}getArguments(){return this.args}setArguments(e){this.args=e;let t=new $t(e);return this.valueExtractors.set(t.getPrefix(),t),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 Ft(e);return this.valueExtractors.set(t.getPrefix(),t),this}getCount(){return this.count}setCount(e){return this.count=e,this}getValuesMap(){return this.valueExtractors}getFunctionRepository(){return this.functionRepository}setFunctionRepository(e){return this.functionRepository=e,this}getSchemaRepository(){return this.schemaRepository}setSchemaRepository(e){return this.schemaRepository=e,this}addTokenValueExtractor(...e){for(const t of e)this.valueExtractors.set(t.getPrefix(),t);return this}setValuesMap(e){for(const[t,r]of e.entries())this.valueExtractors.set(t,r);return this}}let Qt;var Kt;e({},"StatementMessageType",(()=>Qt)),(Kt=Qt||(Qt={})).ERROR="ERROR",Kt.WARNING="WARNING",Kt.MESSAGE="MESSAGE";class zt extends W{static PARAMETER_NEEDS_A_VALUE='Parameter "$" needs a value';static STEP_REGEX_PATTERN=new RegExp("Steps\\.([a-zA-Z0-9\\\\-]{1,})\\.([a-zA-Z0-9\\\\-]{1,})","g");static VERSION=1;static MAX_EXECUTION_ITERATIONS=1e7;debugMode=!1;constructor(e,t=!1){if(super(),this.debugMode=t,this.fd=e,this.fd.getVersion()>zt.VERSION)throw new w("Runtime is at a lower version "+zt.VERSION+" and trying to run code from version "+this.fd.getVersion()+".")}getSignature(){return this.fd}async getExecutionPlan(e){let t=new Ht;for(let r of Array.from(this.fd.getSteps().values()))t.addVertex(this.prepareStatementExecution(r,e.getFunctionRepository(),e.getSchemaRepository()));return new _(this.makeEdges(t),t)}async internalExecute(e){e.getContext()||e.setContext(new Map),e.getEvents()||e.setEvents(new Map),e.getSteps()||e.setSteps(new Map),this.debugMode&&(console.log(`Executing: ${this.fd.getNamespace()}.${this.fd.getName()}`),console.log("Parameters: ",e));let t=await this.getExecutionPlan(e);this.debugMode&&console.log(t.getT2()?.toString());let r=t.getT1();if(this.debugMode&&r.length&&(console.log("Unresolved Dependencies: "),console.log(r.map((e=>M.format("Steps.$.$",e.getT1(),e.getT2()))))),r.length)throw new w(M.format("Found these unresolved dependencies : $ ",r.map((e=>M.format("Steps.$.$",e.getT1(),e.getT2())))));let s=t.getT2().getVerticesData().filter((e=>e.getMessages().length)).map((e=>e.getStatement().getStatementName()+": \n"+e.getMessages().join(",")));if(s?.length)throw new w("Please fix the errors in the function definition before execution : \n"+s.join(",\n"));return await this.executeGraph(t.getT2(),e)}async executeGraph(e,t){let r=new Q;r.addAll(e.getVerticesWithNoIncomingEdges());let s=new Q;for(;!(r.isEmpty()&&s.isEmpty()||t.getEvents()?.has(N.OUTPUT));)if(await this.processBranchQue(t,r,s),await this.processExecutionQue(t,r,s),t.setCount(t.getCount()+1),t.getCount()==zt.MAX_EXECUTION_ITERATIONS)throw new w("Execution locked in an infinite loop");if(!e.isSubGraph()&&!t.getEvents()?.size)throw new w("No events raised");return new y(Array.from(t.getEvents()?.entries()??[]).flatMap((e=>e[1].map((t=>R.of(e[0],t))))))}async processExecutionQue(e,t,r){if(!t.isEmpty()){let s=t.pop();await this.allDependenciesResolvedVertex(s,e.getSteps())?await this.executeVertex(s,e,r,t,e.getFunctionRepository()):t.add(s)}}async processBranchQue(e,t,r){if(r.length){let s=r.pop();await this.allDependenciesResolvedTuples(s.getT2(),e.getSteps())?await this.executeBranch(e,t,s):r.add(s)}}async executeBranch(e,t,r){let s,n=r.getT4();do{if(await this.executeGraph(r.getT1(),e),s=r.getT3().next(),s&&(e.getSteps()?.has(n.getData().getStatement().getStatementName())||e.getSteps()?.set(n.getData().getStatement().getStatementName(),new Map),e.getSteps()?.get(n.getData().getStatement().getStatementName())?.set(s.getName(),this.resolveInternalExpressions(s.getResult(),e)),this.debugMode)){const t=n.getData().getStatement();console.log(`Step : ${t.getStatementName()} => ${t.getNamespace()}.${t.getName()}`),console.log(`Event : ${s.getName()} : `,e.getSteps().get(t.getStatementName()).get(s.getName()))}}while(s&&s.getName()!=N.OUTPUT);s?.getName()==N.OUTPUT&&n.getOutVertices().has(N.OUTPUT)&&(n?.getOutVertices()?.get(N.OUTPUT)??[]).forEach((async r=>{await this.allDependenciesResolvedVertex(r,e.getSteps())&&t.add(r)}))}async executeVertex(e,t,r,s,n){let a=e.getData().getStatement(),i=n.find(a.getNamespace(),a.getName());if(!i)throw new w(M.format("$.$ function is not found.",a.getNamespace(),a.getName()));let o=i?.getSignature().getParameters(),u=this.getArgumentsFromParametersMap(t,a,o??new Map);this.debugMode&&(console.log(`Step : ${a.getStatementName()} => ${a.getNamespace()}.${a.getName()}`),console.log("Arguments : ",u));let p=t.getContext(),h=await i.execute(new Jt(t.getFunctionRepository(),t.getSchemaRepository(),t.getExecutionId()).setValuesMap(t.getValuesMap()).setContext(p).setArguments(u).setEvents(t.getEvents()).setSteps(t.getSteps()).setStatementExecution(e.getData()).setCount(t.getCount())),l=h.next();if(!l)throw new w(M.format("Executing $ returned no events",a.getStatementName()));let c=l.getName()==N.OUTPUT;if(t.getSteps()?.has(a.getStatementName())||t.getSteps().set(a.getStatementName(),new Map),t.getSteps().get(a.getStatementName()).set(l.getName(),this.resolveInternalExpressions(l.getResult(),t)),this.debugMode&&(console.log(`Step : ${a.getStatementName()} => ${a.getNamespace()}.${a.getName()}`),console.log(`Event : ${l.getName()} : `,t.getSteps().get(a.getStatementName()).get(l.getName()))),c){let r=e.getOutVertices().get(N.OUTPUT);r&&r.forEach((async e=>{await this.allDependenciesResolvedVertex(e,t.getSteps())&&s.add(e)}))}else{let t=e.getSubGraphOfType(l.getName()),s=this.makeEdges(t);r.push(new C(t,s,h,e))}}resolveInternalExpressions(e,t){return e?Array.from(e.entries()).map((e=>new _(e[0],this.resolveInternalExpression(e[1],t)))).reduce(((e,t)=>(e.set(t.getT1(),t.getT2()),e)),new Map):e}resolveInternalExpression(e,t){if(n(e)||"object"!=typeof e)return e;if(e instanceof Wt){return new ft(e.getExpression()).evaluate(t.getValuesMap())}if(Array.isArray(e)){let r=[];for(let s of e)r.push(this.resolveInternalExpression(s,t));return r}if("object"==typeof e){let r={};for(let s of Object.entries(e))r[s[0]]=this.resolveInternalExpression(s[1],t);return r}}allDependenciesResolvedTuples(e,t){for(let r of e){if(!t.has(r.getT1()))return!1;if(!t.get(r.getT1())?.get(r.getT2()))return!1}return!0}allDependenciesResolvedVertex(e,t){return!e.getInVertices().size||0==Array.from(e.getInVertices()).filter((e=>{let r=e.getT1().getData().getStatement().getStatementName(),s=e.getT2();return!(t.has(r)&&t.get(r)?.has(s))})).length}getArgumentsFromParametersMap(e,t,r){return Array.from(t.getParameterMap().entries()).map((t=>{let s,n=Array.from(t[1]?.values()??[]);if(!n?.length)return new _(t[0],s);let a=r.get(t[0]);return a?(s=a.isVariableArgument()?n.map((t=>this.parameterReferenceEvaluation(e,t))).flatMap((e=>Array.isArray(e)?e:[e])):this.parameterReferenceEvaluation(e,n[0]),new _(t[0],s)):new _(t[0],void 0)})).filter((e=>!n(e.getT2()))).reduce(((e,t)=>(e.set(t.getT1(),t.getT2()),e)),new Map)}parameterReferenceEvaluation(e,t){let r;if(t.getType()==jt.VALUE)r=this.resolveInternalExpression(t.getValue(),e);else if(t.getType()==jt.EXPRESSION&&!v.isNullOrBlank(t.getExpression())){r=new ft(t.getExpression()??"").evaluate(e.getValuesMap())}return r}prepareStatementExecution(e,t,r){let s=new kt(e),a=t.find(e.getNamespace(),e.getName());if(!a)throw new w(M.format("$.$ was not available",e.getNamespace(),e.getName()));let i=new Map(a.getSignature().getParameters());for(let t of Array.from(e.getParameterMap().entries())){let e=i.get(t[0]);if(!e)continue;let a=Array.from(t[1]?.values()??[]);if(a.length||e.isVariableArgument()){if(e.isVariableArgument())for(let t of a)this.parameterReferenceValidation(s,e,t,r);else if(a.length){let t=a[0];this.parameterReferenceValidation(s,e,t,r)}i.delete(e.getParameterName())}else n(V.getDefaultValue(e.getSchema(),r))&&s.addMessage(Qt.ERROR,M.format(zt.PARAMETER_NEEDS_A_VALUE,e.getParameterName())),i.delete(e.getParameterName())}if(!n(s.getStatement().getDependentStatements()))for(let e of s.getStatement().getDependentStatements().entries())e[1]&&s.addDependency(e[0]);if(i.size)for(let e of Array.from(i.values()))e.isVariableArgument()||n(V.getDefaultValue(e.getSchema(),r))&&s.addMessage(Qt.ERROR,M.format(zt.PARAMETER_NEEDS_A_VALUE,e.getParameterName()));return s}parameterReferenceValidation(e,t,r,s){if(r){if(r.getType()==jt.VALUE){n(r.getValue())&&n(V.getDefaultValue(t.getSchema(),s))&&e.addMessage(Qt.ERROR,M.format(zt.PARAMETER_NEEDS_A_VALUE,t.getParameterName()));let a=new Q;for(a.push(new _(t.getSchema(),r.getValue()));!a.isEmpty();){let t=a.pop();if(t.getT2()instanceof Wt)this.addDependencies(e,t.getT2().getExpression());else{if(n(t.getT1())||n(t.getT1().getType()))continue;if(t.getT1().getType()?.contains(i.ARRAY)&&Array.isArray(t.getT2())){let e=t.getT1().getItems();if(!e)continue;if(e.isSingleType())for(let r of t.getT2())a.push(new _(e.getSingleSchema(),r));else{let r=t.getT2();for(let t=0;t<r.length;t++)a.push(new _(e.getTupleSchema()[t],r[t]))}}else if(t.getT1().getType()?.contains(i.OBJECT)&&"object"==typeof t.getT2()){let r=t.getT1();if(r.getName()===T.EXPRESSION.getName()&&r.getNamespace()===T.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])&&a.push(new _(r.getProperties().get(e[0]),e[1]))}}}}else if(r.getType()==jt.EXPRESSION)if(v.isNullOrBlank(r.getExpression()))n(V.getDefaultValue(t.getSchema(),s))&&e.addMessage(Qt.ERROR,M.format(zt.PARAMETER_NEEDS_A_VALUE,t.getParameterName()));else try{this.addDependencies(e,r.getExpression())}catch(t){e.addMessage(Qt.ERROR,M.format("Error evaluating $ : $",r.getExpression(),t))}}else n(V.getDefaultValue(t.getSchema(),s))&&e.addMessage(Qt.ERROR,M.format(zt.PARAMETER_NEEDS_A_VALUE,t.getParameterName()))}addDependencies(e,t){t&&Array.from(t.match(zt.STEP_REGEX_PATTERN)??[]).forEach((t=>e.addDependency(t)))}makeEdges(e){let t=e.getNodeMap().values(),r=[];for(let s of Array.from(t))for(let t of s.getData().getDependencies()){let n=t.indexOf(".",6),a=t.substring(6,n),i=t.indexOf(".",n+1),o=-1==i?t.substring(n+1):t.substring(n+1,i);e.getNodeMap().has(a)||r.push(new _(a,o));let u=e.getNodeMap().get(a);u&&s.addInEdgeTo(u,o)}return r}}e({},"KIRunConstants",(()=>Zt));class Zt{static NAMESPACE="namespace";static NAME="name";static ID="id";constructor(){}}e({},"Position",(()=>er));class er{static SCHEMA_NAME="Position";static SCHEMA=(new m).setNamespace(s.SYSTEM).setName(er.SCHEMA_NAME).setType(l.of(i.OBJECT)).setProperties(new Map([["left",m.ofFloat("left")],["top",m.ofFloat("top")]]));constructor(e,t){this.left=e,this.top=t}getLeft(){return this.left}setLeft(e){return this.left=e,this}getTop(){return this.top}setTop(e){return this.top=e,this}static from(e){return e?new er(e.left,e.top):new er(-1,-1)}}e({},"FunctionDefinition",(()=>ir));e({},"Statement",(()=>sr));e({},"AbstractStatement",(()=>tr));class tr{override=!1;constructor(e){e&&(this.comment=e.comment,this.description=e.description,this.position=e.position?new er(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",(()=>rr));class rr{static SCHEMA_NAME="ParameterReference";static SCHEMA=(new m).setNamespace(s.SYSTEM).setName(rr.SCHEMA_NAME).setType(l.of(i.OBJECT)).setProperties(new Map([["key",m.ofString("key")],["value",m.ofAny("value")],["expression",m.ofString("expression")],["type",m.ofString("type").setEnums(["EXPRESSION","VALUE"])]]));constructor(e){if(e instanceof rr){let t=e;this.key=t.key,this.type=t.type,this.value=n(t.value)?void 0:JSON.parse(JSON.stringify(t.value)),this.expression=t.expression}else this.type=e,this.key=Xt()}getType(){return this.type}setType(e){return this.type=e,this}getKey(){return this.key}setKey(e){return this.key=e,this}getValue(){return this.value}setValue(e){return this.value=e,this}getExpression(){return this.expression}setExpression(e){return this.expression=e,this}static ofExpression(e){const t=new rr(jt.EXPRESSION).setExpression(e);return[t.getKey(),t]}static ofValue(e){const t=new rr(jt.VALUE).setValue(e);return[t.getKey(),t]}static from(e){return new rr(e.type).setValue(e.value).setExpression(e.expression).setKey(e.key)}}class sr extends tr{static SCHEMA_NAME="Statement";static SCHEMA=(new m).setNamespace(s.SYSTEM).setName(sr.SCHEMA_NAME).setType(l.of(i.OBJECT)).setProperties(new Map([["statementName",m.ofString("statementName")],["comment",m.ofString("comment")],["description",m.ofString("description")],["namespace",m.ofString("namespace")],["name",m.ofString("name")],["dependentStatements",m.ofObject("dependentstatement").setAdditionalProperties((new c).setSchemaValue(m.ofBoolean("exists")))],["parameterMap",(new m).setName("parameterMap").setAdditionalProperties((new c).setSchemaValue(m.ofObject("parameterReference").setAdditionalProperties((new c).setSchemaValue(rr.SCHEMA))))],["position",er.SCHEMA]]));constructor(e,t,r){if(super(e instanceof sr?e:void 0),e instanceof sr){let t=e;this.statementName=t.statementName,this.name=t.name,this.namespace=t.namespace,t.parameterMap&&(this.parameterMap=new Map(Array.from(t.parameterMap.entries()).map((e=>[e[0],new Map(Array.from(e[1].entries()).map((e=>[e[0],new rr(e[1])])))])))),t.dependentStatements&&(this.dependentStatements=new Map(Array.from(t.dependentStatements.entries())))}else{if(this.statementName=e,!r||!t)throw new Error("Unknown constructor");this.namespace=t,this.name=r}}getStatementName(){return this.statementName}setStatementName(e){return this.statementName=e,this}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getParameterMap(){return this.parameterMap||(this.parameterMap=new Map),this.parameterMap}setParameterMap(e){return this.parameterMap=e,this}getDependentStatements(){return this.dependentStatements??new Map}setDependentStatements(e){return this.dependentStatements=e,this}equals(e){if(!(e instanceof sr))return!1;return e.statementName==this.statementName}static ofEntry(e){return[e.statementName,e]}static from(e){return new sr(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])=>rr.from(t))).map((e=>[e.getKey(),e])))])))).setDependentStatements(new Map(Object.entries(e.dependentStatements??{}))).setPosition(er.from(e.position)).setComment(e.comment).setDescription(e.description)}}e({},"StatementGroup",(()=>nr));class nr extends tr{static SCHEMA_NAME="StatementGroup";static SCHEMA=(new m).setNamespace(s.SYSTEM).setName(nr.SCHEMA_NAME).setType(l.of(i.OBJECT)).setProperties(new Map([["statementGroupName",m.ofString("statementGroupName")],["comment",m.ofString("comment")],["description",m.ofString("description")],["position",er.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 nr(e.statementGroupName,new Map(Object.entries(e.statements||{}).map((([e,t])=>[e,"true"==(""+t)?.toLowerCase()])))).setPosition(er.from(e.position)).setComment(e.comment).setDescription(e.description)}}const ar=(new m).setNamespace(s.SYSTEM).setName("FunctionDefinition").setProperties(new Map([["name",m.ofString("name")],["namespace",m.ofString("namespace")],["parameters",m.ofArray("parameters",T.SCHEMA)],["events",m.ofObject("events").setAdditionalProperties((new c).setSchemaValue(N.SCHEMA))],["steps",m.ofObject("steps").setAdditionalProperties((new c).setSchemaValue(sr.SCHEMA))]]));ar.getProperties()?.set("parts",m.ofArray("parts",ar));class ir extends I{static SCHEMA=ar;version=1;constructor(e){super(e)}getVersion(){return this.version}setVersion(e){return this.version=e,this}getSteps(){return this.steps??new Map}setSteps(e){return this.steps=e,this}getStepGroups(){return this.stepGroups}setStepGroups(e){return this.stepGroups=e,this}getParts(){return this.parts}setParts(e){return this.parts=e,this}static from(e){return e?new ir(e.name).setSteps(new Map(Object.values(e.steps??{}).filter((e=>!!e)).map((e=>[e.statementName,sr.from(e)])))).setStepGroups(new Map(Object.values(e.stepGroups??{}).filter((e=>!!e)).map((e=>[e.statementGroupName,nr.from(e)])))).setParts(Array.from(e.parts??[]).filter((e=>!!e)).map((e=>ir.from(e)))).setVersion(e.version??1).setEvents(new Map(Object.values(e.events??{}).filter((e=>!!e)).map((e=>[e.name,N.from(e)])))).setParameters(new Map(Object.values(e.parameters??{}).filter((e=>!!e)).map((e=>[e.parameterName,T.from(e)])))):new ir("unknown")}}e({},"Argument",(()=>or));class or{argumentIndex=0;constructor(e,t,r){this.argumentIndex=e,this.name=t,this.value=r}getArgumentIndex(){return this.argumentIndex}setArgumentIndex(e){return this.argumentIndex=e,this}getName(){return this.name}setName(e){return this.name=e,this}getValue(){return this.value}setValue(e){return this.value=e,this}static of(e,t){return new or(0,e,t)}}var ur={};t(ur,Ze),t(ur,st),t(ur,at),t(ur,ot),t(ur,et);var pr={};t(pr,ue),t(pr,he),t(pr,ce),t(pr,ge),t(pr,Ee),t(pr,Ae),t(pr,we),t(pr,ae),t(pr,Se),t(pr,Re),t(pr,Ie),t(pr,Me),t(pr,Pe),t(pr,Le),t(pr,be),t(pr,Be),t(pr,ke),t(pr,Fe),t(pr,He),t(pr,qe),t(pr,We),t(pr,Je),t(pr,Ke),t(pr,ne);export{O as KIRunSchemaRepository,Ut as KIRunFunctionRepository,Ve as PrimitiveUtil,Mt as MapUtil,vt as MapEntry,n as isNullValue,Q as LinkedList,z as StringBuilder,M as StringFormatter,v as StringUtil,_ as Tuple2,L as Tuple3,C as Tuple4,Bt as ArrayUtil,J as deepEqual,kt as StatementExecution,Dt as StatementMessage,x as ContextElement,Gt as ContextTokenValueExtractor,Ft as OutputMapTokenValueExtractor,$t as ArgumentsTokenValueExtractor,Yt as GraphVertex,Ht as ExecutionGraph,zt as KIRuntime,Qt as StatementMessageType,Jt as FunctionExecutionParameters,se as Expression,pt as TokenValueExtractor,lt as LiteralTokenValueExtractor,ft as ExpressionEvaluator,re as Operation,ee as ExpressionToken,Z as ExpressionEvaluationException,te as ExpressionTokenValue,W as AbstractFunction,s as Namespaces,Wt as JsonExpression,c as AdditionalPropertiesType,m as Schema,G as NumberValidator,D as BooleanValidator,k as NullValidator,B as ArrayValidator,U as AnyOfAllOfOneOfValidator,$ as StringValidator,F as ObjectValidator,Y as SchemaValidator,b as SchemaValidationException,g as SchemaReferenceException,H as TypeValidator,a as ArraySchemaType,h as SingleType,l as TypeUtil,p as MultipleType,u as Type,i as SchemaType,V as SchemaUtil,d as StringFormat,Ct as HybridRepository,Zt as KIRunConstants,T as Parameter,y as FunctionOutput,er as Position,ir as FunctionDefinition,jt as ParameterReferenceType,R as EventResult,tr as AbstractStatement,sr as Statement,nr as StatementGroup,I as FunctionSignature,N as Event,f as ParameterType,or as Argument,rr as ParameterReference,X as ExecutionException,w as KIRuntimeException,rt as ArithmeticUnaryMinusOperator,nt as ArithmeticUnaryPlusOperator,it as BitwiseComplementOperator,ut as LogicalNotOperator,tt as UnaryOperator,pe as ArithmeticAdditionOperator,le as ArithmeticDivisionOperator,me as ArithmeticIntegerDivisionOperator,fe as ArithmeticModulusOperator,Te as ArithmeticMultiplicationOperator,Oe as ArithmeticSubtractionOperator,de as ArrayOperator,ie as BinaryOperator,Ne as BitwiseAndOperator,ye as BitwiseLeftShiftOperator,xe as BitwiseOrOperator,ve as BitwiseRightShiftOperator,_e as BitwiseUnsignedRightShiftOperator,Ce as BitwiseXorOperator,Ue as LogicalAndOperator,De as LogicalEqualOperator,Ge as LogicalGreaterThanEqualOperator,$e as LogicalGreaterThanOperator,Ye as LogicalLessThanEqualOperator,Xe as LogicalNotEqualOperator,je as LogicalLessThanOperator,Qe as LogicalOrOperator,ze as ObjectOperator,oe as LogicalNullishCoalescingOperator,mt 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||e.hasOwnProperty(r)||Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[r]}})})),e}e({},"KIRunSchemaRepository",(()=>N));var r={};e(r,"AdditionalPropertiesType",(()=>T)),e(r,"Schema",(()=>g));e({},"Namespaces",(()=>n));class n{static SYSTEM="System";static SYSTEM_CTX="System.Context";static SYSTEM_LOOP="System.Loop";static SYSTEM_ARRAY="System.Array";static MATH="System.Math";static STRING="System.String";constructor(){}}e({},"ArraySchemaType",(()=>a));function s(e){return null==e}e({},"isNullValue",(()=>s));class a{constructor(e){e&&(this.singleSchema=e.singleSchema?new g(e.singleSchema):void 0,this.tupleSchema=e.tupleSchema?e.tupleSchema.map((e=>new g(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!s(this.singleSchema)}static of(...e){return 1==e.length?(new a).setSingleSchema(e[0]):(new a).setTupleSchema(e)}static from(e){if(!e)return;Array.isArray(e)&&a.of(...g.fromListOfSchemas(e));let t=g.from(e);return t?a.of(t):void 0}}let i;var o;e({},"SchemaType",(()=>i)),(o=i||(i={})).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",(()=>R));e({},"MultipleType",(()=>u));e({},"Type",(()=>E));class E{}class u extends E{constructor(e){super(),this.type=e instanceof u?new Set(Array.from(e.type)):new Set(Array.from(e))}getType(){return this.type}setType(e){return this.type=e,this}getAllowedSchemaTypes(){return this.type}contains(e){return this.type?.has(e)}}e({},"SingleType",(()=>A));class A extends E{constructor(e){super(),this.type=e instanceof A?e.type:e}getType(){return this.type}getAllowedSchemaTypes(){return new Set([this.type])}contains(e){return this.type==e}}class R{static of(...e){return 1==e.length?new A(e[0]):new u(new Set(e))}static from(e){return"string"==typeof e?new A(i[e]):Array.isArray(e)?new u(new Set(e.map((e=>e)).map((e=>i[e])))):void 0}}class T{constructor(e){e&&(this.booleanValue=e.booleanValue,e.schemaValue&&(this.schemaValue=new g(e.schemaValue)))}getBooleanValue(){return this.booleanValue}getSchemaValue(){return this.schemaValue}setBooleanValue(e){return this.booleanValue=e,this}setSchemaValue(e){return this.schemaValue=e,this}static from(e){if(!e)return;const t=new T;return t.booleanValue=e.booleanValue,t.schemaValue=e.schemaValue,t}}class g{static NULL=(new g).setNamespace(n.SYSTEM).setName("Null").setType(R.of(i.NULL)).setConstant(void 0);static TYPE_SCHEMA=(new g).setType(R.of(i.STRING)).setEnums(["INTEGER","LONG","FLOAT","DOUBLE","STRING","OBJECT","ARRAY","BOOLEAN","NULL"]);static SCHEMA=(new g).setNamespace(n.SYSTEM).setName("Schema").setType(R.of(i.OBJECT)).setProperties(new Map([["namespace",g.of("namespace",i.STRING).setDefaultValue("_")],["name",g.ofString("name")],["version",g.of("version",i.INTEGER).setDefaultValue(1)],["ref",g.ofString("ref")],["type",(new g).setAnyOf([g.TYPE_SCHEMA,g.ofArray("type",g.TYPE_SCHEMA)])],["anyOf",g.ofArray("anyOf",g.ofRef("#/"))],["allOf",g.ofArray("allOf",g.ofRef("#/"))],["oneOf",g.ofArray("oneOf",g.ofRef("#/"))],["not",g.ofRef("#/")],["title",g.ofString("title")],["description",g.ofString("description")],["id",g.ofString("id")],["examples",g.ofAny("examples")],["defaultValue",g.ofAny("defaultValue")],["comment",g.ofString("comment")],["enums",g.ofArray("enums",g.ofString("enums"))],["constant",g.ofAny("constant")],["pattern",g.ofString("pattern")],["format",g.of("format",i.STRING).setEnums(["DATETIME","TIME","DATE","EMAIL","REGEX"])],["minLength",g.ofInteger("minLength")],["maxLength",g.ofInteger("maxLength")],["multipleOf",g.ofLong("multipleOf")],["minimum",g.ofNumber("minimum")],["maximum",g.ofNumber("maximum")],["exclusiveMinimum",g.ofNumber("exclusiveMinimum")],["exclusiveMaximum",g.ofNumber("exclusiveMaximum")],["properties",g.of("properties",i.OBJECT).setAdditionalProperties((new T).setSchemaValue(g.ofRef("#/")))],["additionalProperties",(new g).setName("additionalProperty").setNamespace(n.SYSTEM).setAnyOf([g.ofBoolean("additionalProperty"),g.ofObject("additionalProperty").setRef("#/")]).setDefaultValue(!0)],["required",g.ofArray("required",g.ofString("required")).setDefaultValue([])],["propertyNames",g.ofRef("#/")],["minProperties",g.ofInteger("minProperties")],["maxProperties",g.ofInteger("maxProperties")],["patternProperties",g.of("patternProperties",i.OBJECT).setAdditionalProperties((new T).setSchemaValue(g.ofRef("#/")))],["items",(new g).setName("items").setAnyOf([g.ofRef("#/").setName("item"),g.ofArray("tuple",g.ofRef("#/"))])],["contains",g.ofRef("#/")],["minItems",g.ofInteger("minItems")],["maxItems",g.ofInteger("maxItems")],["uniqueItems",g.ofBoolean("uniqueItems")],["$defs",g.of("$defs",i.OBJECT).setAdditionalProperties((new T).setSchemaValue(g.ofRef("#/")))],["permission",g.ofString("permission")]])).setRequired([]);static ofString(e){return(new g).setType(R.of(i.STRING)).setName(e)}static ofInteger(e){return(new g).setType(R.of(i.INTEGER)).setName(e)}static ofFloat(e){return(new g).setType(R.of(i.FLOAT)).setName(e)}static ofLong(e){return(new g).setType(R.of(i.LONG)).setName(e)}static ofDouble(e){return(new g).setType(R.of(i.DOUBLE)).setName(e)}static ofAny(e){return(new g).setType(R.of(i.INTEGER,i.LONG,i.FLOAT,i.DOUBLE,i.STRING,i.BOOLEAN,i.ARRAY,i.NULL,i.OBJECT)).setName(e)}static ofAnyNotNull(e){return(new g).setType(R.of(i.INTEGER,i.LONG,i.FLOAT,i.DOUBLE,i.STRING,i.BOOLEAN,i.ARRAY,i.OBJECT)).setName(e)}static ofNumber(e){return(new g).setType(R.of(i.INTEGER,i.LONG,i.FLOAT,i.DOUBLE)).setName(e)}static ofBoolean(e){return(new g).setType(R.of(i.BOOLEAN)).setName(e)}static of(e,...t){return(new g).setType(R.of(...t)).setName(e)}static ofObject(e){return(new g).setType(R.of(i.OBJECT)).setName(e)}static ofRef(e){return(new g).setRef(e)}static ofArray(e,...t){return(new g).setType(R.of(i.ARRAY)).setName(e).setItems(a.of(...t))}static fromListOfSchemas(e){if(s(e)&&!Array.isArray(e))return[];let t=[];for(let r of Array.from(e)){let e=g.from(r);e&&t.push(e)}return t}static fromMapOfSchemas(e){if(s(e))return;const t=new Map;return Object.entries(e).forEach((([e,r])=>{let n=g.from(r);n&&t.set(e,n)})),t}static from(e,t=!1){if(s(e))return;let r=new g;return r.namespace=e.namespace??"_",r.name=e.name,r.version=e.version??1,r.ref=e.ref,r.type=t?new A(i.STRING):R.from(e.type),r.anyOf=g.fromListOfSchemas(e.anyOf),r.allOf=g.fromListOfSchemas(e.allOf),r.oneOf=g.fromListOfSchemas(e.oneOf),r.not=g.from(e.not),r.description=e.description,r.examples=e.examples?[...e.examples]:void 0,r.defaultValue=e.defaultValue,r.comment=e.comment,r.enums=e.enums?[...e.enums]:void 0,r.constant=e.constant,r.pattern=e.pattern,r.format=e.format,r.minLength=e.minLength,r.maxLength=e.maxLength,r.multipleOf=e.multipleOf,r.minimum=e.minimum,r.maximum=e.maximum,r.exclusiveMinimum=e.exclusiveMinimum,r.exclusiveMaximum=e.exclusiveMaximum,r.properties=g.fromMapOfSchemas(e.properties),r.additionalProperties=T.from(e.additionalProperties),r.required=e.required,r.propertyNames=g.from(e.propertyNames,!0),r.minProperties=e.minProperties,r.maxProperties=e.maxProperties,r.patternProperties=g.fromMapOfSchemas(e.patternProperties),r.items=a.from(e.items),r.contains=g.from(e.contains),r.minItems=e.minItems,r.maxItems=e.maxItems,r.uniqueItems=e.uniqueItems,r.$defs=g.fromMapOfSchemas(e.$defs),r.permission=e.permission,r}namespace="_";version=1;constructor(e){e&&(this.namespace=e.namespace,this.name=e.name,this.version=e.version,this.ref=e.ref,this.type=e.type instanceof A?new A(e.type):new u(e.type),this.anyOf=e.anyOf?.map((e=>new g(e))),this.allOf=e.allOf?.map((e=>new g(e))),this.oneOf=e.oneOf?.map((e=>new g(e))),this.not=this.not?new g(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 g(e[1])]))):void 0,this.additionalProperties=e.additionalProperties?new T(e.additionalProperties):void 0,this.required=e.required?[...e.required]:void 0,this.propertyNames=e.propertyNames?new g(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 g(e[1])]))):void 0,this.items=e.items?new a(e.items):void 0,this.contains=e.contains?new g(this.contains):void 0,this.minItems=e.minItems,this.maxItems=e.maxItems,this.uniqueItems=e.uniqueItems,this.$defs=e.$defs?new Map(Array.from(e.$defs.entries()).map((e=>[e[0],new g(e[1])]))):void 0,this.permission=e.permission)}getTitle(){return this.getFullName()}getFullName(){return this.namespace&&"_"!=this.namespace?this.namespace+"."+this.name:this.name}get$defs(){return this.$defs}set$defs(e){return this.$defs=e,this}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getVersion(){return this.version}setVersion(e){return this.version=e,this}getRef(){return this.ref}setRef(e){return this.ref=e,this}getType(){return this.type}setType(e){return this.type=e,this}getAnyOf(){return this.anyOf}setAnyOf(e){return this.anyOf=e,this}getAllOf(){return this.allOf}setAllOf(e){return this.allOf=e,this}getOneOf(){return this.oneOf}setOneOf(e){return this.oneOf=e,this}getNot(){return this.not}setNot(e){return this.not=e,this}getDescription(){return this.description}setDescription(e){return this.description=e,this}getExamples(){return this.examples}setExamples(e){return this.examples=e,this}getDefaultValue(){return this.defaultValue}setDefaultValue(e){return this.defaultValue=e,this}getComment(){return this.comment}setComment(e){return this.comment=e,this}getEnums(){return this.enums}setEnums(e){return this.enums=e,this}getConstant(){return this.constant}setConstant(e){return this.constant=e,this}getPattern(){return this.pattern}setPattern(e){return this.pattern=e,this}getFormat(){return this.format}setFormat(e){return this.format=e,this}getMinLength(){return this.minLength}setMinLength(e){return this.minLength=e,this}getMaxLength(){return this.maxLength}setMaxLength(e){return this.maxLength=e,this}getMultipleOf(){return this.multipleOf}setMultipleOf(e){return this.multipleOf=e,this}getMinimum(){return this.minimum}setMinimum(e){return this.minimum=e,this}getMaximum(){return this.maximum}setMaximum(e){return this.maximum=e,this}getExclusiveMinimum(){return this.exclusiveMinimum}setExclusiveMinimum(e){return this.exclusiveMinimum=e,this}getExclusiveMaximum(){return this.exclusiveMaximum}setExclusiveMaximum(e){return this.exclusiveMaximum=e,this}getProperties(){return this.properties}setProperties(e){return this.properties=e,this}getAdditionalProperties(){return this.additionalProperties}setAdditionalProperties(e){return this.additionalProperties=e,this}getRequired(){return this.required}setRequired(e){return this.required=e,this}getPropertyNames(){return this.propertyNames}setPropertyNames(e){return this.propertyNames=e,this.propertyNames.type=new A(i.STRING),this}getMinProperties(){return this.minProperties}setMinProperties(e){return this.minProperties=e,this}getMaxProperties(){return this.maxProperties}setMaxProperties(e){return this.maxProperties=e,this}getPatternProperties(){return this.patternProperties}setPatternProperties(e){return this.patternProperties=e,this}getItems(){return this.items}setItems(e){return this.items=e,this}getContains(){return this.contains}setContains(e){return this.contains=e,this}getMinItems(){return this.minItems}setMinItems(e){return this.minItems=e,this}getMaxItems(){return this.maxItems}setMaxItems(e){return this.maxItems=e,this}getUniqueItems(){return this.uniqueItems}setUniqueItems(e){return this.uniqueItems=e,this}getPermission(){return this.permission}setPermission(e){return this.permission=e,this}}e({},"Parameter",(()=>h));e({},"SchemaReferenceException",(()=>l));class l 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}}let p;var c;e({},"ParameterType",(()=>p)),(c=p||(p={})).CONSTANT="CONSTANT",c.EXPRESSION="EXPRESSION";class h{static SCHEMA_NAME="Parameter";static SCHEMA=(new g).setNamespace(n.SYSTEM).setName(h.SCHEMA_NAME).setProperties(new Map([["schema",g.SCHEMA],["parameterName",g.ofString("parameterName")],["variableArgument",g.of("variableArgument",i.BOOLEAN).setDefaultValue(!1)],["type",g.ofString("type").setEnums(["EXPRESSION","CONSTANT"])]]));static EXPRESSION=(new g).setNamespace(n.SYSTEM).setName("ParameterExpression").setType(R.of(i.OBJECT)).setProperties(new Map([["isExpression",g.ofBoolean("isExpression").setDefaultValue(!0)],["value",g.ofAny("value")]]));variableArgument=!1;type=p.EXPRESSION;constructor(e,t){if(e instanceof h)this.schema=new g(e.schema),this.parameterName=e.parameterName,this.variableArgument=e.variableArgument,this.type=e.type;else{if(!t)throw new Error("Unknown constructor signature");this.schema=t,this.parameterName=e}}getSchema(){return this.schema}setSchema(e){return this.schema=e,this}getParameterName(){return this.parameterName}setParameterName(e){return this.parameterName=e,this}isVariableArgument(){return this.variableArgument}setVariableArgument(e){return this.variableArgument=e,this}getType(){return this.type}setType(e){return this.type=e,this}static ofEntry(e,t,r=!1,n=p.EXPRESSION){return[e,new h(e,t).setType(n).setVariableArgument(r)]}static of(e,t,r=!1,n=p.EXPRESSION){return new h(e,t).setType(n).setVariableArgument(r)}static from(e){const t=g.from(e.schema);if(!t)throw new l("","Parameter requires Schema");return new h(e.parameterName,t).setVariableArgument(!!e.variableArguments).setType(e.type??p.EXPRESSION)}}const m=new Map([["any",g.ofAny("any").setNamespace(n.SYSTEM)],["boolean",g.ofBoolean("boolean").setNamespace(n.SYSTEM)],["double",g.ofDouble("double").setNamespace(n.SYSTEM)],["float",g.ofFloat("float").setNamespace(n.SYSTEM)],["integer",g.ofInteger("integer").setNamespace(n.SYSTEM)],["long",g.ofLong("long").setNamespace(n.SYSTEM)],["number",g.ofNumber("number").setNamespace(n.SYSTEM)],["string",g.ofString("string").setNamespace(n.SYSTEM)],[h.EXPRESSION.getName(),h.EXPRESSION]]);class N{find(e,t){if(n.SYSTEM==e)return m.get(t)}}function f(e){return[e.getSignature().getName(),e]}e({},"KIRunFunctionRepository",(()=>wr));var _={};e(_,"MapUtil",(()=>S)),e(_,"MapEntry",(()=>M));class S{static of(e,t,r,n,a,i,o,E,u,A,R,T,g,l,p,c,h,m,N,f){const _=new Map;return s(e)||s(t)||_.set(e,t),s(r)||s(n)||_.set(r,n),s(a)||s(i)||_.set(a,i),s(o)||s(E)||_.set(o,E),s(u)||s(A)||_.set(u,A),s(R)||s(T)||_.set(R,T),s(g)||s(l)||_.set(g,l),s(p)||s(c)||_.set(p,c),s(h)||s(m)||_.set(h,m),s(N)||s(f)||_.set(N,f),_}static ofArrayEntries(...e){const t=new Map;for(const[r,n]of e)t.set(r,n);return t}static entry(e,t){return new M(e,t)}static ofEntries(...e){const t=new Map;for(const r of e)t.set(r.k,r.v);return t}static ofEntriesArray(...e){const t=new Map;for(let r=0;r<e.length;r++)t.set(e[r][0],e[r][1]);return t}constructor(){}}class M{constructor(e,t){this.k=e,this.v=t}}e({},"EventResult",(()=>w));e({},"Event",(()=>O));class O{static OUTPUT="output";static ERROR="error";static ITERATION="iteration";static TRUE="true";static FALSE="false";static SCHEMA_NAME="Event";static SCHEMA=(new g).setNamespace(n.SYSTEM).setName(O.SCHEMA_NAME).setType(R.of(i.OBJECT)).setProperties(new Map([["name",g.ofString("name")],["parameters",g.ofObject("parameter").setAdditionalProperties((new T).setSchemaValue(g.SCHEMA))]]));constructor(e,t){if(e instanceof O)this.name=e.name,this.parameters=new Map(Array.from(e.parameters.entries()).map((e=>[e[0],new g(e[1])])));else{if(this.name=e,!t)throw new Error("Unknown constructor format");this.parameters=t}}getName(){return this.name}setName(e){return this.name=e,this}getParameters(){return this.parameters}setParameters(e){return this.parameters=e,this}static outputEventMapEntry(e){return O.eventMapEntry(O.OUTPUT,e)}static eventMapEntry(e,t){return[e,new O(e,t)]}static from(e){return new O(e.name,new Map(Object.entries(e.parameters??{}).map((e=>{const t=g.from(e[1]);if(!t)throw new l("","Event expects a schema");return[e[0],t]}))))}}class w{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 w.of(O.OUTPUT,e)}static of(e,t){return new w(e,t)}}e({},"FunctionOutput",(()=>P));e({},"KIRuntimeException",(()=>I));class I extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class P{index=0;constructor(e){if(s(e))throw new I("Function output is generating null");Array.isArray(e)&&e.length&&e[0]instanceof w?this.fo=e:(this.fo=[],this.generator=e)}next(){if(!this.generator)return this.index<this.fo.length?this.fo[this.index++]:void 0;const e=this.generator.next();return e&&this.fo.push(e),e}allResults(){return this.fo}}e({},"FunctionSignature",(()=>d));class d{static SCHEMA_NAME="FunctionSignature";static SCHEMA=(new g).setNamespace(n.SYSTEM).setName(d.SCHEMA_NAME).setProperties(new Map([["name",g.ofString("name")],["namespace",g.ofString("namespace")],["parameters",g.ofObject("parameters").setAdditionalProperties((new T).setSchemaValue(h.SCHEMA))],["events",g.ofObject("events").setAdditionalProperties((new T).setSchemaValue(O.SCHEMA))]]));namespace="_";parameters=new Map;events=new Map;constructor(e){e instanceof d?(this.name=e.name,this.namespace=e.namespace,this.parameters=new Map(Array.from(e.parameters.entries()).map((e=>[e[0],new h(e[1])]))),this.events=new Map(Array.from(e.events.entries()).map((e=>[e[0],new O(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}}e({},"AbstractFunction",(()=>q));e({},"SchemaValidator",(()=>j));e({},"StringUtil",(()=>x));e({},"StringFormatter",(()=>y));class y{static format(e,...t){if(!t||0==t.length)return e;let r="",n=0,s="",a=s,i=e.length;for(let o=0;o<i;o++)s=e.charAt(o),"$"==s&&"\\"==a?r=r.substring(0,o-1)+s:"$"==s&&n<t.length?r+=t[n++]:r+=s,a=s;return r.toString()}constructor(){}}class x{constructor(){}static nthIndex(e,t,r=0,n){if(!e)throw new I("String cannot be null");if(r<0||r>=e.length)throw new I(y.format("Cannot search from index : $",r));if(n<=0||n>e.length)throw new I(y.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",(()=>C));var L={};e(L,"Tuple2",(()=>v)),e(L,"Tuple3",(()=>U)),e(L,"Tuple4",(()=>V));class v{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 U extends v{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 V extends U{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",(()=>G));class G 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 C{static UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH="Unable to retrive schema from referenced path";static CYCLIC_REFERENCE_LIMIT_COUNTER=20;static getDefaultValue(e,t){if(e)return e.getConstant()?e.getConstant():e.getDefaultValue()?e.getDefaultValue():C.getDefaultValue(C.getSchemaFromRef(e,t,e.getRef()),t)}static getSchemaFromRef(e,t,r,n=0){if(++n==C.CYCLIC_REFERENCE_LIMIT_COUNTER)throw new G(r??"","Schema has a cyclic reference");if(!e||!r||x.isNullOrBlank(r))return;if(!r.startsWith("#")){var s=C.resolveExternalSchema(e,t,r);s&&(e=s.getT1(),r=s.getT2())}let a=r.split("/");return 1===a.length?e:C.resolveInternalSchema(e,t,r,n,a,1)}static resolveInternalSchema(e,t,r,n,s,a){let o=e;if(a!==s.length){for(;a<s.length;){if("$defs"===s[a]){if(++a>=s.length||!o.get$defs())throw new l(r,C.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);o=o.get$defs()?.get(s[a])}else{if(o&&(!o.getType()?.contains(i.OBJECT)||!o.getProperties()))throw new l(r,"Cannot retrievie schema from non Object type schemas");o=o.getProperties()?.get(s[a])}if(a++,!o)throw new l(r,C.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);if(!x.isNullOrBlank(o.getRef())&&(o=C.getSchemaFromRef(o,t,o.getRef(),n),!o))throw new l(r,C.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH)}return o}}static resolveExternalSchema(e,t,r){if(!t)return;let n=x.splitAtFirstOccurance(r??"","/");if(!n[0])return;let s=x.splitAtFirstOccurance(n[0],".");if(!s[0]||!s[1])return;let a=t.find(s[0],s[1]);if(a){if(!n[1]||""===n[1])return new v(a,r);if(r="#/"+n[1],!a)throw new l(r,C.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);return new v(a,r)}}constructor(){}}e({},"AnyOfAllOfOneOfValidator",(()=>D));class D{static validate(e,t,r,n){let s=[];return t.getOneOf()&&!t.getOneOf()?D.oneOf(e,t,r,n,s):t.getAllOf()&&!t.getAllOf()?D.allOf(e,t,r,n,s):t.getAnyOf()&&!t.getAnyOf()&&D.anyOf(e,t,r,n,s),n}static anyOf(e,t,r,n,s){let a=!1;for(let i of t.getAnyOf()??[])try{D.validate(e,i,r,n),a=!0;break}catch(e){a=!1,s.push(e)}if(!a)throw new G(j.path(e),"The value don't satisfy any of the schemas.",s)}static allOf(e,t,r,n,s){let a=0;for(let i of t.getAllOf()??[])try{D.validate(e,i,r,n),a++}catch(e){s.push(e)}if(a!==t.getAllOf()?.length)throw new G(j.path(e),"The value doesn't satisfy some of the schemas.",s)}static oneOf(e,t,r,n,s){let a=0;for(let i of t.getOneOf()??[])try{D.validate(e,i,r,n),a++}catch(e){s.push(e)}if(1!=a)throw new G(j.path(e),0==a?"The value does not satisfy any schema":"The value satisfy more than one schema",s)}constructor(){}}e({},"TypeValidator",(()=>W));e({},"ArrayValidator",(()=>b));class b{static validate(e,t,r,n){if(s(n))throw new G(j.path(e),"Expected an array but found null");if(!Array.isArray(n))throw new G(j.path(e),n.toString()+" is not an Array");let a=n;return b.checkMinMaxItems(e,t,a),b.checkItems(e,t,r,a),b.checkUniqueItems(e,t,a),b.checkContains(e,t,r,a),n}static checkContains(e,t,r,n){if(!t.getContains())return;let s=!1;for(let a=0;a<n.length;a++){let i=e?[...e]:[];try{j.validate(i,t.getContains(),r,n[a]),s=!0;break}catch(e){s=!1}}if(!s)throw new G(j.path(e),"None of the items are of type contains schema")}static checkUniqueItems(e,t,r){if(t.getUniqueItems()&&t.getUniqueItems()){if(new Set(r).size!==r.length)throw new G(j.path(e),"Items on the array are not unique")}}static checkMinMaxItems(e,t,r){if(t.getMinItems()&&t.getMinItems()>r.length)throw new G(j.path(e),"Array should have minimum of "+t.getMinItems()+" elements");if(t.getMaxItems()&&t.getMaxItems()<r.length)throw new G(j.path(e),"Array can have maximum of "+t.getMaxItems()+" elements")}static checkItems(e,t,r,n){if(!t.getItems())return;let s=t.getItems();if(s.getSingleSchema())for(let t=0;t<n.length;t++){let a=e?[...e]:[],i=j.validate(a,s.getSingleSchema(),r,n[t]);n[t]=i}if(s.getTupleSchema()){if(s.getTupleSchema().length!==n.length)throw new G(j.path(e),"Expected an array with only "+s.getTupleSchema().length+" but found "+n.length);for(let t=0;t<n.length;t++){let a=e?[...e]:[],i=j.validate(a,s.getTupleSchema()[t],r,n[t]);n[t]=i}}}constructor(){}}e({},"BooleanValidator",(()=>F));class F{static validate(e,t,r){if(s(r))throw new G(j.path(e),"Expected a boolean but found null");if("boolean"!=typeof r)throw new G(j.path(e),r.toString()+" is not a boolean");return r}constructor(){}}e({},"NullValidator",(()=>B));class B{static validate(e,t,r){if(r)throw new G(j.path(e),"Expected a null but found "+r);return r}constructor(){}}e({},"NumberValidator",(()=>Y));class Y{static validate(e,t,r,n){if(s(n))throw new G(j.path(t),"Expected a number but found null");if("number"!=typeof n)throw new G(j.path(t),n.toString()+" is not a "+e);let a=Y.extractNumber(e,t,r,n);return Y.checkRange(t,r,n,a),Y.checkMultipleOf(t,r,n,a),n}static extractNumber(e,t,r,n){let a=n;try{e!=i.LONG&&e!=i.INTEGER||(a=Math.round(a))}catch(r){throw new G(j.path(t),n+" is not a number of type "+e,r)}if(s(a)||(e==i.LONG||e==i.INTEGER)&&a!=n)throw new G(j.path(t),n.toString()+" is not a number of type "+e);return a}static checkMultipleOf(e,t,r,n){if(t.getMultipleOf()){if(n%t.getMultipleOf()!=0)throw new G(j.path(e),r.toString()+" is not multiple of "+t.getMultipleOf())}}static checkRange(e,t,r,n){if(t.getMinimum()&&Y.numberCompare(n,t.getMinimum())<0)throw new G(j.path(e),r.toString()+" should be greater than or equal to "+t.getMinimum());if(t.getMaximum()&&Y.numberCompare(n,t.getMaximum())>0)throw new G(j.path(e),r.toString()+" should be less than or equal to "+t.getMaximum());if(t.getExclusiveMinimum()&&Y.numberCompare(n,t.getExclusiveMinimum())<=0)throw new G(j.path(e),r.toString()+" should be greater than "+t.getExclusiveMinimum());if(t.getExclusiveMaximum()&&Y.numberCompare(n,t.getExclusiveMaximum())>0)throw new G(j.path(e),r.toString()+" should be less than "+t.getExclusiveMaximum())}static numberCompare(e,t){return e-t}constructor(){}}e({},"ObjectValidator",(()=>H));class H{static validate(e,t,r,n){if(s(n))throw new G(j.path(e),"Expected an object but found null");if("object"!=typeof n||Array.isArray(n))throw new G(j.path(e),n.toString()+" is not an Object");let a=n,i=new Set(Object.keys(a));H.checkMinMaxProperties(e,t,i),t.getPropertyNames()&&H.checkPropertyNameSchema(e,t,r,i),t.getRequired()&&H.checkRequired(e,t,a),t.getProperties()&&H.checkProperties(e,t,r,a,i),t.getPatternProperties()&&H.checkPatternProperties(e,t,r,a,i),t.getAdditionalProperties()&&H.checkAddtionalProperties(e,t,r,a,i)}static checkPropertyNameSchema(e,t,r,n){for(let s of Array.from(n.values()))try{j.validate(e,t.getPropertyNames(),r,s)}catch(t){throw new G(j.path(e),"Property name '"+s+"' does not fit the property schema")}}static checkRequired(e,t,r){for(const n of t.getRequired()??[])if(s(r[n]))throw new G(j.path(e),n+" is mandatory")}static checkAddtionalProperties(e,t,r,n,s){let a=t.getAdditionalProperties();if(a.getSchemaValue())for(let t of Array.from(s.values())){let s=e?[...e]:[],i=j.validate(s,a.getSchemaValue(),r,n[t]);n[t]=i}else if(!1===a.getBooleanValue()&&s.size)throw new G(j.path(e),s.toString()+" are additional properties which are not allowed.")}static checkPatternProperties(e,t,r,n,s){const a=new Map;for(const e of Array.from(t.getPatternProperties().keys()))a.set(e,new RegExp(e));for(const i of Array.from(s.values())){const o=e?[...e]:[];for(const e of Array.from(a.entries()))if(e[1].test(i)){const a=j.validate(o,t.getPatternProperties().get(e[0]),r,n[i]);n[i]=a,s.delete(i);break}}}static checkProperties(e,t,r,n,a){for(const i of Array.from(t.getProperties())){let t=n[i[0]];if(s(t))continue;let o=e?[...e]:[],E=j.validate(o,i[1],r,t);n[i[0]]=E,a.delete(i[0])}}static checkMinMaxProperties(e,t,r){if(t.getMinProperties()&&r.size<t.getMinProperties())throw new G(j.path(e),"Object should have minimum of "+t.getMinProperties()+" properties");if(t.getMaxProperties()&&r.size>t.getMaxProperties())throw new G(j.path(e),"Object can have maximum of "+t.getMaxProperties()+" properties")}constructor(){}}e({},"StringValidator",(()=>X));let k;var $;e({},"StringFormat",(()=>k)),($=k||(k={})).DATETIME="DATETIME",$.TIME="TIME",$.DATE="DATE",$.EMAIL="EMAIL",$.REGEX="REGEX";class X{static TIME=/^([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?([+-][01][0-9]:[0-5][0-9])?$/;static DATE=/^[0-9]{4,4}-([0][0-9]|[1][0-2])-(0[1-9]|[1-2][1-9]|3[01])$/;static DATETIME=/^[0-9]{4,4}-([0][0-9]|[1][0-2])-(0[1-9]|[1-2][1-9]|3[01])T([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?([+-][01][0-9]:[0-5][0-9])?$/;static EMAIL=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;static validate(e,t,r){if(s(r))throw new G(j.path(e),"Expected a string but found "+r);if("string"!=typeof r)throw new G(j.path(e),r.toString()+" is not String");t.getFormat()==k.TIME?X.patternMatcher(e,t,r,X.TIME,"time pattern"):t.getFormat()==k.DATE?X.patternMatcher(e,t,r,X.DATE,"date pattern"):t.getFormat()==k.DATETIME?X.patternMatcher(e,t,r,X.DATETIME,"date time pattern"):t.getFormat()==k.EMAIL?X.patternMatcher(e,t,r,X.EMAIL,"email pattern"):t.getPattern()&&X.patternMatcher(e,t,r,new RegExp(t.getPattern()),"pattern "+t.getPattern());let n=r.length;if(t.getMinLength()&&n<t.getMinLength())throw new G(j.path(e),"Expected a minimum of "+t.getMinLength()+" characters");if(t.getMaxLength()&&n>t.getMaxLength())throw new G(j.path(e),"Expected a maximum of "+t.getMaxLength()+" characters");return r}static patternMatcher(e,t,r,n,s){if(!n.test(r))throw new G(j.path(e),r.toString()+" is not matched with the "+s)}constructor(){}}class W{static validate(e,t,r,n,s){if(t==i.STRING)X.validate(e,r,s);else if(t==i.LONG||t==i.INTEGER||t==i.DOUBLE||t==i.FLOAT)Y.validate(t,e,r,s);else if(t==i.BOOLEAN)F.validate(e,r,s);else if(t==i.OBJECT)H.validate(e,r,n,s);else if(t==i.ARRAY)b.validate(e,r,n,s);else{if(t!=i.NULL)throw new G(j.path(e),t+" is not a valid type.");B.validate(e,r,s)}return s}constructor(){}}class j{static path(e){return e?e.map((e=>e.getTitle()??"")).filter((e=>!!e)).reduce(((e,t,r)=>e+(0===r?"":".")+t),""):""}static validate(e,t,r,n){if(!t)throw new G(j.path(e),"No schema found to validate");if(e||(e=new Array),e.push(t),s(n)&&!s(t.getDefaultValue()))return JSON.parse(JSON.stringify(t.getDefaultValue()));if(t.getConstant())return j.constantValidation(e,t,n);if(t.getEnums()&&!t.getEnums()?.length)return j.enumCheck(e,t,n);if(t.getType()&&j.typeValidation(e,t,r,n),!x.isNullOrBlank(t.getRef()))return j.validate(e,C.getSchemaFromRef(e[0],r,t.getRef()),r,n);if((t.getOneOf()||t.getAllOf()||t.getAnyOf())&&D.validate(e,t,r,n),t.getNot()){let s=!1;try{j.validate(e,t.getNot(),r,n),s=!0}catch(e){s=!1}if(s)throw new G(j.path(e),"Schema validated value in not condition.")}return n}static constantValidation(e,t,r){if(!t.getConstant().equals(r))throw new G(j.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 G(j.path(e),"Value is not one of "+t.getEnums())}static typeValidation(e,t,r,n){let s=!1,a=[];for(const i of Array.from(t.getType()?.getAllowedSchemaTypes()?.values()??[]))try{W.validate(e,i,t,r,n),s=!0;break}catch(e){s=!1,a.push(e)}if(!s)throw new G(j.path(e),"Value "+JSON.stringify(n)+" is not of valid type(s)",a)}constructor(){}}class q{validateArguments(e,t,r){return Array.from(this.getSignature().getParameters().entries()).map((n=>{let s=n[1];try{return this.validateArgument(e,t,n,s)}catch(e){const t=this.getSignature();throw new I(`Error while executing the function ${t.getNamespace()}.${t.getName()}'s parameter ${s.getParameterName()} with step name '${r?.getStatement().getStatementName()??"Unknown Step"}' with error : ${e?.message}`)}})).reduce(((e,t)=>(e.set(t.getT1(),t.getT2()),e)),new Map)}validateArgument(e,t,r,n){let a,i=r[0],o=e.get(r[0]);if(s(o)&&!n.isVariableArgument())return new v(i,j.validate(void 0,n.getSchema(),t,void 0));if(!n?.isVariableArgument())return new v(i,j.validate(void 0,n.getSchema(),t,o));Array.isArray(o)?a=o:(a=[],s(o)?s(n.getSchema().getDefaultValue())||a.push(n.getSchema().getDefaultValue()):a.push(o));for(let e=0;e<a.length;e++)a[e]=j.validate(void 0,n.getSchema(),t,a[e]);return new v(i,a)}async execute(e){e.setArguments(this.validateArguments(e.getArguments()??new Map,e.getSchemaRepository(),e.getStatementExecution()));try{return this.internalExecute(e)}catch(t){const r=this.getSignature();throw new I(`Error while executing the function ${r.getNamespace()}.${r.getName()} with step name '${e.getStatementExecution()?.getStatement().getStatementName()??"Unknown Step"}' with error : ${t?.message}`)}}getProbableEventSignature(e){return this.getSignature().getEvents()}}class J extends q{static EVENT_INDEX_NAME="index";static EVENT_RESULT_NAME="result";static EVENT_INDEX=new O(O.OUTPUT,S.of(J.EVENT_INDEX_NAME,g.ofInteger(J.EVENT_INDEX_NAME)));static EVENT_RESULT_INTEGER=new O(O.OUTPUT,S.of(J.EVENT_RESULT_NAME,g.ofInteger(J.EVENT_RESULT_NAME)));static EVENT_RESULT_BOOLEAN=new O(O.OUTPUT,S.of(J.EVENT_RESULT_NAME,g.ofBoolean(J.EVENT_RESULT_NAME)));static EVENT_RESULT_ARRAY=new O(O.OUTPUT,S.of(J.EVENT_RESULT_NAME,g.ofArray(J.EVENT_RESULT_NAME,g.ofAny(J.EVENT_RESULT_NAME))));static EVENT_RESULT_EMPTY=new O(O.OUTPUT,S.of());static EVENT_RESULT_ANY=new O(O.OUTPUT,S.of(this.EVENT_RESULT_NAME,g.ofAny(this.EVENT_RESULT_NAME)));static PARAMETER_INT_LENGTH=h.of("length",g.ofInteger("length").setDefaultValue(-1));static PARAMETER_ARRAY_FIND=h.of("find",g.ofArray("eachFind",g.ofAny("eachFind")));static PARAMETER_INT_SOURCE_FROM=h.of("srcFrom",g.ofInteger("srcFrom").setDefaultValue(0).setMinimum(0));static PARAMETER_INT_SECOND_SOURCE_FROM=h.of("secondSrcFrom",g.ofInteger("secondSrcFrom").setDefaultValue(0));static PARAMETER_INT_FIND_FROM=h.of("findFrom",g.ofInteger("findFrom").setDefaultValue(0));static PARAMETER_INT_OFFSET=h.of("offset",g.ofInteger("offset").setDefaultValue(0));static PARAMETER_ROTATE_LENGTH=h.of("rotateLength",g.ofInteger("rotateLength").setDefaultValue(1).setMinimum(1));static PARAMETER_BOOLEAN_ASCENDING=h.of("ascending",g.ofBoolean("ascending").setDefaultValue(!1));static PARAMETER_FIND_PRIMITIVE=h.of("findPrimitive",g.of("findPrimitive",i.STRING,i.DOUBLE,i.FLOAT,i.INTEGER,i.LONG));static PARAMETER_ARRAY_SOURCE=h.of("source",g.ofArray("eachSource",g.ofAny("eachSource")));static PARAMETER_ARRAY_SECOND_SOURCE=h.of("secondSource",g.ofArray("eachSecondSource",g.ofAny("eachSecondSource")));static PARAMETER_ARRAY_SOURCE_PRIMITIVE=h.of("source",g.ofArray("eachSource",(new g).setName("eachSource").setType(R.of(i.STRING,i.NULL,i.INTEGER,i.FLOAT,i.DOUBLE,i.LONG))));static PARAMETER_BOOLEAN_DEEP_COPY=h.of("deepCopy",g.ofBoolean("deepCopy").setDefaultValue(!0));static PARAMETER_ANY=h.of("element",g.ofAny("element"));static PARAMETER_ANY_NOT_NULL=h.of("elementObject",g.ofAnyNotNull("elementObject"));static PARAMETER_ANY_VAR_ARGS=h.of("element",g.ofAny("element")).setVariableArgument(!0);static PARAMETER_ARRAY_RESULT=h.of(J.EVENT_RESULT_NAME,g.ofArray("eachResult",g.ofAny("eachResult")));constructor(e,t,r){super();const s=new Map;for(const e of t)s.set(e.getParameterName(),e);this.signature=new d(e).setNamespace(n.SYSTEM_ARRAY).setParameters(s).setEvents(S.of(r.getName(),r))}getSignature(){return this.signature}}class z extends J{constructor(){super("Add",[J.PARAMETER_ARRAY_SOURCE,J.PARAMETER_ARRAY_SECOND_SOURCE],J.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(J.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(J.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName());return t.splice(t.length,0,...r),new P([w.outputOf(new Map([]))])}}class Q extends J{constructor(){super("AddFirst",[J.PARAMETER_ARRAY_SOURCE,J.PARAMETER_ANY_NOT_NULL],J.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(J.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(J.PARAMETER_ANY_NOT_NULL.getParameterName());if(0==t.length)return t.push(r),new P([w.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 P([w.outputOf(new Map([]))])}}e({},"PrimitiveUtil",(()=>Z));e({},"ExecutionException",(()=>K));class K extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class Z{static findPrimitiveNullAsBoolean(e){if(s(e))return new v(i.BOOLEAN,!1);let t=typeof e;if("object"===t)throw new K(y.format("$ is not a primitive type",e));let r=e;return"boolean"===t?new v(i.BOOLEAN,r):"string"===t?new v(i.STRING,r):Z.findPrimitiveNumberType(r)}static findPrimitive(e){if(s(e))return new v(i.NULL,void 0);let t=typeof e;if("object"===t)throw new K(y.format("$ is not a primitive type",e));let r=e;return"boolean"===t?new v(i.BOOLEAN,r):"string"===t?new v(i.STRING,r):Z.findPrimitiveNumberType(r)}static findPrimitiveNumberType(e){if(s(e)||Array.isArray(e)||"object"==typeof e)throw new K(y.format("Unable to convert $ to a number.",e));let t=e;try{let e=t;return Number.isInteger(e)?new v(i.LONG,e):new v(i.DOUBLE,e)}catch(e){throw new K(y.format("Unable to convert $ to a number.",t),e)}}static compare(e,t){if(e==t)return 0;if(s(e)||s(t))return s(e)?-1:1;if(Array.isArray(e)||Array.isArray(t)){if(Array.isArray(e)&&Array.isArray(t)){if(e.length!=t.length)return e.length-t.length;for(let r=0;r<e.length;r++){let n=this.compare(e[r],t[r]);if(0!=n)return n}return 0}return Array.isArray(e)?-1:1}const r=typeof e,n=typeof t;return"object"===r||"object"===n?("object"===r&&"object"===n&&Object.keys(e).forEach((r=>{let n=this.compare(e[r],t[r]);if(0!=n)return n})),"object"===r?-1:1):this.comparePrimitive(e,t)}static comparePrimitive(e,t){return s(e)||s(t)?s(e)&&s(t)?0:s(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)?i.LONG:i.DOUBLE}static toPrimitiveType(e){return e}constructor(){}}class ee extends J{constructor(){super("BinarySearch",[ee.PARAMETER_ARRAY_SOURCE_PRIMITIVE,ee.PARAMETER_INT_SOURCE_FROM,ee.PARAMETER_FIND_PRIMITIVE,ee.PARAMETER_INT_LENGTH],ee.EVENT_INDEX)}async internalExecute(e){let t=e?.getArguments()?.get(ee.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ee.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(ee.PARAMETER_FIND_PRIMITIVE.getParameterName()),s=e?.getArguments()?.get(ee.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length||r<0||r>t.length)throw new I("Search source array cannot be empty");if(-1==s&&(s=t.length-r),s=r+s,s>t.length)throw new I("End point for array cannot be more than the size of the source array");let a=-1;for(;r<=s;){let e=Math.floor((r+s)/2);if(0==Z.compare(t[e],n)){a=e;break}Z.compare(t[e],n)>0?s=e-1:r=e+1}return new P([w.outputOf(new Map([[ee.EVENT_INDEX.getName(),a]]))])}}e({},"ArrayUtil",(()=>te));class te{static removeAListFrom(e,t){if(!(t&&e&&e.length&&t.length))return;const r=new Set(t);for(let t=0;t<e.length;t++)r.has(e[t])&&(e.splice(t,1),t--)}static of(...e){const t=new Array(e.length);for(let r=0;r<e.length;r++)t[r]=e[r];return t}constructor(){}}class re extends J{constructor(){super("Compare",te.of(re.PARAMETER_ARRAY_SOURCE,re.PARAMETER_INT_SOURCE_FROM,re.PARAMETER_ARRAY_FIND,re.PARAMETER_INT_FIND_FROM,re.PARAMETER_INT_LENGTH),re.EVENT_RESULT_INTEGER)}async internalExecute(e){var t=e?.getArguments()?.get(re.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(re.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(re.PARAMETER_ARRAY_FIND.getParameterName()),s=e?.getArguments()?.get(re.PARAMETER_INT_FIND_FROM.getParameterName()),a=e?.getArguments()?.get(re.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new I("Compare source array cannot be empty");if(0==n.length)throw new I("Compare find array cannot be empty");if(-1==a&&(a=t.length-r),r+a>t.length)throw new I(y.format("Source array size $ is less than comparing size $",t.length,r+a));if(s+a>n.length)throw new I(y.format("Find array size $ is less than comparing size $",n.length,s+a));return new P(te.of(w.outputOf(S.of(re.EVENT_RESULT_NAME,this.compare(t,r,r+a,n,s,s+a)))))}compare(e,t,r,n,a,i){if(r<t){let e=t;t=r,r=e}if(i<a){let e=a;a=i,i=e}if(r-t!=i-a)throw new I(y.format("Cannot compare uneven arrays from $ to $ in source array with $ to $ in find array",r,t,i,a));for(let i=t,o=a;i<r;i++,o++){let t=1;if(s(e[i])||s(n[o])){let r=s(e[i]);r==s(n[o])?t=0:r&&(t=-1)}else{let r=typeof e[i],s=typeof n[o];if("object"===r||"object"===s)t=1;else if("string"===r||"string"===s){let r=""+e[i],s=""+n[o];r===s?t=0:r<s&&(t=-1)}else"boolean"===r||"boolean"===s?t=r==s?0:1:"number"===r&&"number"===s&&(t=e[i]-n[o])}if(0!=t)return t}return 0}}class ne extends J{constructor(){super("Copy",[ne.PARAMETER_ARRAY_SOURCE,ne.PARAMETER_INT_SOURCE_FROM,ne.PARAMETER_INT_LENGTH,ne.PARAMETER_BOOLEAN_DEEP_COPY],ne.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(ne.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ne.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(ne.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),r+n>t.length)throw new I(y.format("Array has no elements from $ to $ as the array size is $",r,r+n,t.length));var a=e?.getArguments()?.get(ne.PARAMETER_BOOLEAN_DEEP_COPY.getParameterName());const i=new Array(n);for(let e=r;e<r+n;e++)s(t[e])||(i[e-r]=a?JSON.parse(JSON.stringify(t[e])):t[e]);return new P([w.outputOf(S.of(ne.EVENT_RESULT_NAME,i))])}}class se extends J{constructor(){super("Delete",[J.PARAMETER_ARRAY_SOURCE,J.PARAMETER_ANY_VAR_ARGS],J.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(se.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(se.PARAMETER_ANY_VAR_ARGS.getParameterName());if(null==r)throw new I("The deletable var args are empty. So cannot be proceeded further.");if(0==t.length||0==r.length)throw new I("Expected a source or deletable for an array but not found any");let n=new Set,s=[];for(let e=t.length-1;e>=0;e--)for(let s=0;s<r.length;s++)n.has(e)||0!=Z.compare(t[e],r[s])||n.add(t[e]);return s=t.filter((e=>!n.has(e))),t.splice(0,t.length,...s),new P([w.outputOf(new Map([]))])}}class ae extends J{constructor(){super("DeleteFirst",[ae.PARAMETER_ARRAY_SOURCE],ae.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(ae.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new I("Given source array is empty");return t.shift(),new P([w.outputOf(new Map([]))])}}class ie extends J{constructor(){super("DeleteFrom",[ie.PARAMETER_ARRAY_SOURCE,ie.PARAMETER_INT_SOURCE_FROM,ie.PARAMETER_INT_LENGTH],ie.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(ie.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ie.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(ie.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new I("There are no elements to be deleted");if(r>=t.length||r<0)throw new I("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 I("Requested length to be deleted is more than the size of array ");return t.splice(r,n),new P([w.outputOf(new Map([]))])}}class oe extends J{constructor(){super("DeleteLast",[oe.PARAMETER_ARRAY_SOURCE],oe.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(oe.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new I("Given source array is empty");return t.pop(),new P([w.outputOf(new Map([]))])}}class Ee extends J{constructor(){super("Disjoint",[Ee.PARAMETER_ARRAY_SOURCE,Ee.PARAMETER_INT_SOURCE_FROM,Ee.PARAMETER_ARRAY_SECOND_SOURCE,Ee.PARAMETER_INT_SECOND_SOURCE_FROM,Ee.PARAMETER_INT_LENGTH],Ee.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(Ee.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Ee.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(Ee.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(Ee.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(Ee.PARAMETER_INT_LENGTH.getParameterName());if(-1==a&&(a=t.length<=n.length?t.length-r:n.length-s),a>t.length||a>n.length||r+a>t.length||s+a>n.length)throw new I("The length which was being requested is more than than the size either source array or second source array");let i=new Set,o=new Set;for(let e=0;e<a;e++)i.add(t[e+r]);for(let e=0;e<a;e++)o.add(n[e+s]);let E=new Set;i.forEach((e=>{o.has(e)?o.delete(e):E.add(e)})),o.forEach((e=>{i.has(e)||E.add(e)}));let u=[];return E.forEach((e=>u.push(e))),new P([w.outputOf(new Map([[Ee.EVENT_RESULT_ARRAY.getName(),u]]))])}}class ue extends J{constructor(){super("Equals",[ue.PARAMETER_ARRAY_SOURCE,ue.PARAMETER_INT_SOURCE_FROM,ue.PARAMETER_ARRAY_FIND,ue.PARAMETER_INT_FIND_FROM,ue.PARAMETER_INT_LENGTH],ue.EVENT_RESULT_BOOLEAN)}async internalExecute(e){let t=new re,r=(await t.execute(e)).allResults()[0].getResult().get(ue.EVENT_RESULT_NAME);return new P([w.outputOf(S.of(ue.EVENT_RESULT_NAME,0==r))])}}class Ae extends J{constructor(){super("Fill",[Ae.PARAMETER_ARRAY_SOURCE,Ae.PARAMETER_INT_SOURCE_FROM,Ae.PARAMETER_INT_LENGTH,Ae.PARAMETER_ANY],Ae.EVENT_RESULT_EMPTY)}async internalExecute(e){var t=e?.getArguments()?.get(Ae.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Ae.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(Ae.PARAMETER_INT_LENGTH.getParameterName()),a=e?.getArguments()?.get(Ae.PARAMETER_ANY.getParameterName());if(r<0)throw new I(y.format("Arrays out of bound trying to access $ index",r));-1==n&&(n=t.length-r);let i=r+n-t.length;if(i>0)for(let e=0;e<i;e++)t.push();for(let e=r;e<r+n;e++)t[e]=s(a)?a:JSON.parse(JSON.stringify(a));return new P([w.outputOf(S.of())])}}class Re extends J{constructor(){super("Frequency",[Re.PARAMETER_ARRAY_SOURCE,Re.PARAMETER_ANY,Re.PARAMETER_INT_SOURCE_FROM,Re.PARAMETER_INT_LENGTH],Re.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(Re.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Re.PARAMETER_ANY.getParameterName()),n=e?.getArguments()?.get(Re.PARAMETER_INT_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(Re.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)return new P([w.outputOf(new Map([[Re.EVENT_RESULT_INTEGER.getName(),0]]))]);if(n>t.length)throw new I("Given start point is more than the size of source");if(s(r))throw new I("Given find was null. Hence cannot be found in the array");let i=n+a;if(-1==a&&(i=t.length-n),i>t.length)throw new I("Given length is more than the size of source");let o=0;for(let e=n;e<i&&e<t.length;e++)0==Z.compare(t[e],r)&&o++;return new P([w.outputOf(new Map([[Re.EVENT_RESULT_INTEGER.getName(),o]]))])}}class Te extends J{constructor(){super("IndexOf",[Te.PARAMETER_ARRAY_SOURCE,Te.PARAMETER_ANY_NOT_NULL,Te.PARAMETER_INT_FIND_FROM],Te.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(Te.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(Te.PARAMETER_ANY_NOT_NULL.getParameterName());let n=e?.getArguments()?.get(Te.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new P([w.outputOf(new Map([[Te.EVENT_RESULT_INTEGER.getName(),-1]]))]);if(n<0||n>t.length)throw new I("The size of the search index of the array is greater than the size of the array");let s=-1;for(let e=n;e<t.length;e++)if(0==Z.compare(t[e],r)){s=e;break}return new P([w.outputOf(new Map([[Te.EVENT_RESULT_INTEGER.getName(),s]]))])}}class ge extends J{constructor(){super("IndexOfArray",[ge.PARAMETER_ARRAY_SOURCE,ge.PARAMETER_ARRAY_SECOND_SOURCE,ge.PARAMETER_INT_FIND_FROM],ge.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(ge.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ge.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(ge.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length||0==r.length)return new P([w.outputOf(new Map([[ge.EVENT_RESULT_INTEGER.getName(),-1]]))]);if(n<0||n>t.length||t.length<r.length)throw new I("Given from second source is more than the size of the source array");let s=r.length,a=-1;for(let e=n;e<t.length;e++){let n=0;if(0==Z.compare(t[e],r[n])){for(;n<s&&0==Z.compare(t[e+n],r[n]);)n++;if(n==s){a=e;break}}}return new P([w.outputOf(new Map([[ge.EVENT_RESULT_INTEGER.getName(),a]]))])}}class le extends J{constructor(){super("LastIndexOf",[le.PARAMETER_ARRAY_SOURCE,le.PARAMETER_ANY_NOT_NULL,le.PARAMETER_INT_FIND_FROM],le.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(le.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(le.PARAMETER_ANY_NOT_NULL.getParameterName());let n=e?.getArguments()?.get(le.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new P([w.outputOf(new Map([[le.EVENT_RESULT_INTEGER.getName(),-1]]))]);if(n<0||n>t.length)throw new I("The value of length shouldn't the exceed the size of the array or shouldn't be in terms");let s=-1;for(let e=t.length-1;e>=n;e--)if(0==Z.compare(t[e],r)){s=e;break}return new P([w.outputOf(new Map([[le.EVENT_RESULT_INTEGER.getName(),s]]))])}}class pe extends J{constructor(){super("LastIndexOfArray",[pe.PARAMETER_ARRAY_SOURCE,pe.PARAMETER_ARRAY_SECOND_SOURCE,pe.PARAMETER_INT_FIND_FROM],pe.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(pe.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(pe.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(pe.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new P([w.outputOf(new Map([[pe.EVENT_RESULT_ARRAY.getName(),-1]]))]);if(n<0||n>t.length||r.length>t.length)throw new I("Given from index is more than the size of the source array");let s=r.length,a=-1;for(let e=n;e<t.length;e++){let n=0;if(0==Z.compare(t[e],r[n])){for(;n<s&&0==Z.compare(t[e+n],r[n]);)n++;n==s&&(a=e)}}return new P([w.outputOf(new Map([[pe.EVENT_RESULT_INTEGER.getName(),a]]))])}}class ce extends J{constructor(){super("Max",[ce.PARAMETER_ARRAY_SOURCE_PRIMITIVE],ce.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(ce.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==t.length)throw new I("Search source array cannot be empty");let r=t[0];for(let e=1;e<t.length;e++){let n=t[e];Z.comparePrimitive(r,n)>=0||(r=n)}return new P([w.outputOf(new Map([[ce.EVENT_RESULT_ANY.getName(),r]]))])}}class he extends J{constructor(){super("Min",[he.PARAMETER_ARRAY_SOURCE_PRIMITIVE],he.EVENT_RESULT_ANY)}async internalExecute(e){let t,r=e?.getArguments()?.get(he.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==r.length)throw new I("Search source array cannot be empty");for(let e=0;e<r.length;e++)s(r[e])||(void 0===t||Z.comparePrimitive(r[e],t)<0)&&(t=r[e]);return new P([w.outputOf(new Map([[he.EVENT_RESULT_ANY.getName(),t]]))])}}class me extends J{constructor(){super("MisMatch",[me.PARAMETER_ARRAY_SOURCE,me.PARAMETER_INT_FIND_FROM,me.PARAMETER_ARRAY_SECOND_SOURCE,me.PARAMETER_INT_SECOND_SOURCE_FROM,me.PARAMETER_INT_LENGTH],me.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(me.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(me.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(me.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(me.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(me.PARAMETER_INT_LENGTH.getParameterName()),i=r<t.length&&r>0?r:0,o=s<n.length&&s>0?s:0;if(i+a>=t.length||o+a>n.length)throw new I("The size of the array for first and second which was being requested is more than size of the given array");let E=-1;for(let e=0;e<a;e++)if(t[i+e]!=n[o+e]){E=e;break}return new P([w.outputOf(new Map([[me.EVENT_RESULT_INTEGER.getName(),E]]))])}}class Ne extends J{constructor(){super("Reverse",[Ne.PARAMETER_ARRAY_SOURCE,Ne.PARAMETER_INT_SOURCE_FROM,Ne.PARAMETER_INT_LENGTH],Ne.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(Ne.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Ne.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(Ne.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),n>=t.length||n<0||r<0)throw new I("Please provide start point between the start and end indexes or provide the length which was less than the source size ");let s=r+n-1;for(;r<=s;){let e=t[r],n=t[s];t[r++]=n,t[s--]=e}return new P([w.outputOf(new Map([]))])}}class fe extends J{constructor(){super("Rotate",[fe.PARAMETER_ARRAY_SOURCE,fe.PARAMETER_ROTATE_LENGTH],fe.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(fe.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(fe.PARAMETER_ROTATE_LENGTH.getParameterName());if(0==t.length)return new P([w.outputOf(new Map([]))]);let n=t.length;return r%=n,this.rotate(t,0,r-1),this.rotate(t,r,n-1),this.rotate(t,0,n-1),new P([w.outputOf(new Map([]))])}rotate(e,t,r){for(;t<r;){let n=e[t];e[t++]=e[r],e[r--]=n}}}class _e extends J{constructor(){super("Shuffle",[_e.PARAMETER_ARRAY_SOURCE],_e.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(_e.PARAMETER_ARRAY_SOURCE.getParameterName());if(t.length<=1)return new P([w.outputOf(new Map([]))]);let r=0,n=t.length;for(let e=0;e<n;e++){let e=Math.floor(Math.random()*n)%n,s=t[r];t[r]=t[e],t[e]=s,r=e}return new P([w.outputOf(new Map([]))])}}class Se extends J{constructor(){super("Sort",[Se.PARAMETER_ARRAY_SOURCE_PRIMITIVE,Se.PARAMETER_INT_FIND_FROM,Se.PARAMETER_INT_LENGTH,Se.PARAMETER_BOOLEAN_ASCENDING],Se.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(Se.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName()),r=e?.getArguments()?.get(Se.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(Se.PARAMETER_INT_LENGTH.getParameterName()),s=e?.getArguments()?.get(Se.PARAMETER_BOOLEAN_ASCENDING.getParameterName());if(0==t.length)return new P([w.outputOf(new Map([[Se.EVENT_RESULT_EMPTY.getName(),t]]))]);if(-1==n&&(n=t.length-r),r<0||r>=t.length||r+n>t.length)throw new I("Given start point is more than the size of the array or not available at that point");let a=t.slice(r,r+n+1);return a.sort(((e,t)=>function(e,t,r){return e===t?0:null===e?1:null===t?-1:r?e<t?1:-1:e<t?-1:1}(e,t,s))),t.splice(r,n,...a),new P([w.outputOf(new Map([[Se.EVENT_RESULT_EMPTY.getName(),t]]))])}}class Me extends J{constructor(){super("SubArray",[Me.PARAMETER_ARRAY_SOURCE,Me.PARAMETER_INT_FIND_FROM,Me.PARAMETER_INT_LENGTH],Me.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(Me.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Me.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(Me.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),n<=0)return new P([w.outputOf(new Map([]))]);if(!(r>=0&&r<t.length)||r+n>t.length)throw new I("Given find from point is more than the source size array or the Requested length for the subarray was more than the source size");let s=t.slice(r,r+n);return new P([w.outputOf(new Map([[Me.EVENT_RESULT_ARRAY.getName(),s]]))])}}class Oe{static repoMap=S.ofArrayEntries(f(new z),f(new Q),f(new ee),f(new re),f(new ne),f(new se),f(new ae),f(new ie),f(new oe),f(new Ee),f(new ue),f(new Ae),f(new Re),f(new Te),f(new ge),f(new le),f(new pe),f(new ce),f(new he),f(new me),f(new Ne),f(new fe),f(new _e),f(new Se),f(new Me));find(e,t){if(e==n.SYSTEM_ARRAY)return Oe.repoMap.get(t)}}e({},"ContextElement",(()=>we));class we{static NULL=new we(g.NULL,void 0);constructor(e,t){this.schema=e,this.element=t}getSchema(){return this.schema}setSchema(e){return this.schema=e,this}getElement(){return this.element}setElement(e){return this.element=e,this}}const Ie=new d("Create").setNamespace(n.SYSTEM_CTX).setParameters(new Map([h.ofEntry("name",(new g).setName("name").setType(R.of(i.STRING)).setMinLength(1).setFormat(k.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,p.CONSTANT),h.ofEntry("schema",g.SCHEMA,!1,p.CONSTANT)])).setEvents(new Map([O.outputEventMapEntry(new Map)]));const Pe=new d("Get").setNamespace(n.SYSTEM_CTX).setParameters(new Map([h.ofEntry("name",(new g).setName("name").setType(R.of(i.STRING)).setMinLength(1).setFormat(k.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,p.CONSTANT)])).setEvents(new Map([O.outputEventMapEntry(new Map([["value",g.ofAny("value")]]))]));e({},"Expression",(()=>Ce));e({},"LinkedList",(()=>ye));function de(e,t){let r=new ye;r.push(e);let n=new ye;for(n.push(t);!r.isEmpty()&&!n.isEmpty();){const e=r.pop(),t=n.pop();if(e===t)continue;const s=typeof e,a=typeof t;if("undefined"===s||"undefined"===a){if(!e&&!t)continue;return!1}if(s!==a)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!=t.length)return!1;for(let s=0;s<e.length;s++)r.push(e[s]),n.push(t[s])}else{if("object"!==s)return!1;{const s=Object.entries(e),a=Object.entries(t);if(s.length!==a.length)return!1;for(const[e,a]of s)r.push(a),n.push(t[e])}}}return!0}e({},"deepEqual",(()=>de));class ye{head=void 0;tail=void 0;length=0;constructor(e){if(e?.length){for(const t of e)if(this.head){const e=new xe(t,this.tail);this.tail.next=e,this.tail=e}else this.tail=this.head=new xe(t);this.length=e.length}}push(e){const t=new xe(e,void 0,this.head);this.head?(this.head.previous=t,this.head=t):this.tail=this.head=t,this.length++}pop(){if(!this.head)throw Error("List is empty and cannot pop further.");const e=this.head.value;if(this.length--,this.head==this.tail)return this.head=this.tail=void 0,e;const t=this.head;return this.head=t.next,t.next=void 0,t.previous=void 0,this.head.previous=void 0,e}isEmpty(){return!this.length}size(){return this.length}get(e){if(e<0||e>=this.length)throw new Error(`${e} is out of bounds [0,${this.length}]`);let t=this.head;for(;e>0;)t=this.head.next,--e;return t.value}set(e,t){if(e<0||e>=this.length)throw new I(y.format("Index $ out of bound to set the value in linked list.",e));let r=this.head;for(;e>0;)r=this.head.next,--e;return r.value=t,this}toString(){let e=this.head,t="";for(;e;)t+=e.value,e=e.next,e&&(t+=", ");return`[${t}]`}toArray(){let e=[],t=this.head;for(;t;)e.push(t.value),t=t.next;return e}peek(){if(!this.head)throw new Error("List is empty so cannot peak");return this.head.value}peekLast(){if(!this.tail)throw new Error("List is empty so cannot peak");return this.tail.value}getFirst(){if(!this.head)throw new Error("List is empty so cannot get first");return this.head.value}removeFirst(){return this.pop()}removeLast(){if(!this.tail)throw new Error("List is empty so cannot remove");--this.length;const e=this.tail.value;if(0==this.length)this.head=this.tail=void 0;else{const e=this.tail.previous;e.next=void 0,this.tail.previous=void 0,this.tail=e}return e}addAll(e){return e&&e.length?(e.forEach(this.add.bind(this)),this):this}add(e){return++this.length,this.tail||this.head?this.head===this.tail?(this.tail=new xe(e,this.head),this.head.next=this.tail):(this.tail=new xe(e,this.tail),this.tail.previous.next=this.tail):this.head=this.tail=new xe(e),this}map(e,t){let r=new ye,n=this.head,s=0;for(;n;)r.add(e(n.value,s)),n=n.next,++s;return r}indexOf(e){let t=this.head,r=0;for(;t;){if(de(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 xe{constructor(e,t,r){this.value=e,this.next=r,this.previous=t}toString(){return""+this.value}}e({},"StringBuilder",(()=>Le));class Le{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 I(`Index ${e} is greater than or equal to ${this.str.length}`)}substring(e,t){return this.str.substring(e,t)}}e({},"ExpressionEvaluationException",(()=>ve));class ve extends Error{constructor(e,t,r){super(y.format("$ : $",e,t)),this.cause=r}getCause(){return this.cause}}e({},"ExpressionToken",(()=>Ue));class Ue{constructor(e){this.expression=e}getExpression(){return this.expression}toString(){return this.expression}}e({},"ExpressionTokenValue",(()=>Ve));class Ve extends Ue{constructor(e,t){super(e),this.element=t}getTokenValue(){return this.element}getElement(){return this.element}toString(){return y.format("$: $",this.expression,this.element)}}e({},"Operation",(()=>Ge));class Ge{static MULTIPLICATION=new Ge("*");static DIVISION=new Ge("/");static INTEGER_DIVISION=new Ge("//");static MOD=new Ge("%");static ADDITION=new Ge("+");static SUBTRACTION=new Ge("-");static NOT=new Ge("not",void 0,!0);static AND=new Ge("and",void 0,!0);static OR=new Ge("or",void 0,!0);static LESS_THAN=new Ge("<");static LESS_THAN_EQUAL=new Ge("<=");static GREATER_THAN=new Ge(">");static GREATER_THAN_EQUAL=new Ge(">=");static EQUAL=new Ge("=");static NOT_EQUAL=new Ge("!=");static BITWISE_AND=new Ge("&");static BITWISE_OR=new Ge("|");static BITWISE_XOR=new Ge("^");static BITWISE_COMPLEMENT=new Ge("~");static BITWISE_LEFT_SHIFT=new Ge("<<");static BITWISE_RIGHT_SHIFT=new Ge(">>");static BITWISE_UNSIGNED_RIGHT_SHIFT=new Ge(">>>");static UNARY_PLUS=new Ge("UN: +","+");static UNARY_MINUS=new Ge("UN: -","-");static UNARY_LOGICAL_NOT=new Ge("UN: not","not");static UNARY_BITWISE_COMPLEMENT=new Ge("UN: ~","~");static ARRAY_OPERATOR=new Ge("[");static OBJECT_OPERATOR=new Ge(".");static NULLISH_COALESCING_OPERATOR=new Ge("??");static CONDITIONAL_TERNARY_OPERATOR=new Ge("?");static VALUE_OF=new Map([["MULTIPLICATION",Ge.MULTIPLICATION],["DIVISION",Ge.DIVISION],["INTEGER_DIVISON",Ge.INTEGER_DIVISION],["MOD",Ge.MOD],["ADDITION",Ge.ADDITION],["SUBTRACTION",Ge.SUBTRACTION],["NOT",Ge.NOT],["AND",Ge.AND],["OR",Ge.OR],["LESS_THAN",Ge.LESS_THAN],["LESS_THAN_EQUAL",Ge.LESS_THAN_EQUAL],["GREATER_THAN",Ge.GREATER_THAN],["GREATER_THAN_EQUAL",Ge.GREATER_THAN_EQUAL],["EQUAL",Ge.EQUAL],["NOT_EQUAL",Ge.NOT_EQUAL],["BITWISE_AND",Ge.BITWISE_AND],["BITWISE_OR",Ge.BITWISE_OR],["BITWISE_XOR",Ge.BITWISE_XOR],["BITWISE_COMPLEMENT",Ge.BITWISE_COMPLEMENT],["BITWISE_LEFT_SHIFT",Ge.BITWISE_LEFT_SHIFT],["BITWISE_RIGHT_SHIFT",Ge.BITWISE_RIGHT_SHIFT],["BITWISE_UNSIGNED_RIGHT_SHIFT",Ge.BITWISE_UNSIGNED_RIGHT_SHIFT],["UNARY_PLUS",Ge.UNARY_PLUS],["UNARY_MINUS",Ge.UNARY_MINUS],["UNARY_LOGICAL_NOT",Ge.UNARY_LOGICAL_NOT],["UNARY_BITWISE_COMPLEMENT",Ge.UNARY_BITWISE_COMPLEMENT],["ARRAY_OPERATOR",Ge.ARRAY_OPERATOR],["OBJECT_OPERATOR",Ge.OBJECT_OPERATOR],["NULLISH_COALESCING_OPERATOR",Ge.NULLISH_COALESCING_OPERATOR],["CONDITIONAL_TERNARY_OPERATOR",Ge.CONDITIONAL_TERNARY_OPERATOR]]);static UNARY_OPERATORS=new Set([Ge.ADDITION,Ge.SUBTRACTION,Ge.NOT,Ge.BITWISE_COMPLEMENT,Ge.UNARY_PLUS,Ge.UNARY_MINUS,Ge.UNARY_LOGICAL_NOT,Ge.UNARY_BITWISE_COMPLEMENT]);static ARITHMETIC_OPERATORS=new Set([Ge.MULTIPLICATION,Ge.DIVISION,Ge.INTEGER_DIVISION,Ge.MOD,Ge.ADDITION,Ge.SUBTRACTION]);static LOGICAL_OPERATORS=new Set([Ge.NOT,Ge.AND,Ge.OR,Ge.LESS_THAN,Ge.LESS_THAN_EQUAL,Ge.GREATER_THAN,Ge.GREATER_THAN_EQUAL,Ge.EQUAL,Ge.NOT_EQUAL,Ge.NULLISH_COALESCING_OPERATOR]);static BITWISE_OPERATORS=new Set([Ge.BITWISE_AND,Ge.BITWISE_COMPLEMENT,Ge.BITWISE_LEFT_SHIFT,Ge.BITWISE_OR,Ge.BITWISE_RIGHT_SHIFT,Ge.BITWISE_UNSIGNED_RIGHT_SHIFT,Ge.BITWISE_XOR]);static CONDITIONAL_OPERATORS=new Set([Ge.CONDITIONAL_TERNARY_OPERATOR]);static OPERATOR_PRIORITY=new Map([[Ge.UNARY_PLUS,1],[Ge.UNARY_MINUS,1],[Ge.UNARY_LOGICAL_NOT,1],[Ge.UNARY_BITWISE_COMPLEMENT,1],[Ge.ARRAY_OPERATOR,1],[Ge.OBJECT_OPERATOR,1],[Ge.MULTIPLICATION,2],[Ge.DIVISION,2],[Ge.INTEGER_DIVISION,2],[Ge.MOD,2],[Ge.ADDITION,3],[Ge.SUBTRACTION,3],[Ge.BITWISE_LEFT_SHIFT,4],[Ge.BITWISE_RIGHT_SHIFT,4],[Ge.BITWISE_UNSIGNED_RIGHT_SHIFT,4],[Ge.LESS_THAN,5],[Ge.LESS_THAN_EQUAL,5],[Ge.GREATER_THAN,5],[Ge.GREATER_THAN_EQUAL,5],[Ge.EQUAL,6],[Ge.NOT_EQUAL,6],[Ge.BITWISE_AND,7],[Ge.BITWISE_XOR,8],[Ge.BITWISE_OR,9],[Ge.AND,10],[Ge.OR,11],[Ge.NULLISH_COALESCING_OPERATOR,11],[Ge.CONDITIONAL_TERNARY_OPERATOR,12]]);static OPERATORS=new Set([...Array.from(Ge.ARITHMETIC_OPERATORS),...Array.from(Ge.LOGICAL_OPERATORS),...Array.from(Ge.BITWISE_OPERATORS),Ge.ARRAY_OPERATOR,Ge.OBJECT_OPERATOR,...Array.from(Ge.CONDITIONAL_OPERATORS)].map((e=>e.getOperator())));static OPERATORS_WITHOUT_SPACE_WRAP=new Set([...Array.from(Ge.ARITHMETIC_OPERATORS),...Array.from(Ge.LOGICAL_OPERATORS),...Array.from(Ge.BITWISE_OPERATORS),Ge.ARRAY_OPERATOR,Ge.OBJECT_OPERATOR,...Array.from(Ge.CONDITIONAL_OPERATORS)].filter((e=>!e.shouldBeWrappedInSpace())).map((e=>e.getOperator())));static OPERATION_VALUE_OF=new Map(Array.from(Ge.VALUE_OF.entries()).map((([e,t])=>[t.getOperator(),t])));static UNARY_MAP=new Map([[Ge.ADDITION,Ge.UNARY_PLUS],[Ge.SUBTRACTION,Ge.UNARY_MINUS],[Ge.NOT,Ge.UNARY_LOGICAL_NOT],[Ge.BITWISE_COMPLEMENT,Ge.UNARY_BITWISE_COMPLEMENT],[Ge.UNARY_PLUS,Ge.UNARY_PLUS],[Ge.UNARY_MINUS,Ge.UNARY_MINUS],[Ge.UNARY_LOGICAL_NOT,Ge.UNARY_LOGICAL_NOT],[Ge.UNARY_BITWISE_COMPLEMENT,Ge.UNARY_BITWISE_COMPLEMENT]]);static BIGGEST_OPERATOR_SIZE=Array.from(Ge.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 Ge.VALUE_OF.get(e)}toString(){return this.operator}}class Ce extends Ue{tokens=new ye;ops=new ye;constructor(e,t,r,n){super(e||""),t&&this.tokens.push(t),r&&this.tokens.push(r),n&&this.ops.push(n),this.evaluate()}getTokens(){return this.tokens}getOperations(){return this.ops}evaluate(){const e=this.expression.length;let t,r="",n=new Le(""),s=0,a=!1;for(;s<e;){switch(r=this.expression[s],t=n.toString(),r){case" ":a=this.processTokenSepearator(n,t,a);break;case"(":s=this.processSubExpression(e,n,t,s,a),a=!1;break;case")":throw new ve(this.expression,"Extra closing parenthesis found");case"]":throw new ve(this.expression,"Extra closing square bracket found");case"'":case'"':{let t=this.processStringLiteral(e,r,s);s=t.getT1(),a=t.getT2();break}case"?":if(s+1<e&&"?"!=this.expression.charAt(s+1)&&0!=s&&"?"!=this.expression.charAt(s-1))s=this.processTernaryOperator(e,n,t,s,a);else{let i=this.processOthers(r,e,n,t,s,a);s=i.getT1(),a=i.getT2(),a&&this.ops.peek()==Ge.ARRAY_OPERATOR&&(i=this.process(e,n,s),s=i.getT1(),a=i.getT2())}break;default:let i=this.processOthers(r,e,n,t,s,a);s=i.getT1(),a=i.getT2(),a&&this.ops.peek()==Ge.ARRAY_OPERATOR&&(i=this.process(e,n,s),s=i.getT1(),a=i.getT2())}++s}if(t=n.toString(),!x.isNullOrBlank(t)){if(Ge.OPERATORS.has(t))throw new ve(this.expression,"Expression is ending with an operator");this.tokens.push(new Ue(t))}}processStringLiteral(e,t,r){let n="",s=r+1;for(;s<e;s++){let e=this.expression.charAt(s);if(e==t&&"\\"!=this.expression.charAt(s-1))break;n+=e}if(s==e&&this.expression.charAt(s-1)!=t)throw new ve(this.expression,"Missing string ending marker "+t);let a=new v(s,!1);return this.tokens.push(new Ve(n,n)),a}process(e,t,r){let n=1;for(++r;r<e&&0!=n;){let e=this.expression.charAt(r);"]"==e?--n:"["==e&&++n,0!=n&&(t.append(e),r++)}return this.tokens.push(new Ce(t.toString())),t.setLength(0),new v(r,!1)}processOthers(e,t,r,n,s,a){let i=t-s;i=i<Ge.BIGGEST_OPERATOR_SIZE?i:Ge.BIGGEST_OPERATOR_SIZE;for(let e=i;e>0;e--){let t=this.expression.substring(s,s+e);if(Ge.OPERATORS_WITHOUT_SPACE_WRAP.has(t))return x.isNullOrBlank(n)||(this.tokens.push(new Ue(n)),a=!1),this.checkUnaryOperator(this.tokens,this.ops,Ge.OPERATION_VALUE_OF.get(t),a),a=!0,r.setLength(0),new v(s+e-1,a)}return r.append(e),new v(s,!1)}processTernaryOperator(e,t,r,n,s){if(s)throw new ve(this.expression,"Ternary operator is followed by an operator");""!=r.trim()&&(this.tokens.push(new Ce(r)),t.setLength(0));let a=1,i="";const o=++n;for(;n<e&&a>0;)i=this.expression.charAt(n),"?"==i?++a:":"==i&&--a,++n;if(":"!=i)throw new ve(this.expression,"':' operater is missing");if(n>=e)throw new ve(this.expression,"Third part of the ternary expression is missing");for(;!this.ops.isEmpty()&&this.hasPrecedence(Ge.CONDITIONAL_TERNARY_OPERATOR,this.ops.peek());){let e=this.ops.pop();if(Ge.UNARY_OPERATORS.has(e)){const t=this.tokens.pop();this.tokens.push(new Ce("",t,void 0,e))}else{let t=this.tokens.pop(),r=this.tokens.pop();this.tokens.push(new Ce("",r,t,e))}}this.ops.push(Ge.CONDITIONAL_TERNARY_OPERATOR),this.tokens.push(new Ce(this.expression.substring(o,n-1)));const E=this.expression.substring(n);if(""===E.trim())throw new ve(this.expression,"Third part of the ternary expression is missing");return this.tokens.push(new Ce(E)),e-1}processSubExpression(e,t,r,n,s){if(Ge.OPERATORS.has(r))this.checkUnaryOperator(this.tokens,this.ops,Ge.OPERATION_VALUE_OF.get(r),s),t.setLength(0);else if(!x.isNullOrBlank(r))throw new ve(this.expression,y.format("Unkown token : $ found.",r));let a=1;const i=new Le;let o=this.expression.charAt(n);for(n++;n<e&&a>0;)o=this.expression.charAt(n),"("==o?a++:")"==o&&a--,0!=a&&(i.append(o),n++);if(")"!=o)throw new ve(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 Ce(i.toString().trim())),n}processTokenSepearator(e,t,r){return x.isNullOrBlank(t)||(Ge.OPERATORS.has(t)?(this.checkUnaryOperator(this.tokens,this.ops,Ge.OPERATION_VALUE_OF.get(t),r),r=!0):(this.tokens.push(new Ue(t)),r=!1)),e.setLength(0),r}checkUnaryOperator(e,t,r,n){if(r)if(n||e.isEmpty()){if(!Ge.UNARY_OPERATORS.has(r))throw new ve(this.expression,y.format("Extra operator $ found.",r));{const e=Ge.UNARY_MAP.get(r);e&&t.push(e)}}else{for(;!t.isEmpty()&&this.hasPrecedence(r,t.peek());){let r=t.pop();if(Ge.UNARY_OPERATORS.has(r)){let t=e.pop();e.push(new Ce("",t,void 0,r))}else{let t=e.pop(),n=e.pop();e.push(new Ce("",n,t,r))}}t.push(r)}}hasPrecedence(e,t){let r=Ge.OPERATOR_PRIORITY.get(e),n=Ge.OPERATOR_PRIORITY.get(t);if(!r||!n)throw new Error("Unknown operators provided");return n<r}toString(){if(this.ops.isEmpty())return 1==this.tokens.size()?this.tokens.get(0).toString():"Error: No tokens";let e=new Le,t=0;const r=this.ops.toArray(),n=this.tokens.toArray();for(let s=0;s<r.length;s++)if(r[s].getOperator().startsWith("UN: "))e.append("(").append(r[s].getOperator().substring(4)).append(n[t]instanceof Ce?n[t].toString():n[t]).append(")"),t++;else if(r[s]==Ge.CONDITIONAL_TERNARY_OPERATOR){let r=n[t++];e.insert(0,r.toString()),e.insert(0,":"),r=n[t++],e.insert(0,r.toString()),e.insert(0,"?"),r=n[t++],e.insert(0,r.toString()).append(")"),e.insert(0,"(")}else{if(0==t){const r=n[t++];e.insert(0,r.toString())}const a=n[t++];e.insert(0,r[s].getOperator()).insert(0,a.toString()).insert(0,"(").append(")")}return e.toString()}equals(e){return this.expression==e.expression}}e({},"ExpressionEvaluator",(()=>jt));var De={};e(De,"LogicalNullishCoalescingOperator",(()=>Be));var be={};e(be,"BinaryOperator",(()=>Fe));class Fe{nullCheck(e,t,r){if(s(e)||s(t))throw new K(y.format("$ cannot be applied to a null value",r.getOperatorName()))}}class Be extends Fe{apply(e,t){return s(e)?t:e}}var Ye={};e(Ye,"ArithmeticAdditionOperator",(()=>He));class He extends Fe{apply(e,t){return this.nullCheck(e,t,Ge.ADDITION),e+t}}var ke={};e(ke,"ArithmeticDivisionOperator",(()=>$e));class $e extends Fe{apply(e,t){return this.nullCheck(e,t,Ge.DIVISION),e/t}}var Xe={};e(Xe,"ArithmeticIntegerDivisionOperator",(()=>We));class We extends Fe{apply(e,t){return this.nullCheck(e,t,Ge.DIVISION),Math.floor(e/t)}}var je={};e(je,"ArithmeticModulusOperator",(()=>qe));class qe extends Fe{apply(e,t){return this.nullCheck(e,t,Ge.MOD),e%t}}var Je={};e(Je,"ArithmeticMultiplicationOperator",(()=>ze));class ze extends Fe{apply(e,t){this.nullCheck(e,t,Ge.MULTIPLICATION);const r="string"==typeof e;if(r||"string"===typeof t){let n=r?e:t,s=r?t:e,a="",i=s<0;s=Math.abs(s);let o=Math.floor(s);for(;o-- >0;)a+=n;let E=Math.floor(n.length*(s-Math.floor(s)));if(E<0&&(E=-E),0!=E&&(a+=n.substring(0,E)),i){let e="";for(let t=a.length-1;t>=0;t--)e+=a[t];return e}return a}return e*t}}var Qe={};e(Qe,"ArithmeticSubtractionOperator",(()=>Ke));class Ke extends Fe{apply(e,t){return this.nullCheck(e,t,Ge.SUBTRACTION),e-t}}var Ze={};e(Ze,"ArrayOperator",(()=>et));class et extends Fe{apply(e,t){if(!e)throw new K("Cannot apply array operator on a null value");if(!t)throw new K("Cannot retrive null index value");if(!Array.isArray(e)&&"string"!=typeof e)throw new K(y.format("Cannot retrieve value from a primitive value $",e));if(t>=e.length)throw new K(y.format("Cannot retrieve index $ from the array of length $",t,e.length));return e[t]}}var tt={};e(tt,"BitwiseAndOperator",(()=>rt));class rt extends Fe{apply(e,t){return this.nullCheck(e,t,Ge.BITWISE_AND),e&t}}var nt={};e(nt,"BitwiseLeftShiftOperator",(()=>st));class st extends Fe{apply(e,t){return this.nullCheck(e,t,Ge.BITWISE_LEFT_SHIFT),e<<t}}var at={};e(at,"BitwiseOrOperator",(()=>it));class it extends Fe{apply(e,t){return this.nullCheck(e,t,Ge.BITWISE_OR),e|t}}var ot={};e(ot,"BitwiseRightShiftOperator",(()=>Et));class Et extends Fe{apply(e,t){return this.nullCheck(e,t,Ge.BITWISE_RIGHT_SHIFT),e>>t}}var ut={};e(ut,"BitwiseUnsignedRightShiftOperator",(()=>At));class At extends Fe{apply(e,t){return this.nullCheck(e,t,Ge.BITWISE_UNSIGNED_RIGHT_SHIFT),e>>>t}}var Rt={};e(Rt,"BitwiseXorOperator",(()=>Tt));class Tt extends Fe{apply(e,t){return this.nullCheck(e,t,Ge.BITWISE_XOR),e^t}}var gt={};e(gt,"LogicalAndOperator",(()=>lt));class lt extends Fe{apply(e,t){const r=Z.findPrimitiveNullAsBoolean(e),n=Z.findPrimitiveNullAsBoolean(t);if(r.getT1()!=i.BOOLEAN)throw new K(y.format("Boolean value expected but found $",r.getT2()));if(n.getT1()!=i.BOOLEAN)throw new K(y.format("Boolean value expected but found $",n.getT2()));return r.getT2()&&n.getT2()}}var pt={};e(pt,"LogicalEqualOperator",(()=>ct));class ct extends Fe{apply(e,t){return de(e,t)}}var ht={};e(ht,"LogicalGreaterThanEqualOperator",(()=>mt));class mt extends Fe{apply(e,t){const r=Z.findPrimitiveNullAsBoolean(e),n=Z.findPrimitiveNullAsBoolean(t);if(r.getT1()==i.BOOLEAN||n.getT1()==i.BOOLEAN)throw new K(y.format("Cannot compare >= with the values $ and $",r.getT2(),n.getT2()));return r.getT2()>=n.getT2()}}var Nt={};e(Nt,"LogicalGreaterThanOperator",(()=>ft));class ft extends Fe{apply(e,t){const r=Z.findPrimitiveNullAsBoolean(e),n=Z.findPrimitiveNullAsBoolean(t);if(r.getT1()==i.BOOLEAN||n.getT1()==i.BOOLEAN)throw new K(y.format("Cannot compare > with the values $ and $",r.getT2(),n.getT2()));return r.getT2()>n.getT2()}}var _t={};e(_t,"LogicalLessThanEqualOperator",(()=>St));class St extends Fe{apply(e,t){const r=Z.findPrimitiveNullAsBoolean(e),n=Z.findPrimitiveNullAsBoolean(t);if(r.getT1()==i.BOOLEAN||n.getT1()==i.BOOLEAN)throw new K(y.format("Cannot compare <= with the values $ and $",r.getT2(),n.getT2()));return r.getT2()<=n.getT2()}}var Mt={};e(Mt,"LogicalLessThanOperator",(()=>Ot));class Ot extends Fe{apply(e,t){const r=Z.findPrimitiveNullAsBoolean(e),n=Z.findPrimitiveNullAsBoolean(t);if(r.getT1()==i.BOOLEAN||n.getT1()==i.BOOLEAN)throw new K(y.format("Cannot compare < with the values $ and $",r.getT2(),n.getT2()));return r.getT2()<n.getT2()}}var wt={};e(wt,"LogicalNotEqualOperator",(()=>It));class It extends Fe{apply(e,t){return!de(e,t)}}var Pt={};e(Pt,"LogicalOrOperator",(()=>dt));class dt extends Fe{apply(e,t){const r=Z.findPrimitiveNullAsBoolean(e),n=Z.findPrimitiveNullAsBoolean(t);if(r.getT1()!=i.BOOLEAN)throw new K(y.format("Boolean value expected but found $",r.getT2()));if(n.getT1()!=i.BOOLEAN)throw new K(y.format("Boolean value expected but found $",n.getT2()));return r.getT2()||n.getT2()}}var yt={};e(yt,"ObjectOperator",(()=>xt));class xt extends Fe{apply(e,t){if(!e)throw new K("Cannot apply array operator on a null value");if(!t)throw new K("Cannot retrive null property value");const r=typeof e;if(!Array.isArray(e)&&"string"!=r&&"object"!=r)throw new K(y.format("Cannot retrieve value from a primitive value $",e));return e[t]}}var Lt={};e(Lt,"ArithmeticUnaryMinusOperator",(()=>Vt));var vt={};e(vt,"UnaryOperator",(()=>Ut));class Ut{nullCheck(e,t){if(s(e))throw new K(y.format("$ cannot be applied to a null value",t.getOperatorName()))}}class Vt extends Ut{apply(e){return this.nullCheck(e,Ge.UNARY_MINUS),Z.findPrimitiveNumberType(e),-e}}var Gt={};e(Gt,"ArithmeticUnaryPlusOperator",(()=>Ct));class Ct extends Ut{apply(e){return this.nullCheck(e,Ge.UNARY_PLUS),Z.findPrimitiveNumberType(e),e}}var Dt={};e(Dt,"BitwiseComplementOperator",(()=>bt));class bt extends Ut{apply(e){this.nullCheck(e,Ge.UNARY_BITWISE_COMPLEMENT);let t=Z.findPrimitiveNumberType(e);if(t.getT1()!=i.INTEGER&&t.getT1()!=i.LONG)throw new K(y.format("Unable to apply bitwise operator on $",e));return~e}}var Ft={};e(Ft,"LogicalNotOperator",(()=>Bt));class Bt extends Ut{apply(e){return!e&&""!==e}}e({},"LiteralTokenValueExtractor",(()=>kt));e({},"TokenValueExtractor",(()=>Yt));class Yt{static REGEX_SQUARE_BRACKETS=/[\[\]]/;static REGEX_DOT=/\./;getValue(e){let t=this.getPrefix();if(!e.startsWith(t))throw new I(y.format("Token $ doesn't start with $",e,t));return this.getValueInternal(e)}retrieveElementFrom(e,t,r,n){if(s(n))return;if(t.length==r)return n;let a=t[r].split(Yt.REGEX_SQUARE_BRACKETS).map((e=>e.trim())).filter((e=>!x.isNullOrBlank(e))).reduce(((n,s,a)=>this.resolveForEachPartOfTokenWithBrackets(e,t,r,s,n,a)),n);return this.retrieveElementFrom(e,t,r+1,a)}resolveForEachPartOfTokenWithBrackets(e,t,r,n,a,i){if(!s(a)){if(0===i){if(Array.isArray(a)){if("length"===n)return a.length;try{let e=parseInt(n);if(isNaN(e))throw new Error(y.format("$ is not a number",e));if(e>=a.length)return;return a[e]}catch(t){throw new ve(e,y.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 ve(e,y.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 new Error(y.format("$ is not a number",t));if(!Array.isArray(a))throw new ve(e,y.format("Expecting an array with index $ while processing the expression",t,e));if(t>=a.length)return;return a[t]}catch(t){throw new ve(e,y.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 ve(e,y.format("Unable to retrive $ from $ in the path $",t[r],n.toString(),e))}}const Ht=new Map([["true",!0],["false",!1],["null",void 0]]);class kt extends Yt{static INSTANCE=new kt;getValueInternal(e){if(!x.isNullOrBlank(e))return e=e.trim(),Ht.has(e)?Ht.get(e):e.startsWith('"')?this.processString(e):this.processNumbers(e)}processNumbers(e){try{let t=Number(e);if(isNaN(t))throw new Error("Parse number error");return t}catch(t){throw new ve(e,y.format("Unable to parse the literal or expression $",e),t)}}processString(e){if(!e.endsWith('"'))throw new ve(e,y.format("String literal $ is not closed properly",e));return e.substring(1,e.length-1)}getPrefix(){return""}}var $t={};e($t,"ConditionalTernaryOperator",(()=>Xt));class Xt extends class{nullCheck(e,t,r,n){if(s(e)||s(t)||s(r))throw new K(y.format("$ cannot be applied to a null value",n.getOperatorName()))}}{apply(e,t,r){return e?t:r}}t({},$t);class Wt extends Yt{static PREFIX="_internal.";values=new Map;addValue(e,t){this.values.set(e,t)}getValueInternal(e){let t=e.split(Yt.REGEX_DOT),r=t[1],n=r.indexOf("["),s=2;return-1!=n&&(r=t[1].substring(0,n),t[1]=t[1].substring(n),s=1),this.retrieveElementFrom(e,t,s,this.values.get(r))}getPrefix(){return Wt.PREFIX}}class jt{static UNARY_OPERATORS_MAP=new Map([[Ge.UNARY_BITWISE_COMPLEMENT,new bt],[Ge.UNARY_LOGICAL_NOT,new Bt],[Ge.UNARY_MINUS,new Vt],[Ge.UNARY_PLUS,new Ct]]);static TERNARY_OPERATORS_MAP=new Map([[Ge.CONDITIONAL_TERNARY_OPERATOR,new Xt]]);static BINARY_OPERATORS_MAP=new Map([[Ge.ADDITION,new He],[Ge.DIVISION,new $e],[Ge.INTEGER_DIVISION,new We],[Ge.MOD,new qe],[Ge.MULTIPLICATION,new ze],[Ge.SUBTRACTION,new Ke],[Ge.BITWISE_AND,new rt],[Ge.BITWISE_LEFT_SHIFT,new st],[Ge.BITWISE_OR,new it],[Ge.BITWISE_RIGHT_SHIFT,new Et],[Ge.BITWISE_UNSIGNED_RIGHT_SHIFT,new At],[Ge.BITWISE_XOR,new Tt],[Ge.AND,new lt],[Ge.EQUAL,new ct],[Ge.GREATER_THAN,new ft],[Ge.GREATER_THAN_EQUAL,new mt],[Ge.LESS_THAN,new Ot],[Ge.LESS_THAN_EQUAL,new St],[Ge.OR,new dt],[Ge.NOT_EQUAL,new It],[Ge.NULLISH_COALESCING_OPERATOR,new Be],[Ge.ARRAY_OPERATOR,new et],[Ge.OBJECT_OPERATOR,new xt]]);static UNARY_OPERATORS_MAP_KEY_SET=new Set(jt.UNARY_OPERATORS_MAP.keys());internalTokenValueExtractor=new Wt;constructor(e){e instanceof Ce?(this.exp=e,this.expression=this.exp.getExpression()):this.expression=e}evaluate(e){const t=this.processNestingExpression(this.expression,e);return this.expression=t.getT1(),this.exp=t.getT2(),(e=new Map(e.entries())).set(this.internalTokenValueExtractor.getPrefix(),this.internalTokenValueExtractor),this.evaluateExpression(this.exp,e)}processNestingExpression(e,t){let r=0,n=0;const s=new ye;for(;n<e.length-1;){if("{"==e.charAt(n)&&"{"==e.charAt(n+1))0==r&&s.push(new v(n+2,-1)),r++,n++;else if("}"==e.charAt(n)&&"}"==e.charAt(n+1)){if(r--,r<0)throw new ve(e,"Expecting {{ nesting path operator to be started before closing");0==r&&s.push(s.pop().setT2(n)),n++}n++}let a=this.replaceNestingExpression(e,t,s);return new v(a,new Ce(a))}replaceNestingExpression(e,t,r){let n=e;for(var s of r.toArray()){if(-1==s.getT2())throw new ve(e,"Expecting }} nesting path operator to be closed");let r=new jt(n.substring(s.getT1(),s.getT2())).evaluate(t);n=n.substring(0,s.getT1()-2)+r+n.substring(s.getT2()+2)}return n}getExpression(){return this.exp||(this.exp=new Ce(this.expression)),this.exp}getExpressionString(){return this.expression}evaluateExpression(e,t){let r=e.getOperations(),n=e.getTokens();for(;!r.isEmpty();){let e=r.pop(),o=n.pop();if(jt.UNARY_OPERATORS_MAP_KEY_SET.has(e))n.push(this.applyUnaryOperation(e,this.getValueFromToken(t,o)));else if(e==Ge.OBJECT_OPERATOR||e==Ge.ARRAY_OPERATOR)this.processObjectOrArrayOperator(t,r,n,e,o);else if(e==Ge.CONDITIONAL_TERNARY_OPERATOR){const r=n.pop(),E=n.pop();var s=this.getValueFromToken(t,E),a=this.getValueFromToken(t,r),i=this.getValueFromToken(t,o);n.push(this.applyTernaryOperation(e,s,a,i))}else{const r=n.pop();s=this.getValueFromToken(t,r),a=this.getValueFromToken(t,o);n.push(this.applyBinaryOperation(e,s,a))}}if(n.isEmpty())throw new K(y.format("Expression : $ evaluated to null",e));if(1!=n.size())throw new K(y.format("Expression : $ evaluated multiple values $",e,n));const o=n.get(0);if(o instanceof Ve)return o.getElement();if(!(o instanceof Ce))return this.getValueFromToken(t,o);throw new K(y.format("Expression : $ evaluated to $",e,n.get(0)))}processObjectOrArrayOperator(e,t,r,n,s){const a=new ye,i=new ye;if(!n||!s)return;do{i.push(n),s instanceof Ce?a.push(new Ve(s.toString(),this.evaluateExpression(s,e))):s&&a.push(s),s=r.isEmpty()?void 0:r.pop(),n=t.isEmpty()?void 0:t.pop()}while(n==Ge.OBJECT_OPERATOR||n==Ge.ARRAY_OPERATOR);s&&(s instanceof Ce?a.push(new Ve(s.toString(),this.evaluateExpression(s,e))):a.push(s)),n&&t.push(n);let o=a.pop();if(o instanceof Ve&&"object"==typeof o.getTokenValue()){const e=(new Date).getTime()+""+Math.round(1e3*Math.random());this.internalTokenValueExtractor.addValue(e,o.getTokenValue()),o=new Ue(Wt.PREFIX+e)}let E=new Le(o instanceof Ve?o.getTokenValue():o.toString());for(;!a.isEmpty();)o=a.pop(),n=i.pop(),E.append(n.getOperator()).append(o instanceof Ve?o.getTokenValue():o.toString()),n==Ge.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 Ve(u,this.getValue(u,e)));else{let e;try{e=kt.INSTANCE.getValue(u)}catch(t){e=u}r.push(new Ve(u,e))}}applyTernaryOperation(e,t,r,n){let s=jt.TERNARY_OPERATORS_MAP.get(e);if(!s)throw new ve(this.expression,y.format("No operator found to evaluate $",this.getExpression()));return new Ve(e.toString(),s.apply(t,r,n))}applyBinaryOperation(e,t,r){let n=typeof t,s=typeof r,a=jt.BINARY_OPERATORS_MAP.get(e);if(("object"===n||"object"===s)&&e!==Ge.EQUAL&&e!==Ge.NOT_EQUAL&&e!==Ge.NULLISH_COALESCING_OPERATOR)throw new ve(this.expression,y.format("Cannot evaluate expression $ $ $",t,e.getOperator(),r));if(!a)throw new ve(this.expression,y.format("No operator found to evaluate $ $ $",t,e.getOperator(),r));return new Ve(e.toString(),a.apply(t,r))}applyUnaryOperation(e,t){if("object"===typeof t||Array.isArray(t))throw new ve(this.expression,y.format("The operator $ cannot be applied to $",e.getOperator(),t));let r=jt.UNARY_OPERATORS_MAP.get(e);if(!r)throw new ve(this.expression,y.format("No Unary operator $ is found to apply on $",e.getOperator(),t));return new Ve(e.toString(),r.apply(t))}getValueFromToken(e,t){return t instanceof Ce?this.evaluateExpression(t,e):t instanceof Ve?t.getElement():this.getValue(t.getExpression(),e)}getValue(e,t){if(e.length<=5)return kt.INSTANCE.getValue(e);const r=e.substring(0,e.indexOf(".")+1);return(t.get(r)??kt.INSTANCE).getValue(e)}}const qt=new d("Set").setNamespace(n.SYSTEM_CTX).setParameters(new Map([h.ofEntry("name",(new g).setName("name").setType(R.of(i.STRING)).setMinLength(1),!1,p.CONSTANT),h.ofEntry("value",g.ofAny("value"))])).setEvents(new Map([O.outputEventMapEntry(new Map)]));const Jt=new d("GenerateEvent").setNamespace(n.SYSTEM).setParameters(new Map([h.ofEntry("eventName",g.ofString("eventName").setDefaultValue("output")),h.ofEntry("results",g.ofObject("results").setProperties(new Map([["name",g.ofString("name")],["value",h.EXPRESSION]])),!0)])).setEvents(new Map([O.outputEventMapEntry(new Map)]));class zt extends q{static CONDITION="condition";static SIGNATURE=new d("If").setNamespace(n.SYSTEM).setParameters(new Map([h.ofEntry(zt.CONDITION,g.of(zt.CONDITION,i.BOOLEAN))])).setEvents(new Map([O.eventMapEntry(O.TRUE,new Map),O.eventMapEntry(O.FALSE,new Map),O.outputEventMapEntry(new Map)]));getSignature(){return zt.SIGNATURE}async internalExecute(e){var t=e.getArguments()?.get(zt.CONDITION);return new P([w.of(t?O.TRUE:O.FALSE,new Map),w.outputOf(new Map)])}}const Qt=new d("CountLoop").setNamespace(n.SYSTEM_LOOP).setParameters(new Map([h.ofEntry("count",g.of("count",i.INTEGER).setDefaultValue(1))])).setEvents(new Map([O.eventMapEntry(O.ITERATION,new Map([["index",g.of("index",i.INTEGER)]])),O.outputEventMapEntry(new Map([["value",g.of("value",i.INTEGER)]]))]));const Kt=new d("RangeLoop").setNamespace(n.SYSTEM_LOOP).setParameters(new Map([h.ofEntry("from",g.of("from",i.INTEGER,i.LONG,i.FLOAT,i.DOUBLE).setDefaultValue(0)),h.ofEntry("to",g.of("to",i.INTEGER,i.LONG,i.FLOAT,i.DOUBLE).setDefaultValue(1)),h.ofEntry("step",g.of("step",i.INTEGER,i.LONG,i.FLOAT,i.DOUBLE).setDefaultValue(1).setNot((new g).setConstant(0)))])).setEvents(new Map([O.eventMapEntry(O.ITERATION,new Map([["index",g.of("index",i.INTEGER,i.LONG,i.FLOAT,i.DOUBLE)]])),O.outputEventMapEntry(new Map([["value",g.of("value",i.INTEGER,i.LONG,i.FLOAT,i.DOUBLE)]]))]));const Zt=new d("Add").setNamespace(n.MATH).setParameters(new Map([["value",new h("value",g.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([O.outputEventMapEntry(new Map([["value",g.ofNumber("value")]]))]));const er=[()=>new Map([["value",new h("value",g.ofNumber("value"))]]),()=>new Map([["value1",new h("value1",g.ofNumber("value1"))],["value2",new h("value2",g.ofNumber("value2"))]])];class tr extends q{constructor(e,t,r=1,...s){super(),s&&s.length||(s=[i.DOUBLE]),this.parametersNumber=r,this.mathFunction=t,this.signature=new d(e).setNamespace(n.MATH).setParameters(er[r-1]()).setEvents(new Map([O.outputEventMapEntry(new Map([["value",(new g).setType(R.of(...s)).setName("value")]]))]))}getSignature(){return this.signature}async internalExecute(e){let t,r=Z.findPrimitiveNumberType(e.getArguments()?.get(1==this.parametersNumber?"value":"value1")).getT2();return 2==this.parametersNumber&&(t=Z.findPrimitiveNumberType(e.getArguments()?.get("value2")).getT2()),new P([w.outputOf(new Map([["value",this.mathFunction.call(this,r,t)]]))])}}class rr extends q{static SIGNATURE=new d("Hypotenuse").setNamespace(n.MATH).setParameters(new Map([["value",new h("value",g.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([O.outputEventMapEntry(new Map([["value",(new g).setType(R.of(i.DOUBLE)).setName("value")]]))]));constructor(){super()}getSignature(){return rr.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get("value");return new P([w.outputOf(new Map([["value",Math.sqrt(t.reduce(((e,t)=>e+t*t),0))]]))])}}const nr=new d("Maximum").setNamespace(n.MATH).setParameters(new Map([["value",new h("value",g.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([O.outputEventMapEntry(new Map([["value",g.ofNumber("value")]]))]));const sr=new d("Minimum").setNamespace(n.MATH).setParameters(new Map([["value",new h("value",g.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([O.outputEventMapEntry(new Map([["value",g.ofNumber("value")]]))]));class ar extends q{static SIGNATURE=new d("Random").setNamespace(n.MATH).setEvents(new Map([O.outputEventMapEntry(S.of("value",g.ofDouble("value")))]));getSignature(){return ar.SIGNATURE}async internalExecute(e){return new P([w.outputOf(new Map([["value",Math.random()]]))])}}class ir extends q{static MIN_VALUE="minValue";static MAX_VALUE="maxValue";static VALUE="value";static SIGNATURE=new d("RandomFloat").setParameters(S.of(ir.MIN_VALUE,h.of(ir.MIN_VALUE,g.ofFloat(ir.MIN_VALUE).setDefaultValue(0)),ir.MAX_VALUE,h.of(ir.MAX_VALUE,g.ofFloat(ir.MAX_VALUE).setDefaultValue(2147483647)))).setNamespace(n.MATH).setEvents(new Map([O.outputEventMapEntry(S.of(ir.VALUE,g.ofFloat(ir.VALUE)))]));getSignature(){return ir.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(ir.MIN_VALUE),r=e.getArguments()?.get(ir.MAX_VALUE),n=Math.random()*(r-t)+t;return new P([w.outputOf(new Map([[ir.VALUE,n]]))])}}class or extends q{static MIN_VALUE="minValue";static MAX_VALUE="maxValue";static VALUE="value";static SIGNATURE=new d("RandomInt").setParameters(S.of(or.MIN_VALUE,h.of(or.MIN_VALUE,g.ofInteger(or.MIN_VALUE).setDefaultValue(0)),or.MAX_VALUE,h.of(or.MAX_VALUE,g.ofInteger(or.MAX_VALUE).setDefaultValue(2147483647)))).setNamespace(n.MATH).setEvents(new Map([O.outputEventMapEntry(S.of(or.VALUE,g.ofInteger(or.VALUE)))]));getSignature(){return or.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(or.MIN_VALUE),r=e.getArguments()?.get(or.MAX_VALUE),n=Math.floor(Math.random()*(r-t)+t);return new P([w.outputOf(new Map([[or.VALUE,n]]))])}}const Er={Absolute:new tr("Absolute",(e=>Math.abs(e)),1,i.INTEGER,i.LONG,i.FLOAT,i.DOUBLE),ACosine:new tr("ArcCosine",(e=>Math.acos(e))),ASine:new tr("ArcSine",(e=>Math.asin(e))),ATangent:new tr("ArcTangent",(e=>Math.atan(e))),Ceiling:new tr("Ceiling",(e=>Math.ceil(e))),Cosine:new tr("Cosine",(e=>Math.cos(e))),CosineH:new tr("HyperbolicCosine",(e=>Math.cosh(e))),CubeRoot:new tr("CubeRoot",(e=>Math.cbrt(e))),Exponential:new tr("Exponential",(e=>Math.exp(e))),Expm1:new tr("ExponentialMinus1",(e=>Math.expm1(e))),Floor:new tr("Floor",(e=>Math.floor(e))),Log:new tr("LogNatural",(e=>Math.log(e))),Log10:new tr("Log10",(e=>Math.log10(e))),Round:new tr("Round",(e=>Math.round(e)),1,i.INTEGER,i.LONG),Sine:new tr("Sine",(e=>Math.sin(e))),SineH:new tr("HyperbolicSine",(e=>Math.sinh(e))),Tangent:new tr("Tangent",(e=>Math.tan(e))),TangentH:new tr("HyperbolicTangent",(e=>Math.tanh(e))),ToDegrees:new tr("ToDegrees",(e=>e*(Math.PI/180))),ToRadians:new tr("ToRadians",(e=>e*(180/Math.PI))),SquareRoot:new tr("SquareRoot",(e=>Math.sqrt(e))),ArcTangent:new tr("ArcTangent2",((e,t)=>Math.atan2(e,t)),2),Power:new tr("Power",((e,t)=>Math.pow(e,t)),2),Add:new class extends q{getSignature(){return Zt}async internalExecute(e){let t=e.getArguments()?.get("value");return new P([w.outputOf(new Map([["value",t.reduce(((e,t)=>e+t),0)]]))])}},Hypotenuse:new rr,Maximum:new class extends q{getSignature(){return nr}async internalExecute(e){let t=e.getArguments()?.get("value");return new P([w.outputOf(new Map([["value",t.reduce(((e,t)=>!e&&0!==e||t>e?t:e))]]))])}},Minimum:new class extends q{getSignature(){return sr}async internalExecute(e){let t=e.getArguments()?.get("value");return new P([w.outputOf(new Map([["value",t.reduce(((e,t)=>!e&&0!==e||t<e?t:e))]]))])}},Random:new ar,RandomFloat:new ir,RandomInt:new or};class ur{find(e,t){if(e==n.MATH)return Er[t]}}class Ar extends q{static PARAMETER_STRING_NAME="string";static PARAMETER_SEARCH_STRING_NAME="searchString";static PARAMETER_SECOND_STRING_NAME="secondString";static PARAMETER_THIRD_STRING_NAME="thirdString";static PARAMETER_INDEX_NAME="index";static PARAMETER_SECOND_INDEX_NAME="secondIndex";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new h(Ar.PARAMETER_STRING_NAME,g.ofString(Ar.PARAMETER_STRING_NAME));static PARAMETER_SECOND_STRING=new h(Ar.PARAMETER_SECOND_STRING_NAME,g.ofString(Ar.PARAMETER_SECOND_STRING_NAME));static PARAMETER_THIRD_STRING=new h(Ar.PARAMETER_THIRD_STRING_NAME,g.ofString(Ar.PARAMETER_THIRD_STRING_NAME));static PARAMETER_INDEX=new h(Ar.PARAMETER_INDEX_NAME,g.ofInteger(Ar.PARAMETER_INDEX_NAME));static PARAMETER_SECOND_INDEX=new h(Ar.PARAMETER_SECOND_INDEX_NAME,g.ofInteger(Ar.PARAMETER_SECOND_INDEX_NAME));static PARAMETER_SEARCH_STRING=new h(Ar.PARAMETER_SEARCH_STRING_NAME,g.ofString(Ar.PARAMETER_STRING_NAME));static EVENT_STRING=new O(O.OUTPUT,S.of(Ar.EVENT_RESULT_NAME,g.ofString(Ar.EVENT_RESULT_NAME)));static EVENT_BOOLEAN=new O(O.OUTPUT,S.of(Ar.EVENT_RESULT_NAME,g.ofBoolean(Ar.EVENT_RESULT_NAME)));static EVENT_INT=new O(O.OUTPUT,S.of(Ar.EVENT_RESULT_NAME,g.ofInteger(Ar.EVENT_RESULT_NAME)));static EVENT_ARRAY=new O(O.OUTPUT,S.of(Ar.EVENT_RESULT_NAME,g.ofArray(Ar.EVENT_RESULT_NAME)));constructor(e,t,r,...n){super();const s=new Map;n.forEach((e=>s.set(e.getParameterName(),e))),this.signature=new d(t).setNamespace(e).setParameters(s).setEvents(S.of(r.getName(),r))}getSignature(){return this.signature}static ofEntryAsStringBooleanOutput(e,t){return[e,new class extends Ar{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Ar.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Ar.PARAMETER_SEARCH_STRING_NAME);return new P([w.outputOf(S.of(Ar.EVENT_RESULT_NAME,t(r,n)))])}}(n.STRING,e,Ar.EVENT_BOOLEAN,Ar.PARAMETER_STRING,Ar.PARAMETER_SEARCH_STRING)]}static ofEntryAsStringAndIntegerStringOutput(e,t){return[e,new class extends Ar{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Ar.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Ar.PARAMETER_INDEX_NAME);return new P([w.outputOf(S.of(Ar.EVENT_RESULT_NAME,t(r,n)))])}}(n.STRING,e,Ar.EVENT_STRING,Ar.PARAMETER_STRING,Ar.PARAMETER_INDEX)]}static ofEntryAsStringIntegerOutput(e,t){return[e,new class extends Ar{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Ar.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Ar.PARAMETER_SEARCH_STRING_NAME);return new P([w.outputOf(S.of(Ar.EVENT_RESULT_NAME,t(r,n)))])}}(n.STRING,e,Ar.EVENT_INT,Ar.PARAMETER_STRING,Ar.PARAMETER_SEARCH_STRING)]}static ofEntryString(e,t){return[e,new class extends Ar{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Ar.PARAMETER_STRING_NAME);return new P([w.outputOf(S.of(Ar.EVENT_RESULT_NAME,t(r)))])}}(n.STRING,e,Ar.EVENT_STRING,Ar.PARAMETER_STRING)]}static ofEntryStringBooleanOutput(e,t){return[e,new class extends Ar{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Ar.PARAMETER_STRING_NAME);return new P([w.outputOf(S.of(Ar.EVENT_RESULT_NAME,t(r)))])}}(n.STRING,e,Ar.EVENT_BOOLEAN,Ar.PARAMETER_STRING)]}static ofEntryAsStringStringIntegerIntegerOutput(e,t){return[e,new class extends Ar{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Ar.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Ar.PARAMETER_SEARCH_STRING_NAME),s=e?.getArguments()?.get(Ar.PARAMETER_INDEX_NAME);return new P([w.outputOf(S.of(Ar.EVENT_RESULT_NAME,t(r,n,s)))])}}(n.STRING,e,Ar.EVENT_INT,Ar.PARAMETER_STRING,Ar.PARAMETER_SEARCH_STRING,Ar.PARAMETER_INDEX)]}static ofEntryAsStringIntegerIntegerStringOutput(e,t){return[e,new class extends Ar{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Ar.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Ar.PARAMETER_INDEX_NAME),s=e?.getArguments()?.get(Ar.PARAMETER_SECOND_INDEX_NAME);return new P([w.outputOf(S.of(Ar.EVENT_RESULT_NAME,t(r,n,s)))])}}(n.STRING,e,Ar.EVENT_INT,Ar.PARAMETER_STRING,Ar.PARAMETER_INDEX,Ar.PARAMETER_SECOND_INDEX)]}static ofEntryAsStringStringStringStringOutput(e,t){return[e,new class extends Ar{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Ar.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Ar.PARAMETER_SECOND_STRING_NAME),s=e?.getArguments()?.get(Ar.PARAMETER_THIRD_STRING_NAME);return new P([w.outputOf(S.of(Ar.EVENT_RESULT_NAME,t(r,n,s)))])}}(n.STRING,e,Ar.EVENT_STRING,Ar.PARAMETER_STRING,Ar.PARAMETER_SECOND_STRING,Ar.PARAMETER_THIRD_STRING)]}}class Rr extends q{static VALUE="value";static SCHEMA=(new g).setName(Rr.VALUE).setType(new A(i.STRING));static SIGNATURE=new d("Concatenate").setNamespace(n.STRING).setParameters(new Map([[Rr.VALUE,new h(Rr.VALUE,Rr.SCHEMA).setVariableArgument(!0)]])).setEvents(new Map([O.outputEventMapEntry(new Map([[Rr.VALUE,g.ofString(Rr.VALUE)]]))]));constructor(){super()}getSignature(){return Rr.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(Rr.VALUE),r="";return t.reduce(((e,t)=>r=e+t),r),new P([w.outputOf(new Map([[Rr.VALUE,r]]))])}}class Tr extends q{static PARAMETER_STRING_NAME="string";static PARAMETER_AT_START_NAME="startPosition";static PARAMETER_AT_END_NAME="endPosition";static EVENT_RESULT_NAME="result";PARAMETER_STRING=new h(Tr.PARAMETER_STRING_NAME,g.ofString(Tr.PARAMETER_STRING_NAME));PARAMETER_AT_START=new h(Tr.PARAMETER_AT_START_NAME,g.ofInteger(Tr.PARAMETER_AT_START_NAME));PARAMETER_AT_END=new h(Tr.PARAMETER_AT_END_NAME,g.ofInteger(Tr.PARAMETER_AT_END_NAME));EVENT_STRING=new O(O.OUTPUT,new Map([[Tr.EVENT_RESULT_NAME,g.ofString(Tr.EVENT_RESULT_NAME)]]));signature=new d("DeleteForGivenLength").setNamespace(n.STRING).setParameters(new Map([[this.PARAMETER_STRING.getParameterName(),this.PARAMETER_STRING],[this.PARAMETER_AT_START.getParameterName(),this.PARAMETER_AT_START],[this.PARAMETER_AT_END.getParameterName(),this.PARAMETER_AT_END]])).setEvents(new Map([[this.EVENT_STRING.getName(),this.EVENT_STRING]]));constructor(){super()}getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(Tr.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(Tr.PARAMETER_AT_START_NAME),n=e?.getArguments()?.get(Tr.PARAMETER_AT_END_NAME);if(n>=r){let e="";return e+=t.substring(0,r),e+=t.substring(n),new P([w.outputOf(new Map([[Tr.EVENT_RESULT_NAME,e.toString()]]))])}return new P([w.outputOf(new Map([[Tr.EVENT_RESULT_NAME,t]]))])}}class gr extends q{static PARAMETER_STRING_NAME="string";static PARAMETER_AT_POSITION_NAME="position";static PARAMETER_INSERT_STRING_NAME="insertString";EVENT_RESULT_NAME="result";PARAMETER_STRING=new h(gr.PARAMETER_STRING_NAME,g.ofString(gr.PARAMETER_STRING_NAME));PARAMETER_AT_POSITION=new h(gr.PARAMETER_AT_POSITION_NAME,g.ofInteger(gr.PARAMETER_AT_POSITION_NAME));PARAMETER_INSERT_STRING=new h(gr.PARAMETER_INSERT_STRING_NAME,g.ofString(gr.PARAMETER_INSERT_STRING_NAME));EVENT_STRING=new O(O.OUTPUT,new Map([[this.EVENT_RESULT_NAME,g.ofString(this.EVENT_RESULT_NAME)]]));signature=new d("InsertAtGivenPosition").setNamespace(n.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([O.outputEventMapEntry(new Map([[this.EVENT_RESULT_NAME,g.ofString(this.EVENT_RESULT_NAME)]]))]));getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(gr.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(gr.PARAMETER_AT_POSITION_NAME),n=e?.getArguments()?.get(gr.PARAMETER_INSERT_STRING_NAME),s="";return s+=t.substring(0,r),s+=n,s+=t.substring(r),new P([w.outputOf(new Map([[this.EVENT_RESULT_NAME,s]]))])}}class lr extends q{static PARAMETER_STRING_NAME="string";static PARAMETER_POSTPAD_STRING_NAME="postpadString";static PARAMETER_LENGTH_NAME="length";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new h(lr.PARAMETER_STRING_NAME,g.ofString(lr.PARAMETER_STRING_NAME));static PARAMETER_POSTPAD_STRING=new h(lr.PARAMETER_POSTPAD_STRING_NAME,g.ofString(lr.PARAMETER_POSTPAD_STRING_NAME));static PARAMETER_LENGTH=new h(lr.PARAMETER_LENGTH_NAME,g.ofInteger(lr.PARAMETER_LENGTH_NAME));static EVENT_STRING=new O(O.OUTPUT,new Map([[lr.EVENT_RESULT_NAME,g.ofString(lr.EVENT_RESULT_NAME)]]));signature=new d("PostPad").setNamespace(n.STRING).setParameters(new Map([[lr.PARAMETER_STRING.getParameterName(),lr.PARAMETER_STRING],[lr.PARAMETER_POSTPAD_STRING.getParameterName(),lr.PARAMETER_POSTPAD_STRING],[lr.PARAMETER_LENGTH.getParameterName(),lr.PARAMETER_LENGTH]])).setEvents(new Map([[lr.EVENT_STRING.getName(),lr.EVENT_STRING]]));constructor(){super()}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(lr.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(lr.PARAMETER_POSTPAD_STRING_NAME),n=e.getArguments()?.get(lr.PARAMETER_LENGTH_NAME),s="",a=r.length;for(s+=t;a<=n;)s+=r,a+=r.length;return s.length-t.length<n&&(s+=r.substring(0,n-(s.length-t.length))),new P([w.of(lr.EVENT_RESULT_NAME,new Map([[lr.EVENT_RESULT_NAME,s.toString()]]))])}}class pr extends q{static PARAMETER_STRING_NAME="string";static PARAMETER_PREPAD_STRING_NAME="prepadString";static PARAMETER_LENGTH_NAME="length";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new h(pr.PARAMETER_STRING_NAME,g.ofString(pr.PARAMETER_STRING_NAME));static PARAMETER_PREPAD_STRING=new h(pr.PARAMETER_PREPAD_STRING_NAME,g.ofString(pr.PARAMETER_PREPAD_STRING_NAME));static PARAMETER_LENGTH=new h(pr.PARAMETER_LENGTH_NAME,g.ofInteger(pr.PARAMETER_LENGTH_NAME));static EVENT_STRING=new O(O.OUTPUT,new Map([[pr.EVENT_RESULT_NAME,g.ofString(pr.EVENT_RESULT_NAME)]]));signature=new d("PrePad").setNamespace(n.STRING).setParameters(new Map([[pr.PARAMETER_STRING.getParameterName(),pr.PARAMETER_STRING],[pr.PARAMETER_PREPAD_STRING.getParameterName(),pr.PARAMETER_PREPAD_STRING],[pr.PARAMETER_LENGTH.getParameterName(),pr.PARAMETER_LENGTH]])).setEvents(new Map([[pr.EVENT_STRING.getName(),pr.EVENT_STRING]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(pr.PARAMETER_STRING_NAME),r=e.getArguments()?.get(pr.PARAMETER_PREPAD_STRING_NAME),n=e.getArguments()?.get(pr.PARAMETER_LENGTH_NAME),s="",a=r.length;for(;a<=n;)s+=r,a+=r.length;return s.length<n&&(s+=r.substring(0,n-s.length)),s+=t,new P([w.of(pr.EVENT_RESULT_NAME,new Map([[pr.EVENT_RESULT_NAME,s]]))])}}class cr extends q{static PARAMETER_STRING_NAME="string";static PARAMETER_BOOLEAN_NAME="boolean";static PARAMETER_FIRST_OFFSET_NAME="firstOffset";static PARAMETER_OTHER_STRING_NAME="otherString";static PARAMETER_SECOND_OFFSET_NAME="secondOffset";static PARAMETER_INTEGER_NAME="length";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new h(cr.PARAMETER_STRING_NAME,g.ofString(cr.PARAMETER_STRING_NAME));static PARAMETER_OTHER_STRING=new h(cr.PARAMETER_OTHER_STRING_NAME,g.ofString(cr.PARAMETER_OTHER_STRING_NAME));static PARAMETER_FIRST_OFFSET=new h(cr.PARAMETER_FIRST_OFFSET_NAME,g.ofInteger(cr.PARAMETER_FIRST_OFFSET_NAME));static PARAMETER_SECOND_OFFSET=new h(cr.PARAMETER_SECOND_OFFSET_NAME,g.ofInteger(cr.PARAMETER_SECOND_OFFSET_NAME));static PARAMETER_INTEGER=new h(cr.PARAMETER_INTEGER_NAME,g.ofInteger(cr.PARAMETER_INTEGER_NAME));static PARAMETER_BOOLEAN=new h(cr.PARAMETER_BOOLEAN_NAME,g.ofBoolean(cr.PARAMETER_BOOLEAN_NAME));static EVENT_BOOLEAN=new O(O.OUTPUT,new Map([[cr.EVENT_RESULT_NAME,g.ofBoolean(cr.EVENT_RESULT_NAME)]]));signature=new d("RegionMatches").setNamespace(n.STRING).setParameters(new Map([[cr.PARAMETER_STRING.getParameterName(),cr.PARAMETER_STRING],[cr.PARAMETER_BOOLEAN.getParameterName(),cr.PARAMETER_BOOLEAN],[cr.PARAMETER_FIRST_OFFSET.getParameterName(),cr.PARAMETER_FIRST_OFFSET],[cr.PARAMETER_OTHER_STRING.getParameterName(),cr.PARAMETER_OTHER_STRING],[cr.PARAMETER_SECOND_OFFSET.getParameterName(),cr.PARAMETER_SECOND_OFFSET],[cr.PARAMETER_INTEGER.getParameterName(),cr.PARAMETER_INTEGER]])).setEvents(new Map([[cr.EVENT_BOOLEAN.getName(),cr.EVENT_BOOLEAN]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(cr.PARAMETER_STRING_NAME),r=e.getArguments()?.get(cr.PARAMETER_BOOLEAN_NAME),n=e.getArguments()?.get(cr.PARAMETER_FIRST_OFFSET_NAME),s=e?.getArguments()?.get(cr.PARAMETER_OTHER_STRING_NAME),a=e?.getArguments()?.get(cr.PARAMETER_SECOND_OFFSET_NAME),i=e.getArguments()?.get(cr.PARAMETER_INTEGER_NAME),o=!1;if(n<0||a<0||n+i>t.length||a+i>s.length)o=!1;else if(r){t=t.substring(n,n+i).toUpperCase(),o=t==s.substring(a,a+i).toUpperCase()}else{t=t.substring(n,n+i),o=t==s.substring(a,i)}return new P([w.outputOf(new Map([[cr.EVENT_RESULT_NAME,o]]))])}}class hr extends q{static PARAMETER_STRING_NAME="string";static PARAMETER_AT_START_NAME="startPosition";static PARAMETER_AT_LENGTH_NAME="lengthPosition";static PARAMETER_REPLACE_STRING_NAME="replaceString";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new h(hr.PARAMETER_STRING_NAME,g.ofString(hr.PARAMETER_STRING_NAME));static PARAMETER_AT_START=new h(hr.PARAMETER_AT_START_NAME,g.ofInteger(hr.PARAMETER_AT_START_NAME));static PARAMETER_AT_LENGTH=new h(hr.PARAMETER_AT_LENGTH_NAME,g.ofInteger(hr.PARAMETER_AT_LENGTH_NAME));static PARAMETER_REPLACE_STRING=new h(hr.PARAMETER_REPLACE_STRING_NAME,g.ofString(hr.PARAMETER_REPLACE_STRING_NAME));static EVENT_STRING=new O(O.OUTPUT,new Map([[hr.EVENT_RESULT_NAME,g.ofString(hr.EVENT_RESULT_NAME)]]));constructor(){super()}signature=new d("ReplaceAtGivenPosition").setNamespace(n.STRING).setParameters(new Map([[hr.PARAMETER_STRING.getParameterName(),hr.PARAMETER_STRING],[hr.PARAMETER_AT_START.getParameterName(),hr.PARAMETER_AT_START],[hr.PARAMETER_AT_LENGTH.getParameterName(),hr.PARAMETER_AT_LENGTH],[hr.PARAMETER_REPLACE_STRING.getParameterName(),hr.PARAMETER_REPLACE_STRING]])).setEvents(new Map([[hr.EVENT_STRING.getName(),hr.EVENT_STRING]]));getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(hr.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(hr.PARAMETER_AT_START_NAME),n=e?.getArguments()?.get(hr.PARAMETER_AT_LENGTH_NAME),s=e?.getArguments()?.get(hr.PARAMETER_REPLACE_STRING_NAME);t.length;if(r<n){let e="";e+=t.substring(0,r),e+=s,e+=t.substring(r+n)}return new P([w.outputOf(new Map([[hr.EVENT_RESULT_NAME,t]]))])}}class mr extends q{VALUE="value";SIGNATURE=new d("Reverse").setNamespace(n.STRING).setParameters(new Map([[this.VALUE,new h(this.VALUE,g.ofString(this.VALUE)).setVariableArgument(!1)]])).setEvents(new Map([O.outputEventMapEntry(new Map([[this.VALUE,(new g).setType(R.of(i.STRING)).setName(this.VALUE)]]))]));constructor(){super()}getSignature(){return this.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(this.VALUE),r=t.length-1,n="";for(;r>=0;)n+=t.charAt(r--);return new P([w.outputOf(S.of(this.VALUE,n))])}}class Nr extends q{PARAMETER_STRING_NAME="string";PARAMETER_SPLIT_STRING_NAME="searchString";EVENT_RESULT_NAME="result";PARAMETER_STRING=new h(this.PARAMETER_STRING_NAME,g.ofString(this.PARAMETER_STRING_NAME));PARAMETER_SPLIT_STRING=new h(this.PARAMETER_SPLIT_STRING_NAME,g.ofString(this.PARAMETER_SPLIT_STRING_NAME));EVENT_ARRAY=new O(O.OUTPUT,S.of(this.EVENT_RESULT_NAME,g.ofArray(this.EVENT_RESULT_NAME)));getSignature(){return new d("Split").setNamespace(n.STRING).setParameters(new Map([[this.PARAMETER_STRING_NAME,this.PARAMETER_STRING],[this.PARAMETER_SPLIT_STRING_NAME,this.PARAMETER_SPLIT_STRING]])).setEvents(new Map([O.outputEventMapEntry(new Map([[this.EVENT_RESULT_NAME,g.ofArray(this.EVENT_RESULT_NAME)]]))]))}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(this.PARAMETER_STRING_NAME),r=e.getArguments()?.get(this.PARAMETER_SPLIT_STRING_NAME);return new P([w.outputOf(S.of(this.EVENT_ARRAY.getName(),t.split(r)))])}}class fr extends q{PARAMETER_INPUT_ANYTYPE_NAME="anytype";EVENT_RESULT_NAME="result";PARAMETER_INPUT_ANYTYPE=new h(this.PARAMETER_INPUT_ANYTYPE_NAME,g.ofAny(this.PARAMETER_INPUT_ANYTYPE_NAME));EVENT_STRING=new O(O.OUTPUT,new Map([[this.EVENT_RESULT_NAME,g.ofString(this.EVENT_RESULT_NAME)]]));getSignature(){return new d("ToString").setNamespace(n.STRING).setParameters(new Map([[this.PARAMETER_INPUT_ANYTYPE.getParameterName(),this.PARAMETER_INPUT_ANYTYPE]])).setEvents(new Map([[this.EVENT_STRING.getName(),this.EVENT_STRING]]))}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(this.PARAMETER_INPUT_ANYTYPE_NAME),r="";return r="object"==typeof t?JSON.stringify(t,void 0,2):""+t,new P([w.outputOf(new Map([[this.EVENT_RESULT_NAME,r]]))])}}class _r extends q{static PARAMETER_STRING_NAME="string";static PARAMETER_LENGTH_NAME="length";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new h(_r.PARAMETER_STRING_NAME,g.ofString(_r.PARAMETER_STRING_NAME));static PARAMETER_LENGTH=new h(_r.PARAMETER_LENGTH_NAME,g.ofInteger(_r.PARAMETER_LENGTH_NAME));static EVENT_STRING=new O(O.OUTPUT,new Map([[_r.EVENT_RESULT_NAME,g.ofString(_r.EVENT_RESULT_NAME)]]));signature=new d("TrimTo").setNamespace(n.STRING).setParameters(new Map([[_r.PARAMETER_STRING.getParameterName(),_r.PARAMETER_STRING],[_r.PARAMETER_LENGTH.getParameterName(),_r.PARAMETER_LENGTH]])).setEvents(new Map([[_r.EVENT_STRING.getName(),_r.EVENT_STRING]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(_r.PARAMETER_STRING_NAME),r=e.getArguments()?.get(_r.PARAMETER_LENGTH_NAME);return new P([w.of(_r.EVENT_RESULT_NAME,new Map([[_r.EVENT_RESULT_NAME,t.substring(0,r)]]))])}}class Sr{static repoMap=S.ofArrayEntries(Ar.ofEntryString("Trim",(e=>e.trim())),Ar.ofEntryString("LowerCase",(e=>e.toLocaleLowerCase())),Ar.ofEntryString("UpperCase",(e=>e.toUpperCase())),Ar.ofEntryStringBooleanOutput("IsBlank",(e=>""===e.trim())),Ar.ofEntryStringBooleanOutput("IsEmpty",(e=>""===e)),Ar.ofEntryAsStringBooleanOutput("Contains",((e,t)=>-1!=e.indexOf(t))),Ar.ofEntryAsStringBooleanOutput("EndsWith",((e,t)=>e.endsWith(t))),Ar.ofEntryAsStringBooleanOutput("EqualsIgnoreCase",((e,t)=>e.toUpperCase()==t.toUpperCase())),Ar.ofEntryAsStringBooleanOutput("Matches",((e,t)=>new RegExp(t).test(e))),Ar.ofEntryAsStringIntegerOutput("IndexOf",((e,t)=>e.indexOf(t))),Ar.ofEntryAsStringIntegerOutput("LastIndexOf",((e,t)=>e.lastIndexOf(t))),Ar.ofEntryAsStringAndIntegerStringOutput("Repeat",((e,t)=>e.repeat(t))),Ar.ofEntryAsStringStringIntegerIntegerOutput("IndexOfWithStartPoint",((e,t,r)=>e.indexOf(t,r))),Ar.ofEntryAsStringStringIntegerIntegerOutput("LastIndexOfWithStartPoint",((e,t,r)=>e.lastIndexOf(t,r))),Ar.ofEntryAsStringStringStringStringOutput("Replace",((e,t,r)=>e)),Ar.ofEntryAsStringStringStringStringOutput("ReplaceFirst",((e,t,r)=>e.replace(t,r))),Ar.ofEntryAsStringIntegerIntegerStringOutput("SubString",((e,t,r)=>e.substring(t,r))),f(new Rr),f(new Tr),f(new gr),f(new lr),f(new pr),f(new cr),f(new hr),f(new mr),f(new Nr),f(new fr),f(new _r));find(e,t){if(e==n.STRING)return Sr.repoMap.get(t)}}e({},"HybridRepository",(()=>Mr));class Mr{constructor(...e){this.repos=e}find(e,t){for(let r of this.repos){let n=r.find(e,t);if(n)return n}}}const Or=new Map([[n.SYSTEM_CTX,new Map([f(new class extends q{getSignature(){return Ie}async internalExecute(e){const t=e?.getArguments()?.get("name");if(e?.getContext()?.has(t))throw new I(y.format("Context already has an element for '$' ",t));let r=g.from(e?.getArguments()?.get("schema"));if(!r)throw new I("Schema is not supplied.");return e.getContext().set(t,new we(r,s(r.getDefaultValue())?void 0:r.getDefaultValue())),new P([w.outputOf(new Map)])}}),f(new class extends q{getSignature(){return Pe}async internalExecute(e){const t=e?.getArguments()?.get("name");if(!e.getContext()?.has(t))throw new I(y.format("Context don't have an element for '$' ",t));return new P([w.outputOf(new Map(["value",e.getContext()?.get(t)?.getElement()]))])}}),f(new class extends q{getSignature(){return qt}async internalExecute(e){let t=e?.getArguments()?.get("name");if(x.isNullOrBlank(t))throw new I("Empty string is not a valid name for the context element");let r=e?.getArguments()?.get("value");const n=new Ce(t),s=n.getTokens().peekLast();if(!s.getExpression().startsWith("Context")||s instanceof Ce||s instanceof Ve&&!s.getElement().toString().startsWith("Context"))throw new K(y.format("The context path $ is not a valid path in context",t));for(const e of n.getOperations().toArray())if(e!=Ge.ARRAY_OPERATOR&&e!=Ge.OBJECT_OPERATOR)throw new K(y.format("Expected a reference to the context location, but found an expression $",t));for(let r=0;r<n.getTokens().size();r++){let s=n.getTokens().get(r);s instanceof Ce&&n.getTokens().set(r,new Ve(t,new jt(s).evaluate(e.getValuesMap())))}return this.modifyContext(e,t,r,n)}modifyContext(e,t,r,n){const a=n.getTokens();a.removeLast();const i=n.getOperations();i.removeLast();let o=e.getContext()?.get(a.removeLast().getExpression());if(s(o))throw new I(y.format("Context doesn't have any element with name '$' ",t));if(i.isEmpty())return o.setElement(r),new P([w.outputOf(new Map)]);let E=o.getElement(),u=i.removeLast(),A=a.removeLast(),R=A instanceof Ve?A.getElement():A.getExpression();for(s(E)&&(E=u==Ge.OBJECT_OPERATOR?{}:[],o.setElement(E));!i.isEmpty();)E=u==Ge.OBJECT_OPERATOR?this.getDataFromObject(E,R,i.peekLast()):this.getDataFromArray(E,R,i.peekLast()),u=i.removeLast(),A=a.removeLast(),R=A instanceof Ve?A.getElement():A.getExpression();return u==Ge.OBJECT_OPERATOR?this.putDataInObject(E,R,r):this.putDataInArray(E,R,r),new P([w.outputOf(new Map)])}getDataFromArray(e,t,r){if(!Array.isArray(e))throw new I(y.format("Expected an array but found $",e));const n=parseInt(t);if(isNaN(n))throw new I(y.format("Expected an array index but found $",t));if(n<0)throw new I(y.format("Array index is out of bound - $",t));let a=e[n];return s(a)&&(a=r==Ge.OBJECT_OPERATOR?{}:[],e[n]=a),a}getDataFromObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new I(y.format("Expected an object but found $",e));let n=e[t];return s(n)&&(n=r==Ge.OBJECT_OPERATOR?{}:[],e[t]=n),n}putDataInArray(e,t,r){if(!Array.isArray(e))throw new I(y.format("Expected an array but found $",e));const n=parseInt(t);if(isNaN(n))throw new I(y.format("Expected an array index but found $",t));if(n<0)throw new I(y.format("Array index is out of bound - $",t));e[n]=r}putDataInObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new I(y.format("Expected an object but found $",e));e[t]=r}})])],[n.SYSTEM_LOOP,new Map([f(new class extends q{getSignature(){return Kt}async internalExecute(e){let t=e.getArguments()?.get("from"),r=e.getArguments()?.get("to"),n=e.getArguments()?.get("step");const s=n>0;let a=t,i=!1;return new P({next(){if(i)return;if(s&&a>=r||!s&&a<=r)return i=!0,w.outputOf(new Map([["value",a]]));const e=w.of(O.ITERATION,new Map([["index",a]]));return a+=n,e}})}}),f(new class extends q{getSignature(){return Qt}async internalExecute(e){let t=e.getArguments()?.get("count"),r=0;return new P({next(){if(r>=t)return w.outputOf(new Map([["value",r]]));const e=w.of(O.ITERATION,new Map([["index",r]]));return++r,e}})}})])],[n.SYSTEM,new Map([f(new zt),f(new class extends q{getSignature(){return Jt}async internalExecute(e){const t=e.getEvents(),r=e.getArguments()?.get("eventName"),n=e?.getArguments()?.get("results").map((t=>{let r=t.value;if(s(r))throw new I("Expect a value object");let n=r.value;return r.isExpression&&(n=new jt(n).evaluate(e.getValuesMap())),[t.name,n]})).reduce(((e,t)=>(e.set(t[0],t[1]),e)),new Map);return t?.has(r)||t?.set(r,[]),t?.get(r)?.push(n),new P([w.outputOf(new Map)])}})])]]);class wr extends Mr{constructor(){super({find:(e,t)=>Or.get(e)?.get(t)},new ur,new Sr,new Oe)}}e({},"StatementExecution",(()=>Pr));e({},"StatementMessage",(()=>Ir));class Ir{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 Pr{messages=new Array;dependencies=new Set;constructor(e){this.statement=e}getStatement(){return this.statement}setStatement(e){return this.statement=e,this}getMessages(){return this.messages}setMessages(e){return this.messages=e,this}getDependencies(){return this.dependencies}setDependencies(e){return this.dependencies=e,this}getUniqueKey(){return this.statement.getStatementName()}addMessage(e,t){this.messages.push(new Ir(e,t))}addDependency(e){this.dependencies.add(e)}getDepenedencies(){return this.dependencies}equals(e){if(!(e instanceof Pr))return!1;return e.statement.equals(this.statement)}}e({},"ContextTokenValueExtractor",(()=>dr));class dr extends Yt{static PREFIX="Context.";constructor(e){super(),this.context=e}getValueInternal(e){let t=e.split(Yt.REGEX_DOT),r=t[1],n=r.indexOf("["),s=2;return-1!=n&&(r=t[1].substring(0,n),t[1]=t[1].substring(n),s=1),this.retrieveElementFrom(e,t,s,this.context.get(r)?.getElement())}getPrefix(){return dr.PREFIX}}e({},"OutputMapTokenValueExtractor",(()=>yr));class yr extends Yt{static PREFIX="Steps.";constructor(e){super(),this.output=e}getValueInternal(e){let t=e.split(Yt.REGEX_DOT),r=1,n=this.output.get(t[r++]);if(!n||r>=t.length)return;let s=n.get(t[r++]);if(!s||r>=t.length)return;let a=s.get(t[r++]);return this.retrieveElementFrom(e,t,r,a)}getPrefix(){return yr.PREFIX}}e({},"ArgumentsTokenValueExtractor",(()=>xr));class xr extends Yt{static PREFIX="Arguments.";constructor(e){super(),this.args=e}getValueInternal(e){let t=e.split(Yt.REGEX_DOT),r=t[1],n=r.indexOf("["),s=2;return-1!=n&&(r=t[1].substring(0,n),t[1]=t[1].substring(n),s=1),this.retrieveElementFrom(e,t,s,this.args.get(r))}getPrefix(){return xr.PREFIX}}e({},"GraphVertex",(()=>vr));e({},"ExecutionGraph",(()=>Lr));class Lr{nodeMap=new Map;constructor(e=!1){this.isSubGrph=e}getVerticesData(){return Array.from(this.nodeMap.values()).map((e=>e.getData()))}addVertex(e){if(!this.nodeMap.has(e.getUniqueKey())){let t=new vr(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 ye(this.getVerticesWithNoIncomingEdges()),r=new Set;for(;!t.isEmpty();){if(r.has(t.getFirst().getKey()))return!0;e=t.removeFirst(),r.add(e.getKey()),e.hasOutgoingEdges()&&t.addAll(Array.from(e.getOutVertices().values()).flatMap((e=>Array.from(e))))}return!1}addVertices(e){for(const t of e)this.addVertex(t)}getNodeMap(){return this.nodeMap}isSubGraph(){return this.isSubGrph}toString(){return"Execution Graph : \n"+Array.from(this.nodeMap.values()).map((e=>e.toString())).join("\n")}}class vr{outVertices=new Map;inVertices=new Set;constructor(e,t){this.data=t,this.graph=e}getData(){return this.data}setData(e){return this.data=e,this}getOutVertices(){return this.outVertices}setOutVertices(e){return this.outVertices=e,this}getInVertices(){return this.inVertices}setInVertices(e){return this.inVertices=e,this}getGraph(){return this.graph}setGraph(e){return this.graph=e,this}getKey(){return this.data.getUniqueKey()}addOutEdgeTo(e,t){return this.outVertices.has(e)||this.outVertices.set(e,new Set),this.outVertices.get(e).add(t),t.inVertices.add(new v(this,e)),t}addInEdgeTo(e,t){return this.inVertices.add(new v(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 Lr(!0);var r=new ye(Array.from(this.outVertices.get(e)??[]));for(r.map((e=>e.getData())).forEach((e=>t.addVertex(e)));!r.isEmpty();){var n=r.pop();Array.from(n.outVertices.values()).flatMap((e=>Array.from(e))).forEach((e=>{t.addVertex(e.getData()),r.add(e)}))}return t}toString(){var e=Array.from(this.getInVertices()).map((e=>e.getT1().getKey()+"("+e.getT2()+")")).join(", "),t=Array.from(this.outVertices.entries()).map((([e,t])=>e+": "+Array.from(t).map((e=>e.getKey())).join(","))).join("\n\t\t");return this.getKey()+":\n\tIn: "+e+"\n\tOut: \n\t\t"+t}}e({},"KIRuntime",(()=>Br));e({},"JsonExpression",(()=>Ur));class Ur{constructor(e){this.expression=e}getExpression(){return this.expression}}let Vr;var Gr;e({},"ParameterReferenceType",(()=>Vr)),(Gr=Vr||(Vr={})).VALUE="VALUE",Gr.EXPRESSION="EXPRESSION";function Cr(){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({},"FunctionExecutionParameters",(()=>Dr));class Dr{count=0;valueExtractors=new Map;constructor(e,t,r){this.functionRepository=e,this.schemaRepository=t,this.executionId=r??Cr()}getExecutionId(){return this.executionId}getContext(){return this.context}setContext(e){this.context=e;let t=new dr(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 yr(e);return this.valueExtractors.set(t.getPrefix(),t),this}getCount(){return this.count}setCount(e){return this.count=e,this}getValuesMap(){return this.valueExtractors}getFunctionRepository(){return this.functionRepository}setFunctionRepository(e){return this.functionRepository=e,this}getSchemaRepository(){return this.schemaRepository}setSchemaRepository(e){return this.schemaRepository=e,this}addTokenValueExtractor(...e){for(const t of e)this.valueExtractors.set(t.getPrefix(),t);return this}setValuesMap(e){for(const[t,r]of e.entries())this.valueExtractors.set(t,r);return this}}let br;var Fr;e({},"StatementMessageType",(()=>br)),(Fr=br||(br={})).ERROR="ERROR",Fr.WARNING="WARNING",Fr.MESSAGE="MESSAGE";class Br extends q{static PARAMETER_NEEDS_A_VALUE='Parameter "$" needs a value';static STEP_REGEX_PATTERN=new RegExp("Steps\\.([a-zA-Z0-9\\\\-]{1,})\\.([a-zA-Z0-9\\\\-]{1,})","g");static VERSION=1;static MAX_EXECUTION_ITERATIONS=1e7;debugMode=!1;constructor(e,t=!1){if(super(),this.debugMode=t,this.fd=e,this.fd.getVersion()>Br.VERSION)throw new I("Runtime is at a lower version "+Br.VERSION+" and trying to run code from version "+this.fd.getVersion()+".")}getSignature(){return this.fd}async getExecutionPlan(e){let t=new Lr;for(let r of Array.from(this.fd.getSteps().values()))t.addVertex(this.prepareStatementExecution(r,e.getFunctionRepository(),e.getSchemaRepository()));return new v(this.makeEdges(t),t)}async internalExecute(e){e.getContext()||e.setContext(new Map),e.getEvents()||e.setEvents(new Map),e.getSteps()||e.setSteps(new Map),e.getArguments()&&e.addTokenValueExtractor(new xr(e.getArguments())),this.debugMode&&(console.log(`EID: ${e.getExecutionId()} Executing: ${this.fd.getNamespace()}.${this.fd.getName()}`),console.log(`EID: ${e.getExecutionId()} Parameters: `,e));let t=await this.getExecutionPlan(e);this.debugMode&&console.log(`EID: ${e.getExecutionId()} ${t.getT2()?.toString()}`);let r=t.getT1();if(this.debugMode&&r.length&&(console.log(`EID: ${e.getExecutionId()} Unresolved Dependencies: `),console.log(`EID: ${e.getExecutionId()} `,r.map((e=>y.format("Steps.$.$",e.getT1(),e.getT2()))))),r.length)throw new I(y.format("Found these unresolved dependencies : $ ",r.map((e=>y.format("Steps.$.$",e.getT1(),e.getT2())))));let n=t.getT2().getVerticesData().filter((e=>e.getMessages().length)).map((e=>e.getStatement().getStatementName()+": \n"+e.getMessages().join(",")));if(n?.length)throw new I("Please fix the errors in the function definition before execution : \n"+n.join(",\n"));return await this.executeGraph(t.getT2(),e)}async executeGraph(e,t){let r=new ye;r.addAll(e.getVerticesWithNoIncomingEdges());let n=new ye;for(;!(r.isEmpty()&&n.isEmpty()||t.getEvents()?.has(O.OUTPUT));)if(await this.processBranchQue(t,r,n),await this.processExecutionQue(t,r,n),t.setCount(t.getCount()+1),t.getCount()==Br.MAX_EXECUTION_ITERATIONS)throw new I("Execution locked in an infinite loop");if(!e.isSubGraph()&&!t.getEvents()?.size)throw new I("No events raised");return new P(Array.from(t.getEvents()?.entries()??[]).flatMap((e=>e[1].map((t=>w.of(e[0],t))))))}async processExecutionQue(e,t,r){if(!t.isEmpty()){let n=t.pop();await this.allDependenciesResolvedVertex(n,e.getSteps())?await this.executeVertex(n,e,r,t,e.getFunctionRepository()):t.add(n)}}async processBranchQue(e,t,r){if(r.length){let n=r.pop();await this.allDependenciesResolvedTuples(n.getT2(),e.getSteps())?await this.executeBranch(e,t,n):r.add(n)}}async executeBranch(e,t,r){let n,s=r.getT4();do{if(await this.executeGraph(r.getT1(),e),n=r.getT3().next(),n&&(e.getSteps()?.has(s.getData().getStatement().getStatementName())||e.getSteps()?.set(s.getData().getStatement().getStatementName(),new Map),e.getSteps()?.get(s.getData().getStatement().getStatementName())?.set(n.getName(),this.resolveInternalExpressions(n.getResult(),e)),this.debugMode)){const t=s.getData().getStatement();console.log(`EID: ${e.getExecutionId()} Step : ${t.getStatementName()} => ${t.getNamespace()}.${t.getName()}`),console.log(`EID: ${e.getExecutionId()} Event : ${n.getName()} : `,e.getSteps().get(t.getStatementName()).get(n.getName()))}}while(n&&n.getName()!=O.OUTPUT);n?.getName()==O.OUTPUT&&s.getOutVertices().has(O.OUTPUT)&&(s?.getOutVertices()?.get(O.OUTPUT)??[]).forEach((async r=>{await this.allDependenciesResolvedVertex(r,e.getSteps())&&t.add(r)}))}async executeVertex(e,t,r,n,s){let a=e.getData().getStatement(),i=s.find(a.getNamespace(),a.getName());if(!i)throw new I(y.format("$.$ function is not found.",a.getNamespace(),a.getName()));let o=i?.getSignature().getParameters(),E=this.getArgumentsFromParametersMap(t,a,o??new Map);this.debugMode&&(console.log(`EID: ${t.getExecutionId()} Step : ${a.getStatementName()} => ${a.getNamespace()}.${a.getName()}`),console.log(`EID: ${t.getExecutionId()} Arguments : `,E));let u,A=t.getContext();u=i instanceof Br?new Dr(t.getFunctionRepository(),t.getSchemaRepository(),`${t.getExecutionId()}_${a.getStatementName()}`).setArguments(E):new Dr(t.getFunctionRepository(),t.getSchemaRepository(),t.getExecutionId()).setValuesMap(t.getValuesMap()).setContext(A).setArguments(E).setEvents(t.getEvents()).setSteps(t.getSteps()).setStatementExecution(e.getData()).setCount(t.getCount());let R=await i.execute(u),T=R.next();if(!T)throw new I(y.format("Executing $ returned no events",a.getStatementName()));let g=T.getName()==O.OUTPUT;if(t.getSteps()?.has(a.getStatementName())||t.getSteps().set(a.getStatementName(),new Map),t.getSteps().get(a.getStatementName()).set(T.getName(),this.resolveInternalExpressions(T.getResult(),t)),this.debugMode&&(console.log(`EID: ${t.getExecutionId()} Step : ${a.getStatementName()} => ${a.getNamespace()}.${a.getName()}`),console.log(`EID: ${t.getExecutionId()} Event : ${T.getName()} : `,t.getSteps().get(a.getStatementName()).get(T.getName()))),g){let r=e.getOutVertices().get(O.OUTPUT);r&&r.forEach((async e=>{await this.allDependenciesResolvedVertex(e,t.getSteps())&&n.add(e)}))}else{let t=e.getSubGraphOfType(T.getName()),n=this.makeEdges(t);r.push(new V(t,n,R,e))}}resolveInternalExpressions(e,t){return e?Array.from(e.entries()).map((e=>new v(e[0],this.resolveInternalExpression(e[1],t)))).reduce(((e,t)=>(e.set(t.getT1(),t.getT2()),e)),new Map):e}resolveInternalExpression(e,t){if(s(e)||"object"!=typeof e)return e;if(e instanceof Ur){return new jt(e.getExpression()).evaluate(t.getValuesMap())}if(Array.isArray(e)){let r=[];for(let n of e)r.push(this.resolveInternalExpression(n,t));return r}if("object"==typeof e){let r={};for(let n of Object.entries(e))r[n[0]]=this.resolveInternalExpression(n[1],t);return r}}allDependenciesResolvedTuples(e,t){for(let r of e){if(!t.has(r.getT1()))return!1;if(!t.get(r.getT1())?.get(r.getT2()))return!1}return!0}allDependenciesResolvedVertex(e,t){return!e.getInVertices().size||0==Array.from(e.getInVertices()).filter((e=>{let r=e.getT1().getData().getStatement().getStatementName(),n=e.getT2();return!(t.has(r)&&t.get(r)?.has(n))})).length}getArgumentsFromParametersMap(e,t,r){return Array.from(t.getParameterMap().entries()).map((t=>{let n,s=Array.from(t[1]?.values()??[]);if(!s?.length)return new v(t[0],n);let a=r.get(t[0]);return a?(n=a.isVariableArgument()?s.map((t=>this.parameterReferenceEvaluation(e,t))).flatMap((e=>Array.isArray(e)?e:[e])):this.parameterReferenceEvaluation(e,s[0]),new v(t[0],n)):new v(t[0],void 0)})).filter((e=>!s(e.getT2()))).reduce(((e,t)=>(e.set(t.getT1(),t.getT2()),e)),new Map)}parameterReferenceEvaluation(e,t){let r;if(t.getType()==Vr.VALUE)r=this.resolveInternalExpression(t.getValue(),e);else if(t.getType()==Vr.EXPRESSION&&!x.isNullOrBlank(t.getExpression())){r=new jt(t.getExpression()??"").evaluate(e.getValuesMap())}return r}prepareStatementExecution(e,t,r){let n=new Pr(e),a=t.find(e.getNamespace(),e.getName());if(!a)throw new I(y.format("$.$ was not available",e.getNamespace(),e.getName()));let i=new Map(a.getSignature().getParameters());for(let t of Array.from(e.getParameterMap().entries())){let e=i.get(t[0]);if(!e)continue;let a=Array.from(t[1]?.values()??[]);if(a.length||e.isVariableArgument()){if(e.isVariableArgument())for(let t of a)this.parameterReferenceValidation(n,e,t,r);else if(a.length){let t=a[0];this.parameterReferenceValidation(n,e,t,r)}i.delete(e.getParameterName())}else s(C.getDefaultValue(e.getSchema(),r))&&n.addMessage(br.ERROR,y.format(Br.PARAMETER_NEEDS_A_VALUE,e.getParameterName())),i.delete(e.getParameterName())}if(!s(n.getStatement().getDependentStatements()))for(let e of n.getStatement().getDependentStatements().entries())e[1]&&n.addDependency(e[0]);if(i.size)for(let e of Array.from(i.values()))e.isVariableArgument()||s(C.getDefaultValue(e.getSchema(),r))&&n.addMessage(br.ERROR,y.format(Br.PARAMETER_NEEDS_A_VALUE,e.getParameterName()));return n}parameterReferenceValidation(e,t,r,n){if(r){if(r.getType()==Vr.VALUE){s(r.getValue())&&s(C.getDefaultValue(t.getSchema(),n))&&e.addMessage(br.ERROR,y.format(Br.PARAMETER_NEEDS_A_VALUE,t.getParameterName()));let a=new ye;for(a.push(new v(t.getSchema(),r.getValue()));!a.isEmpty();){let t=a.pop();if(t.getT2()instanceof Ur)this.addDependencies(e,t.getT2().getExpression());else{if(s(t.getT1())||s(t.getT1().getType()))continue;if(t.getT1().getType()?.contains(i.ARRAY)&&Array.isArray(t.getT2())){let e=t.getT1().getItems();if(!e)continue;if(e.isSingleType())for(let r of t.getT2())a.push(new v(e.getSingleSchema(),r));else{let r=t.getT2();for(let t=0;t<r.length;t++)a.push(new v(e.getTupleSchema()[t],r[t]))}}else if(t.getT1().getType()?.contains(i.OBJECT)&&"object"==typeof t.getT2()){let r=t.getT1();if(r.getName()===h.EXPRESSION.getName()&&r.getNamespace()===h.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])&&a.push(new v(r.getProperties().get(e[0]),e[1]))}}}}else if(r.getType()==Vr.EXPRESSION)if(x.isNullOrBlank(r.getExpression()))s(C.getDefaultValue(t.getSchema(),n))&&e.addMessage(br.ERROR,y.format(Br.PARAMETER_NEEDS_A_VALUE,t.getParameterName()));else try{this.addDependencies(e,r.getExpression())}catch(t){e.addMessage(br.ERROR,y.format("Error evaluating $ : $",r.getExpression(),t))}}else s(C.getDefaultValue(t.getSchema(),n))&&e.addMessage(br.ERROR,y.format(Br.PARAMETER_NEEDS_A_VALUE,t.getParameterName()))}addDependencies(e,t){t&&Array.from(t.match(Br.STEP_REGEX_PATTERN)??[]).forEach((t=>e.addDependency(t)))}makeEdges(e){let t=e.getNodeMap().values(),r=[];for(let n of Array.from(t))for(let t of n.getData().getDependencies()){let s=t.indexOf(".",6),a=t.substring(6,s),i=t.indexOf(".",s+1),o=-1==i?t.substring(s+1):t.substring(s+1,i);e.getNodeMap().has(a)||r.push(new v(a,o));let E=e.getNodeMap().get(a);E&&n.addInEdgeTo(E,o)}return r}}e({},"KIRunConstants",(()=>Yr));class Yr{static NAMESPACE="namespace";static NAME="name";static ID="id";constructor(){}}e({},"Position",(()=>Hr));class Hr{static SCHEMA_NAME="Position";static SCHEMA=(new g).setNamespace(n.SYSTEM).setName(Hr.SCHEMA_NAME).setType(R.of(i.OBJECT)).setProperties(new Map([["left",g.ofFloat("left")],["top",g.ofFloat("top")]]));constructor(e,t){this.left=e,this.top=t}getLeft(){return this.left}setLeft(e){return this.left=e,this}getTop(){return this.top}setTop(e){return this.top=e,this}static from(e){return e?new Hr(e.left,e.top):new Hr(-1,-1)}}e({},"FunctionDefinition",(()=>qr));e({},"Statement",(()=>Xr));e({},"AbstractStatement",(()=>kr));class kr{override=!1;constructor(e){e&&(this.comment=e.comment,this.description=e.description,this.position=e.position?new Hr(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",(()=>$r));class $r{static SCHEMA_NAME="ParameterReference";static SCHEMA=(new g).setNamespace(n.SYSTEM).setName($r.SCHEMA_NAME).setType(R.of(i.OBJECT)).setProperties(new Map([["key",g.ofString("key")],["value",g.ofAny("value")],["expression",g.ofString("expression")],["type",g.ofString("type").setEnums(["EXPRESSION","VALUE"])]]));constructor(e){if(e instanceof $r){let t=e;this.key=t.key,this.type=t.type,this.value=s(t.value)?void 0:JSON.parse(JSON.stringify(t.value)),this.expression=t.expression}else this.type=e,this.key=Cr()}getType(){return this.type}setType(e){return this.type=e,this}getKey(){return this.key}setKey(e){return this.key=e,this}getValue(){return this.value}setValue(e){return this.value=e,this}getExpression(){return this.expression}setExpression(e){return this.expression=e,this}static ofExpression(e){const t=new $r(Vr.EXPRESSION).setExpression(e);return[t.getKey(),t]}static ofValue(e){const t=new $r(Vr.VALUE).setValue(e);return[t.getKey(),t]}static from(e){return new $r(e.type).setValue(e.value).setExpression(e.expression).setKey(e.key)}}class Xr extends kr{static SCHEMA_NAME="Statement";static SCHEMA=(new g).setNamespace(n.SYSTEM).setName(Xr.SCHEMA_NAME).setType(R.of(i.OBJECT)).setProperties(new Map([["statementName",g.ofString("statementName")],["comment",g.ofString("comment")],["description",g.ofString("description")],["namespace",g.ofString("namespace")],["name",g.ofString("name")],["dependentStatements",g.ofObject("dependentstatement").setAdditionalProperties((new T).setSchemaValue(g.ofBoolean("exists")))],["parameterMap",(new g).setName("parameterMap").setAdditionalProperties((new T).setSchemaValue(g.ofObject("parameterReference").setAdditionalProperties((new T).setSchemaValue($r.SCHEMA))))],["position",Hr.SCHEMA]]));constructor(e,t,r){if(super(e instanceof Xr?e:void 0),e instanceof Xr){let t=e;this.statementName=t.statementName,this.name=t.name,this.namespace=t.namespace,t.parameterMap&&(this.parameterMap=new Map(Array.from(t.parameterMap.entries()).map((e=>[e[0],new Map(Array.from(e[1].entries()).map((e=>[e[0],new $r(e[1])])))])))),t.dependentStatements&&(this.dependentStatements=new Map(Array.from(t.dependentStatements.entries())))}else{if(this.statementName=e,!r||!t)throw new Error("Unknown constructor");this.namespace=t,this.name=r}}getStatementName(){return this.statementName}setStatementName(e){return this.statementName=e,this}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getParameterMap(){return this.parameterMap||(this.parameterMap=new Map),this.parameterMap}setParameterMap(e){return this.parameterMap=e,this}getDependentStatements(){return this.dependentStatements??new Map}setDependentStatements(e){return this.dependentStatements=e,this}equals(e){if(!(e instanceof Xr))return!1;return e.statementName==this.statementName}static ofEntry(e){return[e.statementName,e]}static from(e){return new Xr(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])=>$r.from(t))).map((e=>[e.getKey(),e])))])))).setDependentStatements(new Map(Object.entries(e.dependentStatements??{}))).setPosition(Hr.from(e.position)).setComment(e.comment).setDescription(e.description)}}e({},"StatementGroup",(()=>Wr));class Wr extends kr{static SCHEMA_NAME="StatementGroup";static SCHEMA=(new g).setNamespace(n.SYSTEM).setName(Wr.SCHEMA_NAME).setType(R.of(i.OBJECT)).setProperties(new Map([["statementGroupName",g.ofString("statementGroupName")],["comment",g.ofString("comment")],["description",g.ofString("description")],["position",Hr.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 Wr(e.statementGroupName,new Map(Object.entries(e.statements||{}).map((([e,t])=>[e,"true"==(""+t)?.toLowerCase()])))).setPosition(Hr.from(e.position)).setComment(e.comment).setDescription(e.description)}}const jr=(new g).setNamespace(n.SYSTEM).setName("FunctionDefinition").setProperties(new Map([["name",g.ofString("name")],["namespace",g.ofString("namespace")],["parameters",g.ofArray("parameters",h.SCHEMA)],["events",g.ofObject("events").setAdditionalProperties((new T).setSchemaValue(O.SCHEMA))],["steps",g.ofObject("steps").setAdditionalProperties((new T).setSchemaValue(Xr.SCHEMA))]]));jr.getProperties()?.set("parts",g.ofArray("parts",jr));class qr extends d{static SCHEMA=jr;version=1;constructor(e){super(e)}getVersion(){return this.version}setVersion(e){return this.version=e,this}getSteps(){return this.steps??new Map}setSteps(e){return this.steps=e,this}getStepGroups(){return this.stepGroups}setStepGroups(e){return this.stepGroups=e,this}getParts(){return this.parts}setParts(e){return this.parts=e,this}static from(e){return e?new qr(e.name).setSteps(new Map(Object.values(e.steps??{}).filter((e=>!!e)).map((e=>[e.statementName,Xr.from(e)])))).setStepGroups(new Map(Object.values(e.stepGroups??{}).filter((e=>!!e)).map((e=>[e.statementGroupName,Wr.from(e)])))).setParts(Array.from(e.parts??[]).filter((e=>!!e)).map((e=>qr.from(e)))).setVersion(e.version??1).setEvents(new Map(Object.values(e.events??{}).filter((e=>!!e)).map((e=>[e.name,O.from(e)])))).setParameters(new Map(Object.values(e.parameters??{}).filter((e=>!!e)).map((e=>[e.parameterName,h.from(e)])))):new qr("unknown")}}e({},"Argument",(()=>Jr));class Jr{argumentIndex=0;constructor(e,t,r){this.argumentIndex=e,this.name=t,this.value=r}getArgumentIndex(){return this.argumentIndex}setArgumentIndex(e){return this.argumentIndex=e,this}getName(){return this.name}setName(e){return this.name=e,this}getValue(){return this.value}setValue(e){return this.value=e,this}static of(e,t){return new Jr(0,e,t)}}var zr={};t(zr,Lt),t(zr,Gt),t(zr,Dt),t(zr,Ft),t(zr,vt);var Qr={};t(Qr,Ye),t(Qr,ke),t(Qr,Xe),t(Qr,je),t(Qr,Je),t(Qr,Qe),t(Qr,Ze),t(Qr,be),t(Qr,tt),t(Qr,nt),t(Qr,at),t(Qr,ot),t(Qr,ut),t(Qr,Rt),t(Qr,gt),t(Qr,pt),t(Qr,ht),t(Qr,Nt),t(Qr,_t),t(Qr,wt),t(Qr,Mt),t(Qr,Pt),t(Qr,yt),t(Qr,De);export{N as KIRunSchemaRepository,wr as KIRunFunctionRepository,Z as PrimitiveUtil,S as MapUtil,M as MapEntry,s as isNullValue,ye as LinkedList,Le as StringBuilder,y as StringFormatter,x as StringUtil,v as Tuple2,U as Tuple3,V as Tuple4,te as ArrayUtil,de as deepEqual,Pr as StatementExecution,Ir as StatementMessage,we as ContextElement,dr as ContextTokenValueExtractor,yr as OutputMapTokenValueExtractor,xr as ArgumentsTokenValueExtractor,vr as GraphVertex,Lr as ExecutionGraph,Br as KIRuntime,br as StatementMessageType,Dr as FunctionExecutionParameters,Ce as Expression,Yt as TokenValueExtractor,kt as LiteralTokenValueExtractor,jt as ExpressionEvaluator,Ge as Operation,Ue as ExpressionToken,ve as ExpressionEvaluationException,Ve as ExpressionTokenValue,q as AbstractFunction,n as Namespaces,Ur as JsonExpression,T as AdditionalPropertiesType,g as Schema,Y as NumberValidator,F as BooleanValidator,B as NullValidator,b as ArrayValidator,D as AnyOfAllOfOneOfValidator,X as StringValidator,H as ObjectValidator,j as SchemaValidator,G as SchemaValidationException,l as SchemaReferenceException,W as TypeValidator,a as ArraySchemaType,A as SingleType,R as TypeUtil,u as MultipleType,E as Type,i as SchemaType,C as SchemaUtil,k as StringFormat,Mr as HybridRepository,Yr as KIRunConstants,h as Parameter,P as FunctionOutput,Hr as Position,qr as FunctionDefinition,Vr as ParameterReferenceType,w as EventResult,kr as AbstractStatement,Xr as Statement,Wr as StatementGroup,d as FunctionSignature,O as Event,p as ParameterType,Jr as Argument,$r as ParameterReference,K as ExecutionException,I as KIRuntimeException,Vt as ArithmeticUnaryMinusOperator,Ct as ArithmeticUnaryPlusOperator,bt as BitwiseComplementOperator,Bt as LogicalNotOperator,Ut as UnaryOperator,He as ArithmeticAdditionOperator,$e as ArithmeticDivisionOperator,We as ArithmeticIntegerDivisionOperator,qe as ArithmeticModulusOperator,ze as ArithmeticMultiplicationOperator,Ke as ArithmeticSubtractionOperator,et as ArrayOperator,Fe as BinaryOperator,rt as BitwiseAndOperator,st as BitwiseLeftShiftOperator,it as BitwiseOrOperator,Et as BitwiseRightShiftOperator,At as BitwiseUnsignedRightShiftOperator,Tt as BitwiseXorOperator,lt as LogicalAndOperator,ct as LogicalEqualOperator,mt as LogicalGreaterThanEqualOperator,ft as LogicalGreaterThanOperator,St as LogicalLessThanEqualOperator,It as LogicalNotEqualOperator,Ot as LogicalLessThanOperator,dt as LogicalOrOperator,xt as ObjectOperator,Be as LogicalNullishCoalescingOperator,Xt as ConditionalTernaryOperator};
|
|
2
2
|
//# sourceMappingURL=module.js.map
|