@fincity/kirun-js 1.9.1 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/__tests__/engine/function/system/math/MathFunctionRepositoryTest.ts +118 -75
  2. package/__tests__/engine/function/system/string/StringFunctionRepoTest2.ts +3 -3
  3. package/__tests__/engine/function/system/string/StringFunctionRepoTest3.ts +2 -2
  4. package/__tests__/engine/function/system/string/StringFunctionRepositoryTest.ts +8 -8
  5. package/__tests__/engine/json/schema/SchemaUtil.ts +1 -1
  6. package/__tests__/engine/json/schema/type/TypeUtilTest.ts +1 -1
  7. package/__tests__/engine/json/schema/validator/AnyOfAllOfOneOfValidatorTest.ts +24 -19
  8. package/__tests__/engine/json/schema/validator/ArrayContainsValidatorTest.ts +22 -22
  9. package/__tests__/engine/json/schema/validator/ArraySchemaAdapterTypeTest.ts +10 -10
  10. package/__tests__/engine/json/schema/validator/ArraySchemaTypeTest.ts +22 -22
  11. package/__tests__/engine/json/schema/validator/ArrayValidatorTest.ts +13 -13
  12. package/__tests__/engine/json/schema/validator/NotValidatorTest.ts +10 -9
  13. package/__tests__/engine/json/schema/validator/NullValidatorTest.ts +6 -6
  14. package/__tests__/engine/json/schema/validator/ObjectPropertiesTest.ts +4 -4
  15. package/__tests__/engine/json/schema/validator/ObjectValidatorTest.ts +32 -28
  16. package/__tests__/engine/json/schema/validator/SchemaAnyOfValidatorTest.ts +184 -182
  17. package/__tests__/engine/json/schema/validator/SchemaValidatorTest.ts +43 -32
  18. package/__tests__/engine/json/schema/validator/StringFormatSchemaValidatorTest.ts +24 -24
  19. package/__tests__/engine/json/schema/validator/StringValidatorTest.ts +14 -14
  20. package/__tests__/engine/repository/KIRunFunctionRepositoryTest.ts +7 -7
  21. package/__tests__/engine/repository/RepositoryFilterTest.ts +7 -7
  22. package/__tests__/engine/runtime/KIRuntimeFunctionInFunction.ts +11 -7
  23. package/__tests__/engine/runtime/KIRuntimeNoParamMapTest.ts +2 -2
  24. package/__tests__/engine/runtime/KIRuntimeNoValuesTest.ts +2 -2
  25. package/__tests__/engine/runtime/KIRuntimeTest.ts +8 -6
  26. package/__tests__/engine/runtime/KIRuntimeTestWithoutGenEvent.ts +4 -1
  27. package/__tests__/engine/runtime/KIRuntimeUndefinedParamTest.ts +23 -26
  28. package/__tests__/engine/runtime/KIRuntimeValuesEmptyTest.ts +6 -6
  29. package/__tests__/indexTest.ts +10 -10
  30. package/dist/index.js +1 -1
  31. package/dist/index.js.map +1 -1
  32. package/dist/module.js +1 -1
  33. package/dist/module.js.map +1 -1
  34. package/dist/types.d.ts +17 -17
  35. package/dist/types.d.ts.map +1 -1
  36. package/package.json +4 -4
  37. package/src/engine/HybridRepository.ts +5 -5
  38. package/src/engine/Repository.ts +2 -2
  39. package/src/engine/function/AbstractFunction.ts +35 -31
  40. package/src/engine/function/system/array/ArrayFunctionRepository.ts +8 -6
  41. package/src/engine/function/system/math/MathFunctionRepository.ts +7 -5
  42. package/src/engine/function/system/object/ObjectFunctionRepository.ts +7 -5
  43. package/src/engine/function/system/string/StringFunctionRepository.ts +8 -6
  44. package/src/engine/json/schema/SchemaUtil.ts +33 -30
  45. package/src/engine/json/schema/validator/ArrayValidator.ts +25 -20
  46. package/src/engine/json/schema/validator/ObjectValidator.ts +32 -14
  47. package/src/engine/json/schema/validator/SchemaValidator.ts +15 -11
  48. package/src/engine/json/schema/validator/TypeValidator.ts +5 -5
  49. package/src/engine/repository/KIRunFunctionRepository.ts +3 -2
  50. package/src/engine/repository/KIRunSchemaRepository.ts +7 -5
  51. package/src/engine/runtime/KIRuntime.ts +14 -14
  52. package/src/engine/util/duplicate.ts +1 -1
  53. package/tsconfig.json +6 -2
package/dist/module.js CHANGED
@@ -1,2 +1,2 @@
1
- function e(e,t,r,n){Object.defineProperty(e,t,{get:r,set:n,enumerable:!0,configurable:!0})}function t(e,t){return Object.keys(t).forEach((function(r){"default"===r||"__esModule"===r||e.hasOwnProperty(r)||Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[r]}})})),e}e({},"KIRunSchemaRepository",(()=>f));var r={};e(r,"AdditionalType",(()=>g)),e(r,"Schema",(()=>c));e({},"Namespaces",(()=>n));class n{static SYSTEM="System";static SYSTEM_CTX="System.Context";static SYSTEM_LOOP="System.Loop";static SYSTEM_ARRAY="System.Array";static SYSTEM_OBJECT="System.Object";static MATH="System.Math";static STRING="System.String";constructor(){}}e({},"ArraySchemaType",(()=>a));function s(e){return null==e}e({},"isNullValue",(()=>s));class a{constructor(e){e&&(this.singleSchema=e.singleSchema?new c(e.singleSchema):void 0,this.tupleSchema=e.tupleSchema?e.tupleSchema.map((e=>new c(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;if(Array.isArray(e))return(new a).setTupleSchema(c.fromListOfSchemas(e));let t=Object.keys(e);if(-1!=t.indexOf("singleSchema"))return(new a).setSingleSchema(c.from(e.singleSchema));if(-1!=t.indexOf("tupleSchema"))return(new a).setTupleSchema(c.fromListOfSchemas(e.tupleSchema));let r=c.from(e);return r?(new a).setSingleSchema(r):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",(()=>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 l{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 g{constructor(e){e&&(this.booleanValue=e.booleanValue,e.schemaValue&&(this.schemaValue=new c(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(s(e))return;const t=new g;if("boolean"==typeof e)t.booleanValue=e;else{let r=Object.keys(e);-1!=r.indexOf("booleanValue")?t.booleanValue=e.booleanValue:-1!=r.indexOf("schemaValue")?t.schemaValue=c.from(e.schemaValue):t.schemaValue=c.from(e)}return t}}class c{static NULL=(new c).setNamespace(n.SYSTEM).setName("Null").setType(l.of(i.NULL)).setConstant(void 0);static TYPE_SCHEMA=(new c).setType(l.of(i.STRING)).setEnums(["INTEGER","LONG","FLOAT","DOUBLE","STRING","OBJECT","ARRAY","BOOLEAN","NULL"]);static SCHEMA=(new c).setNamespace(n.SYSTEM).setName("Schema").setType(l.of(i.OBJECT)).setProperties(new Map([["namespace",c.of("namespace",i.STRING).setDefaultValue("_")],["name",c.ofString("name")],["version",c.of("version",i.INTEGER).setDefaultValue(1)],["ref",c.ofString("ref")],["type",(new c).setAnyOf([c.TYPE_SCHEMA,c.ofArray("type",c.TYPE_SCHEMA)])],["anyOf",c.ofArray("anyOf",c.ofRef("System.Schema"))],["allOf",c.ofArray("allOf",c.ofRef("System.Schema"))],["oneOf",c.ofArray("oneOf",c.ofRef("System.Schema"))],["not",c.ofRef("System.Schema")],["title",c.ofString("title")],["description",c.ofString("description")],["id",c.ofString("id")],["examples",c.ofAny("examples")],["defaultValue",c.ofAny("defaultValue")],["comment",c.ofString("comment")],["enums",c.ofArray("enums",c.ofString("enums"))],["constant",c.ofAny("constant")],["pattern",c.ofString("pattern")],["format",c.of("format",i.STRING).setEnums(["DATETIME","TIME","DATE","EMAIL","REGEX"])],["minLength",c.ofInteger("minLength")],["maxLength",c.ofInteger("maxLength")],["multipleOf",c.ofLong("multipleOf")],["minimum",c.ofNumber("minimum")],["maximum",c.ofNumber("maximum")],["exclusiveMinimum",c.ofNumber("exclusiveMinimum")],["exclusiveMaximum",c.ofNumber("exclusiveMaximum")],["properties",c.of("properties",i.OBJECT).setAdditionalProperties((new g).setSchemaValue(c.ofRef("System.Schema")))],["additionalProperties",(new c).setName("additionalProperty").setNamespace(n.SYSTEM).setAnyOf([c.ofBoolean("additionalProperty"),c.ofObject("additionalProperty").setRef("System.Schema")]).setDefaultValue(!0)],["required",c.ofArray("required",c.ofString("required")).setDefaultValue([])],["propertyNames",c.ofRef("System.Schema")],["minProperties",c.ofInteger("minProperties")],["maxProperties",c.ofInteger("maxProperties")],["patternProperties",c.of("patternProperties",i.OBJECT).setAdditionalProperties((new g).setSchemaValue(c.ofRef("System.Schema")))],["items",(new c).setName("items").setAnyOf([c.ofRef("System.Schema").setName("item"),c.ofArray("tuple",c.ofRef("System.Schema"))])],["contains",c.ofRef("System.Schema")],["minContains",c.ofInteger("minContains")],["maxContains",c.ofInteger("maxContains")],["minItems",c.ofInteger("minItems")],["maxItems",c.ofInteger("maxItems")],["uniqueItems",c.ofBoolean("uniqueItems")],["additionalItems",(new c).setName("additionalItems").setNamespace(n.SYSTEM).setAnyOf([c.ofBoolean("additionalItems"),c.ofObject("additionalItems").setRef("System.Schema")])],["$defs",c.of("$defs",i.OBJECT).setAdditionalProperties((new g).setSchemaValue(c.ofRef("System.Schema")))],["permission",c.ofString("permission")]])).setRequired([]);static ofString(e){return(new c).setType(l.of(i.STRING)).setName(e)}static ofInteger(e){return(new c).setType(l.of(i.INTEGER)).setName(e)}static ofFloat(e){return(new c).setType(l.of(i.FLOAT)).setName(e)}static ofLong(e){return(new c).setType(l.of(i.LONG)).setName(e)}static ofDouble(e){return(new c).setType(l.of(i.DOUBLE)).setName(e)}static ofAny(e){return(new c).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 c).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 c).setType(l.of(i.INTEGER,i.LONG,i.FLOAT,i.DOUBLE)).setName(e)}static ofBoolean(e){return(new c).setType(l.of(i.BOOLEAN)).setName(e)}static of(e,...t){return(new c).setType(l.of(...t)).setName(e)}static ofObject(e){return(new c).setType(l.of(i.OBJECT)).setName(e)}static ofRef(e){return(new c).setRef(e)}static ofArray(e,...t){return(new c).setType(l.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=c.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=c.from(r);n&&t.set(e,n)})),t}static from(e,t=!1){if(s(e))return;let r=new c;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):l.from(e.type),r.anyOf=c.fromListOfSchemas(e.anyOf),r.allOf=c.fromListOfSchemas(e.allOf),r.oneOf=c.fromListOfSchemas(e.oneOf),r.not=c.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=c.fromMapOfSchemas(e.properties),r.additionalProperties=g.from(e.additionalProperties),r.required=e.required,r.propertyNames=c.from(e.propertyNames,!0),r.minProperties=e.minProperties,r.maxProperties=e.maxProperties,r.patternProperties=c.fromMapOfSchemas(e.patternProperties),r.items=a.from(e.items),r.additionalItems=g.from(e.additionalItems),r.contains=c.from(e.contains),r.minContains=e.minContains,r.maxContains=e.maxContains,r.minItems=e.minItems,r.maxItems=e.maxItems,r.uniqueItems=e.uniqueItems,r.$defs=c.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 c(e))),this.allOf=e.allOf?.map((e=>new c(e))),this.oneOf=e.oneOf?.map((e=>new c(e))),this.not=this.not?new c(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 c(e[1])]))):void 0,this.additionalProperties=e.additionalProperties?new g(e.additionalProperties):void 0,this.required=e.required?[...e.required]:void 0,this.propertyNames=e.propertyNames?new c(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 c(e[1])]))):void 0,this.items=e.items?new a(e.items):void 0,this.contains=e.contains?new c(this.contains):void 0,this.minContains=e.minContains,this.maxContains=e.maxContains,this.minItems=e.minItems,this.maxItems=e.maxItems,this.uniqueItems=e.uniqueItems,this.additionalItems=e.additionalItems?new g(e.additionalItems):void 0,this.$defs=e.$defs?new Map(Array.from(e.$defs.entries()).map((e=>[e[0],new c(e[1])]))):void 0,this.permission=e.permission)}getTitle(){return this.namespace&&"_"!=this.namespace?this.namespace+"."+this.name:this.name}getFullName(){return this.namespace+"."+this.name}get$defs(){return this.$defs}set$defs(e){return this.$defs=e,this}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getVersion(){return this.version}setVersion(e){return this.version=e,this}getRef(){return this.ref}setRef(e){return this.ref=e,this}getType(){return this.type}setType(e){return this.type=e,this}getAnyOf(){return this.anyOf}setAnyOf(e){return this.anyOf=e,this}getAllOf(){return this.allOf}setAllOf(e){return this.allOf=e,this}getOneOf(){return this.oneOf}setOneOf(e){return this.oneOf=e,this}getNot(){return this.not}setNot(e){return this.not=e,this}getDescription(){return this.description}setDescription(e){return this.description=e,this}getExamples(){return this.examples}setExamples(e){return this.examples=e,this}getDefaultValue(){return this.defaultValue}setDefaultValue(e){return this.defaultValue=e,this}getComment(){return this.comment}setComment(e){return this.comment=e,this}getEnums(){return this.enums}setEnums(e){return this.enums=e,this}getConstant(){return this.constant}setConstant(e){return this.constant=e,this}getPattern(){return this.pattern}setPattern(e){return this.pattern=e,this}getFormat(){return this.format}setFormat(e){return this.format=e,this}getMinLength(){return this.minLength}setMinLength(e){return this.minLength=e,this}getMaxLength(){return this.maxLength}setMaxLength(e){return this.maxLength=e,this}getMultipleOf(){return this.multipleOf}setMultipleOf(e){return this.multipleOf=e,this}getMinimum(){return this.minimum}setMinimum(e){return this.minimum=e,this}getMaximum(){return this.maximum}setMaximum(e){return this.maximum=e,this}getExclusiveMinimum(){return this.exclusiveMinimum}setExclusiveMinimum(e){return this.exclusiveMinimum=e,this}getExclusiveMaximum(){return this.exclusiveMaximum}setExclusiveMaximum(e){return this.exclusiveMaximum=e,this}getProperties(){return this.properties}setProperties(e){return this.properties=e,this}getAdditionalProperties(){return this.additionalProperties}setAdditionalProperties(e){return this.additionalProperties=e,this}getAdditionalItems(){return this.additionalItems}setAdditionalItems(e){return this.additionalItems=e,this}getRequired(){return this.required}setRequired(e){return this.required=e,this}getPropertyNames(){return this.propertyNames}setPropertyNames(e){return this.propertyNames=e,this.propertyNames.type=new 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}getMinContains(){return this.minContains}setMinContains(e){return this.minContains=e,this}getMaxContains(){return this.maxContains}setMaxContains(e){return this.maxContains=e,this}getMinItems(){return this.minItems}setMinItems(e){return this.minItems=e,this}getMaxItems(){return this.maxItems}setMaxItems(e){return this.maxItems=e,this}getUniqueItems(){return this.uniqueItems}setUniqueItems(e){return this.uniqueItems=e,this}getPermission(){return this.permission}setPermission(e){return this.permission=e,this}}e({},"Parameter",(()=>p));e({},"SchemaReferenceException",(()=>R));class R 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 m;var T;e({},"ParameterType",(()=>m)),(T=m||(m={})).CONSTANT="CONSTANT",T.EXPRESSION="EXPRESSION";class p{static SCHEMA_NAME="Parameter";static SCHEMA=(new c).setNamespace(n.SYSTEM).setName(p.SCHEMA_NAME).setProperties(new Map([["schema",c.SCHEMA],["parameterName",c.ofString("parameterName")],["variableArgument",c.of("variableArgument",i.BOOLEAN).setDefaultValue(!1)],["type",c.ofString("type").setEnums(["EXPRESSION","CONSTANT"])]]));static EXPRESSION=(new c).setNamespace(n.SYSTEM).setName("ParameterExpression").setType(l.of(i.OBJECT)).setProperties(new Map([["isExpression",c.ofBoolean("isExpression").setDefaultValue(!0)],["value",c.ofAny("value")]]));variableArgument=!1;type=m.EXPRESSION;constructor(e,t){if(e instanceof p)this.schema=new c(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=m.EXPRESSION){return[e,new p(e,t).setType(n).setVariableArgument(r)]}static of(e,t,r=!1,n=m.EXPRESSION){return new p(e,t).setType(n).setVariableArgument(r)}static from(e){const t=c.from(e.schema);if(!t)throw new R("","Parameter requires Schema");return new p(e.parameterName,t).setVariableArgument(!!e.variableArguments).setType(e.type??m.EXPRESSION)}}const h=new Map([["any",c.ofAny("any").setNamespace(n.SYSTEM)],["boolean",c.ofBoolean("boolean").setNamespace(n.SYSTEM)],["double",c.ofDouble("double").setNamespace(n.SYSTEM)],["float",c.ofFloat("float").setNamespace(n.SYSTEM)],["integer",c.ofInteger("integer").setNamespace(n.SYSTEM)],["long",c.ofLong("long").setNamespace(n.SYSTEM)],["number",c.ofNumber("number").setNamespace(n.SYSTEM)],["string",c.ofString("string").setNamespace(n.SYSTEM)],[p.EXPRESSION.getName(),p.EXPRESSION],[c.NULL.getName(),c.NULL],[c.SCHEMA.getName(),c.SCHEMA]]),N=Array.from(h.values()).map((e=>e.getFullName()));class f{find(e,t){if(n.SYSTEM==e)return h.get(t)}filter(e){return N.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}function _(e){return[e.getSignature().getName(),e]}e({},"KIRunFunctionRepository",(()=>kr));var S={};e(S,"MapUtil",(()=>M)),e(S,"MapEntry",(()=>O));class M{static of(e,t,r,n,a,i,o,E,u,A,l,g,c,R,m,T,p,h,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(l)||s(g)||_.set(l,g),s(c)||s(R)||_.set(c,R),s(m)||s(T)||_.set(m,T),s(p)||s(h)||_.set(p,h),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 O(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 O{constructor(e,t){this.k=e,this.v=t}}e({},"EventResult",(()=>I));e({},"Event",(()=>w));class w{static OUTPUT="output";static ERROR="error";static ITERATION="iteration";static TRUE="true";static FALSE="false";static SCHEMA_NAME="Event";static SCHEMA=(new c).setNamespace(n.SYSTEM).setName(w.SCHEMA_NAME).setType(l.of(i.OBJECT)).setProperties(new Map([["name",c.ofString("name")],["parameters",c.ofObject("parameter").setAdditionalProperties((new g).setSchemaValue(c.SCHEMA))]]));constructor(e,t){if(e instanceof w)this.name=e.name,this.parameters=new Map(Array.from(e.parameters.entries()).map((e=>[e[0],new c(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 w.eventMapEntry(w.OUTPUT,e)}static eventMapEntry(e,t){return[e,new w(e,t)]}static from(e){return new w(e.name,new Map(Object.entries(e.parameters??{}).map((e=>{const t=c.from(e[1]);if(!t)throw new R("","Event expects a schema");return[e[0],t]}))))}}class I{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 I.of(w.OUTPUT,e)}static of(e,t){return new I(e,t)}}e({},"FunctionOutput",(()=>d));e({},"KIRuntimeException",(()=>P));class P extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class d{index=0;constructor(e){if(s(e))throw new P("Function output is generating null");Array.isArray(e)&&e.length&&e[0]instanceof I?this.fo=e:(this.fo=[],Array.isArray(e)||(this.generator=e))}next(){if(!this.generator)return this.index<this.fo.length?this.fo[this.index++]:void 0;const e=this.generator.next();return e&&this.fo.push(e),e}allResults(){return this.fo}}e({},"FunctionSignature",(()=>y));class y{static SCHEMA_NAME="FunctionSignature";static SCHEMA=(new c).setNamespace(n.SYSTEM).setName(y.SCHEMA_NAME).setProperties(new Map([["name",c.ofString("name")],["namespace",c.ofString("namespace")],["parameters",c.ofObject("parameters").setAdditionalProperties((new g).setSchemaValue(p.SCHEMA))],["events",c.ofObject("events").setAdditionalProperties((new g).setSchemaValue(w.SCHEMA))]]));namespace="_";parameters=new Map;events=new Map;constructor(e){e instanceof y?(this.name=e.name,this.namespace=e.namespace,this.parameters=new Map(Array.from(e.parameters.entries()).map((e=>[e[0],new p(e[1])]))),this.events=new Map(Array.from(e.events.entries()).map((e=>[e[0],new w(e[1])])))):this.name=e}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getParameters(){return this.parameters}setParameters(e){return this.parameters=e,this}getEvents(){return this.events}setEvents(e){return this.events=e,this}getFullName(){return this.namespace+"."+this.name}}e({},"AbstractFunction",(()=>Q));e({},"SchemaValidator",(()=>K));e({},"deepEqual",(()=>U));e({},"LinkedList",(()=>L));e({},"StringFormatter",(()=>x));class x{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 L{head=void 0;tail=void 0;length=0;constructor(e){if(e?.length){for(const t of e)if(this.head){const e=new v(t,this.tail);this.tail.next=e,this.tail=e}else this.tail=this.head=new v(t);this.length=e.length}}push(e){const t=new v(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 P(x.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 v(e,this.head),this.head.next=this.tail):(this.tail=new v(e,this.tail),this.tail.previous.next=this.tail):this.head=this.tail=new v(e),this}map(e,t){let r=new L,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(U(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 v{constructor(e,t,r){this.value=e,this.next=r,this.previous=t}toString(){return""+this.value}}function U(e,t){let r=new L;r.push(e);let n=new L;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({},"StringUtil",(()=>V));class V{constructor(){}static nthIndex(e,t,r=0,n){if(!e)throw new P("String cannot be null");if(r<0||r>=e.length)throw new P(x.format("Cannot search from index : $",r));if(n<=0||n>e.length)throw new P(x.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",(()=>B));var C={};e(C,"Tuple2",(()=>G)),e(C,"Tuple3",(()=>b)),e(C,"Tuple4",(()=>D));class G{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 b extends G{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 D extends b{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",(()=>F));class F 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 B{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():s(e.getDefaultValue())?B.getDefaultValue(B.getSchemaFromRef(e,t,e.getRef()),t):e.getDefaultValue()}static hasDefaultValueOrNullSchemaType(e,t){return!!e&&(!!e.getConstant()||(!s(e.getDefaultValue())||(s(e.getRef())?!!e.getType()?.getAllowedSchemaTypes().has(i.NULL):this.hasDefaultValueOrNullSchemaType(B.getSchemaFromRef(e,t,e.getRef()),t))))}static getSchemaFromRef(e,t,r,n=0){if(++n==B.CYCLIC_REFERENCE_LIMIT_COUNTER)throw new F(r??"","Schema has a cyclic reference");if(!e||!r||V.isNullOrBlank(r))return;if(!r.startsWith("#")){var s=B.resolveExternalSchema(e,t,r);s&&(e=s.getT1(),r=s.getT2())}let a=r.split("/");return 1===a.length?e:B.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 R(r,B.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 R(r,"Cannot retrievie schema from non Object type schemas");o=o.getProperties()?.get(s[a])}if(a++,!o)throw new R(r,B.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);if(!V.isNullOrBlank(o.getRef())&&(o=B.getSchemaFromRef(o,t,o.getRef(),n),!o))throw new R(r,B.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH)}return o}}static resolveExternalSchema(e,t,r){if(!t)return;let n=V.splitAtFirstOccurance(r??"","/");if(!n[0])return;let s=V.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 G(a,r);if(r="#/"+n[1],!a)throw new R(r,B.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);return new G(a,r)}}constructor(){}}e({},"AnyOfAllOfOneOfValidator",(()=>Y));class Y{static validate(e,t,r,n){let s=[];return t.getOneOf()&&!t.getOneOf()?Y.oneOf(e,t,r,n,s):t.getAllOf()&&!t.getAllOf()?Y.allOf(e,t,r,n,s):t.getAnyOf()&&!t.getAnyOf()&&Y.anyOf(e,t,r,n,s),n}static anyOf(e,t,r,n,s){let a=!1;for(let i of t.getAnyOf()??[])try{Y.validate(e,i,r,n),a=!0;break}catch(e){a=!1,s.push(e)}if(!a)throw new F(K.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{Y.validate(e,i,r,n),a++}catch(e){s.push(e)}if(a!==t.getAllOf()?.length)throw new F(K.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{Y.validate(e,i,r,n),a++}catch(e){s.push(e)}if(1!=a)throw new F(K.path(e),0==a?"The value does not satisfy any schema":"The value satisfy more than one schema",s)}constructor(){}}e({},"TypeValidator",(()=>z));e({},"ArrayValidator",(()=>k));class k{static validate(e,t,r,n){if(s(n))throw new F(K.path(e),"Expected an array but found null");if(!Array.isArray(n))throw new F(K.path(e),n.toString()+" is not an Array");let a=n;return k.checkMinMaxItems(e,t,a),k.checkItems(e,t,r,a),k.checkUniqueItems(e,t,a),k.checkContains(t,e,r,a),n}static checkContains(e,t,r,n){if(s(e.getContains()))return;let a=k.countContains(t,e,r,n,s(e.getMinContains())&&s(e.getMaxContains()));if(0===a)throw new F(K.path(t),"None of the items are of type contains schema");if(!s(e.getMinContains())&&e.getMinContains()>a)throw new F(K.path(t),"The minimum number of the items of type contains schema should be "+e.getMinContains()+" but found "+a);if(!s(e.getMaxContains())&&e.getMaxContains()<a)throw new F(K.path(t),"The maximum number of the items of type contains schema should be "+e.getMaxContains()+" but found "+a)}static countContains(e,t,r,n,s){let a=0;for(let i=0;i<n.length;i++){let o=e?[...e]:[];try{if(K.validate(o,t.getContains(),r,n[i]),a++,s)break}catch(e){}}return a}static checkUniqueItems(e,t,r){if(t.getUniqueItems()&&t.getUniqueItems()){if(new Set(r).size!==r.length)throw new F(K.path(e),"Items on the array are not unique")}}static checkMinMaxItems(e,t,r){if(t.getMinItems()&&t.getMinItems()>r.length)throw new F(K.path(e),"Array should have minimum of "+t.getMinItems()+" elements");if(t.getMaxItems()&&t.getMaxItems()<r.length)throw new F(K.path(e),"Array can have maximum of "+t.getMaxItems()+" elements")}static checkItems(e,t,r,n){if(!t.getItems())return;let a=t.getItems();if(a.getSingleSchema())for(let t=0;t<n.length;t++){let s=e?[...e]:[],i=K.validate(s,a.getSingleSchema(),r,n[t]);n[t]=i}if(a.getTupleSchema()){if(a.getTupleSchema().length!==n.length&&s(t?.getAdditionalItems()))throw new F(K.path(e),"Expected an array with only "+a.getTupleSchema().length+" but found "+n.length);this.checkItemsInTupleSchema(e,r,n,a),this.checkAdditionalItems(e,t,r,n,a)}}static checkItemsInTupleSchema(e,t,r,n){for(let s=0;s<n.getTupleSchema()?.length;s++){let a=e?[...e]:[],i=K.validate(a,n.getTupleSchema()[s],t,r[s]);r[s]=i}}static checkAdditionalItems(e,t,r,n,a){if(!s(t.getAdditionalItems())){let s=t.getAdditionalItems();if(s?.getBooleanValue()){let i=c.ofAny("item");if(!1===s?.getBooleanValue()&&n.length>a.getTupleSchema()?.length)throw new F(K.path(e),"No Additional Items are defined");this.checkEachItemInAdditionalItems(e,t,r,n,a,i)}else if(s?.getSchemaValue()){let i=s.getSchemaValue();this.checkEachItemInAdditionalItems(e,t,r,n,a,i)}}}static checkEachItemInAdditionalItems(e,t,r,n,s,a){for(let t=s.getTupleSchema()?.length;t<n.length;t++){let s=e?[...e]:[],i=K.validate(s,a,r,n[t]);n[t]=i}}constructor(){}}e({},"BooleanValidator",(()=>H));class H{static validate(e,t,r){if(s(r))throw new F(K.path(e),"Expected a boolean but found null");if("boolean"!=typeof r)throw new F(K.path(e),r.toString()+" is not a boolean");return r}constructor(){}}e({},"NullValidator",(()=>$));class ${static validate(e,t,r){if(s(r))return r;throw new F(K.path(e),"Expected a null but found "+r)}constructor(){}}e({},"NumberValidator",(()=>j));class j{static validate(e,t,r,n){if(s(n))throw new F(K.path(t),"Expected a number but found null");if("number"!=typeof n)throw new F(K.path(t),n.toString()+" is not a "+e);let a=j.extractNumber(e,t,r,n);return j.checkRange(t,r,n,a),j.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 F(K.path(t),n+" is not a number of type "+e,r)}if(s(a)||(e==i.LONG||e==i.INTEGER)&&a!=n)throw new F(K.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 F(K.path(e),r.toString()+" is not multiple of "+t.getMultipleOf())}}static checkRange(e,t,r,n){if(t.getMinimum()&&j.numberCompare(n,t.getMinimum())<0)throw new F(K.path(e),r.toString()+" should be greater than or equal to "+t.getMinimum());if(t.getMaximum()&&j.numberCompare(n,t.getMaximum())>0)throw new F(K.path(e),r.toString()+" should be less than or equal to "+t.getMaximum());if(t.getExclusiveMinimum()&&j.numberCompare(n,t.getExclusiveMinimum())<=0)throw new F(K.path(e),r.toString()+" should be greater than "+t.getExclusiveMinimum());if(t.getExclusiveMaximum()&&j.numberCompare(n,t.getExclusiveMaximum())>0)throw new F(K.path(e),r.toString()+" should be less than "+t.getExclusiveMaximum())}static numberCompare(e,t){return e-t}constructor(){}}e({},"ObjectValidator",(()=>X));class X{static validate(e,t,r,n){if(s(n))throw new F(K.path(e),"Expected an object but found null");if("object"!=typeof n||Array.isArray(n))throw new F(K.path(e),n.toString()+" is not an Object");let a=n,i=new Set(Object.keys(a));X.checkMinMaxProperties(e,t,i),t.getPropertyNames()&&X.checkPropertyNameSchema(e,t,r,i),t.getRequired()&&X.checkRequired(e,t,a),t.getProperties()&&X.checkProperties(e,t,r,a,i),t.getPatternProperties()&&X.checkPatternProperties(e,t,r,a,i),t.getAdditionalProperties()&&X.checkAddtionalProperties(e,t,r,a,i)}static checkPropertyNameSchema(e,t,r,n){for(let s of Array.from(n.values()))try{K.validate(e,t.getPropertyNames(),r,s)}catch(t){throw new F(K.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 F(K.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=K.validate(s,a.getSchemaValue(),r,n[t]);n[t]=i}else if(!1===a.getBooleanValue()&&s.size)throw new F(K.path(e),Array.from(s)+" is/are additional properties which are not allowed.")}static checkPatternProperties(e,t,r,n,s){const a=new Map;for(const e of Array.from(t.getPatternProperties().keys()))a.set(e,new RegExp(e));for(const i of Array.from(s.values())){const o=e?[...e]:[];for(const e of Array.from(a.entries()))if(e[1].test(i)){const a=K.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(!n.hasOwnProperty(i[0])&&s(t)){if(s(B.getDefaultValue(i[1],r)))continue}let o=e?[...e]:[],E=K.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 F(K.path(e),"Object should have minimum of "+t.getMinProperties()+" properties");if(t.getMaxProperties()&&r.size>t.getMaxProperties())throw new F(K.path(e),"Object can have maximum of "+t.getMaxProperties()+" properties")}constructor(){}}e({},"StringValidator",(()=>J));let W;var q;e({},"StringFormat",(()=>W)),(q=W||(W={})).DATETIME="DATETIME",q.TIME="TIME",q.DATE="DATE",q.EMAIL="EMAIL",q.REGEX="REGEX";class J{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 F(K.path(e),"Expected a string but found "+r);if("string"!=typeof r)throw new F(K.path(e),r.toString()+" is not String");t.getFormat()==W.TIME?J.patternMatcher(e,t,r,J.TIME,"time pattern"):t.getFormat()==W.DATE?J.patternMatcher(e,t,r,J.DATE,"date pattern"):t.getFormat()==W.DATETIME?J.patternMatcher(e,t,r,J.DATETIME,"date time pattern"):t.getFormat()==W.EMAIL?J.patternMatcher(e,t,r,J.EMAIL,"email pattern"):t.getPattern()&&J.patternMatcher(e,t,r,new RegExp(t.getPattern()),"pattern "+t.getPattern());let n=r.length;if(t.getMinLength()&&n<t.getMinLength())throw new F(K.path(e),"Expected a minimum of "+t.getMinLength()+" characters");if(t.getMaxLength()&&n>t.getMaxLength())throw new F(K.path(e),"Expected a maximum of "+t.getMaxLength()+" characters");return r}static patternMatcher(e,t,r,n,s){if(!n.test(r))throw new F(K.path(e),r.toString()+" is not matched with the "+s)}constructor(){}}class z{static validate(e,t,r,n,s){if(t==i.STRING)J.validate(e,r,s);else if(t==i.LONG||t==i.INTEGER||t==i.DOUBLE||t==i.FLOAT)j.validate(t,e,r,s);else if(t==i.BOOLEAN)H.validate(e,r,s);else if(t==i.OBJECT)X.validate(e,r,n,s);else if(t==i.ARRAY)k.validate(e,r,n,s);else{if(t!=i.NULL)throw new F(K.path(e),t+" is not a valid type.");$.validate(e,r,s)}return s}constructor(){}}class K{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 F(K.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(!s(t.getConstant()))return K.constantValidation(e,t,n);if(t.getEnums()&&!t.getEnums()?.length)return K.enumCheck(e,t,n);if(t.getFormat()&&s(t.getType()))throw new F(this.path(e),"Type is missing in schema for declared "+t.getFormat()?.toString()+" format.");if(t.getType()&&K.typeValidation(e,t,r,n),!V.isNullOrBlank(t.getRef()))return K.validate(e,B.getSchemaFromRef(e[0],r,t.getRef()),r,n);if((t.getOneOf()||t.getAllOf()||t.getAnyOf())&&Y.validate(e,t,r,n),t.getNot()){let s=!1;try{K.validate(e,t.getNot(),r,n),s=!0}catch(e){s=!1}if(s)throw new F(K.path(e),"Schema validated value in not condition.")}return n}static constantValidation(e,t,r){if(!U(t.getConstant(),r))throw new F(K.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 F(K.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{z.validate(e,i,t,r,n),s=!0;break}catch(e){s=!1,a.push(e)}if(!s)throw new F(K.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 P(`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 G(i,K.validate(void 0,n.getSchema(),t,void 0));if(!n?.isVariableArgument())return new G(i,K.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]=K.validate(void 0,n.getSchema(),t,a[e]);return new G(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 P(`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 Z extends Q{static EVENT_INDEX_NAME="index";static EVENT_RESULT_NAME="result";static EVENT_INDEX=new w(w.OUTPUT,M.of(Z.EVENT_INDEX_NAME,c.ofInteger(Z.EVENT_INDEX_NAME)));static EVENT_RESULT_INTEGER=new w(w.OUTPUT,M.of(Z.EVENT_RESULT_NAME,c.ofInteger(Z.EVENT_RESULT_NAME)));static EVENT_RESULT_BOOLEAN=new w(w.OUTPUT,M.of(Z.EVENT_RESULT_NAME,c.ofBoolean(Z.EVENT_RESULT_NAME)));static EVENT_RESULT_ARRAY=new w(w.OUTPUT,M.of(Z.EVENT_RESULT_NAME,c.ofArray(Z.EVENT_RESULT_NAME,c.ofAny(Z.EVENT_RESULT_NAME))));static EVENT_RESULT_EMPTY=new w(w.OUTPUT,M.of());static EVENT_RESULT_ANY=new w(w.OUTPUT,M.of(this.EVENT_RESULT_NAME,c.ofAny(this.EVENT_RESULT_NAME)));static EVENT_RESULT_OBJECT=new w(w.OUTPUT,M.of(this.EVENT_RESULT_NAME,c.ofObject(this.EVENT_RESULT_NAME)));static PARAMETER_INT_LENGTH=p.of("length",c.ofInteger("length").setDefaultValue(-1));static PARAMETER_ARRAY_FIND=p.of("find",c.ofArray("eachFind",c.ofAny("eachFind")));static PARAMETER_INT_SOURCE_FROM=p.of("srcFrom",c.ofInteger("srcFrom").setDefaultValue(0).setMinimum(0));static PARAMETER_INT_SECOND_SOURCE_FROM=p.of("secondSrcFrom",c.ofInteger("secondSrcFrom").setDefaultValue(0));static PARAMETER_INT_FIND_FROM=p.of("findFrom",c.ofInteger("findFrom").setDefaultValue(0));static PARAMETER_INT_OFFSET=p.of("offset",c.ofInteger("offset").setDefaultValue(0));static PARAMETER_ROTATE_LENGTH=p.of("rotateLength",c.ofInteger("rotateLength").setDefaultValue(1).setMinimum(1));static PARAMETER_BOOLEAN_ASCENDING=p.of("ascending",c.ofBoolean("ascending").setDefaultValue(!1));static PARAMETER_FIND_PRIMITIVE=p.of("findPrimitive",c.of("findPrimitive",i.STRING,i.DOUBLE,i.FLOAT,i.INTEGER,i.LONG));static PARAMETER_ARRAY_SOURCE=p.of("source",c.ofArray("eachSource",c.ofAny("eachSource")));static PARAMETER_ARRAY_SECOND_SOURCE=p.of("secondSource",c.ofArray("eachSecondSource",c.ofAny("eachSecondSource")));static PARAMETER_ARRAY_SOURCE_PRIMITIVE=p.of("source",c.ofArray("eachSource",(new c).setName("eachSource").setType(l.of(i.STRING,i.NULL,i.INTEGER,i.FLOAT,i.DOUBLE,i.LONG))));static PARAMETER_BOOLEAN_DEEP_COPY=p.of("deepCopy",c.ofBoolean("deepCopy").setDefaultValue(!0));static PARAMETER_ANY=p.of("element",c.ofAny("element"));static PARAMETER_ANY_NOT_NULL=p.of("elementObject",c.ofAnyNotNull("elementObject"));static PARAMETER_ANY_VAR_ARGS=p.of("element",c.ofAny("element")).setVariableArgument(!0);static PARAMETER_ARRAY_RESULT=p.of(Z.EVENT_RESULT_NAME,c.ofArray("eachResult",c.ofAny("eachResult")));constructor(e,t,r){super();const s=new Map;for(const e of t)s.set(e.getParameterName(),e);this.signature=new y(e).setNamespace(n.SYSTEM_ARRAY).setParameters(s).setEvents(M.of(r.getName(),r))}getSignature(){return this.signature}}class ee extends Z{constructor(){super("Concatenate",[Z.PARAMETER_ARRAY_SOURCE,Z.PARAMETER_ARRAY_SECOND_SOURCE],Z.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(Z.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Z.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName());return new d([I.outputOf(new Map([[Z.EVENT_RESULT_NAME,[...t,...r]]]))])}}class te extends Z{constructor(){super("AddFirst",[Z.PARAMETER_ARRAY_SOURCE,Z.PARAMETER_ANY],Z.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(Z.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Z.PARAMETER_ANY.getParameterName());if(t=[...t],0==t.length)return t.push(r),new d([I.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 d([I.outputOf(new Map([[Z.EVENT_RESULT_NAME,t]]))])}}class re extends Z{constructor(){super("ArrayToArrayOfObjects",[Z.PARAMETER_ARRAY_SOURCE,p.of("keyName",c.ofString("keyName"),!0)],Z.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(re.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get("keyName");if(!t?.length)return new d([I.outputOf(new Map([[Z.EVENT_RESULT_NAME,[]]]))]);let n=t.map((e=>{const t={};if(Array.isArray(e))if(r.length)r.forEach(((r,n)=>{t[r]=e[n]}));else for(let r=0;r<e.length;r++)t[`value${r+1}`]=e[r];else t[r.length?r[0]:"value"]=e;return t}));return new d([I.outputOf(new Map([[Z.EVENT_RESULT_NAME,n]]))])}}e({},"PrimitiveUtil",(()=>se));e({},"ExecutionException",(()=>ne));class ne extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class se{static findPrimitiveNullAsBoolean(e){if(s(e))return new G(i.BOOLEAN,!1);let t=typeof e;if("object"===t)throw new ne(x.format("$ is not a primitive type",e));let r=e;return"boolean"===t?new G(i.BOOLEAN,r):"string"===t?new G(i.STRING,r):se.findPrimitiveNumberType(r)}static findPrimitive(e){if(s(e))return new G(i.NULL,void 0);let t=typeof e;if("object"===t)throw new ne(x.format("$ is not a primitive type",e));let r=e;return"boolean"===t?new G(i.BOOLEAN,r):"string"===t?new G(i.STRING,r):se.findPrimitiveNumberType(r)}static findPrimitiveNumberType(e){if(s(e)||Array.isArray(e)||"object"==typeof e)throw new ne(x.format("Unable to convert $ to a number.",e));let t=e;try{let e=t;return Number.isInteger(e)?new G(i.LONG,e):new G(i.DOUBLE,e)}catch(e){throw new ne(x.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 ae extends Z{constructor(){super("BinarySearch",[ae.PARAMETER_ARRAY_SOURCE_PRIMITIVE,ae.PARAMETER_INT_SOURCE_FROM,ae.PARAMETER_FIND_PRIMITIVE,ae.PARAMETER_INT_LENGTH],ae.EVENT_INDEX)}async internalExecute(e){let 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_FIND_PRIMITIVE.getParameterName()),s=e?.getArguments()?.get(ae.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length||r<0||r>t.length)throw new P("Search source array cannot be empty");if(-1==s&&(s=t.length-r),s=r+s,s>t.length)throw new P("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==se.compare(t[e],n)){a=e;break}se.compare(t[e],n)>0?s=e-1:r=e+1}return new d([I.outputOf(new Map([[ae.EVENT_INDEX_NAME,a]]))])}}e({},"ArrayUtil",(()=>ie));class ie{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 oe extends Z{constructor(){super("Compare",ie.of(oe.PARAMETER_ARRAY_SOURCE,oe.PARAMETER_INT_SOURCE_FROM,oe.PARAMETER_ARRAY_FIND,oe.PARAMETER_INT_FIND_FROM,oe.PARAMETER_INT_LENGTH),oe.EVENT_RESULT_INTEGER)}async internalExecute(e){var t=e?.getArguments()?.get(oe.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(oe.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(oe.PARAMETER_ARRAY_FIND.getParameterName()),s=e?.getArguments()?.get(oe.PARAMETER_INT_FIND_FROM.getParameterName()),a=e?.getArguments()?.get(oe.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new P("Compare source array cannot be empty");if(0==n.length)throw new P("Compare find array cannot be empty");if(-1==a&&(a=t.length-r),r+a>t.length)throw new P(x.format("Source array size $ is less than comparing size $",t.length,r+a));if(s+a>n.length)throw new P(x.format("Find array size $ is less than comparing size $",n.length,s+a));return new d(ie.of(I.outputOf(M.of(oe.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 P(x.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}}function Ee(e){return e?structuredClone?structuredClone(e):JSON.parse(JSON.stringify(e)):e}e({},"duplicate",(()=>Ee));class ue extends Z{constructor(){super("Copy",[ue.PARAMETER_ARRAY_SOURCE,ue.PARAMETER_INT_SOURCE_FROM,ue.PARAMETER_INT_LENGTH,ue.PARAMETER_BOOLEAN_DEEP_COPY],ue.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(ue.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ue.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(ue.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),r+n>t.length)throw new P(x.format("Array has no elements from $ to $ as the array size is $",r,r+n,t.length));var a=e?.getArguments()?.get(ue.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?Ee(t[e]):t[e]);return new d([I.outputOf(M.of(ue.EVENT_RESULT_NAME,i))])}}class Ae extends Z{constructor(){super("Delete",[Z.PARAMETER_ARRAY_SOURCE,Z.PARAMETER_ANY_VAR_ARGS],Z.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(Ae.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Ae.PARAMETER_ANY_VAR_ARGS.getParameterName());if(null==r)throw new P("The deletable var args are empty. So cannot be proceeded further.");if(0==t.length||0==r.length)throw new P("Expected a source or deletable for an array but not found any");let n=new Set;for(let e=t.length-1;e>=0;e--)for(let s=0;s<r.length;s++)n.has(e)||0!=se.compare(t[e],r[s])||n.add(t[e]);return new d([I.outputOf(new Map([[Z.EVENT_RESULT_NAME,t.filter((e=>!n.has(e)))]]))])}}class le extends Z{constructor(){super("DeleteFirst",[le.PARAMETER_ARRAY_SOURCE],le.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(le.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new P("Given source array is empty");return t=[...t],t.shift(),new d([I.outputOf(new Map([[Z.EVENT_RESULT_NAME,t]]))])}}class ge extends Z{constructor(){super("DeleteFrom",[ge.PARAMETER_ARRAY_SOURCE,ge.PARAMETER_INT_SOURCE_FROM,ge.PARAMETER_INT_LENGTH],ge.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(ge.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ge.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(ge.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new P("There are no elements to be deleted");if(t=[...t],r>=t.length||r<0)throw new P("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 P("Requested length to be deleted is more than the size of array ");return t.splice(r,n),new d([I.outputOf(new Map([[Z.EVENT_RESULT_NAME,t]]))])}}class ce extends Z{constructor(){super("DeleteLast",[ce.PARAMETER_ARRAY_SOURCE],ce.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(ce.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new P("Given source array is empty");return t=[...t],t.pop(),new d([I.outputOf(new Map([[Z.EVENT_RESULT_NAME,t]]))])}}class Re extends Z{constructor(){super("Disjoint",[Re.PARAMETER_ARRAY_SOURCE,Re.PARAMETER_INT_SOURCE_FROM,Re.PARAMETER_ARRAY_SECOND_SOURCE,Re.PARAMETER_INT_SECOND_SOURCE_FROM,Re.PARAMETER_INT_LENGTH],Re.EVENT_RESULT_ARRAY)}async internalExecute(e){let 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_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(Re.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(Re.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 P("The length which was being requested is more than than the size either source array or second source array");let i=new Set,o=new Set;for(let e=0;e<a;e++)i.add(t[e+r]);for(let e=0;e<a;e++)o.add(n[e+s]);let E=new Set;return i.forEach((e=>{o.has(e)?o.delete(e):E.add(e)})),o.forEach((e=>{i.has(e)||E.add(e)})),new d([I.outputOf(new Map([[Re.EVENT_RESULT_NAME,[...E]]]))])}}class me extends Z{constructor(){super("Equals",[me.PARAMETER_ARRAY_SOURCE,me.PARAMETER_INT_SOURCE_FROM,me.PARAMETER_ARRAY_FIND,me.PARAMETER_INT_FIND_FROM,me.PARAMETER_INT_LENGTH],me.EVENT_RESULT_BOOLEAN)}async internalExecute(e){let t=new oe,r=(await t.execute(e)).allResults()[0].getResult().get(me.EVENT_RESULT_NAME);return new d([I.outputOf(M.of(me.EVENT_RESULT_NAME,0==r))])}}class Te extends Z{constructor(){super("Fill",[Te.PARAMETER_ARRAY_SOURCE,Te.PARAMETER_INT_SOURCE_FROM,Te.PARAMETER_INT_LENGTH,Te.PARAMETER_ANY],Te.EVENT_RESULT_EMPTY)}async internalExecute(e){var t=e?.getArguments()?.get(Te.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Te.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(Te.PARAMETER_INT_LENGTH.getParameterName()),a=e?.getArguments()?.get(Te.PARAMETER_ANY.getParameterName());if(r<0)throw new P(x.format("Arrays out of bound trying to access $ index",r));-1==n&&(n=t.length-r);let i=r+n-t.length;if(t=[...t],i>0)for(let e=0;e<i;e++)t.push();for(let e=r;e<r+n;e++)t[e]=s(a)?a:Ee(a);return new d([I.outputOf(M.of(Z.EVENT_RESULT_NAME,t))])}}class pe extends Z{constructor(){super("Frequency",[pe.PARAMETER_ARRAY_SOURCE,pe.PARAMETER_ANY,pe.PARAMETER_INT_SOURCE_FROM,pe.PARAMETER_INT_LENGTH],pe.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(pe.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(pe.PARAMETER_ANY.getParameterName()),n=e?.getArguments()?.get(pe.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(pe.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)return new d([I.outputOf(new Map([[pe.EVENT_RESULT_NAME,0]]))]);if(n>t.length)throw new P("Given start point is more than the size of source");let a=n+s;if(-1==s&&(a=t.length-n),a>t.length)throw new P("Given length is more than the size of source");let i=0;for(let e=n;e<a&&e<t.length;e++)0==se.compare(t[e],r)&&i++;return new d([I.outputOf(new Map([[pe.EVENT_RESULT_NAME,i]]))])}}class he extends Z{constructor(){super("IndexOf",[he.PARAMETER_ARRAY_SOURCE,he.PARAMETER_ANY_NOT_NULL,he.PARAMETER_INT_FIND_FROM],he.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(he.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(he.PARAMETER_ANY_NOT_NULL.getParameterName());let n=e?.getArguments()?.get(he.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new d([I.outputOf(new Map([[he.EVENT_RESULT_NAME,-1]]))]);if(n<0||n>t.length)throw new P("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==se.compare(t[e],r)){s=e;break}return new d([I.outputOf(new Map([[he.EVENT_RESULT_NAME,s]]))])}}class Ne extends Z{constructor(){super("IndexOfArray",[Ne.PARAMETER_ARRAY_SOURCE,Ne.PARAMETER_ARRAY_SECOND_SOURCE,Ne.PARAMETER_INT_FIND_FROM],Ne.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(Ne.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Ne.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(Ne.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length||0==r.length)return new d([I.outputOf(new Map([[Ne.EVENT_RESULT_NAME,-1]]))]);if(n<0||n>t.length||t.length<r.length)throw new P("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==se.compare(t[e],r[n])){for(;n<s&&0==se.compare(t[e+n],r[n]);)n++;if(n==s){a=e;break}}}return new d([I.outputOf(new Map([[Ne.EVENT_RESULT_NAME,a]]))])}}class fe extends Z{constructor(){super("LastIndexOf",[fe.PARAMETER_ARRAY_SOURCE,fe.PARAMETER_ANY_NOT_NULL,fe.PARAMETER_INT_FIND_FROM],fe.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(fe.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(fe.PARAMETER_ANY_NOT_NULL.getParameterName());let n=e?.getArguments()?.get(fe.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new d([I.outputOf(new Map([[fe.EVENT_RESULT_NAME,-1]]))]);if(n<0||n>t.length)throw new P("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==se.compare(t[e],r)){s=e;break}return new d([I.outputOf(new Map([[fe.EVENT_RESULT_NAME,s]]))])}}class _e extends Z{constructor(){super("LastIndexOfArray",[_e.PARAMETER_ARRAY_SOURCE,_e.PARAMETER_ARRAY_SECOND_SOURCE,_e.PARAMETER_INT_FIND_FROM],_e.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(_e.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(_e.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(_e.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new d([I.outputOf(new Map([[_e.EVENT_RESULT_NAME,-1]]))]);if(n<0||n>t.length||r.length>t.length)throw new P("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==se.compare(t[e],r[n])){for(;n<s&&0==se.compare(t[e+n],r[n]);)n++;n==s&&(a=e)}}return new d([I.outputOf(new Map([[_e.EVENT_RESULT_NAME,a]]))])}}class Se extends Z{constructor(){super("Max",[Se.PARAMETER_ARRAY_SOURCE_PRIMITIVE],Se.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(Se.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==t.length)throw new P("Search source array cannot be empty");let r=t[0];for(let e=1;e<t.length;e++){let n=t[e];se.comparePrimitive(r,n)>=0||(r=n)}return new d([I.outputOf(new Map([[Se.EVENT_RESULT_NAME,r]]))])}}class Me extends Z{constructor(){super("Min",[Me.PARAMETER_ARRAY_SOURCE_PRIMITIVE],Me.EVENT_RESULT_ANY)}async internalExecute(e){let t,r=e?.getArguments()?.get(Me.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==r.length)throw new P("Search source array cannot be empty");for(let e=0;e<r.length;e++)s(r[e])||(void 0===t||se.comparePrimitive(r[e],t)<0)&&(t=r[e]);return new d([I.outputOf(new Map([[Me.EVENT_RESULT_NAME,t]]))])}}class Oe extends Z{constructor(){super("MisMatch",[Oe.PARAMETER_ARRAY_SOURCE,Oe.PARAMETER_INT_FIND_FROM,Oe.PARAMETER_ARRAY_SECOND_SOURCE,Oe.PARAMETER_INT_SECOND_SOURCE_FROM,Oe.PARAMETER_INT_LENGTH],Oe.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(Oe.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Oe.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(Oe.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(Oe.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(Oe.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 P("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 d([I.outputOf(new Map([[Oe.EVENT_RESULT_NAME,E]]))])}}class we extends Z{constructor(){super("Reverse",[we.PARAMETER_ARRAY_SOURCE,we.PARAMETER_INT_SOURCE_FROM,we.PARAMETER_INT_LENGTH],we.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(we.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(we.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(we.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),n>=t.length||n<0||r<0)throw new P("Please provide start point between the start and end indexes or provide the length which was less than the source size ");t=[...t];let s=r+n-1;for(;r<=s;){let e=t[r],n=t[s];t[r++]=n,t[s--]=e}return new d([I.outputOf(new Map([[we.EVENT_RESULT_NAME,t]]))])}}class Ie extends Z{constructor(){super("Rotate",[Ie.PARAMETER_ARRAY_SOURCE,Ie.PARAMETER_ROTATE_LENGTH],Ie.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(Ie.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Ie.PARAMETER_ROTATE_LENGTH.getParameterName());if(0==t.length)return new d([I.outputOf(new Map([[Z.EVENT_RESULT_NAME,t]]))]);t=[...t];let n=t.length;return r%=n,this.rotate(t,0,r-1),this.rotate(t,r,n-1),this.rotate(t,0,n-1),new d([I.outputOf(new Map([[Z.EVENT_RESULT_NAME,t]]))])}rotate(e,t,r){for(;t<r;){let n=e[t];e[t++]=e[r],e[r--]=n}}}class Pe extends Z{constructor(){super("Shuffle",[Pe.PARAMETER_ARRAY_SOURCE],Pe.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(Pe.PARAMETER_ARRAY_SOURCE.getParameterName());if(t.length<=1)return new d([I.outputOf(new Map([[Z.EVENT_RESULT_NAME,t]]))]);t=[...t];let r=0,n=t.length;for(let e=0;e<n;e++){let e=Math.floor(Math.random()*n)%n,s=t[r];t[r]=t[e],t[e]=s,r=e}return new d([I.outputOf(new Map([[Z.EVENT_RESULT_NAME,t]]))])}}class de extends Z{constructor(){super("Sort",[de.PARAMETER_ARRAY_SOURCE_PRIMITIVE,de.PARAMETER_INT_FIND_FROM,de.PARAMETER_INT_LENGTH,de.PARAMETER_BOOLEAN_ASCENDING],de.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(de.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName()),r=e?.getArguments()?.get(de.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(de.PARAMETER_INT_LENGTH.getParameterName()),s=e?.getArguments()?.get(de.PARAMETER_BOOLEAN_ASCENDING.getParameterName());if(0==t.length)return new d([I.outputOf(new Map([[Z.EVENT_RESULT_NAME,t]]))]);if(t=[...t],-1==n&&(n=t.length-r),r<0||r>=t.length||r+n>t.length)throw new P("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 d([I.outputOf(new Map([[Z.EVENT_RESULT_NAME,t]]))])}}class ye extends Z{constructor(){super("SubArray",[ye.PARAMETER_ARRAY_SOURCE,ye.PARAMETER_INT_FIND_FROM,ye.PARAMETER_INT_LENGTH],ye.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(ye.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ye.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(ye.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),n<=0)return new d([I.outputOf(new Map([]))]);if(!(r>=0&&r<t.length)||r+n>t.length)throw new P("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 d([I.outputOf(new Map([[ye.EVENT_RESULT_NAME,s]]))])}}class xe extends Z{constructor(){super("Insert",[xe.PARAMETER_ARRAY_SOURCE,xe.PARAMETER_INT_OFFSET,xe.PARAMETER_ANY],xe.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(xe.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(xe.PARAMETER_INT_OFFSET.getParameterName());var n=e?.getArguments()?.get(xe.PARAMETER_ANY.getParameterName());if(s(n)||s(r)||r>t.length)throw new P("Please valid resouces to insert at the correct location");if(t=[...t],0==t.length)return 0==r&&t.push(n),new d([I.outputOf(new Map([[Z.EVENT_RESULT_NAME,t]]))]);t.push(n);let a=t.length-1;for(r++;a>=r;){let e=t[a-1];t[a-1]=t[a],t[a--]=e}return new d([I.outputOf(new Map([[Z.EVENT_RESULT_NAME,t]]))])}}class Le extends Z{constructor(){super("InsertLast",[Le.PARAMETER_ARRAY_SOURCE,Le.PARAMETER_ANY],Le.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(Le.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(Le.PARAMETER_ANY.getParameterName());return t=[...t],t.push(r),new d([I.outputOf(new Map([[Z.EVENT_RESULT_NAME,t]]))])}}class ve extends Z{constructor(){super("RemoveDuplicates",[ve.PARAMETER_ARRAY_SOURCE,ve.PARAMETER_INT_SOURCE_FROM,ve.PARAMETER_INT_LENGTH],ve.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(ve.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ve.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(ve.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),r+n>t.length)throw new P(x.format("Array has no elements from $ to $ as the array size is $",r,r+n,t.length));const s=[...t];for(let e=r+n-1;e>=r;e--)for(let t=e-1;t>=r;t--)if(U(s[e],s[t])){s.splice(e,1);break}return new d([I.outputOf(M.of(ve.EVENT_RESULT_NAME,s))])}}e({},"ObjectValueSetterExtractor",(()=>Be));e({},"Expression",(()=>De));e({},"StringBuilder",(()=>Ue));class Ue{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 P(`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(x.format("$ : $",e,t)),this.cause=r}getCause(){return this.cause}}e({},"ExpressionToken",(()=>Ce));class Ce{constructor(e){this.expression=e}getExpression(){return this.expression}toString(){return this.expression}}e({},"ExpressionTokenValue",(()=>Ge));class Ge extends Ce{constructor(e,t){super(e),this.element=t}getTokenValue(){return this.element}getElement(){return this.element}toString(){return x.format("$: $",this.expression,this.element)}}e({},"Operation",(()=>be));class be{static MULTIPLICATION=new be("*");static DIVISION=new be("/");static INTEGER_DIVISION=new be("//");static MOD=new be("%");static ADDITION=new be("+");static SUBTRACTION=new be("-");static NOT=new be("not",void 0,!0);static AND=new be("and",void 0,!0);static OR=new be("or",void 0,!0);static LESS_THAN=new be("<");static LESS_THAN_EQUAL=new be("<=");static GREATER_THAN=new be(">");static GREATER_THAN_EQUAL=new be(">=");static EQUAL=new be("=");static NOT_EQUAL=new be("!=");static BITWISE_AND=new be("&");static BITWISE_OR=new be("|");static BITWISE_XOR=new be("^");static BITWISE_COMPLEMENT=new be("~");static BITWISE_LEFT_SHIFT=new be("<<");static BITWISE_RIGHT_SHIFT=new be(">>");static BITWISE_UNSIGNED_RIGHT_SHIFT=new be(">>>");static UNARY_PLUS=new be("UN: +","+");static UNARY_MINUS=new be("UN: -","-");static UNARY_LOGICAL_NOT=new be("UN: not","not");static UNARY_BITWISE_COMPLEMENT=new be("UN: ~","~");static ARRAY_OPERATOR=new be("[");static OBJECT_OPERATOR=new be(".");static NULLISH_COALESCING_OPERATOR=new be("??");static CONDITIONAL_TERNARY_OPERATOR=new be("?");static VALUE_OF=new Map([["MULTIPLICATION",be.MULTIPLICATION],["DIVISION",be.DIVISION],["INTEGER_DIVISON",be.INTEGER_DIVISION],["MOD",be.MOD],["ADDITION",be.ADDITION],["SUBTRACTION",be.SUBTRACTION],["NOT",be.NOT],["AND",be.AND],["OR",be.OR],["LESS_THAN",be.LESS_THAN],["LESS_THAN_EQUAL",be.LESS_THAN_EQUAL],["GREATER_THAN",be.GREATER_THAN],["GREATER_THAN_EQUAL",be.GREATER_THAN_EQUAL],["EQUAL",be.EQUAL],["NOT_EQUAL",be.NOT_EQUAL],["BITWISE_AND",be.BITWISE_AND],["BITWISE_OR",be.BITWISE_OR],["BITWISE_XOR",be.BITWISE_XOR],["BITWISE_COMPLEMENT",be.BITWISE_COMPLEMENT],["BITWISE_LEFT_SHIFT",be.BITWISE_LEFT_SHIFT],["BITWISE_RIGHT_SHIFT",be.BITWISE_RIGHT_SHIFT],["BITWISE_UNSIGNED_RIGHT_SHIFT",be.BITWISE_UNSIGNED_RIGHT_SHIFT],["UNARY_PLUS",be.UNARY_PLUS],["UNARY_MINUS",be.UNARY_MINUS],["UNARY_LOGICAL_NOT",be.UNARY_LOGICAL_NOT],["UNARY_BITWISE_COMPLEMENT",be.UNARY_BITWISE_COMPLEMENT],["ARRAY_OPERATOR",be.ARRAY_OPERATOR],["OBJECT_OPERATOR",be.OBJECT_OPERATOR],["NULLISH_COALESCING_OPERATOR",be.NULLISH_COALESCING_OPERATOR],["CONDITIONAL_TERNARY_OPERATOR",be.CONDITIONAL_TERNARY_OPERATOR]]);static UNARY_OPERATORS=new Set([be.ADDITION,be.SUBTRACTION,be.NOT,be.BITWISE_COMPLEMENT,be.UNARY_PLUS,be.UNARY_MINUS,be.UNARY_LOGICAL_NOT,be.UNARY_BITWISE_COMPLEMENT]);static ARITHMETIC_OPERATORS=new Set([be.MULTIPLICATION,be.DIVISION,be.INTEGER_DIVISION,be.MOD,be.ADDITION,be.SUBTRACTION]);static LOGICAL_OPERATORS=new Set([be.NOT,be.AND,be.OR,be.LESS_THAN,be.LESS_THAN_EQUAL,be.GREATER_THAN,be.GREATER_THAN_EQUAL,be.EQUAL,be.NOT_EQUAL,be.NULLISH_COALESCING_OPERATOR]);static BITWISE_OPERATORS=new Set([be.BITWISE_AND,be.BITWISE_COMPLEMENT,be.BITWISE_LEFT_SHIFT,be.BITWISE_OR,be.BITWISE_RIGHT_SHIFT,be.BITWISE_UNSIGNED_RIGHT_SHIFT,be.BITWISE_XOR]);static CONDITIONAL_OPERATORS=new Set([be.CONDITIONAL_TERNARY_OPERATOR]);static OPERATOR_PRIORITY=new Map([[be.UNARY_PLUS,1],[be.UNARY_MINUS,1],[be.UNARY_LOGICAL_NOT,1],[be.UNARY_BITWISE_COMPLEMENT,1],[be.ARRAY_OPERATOR,1],[be.OBJECT_OPERATOR,1],[be.MULTIPLICATION,2],[be.DIVISION,2],[be.INTEGER_DIVISION,2],[be.MOD,2],[be.ADDITION,3],[be.SUBTRACTION,3],[be.BITWISE_LEFT_SHIFT,4],[be.BITWISE_RIGHT_SHIFT,4],[be.BITWISE_UNSIGNED_RIGHT_SHIFT,4],[be.LESS_THAN,5],[be.LESS_THAN_EQUAL,5],[be.GREATER_THAN,5],[be.GREATER_THAN_EQUAL,5],[be.EQUAL,6],[be.NOT_EQUAL,6],[be.BITWISE_AND,7],[be.BITWISE_XOR,8],[be.BITWISE_OR,9],[be.AND,10],[be.OR,11],[be.NULLISH_COALESCING_OPERATOR,11],[be.CONDITIONAL_TERNARY_OPERATOR,12]]);static OPERATORS=new Set([...Array.from(be.ARITHMETIC_OPERATORS),...Array.from(be.LOGICAL_OPERATORS),...Array.from(be.BITWISE_OPERATORS),be.ARRAY_OPERATOR,be.OBJECT_OPERATOR,...Array.from(be.CONDITIONAL_OPERATORS)].map((e=>e.getOperator())));static OPERATORS_WITHOUT_SPACE_WRAP=new Set([...Array.from(be.ARITHMETIC_OPERATORS),...Array.from(be.LOGICAL_OPERATORS),...Array.from(be.BITWISE_OPERATORS),be.ARRAY_OPERATOR,be.OBJECT_OPERATOR,...Array.from(be.CONDITIONAL_OPERATORS)].filter((e=>!e.shouldBeWrappedInSpace())).map((e=>e.getOperator())));static OPERATION_VALUE_OF=new Map(Array.from(be.VALUE_OF.entries()).map((([e,t])=>[t.getOperator(),t])));static UNARY_MAP=new Map([[be.ADDITION,be.UNARY_PLUS],[be.SUBTRACTION,be.UNARY_MINUS],[be.NOT,be.UNARY_LOGICAL_NOT],[be.BITWISE_COMPLEMENT,be.UNARY_BITWISE_COMPLEMENT],[be.UNARY_PLUS,be.UNARY_PLUS],[be.UNARY_MINUS,be.UNARY_MINUS],[be.UNARY_LOGICAL_NOT,be.UNARY_LOGICAL_NOT],[be.UNARY_BITWISE_COMPLEMENT,be.UNARY_BITWISE_COMPLEMENT]]);static BIGGEST_OPERATOR_SIZE=Array.from(be.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 be.VALUE_OF.get(e)}toString(){return this.operator}}class De extends Ce{tokens=new L;ops=new L;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 Ue(""),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()==be.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()==be.ARRAY_OPERATOR&&(i=this.process(e,n,s),s=i.getT1(),a=i.getT2())}++s}if(t=n.toString(),!V.isNullOrBlank(t)){if(be.OPERATORS.has(t))throw new Ve(this.expression,"Expression is ending with an operator");this.tokens.push(new Ce(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 G(s,!1);return this.tokens.push(new Ge(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 De(t.toString())),t.setLength(0),new G(r,!1)}processOthers(e,t,r,n,s,a){let i=t-s;i=i<be.BIGGEST_OPERATOR_SIZE?i:be.BIGGEST_OPERATOR_SIZE;for(let e=i;e>0;e--){let t=this.expression.substring(s,s+e);if(be.OPERATORS_WITHOUT_SPACE_WRAP.has(t))return V.isNullOrBlank(n)||(this.tokens.push(new Ce(n)),a=!1),this.checkUnaryOperator(this.tokens,this.ops,be.OPERATION_VALUE_OF.get(t),a),a=!0,r.setLength(0),new G(s+e-1,a)}return r.append(e),new G(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 De(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(be.CONDITIONAL_TERNARY_OPERATOR,this.ops.peek());){let e=this.ops.pop();if(be.UNARY_OPERATORS.has(e)){const t=this.tokens.pop();this.tokens.push(new De("",t,void 0,e))}else{let t=this.tokens.pop(),r=this.tokens.pop();this.tokens.push(new De("",r,t,e))}}this.ops.push(be.CONDITIONAL_TERNARY_OPERATOR),this.tokens.push(new De(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 De(E)),e-1}processSubExpression(e,t,r,n,s){if(be.OPERATORS.has(r))this.checkUnaryOperator(this.tokens,this.ops,be.OPERATION_VALUE_OF.get(r),s),t.setLength(0);else if(!V.isNullOrBlank(r))throw new Ve(this.expression,x.format("Unkown token : $ found.",r));let a=1;const i=new Ue;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 De(i.toString().trim())),n}processTokenSepearator(e,t,r){return V.isNullOrBlank(t)||(be.OPERATORS.has(t)?(this.checkUnaryOperator(this.tokens,this.ops,be.OPERATION_VALUE_OF.get(t),r),r=!0):(this.tokens.push(new Ce(t)),r=!1)),e.setLength(0),r}checkUnaryOperator(e,t,r,n){if(r)if(n||e.isEmpty()){if(!be.UNARY_OPERATORS.has(r))throw new Ve(this.expression,x.format("Extra operator $ found.",r));{const e=be.UNARY_MAP.get(r);e&&t.push(e)}}else{for(;!t.isEmpty()&&this.hasPrecedence(r,t.peek());){let r=t.pop();if(be.UNARY_OPERATORS.has(r)){let t=e.pop();e.push(new De("",t,void 0,r))}else{let t=e.pop(),n=e.pop();e.push(new De("",n,t,r))}}t.push(r)}}hasPrecedence(e,t){let r=be.OPERATOR_PRIORITY.get(e),n=be.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 Ue,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 De?n[t].toString():n[t]).append(")"),t++;else if(r[s]==be.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({},"TokenValueExtractor",(()=>Fe));class Fe{static REGEX_SQUARE_BRACKETS=/[\[\]]/;static REGEX_DOT=/\./;getValue(e){let t=this.getPrefix();if(!e.startsWith(t))throw new P(x.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(Fe.REGEX_SQUARE_BRACKETS).map((e=>e.trim())).filter((e=>!V.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("length"===n&&"string"==typeof a)return a.length;if(Array.isArray(a)){if("length"===n)return a.length;try{let e=parseInt(n);if(isNaN(e))throw new Error(x.format("$ is not a number",e));if(e>=a.length)return;return a[e]}catch(t){throw new Ve(e,x.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,x.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(x.format("$ is not a number",t));if(!Array.isArray(a))throw new Ve(e,x.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,x.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,x.format("Unable to retrive $ from $ in the path $",t[r],n.toString(),e))}}class Be extends Fe{constructor(e,t){super(),this.store=e,this.prefix=t}getValueInternal(e){let t=e.split(Fe.REGEX_DOT);return this.retrieveElementFrom(e,t,1,this.store)}getStore(){return this.store}setStore(e){return this.store=e,this}setValue(e,t,r=!0,n=!1){this.store=Ee(this.store),this.modifyStore(e,t,r,n)}modifyStore(e,t,r,n){const s=new De(e),a=s.getTokens();a.removeLast();const i=s.getOperations();let o=i.removeLast(),E=a.removeLast(),u=E instanceof Ge?E.getElement():E.getExpression(),A=this.store;for(;!i.isEmpty();)A=o==be.OBJECT_OPERATOR?this.getDataFromObject(A,u,i.peekLast()):this.getDataFromArray(A,u,i.peekLast()),o=i.removeLast(),E=a.removeLast(),u=E instanceof Ge?E.getElement():E.getExpression();o==be.OBJECT_OPERATOR?this.putDataInObject(A,u,t,r,n):this.putDataInArray(A,u,t,r,n)}getDataFromArray(e,t,r){if(!Array.isArray(e))throw new P(x.format("Expected an array but found $",e));const n=parseInt(t);if(isNaN(n))throw new P(x.format("Expected an array index but found $",t));if(n<0)throw new P(x.format("Array index is out of bound - $",t));let a=e[n];return s(a)&&(a=r==be.OBJECT_OPERATOR?{}:[],e[n]=a),a}getDataFromObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new P(x.format("Expected an object but found $",e));let n=e[t];return s(n)&&(n=r==be.OBJECT_OPERATOR?{}:[],e[t]=n),n}putDataInArray(e,t,r,n,a){if(!Array.isArray(e))throw new P(x.format("Expected an array but found $",e));const i=parseInt(t);if(isNaN(i))throw new P(x.format("Expected an array index but found $",t));if(i<0)throw new P(x.format("Array index is out of bound - $",t));(n||s(e[i]))&&(a&&s(r)?e.splice(i,1):e[i]=r)}putDataInObject(e,t,r,n,a){if(Array.isArray(e)||"object"!=typeof e)throw new P(x.format("Expected an object but found $",e));(n||s(e[t]))&&(a&&s(r)?delete e[t]:e[t]=r)}getPrefix(){return this.prefix}}class Ye extends Z{constructor(){super("ArrayToObjects",[Z.PARAMETER_ARRAY_SOURCE,p.of("keyPath",c.ofString("keyPath")),p.of("valuePath",c.of("valuePath",i.STRING,i.NULL)),p.of("ignoreNullValues",c.ofBoolean("ignoreNullValues").setDefaultValue(!1)),p.of("ignoreNullKeys",c.ofBoolean("ignoreNullKeys").setDefaultValue(!0)),p.of("ignoreDuplicateKeys",c.ofBoolean("ignoreDuplicateKeys").setDefaultValue(!1))],Z.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(Z.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get("keyPath"),n=e?.getArguments()?.get("valuePath")??"",a=e?.getArguments()?.get("ignoreNullValues"),i=e?.getArguments()?.get("ignoreNullKeys"),o=e?.getArguments()?.get("ignoreDuplicateKeys");const E=new Be({},"Data."),u=t.filter((e=>!s(e))).reduce(((e,t)=>{E.setStore(t);const u=E.getValue("Data."+r);if(i&&s(u))return e;const A=n?E.getValue("Data."+n):t;return a&&s(A)||o&&e.hasOwnProperty(u)||(e[u]=A),e}),{});return new d([I.outputOf(new Map([[Z.EVENT_RESULT_NAME,u]]))])}}class ke{static repoMap=M.ofArrayEntries(_(new ee),_(new te),_(new ae),_(new oe),_(new ue),_(new Ae),_(new le),_(new ge),_(new ce),_(new Re),_(new me),_(new Te),_(new pe),_(new he),_(new Ne),_(new fe),_(new _e),_(new Se),_(new Me),_(new Oe),_(new we),_(new Ie),_(new Pe),_(new de),_(new ye),_(new re),_(new xe),_(new Le),_(new ve),_(new Ye));static filterableNames=Array.from(ke.repoMap.values()).map((e=>e.getSignature().getFullName()));find(e,t){if(e==n.SYSTEM_ARRAY)return ke.repoMap.get(t)}filter(e){return ke.filterableNames.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}e({},"ContextElement",(()=>He));class He{static NULL=new He(c.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 $e=new y("Create").setNamespace(n.SYSTEM_CTX).setParameters(new Map([p.ofEntry("name",(new c).setName("name").setType(l.of(i.STRING)).setMinLength(1).setFormat(W.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,m.CONSTANT),p.ofEntry("schema",c.SCHEMA,!1,m.CONSTANT)])).setEvents(new Map([w.outputEventMapEntry(new Map)]));const je=new y("Get").setNamespace(n.SYSTEM_CTX).setParameters(new Map([p.ofEntry("name",(new c).setName("name").setType(l.of(i.STRING)).setMinLength(1).setFormat(W.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,m.CONSTANT)])).setEvents(new Map([w.outputEventMapEntry(new Map([["value",c.ofAny("value")]]))]));e({},"ExpressionEvaluator",(()=>tr));var Xe={};e(Xe,"LogicalNullishCoalescingOperator",(()=>Je));var We={};e(We,"BinaryOperator",(()=>qe));class qe{nullCheck(e,t,r){if(s(e)||s(t))throw new ne(x.format("$ cannot be applied to a null value",r.getOperatorName()))}}class Je extends qe{apply(e,t){return s(e)?t:e}}var ze={};e(ze,"ArithmeticAdditionOperator",(()=>Ke));class Ke extends qe{apply(e,t){return s(e)?t:s(t)?e:e+t}}var Qe={};e(Qe,"ArithmeticDivisionOperator",(()=>Ze));class Ze extends qe{apply(e,t){return this.nullCheck(e,t,be.DIVISION),e/t}}var et={};e(et,"ArithmeticIntegerDivisionOperator",(()=>tt));class tt extends qe{apply(e,t){return this.nullCheck(e,t,be.DIVISION),Math.floor(e/t)}}var rt={};e(rt,"ArithmeticModulusOperator",(()=>nt));class nt extends qe{apply(e,t){return this.nullCheck(e,t,be.MOD),e%t}}var st={};e(st,"ArithmeticMultiplicationOperator",(()=>at));class at extends qe{apply(e,t){this.nullCheck(e,t,be.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 it={};e(it,"ArithmeticSubtractionOperator",(()=>ot));class ot extends qe{apply(e,t){return this.nullCheck(e,t,be.SUBTRACTION),e-t}}var Et={};e(Et,"ArrayOperator",(()=>ut));class ut extends qe{apply(e,t){if(!e)throw new ne("Cannot apply array operator on a null value");if(!t)throw new ne("Cannot retrive null index value");if(!Array.isArray(e)&&"string"!=typeof e)throw new ne(x.format("Cannot retrieve value from a primitive value $",e));if(t>=e.length)throw new ne(x.format("Cannot retrieve index $ from the array of length $",t,e.length));return e[t]}}var At={};e(At,"BitwiseAndOperator",(()=>lt));class lt extends qe{apply(e,t){return this.nullCheck(e,t,be.BITWISE_AND),e&t}}var gt={};e(gt,"BitwiseLeftShiftOperator",(()=>ct));class ct extends qe{apply(e,t){return this.nullCheck(e,t,be.BITWISE_LEFT_SHIFT),e<<t}}var Rt={};e(Rt,"BitwiseOrOperator",(()=>mt));class mt extends qe{apply(e,t){return this.nullCheck(e,t,be.BITWISE_OR),e|t}}var Tt={};e(Tt,"BitwiseRightShiftOperator",(()=>pt));class pt extends qe{apply(e,t){return this.nullCheck(e,t,be.BITWISE_RIGHT_SHIFT),e>>t}}var ht={};e(ht,"BitwiseUnsignedRightShiftOperator",(()=>Nt));class Nt extends qe{apply(e,t){return this.nullCheck(e,t,be.BITWISE_UNSIGNED_RIGHT_SHIFT),e>>>t}}var ft={};e(ft,"BitwiseXorOperator",(()=>_t));class _t extends qe{apply(e,t){return this.nullCheck(e,t,be.BITWISE_XOR),e^t}}var St={};e(St,"LogicalAndOperator",(()=>Mt));class Mt extends qe{apply(e,t){const r=se.findPrimitiveNullAsBoolean(e),n=se.findPrimitiveNullAsBoolean(t);if(r.getT1()!=i.BOOLEAN)throw new ne(x.format("Boolean value expected but found $",r.getT2()));if(n.getT1()!=i.BOOLEAN)throw new ne(x.format("Boolean value expected but found $",n.getT2()));return r.getT2()&&n.getT2()}}var Ot={};e(Ot,"LogicalEqualOperator",(()=>wt));class wt extends qe{apply(e,t){return U(e,t)}}var It={};e(It,"LogicalGreaterThanEqualOperator",(()=>Pt));class Pt extends qe{apply(e,t){const r=se.findPrimitiveNullAsBoolean(e),n=se.findPrimitiveNullAsBoolean(t);if(r.getT1()==i.BOOLEAN||n.getT1()==i.BOOLEAN)throw new ne(x.format("Cannot compare >= with the values $ and $",r.getT2(),n.getT2()));return r.getT2()>=n.getT2()}}var dt={};e(dt,"LogicalGreaterThanOperator",(()=>yt));class yt extends qe{apply(e,t){const r=se.findPrimitiveNullAsBoolean(e),n=se.findPrimitiveNullAsBoolean(t);if(r.getT1()==i.BOOLEAN||n.getT1()==i.BOOLEAN)throw new ne(x.format("Cannot compare > with the values $ and $",r.getT2(),n.getT2()));return r.getT2()>n.getT2()}}var xt={};e(xt,"LogicalLessThanEqualOperator",(()=>Lt));class Lt extends qe{apply(e,t){const r=se.findPrimitiveNullAsBoolean(e),n=se.findPrimitiveNullAsBoolean(t);if(r.getT1()==i.BOOLEAN||n.getT1()==i.BOOLEAN)throw new ne(x.format("Cannot compare <= with the values $ and $",r.getT2(),n.getT2()));return r.getT2()<=n.getT2()}}var vt={};e(vt,"LogicalLessThanOperator",(()=>Ut));class Ut extends qe{apply(e,t){const r=se.findPrimitiveNullAsBoolean(e),n=se.findPrimitiveNullAsBoolean(t);if(r.getT1()==i.BOOLEAN||n.getT1()==i.BOOLEAN)throw new ne(x.format("Cannot compare < with the values $ and $",r.getT2(),n.getT2()));return r.getT2()<n.getT2()}}var Vt={};e(Vt,"LogicalNotEqualOperator",(()=>Ct));class Ct extends qe{apply(e,t){return!U(e,t)}}var Gt={};e(Gt,"LogicalOrOperator",(()=>bt));class bt extends qe{apply(e,t){const r=se.findPrimitiveNullAsBoolean(e),n=se.findPrimitiveNullAsBoolean(t);if(r.getT1()!=i.BOOLEAN)throw new ne(x.format("Boolean value expected but found $",r.getT2()));if(n.getT1()!=i.BOOLEAN)throw new ne(x.format("Boolean value expected but found $",n.getT2()));return r.getT2()||n.getT2()}}var Dt={};e(Dt,"ObjectOperator",(()=>Ft));class Ft extends qe{apply(e,t){if(!e)throw new ne("Cannot apply array operator on a null value");if(!t)throw new ne("Cannot retrive null property value");const r=typeof e;if(!Array.isArray(e)&&"string"!=r&&"object"!=r)throw new ne(x.format("Cannot retrieve value from a primitive value $",e));return e[t]}}var Bt={};e(Bt,"ArithmeticUnaryMinusOperator",(()=>Ht));var Yt={};e(Yt,"UnaryOperator",(()=>kt));class kt{nullCheck(e,t){if(s(e))throw new ne(x.format("$ cannot be applied to a null value",t.getOperatorName()))}}class Ht extends kt{apply(e){return this.nullCheck(e,be.UNARY_MINUS),se.findPrimitiveNumberType(e),-e}}var $t={};e($t,"ArithmeticUnaryPlusOperator",(()=>jt));class jt extends kt{apply(e){return this.nullCheck(e,be.UNARY_PLUS),se.findPrimitiveNumberType(e),e}}var Xt={};e(Xt,"BitwiseComplementOperator",(()=>Wt));class Wt extends kt{apply(e){this.nullCheck(e,be.UNARY_BITWISE_COMPLEMENT);let t=se.findPrimitiveNumberType(e);if(t.getT1()!=i.INTEGER&&t.getT1()!=i.LONG)throw new ne(x.format("Unable to apply bitwise operator on $",e));return~e}}var qt={};e(qt,"LogicalNotOperator",(()=>Jt));class Jt extends kt{apply(e){return!e&&""!==e}}e({},"LiteralTokenValueExtractor",(()=>Kt));const zt=new Map([["true",!0],["false",!1],["null",void 0],["undefined",void 0]]);class Kt extends Fe{static INSTANCE=new Kt;getValueInternal(e){if(!V.isNullOrBlank(e))return e=e.trim(),zt.has(e)?zt.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,x.format("Unable to parse the literal or expression $",e),t)}}processString(e){if(!e.endsWith('"'))throw new Ve(e,x.format("String literal $ is not closed properly",e));return e.substring(1,e.length-1)}getPrefix(){return""}}var Qt={};e(Qt,"ConditionalTernaryOperator",(()=>Zt));class Zt extends class{nullCheck(e,t,r,n){if(s(e)||s(t)||s(r))throw new ne(x.format("$ cannot be applied to a null value",n.getOperatorName()))}}{apply(e,t,r){return e?t:r}}t({},Qt);class er extends Fe{static PREFIX="_internal.";values=new Map;addValue(e,t){this.values.set(e,t)}getValueInternal(e){let t=e.split(Fe.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 er.PREFIX}}class tr{static UNARY_OPERATORS_MAP=new Map([[be.UNARY_BITWISE_COMPLEMENT,new Wt],[be.UNARY_LOGICAL_NOT,new Jt],[be.UNARY_MINUS,new Ht],[be.UNARY_PLUS,new jt]]);static TERNARY_OPERATORS_MAP=new Map([[be.CONDITIONAL_TERNARY_OPERATOR,new Zt]]);static BINARY_OPERATORS_MAP=new Map([[be.ADDITION,new Ke],[be.DIVISION,new Ze],[be.INTEGER_DIVISION,new tt],[be.MOD,new nt],[be.MULTIPLICATION,new at],[be.SUBTRACTION,new ot],[be.BITWISE_AND,new lt],[be.BITWISE_LEFT_SHIFT,new ct],[be.BITWISE_OR,new mt],[be.BITWISE_RIGHT_SHIFT,new pt],[be.BITWISE_UNSIGNED_RIGHT_SHIFT,new Nt],[be.BITWISE_XOR,new _t],[be.AND,new Mt],[be.EQUAL,new wt],[be.GREATER_THAN,new yt],[be.GREATER_THAN_EQUAL,new Pt],[be.LESS_THAN,new Ut],[be.LESS_THAN_EQUAL,new Lt],[be.OR,new bt],[be.NOT_EQUAL,new Ct],[be.NULLISH_COALESCING_OPERATOR,new Je],[be.ARRAY_OPERATOR,new ut],[be.OBJECT_OPERATOR,new Ft]]);static UNARY_OPERATORS_MAP_KEY_SET=new Set(tr.UNARY_OPERATORS_MAP.keys());internalTokenValueExtractor=new er;constructor(e){e instanceof De?(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 L;for(;n<e.length-1;){if("{"==e.charAt(n)&&"{"==e.charAt(n+1))0==r&&s.push(new G(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 G(a,new De(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 tr(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 De(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(tr.UNARY_OPERATORS_MAP_KEY_SET.has(e))n.push(this.applyUnaryOperation(e,this.getValueFromToken(t,o)));else if(e==be.OBJECT_OPERATOR||e==be.ARRAY_OPERATOR)this.processObjectOrArrayOperator(t,r,n,e,o);else if(e==be.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 ne(x.format("Expression : $ evaluated to null",e));if(1!=n.size())throw new ne(x.format("Expression : $ evaluated multiple values $",e,n));const o=n.get(0);if(o instanceof Ge)return o.getElement();if(!(o instanceof De))return this.getValueFromToken(t,o);throw new ne(x.format("Expression : $ evaluated to $",e,n.get(0)))}processObjectOrArrayOperator(e,t,r,n,s){const a=new L,i=new L;if(!n||!s)return;do{i.push(n),s instanceof De?a.push(new Ge(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==be.OBJECT_OPERATOR||n==be.ARRAY_OPERATOR);s&&(s instanceof De?a.push(new Ge(s.toString(),this.evaluateExpression(s,e))):a.push(s)),n&&t.push(n);let o=a.pop();if(o instanceof Ge&&"object"==typeof o.getTokenValue()){const e=(new Date).getTime()+""+Math.round(1e3*Math.random());this.internalTokenValueExtractor.addValue(e,o.getTokenValue()),o=new Ce(er.PREFIX+e)}let E=new Ue(o instanceof Ge?o.getTokenValue():o.toString());for(;!a.isEmpty();)o=a.pop(),n=i.pop(),E.append(n.getOperator()).append(o instanceof Ge?o.getTokenValue():o.toString()),n==be.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 Ge(u,this.getValue(u,e)));else{let e;try{e=Kt.INSTANCE.getValue(u)}catch(t){e=u}r.push(new Ge(u,e))}}applyTernaryOperation(e,t,r,n){let s=tr.TERNARY_OPERATORS_MAP.get(e);if(!s)throw new Ve(this.expression,x.format("No operator found to evaluate $",this.getExpression()));return new Ge(e.toString(),s.apply(t,r,n))}applyBinaryOperation(e,t,r){let n=typeof t,s=typeof r,a=tr.BINARY_OPERATORS_MAP.get(e);if(("object"===n||"object"===s)&&e!==be.EQUAL&&e!==be.NOT_EQUAL&&e!==be.NULLISH_COALESCING_OPERATOR)throw new Ve(this.expression,x.format("Cannot evaluate expression $ $ $",t,e.getOperator(),r));if(!a)throw new Ve(this.expression,x.format("No operator found to evaluate $ $ $",t,e.getOperator(),r));return new Ge(e.toString(),a.apply(t,r))}applyUnaryOperation(e,t){if("object"===typeof t||Array.isArray(t))throw new Ve(this.expression,x.format("The operator $ cannot be applied to $",e.getOperator(),t));let r=tr.UNARY_OPERATORS_MAP.get(e);if(!r)throw new Ve(this.expression,x.format("No Unary operator $ is found to apply on $",e.getOperator(),t));return new Ge(e.toString(),r.apply(t))}getValueFromToken(e,t){return t instanceof De?this.evaluateExpression(t,e):t instanceof Ge?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 rr=new y("Set").setNamespace(n.SYSTEM_CTX).setParameters(new Map([p.ofEntry("name",(new c).setName("name").setType(l.of(i.STRING)).setMinLength(1),!1,m.CONSTANT),p.ofEntry("value",c.ofAny("value"))])).setEvents(new Map([w.outputEventMapEntry(new Map)]));const nr=new y("GenerateEvent").setNamespace(n.SYSTEM).setParameters(new Map([p.ofEntry("eventName",c.ofString("eventName").setDefaultValue("output")),p.ofEntry("results",c.ofObject("results").setProperties(new Map([["name",c.ofString("name")],["value",p.EXPRESSION]])),!0)])).setEvents(new Map([w.outputEventMapEntry(new Map)]));class sr extends Q{static CONDITION="condition";static SIGNATURE=new y("If").setNamespace(n.SYSTEM).setParameters(new Map([p.ofEntry(sr.CONDITION,c.of(sr.CONDITION,i.BOOLEAN))])).setEvents(new Map([w.eventMapEntry(w.TRUE,new Map),w.eventMapEntry(w.FALSE,new Map),w.outputEventMapEntry(new Map)]));getSignature(){return sr.SIGNATURE}async internalExecute(e){var t=e.getArguments()?.get(sr.CONDITION);return new d([I.of(t?w.TRUE:w.FALSE,new Map),I.outputOf(new Map)])}}const ar=new y("Break").setNamespace(n.SYSTEM_LOOP).setParameters(new Map([p.ofEntry("stepName",c.of("stepName",i.STRING))])).setEvents(new Map([w.outputEventMapEntry(new Map([]))]));const ir=new y("CountLoop").setNamespace(n.SYSTEM_LOOP).setParameters(new Map([p.ofEntry("count",c.of("count",i.INTEGER))])).setEvents(new Map([w.eventMapEntry(w.ITERATION,new Map([["index",c.of("index",i.INTEGER)]])),w.outputEventMapEntry(new Map([["value",c.of("value",i.INTEGER)]]))]));const or=new y("ForEachLoop").setNamespace(n.SYSTEM_LOOP).setParameters(new Map([p.ofEntry("source",c.ofArray("source",c.ofAny("source")))])).setEvents(new Map([w.eventMapEntry(w.ITERATION,new Map([["index",c.of("index",i.INTEGER)],["each",c.ofAny("each")]])),w.outputEventMapEntry(new Map([["value",c.of("value",i.INTEGER)]]))]));const Er=new y("RangeLoop").setNamespace(n.SYSTEM_LOOP).setParameters(new Map([p.ofEntry("from",c.of("from",i.INTEGER,i.LONG,i.FLOAT,i.DOUBLE).setDefaultValue(0)),p.ofEntry("to",c.of("to",i.INTEGER,i.LONG,i.FLOAT,i.DOUBLE).setDefaultValue(1)),p.ofEntry("step",c.of("step",i.INTEGER,i.LONG,i.FLOAT,i.DOUBLE).setDefaultValue(1).setNot((new c).setConstant(0)))])).setEvents(new Map([w.eventMapEntry(w.ITERATION,new Map([["index",c.of("index",i.INTEGER,i.LONG,i.FLOAT,i.DOUBLE)]])),w.outputEventMapEntry(new Map([["value",c.of("value",i.INTEGER,i.LONG,i.FLOAT,i.DOUBLE)]]))]));const ur=new y("Add").setNamespace(n.MATH).setParameters(new Map([["value",new p("value",c.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([w.outputEventMapEntry(new Map([["value",c.ofNumber("value")]]))]));const Ar=[()=>new Map([["value",new p("value",c.ofNumber("value"))]]),()=>new Map([["value1",new p("value1",c.ofNumber("value1"))],["value2",new p("value2",c.ofNumber("value2"))]])];class lr extends Q{constructor(e,t,r=1,...s){super(),s&&s.length||(s=[i.DOUBLE]),this.parametersNumber=r,this.mathFunction=t,this.signature=new y(e).setNamespace(n.MATH).setParameters(Ar[r-1]()).setEvents(new Map([w.outputEventMapEntry(new Map([["value",(new c).setType(l.of(...s)).setName("value")]]))]))}getSignature(){return this.signature}async internalExecute(e){let t,r=se.findPrimitiveNumberType(e.getArguments()?.get(1==this.parametersNumber?"value":"value1")).getT2();return 2==this.parametersNumber&&(t=se.findPrimitiveNumberType(e.getArguments()?.get("value2")).getT2()),new d([I.outputOf(new Map([["value",this.mathFunction.call(this,r,t)]]))])}}class gr extends Q{static SIGNATURE=new y("Hypotenuse").setNamespace(n.MATH).setParameters(new Map([["value",new p("value",c.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([w.outputEventMapEntry(new Map([["value",(new c).setType(l.of(i.DOUBLE)).setName("value")]]))]));constructor(){super()}getSignature(){return gr.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get("value");return new d([I.outputOf(new Map([["value",Math.sqrt(t.reduce(((e,t)=>e+t*t),0))]]))])}}const cr=new y("Maximum").setNamespace(n.MATH).setParameters(new Map([["value",new p("value",c.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([w.outputEventMapEntry(new Map([["value",c.ofNumber("value")]]))]));const Rr=new y("Minimum").setNamespace(n.MATH).setParameters(new Map([["value",new p("value",c.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([w.outputEventMapEntry(new Map([["value",c.ofNumber("value")]]))]));class mr extends Q{static SIGNATURE=new y("Random").setNamespace(n.MATH).setEvents(new Map([w.outputEventMapEntry(M.of("value",c.ofDouble("value")))]));getSignature(){return mr.SIGNATURE}async internalExecute(e){return new d([I.outputOf(new Map([["value",Math.random()]]))])}}class Tr extends Q{static MIN_VALUE="minValue";static MAX_VALUE="maxValue";static VALUE="value";static SIGNATURE=new y("RandomFloat").setParameters(M.of(Tr.MIN_VALUE,p.of(Tr.MIN_VALUE,c.ofFloat(Tr.MIN_VALUE).setDefaultValue(0)),Tr.MAX_VALUE,p.of(Tr.MAX_VALUE,c.ofFloat(Tr.MAX_VALUE).setDefaultValue(2147483647)))).setNamespace(n.MATH).setEvents(new Map([w.outputEventMapEntry(M.of(Tr.VALUE,c.ofFloat(Tr.VALUE)))]));getSignature(){return Tr.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(Tr.MIN_VALUE),r=e.getArguments()?.get(Tr.MAX_VALUE),n=Math.random()*(r-t)+t;return new d([I.outputOf(new Map([[Tr.VALUE,n]]))])}}class pr extends Q{static MIN_VALUE="minValue";static MAX_VALUE="maxValue";static VALUE="value";static SIGNATURE=new y("RandomInt").setParameters(M.of(pr.MIN_VALUE,p.of(pr.MIN_VALUE,c.ofInteger(pr.MIN_VALUE).setDefaultValue(0)),pr.MAX_VALUE,p.of(pr.MAX_VALUE,c.ofInteger(pr.MAX_VALUE).setDefaultValue(2147483647)))).setNamespace(n.MATH).setEvents(new Map([w.outputEventMapEntry(M.of(pr.VALUE,c.ofInteger(pr.VALUE)))]));getSignature(){return pr.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(pr.MIN_VALUE),r=e.getArguments()?.get(pr.MAX_VALUE),n=Math.floor(Math.random()*(r-t)+t);return new d([I.outputOf(new Map([[pr.VALUE,n]]))])}}const hr={Absolute:new lr("Absolute",(e=>Math.abs(e)),1,i.INTEGER,i.LONG,i.FLOAT,i.DOUBLE),ACosine:new lr("ArcCosine",(e=>Math.acos(e))),ASine:new lr("ArcSine",(e=>Math.asin(e))),ATangent:new lr("ArcTangent",(e=>Math.atan(e))),Ceiling:new lr("Ceiling",(e=>Math.ceil(e))),Cosine:new lr("Cosine",(e=>Math.cos(e))),CosineH:new lr("HyperbolicCosine",(e=>Math.cosh(e))),CubeRoot:new lr("CubeRoot",(e=>Math.cbrt(e))),Exponential:new lr("Exponential",(e=>Math.exp(e))),Expm1:new lr("ExponentialMinus1",(e=>Math.expm1(e))),Floor:new lr("Floor",(e=>Math.floor(e))),Log:new lr("LogNatural",(e=>Math.log(e))),Log10:new lr("Log10",(e=>Math.log10(e))),Round:new lr("Round",(e=>Math.round(e)),1,i.INTEGER,i.LONG),Sine:new lr("Sine",(e=>Math.sin(e))),SineH:new lr("HyperbolicSine",(e=>Math.sinh(e))),Tangent:new lr("Tangent",(e=>Math.tan(e))),TangentH:new lr("HyperbolicTangent",(e=>Math.tanh(e))),ToDegrees:new lr("ToDegrees",(e=>e*(Math.PI/180))),ToRadians:new lr("ToRadians",(e=>e*(180/Math.PI))),SquareRoot:new lr("SquareRoot",(e=>Math.sqrt(e))),ArcTangent:new lr("ArcTangent2",((e,t)=>Math.atan2(e,t)),2),Power:new lr("Power",((e,t)=>Math.pow(e,t)),2),Add:new class extends Q{getSignature(){return ur}async internalExecute(e){let t=e.getArguments()?.get("value");return new d([I.outputOf(new Map([["value",t.reduce(((e,t)=>e+t),0)]]))])}},Hypotenuse:new gr,Maximum:new class extends Q{getSignature(){return cr}async internalExecute(e){let t=e.getArguments()?.get("value");return new d([I.outputOf(new Map([["value",t.reduce(((e,t)=>!e&&0!==e||t>e?t:e))]]))])}},Minimum:new class extends Q{getSignature(){return Rr}async internalExecute(e){let t=e.getArguments()?.get("value");return new d([I.outputOf(new Map([["value",t.reduce(((e,t)=>!e&&0!==e||t<e?t:e))]]))])}},Random:new mr,RandomFloat:new Tr,RandomInt:new pr},Nr=Object.values(hr).map((e=>e.getSignature().getFullName()));class fr{find(e,t){if(e==n.MATH)return hr[t]}filter(e){return Nr.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}class _r extends Q{constructor(e,t){super(),this.signature=new y(e).setNamespace(n.SYSTEM_OBJECT).setParameters(new Map([p.ofEntry("source",c.ofAny("source"))])).setEvents(new Map([w.outputEventMapEntry(new Map([["value",t]]))]))}getSignature(){return this.signature}}const Sr={ObjectValues:new class extends _r{constructor(){super("ObjectValues",c.ofArray("value",c.ofAny("value")))}async internalExecute(e){var t=e.getArguments()?.get("source");if(s(t))return new d([I.outputOf(new Map([["value",[]]]))]);let r=Object.entries(Ee(t)).sort(((e,t)=>e[0].localeCompare(t[0]))).map((e=>e[1]));return new d([I.outputOf(new Map([["value",r]]))])}},ObjectKeys:new class extends _r{constructor(){super("ObjectKeys",c.ofArray("value",c.ofString("value")))}async internalExecute(e){var t=e.getArguments()?.get("source");if(s(t))return new d([I.outputOf(new Map([["value",[]]]))]);let r=Object.keys(Ee(t)).sort(((e,t)=>e.localeCompare(t)));return new d([I.outputOf(new Map([["value",r]]))])}},ObjectEntries:new class extends _r{constructor(){super("ObjectEntries",c.ofArray("value",c.ofArray("tuple",c.ofString("key"),c.ofAny("value"))))}async internalExecute(e){var t=e.getArguments()?.get("source");if(s(t))return new d([I.outputOf(new Map([["value",[]]]))]);let r=Object.entries(Ee(t)).sort(((e,t)=>e[0].localeCompare(t[0])));return new d([I.outputOf(new Map([["value",r]]))])}},ObjectDeleteKey:new class extends Q{constructor(){super(),this.signature=new y("ObjectDeleteKey").setNamespace(n.SYSTEM_OBJECT).setParameters(new Map([p.ofEntry("source",c.ofAny("source")),p.ofEntry("key",c.ofString("key"))])).setEvents(new Map([w.outputEventMapEntry(new Map([["value",c.ofAny("value")]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get("source"),r=e.getArguments()?.get("key");return s(t)?new d([I.outputOf(new Map([["value",void 0]]))]):(t=Ee(t),delete t[r],new d([I.outputOf(new Map([["value",t]]))]))}},ObjectPutValue:new class extends Q{constructor(){super(),this.signature=new y("ObjectPutValue").setNamespace(n.SYSTEM_OBJECT).setParameters(new Map([p.ofEntry("source",c.ofObject("source")),p.ofEntry("key",c.ofString("key")),p.ofEntry("value",c.ofAny("value")),p.ofEntry("overwrite",c.ofBoolean("overwrite").setDefaultValue(!0)),p.ofEntry("deleteKeyOnNull",c.ofBoolean("deleteKeyOnNull").setDefaultValue(!1))])).setEvents(new Map([w.outputEventMapEntry(new Map([["value",c.ofObject("value")]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get("source"),r=e.getArguments()?.get("key"),n=e.getArguments()?.get("value"),s=e.getArguments()?.get("overwrite"),a=e.getArguments()?.get("deleteKeyOnNull");const i=new Be(t,"Data.");return i.setValue(r,n,s,a),new d([I.outputOf(new Map([["value",i.getStore()]]))])}}},Mr=Object.values(Sr).map((e=>e.getSignature().getFullName()));class Or{find(e,t){if(e==n.SYSTEM_OBJECT)return Sr[t]}filter(e){return Mr.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}class wr extends Q{static VALUES="values";static SIGNATURE=new y("Print").setNamespace(n.SYSTEM).setParameters(new Map([p.ofEntry(wr.VALUES,c.ofAny(wr.VALUES),!0)]));getSignature(){return wr.SIGNATURE}async internalExecute(e){var t=e.getArguments()?.get(wr.VALUES);return console?.log(...t),new d([I.outputOf(new Map)])}}class Ir 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 p(Ir.PARAMETER_STRING_NAME,c.ofString(Ir.PARAMETER_STRING_NAME));static PARAMETER_SECOND_STRING=new p(Ir.PARAMETER_SECOND_STRING_NAME,c.ofString(Ir.PARAMETER_SECOND_STRING_NAME));static PARAMETER_THIRD_STRING=new p(Ir.PARAMETER_THIRD_STRING_NAME,c.ofString(Ir.PARAMETER_THIRD_STRING_NAME));static PARAMETER_INDEX=new p(Ir.PARAMETER_INDEX_NAME,c.ofInteger(Ir.PARAMETER_INDEX_NAME));static PARAMETER_SECOND_INDEX=new p(Ir.PARAMETER_SECOND_INDEX_NAME,c.ofInteger(Ir.PARAMETER_SECOND_INDEX_NAME));static PARAMETER_SEARCH_STRING=new p(Ir.PARAMETER_SEARCH_STRING_NAME,c.ofString(Ir.PARAMETER_STRING_NAME));static EVENT_STRING=new w(w.OUTPUT,M.of(Ir.EVENT_RESULT_NAME,c.ofString(Ir.EVENT_RESULT_NAME)));static EVENT_BOOLEAN=new w(w.OUTPUT,M.of(Ir.EVENT_RESULT_NAME,c.ofBoolean(Ir.EVENT_RESULT_NAME)));static EVENT_INT=new w(w.OUTPUT,M.of(Ir.EVENT_RESULT_NAME,c.ofInteger(Ir.EVENT_RESULT_NAME)));static EVENT_ARRAY=new w(w.OUTPUT,M.of(Ir.EVENT_RESULT_NAME,c.ofArray(Ir.EVENT_RESULT_NAME)));constructor(e,t,r,...n){super();const s=new Map;n.forEach((e=>s.set(e.getParameterName(),e))),this.signature=new y(t).setNamespace(e).setParameters(s).setEvents(M.of(r.getName(),r))}getSignature(){return this.signature}static ofEntryAsStringBooleanOutput(e,t){return[e,new class extends Ir{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Ir.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Ir.PARAMETER_SEARCH_STRING_NAME);return new d([I.outputOf(M.of(Ir.EVENT_RESULT_NAME,t(r,n)))])}}(n.STRING,e,Ir.EVENT_BOOLEAN,Ir.PARAMETER_STRING,Ir.PARAMETER_SEARCH_STRING)]}static ofEntryAsStringAndIntegerStringOutput(e,t){return[e,new class extends Ir{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Ir.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Ir.PARAMETER_INDEX_NAME);return new d([I.outputOf(M.of(Ir.EVENT_RESULT_NAME,t(r,n)))])}}(n.STRING,e,Ir.EVENT_STRING,Ir.PARAMETER_STRING,Ir.PARAMETER_INDEX)]}static ofEntryAsStringIntegerOutput(e,t){return[e,new class extends Ir{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Ir.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Ir.PARAMETER_SEARCH_STRING_NAME);return new d([I.outputOf(M.of(Ir.EVENT_RESULT_NAME,t(r,n)))])}}(n.STRING,e,Ir.EVENT_INT,Ir.PARAMETER_STRING,Ir.PARAMETER_SEARCH_STRING)]}static ofEntryString(e,t){return[e,new class extends Ir{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Ir.PARAMETER_STRING_NAME);return new d([I.outputOf(M.of(Ir.EVENT_RESULT_NAME,t(r)))])}}(n.STRING,e,Ir.EVENT_STRING,Ir.PARAMETER_STRING)]}static ofEntryStringBooleanOutput(e,t){return[e,new class extends Ir{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Ir.PARAMETER_STRING_NAME);return new d([I.outputOf(M.of(Ir.EVENT_RESULT_NAME,t(r)))])}}(n.STRING,e,Ir.EVENT_BOOLEAN,Ir.PARAMETER_STRING)]}static ofEntryAsStringStringIntegerIntegerOutput(e,t){return[e,new class extends Ir{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Ir.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Ir.PARAMETER_SEARCH_STRING_NAME),s=e?.getArguments()?.get(Ir.PARAMETER_INDEX_NAME);return new d([I.outputOf(M.of(Ir.EVENT_RESULT_NAME,t(r,n,s)))])}}(n.STRING,e,Ir.EVENT_INT,Ir.PARAMETER_STRING,Ir.PARAMETER_SEARCH_STRING,Ir.PARAMETER_INDEX)]}static ofEntryAsStringIntegerIntegerStringOutput(e,t){return[e,new class extends Ir{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Ir.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Ir.PARAMETER_INDEX_NAME),s=e?.getArguments()?.get(Ir.PARAMETER_SECOND_INDEX_NAME);return new d([I.outputOf(M.of(Ir.EVENT_RESULT_NAME,t(r,n,s)))])}}(n.STRING,e,Ir.EVENT_INT,Ir.PARAMETER_STRING,Ir.PARAMETER_INDEX,Ir.PARAMETER_SECOND_INDEX)]}static ofEntryAsStringStringStringStringOutput(e,t){return[e,new class extends Ir{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Ir.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Ir.PARAMETER_SECOND_STRING_NAME),s=e?.getArguments()?.get(Ir.PARAMETER_THIRD_STRING_NAME);return new d([I.outputOf(M.of(Ir.EVENT_RESULT_NAME,t(r,n,s)))])}}(n.STRING,e,Ir.EVENT_STRING,Ir.PARAMETER_STRING,Ir.PARAMETER_SECOND_STRING,Ir.PARAMETER_THIRD_STRING)]}}class Pr extends Q{static VALUE="value";static SCHEMA=(new c).setName(Pr.VALUE).setType(new A(i.STRING));static SIGNATURE=new y("Concatenate").setNamespace(n.STRING).setParameters(new Map([[Pr.VALUE,new p(Pr.VALUE,Pr.SCHEMA).setVariableArgument(!0)]])).setEvents(new Map([w.outputEventMapEntry(new Map([[Pr.VALUE,c.ofString(Pr.VALUE)]]))]));constructor(){super()}getSignature(){return Pr.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(Pr.VALUE),r="";return t.reduce(((e,t)=>r=e+t),r),new d([I.outputOf(new Map([[Pr.VALUE,r]]))])}}class dr 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 p(dr.PARAMETER_STRING_NAME,c.ofString(dr.PARAMETER_STRING_NAME));PARAMETER_AT_START=new p(dr.PARAMETER_AT_START_NAME,c.ofInteger(dr.PARAMETER_AT_START_NAME));PARAMETER_AT_END=new p(dr.PARAMETER_AT_END_NAME,c.ofInteger(dr.PARAMETER_AT_END_NAME));EVENT_STRING=new w(w.OUTPUT,new Map([[dr.EVENT_RESULT_NAME,c.ofString(dr.EVENT_RESULT_NAME)]]));signature=new y("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(dr.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(dr.PARAMETER_AT_START_NAME),n=e?.getArguments()?.get(dr.PARAMETER_AT_END_NAME);if(n>=r){let e="";return e+=t.substring(0,r),e+=t.substring(n),new d([I.outputOf(new Map([[dr.EVENT_RESULT_NAME,e.toString()]]))])}return new d([I.outputOf(new Map([[dr.EVENT_RESULT_NAME,t]]))])}}class yr 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 p(yr.PARAMETER_STRING_NAME,c.ofString(yr.PARAMETER_STRING_NAME));PARAMETER_AT_POSITION=new p(yr.PARAMETER_AT_POSITION_NAME,c.ofInteger(yr.PARAMETER_AT_POSITION_NAME));PARAMETER_INSERT_STRING=new p(yr.PARAMETER_INSERT_STRING_NAME,c.ofString(yr.PARAMETER_INSERT_STRING_NAME));EVENT_STRING=new w(w.OUTPUT,new Map([[this.EVENT_RESULT_NAME,c.ofString(this.EVENT_RESULT_NAME)]]));signature=new y("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([w.outputEventMapEntry(new Map([[this.EVENT_RESULT_NAME,c.ofString(this.EVENT_RESULT_NAME)]]))]));getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(yr.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(yr.PARAMETER_AT_POSITION_NAME),n=e?.getArguments()?.get(yr.PARAMETER_INSERT_STRING_NAME),s="";return s+=t.substring(0,r),s+=n,s+=t.substring(r),new d([I.outputOf(new Map([[this.EVENT_RESULT_NAME,s]]))])}}class xr 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 p(xr.PARAMETER_STRING_NAME,c.ofString(xr.PARAMETER_STRING_NAME));static PARAMETER_POSTPAD_STRING=new p(xr.PARAMETER_POSTPAD_STRING_NAME,c.ofString(xr.PARAMETER_POSTPAD_STRING_NAME));static PARAMETER_LENGTH=new p(xr.PARAMETER_LENGTH_NAME,c.ofInteger(xr.PARAMETER_LENGTH_NAME));static EVENT_STRING=new w(w.OUTPUT,new Map([[xr.EVENT_RESULT_NAME,c.ofString(xr.EVENT_RESULT_NAME)]]));signature=new y("PostPad").setNamespace(n.STRING).setParameters(new Map([[xr.PARAMETER_STRING.getParameterName(),xr.PARAMETER_STRING],[xr.PARAMETER_POSTPAD_STRING.getParameterName(),xr.PARAMETER_POSTPAD_STRING],[xr.PARAMETER_LENGTH.getParameterName(),xr.PARAMETER_LENGTH]])).setEvents(new Map([[xr.EVENT_STRING.getName(),xr.EVENT_STRING]]));constructor(){super()}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(xr.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(xr.PARAMETER_POSTPAD_STRING_NAME),n=e.getArguments()?.get(xr.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 d([I.of(xr.EVENT_RESULT_NAME,new Map([[xr.EVENT_RESULT_NAME,s.toString()]]))])}}class Lr 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 p(Lr.PARAMETER_STRING_NAME,c.ofString(Lr.PARAMETER_STRING_NAME));static PARAMETER_PREPAD_STRING=new p(Lr.PARAMETER_PREPAD_STRING_NAME,c.ofString(Lr.PARAMETER_PREPAD_STRING_NAME));static PARAMETER_LENGTH=new p(Lr.PARAMETER_LENGTH_NAME,c.ofInteger(Lr.PARAMETER_LENGTH_NAME));static EVENT_STRING=new w(w.OUTPUT,new Map([[Lr.EVENT_RESULT_NAME,c.ofString(Lr.EVENT_RESULT_NAME)]]));signature=new y("PrePad").setNamespace(n.STRING).setParameters(new Map([[Lr.PARAMETER_STRING.getParameterName(),Lr.PARAMETER_STRING],[Lr.PARAMETER_PREPAD_STRING.getParameterName(),Lr.PARAMETER_PREPAD_STRING],[Lr.PARAMETER_LENGTH.getParameterName(),Lr.PARAMETER_LENGTH]])).setEvents(new Map([[Lr.EVENT_STRING.getName(),Lr.EVENT_STRING]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(Lr.PARAMETER_STRING_NAME),r=e.getArguments()?.get(Lr.PARAMETER_PREPAD_STRING_NAME),n=e.getArguments()?.get(Lr.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 d([I.of(Lr.EVENT_RESULT_NAME,new Map([[Lr.EVENT_RESULT_NAME,s]]))])}}class vr 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 p(vr.PARAMETER_STRING_NAME,c.ofString(vr.PARAMETER_STRING_NAME));static PARAMETER_OTHER_STRING=new p(vr.PARAMETER_OTHER_STRING_NAME,c.ofString(vr.PARAMETER_OTHER_STRING_NAME));static PARAMETER_FIRST_OFFSET=new p(vr.PARAMETER_FIRST_OFFSET_NAME,c.ofInteger(vr.PARAMETER_FIRST_OFFSET_NAME));static PARAMETER_SECOND_OFFSET=new p(vr.PARAMETER_SECOND_OFFSET_NAME,c.ofInteger(vr.PARAMETER_SECOND_OFFSET_NAME));static PARAMETER_INTEGER=new p(vr.PARAMETER_INTEGER_NAME,c.ofInteger(vr.PARAMETER_INTEGER_NAME));static PARAMETER_BOOLEAN=new p(vr.PARAMETER_BOOLEAN_NAME,c.ofBoolean(vr.PARAMETER_BOOLEAN_NAME));static EVENT_BOOLEAN=new w(w.OUTPUT,new Map([[vr.EVENT_RESULT_NAME,c.ofBoolean(vr.EVENT_RESULT_NAME)]]));signature=new y("RegionMatches").setNamespace(n.STRING).setParameters(new Map([[vr.PARAMETER_STRING.getParameterName(),vr.PARAMETER_STRING],[vr.PARAMETER_BOOLEAN.getParameterName(),vr.PARAMETER_BOOLEAN],[vr.PARAMETER_FIRST_OFFSET.getParameterName(),vr.PARAMETER_FIRST_OFFSET],[vr.PARAMETER_OTHER_STRING.getParameterName(),vr.PARAMETER_OTHER_STRING],[vr.PARAMETER_SECOND_OFFSET.getParameterName(),vr.PARAMETER_SECOND_OFFSET],[vr.PARAMETER_INTEGER.getParameterName(),vr.PARAMETER_INTEGER]])).setEvents(new Map([[vr.EVENT_BOOLEAN.getName(),vr.EVENT_BOOLEAN]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(vr.PARAMETER_STRING_NAME),r=e.getArguments()?.get(vr.PARAMETER_BOOLEAN_NAME),n=e.getArguments()?.get(vr.PARAMETER_FIRST_OFFSET_NAME),s=e?.getArguments()?.get(vr.PARAMETER_OTHER_STRING_NAME),a=e?.getArguments()?.get(vr.PARAMETER_SECOND_OFFSET_NAME),i=e.getArguments()?.get(vr.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 d([I.outputOf(new Map([[vr.EVENT_RESULT_NAME,o]]))])}}class Ur 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 p(Ur.PARAMETER_STRING_NAME,c.ofString(Ur.PARAMETER_STRING_NAME));static PARAMETER_AT_START=new p(Ur.PARAMETER_AT_START_NAME,c.ofInteger(Ur.PARAMETER_AT_START_NAME));static PARAMETER_AT_LENGTH=new p(Ur.PARAMETER_AT_LENGTH_NAME,c.ofInteger(Ur.PARAMETER_AT_LENGTH_NAME));static PARAMETER_REPLACE_STRING=new p(Ur.PARAMETER_REPLACE_STRING_NAME,c.ofString(Ur.PARAMETER_REPLACE_STRING_NAME));static EVENT_STRING=new w(w.OUTPUT,new Map([[Ur.EVENT_RESULT_NAME,c.ofString(Ur.EVENT_RESULT_NAME)]]));constructor(){super()}signature=new y("ReplaceAtGivenPosition").setNamespace(n.STRING).setParameters(new Map([[Ur.PARAMETER_STRING.getParameterName(),Ur.PARAMETER_STRING],[Ur.PARAMETER_AT_START.getParameterName(),Ur.PARAMETER_AT_START],[Ur.PARAMETER_AT_LENGTH.getParameterName(),Ur.PARAMETER_AT_LENGTH],[Ur.PARAMETER_REPLACE_STRING.getParameterName(),Ur.PARAMETER_REPLACE_STRING]])).setEvents(new Map([[Ur.EVENT_STRING.getName(),Ur.EVENT_STRING]]));getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(Ur.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(Ur.PARAMETER_AT_START_NAME),n=e?.getArguments()?.get(Ur.PARAMETER_AT_LENGTH_NAME),s=e?.getArguments()?.get(Ur.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 d([I.outputOf(new Map([[Ur.EVENT_RESULT_NAME,t]]))])}}class Vr extends Q{VALUE="value";SIGNATURE=new y("Reverse").setNamespace(n.STRING).setParameters(new Map([[this.VALUE,new p(this.VALUE,c.ofString(this.VALUE)).setVariableArgument(!1)]])).setEvents(new Map([w.outputEventMapEntry(new Map([[this.VALUE,(new c).setType(l.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 d([I.outputOf(M.of(this.VALUE,n))])}}class Cr extends Q{PARAMETER_STRING_NAME="string";PARAMETER_SPLIT_STRING_NAME="searchString";EVENT_RESULT_NAME="result";PARAMETER_STRING=new p(this.PARAMETER_STRING_NAME,c.ofString(this.PARAMETER_STRING_NAME));PARAMETER_SPLIT_STRING=new p(this.PARAMETER_SPLIT_STRING_NAME,c.ofString(this.PARAMETER_SPLIT_STRING_NAME));EVENT_ARRAY=new w(w.OUTPUT,M.of(this.EVENT_RESULT_NAME,c.ofArray(this.EVENT_RESULT_NAME)));getSignature(){return new y("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([w.outputEventMapEntry(new Map([[this.EVENT_RESULT_NAME,c.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 d([I.outputOf(M.of(this.EVENT_RESULT_NAME,t.split(r)))])}}class Gr extends Q{PARAMETER_INPUT_ANYTYPE_NAME="anytype";EVENT_RESULT_NAME="result";PARAMETER_INPUT_ANYTYPE=new p(this.PARAMETER_INPUT_ANYTYPE_NAME,c.ofAny(this.PARAMETER_INPUT_ANYTYPE_NAME));EVENT_STRING=new w(w.OUTPUT,new Map([[this.EVENT_RESULT_NAME,c.ofString(this.EVENT_RESULT_NAME)]]));getSignature(){return new y("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 d([I.outputOf(new Map([[this.EVENT_RESULT_NAME,r]]))])}}class br extends Q{static PARAMETER_STRING_NAME="string";static PARAMETER_LENGTH_NAME="length";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new p(br.PARAMETER_STRING_NAME,c.ofString(br.PARAMETER_STRING_NAME));static PARAMETER_LENGTH=new p(br.PARAMETER_LENGTH_NAME,c.ofInteger(br.PARAMETER_LENGTH_NAME));static EVENT_STRING=new w(w.OUTPUT,new Map([[br.EVENT_RESULT_NAME,c.ofString(br.EVENT_RESULT_NAME)]]));signature=new y("TrimTo").setNamespace(n.STRING).setParameters(new Map([[br.PARAMETER_STRING.getParameterName(),br.PARAMETER_STRING],[br.PARAMETER_LENGTH.getParameterName(),br.PARAMETER_LENGTH]])).setEvents(new Map([[br.EVENT_STRING.getName(),br.EVENT_STRING]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(br.PARAMETER_STRING_NAME),r=e.getArguments()?.get(br.PARAMETER_LENGTH_NAME);return new d([I.of(br.EVENT_RESULT_NAME,new Map([[br.EVENT_RESULT_NAME,t.substring(0,r)]]))])}}class Dr{static repoMap=M.ofArrayEntries(Ir.ofEntryString("Trim",(e=>e.trim())),Ir.ofEntryString("LowerCase",(e=>e.toLocaleLowerCase())),Ir.ofEntryString("UpperCase",(e=>e.toUpperCase())),Ir.ofEntryStringBooleanOutput("IsBlank",(e=>""===e.trim())),Ir.ofEntryStringBooleanOutput("IsEmpty",(e=>""===e)),Ir.ofEntryAsStringBooleanOutput("Contains",((e,t)=>-1!=e.indexOf(t))),Ir.ofEntryAsStringBooleanOutput("EndsWith",((e,t)=>e.endsWith(t))),Ir.ofEntryAsStringBooleanOutput("EqualsIgnoreCase",((e,t)=>e.toUpperCase()==t.toUpperCase())),Ir.ofEntryAsStringBooleanOutput("Matches",((e,t)=>new RegExp(t).test(e))),Ir.ofEntryAsStringIntegerOutput("IndexOf",((e,t)=>e.indexOf(t))),Ir.ofEntryAsStringIntegerOutput("LastIndexOf",((e,t)=>e.lastIndexOf(t))),Ir.ofEntryAsStringAndIntegerStringOutput("Repeat",((e,t)=>e.repeat(t))),Ir.ofEntryAsStringStringIntegerIntegerOutput("IndexOfWithStartPoint",((e,t,r)=>e.indexOf(t,r))),Ir.ofEntryAsStringStringIntegerIntegerOutput("LastIndexOfWithStartPoint",((e,t,r)=>e.lastIndexOf(t,r))),Ir.ofEntryAsStringStringStringStringOutput("Replace",((e,t,r)=>e)),Ir.ofEntryAsStringStringStringStringOutput("ReplaceFirst",((e,t,r)=>e.replace(t,r))),Ir.ofEntryAsStringIntegerIntegerStringOutput("SubString",((e,t,r)=>e.substring(t,r))),_(new Pr),_(new dr),_(new yr),_(new xr),_(new Lr),_(new vr),_(new Ur),_(new Vr),_(new Cr),_(new Gr),_(new br));static filterableNames=Array.from(Dr.repoMap.values()).map((e=>e.getSignature().getFullName()));find(e,t){if(e==n.STRING)return Dr.repoMap.get(t)}filter(e){return Dr.filterableNames.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}e({},"HybridRepository",(()=>Fr));class Fr{constructor(...e){this.repos=e}find(e,t){for(let r of this.repos){let n=r.find(e,t);if(n)return n}}filter(e){let t=new Set;for(let r of this.repos)r.filter(e).forEach((e=>t.add(e)));return Array.from(t)}}const Br=new Map([[n.SYSTEM_CTX,new Map([_(new class extends Q{getSignature(){return $e}async internalExecute(e){const t=e?.getArguments()?.get("name");if(e?.getContext()?.has(t))throw new P(x.format("Context already has an element for '$' ",t));let r=c.from(e?.getArguments()?.get("schema"));if(!r)throw new P("Schema is not supplied.");return e.getContext().set(t,new He(r,s(r.getDefaultValue())?void 0:r.getDefaultValue())),new d([I.outputOf(new Map)])}}),_(new class extends Q{getSignature(){return je}async internalExecute(e){const t=e?.getArguments()?.get("name");if(!e.getContext()?.has(t))throw new P(x.format("Context don't have an element for '$' ",t));return new d([I.outputOf(new Map(["value",e.getContext()?.get(t)?.getElement()]))])}}),_(new class extends Q{getSignature(){return rr}async internalExecute(e){let t=e?.getArguments()?.get("name");if(V.isNullOrBlank(t))throw new P("Empty string is not a valid name for the context element");let r=e?.getArguments()?.get("value");const n=new De(t),s=n.getTokens().peekLast();if(!s.getExpression().startsWith("Context")||s instanceof De||s instanceof Ge&&!s.getElement().toString().startsWith("Context"))throw new ne(x.format("The context path $ is not a valid path in context",t));for(const e of n.getOperations().toArray())if(e!=be.ARRAY_OPERATOR&&e!=be.OBJECT_OPERATOR)throw new ne(x.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 De&&n.getTokens().set(r,new Ge(t,new tr(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 P(x.format("Context doesn't have any element with name '$' ",t));if(i.isEmpty())return o.setElement(r),new d([I.outputOf(new Map)]);let E=o.getElement(),u=i.removeLast(),A=a.removeLast(),l=A instanceof Ge?A.getElement():A.getExpression();for(s(E)&&(E=u==be.OBJECT_OPERATOR?{}:[],o.setElement(E));!i.isEmpty();)E=u==be.OBJECT_OPERATOR?this.getDataFromObject(E,l,i.peekLast()):this.getDataFromArray(E,l,i.peekLast()),u=i.removeLast(),A=a.removeLast(),l=A instanceof Ge?A.getElement():A.getExpression();return u==be.OBJECT_OPERATOR?this.putDataInObject(E,l,r):this.putDataInArray(E,l,r),new d([I.outputOf(new Map)])}getDataFromArray(e,t,r){if(!Array.isArray(e))throw new P(x.format("Expected an array but found $",e));const n=parseInt(t);if(isNaN(n))throw new P(x.format("Expected an array index but found $",t));if(n<0)throw new P(x.format("Array index is out of bound - $",t));let a=e[n];return s(a)&&(a=r==be.OBJECT_OPERATOR?{}:[],e[n]=a),a}getDataFromObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new P(x.format("Expected an object but found $",e));let n=e[t];return s(n)&&(n=r==be.OBJECT_OPERATOR?{}:[],e[t]=n),n}putDataInArray(e,t,r){if(!Array.isArray(e))throw new P(x.format("Expected an array but found $",e));const n=parseInt(t);if(isNaN(n))throw new P(x.format("Expected an array index but found $",t));if(n<0)throw new P(x.format("Array index is out of bound - $",t));e[n]=r}putDataInObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new P(x.format("Expected an object but found $",e));e[t]=r}})])],[n.SYSTEM_LOOP,new Map([_(new class extends Q{getSignature(){return Er}async internalExecute(e){let t=e.getArguments()?.get("from"),r=e.getArguments()?.get("to"),n=e.getArguments()?.get("step");const s=n>0;let a=t,i=!1,o=e.getStatementExecution()?.getStatement()?.getStatementName();return new d({next(){if(i)return;if(s&&a>=r||!s&&a<=r||o&&e.getExecutionContext()?.get(o))return i=!0,o&&e.getExecutionContext()?.delete(o),I.outputOf(new Map([["value",a]]));const t=I.of(w.ITERATION,new Map([["index",a]]));return a+=n,t}})}}),_(new class extends Q{getSignature(){return ir}async internalExecute(e){let t=e.getArguments()?.get("count"),r=0,n=e.getStatementExecution()?.getStatement()?.getStatementName();return new d({next(){if(r>=t||n&&e.getExecutionContext()?.get(n))return n&&e.getExecutionContext()?.delete(n),I.outputOf(new Map([["value",r]]));const s=I.of(w.ITERATION,new Map([["index",r]]));return++r,s}})}}),_(new class extends Q{getSignature(){return ar}async internalExecute(e){let t=e.getArguments()?.get("stepName");return e.getExecutionContext().set(t,!0),new d([I.outputOf(new Map)])}}),_(new class extends Q{getSignature(){return or}async internalExecute(e){let t=e.getArguments()?.get("source"),r=0,n=e.getStatementExecution()?.getStatement()?.getStatementName();return new d({next(){if(r>=t.length||n&&e.getExecutionContext()?.get(n))return n&&e.getExecutionContext()?.delete(n),I.outputOf(new Map([["value",r]]));const s=I.of(w.ITERATION,new Map([["index",r],["each",t[r]]]));return++r,s}})}})])],[n.SYSTEM,new Map([_(new sr),_(new class extends Q{getSignature(){return nr}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 P("Expect a value object");let n=r.value;return r.isExpression&&(n=new tr(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 d([I.outputOf(new Map)])}}),_(new wr)])]]),Yr=Array.from(Br.values()).flatMap((e=>Array.from(e.values()))).map((e=>e.getSignature().getFullName()));class kr extends Fr{constructor(){super({find:(e,t)=>Br.get(e)?.get(t),filter:e=>Array.from(Yr).filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))},new fr,new Dr,new ke,new Or)}}e({},"StatementExecution",(()=>$r));e({},"StatementMessage",(()=>Hr));class Hr{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 $r{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 Hr(e,t))}addDependency(e){this.dependencies.add(e)}getDepenedencies(){return this.dependencies}equals(e){if(!(e instanceof $r))return!1;return e.statement.equals(this.statement)}}e({},"ContextTokenValueExtractor",(()=>jr));class jr extends Fe{static PREFIX="Context.";constructor(e){super(),this.context=e}getValueInternal(e){let t=e.split(Fe.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 jr.PREFIX}}e({},"OutputMapTokenValueExtractor",(()=>Xr));class Xr extends Fe{static PREFIX="Steps.";constructor(e){super(),this.output=e}getValueInternal(e){let t=e.split(Fe.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;if(r===t.length)return s;const a=t[r].indexOf("[");if(-1===a){let n=s.get(t[r++]);return this.retrieveElementFrom(e,t,r,n)}const i=t[r].substring(0,a);let o=s.get(i);return this.retrieveElementFrom(e,t,r,{[i]:o})}getPrefix(){return Xr.PREFIX}}e({},"ArgumentsTokenValueExtractor",(()=>Wr));class Wr extends Fe{static PREFIX="Arguments.";constructor(e){super(),this.args=e}getValueInternal(e){let t=e.split(Fe.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 Wr.PREFIX}}e({},"GraphVertex",(()=>Jr));e({},"ExecutionGraph",(()=>qr));class qr{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 Jr(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 L(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 Jr{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 G(this,e)),t}addInEdgeTo(e,t){return this.inVertices.add(new G(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 qr(!0);var r=new L(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",(()=>nn));e({},"JsonExpression",(()=>zr));class zr{constructor(e){this.expression=e}getExpression(){return this.expression}}let Kr;var Qr;e({},"ParameterReferenceType",(()=>Kr)),(Qr=Kr||(Kr={})).VALUE="VALUE",Qr.EXPRESSION="EXPRESSION";function Zr(){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",(()=>en));class en{count=0;executionContext=new Map;valueExtractors=new Map;constructor(e,t,r){this.functionRepository=e,this.schemaRepository=t,this.executionId=r??Zr()}getExecutionId(){return this.executionId}getContext(){return this.context}setContext(e){this.context=e;let t=new jr(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 Xr(e);return this.valueExtractors.set(t.getPrefix(),t),this}getCount(){return this.count}setCount(e){return this.count=e,this}getValuesMap(){return this.valueExtractors}getFunctionRepository(){return this.functionRepository}setFunctionRepository(e){return this.functionRepository=e,this}getSchemaRepository(){return this.schemaRepository}setSchemaRepository(e){return this.schemaRepository=e,this}addTokenValueExtractor(...e){for(const t of e)this.valueExtractors.set(t.getPrefix(),t);return this}setValuesMap(e){for(const[t,r]of e.entries())this.valueExtractors.set(t,r);return this}setExecutionContext(e){return this.executionContext=e,this}getExecutionContext(){return this.executionContext}}let tn;var rn;e({},"StatementMessageType",(()=>tn)),(rn=tn||(tn={})).ERROR="ERROR",rn.WARNING="WARNING",rn.MESSAGE="MESSAGE";class nn 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()>nn.VERSION)throw new P("Runtime is at a lower version "+nn.VERSION+" and trying to run code from version "+this.fd.getVersion()+".")}getSignature(){return this.fd}async getExecutionPlan(e,t){let r=new qr;for(let n of Array.from(this.fd.getSteps().values()))r.addVertex(this.prepareStatementExecution(n,e,t));let n=this.makeEdges(r);return Array.from(n.getT2().entries()).forEach((e=>{let t=r.getNodeMap().get(e[0])?.getData();t&&t.addMessage(tn.ERROR,e[1])})),r}async internalExecute(e){e.getContext()||e.setContext(new Map),e.getEvents()||e.setEvents(new Map),e.getSteps()||e.setSteps(new Map),e.getArguments()&&e.addTokenValueExtractor(new Wr(e.getArguments())),this.debugMode&&(console.log(`EID: ${e.getExecutionId()} Executing: ${this.fd.getNamespace()}.${this.fd.getName()}`),console.log(`EID: ${e.getExecutionId()} Parameters: `,e));let t=await this.getExecutionPlan(e.getFunctionRepository(),e.getSchemaRepository());this.debugMode&&console.log(`EID: ${e.getExecutionId()} ${t?.toString()}`);let r=t.getVerticesData().filter((e=>e.getMessages().length)).map((e=>e.getStatement().getStatementName()+": \n"+e.getMessages().join(",")));if(r?.length)throw new P("Please fix the errors in the function definition before execution : \n"+r.join(",\n"));return await this.executeGraph(t,e)}async executeGraph(e,t){let r=new L;r.addAll(e.getVerticesWithNoIncomingEdges());let n=new L;for(;!(r.isEmpty()&&n.isEmpty()||t.getEvents()?.has(w.OUTPUT));)if(await this.processBranchQue(t,r,n),await this.processExecutionQue(t,r,n),t.setCount(t.getCount()+1),t.getCount()==nn.MAX_EXECUTION_ITERATIONS)throw new P("Execution locked in an infinite loop");if(!e.isSubGraph()&&!t.getEvents()?.size){const e=this.getSignature().getEvents();if(e.size&&e.get(w.OUTPUT)?.getParameters()?.size)throw new P("No events raised")}const s=Array.from(t.getEvents()?.entries()??[]).flatMap((e=>e[1].map((t=>I.of(e[0],t)))));return s.length||e.isSubGraph()?new d(s):new d([I.of(w.OUTPUT,new Map)])}async processExecutionQue(e,t,r){if(!t.isEmpty()){let n=t.pop();await this.allDependenciesResolvedVertex(n,e.getSteps())?await this.executeVertex(n,e,r,t,e.getFunctionRepository()):t.add(n)}}async processBranchQue(e,t,r){if(r.length){let n=r.pop();await this.allDependenciesResolvedTuples(n.getT2(),e.getSteps())?await this.executeBranch(e,t,n):r.add(n)}}async executeBranch(e,t,r){let n,s=r.getT4();do{if(await this.executeGraph(r.getT1(),e),n=r.getT3().next(),n&&(e.getSteps()?.has(s.getData().getStatement().getStatementName())||e.getSteps()?.set(s.getData().getStatement().getStatementName(),new Map),e.getSteps()?.get(s.getData().getStatement().getStatementName())?.set(n.getName(),this.resolveInternalExpressions(n.getResult(),e)),this.debugMode)){const t=s.getData().getStatement();console.log(`EID: ${e.getExecutionId()} Step : ${t.getStatementName()} => ${t.getNamespace()}.${t.getName()}`),console.log(`EID: ${e.getExecutionId()} Event : ${n.getName()} : `,e.getSteps().get(t.getStatementName()).get(n.getName()))}}while(n&&n.getName()!=w.OUTPUT);n?.getName()==w.OUTPUT&&s.getOutVertices().has(w.OUTPUT)&&(s?.getOutVertices()?.get(w.OUTPUT)??[]).forEach((async r=>{await this.allDependenciesResolvedVertex(r,e.getSteps())&&t.add(r)}))}async executeVertex(e,t,r,n,a){let i=e.getData().getStatement();if(i.getExecuteIftrue().size){if(!(Array.from(i.getExecuteIftrue().entries())??[]).filter((e=>e[1])).map((([e])=>new tr(e).evaluate(t.getValuesMap()))).every((e=>!s(e)&&!1!==e)))return}let o=a.find(i.getNamespace(),i.getName());if(!o)throw new P(x.format("$.$ function is not found.",i.getNamespace(),i.getName()));let E=o?.getSignature().getParameters(),u=this.getArgumentsFromParametersMap(t,i,E??new Map);this.debugMode&&(console.log(`EID: ${t.getExecutionId()} Step : ${i.getStatementName()} => ${i.getNamespace()}.${i.getName()}`),console.log(`EID: ${t.getExecutionId()} Arguments : `,u));let A,l=t.getContext();A=o instanceof nn?new en(t.getFunctionRepository(),t.getSchemaRepository(),`${t.getExecutionId()}_${i.getStatementName()}`).setArguments(u).setValuesMap(new Map(Array.from(t.getValuesMap().values()).filter((e=>e.getPrefix()!==Wr.PREFIX&&e.getPrefix()!==Xr.PREFIX&&e.getPrefix()!==jr.PREFIX)).map((e=>[e.getPrefix(),e])))):new en(t.getFunctionRepository(),t.getSchemaRepository(),t.getExecutionId()).setValuesMap(t.getValuesMap()).setContext(l).setArguments(u).setEvents(t.getEvents()).setSteps(t.getSteps()).setStatementExecution(e.getData()).setCount(t.getCount()).setExecutionContext(t.getExecutionContext());let g=await o.execute(A),c=g.next();if(!c)throw new P(x.format("Executing $ returned no events",i.getStatementName()));let R=c.getName()==w.OUTPUT;if(t.getSteps()?.has(i.getStatementName())||t.getSteps().set(i.getStatementName(),new Map),t.getSteps().get(i.getStatementName()).set(c.getName(),this.resolveInternalExpressions(c.getResult(),t)),this.debugMode&&(console.log(`EID: ${t.getExecutionId()} Step : ${i.getStatementName()} => ${i.getNamespace()}.${i.getName()}`),console.log(`EID: ${t.getExecutionId()} Event : ${c.getName()} : `,t.getSteps().get(i.getStatementName()).get(c.getName()))),R){let r=e.getOutVertices().get(w.OUTPUT);r&&r.forEach((async e=>{await this.allDependenciesResolvedVertex(e,t.getSteps())&&n.add(e)}))}else{let t=e.getSubGraphOfType(c.getName()),n=this.makeEdges(t).getT1();r.push(new D(t,n,g,e))}}resolveInternalExpressions(e,t){return e?Array.from(e.entries()).map((e=>new G(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 zr){return new tr(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,a=Array.from(t[1]?.values()??[]);if(!a?.length)return new G(t[0],n);let i=r.get(t[0]);return i?(n=i.isVariableArgument()?a.sort(((e,t)=>(e.getOrder()??0)-(t.getOrder()??0))).filter((e=>!s(e))).map((t=>this.parameterReferenceEvaluation(e,t))).flatMap((e=>Array.isArray(e)?e:[e])):this.parameterReferenceEvaluation(e,a[0]),new G(t[0],n)):new G(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()==Kr.VALUE)r=this.resolveInternalExpression(t.getValue(),e);else if(t.getType()==Kr.EXPRESSION&&!V.isNullOrBlank(t.getExpression())){r=new tr(t.getExpression()??"").evaluate(e.getValuesMap())}return r}prepareStatementExecution(e,t,r){let n=new $r(e),a=t.find(e.getNamespace(),e.getName());if(!a)return n.addMessage(tn.ERROR,x.format("$.$ is not available",e.getNamespace(),e.getName())),n;let i=new Map(a.getSignature().getParameters());if(!e.getParameterMap())return n;for(let t of Array.from(e.getParameterMap().entries())){let e=i.get(t[0]);if(!e)continue;let s=Array.from(t[1]?.values()??[]);if(s.length||e.isVariableArgument()){if(e.isVariableArgument()){s.sort(((e,t)=>(e.getOrder()??0)-(t.getOrder()??0)));for(let t of s)this.parameterReferenceValidation(n,e,t,r)}else if(s.length){let t=s[0];this.parameterReferenceValidation(n,e,t,r)}i.delete(e.getParameterName())}else B.hasDefaultValueOrNullSchemaType(e.getSchema(),r)||n.addMessage(tn.ERROR,x.format(nn.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(!s(n.getStatement().getExecuteIftrue()))for(let e of n.getStatement().getExecuteIftrue().entries())e[1]&&this.addDependencies(n,e[0]);if(i.size)for(let e of Array.from(i.values()))e.isVariableArgument()||B.hasDefaultValueOrNullSchemaType(e.getSchema(),r)||n.addMessage(tn.ERROR,x.format(nn.PARAMETER_NEEDS_A_VALUE,e.getParameterName()));return n}parameterReferenceValidation(e,t,r,n){if(r){if(r.getType()==Kr.VALUE){if(s(r.getValue())&&!B.hasDefaultValueOrNullSchemaType(t.getSchema(),n)&&e.addMessage(tn.ERROR,x.format(nn.PARAMETER_NEEDS_A_VALUE,t.getParameterName())),s(r.getValue()))return;let a=new L;for(a.push(new G(t.getSchema(),r.getValue()));!a.isEmpty();){let t=a.pop();if(t.getT2()instanceof zr)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 G(e.getSingleSchema(),r));else{let r=t.getT2();for(let t=0;t<r.length;t++)a.push(new G(e.getTupleSchema()[t],r[t]))}}else if(t.getT1().getType()?.contains(i.OBJECT)&&"object"==typeof t.getT2()){let r=t.getT1();if(r.getName()===p.EXPRESSION.getName()&&r.getNamespace()===p.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 G(r.getProperties().get(e[0]),e[1]))}}}}else if(r.getType()==Kr.EXPRESSION)if(V.isNullOrBlank(r.getExpression()))s(B.getDefaultValue(t.getSchema(),n))&&e.addMessage(tn.ERROR,x.format(nn.PARAMETER_NEEDS_A_VALUE,t.getParameterName()));else try{this.addDependencies(e,r.getExpression())}catch(t){e.addMessage(tn.ERROR,x.format("Error evaluating $ : $",r.getExpression(),t))}}else s(B.getDefaultValue(t.getSchema(),n))&&e.addMessage(tn.ERROR,x.format(nn.PARAMETER_NEEDS_A_VALUE,t.getParameterName()))}addDependencies(e,t){t&&Array.from(t.match(nn.STEP_REGEX_PATTERN)??[]).forEach((t=>e.addDependency(t)))}makeEdges(e){let t=e.getNodeMap().values(),r=[],n=new Map;for(let s of Array.from(t))for(let t of s.getData().getDependencies()){let a=t.indexOf(".",6),i=t.substring(6,a),o=t.indexOf(".",a+1),E=-1==o?t.substring(a+1):t.substring(a+1,o);e.getNodeMap().has(i)?s.addInEdgeTo(e.getNodeMap().get(i),E):(r.push(new G(i,E)),n.set(s.getData().getStatement().getStatementName(),x.format("Unable to find the step with name $",i)))}return new G(r,n)}}e({},"KIRunConstants",(()=>sn));class sn{static NAMESPACE="namespace";static NAME="name";static ID="id";constructor(){}}e({},"Position",(()=>an));class an{static SCHEMA_NAME="Position";static SCHEMA=(new c).setNamespace(n.SYSTEM).setName(an.SCHEMA_NAME).setType(l.of(i.OBJECT)).setProperties(new Map([["left",c.ofFloat("left")],["top",c.ofFloat("top")]]));constructor(e,t){this.left=e,this.top=t}getLeft(){return this.left}setLeft(e){return this.left=e,this}getTop(){return this.top}setTop(e){return this.top=e,this}static from(e){if(e)return new an(e.left,e.top)}}e({},"FunctionDefinition",(()=>gn));e({},"Statement",(()=>un));e({},"AbstractStatement",(()=>on));class on{override=!1;constructor(e){e&&(this.comment=e.comment,this.description=e.description,this.position=e.position?new an(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",(()=>En));class En{static SCHEMA_NAME="ParameterReference";static SCHEMA=(new c).setNamespace(n.SYSTEM).setName(En.SCHEMA_NAME).setType(l.of(i.OBJECT)).setProperties(new Map([["key",c.ofString("key")],["value",c.ofAny("value")],["expression",c.ofString("expression")],["type",c.ofString("type").setEnums(["EXPRESSION","VALUE"])],["order",c.ofInteger("order")]]));constructor(e){if(e instanceof En){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,this.order=t.order}else this.type=e,this.key=Zr()}getType(){return this.type}setType(e){return this.type=e,this}getKey(){return this.key}setKey(e){return this.key=e,this}getValue(){return this.value}setValue(e){return this.value=e,this}getExpression(){return this.expression}setExpression(e){return this.expression=e,this}setOrder(e){return this.order=e,this}getOrder(){return this.order}static ofExpression(e){const t=new En(Kr.EXPRESSION).setExpression(e);return[t.getKey(),t]}static ofValue(e){const t=new En(Kr.VALUE).setValue(e);return[t.getKey(),t]}static from(e){return new En(e.type).setValue(e.value).setExpression(e.expression).setKey(e.key).setOrder(e.order)}}class un extends on{static SCHEMA_NAME="Statement";static SCHEMA=(new c).setNamespace(n.SYSTEM).setName(un.SCHEMA_NAME).setType(l.of(i.OBJECT)).setProperties(new Map([["statementName",c.ofString("statementName")],["comment",c.ofString("comment")],["description",c.ofString("description")],["namespace",c.ofString("namespace")],["name",c.ofString("name")],["dependentStatements",c.ofObject("dependentstatement").setAdditionalProperties((new g).setSchemaValue(c.ofBoolean("exists"))).setDefaultValue({})],["executeIftrue",c.ofObject("executeIftrue").setAdditionalProperties((new g).setSchemaValue(c.ofBoolean("exists"))).setDefaultValue({})],["parameterMap",(new c).setName("parameterMap").setAdditionalProperties((new g).setSchemaValue(c.ofObject("parameterReference").setAdditionalProperties((new g).setSchemaValue(En.SCHEMA))))],["position",an.SCHEMA]]));constructor(e,t,r){if(super(e instanceof un?e:void 0),e instanceof un){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 En(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}getExecuteIftrue(){return this.executeIftrue??new Map}setExecuteIftrue(e){return this.executeIftrue=e,this}equals(e){if(!(e instanceof un))return!1;return e.statementName==this.statementName}static ofEntry(e){return[e.statementName,e]}static from(e){return new un(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])=>En.from(t))).map((e=>[e.getKey(),e])))])))).setDependentStatements(new Map(Object.entries(e.dependentStatements??{}))).setExecuteIftrue(new Map(Object.entries(e.executeIftrue??{}))).setPosition(an.from(e.position)).setComment(e.comment).setDescription(e.description)}}e({},"StatementGroup",(()=>An));class An extends on{static SCHEMA_NAME="StatementGroup";static SCHEMA=(new c).setNamespace(n.SYSTEM).setName(An.SCHEMA_NAME).setType(l.of(i.OBJECT)).setProperties(new Map([["statementGroupName",c.ofString("statementGroupName")],["comment",c.ofString("comment")],["description",c.ofString("description")],["position",an.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 An(e.statementGroupName,new Map(Object.entries(e.statements||{}).map((([e,t])=>[e,"true"==(""+t)?.toLowerCase()])))).setPosition(an.from(e.position)).setComment(e.comment).setDescription(e.description)}}const ln=(new c).setNamespace(n.SYSTEM).setName("FunctionDefinition").setProperties(new Map([["name",c.ofString("name")],["namespace",c.ofString("namespace")],["parameters",c.ofArray("parameters",p.SCHEMA)],["events",c.ofObject("events").setAdditionalProperties((new g).setSchemaValue(w.SCHEMA))],["steps",c.ofObject("steps").setAdditionalProperties((new g).setSchemaValue(un.SCHEMA))]]));ln.getProperties()?.set("parts",c.ofArray("parts",ln));class gn extends y{static SCHEMA=ln;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 gn(e.name).setSteps(new Map(Object.values(e.steps??{}).filter((e=>!!e)).map((e=>[e.statementName,un.from(e)])))).setStepGroups(new Map(Object.values(e.stepGroups??{}).filter((e=>!!e)).map((e=>[e.statementGroupName,An.from(e)])))).setParts(Array.from(e.parts??[]).filter((e=>!!e)).map((e=>gn.from(e)))).setVersion(e.version??1).setEvents(new Map(Object.values(e.events??{}).filter((e=>!!e)).map((e=>[e.name,w.from(e)])))).setParameters(new Map(Object.values(e.parameters??{}).filter((e=>!!e)).map((e=>[e.parameterName,p.from(e)])))):new gn("unknown")}}e({},"Argument",(()=>cn));class cn{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 cn(0,e,t)}}var Rn={};t(Rn,Bt),t(Rn,$t),t(Rn,Xt),t(Rn,qt),t(Rn,Yt);var mn={};t(mn,ze),t(mn,Qe),t(mn,et),t(mn,rt),t(mn,st),t(mn,it),t(mn,Et),t(mn,We),t(mn,At),t(mn,gt),t(mn,Rt),t(mn,Tt),t(mn,ht),t(mn,ft),t(mn,St),t(mn,Ot),t(mn,It),t(mn,dt),t(mn,xt),t(mn,Vt),t(mn,vt),t(mn,Gt),t(mn,Dt),t(mn,Xe);export{f as KIRunSchemaRepository,kr as KIRunFunctionRepository,se as PrimitiveUtil,M as MapUtil,O as MapEntry,s as isNullValue,L as LinkedList,Ue as StringBuilder,x as StringFormatter,V as StringUtil,G as Tuple2,b as Tuple3,D as Tuple4,ie as ArrayUtil,U as deepEqual,Ee as duplicate,$r as StatementExecution,Hr as StatementMessage,He as ContextElement,jr as ContextTokenValueExtractor,Xr as OutputMapTokenValueExtractor,Wr as ArgumentsTokenValueExtractor,Jr as GraphVertex,qr as ExecutionGraph,nn as KIRuntime,tn as StatementMessageType,en as FunctionExecutionParameters,De as Expression,Fe as TokenValueExtractor,Kt as LiteralTokenValueExtractor,Be as ObjectValueSetterExtractor,tr as ExpressionEvaluator,be as Operation,Ce as ExpressionToken,Ve as ExpressionEvaluationException,Ge as ExpressionTokenValue,Q as AbstractFunction,n as Namespaces,zr as JsonExpression,g as AdditionalType,c as Schema,j as NumberValidator,H as BooleanValidator,$ as NullValidator,k as ArrayValidator,Y as AnyOfAllOfOneOfValidator,J as StringValidator,X as ObjectValidator,K as SchemaValidator,F as SchemaValidationException,R as SchemaReferenceException,z as TypeValidator,a as ArraySchemaType,A as SingleType,l as TypeUtil,u as MultipleType,E as Type,i as SchemaType,B as SchemaUtil,W as StringFormat,Fr as HybridRepository,sn as KIRunConstants,p as Parameter,d as FunctionOutput,an as Position,gn as FunctionDefinition,Kr as ParameterReferenceType,I as EventResult,on as AbstractStatement,un as Statement,An as StatementGroup,y as FunctionSignature,w as Event,m as ParameterType,cn as Argument,En as ParameterReference,ne as ExecutionException,P as KIRuntimeException,Ht as ArithmeticUnaryMinusOperator,jt as ArithmeticUnaryPlusOperator,Wt as BitwiseComplementOperator,Jt as LogicalNotOperator,kt as UnaryOperator,Ke as ArithmeticAdditionOperator,Ze as ArithmeticDivisionOperator,tt as ArithmeticIntegerDivisionOperator,nt as ArithmeticModulusOperator,at as ArithmeticMultiplicationOperator,ot as ArithmeticSubtractionOperator,ut as ArrayOperator,qe as BinaryOperator,lt as BitwiseAndOperator,ct as BitwiseLeftShiftOperator,mt as BitwiseOrOperator,pt as BitwiseRightShiftOperator,Nt as BitwiseUnsignedRightShiftOperator,_t as BitwiseXorOperator,Mt as LogicalAndOperator,wt as LogicalEqualOperator,Pt as LogicalGreaterThanEqualOperator,yt as LogicalGreaterThanOperator,Lt as LogicalLessThanEqualOperator,Ct as LogicalNotEqualOperator,Ut as LogicalLessThanOperator,bt as LogicalOrOperator,Ft as ObjectOperator,Je as LogicalNullishCoalescingOperator,Zt as ConditionalTernaryOperator};
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",()=>x);var r,s,n,a,i,o={};e(o,"AdditionalType",()=>M),e(o,"Schema",()=>O),e({},"Namespaces",()=>E);class E{static #e=(()=>{this.SYSTEM="System"})();static #t=(()=>{this.SYSTEM_CTX="System.Context"})();static #r=(()=>{this.SYSTEM_LOOP="System.Loop"})();static #s=(()=>{this.SYSTEM_ARRAY="System.Array"})();static #n=(()=>{this.SYSTEM_OBJECT="System.Object"})();static #a=(()=>{this.MATH="System.Math"})();static #i=(()=>{this.STRING="System.String"})();constructor(){}}function u(e){return null==e}e({},"ArraySchemaType",()=>A),e({},"isNullValue",()=>u);class A{constructor(e){if(!e)return;this.singleSchema=e.singleSchema?new O(e.singleSchema):void 0,this.tupleSchema=e.tupleSchema?e.tupleSchema.map(e=>new O(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!u(this.singleSchema)}static of(...e){return 1==e.length?new A().setSingleSchema(e[0]):new A().setTupleSchema(e)}static from(e){if(!e)return;if(Array.isArray(e))return new A().setTupleSchema(O.fromListOfSchemas(e));let t=Object.keys(e);if(-1!=t.indexOf("singleSchema"))return new A().setSingleSchema(O.from(e.singleSchema));if(-1!=t.indexOf("tupleSchema"))return new A().setTupleSchema(O.fromListOfSchemas(e.tupleSchema));let r=O.from(e);if(r)return new A().setSingleSchema(r)}}e({},"SchemaType",()=>r),function(e){e.INTEGER="Integer",e.LONG="Long",e.FLOAT="Float",e.DOUBLE="Double",e.STRING="String",e.OBJECT="Object",e.ARRAY="Array",e.BOOLEAN="Boolean",e.NULL="Null"}(r||(r={})),e({},"TypeUtil",()=>g),e({},"MultipleType",()=>c),e({},"Type",()=>l);class l{}class c extends l{constructor(e){super(),e instanceof c?this.type=new Set(Array.from(e.type)):this.type=new Set(Array.from(e))}getType(){return this.type}setType(e){return this.type=e,this}getAllowedSchemaTypes(){return this.type}contains(e){return this.type?.has(e)}}e({},"SingleType",()=>h);class h extends l{constructor(e){super(),e instanceof h?this.type=e.type:this.type=e}getType(){return this.type}getAllowedSchemaTypes(){return new Set([this.type])}contains(e){return this.type==e}}class g{static of(...e){return 1==e.length?new h(e[0]):new c(new Set(e))}static from(e){return"string"==typeof e?new h(r[e]):Array.isArray(e)?new c(new Set(e.map(e=>e).map(e=>r[e]))):void 0}}let p="additionalProperty",R="additionalItems",T="enums",m="items",f="System.Schema",N="required",_="version",S="namespace";class M{constructor(e){if(!e||(this.booleanValue=e.booleanValue,!e.schemaValue))return;this.schemaValue=new O(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(u(e))return;let t=new M;if("boolean"==typeof e)t.booleanValue=e;else{let r=Object.keys(e);-1!=r.indexOf("booleanValue")?t.booleanValue=e.booleanValue:-1!=r.indexOf("schemaValue")?t.schemaValue=O.from(e.schemaValue):t.schemaValue=O.from(e)}return t}}class O{static #e=(()=>{this.NULL=new O().setNamespace(E.SYSTEM).setName("Null").setType(g.of(r.NULL)).setConstant(void 0)})();static #t=(()=>{this.TYPE_SCHEMA=new O().setType(g.of(r.STRING)).setEnums(["INTEGER","LONG","FLOAT","DOUBLE","STRING","OBJECT","ARRAY","BOOLEAN","NULL"])})();static #r=(()=>{this.SCHEMA=new O().setNamespace(E.SYSTEM).setName("Schema").setType(g.of(r.OBJECT)).setProperties(new Map([[S,O.of(S,r.STRING).setDefaultValue("_")],["name",O.ofString("name")],[_,O.of(_,r.INTEGER).setDefaultValue(1)],["ref",O.ofString("ref")],["type",new O().setAnyOf([O.TYPE_SCHEMA,O.ofArray("type",O.TYPE_SCHEMA)])],["anyOf",O.ofArray("anyOf",O.ofRef(f))],["allOf",O.ofArray("allOf",O.ofRef(f))],["oneOf",O.ofArray("oneOf",O.ofRef(f))],["not",O.ofRef(f)],["title",O.ofString("title")],["description",O.ofString("description")],["id",O.ofString("id")],["examples",O.ofAny("examples")],["defaultValue",O.ofAny("defaultValue")],["comment",O.ofString("comment")],[T,O.ofArray(T,O.ofString(T))],["constant",O.ofAny("constant")],["pattern",O.ofString("pattern")],["format",O.of("format",r.STRING).setEnums(["DATETIME","TIME","DATE","EMAIL","REGEX"])],["minLength",O.ofInteger("minLength")],["maxLength",O.ofInteger("maxLength")],["multipleOf",O.ofLong("multipleOf")],["minimum",O.ofNumber("minimum")],["maximum",O.ofNumber("maximum")],["exclusiveMinimum",O.ofNumber("exclusiveMinimum")],["exclusiveMaximum",O.ofNumber("exclusiveMaximum")],["properties",O.of("properties",r.OBJECT).setAdditionalProperties(new M().setSchemaValue(O.ofRef(f)))],["additionalProperties",new O().setName(p).setNamespace(E.SYSTEM).setAnyOf([O.ofBoolean(p),O.ofObject(p).setRef(f)]).setDefaultValue(!0)],[N,O.ofArray(N,O.ofString(N)).setDefaultValue([])],["propertyNames",O.ofRef(f)],["minProperties",O.ofInteger("minProperties")],["maxProperties",O.ofInteger("maxProperties")],["patternProperties",O.of("patternProperties",r.OBJECT).setAdditionalProperties(new M().setSchemaValue(O.ofRef(f)))],[m,new O().setName(m).setAnyOf([O.ofRef(f).setName("item"),O.ofArray("tuple",O.ofRef(f))])],["contains",O.ofRef(f)],["minContains",O.ofInteger("minContains")],["maxContains",O.ofInteger("maxContains")],["minItems",O.ofInteger("minItems")],["maxItems",O.ofInteger("maxItems")],["uniqueItems",O.ofBoolean("uniqueItems")],["additionalItems",new O().setName(R).setNamespace(E.SYSTEM).setAnyOf([O.ofBoolean(R),O.ofObject(R).setRef(f)])],["$defs",O.of("$defs",r.OBJECT).setAdditionalProperties(new M().setSchemaValue(O.ofRef(f)))],["permission",O.ofString("permission")]])).setRequired([])})();static ofString(e){return new O().setType(g.of(r.STRING)).setName(e)}static ofInteger(e){return new O().setType(g.of(r.INTEGER)).setName(e)}static ofFloat(e){return new O().setType(g.of(r.FLOAT)).setName(e)}static ofLong(e){return new O().setType(g.of(r.LONG)).setName(e)}static ofDouble(e){return new O().setType(g.of(r.DOUBLE)).setName(e)}static ofAny(e){return new O().setType(g.of(r.INTEGER,r.LONG,r.FLOAT,r.DOUBLE,r.STRING,r.BOOLEAN,r.ARRAY,r.NULL,r.OBJECT)).setName(e)}static ofAnyNotNull(e){return new O().setType(g.of(r.INTEGER,r.LONG,r.FLOAT,r.DOUBLE,r.STRING,r.BOOLEAN,r.ARRAY,r.OBJECT)).setName(e)}static ofNumber(e){return new O().setType(g.of(r.INTEGER,r.LONG,r.FLOAT,r.DOUBLE)).setName(e)}static ofBoolean(e){return new O().setType(g.of(r.BOOLEAN)).setName(e)}static of(e,...t){return new O().setType(g.of(...t)).setName(e)}static ofObject(e){return new O().setType(g.of(r.OBJECT)).setName(e)}static ofRef(e){return new O().setRef(e)}static ofArray(e,...t){return new O().setType(g.of(r.ARRAY)).setName(e).setItems(A.of(...t))}static fromListOfSchemas(e){if(u(e)&&!Array.isArray(e))return;let t=[];for(let r of Array.from(e)){let e=O.from(r);e&&t.push(e)}return t}static fromMapOfSchemas(e){if(u(e))return;let t=new Map;return Object.entries(e).forEach(([e,r])=>{let s=O.from(r);s&&t.set(e,s)}),t}static from(e,t=!1){if(u(e))return;let s=new O;return s.namespace=e.namespace??"_",s.name=e.name,s.version=e.version??1,s.ref=e.ref,t?s.type=new h(r.STRING):s.type=g.from(e.type),s.anyOf=O.fromListOfSchemas(e.anyOf),s.allOf=O.fromListOfSchemas(e.allOf),s.oneOf=O.fromListOfSchemas(e.oneOf),s.not=O.from(e.not),s.description=e.description,s.examples=e.examples?[...e.examples]:void 0,s.defaultValue=e.defaultValue,s.comment=e.comment,s.enums=e.enums?[...e.enums]:void 0,s.constant=e.constant,s.pattern=e.pattern,s.format=e.format,s.minLength=e.minLength,s.maxLength=e.maxLength,s.multipleOf=e.multipleOf,s.minimum=e.minimum,s.maximum=e.maximum,s.exclusiveMinimum=e.exclusiveMinimum,s.exclusiveMaximum=e.exclusiveMaximum,s.properties=O.fromMapOfSchemas(e.properties),s.additionalProperties=M.from(e.additionalProperties),s.required=e.required,s.propertyNames=O.from(e.propertyNames,!0),s.minProperties=e.minProperties,s.maxProperties=e.maxProperties,s.patternProperties=O.fromMapOfSchemas(e.patternProperties),s.items=A.from(e.items),s.additionalItems=M.from(e.additionalItems),s.contains=O.from(e.contains),s.minContains=e.minContains,s.maxContains=e.maxContains,s.minItems=e.minItems,s.maxItems=e.maxItems,s.uniqueItems=e.uniqueItems,s.$defs=O.fromMapOfSchemas(e.$defs),s.permission=e.permission,s}constructor(e){if(this.namespace="_",this.version=1,!e)return;this.namespace=e.namespace,this.name=e.name,this.version=e.version,this.ref=e.ref,this.type=e.type instanceof h?new h(e.type):new c(e.type),this.anyOf=e.anyOf?.map(e=>new O(e)),this.allOf=e.allOf?.map(e=>new O(e)),this.oneOf=e.oneOf?.map(e=>new O(e)),this.not=this.not?new O(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 O(e[1])])):void 0,this.additionalProperties=e.additionalProperties?new M(e.additionalProperties):void 0,this.required=e.required?[...e.required]:void 0,this.propertyNames=e.propertyNames?new O(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 O(e[1])])):void 0,this.items=e.items?new A(e.items):void 0,this.contains=e.contains?new O(this.contains):void 0,this.minContains=e.minContains,this.maxContains=e.maxContains,this.minItems=e.minItems,this.maxItems=e.maxItems,this.uniqueItems=e.uniqueItems,this.additionalItems=e.additionalItems?new M(e.additionalItems):void 0,this.$defs=e.$defs?new Map(Array.from(e.$defs.entries()).map(e=>[e[0],new O(e[1])])):void 0,this.permission=e.permission}getTitle(){return this.namespace&&"_"!=this.namespace?this.namespace+"."+this.name:this.name}getFullName(){return this.namespace+"."+this.name}get$defs(){return this.$defs}set$defs(e){return this.$defs=e,this}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getVersion(){return this.version}setVersion(e){return this.version=e,this}getRef(){return this.ref}setRef(e){return this.ref=e,this}getType(){return this.type}setType(e){return this.type=e,this}getAnyOf(){return this.anyOf}setAnyOf(e){return this.anyOf=e,this}getAllOf(){return this.allOf}setAllOf(e){return this.allOf=e,this}getOneOf(){return this.oneOf}setOneOf(e){return this.oneOf=e,this}getNot(){return this.not}setNot(e){return this.not=e,this}getDescription(){return this.description}setDescription(e){return this.description=e,this}getExamples(){return this.examples}setExamples(e){return this.examples=e,this}getDefaultValue(){return this.defaultValue}setDefaultValue(e){return this.defaultValue=e,this}getComment(){return this.comment}setComment(e){return this.comment=e,this}getEnums(){return this.enums}setEnums(e){return this.enums=e,this}getConstant(){return this.constant}setConstant(e){return this.constant=e,this}getPattern(){return this.pattern}setPattern(e){return this.pattern=e,this}getFormat(){return this.format}setFormat(e){return this.format=e,this}getMinLength(){return this.minLength}setMinLength(e){return this.minLength=e,this}getMaxLength(){return this.maxLength}setMaxLength(e){return this.maxLength=e,this}getMultipleOf(){return this.multipleOf}setMultipleOf(e){return this.multipleOf=e,this}getMinimum(){return this.minimum}setMinimum(e){return this.minimum=e,this}getMaximum(){return this.maximum}setMaximum(e){return this.maximum=e,this}getExclusiveMinimum(){return this.exclusiveMinimum}setExclusiveMinimum(e){return this.exclusiveMinimum=e,this}getExclusiveMaximum(){return this.exclusiveMaximum}setExclusiveMaximum(e){return this.exclusiveMaximum=e,this}getProperties(){return this.properties}setProperties(e){return this.properties=e,this}getAdditionalProperties(){return this.additionalProperties}setAdditionalProperties(e){return this.additionalProperties=e,this}getAdditionalItems(){return this.additionalItems}setAdditionalItems(e){return this.additionalItems=e,this}getRequired(){return this.required}setRequired(e){return this.required=e,this}getPropertyNames(){return this.propertyNames}setPropertyNames(e){return this.propertyNames=e,this.propertyNames.type=new h(r.STRING),this}getMinProperties(){return this.minProperties}setMinProperties(e){return this.minProperties=e,this}getMaxProperties(){return this.maxProperties}setMaxProperties(e){return this.maxProperties=e,this}getPatternProperties(){return this.patternProperties}setPatternProperties(e){return this.patternProperties=e,this}getItems(){return this.items}setItems(e){return this.items=e,this}getContains(){return this.contains}setContains(e){return this.contains=e,this}getMinContains(){return this.minContains}setMinContains(e){return this.minContains=e,this}getMaxContains(){return this.maxContains}setMaxContains(e){return this.maxContains=e,this}getMinItems(){return this.minItems}setMinItems(e){return this.minItems=e,this}getMaxItems(){return this.maxItems}setMaxItems(e){return this.maxItems=e,this}getUniqueItems(){return this.uniqueItems}setUniqueItems(e){return this.uniqueItems=e,this}getPermission(){return this.permission}setPermission(e){return this.permission=e,this}}e({},"Parameter",()=>I),e({},"SchemaReferenceException",()=>d);class d extends Error{constructor(e,t,r){super(e.trim()?e+"-"+t:t),this.schemaPath=e,this.cause=r}getSchemaPath(){return this.schemaPath}getCause(){return this.cause}}e({},"ParameterType",()=>s),function(e){e.CONSTANT="CONSTANT",e.EXPRESSION="EXPRESSION"}(s||(s={}));let w="value";class I{static #e=(()=>{this.SCHEMA_NAME="Parameter"})();static #t=(()=>{this.SCHEMA=new O().setNamespace(E.SYSTEM).setName(I.SCHEMA_NAME).setProperties(new Map([["schema",O.SCHEMA],["parameterName",O.ofString("parameterName")],["variableArgument",O.of("variableArgument",r.BOOLEAN).setDefaultValue(!1)],["type",O.ofString("type").setEnums(["EXPRESSION","CONSTANT"])]]))})();static #r=(()=>{this.EXPRESSION=new O().setNamespace(E.SYSTEM).setName("ParameterExpression").setType(g.of(r.OBJECT)).setProperties(new Map([["isExpression",O.ofBoolean("isExpression").setDefaultValue(!0)],[w,O.ofAny(w)]]))})();constructor(e,t){if(this.variableArgument=!1,this.type=s.EXPRESSION,e instanceof I)this.schema=new O(e.schema),this.parameterName=e.parameterName,this.variableArgument=e.variableArgument,this.type=e.type;else{if(!t)throw Error("Unknown constructor signature");this.schema=t,this.parameterName=e}}getSchema(){return this.schema}setSchema(e){return this.schema=e,this}getParameterName(){return this.parameterName}setParameterName(e){return this.parameterName=e,this}isVariableArgument(){return this.variableArgument}setVariableArgument(e){return this.variableArgument=e,this}getType(){return this.type}setType(e){return this.type=e,this}static ofEntry(e,t,r=!1,n=s.EXPRESSION){return[e,new I(e,t).setType(n).setVariableArgument(r)]}static of(e,t,r=!1,n=s.EXPRESSION){return new I(e,t).setType(n).setVariableArgument(r)}static from(e){let t=O.from(e.schema);if(!t)throw new d("","Parameter requires Schema");return new I(e.parameterName,t).setVariableArgument(!!e.variableArguments).setType(e.type??s.EXPRESSION)}}let P=new Map([["any",O.ofAny("any").setNamespace(E.SYSTEM)],["boolean",O.ofBoolean("boolean").setNamespace(E.SYSTEM)],["double",O.ofDouble("double").setNamespace(E.SYSTEM)],["float",O.ofFloat("float").setNamespace(E.SYSTEM)],["integer",O.ofInteger("integer").setNamespace(E.SYSTEM)],["long",O.ofLong("long").setNamespace(E.SYSTEM)],["number",O.ofNumber("number").setNamespace(E.SYSTEM)],["string",O.ofString("string").setNamespace(E.SYSTEM)],[I.EXPRESSION.getName(),I.EXPRESSION],[O.NULL.getName(),O.NULL],[O.SCHEMA.getName(),O.SCHEMA]]),y=Array.from(P.values()).map(e=>e.getFullName());class x{async find(e,t){return E.SYSTEM!=e?Promise.resolve(void 0):Promise.resolve(P.get(t))}async filter(e){return Promise.resolve(y.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}function L(e){return[e.getSignature().getName(),e]}e({},"KIRunFunctionRepository",()=>sc);var v={};e(v,"MapUtil",()=>U),e(v,"MapEntry",()=>b);class U{static of(e,t,r,s,n,a,i,o,E,A,l,c,h,g,p,R,T,m,f,N){let _=new Map;return u(e)||u(t)||_.set(e,t),u(r)||u(s)||_.set(r,s),u(n)||u(a)||_.set(n,a),u(i)||u(o)||_.set(i,o),u(E)||u(A)||_.set(E,A),u(l)||u(c)||_.set(l,c),u(h)||u(g)||_.set(h,g),u(p)||u(R)||_.set(p,R),u(T)||u(m)||_.set(T,m),u(f)||u(N)||_.set(f,N),_}static ofArrayEntries(...e){let t=new Map;for(let[r,s]of e)t.set(r,s);return t}static entry(e,t){return new b(e,t)}static ofEntries(...e){let t=new Map;for(let r of e)t.set(r.k,r.v);return t}static ofEntriesArray(...e){let t=new Map;for(let r=0;r<e.length;r++)t.set(e[r][0],e[r][1]);return t}constructor(){}}class b{constructor(e,t){this.k=e,this.v=t}}e({},"EventResult",()=>C),e({},"Event",()=>V);class V{static #e=(()=>{this.OUTPUT="output"})();static #t=(()=>{this.ERROR="error"})();static #r=(()=>{this.ITERATION="iteration"})();static #s=(()=>{this.TRUE="true"})();static #n=(()=>{this.FALSE="false"})();static #a=(()=>{this.SCHEMA_NAME="Event"})();static #i=(()=>{this.SCHEMA=new O().setNamespace(E.SYSTEM).setName(V.SCHEMA_NAME).setType(g.of(r.OBJECT)).setProperties(new Map([["name",O.ofString("name")],["parameters",O.ofObject("parameter").setAdditionalProperties(new M().setSchemaValue(O.SCHEMA))]]))})();constructor(e,t){if(e instanceof V)this.name=e.name,this.parameters=new Map(Array.from(e.parameters.entries()).map(e=>[e[0],new O(e[1])]));else{if(this.name=e,!t)throw Error("Unknown constructor format");this.parameters=t}}getName(){return this.name}setName(e){return this.name=e,this}getParameters(){return this.parameters}setParameters(e){return this.parameters=e,this}static outputEventMapEntry(e){return V.eventMapEntry(V.OUTPUT,e)}static eventMapEntry(e,t){return[e,new V(e,t)]}static from(e){return new V(e.name,new Map(Object.entries(e.parameters??{}).map(e=>{let t=O.from(e[1]);if(!t)throw new d("","Event expects a schema");return[e[0],t]})))}}class C{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 C.of(V.OUTPUT,e)}static of(e,t){return new C(e,t)}}e({},"FunctionOutput",()=>G),e({},"KIRuntimeException",()=>$);class $ extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class G{constructor(e){if(this.index=0,u(e))throw new $("Function output is generating null");Array.isArray(e)&&e.length&&e[0]instanceof C?this.fo=e:(this.fo=[],Array.isArray(e)||(this.generator=e))}next(){if(!this.generator)return this.index<this.fo.length?this.fo[this.index++]:void 0;let e=this.generator.next();return e&&this.fo.push(e),e}allResults(){return this.fo}}e({},"FunctionSignature",()=>D);class D{static #e=(()=>{this.SCHEMA_NAME="FunctionSignature"})();static #t=(()=>{this.SCHEMA=new O().setNamespace(E.SYSTEM).setName(D.SCHEMA_NAME).setProperties(new Map([["name",O.ofString("name")],["namespace",O.ofString("namespace")],["parameters",O.ofObject("parameters").setAdditionalProperties(new M().setSchemaValue(I.SCHEMA))],["events",O.ofObject("events").setAdditionalProperties(new M().setSchemaValue(V.SCHEMA))]]))})();constructor(e){this.namespace="_",this.parameters=new Map,this.events=new Map,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 I(e[1])])),this.events=new Map(Array.from(e.events.entries()).map(e=>[e[0],new V(e[1])]))):this.name=e}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getParameters(){return this.parameters}setParameters(e){return this.parameters=e,this}getEvents(){return this.events}setEvents(e){return this.events=e,this}getFullName(){return this.namespace+"."+this.name}}e({},"AbstractFunction",()=>ei),e({},"SchemaValidator",()=>ea),e({},"deepEqual",()=>k),e({},"LinkedList",()=>B),e({},"StringFormatter",()=>F);class F{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))&&"\\"==a?r=r.substring(0,o-1)+n:"$"==n&&s<t.length?r+=t[s++]:r+=n,a=n;return r.toString()}constructor(){}}class B{constructor(e){if(this.head=void 0,this.tail=void 0,this.length=0,e?.length){for(let t of e)if(this.head){let e=new Y(t,this.tail);this.tail.next=e,this.tail=e}else this.tail=this.head=new Y(t);this.length=e.length}}push(e){let t=new Y(e,void 0,this.head);this.head?(this.head.previous=t,this.head=t):this.tail=this.head=t,this.length++}pop(){if(!this.head)throw Error("List is empty and cannot pop further.");let e=this.head.value;if(this.length--,this.head==this.tail)return this.head=this.tail=void 0,e;let t=this.head;return this.head=t.next,t.next=void 0,t.previous=void 0,this.head.previous=void 0,e}isEmpty(){return!this.length}size(){return this.length}get(e){if(e<0||e>=this.length)throw Error(`${e} is out of bounds [0,${this.length}]`);let t=this.head;for(;e>0;)t=this.head.next,--e;return t.value}set(e,t){if(e<0||e>=this.length)throw new $(F.format("Index $ out of bound to set the value in linked list.",e));let r=this.head;for(;e>0;)r=this.head.next,--e;return r.value=t,this}toString(){let e=this.head,t="";for(;e;)t+=e.value,(e=e.next)&&(t+=", ");return`[${t}]`}toArray(){let e=[],t=this.head;for(;t;)e.push(t.value),t=t.next;return e}peek(){if(!this.head)throw Error("List is empty so cannot peak");return this.head.value}peekLast(){if(!this.tail)throw Error("List is empty so cannot peak");return this.tail.value}getFirst(){if(!this.head)throw Error("List is empty so cannot get first");return this.head.value}removeFirst(){return this.pop()}removeLast(){if(!this.tail)throw Error("List is empty so cannot remove");--this.length;let e=this.tail.value;if(0==this.length)this.head=this.tail=void 0;else{let e=this.tail.previous;e.next=void 0,this.tail.previous=void 0,this.tail=e}return e}addAll(e){return e&&e.length&&e.forEach(this.add.bind(this)),this}add(e){return++this.length,this.tail||this.head?this.head===this.tail?(this.tail=new Y(e,this.head),this.head.next=this.tail):(this.tail=new Y(e,this.tail),this.tail.previous.next=this.tail):this.head=this.tail=new Y(e),this}map(e,t){let r=new B,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(k(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 Y{constructor(e,t,r){this.value=e,this.next=r,this.previous=t}toString(){return""+this.value}}function k(e,t){let r=new B;r.push(e);let s=new B;for(s.push(t);!r.isEmpty()&&!s.isEmpty();){let e=r.pop(),t=s.pop();if(e===t)continue;let 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]);continue}if("object"===n){let n=Object.entries(e),a=Object.entries(t);if(n.length!==a.length)return!1;for(let[e,a]of n)r.push(a),s.push(t[e]);continue}return!1}return!0}e({},"StringUtil",()=>H);class H{constructor(){}static nthIndex(e,t,r=0,s){if(!e)throw new $("String cannot be null");if(r<0||r>=e.length)throw new $(F.format("Cannot search from index : $",r));if(s<=0||s>e.length)throw new $(F.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",()=>z);var j={};e(j,"Tuple2",()=>X),e(j,"Tuple3",()=>W),e(j,"Tuple4",()=>q);class X{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 W extends X{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 q extends W{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",()=>J);class J 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 z{static #e=(()=>{this.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH="Unable to retrive schema from referenced path"})();static #t=(()=>{this.CYCLIC_REFERENCE_LIMIT_COUNTER=20})();static async getDefaultValue(e,t){if(e)return e.getConstant()?e.getConstant():u(e.getDefaultValue())?z.getDefaultValue(await z.getSchemaFromRef(e,t,e.getRef()),t):e.getDefaultValue()}static async hasDefaultValueOrNullSchemaType(e,t){return e?e.getConstant()||!u(e.getDefaultValue())?Promise.resolve(!0):u(e.getRef())?e.getType()?.getAllowedSchemaTypes().has(r.NULL)?Promise.resolve(!0):Promise.resolve(!1):this.hasDefaultValueOrNullSchemaType(await z.getSchemaFromRef(e,t,e.getRef()),t):Promise.resolve(!1)}static async getSchemaFromRef(e,t,r,s=0){if(++s==z.CYCLIC_REFERENCE_LIMIT_COUNTER)throw new J(r??"","Schema has a cyclic reference");if(!e||!r||H.isNullOrBlank(r))return Promise.resolve(void 0);if(!r.startsWith("#")){var n=await z.resolveExternalSchema(e,t,r);n&&(e=n.getT1(),r=n.getT2())}let a=r.split("/");return 1===a.length?Promise.resolve(e):Promise.resolve(z.resolveInternalSchema(e,t,r,s,a,1))}static async resolveInternalSchema(e,t,s,n,a,i){let o=e;if(i!==a.length){for(;i<a.length;){if("$defs"===a[i]){if(++i>=a.length||!o.get$defs())throw new d(s,z.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);o=o.get$defs()?.get(a[i])}else{if(o&&(!o.getType()?.contains(r.OBJECT)||!o.getProperties()))throw new d(s,"Cannot retrievie schema from non Object type schemas");o=o.getProperties()?.get(a[i])}if(i++,!o||!H.isNullOrBlank(o.getRef())&&!(o=await z.getSchemaFromRef(o,t,o.getRef(),n)))throw new d(s,z.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH)}return Promise.resolve(o)}}static async resolveExternalSchema(e,t,r){if(!t)return Promise.resolve(void 0);let s=H.splitAtFirstOccurance(r??"","/");if(!s[0])return Promise.resolve(void 0);let n=H.splitAtFirstOccurance(s[0],".");if(!n[0]||!n[1])return Promise.resolve(void 0);let a=await t.find(n[0],n[1]);if(!a)return Promise.resolve(void 0);if(!s[1]||""===s[1])return Promise.resolve(new X(a,r));if(r="#/"+s[1],!a)throw new d(r,z.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);return Promise.resolve(new X(a,r))}constructor(){}}e({},"AnyOfAllOfOneOfValidator",()=>K);class K{static validate(e,t,r,s){let n=[];return t.getOneOf()&&!t.getOneOf()?K.oneOf(e,t,r,s,n):t.getAllOf()&&!t.getAllOf()?K.allOf(e,t,r,s,n):t.getAnyOf()&&!t.getAnyOf()&&K.anyOf(e,t,r,s,n),s}static anyOf(e,t,r,s,n){let a=!1;for(let i of t.getAnyOf()??[])try{K.validate(e,i,r,s),a=!0;break}catch(e){a=!1,n.push(e)}if(!a)throw new J(ea.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{K.validate(e,i,r,s),a++}catch(e){n.push(e)}if(a!==t.getAllOf()?.length)throw new J(ea.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{K.validate(e,i,r,s),a++}catch(e){n.push(e)}if(1!=a)throw new J(ea.path(e),0==a?"The value does not satisfy any schema":"The value satisfy more than one schema",n)}constructor(){}}e({},"TypeValidator",()=>en),e({},"ArrayValidator",()=>Q);class Q{static async validate(e,t,r,s){if(u(s))throw new J(ea.path(e),"Expected an array but found null");if(!Array.isArray(s))throw new J(ea.path(e),s.toString()+" is not an Array");return Q.checkMinMaxItems(e,t,s),await Q.checkItems(e,t,r,s),Q.checkUniqueItems(e,t,s),await Q.checkContains(t,e,r,s),s}static async checkContains(e,t,r,s){if(u(e.getContains()))return;let n=await Q.countContains(t,e,r,s,u(e.getMinContains())&&u(e.getMaxContains()));if(0===n)throw new J(ea.path(t),"None of the items are of type contains schema");if(!u(e.getMinContains())&&e.getMinContains()>n)throw new J(ea.path(t),"The minimum number of the items of type contains schema should be "+e.getMinContains()+" but found "+n);if(!u(e.getMaxContains())&&e.getMaxContains()<n)throw new J(ea.path(t),"The maximum number of the items of type contains schema should be "+e.getMaxContains()+" but found "+n)}static async countContains(e,t,r,s,n){let a=0;for(let i=0;i<s.length;i++){let o=e?[...e]:[];try{if(await ea.validate(o,t.getContains(),r,s[i]),a++,n)break}catch(e){}}return a}static checkUniqueItems(e,t,r){if(t.getUniqueItems()&&t.getUniqueItems()&&new Set(r).size!==r.length)throw new J(ea.path(e),"Items on the array are not unique")}static checkMinMaxItems(e,t,r){if(t.getMinItems()&&t.getMinItems()>r.length)throw new J(ea.path(e),"Array should have minimum of "+t.getMinItems()+" elements");if(t.getMaxItems()&&t.getMaxItems()<r.length)throw new J(ea.path(e),"Array can have maximum of "+t.getMaxItems()+" elements")}static async 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=await ea.validate(a,n.getSingleSchema(),r,s[t]);s[t]=i}if(n.getTupleSchema()){if(n.getTupleSchema().length!==s.length&&u(t?.getAdditionalItems()))throw new J(ea.path(e),"Expected an array with only "+n.getTupleSchema().length+" but found "+s.length);await this.checkItemsInTupleSchema(e,r,s,n),await this.checkAdditionalItems(e,t,r,s,n)}}static async checkItemsInTupleSchema(e,t,r,s){for(let n=0;n<s.getTupleSchema()?.length;n++){let a=e?[...e]:[],i=await ea.validate(a,s.getTupleSchema()[n],t,r[n]);r[n]=i}}static async checkAdditionalItems(e,t,r,s,n){if(!u(t.getAdditionalItems())){let a=t.getAdditionalItems();if(a?.getBooleanValue()){let i=O.ofAny("item");if(a?.getBooleanValue()===!1&&s.length>n.getTupleSchema()?.length)throw new J(ea.path(e),"No Additional Items are defined");await this.checkEachItemInAdditionalItems(e,t,r,s,n,i)}else if(a?.getSchemaValue()){let i=a.getSchemaValue();await this.checkEachItemInAdditionalItems(e,t,r,s,n,i)}}}static async checkEachItemInAdditionalItems(e,t,r,s,n,a){for(let t=n.getTupleSchema()?.length;t<s.length;t++){let n=e?[...e]:[],i=await ea.validate(n,a,r,s[t]);s[t]=i}}constructor(){}}e({},"BooleanValidator",()=>Z);class Z{static validate(e,t,r){if(u(r))throw new J(ea.path(e),"Expected a boolean but found null");if("boolean"!=typeof r)throw new J(ea.path(e),r.toString()+" is not a boolean");return r}constructor(){}}e({},"NullValidator",()=>ee);class ee{static validate(e,t,r){if(u(r))return r;throw new J(ea.path(e),"Expected a null but found "+r)}constructor(){}}e({},"NumberValidator",()=>et);class et{static validate(e,t,r,s){if(u(s))throw new J(ea.path(t),"Expected a number but found null");if("number"!=typeof s)throw new J(ea.path(t),s.toString()+" is not a "+e);let n=et.extractNumber(e,t,r,s);return et.checkRange(t,r,s,n),et.checkMultipleOf(t,r,s,n),s}static extractNumber(e,t,s,n){let a=n;try{(e==r.LONG||e==r.INTEGER)&&(a=Math.round(a))}catch(r){throw new J(ea.path(t),n+" is not a number of type "+e,r)}if(u(a)||(e==r.LONG||e==r.INTEGER)&&a!=n)throw new J(ea.path(t),n.toString()+" is not a number of type "+e);return a}static checkMultipleOf(e,t,r,s){if(t.getMultipleOf()&&s%t.getMultipleOf()!=0)throw new J(ea.path(e),r.toString()+" is not multiple of "+t.getMultipleOf())}static checkRange(e,t,r,s){if(t.getMinimum()&&0>et.numberCompare(s,t.getMinimum()))throw new J(ea.path(e),r.toString()+" should be greater than or equal to "+t.getMinimum());if(t.getMaximum()&&et.numberCompare(s,t.getMaximum())>0)throw new J(ea.path(e),r.toString()+" should be less than or equal to "+t.getMaximum());if(t.getExclusiveMinimum()&&0>=et.numberCompare(s,t.getExclusiveMinimum()))throw new J(ea.path(e),r.toString()+" should be greater than "+t.getExclusiveMinimum());if(t.getExclusiveMaximum()&&et.numberCompare(s,t.getExclusiveMaximum())>0)throw new J(ea.path(e),r.toString()+" should be less than "+t.getExclusiveMaximum())}static numberCompare(e,t){return e-t}constructor(){}}e({},"ObjectValidator",()=>er);class er{static async validate(e,t,r,s){if(u(s))throw new J(ea.path(e),"Expected an object but found null");if("object"!=typeof s||Array.isArray(s))throw new J(ea.path(e),s.toString()+" is not an Object");let n=new Set(Object.keys(s));er.checkMinMaxProperties(e,t,n),t.getPropertyNames()&&await er.checkPropertyNameSchema(e,t,r,n),t.getRequired()&&er.checkRequired(e,t,s),t.getProperties()&&await er.checkProperties(e,t,r,s,n),t.getPatternProperties()&&await er.checkPatternProperties(e,t,r,s,n),t.getAdditionalProperties()&&await er.checkAddtionalProperties(e,t,r,s,n)}static async checkPropertyNameSchema(e,t,r,s){for(let n of Array.from(s.values()))try{await ea.validate(e,t.getPropertyNames(),r,n)}catch(t){throw new J(ea.path(e),"Property name '"+n+"' does not fit the property schema")}}static checkRequired(e,t,r){for(let s of t.getRequired()??[])if(u(r[s]))throw new J(ea.path(e),s+" is mandatory")}static async 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=await ea.validate(n,a.getSchemaValue(),r,s[t]);s[t]=i}else if(!1===a.getBooleanValue()&&n.size)throw new J(ea.path(e),Array.from(n)+" is/are additional properties which are not allowed.")}static async checkPatternProperties(e,t,r,s,n){let a=new Map;for(let e of Array.from(t.getPatternProperties().keys()))a.set(e,new RegExp(e));for(let i of Array.from(n.values())){let o=e?[...e]:[];for(let e of Array.from(a.entries()))if(e[1].test(i)){let a=await ea.validate(o,t.getPatternProperties().get(e[0]),r,s[i]);s[i]=a,n.delete(i);break}}}static async checkProperties(e,t,r,s,n){for(let a of Array.from(t.getProperties())){let t=s[a[0]];if(!s.hasOwnProperty(a[0])&&u(t)){let e=await z.getDefaultValue(a[1],r);if(u(e))continue}let i=e?[...e]:[],o=await ea.validate(i,a[1],r,t);s[a[0]]=o,n.delete(a[0])}}static checkMinMaxProperties(e,t,r){if(t.getMinProperties()&&r.size<t.getMinProperties())throw new J(ea.path(e),"Object should have minimum of "+t.getMinProperties()+" properties");if(t.getMaxProperties()&&r.size>t.getMaxProperties())throw new J(ea.path(e),"Object can have maximum of "+t.getMaxProperties()+" properties")}constructor(){}}e({},"StringValidator",()=>es),e({},"StringFormat",()=>n),function(e){e.DATETIME="DATETIME",e.TIME="TIME",e.DATE="DATE",e.EMAIL="EMAIL",e.REGEX="REGEX"}(n||(n={}));class es{static #e=(()=>{this.TIME=/^([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?([+-][01][0-9]:[0-5][0-9])?$/})();static #t=(()=>{this.DATE=/^[0-9]{4,4}-([0][0-9]|[1][0-2])-(0[1-9]|[1-2][1-9]|3[01])$/})();static #r=(()=>{this.DATETIME=/^[0-9]{4,4}-([0][0-9]|[1][0-2])-(0[1-9]|[1-2][1-9]|3[01])T([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?([+-][01][0-9]:[0-5][0-9])?$/})();static #s=(()=>{this.EMAIL=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/})();static validate(e,t,r){if(u(r))throw new J(ea.path(e),"Expected a string but found "+r);if("string"!=typeof r)throw new J(ea.path(e),r.toString()+" is not String");t.getFormat()==n.TIME?es.patternMatcher(e,t,r,es.TIME,"time pattern"):t.getFormat()==n.DATE?es.patternMatcher(e,t,r,es.DATE,"date pattern"):t.getFormat()==n.DATETIME?es.patternMatcher(e,t,r,es.DATETIME,"date time pattern"):t.getFormat()==n.EMAIL?es.patternMatcher(e,t,r,es.EMAIL,"email pattern"):t.getPattern()&&es.patternMatcher(e,t,r,new RegExp(t.getPattern()),"pattern "+t.getPattern());let s=r.length;if(t.getMinLength()&&s<t.getMinLength())throw new J(ea.path(e),"Expected a minimum of "+t.getMinLength()+" characters");if(t.getMaxLength()&&s>t.getMaxLength())throw new J(ea.path(e),"Expected a maximum of "+t.getMaxLength()+" characters");return r}static patternMatcher(e,t,r,s,n){if(!s.test(r))throw new J(ea.path(e),r.toString()+" is not matched with the "+n)}constructor(){}}class en{static async validate(e,t,s,n,a){if(t==r.STRING)es.validate(e,s,a);else if(t==r.LONG||t==r.INTEGER||t==r.DOUBLE||t==r.FLOAT)et.validate(t,e,s,a);else if(t==r.BOOLEAN)Z.validate(e,s,a);else if(t==r.OBJECT)await er.validate(e,s,n,a);else if(t==r.ARRAY)await Q.validate(e,s,n,a);else if(t==r.NULL)ee.validate(e,s,a);else throw new J(ea.path(e),t+" is not a valid type.");return a}constructor(){}}class ea{static path(e){return e?e.map(e=>e.getTitle()??"").filter(e=>!!e).reduce((e,t,r)=>e+(0===r?"":".")+t,""):""}static async validate(e,t,r,s){if(!t)throw new J(ea.path(e),"No schema found to validate");if(e||(e=[]),e.push(t),u(s)&&!u(t.getDefaultValue()))return JSON.parse(JSON.stringify(t.getDefaultValue()));if(!u(t.getConstant()))return ea.constantValidation(e,t,s);if(t.getEnums()&&!t.getEnums()?.length)return ea.enumCheck(e,t,s);if(t.getFormat()&&u(t.getType()))throw new J(this.path(e),"Type is missing in schema for declared "+t.getFormat()?.toString()+" format.");if(t.getType()&&await ea.typeValidation(e,t,r,s),!H.isNullOrBlank(t.getRef()))return await ea.validate(e,await z.getSchemaFromRef(e[0],r,t.getRef()),r,s);if((t.getOneOf()||t.getAllOf()||t.getAnyOf())&&K.validate(e,t,r,s),t.getNot()){let n=!1;try{await ea.validate(e,t.getNot(),r,s),n=!0}catch(e){n=!1}if(n)throw new J(ea.path(e),"Schema validated value in not condition.")}return s}static constantValidation(e,t,r){if(!k(t.getConstant(),r))throw new J(ea.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 J(ea.path(e),"Value is not one of "+t.getEnums())}static async typeValidation(e,t,r,s){let n,a=!1,i=[];for(n of Array.from(t.getType()?.getAllowedSchemaTypes()?.values()??[]))try{await en.validate(e,n,t,r,s),a=!0;break}catch(e){a=!1,i.push(e)}if(!a)throw new J(ea.path(e),"Value "+JSON.stringify(s)+" is not of valid type(s)",i)}constructor(){}}class ei{async validateArguments(e,t,r){let s=new Map;for(let n of Array.from(this.getSignature().getParameters().entries())){let a=n[1];try{let r=await this.validateArgument(e,t,n,a);s.set(r.getT1(),r.getT2())}catch(t){let e=this.getSignature();throw new $(`Error while executing the function ${e.getNamespace()}.${e.getName()}'s parameter ${a.getParameterName()} with step name '${r?.getStatement().getStatementName()??"Unknown Step"}' with error : ${t?.message}`)}}return s}async validateArgument(e,t,r,s){let n,a=r[0],i=e.get(r[0]);if(u(i)&&!s.isVariableArgument())return new X(a,await ea.validate(void 0,s.getSchema(),t,void 0));if(!s?.isVariableArgument())return new X(a,await ea.validate(void 0,s.getSchema(),t,i));Array.isArray(i)?n=i:(n=[],u(i)?u(s.getSchema().getDefaultValue())||n.push(s.getSchema().getDefaultValue()):n.push(i));for(let e=0;e<n.length;e++)n[e]=await ea.validate(void 0,s.getSchema(),t,n[e]);return new X(a,n)}async execute(e){let t=await this.validateArguments(e.getArguments()??new Map,e.getSchemaRepository(),e.getStatementExecution());e.setArguments(t);try{return this.internalExecute(e)}catch(r){let t=this.getSignature();throw new $(`Error while executing the function ${t.getNamespace()}.${t.getName()} with step name '${e.getStatementExecution()?.getStatement().getStatementName()??"Unknown Step"}' with error : ${r?.message}`)}}getProbableEventSignature(e){return this.getSignature().getEvents()}}class eo extends ei{static #e=(()=>{this.EVENT_INDEX_NAME="index"})();static #t=(()=>{this.EVENT_RESULT_NAME="result"})();static #r=(()=>{this.EVENT_INDEX=new V(V.OUTPUT,U.of(eo.EVENT_INDEX_NAME,O.ofInteger(eo.EVENT_INDEX_NAME)))})();static #s=(()=>{this.EVENT_RESULT_INTEGER=new V(V.OUTPUT,U.of(eo.EVENT_RESULT_NAME,O.ofInteger(eo.EVENT_RESULT_NAME)))})();static #n=(()=>{this.EVENT_RESULT_BOOLEAN=new V(V.OUTPUT,U.of(eo.EVENT_RESULT_NAME,O.ofBoolean(eo.EVENT_RESULT_NAME)))})();static #a=(()=>{this.EVENT_RESULT_ARRAY=new V(V.OUTPUT,U.of(eo.EVENT_RESULT_NAME,O.ofArray(eo.EVENT_RESULT_NAME,O.ofAny(eo.EVENT_RESULT_NAME))))})();static #i=(()=>{this.EVENT_RESULT_EMPTY=new V(V.OUTPUT,U.of())})();static #o=(()=>{this.EVENT_RESULT_ANY=new V(V.OUTPUT,U.of(this.EVENT_RESULT_NAME,O.ofAny(this.EVENT_RESULT_NAME)))})();static #E=(()=>{this.EVENT_RESULT_OBJECT=new V(V.OUTPUT,U.of(this.EVENT_RESULT_NAME,O.ofObject(this.EVENT_RESULT_NAME)))})();static #u=(()=>{this.PARAMETER_INT_LENGTH=I.of("length",O.ofInteger("length").setDefaultValue(-1))})();static #A=(()=>{this.PARAMETER_ARRAY_FIND=I.of("find",O.ofArray("eachFind",O.ofAny("eachFind")))})();static #l=(()=>{this.PARAMETER_INT_SOURCE_FROM=I.of("srcFrom",O.ofInteger("srcFrom").setDefaultValue(0).setMinimum(0))})();static #c=(()=>{this.PARAMETER_INT_SECOND_SOURCE_FROM=I.of("secondSrcFrom",O.ofInteger("secondSrcFrom").setDefaultValue(0))})();static #h=(()=>{this.PARAMETER_INT_FIND_FROM=I.of("findFrom",O.ofInteger("findFrom").setDefaultValue(0))})();static #g=(()=>{this.PARAMETER_INT_OFFSET=I.of("offset",O.ofInteger("offset").setDefaultValue(0))})();static #p=(()=>{this.PARAMETER_ROTATE_LENGTH=I.of("rotateLength",O.ofInteger("rotateLength").setDefaultValue(1).setMinimum(1))})();static #R=(()=>{this.PARAMETER_BOOLEAN_ASCENDING=I.of("ascending",O.ofBoolean("ascending").setDefaultValue(!1))})();static #T=(()=>{this.PARAMETER_FIND_PRIMITIVE=I.of("findPrimitive",O.of("findPrimitive",r.STRING,r.DOUBLE,r.FLOAT,r.INTEGER,r.LONG))})();static #m=(()=>{this.PARAMETER_ARRAY_SOURCE=I.of("source",O.ofArray("eachSource",O.ofAny("eachSource")))})();static #f=(()=>{this.PARAMETER_ARRAY_SECOND_SOURCE=I.of("secondSource",O.ofArray("eachSecondSource",O.ofAny("eachSecondSource")))})();static #N=(()=>{this.PARAMETER_ARRAY_SOURCE_PRIMITIVE=I.of("source",O.ofArray("eachSource",new O().setName("eachSource").setType(g.of(r.STRING,r.NULL,r.INTEGER,r.FLOAT,r.DOUBLE,r.LONG))))})();static #_=(()=>{this.PARAMETER_BOOLEAN_DEEP_COPY=I.of("deepCopy",O.ofBoolean("deepCopy").setDefaultValue(!0))})();static #S=(()=>{this.PARAMETER_ANY=I.of("element",O.ofAny("element"))})();static #M=(()=>{this.PARAMETER_ANY_NOT_NULL=I.of("elementObject",O.ofAnyNotNull("elementObject"))})();static #O=(()=>{this.PARAMETER_ANY_VAR_ARGS=I.of("element",O.ofAny("element")).setVariableArgument(!0)})();static #d=(()=>{this.PARAMETER_ARRAY_RESULT=I.of(eo.EVENT_RESULT_NAME,O.ofArray("eachResult",O.ofAny("eachResult")))})();constructor(e,t,r){super();let s=new Map;for(let e of t)s.set(e.getParameterName(),e);this.signature=new D(e).setNamespace(E.SYSTEM_ARRAY).setParameters(s).setEvents(U.of(r.getName(),r))}getSignature(){return this.signature}}class eE extends eo{constructor(){super("Concatenate",[eo.PARAMETER_ARRAY_SOURCE,eo.PARAMETER_ARRAY_SECOND_SOURCE],eo.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eo.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eo.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName());return new G([C.outputOf(new Map([[eo.EVENT_RESULT_NAME,[...t,...r]]]))])}}class eu extends eo{constructor(){super("AddFirst",[eo.PARAMETER_ARRAY_SOURCE,eo.PARAMETER_ANY],eo.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eo.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eo.PARAMETER_ANY.getParameterName());if(0==(t=[...t]).length)return t.push(r),new G([C.outputOf(new Map([]))]);t.push(r);let s=t.length-1;for(;s>0;){let e=t[s-1];t[s-1]=t[s],t[s--]=e}return new G([C.outputOf(new Map([[eo.EVENT_RESULT_NAME,t]]))])}}let eA="keyName";class el extends eo{constructor(){super("ArrayToArrayOfObjects",[eo.PARAMETER_ARRAY_SOURCE,I.of(eA,O.ofString(eA),!0)],eo.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(el.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eA);if(!t?.length)return new G([C.outputOf(new Map([[eo.EVENT_RESULT_NAME,[]]]))]);let s=t.map(e=>{let t={};if(Array.isArray(e)){if(r.length)r.forEach((r,s)=>{t[r]=e[s]});else for(let r=0;r<e.length;r++)t[`value${r+1}`]=e[r]}else t[r.length?r[0]:"value"]=e;return t});return new G([C.outputOf(new Map([[eo.EVENT_RESULT_NAME,s]]))])}}e({},"PrimitiveUtil",()=>eh),e({},"ExecutionException",()=>ec);class ec extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class eh{static findPrimitiveNullAsBoolean(e){if(u(e))return new X(r.BOOLEAN,!1);let t=typeof e;if("object"===t)throw new ec(F.format("$ is not a primitive type",e));return"boolean"===t?new X(r.BOOLEAN,e):"string"===t?new X(r.STRING,e):eh.findPrimitiveNumberType(e)}static findPrimitive(e){if(u(e))return new X(r.NULL,void 0);let t=typeof e;if("object"===t)throw new ec(F.format("$ is not a primitive type",e));return"boolean"===t?new X(r.BOOLEAN,e):"string"===t?new X(r.STRING,e):eh.findPrimitiveNumberType(e)}static findPrimitiveNumberType(e){if(u(e)||Array.isArray(e)||"object"==typeof e)throw new ec(F.format("Unable to convert $ to a number.",e));try{if(Number.isInteger(e))return new X(r.LONG,e);return new X(r.DOUBLE,e)}catch(t){throw new ec(F.format("Unable to convert $ to a number.",e),t)}}static compare(e,t){if(e==t)return 0;if(u(e)||u(t))return u(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}let 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 u(e)||u(t)?u(e)&&u(t)?0:u(e)?-1:1:e==t?0:"boolean"==typeof e||"boolean"==typeof t?e?-1:1:"string"==typeof e||"string"==typeof t?e+""<t+""?-1:1:"number"==typeof e||"number"==typeof t?e-t:0}static baseNumberType(e){return Number.isInteger(e)?r.LONG:r.DOUBLE}static toPrimitiveType(e){return e}constructor(){}}class eg extends eo{constructor(){super("BinarySearch",[eg.PARAMETER_ARRAY_SOURCE_PRIMITIVE,eg.PARAMETER_INT_SOURCE_FROM,eg.PARAMETER_FIND_PRIMITIVE,eg.PARAMETER_INT_LENGTH],eg.EVENT_INDEX)}async internalExecute(e){let t=e?.getArguments()?.get(eg.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eg.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eg.PARAMETER_FIND_PRIMITIVE.getParameterName()),n=e?.getArguments()?.get(eg.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length||r<0||r>t.length)throw new $("Search source array cannot be empty");if(-1==n&&(n=t.length-r),(n=r+n)>t.length)throw new $("End point for array cannot be more than the size of the source array");let a=-1;for(;r<=n;){let e=Math.floor((r+n)/2);if(0==eh.compare(t[e],s)){a=e;break}eh.compare(t[e],s)>0?n=e-1:r=e+1}return new G([C.outputOf(new Map([[eg.EVENT_INDEX_NAME,a]]))])}}e({},"ArrayUtil",()=>ep);class ep{static removeAListFrom(e,t){if(!t||!e||!e.length||!t.length)return;let r=new Set(t);for(let t=0;t<e.length;t++)r.has(e[t])&&(e.splice(t,1),t--)}static of(...e){let t=Array(e.length);for(let r=0;r<e.length;r++)t[r]=e[r];return t}constructor(){}}class eR extends eo{constructor(){super("Compare",ep.of(eR.PARAMETER_ARRAY_SOURCE,eR.PARAMETER_INT_SOURCE_FROM,eR.PARAMETER_ARRAY_FIND,eR.PARAMETER_INT_FIND_FROM,eR.PARAMETER_INT_LENGTH),eR.EVENT_RESULT_INTEGER)}async internalExecute(e){var t=e?.getArguments()?.get(eR.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eR.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eR.PARAMETER_ARRAY_FIND.getParameterName()),n=e?.getArguments()?.get(eR.PARAMETER_INT_FIND_FROM.getParameterName()),a=e?.getArguments()?.get(eR.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new $("Compare source array cannot be empty");if(0==s.length)throw new $("Compare find array cannot be empty");if(-1==a&&(a=t.length-r),r+a>t.length)throw new $(F.format("Source array size $ is less than comparing size $",t.length,r+a));if(n+a>s.length)throw new $(F.format("Find array size $ is less than comparing size $",s.length,n+a));return new G(ep.of(C.outputOf(U.of(eR.EVENT_RESULT_NAME,this.compare(t,r,r+a,s,n,n+a)))))}compare(e,t,r,s,n,a){if(r<t){let e=t;t=r,r=e}if(a<n){let e=n;n=a,a=e}if(r-t!=a-n)throw new $(F.format("Cannot compare uneven arrays from $ to $ in source array with $ to $ in find array",r,t,a,n));for(let a=t,i=n;a<r;a++,i++){let t=1;if(u(e[a])||u(s[i])){let r=u(e[a]);r==u(s[i])?t=0:r&&(t=-1)}else{let r=typeof e[a],n=typeof s[i];if("object"===r||"object"===n)t=1;else if("string"===r||"string"===n){let r=""+e[a],n=""+s[i];r===n?t=0:r<n&&(t=-1)}else"boolean"===r||"boolean"===n?t=r==n?0:1:"number"===r&&"number"===n&&(t=e[a]-s[i])}if(0!=t)return t}return 0}}function eT(e){return e?globalThis.structuredClone?globalThis.structuredClone(e):JSON.parse(JSON.stringify(e)):e}e({},"duplicate",()=>eT);class em extends eo{constructor(){super("Copy",[em.PARAMETER_ARRAY_SOURCE,em.PARAMETER_INT_SOURCE_FROM,em.PARAMETER_INT_LENGTH,em.PARAMETER_BOOLEAN_DEEP_COPY],em.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(em.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(em.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(em.PARAMETER_INT_LENGTH.getParameterName());if(-1==s&&(s=t.length-r),r+s>t.length)throw new $(F.format("Array has no elements from $ to $ as the array size is $",r,r+s,t.length));var n=e?.getArguments()?.get(em.PARAMETER_BOOLEAN_DEEP_COPY.getParameterName());let a=Array(s);for(let e=r;e<r+s;e++)u(t[e])||(a[e-r]=n?eT(t[e]):t[e]);return new G([C.outputOf(U.of(em.EVENT_RESULT_NAME,a))])}}class ef extends eo{constructor(){super("Delete",[eo.PARAMETER_ARRAY_SOURCE,eo.PARAMETER_ANY_VAR_ARGS],eo.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(ef.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ef.PARAMETER_ANY_VAR_ARGS.getParameterName());if(null==r)throw new $("The deletable var args are empty. So cannot be proceeded further.");if(0==t.length||0==r.length)throw new $("Expected a source or deletable for an array but not found any");let s=new Set;for(let e=t.length-1;e>=0;e--)for(let n=0;n<r.length;n++)s.has(e)||0!=eh.compare(t[e],r[n])||s.add(t[e]);return new G([C.outputOf(new Map([[eo.EVENT_RESULT_NAME,t.filter(e=>!s.has(e))]]))])}}class eN extends eo{constructor(){super("DeleteFirst",[eN.PARAMETER_ARRAY_SOURCE],eN.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eN.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new $("Given source array is empty");return(t=[...t]).shift(),new G([C.outputOf(new Map([[eo.EVENT_RESULT_NAME,t]]))])}}class e_ extends eo{constructor(){super("DeleteFrom",[e_.PARAMETER_ARRAY_SOURCE,e_.PARAMETER_INT_SOURCE_FROM,e_.PARAMETER_INT_LENGTH],e_.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(e_.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e_.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(e_.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new $("There are no elements to be deleted");if(r>=(t=[...t]).length||r<0)throw new $("The int source for the array should be in between 0 and length of the array ");if(-1==s&&(s=t.length-r),r+s>t.length)throw new $("Requested length to be deleted is more than the size of array ");return t.splice(r,s),new G([C.outputOf(new Map([[eo.EVENT_RESULT_NAME,t]]))])}}class eS extends eo{constructor(){super("DeleteLast",[eS.PARAMETER_ARRAY_SOURCE],eS.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eS.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new $("Given source array is empty");return(t=[...t]).pop(),new G([C.outputOf(new Map([[eo.EVENT_RESULT_NAME,t]]))])}}class eM extends eo{constructor(){super("Disjoint",[eM.PARAMETER_ARRAY_SOURCE,eM.PARAMETER_INT_SOURCE_FROM,eM.PARAMETER_ARRAY_SECOND_SOURCE,eM.PARAMETER_INT_SECOND_SOURCE_FROM,eM.PARAMETER_INT_LENGTH],eM.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eM.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eM.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eM.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(eM.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(eM.PARAMETER_INT_LENGTH.getParameterName());if(-1==a&&(a=t.length<=s.length?t.length-r:s.length-n),a>t.length||a>s.length||r+a>t.length||n+a>s.length)throw new $("The length which was being requested is more than than the size either source array or second source array");let i=new Set,o=new Set;for(let e=0;e<a;e++)i.add(t[e+r]);for(let e=0;e<a;e++)o.add(s[e+n]);let E=new Set;return i.forEach(e=>{o.has(e)?o.delete(e):E.add(e)}),o.forEach(e=>{i.has(e)||E.add(e)}),new G([C.outputOf(new Map([[eM.EVENT_RESULT_NAME,[...E]]]))])}}class eO extends eo{constructor(){super("Equals",[eO.PARAMETER_ARRAY_SOURCE,eO.PARAMETER_INT_SOURCE_FROM,eO.PARAMETER_ARRAY_FIND,eO.PARAMETER_INT_FIND_FROM,eO.PARAMETER_INT_LENGTH],eO.EVENT_RESULT_BOOLEAN)}async internalExecute(e){let t=new eR,r=(await t.execute(e)).allResults()[0].getResult().get(eO.EVENT_RESULT_NAME);return new G([C.outputOf(U.of(eO.EVENT_RESULT_NAME,0==r))])}}class ed extends eo{constructor(){super("Fill",[ed.PARAMETER_ARRAY_SOURCE,ed.PARAMETER_INT_SOURCE_FROM,ed.PARAMETER_INT_LENGTH,ed.PARAMETER_ANY],ed.EVENT_RESULT_EMPTY)}async internalExecute(e){var t=e?.getArguments()?.get(ed.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ed.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(ed.PARAMETER_INT_LENGTH.getParameterName()),n=e?.getArguments()?.get(ed.PARAMETER_ANY.getParameterName());if(r<0)throw new $(F.format("Arrays out of bound trying to access $ index",r));-1==s&&(s=t.length-r);let a=r+s-t.length;if(t=[...t],a>0)for(let e=0;e<a;e++)t.push();for(let e=r;e<r+s;e++)t[e]=u(n)?n:eT(n);return new G([C.outputOf(U.of(eo.EVENT_RESULT_NAME,t))])}}class ew extends eo{constructor(){super("Frequency",[ew.PARAMETER_ARRAY_SOURCE,ew.PARAMETER_ANY,ew.PARAMETER_INT_SOURCE_FROM,ew.PARAMETER_INT_LENGTH],ew.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(ew.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ew.PARAMETER_ANY.getParameterName()),s=e?.getArguments()?.get(ew.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(ew.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)return new G([C.outputOf(new Map([[ew.EVENT_RESULT_NAME,0]]))]);if(s>t.length)throw new $("Given start point is more than the size of source");let a=s+n;if(-1==n&&(a=t.length-s),a>t.length)throw new $("Given length is more than the size of source");let i=0;for(let e=s;e<a&&e<t.length;e++)0==eh.compare(t[e],r)&&i++;return new G([C.outputOf(new Map([[ew.EVENT_RESULT_NAME,i]]))])}}class eI extends eo{constructor(){super("IndexOf",[eI.PARAMETER_ARRAY_SOURCE,eI.PARAMETER_ANY_NOT_NULL,eI.PARAMETER_INT_FIND_FROM],eI.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eI.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(eI.PARAMETER_ANY_NOT_NULL.getParameterName());let s=e?.getArguments()?.get(eI.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new G([C.outputOf(new Map([[eI.EVENT_RESULT_NAME,-1]]))]);if(s<0||s>t.length)throw new $("The size of the search index of the array is greater than the size of the array");let n=-1;for(let e=s;e<t.length;e++)if(0==eh.compare(t[e],r)){n=e;break}return new G([C.outputOf(new Map([[eI.EVENT_RESULT_NAME,n]]))])}}class eP extends eo{constructor(){super("IndexOfArray",[eP.PARAMETER_ARRAY_SOURCE,eP.PARAMETER_ARRAY_SECOND_SOURCE,eP.PARAMETER_INT_FIND_FROM],eP.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eP.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eP.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(eP.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length||0==r.length)return new G([C.outputOf(new Map([[eP.EVENT_RESULT_NAME,-1]]))]);if(s<0||s>t.length||t.length<r.length)throw new $("Given from second source is more than the size of the source array");let n=r.length,a=-1;for(let e=s;e<t.length;e++){let s=0;if(0==eh.compare(t[e],r[s])){for(;s<n&&0==eh.compare(t[e+s],r[s]);)s++;if(s==n){a=e;break}}}return new G([C.outputOf(new Map([[eP.EVENT_RESULT_NAME,a]]))])}}class ey extends eo{constructor(){super("LastIndexOf",[ey.PARAMETER_ARRAY_SOURCE,ey.PARAMETER_ANY_NOT_NULL,ey.PARAMETER_INT_FIND_FROM],ey.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(ey.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(ey.PARAMETER_ANY_NOT_NULL.getParameterName());let s=e?.getArguments()?.get(ey.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new G([C.outputOf(new Map([[ey.EVENT_RESULT_NAME,-1]]))]);if(s<0||s>t.length)throw new $("The value of length shouldn't the exceed the size of the array or shouldn't be in terms");let n=-1;for(let e=t.length-1;e>=s;e--)if(0==eh.compare(t[e],r)){n=e;break}return new G([C.outputOf(new Map([[ey.EVENT_RESULT_NAME,n]]))])}}class ex extends eo{constructor(){super("LastIndexOfArray",[ex.PARAMETER_ARRAY_SOURCE,ex.PARAMETER_ARRAY_SECOND_SOURCE,ex.PARAMETER_INT_FIND_FROM],ex.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(ex.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ex.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(ex.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new G([C.outputOf(new Map([[ex.EVENT_RESULT_NAME,-1]]))]);if(s<0||s>t.length||r.length>t.length)throw new $("Given from index is more than the size of the source array");let n=r.length,a=-1;for(let e=s;e<t.length;e++){let s=0;if(0==eh.compare(t[e],r[s])){for(;s<n&&0==eh.compare(t[e+s],r[s]);)s++;s==n&&(a=e)}}return new G([C.outputOf(new Map([[ex.EVENT_RESULT_NAME,a]]))])}}class eL extends eo{constructor(){super("Max",[eL.PARAMETER_ARRAY_SOURCE_PRIMITIVE],eL.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(eL.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==t.length)throw new $("Search source array cannot be empty");let r=t[0];for(let e=1;e<t.length;e++){let s=t[e];eh.comparePrimitive(r,s)>=0||(r=s)}return new G([C.outputOf(new Map([[eL.EVENT_RESULT_NAME,r]]))])}}class ev extends eo{constructor(){super("Min",[ev.PARAMETER_ARRAY_SOURCE_PRIMITIVE],ev.EVENT_RESULT_ANY)}async internalExecute(e){let t,r=e?.getArguments()?.get(ev.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==r.length)throw new $("Search source array cannot be empty");for(let e=0;e<r.length;e++)!u(r[e])&&(void 0===t||0>eh.comparePrimitive(r[e],t))&&(t=r[e]);return new G([C.outputOf(new Map([[ev.EVENT_RESULT_NAME,t]]))])}}class eU extends eo{constructor(){super("MisMatch",[eU.PARAMETER_ARRAY_SOURCE,eU.PARAMETER_INT_FIND_FROM,eU.PARAMETER_ARRAY_SECOND_SOURCE,eU.PARAMETER_INT_SECOND_SOURCE_FROM,eU.PARAMETER_INT_LENGTH],eU.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eU.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eU.PARAMETER_INT_FIND_FROM.getParameterName()),s=e?.getArguments()?.get(eU.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(eU.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(eU.PARAMETER_INT_LENGTH.getParameterName()),i=r<t.length&&r>0?r:0,o=n<s.length&&n>0?n:0;if(i+a>=t.length||o+a>s.length)throw new $("The size of the array for first and second which was being requested is more than size of the given array");let E=-1;for(let e=0;e<a;e++)if(t[i+e]!=s[o+e]){E=e;break}return new G([C.outputOf(new Map([[eU.EVENT_RESULT_NAME,E]]))])}}class eb extends eo{constructor(){super("Reverse",[eb.PARAMETER_ARRAY_SOURCE,eb.PARAMETER_INT_SOURCE_FROM,eb.PARAMETER_INT_LENGTH],eb.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eb.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eb.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eb.PARAMETER_INT_LENGTH.getParameterName());if(-1==s&&(s=t.length-r),s>=t.length||s<0||r<0)throw new $("Please provide start point between the start and end indexes or provide the length which was less than the source size ");t=[...t];let n=r+s-1;for(;r<=n;){let e=t[r],s=t[n];t[r++]=s,t[n--]=e}return new G([C.outputOf(new Map([[eb.EVENT_RESULT_NAME,t]]))])}}class eV extends eo{constructor(){super("Rotate",[eV.PARAMETER_ARRAY_SOURCE,eV.PARAMETER_ROTATE_LENGTH],eV.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(eV.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eV.PARAMETER_ROTATE_LENGTH.getParameterName());if(0==t.length)return new G([C.outputOf(new Map([[eo.EVENT_RESULT_NAME,t]]))]);let s=(t=[...t]).length;return r%=s,this.rotate(t,0,r-1),this.rotate(t,r,s-1),this.rotate(t,0,s-1),new G([C.outputOf(new Map([[eo.EVENT_RESULT_NAME,t]]))])}rotate(e,t,r){for(;t<r;){let s=e[t];e[t++]=e[r],e[r--]=s}}}class eC extends eo{constructor(){super("Shuffle",[eC.PARAMETER_ARRAY_SOURCE],eC.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(eC.PARAMETER_ARRAY_SOURCE.getParameterName());if(t.length<=1)return new G([C.outputOf(new Map([[eo.EVENT_RESULT_NAME,t]]))]);let r=0,s=(t=[...t]).length;for(let e=0;e<s;e++){let e=Math.floor(Math.random()*s)%s,n=t[r];t[r]=t[e],t[e]=n,r=e}return new G([C.outputOf(new Map([[eo.EVENT_RESULT_NAME,t]]))])}}class e$ extends eo{constructor(){super("Sort",[e$.PARAMETER_ARRAY_SOURCE_PRIMITIVE,e$.PARAMETER_INT_FIND_FROM,e$.PARAMETER_INT_LENGTH,e$.PARAMETER_BOOLEAN_ASCENDING],e$.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(e$.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName()),r=e?.getArguments()?.get(e$.PARAMETER_INT_FIND_FROM.getParameterName()),s=e?.getArguments()?.get(e$.PARAMETER_INT_LENGTH.getParameterName()),n=e?.getArguments()?.get(e$.PARAMETER_BOOLEAN_ASCENDING.getParameterName());if(0==t.length)return new G([C.outputOf(new Map([[eo.EVENT_RESULT_NAME,t]]))]);if(t=[...t],-1==s&&(s=t.length-r),r<0||r>=t.length||r+s>t.length)throw new $("Given start point is more than the size of the array or not available at that point");let a=t.slice(r,r+s+1);return a.sort((e,t)=>e===t?0:null===e?1:null===t?-1:n?e<t?1:-1:e<t?-1:1),t.splice(r,s,...a),new G([C.outputOf(new Map([[eo.EVENT_RESULT_NAME,t]]))])}}class eG extends eo{constructor(){super("SubArray",[eG.PARAMETER_ARRAY_SOURCE,eG.PARAMETER_INT_FIND_FROM,eG.PARAMETER_INT_LENGTH],eG.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eG.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eG.PARAMETER_INT_FIND_FROM.getParameterName()),s=e?.getArguments()?.get(eG.PARAMETER_INT_LENGTH.getParameterName());if(-1==s&&(s=t.length-r),s<=0)return new G([C.outputOf(new Map([]))]);if(!(r>=0&&r<t.length)||r+s>t.length)throw new $("Given find from point is more than the source size array or the Requested length for the subarray was more than the source size");let n=t.slice(r,r+s);return new G([C.outputOf(new Map([[eG.EVENT_RESULT_NAME,n]]))])}}class eD extends eo{constructor(){super("Insert",[eD.PARAMETER_ARRAY_SOURCE,eD.PARAMETER_INT_OFFSET,eD.PARAMETER_ANY],eD.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eD.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eD.PARAMETER_INT_OFFSET.getParameterName());var s=e?.getArguments()?.get(eD.PARAMETER_ANY.getParameterName());if(u(s)||u(r)||r>t.length)throw new $("Please valid resouces to insert at the correct location");if(0==(t=[...t]).length)return 0==r&&t.push(s),new G([C.outputOf(new Map([[eo.EVENT_RESULT_NAME,t]]))]);t.push(s);let n=t.length-1;for(r++;n>=r;){let e=t[n-1];t[n-1]=t[n],t[n--]=e}return new G([C.outputOf(new Map([[eo.EVENT_RESULT_NAME,t]]))])}}class eF extends eo{constructor(){super("InsertLast",[eF.PARAMETER_ARRAY_SOURCE,eF.PARAMETER_ANY],eF.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eF.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(eF.PARAMETER_ANY.getParameterName());return(t=[...t]).push(r),new G([C.outputOf(new Map([[eo.EVENT_RESULT_NAME,t]]))])}}class eB extends eo{constructor(){super("RemoveDuplicates",[eB.PARAMETER_ARRAY_SOURCE,eB.PARAMETER_INT_SOURCE_FROM,eB.PARAMETER_INT_LENGTH],eB.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(eB.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eB.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eB.PARAMETER_INT_LENGTH.getParameterName());if(-1==s&&(s=t.length-r),r+s>t.length)throw new $(F.format("Array has no elements from $ to $ as the array size is $",r,r+s,t.length));let n=[...t],a=r+s;for(let e=a-1;e>=r;e--)for(let t=e-1;t>=r;t--)if(k(n[e],n[t])){n.splice(e,1);break}return new G([C.outputOf(U.of(eB.EVENT_RESULT_NAME,n))])}}e({},"ObjectValueSetterExtractor",()=>eJ),e({},"Expression",()=>eW),e({},"StringBuilder",()=>eY);class eY{constructor(e){this.str=e??""}append(e){return this.str+=e,this}toString(){return""+this.str}trim(){return this.str=this.str.trim(),this}setLength(e){return this.str=this.str.substring(0,e),this}length(){return this.str.length}charAt(e){return this.str.charAt(e)}deleteCharAt(e){return this.checkIndex(e),this.str=this.str.substring(0,e)+this.str.substring(e+1),this}insert(e,t){return this.str=this.str.substring(0,e)+t+this.str.substring(e),this}checkIndex(e){if(e>=this.str.length)throw new $(`Index ${e} is greater than or equal to ${this.str.length}`)}substring(e,t){return this.str.substring(e,t)}}e({},"ExpressionEvaluationException",()=>ek);class ek extends Error{constructor(e,t,r){super(F.format("$ : $",e,t)),this.cause=r}getCause(){return this.cause}}e({},"ExpressionToken",()=>eH);class eH{constructor(e){this.expression=e}getExpression(){return this.expression}toString(){return this.expression}}e({},"ExpressionTokenValue",()=>ej);class ej extends eH{constructor(e,t){super(e),this.element=t}getTokenValue(){return this.element}getElement(){return this.element}toString(){return F.format("$: $",this.expression,this.element)}}e({},"Operation",()=>eX);class eX{static #e=(()=>{this.MULTIPLICATION=new eX("*")})();static #t=(()=>{this.DIVISION=new eX("/")})();static #r=(()=>{this.INTEGER_DIVISION=new eX("//")})();static #s=(()=>{this.MOD=new eX("%")})();static #n=(()=>{this.ADDITION=new eX("+")})();static #a=(()=>{this.SUBTRACTION=new eX("-")})();static #i=(()=>{this.NOT=new eX("not",void 0,!0)})();static #o=(()=>{this.AND=new eX("and",void 0,!0)})();static #E=(()=>{this.OR=new eX("or",void 0,!0)})();static #u=(()=>{this.LESS_THAN=new eX("<")})();static #A=(()=>{this.LESS_THAN_EQUAL=new eX("<=")})();static #l=(()=>{this.GREATER_THAN=new eX(">")})();static #c=(()=>{this.GREATER_THAN_EQUAL=new eX(">=")})();static #h=(()=>{this.EQUAL=new eX("=")})();static #g=(()=>{this.NOT_EQUAL=new eX("!=")})();static #p=(()=>{this.BITWISE_AND=new eX("&")})();static #R=(()=>{this.BITWISE_OR=new eX("|")})();static #T=(()=>{this.BITWISE_XOR=new eX("^")})();static #m=(()=>{this.BITWISE_COMPLEMENT=new eX("~")})();static #f=(()=>{this.BITWISE_LEFT_SHIFT=new eX("<<")})();static #N=(()=>{this.BITWISE_RIGHT_SHIFT=new eX(">>")})();static #_=(()=>{this.BITWISE_UNSIGNED_RIGHT_SHIFT=new eX(">>>")})();static #S=(()=>{this.UNARY_PLUS=new eX("UN: +","+")})();static #M=(()=>{this.UNARY_MINUS=new eX("UN: -","-")})();static #O=(()=>{this.UNARY_LOGICAL_NOT=new eX("UN: not","not")})();static #d=(()=>{this.UNARY_BITWISE_COMPLEMENT=new eX("UN: ~","~")})();static #w=(()=>{this.ARRAY_OPERATOR=new eX("[")})();static #I=(()=>{this.OBJECT_OPERATOR=new eX(".")})();static #P=(()=>{this.NULLISH_COALESCING_OPERATOR=new eX("??")})();static #y=(()=>{this.CONDITIONAL_TERNARY_OPERATOR=new eX("?")})();static #x=(()=>{this.VALUE_OF=new Map([["MULTIPLICATION",eX.MULTIPLICATION],["DIVISION",eX.DIVISION],["INTEGER_DIVISON",eX.INTEGER_DIVISION],["MOD",eX.MOD],["ADDITION",eX.ADDITION],["SUBTRACTION",eX.SUBTRACTION],["NOT",eX.NOT],["AND",eX.AND],["OR",eX.OR],["LESS_THAN",eX.LESS_THAN],["LESS_THAN_EQUAL",eX.LESS_THAN_EQUAL],["GREATER_THAN",eX.GREATER_THAN],["GREATER_THAN_EQUAL",eX.GREATER_THAN_EQUAL],["EQUAL",eX.EQUAL],["NOT_EQUAL",eX.NOT_EQUAL],["BITWISE_AND",eX.BITWISE_AND],["BITWISE_OR",eX.BITWISE_OR],["BITWISE_XOR",eX.BITWISE_XOR],["BITWISE_COMPLEMENT",eX.BITWISE_COMPLEMENT],["BITWISE_LEFT_SHIFT",eX.BITWISE_LEFT_SHIFT],["BITWISE_RIGHT_SHIFT",eX.BITWISE_RIGHT_SHIFT],["BITWISE_UNSIGNED_RIGHT_SHIFT",eX.BITWISE_UNSIGNED_RIGHT_SHIFT],["UNARY_PLUS",eX.UNARY_PLUS],["UNARY_MINUS",eX.UNARY_MINUS],["UNARY_LOGICAL_NOT",eX.UNARY_LOGICAL_NOT],["UNARY_BITWISE_COMPLEMENT",eX.UNARY_BITWISE_COMPLEMENT],["ARRAY_OPERATOR",eX.ARRAY_OPERATOR],["OBJECT_OPERATOR",eX.OBJECT_OPERATOR],["NULLISH_COALESCING_OPERATOR",eX.NULLISH_COALESCING_OPERATOR],["CONDITIONAL_TERNARY_OPERATOR",eX.CONDITIONAL_TERNARY_OPERATOR]])})();static #L=(()=>{this.UNARY_OPERATORS=new Set([eX.ADDITION,eX.SUBTRACTION,eX.NOT,eX.BITWISE_COMPLEMENT,eX.UNARY_PLUS,eX.UNARY_MINUS,eX.UNARY_LOGICAL_NOT,eX.UNARY_BITWISE_COMPLEMENT])})();static #v=(()=>{this.ARITHMETIC_OPERATORS=new Set([eX.MULTIPLICATION,eX.DIVISION,eX.INTEGER_DIVISION,eX.MOD,eX.ADDITION,eX.SUBTRACTION])})();static #U=(()=>{this.LOGICAL_OPERATORS=new Set([eX.NOT,eX.AND,eX.OR,eX.LESS_THAN,eX.LESS_THAN_EQUAL,eX.GREATER_THAN,eX.GREATER_THAN_EQUAL,eX.EQUAL,eX.NOT_EQUAL,eX.NULLISH_COALESCING_OPERATOR])})();static #b=(()=>{this.BITWISE_OPERATORS=new Set([eX.BITWISE_AND,eX.BITWISE_COMPLEMENT,eX.BITWISE_LEFT_SHIFT,eX.BITWISE_OR,eX.BITWISE_RIGHT_SHIFT,eX.BITWISE_UNSIGNED_RIGHT_SHIFT,eX.BITWISE_XOR])})();static #V=(()=>{this.CONDITIONAL_OPERATORS=new Set([eX.CONDITIONAL_TERNARY_OPERATOR])})();static #C=(()=>{this.OPERATOR_PRIORITY=new Map([[eX.UNARY_PLUS,1],[eX.UNARY_MINUS,1],[eX.UNARY_LOGICAL_NOT,1],[eX.UNARY_BITWISE_COMPLEMENT,1],[eX.ARRAY_OPERATOR,1],[eX.OBJECT_OPERATOR,1],[eX.MULTIPLICATION,2],[eX.DIVISION,2],[eX.INTEGER_DIVISION,2],[eX.MOD,2],[eX.ADDITION,3],[eX.SUBTRACTION,3],[eX.BITWISE_LEFT_SHIFT,4],[eX.BITWISE_RIGHT_SHIFT,4],[eX.BITWISE_UNSIGNED_RIGHT_SHIFT,4],[eX.LESS_THAN,5],[eX.LESS_THAN_EQUAL,5],[eX.GREATER_THAN,5],[eX.GREATER_THAN_EQUAL,5],[eX.EQUAL,6],[eX.NOT_EQUAL,6],[eX.BITWISE_AND,7],[eX.BITWISE_XOR,8],[eX.BITWISE_OR,9],[eX.AND,10],[eX.OR,11],[eX.NULLISH_COALESCING_OPERATOR,11],[eX.CONDITIONAL_TERNARY_OPERATOR,12]])})();static #$=(()=>{this.OPERATORS=new Set([...Array.from(eX.ARITHMETIC_OPERATORS),...Array.from(eX.LOGICAL_OPERATORS),...Array.from(eX.BITWISE_OPERATORS),eX.ARRAY_OPERATOR,eX.OBJECT_OPERATOR,...Array.from(eX.CONDITIONAL_OPERATORS)].map(e=>e.getOperator()))})();static #G=(()=>{this.OPERATORS_WITHOUT_SPACE_WRAP=new Set([...Array.from(eX.ARITHMETIC_OPERATORS),...Array.from(eX.LOGICAL_OPERATORS),...Array.from(eX.BITWISE_OPERATORS),eX.ARRAY_OPERATOR,eX.OBJECT_OPERATOR,...Array.from(eX.CONDITIONAL_OPERATORS)].filter(e=>!e.shouldBeWrappedInSpace()).map(e=>e.getOperator()))})();static #D=(()=>{this.OPERATION_VALUE_OF=new Map(Array.from(eX.VALUE_OF.entries()).map(([e,t])=>[t.getOperator(),t]))})();static #F=(()=>{this.UNARY_MAP=new Map([[eX.ADDITION,eX.UNARY_PLUS],[eX.SUBTRACTION,eX.UNARY_MINUS],[eX.NOT,eX.UNARY_LOGICAL_NOT],[eX.BITWISE_COMPLEMENT,eX.UNARY_BITWISE_COMPLEMENT],[eX.UNARY_PLUS,eX.UNARY_PLUS],[eX.UNARY_MINUS,eX.UNARY_MINUS],[eX.UNARY_LOGICAL_NOT,eX.UNARY_LOGICAL_NOT],[eX.UNARY_BITWISE_COMPLEMENT,eX.UNARY_BITWISE_COMPLEMENT]])})();static #B=(()=>{this.BIGGEST_OPERATOR_SIZE=Array.from(eX.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 eX.VALUE_OF.get(e)}toString(){return this.operator}}class eW extends eH{constructor(e,t,r,s){super(e||""),this.tokens=new B,this.ops=new B,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(){let e;let t=this.expression.length,r="",s=new eY(""),n=0,a=!1;for(;n<t;){switch(r=this.expression[n],e=s.toString(),r){case" ":a=this.processTokenSepearator(s,e,a);break;case"(":n=this.processSubExpression(t,s,e,n,a),a=!1;break;case")":throw new ek(this.expression,"Extra closing parenthesis found");case"]":throw new ek(this.expression,"Extra closing square bracket found");case"'":case'"':{let e=this.processStringLiteral(t,r,n);n=e.getT1(),a=e.getT2();break}case"?":if(n+1<t&&"?"!=this.expression.charAt(n+1)&&0!=n&&"?"!=this.expression.charAt(n-1))n=this.processTernaryOperator(t,s,e,n,a);else{let i=this.processOthers(r,t,s,e,n,a);n=i.getT1(),(a=i.getT2())&&this.ops.peek()==eX.ARRAY_OPERATOR&&(n=(i=this.process(t,s,n)).getT1(),a=i.getT2())}break;default:let i=this.processOthers(r,t,s,e,n,a);n=i.getT1(),(a=i.getT2())&&this.ops.peek()==eX.ARRAY_OPERATOR&&(n=(i=this.process(t,s,n)).getT1(),a=i.getT2())}++n}if(e=s.toString(),!H.isNullOrBlank(e)){if(eX.OPERATORS.has(e))throw new ek(this.expression,"Expression is ending with an operator");this.tokens.push(new eH(e))}}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 ek(this.expression,"Missing string ending marker "+t);let a=new X(n,!1);return this.tokens.push(new ej(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 eW(t.toString())),t.setLength(0),new X(r,!1)}processOthers(e,t,r,s,n,a){let i=t-n;i=i<eX.BIGGEST_OPERATOR_SIZE?i:eX.BIGGEST_OPERATOR_SIZE;for(let e=i;e>0;e--){let t=this.expression.substring(n,n+e);if(eX.OPERATORS_WITHOUT_SPACE_WRAP.has(t))return H.isNullOrBlank(s)||(this.tokens.push(new eH(s)),a=!1),this.checkUnaryOperator(this.tokens,this.ops,eX.OPERATION_VALUE_OF.get(t),a),a=!0,r.setLength(0),new X(n+e-1,a)}return r.append(e),new X(n,!1)}processTernaryOperator(e,t,r,s,n){if(n)throw new ek(this.expression,"Ternary operator is followed by an operator");""!=r.trim()&&(this.tokens.push(new eW(r)),t.setLength(0)),++s;let a=1,i="",o=s;for(;s<e&&a>0;)"?"==(i=this.expression.charAt(s))?++a:":"==i&&--a,++s;if(":"!=i)throw new ek(this.expression,"':' operater is missing");if(s>=e)throw new ek(this.expression,"Third part of the ternary expression is missing");for(;!this.ops.isEmpty()&&this.hasPrecedence(eX.CONDITIONAL_TERNARY_OPERATOR,this.ops.peek());){let e=this.ops.pop();if(eX.UNARY_OPERATORS.has(e)){let t=this.tokens.pop();this.tokens.push(new eW("",t,void 0,e))}else{let t=this.tokens.pop(),r=this.tokens.pop();this.tokens.push(new eW("",r,t,e))}}this.ops.push(eX.CONDITIONAL_TERNARY_OPERATOR),this.tokens.push(new eW(this.expression.substring(o,s-1)));let E=this.expression.substring(s);if(""===E.trim())throw new ek(this.expression,"Third part of the ternary expression is missing");return this.tokens.push(new eW(E)),e-1}processSubExpression(e,t,r,s,n){if(eX.OPERATORS.has(r))this.checkUnaryOperator(this.tokens,this.ops,eX.OPERATION_VALUE_OF.get(r),n),t.setLength(0);else if(!H.isNullOrBlank(r))throw new ek(this.expression,F.format("Unkown token : $ found.",r));let a=1,i=new eY,o=this.expression.charAt(s);for(s++;s<e&&a>0;)"("==(o=this.expression.charAt(s))?a++:")"==o&&a--,0!=a&&(i.append(o),s++);if(")"!=o)throw new ek(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 eW(i.toString().trim())),s}processTokenSepearator(e,t,r){return H.isNullOrBlank(t)||(eX.OPERATORS.has(t)?(this.checkUnaryOperator(this.tokens,this.ops,eX.OPERATION_VALUE_OF.get(t),r),r=!0):(this.tokens.push(new eH(t)),r=!1)),e.setLength(0),r}checkUnaryOperator(e,t,r,s){if(r){if(s||e.isEmpty()){if(eX.UNARY_OPERATORS.has(r)){let e=eX.UNARY_MAP.get(r);e&&t.push(e)}else throw new ek(this.expression,F.format("Extra operator $ found.",r))}else{for(;!t.isEmpty()&&this.hasPrecedence(r,t.peek());){let r=t.pop();if(eX.UNARY_OPERATORS.has(r)){let t=e.pop();e.push(new eW("",t,void 0,r))}else{let t=e.pop(),s=e.pop();e.push(new eW("",s,t,r))}}t.push(r)}}}hasPrecedence(e,t){let r=eX.OPERATOR_PRIORITY.get(e),s=eX.OPERATOR_PRIORITY.get(t);if(!r||!s)throw 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 eY,t=0,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 eW?s[t].toString():s[t]).append(")"),t++;else if(r[n]==eX.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){let r=s[t++];e.insert(0,r.toString())}let 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({},"TokenValueExtractor",()=>eq);class eq{static #e=(()=>{this.REGEX_SQUARE_BRACKETS=/[\[\]]/})();static #t=(()=>{this.REGEX_DOT=/\./})();getValue(e){let t=this.getPrefix();if(!e.startsWith(t))throw new $(F.format("Token $ doesn't start with $",e,t));return this.getValueInternal(e)}retrieveElementFrom(e,t,r,s){if(u(s))return;if(t.length==r)return s;let n=t[r].split(eq.REGEX_SQUARE_BRACKETS).map(e=>e.trim()).filter(e=>!H.isNullOrBlank(e)).reduce((s,n,a)=>this.resolveForEachPartOfTokenWithBrackets(e,t,r,n,s,a),s);return this.retrieveElementFrom(e,t,r+1,n)}resolveForEachPartOfTokenWithBrackets(e,t,r,s,n,a){if(!u(n)){if(0===a){if("length"===s&&"string"==typeof n)return n.length;if(Array.isArray(n)){if("length"===s)return n.length;try{let e=parseInt(s);if(isNaN(e))throw Error(F.format("$ is not a number",e));if(e>=n.length)return;return n[e]}catch(t){throw new ek(e,F.format("$ couldn't be parsed into integer in $",s,e),t)}}return this.checkIfObject(e,t,r,n),n[s]}if(s?.startsWith('"')){if(!s.endsWith('"')||1==s.length||2==s.length)throw new ek(e,F.format("$ is missing a double quote or empty key found",e));return this.checkIfObject(e,t,r,n),n[s.substring(1,s.length-1)]}try{let t=parseInt(s);if(isNaN(t))throw Error(F.format("$ is not a number",t));if(!Array.isArray(n))throw new ek(e,F.format("Expecting an array with index $ while processing the expression",t,e));if(t>=n.length)return;return n[t]}catch(t){throw new ek(e,F.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 ek(e,F.format("Unable to retrive $ from $ in the path $",t[r],s.toString(),e))}}class eJ extends eq{constructor(e,t){super(),this.store=e,this.prefix=t}getValueInternal(e){let t=e.split(eq.REGEX_DOT);return this.retrieveElementFrom(e,t,1,this.store)}getStore(){return this.store}setStore(e){return this.store=e,this}setValue(e,t,r=!0,s=!1){this.store=eT(this.store),this.modifyStore(e,t,r,s)}modifyStore(e,t,r,s){let n=new eW(e),a=n.getTokens();a.removeLast();let i=n.getOperations(),o=i.removeLast(),E=a.removeLast(),u=E instanceof ej?E.getElement():E.getExpression(),A=this.store;for(;!i.isEmpty();)A=o==eX.OBJECT_OPERATOR?this.getDataFromObject(A,u,i.peekLast()):this.getDataFromArray(A,u,i.peekLast()),o=i.removeLast(),u=(E=a.removeLast())instanceof ej?E.getElement():E.getExpression();o==eX.OBJECT_OPERATOR?this.putDataInObject(A,u,t,r,s):this.putDataInArray(A,u,t,r,s)}getDataFromArray(e,t,r){if(!Array.isArray(e))throw new $(F.format("Expected an array but found $",e));let s=parseInt(t);if(isNaN(s))throw new $(F.format("Expected an array index but found $",t));if(s<0)throw new $(F.format("Array index is out of bound - $",t));let n=e[s];return u(n)&&(n=r==eX.OBJECT_OPERATOR?{}:[],e[s]=n),n}getDataFromObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new $(F.format("Expected an object but found $",e));let s=e[t];return u(s)&&(s=r==eX.OBJECT_OPERATOR?{}:[],e[t]=s),s}putDataInArray(e,t,r,s,n){if(!Array.isArray(e))throw new $(F.format("Expected an array but found $",e));let a=parseInt(t);if(isNaN(a))throw new $(F.format("Expected an array index but found $",t));if(a<0)throw new $(F.format("Array index is out of bound - $",t));(s||u(e[a]))&&(n&&u(r)?e.splice(a,1):e[a]=r)}putDataInObject(e,t,r,s,n){if(Array.isArray(e)||"object"!=typeof e)throw new $(F.format("Expected an object but found $",e));(s||u(e[t]))&&(n&&u(r)?delete e[t]:e[t]=r)}getPrefix(){return this.prefix}}let ez="keyPath",eK="valuePath",eQ="ignoreNullValues",eZ="ignoreNullKeys",e0="ignoreDuplicateKeys";class e1 extends eo{constructor(){super("ArrayToObjects",[eo.PARAMETER_ARRAY_SOURCE,I.of(ez,O.ofString(ez)),I.of(eK,O.of(eK,r.STRING,r.NULL)),I.of(eQ,O.ofBoolean(eQ).setDefaultValue(!1)),I.of(eZ,O.ofBoolean(eZ).setDefaultValue(!0)),I.of(e0,O.ofBoolean(e0).setDefaultValue(!1))],eo.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(eo.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ez),s=e?.getArguments()?.get(eK)??"",n=e?.getArguments()?.get(eQ),a=e?.getArguments()?.get(eZ),i=e?.getArguments()?.get(e0),o=new eJ({},"Data."),E=t.filter(e=>!u(e)).reduce((e,t)=>{o.setStore(t);let E=o.getValue("Data."+r);if(a&&u(E))return e;let A=s?o.getValue("Data."+s):t;return n&&u(A)||i&&e.hasOwnProperty(E)||(e[E]=A),e},{});return new G([C.outputOf(new Map([[eo.EVENT_RESULT_NAME,E]]))])}}class e2{static #e=(()=>{this.repoMap=U.ofArrayEntries(L(new eE),L(new eu),L(new eg),L(new eR),L(new em),L(new ef),L(new eN),L(new e_),L(new eS),L(new eM),L(new eO),L(new ed),L(new ew),L(new eI),L(new eP),L(new ey),L(new ex),L(new eL),L(new ev),L(new eU),L(new eb),L(new eV),L(new eC),L(new e$),L(new eG),L(new el),L(new eD),L(new eF),L(new eB),L(new e1))})();static #t=(()=>{this.filterableNames=Array.from(e2.repoMap.values()).map(e=>e.getSignature().getFullName())})();async find(e,t){return e!=E.SYSTEM_ARRAY?Promise.resolve(void 0):Promise.resolve(e2.repoMap.get(t))}async filter(e){return Promise.resolve(e2.filterableNames.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}e({},"ContextElement",()=>e5);class e5{static #e=(()=>{this.NULL=new e5(O.NULL,void 0)})();constructor(e,t){this.schema=e,this.element=t}getSchema(){return this.schema}setSchema(e){return this.schema=e,this}getElement(){return this.element}setElement(e){return this.element=e,this}}let e7="name",e4="schema",e6=new D("Create").setNamespace(E.SYSTEM_CTX).setParameters(new Map([I.ofEntry(e7,new O().setName(e7).setType(g.of(r.STRING)).setMinLength(1).setFormat(n.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,s.CONSTANT),I.ofEntry(e4,O.SCHEMA,!1,s.CONSTANT)])).setEvents(new Map([V.outputEventMapEntry(new Map)])),e9="name",e8="value",e3=new D("Get").setNamespace(E.SYSTEM_CTX).setParameters(new Map([I.ofEntry(e9,new O().setName(e9).setType(g.of(r.STRING)).setMinLength(1).setFormat(n.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,s.CONSTANT)])).setEvents(new Map([V.outputEventMapEntry(new Map([[e8,O.ofAny(e8)]]))]));e({},"ExpressionEvaluator",()=>re);var te={};e(te,"LogicalNullishCoalescingOperator",()=>ts);var tt={};e(tt,"BinaryOperator",()=>tr);class tr{nullCheck(e,t,r){if(u(e)||u(t))throw new ec(F.format("$ cannot be applied to a null value",r.getOperatorName()))}}class ts extends tr{apply(e,t){return u(e)?t:e}}var tn={};e(tn,"ArithmeticAdditionOperator",()=>ta);class ta extends tr{apply(e,t){return u(e)?t:u(t)?e:e+t}}var ti={};e(ti,"ArithmeticDivisionOperator",()=>to);class to extends tr{apply(e,t){return this.nullCheck(e,t,eX.DIVISION),e/t}}var tE={};e(tE,"ArithmeticIntegerDivisionOperator",()=>tu);class tu extends tr{apply(e,t){return this.nullCheck(e,t,eX.DIVISION),Math.floor(e/t)}}var tA={};e(tA,"ArithmeticModulusOperator",()=>tl);class tl extends tr{apply(e,t){return this.nullCheck(e,t,eX.MOD),e%t}}var tc={};e(tc,"ArithmeticMultiplicationOperator",()=>th);class th extends tr{apply(e,t){this.nullCheck(e,t,eX.MULTIPLICATION);let r="string"==typeof e,s=typeof t;if(r||"string"===s){let s=r?e:t,n=r?t:e,a="",i=n<0,o=Math.floor(n=Math.abs(n));for(;o-- >0;)a+=s;let E=Math.floor(s.length*(n-Math.floor(n)));if(E<0&&(E=-E),0!=E&&(a+=s.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 tg={};e(tg,"ArithmeticSubtractionOperator",()=>tp);class tp extends tr{apply(e,t){return this.nullCheck(e,t,eX.SUBTRACTION),e-t}}var tR={};e(tR,"ArrayOperator",()=>tT);class tT extends tr{apply(e,t){if(!e)throw new ec("Cannot apply array operator on a null value");if(!t)throw new ec("Cannot retrive null index value");if(!Array.isArray(e)&&"string"!=typeof e)throw new ec(F.format("Cannot retrieve value from a primitive value $",e));if(t>=e.length)throw new ec(F.format("Cannot retrieve index $ from the array of length $",t,e.length));return e[t]}}var tm={};e(tm,"BitwiseAndOperator",()=>tf);class tf extends tr{apply(e,t){return this.nullCheck(e,t,eX.BITWISE_AND),e&t}}var tN={};e(tN,"BitwiseLeftShiftOperator",()=>t_);class t_ extends tr{apply(e,t){return this.nullCheck(e,t,eX.BITWISE_LEFT_SHIFT),e<<t}}var tS={};e(tS,"BitwiseOrOperator",()=>tM);class tM extends tr{apply(e,t){return this.nullCheck(e,t,eX.BITWISE_OR),e|t}}var tO={};e(tO,"BitwiseRightShiftOperator",()=>td);class td extends tr{apply(e,t){return this.nullCheck(e,t,eX.BITWISE_RIGHT_SHIFT),e>>t}}var tw={};e(tw,"BitwiseUnsignedRightShiftOperator",()=>tI);class tI extends tr{apply(e,t){return this.nullCheck(e,t,eX.BITWISE_UNSIGNED_RIGHT_SHIFT),e>>>t}}var tP={};e(tP,"BitwiseXorOperator",()=>ty);class ty extends tr{apply(e,t){return this.nullCheck(e,t,eX.BITWISE_XOR),e^t}}var tx={};e(tx,"LogicalAndOperator",()=>tL);class tL extends tr{apply(e,t){let s=eh.findPrimitiveNullAsBoolean(e),n=eh.findPrimitiveNullAsBoolean(t);if(s.getT1()!=r.BOOLEAN)throw new ec(F.format("Boolean value expected but found $",s.getT2()));if(n.getT1()!=r.BOOLEAN)throw new ec(F.format("Boolean value expected but found $",n.getT2()));return s.getT2()&&n.getT2()}}var tv={};e(tv,"LogicalEqualOperator",()=>tU);class tU extends tr{apply(e,t){return k(e,t)}}var tb={};e(tb,"LogicalGreaterThanEqualOperator",()=>tV);class tV extends tr{apply(e,t){let s=eh.findPrimitiveNullAsBoolean(e),n=eh.findPrimitiveNullAsBoolean(t);if(s.getT1()==r.BOOLEAN||n.getT1()==r.BOOLEAN)throw new ec(F.format("Cannot compare >= with the values $ and $",s.getT2(),n.getT2()));return s.getT2()>=n.getT2()}}var tC={};e(tC,"LogicalGreaterThanOperator",()=>t$);class t$ extends tr{apply(e,t){let s=eh.findPrimitiveNullAsBoolean(e),n=eh.findPrimitiveNullAsBoolean(t);if(s.getT1()==r.BOOLEAN||n.getT1()==r.BOOLEAN)throw new ec(F.format("Cannot compare > with the values $ and $",s.getT2(),n.getT2()));return s.getT2()>n.getT2()}}var tG={};e(tG,"LogicalLessThanEqualOperator",()=>tD);class tD extends tr{apply(e,t){let s=eh.findPrimitiveNullAsBoolean(e),n=eh.findPrimitiveNullAsBoolean(t);if(s.getT1()==r.BOOLEAN||n.getT1()==r.BOOLEAN)throw new ec(F.format("Cannot compare <= with the values $ and $",s.getT2(),n.getT2()));return s.getT2()<=n.getT2()}}var tF={};e(tF,"LogicalLessThanOperator",()=>tB);class tB extends tr{apply(e,t){let s=eh.findPrimitiveNullAsBoolean(e),n=eh.findPrimitiveNullAsBoolean(t);if(s.getT1()==r.BOOLEAN||n.getT1()==r.BOOLEAN)throw new ec(F.format("Cannot compare < with the values $ and $",s.getT2(),n.getT2()));return s.getT2()<n.getT2()}}var tY={};e(tY,"LogicalNotEqualOperator",()=>tk);class tk extends tr{apply(e,t){return!k(e,t)}}var tH={};e(tH,"LogicalOrOperator",()=>tj);class tj extends tr{apply(e,t){let s=eh.findPrimitiveNullAsBoolean(e),n=eh.findPrimitiveNullAsBoolean(t);if(s.getT1()!=r.BOOLEAN)throw new ec(F.format("Boolean value expected but found $",s.getT2()));if(n.getT1()!=r.BOOLEAN)throw new ec(F.format("Boolean value expected but found $",n.getT2()));return s.getT2()||n.getT2()}}var tX={};e(tX,"ObjectOperator",()=>tW);class tW extends tr{apply(e,t){if(!e)throw new ec("Cannot apply array operator on a null value");if(!t)throw new ec("Cannot retrive null property value");let r=typeof e;if(!Array.isArray(e)&&"string"!=r&&"object"!=r)throw new ec(F.format("Cannot retrieve value from a primitive value $",e));return e[t]}}var tq={};e(tq,"ArithmeticUnaryMinusOperator",()=>tK);var tJ={};e(tJ,"UnaryOperator",()=>tz);class tz{nullCheck(e,t){if(u(e))throw new ec(F.format("$ cannot be applied to a null value",t.getOperatorName()))}}class tK extends tz{apply(e){return this.nullCheck(e,eX.UNARY_MINUS),eh.findPrimitiveNumberType(e),-e}}var tQ={};e(tQ,"ArithmeticUnaryPlusOperator",()=>tZ);class tZ extends tz{apply(e){return this.nullCheck(e,eX.UNARY_PLUS),eh.findPrimitiveNumberType(e),e}}var t0={};e(t0,"BitwiseComplementOperator",()=>t1);class t1 extends tz{apply(e){this.nullCheck(e,eX.UNARY_BITWISE_COMPLEMENT);let t=eh.findPrimitiveNumberType(e);if(t.getT1()!=r.INTEGER&&t.getT1()!=r.LONG)throw new ec(F.format("Unable to apply bitwise operator on $",e));return~e}}var t2={};e(t2,"LogicalNotOperator",()=>t5);class t5 extends tz{apply(e){return!e&&""!==e}}e({},"LiteralTokenValueExtractor",()=>t4);let t7=new Map([["true",!0],["false",!1],["null",void 0],["undefined",void 0]]);class t4 extends eq{static #e=(()=>{this.INSTANCE=new t4})();getValueInternal(e){if(!H.isNullOrBlank(e))return(e=e.trim(),t7.has(e))?t7.get(e):e.startsWith('"')?this.processString(e):this.processNumbers(e)}processNumbers(e){try{let t=Number(e);if(isNaN(t))throw Error("Parse number error");return t}catch(t){throw new ek(e,F.format("Unable to parse the literal or expression $",e),t)}}processString(e){if(!e.endsWith('"'))throw new ek(e,F.format("String literal $ is not closed properly",e));return e.substring(1,e.length-1)}getPrefix(){return""}}var t6={};e(t6,"ConditionalTernaryOperator",()=>t8);class t9{nullCheck(e,t,r,s){if(u(e)||u(t)||u(r))throw new ec(F.format("$ cannot be applied to a null value",s.getOperatorName()))}}class t8 extends t9{apply(e,t,r){return e?t:r}}t({},t6);class t3 extends eq{static #e=(()=>{this.PREFIX="_internal."})();addValue(e,t){this.values.set(e,t)}getValueInternal(e){let t=e.split(eq.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 t3.PREFIX}constructor(...e){super(...e),this.values=new Map}}class re{static #e=(()=>{this.UNARY_OPERATORS_MAP=new Map([[eX.UNARY_BITWISE_COMPLEMENT,new t1],[eX.UNARY_LOGICAL_NOT,new t5],[eX.UNARY_MINUS,new tK],[eX.UNARY_PLUS,new tZ]])})();static #t=(()=>{this.TERNARY_OPERATORS_MAP=new Map([[eX.CONDITIONAL_TERNARY_OPERATOR,new t8]])})();static #r=(()=>{this.BINARY_OPERATORS_MAP=new Map([[eX.ADDITION,new ta],[eX.DIVISION,new to],[eX.INTEGER_DIVISION,new tu],[eX.MOD,new tl],[eX.MULTIPLICATION,new th],[eX.SUBTRACTION,new tp],[eX.BITWISE_AND,new tf],[eX.BITWISE_LEFT_SHIFT,new t_],[eX.BITWISE_OR,new tM],[eX.BITWISE_RIGHT_SHIFT,new td],[eX.BITWISE_UNSIGNED_RIGHT_SHIFT,new tI],[eX.BITWISE_XOR,new ty],[eX.AND,new tL],[eX.EQUAL,new tU],[eX.GREATER_THAN,new t$],[eX.GREATER_THAN_EQUAL,new tV],[eX.LESS_THAN,new tB],[eX.LESS_THAN_EQUAL,new tD],[eX.OR,new tj],[eX.NOT_EQUAL,new tk],[eX.NULLISH_COALESCING_OPERATOR,new ts],[eX.ARRAY_OPERATOR,new tT],[eX.OBJECT_OPERATOR,new tW]])})();static #s=(()=>{this.UNARY_OPERATORS_MAP_KEY_SET=new Set(re.UNARY_OPERATORS_MAP.keys())})();constructor(e){this.internalTokenValueExtractor=new t3,e instanceof eW?(this.exp=e,this.expression=this.exp.getExpression()):this.expression=e}evaluate(e){let t=this.processNestingExpression(this.expression,e);return this.expression=t.getT1(),this.exp=t.getT2(),(e=new Map(e.entries())).set(this.internalTokenValueExtractor.getPrefix(),this.internalTokenValueExtractor),this.evaluateExpression(this.exp,e)}processNestingExpression(e,t){let r=0,s=0,n=new B;for(;s<e.length-1;){if("{"==e.charAt(s)&&"{"==e.charAt(s+1))0==r&&n.push(new X(s+2,-1)),r++,s++;else if("}"==e.charAt(s)&&"}"==e.charAt(s+1)){if(--r<0)throw new ek(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 X(a,new eW(a))}replaceNestingExpression(e,t,r){let s=e;for(var n of r.toArray()){if(-1==n.getT2())throw new ek(e,"Expecting }} nesting path operator to be closed");let r=new re(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 eW(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(re.UNARY_OPERATORS_MAP_KEY_SET.has(e))s.push(this.applyUnaryOperation(e,this.getValueFromToken(t,o)));else if(e==eX.OBJECT_OPERATOR||e==eX.ARRAY_OPERATOR)this.processObjectOrArrayOperator(t,r,s,e,o);else if(e==eX.CONDITIONAL_TERNARY_OPERATOR){let r=s.pop(),E=s.pop();var n=this.getValueFromToken(t,E),a=this.getValueFromToken(t,r),i=this.getValueFromToken(t,o);s.push(this.applyTernaryOperation(e,n,a,i))}else{let r=s.pop();var n=this.getValueFromToken(t,r),a=this.getValueFromToken(t,o);s.push(this.applyBinaryOperation(e,n,a))}}if(s.isEmpty())throw new ec(F.format("Expression : $ evaluated to null",e));if(1!=s.size())throw new ec(F.format("Expression : $ evaluated multiple values $",e,s));let o=s.get(0);if(o instanceof ej)return o.getElement();if(!(o instanceof eW))return this.getValueFromToken(t,o);throw new ec(F.format("Expression : $ evaluated to $",e,s.get(0)))}processObjectOrArrayOperator(e,t,r,s,n){let a=new B,i=new B;if(!s||!n)return;do i.push(s),n instanceof eW?a.push(new ej(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==eX.OBJECT_OPERATOR||s==eX.ARRAY_OPERATOR)n&&(n instanceof eW?a.push(new ej(n.toString(),this.evaluateExpression(n,e))):a.push(n)),s&&t.push(s);let o=a.pop();if(o instanceof ej&&"object"==typeof o.getTokenValue()){let e=new Date().getTime()+""+Math.round(1e3*Math.random());this.internalTokenValueExtractor.addValue(e,o.getTokenValue()),o=new eH(t3.PREFIX+e)}let E=new eY(o instanceof ej?o.getTokenValue():o.toString());for(;!a.isEmpty();)o=a.pop(),s=i.pop(),E.append(s.getOperator()).append(o instanceof ej?o.getTokenValue():o.toString()),s==eX.ARRAY_OPERATOR&&E.append("]");let u=E.toString(),A=u.substring(0,u.indexOf(".")+1);if(A.length>2&&e.has(A))r.push(new ej(u,this.getValue(u,e)));else{let e;try{e=t4.INSTANCE.getValue(u)}catch(t){e=u}r.push(new ej(u,e))}}applyTernaryOperation(e,t,r,s){let n=re.TERNARY_OPERATORS_MAP.get(e);if(!n)throw new ek(this.expression,F.format("No operator found to evaluate $",this.getExpression()));return new ej(e.toString(),n.apply(t,r,s))}applyBinaryOperation(e,t,r){let s=typeof t,n=typeof r,a=re.BINARY_OPERATORS_MAP.get(e);if(("object"===s||"object"===n)&&e!==eX.EQUAL&&e!==eX.NOT_EQUAL&&e!==eX.NULLISH_COALESCING_OPERATOR)throw new ek(this.expression,F.format("Cannot evaluate expression $ $ $",t,e.getOperator(),r));if(!a)throw new ek(this.expression,F.format("No operator found to evaluate $ $ $",t,e.getOperator(),r));return new ej(e.toString(),a.apply(t,r))}applyUnaryOperation(e,t){if("object"==typeof t||Array.isArray(t))throw new ek(this.expression,F.format("The operator $ cannot be applied to $",e.getOperator(),t));let r=re.UNARY_OPERATORS_MAP.get(e);if(!r)throw new ek(this.expression,F.format("No Unary operator $ is found to apply on $",e.getOperator(),t));return new ej(e.toString(),r.apply(t))}getValueFromToken(e,t){return t instanceof eW?this.evaluateExpression(t,e):t instanceof ej?t.getElement():this.getValue(t.getExpression(),e)}getValue(e,t){if(e.length<=5)return t4.INSTANCE.getValue(e);let r=e.substring(0,e.indexOf(".")+1);return(t.get(r)??t4.INSTANCE).getValue(e)}}let rt="name",rr="value",rs=new D("Set").setNamespace(E.SYSTEM_CTX).setParameters(new Map([I.ofEntry(rt,new O().setName(rt).setType(g.of(r.STRING)).setMinLength(1),!1,s.CONSTANT),I.ofEntry(rr,O.ofAny(rr))])).setEvents(new Map([V.outputEventMapEntry(new Map)])),rn="value",ra="eventName",ri="results",ro=new D("GenerateEvent").setNamespace(E.SYSTEM).setParameters(new Map([I.ofEntry(ra,O.ofString(ra).setDefaultValue("output")),I.ofEntry(ri,O.ofObject(ri).setProperties(new Map([["name",O.ofString("name")],[rn,I.EXPRESSION]])),!0)])).setEvents(new Map([V.outputEventMapEntry(new Map)]));class rE extends ei{static #e=(()=>{this.CONDITION="condition"})();static #t=(()=>{this.SIGNATURE=new D("If").setNamespace(E.SYSTEM).setParameters(new Map([I.ofEntry(rE.CONDITION,O.of(rE.CONDITION,r.BOOLEAN))])).setEvents(new Map([V.eventMapEntry(V.TRUE,new Map),V.eventMapEntry(V.FALSE,new Map),V.outputEventMapEntry(new Map)]))})();getSignature(){return rE.SIGNATURE}async internalExecute(e){var t=e.getArguments()?.get(rE.CONDITION);return new G([C.of(t?V.TRUE:V.FALSE,new Map),C.outputOf(new Map)])}}let ru="stepName",rA=new D("Break").setNamespace(E.SYSTEM_LOOP).setParameters(new Map([I.ofEntry(ru,O.of(ru,r.STRING))])).setEvents(new Map([V.outputEventMapEntry(new Map([]))])),rl="count",rc="value",rh="index",rg=new D("CountLoop").setNamespace(E.SYSTEM_LOOP).setParameters(new Map([I.ofEntry(rl,O.of(rl,r.INTEGER))])).setEvents(new Map([V.eventMapEntry(V.ITERATION,new Map([[rh,O.of(rh,r.INTEGER)]])),V.outputEventMapEntry(new Map([[rc,O.of(rc,r.INTEGER)]]))])),rp="source",rR="each",rT="index",rm="value",rf=new D("ForEachLoop").setNamespace(E.SYSTEM_LOOP).setParameters(new Map([I.ofEntry(rp,O.ofArray(rp,O.ofAny(rp)))])).setEvents(new Map([V.eventMapEntry(V.ITERATION,new Map([[rT,O.of(rT,r.INTEGER)],[rR,O.ofAny(rR)]])),V.outputEventMapEntry(new Map([[rm,O.of(rm,r.INTEGER)]]))])),rN="from",r_="step",rS="value",rM="index",rO=new D("RangeLoop").setNamespace(E.SYSTEM_LOOP).setParameters(new Map([I.ofEntry(rN,O.of(rN,r.INTEGER,r.LONG,r.FLOAT,r.DOUBLE).setDefaultValue(0)),I.ofEntry("to",O.of("to",r.INTEGER,r.LONG,r.FLOAT,r.DOUBLE).setDefaultValue(1)),I.ofEntry(r_,O.of(r_,r.INTEGER,r.LONG,r.FLOAT,r.DOUBLE).setDefaultValue(1).setNot(new O().setConstant(0)))])).setEvents(new Map([V.eventMapEntry(V.ITERATION,new Map([[rM,O.of(rM,r.INTEGER,r.LONG,r.FLOAT,r.DOUBLE)]])),V.outputEventMapEntry(new Map([[rS,O.of(rS,r.INTEGER,r.LONG,r.FLOAT,r.DOUBLE)]]))])),rd="value",rw=new D("Add").setNamespace(E.MATH).setParameters(new Map([[rd,new I(rd,O.ofNumber(rd)).setVariableArgument(!0)]])).setEvents(new Map([V.outputEventMapEntry(new Map([[rd,O.ofNumber(rd)]]))])),rI="value",rP="value1",ry="value2",rx=[()=>new Map([[rI,new I(rI,O.ofNumber(rI))]]),()=>new Map([[rP,new I(rP,O.ofNumber(rP))],[ry,new I(ry,O.ofNumber(ry))]])];class rL extends ei{constructor(e,t,s=1,...n){super(),n&&n.length||(n=[r.DOUBLE]),this.parametersNumber=s,this.mathFunction=t,this.signature=new D(e).setNamespace(E.MATH).setParameters(rx[s-1]()).setEvents(new Map([V.outputEventMapEntry(new Map([[rI,new O().setType(g.of(...n)).setName(rI)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t,r=eh.findPrimitiveNumberType(e.getArguments()?.get(1==this.parametersNumber?rI:rP)).getT2();return 2==this.parametersNumber&&(t=eh.findPrimitiveNumberType(e.getArguments()?.get(ry)).getT2()),new G([C.outputOf(new Map([[rI,this.mathFunction.call(this,r,t)]]))])}}let rv="value";class rU extends ei{static #e=(()=>{this.SIGNATURE=new D("Hypotenuse").setNamespace(E.MATH).setParameters(new Map([[rv,new I(rv,O.ofNumber(rv)).setVariableArgument(!0)]])).setEvents(new Map([V.outputEventMapEntry(new Map([[rv,new O().setType(g.of(r.DOUBLE)).setName(rv)]]))]))})();constructor(){super()}getSignature(){return rU.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(rv);return new G([C.outputOf(new Map([[rv,Math.sqrt(t.reduce((e,t)=>e+=t*t,0))]]))])}}let rb="value",rV=new D("Maximum").setNamespace(E.MATH).setParameters(new Map([[rb,new I(rb,O.ofNumber(rb)).setVariableArgument(!0)]])).setEvents(new Map([V.outputEventMapEntry(new Map([[rb,O.ofNumber(rb)]]))])),rC="value",r$=new D("Minimum").setNamespace(E.MATH).setParameters(new Map([[rC,new I(rC,O.ofNumber(rC)).setVariableArgument(!0)]])).setEvents(new Map([V.outputEventMapEntry(new Map([[rC,O.ofNumber(rC)]]))])),rG="value";class rD extends ei{static #e=(()=>{this.SIGNATURE=new D("Random").setNamespace(E.MATH).setEvents(new Map([V.outputEventMapEntry(U.of(rG,O.ofDouble(rG)))]))})();getSignature(){return rD.SIGNATURE}async internalExecute(e){return new G([C.outputOf(new Map([[rG,Math.random()]]))])}}class rF extends ei{static #e=(()=>{this.MIN_VALUE="minValue"})();static #t=(()=>{this.MAX_VALUE="maxValue"})();static #r=(()=>{this.VALUE="value"})();static #s=(()=>{this.SIGNATURE=new D("RandomFloat").setParameters(U.of(rF.MIN_VALUE,I.of(rF.MIN_VALUE,O.ofFloat(rF.MIN_VALUE).setDefaultValue(0)),rF.MAX_VALUE,I.of(rF.MAX_VALUE,O.ofFloat(rF.MAX_VALUE).setDefaultValue(2147483647)))).setNamespace(E.MATH).setEvents(new Map([V.outputEventMapEntry(U.of(rF.VALUE,O.ofFloat(rF.VALUE)))]))})();getSignature(){return rF.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(rF.MIN_VALUE),r=e.getArguments()?.get(rF.MAX_VALUE);return new G([C.outputOf(new Map([[rF.VALUE,Math.random()*(r-t)+t]]))])}}class rB extends ei{static #e=(()=>{this.MIN_VALUE="minValue"})();static #t=(()=>{this.MAX_VALUE="maxValue"})();static #r=(()=>{this.VALUE="value"})();static #s=(()=>{this.SIGNATURE=new D("RandomInt").setParameters(U.of(rB.MIN_VALUE,I.of(rB.MIN_VALUE,O.ofInteger(rB.MIN_VALUE).setDefaultValue(0)),rB.MAX_VALUE,I.of(rB.MAX_VALUE,O.ofInteger(rB.MAX_VALUE).setDefaultValue(2147483647)))).setNamespace(E.MATH).setEvents(new Map([V.outputEventMapEntry(U.of(rB.VALUE,O.ofInteger(rB.VALUE)))]))})();getSignature(){return rB.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(rB.MIN_VALUE),r=e.getArguments()?.get(rB.MAX_VALUE);return new G([C.outputOf(new Map([[rB.VALUE,Math.floor(Math.random()*(r-t)+t)]]))])}}let rY={Absolute:new rL("Absolute",e=>Math.abs(e),1,r.INTEGER,r.LONG,r.FLOAT,r.DOUBLE),ACosine:new rL("ArcCosine",e=>Math.acos(e)),ASine:new rL("ArcSine",e=>Math.asin(e)),ATangent:new rL("ArcTangent",e=>Math.atan(e)),Ceiling:new rL("Ceiling",e=>Math.ceil(e)),Cosine:new rL("Cosine",e=>Math.cos(e)),CosineH:new rL("HyperbolicCosine",e=>Math.cosh(e)),CubeRoot:new rL("CubeRoot",e=>Math.cbrt(e)),Exponential:new rL("Exponential",e=>Math.exp(e)),Expm1:new rL("ExponentialMinus1",e=>Math.expm1(e)),Floor:new rL("Floor",e=>Math.floor(e)),Log:new rL("LogNatural",e=>Math.log(e)),Log10:new rL("Log10",e=>Math.log10(e)),Round:new rL("Round",e=>Math.round(e),1,r.INTEGER,r.LONG),Sine:new rL("Sine",e=>Math.sin(e)),SineH:new rL("HyperbolicSine",e=>Math.sinh(e)),Tangent:new rL("Tangent",e=>Math.tan(e)),TangentH:new rL("HyperbolicTangent",e=>Math.tanh(e)),ToDegrees:new rL("ToDegrees",e=>e*(Math.PI/180)),ToRadians:new rL("ToRadians",e=>e*(180/Math.PI)),SquareRoot:new rL("SquareRoot",e=>Math.sqrt(e)),ArcTangent:new rL("ArcTangent2",(e,t)=>Math.atan2(e,t),2),Power:new rL("Power",(e,t)=>Math.pow(e,t),2),Add:new class extends ei{getSignature(){return rw}async internalExecute(e){let t=e.getArguments()?.get(rd);return new G([C.outputOf(new Map([[rd,t.reduce((e,t)=>e+=t,0)]]))])}},Hypotenuse:new rU,Maximum:new class extends ei{getSignature(){return rV}async internalExecute(e){let t=e.getArguments()?.get(rb);return new G([C.outputOf(new Map([[rb,t.reduce((e,t)=>!e&&0!==e||t>e?t:e)]]))])}},Minimum:new class extends ei{getSignature(){return r$}async internalExecute(e){let t=e.getArguments()?.get(rC);return new G([C.outputOf(new Map([[rC,t.reduce((e,t)=>!e&&0!==e||t<e?t:e)]]))])}},Random:new rD,RandomFloat:new rF,RandomInt:new rB},rk=Object.values(rY).map(e=>e.getSignature().getFullName());class rH{async find(e,t){return e!=E.MATH?Promise.resolve(void 0):Promise.resolve(rY[t])}async filter(e){return Promise.resolve(rk.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}let rj="value",rX="source",rW="source";class rq extends ei{constructor(e,t){super(),this.signature=new D(e).setNamespace(E.SYSTEM_OBJECT).setParameters(new Map([I.ofEntry(rW,O.ofAny(rW))])).setEvents(new Map([V.outputEventMapEntry(new Map([["value",t]]))]))}getSignature(){return this.signature}}let rJ="value",rz="value",rK="value",rQ="source",rZ="overwrite",r0="deleteKeyOnNull",r1="value",r2={ObjectValues:new class extends rq{constructor(){super("ObjectValues",O.ofArray(r1,O.ofAny(r1)))}async internalExecute(e){var t=e.getArguments()?.get("source");if(u(t))return new G([C.outputOf(new Map([[r1,[]]]))]);let r=Object.entries(eT(t)).sort((e,t)=>e[0].localeCompare(t[0])).map(e=>e[1]);return new G([C.outputOf(new Map([[r1,r]]))])}},ObjectKeys:new class extends rq{constructor(){super("ObjectKeys",O.ofArray(rz,O.ofString(rz)))}async internalExecute(e){var t=e.getArguments()?.get("source");if(u(t))return new G([C.outputOf(new Map([[rz,[]]]))]);let r=Object.keys(eT(t)).sort((e,t)=>e.localeCompare(t));return new G([C.outputOf(new Map([[rz,r]]))])}},ObjectEntries:new class extends rq{constructor(){super("ObjectEntries",O.ofArray(rJ,O.ofArray("tuple",O.ofString("key"),O.ofAny("value"))))}async internalExecute(e){var t=e.getArguments()?.get("source");if(u(t))return new G([C.outputOf(new Map([[rJ,[]]]))]);let r=Object.entries(eT(t)).sort((e,t)=>e[0].localeCompare(t[0]));return new G([C.outputOf(new Map([[rJ,r]]))])}},ObjectDeleteKey:new class extends ei{constructor(){super(),this.signature=new D("ObjectDeleteKey").setNamespace(E.SYSTEM_OBJECT).setParameters(new Map([I.ofEntry(rX,O.ofAny(rX)),I.ofEntry("key",O.ofString("key"))])).setEvents(new Map([V.outputEventMapEntry(new Map([[rj,O.ofAny(rj)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rX),r=e.getArguments()?.get("key");return u(t)?new G([C.outputOf(new Map([[rj,void 0]]))]):(t=eT(t),delete t[r],new G([C.outputOf(new Map([[rj,t]]))]))}},ObjectPutValue:new class extends ei{constructor(){super(),this.signature=new D("ObjectPutValue").setNamespace(E.SYSTEM_OBJECT).setParameters(new Map([I.ofEntry(rQ,O.ofObject(rQ)),I.ofEntry("key",O.ofString("key")),I.ofEntry(rK,O.ofAny(rK)),I.ofEntry(rZ,O.ofBoolean(rZ).setDefaultValue(!0)),I.ofEntry(r0,O.ofBoolean(r0).setDefaultValue(!1))])).setEvents(new Map([V.outputEventMapEntry(new Map([[rK,O.ofObject(rK)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rQ),r=e.getArguments()?.get("key"),s=e.getArguments()?.get(rK),n=e.getArguments()?.get(rZ),a=e.getArguments()?.get(r0),i=new eJ(t,"Data.");return i.setValue(r,s,n,a),new G([C.outputOf(new Map([[rK,i.getStore()]]))])}}},r5=Object.values(r2).map(e=>e.getSignature().getFullName());class r7{async find(e,t){return e!=E.SYSTEM_OBJECT?Promise.resolve(void 0):Promise.resolve(r2[t])}async filter(e){return Promise.resolve(r5.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}class r4 extends ei{static #e=(()=>{this.VALUES="values"})();static #t=(()=>{this.SIGNATURE=new D("Print").setNamespace(E.SYSTEM).setParameters(new Map([I.ofEntry(r4.VALUES,O.ofAny(r4.VALUES),!0)]))})();getSignature(){return r4.SIGNATURE}async internalExecute(e){var t=e.getArguments()?.get(r4.VALUES);return console?.log(...t),new G([C.outputOf(new Map)])}}class r6 extends ei{static #e=(()=>{this.PARAMETER_STRING_NAME="string"})();static #t=(()=>{this.PARAMETER_SEARCH_STRING_NAME="searchString"})();static #r=(()=>{this.PARAMETER_SECOND_STRING_NAME="secondString"})();static #s=(()=>{this.PARAMETER_THIRD_STRING_NAME="thirdString"})();static #n=(()=>{this.PARAMETER_INDEX_NAME="index"})();static #a=(()=>{this.PARAMETER_SECOND_INDEX_NAME="secondIndex"})();static #i=(()=>{this.EVENT_RESULT_NAME="result"})();static #o=(()=>{this.PARAMETER_STRING=new I(r6.PARAMETER_STRING_NAME,O.ofString(r6.PARAMETER_STRING_NAME))})();static #E=(()=>{this.PARAMETER_SECOND_STRING=new I(r6.PARAMETER_SECOND_STRING_NAME,O.ofString(r6.PARAMETER_SECOND_STRING_NAME))})();static #u=(()=>{this.PARAMETER_THIRD_STRING=new I(r6.PARAMETER_THIRD_STRING_NAME,O.ofString(r6.PARAMETER_THIRD_STRING_NAME))})();static #A=(()=>{this.PARAMETER_INDEX=new I(r6.PARAMETER_INDEX_NAME,O.ofInteger(r6.PARAMETER_INDEX_NAME))})();static #l=(()=>{this.PARAMETER_SECOND_INDEX=new I(r6.PARAMETER_SECOND_INDEX_NAME,O.ofInteger(r6.PARAMETER_SECOND_INDEX_NAME))})();static #c=(()=>{this.PARAMETER_SEARCH_STRING=new I(r6.PARAMETER_SEARCH_STRING_NAME,O.ofString(r6.PARAMETER_STRING_NAME))})();static #h=(()=>{this.EVENT_STRING=new V(V.OUTPUT,U.of(r6.EVENT_RESULT_NAME,O.ofString(r6.EVENT_RESULT_NAME)))})();static #g=(()=>{this.EVENT_BOOLEAN=new V(V.OUTPUT,U.of(r6.EVENT_RESULT_NAME,O.ofBoolean(r6.EVENT_RESULT_NAME)))})();static #p=(()=>{this.EVENT_INT=new V(V.OUTPUT,U.of(r6.EVENT_RESULT_NAME,O.ofInteger(r6.EVENT_RESULT_NAME)))})();static #R=(()=>{this.EVENT_ARRAY=new V(V.OUTPUT,U.of(r6.EVENT_RESULT_NAME,O.ofArray(r6.EVENT_RESULT_NAME)))})();constructor(e,t,r,...s){super();let n=new Map;s.forEach(e=>n.set(e.getParameterName(),e)),this.signature=new D(t).setNamespace(e).setParameters(n).setEvents(U.of(r.getName(),r))}getSignature(){return this.signature}static ofEntryAsStringBooleanOutput(e,t){return[e,new class extends r6{constructor(e,t,r,...s){super(e,t,r,...s)}async internalExecute(e){let r=e?.getArguments()?.get(r6.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(r6.PARAMETER_SEARCH_STRING_NAME);return new G([C.outputOf(U.of(r6.EVENT_RESULT_NAME,t(r,s)))])}}(E.STRING,e,r6.EVENT_BOOLEAN,r6.PARAMETER_STRING,r6.PARAMETER_SEARCH_STRING)]}static ofEntryAsStringAndIntegerStringOutput(e,t){return[e,new class extends r6{constructor(e,t,r,...s){super(e,t,r,...s)}async internalExecute(e){let r=e?.getArguments()?.get(r6.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(r6.PARAMETER_INDEX_NAME);return new G([C.outputOf(U.of(r6.EVENT_RESULT_NAME,t(r,s)))])}}(E.STRING,e,r6.EVENT_STRING,r6.PARAMETER_STRING,r6.PARAMETER_INDEX)]}static ofEntryAsStringIntegerOutput(e,t){return[e,new class extends r6{constructor(e,t,r,...s){super(e,t,r,...s)}async internalExecute(e){let r=e?.getArguments()?.get(r6.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(r6.PARAMETER_SEARCH_STRING_NAME);return new G([C.outputOf(U.of(r6.EVENT_RESULT_NAME,t(r,s)))])}}(E.STRING,e,r6.EVENT_INT,r6.PARAMETER_STRING,r6.PARAMETER_SEARCH_STRING)]}static ofEntryString(e,t){return[e,new class extends r6{constructor(e,t,r,...s){super(e,t,r,...s)}async internalExecute(e){let r=e?.getArguments()?.get(r6.PARAMETER_STRING_NAME);return new G([C.outputOf(U.of(r6.EVENT_RESULT_NAME,t(r)))])}}(E.STRING,e,r6.EVENT_STRING,r6.PARAMETER_STRING)]}static ofEntryStringBooleanOutput(e,t){return[e,new class extends r6{constructor(e,t,r,...s){super(e,t,r,...s)}async internalExecute(e){let r=e?.getArguments()?.get(r6.PARAMETER_STRING_NAME);return new G([C.outputOf(U.of(r6.EVENT_RESULT_NAME,t(r)))])}}(E.STRING,e,r6.EVENT_BOOLEAN,r6.PARAMETER_STRING)]}static ofEntryAsStringStringIntegerIntegerOutput(e,t){return[e,new class extends r6{constructor(e,t,r,...s){super(e,t,r,...s)}async internalExecute(e){let r=e?.getArguments()?.get(r6.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(r6.PARAMETER_SEARCH_STRING_NAME),n=e?.getArguments()?.get(r6.PARAMETER_INDEX_NAME);return new G([C.outputOf(U.of(r6.EVENT_RESULT_NAME,t(r,s,n)))])}}(E.STRING,e,r6.EVENT_INT,r6.PARAMETER_STRING,r6.PARAMETER_SEARCH_STRING,r6.PARAMETER_INDEX)]}static ofEntryAsStringIntegerIntegerStringOutput(e,t){return[e,new class extends r6{constructor(e,t,r,...s){super(e,t,r,...s)}async internalExecute(e){let r=e?.getArguments()?.get(r6.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(r6.PARAMETER_INDEX_NAME),n=e?.getArguments()?.get(r6.PARAMETER_SECOND_INDEX_NAME);return new G([C.outputOf(U.of(r6.EVENT_RESULT_NAME,t(r,s,n)))])}}(E.STRING,e,r6.EVENT_INT,r6.PARAMETER_STRING,r6.PARAMETER_INDEX,r6.PARAMETER_SECOND_INDEX)]}static ofEntryAsStringStringStringStringOutput(e,t){return[e,new class extends r6{constructor(e,t,r,...s){super(e,t,r,...s)}async internalExecute(e){let r=e?.getArguments()?.get(r6.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(r6.PARAMETER_SECOND_STRING_NAME),n=e?.getArguments()?.get(r6.PARAMETER_THIRD_STRING_NAME);return new G([C.outputOf(U.of(r6.EVENT_RESULT_NAME,t(r,s,n)))])}}(E.STRING,e,r6.EVENT_STRING,r6.PARAMETER_STRING,r6.PARAMETER_SECOND_STRING,r6.PARAMETER_THIRD_STRING)]}}class r9 extends ei{static #e=(()=>{this.VALUE="value"})();static #t=(()=>{this.SCHEMA=new O().setName(r9.VALUE).setType(new h(r.STRING))})();static #r=(()=>{this.SIGNATURE=new D("Concatenate").setNamespace(E.STRING).setParameters(new Map([[r9.VALUE,new I(r9.VALUE,r9.SCHEMA).setVariableArgument(!0)]])).setEvents(new Map([V.outputEventMapEntry(new Map([[r9.VALUE,O.ofString(r9.VALUE)]]))]))})();constructor(){super()}getSignature(){return r9.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(r9.VALUE),r="";return t.reduce((e,t)=>r=e+t,r),new G([C.outputOf(new Map([[r9.VALUE,r]]))])}}class r8 extends ei{static #e=(()=>{this.PARAMETER_STRING_NAME="string"})();static #t=(()=>{this.PARAMETER_AT_START_NAME="startPosition"})();static #r=(()=>{this.PARAMETER_AT_END_NAME="endPosition"})();static #s=(()=>{this.EVENT_RESULT_NAME="result"})();constructor(){super(),this.PARAMETER_STRING=new I(r8.PARAMETER_STRING_NAME,O.ofString(r8.PARAMETER_STRING_NAME)),this.PARAMETER_AT_START=new I(r8.PARAMETER_AT_START_NAME,O.ofInteger(r8.PARAMETER_AT_START_NAME)),this.PARAMETER_AT_END=new I(r8.PARAMETER_AT_END_NAME,O.ofInteger(r8.PARAMETER_AT_END_NAME)),this.EVENT_STRING=new V(V.OUTPUT,new Map([[r8.EVENT_RESULT_NAME,O.ofString(r8.EVENT_RESULT_NAME)]])),this.signature=new D("DeleteForGivenLength").setNamespace(E.STRING).setParameters(new Map([[this.PARAMETER_STRING.getParameterName(),this.PARAMETER_STRING],[this.PARAMETER_AT_START.getParameterName(),this.PARAMETER_AT_START],[this.PARAMETER_AT_END.getParameterName(),this.PARAMETER_AT_END]])).setEvents(new Map([[this.EVENT_STRING.getName(),this.EVENT_STRING]]))}getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(r8.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(r8.PARAMETER_AT_START_NAME),s=e?.getArguments()?.get(r8.PARAMETER_AT_END_NAME);if(s>=r){let e="";return e+=t.substring(0,r)+t.substring(s),new G([C.outputOf(new Map([[r8.EVENT_RESULT_NAME,e.toString()]]))])}return new G([C.outputOf(new Map([[r8.EVENT_RESULT_NAME,t]]))])}}class r3 extends ei{static #e=(()=>{this.PARAMETER_STRING_NAME="string"})();static #t=(()=>{this.PARAMETER_AT_POSITION_NAME="position"})();static #r=(()=>{this.PARAMETER_INSERT_STRING_NAME="insertString"})();getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(r3.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(r3.PARAMETER_AT_POSITION_NAME),s=e?.getArguments()?.get(r3.PARAMETER_INSERT_STRING_NAME),n="";return n+=t.substring(0,r)+s+t.substring(r),new G([C.outputOf(new Map([[this.EVENT_RESULT_NAME,n]]))])}constructor(...e){super(...e),this.EVENT_RESULT_NAME="result",this.PARAMETER_STRING=new I(r3.PARAMETER_STRING_NAME,O.ofString(r3.PARAMETER_STRING_NAME)),this.PARAMETER_AT_POSITION=new I(r3.PARAMETER_AT_POSITION_NAME,O.ofInteger(r3.PARAMETER_AT_POSITION_NAME)),this.PARAMETER_INSERT_STRING=new I(r3.PARAMETER_INSERT_STRING_NAME,O.ofString(r3.PARAMETER_INSERT_STRING_NAME)),this.EVENT_STRING=new V(V.OUTPUT,new Map([[this.EVENT_RESULT_NAME,O.ofString(this.EVENT_RESULT_NAME)]])),this.signature=new D("InsertAtGivenPosition").setNamespace(E.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([V.outputEventMapEntry(new Map([[this.EVENT_RESULT_NAME,O.ofString(this.EVENT_RESULT_NAME)]]))]))}}class se extends ei{static #e=(()=>{this.PARAMETER_STRING_NAME="string"})();static #t=(()=>{this.PARAMETER_POSTPAD_STRING_NAME="postpadString"})();static #r=(()=>{this.PARAMETER_LENGTH_NAME="length"})();static #s=(()=>{this.EVENT_RESULT_NAME="result"})();static #n=(()=>{this.PARAMETER_STRING=new I(se.PARAMETER_STRING_NAME,O.ofString(se.PARAMETER_STRING_NAME))})();static #a=(()=>{this.PARAMETER_POSTPAD_STRING=new I(se.PARAMETER_POSTPAD_STRING_NAME,O.ofString(se.PARAMETER_POSTPAD_STRING_NAME))})();static #i=(()=>{this.PARAMETER_LENGTH=new I(se.PARAMETER_LENGTH_NAME,O.ofInteger(se.PARAMETER_LENGTH_NAME))})();static #o=(()=>{this.EVENT_STRING=new V(V.OUTPUT,new Map([[se.EVENT_RESULT_NAME,O.ofString(se.EVENT_RESULT_NAME)]]))})();constructor(){super(),this.signature=new D("PostPad").setNamespace(E.STRING).setParameters(new Map([[se.PARAMETER_STRING.getParameterName(),se.PARAMETER_STRING],[se.PARAMETER_POSTPAD_STRING.getParameterName(),se.PARAMETER_POSTPAD_STRING],[se.PARAMETER_LENGTH.getParameterName(),se.PARAMETER_LENGTH]])).setEvents(new Map([[se.EVENT_STRING.getName(),se.EVENT_STRING]]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(se.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(se.PARAMETER_POSTPAD_STRING_NAME),s=e.getArguments()?.get(se.PARAMETER_LENGTH_NAME),n="",a=r.length;for(n+=t;a<=s;)n+=r,a+=r.length;return n.length-t.length<s&&(n+=r.substring(0,s-(n.length-t.length))),new G([C.of(se.EVENT_RESULT_NAME,new Map([[se.EVENT_RESULT_NAME,n.toString()]]))])}}class st extends ei{static #e=(()=>{this.PARAMETER_STRING_NAME="string"})();static #t=(()=>{this.PARAMETER_PREPAD_STRING_NAME="prepadString"})();static #r=(()=>{this.PARAMETER_LENGTH_NAME="length"})();static #s=(()=>{this.EVENT_RESULT_NAME="result"})();static #n=(()=>{this.PARAMETER_STRING=new I(st.PARAMETER_STRING_NAME,O.ofString(st.PARAMETER_STRING_NAME))})();static #a=(()=>{this.PARAMETER_PREPAD_STRING=new I(st.PARAMETER_PREPAD_STRING_NAME,O.ofString(st.PARAMETER_PREPAD_STRING_NAME))})();static #i=(()=>{this.PARAMETER_LENGTH=new I(st.PARAMETER_LENGTH_NAME,O.ofInteger(st.PARAMETER_LENGTH_NAME))})();static #o=(()=>{this.EVENT_STRING=new V(V.OUTPUT,new Map([[st.EVENT_RESULT_NAME,O.ofString(st.EVENT_RESULT_NAME)]]))})();getSignature(){return this.signature}constructor(){super(),this.signature=new D("PrePad").setNamespace(E.STRING).setParameters(new Map([[st.PARAMETER_STRING.getParameterName(),st.PARAMETER_STRING],[st.PARAMETER_PREPAD_STRING.getParameterName(),st.PARAMETER_PREPAD_STRING],[st.PARAMETER_LENGTH.getParameterName(),st.PARAMETER_LENGTH]])).setEvents(new Map([[st.EVENT_STRING.getName(),st.EVENT_STRING]]))}async internalExecute(e){let t=e.getArguments()?.get(st.PARAMETER_STRING_NAME),r=e.getArguments()?.get(st.PARAMETER_PREPAD_STRING_NAME),s=e.getArguments()?.get(st.PARAMETER_LENGTH_NAME),n="",a=r.length;for(;a<=s;)n+=r,a+=r.length;return n.length<s&&(n+=r.substring(0,s-n.length)),n+=t,new G([C.of(st.EVENT_RESULT_NAME,new Map([[st.EVENT_RESULT_NAME,n]]))])}}class sr extends ei{static #e=(()=>{this.PARAMETER_STRING_NAME="string"})();static #t=(()=>{this.PARAMETER_BOOLEAN_NAME="boolean"})();static #r=(()=>{this.PARAMETER_FIRST_OFFSET_NAME="firstOffset"})();static #s=(()=>{this.PARAMETER_OTHER_STRING_NAME="otherString"})();static #n=(()=>{this.PARAMETER_SECOND_OFFSET_NAME="secondOffset"})();static #a=(()=>{this.PARAMETER_INTEGER_NAME="length"})();static #i=(()=>{this.EVENT_RESULT_NAME="result"})();static #o=(()=>{this.PARAMETER_STRING=new I(sr.PARAMETER_STRING_NAME,O.ofString(sr.PARAMETER_STRING_NAME))})();static #E=(()=>{this.PARAMETER_OTHER_STRING=new I(sr.PARAMETER_OTHER_STRING_NAME,O.ofString(sr.PARAMETER_OTHER_STRING_NAME))})();static #u=(()=>{this.PARAMETER_FIRST_OFFSET=new I(sr.PARAMETER_FIRST_OFFSET_NAME,O.ofInteger(sr.PARAMETER_FIRST_OFFSET_NAME))})();static #A=(()=>{this.PARAMETER_SECOND_OFFSET=new I(sr.PARAMETER_SECOND_OFFSET_NAME,O.ofInteger(sr.PARAMETER_SECOND_OFFSET_NAME))})();static #l=(()=>{this.PARAMETER_INTEGER=new I(sr.PARAMETER_INTEGER_NAME,O.ofInteger(sr.PARAMETER_INTEGER_NAME))})();static #c=(()=>{this.PARAMETER_BOOLEAN=new I(sr.PARAMETER_BOOLEAN_NAME,O.ofBoolean(sr.PARAMETER_BOOLEAN_NAME))})();static #h=(()=>{this.EVENT_BOOLEAN=new V(V.OUTPUT,new Map([[sr.EVENT_RESULT_NAME,O.ofBoolean(sr.EVENT_RESULT_NAME)]]))})();getSignature(){return this.signature}constructor(){super(),this.signature=new D("RegionMatches").setNamespace(E.STRING).setParameters(new Map([[sr.PARAMETER_STRING.getParameterName(),sr.PARAMETER_STRING],[sr.PARAMETER_BOOLEAN.getParameterName(),sr.PARAMETER_BOOLEAN],[sr.PARAMETER_FIRST_OFFSET.getParameterName(),sr.PARAMETER_FIRST_OFFSET],[sr.PARAMETER_OTHER_STRING.getParameterName(),sr.PARAMETER_OTHER_STRING],[sr.PARAMETER_SECOND_OFFSET.getParameterName(),sr.PARAMETER_SECOND_OFFSET],[sr.PARAMETER_INTEGER.getParameterName(),sr.PARAMETER_INTEGER]])).setEvents(new Map([[sr.EVENT_BOOLEAN.getName(),sr.EVENT_BOOLEAN]]))}async internalExecute(e){let t=e.getArguments()?.get(sr.PARAMETER_STRING_NAME),r=e.getArguments()?.get(sr.PARAMETER_BOOLEAN_NAME),s=e.getArguments()?.get(sr.PARAMETER_FIRST_OFFSET_NAME),n=e?.getArguments()?.get(sr.PARAMETER_OTHER_STRING_NAME),a=e?.getArguments()?.get(sr.PARAMETER_SECOND_OFFSET_NAME),i=e.getArguments()?.get(sr.PARAMETER_INTEGER_NAME),o=!1;return o=!(s<0)&&!(a<0)&&!(s+i>t.length)&&!(a+i>n.length)&&(r?(t=t.substring(s,s+i).toUpperCase())==n.substring(a,a+i).toUpperCase():(t=t.substring(s,s+i))==n.substring(a,i)),new G([C.outputOf(new Map([[sr.EVENT_RESULT_NAME,o]]))])}}class ss extends ei{static #e=(()=>{this.PARAMETER_STRING_NAME="string"})();static #t=(()=>{this.PARAMETER_AT_START_NAME="startPosition"})();static #r=(()=>{this.PARAMETER_AT_LENGTH_NAME="lengthPosition"})();static #s=(()=>{this.PARAMETER_REPLACE_STRING_NAME="replaceString"})();static #n=(()=>{this.EVENT_RESULT_NAME="result"})();static #a=(()=>{this.PARAMETER_STRING=new I(ss.PARAMETER_STRING_NAME,O.ofString(ss.PARAMETER_STRING_NAME))})();static #i=(()=>{this.PARAMETER_AT_START=new I(ss.PARAMETER_AT_START_NAME,O.ofInteger(ss.PARAMETER_AT_START_NAME))})();static #o=(()=>{this.PARAMETER_AT_LENGTH=new I(ss.PARAMETER_AT_LENGTH_NAME,O.ofInteger(ss.PARAMETER_AT_LENGTH_NAME))})();static #E=(()=>{this.PARAMETER_REPLACE_STRING=new I(ss.PARAMETER_REPLACE_STRING_NAME,O.ofString(ss.PARAMETER_REPLACE_STRING_NAME))})();static #u=(()=>{this.EVENT_STRING=new V(V.OUTPUT,new Map([[ss.EVENT_RESULT_NAME,O.ofString(ss.EVENT_RESULT_NAME)]]))})();constructor(){super(),this.signature=new D("ReplaceAtGivenPosition").setNamespace(E.STRING).setParameters(new Map([[ss.PARAMETER_STRING.getParameterName(),ss.PARAMETER_STRING],[ss.PARAMETER_AT_START.getParameterName(),ss.PARAMETER_AT_START],[ss.PARAMETER_AT_LENGTH.getParameterName(),ss.PARAMETER_AT_LENGTH],[ss.PARAMETER_REPLACE_STRING.getParameterName(),ss.PARAMETER_REPLACE_STRING]])).setEvents(new Map([[ss.EVENT_STRING.getName(),ss.EVENT_STRING]]))}getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(ss.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(ss.PARAMETER_AT_START_NAME),s=e?.getArguments()?.get(ss.PARAMETER_AT_LENGTH_NAME);return e?.getArguments()?.get(ss.PARAMETER_REPLACE_STRING_NAME),t.length,r<s&&(t.substring(0,r),t.substring(r+s)),new G([C.outputOf(new Map([[ss.EVENT_RESULT_NAME,t]]))])}}class sn extends ei{constructor(){super(),this.VALUE="value",this.SIGNATURE=new D("Reverse").setNamespace(E.STRING).setParameters(new Map([[this.VALUE,new I(this.VALUE,O.ofString(this.VALUE)).setVariableArgument(!1)]])).setEvents(new Map([V.outputEventMapEntry(new Map([[this.VALUE,new O().setType(g.of(r.STRING)).setName(this.VALUE)]]))]))}getSignature(){return this.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(this.VALUE),r=t.length-1,s="";for(;r>=0;)s+=t.charAt(r--);return new G([C.outputOf(U.of(this.VALUE,s))])}}class sa extends ei{getSignature(){return new D("Split").setNamespace(E.STRING).setParameters(new Map([[this.PARAMETER_STRING_NAME,this.PARAMETER_STRING],[this.PARAMETER_SPLIT_STRING_NAME,this.PARAMETER_SPLIT_STRING]])).setEvents(new Map([V.outputEventMapEntry(new Map([[this.EVENT_RESULT_NAME,O.ofArray(this.EVENT_RESULT_NAME)]]))]))}constructor(){super(),this.PARAMETER_STRING_NAME="string",this.PARAMETER_SPLIT_STRING_NAME="searchString",this.EVENT_RESULT_NAME="result",this.PARAMETER_STRING=new I(this.PARAMETER_STRING_NAME,O.ofString(this.PARAMETER_STRING_NAME)),this.PARAMETER_SPLIT_STRING=new I(this.PARAMETER_SPLIT_STRING_NAME,O.ofString(this.PARAMETER_SPLIT_STRING_NAME)),this.EVENT_ARRAY=new V(V.OUTPUT,U.of(this.EVENT_RESULT_NAME,O.ofArray(this.EVENT_RESULT_NAME)))}async internalExecute(e){let t=e.getArguments()?.get(this.PARAMETER_STRING_NAME),r=e.getArguments()?.get(this.PARAMETER_SPLIT_STRING_NAME);return new G([C.outputOf(U.of(this.EVENT_RESULT_NAME,t.split(r)))])}}class si extends ei{getSignature(){return new D("ToString").setNamespace(E.STRING).setParameters(new Map([[this.PARAMETER_INPUT_ANYTYPE.getParameterName(),this.PARAMETER_INPUT_ANYTYPE]])).setEvents(new Map([[this.EVENT_STRING.getName(),this.EVENT_STRING]]))}constructor(){super(),this.PARAMETER_INPUT_ANYTYPE_NAME="anytype",this.EVENT_RESULT_NAME="result",this.PARAMETER_INPUT_ANYTYPE=new I(this.PARAMETER_INPUT_ANYTYPE_NAME,O.ofAny(this.PARAMETER_INPUT_ANYTYPE_NAME)),this.EVENT_STRING=new V(V.OUTPUT,new Map([[this.EVENT_RESULT_NAME,O.ofString(this.EVENT_RESULT_NAME)]]))}async internalExecute(e){let t=e.getArguments()?.get(this.PARAMETER_INPUT_ANYTYPE_NAME),r="";return r="object"==typeof t?JSON.stringify(t,void 0,2):""+t,new G([C.outputOf(new Map([[this.EVENT_RESULT_NAME,r]]))])}}class so extends ei{static #e=(()=>{this.PARAMETER_STRING_NAME="string"})();static #t=(()=>{this.PARAMETER_LENGTH_NAME="length"})();static #r=(()=>{this.EVENT_RESULT_NAME="result"})();static #s=(()=>{this.PARAMETER_STRING=new I(so.PARAMETER_STRING_NAME,O.ofString(so.PARAMETER_STRING_NAME))})();static #n=(()=>{this.PARAMETER_LENGTH=new I(so.PARAMETER_LENGTH_NAME,O.ofInteger(so.PARAMETER_LENGTH_NAME))})();static #a=(()=>{this.EVENT_STRING=new V(V.OUTPUT,new Map([[so.EVENT_RESULT_NAME,O.ofString(so.EVENT_RESULT_NAME)]]))})();getSignature(){return this.signature}constructor(){super(),this.signature=new D("TrimTo").setNamespace(E.STRING).setParameters(new Map([[so.PARAMETER_STRING.getParameterName(),so.PARAMETER_STRING],[so.PARAMETER_LENGTH.getParameterName(),so.PARAMETER_LENGTH]])).setEvents(new Map([[so.EVENT_STRING.getName(),so.EVENT_STRING]]))}async internalExecute(e){let t=e.getArguments()?.get(so.PARAMETER_STRING_NAME),r=e.getArguments()?.get(so.PARAMETER_LENGTH_NAME);return new G([C.of(so.EVENT_RESULT_NAME,new Map([[so.EVENT_RESULT_NAME,t.substring(0,r)]]))])}}class sE{static #e=(()=>{this.repoMap=U.ofArrayEntries(r6.ofEntryString("Trim",e=>e.trim()),r6.ofEntryString("LowerCase",e=>e.toLocaleLowerCase()),r6.ofEntryString("UpperCase",e=>e.toUpperCase()),r6.ofEntryStringBooleanOutput("IsBlank",e=>""===e.trim()),r6.ofEntryStringBooleanOutput("IsEmpty",e=>""===e),r6.ofEntryAsStringBooleanOutput("Contains",(e,t)=>-1!=e.indexOf(t)),r6.ofEntryAsStringBooleanOutput("EndsWith",(e,t)=>e.endsWith(t)),r6.ofEntryAsStringBooleanOutput("EqualsIgnoreCase",(e,t)=>e.toUpperCase()==t.toUpperCase()),r6.ofEntryAsStringBooleanOutput("Matches",(e,t)=>new RegExp(t).test(e)),r6.ofEntryAsStringIntegerOutput("IndexOf",(e,t)=>e.indexOf(t)),r6.ofEntryAsStringIntegerOutput("LastIndexOf",(e,t)=>e.lastIndexOf(t)),r6.ofEntryAsStringAndIntegerStringOutput("Repeat",(e,t)=>e.repeat(t)),r6.ofEntryAsStringStringIntegerIntegerOutput("IndexOfWithStartPoint",(e,t,r)=>e.indexOf(t,r)),r6.ofEntryAsStringStringIntegerIntegerOutput("LastIndexOfWithStartPoint",(e,t,r)=>e.lastIndexOf(t,r)),r6.ofEntryAsStringStringStringStringOutput("Replace",(e,t,r)=>e),r6.ofEntryAsStringStringStringStringOutput("ReplaceFirst",(e,t,r)=>e.replace(t,r)),r6.ofEntryAsStringIntegerIntegerStringOutput("SubString",(e,t,r)=>e.substring(t,r)),L(new r9),L(new r8),L(new r3),L(new se),L(new st),L(new sr),L(new ss),L(new sn),L(new sa),L(new si),L(new so))})();static #t=(()=>{this.filterableNames=Array.from(sE.repoMap.values()).map(e=>e.getSignature().getFullName())})();async find(e,t){return e!=E.STRING?Promise.resolve(void 0):Promise.resolve(sE.repoMap.get(t))}async filter(e){return Promise.resolve(sE.filterableNames.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}e({},"HybridRepository",()=>su);class su{constructor(...e){this.repos=e}async find(e,t){for(let r of this.repos){let s=await r.find(e,t);if(s)return s}}async filter(e){let t=new Set;for(let r of this.repos)(await r.filter(e)).forEach(e=>t.add(e));return Array.from(t)}}let sA=new Map([[E.SYSTEM_CTX,new Map([L(new class extends ei{getSignature(){return e6}async internalExecute(e){let t=e?.getArguments()?.get(e7);if(e?.getContext()?.has(t))throw new $(F.format("Context already has an element for '$' ",t));let r=O.from(e?.getArguments()?.get(e4));if(!r)throw new $("Schema is not supplied.");return e.getContext().set(t,new e5(r,u(r.getDefaultValue())?void 0:r.getDefaultValue())),new G([C.outputOf(new Map)])}}),L(new class extends ei{getSignature(){return e3}async internalExecute(e){let t=e?.getArguments()?.get(e9);if(!e.getContext()?.has(t))throw new $(F.format("Context don't have an element for '$' ",t));return new G([C.outputOf(new Map([e8,e.getContext()?.get(t)?.getElement()]))])}}),L(new class extends ei{getSignature(){return rs}async internalExecute(e){let t=e?.getArguments()?.get(rt);if(H.isNullOrBlank(t))throw new $("Empty string is not a valid name for the context element");let r=e?.getArguments()?.get(rr),s=new eW(t),n=s.getTokens().peekLast();if(!n.getExpression().startsWith("Context")||n instanceof eW||n instanceof ej&&!n.getElement().toString().startsWith("Context"))throw new ec(F.format("The context path $ is not a valid path in context",t));for(let e of s.getOperations().toArray())if(e!=eX.ARRAY_OPERATOR&&e!=eX.OBJECT_OPERATOR)throw new ec(F.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 eW&&s.getTokens().set(r,new ej(t,new re(n).evaluate(e.getValuesMap())))}return this.modifyContext(e,t,r,s)}modifyContext(e,t,r,s){let n=s.getTokens();n.removeLast();let a=s.getOperations();a.removeLast();let i=e.getContext()?.get(n.removeLast().getExpression());if(u(i))throw new $(F.format("Context doesn't have any element with name '$' ",t));if(a.isEmpty())return i.setElement(r),new G([C.outputOf(new Map)]);let o=i.getElement(),E=a.removeLast(),A=n.removeLast(),l=A instanceof ej?A.getElement():A.getExpression();for(u(o)&&(o=E==eX.OBJECT_OPERATOR?{}:[],i.setElement(o));!a.isEmpty();)o=E==eX.OBJECT_OPERATOR?this.getDataFromObject(o,l,a.peekLast()):this.getDataFromArray(o,l,a.peekLast()),E=a.removeLast(),l=(A=n.removeLast())instanceof ej?A.getElement():A.getExpression();return E==eX.OBJECT_OPERATOR?this.putDataInObject(o,l,r):this.putDataInArray(o,l,r),new G([C.outputOf(new Map)])}getDataFromArray(e,t,r){if(!Array.isArray(e))throw new $(F.format("Expected an array but found $",e));let s=parseInt(t);if(isNaN(s))throw new $(F.format("Expected an array index but found $",t));if(s<0)throw new $(F.format("Array index is out of bound - $",t));let n=e[s];return u(n)&&(n=r==eX.OBJECT_OPERATOR?{}:[],e[s]=n),n}getDataFromObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new $(F.format("Expected an object but found $",e));let s=e[t];return u(s)&&(s=r==eX.OBJECT_OPERATOR?{}:[],e[t]=s),s}putDataInArray(e,t,r){if(!Array.isArray(e))throw new $(F.format("Expected an array but found $",e));let s=parseInt(t);if(isNaN(s))throw new $(F.format("Expected an array index but found $",t));if(s<0)throw new $(F.format("Array index is out of bound - $",t));e[s]=r}putDataInObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new $(F.format("Expected an object but found $",e));e[t]=r}})])],[E.SYSTEM_LOOP,new Map([L(new class extends ei{getSignature(){return rO}async internalExecute(e){let t=e.getArguments()?.get(rN),r=e.getArguments()?.get("to"),s=e.getArguments()?.get(r_),n=s>0,a=t,i=!1,o=e.getStatementExecution()?.getStatement()?.getStatementName();return new G({next(){if(i)return;if(n&&a>=r||!n&&a<=r||o&&e.getExecutionContext()?.get(o))return i=!0,o&&e.getExecutionContext()?.delete(o),C.outputOf(new Map([[rS,a]]));let t=C.of(V.ITERATION,new Map([[rM,a]]));return a+=s,t}})}}),L(new class extends ei{getSignature(){return rg}async internalExecute(e){let t=e.getArguments()?.get(rl),r=0,s=e.getStatementExecution()?.getStatement()?.getStatementName();return new G({next(){if(r>=t||s&&e.getExecutionContext()?.get(s))return s&&e.getExecutionContext()?.delete(s),C.outputOf(new Map([[rc,r]]));let n=C.of(V.ITERATION,new Map([[rh,r]]));return++r,n}})}}),L(new class extends ei{getSignature(){return rA}async internalExecute(e){let t=e.getArguments()?.get(ru);return e.getExecutionContext().set(t,!0),new G([C.outputOf(new Map)])}}),L(new class extends ei{getSignature(){return rf}async internalExecute(e){let t=e.getArguments()?.get(rp),r=0,s=e.getStatementExecution()?.getStatement()?.getStatementName();return new G({next(){if(r>=t.length||s&&e.getExecutionContext()?.get(s))return s&&e.getExecutionContext()?.delete(s),C.outputOf(new Map([[rm,r]]));let n=C.of(V.ITERATION,new Map([[rT,r],[rR,t[r]]]));return++r,n}})}})])],[E.SYSTEM,new Map([L(new rE),L(new class extends ei{getSignature(){return ro}async internalExecute(e){let t=e.getEvents(),r=e.getArguments(),s=r?.get(ra),n=e?.getArguments()?.get(ri).map(t=>{let r=t[rn];if(u(r))throw new $("Expect a value object");let s=r.value;return r.isExpression&&(s=new re(s).evaluate(e.getValuesMap())),[t.name,s]}).reduce((e,t)=>(e.set(t[0],t[1]),e),new Map);return t?.has(s)||t?.set(s,[]),t?.get(s)?.push(n),new G([C.outputOf(new Map)])}}),L(new r4)])]]),sl=Array.from(sA.values()).flatMap(e=>Array.from(e.values())).map(e=>e.getSignature().getFullName());class sc extends su{constructor(){super({find:async(e,t)=>sA.get(e)?.get(t),filter:async e=>Array.from(sl).filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase()))},new rH,new sE,new e2,new r7)}}e({},"StatementExecution",()=>sg),e({},"StatementMessage",()=>sh);class sh{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 sg{constructor(e){this.messages=[],this.dependencies=new Set,this.statement=e}getStatement(){return this.statement}setStatement(e){return this.statement=e,this}getMessages(){return this.messages}setMessages(e){return this.messages=e,this}getDependencies(){return this.dependencies}setDependencies(e){return this.dependencies=e,this}getUniqueKey(){return this.statement.getStatementName()}addMessage(e,t){this.messages.push(new sh(e,t))}addDependency(e){this.dependencies.add(e)}getDepenedencies(){return this.dependencies}equals(e){return e instanceof sg&&e.statement.equals(this.statement)}}e({},"ContextTokenValueExtractor",()=>sp);class sp extends eq{static #e=(()=>{this.PREFIX="Context."})();constructor(e){super(),this.context=e}getValueInternal(e){let t=e.split(eq.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 sp.PREFIX}}e({},"OutputMapTokenValueExtractor",()=>sR);class sR extends eq{static #e=(()=>{this.PREFIX="Steps."})();constructor(e){super(),this.output=e}getValueInternal(e){let t=e.split(eq.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;if(r===t.length)return n;let a=t[r].indexOf("[");if(-1===a){let s=n.get(t[r++]);return this.retrieveElementFrom(e,t,r,s)}let i=t[r].substring(0,a),o=n.get(i);return this.retrieveElementFrom(e,t,r,{[i]:o})}getPrefix(){return sR.PREFIX}}e({},"ArgumentsTokenValueExtractor",()=>sT);class sT extends eq{static #e=(()=>{this.PREFIX="Arguments."})();constructor(e){super(),this.args=e}getValueInternal(e){let t=e.split(eq.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 sT.PREFIX}}e({},"GraphVertex",()=>sf),e({},"ExecutionGraph",()=>sm);class sm{constructor(e=!1){this.nodeMap=new Map,this.isSubGrph=e}getVerticesData(){return Array.from(this.nodeMap.values()).map(e=>e.getData())}addVertex(e){if(!this.nodeMap.has(e.getUniqueKey())){let t=new sf(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 B(this.getVerticesWithNoIncomingEdges()),r=new Set;for(;!t.isEmpty();){if(r.has(t.getFirst().getKey()))return!0;e=t.removeFirst(),r.add(e.getKey()),e.hasOutgoingEdges()&&t.addAll(Array.from(e.getOutVertices().values()).flatMap(e=>Array.from(e)))}return!1}addVertices(e){for(let t of e)this.addVertex(t)}getNodeMap(){return this.nodeMap}isSubGraph(){return this.isSubGrph}toString(){return"Execution Graph : \n"+Array.from(this.nodeMap.values()).map(e=>e.toString()).join("\n")}}class sf{constructor(e,t){this.outVertices=new Map,this.inVertices=new Set,this.data=t,this.graph=e}getData(){return this.data}setData(e){return this.data=e,this}getOutVertices(){return this.outVertices}setOutVertices(e){return this.outVertices=e,this}getInVertices(){return this.inVertices}setInVertices(e){return this.inVertices=e,this}getGraph(){return this.graph}setGraph(e){return this.graph=e,this}getKey(){return this.data.getUniqueKey()}addOutEdgeTo(e,t){return this.outVertices.has(e)||this.outVertices.set(e,new Set),this.outVertices.get(e).add(t),t.inVertices.add(new X(this,e)),t}addInEdgeTo(e,t){return this.inVertices.add(new X(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 sm(!0);var r=new B(Array.from(this.outVertices.get(e)??[]));for(r.map(e=>e.getData()).forEach(e=>t.addVertex(e));!r.isEmpty();)Array.from(r.pop().outVertices.values()).flatMap(e=>Array.from(e)).forEach(e=>{t.addVertex(e.getData()),r.add(e)});return t}toString(){var e=Array.from(this.getInVertices()).map(e=>e.getT1().getKey()+"("+e.getT2()+")").join(", "),t=Array.from(this.outVertices.entries()).map(([e,t])=>e+": "+Array.from(t).map(e=>e.getKey()).join(",")).join("\n ");return this.getKey()+":\n In: "+e+"\n Out: \n "+t}}e({},"KIRuntime",()=>sM),e({},"JsonExpression",()=>sN);class sN{constructor(e){this.expression=e}getExpression(){return this.expression}}function s_(){var e=new Date().getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var r=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"==t?r:3&r|8).toString(16)})}e({},"ParameterReferenceType",()=>a),function(e){e.VALUE="VALUE",e.EXPRESSION="EXPRESSION"}(a||(a={})),e({},"FunctionExecutionParameters",()=>sS);class sS{constructor(e,t,r){this.count=0,this.executionContext=new Map,this.valueExtractors=new Map,this.functionRepository=e,this.schemaRepository=t,this.executionId=r??s_()}getExecutionId(){return this.executionId}getContext(){return this.context}setContext(e){this.context=e;let t=new sp(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 sR(e);return this.valueExtractors.set(t.getPrefix(),t),this}getCount(){return this.count}setCount(e){return this.count=e,this}getValuesMap(){return this.valueExtractors}getFunctionRepository(){return this.functionRepository}setFunctionRepository(e){return this.functionRepository=e,this}getSchemaRepository(){return this.schemaRepository}setSchemaRepository(e){return this.schemaRepository=e,this}addTokenValueExtractor(...e){for(let t of e)this.valueExtractors.set(t.getPrefix(),t);return this}setValuesMap(e){for(let[t,r]of e.entries())this.valueExtractors.set(t,r);return this}setExecutionContext(e){return this.executionContext=e,this}getExecutionContext(){return this.executionContext}}e({},"StatementMessageType",()=>i),function(e){e.ERROR="ERROR",e.WARNING="WARNING",e.MESSAGE="MESSAGE"}(i||(i={}));class sM extends ei{static #e=(()=>{this.PARAMETER_NEEDS_A_VALUE='Parameter "$" needs a value'})();static #t=(()=>{this.STEP_REGEX_PATTERN=RegExp("Steps\\.([a-zA-Z0-9\\\\-]{1,})\\.([a-zA-Z0-9\\\\-]{1,})","g")})();static #r=(()=>{this.VERSION=1})();static #s=(()=>{this.MAX_EXECUTION_ITERATIONS=1e7})();constructor(e,t=!1){if(super(),this.debugMode=!1,this.debugMode=t,this.fd=e,this.fd.getVersion()>sM.VERSION)throw new $("Runtime is at a lower version "+sM.VERSION+" and trying to run code from version "+this.fd.getVersion()+".")}getSignature(){return this.fd}async getExecutionPlan(e,t){let r=new sm;for(let s of Array.from(this.fd.getSteps().values()))r.addVertex(await this.prepareStatementExecution(s,e,t));return Array.from(this.makeEdges(r).getT2().entries()).forEach(e=>{let t=r.getNodeMap().get(e[0])?.getData();t&&t.addMessage(i.ERROR,e[1])}),r}async internalExecute(e){e.getContext()||e.setContext(new Map),e.getEvents()||e.setEvents(new Map),e.getSteps()||e.setSteps(new Map),e.getArguments()&&e.addTokenValueExtractor(new sT(e.getArguments())),this.debugMode&&(console.log(`EID: ${e.getExecutionId()} Executing: ${this.fd.getNamespace()}.${this.fd.getName()}`),console.log(`EID: ${e.getExecutionId()} Parameters: `,e));let t=await this.getExecutionPlan(e.getFunctionRepository(),e.getSchemaRepository());this.debugMode&&console.log(`EID: ${e.getExecutionId()} ${t?.toString()}`);let r=t.getVerticesData().filter(e=>e.getMessages().length).map(e=>e.getStatement().getStatementName()+": \n"+e.getMessages().join(","));if(r?.length)throw new $("Please fix the errors in the function definition before execution : \n"+r.join(",\n"));return await this.executeGraph(t,e)}async executeGraph(e,t){let r=new B;r.addAll(e.getVerticesWithNoIncomingEdges());let s=new B;for(;(!r.isEmpty()||!s.isEmpty())&&!t.getEvents()?.has(V.OUTPUT);)if(await this.processBranchQue(t,r,s),await this.processExecutionQue(t,r,s),t.setCount(t.getCount()+1),t.getCount()==sM.MAX_EXECUTION_ITERATIONS)throw new $("Execution locked in an infinite loop");if(!e.isSubGraph()&&!t.getEvents()?.size){let e=this.getSignature().getEvents();if(e.size&&e.get(V.OUTPUT)?.getParameters()?.size)throw new $("No events raised")}let n=Array.from(t.getEvents()?.entries()??[]).flatMap(e=>e[1].map(t=>C.of(e[0],t)));return new G(n.length||e.isSubGraph()?n:[C.of(V.OUTPUT,new Map)])}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())&&(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)){let t=n.getData().getStatement();console.log(`EID: ${e.getExecutionId()} Step : ${t.getStatementName()} => ${t.getNamespace()}.${t.getName()}`),console.log(`EID: ${e.getExecutionId()} Event : ${s.getName()} : `,e.getSteps().get(t.getStatementName()).get(s.getName()))}while(s&&s.getName()!=V.OUTPUT)s?.getName()==V.OUTPUT&&n.getOutVertices().has(V.OUTPUT)&&(n?.getOutVertices()?.get(V.OUTPUT)??[]).forEach(async r=>{await this.allDependenciesResolvedVertex(r,e.getSteps())&&t.add(r)})}async executeVertex(e,t,r,s,n){let a,i=e.getData().getStatement();if(i.getExecuteIftrue().size){let e=(Array.from(i.getExecuteIftrue().entries())??[]).filter(e=>e[1]).map(([e])=>{let r=new re(e).evaluate(t.getValuesMap());return r}).every(e=>!u(e)&&!1!==e);if(!e)return}let o=await n.find(i.getNamespace(),i.getName());if(!o)throw new $(F.format("$.$ function is not found.",i.getNamespace(),i.getName()));let E=o?.getSignature().getParameters(),A=this.getArgumentsFromParametersMap(t,i,E??new Map);this.debugMode&&(console.log(`EID: ${t.getExecutionId()} Step : ${i.getStatementName()} => ${i.getNamespace()}.${i.getName()}`),console.log(`EID: ${t.getExecutionId()} Arguments : `,A));let l=t.getContext();a=o instanceof sM?new sS(t.getFunctionRepository(),t.getSchemaRepository(),`${t.getExecutionId()}_${i.getStatementName()}`).setArguments(A).setValuesMap(new Map(Array.from(t.getValuesMap().values()).filter(e=>e.getPrefix()!==sT.PREFIX&&e.getPrefix()!==sR.PREFIX&&e.getPrefix()!==sp.PREFIX).map(e=>[e.getPrefix(),e]))):new sS(t.getFunctionRepository(),t.getSchemaRepository(),t.getExecutionId()).setValuesMap(t.getValuesMap()).setContext(l).setArguments(A).setEvents(t.getEvents()).setSteps(t.getSteps()).setStatementExecution(e.getData()).setCount(t.getCount()).setExecutionContext(t.getExecutionContext());let c=await o.execute(a),h=c.next();if(!h)throw new $(F.format("Executing $ returned no events",i.getStatementName()));let g=h.getName()==V.OUTPUT;if(t.getSteps()?.has(i.getStatementName())||t.getSteps().set(i.getStatementName(),new Map),t.getSteps().get(i.getStatementName()).set(h.getName(),this.resolveInternalExpressions(h.getResult(),t)),this.debugMode&&(console.log(`EID: ${t.getExecutionId()} Step : ${i.getStatementName()} => ${i.getNamespace()}.${i.getName()}`),console.log(`EID: ${t.getExecutionId()} Event : ${h.getName()} : `,t.getSteps().get(i.getStatementName()).get(h.getName()))),g){let r=e.getOutVertices().get(V.OUTPUT);r&&r.forEach(async e=>{await this.allDependenciesResolvedVertex(e,t.getSteps())&&s.add(e)})}else{let t=e.getSubGraphOfType(h.getName()),s=this.makeEdges(t).getT1();r.push(new q(t,s,c,e))}}resolveInternalExpressions(e,t){return e?Array.from(e.entries()).map(e=>new X(e[0],this.resolveInternalExpression(e[1],t))).reduce((e,t)=>(e.set(t.getT1(),t.getT2()),e),new Map):e}resolveInternalExpression(e,t){if(u(e)||"object"!=typeof e)return e;if(e instanceof sN)return new re(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())||!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 X(t[0],s);let a=r.get(t[0]);return a?(s=a.isVariableArgument()?n.sort((e,t)=>(e.getOrder()??0)-(t.getOrder()??0)).filter(e=>!u(e)).map(t=>this.parameterReferenceEvaluation(e,t)).flatMap(e=>Array.isArray(e)?e:[e]):this.parameterReferenceEvaluation(e,n[0]),new X(t[0],s)):new X(t[0],void 0)}).filter(e=>!u(e.getT2())).reduce((e,t)=>(e.set(t.getT1(),t.getT2()),e),new Map)}parameterReferenceEvaluation(e,t){let r;return t.getType()==a.VALUE?r=this.resolveInternalExpression(t.getValue(),e):t.getType()!=a.EXPRESSION||H.isNullOrBlank(t.getExpression())||(r=new re(t.getExpression()??"").evaluate(e.getValuesMap())),r}async prepareStatementExecution(e,t,r){let s=new sg(e),n=await t.find(e.getNamespace(),e.getName());if(!n)return s.addMessage(i.ERROR,F.format("$.$ is not available",e.getNamespace(),e.getName())),Promise.resolve(s);let a=new Map(n.getSignature().getParameters());if(!e.getParameterMap())return Promise.resolve(s);for(let t of Array.from(e.getParameterMap().entries())){let e=a.get(t[0]);if(!e)continue;let n=Array.from(t[1]?.values()??[]);if(!n.length&&!e.isVariableArgument()){await z.hasDefaultValueOrNullSchemaType(e.getSchema(),r)||s.addMessage(i.ERROR,F.format(sM.PARAMETER_NEEDS_A_VALUE,e.getParameterName())),a.delete(e.getParameterName());continue}if(e.isVariableArgument())for(let t of(n.sort((e,t)=>(e.getOrder()??0)-(t.getOrder()??0)),n))this.parameterReferenceValidation(s,e,t,r);else if(n.length){let t=n[0];this.parameterReferenceValidation(s,e,t,r)}a.delete(e.getParameterName())}if(!u(s.getStatement().getDependentStatements()))for(let e of s.getStatement().getDependentStatements().entries())e[1]&&s.addDependency(e[0]);if(!u(s.getStatement().getExecuteIftrue()))for(let e of s.getStatement().getExecuteIftrue().entries())e[1]&&this.addDependencies(s,e[0]);if(a.size)for(let e of Array.from(a.values()))e.isVariableArgument()||await z.hasDefaultValueOrNullSchemaType(e.getSchema(),r)||s.addMessage(i.ERROR,F.format(sM.PARAMETER_NEEDS_A_VALUE,e.getParameterName()));return Promise.resolve(s)}async parameterReferenceValidation(e,t,s,n){if(s){if(s.getType()==a.VALUE){if(u(s.getValue())&&!await z.hasDefaultValueOrNullSchemaType(t.getSchema(),n)&&e.addMessage(i.ERROR,F.format(sM.PARAMETER_NEEDS_A_VALUE,t.getParameterName())),u(s.getValue()))return;let a=new B;for(a.push(new X(t.getSchema(),s.getValue()));!a.isEmpty();){let t=a.pop();if(t.getT2() instanceof sN)this.addDependencies(e,t.getT2().getExpression());else{if(u(t.getT1())||u(t.getT1().getType()))continue;if(t.getT1().getType()?.contains(r.ARRAY)&&Array.isArray(t.getT2())){let e=t.getT1().getItems();if(!e)continue;if(e.isSingleType())for(let r of t.getT2())a.push(new X(e.getSingleSchema(),r));else{let r=t.getT2();for(let t=0;t<r.length;t++)a.push(new X(e.getTupleSchema()[t],r[t]))}}else if(t.getT1().getType()?.contains(r.OBJECT)&&"object"==typeof t.getT2()){let r=t.getT1();if(r.getName()===I.EXPRESSION.getName()&&r.getNamespace()===I.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 X(r.getProperties().get(e[0]),e[1]))}}}}else if(s.getType()==a.EXPRESSION){if(H.isNullOrBlank(s.getExpression()))u(z.getDefaultValue(t.getSchema(),n))&&e.addMessage(i.ERROR,F.format(sM.PARAMETER_NEEDS_A_VALUE,t.getParameterName()));else try{this.addDependencies(e,s.getExpression())}catch(t){e.addMessage(i.ERROR,F.format("Error evaluating $ : $",s.getExpression(),t))}}}else u(await z.getDefaultValue(t.getSchema(),n))&&e.addMessage(i.ERROR,F.format(sM.PARAMETER_NEEDS_A_VALUE,t.getParameterName()))}addDependencies(e,t){t&&Array.from(t.match(sM.STEP_REGEX_PATTERN)??[]).forEach(t=>e.addDependency(t))}makeEdges(e){let t=e.getNodeMap().values(),r=[],s=new Map;for(let n of Array.from(t))for(let t of n.getData().getDependencies()){let a=t.indexOf(".",6),i=t.substring(6,a),o=t.indexOf(".",a+1),E=-1==o?t.substring(a+1):t.substring(a+1,o);e.getNodeMap().has(i)?n.addInEdgeTo(e.getNodeMap().get(i),E):(r.push(new X(i,E)),s.set(n.getData().getStatement().getStatementName(),F.format("Unable to find the step with name $",i)))}return new X(r,s)}}e({},"KIRunConstants",()=>sO);class sO{static #e=(()=>{this.NAMESPACE="namespace"})();static #t=(()=>{this.NAME="name"})();static #r=(()=>{this.ID="id"})();constructor(){}}e({},"Position",()=>sd);class sd{static #e=(()=>{this.SCHEMA_NAME="Position"})();static #t=(()=>{this.SCHEMA=new O().setNamespace(E.SYSTEM).setName(sd.SCHEMA_NAME).setType(g.of(r.OBJECT)).setProperties(new Map([["left",O.ofFloat("left")],["top",O.ofFloat("top")]]))})();constructor(e,t){this.left=e,this.top=t}getLeft(){return this.left}setLeft(e){return this.left=e,this}getTop(){return this.top}setTop(e){return this.top=e,this}static from(e){if(e)return new sd(e.left,e.top)}}e({},"FunctionDefinition",()=>sL),e({},"Statement",()=>sP),e({},"AbstractStatement",()=>sw);class sw{constructor(e){if(this.override=!1,!e)return;this.comment=e.comment,this.description=e.description,this.position=e.position?new sd(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",()=>sI);class sI{static #e=(()=>{this.SCHEMA_NAME="ParameterReference"})();static #t=(()=>{this.SCHEMA=new O().setNamespace(E.SYSTEM).setName(sI.SCHEMA_NAME).setType(g.of(r.OBJECT)).setProperties(new Map([["key",O.ofString("key")],["value",O.ofAny("value")],["expression",O.ofString("expression")],["type",O.ofString("type").setEnums(["EXPRESSION","VALUE"])],["order",O.ofInteger("order")]]))})();constructor(e){e instanceof sI?(this.key=e.key,this.type=e.type,this.value=u(e.value)?void 0:JSON.parse(JSON.stringify(e.value)),this.expression=e.expression,this.order=e.order):(this.type=e,this.key=s_())}getType(){return this.type}setType(e){return this.type=e,this}getKey(){return this.key}setKey(e){return this.key=e,this}getValue(){return this.value}setValue(e){return this.value=e,this}getExpression(){return this.expression}setExpression(e){return this.expression=e,this}setOrder(e){return this.order=e,this}getOrder(){return this.order}static ofExpression(e){let t=new sI(a.EXPRESSION).setExpression(e);return[t.getKey(),t]}static ofValue(e){let t=new sI(a.VALUE).setValue(e);return[t.getKey(),t]}static from(e){return new sI(e.type).setValue(e.value).setExpression(e.expression).setKey(e.key).setOrder(e.order)}}class sP extends sw{static #e=(()=>{this.SCHEMA_NAME="Statement"})();static #t=(()=>{this.SCHEMA=new O().setNamespace(E.SYSTEM).setName(sP.SCHEMA_NAME).setType(g.of(r.OBJECT)).setProperties(new Map([["statementName",O.ofString("statementName")],["comment",O.ofString("comment")],["description",O.ofString("description")],["namespace",O.ofString("namespace")],["name",O.ofString("name")],["dependentStatements",O.ofObject("dependentstatement").setAdditionalProperties(new M().setSchemaValue(O.ofBoolean("exists"))).setDefaultValue({})],["executeIftrue",O.ofObject("executeIftrue").setAdditionalProperties(new M().setSchemaValue(O.ofBoolean("exists"))).setDefaultValue({})],["parameterMap",new O().setName("parameterMap").setAdditionalProperties(new M().setSchemaValue(O.ofObject("parameterReference").setAdditionalProperties(new M().setSchemaValue(sI.SCHEMA))))],["position",sd.SCHEMA]]))})();constructor(e,t,r){if(super(e instanceof sP?e:void 0),e instanceof sP)this.statementName=e.statementName,this.name=e.name,this.namespace=e.namespace,e.parameterMap&&(this.parameterMap=new Map(Array.from(e.parameterMap.entries()).map(e=>[e[0],new Map(Array.from(e[1].entries()).map(e=>[e[0],new sI(e[1])]))]))),e.dependentStatements&&(this.dependentStatements=new Map(Array.from(e.dependentStatements.entries())));else{if(this.statementName=e,!r||!t)throw Error("Unknown constructor");this.namespace=t,this.name=r}}getStatementName(){return this.statementName}setStatementName(e){return this.statementName=e,this}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getParameterMap(){return this.parameterMap||(this.parameterMap=new Map),this.parameterMap}setParameterMap(e){return this.parameterMap=e,this}getDependentStatements(){return this.dependentStatements??new Map}setDependentStatements(e){return this.dependentStatements=e,this}getExecuteIftrue(){return this.executeIftrue??new Map}setExecuteIftrue(e){return this.executeIftrue=e,this}equals(e){return e instanceof sP&&e.statementName==this.statementName}static ofEntry(e){return[e.statementName,e]}static from(e){return new sP(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])=>sI.from(t)).map(e=>[e.getKey(),e]))]))).setDependentStatements(new Map(Object.entries(e.dependentStatements??{}))).setExecuteIftrue(new Map(Object.entries(e.executeIftrue??{}))).setPosition(sd.from(e.position)).setComment(e.comment).setDescription(e.description)}}e({},"StatementGroup",()=>sy);class sy extends sw{static #e=(()=>{this.SCHEMA_NAME="StatementGroup"})();static #t=(()=>{this.SCHEMA=new O().setNamespace(E.SYSTEM).setName(sy.SCHEMA_NAME).setType(g.of(r.OBJECT)).setProperties(new Map([["statementGroupName",O.ofString("statementGroupName")],["comment",O.ofString("comment")],["description",O.ofString("description")],["position",sd.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 sy(e.statementGroupName,new Map(Object.entries(e.statements||{}).map(([e,t])=>[e,(""+t)?.toLowerCase()=="true"]))).setPosition(sd.from(e.position)).setComment(e.comment).setDescription(e.description)}}let sx=new O().setNamespace(E.SYSTEM).setName("FunctionDefinition").setProperties(new Map([["name",O.ofString("name")],["namespace",O.ofString("namespace")],["parameters",O.ofArray("parameters",I.SCHEMA)],["events",O.ofObject("events").setAdditionalProperties(new M().setSchemaValue(V.SCHEMA))],["steps",O.ofObject("steps").setAdditionalProperties(new M().setSchemaValue(sP.SCHEMA))]]));sx.getProperties()?.set("parts",O.ofArray("parts",sx));class sL extends D{static #e=(()=>{this.SCHEMA=sx})();constructor(e){super(e),this.version=1}getVersion(){return this.version}setVersion(e){return this.version=e,this}getSteps(){return this.steps??new Map}setSteps(e){return this.steps=e,this}getStepGroups(){return this.stepGroups}setStepGroups(e){return this.stepGroups=e,this}getParts(){return this.parts}setParts(e){return this.parts=e,this}static from(e){return e?new sL(e.name).setSteps(new Map(Object.values(e.steps??{}).filter(e=>!!e).map(e=>[e.statementName,sP.from(e)]))).setStepGroups(new Map(Object.values(e.stepGroups??{}).filter(e=>!!e).map(e=>[e.statementGroupName,sy.from(e)]))).setParts(Array.from(e.parts??[]).filter(e=>!!e).map(e=>sL.from(e))).setVersion(e.version??1).setEvents(new Map(Object.values(e.events??{}).filter(e=>!!e).map(e=>[e.name,V.from(e)]))).setParameters(new Map(Object.values(e.parameters??{}).filter(e=>!!e).map(e=>[e.parameterName,I.from(e)]))):new sL("unknown")}}e({},"Argument",()=>sv);class sv{constructor(e,t,r){this.argumentIndex=0,this.argumentIndex=e,this.name=t,this.value=r}getArgumentIndex(){return this.argumentIndex}setArgumentIndex(e){return this.argumentIndex=e,this}getName(){return this.name}setName(e){return this.name=e,this}getValue(){return this.value}setValue(e){return this.value=e,this}static of(e,t){return new sv(0,e,t)}}var sU={};t(sU,tq),t(sU,tQ),t(sU,t0),t(sU,t2),t(sU,tJ);var sb={};t(sb,tn),t(sb,ti),t(sb,tE),t(sb,tA),t(sb,tc),t(sb,tg),t(sb,tR),t(sb,tt),t(sb,tm),t(sb,tN),t(sb,tS),t(sb,tO),t(sb,tw),t(sb,tP),t(sb,tx),t(sb,tv),t(sb,tb),t(sb,tC),t(sb,tG),t(sb,tY),t(sb,tF),t(sb,tH),t(sb,tX),t(sb,te);export{x as KIRunSchemaRepository,sc as KIRunFunctionRepository,eh as PrimitiveUtil,U as MapUtil,b as MapEntry,u as isNullValue,B as LinkedList,eY as StringBuilder,F as StringFormatter,H as StringUtil,X as Tuple2,W as Tuple3,q as Tuple4,ep as ArrayUtil,k as deepEqual,eT as duplicate,sg as StatementExecution,sh as StatementMessage,e5 as ContextElement,sp as ContextTokenValueExtractor,sR as OutputMapTokenValueExtractor,sT as ArgumentsTokenValueExtractor,sf as GraphVertex,sm as ExecutionGraph,sM as KIRuntime,i as StatementMessageType,sS as FunctionExecutionParameters,eW as Expression,eq as TokenValueExtractor,t4 as LiteralTokenValueExtractor,eJ as ObjectValueSetterExtractor,re as ExpressionEvaluator,eX as Operation,eH as ExpressionToken,ek as ExpressionEvaluationException,ej as ExpressionTokenValue,ei as AbstractFunction,E as Namespaces,sN as JsonExpression,M as AdditionalType,O as Schema,et as NumberValidator,Z as BooleanValidator,ee as NullValidator,Q as ArrayValidator,K as AnyOfAllOfOneOfValidator,es as StringValidator,er as ObjectValidator,ea as SchemaValidator,J as SchemaValidationException,d as SchemaReferenceException,en as TypeValidator,A as ArraySchemaType,h as SingleType,g as TypeUtil,c as MultipleType,l as Type,r as SchemaType,z as SchemaUtil,n as StringFormat,su as HybridRepository,sO as KIRunConstants,I as Parameter,G as FunctionOutput,sd as Position,sL as FunctionDefinition,a as ParameterReferenceType,C as EventResult,sw as AbstractStatement,sP as Statement,sy as StatementGroup,D as FunctionSignature,V as Event,s as ParameterType,sv as Argument,sI as ParameterReference,ec as ExecutionException,$ as KIRuntimeException,tK as ArithmeticUnaryMinusOperator,tZ as ArithmeticUnaryPlusOperator,t1 as BitwiseComplementOperator,t5 as LogicalNotOperator,tz as UnaryOperator,ta as ArithmeticAdditionOperator,to as ArithmeticDivisionOperator,tu as ArithmeticIntegerDivisionOperator,tl as ArithmeticModulusOperator,th as ArithmeticMultiplicationOperator,tp as ArithmeticSubtractionOperator,tT as ArrayOperator,tr as BinaryOperator,tf as BitwiseAndOperator,t_ as BitwiseLeftShiftOperator,tM as BitwiseOrOperator,td as BitwiseRightShiftOperator,tI as BitwiseUnsignedRightShiftOperator,ty as BitwiseXorOperator,tL as LogicalAndOperator,tU as LogicalEqualOperator,tV as LogicalGreaterThanEqualOperator,t$ as LogicalGreaterThanOperator,tD as LogicalLessThanEqualOperator,tk as LogicalNotEqualOperator,tB as LogicalLessThanOperator,tj as LogicalOrOperator,tW as ObjectOperator,ts as LogicalNullishCoalescingOperator,t8 as ConditionalTernaryOperator};
2
2
  //# sourceMappingURL=module.js.map