@fincity/kirun-js 1.6.17 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__tests__/engine/function/system/array/AddFirstTest.ts +28 -19
- package/__tests__/engine/function/system/array/ArrayToArrayOfObjectsTest.ts +0 -2
- package/__tests__/engine/function/system/array/BinarySearchTest.ts +5 -20
- package/__tests__/engine/function/system/array/{AddTest.ts → ConcatenateTest.ts} +22 -24
- package/__tests__/engine/function/system/array/CopyTest.ts +1 -1
- package/__tests__/engine/function/system/array/DeleteFirstTest.ts +7 -9
- package/__tests__/engine/function/system/array/DeleteFromTest.ts +4 -12
- package/__tests__/engine/function/system/array/DeleteLastTest.ts +7 -9
- package/__tests__/engine/function/system/array/DeleteTest.ts +7 -9
- package/__tests__/engine/function/system/array/DisjointTest.ts +3 -3
- package/__tests__/engine/function/system/array/FillTest.ts +6 -6
- package/__tests__/engine/function/system/array/FrequencyTest.ts +2 -2
- package/__tests__/engine/function/system/array/IndexOfArrayTest.ts +6 -24
- package/__tests__/engine/function/system/array/IndexOfTest.ts +5 -17
- package/__tests__/engine/function/system/array/InsertTest.ts +5 -15
- package/__tests__/engine/function/system/array/LastIndexOfArrayTest.ts +3 -3
- package/__tests__/engine/function/system/array/LastIndexOfTest.ts +4 -18
- package/__tests__/engine/function/system/array/MaxTest.ts +6 -8
- package/__tests__/engine/function/system/array/MinTest.ts +8 -8
- package/__tests__/engine/function/system/array/MisMatchTest.ts +3 -12
- package/__tests__/engine/function/system/array/ReverseTest.ts +4 -8
- package/__tests__/engine/function/system/array/RotateTest.ts +9 -9
- package/__tests__/engine/function/system/array/SortTest.ts +5 -5
- package/__tests__/engine/function/system/array/SubArrayTest.ts +4 -13
- package/__tests__/engine/function/system/loop/BreakLoopTest.ts +173 -0
- package/__tests__/engine/function/system/loop/RangeLoopTest.ts +145 -0
- package/__tests__/engine/function/system/string/SplitTest.ts +2 -2
- package/__tests__/engine/json/schema/validator/ArraySchemaAdapterTypeTest.ts +0 -1
- package/__tests__/engine/json/schema/validator/NotValidatorTest.ts +47 -0
- package/__tests__/engine/runtime/KIRuntimeNoValuesTest.ts +0 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/module.js +1 -1
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +32 -30
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/engine/function/system/array/AddFirst.ts +8 -7
- package/src/engine/function/system/array/ArrayFunctionRepository.ts +4 -2
- package/src/engine/function/system/array/BinarySearch.ts +1 -1
- package/src/engine/function/system/array/{Add.ts → Concatenate.ts} +8 -6
- package/src/engine/function/system/array/Copy.ts +2 -2
- package/src/engine/function/system/array/Delete.ts +11 -7
- package/src/engine/function/system/array/DeleteFirst.ts +5 -2
- package/src/engine/function/system/array/DeleteFrom.ts +5 -2
- package/src/engine/function/system/array/DeleteLast.ts +5 -2
- package/src/engine/function/system/array/Disjoint.ts +1 -5
- package/src/engine/function/system/array/Fill.ts +6 -2
- package/src/engine/function/system/array/Frequency.ts +2 -5
- package/src/engine/function/system/array/IndexOf.ts +2 -2
- package/src/engine/function/system/array/IndexOfArray.ts +2 -2
- package/src/engine/function/system/array/Insert.ts +9 -3
- package/src/engine/function/system/array/InsertLast.ts +31 -0
- package/src/engine/function/system/array/LastIndexOf.ts +2 -7
- package/src/engine/function/system/array/LastIndexOfArray.ts +2 -6
- package/src/engine/function/system/array/Max.ts +1 -3
- package/src/engine/function/system/array/Min.ts +1 -3
- package/src/engine/function/system/array/MisMatch.ts +1 -1
- package/src/engine/function/system/array/Reverse.ts +6 -2
- package/src/engine/function/system/array/Rotate.ts +10 -3
- package/src/engine/function/system/array/Shuffle.ts +9 -3
- package/src/engine/function/system/array/Sort.ts +4 -3
- package/src/engine/function/system/array/SubArray.ts +1 -1
- package/src/engine/function/system/loop/Break.ts +31 -0
- package/src/engine/function/system/loop/CountLoop.ts +8 -2
- package/src/engine/function/system/loop/ForEachLoop.ts +70 -0
- package/src/engine/function/system/loop/RangeLoop.ts +7 -1
- package/src/engine/json/schema/validator/SchemaValidator.ts +3 -2
- package/src/engine/repository/KIRunFunctionRepository.ts +5 -1
- package/src/engine/runtime/FunctionExecutionParameters.ts +10 -1
- package/src/engine/runtime/KIRuntime.ts +2 -1
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function e(e,t){return Object.keys(t).forEach((function(r){"default"===r||"__esModule"===r||e.hasOwnProperty(r)||Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[r]}})})),e}function t(e,t,r,n){Object.defineProperty(e,t,{get:r,set:n,enumerable:!0,configurable:!0})}var r={};t(r,"KIRunSchemaRepository",(()=>L));var n={};t(n,"AdditionalType",(()=>_)),t(n,"Schema",(()=>S));var s={};t(s,"Namespaces",(()=>a));class a{static SYSTEM="System";static SYSTEM_CTX="System.Context";static SYSTEM_LOOP="System.Loop";static SYSTEM_ARRAY="System.Array";static SYSTEM_OBJECT="System.Object";static MATH="System.Math";static STRING="System.String";constructor(){}}var i={};t(i,"ArraySchemaType",(()=>u));var o={};function E(e){return null==e}t(o,"isNullValue",(()=>E));class u{constructor(e){e&&(this.singleSchema=e.singleSchema?new S(e.singleSchema):void 0,this.tupleSchema=e.tupleSchema?e.tupleSchema.map((e=>new S(e))):void 0)}setSingleSchema(e){return this.singleSchema=e,this}setTupleSchema(e){return this.tupleSchema=e,this}getSingleSchema(){return this.singleSchema}getTupleSchema(){return this.tupleSchema}isSingleType(){return!E(this.singleSchema)}static of(...e){return 1==e.length?(new u).setSingleSchema(e[0]):(new u).setTupleSchema(e)}static from(e){if(!e)return;if(Array.isArray(e))return(new u).setTupleSchema(S.fromListOfSchemas(e));let t=Object.keys(e);if(-1!=t.indexOf("singleSchema"))return(new u).setSingleSchema(S.from(e.singleSchema));if(-1!=t.indexOf("tupleSchema"))return(new u).setTupleSchema(S.fromListOfSchemas(e.tupleSchema));let r=S.from(e);return r?(new u).setSingleSchema(r):void 0}}var A={};let l;var g;t(A,"SchemaType",(()=>l)),(g=l||(l={})).INTEGER="Integer",g.LONG="Long",g.FLOAT="Float",g.DOUBLE="Double",g.STRING="String",g.OBJECT="Object",g.ARRAY="Array",g.BOOLEAN="Boolean",g.NULL="Null";var m={};t(m,"TypeUtil",(()=>f));var R={};t(R,"MultipleType",(()=>c));var p={};t(p,"Type",(()=>T));class T{}class c extends T{constructor(e){super(),this.type=e instanceof c?new Set(Array.from(e.type)):new Set(Array.from(e))}getType(){return this.type}setType(e){return this.type=e,this}getAllowedSchemaTypes(){return this.type}contains(e){return this.type?.has(e)}}var h={};t(h,"SingleType",(()=>N));class N extends T{constructor(e){super(),this.type=e instanceof N?e.type:e}getType(){return this.type}getAllowedSchemaTypes(){return new Set([this.type])}contains(e){return this.type==e}}class f{static of(...e){return 1==e.length?new N(e[0]):new c(new Set(e))}static from(e){return"string"==typeof e?new N(l[e]):Array.isArray(e)?new c(new Set(e.map((e=>e)).map((e=>l[e])))):void 0}}class _{constructor(e){e&&(this.booleanValue=e.booleanValue,e.schemaValue&&(this.schemaValue=new S(e.schemaValue)))}getBooleanValue(){return this.booleanValue}getSchemaValue(){return this.schemaValue}setBooleanValue(e){return this.booleanValue=e,this}setSchemaValue(e){return this.schemaValue=e,this}static from(e){if(E(e))return;const t=new _;if("boolean"==typeof e)t.booleanValue=e;else{let r=Object.keys(e);-1!=r.indexOf("booleanValue")?t.booleanValue=e.booleanValue:-1!=r.indexOf("schemaValue")?t.schemaValue=S.from(e.schemaValue):t.schemaValue=S.from(e)}return t}}class S{static NULL=(new S).setNamespace(a.SYSTEM).setName("Null").setType(f.of(l.NULL)).setConstant(void 0);static TYPE_SCHEMA=(new S).setType(f.of(l.STRING)).setEnums(["INTEGER","LONG","FLOAT","DOUBLE","STRING","OBJECT","ARRAY","BOOLEAN","NULL"]);static SCHEMA=(new S).setNamespace(a.SYSTEM).setName("Schema").setType(f.of(l.OBJECT)).setProperties(new Map([["namespace",S.of("namespace",l.STRING).setDefaultValue("_")],["name",S.ofString("name")],["version",S.of("version",l.INTEGER).setDefaultValue(1)],["ref",S.ofString("ref")],["type",(new S).setAnyOf([S.TYPE_SCHEMA,S.ofArray("type",S.TYPE_SCHEMA)])],["anyOf",S.ofArray("anyOf",S.ofRef("System.Schema"))],["allOf",S.ofArray("allOf",S.ofRef("System.Schema"))],["oneOf",S.ofArray("oneOf",S.ofRef("System.Schema"))],["not",S.ofRef("System.Schema")],["title",S.ofString("title")],["description",S.ofString("description")],["id",S.ofString("id")],["examples",S.ofAny("examples")],["defaultValue",S.ofAny("defaultValue")],["comment",S.ofString("comment")],["enums",S.ofArray("enums",S.ofString("enums"))],["constant",S.ofAny("constant")],["pattern",S.ofString("pattern")],["format",S.of("format",l.STRING).setEnums(["DATETIME","TIME","DATE","EMAIL","REGEX"])],["minLength",S.ofInteger("minLength")],["maxLength",S.ofInteger("maxLength")],["multipleOf",S.ofLong("multipleOf")],["minimum",S.ofNumber("minimum")],["maximum",S.ofNumber("maximum")],["exclusiveMinimum",S.ofNumber("exclusiveMinimum")],["exclusiveMaximum",S.ofNumber("exclusiveMaximum")],["properties",S.of("properties",l.OBJECT).setAdditionalProperties((new _).setSchemaValue(S.ofRef("System.Schema")))],["additionalProperties",(new S).setName("additionalProperty").setNamespace(a.SYSTEM).setAnyOf([S.ofBoolean("additionalProperty"),S.ofObject("additionalProperty").setRef("System.Schema")]).setDefaultValue(!0)],["required",S.ofArray("required",S.ofString("required")).setDefaultValue([])],["propertyNames",S.ofRef("System.Schema")],["minProperties",S.ofInteger("minProperties")],["maxProperties",S.ofInteger("maxProperties")],["patternProperties",S.of("patternProperties",l.OBJECT).setAdditionalProperties((new _).setSchemaValue(S.ofRef("System.Schema")))],["items",(new S).setName("items").setAnyOf([S.ofRef("System.Schema").setName("item"),S.ofArray("tuple",S.ofRef("System.Schema"))])],["contains",S.ofRef("System.Schema")],["minContains",S.ofInteger("minContains")],["maxContains",S.ofInteger("maxContains")],["minItems",S.ofInteger("minItems")],["maxItems",S.ofInteger("maxItems")],["uniqueItems",S.ofBoolean("uniqueItems")],["additionalItems",(new S).setName("additionalItems").setNamespace(a.SYSTEM).setAnyOf([S.ofBoolean("additionalItems"),S.ofObject("additionalItems").setRef("System.Schema")])],["$defs",S.of("$defs",l.OBJECT).setAdditionalProperties((new _).setSchemaValue(S.ofRef("System.Schema")))],["permission",S.ofString("permission")]])).setRequired([]);static ofString(e){return(new S).setType(f.of(l.STRING)).setName(e)}static ofInteger(e){return(new S).setType(f.of(l.INTEGER)).setName(e)}static ofFloat(e){return(new S).setType(f.of(l.FLOAT)).setName(e)}static ofLong(e){return(new S).setType(f.of(l.LONG)).setName(e)}static ofDouble(e){return(new S).setType(f.of(l.DOUBLE)).setName(e)}static ofAny(e){return(new S).setType(f.of(l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE,l.STRING,l.BOOLEAN,l.ARRAY,l.NULL,l.OBJECT)).setName(e)}static ofAnyNotNull(e){return(new S).setType(f.of(l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE,l.STRING,l.BOOLEAN,l.ARRAY,l.OBJECT)).setName(e)}static ofNumber(e){return(new S).setType(f.of(l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE)).setName(e)}static ofBoolean(e){return(new S).setType(f.of(l.BOOLEAN)).setName(e)}static of(e,...t){return(new S).setType(f.of(...t)).setName(e)}static ofObject(e){return(new S).setType(f.of(l.OBJECT)).setName(e)}static ofRef(e){return(new S).setRef(e)}static ofArray(e,...t){return(new S).setType(f.of(l.ARRAY)).setName(e).setItems(u.of(...t))}static fromListOfSchemas(e){if(E(e)&&!Array.isArray(e))return;let t=[];for(let r of Array.from(e)){let e=S.from(r);e&&t.push(e)}return t}static fromMapOfSchemas(e){if(E(e))return;const t=new Map;return Object.entries(e).forEach((([e,r])=>{let n=S.from(r);n&&t.set(e,n)})),t}static from(e,t=!1){if(E(e))return;let r=new S;return r.namespace=e.namespace??"_",r.name=e.name,r.version=e.version??1,r.ref=e.ref,r.type=t?new N(l.STRING):f.from(e.type),r.anyOf=S.fromListOfSchemas(e.anyOf),r.allOf=S.fromListOfSchemas(e.allOf),r.oneOf=S.fromListOfSchemas(e.oneOf),r.not=S.from(e.not),r.description=e.description,r.examples=e.examples?[...e.examples]:void 0,r.defaultValue=e.defaultValue,r.comment=e.comment,r.enums=e.enums?[...e.enums]:void 0,r.constant=e.constant,r.pattern=e.pattern,r.format=e.format,r.minLength=e.minLength,r.maxLength=e.maxLength,r.multipleOf=e.multipleOf,r.minimum=e.minimum,r.maximum=e.maximum,r.exclusiveMinimum=e.exclusiveMinimum,r.exclusiveMaximum=e.exclusiveMaximum,r.properties=S.fromMapOfSchemas(e.properties),r.additionalProperties=_.from(e.additionalProperties),r.required=e.required,r.propertyNames=S.from(e.propertyNames,!0),r.minProperties=e.minProperties,r.maxProperties=e.maxProperties,r.patternProperties=S.fromMapOfSchemas(e.patternProperties),r.items=u.from(e.items),r.additionalItems=_.from(e.additionalItems),r.contains=S.from(e.contains),r.minContains=e.minContains,r.maxContains=e.maxContains,r.minItems=e.minItems,r.maxItems=e.maxItems,r.uniqueItems=e.uniqueItems,r.$defs=S.fromMapOfSchemas(e.$defs),r.permission=e.permission,r}namespace="_";version=1;constructor(e){e&&(this.namespace=e.namespace,this.name=e.name,this.version=e.version,this.ref=e.ref,this.type=e.type instanceof N?new N(e.type):new c(e.type),this.anyOf=e.anyOf?.map((e=>new S(e))),this.allOf=e.allOf?.map((e=>new S(e))),this.oneOf=e.oneOf?.map((e=>new S(e))),this.not=this.not?new S(this.not):void 0,this.description=e.description,this.examples=e.examples?JSON.parse(JSON.stringify(e.examples)):void 0,this.defaultValue=e.defaultValue?JSON.parse(JSON.stringify(e.defaultValue)):void 0,this.comment=e.comment,this.enums=e.enums?[...e.enums]:void 0,this.constant=e.constant?JSON.parse(JSON.stringify(e.constant)):void 0,this.pattern=e.pattern,this.format=e.format,this.minLength=e.minLength,this.maxLength=e.maxLength,this.multipleOf=e.multipleOf,this.minimum=e.minimum,this.maximum=e.maximum,this.exclusiveMinimum=e.exclusiveMinimum,this.exclusiveMaximum=e.exclusiveMaximum,this.properties=e.properties?new Map(Array.from(e.properties.entries()).map((e=>[e[0],new S(e[1])]))):void 0,this.additionalProperties=e.additionalProperties?new _(e.additionalProperties):void 0,this.required=e.required?[...e.required]:void 0,this.propertyNames=e.propertyNames?new S(e.propertyNames):void 0,this.minProperties=e.minProperties,this.maxProperties=e.maxProperties,this.patternProperties=e.patternProperties?new Map(Array.from(e.patternProperties.entries()).map((e=>[e[0],new S(e[1])]))):void 0,this.items=e.items?new u(e.items):void 0,this.contains=e.contains?new S(this.contains):void 0,this.minContains=e.minContains,this.maxContains=e.maxContains,this.minItems=e.minItems,this.maxItems=e.maxItems,this.uniqueItems=e.uniqueItems,this.additionalItems=e.additionalItems?new _(e.additionalItems):void 0,this.$defs=e.$defs?new Map(Array.from(e.$defs.entries()).map((e=>[e[0],new S(e[1])]))):void 0,this.permission=e.permission)}getTitle(){return this.namespace&&"_"!=this.namespace?this.namespace+"."+this.name:this.name}getFullName(){return this.namespace+"."+this.name}get$defs(){return this.$defs}set$defs(e){return this.$defs=e,this}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getVersion(){return this.version}setVersion(e){return this.version=e,this}getRef(){return this.ref}setRef(e){return this.ref=e,this}getType(){return this.type}setType(e){return this.type=e,this}getAnyOf(){return this.anyOf}setAnyOf(e){return this.anyOf=e,this}getAllOf(){return this.allOf}setAllOf(e){return this.allOf=e,this}getOneOf(){return this.oneOf}setOneOf(e){return this.oneOf=e,this}getNot(){return this.not}setNot(e){return this.not=e,this}getDescription(){return this.description}setDescription(e){return this.description=e,this}getExamples(){return this.examples}setExamples(e){return this.examples=e,this}getDefaultValue(){return this.defaultValue}setDefaultValue(e){return this.defaultValue=e,this}getComment(){return this.comment}setComment(e){return this.comment=e,this}getEnums(){return this.enums}setEnums(e){return this.enums=e,this}getConstant(){return this.constant}setConstant(e){return this.constant=e,this}getPattern(){return this.pattern}setPattern(e){return this.pattern=e,this}getFormat(){return this.format}setFormat(e){return this.format=e,this}getMinLength(){return this.minLength}setMinLength(e){return this.minLength=e,this}getMaxLength(){return this.maxLength}setMaxLength(e){return this.maxLength=e,this}getMultipleOf(){return this.multipleOf}setMultipleOf(e){return this.multipleOf=e,this}getMinimum(){return this.minimum}setMinimum(e){return this.minimum=e,this}getMaximum(){return this.maximum}setMaximum(e){return this.maximum=e,this}getExclusiveMinimum(){return this.exclusiveMinimum}setExclusiveMinimum(e){return this.exclusiveMinimum=e,this}getExclusiveMaximum(){return this.exclusiveMaximum}setExclusiveMaximum(e){return this.exclusiveMaximum=e,this}getProperties(){return this.properties}setProperties(e){return this.properties=e,this}getAdditionalProperties(){return this.additionalProperties}setAdditionalProperties(e){return this.additionalProperties=e,this}getAdditionalItems(){return this.additionalItems}setAdditionalItems(e){return this.additionalItems=e,this}getRequired(){return this.required}setRequired(e){return this.required=e,this}getPropertyNames(){return this.propertyNames}setPropertyNames(e){return this.propertyNames=e,this.propertyNames.type=new N(l.STRING),this}getMinProperties(){return this.minProperties}setMinProperties(e){return this.minProperties=e,this}getMaxProperties(){return this.maxProperties}setMaxProperties(e){return this.maxProperties=e,this}getPatternProperties(){return this.patternProperties}setPatternProperties(e){return this.patternProperties=e,this}getItems(){return this.items}setItems(e){return this.items=e,this}getContains(){return this.contains}setContains(e){return this.contains=e,this}getMinContains(){return this.minContains}setMinContains(e){return this.minContains=e,this}getMaxContains(){return this.maxContains}setMaxContains(e){return this.maxContains=e,this}getMinItems(){return this.minItems}setMinItems(e){return this.minItems=e,this}getMaxItems(){return this.maxItems}setMaxItems(e){return this.maxItems=e,this}getUniqueItems(){return this.uniqueItems}setUniqueItems(e){return this.uniqueItems=e,this}getPermission(){return this.permission}setPermission(e){return this.permission=e,this}}var M={};t(M,"Parameter",(()=>y));var O={};t(O,"SchemaReferenceException",(()=>w));class w extends Error{constructor(e,t,r){super(e.trim()?e+"-"+t:t),this.schemaPath=e,this.cause=r}getSchemaPath(){return this.schemaPath}getCause(){return this.cause}}var I={};let d;var P;t(I,"ParameterType",(()=>d)),(P=d||(d={})).CONSTANT="CONSTANT",P.EXPRESSION="EXPRESSION";class y{static SCHEMA_NAME="Parameter";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(y.SCHEMA_NAME).setProperties(new Map([["schema",S.SCHEMA],["parameterName",S.ofString("parameterName")],["variableArgument",S.of("variableArgument",l.BOOLEAN).setDefaultValue(!1)],["type",S.ofString("type").setEnums(["EXPRESSION","CONSTANT"])]]));static EXPRESSION=(new S).setNamespace(a.SYSTEM).setName("ParameterExpression").setType(f.of(l.OBJECT)).setProperties(new Map([["isExpression",S.ofBoolean("isExpression").setDefaultValue(!0)],["value",S.ofAny("value")]]));variableArgument=!1;type=d.EXPRESSION;constructor(e,t){if(e instanceof y)this.schema=new S(e.schema),this.parameterName=e.parameterName,this.variableArgument=e.variableArgument,this.type=e.type;else{if(!t)throw new Error("Unknown constructor signature");this.schema=t,this.parameterName=e}}getSchema(){return this.schema}setSchema(e){return this.schema=e,this}getParameterName(){return this.parameterName}setParameterName(e){return this.parameterName=e,this}isVariableArgument(){return this.variableArgument}setVariableArgument(e){return this.variableArgument=e,this}getType(){return this.type}setType(e){return this.type=e,this}static ofEntry(e,t,r=!1,n=d.EXPRESSION){return[e,new y(e,t).setType(n).setVariableArgument(r)]}static of(e,t,r=!1,n=d.EXPRESSION){return new y(e,t).setType(n).setVariableArgument(r)}static from(e){const t=S.from(e.schema);if(!t)throw new w("","Parameter requires Schema");return new y(e.parameterName,t).setVariableArgument(!!e.variableArguments).setType(e.type??d.EXPRESSION)}}const x=new Map([["any",S.ofAny("any").setNamespace(a.SYSTEM)],["boolean",S.ofBoolean("boolean").setNamespace(a.SYSTEM)],["double",S.ofDouble("double").setNamespace(a.SYSTEM)],["float",S.ofFloat("float").setNamespace(a.SYSTEM)],["integer",S.ofInteger("integer").setNamespace(a.SYSTEM)],["long",S.ofLong("long").setNamespace(a.SYSTEM)],["number",S.ofNumber("number").setNamespace(a.SYSTEM)],["string",S.ofString("string").setNamespace(a.SYSTEM)],[y.EXPRESSION.getName(),y.EXPRESSION],[S.NULL.getName(),S.NULL],[S.SCHEMA.getName(),S.SCHEMA]]),v=Array.from(x.values()).map((e=>e.getFullName()));class L{find(e,t){if(a.SYSTEM==e)return x.get(t)}filter(e){return v.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}var U={};function C(e){return[e.getSignature().getName(),e]}t(U,"KIRunFunctionRepository",(()=>Cn));var V={};t(V,"MapUtil",(()=>G)),t(V,"MapEntry",(()=>b));class G{static of(e,t,r,n,s,a,i,o,u,A,l,g,m,R,p,T,c,h,N,f){const _=new Map;return E(e)||E(t)||_.set(e,t),E(r)||E(n)||_.set(r,n),E(s)||E(a)||_.set(s,a),E(i)||E(o)||_.set(i,o),E(u)||E(A)||_.set(u,A),E(l)||E(g)||_.set(l,g),E(m)||E(R)||_.set(m,R),E(p)||E(T)||_.set(p,T),E(c)||E(h)||_.set(c,h),E(N)||E(f)||_.set(N,f),_}static ofArrayEntries(...e){const t=new Map;for(const[r,n]of e)t.set(r,n);return t}static entry(e,t){return new b(e,t)}static ofEntries(...e){const t=new Map;for(const r of e)t.set(r.k,r.v);return t}static ofEntriesArray(...e){const t=new Map;for(let r=0;r<e.length;r++)t.set(e[r][0],e[r][1]);return t}constructor(){}}class b{constructor(e,t){this.k=e,this.v=t}}var D={};t(D,"EventResult",(()=>B));var F={};t(F,"Event",(()=>Y));class Y{static OUTPUT="output";static ERROR="error";static ITERATION="iteration";static TRUE="true";static FALSE="false";static SCHEMA_NAME="Event";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(Y.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["name",S.ofString("name")],["parameters",S.ofObject("parameter").setAdditionalProperties((new _).setSchemaValue(S.SCHEMA))]]));constructor(e,t){if(e instanceof Y)this.name=e.name,this.parameters=new Map(Array.from(e.parameters.entries()).map((e=>[e[0],new S(e[1])])));else{if(this.name=e,!t)throw new Error("Unknown constructor format");this.parameters=t}}getName(){return this.name}setName(e){return this.name=e,this}getParameters(){return this.parameters}setParameters(e){return this.parameters=e,this}static outputEventMapEntry(e){return Y.eventMapEntry(Y.OUTPUT,e)}static eventMapEntry(e,t){return[e,new Y(e,t)]}static from(e){return new Y(e.name,new Map(Object.entries(e.parameters??{}).map((e=>{const t=S.from(e[1]);if(!t)throw new w("","Event expects a schema");return[e[0],t]}))))}}class B{constructor(e,t){this.name=e,this.result=t}getName(){return this.name}setName(e){return this.name=e,this}getResult(){return this.result}setResult(e){return this.result=e,this}static outputOf(e){return B.of(Y.OUTPUT,e)}static of(e,t){return new B(e,t)}}var H={};t(H,"FunctionOutput",(()=>j));var k={};t(k,"KIRuntimeException",(()=>$));class $ extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class j{index=0;constructor(e){if(E(e))throw new $("Function output is generating null");Array.isArray(e)&&e.length&&e[0]instanceof B?this.fo=e:(this.fo=[],Array.isArray(e)||(this.generator=e))}next(){if(!this.generator)return this.index<this.fo.length?this.fo[this.index++]:void 0;const e=this.generator.next();return e&&this.fo.push(e),e}allResults(){return this.fo}}var X={};t(X,"FunctionSignature",(()=>W));class W{static SCHEMA_NAME="FunctionSignature";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(W.SCHEMA_NAME).setProperties(new Map([["name",S.ofString("name")],["namespace",S.ofString("namespace")],["parameters",S.ofObject("parameters").setAdditionalProperties((new _).setSchemaValue(y.SCHEMA))],["events",S.ofObject("events").setAdditionalProperties((new _).setSchemaValue(Y.SCHEMA))]]));namespace="_";parameters=new Map;events=new Map;constructor(e){e instanceof W?(this.name=e.name,this.namespace=e.namespace,this.parameters=new Map(Array.from(e.parameters.entries()).map((e=>[e[0],new y(e[1])]))),this.events=new Map(Array.from(e.events.entries()).map((e=>[e[0],new Y(e[1])])))):this.name=e}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getParameters(){return this.parameters}setParameters(e){return this.parameters=e,this}getEvents(){return this.events}setEvents(e){return this.events=e,this}getFullName(){return this.namespace+"."+this.name}}var q={};t(q,"AbstractFunction",(()=>Pe));var J={};t(J,"SchemaValidator",(()=>de));var z={};t(z,"StringUtil",(()=>Z));var Q={};t(Q,"StringFormatter",(()=>K));class K{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 Z{constructor(){}static nthIndex(e,t,r=0,n){if(!e)throw new $("String cannot be null");if(r<0||r>=e.length)throw new $(K.format("Cannot search from index : $",r));if(n<=0||n>e.length)throw new $(K.format("Cannot search for occurance : $",n));for(;r<e.length;){if(e.charAt(r)==t&&0==--n)return r;++r}return-1}static splitAtFirstOccurance(e,t){if(!e)return[void 0,void 0];let r=e.indexOf(t);return-1==r?[e,void 0]:[e.substring(0,r),e.substring(r+1)]}static isNullOrBlank(e){return!e||""==e.trim()}}var ee={};t(ee,"SchemaUtil",(()=>oe));var te={};t(te,"Tuple2",(()=>re)),t(te,"Tuple3",(()=>ne)),t(te,"Tuple4",(()=>se));class re{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 ne extends re{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 se extends ne{constructor(e,t,r,n){super(e,t,r),this.fr=n}getT4(){return this.fr}setT1(e){return this.f=e,this}setT2(e){return this.s=e,this}setT3(e){return this.t=e,this}setT4(e){return this.fr=e,this}}var ae={};t(ae,"SchemaValidationException",(()=>ie));class ie 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 oe{static UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH="Unable to retrive schema from referenced path";static CYCLIC_REFERENCE_LIMIT_COUNTER=20;static getDefaultValue(e,t){if(e)return e.getConstant()?e.getConstant():E(e.getDefaultValue())?oe.getDefaultValue(oe.getSchemaFromRef(e,t,e.getRef()),t):e.getDefaultValue()}static hasDefaultValueOrNullSchemaType(e,t){return!!e&&(!!e.getConstant()||(!E(e.getDefaultValue())||(E(e.getRef())?!!e.getType()?.getAllowedSchemaTypes().has(l.NULL):this.hasDefaultValueOrNullSchemaType(oe.getSchemaFromRef(e,t,e.getRef()),t))))}static getSchemaFromRef(e,t,r,n=0){if(++n==oe.CYCLIC_REFERENCE_LIMIT_COUNTER)throw new ie(r??"","Schema has a cyclic reference");if(!e||!r||Z.isNullOrBlank(r))return;if(!r.startsWith("#")){var s=oe.resolveExternalSchema(e,t,r);s&&(e=s.getT1(),r=s.getT2())}let a=r.split("/");return 1===a.length?e:oe.resolveInternalSchema(e,t,r,n,a,1)}static resolveInternalSchema(e,t,r,n,s,a){let i=e;if(a!==s.length){for(;a<s.length;){if("$defs"===s[a]){if(++a>=s.length||!i.get$defs())throw new w(r,oe.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);i=i.get$defs()?.get(s[a])}else{if(i&&(!i.getType()?.contains(l.OBJECT)||!i.getProperties()))throw new w(r,"Cannot retrievie schema from non Object type schemas");i=i.getProperties()?.get(s[a])}if(a++,!i)throw new w(r,oe.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);if(!Z.isNullOrBlank(i.getRef())&&(i=oe.getSchemaFromRef(i,t,i.getRef(),n),!i))throw new w(r,oe.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH)}return i}}static resolveExternalSchema(e,t,r){if(!t)return;let n=Z.splitAtFirstOccurance(r??"","/");if(!n[0])return;let s=Z.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 re(a,r);if(r="#/"+n[1],!a)throw new w(r,oe.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);return new re(a,r)}}constructor(){}}var Ee={};t(Ee,"AnyOfAllOfOneOfValidator",(()=>ue));class ue{static validate(e,t,r,n){let s=[];return t.getOneOf()&&!t.getOneOf()?ue.oneOf(e,t,r,n,s):t.getAllOf()&&!t.getAllOf()?ue.allOf(e,t,r,n,s):t.getAnyOf()&&!t.getAnyOf()&&ue.anyOf(e,t,r,n,s),n}static anyOf(e,t,r,n,s){let a=!1;for(let i of t.getAnyOf()??[])try{ue.validate(e,i,r,n),a=!0;break}catch(e){a=!1,s.push(e)}if(!a)throw new ie(de.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{ue.validate(e,i,r,n),a++}catch(e){s.push(e)}if(a!==t.getAllOf()?.length)throw new ie(de.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{ue.validate(e,i,r,n),a++}catch(e){s.push(e)}if(1!=a)throw new ie(de.path(e),0==a?"The value does not satisfy any schema":"The value satisfy more than one schema",s)}constructor(){}}var Ae={};t(Ae,"TypeValidator",(()=>Ie));var le={};t(le,"ArrayValidator",(()=>ge));class ge{static validate(e,t,r,n){if(E(n))throw new ie(de.path(e),"Expected an array but found null");if(!Array.isArray(n))throw new ie(de.path(e),n.toString()+" is not an Array");let s=n;return ge.checkMinMaxItems(e,t,s),ge.checkItems(e,t,r,s),ge.checkUniqueItems(e,t,s),ge.checkContains(t,e,r,s),n}static checkContains(e,t,r,n){if(E(e.getContains()))return;let s=ge.countContains(t,e,r,n,E(e.getMinContains())&&E(e.getMaxContains()));if(0===s)throw new ie(de.path(t),"None of the items are of type contains schema");if(!E(e.getMinContains())&&e.getMinContains()>s)throw new ie(de.path(t),"The minimum number of the items of type contains schema should be "+e.getMinContains()+" but found "+s);if(!E(e.getMaxContains())&&e.getMaxContains()<s)throw new ie(de.path(t),"The maximum number of the items of type contains schema should be "+e.getMaxContains()+" but found "+s)}static countContains(e,t,r,n,s){let a=0;for(let i=0;i<n.length;i++){let o=e?[...e]:[];try{if(de.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 ie(de.path(e),"Items on the array are not unique")}}static checkMinMaxItems(e,t,r){if(t.getMinItems()&&t.getMinItems()>r.length)throw new ie(de.path(e),"Array should have minimum of "+t.getMinItems()+" elements");if(t.getMaxItems()&&t.getMaxItems()<r.length)throw new ie(de.path(e),"Array can have maximum of "+t.getMaxItems()+" elements")}static checkItems(e,t,r,n){if(!t.getItems())return;let s=t.getItems();if(s.getSingleSchema())for(let t=0;t<n.length;t++){let a=e?[...e]:[],i=de.validate(a,s.getSingleSchema(),r,n[t]);n[t]=i}if(s.getTupleSchema()){if(s.getTupleSchema().length!==n.length&&E(t?.getAdditionalItems()))throw new ie(de.path(e),"Expected an array with only "+s.getTupleSchema().length+" but found "+n.length);this.checkItemsInTupleSchema(e,r,n,s),this.checkAdditionalItems(e,t,r,n,s)}}static checkItemsInTupleSchema(e,t,r,n){for(let s=0;s<n.getTupleSchema()?.length;s++){let a=e?[...e]:[],i=de.validate(a,n.getTupleSchema()[s],t,r[s]);r[s]=i}}static checkAdditionalItems(e,t,r,n,s){if(!E(t.getAdditionalItems())){let a=t.getAdditionalItems();if(a?.getBooleanValue()){let i=S.ofAny("item");if(!1===a?.getBooleanValue()&&n.length>s.getTupleSchema()?.length)throw new ie(de.path(e),"No Additional Items are defined");this.checkEachItemInAdditionalItems(e,t,r,n,s,i)}else if(a?.getSchemaValue()){let i=a.getSchemaValue();this.checkEachItemInAdditionalItems(e,t,r,n,s,i)}}}static checkEachItemInAdditionalItems(e,t,r,n,s,a){for(let t=s.getTupleSchema()?.length;t<n.length;t++){let s=e?[...e]:[],i=de.validate(s,a,r,n[t]);n[t]=i}}constructor(){}}var me={};t(me,"BooleanValidator",(()=>Re));class Re{static validate(e,t,r){if(E(r))throw new ie(de.path(e),"Expected a boolean but found null");if("boolean"!=typeof r)throw new ie(de.path(e),r.toString()+" is not a boolean");return r}constructor(){}}var pe={};t(pe,"NullValidator",(()=>Te));class Te{static validate(e,t,r){if(r)throw new ie(de.path(e),"Expected a null but found "+r);return r}constructor(){}}var ce={};t(ce,"NumberValidator",(()=>he));class he{static validate(e,t,r,n){if(E(n))throw new ie(de.path(t),"Expected a number but found null");if("number"!=typeof n)throw new ie(de.path(t),n.toString()+" is not a "+e);let s=he.extractNumber(e,t,r,n);return he.checkRange(t,r,n,s),he.checkMultipleOf(t,r,n,s),n}static extractNumber(e,t,r,n){let s=n;try{e!=l.LONG&&e!=l.INTEGER||(s=Math.round(s))}catch(r){throw new ie(de.path(t),n+" is not a number of type "+e,r)}if(E(s)||(e==l.LONG||e==l.INTEGER)&&s!=n)throw new ie(de.path(t),n.toString()+" is not a number of type "+e);return s}static checkMultipleOf(e,t,r,n){if(t.getMultipleOf()){if(n%t.getMultipleOf()!=0)throw new ie(de.path(e),r.toString()+" is not multiple of "+t.getMultipleOf())}}static checkRange(e,t,r,n){if(t.getMinimum()&&he.numberCompare(n,t.getMinimum())<0)throw new ie(de.path(e),r.toString()+" should be greater than or equal to "+t.getMinimum());if(t.getMaximum()&&he.numberCompare(n,t.getMaximum())>0)throw new ie(de.path(e),r.toString()+" should be less than or equal to "+t.getMaximum());if(t.getExclusiveMinimum()&&he.numberCompare(n,t.getExclusiveMinimum())<=0)throw new ie(de.path(e),r.toString()+" should be greater than "+t.getExclusiveMinimum());if(t.getExclusiveMaximum()&&he.numberCompare(n,t.getExclusiveMaximum())>0)throw new ie(de.path(e),r.toString()+" should be less than "+t.getExclusiveMaximum())}static numberCompare(e,t){return e-t}constructor(){}}var Ne={};t(Ne,"ObjectValidator",(()=>fe));class fe{static validate(e,t,r,n){if(E(n))throw new ie(de.path(e),"Expected an object but found null");if("object"!=typeof n||Array.isArray(n))throw new ie(de.path(e),n.toString()+" is not an Object");let s=n,a=new Set(Object.keys(s));fe.checkMinMaxProperties(e,t,a),t.getPropertyNames()&&fe.checkPropertyNameSchema(e,t,r,a),t.getRequired()&&fe.checkRequired(e,t,s),t.getProperties()&&fe.checkProperties(e,t,r,s,a),t.getPatternProperties()&&fe.checkPatternProperties(e,t,r,s,a),t.getAdditionalProperties()&&fe.checkAddtionalProperties(e,t,r,s,a)}static checkPropertyNameSchema(e,t,r,n){for(let s of Array.from(n.values()))try{de.validate(e,t.getPropertyNames(),r,s)}catch(t){throw new ie(de.path(e),"Property name '"+s+"' does not fit the property schema")}}static checkRequired(e,t,r){for(const n of t.getRequired()??[])if(E(r[n]))throw new ie(de.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=de.validate(s,a.getSchemaValue(),r,n[t]);n[t]=i}else if(!1===a.getBooleanValue()&&s.size)throw new ie(de.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=de.validate(o,t.getPatternProperties().get(e[0]),r,n[i]);n[i]=a,s.delete(i);break}}}static checkProperties(e,t,r,n,s){for(const a of Array.from(t.getProperties())){let t=n[a[0]];if(!n.hasOwnProperty(a[0])&&E(t)){if(E(oe.getDefaultValue(a[1],r)))continue}let i=e?[...e]:[],o=de.validate(i,a[1],r,t);n[a[0]]=o,s.delete(a[0])}}static checkMinMaxProperties(e,t,r){if(t.getMinProperties()&&r.size<t.getMinProperties())throw new ie(de.path(e),"Object should have minimum of "+t.getMinProperties()+" properties");if(t.getMaxProperties()&&r.size>t.getMaxProperties())throw new ie(de.path(e),"Object can have maximum of "+t.getMaxProperties()+" properties")}constructor(){}}var _e={};t(_e,"StringValidator",(()=>we));var Se={};let Me;var Oe;t(Se,"StringFormat",(()=>Me)),(Oe=Me||(Me={})).DATETIME="DATETIME",Oe.TIME="TIME",Oe.DATE="DATE",Oe.EMAIL="EMAIL",Oe.REGEX="REGEX";class we{static TIME=/^([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?([+-][01][0-9]:[0-5][0-9])?$/;static DATE=/^[0-9]{4,4}-([0][0-9]|[1][0-2])-(0[1-9]|[1-2][1-9]|3[01])$/;static DATETIME=/^[0-9]{4,4}-([0][0-9]|[1][0-2])-(0[1-9]|[1-2][1-9]|3[01])T([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?([+-][01][0-9]:[0-5][0-9])?$/;static EMAIL=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;static validate(e,t,r){if(E(r))throw new ie(de.path(e),"Expected a string but found "+r);if("string"!=typeof r)throw new ie(de.path(e),r.toString()+" is not String");t.getFormat()==Me.TIME?we.patternMatcher(e,t,r,we.TIME,"time pattern"):t.getFormat()==Me.DATE?we.patternMatcher(e,t,r,we.DATE,"date pattern"):t.getFormat()==Me.DATETIME?we.patternMatcher(e,t,r,we.DATETIME,"date time pattern"):t.getFormat()==Me.EMAIL?we.patternMatcher(e,t,r,we.EMAIL,"email pattern"):t.getPattern()&&we.patternMatcher(e,t,r,new RegExp(t.getPattern()),"pattern "+t.getPattern());let n=r.length;if(t.getMinLength()&&n<t.getMinLength())throw new ie(de.path(e),"Expected a minimum of "+t.getMinLength()+" characters");if(t.getMaxLength()&&n>t.getMaxLength())throw new ie(de.path(e),"Expected a maximum of "+t.getMaxLength()+" characters");return r}static patternMatcher(e,t,r,n,s){if(!n.test(r))throw new ie(de.path(e),r.toString()+" is not matched with the "+s)}constructor(){}}class Ie{static validate(e,t,r,n,s){if(t==l.STRING)we.validate(e,r,s);else if(t==l.LONG||t==l.INTEGER||t==l.DOUBLE||t==l.FLOAT)he.validate(t,e,r,s);else if(t==l.BOOLEAN)Re.validate(e,r,s);else if(t==l.OBJECT)fe.validate(e,r,n,s);else if(t==l.ARRAY)ge.validate(e,r,n,s);else{if(t!=l.NULL)throw new ie(de.path(e),t+" is not a valid type.");Te.validate(e,r,s)}return s}constructor(){}}class de{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 ie(de.path(e),"No schema found to validate");if(e||(e=new Array),e.push(t),E(n)&&!E(t.getDefaultValue()))return JSON.parse(JSON.stringify(t.getDefaultValue()));if(t.getConstant())return de.constantValidation(e,t,n);if(t.getEnums()&&!t.getEnums()?.length)return de.enumCheck(e,t,n);if(t.getFormat()&&E(t.getType()))throw new ie(this.path(e),"Type is missing in schema for declared "+t.getFormat()?.toString()+" format.");if(t.getType()&&de.typeValidation(e,t,r,n),!Z.isNullOrBlank(t.getRef()))return de.validate(e,oe.getSchemaFromRef(e[0],r,t.getRef()),r,n);if((t.getOneOf()||t.getAllOf()||t.getAnyOf())&&ue.validate(e,t,r,n),t.getNot()){let s=!1;try{de.validate(e,t.getNot(),r,n),s=!0}catch(e){s=!1}if(s)throw new ie(de.path(e),"Schema validated value in not condition.")}return n}static constantValidation(e,t,r){if(!t.getConstant().equals(r))throw new ie(de.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 ie(de.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{Ie.validate(e,i,t,r,n),s=!0;break}catch(e){s=!1,a.push(e)}if(!s)throw new ie(de.path(e),"Value "+JSON.stringify(n)+" is not of valid type(s)",a)}constructor(){}}class Pe{validateArguments(e,t,r){return Array.from(this.getSignature().getParameters().entries()).map((n=>{let s=n[1];try{return this.validateArgument(e,t,n,s)}catch(e){const t=this.getSignature();throw new $(`Error while executing the function ${t.getNamespace()}.${t.getName()}'s parameter ${s.getParameterName()} with step name '${r?.getStatement().getStatementName()??"Unknown Step"}' with error : ${e?.message}`)}})).reduce(((e,t)=>(e.set(t.getT1(),t.getT2()),e)),new Map)}validateArgument(e,t,r,n){let s,a=r[0],i=e.get(r[0]);if(E(i)&&!n.isVariableArgument())return new re(a,de.validate(void 0,n.getSchema(),t,void 0));if(!n?.isVariableArgument())return new re(a,de.validate(void 0,n.getSchema(),t,i));Array.isArray(i)?s=i:(s=[],E(i)?E(n.getSchema().getDefaultValue())||s.push(n.getSchema().getDefaultValue()):s.push(i));for(let e=0;e<s.length;e++)s[e]=de.validate(void 0,n.getSchema(),t,s[e]);return new re(a,s)}async execute(e){e.setArguments(this.validateArguments(e.getArguments()??new Map,e.getSchemaRepository(),e.getStatementExecution()));try{return this.internalExecute(e)}catch(t){const r=this.getSignature();throw new $(`Error while executing the function ${r.getNamespace()}.${r.getName()} with step name '${e.getStatementExecution()?.getStatement().getStatementName()??"Unknown Step"}' with error : ${t?.message}`)}}getProbableEventSignature(e){return this.getSignature().getEvents()}}class ye extends Pe{static EVENT_INDEX_NAME="index";static EVENT_RESULT_NAME="result";static EVENT_INDEX=new Y(Y.OUTPUT,G.of(ye.EVENT_INDEX_NAME,S.ofInteger(ye.EVENT_INDEX_NAME)));static EVENT_RESULT_INTEGER=new Y(Y.OUTPUT,G.of(ye.EVENT_RESULT_NAME,S.ofInteger(ye.EVENT_RESULT_NAME)));static EVENT_RESULT_BOOLEAN=new Y(Y.OUTPUT,G.of(ye.EVENT_RESULT_NAME,S.ofBoolean(ye.EVENT_RESULT_NAME)));static EVENT_RESULT_ARRAY=new Y(Y.OUTPUT,G.of(ye.EVENT_RESULT_NAME,S.ofArray(ye.EVENT_RESULT_NAME,S.ofAny(ye.EVENT_RESULT_NAME))));static EVENT_RESULT_EMPTY=new Y(Y.OUTPUT,G.of());static EVENT_RESULT_ANY=new Y(Y.OUTPUT,G.of(this.EVENT_RESULT_NAME,S.ofAny(this.EVENT_RESULT_NAME)));static PARAMETER_INT_LENGTH=y.of("length",S.ofInteger("length").setDefaultValue(-1));static PARAMETER_ARRAY_FIND=y.of("find",S.ofArray("eachFind",S.ofAny("eachFind")));static PARAMETER_INT_SOURCE_FROM=y.of("srcFrom",S.ofInteger("srcFrom").setDefaultValue(0).setMinimum(0));static PARAMETER_INT_SECOND_SOURCE_FROM=y.of("secondSrcFrom",S.ofInteger("secondSrcFrom").setDefaultValue(0));static PARAMETER_INT_FIND_FROM=y.of("findFrom",S.ofInteger("findFrom").setDefaultValue(0));static PARAMETER_INT_OFFSET=y.of("offset",S.ofInteger("offset").setDefaultValue(0));static PARAMETER_ROTATE_LENGTH=y.of("rotateLength",S.ofInteger("rotateLength").setDefaultValue(1).setMinimum(1));static PARAMETER_BOOLEAN_ASCENDING=y.of("ascending",S.ofBoolean("ascending").setDefaultValue(!1));static PARAMETER_FIND_PRIMITIVE=y.of("findPrimitive",S.of("findPrimitive",l.STRING,l.DOUBLE,l.FLOAT,l.INTEGER,l.LONG));static PARAMETER_ARRAY_SOURCE=y.of("source",S.ofArray("eachSource",S.ofAny("eachSource")));static PARAMETER_ARRAY_SECOND_SOURCE=y.of("secondSource",S.ofArray("eachSecondSource",S.ofAny("eachSecondSource")));static PARAMETER_ARRAY_SOURCE_PRIMITIVE=y.of("source",S.ofArray("eachSource",(new S).setName("eachSource").setType(f.of(l.STRING,l.NULL,l.INTEGER,l.FLOAT,l.DOUBLE,l.LONG))));static PARAMETER_BOOLEAN_DEEP_COPY=y.of("deepCopy",S.ofBoolean("deepCopy").setDefaultValue(!0));static PARAMETER_ANY=y.of("element",S.ofAny("element"));static PARAMETER_ANY_NOT_NULL=y.of("elementObject",S.ofAnyNotNull("elementObject"));static PARAMETER_ANY_VAR_ARGS=y.of("element",S.ofAny("element")).setVariableArgument(!0);static PARAMETER_ARRAY_RESULT=y.of(ye.EVENT_RESULT_NAME,S.ofArray("eachResult",S.ofAny("eachResult")));constructor(e,t,r){super();const n=new Map;for(const e of t)n.set(e.getParameterName(),e);this.signature=new W(e).setNamespace(a.SYSTEM_ARRAY).setParameters(n).setEvents(G.of(r.getName(),r))}getSignature(){return this.signature}}class xe extends ye{constructor(){super("Add",[ye.PARAMETER_ARRAY_SOURCE,ye.PARAMETER_ARRAY_SECOND_SOURCE],ye.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(ye.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ye.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName());return t.splice(t.length,0,...r),new j([B.outputOf(new Map([]))])}}class ve extends ye{constructor(){super("AddFirst",[ye.PARAMETER_ARRAY_SOURCE,ye.PARAMETER_ANY_NOT_NULL],ye.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(ye.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ye.PARAMETER_ANY_NOT_NULL.getParameterName());if(0==t.length)return t.push(r),new j([B.outputOf(new Map([]))]);t.push(r);let n=t.length-1;for(;n>0;){let e=t[n-1];t[n-1]=t[n],t[n--]=e}return new j([B.outputOf(new Map([]))])}}class Le extends ye{constructor(){super("ArrayToObjects",[ye.PARAMETER_ARRAY_SOURCE,y.of("keyName",S.ofString("keyName"),!0)],ye.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(Le.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get("keyName");if(!t?.length)return new j([B.outputOf(new Map([[ye.EVENT_RESULT_NAME,[]]]))]);let n=t.map((e=>{const t={};if(Array.isArray(e))if(r.length)r.forEach(((r,n)=>{t[r]=e[n]}));else for(let r=0;r<e.length;r++)t[`value${r+1}`]=e[r];else t[r.length?r[0]:"value"]=e;return t}));return new j([B.outputOf(new Map([[ye.EVENT_RESULT_NAME,n]]))])}}var Ue={};t(Ue,"PrimitiveUtil",(()=>Ge));var Ce={};t(Ce,"ExecutionException",(()=>Ve));class Ve extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class Ge{static findPrimitiveNullAsBoolean(e){if(E(e))return new re(l.BOOLEAN,!1);let t=typeof e;if("object"===t)throw new Ve(K.format("$ is not a primitive type",e));let r=e;return"boolean"===t?new re(l.BOOLEAN,r):"string"===t?new re(l.STRING,r):Ge.findPrimitiveNumberType(r)}static findPrimitive(e){if(E(e))return new re(l.NULL,void 0);let t=typeof e;if("object"===t)throw new Ve(K.format("$ is not a primitive type",e));let r=e;return"boolean"===t?new re(l.BOOLEAN,r):"string"===t?new re(l.STRING,r):Ge.findPrimitiveNumberType(r)}static findPrimitiveNumberType(e){if(E(e)||Array.isArray(e)||"object"==typeof e)throw new Ve(K.format("Unable to convert $ to a number.",e));let t=e;try{let e=t;return Number.isInteger(e)?new re(l.LONG,e):new re(l.DOUBLE,e)}catch(e){throw new Ve(K.format("Unable to convert $ to a number.",t),e)}}static compare(e,t){if(e==t)return 0;if(E(e)||E(t))return E(e)?-1:1;if(Array.isArray(e)||Array.isArray(t)){if(Array.isArray(e)&&Array.isArray(t)){if(e.length!=t.length)return e.length-t.length;for(let r=0;r<e.length;r++){let n=this.compare(e[r],t[r]);if(0!=n)return n}return 0}return Array.isArray(e)?-1:1}const r=typeof e,n=typeof t;return"object"===r||"object"===n?("object"===r&&"object"===n&&Object.keys(e).forEach((r=>{let n=this.compare(e[r],t[r]);if(0!=n)return n})),"object"===r?-1:1):this.comparePrimitive(e,t)}static comparePrimitive(e,t){return E(e)||E(t)?E(e)&&E(t)?0:E(e)?-1:1:e==t?0:"boolean"==typeof e||"boolean"==typeof t?e?-1:1:"string"==typeof e||"string"==typeof t?e+""<t+""?-1:1:"number"==typeof e||"number"==typeof t?e-t:0}static baseNumberType(e){return Number.isInteger(e)?l.LONG:l.DOUBLE}static toPrimitiveType(e){return e}constructor(){}}class be extends ye{constructor(){super("BinarySearch",[be.PARAMETER_ARRAY_SOURCE_PRIMITIVE,be.PARAMETER_INT_SOURCE_FROM,be.PARAMETER_FIND_PRIMITIVE,be.PARAMETER_INT_LENGTH],be.EVENT_INDEX)}async internalExecute(e){let t=e?.getArguments()?.get(be.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(be.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(be.PARAMETER_FIND_PRIMITIVE.getParameterName()),s=e?.getArguments()?.get(be.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length||r<0||r>t.length)throw new $("Search source array cannot be empty");if(-1==s&&(s=t.length-r),s=r+s,s>t.length)throw new $("End point for array cannot be more than the size of the source array");let a=-1;for(;r<=s;){let e=Math.floor((r+s)/2);if(0==Ge.compare(t[e],n)){a=e;break}Ge.compare(t[e],n)>0?s=e-1:r=e+1}return new j([B.outputOf(new Map([[be.EVENT_INDEX.getName(),a]]))])}}var De={};t(De,"ArrayUtil",(()=>Fe));class Fe{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 Ye extends ye{constructor(){super("Compare",Fe.of(Ye.PARAMETER_ARRAY_SOURCE,Ye.PARAMETER_INT_SOURCE_FROM,Ye.PARAMETER_ARRAY_FIND,Ye.PARAMETER_INT_FIND_FROM,Ye.PARAMETER_INT_LENGTH),Ye.EVENT_RESULT_INTEGER)}async internalExecute(e){var t=e?.getArguments()?.get(Ye.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Ye.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(Ye.PARAMETER_ARRAY_FIND.getParameterName()),s=e?.getArguments()?.get(Ye.PARAMETER_INT_FIND_FROM.getParameterName()),a=e?.getArguments()?.get(Ye.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new $("Compare source array cannot be empty");if(0==n.length)throw new $("Compare find array cannot be empty");if(-1==a&&(a=t.length-r),r+a>t.length)throw new $(K.format("Source array size $ is less than comparing size $",t.length,r+a));if(s+a>n.length)throw new $(K.format("Find array size $ is less than comparing size $",n.length,s+a));return new j(Fe.of(B.outputOf(G.of(Ye.EVENT_RESULT_NAME,this.compare(t,r,r+a,n,s,s+a)))))}compare(e,t,r,n,s,a){if(r<t){let e=t;t=r,r=e}if(a<s){let e=s;s=a,a=e}if(r-t!=a-s)throw new $(K.format("Cannot compare uneven arrays from $ to $ in source array with $ to $ in find array",r,t,a,s));for(let a=t,i=s;a<r;a++,i++){let t=1;if(E(e[a])||E(n[i])){let r=E(e[a]);r==E(n[i])?t=0:r&&(t=-1)}else{let r=typeof e[a],s=typeof n[i];if("object"===r||"object"===s)t=1;else if("string"===r||"string"===s){let r=""+e[a],s=""+n[i];r===s?t=0:r<s&&(t=-1)}else"boolean"===r||"boolean"===s?t=r==s?0:1:"number"===r&&"number"===s&&(t=e[a]-n[i])}if(0!=t)return t}return 0}}class Be extends ye{constructor(){super("Copy",[Be.PARAMETER_ARRAY_SOURCE,Be.PARAMETER_INT_SOURCE_FROM,Be.PARAMETER_INT_LENGTH,Be.PARAMETER_BOOLEAN_DEEP_COPY],Be.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(Be.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Be.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(Be.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),r+n>t.length)throw new $(K.format("Array has no elements from $ to $ as the array size is $",r,r+n,t.length));var s=e?.getArguments()?.get(Be.PARAMETER_BOOLEAN_DEEP_COPY.getParameterName());const a=new Array(n);for(let e=r;e<r+n;e++)E(t[e])||(a[e-r]=s?JSON.parse(JSON.stringify(t[e])):t[e]);return new j([B.outputOf(G.of(Be.EVENT_RESULT_NAME,a))])}}class He extends ye{constructor(){super("Delete",[ye.PARAMETER_ARRAY_SOURCE,ye.PARAMETER_ANY_VAR_ARGS],ye.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(He.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(He.PARAMETER_ANY_VAR_ARGS.getParameterName());if(null==r)throw new $("The deletable var args are empty. So cannot be proceeded further.");if(0==t.length||0==r.length)throw new $("Expected a source or deletable for an array but not found any");let n=new Set,s=[];for(let e=t.length-1;e>=0;e--)for(let s=0;s<r.length;s++)n.has(e)||0!=Ge.compare(t[e],r[s])||n.add(t[e]);return s=t.filter((e=>!n.has(e))),t.splice(0,t.length,...s),new j([B.outputOf(new Map([]))])}}class ke extends ye{constructor(){super("DeleteFirst",[ke.PARAMETER_ARRAY_SOURCE],ke.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(ke.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new $("Given source array is empty");return t.shift(),new j([B.outputOf(new Map([]))])}}class $e extends ye{constructor(){super("DeleteFrom",[$e.PARAMETER_ARRAY_SOURCE,$e.PARAMETER_INT_SOURCE_FROM,$e.PARAMETER_INT_LENGTH],$e.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get($e.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get($e.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get($e.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new $("There are no elements to be deleted");if(r>=t.length||r<0)throw new $("The int source for the array should be in between 0 and length of the array ");if(-1==n&&(n=t.length-r),r+n>t.length)throw new $("Requested length to be deleted is more than the size of array ");return t.splice(r,n),new j([B.outputOf(new Map([]))])}}class je extends ye{constructor(){super("DeleteLast",[je.PARAMETER_ARRAY_SOURCE],je.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(je.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new $("Given source array is empty");return t.pop(),new j([B.outputOf(new Map([]))])}}class Xe extends ye{constructor(){super("Disjoint",[Xe.PARAMETER_ARRAY_SOURCE,Xe.PARAMETER_INT_SOURCE_FROM,Xe.PARAMETER_ARRAY_SECOND_SOURCE,Xe.PARAMETER_INT_SECOND_SOURCE_FROM,Xe.PARAMETER_INT_LENGTH],Xe.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(Xe.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Xe.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(Xe.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(Xe.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(Xe.PARAMETER_INT_LENGTH.getParameterName());if(-1==a&&(a=t.length<=n.length?t.length-r:n.length-s),a>t.length||a>n.length||r+a>t.length||s+a>n.length)throw new $("The length which was being requested is more than than the size either source array or second source array");let i=new Set,o=new Set;for(let e=0;e<a;e++)i.add(t[e+r]);for(let e=0;e<a;e++)o.add(n[e+s]);let E=new Set;i.forEach((e=>{o.has(e)?o.delete(e):E.add(e)})),o.forEach((e=>{i.has(e)||E.add(e)}));let u=[];return E.forEach((e=>u.push(e))),new j([B.outputOf(new Map([[Xe.EVENT_RESULT_ARRAY.getName(),u]]))])}}class We extends ye{constructor(){super("Equals",[We.PARAMETER_ARRAY_SOURCE,We.PARAMETER_INT_SOURCE_FROM,We.PARAMETER_ARRAY_FIND,We.PARAMETER_INT_FIND_FROM,We.PARAMETER_INT_LENGTH],We.EVENT_RESULT_BOOLEAN)}async internalExecute(e){let t=new Ye,r=(await t.execute(e)).allResults()[0].getResult().get(We.EVENT_RESULT_NAME);return new j([B.outputOf(G.of(We.EVENT_RESULT_NAME,0==r))])}}class qe extends ye{constructor(){super("Fill",[qe.PARAMETER_ARRAY_SOURCE,qe.PARAMETER_INT_SOURCE_FROM,qe.PARAMETER_INT_LENGTH,qe.PARAMETER_ANY],qe.EVENT_RESULT_EMPTY)}async internalExecute(e){var t=e?.getArguments()?.get(qe.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(qe.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(qe.PARAMETER_INT_LENGTH.getParameterName()),s=e?.getArguments()?.get(qe.PARAMETER_ANY.getParameterName());if(r<0)throw new $(K.format("Arrays out of bound trying to access $ index",r));-1==n&&(n=t.length-r);let a=r+n-t.length;if(a>0)for(let e=0;e<a;e++)t.push();for(let e=r;e<r+n;e++)t[e]=E(s)?s:JSON.parse(JSON.stringify(s));return new j([B.outputOf(G.of())])}}class Je extends ye{constructor(){super("Frequency",[Je.PARAMETER_ARRAY_SOURCE,Je.PARAMETER_ANY,Je.PARAMETER_INT_SOURCE_FROM,Je.PARAMETER_INT_LENGTH],Je.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(Je.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Je.PARAMETER_ANY.getParameterName()),n=e?.getArguments()?.get(Je.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(Je.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)return new j([B.outputOf(new Map([[Je.EVENT_RESULT_INTEGER.getName(),0]]))]);if(n>t.length)throw new $("Given start point is more than the size of source");if(E(r))throw new $("Given find was null. Hence cannot be found in the array");let a=n+s;if(-1==s&&(a=t.length-n),a>t.length)throw new $("Given length is more than the size of source");let i=0;for(let e=n;e<a&&e<t.length;e++)0==Ge.compare(t[e],r)&&i++;return new j([B.outputOf(new Map([[Je.EVENT_RESULT_INTEGER.getName(),i]]))])}}class ze extends ye{constructor(){super("IndexOf",[ze.PARAMETER_ARRAY_SOURCE,ze.PARAMETER_ANY_NOT_NULL,ze.PARAMETER_INT_FIND_FROM],ze.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(ze.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(ze.PARAMETER_ANY_NOT_NULL.getParameterName());let n=e?.getArguments()?.get(ze.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new j([B.outputOf(new Map([[ze.EVENT_RESULT_INTEGER.getName(),-1]]))]);if(n<0||n>t.length)throw new $("The size of the search index of the array is greater than the size of the array");let s=-1;for(let e=n;e<t.length;e++)if(0==Ge.compare(t[e],r)){s=e;break}return new j([B.outputOf(new Map([[ze.EVENT_RESULT_INTEGER.getName(),s]]))])}}class Qe extends ye{constructor(){super("IndexOfArray",[Qe.PARAMETER_ARRAY_SOURCE,Qe.PARAMETER_ARRAY_SECOND_SOURCE,Qe.PARAMETER_INT_FIND_FROM],Qe.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(Qe.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Qe.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(Qe.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length||0==r.length)return new j([B.outputOf(new Map([[Qe.EVENT_RESULT_INTEGER.getName(),-1]]))]);if(n<0||n>t.length||t.length<r.length)throw new $("Given from second source is more than the size of the source array");let s=r.length,a=-1;for(let e=n;e<t.length;e++){let n=0;if(0==Ge.compare(t[e],r[n])){for(;n<s&&0==Ge.compare(t[e+n],r[n]);)n++;if(n==s){a=e;break}}}return new j([B.outputOf(new Map([[Qe.EVENT_RESULT_INTEGER.getName(),a]]))])}}class Ke extends ye{constructor(){super("LastIndexOf",[Ke.PARAMETER_ARRAY_SOURCE,Ke.PARAMETER_ANY_NOT_NULL,Ke.PARAMETER_INT_FIND_FROM],Ke.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(Ke.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(Ke.PARAMETER_ANY_NOT_NULL.getParameterName());let n=e?.getArguments()?.get(Ke.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new j([B.outputOf(new Map([[Ke.EVENT_RESULT_INTEGER.getName(),-1]]))]);if(n<0||n>t.length)throw new $("The value of length shouldn't the exceed the size of the array or shouldn't be in terms");let s=-1;for(let e=t.length-1;e>=n;e--)if(0==Ge.compare(t[e],r)){s=e;break}return new j([B.outputOf(new Map([[Ke.EVENT_RESULT_INTEGER.getName(),s]]))])}}class Ze extends ye{constructor(){super("LastIndexOfArray",[Ze.PARAMETER_ARRAY_SOURCE,Ze.PARAMETER_ARRAY_SECOND_SOURCE,Ze.PARAMETER_INT_FIND_FROM],Ze.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(Ze.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Ze.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(Ze.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new j([B.outputOf(new Map([[Ze.EVENT_RESULT_ARRAY.getName(),-1]]))]);if(n<0||n>t.length||r.length>t.length)throw new $("Given from index is more than the size of the source array");let s=r.length,a=-1;for(let e=n;e<t.length;e++){let n=0;if(0==Ge.compare(t[e],r[n])){for(;n<s&&0==Ge.compare(t[e+n],r[n]);)n++;n==s&&(a=e)}}return new j([B.outputOf(new Map([[Ze.EVENT_RESULT_INTEGER.getName(),a]]))])}}class et extends ye{constructor(){super("Max",[et.PARAMETER_ARRAY_SOURCE_PRIMITIVE],et.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(et.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==t.length)throw new $("Search source array cannot be empty");let r=t[0];for(let e=1;e<t.length;e++){let n=t[e];Ge.comparePrimitive(r,n)>=0||(r=n)}return new j([B.outputOf(new Map([[et.EVENT_RESULT_ANY.getName(),r]]))])}}class tt extends ye{constructor(){super("Min",[tt.PARAMETER_ARRAY_SOURCE_PRIMITIVE],tt.EVENT_RESULT_ANY)}async internalExecute(e){let t,r=e?.getArguments()?.get(tt.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==r.length)throw new $("Search source array cannot be empty");for(let e=0;e<r.length;e++)E(r[e])||(void 0===t||Ge.comparePrimitive(r[e],t)<0)&&(t=r[e]);return new j([B.outputOf(new Map([[tt.EVENT_RESULT_ANY.getName(),t]]))])}}class rt extends ye{constructor(){super("MisMatch",[rt.PARAMETER_ARRAY_SOURCE,rt.PARAMETER_INT_FIND_FROM,rt.PARAMETER_ARRAY_SECOND_SOURCE,rt.PARAMETER_INT_SECOND_SOURCE_FROM,rt.PARAMETER_INT_LENGTH],rt.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(rt.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(rt.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(rt.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(rt.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(rt.PARAMETER_INT_LENGTH.getParameterName()),i=r<t.length&&r>0?r:0,o=s<n.length&&s>0?s:0;if(i+a>=t.length||o+a>n.length)throw new $("The size of the array for first and second which was being requested is more than size of the given array");let E=-1;for(let e=0;e<a;e++)if(t[i+e]!=n[o+e]){E=e;break}return new j([B.outputOf(new Map([[rt.EVENT_RESULT_INTEGER.getName(),E]]))])}}class nt extends ye{constructor(){super("Reverse",[nt.PARAMETER_ARRAY_SOURCE,nt.PARAMETER_INT_SOURCE_FROM,nt.PARAMETER_INT_LENGTH],nt.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(nt.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(nt.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(nt.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),n>=t.length||n<0||r<0)throw new $("Please provide start point between the start and end indexes or provide the length which was less than the source size ");let s=r+n-1;for(;r<=s;){let e=t[r],n=t[s];t[r++]=n,t[s--]=e}return new j([B.outputOf(new Map([]))])}}class st extends ye{constructor(){super("Rotate",[st.PARAMETER_ARRAY_SOURCE,st.PARAMETER_ROTATE_LENGTH],st.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(st.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(st.PARAMETER_ROTATE_LENGTH.getParameterName());if(0==t.length)return new j([B.outputOf(new Map([]))]);let n=t.length;return r%=n,this.rotate(t,0,r-1),this.rotate(t,r,n-1),this.rotate(t,0,n-1),new j([B.outputOf(new Map([]))])}rotate(e,t,r){for(;t<r;){let n=e[t];e[t++]=e[r],e[r--]=n}}}class at extends ye{constructor(){super("Shuffle",[at.PARAMETER_ARRAY_SOURCE],at.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(at.PARAMETER_ARRAY_SOURCE.getParameterName());if(t.length<=1)return new j([B.outputOf(new Map([]))]);let r=0,n=t.length;for(let e=0;e<n;e++){let e=Math.floor(Math.random()*n)%n,s=t[r];t[r]=t[e],t[e]=s,r=e}return new j([B.outputOf(new Map([]))])}}class it extends ye{constructor(){super("Sort",[it.PARAMETER_ARRAY_SOURCE_PRIMITIVE,it.PARAMETER_INT_FIND_FROM,it.PARAMETER_INT_LENGTH,it.PARAMETER_BOOLEAN_ASCENDING],it.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(it.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName()),r=e?.getArguments()?.get(it.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(it.PARAMETER_INT_LENGTH.getParameterName()),s=e?.getArguments()?.get(it.PARAMETER_BOOLEAN_ASCENDING.getParameterName());if(0==t.length)return new j([B.outputOf(new Map([[it.EVENT_RESULT_EMPTY.getName(),t]]))]);if(-1==n&&(n=t.length-r),r<0||r>=t.length||r+n>t.length)throw new $("Given start point is more than the size of the array or not available at that point");let a=t.slice(r,r+n+1);return a.sort(((e,t)=>function(e,t,r){return e===t?0:null===e?1:null===t?-1:r?e<t?1:-1:e<t?-1:1}(e,t,s))),t.splice(r,n,...a),new j([B.outputOf(new Map([[it.EVENT_RESULT_EMPTY.getName(),t]]))])}}class ot extends ye{constructor(){super("SubArray",[ot.PARAMETER_ARRAY_SOURCE,ot.PARAMETER_INT_FIND_FROM,ot.PARAMETER_INT_LENGTH],ot.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(ot.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ot.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(ot.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),n<=0)return new j([B.outputOf(new Map([]))]);if(!(r>=0&&r<t.length)||r+n>t.length)throw new $("Given find from point is more than the source size array or the Requested length for the subarray was more than the source size");let s=t.slice(r,r+n);return new j([B.outputOf(new Map([[ot.EVENT_RESULT_ARRAY.getName(),s]]))])}}class Et extends ye{constructor(){super("Insert",[Et.PARAMETER_ARRAY_SOURCE,Et.PARAMETER_INT_OFFSET,Et.PARAMETER_ANY],Et.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(Et.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Et.PARAMETER_INT_OFFSET.getParameterName());var n=e?.getArguments()?.get(Et.PARAMETER_ANY.getParameterName());if(E(n)||E(r)||r>t.length)throw new $("Please valid resouces to insert at the correct location");if(0==t.length)return 0==r&&t.push(n),new j([B.outputOf(new Map([]))]);t.push(n);let s=t.length-1;for(r++;s>=r;){let e=t[s-1];t[s-1]=t[s],t[s--]=e}return new j([B.outputOf(new Map([]))])}}class ut{static repoMap=G.ofArrayEntries(C(new xe),C(new ve),C(new be),C(new Ye),C(new Be),C(new He),C(new ke),C(new $e),C(new je),C(new Xe),C(new We),C(new qe),C(new Je),C(new ze),C(new Qe),C(new Ke),C(new Ze),C(new et),C(new tt),C(new rt),C(new nt),C(new st),C(new at),C(new it),C(new ot),C(new Le),C(new Et));static filterableNames=Array.from(ut.repoMap.values()).map((e=>e.getSignature().getFullName()));find(e,t){if(e==a.SYSTEM_ARRAY)return ut.repoMap.get(t)}filter(e){return ut.filterableNames.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}var At={};t(At,"ContextElement",(()=>lt));class lt{static NULL=new lt(S.NULL,void 0);constructor(e,t){this.schema=e,this.element=t}getSchema(){return this.schema}setSchema(e){return this.schema=e,this}getElement(){return this.element}setElement(e){return this.element=e,this}}const gt=new W("Create").setNamespace(a.SYSTEM_CTX).setParameters(new Map([y.ofEntry("name",(new S).setName("name").setType(f.of(l.STRING)).setMinLength(1).setFormat(Me.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,d.CONSTANT),y.ofEntry("schema",S.SCHEMA,!1,d.CONSTANT)])).setEvents(new Map([Y.outputEventMapEntry(new Map)]));const mt=new W("Get").setNamespace(a.SYSTEM_CTX).setParameters(new Map([y.ofEntry("name",(new S).setName("name").setType(f.of(l.STRING)).setMinLength(1).setFormat(Me.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,d.CONSTANT)])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",S.ofAny("value")]]))]));var Rt={};t(Rt,"Expression",(()=>xt));var pt={};t(pt,"LinkedList",(()=>ht));var Tt={};function ct(e,t){let r=new ht;r.push(e);let n=new ht;for(n.push(t);!r.isEmpty()&&!n.isEmpty();){const e=r.pop(),t=n.pop();if(e===t)continue;const s=typeof e,a=typeof t;if("undefined"===s||"undefined"===a){if(!e&&!t)continue;return!1}if(s!==a)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!=t.length)return!1;for(let s=0;s<e.length;s++)r.push(e[s]),n.push(t[s])}else{if("object"!==s)return!1;{const s=Object.entries(e),a=Object.entries(t);if(s.length!==a.length)return!1;for(const[e,a]of s)r.push(a),n.push(t[e])}}}return!0}t(Tt,"deepEqual",(()=>ct));class ht{head=void 0;tail=void 0;length=0;constructor(e){if(e?.length){for(const t of e)if(this.head){const e=new Nt(t,this.tail);this.tail.next=e,this.tail=e}else this.tail=this.head=new Nt(t);this.length=e.length}}push(e){const t=new Nt(e,void 0,this.head);this.head?(this.head.previous=t,this.head=t):this.tail=this.head=t,this.length++}pop(){if(!this.head)throw Error("List is empty and cannot pop further.");const e=this.head.value;if(this.length--,this.head==this.tail)return this.head=this.tail=void 0,e;const t=this.head;return this.head=t.next,t.next=void 0,t.previous=void 0,this.head.previous=void 0,e}isEmpty(){return!this.length}size(){return this.length}get(e){if(e<0||e>=this.length)throw new Error(`${e} is out of bounds [0,${this.length}]`);let t=this.head;for(;e>0;)t=this.head.next,--e;return t.value}set(e,t){if(e<0||e>=this.length)throw new $(K.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 Nt(e,this.head),this.head.next=this.tail):(this.tail=new Nt(e,this.tail),this.tail.previous.next=this.tail):this.head=this.tail=new Nt(e),this}map(e,t){let r=new ht,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(ct(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 Nt{constructor(e,t,r){this.value=e,this.next=r,this.previous=t}toString(){return""+this.value}}var ft={};t(ft,"StringBuilder",(()=>_t));class _t{constructor(e){this.str=e??""}append(e){return this.str+=e,this}toString(){return""+this.str}trim(){return this.str=this.str.trim(),this}setLength(e){return this.str=this.str.substring(0,e),this}length(){return this.str.length}charAt(e){return this.str.charAt(e)}deleteCharAt(e){return this.checkIndex(e),this.str=this.str.substring(0,e)+this.str.substring(e+1),this}insert(e,t){return this.str=this.str.substring(0,e)+t+this.str.substring(e),this}checkIndex(e){if(e>=this.str.length)throw new $(`Index ${e} is greater than or equal to ${this.str.length}`)}substring(e,t){return this.str.substring(e,t)}}var St={};t(St,"ExpressionEvaluationException",(()=>Mt));class Mt extends Error{constructor(e,t,r){super(K.format("$ : $",e,t)),this.cause=r}getCause(){return this.cause}}var Ot={};t(Ot,"ExpressionToken",(()=>wt));class wt{constructor(e){this.expression=e}getExpression(){return this.expression}toString(){return this.expression}}var It={};t(It,"ExpressionTokenValue",(()=>dt));class dt extends wt{constructor(e,t){super(e),this.element=t}getTokenValue(){return this.element}getElement(){return this.element}toString(){return K.format("$: $",this.expression,this.element)}}var Pt={};t(Pt,"Operation",(()=>yt));class yt{static MULTIPLICATION=new yt("*");static DIVISION=new yt("/");static INTEGER_DIVISION=new yt("//");static MOD=new yt("%");static ADDITION=new yt("+");static SUBTRACTION=new yt("-");static NOT=new yt("not",void 0,!0);static AND=new yt("and",void 0,!0);static OR=new yt("or",void 0,!0);static LESS_THAN=new yt("<");static LESS_THAN_EQUAL=new yt("<=");static GREATER_THAN=new yt(">");static GREATER_THAN_EQUAL=new yt(">=");static EQUAL=new yt("=");static NOT_EQUAL=new yt("!=");static BITWISE_AND=new yt("&");static BITWISE_OR=new yt("|");static BITWISE_XOR=new yt("^");static BITWISE_COMPLEMENT=new yt("~");static BITWISE_LEFT_SHIFT=new yt("<<");static BITWISE_RIGHT_SHIFT=new yt(">>");static BITWISE_UNSIGNED_RIGHT_SHIFT=new yt(">>>");static UNARY_PLUS=new yt("UN: +","+");static UNARY_MINUS=new yt("UN: -","-");static UNARY_LOGICAL_NOT=new yt("UN: not","not");static UNARY_BITWISE_COMPLEMENT=new yt("UN: ~","~");static ARRAY_OPERATOR=new yt("[");static OBJECT_OPERATOR=new yt(".");static NULLISH_COALESCING_OPERATOR=new yt("??");static CONDITIONAL_TERNARY_OPERATOR=new yt("?");static VALUE_OF=new Map([["MULTIPLICATION",yt.MULTIPLICATION],["DIVISION",yt.DIVISION],["INTEGER_DIVISON",yt.INTEGER_DIVISION],["MOD",yt.MOD],["ADDITION",yt.ADDITION],["SUBTRACTION",yt.SUBTRACTION],["NOT",yt.NOT],["AND",yt.AND],["OR",yt.OR],["LESS_THAN",yt.LESS_THAN],["LESS_THAN_EQUAL",yt.LESS_THAN_EQUAL],["GREATER_THAN",yt.GREATER_THAN],["GREATER_THAN_EQUAL",yt.GREATER_THAN_EQUAL],["EQUAL",yt.EQUAL],["NOT_EQUAL",yt.NOT_EQUAL],["BITWISE_AND",yt.BITWISE_AND],["BITWISE_OR",yt.BITWISE_OR],["BITWISE_XOR",yt.BITWISE_XOR],["BITWISE_COMPLEMENT",yt.BITWISE_COMPLEMENT],["BITWISE_LEFT_SHIFT",yt.BITWISE_LEFT_SHIFT],["BITWISE_RIGHT_SHIFT",yt.BITWISE_RIGHT_SHIFT],["BITWISE_UNSIGNED_RIGHT_SHIFT",yt.BITWISE_UNSIGNED_RIGHT_SHIFT],["UNARY_PLUS",yt.UNARY_PLUS],["UNARY_MINUS",yt.UNARY_MINUS],["UNARY_LOGICAL_NOT",yt.UNARY_LOGICAL_NOT],["UNARY_BITWISE_COMPLEMENT",yt.UNARY_BITWISE_COMPLEMENT],["ARRAY_OPERATOR",yt.ARRAY_OPERATOR],["OBJECT_OPERATOR",yt.OBJECT_OPERATOR],["NULLISH_COALESCING_OPERATOR",yt.NULLISH_COALESCING_OPERATOR],["CONDITIONAL_TERNARY_OPERATOR",yt.CONDITIONAL_TERNARY_OPERATOR]]);static UNARY_OPERATORS=new Set([yt.ADDITION,yt.SUBTRACTION,yt.NOT,yt.BITWISE_COMPLEMENT,yt.UNARY_PLUS,yt.UNARY_MINUS,yt.UNARY_LOGICAL_NOT,yt.UNARY_BITWISE_COMPLEMENT]);static ARITHMETIC_OPERATORS=new Set([yt.MULTIPLICATION,yt.DIVISION,yt.INTEGER_DIVISION,yt.MOD,yt.ADDITION,yt.SUBTRACTION]);static LOGICAL_OPERATORS=new Set([yt.NOT,yt.AND,yt.OR,yt.LESS_THAN,yt.LESS_THAN_EQUAL,yt.GREATER_THAN,yt.GREATER_THAN_EQUAL,yt.EQUAL,yt.NOT_EQUAL,yt.NULLISH_COALESCING_OPERATOR]);static BITWISE_OPERATORS=new Set([yt.BITWISE_AND,yt.BITWISE_COMPLEMENT,yt.BITWISE_LEFT_SHIFT,yt.BITWISE_OR,yt.BITWISE_RIGHT_SHIFT,yt.BITWISE_UNSIGNED_RIGHT_SHIFT,yt.BITWISE_XOR]);static CONDITIONAL_OPERATORS=new Set([yt.CONDITIONAL_TERNARY_OPERATOR]);static OPERATOR_PRIORITY=new Map([[yt.UNARY_PLUS,1],[yt.UNARY_MINUS,1],[yt.UNARY_LOGICAL_NOT,1],[yt.UNARY_BITWISE_COMPLEMENT,1],[yt.ARRAY_OPERATOR,1],[yt.OBJECT_OPERATOR,1],[yt.MULTIPLICATION,2],[yt.DIVISION,2],[yt.INTEGER_DIVISION,2],[yt.MOD,2],[yt.ADDITION,3],[yt.SUBTRACTION,3],[yt.BITWISE_LEFT_SHIFT,4],[yt.BITWISE_RIGHT_SHIFT,4],[yt.BITWISE_UNSIGNED_RIGHT_SHIFT,4],[yt.LESS_THAN,5],[yt.LESS_THAN_EQUAL,5],[yt.GREATER_THAN,5],[yt.GREATER_THAN_EQUAL,5],[yt.EQUAL,6],[yt.NOT_EQUAL,6],[yt.BITWISE_AND,7],[yt.BITWISE_XOR,8],[yt.BITWISE_OR,9],[yt.AND,10],[yt.OR,11],[yt.NULLISH_COALESCING_OPERATOR,11],[yt.CONDITIONAL_TERNARY_OPERATOR,12]]);static OPERATORS=new Set([...Array.from(yt.ARITHMETIC_OPERATORS),...Array.from(yt.LOGICAL_OPERATORS),...Array.from(yt.BITWISE_OPERATORS),yt.ARRAY_OPERATOR,yt.OBJECT_OPERATOR,...Array.from(yt.CONDITIONAL_OPERATORS)].map((e=>e.getOperator())));static OPERATORS_WITHOUT_SPACE_WRAP=new Set([...Array.from(yt.ARITHMETIC_OPERATORS),...Array.from(yt.LOGICAL_OPERATORS),...Array.from(yt.BITWISE_OPERATORS),yt.ARRAY_OPERATOR,yt.OBJECT_OPERATOR,...Array.from(yt.CONDITIONAL_OPERATORS)].filter((e=>!e.shouldBeWrappedInSpace())).map((e=>e.getOperator())));static OPERATION_VALUE_OF=new Map(Array.from(yt.VALUE_OF.entries()).map((([e,t])=>[t.getOperator(),t])));static UNARY_MAP=new Map([[yt.ADDITION,yt.UNARY_PLUS],[yt.SUBTRACTION,yt.UNARY_MINUS],[yt.NOT,yt.UNARY_LOGICAL_NOT],[yt.BITWISE_COMPLEMENT,yt.UNARY_BITWISE_COMPLEMENT],[yt.UNARY_PLUS,yt.UNARY_PLUS],[yt.UNARY_MINUS,yt.UNARY_MINUS],[yt.UNARY_LOGICAL_NOT,yt.UNARY_LOGICAL_NOT],[yt.UNARY_BITWISE_COMPLEMENT,yt.UNARY_BITWISE_COMPLEMENT]]);static BIGGEST_OPERATOR_SIZE=Array.from(yt.VALUE_OF.values()).map((e=>e.getOperator())).filter((e=>!e.startsWith("UN: "))).map((e=>e.length)).reduce(((e,t)=>e>t?e:t),0);constructor(e,t,r=!1){this.operator=e,this.operatorName=t??e,this._shouldBeWrappedInSpace=r}getOperator(){return this.operator}getOperatorName(){return this.operatorName}shouldBeWrappedInSpace(){return this._shouldBeWrappedInSpace}valueOf(e){return yt.VALUE_OF.get(e)}toString(){return this.operator}}class xt extends wt{tokens=new ht;ops=new ht;constructor(e,t,r,n){super(e||""),t&&this.tokens.push(t),r&&this.tokens.push(r),n&&this.ops.push(n),this.evaluate()}getTokens(){return this.tokens}getOperations(){return this.ops}evaluate(){const e=this.expression.length;let t,r="",n=new _t(""),s=0,a=!1;for(;s<e;){switch(r=this.expression[s],t=n.toString(),r){case" ":a=this.processTokenSepearator(n,t,a);break;case"(":s=this.processSubExpression(e,n,t,s,a),a=!1;break;case")":throw new Mt(this.expression,"Extra closing parenthesis found");case"]":throw new Mt(this.expression,"Extra closing square bracket found");case"'":case'"':{let t=this.processStringLiteral(e,r,s);s=t.getT1(),a=t.getT2();break}case"?":if(s+1<e&&"?"!=this.expression.charAt(s+1)&&0!=s&&"?"!=this.expression.charAt(s-1))s=this.processTernaryOperator(e,n,t,s,a);else{let i=this.processOthers(r,e,n,t,s,a);s=i.getT1(),a=i.getT2(),a&&this.ops.peek()==yt.ARRAY_OPERATOR&&(i=this.process(e,n,s),s=i.getT1(),a=i.getT2())}break;default:let i=this.processOthers(r,e,n,t,s,a);s=i.getT1(),a=i.getT2(),a&&this.ops.peek()==yt.ARRAY_OPERATOR&&(i=this.process(e,n,s),s=i.getT1(),a=i.getT2())}++s}if(t=n.toString(),!Z.isNullOrBlank(t)){if(yt.OPERATORS.has(t))throw new Mt(this.expression,"Expression is ending with an operator");this.tokens.push(new wt(t))}}processStringLiteral(e,t,r){let n="",s=r+1;for(;s<e;s++){let e=this.expression.charAt(s);if(e==t&&"\\"!=this.expression.charAt(s-1))break;n+=e}if(s==e&&this.expression.charAt(s-1)!=t)throw new Mt(this.expression,"Missing string ending marker "+t);let a=new re(s,!1);return this.tokens.push(new dt(n,n)),a}process(e,t,r){let n=1;for(++r;r<e&&0!=n;){let e=this.expression.charAt(r);"]"==e?--n:"["==e&&++n,0!=n&&(t.append(e),r++)}return this.tokens.push(new xt(t.toString())),t.setLength(0),new re(r,!1)}processOthers(e,t,r,n,s,a){let i=t-s;i=i<yt.BIGGEST_OPERATOR_SIZE?i:yt.BIGGEST_OPERATOR_SIZE;for(let e=i;e>0;e--){let t=this.expression.substring(s,s+e);if(yt.OPERATORS_WITHOUT_SPACE_WRAP.has(t))return Z.isNullOrBlank(n)||(this.tokens.push(new wt(n)),a=!1),this.checkUnaryOperator(this.tokens,this.ops,yt.OPERATION_VALUE_OF.get(t),a),a=!0,r.setLength(0),new re(s+e-1,a)}return r.append(e),new re(s,!1)}processTernaryOperator(e,t,r,n,s){if(s)throw new Mt(this.expression,"Ternary operator is followed by an operator");""!=r.trim()&&(this.tokens.push(new xt(r)),t.setLength(0));let a=1,i="";const o=++n;for(;n<e&&a>0;)i=this.expression.charAt(n),"?"==i?++a:":"==i&&--a,++n;if(":"!=i)throw new Mt(this.expression,"':' operater is missing");if(n>=e)throw new Mt(this.expression,"Third part of the ternary expression is missing");for(;!this.ops.isEmpty()&&this.hasPrecedence(yt.CONDITIONAL_TERNARY_OPERATOR,this.ops.peek());){let e=this.ops.pop();if(yt.UNARY_OPERATORS.has(e)){const t=this.tokens.pop();this.tokens.push(new xt("",t,void 0,e))}else{let t=this.tokens.pop(),r=this.tokens.pop();this.tokens.push(new xt("",r,t,e))}}this.ops.push(yt.CONDITIONAL_TERNARY_OPERATOR),this.tokens.push(new xt(this.expression.substring(o,n-1)));const E=this.expression.substring(n);if(""===E.trim())throw new Mt(this.expression,"Third part of the ternary expression is missing");return this.tokens.push(new xt(E)),e-1}processSubExpression(e,t,r,n,s){if(yt.OPERATORS.has(r))this.checkUnaryOperator(this.tokens,this.ops,yt.OPERATION_VALUE_OF.get(r),s),t.setLength(0);else if(!Z.isNullOrBlank(r))throw new Mt(this.expression,K.format("Unkown token : $ found.",r));let a=1;const i=new _t;let o=this.expression.charAt(n);for(n++;n<e&&a>0;)o=this.expression.charAt(n),"("==o?a++:")"==o&&a--,0!=a&&(i.append(o),n++);if(")"!=o)throw new Mt(this.expression,"Missing a closed parenthesis");for(;i.length()>2&&"("==i.charAt(0)&&")"==i.charAt(i.length()-1);)i.deleteCharAt(0),i.setLength(i.length()-1);return this.tokens.push(new xt(i.toString().trim())),n}processTokenSepearator(e,t,r){return Z.isNullOrBlank(t)||(yt.OPERATORS.has(t)?(this.checkUnaryOperator(this.tokens,this.ops,yt.OPERATION_VALUE_OF.get(t),r),r=!0):(this.tokens.push(new wt(t)),r=!1)),e.setLength(0),r}checkUnaryOperator(e,t,r,n){if(r)if(n||e.isEmpty()){if(!yt.UNARY_OPERATORS.has(r))throw new Mt(this.expression,K.format("Extra operator $ found.",r));{const e=yt.UNARY_MAP.get(r);e&&t.push(e)}}else{for(;!t.isEmpty()&&this.hasPrecedence(r,t.peek());){let r=t.pop();if(yt.UNARY_OPERATORS.has(r)){let t=e.pop();e.push(new xt("",t,void 0,r))}else{let t=e.pop(),n=e.pop();e.push(new xt("",n,t,r))}}t.push(r)}}hasPrecedence(e,t){let r=yt.OPERATOR_PRIORITY.get(e),n=yt.OPERATOR_PRIORITY.get(t);if(!r||!n)throw new Error("Unknown operators provided");return n<r}toString(){if(this.ops.isEmpty())return 1==this.tokens.size()?this.tokens.get(0).toString():"Error: No tokens";let e=new _t,t=0;const r=this.ops.toArray(),n=this.tokens.toArray();for(let s=0;s<r.length;s++)if(r[s].getOperator().startsWith("UN: "))e.append("(").append(r[s].getOperator().substring(4)).append(n[t]instanceof xt?n[t].toString():n[t]).append(")"),t++;else if(r[s]==yt.CONDITIONAL_TERNARY_OPERATOR){let r=n[t++];e.insert(0,r.toString()),e.insert(0,":"),r=n[t++],e.insert(0,r.toString()),e.insert(0,"?"),r=n[t++],e.insert(0,r.toString()).append(")"),e.insert(0,"(")}else{if(0==t){const r=n[t++];e.insert(0,r.toString())}const a=n[t++];e.insert(0,r[s].getOperator()).insert(0,a.toString()).insert(0,"(").append(")")}return e.toString()}equals(e){return this.expression==e.expression}}var vt={};t(vt,"ExpressionEvaluator",(()=>jr));var Lt={};t(Lt,"LogicalNullishCoalescingOperator",(()=>Vt));var Ut={};t(Ut,"BinaryOperator",(()=>Ct));class Ct{nullCheck(e,t,r){if(E(e)||E(t))throw new Ve(K.format("$ cannot be applied to a null value",r.getOperatorName()))}}class Vt extends Ct{apply(e,t){return E(e)?t:e}}var Gt={};t(Gt,"ArithmeticAdditionOperator",(()=>bt));class bt extends Ct{apply(e,t){return this.nullCheck(e,t,yt.ADDITION),e+t}}var Dt={};t(Dt,"ArithmeticDivisionOperator",(()=>Ft));class Ft extends Ct{apply(e,t){return this.nullCheck(e,t,yt.DIVISION),e/t}}var Yt={};t(Yt,"ArithmeticIntegerDivisionOperator",(()=>Bt));class Bt extends Ct{apply(e,t){return this.nullCheck(e,t,yt.DIVISION),Math.floor(e/t)}}var Ht={};t(Ht,"ArithmeticModulusOperator",(()=>kt));class kt extends Ct{apply(e,t){return this.nullCheck(e,t,yt.MOD),e%t}}var $t={};t($t,"ArithmeticMultiplicationOperator",(()=>jt));class jt extends Ct{apply(e,t){this.nullCheck(e,t,yt.MULTIPLICATION);const r="string"==typeof e;if(r||"string"===typeof t){let n=r?e:t,s=r?t:e,a="",i=s<0;s=Math.abs(s);let o=Math.floor(s);for(;o-- >0;)a+=n;let E=Math.floor(n.length*(s-Math.floor(s)));if(E<0&&(E=-E),0!=E&&(a+=n.substring(0,E)),i){let e="";for(let t=a.length-1;t>=0;t--)e+=a[t];return e}return a}return e*t}}var Xt={};t(Xt,"ArithmeticSubtractionOperator",(()=>Wt));class Wt extends Ct{apply(e,t){return this.nullCheck(e,t,yt.SUBTRACTION),e-t}}var qt={};t(qt,"ArrayOperator",(()=>Jt));class Jt extends Ct{apply(e,t){if(!e)throw new Ve("Cannot apply array operator on a null value");if(!t)throw new Ve("Cannot retrive null index value");if(!Array.isArray(e)&&"string"!=typeof e)throw new Ve(K.format("Cannot retrieve value from a primitive value $",e));if(t>=e.length)throw new Ve(K.format("Cannot retrieve index $ from the array of length $",t,e.length));return e[t]}}var zt={};t(zt,"BitwiseAndOperator",(()=>Qt));class Qt extends Ct{apply(e,t){return this.nullCheck(e,t,yt.BITWISE_AND),e&t}}var Kt={};t(Kt,"BitwiseLeftShiftOperator",(()=>Zt));class Zt extends Ct{apply(e,t){return this.nullCheck(e,t,yt.BITWISE_LEFT_SHIFT),e<<t}}var er={};t(er,"BitwiseOrOperator",(()=>tr));class tr extends Ct{apply(e,t){return this.nullCheck(e,t,yt.BITWISE_OR),e|t}}var rr={};t(rr,"BitwiseRightShiftOperator",(()=>nr));class nr extends Ct{apply(e,t){return this.nullCheck(e,t,yt.BITWISE_RIGHT_SHIFT),e>>t}}var sr={};t(sr,"BitwiseUnsignedRightShiftOperator",(()=>ar));class ar extends Ct{apply(e,t){return this.nullCheck(e,t,yt.BITWISE_UNSIGNED_RIGHT_SHIFT),e>>>t}}var ir={};t(ir,"BitwiseXorOperator",(()=>or));class or extends Ct{apply(e,t){return this.nullCheck(e,t,yt.BITWISE_XOR),e^t}}var Er={};t(Er,"LogicalAndOperator",(()=>ur));class ur extends Ct{apply(e,t){const r=Ge.findPrimitiveNullAsBoolean(e),n=Ge.findPrimitiveNullAsBoolean(t);if(r.getT1()!=l.BOOLEAN)throw new Ve(K.format("Boolean value expected but found $",r.getT2()));if(n.getT1()!=l.BOOLEAN)throw new Ve(K.format("Boolean value expected but found $",n.getT2()));return r.getT2()&&n.getT2()}}var Ar={};t(Ar,"LogicalEqualOperator",(()=>lr));class lr extends Ct{apply(e,t){return ct(e,t)}}var gr={};t(gr,"LogicalGreaterThanEqualOperator",(()=>mr));class mr extends Ct{apply(e,t){const r=Ge.findPrimitiveNullAsBoolean(e),n=Ge.findPrimitiveNullAsBoolean(t);if(r.getT1()==l.BOOLEAN||n.getT1()==l.BOOLEAN)throw new Ve(K.format("Cannot compare >= with the values $ and $",r.getT2(),n.getT2()));return r.getT2()>=n.getT2()}}var Rr={};t(Rr,"LogicalGreaterThanOperator",(()=>pr));class pr extends Ct{apply(e,t){const r=Ge.findPrimitiveNullAsBoolean(e),n=Ge.findPrimitiveNullAsBoolean(t);if(r.getT1()==l.BOOLEAN||n.getT1()==l.BOOLEAN)throw new Ve(K.format("Cannot compare > with the values $ and $",r.getT2(),n.getT2()));return r.getT2()>n.getT2()}}var Tr={};t(Tr,"LogicalLessThanEqualOperator",(()=>cr));class cr extends Ct{apply(e,t){const r=Ge.findPrimitiveNullAsBoolean(e),n=Ge.findPrimitiveNullAsBoolean(t);if(r.getT1()==l.BOOLEAN||n.getT1()==l.BOOLEAN)throw new Ve(K.format("Cannot compare <= with the values $ and $",r.getT2(),n.getT2()));return r.getT2()<=n.getT2()}}var hr={};t(hr,"LogicalLessThanOperator",(()=>Nr));class Nr extends Ct{apply(e,t){const r=Ge.findPrimitiveNullAsBoolean(e),n=Ge.findPrimitiveNullAsBoolean(t);if(r.getT1()==l.BOOLEAN||n.getT1()==l.BOOLEAN)throw new Ve(K.format("Cannot compare < with the values $ and $",r.getT2(),n.getT2()));return r.getT2()<n.getT2()}}var fr={};t(fr,"LogicalNotEqualOperator",(()=>_r));class _r extends Ct{apply(e,t){return!ct(e,t)}}var Sr={};t(Sr,"LogicalOrOperator",(()=>Mr));class Mr extends Ct{apply(e,t){const r=Ge.findPrimitiveNullAsBoolean(e),n=Ge.findPrimitiveNullAsBoolean(t);if(r.getT1()!=l.BOOLEAN)throw new Ve(K.format("Boolean value expected but found $",r.getT2()));if(n.getT1()!=l.BOOLEAN)throw new Ve(K.format("Boolean value expected but found $",n.getT2()));return r.getT2()||n.getT2()}}var Or={};t(Or,"ObjectOperator",(()=>wr));class wr extends Ct{apply(e,t){if(!e)throw new Ve("Cannot apply array operator on a null value");if(!t)throw new Ve("Cannot retrive null property value");const r=typeof e;if(!Array.isArray(e)&&"string"!=r&&"object"!=r)throw new Ve(K.format("Cannot retrieve value from a primitive value $",e));return e[t]}}var Ir={};t(Ir,"ArithmeticUnaryMinusOperator",(()=>yr));var dr={};t(dr,"UnaryOperator",(()=>Pr));class Pr{nullCheck(e,t){if(E(e))throw new Ve(K.format("$ cannot be applied to a null value",t.getOperatorName()))}}class yr extends Pr{apply(e){return this.nullCheck(e,yt.UNARY_MINUS),Ge.findPrimitiveNumberType(e),-e}}var xr={};t(xr,"ArithmeticUnaryPlusOperator",(()=>vr));class vr extends Pr{apply(e){return this.nullCheck(e,yt.UNARY_PLUS),Ge.findPrimitiveNumberType(e),e}}var Lr={};t(Lr,"BitwiseComplementOperator",(()=>Ur));class Ur extends Pr{apply(e){this.nullCheck(e,yt.UNARY_BITWISE_COMPLEMENT);let t=Ge.findPrimitiveNumberType(e);if(t.getT1()!=l.INTEGER&&t.getT1()!=l.LONG)throw new Ve(K.format("Unable to apply bitwise operator on $",e));return~e}}var Cr={};t(Cr,"LogicalNotOperator",(()=>Vr));class Vr extends Pr{apply(e){return!e&&""!==e}}var Gr={};t(Gr,"LiteralTokenValueExtractor",(()=>Yr));var br={};t(br,"TokenValueExtractor",(()=>Dr));class Dr{static REGEX_SQUARE_BRACKETS=/[\[\]]/;static REGEX_DOT=/\./;getValue(e){let t=this.getPrefix();if(!e.startsWith(t))throw new $(K.format("Token $ doesn't start with $",e,t));return this.getValueInternal(e)}retrieveElementFrom(e,t,r,n){if(E(n))return;if(t.length==r)return n;let s=t[r].split(Dr.REGEX_SQUARE_BRACKETS).map((e=>e.trim())).filter((e=>!Z.isNullOrBlank(e))).reduce(((n,s,a)=>this.resolveForEachPartOfTokenWithBrackets(e,t,r,s,n,a)),n);return this.retrieveElementFrom(e,t,r+1,s)}resolveForEachPartOfTokenWithBrackets(e,t,r,n,s,a){if(!E(s)){if(0===a){if("length"===n&&"string"==typeof s)return s.length;if(Array.isArray(s)){if("length"===n)return s.length;try{let e=parseInt(n);if(isNaN(e))throw new Error(K.format("$ is not a number",e));if(e>=s.length)return;return s[e]}catch(t){throw new Mt(e,K.format("$ couldn't be parsed into integer in $",n,e),t)}}return this.checkIfObject(e,t,r,s),s[n]}if(n?.startsWith('"')){if(!n.endsWith('"')||1==n.length||2==n.length)throw new Mt(e,K.format("$ is missing a double quote or empty key found",e));return this.checkIfObject(e,t,r,s),s[n.substring(1,n.length-1)]}try{let t=parseInt(n);if(isNaN(t))throw new Error(K.format("$ is not a number",t));if(!Array.isArray(s))throw new Mt(e,K.format("Expecting an array with index $ while processing the expression",t,e));if(t>=s.length)return;return s[t]}catch(t){throw new Mt(e,K.format("$ couldn't be parsed into integer in $",n,e),t)}}}checkIfObject(e,t,r,n){if("object"!=typeof n||Array.isArray(n))throw new Mt(e,K.format("Unable to retrive $ from $ in the path $",t[r],n.toString(),e))}}const Fr=new Map([["true",!0],["false",!1],["null",void 0],["undefined",void 0]]);class Yr extends Dr{static INSTANCE=new Yr;getValueInternal(e){if(!Z.isNullOrBlank(e))return e=e.trim(),Fr.has(e)?Fr.get(e):e.startsWith('"')?this.processString(e):this.processNumbers(e)}processNumbers(e){try{let t=Number(e);if(isNaN(t))throw new Error("Parse number error");return t}catch(t){throw new Mt(e,K.format("Unable to parse the literal or expression $",e),t)}}processString(e){if(!e.endsWith('"'))throw new Mt(e,K.format("String literal $ is not closed properly",e));return e.substring(1,e.length-1)}getPrefix(){return""}}var Br={},Hr={};t(Hr,"ConditionalTernaryOperator",(()=>kr));class kr extends class{nullCheck(e,t,r,n){if(E(e)||E(t)||E(r))throw new Ve(K.format("$ cannot be applied to a null value",n.getOperatorName()))}}{apply(e,t,r){return e?t:r}}e(Br,Hr);class $r extends Dr{static PREFIX="_internal.";values=new Map;addValue(e,t){this.values.set(e,t)}getValueInternal(e){let t=e.split(Dr.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 $r.PREFIX}}class jr{static UNARY_OPERATORS_MAP=new Map([[yt.UNARY_BITWISE_COMPLEMENT,new Ur],[yt.UNARY_LOGICAL_NOT,new Vr],[yt.UNARY_MINUS,new yr],[yt.UNARY_PLUS,new vr]]);static TERNARY_OPERATORS_MAP=new Map([[yt.CONDITIONAL_TERNARY_OPERATOR,new kr]]);static BINARY_OPERATORS_MAP=new Map([[yt.ADDITION,new bt],[yt.DIVISION,new Ft],[yt.INTEGER_DIVISION,new Bt],[yt.MOD,new kt],[yt.MULTIPLICATION,new jt],[yt.SUBTRACTION,new Wt],[yt.BITWISE_AND,new Qt],[yt.BITWISE_LEFT_SHIFT,new Zt],[yt.BITWISE_OR,new tr],[yt.BITWISE_RIGHT_SHIFT,new nr],[yt.BITWISE_UNSIGNED_RIGHT_SHIFT,new ar],[yt.BITWISE_XOR,new or],[yt.AND,new ur],[yt.EQUAL,new lr],[yt.GREATER_THAN,new pr],[yt.GREATER_THAN_EQUAL,new mr],[yt.LESS_THAN,new Nr],[yt.LESS_THAN_EQUAL,new cr],[yt.OR,new Mr],[yt.NOT_EQUAL,new _r],[yt.NULLISH_COALESCING_OPERATOR,new Vt],[yt.ARRAY_OPERATOR,new Jt],[yt.OBJECT_OPERATOR,new wr]]);static UNARY_OPERATORS_MAP_KEY_SET=new Set(jr.UNARY_OPERATORS_MAP.keys());internalTokenValueExtractor=new $r;constructor(e){e instanceof xt?(this.exp=e,this.expression=this.exp.getExpression()):this.expression=e}evaluate(e){const t=this.processNestingExpression(this.expression,e);return this.expression=t.getT1(),this.exp=t.getT2(),(e=new Map(e.entries())).set(this.internalTokenValueExtractor.getPrefix(),this.internalTokenValueExtractor),this.evaluateExpression(this.exp,e)}processNestingExpression(e,t){let r=0,n=0;const s=new ht;for(;n<e.length-1;){if("{"==e.charAt(n)&&"{"==e.charAt(n+1))0==r&&s.push(new re(n+2,-1)),r++,n++;else if("}"==e.charAt(n)&&"}"==e.charAt(n+1)){if(r--,r<0)throw new Mt(e,"Expecting {{ nesting path operator to be started before closing");0==r&&s.push(s.pop().setT2(n)),n++}n++}let a=this.replaceNestingExpression(e,t,s);return new re(a,new xt(a))}replaceNestingExpression(e,t,r){let n=e;for(var s of r.toArray()){if(-1==s.getT2())throw new Mt(e,"Expecting }} nesting path operator to be closed");let r=new jr(n.substring(s.getT1(),s.getT2())).evaluate(t);n=n.substring(0,s.getT1()-2)+r+n.substring(s.getT2()+2)}return n}getExpression(){return this.exp||(this.exp=new xt(this.expression)),this.exp}getExpressionString(){return this.expression}evaluateExpression(e,t){let r=e.getOperations(),n=e.getTokens();for(;!r.isEmpty();){let e=r.pop(),o=n.pop();if(jr.UNARY_OPERATORS_MAP_KEY_SET.has(e))n.push(this.applyUnaryOperation(e,this.getValueFromToken(t,o)));else if(e==yt.OBJECT_OPERATOR||e==yt.ARRAY_OPERATOR)this.processObjectOrArrayOperator(t,r,n,e,o);else if(e==yt.CONDITIONAL_TERNARY_OPERATOR){const r=n.pop(),E=n.pop();var s=this.getValueFromToken(t,E),a=this.getValueFromToken(t,r),i=this.getValueFromToken(t,o);n.push(this.applyTernaryOperation(e,s,a,i))}else{const r=n.pop();s=this.getValueFromToken(t,r),a=this.getValueFromToken(t,o);n.push(this.applyBinaryOperation(e,s,a))}}if(n.isEmpty())throw new Ve(K.format("Expression : $ evaluated to null",e));if(1!=n.size())throw new Ve(K.format("Expression : $ evaluated multiple values $",e,n));const o=n.get(0);if(o instanceof dt)return o.getElement();if(!(o instanceof xt))return this.getValueFromToken(t,o);throw new Ve(K.format("Expression : $ evaluated to $",e,n.get(0)))}processObjectOrArrayOperator(e,t,r,n,s){const a=new ht,i=new ht;if(!n||!s)return;do{i.push(n),s instanceof xt?a.push(new dt(s.toString(),this.evaluateExpression(s,e))):s&&a.push(s),s=r.isEmpty()?void 0:r.pop(),n=t.isEmpty()?void 0:t.pop()}while(n==yt.OBJECT_OPERATOR||n==yt.ARRAY_OPERATOR);s&&(s instanceof xt?a.push(new dt(s.toString(),this.evaluateExpression(s,e))):a.push(s)),n&&t.push(n);let o=a.pop();if(o instanceof dt&&"object"==typeof o.getTokenValue()){const e=(new Date).getTime()+""+Math.round(1e3*Math.random());this.internalTokenValueExtractor.addValue(e,o.getTokenValue()),o=new wt($r.PREFIX+e)}let E=new _t(o instanceof dt?o.getTokenValue():o.toString());for(;!a.isEmpty();)o=a.pop(),n=i.pop(),E.append(n.getOperator()).append(o instanceof dt?o.getTokenValue():o.toString()),n==yt.ARRAY_OPERATOR&&E.append("]");let u=E.toString(),A=u.substring(0,u.indexOf(".")+1);if(A.length>2&&e.has(A))r.push(new dt(u,this.getValue(u,e)));else{let e;try{e=Yr.INSTANCE.getValue(u)}catch(t){e=u}r.push(new dt(u,e))}}applyTernaryOperation(e,t,r,n){let s=jr.TERNARY_OPERATORS_MAP.get(e);if(!s)throw new Mt(this.expression,K.format("No operator found to evaluate $",this.getExpression()));return new dt(e.toString(),s.apply(t,r,n))}applyBinaryOperation(e,t,r){let n=typeof t,s=typeof r,a=jr.BINARY_OPERATORS_MAP.get(e);if(("object"===n||"object"===s)&&e!==yt.EQUAL&&e!==yt.NOT_EQUAL&&e!==yt.NULLISH_COALESCING_OPERATOR)throw new Mt(this.expression,K.format("Cannot evaluate expression $ $ $",t,e.getOperator(),r));if(!a)throw new Mt(this.expression,K.format("No operator found to evaluate $ $ $",t,e.getOperator(),r));return new dt(e.toString(),a.apply(t,r))}applyUnaryOperation(e,t){if("object"===typeof t||Array.isArray(t))throw new Mt(this.expression,K.format("The operator $ cannot be applied to $",e.getOperator(),t));let r=jr.UNARY_OPERATORS_MAP.get(e);if(!r)throw new Mt(this.expression,K.format("No Unary operator $ is found to apply on $",e.getOperator(),t));return new dt(e.toString(),r.apply(t))}getValueFromToken(e,t){return t instanceof xt?this.evaluateExpression(t,e):t instanceof dt?t.getElement():this.getValue(t.getExpression(),e)}getValue(e,t){if(e.length<=5)return Yr.INSTANCE.getValue(e);const r=e.substring(0,e.indexOf(".")+1);return(t.get(r)??Yr.INSTANCE).getValue(e)}}const Xr=new W("Set").setNamespace(a.SYSTEM_CTX).setParameters(new Map([y.ofEntry("name",(new S).setName("name").setType(f.of(l.STRING)).setMinLength(1),!1,d.CONSTANT),y.ofEntry("value",S.ofAny("value"))])).setEvents(new Map([Y.outputEventMapEntry(new Map)]));const Wr=new W("GenerateEvent").setNamespace(a.SYSTEM).setParameters(new Map([y.ofEntry("eventName",S.ofString("eventName").setDefaultValue("output")),y.ofEntry("results",S.ofObject("results").setProperties(new Map([["name",S.ofString("name")],["value",y.EXPRESSION]])),!0)])).setEvents(new Map([Y.outputEventMapEntry(new Map)]));class qr extends Pe{static CONDITION="condition";static SIGNATURE=new W("If").setNamespace(a.SYSTEM).setParameters(new Map([y.ofEntry(qr.CONDITION,S.of(qr.CONDITION,l.BOOLEAN))])).setEvents(new Map([Y.eventMapEntry(Y.TRUE,new Map),Y.eventMapEntry(Y.FALSE,new Map),Y.outputEventMapEntry(new Map)]));getSignature(){return qr.SIGNATURE}async internalExecute(e){var t=e.getArguments()?.get(qr.CONDITION);return new j([B.of(t?Y.TRUE:Y.FALSE,new Map),B.outputOf(new Map)])}}const Jr=new W("CountLoop").setNamespace(a.SYSTEM_LOOP).setParameters(new Map([y.ofEntry("count",S.of("count",l.INTEGER))])).setEvents(new Map([Y.eventMapEntry(Y.ITERATION,new Map([["index",S.of("index",l.INTEGER)]])),Y.outputEventMapEntry(new Map([["value",S.of("value",l.INTEGER)]]))]));const zr=new W("RangeLoop").setNamespace(a.SYSTEM_LOOP).setParameters(new Map([y.ofEntry("from",S.of("from",l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE).setDefaultValue(0)),y.ofEntry("to",S.of("to",l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE).setDefaultValue(1)),y.ofEntry("step",S.of("step",l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE).setDefaultValue(1).setNot((new S).setConstant(0)))])).setEvents(new Map([Y.eventMapEntry(Y.ITERATION,new Map([["index",S.of("index",l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE)]])),Y.outputEventMapEntry(new Map([["value",S.of("value",l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE)]]))]));const Qr=new W("Add").setNamespace(a.MATH).setParameters(new Map([["value",new y("value",S.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",S.ofNumber("value")]]))]));const Kr=[()=>new Map([["value",new y("value",S.ofNumber("value"))]]),()=>new Map([["value1",new y("value1",S.ofNumber("value1"))],["value2",new y("value2",S.ofNumber("value2"))]])];class Zr extends Pe{constructor(e,t,r=1,...n){super(),n&&n.length||(n=[l.DOUBLE]),this.parametersNumber=r,this.mathFunction=t,this.signature=new W(e).setNamespace(a.MATH).setParameters(Kr[r-1]()).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",(new S).setType(f.of(...n)).setName("value")]]))]))}getSignature(){return this.signature}async internalExecute(e){let t,r=Ge.findPrimitiveNumberType(e.getArguments()?.get(1==this.parametersNumber?"value":"value1")).getT2();return 2==this.parametersNumber&&(t=Ge.findPrimitiveNumberType(e.getArguments()?.get("value2")).getT2()),new j([B.outputOf(new Map([["value",this.mathFunction.call(this,r,t)]]))])}}class en extends Pe{static SIGNATURE=new W("Hypotenuse").setNamespace(a.MATH).setParameters(new Map([["value",new y("value",S.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",(new S).setType(f.of(l.DOUBLE)).setName("value")]]))]));constructor(){super()}getSignature(){return en.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get("value");return new j([B.outputOf(new Map([["value",Math.sqrt(t.reduce(((e,t)=>e+t*t),0))]]))])}}const tn=new W("Maximum").setNamespace(a.MATH).setParameters(new Map([["value",new y("value",S.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",S.ofNumber("value")]]))]));const rn=new W("Minimum").setNamespace(a.MATH).setParameters(new Map([["value",new y("value",S.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",S.ofNumber("value")]]))]));class nn extends Pe{static SIGNATURE=new W("Random").setNamespace(a.MATH).setEvents(new Map([Y.outputEventMapEntry(G.of("value",S.ofDouble("value")))]));getSignature(){return nn.SIGNATURE}async internalExecute(e){return new j([B.outputOf(new Map([["value",Math.random()]]))])}}class sn extends Pe{static MIN_VALUE="minValue";static MAX_VALUE="maxValue";static VALUE="value";static SIGNATURE=new W("RandomFloat").setParameters(G.of(sn.MIN_VALUE,y.of(sn.MIN_VALUE,S.ofFloat(sn.MIN_VALUE).setDefaultValue(0)),sn.MAX_VALUE,y.of(sn.MAX_VALUE,S.ofFloat(sn.MAX_VALUE).setDefaultValue(2147483647)))).setNamespace(a.MATH).setEvents(new Map([Y.outputEventMapEntry(G.of(sn.VALUE,S.ofFloat(sn.VALUE)))]));getSignature(){return sn.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(sn.MIN_VALUE),r=e.getArguments()?.get(sn.MAX_VALUE),n=Math.random()*(r-t)+t;return new j([B.outputOf(new Map([[sn.VALUE,n]]))])}}class an extends Pe{static MIN_VALUE="minValue";static MAX_VALUE="maxValue";static VALUE="value";static SIGNATURE=new W("RandomInt").setParameters(G.of(an.MIN_VALUE,y.of(an.MIN_VALUE,S.ofInteger(an.MIN_VALUE).setDefaultValue(0)),an.MAX_VALUE,y.of(an.MAX_VALUE,S.ofInteger(an.MAX_VALUE).setDefaultValue(2147483647)))).setNamespace(a.MATH).setEvents(new Map([Y.outputEventMapEntry(G.of(an.VALUE,S.ofInteger(an.VALUE)))]));getSignature(){return an.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(an.MIN_VALUE),r=e.getArguments()?.get(an.MAX_VALUE),n=Math.floor(Math.random()*(r-t)+t);return new j([B.outputOf(new Map([[an.VALUE,n]]))])}}const on={Absolute:new Zr("Absolute",(e=>Math.abs(e)),1,l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE),ACosine:new Zr("ArcCosine",(e=>Math.acos(e))),ASine:new Zr("ArcSine",(e=>Math.asin(e))),ATangent:new Zr("ArcTangent",(e=>Math.atan(e))),Ceiling:new Zr("Ceiling",(e=>Math.ceil(e))),Cosine:new Zr("Cosine",(e=>Math.cos(e))),CosineH:new Zr("HyperbolicCosine",(e=>Math.cosh(e))),CubeRoot:new Zr("CubeRoot",(e=>Math.cbrt(e))),Exponential:new Zr("Exponential",(e=>Math.exp(e))),Expm1:new Zr("ExponentialMinus1",(e=>Math.expm1(e))),Floor:new Zr("Floor",(e=>Math.floor(e))),Log:new Zr("LogNatural",(e=>Math.log(e))),Log10:new Zr("Log10",(e=>Math.log10(e))),Round:new Zr("Round",(e=>Math.round(e)),1,l.INTEGER,l.LONG),Sine:new Zr("Sine",(e=>Math.sin(e))),SineH:new Zr("HyperbolicSine",(e=>Math.sinh(e))),Tangent:new Zr("Tangent",(e=>Math.tan(e))),TangentH:new Zr("HyperbolicTangent",(e=>Math.tanh(e))),ToDegrees:new Zr("ToDegrees",(e=>e*(Math.PI/180))),ToRadians:new Zr("ToRadians",(e=>e*(180/Math.PI))),SquareRoot:new Zr("SquareRoot",(e=>Math.sqrt(e))),ArcTangent:new Zr("ArcTangent2",((e,t)=>Math.atan2(e,t)),2),Power:new Zr("Power",((e,t)=>Math.pow(e,t)),2),Add:new class extends Pe{getSignature(){return Qr}async internalExecute(e){let t=e.getArguments()?.get("value");return new j([B.outputOf(new Map([["value",t.reduce(((e,t)=>e+t),0)]]))])}},Hypotenuse:new en,Maximum:new class extends Pe{getSignature(){return tn}async internalExecute(e){let t=e.getArguments()?.get("value");return new j([B.outputOf(new Map([["value",t.reduce(((e,t)=>!e&&0!==e||t>e?t:e))]]))])}},Minimum:new class extends Pe{getSignature(){return rn}async internalExecute(e){let t=e.getArguments()?.get("value");return new j([B.outputOf(new Map([["value",t.reduce(((e,t)=>!e&&0!==e||t<e?t:e))]]))])}},Random:new nn,RandomFloat:new sn,RandomInt:new an},En=Object.values(on).map((e=>e.getSignature().getFullName()));class un{find(e,t){if(e==a.MATH)return on[t]}filter(e){return En.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}var An={};function ln(e){return e?structuredClone?structuredClone(e):JSON.parse(JSON.stringify(e)):e}t(An,"duplicate",(()=>ln));class gn extends Pe{constructor(e,t){super(),this.signature=new W(e).setNamespace(a.SYSTEM_OBJECT).setParameters(new Map([y.ofEntry("source",S.ofAny("source"))])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",t]]))]))}getSignature(){return this.signature}}const mn={ObjectValues:new class extends gn{constructor(){super("ObjectValues",S.ofArray("value",S.ofAny("value")))}async internalExecute(e){var t=e.getArguments()?.get("source");if(E(t))return new j([B.outputOf(new Map([["value",[]]]))]);let r=Object.entries(ln(t)).sort(((e,t)=>e[0].localeCompare(t[0]))).map((e=>e[1]));return new j([B.outputOf(new Map([["value",r]]))])}},ObjectKeys:new class extends gn{constructor(){super("ObjectKeys",S.ofArray("value",S.ofString("value")))}async internalExecute(e){var t=e.getArguments()?.get("source");if(E(t))return new j([B.outputOf(new Map([["value",[]]]))]);let r=Object.keys(ln(t)).sort(((e,t)=>e.localeCompare(t)));return new j([B.outputOf(new Map([["value",r]]))])}},ObjectEntries:new class extends gn{constructor(){super("ObjectEntries",S.ofArray("value",S.ofArray("tuple",S.ofString("key"),S.ofAny("value"))))}async internalExecute(e){var t=e.getArguments()?.get("source");if(E(t))return new j([B.outputOf(new Map([["value",[]]]))]);let r=Object.entries(ln(t)).sort(((e,t)=>e[0].localeCompare(t[0])));return new j([B.outputOf(new Map([["value",r]]))])}},ObjectDeleteKey:new class extends Pe{constructor(){super(),this.signature=new W("ObjectDeleteKey").setNamespace(a.SYSTEM_OBJECT).setParameters(new Map([y.ofEntry("source",S.ofAny("source")),y.ofEntry("key",S.ofString("key"))])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",S.ofAny("value")]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get("source"),r=e.getArguments()?.get("key");return E(t)?new j([B.outputOf(new Map([["value",void 0]]))]):(t=ln(t),delete t[r],new j([B.outputOf(new Map([["value",t]]))]))}}},Rn=Object.values(mn).map((e=>e.getSignature().getFullName()));class pn{find(e,t){if(e==a.SYSTEM_OBJECT)return mn[t]}filter(e){return Rn.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}class Tn extends Pe{static VALUES="values";static SIGNATURE=new W("Print").setNamespace(a.SYSTEM).setParameters(new Map([y.ofEntry(Tn.VALUES,S.ofAny(Tn.VALUES),!0)]));getSignature(){return Tn.SIGNATURE}async internalExecute(e){var t=e.getArguments()?.get(Tn.VALUES);return console?.log(...t),new j([B.outputOf(new Map)])}}class cn extends Pe{static PARAMETER_STRING_NAME="string";static PARAMETER_SEARCH_STRING_NAME="searchString";static PARAMETER_SECOND_STRING_NAME="secondString";static PARAMETER_THIRD_STRING_NAME="thirdString";static PARAMETER_INDEX_NAME="index";static PARAMETER_SECOND_INDEX_NAME="secondIndex";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new y(cn.PARAMETER_STRING_NAME,S.ofString(cn.PARAMETER_STRING_NAME));static PARAMETER_SECOND_STRING=new y(cn.PARAMETER_SECOND_STRING_NAME,S.ofString(cn.PARAMETER_SECOND_STRING_NAME));static PARAMETER_THIRD_STRING=new y(cn.PARAMETER_THIRD_STRING_NAME,S.ofString(cn.PARAMETER_THIRD_STRING_NAME));static PARAMETER_INDEX=new y(cn.PARAMETER_INDEX_NAME,S.ofInteger(cn.PARAMETER_INDEX_NAME));static PARAMETER_SECOND_INDEX=new y(cn.PARAMETER_SECOND_INDEX_NAME,S.ofInteger(cn.PARAMETER_SECOND_INDEX_NAME));static PARAMETER_SEARCH_STRING=new y(cn.PARAMETER_SEARCH_STRING_NAME,S.ofString(cn.PARAMETER_STRING_NAME));static EVENT_STRING=new Y(Y.OUTPUT,G.of(cn.EVENT_RESULT_NAME,S.ofString(cn.EVENT_RESULT_NAME)));static EVENT_BOOLEAN=new Y(Y.OUTPUT,G.of(cn.EVENT_RESULT_NAME,S.ofBoolean(cn.EVENT_RESULT_NAME)));static EVENT_INT=new Y(Y.OUTPUT,G.of(cn.EVENT_RESULT_NAME,S.ofInteger(cn.EVENT_RESULT_NAME)));static EVENT_ARRAY=new Y(Y.OUTPUT,G.of(cn.EVENT_RESULT_NAME,S.ofArray(cn.EVENT_RESULT_NAME)));constructor(e,t,r,...n){super();const s=new Map;n.forEach((e=>s.set(e.getParameterName(),e))),this.signature=new W(t).setNamespace(e).setParameters(s).setEvents(G.of(r.getName(),r))}getSignature(){return this.signature}static ofEntryAsStringBooleanOutput(e,t){return[e,new class extends cn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(cn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(cn.PARAMETER_SEARCH_STRING_NAME);return new j([B.outputOf(G.of(cn.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,cn.EVENT_BOOLEAN,cn.PARAMETER_STRING,cn.PARAMETER_SEARCH_STRING)]}static ofEntryAsStringAndIntegerStringOutput(e,t){return[e,new class extends cn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(cn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(cn.PARAMETER_INDEX_NAME);return new j([B.outputOf(G.of(cn.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,cn.EVENT_STRING,cn.PARAMETER_STRING,cn.PARAMETER_INDEX)]}static ofEntryAsStringIntegerOutput(e,t){return[e,new class extends cn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(cn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(cn.PARAMETER_SEARCH_STRING_NAME);return new j([B.outputOf(G.of(cn.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,cn.EVENT_INT,cn.PARAMETER_STRING,cn.PARAMETER_SEARCH_STRING)]}static ofEntryString(e,t){return[e,new class extends cn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(cn.PARAMETER_STRING_NAME);return new j([B.outputOf(G.of(cn.EVENT_RESULT_NAME,t(r)))])}}(a.STRING,e,cn.EVENT_STRING,cn.PARAMETER_STRING)]}static ofEntryStringBooleanOutput(e,t){return[e,new class extends cn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(cn.PARAMETER_STRING_NAME);return new j([B.outputOf(G.of(cn.EVENT_RESULT_NAME,t(r)))])}}(a.STRING,e,cn.EVENT_BOOLEAN,cn.PARAMETER_STRING)]}static ofEntryAsStringStringIntegerIntegerOutput(e,t){return[e,new class extends cn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(cn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(cn.PARAMETER_SEARCH_STRING_NAME),s=e?.getArguments()?.get(cn.PARAMETER_INDEX_NAME);return new j([B.outputOf(G.of(cn.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,cn.EVENT_INT,cn.PARAMETER_STRING,cn.PARAMETER_SEARCH_STRING,cn.PARAMETER_INDEX)]}static ofEntryAsStringIntegerIntegerStringOutput(e,t){return[e,new class extends cn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(cn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(cn.PARAMETER_INDEX_NAME),s=e?.getArguments()?.get(cn.PARAMETER_SECOND_INDEX_NAME);return new j([B.outputOf(G.of(cn.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,cn.EVENT_INT,cn.PARAMETER_STRING,cn.PARAMETER_INDEX,cn.PARAMETER_SECOND_INDEX)]}static ofEntryAsStringStringStringStringOutput(e,t){return[e,new class extends cn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(cn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(cn.PARAMETER_SECOND_STRING_NAME),s=e?.getArguments()?.get(cn.PARAMETER_THIRD_STRING_NAME);return new j([B.outputOf(G.of(cn.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,cn.EVENT_STRING,cn.PARAMETER_STRING,cn.PARAMETER_SECOND_STRING,cn.PARAMETER_THIRD_STRING)]}}class hn extends Pe{static VALUE="value";static SCHEMA=(new S).setName(hn.VALUE).setType(new N(l.STRING));static SIGNATURE=new W("Concatenate").setNamespace(a.STRING).setParameters(new Map([[hn.VALUE,new y(hn.VALUE,hn.SCHEMA).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([[hn.VALUE,S.ofString(hn.VALUE)]]))]));constructor(){super()}getSignature(){return hn.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(hn.VALUE),r="";return t.reduce(((e,t)=>r=e+t),r),new j([B.outputOf(new Map([[hn.VALUE,r]]))])}}class Nn extends Pe{static PARAMETER_STRING_NAME="string";static PARAMETER_AT_START_NAME="startPosition";static PARAMETER_AT_END_NAME="endPosition";static EVENT_RESULT_NAME="result";PARAMETER_STRING=new y(Nn.PARAMETER_STRING_NAME,S.ofString(Nn.PARAMETER_STRING_NAME));PARAMETER_AT_START=new y(Nn.PARAMETER_AT_START_NAME,S.ofInteger(Nn.PARAMETER_AT_START_NAME));PARAMETER_AT_END=new y(Nn.PARAMETER_AT_END_NAME,S.ofInteger(Nn.PARAMETER_AT_END_NAME));EVENT_STRING=new Y(Y.OUTPUT,new Map([[Nn.EVENT_RESULT_NAME,S.ofString(Nn.EVENT_RESULT_NAME)]]));signature=new W("DeleteForGivenLength").setNamespace(a.STRING).setParameters(new Map([[this.PARAMETER_STRING.getParameterName(),this.PARAMETER_STRING],[this.PARAMETER_AT_START.getParameterName(),this.PARAMETER_AT_START],[this.PARAMETER_AT_END.getParameterName(),this.PARAMETER_AT_END]])).setEvents(new Map([[this.EVENT_STRING.getName(),this.EVENT_STRING]]));constructor(){super()}getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(Nn.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(Nn.PARAMETER_AT_START_NAME),n=e?.getArguments()?.get(Nn.PARAMETER_AT_END_NAME);if(n>=r){let e="";return e+=t.substring(0,r),e+=t.substring(n),new j([B.outputOf(new Map([[Nn.EVENT_RESULT_NAME,e.toString()]]))])}return new j([B.outputOf(new Map([[Nn.EVENT_RESULT_NAME,t]]))])}}class fn extends Pe{static PARAMETER_STRING_NAME="string";static PARAMETER_AT_POSITION_NAME="position";static PARAMETER_INSERT_STRING_NAME="insertString";EVENT_RESULT_NAME="result";PARAMETER_STRING=new y(fn.PARAMETER_STRING_NAME,S.ofString(fn.PARAMETER_STRING_NAME));PARAMETER_AT_POSITION=new y(fn.PARAMETER_AT_POSITION_NAME,S.ofInteger(fn.PARAMETER_AT_POSITION_NAME));PARAMETER_INSERT_STRING=new y(fn.PARAMETER_INSERT_STRING_NAME,S.ofString(fn.PARAMETER_INSERT_STRING_NAME));EVENT_STRING=new Y(Y.OUTPUT,new Map([[this.EVENT_RESULT_NAME,S.ofString(this.EVENT_RESULT_NAME)]]));signature=new W("InsertAtGivenPosition").setNamespace(a.STRING).setParameters(new Map([[this.PARAMETER_STRING.getParameterName(),this.PARAMETER_STRING],[this.PARAMETER_AT_POSITION.getParameterName(),this.PARAMETER_AT_POSITION],[this.PARAMETER_INSERT_STRING.getParameterName(),this.PARAMETER_INSERT_STRING]])).setEvents(new Map([Y.outputEventMapEntry(new Map([[this.EVENT_RESULT_NAME,S.ofString(this.EVENT_RESULT_NAME)]]))]));getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(fn.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(fn.PARAMETER_AT_POSITION_NAME),n=e?.getArguments()?.get(fn.PARAMETER_INSERT_STRING_NAME),s="";return s+=t.substring(0,r),s+=n,s+=t.substring(r),new j([B.outputOf(new Map([[this.EVENT_RESULT_NAME,s]]))])}}class _n extends Pe{static PARAMETER_STRING_NAME="string";static PARAMETER_POSTPAD_STRING_NAME="postpadString";static PARAMETER_LENGTH_NAME="length";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new y(_n.PARAMETER_STRING_NAME,S.ofString(_n.PARAMETER_STRING_NAME));static PARAMETER_POSTPAD_STRING=new y(_n.PARAMETER_POSTPAD_STRING_NAME,S.ofString(_n.PARAMETER_POSTPAD_STRING_NAME));static PARAMETER_LENGTH=new y(_n.PARAMETER_LENGTH_NAME,S.ofInteger(_n.PARAMETER_LENGTH_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[_n.EVENT_RESULT_NAME,S.ofString(_n.EVENT_RESULT_NAME)]]));signature=new W("PostPad").setNamespace(a.STRING).setParameters(new Map([[_n.PARAMETER_STRING.getParameterName(),_n.PARAMETER_STRING],[_n.PARAMETER_POSTPAD_STRING.getParameterName(),_n.PARAMETER_POSTPAD_STRING],[_n.PARAMETER_LENGTH.getParameterName(),_n.PARAMETER_LENGTH]])).setEvents(new Map([[_n.EVENT_STRING.getName(),_n.EVENT_STRING]]));constructor(){super()}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(_n.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(_n.PARAMETER_POSTPAD_STRING_NAME),n=e.getArguments()?.get(_n.PARAMETER_LENGTH_NAME),s="",a=r.length;for(s+=t;a<=n;)s+=r,a+=r.length;return s.length-t.length<n&&(s+=r.substring(0,n-(s.length-t.length))),new j([B.of(_n.EVENT_RESULT_NAME,new Map([[_n.EVENT_RESULT_NAME,s.toString()]]))])}}class Sn extends Pe{static PARAMETER_STRING_NAME="string";static PARAMETER_PREPAD_STRING_NAME="prepadString";static PARAMETER_LENGTH_NAME="length";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new y(Sn.PARAMETER_STRING_NAME,S.ofString(Sn.PARAMETER_STRING_NAME));static PARAMETER_PREPAD_STRING=new y(Sn.PARAMETER_PREPAD_STRING_NAME,S.ofString(Sn.PARAMETER_PREPAD_STRING_NAME));static PARAMETER_LENGTH=new y(Sn.PARAMETER_LENGTH_NAME,S.ofInteger(Sn.PARAMETER_LENGTH_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[Sn.EVENT_RESULT_NAME,S.ofString(Sn.EVENT_RESULT_NAME)]]));signature=new W("PrePad").setNamespace(a.STRING).setParameters(new Map([[Sn.PARAMETER_STRING.getParameterName(),Sn.PARAMETER_STRING],[Sn.PARAMETER_PREPAD_STRING.getParameterName(),Sn.PARAMETER_PREPAD_STRING],[Sn.PARAMETER_LENGTH.getParameterName(),Sn.PARAMETER_LENGTH]])).setEvents(new Map([[Sn.EVENT_STRING.getName(),Sn.EVENT_STRING]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(Sn.PARAMETER_STRING_NAME),r=e.getArguments()?.get(Sn.PARAMETER_PREPAD_STRING_NAME),n=e.getArguments()?.get(Sn.PARAMETER_LENGTH_NAME),s="",a=r.length;for(;a<=n;)s+=r,a+=r.length;return s.length<n&&(s+=r.substring(0,n-s.length)),s+=t,new j([B.of(Sn.EVENT_RESULT_NAME,new Map([[Sn.EVENT_RESULT_NAME,s]]))])}}class Mn extends Pe{static PARAMETER_STRING_NAME="string";static PARAMETER_BOOLEAN_NAME="boolean";static PARAMETER_FIRST_OFFSET_NAME="firstOffset";static PARAMETER_OTHER_STRING_NAME="otherString";static PARAMETER_SECOND_OFFSET_NAME="secondOffset";static PARAMETER_INTEGER_NAME="length";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new y(Mn.PARAMETER_STRING_NAME,S.ofString(Mn.PARAMETER_STRING_NAME));static PARAMETER_OTHER_STRING=new y(Mn.PARAMETER_OTHER_STRING_NAME,S.ofString(Mn.PARAMETER_OTHER_STRING_NAME));static PARAMETER_FIRST_OFFSET=new y(Mn.PARAMETER_FIRST_OFFSET_NAME,S.ofInteger(Mn.PARAMETER_FIRST_OFFSET_NAME));static PARAMETER_SECOND_OFFSET=new y(Mn.PARAMETER_SECOND_OFFSET_NAME,S.ofInteger(Mn.PARAMETER_SECOND_OFFSET_NAME));static PARAMETER_INTEGER=new y(Mn.PARAMETER_INTEGER_NAME,S.ofInteger(Mn.PARAMETER_INTEGER_NAME));static PARAMETER_BOOLEAN=new y(Mn.PARAMETER_BOOLEAN_NAME,S.ofBoolean(Mn.PARAMETER_BOOLEAN_NAME));static EVENT_BOOLEAN=new Y(Y.OUTPUT,new Map([[Mn.EVENT_RESULT_NAME,S.ofBoolean(Mn.EVENT_RESULT_NAME)]]));signature=new W("RegionMatches").setNamespace(a.STRING).setParameters(new Map([[Mn.PARAMETER_STRING.getParameterName(),Mn.PARAMETER_STRING],[Mn.PARAMETER_BOOLEAN.getParameterName(),Mn.PARAMETER_BOOLEAN],[Mn.PARAMETER_FIRST_OFFSET.getParameterName(),Mn.PARAMETER_FIRST_OFFSET],[Mn.PARAMETER_OTHER_STRING.getParameterName(),Mn.PARAMETER_OTHER_STRING],[Mn.PARAMETER_SECOND_OFFSET.getParameterName(),Mn.PARAMETER_SECOND_OFFSET],[Mn.PARAMETER_INTEGER.getParameterName(),Mn.PARAMETER_INTEGER]])).setEvents(new Map([[Mn.EVENT_BOOLEAN.getName(),Mn.EVENT_BOOLEAN]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(Mn.PARAMETER_STRING_NAME),r=e.getArguments()?.get(Mn.PARAMETER_BOOLEAN_NAME),n=e.getArguments()?.get(Mn.PARAMETER_FIRST_OFFSET_NAME),s=e?.getArguments()?.get(Mn.PARAMETER_OTHER_STRING_NAME),a=e?.getArguments()?.get(Mn.PARAMETER_SECOND_OFFSET_NAME),i=e.getArguments()?.get(Mn.PARAMETER_INTEGER_NAME),o=!1;if(n<0||a<0||n+i>t.length||a+i>s.length)o=!1;else if(r){t=t.substring(n,n+i).toUpperCase(),o=t==s.substring(a,a+i).toUpperCase()}else{t=t.substring(n,n+i),o=t==s.substring(a,i)}return new j([B.outputOf(new Map([[Mn.EVENT_RESULT_NAME,o]]))])}}class On extends Pe{static PARAMETER_STRING_NAME="string";static PARAMETER_AT_START_NAME="startPosition";static PARAMETER_AT_LENGTH_NAME="lengthPosition";static PARAMETER_REPLACE_STRING_NAME="replaceString";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new y(On.PARAMETER_STRING_NAME,S.ofString(On.PARAMETER_STRING_NAME));static PARAMETER_AT_START=new y(On.PARAMETER_AT_START_NAME,S.ofInteger(On.PARAMETER_AT_START_NAME));static PARAMETER_AT_LENGTH=new y(On.PARAMETER_AT_LENGTH_NAME,S.ofInteger(On.PARAMETER_AT_LENGTH_NAME));static PARAMETER_REPLACE_STRING=new y(On.PARAMETER_REPLACE_STRING_NAME,S.ofString(On.PARAMETER_REPLACE_STRING_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[On.EVENT_RESULT_NAME,S.ofString(On.EVENT_RESULT_NAME)]]));constructor(){super()}signature=new W("ReplaceAtGivenPosition").setNamespace(a.STRING).setParameters(new Map([[On.PARAMETER_STRING.getParameterName(),On.PARAMETER_STRING],[On.PARAMETER_AT_START.getParameterName(),On.PARAMETER_AT_START],[On.PARAMETER_AT_LENGTH.getParameterName(),On.PARAMETER_AT_LENGTH],[On.PARAMETER_REPLACE_STRING.getParameterName(),On.PARAMETER_REPLACE_STRING]])).setEvents(new Map([[On.EVENT_STRING.getName(),On.EVENT_STRING]]));getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(On.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(On.PARAMETER_AT_START_NAME),n=e?.getArguments()?.get(On.PARAMETER_AT_LENGTH_NAME),s=e?.getArguments()?.get(On.PARAMETER_REPLACE_STRING_NAME);t.length;if(r<n){let e="";e+=t.substring(0,r),e+=s,e+=t.substring(r+n)}return new j([B.outputOf(new Map([[On.EVENT_RESULT_NAME,t]]))])}}class wn extends Pe{VALUE="value";SIGNATURE=new W("Reverse").setNamespace(a.STRING).setParameters(new Map([[this.VALUE,new y(this.VALUE,S.ofString(this.VALUE)).setVariableArgument(!1)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([[this.VALUE,(new S).setType(f.of(l.STRING)).setName(this.VALUE)]]))]));constructor(){super()}getSignature(){return this.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(this.VALUE),r=t.length-1,n="";for(;r>=0;)n+=t.charAt(r--);return new j([B.outputOf(G.of(this.VALUE,n))])}}class In extends Pe{PARAMETER_STRING_NAME="string";PARAMETER_SPLIT_STRING_NAME="searchString";EVENT_RESULT_NAME="result";PARAMETER_STRING=new y(this.PARAMETER_STRING_NAME,S.ofString(this.PARAMETER_STRING_NAME));PARAMETER_SPLIT_STRING=new y(this.PARAMETER_SPLIT_STRING_NAME,S.ofString(this.PARAMETER_SPLIT_STRING_NAME));EVENT_ARRAY=new Y(Y.OUTPUT,G.of(this.EVENT_RESULT_NAME,S.ofArray(this.EVENT_RESULT_NAME)));getSignature(){return new W("Split").setNamespace(a.STRING).setParameters(new Map([[this.PARAMETER_STRING_NAME,this.PARAMETER_STRING],[this.PARAMETER_SPLIT_STRING_NAME,this.PARAMETER_SPLIT_STRING]])).setEvents(new Map([Y.outputEventMapEntry(new Map([[this.EVENT_RESULT_NAME,S.ofArray(this.EVENT_RESULT_NAME)]]))]))}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(this.PARAMETER_STRING_NAME),r=e.getArguments()?.get(this.PARAMETER_SPLIT_STRING_NAME);return new j([B.outputOf(G.of(this.EVENT_RESULT_NAME,t.split(r)))])}}class dn extends Pe{PARAMETER_INPUT_ANYTYPE_NAME="anytype";EVENT_RESULT_NAME="result";PARAMETER_INPUT_ANYTYPE=new y(this.PARAMETER_INPUT_ANYTYPE_NAME,S.ofAny(this.PARAMETER_INPUT_ANYTYPE_NAME));EVENT_STRING=new Y(Y.OUTPUT,new Map([[this.EVENT_RESULT_NAME,S.ofString(this.EVENT_RESULT_NAME)]]));getSignature(){return new W("ToString").setNamespace(a.STRING).setParameters(new Map([[this.PARAMETER_INPUT_ANYTYPE.getParameterName(),this.PARAMETER_INPUT_ANYTYPE]])).setEvents(new Map([[this.EVENT_STRING.getName(),this.EVENT_STRING]]))}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(this.PARAMETER_INPUT_ANYTYPE_NAME),r="";return r="object"==typeof t?JSON.stringify(t,void 0,2):""+t,new j([B.outputOf(new Map([[this.EVENT_RESULT_NAME,r]]))])}}class Pn extends Pe{static PARAMETER_STRING_NAME="string";static PARAMETER_LENGTH_NAME="length";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new y(Pn.PARAMETER_STRING_NAME,S.ofString(Pn.PARAMETER_STRING_NAME));static PARAMETER_LENGTH=new y(Pn.PARAMETER_LENGTH_NAME,S.ofInteger(Pn.PARAMETER_LENGTH_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[Pn.EVENT_RESULT_NAME,S.ofString(Pn.EVENT_RESULT_NAME)]]));signature=new W("TrimTo").setNamespace(a.STRING).setParameters(new Map([[Pn.PARAMETER_STRING.getParameterName(),Pn.PARAMETER_STRING],[Pn.PARAMETER_LENGTH.getParameterName(),Pn.PARAMETER_LENGTH]])).setEvents(new Map([[Pn.EVENT_STRING.getName(),Pn.EVENT_STRING]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(Pn.PARAMETER_STRING_NAME),r=e.getArguments()?.get(Pn.PARAMETER_LENGTH_NAME);return new j([B.of(Pn.EVENT_RESULT_NAME,new Map([[Pn.EVENT_RESULT_NAME,t.substring(0,r)]]))])}}class yn{static repoMap=G.ofArrayEntries(cn.ofEntryString("Trim",(e=>e.trim())),cn.ofEntryString("LowerCase",(e=>e.toLocaleLowerCase())),cn.ofEntryString("UpperCase",(e=>e.toUpperCase())),cn.ofEntryStringBooleanOutput("IsBlank",(e=>""===e.trim())),cn.ofEntryStringBooleanOutput("IsEmpty",(e=>""===e)),cn.ofEntryAsStringBooleanOutput("Contains",((e,t)=>-1!=e.indexOf(t))),cn.ofEntryAsStringBooleanOutput("EndsWith",((e,t)=>e.endsWith(t))),cn.ofEntryAsStringBooleanOutput("EqualsIgnoreCase",((e,t)=>e.toUpperCase()==t.toUpperCase())),cn.ofEntryAsStringBooleanOutput("Matches",((e,t)=>new RegExp(t).test(e))),cn.ofEntryAsStringIntegerOutput("IndexOf",((e,t)=>e.indexOf(t))),cn.ofEntryAsStringIntegerOutput("LastIndexOf",((e,t)=>e.lastIndexOf(t))),cn.ofEntryAsStringAndIntegerStringOutput("Repeat",((e,t)=>e.repeat(t))),cn.ofEntryAsStringStringIntegerIntegerOutput("IndexOfWithStartPoint",((e,t,r)=>e.indexOf(t,r))),cn.ofEntryAsStringStringIntegerIntegerOutput("LastIndexOfWithStartPoint",((e,t,r)=>e.lastIndexOf(t,r))),cn.ofEntryAsStringStringStringStringOutput("Replace",((e,t,r)=>e)),cn.ofEntryAsStringStringStringStringOutput("ReplaceFirst",((e,t,r)=>e.replace(t,r))),cn.ofEntryAsStringIntegerIntegerStringOutput("SubString",((e,t,r)=>e.substring(t,r))),C(new hn),C(new Nn),C(new fn),C(new _n),C(new Sn),C(new Mn),C(new On),C(new wn),C(new In),C(new dn),C(new Pn));static filterableNames=Array.from(yn.repoMap.values()).map((e=>e.getSignature().getFullName()));find(e,t){if(e==a.STRING)return yn.repoMap.get(t)}filter(e){return yn.filterableNames.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}var xn={};t(xn,"HybridRepository",(()=>vn));class vn{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 Ln=new Map([[a.SYSTEM_CTX,new Map([C(new class extends Pe{getSignature(){return gt}async internalExecute(e){const t=e?.getArguments()?.get("name");if(e?.getContext()?.has(t))throw new $(K.format("Context already has an element for '$' ",t));let r=S.from(e?.getArguments()?.get("schema"));if(!r)throw new $("Schema is not supplied.");return e.getContext().set(t,new lt(r,E(r.getDefaultValue())?void 0:r.getDefaultValue())),new j([B.outputOf(new Map)])}}),C(new class extends Pe{getSignature(){return mt}async internalExecute(e){const t=e?.getArguments()?.get("name");if(!e.getContext()?.has(t))throw new $(K.format("Context don't have an element for '$' ",t));return new j([B.outputOf(new Map(["value",e.getContext()?.get(t)?.getElement()]))])}}),C(new class extends Pe{getSignature(){return Xr}async internalExecute(e){let t=e?.getArguments()?.get("name");if(Z.isNullOrBlank(t))throw new $("Empty string is not a valid name for the context element");let r=e?.getArguments()?.get("value");const n=new xt(t),s=n.getTokens().peekLast();if(!s.getExpression().startsWith("Context")||s instanceof xt||s instanceof dt&&!s.getElement().toString().startsWith("Context"))throw new Ve(K.format("The context path $ is not a valid path in context",t));for(const e of n.getOperations().toArray())if(e!=yt.ARRAY_OPERATOR&&e!=yt.OBJECT_OPERATOR)throw new Ve(K.format("Expected a reference to the context location, but found an expression $",t));for(let r=0;r<n.getTokens().size();r++){let s=n.getTokens().get(r);s instanceof xt&&n.getTokens().set(r,new dt(t,new jr(s).evaluate(e.getValuesMap())))}return this.modifyContext(e,t,r,n)}modifyContext(e,t,r,n){const s=n.getTokens();s.removeLast();const a=n.getOperations();a.removeLast();let i=e.getContext()?.get(s.removeLast().getExpression());if(E(i))throw new $(K.format("Context doesn't have any element with name '$' ",t));if(a.isEmpty())return i.setElement(r),new j([B.outputOf(new Map)]);let o=i.getElement(),u=a.removeLast(),A=s.removeLast(),l=A instanceof dt?A.getElement():A.getExpression();for(E(o)&&(o=u==yt.OBJECT_OPERATOR?{}:[],i.setElement(o));!a.isEmpty();)o=u==yt.OBJECT_OPERATOR?this.getDataFromObject(o,l,a.peekLast()):this.getDataFromArray(o,l,a.peekLast()),u=a.removeLast(),A=s.removeLast(),l=A instanceof dt?A.getElement():A.getExpression();return u==yt.OBJECT_OPERATOR?this.putDataInObject(o,l,r):this.putDataInArray(o,l,r),new j([B.outputOf(new Map)])}getDataFromArray(e,t,r){if(!Array.isArray(e))throw new $(K.format("Expected an array but found $",e));const n=parseInt(t);if(isNaN(n))throw new $(K.format("Expected an array index but found $",t));if(n<0)throw new $(K.format("Array index is out of bound - $",t));let s=e[n];return E(s)&&(s=r==yt.OBJECT_OPERATOR?{}:[],e[n]=s),s}getDataFromObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new $(K.format("Expected an object but found $",e));let n=e[t];return E(n)&&(n=r==yt.OBJECT_OPERATOR?{}:[],e[t]=n),n}putDataInArray(e,t,r){if(!Array.isArray(e))throw new $(K.format("Expected an array but found $",e));const n=parseInt(t);if(isNaN(n))throw new $(K.format("Expected an array index but found $",t));if(n<0)throw new $(K.format("Array index is out of bound - $",t));e[n]=r}putDataInObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new $(K.format("Expected an object but found $",e));e[t]=r}})])],[a.SYSTEM_LOOP,new Map([C(new class extends Pe{getSignature(){return zr}async internalExecute(e){let t=e.getArguments()?.get("from"),r=e.getArguments()?.get("to"),n=e.getArguments()?.get("step");const s=n>0;let a=t,i=!1;return new j({next(){if(i)return;if(s&&a>=r||!s&&a<=r)return i=!0,B.outputOf(new Map([["value",a]]));const e=B.of(Y.ITERATION,new Map([["index",a]]));return a+=n,e}})}}),C(new class extends Pe{getSignature(){return Jr}async internalExecute(e){let t=e.getArguments()?.get("count"),r=0;return new j({next(){if(r>=t)return B.outputOf(new Map([["value",t]]));const e=B.of(Y.ITERATION,new Map([["index",r]]));return++r,e}})}})])],[a.SYSTEM,new Map([C(new qr),C(new class extends Pe{getSignature(){return Wr}async internalExecute(e){const t=e.getEvents(),r=e.getArguments()?.get("eventName"),n=e?.getArguments()?.get("results").map((t=>{let r=t.value;if(E(r))throw new $("Expect a value object");let n=r.value;return r.isExpression&&(n=new jr(n).evaluate(e.getValuesMap())),[t.name,n]})).reduce(((e,t)=>(e.set(t[0],t[1]),e)),new Map);return t?.has(r)||t?.set(r,[]),t?.get(r)?.push(n),new j([B.outputOf(new Map)])}}),C(new Tn)])]]),Un=Array.from(Ln.values()).flatMap((e=>Array.from(e.values()))).map((e=>e.getSignature().getFullName()));class Cn extends vn{constructor(){super({find:(e,t)=>Ln.get(e)?.get(t),filter:e=>Array.from(Un).filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))},new un,new yn,new ut,new pn)}}var Vn={};t(Vn,"StatementExecution",(()=>Dn));var Gn={};t(Gn,"StatementMessage",(()=>bn));class bn{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 Dn{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 bn(e,t))}addDependency(e){this.dependencies.add(e)}getDepenedencies(){return this.dependencies}equals(e){if(!(e instanceof Dn))return!1;return e.statement.equals(this.statement)}}var Fn={};t(Fn,"ContextTokenValueExtractor",(()=>Yn));class Yn extends Dr{static PREFIX="Context.";constructor(e){super(),this.context=e}getValueInternal(e){let t=e.split(Dr.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 Yn.PREFIX}}var Bn={};t(Bn,"OutputMapTokenValueExtractor",(()=>Hn));class Hn extends Dr{static PREFIX="Steps.";constructor(e){super(),this.output=e}getValueInternal(e){let t=e.split(Dr.REGEX_DOT),r=1,n=this.output.get(t[r++]);if(!n||r>=t.length)return;let s=n.get(t[r++]);if(!s||r>=t.length)return;const a=t[r].indexOf("[");if(-1===a){let n=s.get(t[r++]);return this.retrieveElementFrom(e,t,r,n)}const i=t[r].substring(0,a);let o=s.get(i);return this.retrieveElementFrom(e,t,r,{[i]:o})}getPrefix(){return Hn.PREFIX}}var kn={};t(kn,"ArgumentsTokenValueExtractor",(()=>$n));class $n extends Dr{static PREFIX="Arguments.";constructor(e){super(),this.args=e}getValueInternal(e){let t=e.split(Dr.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 $n.PREFIX}}var jn={};t(jn,"GraphVertex",(()=>qn));var Xn={};t(Xn,"ExecutionGraph",(()=>Wn));class Wn{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 qn(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 ht(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 qn{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 re(this,e)),t}addInEdgeTo(e,t){return this.inVertices.add(new re(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 Wn(!0);var r=new ht(Array.from(this.outVertices.get(e)??[]));for(r.map((e=>e.getData())).forEach((e=>t.addVertex(e)));!r.isEmpty();){var n=r.pop();Array.from(n.outVertices.values()).flatMap((e=>Array.from(e))).forEach((e=>{t.addVertex(e.getData()),r.add(e)}))}return t}toString(){var e=Array.from(this.getInVertices()).map((e=>e.getT1().getKey()+"("+e.getT2()+")")).join(", "),t=Array.from(this.outVertices.entries()).map((([e,t])=>e+": "+Array.from(t).map((e=>e.getKey())).join(","))).join("\n\t\t");return this.getKey()+":\n\tIn: "+e+"\n\tOut: \n\t\t"+t}}var Jn={};t(Jn,"KIRuntime",(()=>os));var zn={};t(zn,"JsonExpression",(()=>Qn));class Qn{constructor(e){this.expression=e}getExpression(){return this.expression}}var Kn={};let Zn;var es;t(Kn,"ParameterReferenceType",(()=>Zn)),(es=Zn||(Zn={})).VALUE="VALUE",es.EXPRESSION="EXPRESSION";var ts={};function rs(){var e=(new Date).getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(t){var r=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"==t?r:3&r|8).toString(16)}))}t(ts,"FunctionExecutionParameters",(()=>ns));class ns{count=0;valueExtractors=new Map;constructor(e,t,r){this.functionRepository=e,this.schemaRepository=t,this.executionId=r??rs()}getExecutionId(){return this.executionId}getContext(){return this.context}setContext(e){this.context=e;let t=new Yn(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 Hn(e);return this.valueExtractors.set(t.getPrefix(),t),this}getCount(){return this.count}setCount(e){return this.count=e,this}getValuesMap(){return this.valueExtractors}getFunctionRepository(){return this.functionRepository}setFunctionRepository(e){return this.functionRepository=e,this}getSchemaRepository(){return this.schemaRepository}setSchemaRepository(e){return this.schemaRepository=e,this}addTokenValueExtractor(...e){for(const t of e)this.valueExtractors.set(t.getPrefix(),t);return this}setValuesMap(e){for(const[t,r]of e.entries())this.valueExtractors.set(t,r);return this}}var ss={};let as;var is;t(ss,"StatementMessageType",(()=>as)),(is=as||(as={})).ERROR="ERROR",is.WARNING="WARNING",is.MESSAGE="MESSAGE";class os extends Pe{static PARAMETER_NEEDS_A_VALUE='Parameter "$" needs a value';static STEP_REGEX_PATTERN=new RegExp("Steps\\.([a-zA-Z0-9\\\\-]{1,})\\.([a-zA-Z0-9\\\\-]{1,})","g");static VERSION=1;static MAX_EXECUTION_ITERATIONS=1e7;debugMode=!1;constructor(e,t=!1){if(super(),this.debugMode=t,this.fd=e,this.fd.getVersion()>os.VERSION)throw new $("Runtime is at a lower version "+os.VERSION+" and trying to run code from version "+this.fd.getVersion()+".")}getSignature(){return this.fd}async getExecutionPlan(e,t){let r=new Wn;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(as.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 $n(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 ht;r.addAll(e.getVerticesWithNoIncomingEdges());let n=new ht;for(;!(r.isEmpty()&&n.isEmpty()||t.getEvents()?.has(Y.OUTPUT));)if(await this.processBranchQue(t,r,n),await this.processExecutionQue(t,r,n),t.setCount(t.getCount()+1),t.getCount()==os.MAX_EXECUTION_ITERATIONS)throw new $("Execution locked in an infinite loop");if(!e.isSubGraph()&&!t.getEvents()?.size){const e=this.getSignature().getEvents();if(e.size&&e.get(Y.OUTPUT)?.getParameters()?.size)throw new $("No events raised")}const s=Array.from(t.getEvents()?.entries()??[]).flatMap((e=>e[1].map((t=>B.of(e[0],t)))));return s.length||e.isSubGraph()?new j(s):new j([B.of(Y.OUTPUT,new Map)])}async processExecutionQue(e,t,r){if(!t.isEmpty()){let n=t.pop();await this.allDependenciesResolvedVertex(n,e.getSteps())?await this.executeVertex(n,e,r,t,e.getFunctionRepository()):t.add(n)}}async processBranchQue(e,t,r){if(r.length){let n=r.pop();await this.allDependenciesResolvedTuples(n.getT2(),e.getSteps())?await this.executeBranch(e,t,n):r.add(n)}}async executeBranch(e,t,r){let n,s=r.getT4();do{if(await this.executeGraph(r.getT1(),e),n=r.getT3().next(),n&&(e.getSteps()?.has(s.getData().getStatement().getStatementName())||e.getSteps()?.set(s.getData().getStatement().getStatementName(),new Map),e.getSteps()?.get(s.getData().getStatement().getStatementName())?.set(n.getName(),this.resolveInternalExpressions(n.getResult(),e)),this.debugMode)){const t=s.getData().getStatement();console.log(`EID: ${e.getExecutionId()} Step : ${t.getStatementName()} => ${t.getNamespace()}.${t.getName()}`),console.log(`EID: ${e.getExecutionId()} Event : ${n.getName()} : `,e.getSteps().get(t.getStatementName()).get(n.getName()))}}while(n&&n.getName()!=Y.OUTPUT);n?.getName()==Y.OUTPUT&&s.getOutVertices().has(Y.OUTPUT)&&(s?.getOutVertices()?.get(Y.OUTPUT)??[]).forEach((async r=>{await this.allDependenciesResolvedVertex(r,e.getSteps())&&t.add(r)}))}async executeVertex(e,t,r,n,s){let a=e.getData().getStatement(),i=s.find(a.getNamespace(),a.getName());if(!i)throw new $(K.format("$.$ function is not found.",a.getNamespace(),a.getName()));let o=i?.getSignature().getParameters(),E=this.getArgumentsFromParametersMap(t,a,o??new Map);this.debugMode&&(console.log(`EID: ${t.getExecutionId()} Step : ${a.getStatementName()} => ${a.getNamespace()}.${a.getName()}`),console.log(`EID: ${t.getExecutionId()} Arguments : `,E));let u,A=t.getContext();u=i instanceof os?new ns(t.getFunctionRepository(),t.getSchemaRepository(),`${t.getExecutionId()}_${a.getStatementName()}`).setArguments(E).setValuesMap(new Map(Array.from(t.getValuesMap().values()).filter((e=>e.getPrefix()!==$n.PREFIX&&e.getPrefix()!==Hn.PREFIX&&e.getPrefix()!==Yn.PREFIX)).map((e=>[e.getPrefix(),e])))):new ns(t.getFunctionRepository(),t.getSchemaRepository(),t.getExecutionId()).setValuesMap(t.getValuesMap()).setContext(A).setArguments(E).setEvents(t.getEvents()).setSteps(t.getSteps()).setStatementExecution(e.getData()).setCount(t.getCount());let l=await i.execute(u),g=l.next();if(!g)throw new $(K.format("Executing $ returned no events",a.getStatementName()));let m=g.getName()==Y.OUTPUT;if(t.getSteps()?.has(a.getStatementName())||t.getSteps().set(a.getStatementName(),new Map),t.getSteps().get(a.getStatementName()).set(g.getName(),this.resolveInternalExpressions(g.getResult(),t)),this.debugMode&&(console.log(`EID: ${t.getExecutionId()} Step : ${a.getStatementName()} => ${a.getNamespace()}.${a.getName()}`),console.log(`EID: ${t.getExecutionId()} Event : ${g.getName()} : `,t.getSteps().get(a.getStatementName()).get(g.getName()))),m){let r=e.getOutVertices().get(Y.OUTPUT);r&&r.forEach((async e=>{await this.allDependenciesResolvedVertex(e,t.getSteps())&&n.add(e)}))}else{let t=e.getSubGraphOfType(g.getName()),n=this.makeEdges(t).getT1();r.push(new se(t,n,l,e))}}resolveInternalExpressions(e,t){return e?Array.from(e.entries()).map((e=>new re(e[0],this.resolveInternalExpression(e[1],t)))).reduce(((e,t)=>(e.set(t.getT1(),t.getT2()),e)),new Map):e}resolveInternalExpression(e,t){if(E(e)||"object"!=typeof e)return e;if(e instanceof Qn){return new jr(e.getExpression()).evaluate(t.getValuesMap())}if(Array.isArray(e)){let r=[];for(let n of e)r.push(this.resolveInternalExpression(n,t));return r}if("object"==typeof e){let r={};for(let n of Object.entries(e))r[n[0]]=this.resolveInternalExpression(n[1],t);return r}}allDependenciesResolvedTuples(e,t){for(let r of e){if(!t.has(r.getT1()))return!1;if(!t.get(r.getT1())?.get(r.getT2()))return!1}return!0}allDependenciesResolvedVertex(e,t){return!e.getInVertices().size||0==Array.from(e.getInVertices()).filter((e=>{let r=e.getT1().getData().getStatement().getStatementName(),n=e.getT2();return!(t.has(r)&&t.get(r)?.has(n))})).length}getArgumentsFromParametersMap(e,t,r){return Array.from(t.getParameterMap().entries()).map((t=>{let n,s=Array.from(t[1]?.values()??[]);if(!s?.length)return new re(t[0],n);let a=r.get(t[0]);return a?(n=a.isVariableArgument()?s.sort(((e,t)=>(e.getOrder()??0)-(t.getOrder()??0))).filter((e=>!E(e))).map((t=>this.parameterReferenceEvaluation(e,t))).flatMap((e=>Array.isArray(e)?e:[e])):this.parameterReferenceEvaluation(e,s[0]),new re(t[0],n)):new re(t[0],void 0)})).filter((e=>!E(e.getT2()))).reduce(((e,t)=>(e.set(t.getT1(),t.getT2()),e)),new Map)}parameterReferenceEvaluation(e,t){let r;if(t.getType()==Zn.VALUE)r=this.resolveInternalExpression(t.getValue(),e);else if(t.getType()==Zn.EXPRESSION&&!Z.isNullOrBlank(t.getExpression())){r=new jr(t.getExpression()??"").evaluate(e.getValuesMap())}return r}prepareStatementExecution(e,t,r){let n=new Dn(e),s=t.find(e.getNamespace(),e.getName());if(!s)return n.addMessage(as.ERROR,K.format("$.$ is not available",e.getNamespace(),e.getName())),n;let a=new Map(s.getSignature().getParameters());if(!e.getParameterMap())return n;for(let t of Array.from(e.getParameterMap().entries())){let e=a.get(t[0]);if(!e)continue;let s=Array.from(t[1]?.values()??[]);if(s.length||e.isVariableArgument()){if(e.isVariableArgument()){s.sort(((e,t)=>(e.getOrder()??0)-(t.getOrder()??0)));for(let t of s)this.parameterReferenceValidation(n,e,t,r)}else if(s.length){let t=s[0];this.parameterReferenceValidation(n,e,t,r)}a.delete(e.getParameterName())}else oe.hasDefaultValueOrNullSchemaType(e.getSchema(),r)||n.addMessage(as.ERROR,K.format(os.PARAMETER_NEEDS_A_VALUE,e.getParameterName())),a.delete(e.getParameterName())}if(!E(n.getStatement().getDependentStatements()))for(let e of n.getStatement().getDependentStatements().entries())e[1]&&n.addDependency(e[0]);if(a.size)for(let e of Array.from(a.values()))e.isVariableArgument()||oe.hasDefaultValueOrNullSchemaType(e.getSchema(),r)||n.addMessage(as.ERROR,K.format(os.PARAMETER_NEEDS_A_VALUE,e.getParameterName()));return n}parameterReferenceValidation(e,t,r,n){if(r){if(r.getType()==Zn.VALUE){if(E(r.getValue())&&!oe.hasDefaultValueOrNullSchemaType(t.getSchema(),n)&&e.addMessage(as.ERROR,K.format(os.PARAMETER_NEEDS_A_VALUE,t.getParameterName())),E(r.getValue()))return;let s=new ht;for(s.push(new re(t.getSchema(),r.getValue()));!s.isEmpty();){let t=s.pop();if(t.getT2()instanceof Qn)this.addDependencies(e,t.getT2().getExpression());else{if(E(t.getT1())||E(t.getT1().getType()))continue;if(t.getT1().getType()?.contains(l.ARRAY)&&Array.isArray(t.getT2())){let e=t.getT1().getItems();if(!e)continue;if(e.isSingleType())for(let r of t.getT2())s.push(new re(e.getSingleSchema(),r));else{let r=t.getT2();for(let t=0;t<r.length;t++)s.push(new re(e.getTupleSchema()[t],r[t]))}}else if(t.getT1().getType()?.contains(l.OBJECT)&&"object"==typeof t.getT2()){let r=t.getT1();if(r.getName()===y.EXPRESSION.getName()&&r.getNamespace()===y.EXPRESSION.getNamespace()){let r=t.getT2();r.isExpression&&this.addDependencies(e,r.value)}else if(r.getProperties())for(let e of Object.entries(t.getT2()))r.getProperties().has(e[0])&&s.push(new re(r.getProperties().get(e[0]),e[1]))}}}}else if(r.getType()==Zn.EXPRESSION)if(Z.isNullOrBlank(r.getExpression()))E(oe.getDefaultValue(t.getSchema(),n))&&e.addMessage(as.ERROR,K.format(os.PARAMETER_NEEDS_A_VALUE,t.getParameterName()));else try{this.addDependencies(e,r.getExpression())}catch(t){e.addMessage(as.ERROR,K.format("Error evaluating $ : $",r.getExpression(),t))}}else E(oe.getDefaultValue(t.getSchema(),n))&&e.addMessage(as.ERROR,K.format(os.PARAMETER_NEEDS_A_VALUE,t.getParameterName()))}addDependencies(e,t){t&&Array.from(t.match(os.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 re(i,E)),n.set(s.getData().getStatement().getStatementName(),K.format("Unable to find the step with name $",i)))}return new re(r,n)}}var Es={};t(Es,"KIRunConstants",(()=>us));class us{static NAMESPACE="namespace";static NAME="name";static ID="id";constructor(){}}var As={};t(As,"Position",(()=>ls));class ls{static SCHEMA_NAME="Position";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(ls.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["left",S.ofFloat("left")],["top",S.ofFloat("top")]]));constructor(e,t){this.left=e,this.top=t}getLeft(){return this.left}setLeft(e){return this.left=e,this}getTop(){return this.top}setTop(e){return this.top=e,this}static from(e){if(e)return new ls(e.left,e.top)}}var gs={};t(gs,"FunctionDefinition",(()=>Ss));var ms={};t(ms,"Statement",(()=>hs));var Rs={};t(Rs,"AbstractStatement",(()=>ps));class ps{override=!1;constructor(e){e&&(this.comment=e.comment,this.description=e.description,this.position=e.position?new ls(e.position.getLeft(),e.position.getTop()):void 0,this.override=e.override)}getComment(){return this.comment}setComment(e){return this.comment=e,this}isOverride(){return this.override}setOverride(e){return this.override=e,this}getDescription(){return this.description}setDescription(e){return this.description=e,this}getPosition(){return this.position}setPosition(e){return this.position=e,this}}var Ts={};t(Ts,"ParameterReference",(()=>cs));class cs{static SCHEMA_NAME="ParameterReference";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(cs.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["key",S.ofString("key")],["value",S.ofAny("value")],["expression",S.ofString("expression")],["type",S.ofString("type").setEnums(["EXPRESSION","VALUE"])],["order",S.ofInteger("order")]]));constructor(e){if(e instanceof cs){let t=e;this.key=t.key,this.type=t.type,this.value=E(t.value)?void 0:JSON.parse(JSON.stringify(t.value)),this.expression=t.expression,this.order=t.order}else this.type=e,this.key=rs()}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 cs(Zn.EXPRESSION).setExpression(e);return[t.getKey(),t]}static ofValue(e){const t=new cs(Zn.VALUE).setValue(e);return[t.getKey(),t]}static from(e){return new cs(e.type).setValue(e.value).setExpression(e.expression).setKey(e.key).setOrder(e.order)}}class hs extends ps{static SCHEMA_NAME="Statement";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(hs.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["statementName",S.ofString("statementName")],["comment",S.ofString("comment")],["description",S.ofString("description")],["namespace",S.ofString("namespace")],["name",S.ofString("name")],["dependentStatements",S.ofObject("dependentstatement").setAdditionalProperties((new _).setSchemaValue(S.ofBoolean("exists")))],["parameterMap",(new S).setName("parameterMap").setAdditionalProperties((new _).setSchemaValue(S.ofObject("parameterReference").setAdditionalProperties((new _).setSchemaValue(cs.SCHEMA))))],["position",ls.SCHEMA]]));constructor(e,t,r){if(super(e instanceof hs?e:void 0),e instanceof hs){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 cs(e[1])])))])))),t.dependentStatements&&(this.dependentStatements=new Map(Array.from(t.dependentStatements.entries())))}else{if(this.statementName=e,!r||!t)throw new Error("Unknown constructor");this.namespace=t,this.name=r}}getStatementName(){return this.statementName}setStatementName(e){return this.statementName=e,this}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getParameterMap(){return this.parameterMap||(this.parameterMap=new Map),this.parameterMap}setParameterMap(e){return this.parameterMap=e,this}getDependentStatements(){return this.dependentStatements??new Map}setDependentStatements(e){return this.dependentStatements=e,this}equals(e){if(!(e instanceof hs))return!1;return e.statementName==this.statementName}static ofEntry(e){return[e.statementName,e]}static from(e){return new hs(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])=>cs.from(t))).map((e=>[e.getKey(),e])))])))).setDependentStatements(new Map(Object.entries(e.dependentStatements??{}))).setPosition(ls.from(e.position)).setComment(e.comment).setDescription(e.description)}}var Ns={};t(Ns,"StatementGroup",(()=>fs));class fs extends ps{static SCHEMA_NAME="StatementGroup";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(fs.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["statementGroupName",S.ofString("statementGroupName")],["comment",S.ofString("comment")],["description",S.ofString("description")],["position",ls.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 fs(e.statementGroupName,new Map(Object.entries(e.statements||{}).map((([e,t])=>[e,"true"==(""+t)?.toLowerCase()])))).setPosition(ls.from(e.position)).setComment(e.comment).setDescription(e.description)}}const _s=(new S).setNamespace(a.SYSTEM).setName("FunctionDefinition").setProperties(new Map([["name",S.ofString("name")],["namespace",S.ofString("namespace")],["parameters",S.ofArray("parameters",y.SCHEMA)],["events",S.ofObject("events").setAdditionalProperties((new _).setSchemaValue(Y.SCHEMA))],["steps",S.ofObject("steps").setAdditionalProperties((new _).setSchemaValue(hs.SCHEMA))]]));_s.getProperties()?.set("parts",S.ofArray("parts",_s));class Ss extends W{static SCHEMA=_s;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 Ss(e.name).setSteps(new Map(Object.values(e.steps??{}).filter((e=>!!e)).map((e=>[e.statementName,hs.from(e)])))).setStepGroups(new Map(Object.values(e.stepGroups??{}).filter((e=>!!e)).map((e=>[e.statementGroupName,fs.from(e)])))).setParts(Array.from(e.parts??[]).filter((e=>!!e)).map((e=>Ss.from(e)))).setVersion(e.version??1).setEvents(new Map(Object.values(e.events??{}).filter((e=>!!e)).map((e=>[e.name,Y.from(e)])))).setParameters(new Map(Object.values(e.parameters??{}).filter((e=>!!e)).map((e=>[e.parameterName,y.from(e)])))):new Ss("unknown")}}var Ms={};t(Ms,"Argument",(()=>Os));class Os{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 Os(0,e,t)}}var ws={};e(ws,Ir),e(ws,xr),e(ws,Lr),e(ws,Cr),e(ws,dr);var Is={};e(Is,Gt),e(Is,Dt),e(Is,Yt),e(Is,Ht),e(Is,$t),e(Is,Xt),e(Is,qt),e(Is,Ut),e(Is,zt),e(Is,Kt),e(Is,er),e(Is,rr),e(Is,sr),e(Is,ir),e(Is,Er),e(Is,Ar),e(Is,gr),e(Is,Rr),e(Is,Tr),e(Is,fr),e(Is,hr),e(Is,Sr),e(Is,Or),e(Is,Lt),e(module.exports,r),e(module.exports,U),e(module.exports,{}),e(module.exports,Ue),e(module.exports,V),e(module.exports,o),e(module.exports,pt),e(module.exports,ft),e(module.exports,Q),e(module.exports,z),e(module.exports,te),e(module.exports,De),e(module.exports,Tt),e(module.exports,An),e(module.exports,Vn),e(module.exports,Gn),e(module.exports,At),e(module.exports,Fn),e(module.exports,Bn),e(module.exports,kn),e(module.exports,jn),e(module.exports,{}),e(module.exports,Xn),e(module.exports,Jn),e(module.exports,ss),e(module.exports,ts),e(module.exports,Rt),e(module.exports,br),e(module.exports,Gr),e(module.exports,vt),e(module.exports,Pt),e(module.exports,Ot),e(module.exports,St),e(module.exports,It),e(module.exports,{}),e(module.exports,q),e(module.exports,s),e(module.exports,zn),e(module.exports,n),e(module.exports,ce),e(module.exports,me),e(module.exports,pe),e(module.exports,le),e(module.exports,Ee),e(module.exports,_e),e(module.exports,Ne),e(module.exports,J),e(module.exports,ae),e(module.exports,O),e(module.exports,Ae),e(module.exports,i),e(module.exports,h),e(module.exports,m),e(module.exports,R),e(module.exports,p),e(module.exports,A),e(module.exports,ee),e(module.exports,Se),e(module.exports,xn),e(module.exports,Es),e(module.exports,M),e(module.exports,H),e(module.exports,As),e(module.exports,gs),e(module.exports,Kn),e(module.exports,D),e(module.exports,Rs),e(module.exports,ms),e(module.exports,{}),e(module.exports,Ns),e(module.exports,X),e(module.exports,F),e(module.exports,I),e(module.exports,Ms),e(module.exports,Ts),e(module.exports,Ce),e(module.exports,k),e(module.exports,ws),e(module.exports,Is),e(module.exports,Br);
|
|
1
|
+
function e(e,t){return Object.keys(t).forEach((function(r){"default"===r||"__esModule"===r||e.hasOwnProperty(r)||Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[r]}})})),e}function t(e,t,r,n){Object.defineProperty(e,t,{get:r,set:n,enumerable:!0,configurable:!0})}var r={};t(r,"KIRunSchemaRepository",(()=>L));var n={};t(n,"AdditionalType",(()=>_)),t(n,"Schema",(()=>S));var s={};t(s,"Namespaces",(()=>a));class a{static SYSTEM="System";static SYSTEM_CTX="System.Context";static SYSTEM_LOOP="System.Loop";static SYSTEM_ARRAY="System.Array";static SYSTEM_OBJECT="System.Object";static MATH="System.Math";static STRING="System.String";constructor(){}}var i={};t(i,"ArraySchemaType",(()=>u));var o={};function E(e){return null==e}t(o,"isNullValue",(()=>E));class u{constructor(e){e&&(this.singleSchema=e.singleSchema?new S(e.singleSchema):void 0,this.tupleSchema=e.tupleSchema?e.tupleSchema.map((e=>new S(e))):void 0)}setSingleSchema(e){return this.singleSchema=e,this}setTupleSchema(e){return this.tupleSchema=e,this}getSingleSchema(){return this.singleSchema}getTupleSchema(){return this.tupleSchema}isSingleType(){return!E(this.singleSchema)}static of(...e){return 1==e.length?(new u).setSingleSchema(e[0]):(new u).setTupleSchema(e)}static from(e){if(!e)return;if(Array.isArray(e))return(new u).setTupleSchema(S.fromListOfSchemas(e));let t=Object.keys(e);if(-1!=t.indexOf("singleSchema"))return(new u).setSingleSchema(S.from(e.singleSchema));if(-1!=t.indexOf("tupleSchema"))return(new u).setTupleSchema(S.fromListOfSchemas(e.tupleSchema));let r=S.from(e);return r?(new u).setSingleSchema(r):void 0}}var A={};let l;var g;t(A,"SchemaType",(()=>l)),(g=l||(l={})).INTEGER="Integer",g.LONG="Long",g.FLOAT="Float",g.DOUBLE="Double",g.STRING="String",g.OBJECT="Object",g.ARRAY="Array",g.BOOLEAN="Boolean",g.NULL="Null";var m={};t(m,"TypeUtil",(()=>f));var R={};t(R,"MultipleType",(()=>c));var T={};t(T,"Type",(()=>p));class p{}class c extends p{constructor(e){super(),this.type=e instanceof c?new Set(Array.from(e.type)):new Set(Array.from(e))}getType(){return this.type}setType(e){return this.type=e,this}getAllowedSchemaTypes(){return this.type}contains(e){return this.type?.has(e)}}var h={};t(h,"SingleType",(()=>N));class N extends p{constructor(e){super(),this.type=e instanceof N?e.type:e}getType(){return this.type}getAllowedSchemaTypes(){return new Set([this.type])}contains(e){return this.type==e}}class f{static of(...e){return 1==e.length?new N(e[0]):new c(new Set(e))}static from(e){return"string"==typeof e?new N(l[e]):Array.isArray(e)?new c(new Set(e.map((e=>e)).map((e=>l[e])))):void 0}}class _{constructor(e){e&&(this.booleanValue=e.booleanValue,e.schemaValue&&(this.schemaValue=new S(e.schemaValue)))}getBooleanValue(){return this.booleanValue}getSchemaValue(){return this.schemaValue}setBooleanValue(e){return this.booleanValue=e,this}setSchemaValue(e){return this.schemaValue=e,this}static from(e){if(E(e))return;const t=new _;if("boolean"==typeof e)t.booleanValue=e;else{let r=Object.keys(e);-1!=r.indexOf("booleanValue")?t.booleanValue=e.booleanValue:-1!=r.indexOf("schemaValue")?t.schemaValue=S.from(e.schemaValue):t.schemaValue=S.from(e)}return t}}class S{static NULL=(new S).setNamespace(a.SYSTEM).setName("Null").setType(f.of(l.NULL)).setConstant(void 0);static TYPE_SCHEMA=(new S).setType(f.of(l.STRING)).setEnums(["INTEGER","LONG","FLOAT","DOUBLE","STRING","OBJECT","ARRAY","BOOLEAN","NULL"]);static SCHEMA=(new S).setNamespace(a.SYSTEM).setName("Schema").setType(f.of(l.OBJECT)).setProperties(new Map([["namespace",S.of("namespace",l.STRING).setDefaultValue("_")],["name",S.ofString("name")],["version",S.of("version",l.INTEGER).setDefaultValue(1)],["ref",S.ofString("ref")],["type",(new S).setAnyOf([S.TYPE_SCHEMA,S.ofArray("type",S.TYPE_SCHEMA)])],["anyOf",S.ofArray("anyOf",S.ofRef("System.Schema"))],["allOf",S.ofArray("allOf",S.ofRef("System.Schema"))],["oneOf",S.ofArray("oneOf",S.ofRef("System.Schema"))],["not",S.ofRef("System.Schema")],["title",S.ofString("title")],["description",S.ofString("description")],["id",S.ofString("id")],["examples",S.ofAny("examples")],["defaultValue",S.ofAny("defaultValue")],["comment",S.ofString("comment")],["enums",S.ofArray("enums",S.ofString("enums"))],["constant",S.ofAny("constant")],["pattern",S.ofString("pattern")],["format",S.of("format",l.STRING).setEnums(["DATETIME","TIME","DATE","EMAIL","REGEX"])],["minLength",S.ofInteger("minLength")],["maxLength",S.ofInteger("maxLength")],["multipleOf",S.ofLong("multipleOf")],["minimum",S.ofNumber("minimum")],["maximum",S.ofNumber("maximum")],["exclusiveMinimum",S.ofNumber("exclusiveMinimum")],["exclusiveMaximum",S.ofNumber("exclusiveMaximum")],["properties",S.of("properties",l.OBJECT).setAdditionalProperties((new _).setSchemaValue(S.ofRef("System.Schema")))],["additionalProperties",(new S).setName("additionalProperty").setNamespace(a.SYSTEM).setAnyOf([S.ofBoolean("additionalProperty"),S.ofObject("additionalProperty").setRef("System.Schema")]).setDefaultValue(!0)],["required",S.ofArray("required",S.ofString("required")).setDefaultValue([])],["propertyNames",S.ofRef("System.Schema")],["minProperties",S.ofInteger("minProperties")],["maxProperties",S.ofInteger("maxProperties")],["patternProperties",S.of("patternProperties",l.OBJECT).setAdditionalProperties((new _).setSchemaValue(S.ofRef("System.Schema")))],["items",(new S).setName("items").setAnyOf([S.ofRef("System.Schema").setName("item"),S.ofArray("tuple",S.ofRef("System.Schema"))])],["contains",S.ofRef("System.Schema")],["minContains",S.ofInteger("minContains")],["maxContains",S.ofInteger("maxContains")],["minItems",S.ofInteger("minItems")],["maxItems",S.ofInteger("maxItems")],["uniqueItems",S.ofBoolean("uniqueItems")],["additionalItems",(new S).setName("additionalItems").setNamespace(a.SYSTEM).setAnyOf([S.ofBoolean("additionalItems"),S.ofObject("additionalItems").setRef("System.Schema")])],["$defs",S.of("$defs",l.OBJECT).setAdditionalProperties((new _).setSchemaValue(S.ofRef("System.Schema")))],["permission",S.ofString("permission")]])).setRequired([]);static ofString(e){return(new S).setType(f.of(l.STRING)).setName(e)}static ofInteger(e){return(new S).setType(f.of(l.INTEGER)).setName(e)}static ofFloat(e){return(new S).setType(f.of(l.FLOAT)).setName(e)}static ofLong(e){return(new S).setType(f.of(l.LONG)).setName(e)}static ofDouble(e){return(new S).setType(f.of(l.DOUBLE)).setName(e)}static ofAny(e){return(new S).setType(f.of(l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE,l.STRING,l.BOOLEAN,l.ARRAY,l.NULL,l.OBJECT)).setName(e)}static ofAnyNotNull(e){return(new S).setType(f.of(l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE,l.STRING,l.BOOLEAN,l.ARRAY,l.OBJECT)).setName(e)}static ofNumber(e){return(new S).setType(f.of(l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE)).setName(e)}static ofBoolean(e){return(new S).setType(f.of(l.BOOLEAN)).setName(e)}static of(e,...t){return(new S).setType(f.of(...t)).setName(e)}static ofObject(e){return(new S).setType(f.of(l.OBJECT)).setName(e)}static ofRef(e){return(new S).setRef(e)}static ofArray(e,...t){return(new S).setType(f.of(l.ARRAY)).setName(e).setItems(u.of(...t))}static fromListOfSchemas(e){if(E(e)&&!Array.isArray(e))return;let t=[];for(let r of Array.from(e)){let e=S.from(r);e&&t.push(e)}return t}static fromMapOfSchemas(e){if(E(e))return;const t=new Map;return Object.entries(e).forEach((([e,r])=>{let n=S.from(r);n&&t.set(e,n)})),t}static from(e,t=!1){if(E(e))return;let r=new S;return r.namespace=e.namespace??"_",r.name=e.name,r.version=e.version??1,r.ref=e.ref,r.type=t?new N(l.STRING):f.from(e.type),r.anyOf=S.fromListOfSchemas(e.anyOf),r.allOf=S.fromListOfSchemas(e.allOf),r.oneOf=S.fromListOfSchemas(e.oneOf),r.not=S.from(e.not),r.description=e.description,r.examples=e.examples?[...e.examples]:void 0,r.defaultValue=e.defaultValue,r.comment=e.comment,r.enums=e.enums?[...e.enums]:void 0,r.constant=e.constant,r.pattern=e.pattern,r.format=e.format,r.minLength=e.minLength,r.maxLength=e.maxLength,r.multipleOf=e.multipleOf,r.minimum=e.minimum,r.maximum=e.maximum,r.exclusiveMinimum=e.exclusiveMinimum,r.exclusiveMaximum=e.exclusiveMaximum,r.properties=S.fromMapOfSchemas(e.properties),r.additionalProperties=_.from(e.additionalProperties),r.required=e.required,r.propertyNames=S.from(e.propertyNames,!0),r.minProperties=e.minProperties,r.maxProperties=e.maxProperties,r.patternProperties=S.fromMapOfSchemas(e.patternProperties),r.items=u.from(e.items),r.additionalItems=_.from(e.additionalItems),r.contains=S.from(e.contains),r.minContains=e.minContains,r.maxContains=e.maxContains,r.minItems=e.minItems,r.maxItems=e.maxItems,r.uniqueItems=e.uniqueItems,r.$defs=S.fromMapOfSchemas(e.$defs),r.permission=e.permission,r}namespace="_";version=1;constructor(e){e&&(this.namespace=e.namespace,this.name=e.name,this.version=e.version,this.ref=e.ref,this.type=e.type instanceof N?new N(e.type):new c(e.type),this.anyOf=e.anyOf?.map((e=>new S(e))),this.allOf=e.allOf?.map((e=>new S(e))),this.oneOf=e.oneOf?.map((e=>new S(e))),this.not=this.not?new S(this.not):void 0,this.description=e.description,this.examples=e.examples?JSON.parse(JSON.stringify(e.examples)):void 0,this.defaultValue=e.defaultValue?JSON.parse(JSON.stringify(e.defaultValue)):void 0,this.comment=e.comment,this.enums=e.enums?[...e.enums]:void 0,this.constant=e.constant?JSON.parse(JSON.stringify(e.constant)):void 0,this.pattern=e.pattern,this.format=e.format,this.minLength=e.minLength,this.maxLength=e.maxLength,this.multipleOf=e.multipleOf,this.minimum=e.minimum,this.maximum=e.maximum,this.exclusiveMinimum=e.exclusiveMinimum,this.exclusiveMaximum=e.exclusiveMaximum,this.properties=e.properties?new Map(Array.from(e.properties.entries()).map((e=>[e[0],new S(e[1])]))):void 0,this.additionalProperties=e.additionalProperties?new _(e.additionalProperties):void 0,this.required=e.required?[...e.required]:void 0,this.propertyNames=e.propertyNames?new S(e.propertyNames):void 0,this.minProperties=e.minProperties,this.maxProperties=e.maxProperties,this.patternProperties=e.patternProperties?new Map(Array.from(e.patternProperties.entries()).map((e=>[e[0],new S(e[1])]))):void 0,this.items=e.items?new u(e.items):void 0,this.contains=e.contains?new S(this.contains):void 0,this.minContains=e.minContains,this.maxContains=e.maxContains,this.minItems=e.minItems,this.maxItems=e.maxItems,this.uniqueItems=e.uniqueItems,this.additionalItems=e.additionalItems?new _(e.additionalItems):void 0,this.$defs=e.$defs?new Map(Array.from(e.$defs.entries()).map((e=>[e[0],new S(e[1])]))):void 0,this.permission=e.permission)}getTitle(){return this.namespace&&"_"!=this.namespace?this.namespace+"."+this.name:this.name}getFullName(){return this.namespace+"."+this.name}get$defs(){return this.$defs}set$defs(e){return this.$defs=e,this}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getVersion(){return this.version}setVersion(e){return this.version=e,this}getRef(){return this.ref}setRef(e){return this.ref=e,this}getType(){return this.type}setType(e){return this.type=e,this}getAnyOf(){return this.anyOf}setAnyOf(e){return this.anyOf=e,this}getAllOf(){return this.allOf}setAllOf(e){return this.allOf=e,this}getOneOf(){return this.oneOf}setOneOf(e){return this.oneOf=e,this}getNot(){return this.not}setNot(e){return this.not=e,this}getDescription(){return this.description}setDescription(e){return this.description=e,this}getExamples(){return this.examples}setExamples(e){return this.examples=e,this}getDefaultValue(){return this.defaultValue}setDefaultValue(e){return this.defaultValue=e,this}getComment(){return this.comment}setComment(e){return this.comment=e,this}getEnums(){return this.enums}setEnums(e){return this.enums=e,this}getConstant(){return this.constant}setConstant(e){return this.constant=e,this}getPattern(){return this.pattern}setPattern(e){return this.pattern=e,this}getFormat(){return this.format}setFormat(e){return this.format=e,this}getMinLength(){return this.minLength}setMinLength(e){return this.minLength=e,this}getMaxLength(){return this.maxLength}setMaxLength(e){return this.maxLength=e,this}getMultipleOf(){return this.multipleOf}setMultipleOf(e){return this.multipleOf=e,this}getMinimum(){return this.minimum}setMinimum(e){return this.minimum=e,this}getMaximum(){return this.maximum}setMaximum(e){return this.maximum=e,this}getExclusiveMinimum(){return this.exclusiveMinimum}setExclusiveMinimum(e){return this.exclusiveMinimum=e,this}getExclusiveMaximum(){return this.exclusiveMaximum}setExclusiveMaximum(e){return this.exclusiveMaximum=e,this}getProperties(){return this.properties}setProperties(e){return this.properties=e,this}getAdditionalProperties(){return this.additionalProperties}setAdditionalProperties(e){return this.additionalProperties=e,this}getAdditionalItems(){return this.additionalItems}setAdditionalItems(e){return this.additionalItems=e,this}getRequired(){return this.required}setRequired(e){return this.required=e,this}getPropertyNames(){return this.propertyNames}setPropertyNames(e){return this.propertyNames=e,this.propertyNames.type=new N(l.STRING),this}getMinProperties(){return this.minProperties}setMinProperties(e){return this.minProperties=e,this}getMaxProperties(){return this.maxProperties}setMaxProperties(e){return this.maxProperties=e,this}getPatternProperties(){return this.patternProperties}setPatternProperties(e){return this.patternProperties=e,this}getItems(){return this.items}setItems(e){return this.items=e,this}getContains(){return this.contains}setContains(e){return this.contains=e,this}getMinContains(){return this.minContains}setMinContains(e){return this.minContains=e,this}getMaxContains(){return this.maxContains}setMaxContains(e){return this.maxContains=e,this}getMinItems(){return this.minItems}setMinItems(e){return this.minItems=e,this}getMaxItems(){return this.maxItems}setMaxItems(e){return this.maxItems=e,this}getUniqueItems(){return this.uniqueItems}setUniqueItems(e){return this.uniqueItems=e,this}getPermission(){return this.permission}setPermission(e){return this.permission=e,this}}var M={};t(M,"Parameter",(()=>y));var O={};t(O,"SchemaReferenceException",(()=>w));class w extends Error{constructor(e,t,r){super(e.trim()?e+"-"+t:t),this.schemaPath=e,this.cause=r}getSchemaPath(){return this.schemaPath}getCause(){return this.cause}}var d={};let I;var P;t(d,"ParameterType",(()=>I)),(P=I||(I={})).CONSTANT="CONSTANT",P.EXPRESSION="EXPRESSION";class y{static SCHEMA_NAME="Parameter";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(y.SCHEMA_NAME).setProperties(new Map([["schema",S.SCHEMA],["parameterName",S.ofString("parameterName")],["variableArgument",S.of("variableArgument",l.BOOLEAN).setDefaultValue(!1)],["type",S.ofString("type").setEnums(["EXPRESSION","CONSTANT"])]]));static EXPRESSION=(new S).setNamespace(a.SYSTEM).setName("ParameterExpression").setType(f.of(l.OBJECT)).setProperties(new Map([["isExpression",S.ofBoolean("isExpression").setDefaultValue(!0)],["value",S.ofAny("value")]]));variableArgument=!1;type=I.EXPRESSION;constructor(e,t){if(e instanceof y)this.schema=new S(e.schema),this.parameterName=e.parameterName,this.variableArgument=e.variableArgument,this.type=e.type;else{if(!t)throw new Error("Unknown constructor signature");this.schema=t,this.parameterName=e}}getSchema(){return this.schema}setSchema(e){return this.schema=e,this}getParameterName(){return this.parameterName}setParameterName(e){return this.parameterName=e,this}isVariableArgument(){return this.variableArgument}setVariableArgument(e){return this.variableArgument=e,this}getType(){return this.type}setType(e){return this.type=e,this}static ofEntry(e,t,r=!1,n=I.EXPRESSION){return[e,new y(e,t).setType(n).setVariableArgument(r)]}static of(e,t,r=!1,n=I.EXPRESSION){return new y(e,t).setType(n).setVariableArgument(r)}static from(e){const t=S.from(e.schema);if(!t)throw new w("","Parameter requires Schema");return new y(e.parameterName,t).setVariableArgument(!!e.variableArguments).setType(e.type??I.EXPRESSION)}}const x=new Map([["any",S.ofAny("any").setNamespace(a.SYSTEM)],["boolean",S.ofBoolean("boolean").setNamespace(a.SYSTEM)],["double",S.ofDouble("double").setNamespace(a.SYSTEM)],["float",S.ofFloat("float").setNamespace(a.SYSTEM)],["integer",S.ofInteger("integer").setNamespace(a.SYSTEM)],["long",S.ofLong("long").setNamespace(a.SYSTEM)],["number",S.ofNumber("number").setNamespace(a.SYSTEM)],["string",S.ofString("string").setNamespace(a.SYSTEM)],[y.EXPRESSION.getName(),y.EXPRESSION],[S.NULL.getName(),S.NULL],[S.SCHEMA.getName(),S.SCHEMA]]),v=Array.from(x.values()).map((e=>e.getFullName()));class L{find(e,t){if(a.SYSTEM==e)return x.get(t)}filter(e){return v.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}var U={};function C(e){return[e.getSignature().getName(),e]}t(U,"KIRunFunctionRepository",(()=>Gn));var V={};t(V,"MapUtil",(()=>G)),t(V,"MapEntry",(()=>b));class G{static of(e,t,r,n,s,a,i,o,u,A,l,g,m,R,T,p,c,h,N,f){const _=new Map;return E(e)||E(t)||_.set(e,t),E(r)||E(n)||_.set(r,n),E(s)||E(a)||_.set(s,a),E(i)||E(o)||_.set(i,o),E(u)||E(A)||_.set(u,A),E(l)||E(g)||_.set(l,g),E(m)||E(R)||_.set(m,R),E(T)||E(p)||_.set(T,p),E(c)||E(h)||_.set(c,h),E(N)||E(f)||_.set(N,f),_}static ofArrayEntries(...e){const t=new Map;for(const[r,n]of e)t.set(r,n);return t}static entry(e,t){return new b(e,t)}static ofEntries(...e){const t=new Map;for(const r of e)t.set(r.k,r.v);return t}static ofEntriesArray(...e){const t=new Map;for(let r=0;r<e.length;r++)t.set(e[r][0],e[r][1]);return t}constructor(){}}class b{constructor(e,t){this.k=e,this.v=t}}var D={};t(D,"EventResult",(()=>B));var F={};t(F,"Event",(()=>Y));class Y{static OUTPUT="output";static ERROR="error";static ITERATION="iteration";static TRUE="true";static FALSE="false";static SCHEMA_NAME="Event";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(Y.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["name",S.ofString("name")],["parameters",S.ofObject("parameter").setAdditionalProperties((new _).setSchemaValue(S.SCHEMA))]]));constructor(e,t){if(e instanceof Y)this.name=e.name,this.parameters=new Map(Array.from(e.parameters.entries()).map((e=>[e[0],new S(e[1])])));else{if(this.name=e,!t)throw new Error("Unknown constructor format");this.parameters=t}}getName(){return this.name}setName(e){return this.name=e,this}getParameters(){return this.parameters}setParameters(e){return this.parameters=e,this}static outputEventMapEntry(e){return Y.eventMapEntry(Y.OUTPUT,e)}static eventMapEntry(e,t){return[e,new Y(e,t)]}static from(e){return new Y(e.name,new Map(Object.entries(e.parameters??{}).map((e=>{const t=S.from(e[1]);if(!t)throw new w("","Event expects a schema");return[e[0],t]}))))}}class B{constructor(e,t){this.name=e,this.result=t}getName(){return this.name}setName(e){return this.name=e,this}getResult(){return this.result}setResult(e){return this.result=e,this}static outputOf(e){return B.of(Y.OUTPUT,e)}static of(e,t){return new B(e,t)}}var H={};t(H,"FunctionOutput",(()=>j));var k={};t(k,"KIRuntimeException",(()=>$));class $ extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class j{index=0;constructor(e){if(E(e))throw new $("Function output is generating null");Array.isArray(e)&&e.length&&e[0]instanceof B?this.fo=e:(this.fo=[],Array.isArray(e)||(this.generator=e))}next(){if(!this.generator)return this.index<this.fo.length?this.fo[this.index++]:void 0;const e=this.generator.next();return e&&this.fo.push(e),e}allResults(){return this.fo}}var X={};t(X,"FunctionSignature",(()=>W));class W{static SCHEMA_NAME="FunctionSignature";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(W.SCHEMA_NAME).setProperties(new Map([["name",S.ofString("name")],["namespace",S.ofString("namespace")],["parameters",S.ofObject("parameters").setAdditionalProperties((new _).setSchemaValue(y.SCHEMA))],["events",S.ofObject("events").setAdditionalProperties((new _).setSchemaValue(Y.SCHEMA))]]));namespace="_";parameters=new Map;events=new Map;constructor(e){e instanceof W?(this.name=e.name,this.namespace=e.namespace,this.parameters=new Map(Array.from(e.parameters.entries()).map((e=>[e[0],new y(e[1])]))),this.events=new Map(Array.from(e.events.entries()).map((e=>[e[0],new Y(e[1])])))):this.name=e}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getParameters(){return this.parameters}setParameters(e){return this.parameters=e,this}getEvents(){return this.events}setEvents(e){return this.events=e,this}getFullName(){return this.namespace+"."+this.name}}var q={};t(q,"AbstractFunction",(()=>Ue));var J={};t(J,"SchemaValidator",(()=>Le));var z={};t(z,"deepEqual",(()=>re));var Q={};t(Q,"LinkedList",(()=>ee));var K={};t(K,"StringFormatter",(()=>Z));class Z{static format(e,...t){if(!t||0==t.length)return e;let r="",n=0,s="",a=s,i=e.length;for(let o=0;o<i;o++)s=e.charAt(o),"$"==s&&"\\"==a?r=r.substring(0,o-1)+s:"$"==s&&n<t.length?r+=t[n++]:r+=s,a=s;return r.toString()}constructor(){}}class ee{head=void 0;tail=void 0;length=0;constructor(e){if(e?.length){for(const t of e)if(this.head){const e=new te(t,this.tail);this.tail.next=e,this.tail=e}else this.tail=this.head=new te(t);this.length=e.length}}push(e){const t=new te(e,void 0,this.head);this.head?(this.head.previous=t,this.head=t):this.tail=this.head=t,this.length++}pop(){if(!this.head)throw Error("List is empty and cannot pop further.");const e=this.head.value;if(this.length--,this.head==this.tail)return this.head=this.tail=void 0,e;const t=this.head;return this.head=t.next,t.next=void 0,t.previous=void 0,this.head.previous=void 0,e}isEmpty(){return!this.length}size(){return this.length}get(e){if(e<0||e>=this.length)throw new Error(`${e} is out of bounds [0,${this.length}]`);let t=this.head;for(;e>0;)t=this.head.next,--e;return t.value}set(e,t){if(e<0||e>=this.length)throw new $(Z.format("Index $ out of bound to set the value in linked list.",e));let r=this.head;for(;e>0;)r=this.head.next,--e;return r.value=t,this}toString(){let e=this.head,t="";for(;e;)t+=e.value,e=e.next,e&&(t+=", ");return`[${t}]`}toArray(){let e=[],t=this.head;for(;t;)e.push(t.value),t=t.next;return e}peek(){if(!this.head)throw new Error("List is empty so cannot peak");return this.head.value}peekLast(){if(!this.tail)throw new Error("List is empty so cannot peak");return this.tail.value}getFirst(){if(!this.head)throw new Error("List is empty so cannot get first");return this.head.value}removeFirst(){return this.pop()}removeLast(){if(!this.tail)throw new Error("List is empty so cannot remove");--this.length;const e=this.tail.value;if(0==this.length)this.head=this.tail=void 0;else{const e=this.tail.previous;e.next=void 0,this.tail.previous=void 0,this.tail=e}return e}addAll(e){return e&&e.length?(e.forEach(this.add.bind(this)),this):this}add(e){return++this.length,this.tail||this.head?this.head===this.tail?(this.tail=new te(e,this.head),this.head.next=this.tail):(this.tail=new te(e,this.tail),this.tail.previous.next=this.tail):this.head=this.tail=new te(e),this}map(e,t){let r=new ee,n=this.head,s=0;for(;n;)r.add(e(n.value,s)),n=n.next,++s;return r}indexOf(e){let t=this.head,r=0;for(;t;){if(re(t.value,e))return r;t=t.next,++r}return-1}forEach(e,t){let r=this.head,n=0;for(;r;)e(r.value,n),r=r.next,++n}}class te{constructor(e,t,r){this.value=e,this.next=r,this.previous=t}toString(){return""+this.value}}function re(e,t){let r=new ee;r.push(e);let n=new ee;for(n.push(t);!r.isEmpty()&&!n.isEmpty();){const e=r.pop(),t=n.pop();if(e===t)continue;const s=typeof e,a=typeof t;if("undefined"===s||"undefined"===a){if(!e&&!t)continue;return!1}if(s!==a)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!=t.length)return!1;for(let s=0;s<e.length;s++)r.push(e[s]),n.push(t[s])}else{if("object"!==s)return!1;{const s=Object.entries(e),a=Object.entries(t);if(s.length!==a.length)return!1;for(const[e,a]of s)r.push(a),n.push(t[e])}}}return!0}var ne={};t(ne,"StringUtil",(()=>se));class se{constructor(){}static nthIndex(e,t,r=0,n){if(!e)throw new $("String cannot be null");if(r<0||r>=e.length)throw new $(Z.format("Cannot search from index : $",r));if(n<=0||n>e.length)throw new $(Z.format("Cannot search for occurance : $",n));for(;r<e.length;){if(e.charAt(r)==t&&0==--n)return r;++r}return-1}static splitAtFirstOccurance(e,t){if(!e)return[void 0,void 0];let r=e.indexOf(t);return-1==r?[e,void 0]:[e.substring(0,r),e.substring(r+1)]}static isNullOrBlank(e){return!e||""==e.trim()}}var ae={};t(ae,"SchemaUtil",(()=>ge));var ie={};t(ie,"Tuple2",(()=>oe)),t(ie,"Tuple3",(()=>Ee)),t(ie,"Tuple4",(()=>ue));class oe{constructor(e,t){this.f=e,this.s=t}getT1(){return this.f}getT2(){return this.s}setT1(e){return this.f=e,this}setT2(e){return this.s=e,this}}class Ee extends oe{constructor(e,t,r){super(e,t),this.t=r}getT3(){return this.t}setT1(e){return this.f=e,this}setT2(e){return this.s=e,this}setT3(e){return this.t=e,this}}class ue extends Ee{constructor(e,t,r,n){super(e,t,r),this.fr=n}getT4(){return this.fr}setT1(e){return this.f=e,this}setT2(e){return this.s=e,this}setT3(e){return this.t=e,this}setT4(e){return this.fr=e,this}}var Ae={};t(Ae,"SchemaValidationException",(()=>le));class le extends Error{constructor(e,t,r=[],n){super(t+(r?r.map((e=>e.message)).reduce(((e,t)=>e+"\n"+t),""):"")),this.schemaPath=e,this.cause=n}getSchemaPath(){return this.schemaPath}getCause(){return this.cause}}class ge{static UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH="Unable to retrive schema from referenced path";static CYCLIC_REFERENCE_LIMIT_COUNTER=20;static getDefaultValue(e,t){if(e)return e.getConstant()?e.getConstant():E(e.getDefaultValue())?ge.getDefaultValue(ge.getSchemaFromRef(e,t,e.getRef()),t):e.getDefaultValue()}static hasDefaultValueOrNullSchemaType(e,t){return!!e&&(!!e.getConstant()||(!E(e.getDefaultValue())||(E(e.getRef())?!!e.getType()?.getAllowedSchemaTypes().has(l.NULL):this.hasDefaultValueOrNullSchemaType(ge.getSchemaFromRef(e,t,e.getRef()),t))))}static getSchemaFromRef(e,t,r,n=0){if(++n==ge.CYCLIC_REFERENCE_LIMIT_COUNTER)throw new le(r??"","Schema has a cyclic reference");if(!e||!r||se.isNullOrBlank(r))return;if(!r.startsWith("#")){var s=ge.resolveExternalSchema(e,t,r);s&&(e=s.getT1(),r=s.getT2())}let a=r.split("/");return 1===a.length?e:ge.resolveInternalSchema(e,t,r,n,a,1)}static resolveInternalSchema(e,t,r,n,s,a){let i=e;if(a!==s.length){for(;a<s.length;){if("$defs"===s[a]){if(++a>=s.length||!i.get$defs())throw new w(r,ge.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);i=i.get$defs()?.get(s[a])}else{if(i&&(!i.getType()?.contains(l.OBJECT)||!i.getProperties()))throw new w(r,"Cannot retrievie schema from non Object type schemas");i=i.getProperties()?.get(s[a])}if(a++,!i)throw new w(r,ge.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);if(!se.isNullOrBlank(i.getRef())&&(i=ge.getSchemaFromRef(i,t,i.getRef(),n),!i))throw new w(r,ge.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH)}return i}}static resolveExternalSchema(e,t,r){if(!t)return;let n=se.splitAtFirstOccurance(r??"","/");if(!n[0])return;let s=se.splitAtFirstOccurance(n[0],".");if(!s[0]||!s[1])return;let a=t.find(s[0],s[1]);if(a){if(!n[1]||""===n[1])return new oe(a,r);if(r="#/"+n[1],!a)throw new w(r,ge.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);return new oe(a,r)}}constructor(){}}var me={};t(me,"AnyOfAllOfOneOfValidator",(()=>Re));class Re{static validate(e,t,r,n){let s=[];return t.getOneOf()&&!t.getOneOf()?Re.oneOf(e,t,r,n,s):t.getAllOf()&&!t.getAllOf()?Re.allOf(e,t,r,n,s):t.getAnyOf()&&!t.getAnyOf()&&Re.anyOf(e,t,r,n,s),n}static anyOf(e,t,r,n,s){let a=!1;for(let i of t.getAnyOf()??[])try{Re.validate(e,i,r,n),a=!0;break}catch(e){a=!1,s.push(e)}if(!a)throw new le(Le.path(e),"The value don't satisfy any of the schemas.",s)}static allOf(e,t,r,n,s){let a=0;for(let i of t.getAllOf()??[])try{Re.validate(e,i,r,n),a++}catch(e){s.push(e)}if(a!==t.getAllOf()?.length)throw new le(Le.path(e),"The value doesn't satisfy some of the schemas.",s)}static oneOf(e,t,r,n,s){let a=0;for(let i of t.getOneOf()??[])try{Re.validate(e,i,r,n),a++}catch(e){s.push(e)}if(1!=a)throw new le(Le.path(e),0==a?"The value does not satisfy any schema":"The value satisfy more than one schema",s)}constructor(){}}var Te={};t(Te,"TypeValidator",(()=>ve));var pe={};t(pe,"ArrayValidator",(()=>ce));class ce{static validate(e,t,r,n){if(E(n))throw new le(Le.path(e),"Expected an array but found null");if(!Array.isArray(n))throw new le(Le.path(e),n.toString()+" is not an Array");let s=n;return ce.checkMinMaxItems(e,t,s),ce.checkItems(e,t,r,s),ce.checkUniqueItems(e,t,s),ce.checkContains(t,e,r,s),n}static checkContains(e,t,r,n){if(E(e.getContains()))return;let s=ce.countContains(t,e,r,n,E(e.getMinContains())&&E(e.getMaxContains()));if(0===s)throw new le(Le.path(t),"None of the items are of type contains schema");if(!E(e.getMinContains())&&e.getMinContains()>s)throw new le(Le.path(t),"The minimum number of the items of type contains schema should be "+e.getMinContains()+" but found "+s);if(!E(e.getMaxContains())&&e.getMaxContains()<s)throw new le(Le.path(t),"The maximum number of the items of type contains schema should be "+e.getMaxContains()+" but found "+s)}static countContains(e,t,r,n,s){let a=0;for(let i=0;i<n.length;i++){let o=e?[...e]:[];try{if(Le.validate(o,t.getContains(),r,n[i]),a++,s)break}catch(e){}}return a}static checkUniqueItems(e,t,r){if(t.getUniqueItems()&&t.getUniqueItems()){if(new Set(r).size!==r.length)throw new le(Le.path(e),"Items on the array are not unique")}}static checkMinMaxItems(e,t,r){if(t.getMinItems()&&t.getMinItems()>r.length)throw new le(Le.path(e),"Array should have minimum of "+t.getMinItems()+" elements");if(t.getMaxItems()&&t.getMaxItems()<r.length)throw new le(Le.path(e),"Array can have maximum of "+t.getMaxItems()+" elements")}static checkItems(e,t,r,n){if(!t.getItems())return;let s=t.getItems();if(s.getSingleSchema())for(let t=0;t<n.length;t++){let a=e?[...e]:[],i=Le.validate(a,s.getSingleSchema(),r,n[t]);n[t]=i}if(s.getTupleSchema()){if(s.getTupleSchema().length!==n.length&&E(t?.getAdditionalItems()))throw new le(Le.path(e),"Expected an array with only "+s.getTupleSchema().length+" but found "+n.length);this.checkItemsInTupleSchema(e,r,n,s),this.checkAdditionalItems(e,t,r,n,s)}}static checkItemsInTupleSchema(e,t,r,n){for(let s=0;s<n.getTupleSchema()?.length;s++){let a=e?[...e]:[],i=Le.validate(a,n.getTupleSchema()[s],t,r[s]);r[s]=i}}static checkAdditionalItems(e,t,r,n,s){if(!E(t.getAdditionalItems())){let a=t.getAdditionalItems();if(a?.getBooleanValue()){let i=S.ofAny("item");if(!1===a?.getBooleanValue()&&n.length>s.getTupleSchema()?.length)throw new le(Le.path(e),"No Additional Items are defined");this.checkEachItemInAdditionalItems(e,t,r,n,s,i)}else if(a?.getSchemaValue()){let i=a.getSchemaValue();this.checkEachItemInAdditionalItems(e,t,r,n,s,i)}}}static checkEachItemInAdditionalItems(e,t,r,n,s,a){for(let t=s.getTupleSchema()?.length;t<n.length;t++){let s=e?[...e]:[],i=Le.validate(s,a,r,n[t]);n[t]=i}}constructor(){}}var he={};t(he,"BooleanValidator",(()=>Ne));class Ne{static validate(e,t,r){if(E(r))throw new le(Le.path(e),"Expected a boolean but found null");if("boolean"!=typeof r)throw new le(Le.path(e),r.toString()+" is not a boolean");return r}constructor(){}}var fe={};t(fe,"NullValidator",(()=>_e));class _e{static validate(e,t,r){if(r)throw new le(Le.path(e),"Expected a null but found "+r);return r}constructor(){}}var Se={};t(Se,"NumberValidator",(()=>Me));class Me{static validate(e,t,r,n){if(E(n))throw new le(Le.path(t),"Expected a number but found null");if("number"!=typeof n)throw new le(Le.path(t),n.toString()+" is not a "+e);let s=Me.extractNumber(e,t,r,n);return Me.checkRange(t,r,n,s),Me.checkMultipleOf(t,r,n,s),n}static extractNumber(e,t,r,n){let s=n;try{e!=l.LONG&&e!=l.INTEGER||(s=Math.round(s))}catch(r){throw new le(Le.path(t),n+" is not a number of type "+e,r)}if(E(s)||(e==l.LONG||e==l.INTEGER)&&s!=n)throw new le(Le.path(t),n.toString()+" is not a number of type "+e);return s}static checkMultipleOf(e,t,r,n){if(t.getMultipleOf()){if(n%t.getMultipleOf()!=0)throw new le(Le.path(e),r.toString()+" is not multiple of "+t.getMultipleOf())}}static checkRange(e,t,r,n){if(t.getMinimum()&&Me.numberCompare(n,t.getMinimum())<0)throw new le(Le.path(e),r.toString()+" should be greater than or equal to "+t.getMinimum());if(t.getMaximum()&&Me.numberCompare(n,t.getMaximum())>0)throw new le(Le.path(e),r.toString()+" should be less than or equal to "+t.getMaximum());if(t.getExclusiveMinimum()&&Me.numberCompare(n,t.getExclusiveMinimum())<=0)throw new le(Le.path(e),r.toString()+" should be greater than "+t.getExclusiveMinimum());if(t.getExclusiveMaximum()&&Me.numberCompare(n,t.getExclusiveMaximum())>0)throw new le(Le.path(e),r.toString()+" should be less than "+t.getExclusiveMaximum())}static numberCompare(e,t){return e-t}constructor(){}}var Oe={};t(Oe,"ObjectValidator",(()=>we));class we{static validate(e,t,r,n){if(E(n))throw new le(Le.path(e),"Expected an object but found null");if("object"!=typeof n||Array.isArray(n))throw new le(Le.path(e),n.toString()+" is not an Object");let s=n,a=new Set(Object.keys(s));we.checkMinMaxProperties(e,t,a),t.getPropertyNames()&&we.checkPropertyNameSchema(e,t,r,a),t.getRequired()&&we.checkRequired(e,t,s),t.getProperties()&&we.checkProperties(e,t,r,s,a),t.getPatternProperties()&&we.checkPatternProperties(e,t,r,s,a),t.getAdditionalProperties()&&we.checkAddtionalProperties(e,t,r,s,a)}static checkPropertyNameSchema(e,t,r,n){for(let s of Array.from(n.values()))try{Le.validate(e,t.getPropertyNames(),r,s)}catch(t){throw new le(Le.path(e),"Property name '"+s+"' does not fit the property schema")}}static checkRequired(e,t,r){for(const n of t.getRequired()??[])if(E(r[n]))throw new le(Le.path(e),n+" is mandatory")}static checkAddtionalProperties(e,t,r,n,s){let a=t.getAdditionalProperties();if(a.getSchemaValue())for(let t of Array.from(s.values())){let s=e?[...e]:[],i=Le.validate(s,a.getSchemaValue(),r,n[t]);n[t]=i}else if(!1===a.getBooleanValue()&&s.size)throw new le(Le.path(e),Array.from(s)+" is/are additional properties which are not allowed.")}static checkPatternProperties(e,t,r,n,s){const a=new Map;for(const e of Array.from(t.getPatternProperties().keys()))a.set(e,new RegExp(e));for(const i of Array.from(s.values())){const o=e?[...e]:[];for(const e of Array.from(a.entries()))if(e[1].test(i)){const a=Le.validate(o,t.getPatternProperties().get(e[0]),r,n[i]);n[i]=a,s.delete(i);break}}}static checkProperties(e,t,r,n,s){for(const a of Array.from(t.getProperties())){let t=n[a[0]];if(!n.hasOwnProperty(a[0])&&E(t)){if(E(ge.getDefaultValue(a[1],r)))continue}let i=e?[...e]:[],o=Le.validate(i,a[1],r,t);n[a[0]]=o,s.delete(a[0])}}static checkMinMaxProperties(e,t,r){if(t.getMinProperties()&&r.size<t.getMinProperties())throw new le(Le.path(e),"Object should have minimum of "+t.getMinProperties()+" properties");if(t.getMaxProperties()&&r.size>t.getMaxProperties())throw new le(Le.path(e),"Object can have maximum of "+t.getMaxProperties()+" properties")}constructor(){}}var de={};t(de,"StringValidator",(()=>xe));var Ie={};let Pe;var ye;t(Ie,"StringFormat",(()=>Pe)),(ye=Pe||(Pe={})).DATETIME="DATETIME",ye.TIME="TIME",ye.DATE="DATE",ye.EMAIL="EMAIL",ye.REGEX="REGEX";class xe{static TIME=/^([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?([+-][01][0-9]:[0-5][0-9])?$/;static DATE=/^[0-9]{4,4}-([0][0-9]|[1][0-2])-(0[1-9]|[1-2][1-9]|3[01])$/;static DATETIME=/^[0-9]{4,4}-([0][0-9]|[1][0-2])-(0[1-9]|[1-2][1-9]|3[01])T([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?([+-][01][0-9]:[0-5][0-9])?$/;static EMAIL=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;static validate(e,t,r){if(E(r))throw new le(Le.path(e),"Expected a string but found "+r);if("string"!=typeof r)throw new le(Le.path(e),r.toString()+" is not String");t.getFormat()==Pe.TIME?xe.patternMatcher(e,t,r,xe.TIME,"time pattern"):t.getFormat()==Pe.DATE?xe.patternMatcher(e,t,r,xe.DATE,"date pattern"):t.getFormat()==Pe.DATETIME?xe.patternMatcher(e,t,r,xe.DATETIME,"date time pattern"):t.getFormat()==Pe.EMAIL?xe.patternMatcher(e,t,r,xe.EMAIL,"email pattern"):t.getPattern()&&xe.patternMatcher(e,t,r,new RegExp(t.getPattern()),"pattern "+t.getPattern());let n=r.length;if(t.getMinLength()&&n<t.getMinLength())throw new le(Le.path(e),"Expected a minimum of "+t.getMinLength()+" characters");if(t.getMaxLength()&&n>t.getMaxLength())throw new le(Le.path(e),"Expected a maximum of "+t.getMaxLength()+" characters");return r}static patternMatcher(e,t,r,n,s){if(!n.test(r))throw new le(Le.path(e),r.toString()+" is not matched with the "+s)}constructor(){}}class ve{static validate(e,t,r,n,s){if(t==l.STRING)xe.validate(e,r,s);else if(t==l.LONG||t==l.INTEGER||t==l.DOUBLE||t==l.FLOAT)Me.validate(t,e,r,s);else if(t==l.BOOLEAN)Ne.validate(e,r,s);else if(t==l.OBJECT)we.validate(e,r,n,s);else if(t==l.ARRAY)ce.validate(e,r,n,s);else{if(t!=l.NULL)throw new le(Le.path(e),t+" is not a valid type.");_e.validate(e,r,s)}return s}constructor(){}}class Le{static path(e){return e?e.map((e=>e.getTitle()??"")).filter((e=>!!e)).reduce(((e,t,r)=>e+(0===r?"":".")+t),""):""}static validate(e,t,r,n){if(!t)throw new le(Le.path(e),"No schema found to validate");if(e||(e=new Array),e.push(t),E(n)&&!E(t.getDefaultValue()))return JSON.parse(JSON.stringify(t.getDefaultValue()));if(!E(t.getConstant()))return Le.constantValidation(e,t,n);if(t.getEnums()&&!t.getEnums()?.length)return Le.enumCheck(e,t,n);if(t.getFormat()&&E(t.getType()))throw new le(this.path(e),"Type is missing in schema for declared "+t.getFormat()?.toString()+" format.");if(t.getType()&&Le.typeValidation(e,t,r,n),!se.isNullOrBlank(t.getRef()))return Le.validate(e,ge.getSchemaFromRef(e[0],r,t.getRef()),r,n);if((t.getOneOf()||t.getAllOf()||t.getAnyOf())&&Re.validate(e,t,r,n),t.getNot()){let s=!1;try{Le.validate(e,t.getNot(),r,n),s=!0}catch(e){s=!1}if(s)throw new le(Le.path(e),"Schema validated value in not condition.")}return n}static constantValidation(e,t,r){if(!re(t.getConstant(),r))throw new le(Le.path(e),"Expecting a constant value : "+r);return r}static enumCheck(e,t,r){let n=!1;for(let e of t.getEnums()??[])if(e===r){n=!0;break}if(n)return r;throw new le(Le.path(e),"Value is not one of "+t.getEnums())}static typeValidation(e,t,r,n){let s=!1,a=[];for(const i of Array.from(t.getType()?.getAllowedSchemaTypes()?.values()??[]))try{ve.validate(e,i,t,r,n),s=!0;break}catch(e){s=!1,a.push(e)}if(!s)throw new le(Le.path(e),"Value "+JSON.stringify(n)+" is not of valid type(s)",a)}constructor(){}}class Ue{validateArguments(e,t,r){return Array.from(this.getSignature().getParameters().entries()).map((n=>{let s=n[1];try{return this.validateArgument(e,t,n,s)}catch(e){const t=this.getSignature();throw new $(`Error while executing the function ${t.getNamespace()}.${t.getName()}'s parameter ${s.getParameterName()} with step name '${r?.getStatement().getStatementName()??"Unknown Step"}' with error : ${e?.message}`)}})).reduce(((e,t)=>(e.set(t.getT1(),t.getT2()),e)),new Map)}validateArgument(e,t,r,n){let s,a=r[0],i=e.get(r[0]);if(E(i)&&!n.isVariableArgument())return new oe(a,Le.validate(void 0,n.getSchema(),t,void 0));if(!n?.isVariableArgument())return new oe(a,Le.validate(void 0,n.getSchema(),t,i));Array.isArray(i)?s=i:(s=[],E(i)?E(n.getSchema().getDefaultValue())||s.push(n.getSchema().getDefaultValue()):s.push(i));for(let e=0;e<s.length;e++)s[e]=Le.validate(void 0,n.getSchema(),t,s[e]);return new oe(a,s)}async execute(e){e.setArguments(this.validateArguments(e.getArguments()??new Map,e.getSchemaRepository(),e.getStatementExecution()));try{return this.internalExecute(e)}catch(t){const r=this.getSignature();throw new $(`Error while executing the function ${r.getNamespace()}.${r.getName()} with step name '${e.getStatementExecution()?.getStatement().getStatementName()??"Unknown Step"}' with error : ${t?.message}`)}}getProbableEventSignature(e){return this.getSignature().getEvents()}}class Ce extends Ue{static EVENT_INDEX_NAME="index";static EVENT_RESULT_NAME="result";static EVENT_INDEX=new Y(Y.OUTPUT,G.of(Ce.EVENT_INDEX_NAME,S.ofInteger(Ce.EVENT_INDEX_NAME)));static EVENT_RESULT_INTEGER=new Y(Y.OUTPUT,G.of(Ce.EVENT_RESULT_NAME,S.ofInteger(Ce.EVENT_RESULT_NAME)));static EVENT_RESULT_BOOLEAN=new Y(Y.OUTPUT,G.of(Ce.EVENT_RESULT_NAME,S.ofBoolean(Ce.EVENT_RESULT_NAME)));static EVENT_RESULT_ARRAY=new Y(Y.OUTPUT,G.of(Ce.EVENT_RESULT_NAME,S.ofArray(Ce.EVENT_RESULT_NAME,S.ofAny(Ce.EVENT_RESULT_NAME))));static EVENT_RESULT_EMPTY=new Y(Y.OUTPUT,G.of());static EVENT_RESULT_ANY=new Y(Y.OUTPUT,G.of(this.EVENT_RESULT_NAME,S.ofAny(this.EVENT_RESULT_NAME)));static PARAMETER_INT_LENGTH=y.of("length",S.ofInteger("length").setDefaultValue(-1));static PARAMETER_ARRAY_FIND=y.of("find",S.ofArray("eachFind",S.ofAny("eachFind")));static PARAMETER_INT_SOURCE_FROM=y.of("srcFrom",S.ofInteger("srcFrom").setDefaultValue(0).setMinimum(0));static PARAMETER_INT_SECOND_SOURCE_FROM=y.of("secondSrcFrom",S.ofInteger("secondSrcFrom").setDefaultValue(0));static PARAMETER_INT_FIND_FROM=y.of("findFrom",S.ofInteger("findFrom").setDefaultValue(0));static PARAMETER_INT_OFFSET=y.of("offset",S.ofInteger("offset").setDefaultValue(0));static PARAMETER_ROTATE_LENGTH=y.of("rotateLength",S.ofInteger("rotateLength").setDefaultValue(1).setMinimum(1));static PARAMETER_BOOLEAN_ASCENDING=y.of("ascending",S.ofBoolean("ascending").setDefaultValue(!1));static PARAMETER_FIND_PRIMITIVE=y.of("findPrimitive",S.of("findPrimitive",l.STRING,l.DOUBLE,l.FLOAT,l.INTEGER,l.LONG));static PARAMETER_ARRAY_SOURCE=y.of("source",S.ofArray("eachSource",S.ofAny("eachSource")));static PARAMETER_ARRAY_SECOND_SOURCE=y.of("secondSource",S.ofArray("eachSecondSource",S.ofAny("eachSecondSource")));static PARAMETER_ARRAY_SOURCE_PRIMITIVE=y.of("source",S.ofArray("eachSource",(new S).setName("eachSource").setType(f.of(l.STRING,l.NULL,l.INTEGER,l.FLOAT,l.DOUBLE,l.LONG))));static PARAMETER_BOOLEAN_DEEP_COPY=y.of("deepCopy",S.ofBoolean("deepCopy").setDefaultValue(!0));static PARAMETER_ANY=y.of("element",S.ofAny("element"));static PARAMETER_ANY_NOT_NULL=y.of("elementObject",S.ofAnyNotNull("elementObject"));static PARAMETER_ANY_VAR_ARGS=y.of("element",S.ofAny("element")).setVariableArgument(!0);static PARAMETER_ARRAY_RESULT=y.of(Ce.EVENT_RESULT_NAME,S.ofArray("eachResult",S.ofAny("eachResult")));constructor(e,t,r){super();const n=new Map;for(const e of t)n.set(e.getParameterName(),e);this.signature=new W(e).setNamespace(a.SYSTEM_ARRAY).setParameters(n).setEvents(G.of(r.getName(),r))}getSignature(){return this.signature}}class Ve extends Ce{constructor(){super("Concatenate",[Ce.PARAMETER_ARRAY_SOURCE,Ce.PARAMETER_ARRAY_SECOND_SOURCE],Ce.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(Ce.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Ce.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName());return new j([B.outputOf(new Map([[Ce.EVENT_RESULT_NAME,[...t,...r]]]))])}}class Ge extends Ce{constructor(){super("AddFirst",[Ce.PARAMETER_ARRAY_SOURCE,Ce.PARAMETER_ANY],Ce.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(Ce.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Ce.PARAMETER_ANY.getParameterName());if(t=[...t],0==t.length)return t.push(r),new j([B.outputOf(new Map([]))]);t.push(r);let n=t.length-1;for(;n>0;){let e=t[n-1];t[n-1]=t[n],t[n--]=e}return new j([B.outputOf(new Map([[Ce.EVENT_RESULT_NAME,t]]))])}}class be extends Ce{constructor(){super("ArrayToObjects",[Ce.PARAMETER_ARRAY_SOURCE,y.of("keyName",S.ofString("keyName"),!0)],Ce.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(be.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get("keyName");if(!t?.length)return new j([B.outputOf(new Map([[Ce.EVENT_RESULT_NAME,[]]]))]);let n=t.map((e=>{const t={};if(Array.isArray(e))if(r.length)r.forEach(((r,n)=>{t[r]=e[n]}));else for(let r=0;r<e.length;r++)t[`value${r+1}`]=e[r];else t[r.length?r[0]:"value"]=e;return t}));return new j([B.outputOf(new Map([[Ce.EVENT_RESULT_NAME,n]]))])}}var De={};t(De,"PrimitiveUtil",(()=>Be));var Fe={};t(Fe,"ExecutionException",(()=>Ye));class Ye extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class Be{static findPrimitiveNullAsBoolean(e){if(E(e))return new oe(l.BOOLEAN,!1);let t=typeof e;if("object"===t)throw new Ye(Z.format("$ is not a primitive type",e));let r=e;return"boolean"===t?new oe(l.BOOLEAN,r):"string"===t?new oe(l.STRING,r):Be.findPrimitiveNumberType(r)}static findPrimitive(e){if(E(e))return new oe(l.NULL,void 0);let t=typeof e;if("object"===t)throw new Ye(Z.format("$ is not a primitive type",e));let r=e;return"boolean"===t?new oe(l.BOOLEAN,r):"string"===t?new oe(l.STRING,r):Be.findPrimitiveNumberType(r)}static findPrimitiveNumberType(e){if(E(e)||Array.isArray(e)||"object"==typeof e)throw new Ye(Z.format("Unable to convert $ to a number.",e));let t=e;try{let e=t;return Number.isInteger(e)?new oe(l.LONG,e):new oe(l.DOUBLE,e)}catch(e){throw new Ye(Z.format("Unable to convert $ to a number.",t),e)}}static compare(e,t){if(e==t)return 0;if(E(e)||E(t))return E(e)?-1:1;if(Array.isArray(e)||Array.isArray(t)){if(Array.isArray(e)&&Array.isArray(t)){if(e.length!=t.length)return e.length-t.length;for(let r=0;r<e.length;r++){let n=this.compare(e[r],t[r]);if(0!=n)return n}return 0}return Array.isArray(e)?-1:1}const r=typeof e,n=typeof t;return"object"===r||"object"===n?("object"===r&&"object"===n&&Object.keys(e).forEach((r=>{let n=this.compare(e[r],t[r]);if(0!=n)return n})),"object"===r?-1:1):this.comparePrimitive(e,t)}static comparePrimitive(e,t){return E(e)||E(t)?E(e)&&E(t)?0:E(e)?-1:1:e==t?0:"boolean"==typeof e||"boolean"==typeof t?e?-1:1:"string"==typeof e||"string"==typeof t?e+""<t+""?-1:1:"number"==typeof e||"number"==typeof t?e-t:0}static baseNumberType(e){return Number.isInteger(e)?l.LONG:l.DOUBLE}static toPrimitiveType(e){return e}constructor(){}}class He extends Ce{constructor(){super("BinarySearch",[He.PARAMETER_ARRAY_SOURCE_PRIMITIVE,He.PARAMETER_INT_SOURCE_FROM,He.PARAMETER_FIND_PRIMITIVE,He.PARAMETER_INT_LENGTH],He.EVENT_INDEX)}async internalExecute(e){let t=e?.getArguments()?.get(He.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(He.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(He.PARAMETER_FIND_PRIMITIVE.getParameterName()),s=e?.getArguments()?.get(He.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length||r<0||r>t.length)throw new $("Search source array cannot be empty");if(-1==s&&(s=t.length-r),s=r+s,s>t.length)throw new $("End point for array cannot be more than the size of the source array");let a=-1;for(;r<=s;){let e=Math.floor((r+s)/2);if(0==Be.compare(t[e],n)){a=e;break}Be.compare(t[e],n)>0?s=e-1:r=e+1}return new j([B.outputOf(new Map([[He.EVENT_INDEX_NAME,a]]))])}}var ke={};t(ke,"ArrayUtil",(()=>$e));class $e{static removeAListFrom(e,t){if(!(t&&e&&e.length&&t.length))return;const r=new Set(t);for(let t=0;t<e.length;t++)r.has(e[t])&&(e.splice(t,1),t--)}static of(...e){const t=new Array(e.length);for(let r=0;r<e.length;r++)t[r]=e[r];return t}constructor(){}}class je extends Ce{constructor(){super("Compare",$e.of(je.PARAMETER_ARRAY_SOURCE,je.PARAMETER_INT_SOURCE_FROM,je.PARAMETER_ARRAY_FIND,je.PARAMETER_INT_FIND_FROM,je.PARAMETER_INT_LENGTH),je.EVENT_RESULT_INTEGER)}async internalExecute(e){var t=e?.getArguments()?.get(je.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(je.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(je.PARAMETER_ARRAY_FIND.getParameterName()),s=e?.getArguments()?.get(je.PARAMETER_INT_FIND_FROM.getParameterName()),a=e?.getArguments()?.get(je.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new $("Compare source array cannot be empty");if(0==n.length)throw new $("Compare find array cannot be empty");if(-1==a&&(a=t.length-r),r+a>t.length)throw new $(Z.format("Source array size $ is less than comparing size $",t.length,r+a));if(s+a>n.length)throw new $(Z.format("Find array size $ is less than comparing size $",n.length,s+a));return new j($e.of(B.outputOf(G.of(je.EVENT_RESULT_NAME,this.compare(t,r,r+a,n,s,s+a)))))}compare(e,t,r,n,s,a){if(r<t){let e=t;t=r,r=e}if(a<s){let e=s;s=a,a=e}if(r-t!=a-s)throw new $(Z.format("Cannot compare uneven arrays from $ to $ in source array with $ to $ in find array",r,t,a,s));for(let a=t,i=s;a<r;a++,i++){let t=1;if(E(e[a])||E(n[i])){let r=E(e[a]);r==E(n[i])?t=0:r&&(t=-1)}else{let r=typeof e[a],s=typeof n[i];if("object"===r||"object"===s)t=1;else if("string"===r||"string"===s){let r=""+e[a],s=""+n[i];r===s?t=0:r<s&&(t=-1)}else"boolean"===r||"boolean"===s?t=r==s?0:1:"number"===r&&"number"===s&&(t=e[a]-n[i])}if(0!=t)return t}return 0}}var Xe={};function We(e){return e?structuredClone?structuredClone(e):JSON.parse(JSON.stringify(e)):e}t(Xe,"duplicate",(()=>We));class qe extends Ce{constructor(){super("Copy",[qe.PARAMETER_ARRAY_SOURCE,qe.PARAMETER_INT_SOURCE_FROM,qe.PARAMETER_INT_LENGTH,qe.PARAMETER_BOOLEAN_DEEP_COPY],qe.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(qe.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(qe.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(qe.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),r+n>t.length)throw new $(Z.format("Array has no elements from $ to $ as the array size is $",r,r+n,t.length));var s=e?.getArguments()?.get(qe.PARAMETER_BOOLEAN_DEEP_COPY.getParameterName());const a=new Array(n);for(let e=r;e<r+n;e++)E(t[e])||(a[e-r]=s?We(t[e]):t[e]);return new j([B.outputOf(G.of(qe.EVENT_RESULT_NAME,a))])}}class Je extends Ce{constructor(){super("Delete",[Ce.PARAMETER_ARRAY_SOURCE,Ce.PARAMETER_ANY_VAR_ARGS],Ce.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(Je.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Je.PARAMETER_ANY_VAR_ARGS.getParameterName());if(null==r)throw new $("The deletable var args are empty. So cannot be proceeded further.");if(0==t.length||0==r.length)throw new $("Expected a source or deletable for an array but not found any");let n=new Set;for(let e=t.length-1;e>=0;e--)for(let s=0;s<r.length;s++)n.has(e)||0!=Be.compare(t[e],r[s])||n.add(t[e]);return new j([B.outputOf(new Map([[Ce.EVENT_RESULT_NAME,t.filter((e=>!n.has(e)))]]))])}}class ze extends Ce{constructor(){super("DeleteFirst",[ze.PARAMETER_ARRAY_SOURCE],ze.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(ze.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new $("Given source array is empty");return t=[...t],t.shift(),new j([B.outputOf(new Map([[Ce.EVENT_RESULT_NAME,t]]))])}}class Qe extends Ce{constructor(){super("DeleteFrom",[Qe.PARAMETER_ARRAY_SOURCE,Qe.PARAMETER_INT_SOURCE_FROM,Qe.PARAMETER_INT_LENGTH],Qe.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(Qe.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Qe.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(Qe.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new $("There are no elements to be deleted");if(t=[...t],r>=t.length||r<0)throw new $("The int source for the array should be in between 0 and length of the array ");if(-1==n&&(n=t.length-r),r+n>t.length)throw new $("Requested length to be deleted is more than the size of array ");return t.splice(r,n),new j([B.outputOf(new Map([[Ce.EVENT_RESULT_NAME,t]]))])}}class Ke extends Ce{constructor(){super("DeleteLast",[Ke.PARAMETER_ARRAY_SOURCE],Ke.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(Ke.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new $("Given source array is empty");return t=[...t],t.pop(),new j([B.outputOf(new Map([[Ce.EVENT_RESULT_NAME,t]]))])}}class Ze extends Ce{constructor(){super("Disjoint",[Ze.PARAMETER_ARRAY_SOURCE,Ze.PARAMETER_INT_SOURCE_FROM,Ze.PARAMETER_ARRAY_SECOND_SOURCE,Ze.PARAMETER_INT_SECOND_SOURCE_FROM,Ze.PARAMETER_INT_LENGTH],Ze.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(Ze.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Ze.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(Ze.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(Ze.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(Ze.PARAMETER_INT_LENGTH.getParameterName());if(-1==a&&(a=t.length<=n.length?t.length-r:n.length-s),a>t.length||a>n.length||r+a>t.length||s+a>n.length)throw new $("The length which was being requested is more than than the size either source array or second source array");let i=new Set,o=new Set;for(let e=0;e<a;e++)i.add(t[e+r]);for(let e=0;e<a;e++)o.add(n[e+s]);let E=new Set;return i.forEach((e=>{o.has(e)?o.delete(e):E.add(e)})),o.forEach((e=>{i.has(e)||E.add(e)})),new j([B.outputOf(new Map([[Ze.EVENT_RESULT_NAME,[...E]]]))])}}class et extends Ce{constructor(){super("Equals",[et.PARAMETER_ARRAY_SOURCE,et.PARAMETER_INT_SOURCE_FROM,et.PARAMETER_ARRAY_FIND,et.PARAMETER_INT_FIND_FROM,et.PARAMETER_INT_LENGTH],et.EVENT_RESULT_BOOLEAN)}async internalExecute(e){let t=new je,r=(await t.execute(e)).allResults()[0].getResult().get(et.EVENT_RESULT_NAME);return new j([B.outputOf(G.of(et.EVENT_RESULT_NAME,0==r))])}}class tt extends Ce{constructor(){super("Fill",[tt.PARAMETER_ARRAY_SOURCE,tt.PARAMETER_INT_SOURCE_FROM,tt.PARAMETER_INT_LENGTH,tt.PARAMETER_ANY],tt.EVENT_RESULT_EMPTY)}async internalExecute(e){var t=e?.getArguments()?.get(tt.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(tt.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(tt.PARAMETER_INT_LENGTH.getParameterName()),s=e?.getArguments()?.get(tt.PARAMETER_ANY.getParameterName());if(r<0)throw new $(Z.format("Arrays out of bound trying to access $ index",r));-1==n&&(n=t.length-r);let a=r+n-t.length;if(t=[...t],a>0)for(let e=0;e<a;e++)t.push();for(let e=r;e<r+n;e++)t[e]=E(s)?s:We(s);return new j([B.outputOf(G.of(Ce.EVENT_RESULT_NAME,t))])}}class rt extends Ce{constructor(){super("Frequency",[rt.PARAMETER_ARRAY_SOURCE,rt.PARAMETER_ANY,rt.PARAMETER_INT_SOURCE_FROM,rt.PARAMETER_INT_LENGTH],rt.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(rt.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(rt.PARAMETER_ANY.getParameterName()),n=e?.getArguments()?.get(rt.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(rt.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)return new j([B.outputOf(new Map([[rt.EVENT_RESULT_NAME,0]]))]);if(n>t.length)throw new $("Given start point is more than the size of source");let a=n+s;if(-1==s&&(a=t.length-n),a>t.length)throw new $("Given length is more than the size of source");let i=0;for(let e=n;e<a&&e<t.length;e++)0==Be.compare(t[e],r)&&i++;return new j([B.outputOf(new Map([[rt.EVENT_RESULT_NAME,i]]))])}}class nt extends Ce{constructor(){super("IndexOf",[nt.PARAMETER_ARRAY_SOURCE,nt.PARAMETER_ANY_NOT_NULL,nt.PARAMETER_INT_FIND_FROM],nt.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(nt.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(nt.PARAMETER_ANY_NOT_NULL.getParameterName());let n=e?.getArguments()?.get(nt.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new j([B.outputOf(new Map([[nt.EVENT_RESULT_NAME,-1]]))]);if(n<0||n>t.length)throw new $("The size of the search index of the array is greater than the size of the array");let s=-1;for(let e=n;e<t.length;e++)if(0==Be.compare(t[e],r)){s=e;break}return new j([B.outputOf(new Map([[nt.EVENT_RESULT_NAME,s]]))])}}class st extends Ce{constructor(){super("IndexOfArray",[st.PARAMETER_ARRAY_SOURCE,st.PARAMETER_ARRAY_SECOND_SOURCE,st.PARAMETER_INT_FIND_FROM],st.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(st.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(st.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(st.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length||0==r.length)return new j([B.outputOf(new Map([[st.EVENT_RESULT_NAME,-1]]))]);if(n<0||n>t.length||t.length<r.length)throw new $("Given from second source is more than the size of the source array");let s=r.length,a=-1;for(let e=n;e<t.length;e++){let n=0;if(0==Be.compare(t[e],r[n])){for(;n<s&&0==Be.compare(t[e+n],r[n]);)n++;if(n==s){a=e;break}}}return new j([B.outputOf(new Map([[st.EVENT_RESULT_NAME,a]]))])}}class at extends Ce{constructor(){super("LastIndexOf",[at.PARAMETER_ARRAY_SOURCE,at.PARAMETER_ANY_NOT_NULL,at.PARAMETER_INT_FIND_FROM],at.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(at.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(at.PARAMETER_ANY_NOT_NULL.getParameterName());let n=e?.getArguments()?.get(at.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new j([B.outputOf(new Map([[at.EVENT_RESULT_NAME,-1]]))]);if(n<0||n>t.length)throw new $("The value of length shouldn't the exceed the size of the array or shouldn't be in terms");let s=-1;for(let e=t.length-1;e>=n;e--)if(0==Be.compare(t[e],r)){s=e;break}return new j([B.outputOf(new Map([[at.EVENT_RESULT_NAME,s]]))])}}class it extends Ce{constructor(){super("LastIndexOfArray",[it.PARAMETER_ARRAY_SOURCE,it.PARAMETER_ARRAY_SECOND_SOURCE,it.PARAMETER_INT_FIND_FROM],it.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(it.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(it.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(it.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new j([B.outputOf(new Map([[it.EVENT_RESULT_NAME,-1]]))]);if(n<0||n>t.length||r.length>t.length)throw new $("Given from index is more than the size of the source array");let s=r.length,a=-1;for(let e=n;e<t.length;e++){let n=0;if(0==Be.compare(t[e],r[n])){for(;n<s&&0==Be.compare(t[e+n],r[n]);)n++;n==s&&(a=e)}}return new j([B.outputOf(new Map([[it.EVENT_RESULT_NAME,a]]))])}}class ot extends Ce{constructor(){super("Max",[ot.PARAMETER_ARRAY_SOURCE_PRIMITIVE],ot.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(ot.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==t.length)throw new $("Search source array cannot be empty");let r=t[0];for(let e=1;e<t.length;e++){let n=t[e];Be.comparePrimitive(r,n)>=0||(r=n)}return new j([B.outputOf(new Map([[ot.EVENT_RESULT_NAME,r]]))])}}class Et extends Ce{constructor(){super("Min",[Et.PARAMETER_ARRAY_SOURCE_PRIMITIVE],Et.EVENT_RESULT_ANY)}async internalExecute(e){let t,r=e?.getArguments()?.get(Et.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==r.length)throw new $("Search source array cannot be empty");for(let e=0;e<r.length;e++)E(r[e])||(void 0===t||Be.comparePrimitive(r[e],t)<0)&&(t=r[e]);return new j([B.outputOf(new Map([[Et.EVENT_RESULT_NAME,t]]))])}}class ut extends Ce{constructor(){super("MisMatch",[ut.PARAMETER_ARRAY_SOURCE,ut.PARAMETER_INT_FIND_FROM,ut.PARAMETER_ARRAY_SECOND_SOURCE,ut.PARAMETER_INT_SECOND_SOURCE_FROM,ut.PARAMETER_INT_LENGTH],ut.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(ut.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ut.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(ut.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(ut.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(ut.PARAMETER_INT_LENGTH.getParameterName()),i=r<t.length&&r>0?r:0,o=s<n.length&&s>0?s:0;if(i+a>=t.length||o+a>n.length)throw new $("The size of the array for first and second which was being requested is more than size of the given array");let E=-1;for(let e=0;e<a;e++)if(t[i+e]!=n[o+e]){E=e;break}return new j([B.outputOf(new Map([[ut.EVENT_RESULT_NAME,E]]))])}}class At extends Ce{constructor(){super("Reverse",[At.PARAMETER_ARRAY_SOURCE,At.PARAMETER_INT_SOURCE_FROM,At.PARAMETER_INT_LENGTH],At.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(At.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(At.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(At.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),n>=t.length||n<0||r<0)throw new $("Please provide start point between the start and end indexes or provide the length which was less than the source size ");t=[...t];let s=r+n-1;for(;r<=s;){let e=t[r],n=t[s];t[r++]=n,t[s--]=e}return new j([B.outputOf(new Map([[At.EVENT_RESULT_NAME,t]]))])}}class lt extends Ce{constructor(){super("Rotate",[lt.PARAMETER_ARRAY_SOURCE,lt.PARAMETER_ROTATE_LENGTH],lt.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(lt.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(lt.PARAMETER_ROTATE_LENGTH.getParameterName());if(0==t.length)return new j([B.outputOf(new Map([[Ce.EVENT_RESULT_NAME,t]]))]);t=[...t];let n=t.length;return r%=n,this.rotate(t,0,r-1),this.rotate(t,r,n-1),this.rotate(t,0,n-1),new j([B.outputOf(new Map([[Ce.EVENT_RESULT_NAME,t]]))])}rotate(e,t,r){for(;t<r;){let n=e[t];e[t++]=e[r],e[r--]=n}}}class gt extends Ce{constructor(){super("Shuffle",[gt.PARAMETER_ARRAY_SOURCE],gt.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(gt.PARAMETER_ARRAY_SOURCE.getParameterName());if(t.length<=1)return new j([B.outputOf(new Map([[Ce.EVENT_RESULT_NAME,t]]))]);t=[...t];let r=0,n=t.length;for(let e=0;e<n;e++){let e=Math.floor(Math.random()*n)%n,s=t[r];t[r]=t[e],t[e]=s,r=e}return new j([B.outputOf(new Map([[Ce.EVENT_RESULT_NAME,t]]))])}}class mt extends Ce{constructor(){super("Sort",[mt.PARAMETER_ARRAY_SOURCE_PRIMITIVE,mt.PARAMETER_INT_FIND_FROM,mt.PARAMETER_INT_LENGTH,mt.PARAMETER_BOOLEAN_ASCENDING],mt.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(mt.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName()),r=e?.getArguments()?.get(mt.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(mt.PARAMETER_INT_LENGTH.getParameterName()),s=e?.getArguments()?.get(mt.PARAMETER_BOOLEAN_ASCENDING.getParameterName());if(0==t.length)return new j([B.outputOf(new Map([[Ce.EVENT_RESULT_NAME,t]]))]);if(t=[...t],-1==n&&(n=t.length-r),r<0||r>=t.length||r+n>t.length)throw new $("Given start point is more than the size of the array or not available at that point");let a=t.slice(r,r+n+1);return a.sort(((e,t)=>function(e,t,r){return e===t?0:null===e?1:null===t?-1:r?e<t?1:-1:e<t?-1:1}(e,t,s))),t.splice(r,n,...a),new j([B.outputOf(new Map([[Ce.EVENT_RESULT_NAME,t]]))])}}class Rt extends Ce{constructor(){super("SubArray",[Rt.PARAMETER_ARRAY_SOURCE,Rt.PARAMETER_INT_FIND_FROM,Rt.PARAMETER_INT_LENGTH],Rt.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(Rt.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Rt.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(Rt.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),n<=0)return new j([B.outputOf(new Map([]))]);if(!(r>=0&&r<t.length)||r+n>t.length)throw new $("Given find from point is more than the source size array or the Requested length for the subarray was more than the source size");let s=t.slice(r,r+n);return new j([B.outputOf(new Map([[Rt.EVENT_RESULT_NAME,s]]))])}}class Tt extends Ce{constructor(){super("Insert",[Tt.PARAMETER_ARRAY_SOURCE,Tt.PARAMETER_INT_OFFSET,Tt.PARAMETER_ANY],Tt.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(Tt.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Tt.PARAMETER_INT_OFFSET.getParameterName());var n=e?.getArguments()?.get(Tt.PARAMETER_ANY.getParameterName());if(E(n)||E(r)||r>t.length)throw new $("Please valid resouces to insert at the correct location");if(t=[...t],0==t.length)return 0==r&&t.push(n),new j([B.outputOf(new Map([[Ce.EVENT_RESULT_NAME,t]]))]);t.push(n);let s=t.length-1;for(r++;s>=r;){let e=t[s-1];t[s-1]=t[s],t[s--]=e}return new j([B.outputOf(new Map([[Ce.EVENT_RESULT_NAME,t]]))])}}class pt extends Ce{constructor(){super("InsertLast",[pt.PARAMETER_ARRAY_SOURCE,pt.PARAMETER_ANY],pt.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(pt.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(pt.PARAMETER_ANY.getParameterName());return t=[...t],t.push(r),new j([B.outputOf(new Map([[Ce.EVENT_RESULT_NAME,t]]))])}}class ct{static repoMap=G.ofArrayEntries(C(new Ve),C(new Ge),C(new He),C(new je),C(new qe),C(new Je),C(new ze),C(new Qe),C(new Ke),C(new Ze),C(new et),C(new tt),C(new rt),C(new nt),C(new st),C(new at),C(new it),C(new ot),C(new Et),C(new ut),C(new At),C(new lt),C(new gt),C(new mt),C(new Rt),C(new be),C(new Tt),C(new pt));static filterableNames=Array.from(ct.repoMap.values()).map((e=>e.getSignature().getFullName()));find(e,t){if(e==a.SYSTEM_ARRAY)return ct.repoMap.get(t)}filter(e){return ct.filterableNames.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}var ht={};t(ht,"ContextElement",(()=>Nt));class Nt{static NULL=new Nt(S.NULL,void 0);constructor(e,t){this.schema=e,this.element=t}getSchema(){return this.schema}setSchema(e){return this.schema=e,this}getElement(){return this.element}setElement(e){return this.element=e,this}}const ft=new W("Create").setNamespace(a.SYSTEM_CTX).setParameters(new Map([y.ofEntry("name",(new S).setName("name").setType(f.of(l.STRING)).setMinLength(1).setFormat(Pe.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,I.CONSTANT),y.ofEntry("schema",S.SCHEMA,!1,I.CONSTANT)])).setEvents(new Map([Y.outputEventMapEntry(new Map)]));const _t=new W("Get").setNamespace(a.SYSTEM_CTX).setParameters(new Map([y.ofEntry("name",(new S).setName("name").setType(f.of(l.STRING)).setMinLength(1).setFormat(Pe.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,I.CONSTANT)])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",S.ofAny("value")]]))]));var St={};t(St,"Expression",(()=>Ut));var Mt={};t(Mt,"StringBuilder",(()=>Ot));class Ot{constructor(e){this.str=e??""}append(e){return this.str+=e,this}toString(){return""+this.str}trim(){return this.str=this.str.trim(),this}setLength(e){return this.str=this.str.substring(0,e),this}length(){return this.str.length}charAt(e){return this.str.charAt(e)}deleteCharAt(e){return this.checkIndex(e),this.str=this.str.substring(0,e)+this.str.substring(e+1),this}insert(e,t){return this.str=this.str.substring(0,e)+t+this.str.substring(e),this}checkIndex(e){if(e>=this.str.length)throw new $(`Index ${e} is greater than or equal to ${this.str.length}`)}substring(e,t){return this.str.substring(e,t)}}var wt={};t(wt,"ExpressionEvaluationException",(()=>dt));class dt extends Error{constructor(e,t,r){super(Z.format("$ : $",e,t)),this.cause=r}getCause(){return this.cause}}var It={};t(It,"ExpressionToken",(()=>Pt));class Pt{constructor(e){this.expression=e}getExpression(){return this.expression}toString(){return this.expression}}var yt={};t(yt,"ExpressionTokenValue",(()=>xt));class xt extends Pt{constructor(e,t){super(e),this.element=t}getTokenValue(){return this.element}getElement(){return this.element}toString(){return Z.format("$: $",this.expression,this.element)}}var vt={};t(vt,"Operation",(()=>Lt));class Lt{static MULTIPLICATION=new Lt("*");static DIVISION=new Lt("/");static INTEGER_DIVISION=new Lt("//");static MOD=new Lt("%");static ADDITION=new Lt("+");static SUBTRACTION=new Lt("-");static NOT=new Lt("not",void 0,!0);static AND=new Lt("and",void 0,!0);static OR=new Lt("or",void 0,!0);static LESS_THAN=new Lt("<");static LESS_THAN_EQUAL=new Lt("<=");static GREATER_THAN=new Lt(">");static GREATER_THAN_EQUAL=new Lt(">=");static EQUAL=new Lt("=");static NOT_EQUAL=new Lt("!=");static BITWISE_AND=new Lt("&");static BITWISE_OR=new Lt("|");static BITWISE_XOR=new Lt("^");static BITWISE_COMPLEMENT=new Lt("~");static BITWISE_LEFT_SHIFT=new Lt("<<");static BITWISE_RIGHT_SHIFT=new Lt(">>");static BITWISE_UNSIGNED_RIGHT_SHIFT=new Lt(">>>");static UNARY_PLUS=new Lt("UN: +","+");static UNARY_MINUS=new Lt("UN: -","-");static UNARY_LOGICAL_NOT=new Lt("UN: not","not");static UNARY_BITWISE_COMPLEMENT=new Lt("UN: ~","~");static ARRAY_OPERATOR=new Lt("[");static OBJECT_OPERATOR=new Lt(".");static NULLISH_COALESCING_OPERATOR=new Lt("??");static CONDITIONAL_TERNARY_OPERATOR=new Lt("?");static VALUE_OF=new Map([["MULTIPLICATION",Lt.MULTIPLICATION],["DIVISION",Lt.DIVISION],["INTEGER_DIVISON",Lt.INTEGER_DIVISION],["MOD",Lt.MOD],["ADDITION",Lt.ADDITION],["SUBTRACTION",Lt.SUBTRACTION],["NOT",Lt.NOT],["AND",Lt.AND],["OR",Lt.OR],["LESS_THAN",Lt.LESS_THAN],["LESS_THAN_EQUAL",Lt.LESS_THAN_EQUAL],["GREATER_THAN",Lt.GREATER_THAN],["GREATER_THAN_EQUAL",Lt.GREATER_THAN_EQUAL],["EQUAL",Lt.EQUAL],["NOT_EQUAL",Lt.NOT_EQUAL],["BITWISE_AND",Lt.BITWISE_AND],["BITWISE_OR",Lt.BITWISE_OR],["BITWISE_XOR",Lt.BITWISE_XOR],["BITWISE_COMPLEMENT",Lt.BITWISE_COMPLEMENT],["BITWISE_LEFT_SHIFT",Lt.BITWISE_LEFT_SHIFT],["BITWISE_RIGHT_SHIFT",Lt.BITWISE_RIGHT_SHIFT],["BITWISE_UNSIGNED_RIGHT_SHIFT",Lt.BITWISE_UNSIGNED_RIGHT_SHIFT],["UNARY_PLUS",Lt.UNARY_PLUS],["UNARY_MINUS",Lt.UNARY_MINUS],["UNARY_LOGICAL_NOT",Lt.UNARY_LOGICAL_NOT],["UNARY_BITWISE_COMPLEMENT",Lt.UNARY_BITWISE_COMPLEMENT],["ARRAY_OPERATOR",Lt.ARRAY_OPERATOR],["OBJECT_OPERATOR",Lt.OBJECT_OPERATOR],["NULLISH_COALESCING_OPERATOR",Lt.NULLISH_COALESCING_OPERATOR],["CONDITIONAL_TERNARY_OPERATOR",Lt.CONDITIONAL_TERNARY_OPERATOR]]);static UNARY_OPERATORS=new Set([Lt.ADDITION,Lt.SUBTRACTION,Lt.NOT,Lt.BITWISE_COMPLEMENT,Lt.UNARY_PLUS,Lt.UNARY_MINUS,Lt.UNARY_LOGICAL_NOT,Lt.UNARY_BITWISE_COMPLEMENT]);static ARITHMETIC_OPERATORS=new Set([Lt.MULTIPLICATION,Lt.DIVISION,Lt.INTEGER_DIVISION,Lt.MOD,Lt.ADDITION,Lt.SUBTRACTION]);static LOGICAL_OPERATORS=new Set([Lt.NOT,Lt.AND,Lt.OR,Lt.LESS_THAN,Lt.LESS_THAN_EQUAL,Lt.GREATER_THAN,Lt.GREATER_THAN_EQUAL,Lt.EQUAL,Lt.NOT_EQUAL,Lt.NULLISH_COALESCING_OPERATOR]);static BITWISE_OPERATORS=new Set([Lt.BITWISE_AND,Lt.BITWISE_COMPLEMENT,Lt.BITWISE_LEFT_SHIFT,Lt.BITWISE_OR,Lt.BITWISE_RIGHT_SHIFT,Lt.BITWISE_UNSIGNED_RIGHT_SHIFT,Lt.BITWISE_XOR]);static CONDITIONAL_OPERATORS=new Set([Lt.CONDITIONAL_TERNARY_OPERATOR]);static OPERATOR_PRIORITY=new Map([[Lt.UNARY_PLUS,1],[Lt.UNARY_MINUS,1],[Lt.UNARY_LOGICAL_NOT,1],[Lt.UNARY_BITWISE_COMPLEMENT,1],[Lt.ARRAY_OPERATOR,1],[Lt.OBJECT_OPERATOR,1],[Lt.MULTIPLICATION,2],[Lt.DIVISION,2],[Lt.INTEGER_DIVISION,2],[Lt.MOD,2],[Lt.ADDITION,3],[Lt.SUBTRACTION,3],[Lt.BITWISE_LEFT_SHIFT,4],[Lt.BITWISE_RIGHT_SHIFT,4],[Lt.BITWISE_UNSIGNED_RIGHT_SHIFT,4],[Lt.LESS_THAN,5],[Lt.LESS_THAN_EQUAL,5],[Lt.GREATER_THAN,5],[Lt.GREATER_THAN_EQUAL,5],[Lt.EQUAL,6],[Lt.NOT_EQUAL,6],[Lt.BITWISE_AND,7],[Lt.BITWISE_XOR,8],[Lt.BITWISE_OR,9],[Lt.AND,10],[Lt.OR,11],[Lt.NULLISH_COALESCING_OPERATOR,11],[Lt.CONDITIONAL_TERNARY_OPERATOR,12]]);static OPERATORS=new Set([...Array.from(Lt.ARITHMETIC_OPERATORS),...Array.from(Lt.LOGICAL_OPERATORS),...Array.from(Lt.BITWISE_OPERATORS),Lt.ARRAY_OPERATOR,Lt.OBJECT_OPERATOR,...Array.from(Lt.CONDITIONAL_OPERATORS)].map((e=>e.getOperator())));static OPERATORS_WITHOUT_SPACE_WRAP=new Set([...Array.from(Lt.ARITHMETIC_OPERATORS),...Array.from(Lt.LOGICAL_OPERATORS),...Array.from(Lt.BITWISE_OPERATORS),Lt.ARRAY_OPERATOR,Lt.OBJECT_OPERATOR,...Array.from(Lt.CONDITIONAL_OPERATORS)].filter((e=>!e.shouldBeWrappedInSpace())).map((e=>e.getOperator())));static OPERATION_VALUE_OF=new Map(Array.from(Lt.VALUE_OF.entries()).map((([e,t])=>[t.getOperator(),t])));static UNARY_MAP=new Map([[Lt.ADDITION,Lt.UNARY_PLUS],[Lt.SUBTRACTION,Lt.UNARY_MINUS],[Lt.NOT,Lt.UNARY_LOGICAL_NOT],[Lt.BITWISE_COMPLEMENT,Lt.UNARY_BITWISE_COMPLEMENT],[Lt.UNARY_PLUS,Lt.UNARY_PLUS],[Lt.UNARY_MINUS,Lt.UNARY_MINUS],[Lt.UNARY_LOGICAL_NOT,Lt.UNARY_LOGICAL_NOT],[Lt.UNARY_BITWISE_COMPLEMENT,Lt.UNARY_BITWISE_COMPLEMENT]]);static BIGGEST_OPERATOR_SIZE=Array.from(Lt.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 Lt.VALUE_OF.get(e)}toString(){return this.operator}}class Ut extends Pt{tokens=new ee;ops=new ee;constructor(e,t,r,n){super(e||""),t&&this.tokens.push(t),r&&this.tokens.push(r),n&&this.ops.push(n),this.evaluate()}getTokens(){return this.tokens}getOperations(){return this.ops}evaluate(){const e=this.expression.length;let t,r="",n=new Ot(""),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 dt(this.expression,"Extra closing parenthesis found");case"]":throw new dt(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()==Lt.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()==Lt.ARRAY_OPERATOR&&(i=this.process(e,n,s),s=i.getT1(),a=i.getT2())}++s}if(t=n.toString(),!se.isNullOrBlank(t)){if(Lt.OPERATORS.has(t))throw new dt(this.expression,"Expression is ending with an operator");this.tokens.push(new Pt(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 dt(this.expression,"Missing string ending marker "+t);let a=new oe(s,!1);return this.tokens.push(new xt(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 Ut(t.toString())),t.setLength(0),new oe(r,!1)}processOthers(e,t,r,n,s,a){let i=t-s;i=i<Lt.BIGGEST_OPERATOR_SIZE?i:Lt.BIGGEST_OPERATOR_SIZE;for(let e=i;e>0;e--){let t=this.expression.substring(s,s+e);if(Lt.OPERATORS_WITHOUT_SPACE_WRAP.has(t))return se.isNullOrBlank(n)||(this.tokens.push(new Pt(n)),a=!1),this.checkUnaryOperator(this.tokens,this.ops,Lt.OPERATION_VALUE_OF.get(t),a),a=!0,r.setLength(0),new oe(s+e-1,a)}return r.append(e),new oe(s,!1)}processTernaryOperator(e,t,r,n,s){if(s)throw new dt(this.expression,"Ternary operator is followed by an operator");""!=r.trim()&&(this.tokens.push(new Ut(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 dt(this.expression,"':' operater is missing");if(n>=e)throw new dt(this.expression,"Third part of the ternary expression is missing");for(;!this.ops.isEmpty()&&this.hasPrecedence(Lt.CONDITIONAL_TERNARY_OPERATOR,this.ops.peek());){let e=this.ops.pop();if(Lt.UNARY_OPERATORS.has(e)){const t=this.tokens.pop();this.tokens.push(new Ut("",t,void 0,e))}else{let t=this.tokens.pop(),r=this.tokens.pop();this.tokens.push(new Ut("",r,t,e))}}this.ops.push(Lt.CONDITIONAL_TERNARY_OPERATOR),this.tokens.push(new Ut(this.expression.substring(o,n-1)));const E=this.expression.substring(n);if(""===E.trim())throw new dt(this.expression,"Third part of the ternary expression is missing");return this.tokens.push(new Ut(E)),e-1}processSubExpression(e,t,r,n,s){if(Lt.OPERATORS.has(r))this.checkUnaryOperator(this.tokens,this.ops,Lt.OPERATION_VALUE_OF.get(r),s),t.setLength(0);else if(!se.isNullOrBlank(r))throw new dt(this.expression,Z.format("Unkown token : $ found.",r));let a=1;const i=new Ot;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 dt(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 Ut(i.toString().trim())),n}processTokenSepearator(e,t,r){return se.isNullOrBlank(t)||(Lt.OPERATORS.has(t)?(this.checkUnaryOperator(this.tokens,this.ops,Lt.OPERATION_VALUE_OF.get(t),r),r=!0):(this.tokens.push(new Pt(t)),r=!1)),e.setLength(0),r}checkUnaryOperator(e,t,r,n){if(r)if(n||e.isEmpty()){if(!Lt.UNARY_OPERATORS.has(r))throw new dt(this.expression,Z.format("Extra operator $ found.",r));{const e=Lt.UNARY_MAP.get(r);e&&t.push(e)}}else{for(;!t.isEmpty()&&this.hasPrecedence(r,t.peek());){let r=t.pop();if(Lt.UNARY_OPERATORS.has(r)){let t=e.pop();e.push(new Ut("",t,void 0,r))}else{let t=e.pop(),n=e.pop();e.push(new Ut("",n,t,r))}}t.push(r)}}hasPrecedence(e,t){let r=Lt.OPERATOR_PRIORITY.get(e),n=Lt.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 Ot,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 Ut?n[t].toString():n[t]).append(")"),t++;else if(r[s]==Lt.CONDITIONAL_TERNARY_OPERATOR){let r=n[t++];e.insert(0,r.toString()),e.insert(0,":"),r=n[t++],e.insert(0,r.toString()),e.insert(0,"?"),r=n[t++],e.insert(0,r.toString()).append(")"),e.insert(0,"(")}else{if(0==t){const r=n[t++];e.insert(0,r.toString())}const a=n[t++];e.insert(0,r[s].getOperator()).insert(0,a.toString()).insert(0,"(").append(")")}return e.toString()}equals(e){return this.expression==e.expression}}var Ct={};t(Ct,"ExpressionEvaluator",(()=>qr));var Vt={};t(Vt,"LogicalNullishCoalescingOperator",(()=>Dt));var Gt={};t(Gt,"BinaryOperator",(()=>bt));class bt{nullCheck(e,t,r){if(E(e)||E(t))throw new Ye(Z.format("$ cannot be applied to a null value",r.getOperatorName()))}}class Dt extends bt{apply(e,t){return E(e)?t:e}}var Ft={};t(Ft,"ArithmeticAdditionOperator",(()=>Yt));class Yt extends bt{apply(e,t){return this.nullCheck(e,t,Lt.ADDITION),e+t}}var Bt={};t(Bt,"ArithmeticDivisionOperator",(()=>Ht));class Ht extends bt{apply(e,t){return this.nullCheck(e,t,Lt.DIVISION),e/t}}var kt={};t(kt,"ArithmeticIntegerDivisionOperator",(()=>$t));class $t extends bt{apply(e,t){return this.nullCheck(e,t,Lt.DIVISION),Math.floor(e/t)}}var jt={};t(jt,"ArithmeticModulusOperator",(()=>Xt));class Xt extends bt{apply(e,t){return this.nullCheck(e,t,Lt.MOD),e%t}}var Wt={};t(Wt,"ArithmeticMultiplicationOperator",(()=>qt));class qt extends bt{apply(e,t){this.nullCheck(e,t,Lt.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 Jt={};t(Jt,"ArithmeticSubtractionOperator",(()=>zt));class zt extends bt{apply(e,t){return this.nullCheck(e,t,Lt.SUBTRACTION),e-t}}var Qt={};t(Qt,"ArrayOperator",(()=>Kt));class Kt extends bt{apply(e,t){if(!e)throw new Ye("Cannot apply array operator on a null value");if(!t)throw new Ye("Cannot retrive null index value");if(!Array.isArray(e)&&"string"!=typeof e)throw new Ye(Z.format("Cannot retrieve value from a primitive value $",e));if(t>=e.length)throw new Ye(Z.format("Cannot retrieve index $ from the array of length $",t,e.length));return e[t]}}var Zt={};t(Zt,"BitwiseAndOperator",(()=>er));class er extends bt{apply(e,t){return this.nullCheck(e,t,Lt.BITWISE_AND),e&t}}var tr={};t(tr,"BitwiseLeftShiftOperator",(()=>rr));class rr extends bt{apply(e,t){return this.nullCheck(e,t,Lt.BITWISE_LEFT_SHIFT),e<<t}}var nr={};t(nr,"BitwiseOrOperator",(()=>sr));class sr extends bt{apply(e,t){return this.nullCheck(e,t,Lt.BITWISE_OR),e|t}}var ar={};t(ar,"BitwiseRightShiftOperator",(()=>ir));class ir extends bt{apply(e,t){return this.nullCheck(e,t,Lt.BITWISE_RIGHT_SHIFT),e>>t}}var or={};t(or,"BitwiseUnsignedRightShiftOperator",(()=>Er));class Er extends bt{apply(e,t){return this.nullCheck(e,t,Lt.BITWISE_UNSIGNED_RIGHT_SHIFT),e>>>t}}var ur={};t(ur,"BitwiseXorOperator",(()=>Ar));class Ar extends bt{apply(e,t){return this.nullCheck(e,t,Lt.BITWISE_XOR),e^t}}var lr={};t(lr,"LogicalAndOperator",(()=>gr));class gr extends bt{apply(e,t){const r=Be.findPrimitiveNullAsBoolean(e),n=Be.findPrimitiveNullAsBoolean(t);if(r.getT1()!=l.BOOLEAN)throw new Ye(Z.format("Boolean value expected but found $",r.getT2()));if(n.getT1()!=l.BOOLEAN)throw new Ye(Z.format("Boolean value expected but found $",n.getT2()));return r.getT2()&&n.getT2()}}var mr={};t(mr,"LogicalEqualOperator",(()=>Rr));class Rr extends bt{apply(e,t){return re(e,t)}}var Tr={};t(Tr,"LogicalGreaterThanEqualOperator",(()=>pr));class pr extends bt{apply(e,t){const r=Be.findPrimitiveNullAsBoolean(e),n=Be.findPrimitiveNullAsBoolean(t);if(r.getT1()==l.BOOLEAN||n.getT1()==l.BOOLEAN)throw new Ye(Z.format("Cannot compare >= with the values $ and $",r.getT2(),n.getT2()));return r.getT2()>=n.getT2()}}var cr={};t(cr,"LogicalGreaterThanOperator",(()=>hr));class hr extends bt{apply(e,t){const r=Be.findPrimitiveNullAsBoolean(e),n=Be.findPrimitiveNullAsBoolean(t);if(r.getT1()==l.BOOLEAN||n.getT1()==l.BOOLEAN)throw new Ye(Z.format("Cannot compare > with the values $ and $",r.getT2(),n.getT2()));return r.getT2()>n.getT2()}}var Nr={};t(Nr,"LogicalLessThanEqualOperator",(()=>fr));class fr extends bt{apply(e,t){const r=Be.findPrimitiveNullAsBoolean(e),n=Be.findPrimitiveNullAsBoolean(t);if(r.getT1()==l.BOOLEAN||n.getT1()==l.BOOLEAN)throw new Ye(Z.format("Cannot compare <= with the values $ and $",r.getT2(),n.getT2()));return r.getT2()<=n.getT2()}}var _r={};t(_r,"LogicalLessThanOperator",(()=>Sr));class Sr extends bt{apply(e,t){const r=Be.findPrimitiveNullAsBoolean(e),n=Be.findPrimitiveNullAsBoolean(t);if(r.getT1()==l.BOOLEAN||n.getT1()==l.BOOLEAN)throw new Ye(Z.format("Cannot compare < with the values $ and $",r.getT2(),n.getT2()));return r.getT2()<n.getT2()}}var Mr={};t(Mr,"LogicalNotEqualOperator",(()=>Or));class Or extends bt{apply(e,t){return!re(e,t)}}var wr={};t(wr,"LogicalOrOperator",(()=>dr));class dr extends bt{apply(e,t){const r=Be.findPrimitiveNullAsBoolean(e),n=Be.findPrimitiveNullAsBoolean(t);if(r.getT1()!=l.BOOLEAN)throw new Ye(Z.format("Boolean value expected but found $",r.getT2()));if(n.getT1()!=l.BOOLEAN)throw new Ye(Z.format("Boolean value expected but found $",n.getT2()));return r.getT2()||n.getT2()}}var Ir={};t(Ir,"ObjectOperator",(()=>Pr));class Pr extends bt{apply(e,t){if(!e)throw new Ye("Cannot apply array operator on a null value");if(!t)throw new Ye("Cannot retrive null property value");const r=typeof e;if(!Array.isArray(e)&&"string"!=r&&"object"!=r)throw new Ye(Z.format("Cannot retrieve value from a primitive value $",e));return e[t]}}var yr={};t(yr,"ArithmeticUnaryMinusOperator",(()=>Lr));var xr={};t(xr,"UnaryOperator",(()=>vr));class vr{nullCheck(e,t){if(E(e))throw new Ye(Z.format("$ cannot be applied to a null value",t.getOperatorName()))}}class Lr extends vr{apply(e){return this.nullCheck(e,Lt.UNARY_MINUS),Be.findPrimitiveNumberType(e),-e}}var Ur={};t(Ur,"ArithmeticUnaryPlusOperator",(()=>Cr));class Cr extends vr{apply(e){return this.nullCheck(e,Lt.UNARY_PLUS),Be.findPrimitiveNumberType(e),e}}var Vr={};t(Vr,"BitwiseComplementOperator",(()=>Gr));class Gr extends vr{apply(e){this.nullCheck(e,Lt.UNARY_BITWISE_COMPLEMENT);let t=Be.findPrimitiveNumberType(e);if(t.getT1()!=l.INTEGER&&t.getT1()!=l.LONG)throw new Ye(Z.format("Unable to apply bitwise operator on $",e));return~e}}var br={};t(br,"LogicalNotOperator",(()=>Dr));class Dr extends vr{apply(e){return!e&&""!==e}}var Fr={};t(Fr,"LiteralTokenValueExtractor",(()=>kr));var Yr={};t(Yr,"TokenValueExtractor",(()=>Br));class Br{static REGEX_SQUARE_BRACKETS=/[\[\]]/;static REGEX_DOT=/\./;getValue(e){let t=this.getPrefix();if(!e.startsWith(t))throw new $(Z.format("Token $ doesn't start with $",e,t));return this.getValueInternal(e)}retrieveElementFrom(e,t,r,n){if(E(n))return;if(t.length==r)return n;let s=t[r].split(Br.REGEX_SQUARE_BRACKETS).map((e=>e.trim())).filter((e=>!se.isNullOrBlank(e))).reduce(((n,s,a)=>this.resolveForEachPartOfTokenWithBrackets(e,t,r,s,n,a)),n);return this.retrieveElementFrom(e,t,r+1,s)}resolveForEachPartOfTokenWithBrackets(e,t,r,n,s,a){if(!E(s)){if(0===a){if("length"===n&&"string"==typeof s)return s.length;if(Array.isArray(s)){if("length"===n)return s.length;try{let e=parseInt(n);if(isNaN(e))throw new Error(Z.format("$ is not a number",e));if(e>=s.length)return;return s[e]}catch(t){throw new dt(e,Z.format("$ couldn't be parsed into integer in $",n,e),t)}}return this.checkIfObject(e,t,r,s),s[n]}if(n?.startsWith('"')){if(!n.endsWith('"')||1==n.length||2==n.length)throw new dt(e,Z.format("$ is missing a double quote or empty key found",e));return this.checkIfObject(e,t,r,s),s[n.substring(1,n.length-1)]}try{let t=parseInt(n);if(isNaN(t))throw new Error(Z.format("$ is not a number",t));if(!Array.isArray(s))throw new dt(e,Z.format("Expecting an array with index $ while processing the expression",t,e));if(t>=s.length)return;return s[t]}catch(t){throw new dt(e,Z.format("$ couldn't be parsed into integer in $",n,e),t)}}}checkIfObject(e,t,r,n){if("object"!=typeof n||Array.isArray(n))throw new dt(e,Z.format("Unable to retrive $ from $ in the path $",t[r],n.toString(),e))}}const Hr=new Map([["true",!0],["false",!1],["null",void 0],["undefined",void 0]]);class kr extends Br{static INSTANCE=new kr;getValueInternal(e){if(!se.isNullOrBlank(e))return e=e.trim(),Hr.has(e)?Hr.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 dt(e,Z.format("Unable to parse the literal or expression $",e),t)}}processString(e){if(!e.endsWith('"'))throw new dt(e,Z.format("String literal $ is not closed properly",e));return e.substring(1,e.length-1)}getPrefix(){return""}}var $r={},jr={};t(jr,"ConditionalTernaryOperator",(()=>Xr));class Xr extends class{nullCheck(e,t,r,n){if(E(e)||E(t)||E(r))throw new Ye(Z.format("$ cannot be applied to a null value",n.getOperatorName()))}}{apply(e,t,r){return e?t:r}}e($r,jr);class Wr extends Br{static PREFIX="_internal.";values=new Map;addValue(e,t){this.values.set(e,t)}getValueInternal(e){let t=e.split(Br.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 Wr.PREFIX}}class qr{static UNARY_OPERATORS_MAP=new Map([[Lt.UNARY_BITWISE_COMPLEMENT,new Gr],[Lt.UNARY_LOGICAL_NOT,new Dr],[Lt.UNARY_MINUS,new Lr],[Lt.UNARY_PLUS,new Cr]]);static TERNARY_OPERATORS_MAP=new Map([[Lt.CONDITIONAL_TERNARY_OPERATOR,new Xr]]);static BINARY_OPERATORS_MAP=new Map([[Lt.ADDITION,new Yt],[Lt.DIVISION,new Ht],[Lt.INTEGER_DIVISION,new $t],[Lt.MOD,new Xt],[Lt.MULTIPLICATION,new qt],[Lt.SUBTRACTION,new zt],[Lt.BITWISE_AND,new er],[Lt.BITWISE_LEFT_SHIFT,new rr],[Lt.BITWISE_OR,new sr],[Lt.BITWISE_RIGHT_SHIFT,new ir],[Lt.BITWISE_UNSIGNED_RIGHT_SHIFT,new Er],[Lt.BITWISE_XOR,new Ar],[Lt.AND,new gr],[Lt.EQUAL,new Rr],[Lt.GREATER_THAN,new hr],[Lt.GREATER_THAN_EQUAL,new pr],[Lt.LESS_THAN,new Sr],[Lt.LESS_THAN_EQUAL,new fr],[Lt.OR,new dr],[Lt.NOT_EQUAL,new Or],[Lt.NULLISH_COALESCING_OPERATOR,new Dt],[Lt.ARRAY_OPERATOR,new Kt],[Lt.OBJECT_OPERATOR,new Pr]]);static UNARY_OPERATORS_MAP_KEY_SET=new Set(qr.UNARY_OPERATORS_MAP.keys());internalTokenValueExtractor=new Wr;constructor(e){e instanceof Ut?(this.exp=e,this.expression=this.exp.getExpression()):this.expression=e}evaluate(e){const t=this.processNestingExpression(this.expression,e);return this.expression=t.getT1(),this.exp=t.getT2(),(e=new Map(e.entries())).set(this.internalTokenValueExtractor.getPrefix(),this.internalTokenValueExtractor),this.evaluateExpression(this.exp,e)}processNestingExpression(e,t){let r=0,n=0;const s=new ee;for(;n<e.length-1;){if("{"==e.charAt(n)&&"{"==e.charAt(n+1))0==r&&s.push(new oe(n+2,-1)),r++,n++;else if("}"==e.charAt(n)&&"}"==e.charAt(n+1)){if(r--,r<0)throw new dt(e,"Expecting {{ nesting path operator to be started before closing");0==r&&s.push(s.pop().setT2(n)),n++}n++}let a=this.replaceNestingExpression(e,t,s);return new oe(a,new Ut(a))}replaceNestingExpression(e,t,r){let n=e;for(var s of r.toArray()){if(-1==s.getT2())throw new dt(e,"Expecting }} nesting path operator to be closed");let r=new qr(n.substring(s.getT1(),s.getT2())).evaluate(t);n=n.substring(0,s.getT1()-2)+r+n.substring(s.getT2()+2)}return n}getExpression(){return this.exp||(this.exp=new Ut(this.expression)),this.exp}getExpressionString(){return this.expression}evaluateExpression(e,t){let r=e.getOperations(),n=e.getTokens();for(;!r.isEmpty();){let e=r.pop(),o=n.pop();if(qr.UNARY_OPERATORS_MAP_KEY_SET.has(e))n.push(this.applyUnaryOperation(e,this.getValueFromToken(t,o)));else if(e==Lt.OBJECT_OPERATOR||e==Lt.ARRAY_OPERATOR)this.processObjectOrArrayOperator(t,r,n,e,o);else if(e==Lt.CONDITIONAL_TERNARY_OPERATOR){const r=n.pop(),E=n.pop();var s=this.getValueFromToken(t,E),a=this.getValueFromToken(t,r),i=this.getValueFromToken(t,o);n.push(this.applyTernaryOperation(e,s,a,i))}else{const r=n.pop();s=this.getValueFromToken(t,r),a=this.getValueFromToken(t,o);n.push(this.applyBinaryOperation(e,s,a))}}if(n.isEmpty())throw new Ye(Z.format("Expression : $ evaluated to null",e));if(1!=n.size())throw new Ye(Z.format("Expression : $ evaluated multiple values $",e,n));const o=n.get(0);if(o instanceof xt)return o.getElement();if(!(o instanceof Ut))return this.getValueFromToken(t,o);throw new Ye(Z.format("Expression : $ evaluated to $",e,n.get(0)))}processObjectOrArrayOperator(e,t,r,n,s){const a=new ee,i=new ee;if(!n||!s)return;do{i.push(n),s instanceof Ut?a.push(new xt(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==Lt.OBJECT_OPERATOR||n==Lt.ARRAY_OPERATOR);s&&(s instanceof Ut?a.push(new xt(s.toString(),this.evaluateExpression(s,e))):a.push(s)),n&&t.push(n);let o=a.pop();if(o instanceof xt&&"object"==typeof o.getTokenValue()){const e=(new Date).getTime()+""+Math.round(1e3*Math.random());this.internalTokenValueExtractor.addValue(e,o.getTokenValue()),o=new Pt(Wr.PREFIX+e)}let E=new Ot(o instanceof xt?o.getTokenValue():o.toString());for(;!a.isEmpty();)o=a.pop(),n=i.pop(),E.append(n.getOperator()).append(o instanceof xt?o.getTokenValue():o.toString()),n==Lt.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 xt(u,this.getValue(u,e)));else{let e;try{e=kr.INSTANCE.getValue(u)}catch(t){e=u}r.push(new xt(u,e))}}applyTernaryOperation(e,t,r,n){let s=qr.TERNARY_OPERATORS_MAP.get(e);if(!s)throw new dt(this.expression,Z.format("No operator found to evaluate $",this.getExpression()));return new xt(e.toString(),s.apply(t,r,n))}applyBinaryOperation(e,t,r){let n=typeof t,s=typeof r,a=qr.BINARY_OPERATORS_MAP.get(e);if(("object"===n||"object"===s)&&e!==Lt.EQUAL&&e!==Lt.NOT_EQUAL&&e!==Lt.NULLISH_COALESCING_OPERATOR)throw new dt(this.expression,Z.format("Cannot evaluate expression $ $ $",t,e.getOperator(),r));if(!a)throw new dt(this.expression,Z.format("No operator found to evaluate $ $ $",t,e.getOperator(),r));return new xt(e.toString(),a.apply(t,r))}applyUnaryOperation(e,t){if("object"===typeof t||Array.isArray(t))throw new dt(this.expression,Z.format("The operator $ cannot be applied to $",e.getOperator(),t));let r=qr.UNARY_OPERATORS_MAP.get(e);if(!r)throw new dt(this.expression,Z.format("No Unary operator $ is found to apply on $",e.getOperator(),t));return new xt(e.toString(),r.apply(t))}getValueFromToken(e,t){return t instanceof Ut?this.evaluateExpression(t,e):t instanceof xt?t.getElement():this.getValue(t.getExpression(),e)}getValue(e,t){if(e.length<=5)return kr.INSTANCE.getValue(e);const r=e.substring(0,e.indexOf(".")+1);return(t.get(r)??kr.INSTANCE).getValue(e)}}const Jr=new W("Set").setNamespace(a.SYSTEM_CTX).setParameters(new Map([y.ofEntry("name",(new S).setName("name").setType(f.of(l.STRING)).setMinLength(1),!1,I.CONSTANT),y.ofEntry("value",S.ofAny("value"))])).setEvents(new Map([Y.outputEventMapEntry(new Map)]));const zr=new W("GenerateEvent").setNamespace(a.SYSTEM).setParameters(new Map([y.ofEntry("eventName",S.ofString("eventName").setDefaultValue("output")),y.ofEntry("results",S.ofObject("results").setProperties(new Map([["name",S.ofString("name")],["value",y.EXPRESSION]])),!0)])).setEvents(new Map([Y.outputEventMapEntry(new Map)]));class Qr extends Ue{static CONDITION="condition";static SIGNATURE=new W("If").setNamespace(a.SYSTEM).setParameters(new Map([y.ofEntry(Qr.CONDITION,S.of(Qr.CONDITION,l.BOOLEAN))])).setEvents(new Map([Y.eventMapEntry(Y.TRUE,new Map),Y.eventMapEntry(Y.FALSE,new Map),Y.outputEventMapEntry(new Map)]));getSignature(){return Qr.SIGNATURE}async internalExecute(e){var t=e.getArguments()?.get(Qr.CONDITION);return new j([B.of(t?Y.TRUE:Y.FALSE,new Map),B.outputOf(new Map)])}}const Kr=new W("Break").setNamespace(a.SYSTEM_LOOP).setParameters(new Map([y.ofEntry("stepName",S.of("stepName",l.STRING))])).setEvents(new Map([Y.outputEventMapEntry(new Map([]))]));const Zr=new W("CountLoop").setNamespace(a.SYSTEM_LOOP).setParameters(new Map([y.ofEntry("count",S.of("count",l.INTEGER))])).setEvents(new Map([Y.eventMapEntry(Y.ITERATION,new Map([["index",S.of("index",l.INTEGER)]])),Y.outputEventMapEntry(new Map([["value",S.of("value",l.INTEGER)]]))]));const en=new W("RangeLoop").setNamespace(a.SYSTEM_LOOP).setParameters(new Map([y.ofEntry("from",S.of("from",l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE).setDefaultValue(0)),y.ofEntry("to",S.of("to",l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE).setDefaultValue(1)),y.ofEntry("step",S.of("step",l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE).setDefaultValue(1).setNot((new S).setConstant(0)))])).setEvents(new Map([Y.eventMapEntry(Y.ITERATION,new Map([["index",S.of("index",l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE)]])),Y.outputEventMapEntry(new Map([["value",S.of("value",l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE)]]))]));const tn=new W("Add").setNamespace(a.MATH).setParameters(new Map([["value",new y("value",S.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",S.ofNumber("value")]]))]));const rn=[()=>new Map([["value",new y("value",S.ofNumber("value"))]]),()=>new Map([["value1",new y("value1",S.ofNumber("value1"))],["value2",new y("value2",S.ofNumber("value2"))]])];class nn extends Ue{constructor(e,t,r=1,...n){super(),n&&n.length||(n=[l.DOUBLE]),this.parametersNumber=r,this.mathFunction=t,this.signature=new W(e).setNamespace(a.MATH).setParameters(rn[r-1]()).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",(new S).setType(f.of(...n)).setName("value")]]))]))}getSignature(){return this.signature}async internalExecute(e){let t,r=Be.findPrimitiveNumberType(e.getArguments()?.get(1==this.parametersNumber?"value":"value1")).getT2();return 2==this.parametersNumber&&(t=Be.findPrimitiveNumberType(e.getArguments()?.get("value2")).getT2()),new j([B.outputOf(new Map([["value",this.mathFunction.call(this,r,t)]]))])}}class sn extends Ue{static SIGNATURE=new W("Hypotenuse").setNamespace(a.MATH).setParameters(new Map([["value",new y("value",S.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",(new S).setType(f.of(l.DOUBLE)).setName("value")]]))]));constructor(){super()}getSignature(){return sn.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get("value");return new j([B.outputOf(new Map([["value",Math.sqrt(t.reduce(((e,t)=>e+t*t),0))]]))])}}const an=new W("Maximum").setNamespace(a.MATH).setParameters(new Map([["value",new y("value",S.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",S.ofNumber("value")]]))]));const on=new W("Minimum").setNamespace(a.MATH).setParameters(new Map([["value",new y("value",S.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",S.ofNumber("value")]]))]));class En extends Ue{static SIGNATURE=new W("Random").setNamespace(a.MATH).setEvents(new Map([Y.outputEventMapEntry(G.of("value",S.ofDouble("value")))]));getSignature(){return En.SIGNATURE}async internalExecute(e){return new j([B.outputOf(new Map([["value",Math.random()]]))])}}class un extends Ue{static MIN_VALUE="minValue";static MAX_VALUE="maxValue";static VALUE="value";static SIGNATURE=new W("RandomFloat").setParameters(G.of(un.MIN_VALUE,y.of(un.MIN_VALUE,S.ofFloat(un.MIN_VALUE).setDefaultValue(0)),un.MAX_VALUE,y.of(un.MAX_VALUE,S.ofFloat(un.MAX_VALUE).setDefaultValue(2147483647)))).setNamespace(a.MATH).setEvents(new Map([Y.outputEventMapEntry(G.of(un.VALUE,S.ofFloat(un.VALUE)))]));getSignature(){return un.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(un.MIN_VALUE),r=e.getArguments()?.get(un.MAX_VALUE),n=Math.random()*(r-t)+t;return new j([B.outputOf(new Map([[un.VALUE,n]]))])}}class An extends Ue{static MIN_VALUE="minValue";static MAX_VALUE="maxValue";static VALUE="value";static SIGNATURE=new W("RandomInt").setParameters(G.of(An.MIN_VALUE,y.of(An.MIN_VALUE,S.ofInteger(An.MIN_VALUE).setDefaultValue(0)),An.MAX_VALUE,y.of(An.MAX_VALUE,S.ofInteger(An.MAX_VALUE).setDefaultValue(2147483647)))).setNamespace(a.MATH).setEvents(new Map([Y.outputEventMapEntry(G.of(An.VALUE,S.ofInteger(An.VALUE)))]));getSignature(){return An.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(An.MIN_VALUE),r=e.getArguments()?.get(An.MAX_VALUE),n=Math.floor(Math.random()*(r-t)+t);return new j([B.outputOf(new Map([[An.VALUE,n]]))])}}const ln={Absolute:new nn("Absolute",(e=>Math.abs(e)),1,l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE),ACosine:new nn("ArcCosine",(e=>Math.acos(e))),ASine:new nn("ArcSine",(e=>Math.asin(e))),ATangent:new nn("ArcTangent",(e=>Math.atan(e))),Ceiling:new nn("Ceiling",(e=>Math.ceil(e))),Cosine:new nn("Cosine",(e=>Math.cos(e))),CosineH:new nn("HyperbolicCosine",(e=>Math.cosh(e))),CubeRoot:new nn("CubeRoot",(e=>Math.cbrt(e))),Exponential:new nn("Exponential",(e=>Math.exp(e))),Expm1:new nn("ExponentialMinus1",(e=>Math.expm1(e))),Floor:new nn("Floor",(e=>Math.floor(e))),Log:new nn("LogNatural",(e=>Math.log(e))),Log10:new nn("Log10",(e=>Math.log10(e))),Round:new nn("Round",(e=>Math.round(e)),1,l.INTEGER,l.LONG),Sine:new nn("Sine",(e=>Math.sin(e))),SineH:new nn("HyperbolicSine",(e=>Math.sinh(e))),Tangent:new nn("Tangent",(e=>Math.tan(e))),TangentH:new nn("HyperbolicTangent",(e=>Math.tanh(e))),ToDegrees:new nn("ToDegrees",(e=>e*(Math.PI/180))),ToRadians:new nn("ToRadians",(e=>e*(180/Math.PI))),SquareRoot:new nn("SquareRoot",(e=>Math.sqrt(e))),ArcTangent:new nn("ArcTangent2",((e,t)=>Math.atan2(e,t)),2),Power:new nn("Power",((e,t)=>Math.pow(e,t)),2),Add:new class extends Ue{getSignature(){return tn}async internalExecute(e){let t=e.getArguments()?.get("value");return new j([B.outputOf(new Map([["value",t.reduce(((e,t)=>e+t),0)]]))])}},Hypotenuse:new sn,Maximum:new class extends Ue{getSignature(){return an}async internalExecute(e){let t=e.getArguments()?.get("value");return new j([B.outputOf(new Map([["value",t.reduce(((e,t)=>!e&&0!==e||t>e?t:e))]]))])}},Minimum:new class extends Ue{getSignature(){return on}async internalExecute(e){let t=e.getArguments()?.get("value");return new j([B.outputOf(new Map([["value",t.reduce(((e,t)=>!e&&0!==e||t<e?t:e))]]))])}},Random:new En,RandomFloat:new un,RandomInt:new An},gn=Object.values(ln).map((e=>e.getSignature().getFullName()));class mn{find(e,t){if(e==a.MATH)return ln[t]}filter(e){return gn.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}class Rn extends Ue{constructor(e,t){super(),this.signature=new W(e).setNamespace(a.SYSTEM_OBJECT).setParameters(new Map([y.ofEntry("source",S.ofAny("source"))])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",t]]))]))}getSignature(){return this.signature}}const Tn={ObjectValues:new class extends Rn{constructor(){super("ObjectValues",S.ofArray("value",S.ofAny("value")))}async internalExecute(e){var t=e.getArguments()?.get("source");if(E(t))return new j([B.outputOf(new Map([["value",[]]]))]);let r=Object.entries(We(t)).sort(((e,t)=>e[0].localeCompare(t[0]))).map((e=>e[1]));return new j([B.outputOf(new Map([["value",r]]))])}},ObjectKeys:new class extends Rn{constructor(){super("ObjectKeys",S.ofArray("value",S.ofString("value")))}async internalExecute(e){var t=e.getArguments()?.get("source");if(E(t))return new j([B.outputOf(new Map([["value",[]]]))]);let r=Object.keys(We(t)).sort(((e,t)=>e.localeCompare(t)));return new j([B.outputOf(new Map([["value",r]]))])}},ObjectEntries:new class extends Rn{constructor(){super("ObjectEntries",S.ofArray("value",S.ofArray("tuple",S.ofString("key"),S.ofAny("value"))))}async internalExecute(e){var t=e.getArguments()?.get("source");if(E(t))return new j([B.outputOf(new Map([["value",[]]]))]);let r=Object.entries(We(t)).sort(((e,t)=>e[0].localeCompare(t[0])));return new j([B.outputOf(new Map([["value",r]]))])}},ObjectDeleteKey:new class extends Ue{constructor(){super(),this.signature=new W("ObjectDeleteKey").setNamespace(a.SYSTEM_OBJECT).setParameters(new Map([y.ofEntry("source",S.ofAny("source")),y.ofEntry("key",S.ofString("key"))])).setEvents(new Map([Y.outputEventMapEntry(new Map([["value",S.ofAny("value")]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get("source"),r=e.getArguments()?.get("key");return E(t)?new j([B.outputOf(new Map([["value",void 0]]))]):(t=We(t),delete t[r],new j([B.outputOf(new Map([["value",t]]))]))}}},pn=Object.values(Tn).map((e=>e.getSignature().getFullName()));class cn{find(e,t){if(e==a.SYSTEM_OBJECT)return Tn[t]}filter(e){return pn.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}class hn extends Ue{static VALUES="values";static SIGNATURE=new W("Print").setNamespace(a.SYSTEM).setParameters(new Map([y.ofEntry(hn.VALUES,S.ofAny(hn.VALUES),!0)]));getSignature(){return hn.SIGNATURE}async internalExecute(e){var t=e.getArguments()?.get(hn.VALUES);return console?.log(...t),new j([B.outputOf(new Map)])}}class Nn extends Ue{static PARAMETER_STRING_NAME="string";static PARAMETER_SEARCH_STRING_NAME="searchString";static PARAMETER_SECOND_STRING_NAME="secondString";static PARAMETER_THIRD_STRING_NAME="thirdString";static PARAMETER_INDEX_NAME="index";static PARAMETER_SECOND_INDEX_NAME="secondIndex";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new y(Nn.PARAMETER_STRING_NAME,S.ofString(Nn.PARAMETER_STRING_NAME));static PARAMETER_SECOND_STRING=new y(Nn.PARAMETER_SECOND_STRING_NAME,S.ofString(Nn.PARAMETER_SECOND_STRING_NAME));static PARAMETER_THIRD_STRING=new y(Nn.PARAMETER_THIRD_STRING_NAME,S.ofString(Nn.PARAMETER_THIRD_STRING_NAME));static PARAMETER_INDEX=new y(Nn.PARAMETER_INDEX_NAME,S.ofInteger(Nn.PARAMETER_INDEX_NAME));static PARAMETER_SECOND_INDEX=new y(Nn.PARAMETER_SECOND_INDEX_NAME,S.ofInteger(Nn.PARAMETER_SECOND_INDEX_NAME));static PARAMETER_SEARCH_STRING=new y(Nn.PARAMETER_SEARCH_STRING_NAME,S.ofString(Nn.PARAMETER_STRING_NAME));static EVENT_STRING=new Y(Y.OUTPUT,G.of(Nn.EVENT_RESULT_NAME,S.ofString(Nn.EVENT_RESULT_NAME)));static EVENT_BOOLEAN=new Y(Y.OUTPUT,G.of(Nn.EVENT_RESULT_NAME,S.ofBoolean(Nn.EVENT_RESULT_NAME)));static EVENT_INT=new Y(Y.OUTPUT,G.of(Nn.EVENT_RESULT_NAME,S.ofInteger(Nn.EVENT_RESULT_NAME)));static EVENT_ARRAY=new Y(Y.OUTPUT,G.of(Nn.EVENT_RESULT_NAME,S.ofArray(Nn.EVENT_RESULT_NAME)));constructor(e,t,r,...n){super();const s=new Map;n.forEach((e=>s.set(e.getParameterName(),e))),this.signature=new W(t).setNamespace(e).setParameters(s).setEvents(G.of(r.getName(),r))}getSignature(){return this.signature}static ofEntryAsStringBooleanOutput(e,t){return[e,new class extends Nn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Nn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Nn.PARAMETER_SEARCH_STRING_NAME);return new j([B.outputOf(G.of(Nn.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,Nn.EVENT_BOOLEAN,Nn.PARAMETER_STRING,Nn.PARAMETER_SEARCH_STRING)]}static ofEntryAsStringAndIntegerStringOutput(e,t){return[e,new class extends Nn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Nn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Nn.PARAMETER_INDEX_NAME);return new j([B.outputOf(G.of(Nn.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,Nn.EVENT_STRING,Nn.PARAMETER_STRING,Nn.PARAMETER_INDEX)]}static ofEntryAsStringIntegerOutput(e,t){return[e,new class extends Nn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Nn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Nn.PARAMETER_SEARCH_STRING_NAME);return new j([B.outputOf(G.of(Nn.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,Nn.EVENT_INT,Nn.PARAMETER_STRING,Nn.PARAMETER_SEARCH_STRING)]}static ofEntryString(e,t){return[e,new class extends Nn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Nn.PARAMETER_STRING_NAME);return new j([B.outputOf(G.of(Nn.EVENT_RESULT_NAME,t(r)))])}}(a.STRING,e,Nn.EVENT_STRING,Nn.PARAMETER_STRING)]}static ofEntryStringBooleanOutput(e,t){return[e,new class extends Nn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Nn.PARAMETER_STRING_NAME);return new j([B.outputOf(G.of(Nn.EVENT_RESULT_NAME,t(r)))])}}(a.STRING,e,Nn.EVENT_BOOLEAN,Nn.PARAMETER_STRING)]}static ofEntryAsStringStringIntegerIntegerOutput(e,t){return[e,new class extends Nn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Nn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Nn.PARAMETER_SEARCH_STRING_NAME),s=e?.getArguments()?.get(Nn.PARAMETER_INDEX_NAME);return new j([B.outputOf(G.of(Nn.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,Nn.EVENT_INT,Nn.PARAMETER_STRING,Nn.PARAMETER_SEARCH_STRING,Nn.PARAMETER_INDEX)]}static ofEntryAsStringIntegerIntegerStringOutput(e,t){return[e,new class extends Nn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Nn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Nn.PARAMETER_INDEX_NAME),s=e?.getArguments()?.get(Nn.PARAMETER_SECOND_INDEX_NAME);return new j([B.outputOf(G.of(Nn.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,Nn.EVENT_INT,Nn.PARAMETER_STRING,Nn.PARAMETER_INDEX,Nn.PARAMETER_SECOND_INDEX)]}static ofEntryAsStringStringStringStringOutput(e,t){return[e,new class extends Nn{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(Nn.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(Nn.PARAMETER_SECOND_STRING_NAME),s=e?.getArguments()?.get(Nn.PARAMETER_THIRD_STRING_NAME);return new j([B.outputOf(G.of(Nn.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,Nn.EVENT_STRING,Nn.PARAMETER_STRING,Nn.PARAMETER_SECOND_STRING,Nn.PARAMETER_THIRD_STRING)]}}class fn extends Ue{static VALUE="value";static SCHEMA=(new S).setName(fn.VALUE).setType(new N(l.STRING));static SIGNATURE=new W("Concatenate").setNamespace(a.STRING).setParameters(new Map([[fn.VALUE,new y(fn.VALUE,fn.SCHEMA).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([[fn.VALUE,S.ofString(fn.VALUE)]]))]));constructor(){super()}getSignature(){return fn.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(fn.VALUE),r="";return t.reduce(((e,t)=>r=e+t),r),new j([B.outputOf(new Map([[fn.VALUE,r]]))])}}class _n extends Ue{static PARAMETER_STRING_NAME="string";static PARAMETER_AT_START_NAME="startPosition";static PARAMETER_AT_END_NAME="endPosition";static EVENT_RESULT_NAME="result";PARAMETER_STRING=new y(_n.PARAMETER_STRING_NAME,S.ofString(_n.PARAMETER_STRING_NAME));PARAMETER_AT_START=new y(_n.PARAMETER_AT_START_NAME,S.ofInteger(_n.PARAMETER_AT_START_NAME));PARAMETER_AT_END=new y(_n.PARAMETER_AT_END_NAME,S.ofInteger(_n.PARAMETER_AT_END_NAME));EVENT_STRING=new Y(Y.OUTPUT,new Map([[_n.EVENT_RESULT_NAME,S.ofString(_n.EVENT_RESULT_NAME)]]));signature=new W("DeleteForGivenLength").setNamespace(a.STRING).setParameters(new Map([[this.PARAMETER_STRING.getParameterName(),this.PARAMETER_STRING],[this.PARAMETER_AT_START.getParameterName(),this.PARAMETER_AT_START],[this.PARAMETER_AT_END.getParameterName(),this.PARAMETER_AT_END]])).setEvents(new Map([[this.EVENT_STRING.getName(),this.EVENT_STRING]]));constructor(){super()}getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(_n.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(_n.PARAMETER_AT_START_NAME),n=e?.getArguments()?.get(_n.PARAMETER_AT_END_NAME);if(n>=r){let e="";return e+=t.substring(0,r),e+=t.substring(n),new j([B.outputOf(new Map([[_n.EVENT_RESULT_NAME,e.toString()]]))])}return new j([B.outputOf(new Map([[_n.EVENT_RESULT_NAME,t]]))])}}class Sn extends Ue{static PARAMETER_STRING_NAME="string";static PARAMETER_AT_POSITION_NAME="position";static PARAMETER_INSERT_STRING_NAME="insertString";EVENT_RESULT_NAME="result";PARAMETER_STRING=new y(Sn.PARAMETER_STRING_NAME,S.ofString(Sn.PARAMETER_STRING_NAME));PARAMETER_AT_POSITION=new y(Sn.PARAMETER_AT_POSITION_NAME,S.ofInteger(Sn.PARAMETER_AT_POSITION_NAME));PARAMETER_INSERT_STRING=new y(Sn.PARAMETER_INSERT_STRING_NAME,S.ofString(Sn.PARAMETER_INSERT_STRING_NAME));EVENT_STRING=new Y(Y.OUTPUT,new Map([[this.EVENT_RESULT_NAME,S.ofString(this.EVENT_RESULT_NAME)]]));signature=new W("InsertAtGivenPosition").setNamespace(a.STRING).setParameters(new Map([[this.PARAMETER_STRING.getParameterName(),this.PARAMETER_STRING],[this.PARAMETER_AT_POSITION.getParameterName(),this.PARAMETER_AT_POSITION],[this.PARAMETER_INSERT_STRING.getParameterName(),this.PARAMETER_INSERT_STRING]])).setEvents(new Map([Y.outputEventMapEntry(new Map([[this.EVENT_RESULT_NAME,S.ofString(this.EVENT_RESULT_NAME)]]))]));getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(Sn.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(Sn.PARAMETER_AT_POSITION_NAME),n=e?.getArguments()?.get(Sn.PARAMETER_INSERT_STRING_NAME),s="";return s+=t.substring(0,r),s+=n,s+=t.substring(r),new j([B.outputOf(new Map([[this.EVENT_RESULT_NAME,s]]))])}}class Mn extends Ue{static PARAMETER_STRING_NAME="string";static PARAMETER_POSTPAD_STRING_NAME="postpadString";static PARAMETER_LENGTH_NAME="length";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new y(Mn.PARAMETER_STRING_NAME,S.ofString(Mn.PARAMETER_STRING_NAME));static PARAMETER_POSTPAD_STRING=new y(Mn.PARAMETER_POSTPAD_STRING_NAME,S.ofString(Mn.PARAMETER_POSTPAD_STRING_NAME));static PARAMETER_LENGTH=new y(Mn.PARAMETER_LENGTH_NAME,S.ofInteger(Mn.PARAMETER_LENGTH_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[Mn.EVENT_RESULT_NAME,S.ofString(Mn.EVENT_RESULT_NAME)]]));signature=new W("PostPad").setNamespace(a.STRING).setParameters(new Map([[Mn.PARAMETER_STRING.getParameterName(),Mn.PARAMETER_STRING],[Mn.PARAMETER_POSTPAD_STRING.getParameterName(),Mn.PARAMETER_POSTPAD_STRING],[Mn.PARAMETER_LENGTH.getParameterName(),Mn.PARAMETER_LENGTH]])).setEvents(new Map([[Mn.EVENT_STRING.getName(),Mn.EVENT_STRING]]));constructor(){super()}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(Mn.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(Mn.PARAMETER_POSTPAD_STRING_NAME),n=e.getArguments()?.get(Mn.PARAMETER_LENGTH_NAME),s="",a=r.length;for(s+=t;a<=n;)s+=r,a+=r.length;return s.length-t.length<n&&(s+=r.substring(0,n-(s.length-t.length))),new j([B.of(Mn.EVENT_RESULT_NAME,new Map([[Mn.EVENT_RESULT_NAME,s.toString()]]))])}}class On extends Ue{static PARAMETER_STRING_NAME="string";static PARAMETER_PREPAD_STRING_NAME="prepadString";static PARAMETER_LENGTH_NAME="length";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new y(On.PARAMETER_STRING_NAME,S.ofString(On.PARAMETER_STRING_NAME));static PARAMETER_PREPAD_STRING=new y(On.PARAMETER_PREPAD_STRING_NAME,S.ofString(On.PARAMETER_PREPAD_STRING_NAME));static PARAMETER_LENGTH=new y(On.PARAMETER_LENGTH_NAME,S.ofInteger(On.PARAMETER_LENGTH_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[On.EVENT_RESULT_NAME,S.ofString(On.EVENT_RESULT_NAME)]]));signature=new W("PrePad").setNamespace(a.STRING).setParameters(new Map([[On.PARAMETER_STRING.getParameterName(),On.PARAMETER_STRING],[On.PARAMETER_PREPAD_STRING.getParameterName(),On.PARAMETER_PREPAD_STRING],[On.PARAMETER_LENGTH.getParameterName(),On.PARAMETER_LENGTH]])).setEvents(new Map([[On.EVENT_STRING.getName(),On.EVENT_STRING]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(On.PARAMETER_STRING_NAME),r=e.getArguments()?.get(On.PARAMETER_PREPAD_STRING_NAME),n=e.getArguments()?.get(On.PARAMETER_LENGTH_NAME),s="",a=r.length;for(;a<=n;)s+=r,a+=r.length;return s.length<n&&(s+=r.substring(0,n-s.length)),s+=t,new j([B.of(On.EVENT_RESULT_NAME,new Map([[On.EVENT_RESULT_NAME,s]]))])}}class wn extends Ue{static PARAMETER_STRING_NAME="string";static PARAMETER_BOOLEAN_NAME="boolean";static PARAMETER_FIRST_OFFSET_NAME="firstOffset";static PARAMETER_OTHER_STRING_NAME="otherString";static PARAMETER_SECOND_OFFSET_NAME="secondOffset";static PARAMETER_INTEGER_NAME="length";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new y(wn.PARAMETER_STRING_NAME,S.ofString(wn.PARAMETER_STRING_NAME));static PARAMETER_OTHER_STRING=new y(wn.PARAMETER_OTHER_STRING_NAME,S.ofString(wn.PARAMETER_OTHER_STRING_NAME));static PARAMETER_FIRST_OFFSET=new y(wn.PARAMETER_FIRST_OFFSET_NAME,S.ofInteger(wn.PARAMETER_FIRST_OFFSET_NAME));static PARAMETER_SECOND_OFFSET=new y(wn.PARAMETER_SECOND_OFFSET_NAME,S.ofInteger(wn.PARAMETER_SECOND_OFFSET_NAME));static PARAMETER_INTEGER=new y(wn.PARAMETER_INTEGER_NAME,S.ofInteger(wn.PARAMETER_INTEGER_NAME));static PARAMETER_BOOLEAN=new y(wn.PARAMETER_BOOLEAN_NAME,S.ofBoolean(wn.PARAMETER_BOOLEAN_NAME));static EVENT_BOOLEAN=new Y(Y.OUTPUT,new Map([[wn.EVENT_RESULT_NAME,S.ofBoolean(wn.EVENT_RESULT_NAME)]]));signature=new W("RegionMatches").setNamespace(a.STRING).setParameters(new Map([[wn.PARAMETER_STRING.getParameterName(),wn.PARAMETER_STRING],[wn.PARAMETER_BOOLEAN.getParameterName(),wn.PARAMETER_BOOLEAN],[wn.PARAMETER_FIRST_OFFSET.getParameterName(),wn.PARAMETER_FIRST_OFFSET],[wn.PARAMETER_OTHER_STRING.getParameterName(),wn.PARAMETER_OTHER_STRING],[wn.PARAMETER_SECOND_OFFSET.getParameterName(),wn.PARAMETER_SECOND_OFFSET],[wn.PARAMETER_INTEGER.getParameterName(),wn.PARAMETER_INTEGER]])).setEvents(new Map([[wn.EVENT_BOOLEAN.getName(),wn.EVENT_BOOLEAN]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(wn.PARAMETER_STRING_NAME),r=e.getArguments()?.get(wn.PARAMETER_BOOLEAN_NAME),n=e.getArguments()?.get(wn.PARAMETER_FIRST_OFFSET_NAME),s=e?.getArguments()?.get(wn.PARAMETER_OTHER_STRING_NAME),a=e?.getArguments()?.get(wn.PARAMETER_SECOND_OFFSET_NAME),i=e.getArguments()?.get(wn.PARAMETER_INTEGER_NAME),o=!1;if(n<0||a<0||n+i>t.length||a+i>s.length)o=!1;else if(r){t=t.substring(n,n+i).toUpperCase(),o=t==s.substring(a,a+i).toUpperCase()}else{t=t.substring(n,n+i),o=t==s.substring(a,i)}return new j([B.outputOf(new Map([[wn.EVENT_RESULT_NAME,o]]))])}}class dn extends Ue{static PARAMETER_STRING_NAME="string";static PARAMETER_AT_START_NAME="startPosition";static PARAMETER_AT_LENGTH_NAME="lengthPosition";static PARAMETER_REPLACE_STRING_NAME="replaceString";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new y(dn.PARAMETER_STRING_NAME,S.ofString(dn.PARAMETER_STRING_NAME));static PARAMETER_AT_START=new y(dn.PARAMETER_AT_START_NAME,S.ofInteger(dn.PARAMETER_AT_START_NAME));static PARAMETER_AT_LENGTH=new y(dn.PARAMETER_AT_LENGTH_NAME,S.ofInteger(dn.PARAMETER_AT_LENGTH_NAME));static PARAMETER_REPLACE_STRING=new y(dn.PARAMETER_REPLACE_STRING_NAME,S.ofString(dn.PARAMETER_REPLACE_STRING_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[dn.EVENT_RESULT_NAME,S.ofString(dn.EVENT_RESULT_NAME)]]));constructor(){super()}signature=new W("ReplaceAtGivenPosition").setNamespace(a.STRING).setParameters(new Map([[dn.PARAMETER_STRING.getParameterName(),dn.PARAMETER_STRING],[dn.PARAMETER_AT_START.getParameterName(),dn.PARAMETER_AT_START],[dn.PARAMETER_AT_LENGTH.getParameterName(),dn.PARAMETER_AT_LENGTH],[dn.PARAMETER_REPLACE_STRING.getParameterName(),dn.PARAMETER_REPLACE_STRING]])).setEvents(new Map([[dn.EVENT_STRING.getName(),dn.EVENT_STRING]]));getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(dn.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(dn.PARAMETER_AT_START_NAME),n=e?.getArguments()?.get(dn.PARAMETER_AT_LENGTH_NAME),s=e?.getArguments()?.get(dn.PARAMETER_REPLACE_STRING_NAME);t.length;if(r<n){let e="";e+=t.substring(0,r),e+=s,e+=t.substring(r+n)}return new j([B.outputOf(new Map([[dn.EVENT_RESULT_NAME,t]]))])}}class In extends Ue{VALUE="value";SIGNATURE=new W("Reverse").setNamespace(a.STRING).setParameters(new Map([[this.VALUE,new y(this.VALUE,S.ofString(this.VALUE)).setVariableArgument(!1)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([[this.VALUE,(new S).setType(f.of(l.STRING)).setName(this.VALUE)]]))]));constructor(){super()}getSignature(){return this.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(this.VALUE),r=t.length-1,n="";for(;r>=0;)n+=t.charAt(r--);return new j([B.outputOf(G.of(this.VALUE,n))])}}class Pn extends Ue{PARAMETER_STRING_NAME="string";PARAMETER_SPLIT_STRING_NAME="searchString";EVENT_RESULT_NAME="result";PARAMETER_STRING=new y(this.PARAMETER_STRING_NAME,S.ofString(this.PARAMETER_STRING_NAME));PARAMETER_SPLIT_STRING=new y(this.PARAMETER_SPLIT_STRING_NAME,S.ofString(this.PARAMETER_SPLIT_STRING_NAME));EVENT_ARRAY=new Y(Y.OUTPUT,G.of(this.EVENT_RESULT_NAME,S.ofArray(this.EVENT_RESULT_NAME)));getSignature(){return new W("Split").setNamespace(a.STRING).setParameters(new Map([[this.PARAMETER_STRING_NAME,this.PARAMETER_STRING],[this.PARAMETER_SPLIT_STRING_NAME,this.PARAMETER_SPLIT_STRING]])).setEvents(new Map([Y.outputEventMapEntry(new Map([[this.EVENT_RESULT_NAME,S.ofArray(this.EVENT_RESULT_NAME)]]))]))}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(this.PARAMETER_STRING_NAME),r=e.getArguments()?.get(this.PARAMETER_SPLIT_STRING_NAME);return new j([B.outputOf(G.of(this.EVENT_RESULT_NAME,t.split(r)))])}}class yn extends Ue{PARAMETER_INPUT_ANYTYPE_NAME="anytype";EVENT_RESULT_NAME="result";PARAMETER_INPUT_ANYTYPE=new y(this.PARAMETER_INPUT_ANYTYPE_NAME,S.ofAny(this.PARAMETER_INPUT_ANYTYPE_NAME));EVENT_STRING=new Y(Y.OUTPUT,new Map([[this.EVENT_RESULT_NAME,S.ofString(this.EVENT_RESULT_NAME)]]));getSignature(){return new W("ToString").setNamespace(a.STRING).setParameters(new Map([[this.PARAMETER_INPUT_ANYTYPE.getParameterName(),this.PARAMETER_INPUT_ANYTYPE]])).setEvents(new Map([[this.EVENT_STRING.getName(),this.EVENT_STRING]]))}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(this.PARAMETER_INPUT_ANYTYPE_NAME),r="";return r="object"==typeof t?JSON.stringify(t,void 0,2):""+t,new j([B.outputOf(new Map([[this.EVENT_RESULT_NAME,r]]))])}}class xn extends Ue{static PARAMETER_STRING_NAME="string";static PARAMETER_LENGTH_NAME="length";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new y(xn.PARAMETER_STRING_NAME,S.ofString(xn.PARAMETER_STRING_NAME));static PARAMETER_LENGTH=new y(xn.PARAMETER_LENGTH_NAME,S.ofInteger(xn.PARAMETER_LENGTH_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[xn.EVENT_RESULT_NAME,S.ofString(xn.EVENT_RESULT_NAME)]]));signature=new W("TrimTo").setNamespace(a.STRING).setParameters(new Map([[xn.PARAMETER_STRING.getParameterName(),xn.PARAMETER_STRING],[xn.PARAMETER_LENGTH.getParameterName(),xn.PARAMETER_LENGTH]])).setEvents(new Map([[xn.EVENT_STRING.getName(),xn.EVENT_STRING]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(xn.PARAMETER_STRING_NAME),r=e.getArguments()?.get(xn.PARAMETER_LENGTH_NAME);return new j([B.of(xn.EVENT_RESULT_NAME,new Map([[xn.EVENT_RESULT_NAME,t.substring(0,r)]]))])}}class vn{static repoMap=G.ofArrayEntries(Nn.ofEntryString("Trim",(e=>e.trim())),Nn.ofEntryString("LowerCase",(e=>e.toLocaleLowerCase())),Nn.ofEntryString("UpperCase",(e=>e.toUpperCase())),Nn.ofEntryStringBooleanOutput("IsBlank",(e=>""===e.trim())),Nn.ofEntryStringBooleanOutput("IsEmpty",(e=>""===e)),Nn.ofEntryAsStringBooleanOutput("Contains",((e,t)=>-1!=e.indexOf(t))),Nn.ofEntryAsStringBooleanOutput("EndsWith",((e,t)=>e.endsWith(t))),Nn.ofEntryAsStringBooleanOutput("EqualsIgnoreCase",((e,t)=>e.toUpperCase()==t.toUpperCase())),Nn.ofEntryAsStringBooleanOutput("Matches",((e,t)=>new RegExp(t).test(e))),Nn.ofEntryAsStringIntegerOutput("IndexOf",((e,t)=>e.indexOf(t))),Nn.ofEntryAsStringIntegerOutput("LastIndexOf",((e,t)=>e.lastIndexOf(t))),Nn.ofEntryAsStringAndIntegerStringOutput("Repeat",((e,t)=>e.repeat(t))),Nn.ofEntryAsStringStringIntegerIntegerOutput("IndexOfWithStartPoint",((e,t,r)=>e.indexOf(t,r))),Nn.ofEntryAsStringStringIntegerIntegerOutput("LastIndexOfWithStartPoint",((e,t,r)=>e.lastIndexOf(t,r))),Nn.ofEntryAsStringStringStringStringOutput("Replace",((e,t,r)=>e)),Nn.ofEntryAsStringStringStringStringOutput("ReplaceFirst",((e,t,r)=>e.replace(t,r))),Nn.ofEntryAsStringIntegerIntegerStringOutput("SubString",((e,t,r)=>e.substring(t,r))),C(new fn),C(new _n),C(new Sn),C(new Mn),C(new On),C(new wn),C(new dn),C(new In),C(new Pn),C(new yn),C(new xn));static filterableNames=Array.from(vn.repoMap.values()).map((e=>e.getSignature().getFullName()));find(e,t){if(e==a.STRING)return vn.repoMap.get(t)}filter(e){return vn.filterableNames.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}var Ln={};t(Ln,"HybridRepository",(()=>Un));class Un{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 Cn=new Map([[a.SYSTEM_CTX,new Map([C(new class extends Ue{getSignature(){return ft}async internalExecute(e){const t=e?.getArguments()?.get("name");if(e?.getContext()?.has(t))throw new $(Z.format("Context already has an element for '$' ",t));let r=S.from(e?.getArguments()?.get("schema"));if(!r)throw new $("Schema is not supplied.");return e.getContext().set(t,new Nt(r,E(r.getDefaultValue())?void 0:r.getDefaultValue())),new j([B.outputOf(new Map)])}}),C(new class extends Ue{getSignature(){return _t}async internalExecute(e){const t=e?.getArguments()?.get("name");if(!e.getContext()?.has(t))throw new $(Z.format("Context don't have an element for '$' ",t));return new j([B.outputOf(new Map(["value",e.getContext()?.get(t)?.getElement()]))])}}),C(new class extends Ue{getSignature(){return Jr}async internalExecute(e){let t=e?.getArguments()?.get("name");if(se.isNullOrBlank(t))throw new $("Empty string is not a valid name for the context element");let r=e?.getArguments()?.get("value");const n=new Ut(t),s=n.getTokens().peekLast();if(!s.getExpression().startsWith("Context")||s instanceof Ut||s instanceof xt&&!s.getElement().toString().startsWith("Context"))throw new Ye(Z.format("The context path $ is not a valid path in context",t));for(const e of n.getOperations().toArray())if(e!=Lt.ARRAY_OPERATOR&&e!=Lt.OBJECT_OPERATOR)throw new Ye(Z.format("Expected a reference to the context location, but found an expression $",t));for(let r=0;r<n.getTokens().size();r++){let s=n.getTokens().get(r);s instanceof Ut&&n.getTokens().set(r,new xt(t,new qr(s).evaluate(e.getValuesMap())))}return this.modifyContext(e,t,r,n)}modifyContext(e,t,r,n){const s=n.getTokens();s.removeLast();const a=n.getOperations();a.removeLast();let i=e.getContext()?.get(s.removeLast().getExpression());if(E(i))throw new $(Z.format("Context doesn't have any element with name '$' ",t));if(a.isEmpty())return i.setElement(r),new j([B.outputOf(new Map)]);let o=i.getElement(),u=a.removeLast(),A=s.removeLast(),l=A instanceof xt?A.getElement():A.getExpression();for(E(o)&&(o=u==Lt.OBJECT_OPERATOR?{}:[],i.setElement(o));!a.isEmpty();)o=u==Lt.OBJECT_OPERATOR?this.getDataFromObject(o,l,a.peekLast()):this.getDataFromArray(o,l,a.peekLast()),u=a.removeLast(),A=s.removeLast(),l=A instanceof xt?A.getElement():A.getExpression();return u==Lt.OBJECT_OPERATOR?this.putDataInObject(o,l,r):this.putDataInArray(o,l,r),new j([B.outputOf(new Map)])}getDataFromArray(e,t,r){if(!Array.isArray(e))throw new $(Z.format("Expected an array but found $",e));const n=parseInt(t);if(isNaN(n))throw new $(Z.format("Expected an array index but found $",t));if(n<0)throw new $(Z.format("Array index is out of bound - $",t));let s=e[n];return E(s)&&(s=r==Lt.OBJECT_OPERATOR?{}:[],e[n]=s),s}getDataFromObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new $(Z.format("Expected an object but found $",e));let n=e[t];return E(n)&&(n=r==Lt.OBJECT_OPERATOR?{}:[],e[t]=n),n}putDataInArray(e,t,r){if(!Array.isArray(e))throw new $(Z.format("Expected an array but found $",e));const n=parseInt(t);if(isNaN(n))throw new $(Z.format("Expected an array index but found $",t));if(n<0)throw new $(Z.format("Array index is out of bound - $",t));e[n]=r}putDataInObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new $(Z.format("Expected an object but found $",e));e[t]=r}})])],[a.SYSTEM_LOOP,new Map([C(new class extends Ue{getSignature(){return en}async internalExecute(e){let t=e.getArguments()?.get("from"),r=e.getArguments()?.get("to"),n=e.getArguments()?.get("step");const s=n>0;let a=t,i=!1,o=e.getStatementExecution()?.getStatement()?.getStatementName();return new j({next(){if(i)return;if(s&&a>=r||!s&&a<=r||o&&e.getExecutionContext()?.get(o))return i=!0,o&&e.getExecutionContext()?.delete(o),B.outputOf(new Map([["value",a]]));const t=B.of(Y.ITERATION,new Map([["index",a]]));return a+=n,t}})}}),C(new class extends Ue{getSignature(){return Zr}async internalExecute(e){let t=e.getArguments()?.get("count"),r=0,n=e.getStatementExecution()?.getStatement()?.getStatementName();return new j({next(){if(r>=t||n&&e.getExecutionContext()?.get(n))return n&&e.getExecutionContext()?.delete(n),B.outputOf(new Map([["value",r]]));const s=B.of(Y.ITERATION,new Map([["index",r]]));return++r,s}})}}),C(new class extends Ue{getSignature(){return Kr}async internalExecute(e){let t=e.getArguments()?.get("stepName");return e.getExecutionContext().set(t,!0),new j([B.outputOf(new Map)])}})])],[a.SYSTEM,new Map([C(new Qr),C(new class extends Ue{getSignature(){return zr}async internalExecute(e){const t=e.getEvents(),r=e.getArguments()?.get("eventName"),n=e?.getArguments()?.get("results").map((t=>{let r=t.value;if(E(r))throw new $("Expect a value object");let n=r.value;return r.isExpression&&(n=new qr(n).evaluate(e.getValuesMap())),[t.name,n]})).reduce(((e,t)=>(e.set(t[0],t[1]),e)),new Map);return t?.has(r)||t?.set(r,[]),t?.get(r)?.push(n),new j([B.outputOf(new Map)])}}),C(new hn)])]]),Vn=Array.from(Cn.values()).flatMap((e=>Array.from(e.values()))).map((e=>e.getSignature().getFullName()));class Gn extends Un{constructor(){super({find:(e,t)=>Cn.get(e)?.get(t),filter:e=>Array.from(Vn).filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))},new mn,new vn,new ct,new cn)}}var bn={};t(bn,"StatementExecution",(()=>Yn));var Dn={};t(Dn,"StatementMessage",(()=>Fn));class Fn{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 Yn{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 Fn(e,t))}addDependency(e){this.dependencies.add(e)}getDepenedencies(){return this.dependencies}equals(e){if(!(e instanceof Yn))return!1;return e.statement.equals(this.statement)}}var Bn={};t(Bn,"ContextTokenValueExtractor",(()=>Hn));class Hn extends Br{static PREFIX="Context.";constructor(e){super(),this.context=e}getValueInternal(e){let t=e.split(Br.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 Hn.PREFIX}}var kn={};t(kn,"OutputMapTokenValueExtractor",(()=>$n));class $n extends Br{static PREFIX="Steps.";constructor(e){super(),this.output=e}getValueInternal(e){let t=e.split(Br.REGEX_DOT),r=1,n=this.output.get(t[r++]);if(!n||r>=t.length)return;let s=n.get(t[r++]);if(!s||r>=t.length)return;const a=t[r].indexOf("[");if(-1===a){let n=s.get(t[r++]);return this.retrieveElementFrom(e,t,r,n)}const i=t[r].substring(0,a);let o=s.get(i);return this.retrieveElementFrom(e,t,r,{[i]:o})}getPrefix(){return $n.PREFIX}}var jn={};t(jn,"ArgumentsTokenValueExtractor",(()=>Xn));class Xn extends Br{static PREFIX="Arguments.";constructor(e){super(),this.args=e}getValueInternal(e){let t=e.split(Br.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 Xn.PREFIX}}var Wn={};t(Wn,"GraphVertex",(()=>zn));var qn={};t(qn,"ExecutionGraph",(()=>Jn));class Jn{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 zn(this,e);this.nodeMap.set(e.getUniqueKey(),t)}return this.nodeMap.get(e.getUniqueKey())}getVertex(e){return this.nodeMap.get(e)}getVertexData(e){if(this.nodeMap.has(e))return this.nodeMap.get(e).getData()}getVerticesWithNoIncomingEdges(){return Array.from(this.nodeMap.values()).filter((e=>!e.hasIncomingEdges()))}isCyclic(){let e,t=new ee(this.getVerticesWithNoIncomingEdges()),r=new Set;for(;!t.isEmpty();){if(r.has(t.getFirst().getKey()))return!0;e=t.removeFirst(),r.add(e.getKey()),e.hasOutgoingEdges()&&t.addAll(Array.from(e.getOutVertices().values()).flatMap((e=>Array.from(e))))}return!1}addVertices(e){for(const t of e)this.addVertex(t)}getNodeMap(){return this.nodeMap}isSubGraph(){return this.isSubGrph}toString(){return"Execution Graph : \n"+Array.from(this.nodeMap.values()).map((e=>e.toString())).join("\n")}}class zn{outVertices=new Map;inVertices=new Set;constructor(e,t){this.data=t,this.graph=e}getData(){return this.data}setData(e){return this.data=e,this}getOutVertices(){return this.outVertices}setOutVertices(e){return this.outVertices=e,this}getInVertices(){return this.inVertices}setInVertices(e){return this.inVertices=e,this}getGraph(){return this.graph}setGraph(e){return this.graph=e,this}getKey(){return this.data.getUniqueKey()}addOutEdgeTo(e,t){return this.outVertices.has(e)||this.outVertices.set(e,new Set),this.outVertices.get(e).add(t),t.inVertices.add(new oe(this,e)),t}addInEdgeTo(e,t){return this.inVertices.add(new oe(e,t)),e.outVertices.has(t)||e.outVertices.set(t,new Set),e.outVertices.get(t).add(this),e}hasIncomingEdges(){return!!this.inVertices.size}hasOutgoingEdges(){return!!this.outVertices.size}getSubGraphOfType(e){let t=new Jn(!0);var r=new ee(Array.from(this.outVertices.get(e)??[]));for(r.map((e=>e.getData())).forEach((e=>t.addVertex(e)));!r.isEmpty();){var n=r.pop();Array.from(n.outVertices.values()).flatMap((e=>Array.from(e))).forEach((e=>{t.addVertex(e.getData()),r.add(e)}))}return t}toString(){var e=Array.from(this.getInVertices()).map((e=>e.getT1().getKey()+"("+e.getT2()+")")).join(", "),t=Array.from(this.outVertices.entries()).map((([e,t])=>e+": "+Array.from(t).map((e=>e.getKey())).join(","))).join("\n\t\t");return this.getKey()+":\n\tIn: "+e+"\n\tOut: \n\t\t"+t}}var Qn={};t(Qn,"KIRuntime",(()=>us));var Kn={};t(Kn,"JsonExpression",(()=>Zn));class Zn{constructor(e){this.expression=e}getExpression(){return this.expression}}var es={};let ts;var rs;t(es,"ParameterReferenceType",(()=>ts)),(rs=ts||(ts={})).VALUE="VALUE",rs.EXPRESSION="EXPRESSION";var ns={};function ss(){var e=(new Date).getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(t){var r=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"==t?r:3&r|8).toString(16)}))}t(ns,"FunctionExecutionParameters",(()=>as));class as{count=0;executionContext=new Map;valueExtractors=new Map;constructor(e,t,r){this.functionRepository=e,this.schemaRepository=t,this.executionId=r??ss()}getExecutionId(){return this.executionId}getContext(){return this.context}setContext(e){this.context=e;let t=new Hn(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 $n(e);return this.valueExtractors.set(t.getPrefix(),t),this}getCount(){return this.count}setCount(e){return this.count=e,this}getValuesMap(){return this.valueExtractors}getFunctionRepository(){return this.functionRepository}setFunctionRepository(e){return this.functionRepository=e,this}getSchemaRepository(){return this.schemaRepository}setSchemaRepository(e){return this.schemaRepository=e,this}addTokenValueExtractor(...e){for(const t of e)this.valueExtractors.set(t.getPrefix(),t);return this}setValuesMap(e){for(const[t,r]of e.entries())this.valueExtractors.set(t,r);return this}setExecutionContext(e){return this.executionContext=e,this}getExecutionContext(){return this.executionContext}}var is={};let os;var Es;t(is,"StatementMessageType",(()=>os)),(Es=os||(os={})).ERROR="ERROR",Es.WARNING="WARNING",Es.MESSAGE="MESSAGE";class us extends Ue{static PARAMETER_NEEDS_A_VALUE='Parameter "$" needs a value';static STEP_REGEX_PATTERN=new RegExp("Steps\\.([a-zA-Z0-9\\\\-]{1,})\\.([a-zA-Z0-9\\\\-]{1,})","g");static VERSION=1;static MAX_EXECUTION_ITERATIONS=1e7;debugMode=!1;constructor(e,t=!1){if(super(),this.debugMode=t,this.fd=e,this.fd.getVersion()>us.VERSION)throw new $("Runtime is at a lower version "+us.VERSION+" and trying to run code from version "+this.fd.getVersion()+".")}getSignature(){return this.fd}async getExecutionPlan(e,t){let r=new Jn;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(os.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 Xn(e.getArguments())),this.debugMode&&(console.log(`EID: ${e.getExecutionId()} Executing: ${this.fd.getNamespace()}.${this.fd.getName()}`),console.log(`EID: ${e.getExecutionId()} Parameters: `,e));let t=await this.getExecutionPlan(e.getFunctionRepository(),e.getSchemaRepository());this.debugMode&&console.log(`EID: ${e.getExecutionId()} ${t?.toString()}`);let r=t.getVerticesData().filter((e=>e.getMessages().length)).map((e=>e.getStatement().getStatementName()+": \n"+e.getMessages().join(",")));if(r?.length)throw new $("Please fix the errors in the function definition before execution : \n"+r.join(",\n"));return await this.executeGraph(t,e)}async executeGraph(e,t){let r=new ee;r.addAll(e.getVerticesWithNoIncomingEdges());let n=new ee;for(;!(r.isEmpty()&&n.isEmpty()||t.getEvents()?.has(Y.OUTPUT));)if(await this.processBranchQue(t,r,n),await this.processExecutionQue(t,r,n),t.setCount(t.getCount()+1),t.getCount()==us.MAX_EXECUTION_ITERATIONS)throw new $("Execution locked in an infinite loop");if(!e.isSubGraph()&&!t.getEvents()?.size){const e=this.getSignature().getEvents();if(e.size&&e.get(Y.OUTPUT)?.getParameters()?.size)throw new $("No events raised")}const s=Array.from(t.getEvents()?.entries()??[]).flatMap((e=>e[1].map((t=>B.of(e[0],t)))));return s.length||e.isSubGraph()?new j(s):new j([B.of(Y.OUTPUT,new Map)])}async processExecutionQue(e,t,r){if(!t.isEmpty()){let n=t.pop();await this.allDependenciesResolvedVertex(n,e.getSteps())?await this.executeVertex(n,e,r,t,e.getFunctionRepository()):t.add(n)}}async processBranchQue(e,t,r){if(r.length){let n=r.pop();await this.allDependenciesResolvedTuples(n.getT2(),e.getSteps())?await this.executeBranch(e,t,n):r.add(n)}}async executeBranch(e,t,r){let n,s=r.getT4();do{if(await this.executeGraph(r.getT1(),e),n=r.getT3().next(),n&&(e.getSteps()?.has(s.getData().getStatement().getStatementName())||e.getSteps()?.set(s.getData().getStatement().getStatementName(),new Map),e.getSteps()?.get(s.getData().getStatement().getStatementName())?.set(n.getName(),this.resolveInternalExpressions(n.getResult(),e)),this.debugMode)){const t=s.getData().getStatement();console.log(`EID: ${e.getExecutionId()} Step : ${t.getStatementName()} => ${t.getNamespace()}.${t.getName()}`),console.log(`EID: ${e.getExecutionId()} Event : ${n.getName()} : `,e.getSteps().get(t.getStatementName()).get(n.getName()))}}while(n&&n.getName()!=Y.OUTPUT);n?.getName()==Y.OUTPUT&&s.getOutVertices().has(Y.OUTPUT)&&(s?.getOutVertices()?.get(Y.OUTPUT)??[]).forEach((async r=>{await this.allDependenciesResolvedVertex(r,e.getSteps())&&t.add(r)}))}async executeVertex(e,t,r,n,s){let a=e.getData().getStatement(),i=s.find(a.getNamespace(),a.getName());if(!i)throw new $(Z.format("$.$ function is not found.",a.getNamespace(),a.getName()));let o=i?.getSignature().getParameters(),E=this.getArgumentsFromParametersMap(t,a,o??new Map);this.debugMode&&(console.log(`EID: ${t.getExecutionId()} Step : ${a.getStatementName()} => ${a.getNamespace()}.${a.getName()}`),console.log(`EID: ${t.getExecutionId()} Arguments : `,E));let u,A=t.getContext();u=i instanceof us?new as(t.getFunctionRepository(),t.getSchemaRepository(),`${t.getExecutionId()}_${a.getStatementName()}`).setArguments(E).setValuesMap(new Map(Array.from(t.getValuesMap().values()).filter((e=>e.getPrefix()!==Xn.PREFIX&&e.getPrefix()!==$n.PREFIX&&e.getPrefix()!==Hn.PREFIX)).map((e=>[e.getPrefix(),e])))):new as(t.getFunctionRepository(),t.getSchemaRepository(),t.getExecutionId()).setValuesMap(t.getValuesMap()).setContext(A).setArguments(E).setEvents(t.getEvents()).setSteps(t.getSteps()).setStatementExecution(e.getData()).setCount(t.getCount()).setExecutionContext(t.getExecutionContext());let l=await i.execute(u),g=l.next();if(!g)throw new $(Z.format("Executing $ returned no events",a.getStatementName()));let m=g.getName()==Y.OUTPUT;if(t.getSteps()?.has(a.getStatementName())||t.getSteps().set(a.getStatementName(),new Map),t.getSteps().get(a.getStatementName()).set(g.getName(),this.resolveInternalExpressions(g.getResult(),t)),this.debugMode&&(console.log(`EID: ${t.getExecutionId()} Step : ${a.getStatementName()} => ${a.getNamespace()}.${a.getName()}`),console.log(`EID: ${t.getExecutionId()} Event : ${g.getName()} : `,t.getSteps().get(a.getStatementName()).get(g.getName()))),m){let r=e.getOutVertices().get(Y.OUTPUT);r&&r.forEach((async e=>{await this.allDependenciesResolvedVertex(e,t.getSteps())&&n.add(e)}))}else{let t=e.getSubGraphOfType(g.getName()),n=this.makeEdges(t).getT1();r.push(new ue(t,n,l,e))}}resolveInternalExpressions(e,t){return e?Array.from(e.entries()).map((e=>new oe(e[0],this.resolveInternalExpression(e[1],t)))).reduce(((e,t)=>(e.set(t.getT1(),t.getT2()),e)),new Map):e}resolveInternalExpression(e,t){if(E(e)||"object"!=typeof e)return e;if(e instanceof Zn){return new qr(e.getExpression()).evaluate(t.getValuesMap())}if(Array.isArray(e)){let r=[];for(let n of e)r.push(this.resolveInternalExpression(n,t));return r}if("object"==typeof e){let r={};for(let n of Object.entries(e))r[n[0]]=this.resolveInternalExpression(n[1],t);return r}}allDependenciesResolvedTuples(e,t){for(let r of e){if(!t.has(r.getT1()))return!1;if(!t.get(r.getT1())?.get(r.getT2()))return!1}return!0}allDependenciesResolvedVertex(e,t){return!e.getInVertices().size||0==Array.from(e.getInVertices()).filter((e=>{let r=e.getT1().getData().getStatement().getStatementName(),n=e.getT2();return!(t.has(r)&&t.get(r)?.has(n))})).length}getArgumentsFromParametersMap(e,t,r){return Array.from(t.getParameterMap().entries()).map((t=>{let n,s=Array.from(t[1]?.values()??[]);if(!s?.length)return new oe(t[0],n);let a=r.get(t[0]);return a?(n=a.isVariableArgument()?s.sort(((e,t)=>(e.getOrder()??0)-(t.getOrder()??0))).filter((e=>!E(e))).map((t=>this.parameterReferenceEvaluation(e,t))).flatMap((e=>Array.isArray(e)?e:[e])):this.parameterReferenceEvaluation(e,s[0]),new oe(t[0],n)):new oe(t[0],void 0)})).filter((e=>!E(e.getT2()))).reduce(((e,t)=>(e.set(t.getT1(),t.getT2()),e)),new Map)}parameterReferenceEvaluation(e,t){let r;if(t.getType()==ts.VALUE)r=this.resolveInternalExpression(t.getValue(),e);else if(t.getType()==ts.EXPRESSION&&!se.isNullOrBlank(t.getExpression())){r=new qr(t.getExpression()??"").evaluate(e.getValuesMap())}return r}prepareStatementExecution(e,t,r){let n=new Yn(e),s=t.find(e.getNamespace(),e.getName());if(!s)return n.addMessage(os.ERROR,Z.format("$.$ is not available",e.getNamespace(),e.getName())),n;let a=new Map(s.getSignature().getParameters());if(!e.getParameterMap())return n;for(let t of Array.from(e.getParameterMap().entries())){let e=a.get(t[0]);if(!e)continue;let s=Array.from(t[1]?.values()??[]);if(s.length||e.isVariableArgument()){if(e.isVariableArgument()){s.sort(((e,t)=>(e.getOrder()??0)-(t.getOrder()??0)));for(let t of s)this.parameterReferenceValidation(n,e,t,r)}else if(s.length){let t=s[0];this.parameterReferenceValidation(n,e,t,r)}a.delete(e.getParameterName())}else ge.hasDefaultValueOrNullSchemaType(e.getSchema(),r)||n.addMessage(os.ERROR,Z.format(us.PARAMETER_NEEDS_A_VALUE,e.getParameterName())),a.delete(e.getParameterName())}if(!E(n.getStatement().getDependentStatements()))for(let e of n.getStatement().getDependentStatements().entries())e[1]&&n.addDependency(e[0]);if(a.size)for(let e of Array.from(a.values()))e.isVariableArgument()||ge.hasDefaultValueOrNullSchemaType(e.getSchema(),r)||n.addMessage(os.ERROR,Z.format(us.PARAMETER_NEEDS_A_VALUE,e.getParameterName()));return n}parameterReferenceValidation(e,t,r,n){if(r){if(r.getType()==ts.VALUE){if(E(r.getValue())&&!ge.hasDefaultValueOrNullSchemaType(t.getSchema(),n)&&e.addMessage(os.ERROR,Z.format(us.PARAMETER_NEEDS_A_VALUE,t.getParameterName())),E(r.getValue()))return;let s=new ee;for(s.push(new oe(t.getSchema(),r.getValue()));!s.isEmpty();){let t=s.pop();if(t.getT2()instanceof Zn)this.addDependencies(e,t.getT2().getExpression());else{if(E(t.getT1())||E(t.getT1().getType()))continue;if(t.getT1().getType()?.contains(l.ARRAY)&&Array.isArray(t.getT2())){let e=t.getT1().getItems();if(!e)continue;if(e.isSingleType())for(let r of t.getT2())s.push(new oe(e.getSingleSchema(),r));else{let r=t.getT2();for(let t=0;t<r.length;t++)s.push(new oe(e.getTupleSchema()[t],r[t]))}}else if(t.getT1().getType()?.contains(l.OBJECT)&&"object"==typeof t.getT2()){let r=t.getT1();if(r.getName()===y.EXPRESSION.getName()&&r.getNamespace()===y.EXPRESSION.getNamespace()){let r=t.getT2();r.isExpression&&this.addDependencies(e,r.value)}else if(r.getProperties())for(let e of Object.entries(t.getT2()))r.getProperties().has(e[0])&&s.push(new oe(r.getProperties().get(e[0]),e[1]))}}}}else if(r.getType()==ts.EXPRESSION)if(se.isNullOrBlank(r.getExpression()))E(ge.getDefaultValue(t.getSchema(),n))&&e.addMessage(os.ERROR,Z.format(us.PARAMETER_NEEDS_A_VALUE,t.getParameterName()));else try{this.addDependencies(e,r.getExpression())}catch(t){e.addMessage(os.ERROR,Z.format("Error evaluating $ : $",r.getExpression(),t))}}else E(ge.getDefaultValue(t.getSchema(),n))&&e.addMessage(os.ERROR,Z.format(us.PARAMETER_NEEDS_A_VALUE,t.getParameterName()))}addDependencies(e,t){t&&Array.from(t.match(us.STEP_REGEX_PATTERN)??[]).forEach((t=>e.addDependency(t)))}makeEdges(e){let t=e.getNodeMap().values(),r=[],n=new Map;for(let s of Array.from(t))for(let t of s.getData().getDependencies()){let a=t.indexOf(".",6),i=t.substring(6,a),o=t.indexOf(".",a+1),E=-1==o?t.substring(a+1):t.substring(a+1,o);e.getNodeMap().has(i)?s.addInEdgeTo(e.getNodeMap().get(i),E):(r.push(new oe(i,E)),n.set(s.getData().getStatement().getStatementName(),Z.format("Unable to find the step with name $",i)))}return new oe(r,n)}}var As={};t(As,"KIRunConstants",(()=>ls));class ls{static NAMESPACE="namespace";static NAME="name";static ID="id";constructor(){}}var gs={};t(gs,"Position",(()=>ms));class ms{static SCHEMA_NAME="Position";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(ms.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["left",S.ofFloat("left")],["top",S.ofFloat("top")]]));constructor(e,t){this.left=e,this.top=t}getLeft(){return this.left}setLeft(e){return this.left=e,this}getTop(){return this.top}setTop(e){return this.top=e,this}static from(e){if(e)return new ms(e.left,e.top)}}var Rs={};t(Rs,"FunctionDefinition",(()=>Os));var Ts={};t(Ts,"Statement",(()=>fs));var ps={};t(ps,"AbstractStatement",(()=>cs));class cs{override=!1;constructor(e){e&&(this.comment=e.comment,this.description=e.description,this.position=e.position?new ms(e.position.getLeft(),e.position.getTop()):void 0,this.override=e.override)}getComment(){return this.comment}setComment(e){return this.comment=e,this}isOverride(){return this.override}setOverride(e){return this.override=e,this}getDescription(){return this.description}setDescription(e){return this.description=e,this}getPosition(){return this.position}setPosition(e){return this.position=e,this}}var hs={};t(hs,"ParameterReference",(()=>Ns));class Ns{static SCHEMA_NAME="ParameterReference";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(Ns.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["key",S.ofString("key")],["value",S.ofAny("value")],["expression",S.ofString("expression")],["type",S.ofString("type").setEnums(["EXPRESSION","VALUE"])],["order",S.ofInteger("order")]]));constructor(e){if(e instanceof Ns){let t=e;this.key=t.key,this.type=t.type,this.value=E(t.value)?void 0:JSON.parse(JSON.stringify(t.value)),this.expression=t.expression,this.order=t.order}else this.type=e,this.key=ss()}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 Ns(ts.EXPRESSION).setExpression(e);return[t.getKey(),t]}static ofValue(e){const t=new Ns(ts.VALUE).setValue(e);return[t.getKey(),t]}static from(e){return new Ns(e.type).setValue(e.value).setExpression(e.expression).setKey(e.key).setOrder(e.order)}}class fs extends cs{static SCHEMA_NAME="Statement";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(fs.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["statementName",S.ofString("statementName")],["comment",S.ofString("comment")],["description",S.ofString("description")],["namespace",S.ofString("namespace")],["name",S.ofString("name")],["dependentStatements",S.ofObject("dependentstatement").setAdditionalProperties((new _).setSchemaValue(S.ofBoolean("exists")))],["parameterMap",(new S).setName("parameterMap").setAdditionalProperties((new _).setSchemaValue(S.ofObject("parameterReference").setAdditionalProperties((new _).setSchemaValue(Ns.SCHEMA))))],["position",ms.SCHEMA]]));constructor(e,t,r){if(super(e instanceof fs?e:void 0),e instanceof fs){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 Ns(e[1])])))])))),t.dependentStatements&&(this.dependentStatements=new Map(Array.from(t.dependentStatements.entries())))}else{if(this.statementName=e,!r||!t)throw new Error("Unknown constructor");this.namespace=t,this.name=r}}getStatementName(){return this.statementName}setStatementName(e){return this.statementName=e,this}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getParameterMap(){return this.parameterMap||(this.parameterMap=new Map),this.parameterMap}setParameterMap(e){return this.parameterMap=e,this}getDependentStatements(){return this.dependentStatements??new Map}setDependentStatements(e){return this.dependentStatements=e,this}equals(e){if(!(e instanceof fs))return!1;return e.statementName==this.statementName}static ofEntry(e){return[e.statementName,e]}static from(e){return new fs(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])=>Ns.from(t))).map((e=>[e.getKey(),e])))])))).setDependentStatements(new Map(Object.entries(e.dependentStatements??{}))).setPosition(ms.from(e.position)).setComment(e.comment).setDescription(e.description)}}var _s={};t(_s,"StatementGroup",(()=>Ss));class Ss extends cs{static SCHEMA_NAME="StatementGroup";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(Ss.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["statementGroupName",S.ofString("statementGroupName")],["comment",S.ofString("comment")],["description",S.ofString("description")],["position",ms.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 Ss(e.statementGroupName,new Map(Object.entries(e.statements||{}).map((([e,t])=>[e,"true"==(""+t)?.toLowerCase()])))).setPosition(ms.from(e.position)).setComment(e.comment).setDescription(e.description)}}const Ms=(new S).setNamespace(a.SYSTEM).setName("FunctionDefinition").setProperties(new Map([["name",S.ofString("name")],["namespace",S.ofString("namespace")],["parameters",S.ofArray("parameters",y.SCHEMA)],["events",S.ofObject("events").setAdditionalProperties((new _).setSchemaValue(Y.SCHEMA))],["steps",S.ofObject("steps").setAdditionalProperties((new _).setSchemaValue(fs.SCHEMA))]]));Ms.getProperties()?.set("parts",S.ofArray("parts",Ms));class Os extends W{static SCHEMA=Ms;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 Os(e.name).setSteps(new Map(Object.values(e.steps??{}).filter((e=>!!e)).map((e=>[e.statementName,fs.from(e)])))).setStepGroups(new Map(Object.values(e.stepGroups??{}).filter((e=>!!e)).map((e=>[e.statementGroupName,Ss.from(e)])))).setParts(Array.from(e.parts??[]).filter((e=>!!e)).map((e=>Os.from(e)))).setVersion(e.version??1).setEvents(new Map(Object.values(e.events??{}).filter((e=>!!e)).map((e=>[e.name,Y.from(e)])))).setParameters(new Map(Object.values(e.parameters??{}).filter((e=>!!e)).map((e=>[e.parameterName,y.from(e)])))):new Os("unknown")}}var ws={};t(ws,"Argument",(()=>ds));class ds{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 ds(0,e,t)}}var Is={};e(Is,yr),e(Is,Ur),e(Is,Vr),e(Is,br),e(Is,xr);var Ps={};e(Ps,Ft),e(Ps,Bt),e(Ps,kt),e(Ps,jt),e(Ps,Wt),e(Ps,Jt),e(Ps,Qt),e(Ps,Gt),e(Ps,Zt),e(Ps,tr),e(Ps,nr),e(Ps,ar),e(Ps,or),e(Ps,ur),e(Ps,lr),e(Ps,mr),e(Ps,Tr),e(Ps,cr),e(Ps,Nr),e(Ps,Mr),e(Ps,_r),e(Ps,wr),e(Ps,Ir),e(Ps,Vt),e(module.exports,r),e(module.exports,U),e(module.exports,{}),e(module.exports,De),e(module.exports,V),e(module.exports,o),e(module.exports,Q),e(module.exports,Mt),e(module.exports,K),e(module.exports,ne),e(module.exports,ie),e(module.exports,ke),e(module.exports,z),e(module.exports,Xe),e(module.exports,bn),e(module.exports,Dn),e(module.exports,ht),e(module.exports,Bn),e(module.exports,kn),e(module.exports,jn),e(module.exports,Wn),e(module.exports,{}),e(module.exports,qn),e(module.exports,Qn),e(module.exports,is),e(module.exports,ns),e(module.exports,St),e(module.exports,Yr),e(module.exports,Fr),e(module.exports,Ct),e(module.exports,vt),e(module.exports,It),e(module.exports,wt),e(module.exports,yt),e(module.exports,{}),e(module.exports,q),e(module.exports,s),e(module.exports,Kn),e(module.exports,n),e(module.exports,Se),e(module.exports,he),e(module.exports,fe),e(module.exports,pe),e(module.exports,me),e(module.exports,de),e(module.exports,Oe),e(module.exports,J),e(module.exports,Ae),e(module.exports,O),e(module.exports,Te),e(module.exports,i),e(module.exports,h),e(module.exports,m),e(module.exports,R),e(module.exports,T),e(module.exports,A),e(module.exports,ae),e(module.exports,Ie),e(module.exports,Ln),e(module.exports,As),e(module.exports,M),e(module.exports,H),e(module.exports,gs),e(module.exports,Rs),e(module.exports,es),e(module.exports,D),e(module.exports,ps),e(module.exports,Ts),e(module.exports,{}),e(module.exports,_s),e(module.exports,X),e(module.exports,F),e(module.exports,d),e(module.exports,ws),e(module.exports,hs),e(module.exports,Fe),e(module.exports,k),e(module.exports,Is),e(module.exports,Ps),e(module.exports,$r);
|
|
2
2
|
//# sourceMappingURL=index.js.map
|