@fincity/kirun-js 1.5.2 → 1.6.3
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/json/schema/validator/ArrayContainsValidatorTest.ts +339 -0
- package/__tests__/engine/json/schema/validator/ArraySchemaAdapterTypeTest.ts +142 -0
- package/__tests__/engine/json/schema/validator/ArraySchemaTypeTest.ts +191 -0
- package/__tests__/engine/json/schema/validator/ArrayValidatorTest.ts +152 -0
- package/__tests__/engine/json/schema/validator/ObjectPropertiesTest.ts +23 -0
- package/__tests__/engine/json/schema/validator/ObjectValidatorTest.ts +280 -0
- package/__tests__/engine/json/schema/validator/SchemaAnyOfValidatorTest.ts +20 -3
- package/__tests__/engine/json/schema/validator/SchemaValidatorTest.ts +21 -5
- package/__tests__/engine/json/schema/validator/StringValidatorTest.ts +0 -2
- package/__tests__/engine/repository/RepositoryFilterTest.ts +39 -0
- package/__tests__/engine/runtime/KIRuntimeFunctionInFunction.ts +6 -0
- package/__tests__/engine/runtime/KIRuntimeMessagesTest.ts +179 -0
- package/__tests__/engine/runtime/KIRuntimeTest.ts +6 -0
- package/__tests__/indexTest.ts +12 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/module.js +1 -1
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +23 -12
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/engine/HybridRepository.ts +8 -0
- package/src/engine/Repository.ts +1 -0
- package/src/engine/function/system/Print.ts +1 -1
- package/src/engine/function/system/array/ArrayFunctionRepository.ts +10 -0
- package/src/engine/function/system/math/MathFunctionRepository.ts +10 -1
- package/src/engine/function/system/string/StringFunctionRepository.ts +10 -0
- package/src/engine/json/schema/Schema.ts +82 -32
- package/src/engine/json/schema/SchemaUtil.ts +6 -3
- package/src/engine/json/schema/array/ArraySchemaType.ts +13 -2
- package/src/engine/json/schema/validator/ArrayValidator.ts +135 -24
- package/src/engine/json/schema/validator/ObjectValidator.ts +9 -4
- package/src/engine/model/Event.ts +2 -2
- package/src/engine/model/FunctionDefinition.ts +3 -3
- package/src/engine/model/FunctionSignature.ts +6 -3
- package/src/engine/model/Statement.ts +4 -6
- package/src/engine/repository/KIRunFunctionRepository.ts +9 -0
- package/src/engine/repository/KIRunSchemaRepository.ts +8 -0
- package/src/engine/runtime/KIRuntime.ts +36 -48
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",(()=>v));var n={};t(n,"AdditionalPropertiesType",(()=>_)),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 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;Array.isArray(e)&&u.of(...S.fromListOfSchemas(e));let t=S.from(e);return t?u.of(t):void 0}}var A={};let l;var R;t(A,"SchemaType",(()=>l)),(R=l||(l={})).INTEGER="Integer",R.LONG="Long",R.FLOAT="Float",R.DOUBLE="Double",R.STRING="String",R.OBJECT="Object",R.ARRAY="Array",R.BOOLEAN="Boolean",R.NULL="Null";var g={};t(g,"TypeUtil",(()=>f));var T={};t(T,"MultipleType",(()=>h));var p={};t(p,"Type",(()=>m));class m{}class h extends m{constructor(e){super(),this.type=e instanceof h?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 c={};t(c,"SingleType",(()=>N));class N extends m{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 h(new Set(e))}static from(e){return"string"==typeof e?new N(l[e]):Array.isArray(e)?new h(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)return;const t=new _;return t.booleanValue=e.booleanValue,t.schemaValue=e.schemaValue,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("#/"))],["allOf",S.ofArray("allOf",S.ofRef("#/"))],["oneOf",S.ofArray("oneOf",S.ofRef("#/"))],["not",S.ofRef("#/")],["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("#/")))],["additionalProperties",(new S).setName("additionalProperty").setNamespace(a.SYSTEM).setAnyOf([S.ofBoolean("additionalProperty"),S.ofObject("additionalProperty").setRef("#/")]).setDefaultValue(!0)],["required",S.ofArray("required",S.ofString("required")).setDefaultValue([])],["propertyNames",S.ofRef("#/")],["minProperties",S.ofInteger("minProperties")],["maxProperties",S.ofInteger("maxProperties")],["patternProperties",S.of("patternProperties",l.OBJECT).setAdditionalProperties((new _).setSchemaValue(S.ofRef("#/")))],["items",(new S).setName("items").setAnyOf([S.ofRef("#/").setName("item"),S.ofArray("tuple",S.ofRef("#/"))])],["contains",S.ofRef("#/")],["minItems",S.ofInteger("minItems")],["maxItems",S.ofInteger("maxItems")],["uniqueItems",S.ofBoolean("uniqueItems")],["$defs",S.of("$defs",l.OBJECT).setAdditionalProperties((new _).setSchemaValue(S.ofRef("#/")))],["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.contains=S.from(e.contains),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 h(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.minItems=e.minItems,this.maxItems=e.maxItems,this.uniqueItems=e.uniqueItems,this.$defs=e.$defs?new Map(Array.from(e.$defs.entries()).map((e=>[e[0],new S(e[1])]))):void 0,this.permission=e.permission)}getTitle(){return this.getFullName()}getFullName(){return this.namespace&&"_"!=this.namespace?this.namespace+"."+this.name:this.name}get$defs(){return this.$defs}set$defs(e){return this.$defs=e,this}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getVersion(){return this.version}setVersion(e){return this.version=e,this}getRef(){return this.ref}setRef(e){return this.ref=e,this}getType(){return this.type}setType(e){return this.type=e,this}getAnyOf(){return this.anyOf}setAnyOf(e){return this.anyOf=e,this}getAllOf(){return this.allOf}setAllOf(e){return this.allOf=e,this}getOneOf(){return this.oneOf}setOneOf(e){return this.oneOf=e,this}getNot(){return this.not}setNot(e){return this.not=e,this}getDescription(){return this.description}setDescription(e){return this.description=e,this}getExamples(){return this.examples}setExamples(e){return this.examples=e,this}getDefaultValue(){return this.defaultValue}setDefaultValue(e){return this.defaultValue=e,this}getComment(){return this.comment}setComment(e){return this.comment=e,this}getEnums(){return this.enums}setEnums(e){return this.enums=e,this}getConstant(){return this.constant}setConstant(e){return this.constant=e,this}getPattern(){return this.pattern}setPattern(e){return this.pattern=e,this}getFormat(){return this.format}setFormat(e){return this.format=e,this}getMinLength(){return this.minLength}setMinLength(e){return this.minLength=e,this}getMaxLength(){return this.maxLength}setMaxLength(e){return this.maxLength=e,this}getMultipleOf(){return this.multipleOf}setMultipleOf(e){return this.multipleOf=e,this}getMinimum(){return this.minimum}setMinimum(e){return this.minimum=e,this}getMaximum(){return this.maximum}setMaximum(e){return this.maximum=e,this}getExclusiveMinimum(){return this.exclusiveMinimum}setExclusiveMinimum(e){return this.exclusiveMinimum=e,this}getExclusiveMaximum(){return this.exclusiveMaximum}setExclusiveMaximum(e){return this.exclusiveMaximum=e,this}getProperties(){return this.properties}setProperties(e){return this.properties=e,this}getAdditionalProperties(){return this.additionalProperties}setAdditionalProperties(e){return this.additionalProperties=e,this}getRequired(){return this.required}setRequired(e){return this.required=e,this}getPropertyNames(){return this.propertyNames}setPropertyNames(e){return this.propertyNames=e,this.propertyNames.type=new 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}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 P;var d;t(I,"ParameterType",(()=>P)),(d=P||(P={})).CONSTANT="CONSTANT",d.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=P.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=P.EXPRESSION){return[e,new y(e,t).setType(n).setVariableArgument(r)]}static of(e,t,r=!1,n=P.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??P.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]]);class v{find(e,t){if(a.SYSTEM==e)return x.get(t)}}var L={};function U(e){return[e.getSignature().getName(),e]}t(L,"KIRunFunctionRepository",(()=>Mn));var V={};t(V,"MapUtil",(()=>G)),t(V,"MapEntry",(()=>C));class G{static of(e,t,r,n,s,a,i,o,u,A,l,R,g,T,p,m,h,c,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(R)||_.set(l,R),E(g)||E(T)||_.set(g,T),E(p)||E(m)||_.set(p,m),E(h)||E(c)||_.set(h,c),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 C(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 C{constructor(e,t){this.k=e,this.v=t}}var D={};t(D,"EventResult",(()=>Y));var b={};t(b,"Event",(()=>F));class F{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(F.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 F)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 F.eventMapEntry(F.OUTPUT,e)}static eventMapEntry(e,t){return[e,new F(e,t)]}static from(e){return new F(e.name,new Map(Object.entries(e.parameters??{}).map((e=>{const t=S.from(e[1]);if(!t)throw new w("","Event expects a schema");return[e[0],t]}))))}}class Y{constructor(e,t){this.name=e,this.result=t}getName(){return this.name}setName(e){return this.name=e,this}getResult(){return this.result}setResult(e){return this.result=e,this}static outputOf(e){return Y.of(F.OUTPUT,e)}static of(e,t){return new Y(e,t)}}var B={};t(B,"FunctionOutput",(()=>$));var H={};t(H,"KIRuntimeException",(()=>k));class k extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class ${index=0;constructor(e){if(E(e))throw new k("Function output is generating null");Array.isArray(e)&&e.length&&e[0]instanceof Y?this.fo=e:(this.fo=[],this.generator=e)}next(){if(!this.generator)return this.index<this.fo.length?this.fo[this.index++]:void 0;const e=this.generator.next();return e&&this.fo.push(e),e}allResults(){return this.fo}}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(F.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 F(e[1])])))):this.name=e}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getParameters(){return this.parameters}setParameters(e){return this.parameters=e,this}getEvents(){return this.events}setEvents(e){return this.events=e,this}}var j={};t(j,"AbstractFunction",(()=>Pe));var q={};t(q,"SchemaValidator",(()=>Ie));var J={};t(J,"StringUtil",(()=>K));var z={};t(z,"StringFormatter",(()=>Q));class Q{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 K{constructor(){}static nthIndex(e,t,r=0,n){if(!e)throw new k("String cannot be null");if(r<0||r>=e.length)throw new k(Q.format("Cannot search from index : $",r));if(n<=0||n>e.length)throw new k(Q.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 Z={};t(Z,"SchemaUtil",(()=>ie));var ee={};t(ee,"Tuple2",(()=>te)),t(ee,"Tuple3",(()=>re)),t(ee,"Tuple4",(()=>ne));class te{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 re extends te{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 ne extends re{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 se={};t(se,"SchemaValidationException",(()=>ae));class ae 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 ie{static UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH="Unable to retrive schema from referenced path";static CYCLIC_REFERENCE_LIMIT_COUNTER=20;static getDefaultValue(e,t){if(e)return e.getConstant()?e.getConstant():e.getDefaultValue()?e.getDefaultValue():ie.getDefaultValue(ie.getSchemaFromRef(e,t,e.getRef()),t)}static getSchemaFromRef(e,t,r,n=0){if(++n==ie.CYCLIC_REFERENCE_LIMIT_COUNTER)throw new ae(r??"","Schema has a cyclic reference");if(!e||!r||K.isNullOrBlank(r))return;if(!r.startsWith("#")){var s=ie.resolveExternalSchema(e,t,r);s&&(e=s.getT1(),r=s.getT2())}let a=r.split("/");return 1===a.length?e:ie.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,ie.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,ie.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);if(!K.isNullOrBlank(i.getRef())&&(i=ie.getSchemaFromRef(i,t,i.getRef(),n),!i))throw new w(r,ie.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH)}return i}}static resolveExternalSchema(e,t,r){if(!t)return;let n=K.splitAtFirstOccurance(r??"","/");if(!n[0])return;let s=K.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 te(a,r);if(r="#/"+n[1],!a)throw new w(r,ie.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);return new te(a,r)}}constructor(){}}var oe={};t(oe,"AnyOfAllOfOneOfValidator",(()=>Ee));class Ee{static validate(e,t,r,n){let s=[];return t.getOneOf()&&!t.getOneOf()?Ee.oneOf(e,t,r,n,s):t.getAllOf()&&!t.getAllOf()?Ee.allOf(e,t,r,n,s):t.getAnyOf()&&!t.getAnyOf()&&Ee.anyOf(e,t,r,n,s),n}static anyOf(e,t,r,n,s){let a=!1;for(let i of t.getAnyOf()??[])try{Ee.validate(e,i,r,n),a=!0;break}catch(e){a=!1,s.push(e)}if(!a)throw new ae(Ie.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{Ee.validate(e,i,r,n),a++}catch(e){s.push(e)}if(a!==t.getAllOf()?.length)throw new ae(Ie.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{Ee.validate(e,i,r,n),a++}catch(e){s.push(e)}if(1!=a)throw new ae(Ie.path(e),0==a?"The value does not satisfy any schema":"The value satisfy more than one schema",s)}constructor(){}}var ue={};t(ue,"TypeValidator",(()=>we));var Ae={};t(Ae,"ArrayValidator",(()=>le));class le{static validate(e,t,r,n){if(E(n))throw new ae(Ie.path(e),"Expected an array but found null");if(!Array.isArray(n))throw new ae(Ie.path(e),n.toString()+" is not an Array");let s=n;return le.checkMinMaxItems(e,t,s),le.checkItems(e,t,r,s),le.checkUniqueItems(e,t,s),le.checkContains(e,t,r,s),n}static checkContains(e,t,r,n){if(!t.getContains())return;let s=!1;for(let a=0;a<n.length;a++){let i=e?[...e]:[];try{Ie.validate(i,t.getContains(),r,n[a]),s=!0;break}catch(e){s=!1}}if(!s)throw new ae(Ie.path(e),"None of the items are of type contains schema")}static checkUniqueItems(e,t,r){if(t.getUniqueItems()&&t.getUniqueItems()){if(new Set(r).size!==r.length)throw new ae(Ie.path(e),"Items on the array are not unique")}}static checkMinMaxItems(e,t,r){if(t.getMinItems()&&t.getMinItems()>r.length)throw new ae(Ie.path(e),"Array should have minimum of "+t.getMinItems()+" elements");if(t.getMaxItems()&&t.getMaxItems()<r.length)throw new ae(Ie.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=Ie.validate(a,s.getSingleSchema(),r,n[t]);n[t]=i}if(s.getTupleSchema()){if(s.getTupleSchema().length!==n.length)throw new ae(Ie.path(e),"Expected an array with only "+s.getTupleSchema().length+" but found "+n.length);for(let t=0;t<n.length;t++){let a=e?[...e]:[],i=Ie.validate(a,s.getTupleSchema()[t],r,n[t]);n[t]=i}}}constructor(){}}var Re={};t(Re,"BooleanValidator",(()=>ge));class ge{static validate(e,t,r){if(E(r))throw new ae(Ie.path(e),"Expected a boolean but found null");if("boolean"!=typeof r)throw new ae(Ie.path(e),r.toString()+" is not a boolean");return r}constructor(){}}var Te={};t(Te,"NullValidator",(()=>pe));class pe{static validate(e,t,r){if(r)throw new ae(Ie.path(e),"Expected a null but found "+r);return r}constructor(){}}var me={};t(me,"NumberValidator",(()=>he));class he{static validate(e,t,r,n){if(E(n))throw new ae(Ie.path(t),"Expected a number but found null");if("number"!=typeof n)throw new ae(Ie.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 ae(Ie.path(t),n+" is not a number of type "+e,r)}if(E(s)||(e==l.LONG||e==l.INTEGER)&&s!=n)throw new ae(Ie.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 ae(Ie.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 ae(Ie.path(e),r.toString()+" should be greater than or equal to "+t.getMinimum());if(t.getMaximum()&&he.numberCompare(n,t.getMaximum())>0)throw new ae(Ie.path(e),r.toString()+" should be less than or equal to "+t.getMaximum());if(t.getExclusiveMinimum()&&he.numberCompare(n,t.getExclusiveMinimum())<=0)throw new ae(Ie.path(e),r.toString()+" should be greater than "+t.getExclusiveMinimum());if(t.getExclusiveMaximum()&&he.numberCompare(n,t.getExclusiveMaximum())>0)throw new ae(Ie.path(e),r.toString()+" should be less than "+t.getExclusiveMaximum())}static numberCompare(e,t){return e-t}constructor(){}}var ce={};t(ce,"ObjectValidator",(()=>Ne));class Ne{static validate(e,t,r,n){if(E(n))throw new ae(Ie.path(e),"Expected an object but found null");if("object"!=typeof n||Array.isArray(n))throw new ae(Ie.path(e),n.toString()+" is not an Object");let s=n,a=new Set(Object.keys(s));Ne.checkMinMaxProperties(e,t,a),t.getPropertyNames()&&Ne.checkPropertyNameSchema(e,t,r,a),t.getRequired()&&Ne.checkRequired(e,t,s),t.getProperties()&&Ne.checkProperties(e,t,r,s,a),t.getPatternProperties()&&Ne.checkPatternProperties(e,t,r,s,a),t.getAdditionalProperties()&&Ne.checkAddtionalProperties(e,t,r,s,a)}static checkPropertyNameSchema(e,t,r,n){for(let s of Array.from(n.values()))try{Ie.validate(e,t.getPropertyNames(),r,s)}catch(t){throw new ae(Ie.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 ae(Ie.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=Ie.validate(s,a.getSchemaValue(),r,n[t]);n[t]=i}else if(!1===a.getBooleanValue()&&s.size)throw new ae(Ie.path(e),s.toString()+" are additional properties which are not allowed.")}static checkPatternProperties(e,t,r,n,s){const a=new Map;for(const e of Array.from(t.getPatternProperties().keys()))a.set(e,new RegExp(e));for(const i of Array.from(s.values())){const o=e?[...e]:[];for(const e of Array.from(a.entries()))if(e[1].test(i)){const a=Ie.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(E(t))continue;let i=e?[...e]:[],o=Ie.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 ae(Ie.path(e),"Object should have minimum of "+t.getMinProperties()+" properties");if(t.getMaxProperties()&&r.size>t.getMaxProperties())throw new ae(Ie.path(e),"Object can have maximum of "+t.getMaxProperties()+" properties")}constructor(){}}var fe={};t(fe,"StringValidator",(()=>Oe));var _e={};let Se;var Me;t(_e,"StringFormat",(()=>Se)),(Me=Se||(Se={})).DATETIME="DATETIME",Me.TIME="TIME",Me.DATE="DATE",Me.EMAIL="EMAIL",Me.REGEX="REGEX";class Oe{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 ae(Ie.path(e),"Expected a string but found "+r);if("string"!=typeof r)throw new ae(Ie.path(e),r.toString()+" is not String");t.getFormat()==Se.TIME?Oe.patternMatcher(e,t,r,Oe.TIME,"time pattern"):t.getFormat()==Se.DATE?Oe.patternMatcher(e,t,r,Oe.DATE,"date pattern"):t.getFormat()==Se.DATETIME?Oe.patternMatcher(e,t,r,Oe.DATETIME,"date time pattern"):t.getFormat()==Se.EMAIL?Oe.patternMatcher(e,t,r,Oe.EMAIL,"email pattern"):t.getPattern()&&Oe.patternMatcher(e,t,r,new RegExp(t.getPattern()),"pattern "+t.getPattern());let n=r.length;if(t.getMinLength()&&n<t.getMinLength())throw new ae(Ie.path(e),"Expected a minimum of "+t.getMinLength()+" characters");if(t.getMaxLength()&&n>t.getMaxLength())throw new ae(Ie.path(e),"Expected a maximum of "+t.getMaxLength()+" characters");return r}static patternMatcher(e,t,r,n,s){if(!n.test(r))throw new ae(Ie.path(e),r.toString()+" is not matched with the "+s)}constructor(){}}class we{static validate(e,t,r,n,s){if(t==l.STRING)Oe.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)ge.validate(e,r,s);else if(t==l.OBJECT)Ne.validate(e,r,n,s);else if(t==l.ARRAY)le.validate(e,r,n,s);else{if(t!=l.NULL)throw new ae(Ie.path(e),t+" is not a valid type.");pe.validate(e,r,s)}return s}constructor(){}}class Ie{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 ae(Ie.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 Ie.constantValidation(e,t,n);if(t.getEnums()&&!t.getEnums()?.length)return Ie.enumCheck(e,t,n);if(t.getFormat()&&E(t.getType()))throw new ae(this.path(e),"Type is missing in schema for declared "+t.getFormat()?.toString()+" format.");if(t.getType()&&Ie.typeValidation(e,t,r,n),!K.isNullOrBlank(t.getRef()))return Ie.validate(e,ie.getSchemaFromRef(e[0],r,t.getRef()),r,n);if((t.getOneOf()||t.getAllOf()||t.getAnyOf())&&Ee.validate(e,t,r,n),t.getNot()){let s=!1;try{Ie.validate(e,t.getNot(),r,n),s=!0}catch(e){s=!1}if(s)throw new ae(Ie.path(e),"Schema validated value in not condition.")}return n}static constantValidation(e,t,r){if(!t.getConstant().equals(r))throw new ae(Ie.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 ae(Ie.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{we.validate(e,i,t,r,n),s=!0;break}catch(e){s=!1,a.push(e)}if(!s)throw new ae(Ie.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 k(`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 te(a,Ie.validate(void 0,n.getSchema(),t,void 0));if(!n?.isVariableArgument())return new te(a,Ie.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]=Ie.validate(void 0,n.getSchema(),t,s[e]);return new te(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 k(`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 de extends Pe{static EVENT_INDEX_NAME="index";static EVENT_RESULT_NAME="result";static EVENT_INDEX=new F(F.OUTPUT,G.of(de.EVENT_INDEX_NAME,S.ofInteger(de.EVENT_INDEX_NAME)));static EVENT_RESULT_INTEGER=new F(F.OUTPUT,G.of(de.EVENT_RESULT_NAME,S.ofInteger(de.EVENT_RESULT_NAME)));static EVENT_RESULT_BOOLEAN=new F(F.OUTPUT,G.of(de.EVENT_RESULT_NAME,S.ofBoolean(de.EVENT_RESULT_NAME)));static EVENT_RESULT_ARRAY=new F(F.OUTPUT,G.of(de.EVENT_RESULT_NAME,S.ofArray(de.EVENT_RESULT_NAME,S.ofAny(de.EVENT_RESULT_NAME))));static EVENT_RESULT_EMPTY=new F(F.OUTPUT,G.of());static EVENT_RESULT_ANY=new F(F.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(de.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 ye extends de{constructor(){super("Add",[de.PARAMETER_ARRAY_SOURCE,de.PARAMETER_ARRAY_SECOND_SOURCE],de.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(de.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(de.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName());return t.splice(t.length,0,...r),new $([Y.outputOf(new Map([]))])}}class xe extends de{constructor(){super("AddFirst",[de.PARAMETER_ARRAY_SOURCE,de.PARAMETER_ANY_NOT_NULL],de.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(de.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(de.PARAMETER_ANY_NOT_NULL.getParameterName());if(0==t.length)return t.push(r),new $([Y.outputOf(new Map([]))]);t.push(r);let n=t.length-1;for(;n>0;){let e=t[n-1];t[n-1]=t[n],t[n--]=e}return new $([Y.outputOf(new Map([]))])}}var ve={};t(ve,"PrimitiveUtil",(()=>Ve));var Le={};t(Le,"ExecutionException",(()=>Ue));class Ue extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class Ve{static findPrimitiveNullAsBoolean(e){if(E(e))return new te(l.BOOLEAN,!1);let t=typeof e;if("object"===t)throw new Ue(Q.format("$ is not a primitive type",e));let r=e;return"boolean"===t?new te(l.BOOLEAN,r):"string"===t?new te(l.STRING,r):Ve.findPrimitiveNumberType(r)}static findPrimitive(e){if(E(e))return new te(l.NULL,void 0);let t=typeof e;if("object"===t)throw new Ue(Q.format("$ is not a primitive type",e));let r=e;return"boolean"===t?new te(l.BOOLEAN,r):"string"===t?new te(l.STRING,r):Ve.findPrimitiveNumberType(r)}static findPrimitiveNumberType(e){if(E(e)||Array.isArray(e)||"object"==typeof e)throw new Ue(Q.format("Unable to convert $ to a number.",e));let t=e;try{let e=t;return Number.isInteger(e)?new te(l.LONG,e):new te(l.DOUBLE,e)}catch(e){throw new Ue(Q.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 Ge extends de{constructor(){super("BinarySearch",[Ge.PARAMETER_ARRAY_SOURCE_PRIMITIVE,Ge.PARAMETER_INT_SOURCE_FROM,Ge.PARAMETER_FIND_PRIMITIVE,Ge.PARAMETER_INT_LENGTH],Ge.EVENT_INDEX)}async internalExecute(e){let t=e?.getArguments()?.get(Ge.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Ge.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(Ge.PARAMETER_FIND_PRIMITIVE.getParameterName()),s=e?.getArguments()?.get(Ge.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length||r<0||r>t.length)throw new k("Search source array cannot be empty");if(-1==s&&(s=t.length-r),s=r+s,s>t.length)throw new k("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==Ve.compare(t[e],n)){a=e;break}Ve.compare(t[e],n)>0?s=e-1:r=e+1}return new $([Y.outputOf(new Map([[Ge.EVENT_INDEX.getName(),a]]))])}}var Ce={};t(Ce,"ArrayUtil",(()=>De));class De{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 be extends de{constructor(){super("Compare",De.of(be.PARAMETER_ARRAY_SOURCE,be.PARAMETER_INT_SOURCE_FROM,be.PARAMETER_ARRAY_FIND,be.PARAMETER_INT_FIND_FROM,be.PARAMETER_INT_LENGTH),be.EVENT_RESULT_INTEGER)}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_ARRAY_FIND.getParameterName()),s=e?.getArguments()?.get(be.PARAMETER_INT_FIND_FROM.getParameterName()),a=e?.getArguments()?.get(be.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new k("Compare source array cannot be empty");if(0==n.length)throw new k("Compare find array cannot be empty");if(-1==a&&(a=t.length-r),r+a>t.length)throw new k(Q.format("Source array size $ is less than comparing size $",t.length,r+a));if(s+a>n.length)throw new k(Q.format("Find array size $ is less than comparing size $",n.length,s+a));return new $(De.of(Y.outputOf(G.of(be.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(Q.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 Fe extends de{constructor(){super("Copy",[Fe.PARAMETER_ARRAY_SOURCE,Fe.PARAMETER_INT_SOURCE_FROM,Fe.PARAMETER_INT_LENGTH,Fe.PARAMETER_BOOLEAN_DEEP_COPY],Fe.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(Fe.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Fe.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(Fe.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),r+n>t.length)throw new k(Q.format("Array has no elements from $ to $ as the array size is $",r,r+n,t.length));var s=e?.getArguments()?.get(Fe.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 $([Y.outputOf(G.of(Fe.EVENT_RESULT_NAME,a))])}}class Ye extends de{constructor(){super("Delete",[de.PARAMETER_ARRAY_SOURCE,de.PARAMETER_ANY_VAR_ARGS],de.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(Ye.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Ye.PARAMETER_ANY_VAR_ARGS.getParameterName());if(null==r)throw new k("The deletable var args are empty. So cannot be proceeded further.");if(0==t.length||0==r.length)throw new k("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!=Ve.compare(t[e],r[s])||n.add(t[e]);return s=t.filter((e=>!n.has(e))),t.splice(0,t.length,...s),new $([Y.outputOf(new Map([]))])}}class Be extends de{constructor(){super("DeleteFirst",[Be.PARAMETER_ARRAY_SOURCE],Be.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(Be.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new k("Given source array is empty");return t.shift(),new $([Y.outputOf(new Map([]))])}}class He extends de{constructor(){super("DeleteFrom",[He.PARAMETER_ARRAY_SOURCE,He.PARAMETER_INT_SOURCE_FROM,He.PARAMETER_INT_LENGTH],He.EVENT_RESULT_EMPTY)}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_INT_LENGTH.getParameterName());if(0==t.length)throw new k("There are no elements to be deleted");if(r>=t.length||r<0)throw new k("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 k("Requested length to be deleted is more than the size of array ");return t.splice(r,n),new $([Y.outputOf(new Map([]))])}}class ke extends de{constructor(){super("DeleteLast",[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 k("Given source array is empty");return t.pop(),new $([Y.outputOf(new Map([]))])}}class $e extends de{constructor(){super("Disjoint",[$e.PARAMETER_ARRAY_SOURCE,$e.PARAMETER_INT_SOURCE_FROM,$e.PARAMETER_ARRAY_SECOND_SOURCE,$e.PARAMETER_INT_SECOND_SOURCE_FROM,$e.PARAMETER_INT_LENGTH],$e.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get($e.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get($e.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get($e.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get($e.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get($e.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 k("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 $([Y.outputOf(new Map([[$e.EVENT_RESULT_ARRAY.getName(),u]]))])}}class Xe extends de{constructor(){super("Equals",[Xe.PARAMETER_ARRAY_SOURCE,Xe.PARAMETER_INT_SOURCE_FROM,Xe.PARAMETER_ARRAY_FIND,Xe.PARAMETER_INT_FIND_FROM,Xe.PARAMETER_INT_LENGTH],Xe.EVENT_RESULT_BOOLEAN)}async internalExecute(e){let t=new be,r=(await t.execute(e)).allResults()[0].getResult().get(Xe.EVENT_RESULT_NAME);return new $([Y.outputOf(G.of(Xe.EVENT_RESULT_NAME,0==r))])}}class We extends de{constructor(){super("Fill",[We.PARAMETER_ARRAY_SOURCE,We.PARAMETER_INT_SOURCE_FROM,We.PARAMETER_INT_LENGTH,We.PARAMETER_ANY],We.EVENT_RESULT_EMPTY)}async internalExecute(e){var t=e?.getArguments()?.get(We.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(We.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(We.PARAMETER_INT_LENGTH.getParameterName()),s=e?.getArguments()?.get(We.PARAMETER_ANY.getParameterName());if(r<0)throw new k(Q.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 $([Y.outputOf(G.of())])}}class je extends de{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 $([Y.outputOf(new Map([[je.EVENT_RESULT_INTEGER.getName(),0]]))]);if(n>t.length)throw new k("Given start point is more than the size of source");if(E(r))throw new k("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 k("Given length is more than the size of source");let i=0;for(let e=n;e<a&&e<t.length;e++)0==Ve.compare(t[e],r)&&i++;return new $([Y.outputOf(new Map([[je.EVENT_RESULT_INTEGER.getName(),i]]))])}}class qe extends de{constructor(){super("IndexOf",[qe.PARAMETER_ARRAY_SOURCE,qe.PARAMETER_ANY_NOT_NULL,qe.PARAMETER_INT_FIND_FROM],qe.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(qe.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(qe.PARAMETER_ANY_NOT_NULL.getParameterName());let n=e?.getArguments()?.get(qe.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new $([Y.outputOf(new Map([[qe.EVENT_RESULT_INTEGER.getName(),-1]]))]);if(n<0||n>t.length)throw new k("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==Ve.compare(t[e],r)){s=e;break}return new $([Y.outputOf(new Map([[qe.EVENT_RESULT_INTEGER.getName(),s]]))])}}class Je extends de{constructor(){super("IndexOfArray",[Je.PARAMETER_ARRAY_SOURCE,Je.PARAMETER_ARRAY_SECOND_SOURCE,Je.PARAMETER_INT_FIND_FROM],Je.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(Je.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Je.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(Je.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length||0==r.length)return new $([Y.outputOf(new Map([[Je.EVENT_RESULT_INTEGER.getName(),-1]]))]);if(n<0||n>t.length||t.length<r.length)throw new k("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==Ve.compare(t[e],r[n])){for(;n<s&&0==Ve.compare(t[e+n],r[n]);)n++;if(n==s){a=e;break}}}return new $([Y.outputOf(new Map([[Je.EVENT_RESULT_INTEGER.getName(),a]]))])}}class ze extends de{constructor(){super("LastIndexOf",[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 $([Y.outputOf(new Map([[ze.EVENT_RESULT_INTEGER.getName(),-1]]))]);if(n<0||n>t.length)throw new k("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==Ve.compare(t[e],r)){s=e;break}return new $([Y.outputOf(new Map([[ze.EVENT_RESULT_INTEGER.getName(),s]]))])}}class Qe extends de{constructor(){super("LastIndexOfArray",[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)return new $([Y.outputOf(new Map([[Qe.EVENT_RESULT_ARRAY.getName(),-1]]))]);if(n<0||n>t.length||r.length>t.length)throw new k("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==Ve.compare(t[e],r[n])){for(;n<s&&0==Ve.compare(t[e+n],r[n]);)n++;n==s&&(a=e)}}return new $([Y.outputOf(new Map([[Qe.EVENT_RESULT_INTEGER.getName(),a]]))])}}class Ke extends de{constructor(){super("Max",[Ke.PARAMETER_ARRAY_SOURCE_PRIMITIVE],Ke.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(Ke.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==t.length)throw new k("Search source array cannot be empty");let r=t[0];for(let e=1;e<t.length;e++){let n=t[e];Ve.comparePrimitive(r,n)>=0||(r=n)}return new $([Y.outputOf(new Map([[Ke.EVENT_RESULT_ANY.getName(),r]]))])}}class Ze extends de{constructor(){super("Min",[Ze.PARAMETER_ARRAY_SOURCE_PRIMITIVE],Ze.EVENT_RESULT_ANY)}async internalExecute(e){let t,r=e?.getArguments()?.get(Ze.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==r.length)throw new k("Search source array cannot be empty");for(let e=0;e<r.length;e++)E(r[e])||(void 0===t||Ve.comparePrimitive(r[e],t)<0)&&(t=r[e]);return new $([Y.outputOf(new Map([[Ze.EVENT_RESULT_ANY.getName(),t]]))])}}class et extends de{constructor(){super("MisMatch",[et.PARAMETER_ARRAY_SOURCE,et.PARAMETER_INT_FIND_FROM,et.PARAMETER_ARRAY_SECOND_SOURCE,et.PARAMETER_INT_SECOND_SOURCE_FROM,et.PARAMETER_INT_LENGTH],et.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(et.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(et.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(et.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(et.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(et.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 k("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 $([Y.outputOf(new Map([[et.EVENT_RESULT_INTEGER.getName(),E]]))])}}class tt extends de{constructor(){super("Reverse",[tt.PARAMETER_ARRAY_SOURCE,tt.PARAMETER_INT_SOURCE_FROM,tt.PARAMETER_INT_LENGTH],tt.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(tt.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(tt.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(tt.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),n>=t.length||n<0||r<0)throw new k("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 $([Y.outputOf(new Map([]))])}}class rt extends de{constructor(){super("Rotate",[rt.PARAMETER_ARRAY_SOURCE,rt.PARAMETER_ROTATE_LENGTH],rt.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(rt.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(rt.PARAMETER_ROTATE_LENGTH.getParameterName());if(0==t.length)return new $([Y.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 $([Y.outputOf(new Map([]))])}rotate(e,t,r){for(;t<r;){let n=e[t];e[t++]=e[r],e[r--]=n}}}class nt extends de{constructor(){super("Shuffle",[nt.PARAMETER_ARRAY_SOURCE],nt.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(nt.PARAMETER_ARRAY_SOURCE.getParameterName());if(t.length<=1)return new $([Y.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 $([Y.outputOf(new Map([]))])}}class st extends de{constructor(){super("Sort",[st.PARAMETER_ARRAY_SOURCE_PRIMITIVE,st.PARAMETER_INT_FIND_FROM,st.PARAMETER_INT_LENGTH,st.PARAMETER_BOOLEAN_ASCENDING],st.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(st.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName()),r=e?.getArguments()?.get(st.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(st.PARAMETER_INT_LENGTH.getParameterName()),s=e?.getArguments()?.get(st.PARAMETER_BOOLEAN_ASCENDING.getParameterName());if(0==t.length)return new $([Y.outputOf(new Map([[st.EVENT_RESULT_EMPTY.getName(),t]]))]);if(-1==n&&(n=t.length-r),r<0||r>=t.length||r+n>t.length)throw new k("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 $([Y.outputOf(new Map([[st.EVENT_RESULT_EMPTY.getName(),t]]))])}}class at extends de{constructor(){super("SubArray",[at.PARAMETER_ARRAY_SOURCE,at.PARAMETER_INT_FIND_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_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(at.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),n<=0)return new $([Y.outputOf(new Map([]))]);if(!(r>=0&&r<t.length)||r+n>t.length)throw new k("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 $([Y.outputOf(new Map([[at.EVENT_RESULT_ARRAY.getName(),s]]))])}}class it{static repoMap=G.ofArrayEntries(U(new ye),U(new xe),U(new Ge),U(new be),U(new Fe),U(new Ye),U(new Be),U(new He),U(new ke),U(new $e),U(new Xe),U(new We),U(new je),U(new qe),U(new Je),U(new ze),U(new Qe),U(new Ke),U(new Ze),U(new et),U(new tt),U(new rt),U(new nt),U(new st),U(new at));find(e,t){if(e==a.SYSTEM_ARRAY)return it.repoMap.get(t)}}var ot={};t(ot,"ContextElement",(()=>Et));class Et{static NULL=new Et(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 ut=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(Se.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,P.CONSTANT),y.ofEntry("schema",S.SCHEMA,!1,P.CONSTANT)])).setEvents(new Map([F.outputEventMapEntry(new Map)]));const At=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(Se.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,P.CONSTANT)])).setEvents(new Map([F.outputEventMapEntry(new Map([["value",S.ofAny("value")]]))]));var lt={};t(lt,"Expression",(()=>Pt));var Rt={};t(Rt,"LinkedList",(()=>pt));var gt={};function Tt(e,t){let r=new pt;r.push(e);let n=new pt;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(gt,"deepEqual",(()=>Tt));class pt{head=void 0;tail=void 0;length=0;constructor(e){if(e?.length){for(const t of e)if(this.head){const e=new mt(t,this.tail);this.tail.next=e,this.tail=e}else this.tail=this.head=new mt(t);this.length=e.length}}push(e){const t=new mt(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(Q.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 mt(e,this.head),this.head.next=this.tail):(this.tail=new mt(e,this.tail),this.tail.previous.next=this.tail):this.head=this.tail=new mt(e),this}map(e,t){let r=new pt,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(Tt(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 mt{constructor(e,t,r){this.value=e,this.next=r,this.previous=t}toString(){return""+this.value}}var ht={};t(ht,"StringBuilder",(()=>ct));class ct{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 k(`Index ${e} is greater than or equal to ${this.str.length}`)}substring(e,t){return this.str.substring(e,t)}}var Nt={};t(Nt,"ExpressionEvaluationException",(()=>ft));class ft extends Error{constructor(e,t,r){super(Q.format("$ : $",e,t)),this.cause=r}getCause(){return this.cause}}var _t={};t(_t,"ExpressionToken",(()=>St));class St{constructor(e){this.expression=e}getExpression(){return this.expression}toString(){return this.expression}}var Mt={};t(Mt,"ExpressionTokenValue",(()=>Ot));class Ot extends St{constructor(e,t){super(e),this.element=t}getTokenValue(){return this.element}getElement(){return this.element}toString(){return Q.format("$: $",this.expression,this.element)}}var wt={};t(wt,"Operation",(()=>It));class It{static MULTIPLICATION=new It("*");static DIVISION=new It("/");static INTEGER_DIVISION=new It("//");static MOD=new It("%");static ADDITION=new It("+");static SUBTRACTION=new It("-");static NOT=new It("not",void 0,!0);static AND=new It("and",void 0,!0);static OR=new It("or",void 0,!0);static LESS_THAN=new It("<");static LESS_THAN_EQUAL=new It("<=");static GREATER_THAN=new It(">");static GREATER_THAN_EQUAL=new It(">=");static EQUAL=new It("=");static NOT_EQUAL=new It("!=");static BITWISE_AND=new It("&");static BITWISE_OR=new It("|");static BITWISE_XOR=new It("^");static BITWISE_COMPLEMENT=new It("~");static BITWISE_LEFT_SHIFT=new It("<<");static BITWISE_RIGHT_SHIFT=new It(">>");static BITWISE_UNSIGNED_RIGHT_SHIFT=new It(">>>");static UNARY_PLUS=new It("UN: +","+");static UNARY_MINUS=new It("UN: -","-");static UNARY_LOGICAL_NOT=new It("UN: not","not");static UNARY_BITWISE_COMPLEMENT=new It("UN: ~","~");static ARRAY_OPERATOR=new It("[");static OBJECT_OPERATOR=new It(".");static NULLISH_COALESCING_OPERATOR=new It("??");static CONDITIONAL_TERNARY_OPERATOR=new It("?");static VALUE_OF=new Map([["MULTIPLICATION",It.MULTIPLICATION],["DIVISION",It.DIVISION],["INTEGER_DIVISON",It.INTEGER_DIVISION],["MOD",It.MOD],["ADDITION",It.ADDITION],["SUBTRACTION",It.SUBTRACTION],["NOT",It.NOT],["AND",It.AND],["OR",It.OR],["LESS_THAN",It.LESS_THAN],["LESS_THAN_EQUAL",It.LESS_THAN_EQUAL],["GREATER_THAN",It.GREATER_THAN],["GREATER_THAN_EQUAL",It.GREATER_THAN_EQUAL],["EQUAL",It.EQUAL],["NOT_EQUAL",It.NOT_EQUAL],["BITWISE_AND",It.BITWISE_AND],["BITWISE_OR",It.BITWISE_OR],["BITWISE_XOR",It.BITWISE_XOR],["BITWISE_COMPLEMENT",It.BITWISE_COMPLEMENT],["BITWISE_LEFT_SHIFT",It.BITWISE_LEFT_SHIFT],["BITWISE_RIGHT_SHIFT",It.BITWISE_RIGHT_SHIFT],["BITWISE_UNSIGNED_RIGHT_SHIFT",It.BITWISE_UNSIGNED_RIGHT_SHIFT],["UNARY_PLUS",It.UNARY_PLUS],["UNARY_MINUS",It.UNARY_MINUS],["UNARY_LOGICAL_NOT",It.UNARY_LOGICAL_NOT],["UNARY_BITWISE_COMPLEMENT",It.UNARY_BITWISE_COMPLEMENT],["ARRAY_OPERATOR",It.ARRAY_OPERATOR],["OBJECT_OPERATOR",It.OBJECT_OPERATOR],["NULLISH_COALESCING_OPERATOR",It.NULLISH_COALESCING_OPERATOR],["CONDITIONAL_TERNARY_OPERATOR",It.CONDITIONAL_TERNARY_OPERATOR]]);static UNARY_OPERATORS=new Set([It.ADDITION,It.SUBTRACTION,It.NOT,It.BITWISE_COMPLEMENT,It.UNARY_PLUS,It.UNARY_MINUS,It.UNARY_LOGICAL_NOT,It.UNARY_BITWISE_COMPLEMENT]);static ARITHMETIC_OPERATORS=new Set([It.MULTIPLICATION,It.DIVISION,It.INTEGER_DIVISION,It.MOD,It.ADDITION,It.SUBTRACTION]);static LOGICAL_OPERATORS=new Set([It.NOT,It.AND,It.OR,It.LESS_THAN,It.LESS_THAN_EQUAL,It.GREATER_THAN,It.GREATER_THAN_EQUAL,It.EQUAL,It.NOT_EQUAL,It.NULLISH_COALESCING_OPERATOR]);static BITWISE_OPERATORS=new Set([It.BITWISE_AND,It.BITWISE_COMPLEMENT,It.BITWISE_LEFT_SHIFT,It.BITWISE_OR,It.BITWISE_RIGHT_SHIFT,It.BITWISE_UNSIGNED_RIGHT_SHIFT,It.BITWISE_XOR]);static CONDITIONAL_OPERATORS=new Set([It.CONDITIONAL_TERNARY_OPERATOR]);static OPERATOR_PRIORITY=new Map([[It.UNARY_PLUS,1],[It.UNARY_MINUS,1],[It.UNARY_LOGICAL_NOT,1],[It.UNARY_BITWISE_COMPLEMENT,1],[It.ARRAY_OPERATOR,1],[It.OBJECT_OPERATOR,1],[It.MULTIPLICATION,2],[It.DIVISION,2],[It.INTEGER_DIVISION,2],[It.MOD,2],[It.ADDITION,3],[It.SUBTRACTION,3],[It.BITWISE_LEFT_SHIFT,4],[It.BITWISE_RIGHT_SHIFT,4],[It.BITWISE_UNSIGNED_RIGHT_SHIFT,4],[It.LESS_THAN,5],[It.LESS_THAN_EQUAL,5],[It.GREATER_THAN,5],[It.GREATER_THAN_EQUAL,5],[It.EQUAL,6],[It.NOT_EQUAL,6],[It.BITWISE_AND,7],[It.BITWISE_XOR,8],[It.BITWISE_OR,9],[It.AND,10],[It.OR,11],[It.NULLISH_COALESCING_OPERATOR,11],[It.CONDITIONAL_TERNARY_OPERATOR,12]]);static OPERATORS=new Set([...Array.from(It.ARITHMETIC_OPERATORS),...Array.from(It.LOGICAL_OPERATORS),...Array.from(It.BITWISE_OPERATORS),It.ARRAY_OPERATOR,It.OBJECT_OPERATOR,...Array.from(It.CONDITIONAL_OPERATORS)].map((e=>e.getOperator())));static OPERATORS_WITHOUT_SPACE_WRAP=new Set([...Array.from(It.ARITHMETIC_OPERATORS),...Array.from(It.LOGICAL_OPERATORS),...Array.from(It.BITWISE_OPERATORS),It.ARRAY_OPERATOR,It.OBJECT_OPERATOR,...Array.from(It.CONDITIONAL_OPERATORS)].filter((e=>!e.shouldBeWrappedInSpace())).map((e=>e.getOperator())));static OPERATION_VALUE_OF=new Map(Array.from(It.VALUE_OF.entries()).map((([e,t])=>[t.getOperator(),t])));static UNARY_MAP=new Map([[It.ADDITION,It.UNARY_PLUS],[It.SUBTRACTION,It.UNARY_MINUS],[It.NOT,It.UNARY_LOGICAL_NOT],[It.BITWISE_COMPLEMENT,It.UNARY_BITWISE_COMPLEMENT],[It.UNARY_PLUS,It.UNARY_PLUS],[It.UNARY_MINUS,It.UNARY_MINUS],[It.UNARY_LOGICAL_NOT,It.UNARY_LOGICAL_NOT],[It.UNARY_BITWISE_COMPLEMENT,It.UNARY_BITWISE_COMPLEMENT]]);static BIGGEST_OPERATOR_SIZE=Array.from(It.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 It.VALUE_OF.get(e)}toString(){return this.operator}}class Pt extends St{tokens=new pt;ops=new pt;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 ct(""),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 ft(this.expression,"Extra closing parenthesis found");case"]":throw new ft(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()==It.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()==It.ARRAY_OPERATOR&&(i=this.process(e,n,s),s=i.getT1(),a=i.getT2())}++s}if(t=n.toString(),!K.isNullOrBlank(t)){if(It.OPERATORS.has(t))throw new ft(this.expression,"Expression is ending with an operator");this.tokens.push(new St(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 ft(this.expression,"Missing string ending marker "+t);let a=new te(s,!1);return this.tokens.push(new Ot(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 Pt(t.toString())),t.setLength(0),new te(r,!1)}processOthers(e,t,r,n,s,a){let i=t-s;i=i<It.BIGGEST_OPERATOR_SIZE?i:It.BIGGEST_OPERATOR_SIZE;for(let e=i;e>0;e--){let t=this.expression.substring(s,s+e);if(It.OPERATORS_WITHOUT_SPACE_WRAP.has(t))return K.isNullOrBlank(n)||(this.tokens.push(new St(n)),a=!1),this.checkUnaryOperator(this.tokens,this.ops,It.OPERATION_VALUE_OF.get(t),a),a=!0,r.setLength(0),new te(s+e-1,a)}return r.append(e),new te(s,!1)}processTernaryOperator(e,t,r,n,s){if(s)throw new ft(this.expression,"Ternary operator is followed by an operator");""!=r.trim()&&(this.tokens.push(new Pt(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 ft(this.expression,"':' operater is missing");if(n>=e)throw new ft(this.expression,"Third part of the ternary expression is missing");for(;!this.ops.isEmpty()&&this.hasPrecedence(It.CONDITIONAL_TERNARY_OPERATOR,this.ops.peek());){let e=this.ops.pop();if(It.UNARY_OPERATORS.has(e)){const t=this.tokens.pop();this.tokens.push(new Pt("",t,void 0,e))}else{let t=this.tokens.pop(),r=this.tokens.pop();this.tokens.push(new Pt("",r,t,e))}}this.ops.push(It.CONDITIONAL_TERNARY_OPERATOR),this.tokens.push(new Pt(this.expression.substring(o,n-1)));const E=this.expression.substring(n);if(""===E.trim())throw new ft(this.expression,"Third part of the ternary expression is missing");return this.tokens.push(new Pt(E)),e-1}processSubExpression(e,t,r,n,s){if(It.OPERATORS.has(r))this.checkUnaryOperator(this.tokens,this.ops,It.OPERATION_VALUE_OF.get(r),s),t.setLength(0);else if(!K.isNullOrBlank(r))throw new ft(this.expression,Q.format("Unkown token : $ found.",r));let a=1;const i=new ct;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 ft(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 Pt(i.toString().trim())),n}processTokenSepearator(e,t,r){return K.isNullOrBlank(t)||(It.OPERATORS.has(t)?(this.checkUnaryOperator(this.tokens,this.ops,It.OPERATION_VALUE_OF.get(t),r),r=!0):(this.tokens.push(new St(t)),r=!1)),e.setLength(0),r}checkUnaryOperator(e,t,r,n){if(r)if(n||e.isEmpty()){if(!It.UNARY_OPERATORS.has(r))throw new ft(this.expression,Q.format("Extra operator $ found.",r));{const e=It.UNARY_MAP.get(r);e&&t.push(e)}}else{for(;!t.isEmpty()&&this.hasPrecedence(r,t.peek());){let r=t.pop();if(It.UNARY_OPERATORS.has(r)){let t=e.pop();e.push(new Pt("",t,void 0,r))}else{let t=e.pop(),n=e.pop();e.push(new Pt("",n,t,r))}}t.push(r)}}hasPrecedence(e,t){let r=It.OPERATOR_PRIORITY.get(e),n=It.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 ct,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 Pt?n[t].toString():n[t]).append(")"),t++;else if(r[s]==It.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 dt={};t(dt,"ExpressionEvaluator",(()=>Hr));var yt={};t(yt,"LogicalNullishCoalescingOperator",(()=>Lt));var xt={};t(xt,"BinaryOperator",(()=>vt));class vt{nullCheck(e,t,r){if(E(e)||E(t))throw new Ue(Q.format("$ cannot be applied to a null value",r.getOperatorName()))}}class Lt extends vt{apply(e,t){return E(e)?t:e}}var Ut={};t(Ut,"ArithmeticAdditionOperator",(()=>Vt));class Vt extends vt{apply(e,t){return this.nullCheck(e,t,It.ADDITION),e+t}}var Gt={};t(Gt,"ArithmeticDivisionOperator",(()=>Ct));class Ct extends vt{apply(e,t){return this.nullCheck(e,t,It.DIVISION),e/t}}var Dt={};t(Dt,"ArithmeticIntegerDivisionOperator",(()=>bt));class bt extends vt{apply(e,t){return this.nullCheck(e,t,It.DIVISION),Math.floor(e/t)}}var Ft={};t(Ft,"ArithmeticModulusOperator",(()=>Yt));class Yt extends vt{apply(e,t){return this.nullCheck(e,t,It.MOD),e%t}}var Bt={};t(Bt,"ArithmeticMultiplicationOperator",(()=>Ht));class Ht extends vt{apply(e,t){this.nullCheck(e,t,It.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 kt={};t(kt,"ArithmeticSubtractionOperator",(()=>$t));class $t extends vt{apply(e,t){return this.nullCheck(e,t,It.SUBTRACTION),e-t}}var Xt={};t(Xt,"ArrayOperator",(()=>Wt));class Wt extends vt{apply(e,t){if(!e)throw new Ue("Cannot apply array operator on a null value");if(!t)throw new Ue("Cannot retrive null index value");if(!Array.isArray(e)&&"string"!=typeof e)throw new Ue(Q.format("Cannot retrieve value from a primitive value $",e));if(t>=e.length)throw new Ue(Q.format("Cannot retrieve index $ from the array of length $",t,e.length));return e[t]}}var jt={};t(jt,"BitwiseAndOperator",(()=>qt));class qt extends vt{apply(e,t){return this.nullCheck(e,t,It.BITWISE_AND),e&t}}var Jt={};t(Jt,"BitwiseLeftShiftOperator",(()=>zt));class zt extends vt{apply(e,t){return this.nullCheck(e,t,It.BITWISE_LEFT_SHIFT),e<<t}}var Qt={};t(Qt,"BitwiseOrOperator",(()=>Kt));class Kt extends vt{apply(e,t){return this.nullCheck(e,t,It.BITWISE_OR),e|t}}var Zt={};t(Zt,"BitwiseRightShiftOperator",(()=>er));class er extends vt{apply(e,t){return this.nullCheck(e,t,It.BITWISE_RIGHT_SHIFT),e>>t}}var tr={};t(tr,"BitwiseUnsignedRightShiftOperator",(()=>rr));class rr extends vt{apply(e,t){return this.nullCheck(e,t,It.BITWISE_UNSIGNED_RIGHT_SHIFT),e>>>t}}var nr={};t(nr,"BitwiseXorOperator",(()=>sr));class sr extends vt{apply(e,t){return this.nullCheck(e,t,It.BITWISE_XOR),e^t}}var ar={};t(ar,"LogicalAndOperator",(()=>ir));class ir extends vt{apply(e,t){const r=Ve.findPrimitiveNullAsBoolean(e),n=Ve.findPrimitiveNullAsBoolean(t);if(r.getT1()!=l.BOOLEAN)throw new Ue(Q.format("Boolean value expected but found $",r.getT2()));if(n.getT1()!=l.BOOLEAN)throw new Ue(Q.format("Boolean value expected but found $",n.getT2()));return r.getT2()&&n.getT2()}}var or={};t(or,"LogicalEqualOperator",(()=>Er));class Er extends vt{apply(e,t){return Tt(e,t)}}var ur={};t(ur,"LogicalGreaterThanEqualOperator",(()=>Ar));class Ar extends vt{apply(e,t){const r=Ve.findPrimitiveNullAsBoolean(e),n=Ve.findPrimitiveNullAsBoolean(t);if(r.getT1()==l.BOOLEAN||n.getT1()==l.BOOLEAN)throw new Ue(Q.format("Cannot compare >= with the values $ and $",r.getT2(),n.getT2()));return r.getT2()>=n.getT2()}}var lr={};t(lr,"LogicalGreaterThanOperator",(()=>Rr));class Rr extends vt{apply(e,t){const r=Ve.findPrimitiveNullAsBoolean(e),n=Ve.findPrimitiveNullAsBoolean(t);if(r.getT1()==l.BOOLEAN||n.getT1()==l.BOOLEAN)throw new Ue(Q.format("Cannot compare > with the values $ and $",r.getT2(),n.getT2()));return r.getT2()>n.getT2()}}var gr={};t(gr,"LogicalLessThanEqualOperator",(()=>Tr));class Tr extends vt{apply(e,t){const r=Ve.findPrimitiveNullAsBoolean(e),n=Ve.findPrimitiveNullAsBoolean(t);if(r.getT1()==l.BOOLEAN||n.getT1()==l.BOOLEAN)throw new Ue(Q.format("Cannot compare <= with the values $ and $",r.getT2(),n.getT2()));return r.getT2()<=n.getT2()}}var pr={};t(pr,"LogicalLessThanOperator",(()=>mr));class mr extends vt{apply(e,t){const r=Ve.findPrimitiveNullAsBoolean(e),n=Ve.findPrimitiveNullAsBoolean(t);if(r.getT1()==l.BOOLEAN||n.getT1()==l.BOOLEAN)throw new Ue(Q.format("Cannot compare < with the values $ and $",r.getT2(),n.getT2()));return r.getT2()<n.getT2()}}var hr={};t(hr,"LogicalNotEqualOperator",(()=>cr));class cr extends vt{apply(e,t){return!Tt(e,t)}}var Nr={};t(Nr,"LogicalOrOperator",(()=>fr));class fr extends vt{apply(e,t){const r=Ve.findPrimitiveNullAsBoolean(e),n=Ve.findPrimitiveNullAsBoolean(t);if(r.getT1()!=l.BOOLEAN)throw new Ue(Q.format("Boolean value expected but found $",r.getT2()));if(n.getT1()!=l.BOOLEAN)throw new Ue(Q.format("Boolean value expected but found $",n.getT2()));return r.getT2()||n.getT2()}}var _r={};t(_r,"ObjectOperator",(()=>Sr));class Sr extends vt{apply(e,t){if(!e)throw new Ue("Cannot apply array operator on a null value");if(!t)throw new Ue("Cannot retrive null property value");const r=typeof e;if(!Array.isArray(e)&&"string"!=r&&"object"!=r)throw new Ue(Q.format("Cannot retrieve value from a primitive value $",e));return e[t]}}var Mr={};t(Mr,"ArithmeticUnaryMinusOperator",(()=>Ir));var Or={};t(Or,"UnaryOperator",(()=>wr));class wr{nullCheck(e,t){if(E(e))throw new Ue(Q.format("$ cannot be applied to a null value",t.getOperatorName()))}}class Ir extends wr{apply(e){return this.nullCheck(e,It.UNARY_MINUS),Ve.findPrimitiveNumberType(e),-e}}var Pr={};t(Pr,"ArithmeticUnaryPlusOperator",(()=>dr));class dr extends wr{apply(e){return this.nullCheck(e,It.UNARY_PLUS),Ve.findPrimitiveNumberType(e),e}}var yr={};t(yr,"BitwiseComplementOperator",(()=>xr));class xr extends wr{apply(e){this.nullCheck(e,It.UNARY_BITWISE_COMPLEMENT);let t=Ve.findPrimitiveNumberType(e);if(t.getT1()!=l.INTEGER&&t.getT1()!=l.LONG)throw new Ue(Q.format("Unable to apply bitwise operator on $",e));return~e}}var vr={};t(vr,"LogicalNotOperator",(()=>Lr));class Lr extends wr{apply(e){return!e&&""!==e}}var Ur={};t(Ur,"LiteralTokenValueExtractor",(()=>Dr));var Vr={};t(Vr,"TokenValueExtractor",(()=>Gr));class Gr{static REGEX_SQUARE_BRACKETS=/[\[\]]/;static REGEX_DOT=/\./;getValue(e){let t=this.getPrefix();if(!e.startsWith(t))throw new k(Q.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(Gr.REGEX_SQUARE_BRACKETS).map((e=>e.trim())).filter((e=>!K.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(Array.isArray(s)){if("length"===n)return s.length;try{let e=parseInt(n);if(isNaN(e))throw new Error(Q.format("$ is not a number",e));if(e>=s.length)return;return s[e]}catch(t){throw new ft(e,Q.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 ft(e,Q.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(Q.format("$ is not a number",t));if(!Array.isArray(s))throw new ft(e,Q.format("Expecting an array with index $ while processing the expression",t,e));if(t>=s.length)return;return s[t]}catch(t){throw new ft(e,Q.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 ft(e,Q.format("Unable to retrive $ from $ in the path $",t[r],n.toString(),e))}}const Cr=new Map([["true",!0],["false",!1],["null",void 0],["undefined",void 0]]);class Dr extends Gr{static INSTANCE=new Dr;getValueInternal(e){if(!K.isNullOrBlank(e))return e=e.trim(),Cr.has(e)?Cr.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 ft(e,Q.format("Unable to parse the literal or expression $",e),t)}}processString(e){if(!e.endsWith('"'))throw new ft(e,Q.format("String literal $ is not closed properly",e));return e.substring(1,e.length-1)}getPrefix(){return""}}var br={},Fr={};t(Fr,"ConditionalTernaryOperator",(()=>Yr));class Yr extends class{nullCheck(e,t,r,n){if(E(e)||E(t)||E(r))throw new Ue(Q.format("$ cannot be applied to a null value",n.getOperatorName()))}}{apply(e,t,r){return e?t:r}}e(br,Fr);class Br extends Gr{static PREFIX="_internal.";values=new Map;addValue(e,t){this.values.set(e,t)}getValueInternal(e){let t=e.split(Gr.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 Br.PREFIX}}class Hr{static UNARY_OPERATORS_MAP=new Map([[It.UNARY_BITWISE_COMPLEMENT,new xr],[It.UNARY_LOGICAL_NOT,new Lr],[It.UNARY_MINUS,new Ir],[It.UNARY_PLUS,new dr]]);static TERNARY_OPERATORS_MAP=new Map([[It.CONDITIONAL_TERNARY_OPERATOR,new Yr]]);static BINARY_OPERATORS_MAP=new Map([[It.ADDITION,new Vt],[It.DIVISION,new Ct],[It.INTEGER_DIVISION,new bt],[It.MOD,new Yt],[It.MULTIPLICATION,new Ht],[It.SUBTRACTION,new $t],[It.BITWISE_AND,new qt],[It.BITWISE_LEFT_SHIFT,new zt],[It.BITWISE_OR,new Kt],[It.BITWISE_RIGHT_SHIFT,new er],[It.BITWISE_UNSIGNED_RIGHT_SHIFT,new rr],[It.BITWISE_XOR,new sr],[It.AND,new ir],[It.EQUAL,new Er],[It.GREATER_THAN,new Rr],[It.GREATER_THAN_EQUAL,new Ar],[It.LESS_THAN,new mr],[It.LESS_THAN_EQUAL,new Tr],[It.OR,new fr],[It.NOT_EQUAL,new cr],[It.NULLISH_COALESCING_OPERATOR,new Lt],[It.ARRAY_OPERATOR,new Wt],[It.OBJECT_OPERATOR,new Sr]]);static UNARY_OPERATORS_MAP_KEY_SET=new Set(Hr.UNARY_OPERATORS_MAP.keys());internalTokenValueExtractor=new Br;constructor(e){e instanceof Pt?(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 pt;for(;n<e.length-1;){if("{"==e.charAt(n)&&"{"==e.charAt(n+1))0==r&&s.push(new te(n+2,-1)),r++,n++;else if("}"==e.charAt(n)&&"}"==e.charAt(n+1)){if(r--,r<0)throw new ft(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 te(a,new Pt(a))}replaceNestingExpression(e,t,r){let n=e;for(var s of r.toArray()){if(-1==s.getT2())throw new ft(e,"Expecting }} nesting path operator to be closed");let r=new Hr(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 Pt(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(Hr.UNARY_OPERATORS_MAP_KEY_SET.has(e))n.push(this.applyUnaryOperation(e,this.getValueFromToken(t,o)));else if(e==It.OBJECT_OPERATOR||e==It.ARRAY_OPERATOR)this.processObjectOrArrayOperator(t,r,n,e,o);else if(e==It.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 Ue(Q.format("Expression : $ evaluated to null",e));if(1!=n.size())throw new Ue(Q.format("Expression : $ evaluated multiple values $",e,n));const o=n.get(0);if(o instanceof Ot)return o.getElement();if(!(o instanceof Pt))return this.getValueFromToken(t,o);throw new Ue(Q.format("Expression : $ evaluated to $",e,n.get(0)))}processObjectOrArrayOperator(e,t,r,n,s){const a=new pt,i=new pt;if(!n||!s)return;do{i.push(n),s instanceof Pt?a.push(new Ot(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==It.OBJECT_OPERATOR||n==It.ARRAY_OPERATOR);s&&(s instanceof Pt?a.push(new Ot(s.toString(),this.evaluateExpression(s,e))):a.push(s)),n&&t.push(n);let o=a.pop();if(o instanceof Ot&&"object"==typeof o.getTokenValue()){const e=(new Date).getTime()+""+Math.round(1e3*Math.random());this.internalTokenValueExtractor.addValue(e,o.getTokenValue()),o=new St(Br.PREFIX+e)}let E=new ct(o instanceof Ot?o.getTokenValue():o.toString());for(;!a.isEmpty();)o=a.pop(),n=i.pop(),E.append(n.getOperator()).append(o instanceof Ot?o.getTokenValue():o.toString()),n==It.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 Ot(u,this.getValue(u,e)));else{let e;try{e=Dr.INSTANCE.getValue(u)}catch(t){e=u}r.push(new Ot(u,e))}}applyTernaryOperation(e,t,r,n){let s=Hr.TERNARY_OPERATORS_MAP.get(e);if(!s)throw new ft(this.expression,Q.format("No operator found to evaluate $",this.getExpression()));return new Ot(e.toString(),s.apply(t,r,n))}applyBinaryOperation(e,t,r){let n=typeof t,s=typeof r,a=Hr.BINARY_OPERATORS_MAP.get(e);if(("object"===n||"object"===s)&&e!==It.EQUAL&&e!==It.NOT_EQUAL&&e!==It.NULLISH_COALESCING_OPERATOR)throw new ft(this.expression,Q.format("Cannot evaluate expression $ $ $",t,e.getOperator(),r));if(!a)throw new ft(this.expression,Q.format("No operator found to evaluate $ $ $",t,e.getOperator(),r));return new Ot(e.toString(),a.apply(t,r))}applyUnaryOperation(e,t){if("object"===typeof t||Array.isArray(t))throw new ft(this.expression,Q.format("The operator $ cannot be applied to $",e.getOperator(),t));let r=Hr.UNARY_OPERATORS_MAP.get(e);if(!r)throw new ft(this.expression,Q.format("No Unary operator $ is found to apply on $",e.getOperator(),t));return new Ot(e.toString(),r.apply(t))}getValueFromToken(e,t){return t instanceof Pt?this.evaluateExpression(t,e):t instanceof Ot?t.getElement():this.getValue(t.getExpression(),e)}getValue(e,t){if(e.length<=5)return Dr.INSTANCE.getValue(e);const r=e.substring(0,e.indexOf(".")+1);return(t.get(r)??Dr.INSTANCE).getValue(e)}}const kr=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,P.CONSTANT),y.ofEntry("value",S.ofAny("value"))])).setEvents(new Map([F.outputEventMapEntry(new Map)]));const $r=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([F.outputEventMapEntry(new Map)]));class Xr extends Pe{static CONDITION="condition";static SIGNATURE=new W("If").setNamespace(a.SYSTEM).setParameters(new Map([y.ofEntry(Xr.CONDITION,S.of(Xr.CONDITION,l.BOOLEAN))])).setEvents(new Map([F.eventMapEntry(F.TRUE,new Map),F.eventMapEntry(F.FALSE,new Map),F.outputEventMapEntry(new Map)]));getSignature(){return Xr.SIGNATURE}async internalExecute(e){var t=e.getArguments()?.get(Xr.CONDITION);return new $([Y.of(t?F.TRUE:F.FALSE,new Map),Y.outputOf(new Map)])}}const Wr=new W("CountLoop").setNamespace(a.SYSTEM_LOOP).setParameters(new Map([y.ofEntry("count",S.of("count",l.INTEGER))])).setEvents(new Map([F.eventMapEntry(F.ITERATION,new Map([["index",S.of("index",l.INTEGER)]])),F.outputEventMapEntry(new Map([["value",S.of("value",l.INTEGER)]]))]));const jr=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([F.eventMapEntry(F.ITERATION,new Map([["index",S.of("index",l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE)]])),F.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([F.outputEventMapEntry(new Map([["value",S.ofNumber("value")]]))]));const Jr=[()=>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(Jr[r-1]()).setEvents(new Map([F.outputEventMapEntry(new Map([["value",(new S).setType(f.of(...n)).setName("value")]]))]))}getSignature(){return this.signature}async internalExecute(e){let t,r=Ve.findPrimitiveNumberType(e.getArguments()?.get(1==this.parametersNumber?"value":"value1")).getT2();return 2==this.parametersNumber&&(t=Ve.findPrimitiveNumberType(e.getArguments()?.get("value2")).getT2()),new $([Y.outputOf(new Map([["value",this.mathFunction.call(this,r,t)]]))])}}class Qr 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([F.outputEventMapEntry(new Map([["value",(new S).setType(f.of(l.DOUBLE)).setName("value")]]))]));constructor(){super()}getSignature(){return Qr.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get("value");return new $([Y.outputOf(new Map([["value",Math.sqrt(t.reduce(((e,t)=>e+t*t),0))]]))])}}const Kr=new W("Maximum").setNamespace(a.MATH).setParameters(new Map([["value",new y("value",S.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([F.outputEventMapEntry(new Map([["value",S.ofNumber("value")]]))]));const Zr=new W("Minimum").setNamespace(a.MATH).setParameters(new Map([["value",new y("value",S.ofNumber("value")).setVariableArgument(!0)]])).setEvents(new Map([F.outputEventMapEntry(new Map([["value",S.ofNumber("value")]]))]));class en extends Pe{static SIGNATURE=new W("Random").setNamespace(a.MATH).setEvents(new Map([F.outputEventMapEntry(G.of("value",S.ofDouble("value")))]));getSignature(){return en.SIGNATURE}async internalExecute(e){return new $([Y.outputOf(new Map([["value",Math.random()]]))])}}class tn extends Pe{static MIN_VALUE="minValue";static MAX_VALUE="maxValue";static VALUE="value";static SIGNATURE=new W("RandomFloat").setParameters(G.of(tn.MIN_VALUE,y.of(tn.MIN_VALUE,S.ofFloat(tn.MIN_VALUE).setDefaultValue(0)),tn.MAX_VALUE,y.of(tn.MAX_VALUE,S.ofFloat(tn.MAX_VALUE).setDefaultValue(2147483647)))).setNamespace(a.MATH).setEvents(new Map([F.outputEventMapEntry(G.of(tn.VALUE,S.ofFloat(tn.VALUE)))]));getSignature(){return tn.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(tn.MIN_VALUE),r=e.getArguments()?.get(tn.MAX_VALUE),n=Math.random()*(r-t)+t;return new $([Y.outputOf(new Map([[tn.VALUE,n]]))])}}class rn extends Pe{static MIN_VALUE="minValue";static MAX_VALUE="maxValue";static VALUE="value";static SIGNATURE=new W("RandomInt").setParameters(G.of(rn.MIN_VALUE,y.of(rn.MIN_VALUE,S.ofInteger(rn.MIN_VALUE).setDefaultValue(0)),rn.MAX_VALUE,y.of(rn.MAX_VALUE,S.ofInteger(rn.MAX_VALUE).setDefaultValue(2147483647)))).setNamespace(a.MATH).setEvents(new Map([F.outputEventMapEntry(G.of(rn.VALUE,S.ofInteger(rn.VALUE)))]));getSignature(){return rn.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(rn.MIN_VALUE),r=e.getArguments()?.get(rn.MAX_VALUE),n=Math.floor(Math.random()*(r-t)+t);return new $([Y.outputOf(new Map([[rn.VALUE,n]]))])}}const nn={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 $([Y.outputOf(new Map([["value",t.reduce(((e,t)=>e+t),0)]]))])}},Hypotenuse:new Qr,Maximum:new class extends Pe{getSignature(){return Kr}async internalExecute(e){let t=e.getArguments()?.get("value");return new $([Y.outputOf(new Map([["value",t.reduce(((e,t)=>!e&&0!==e||t>e?t:e))]]))])}},Minimum:new class extends Pe{getSignature(){return Zr}async internalExecute(e){let t=e.getArguments()?.get("value");return new $([Y.outputOf(new Map([["value",t.reduce(((e,t)=>!e&&0!==e||t<e?t:e))]]))])}},Random:new en,RandomFloat:new tn,RandomInt:new rn};class sn{find(e,t){if(e==a.MATH)return nn[t]}}class an extends Pe{static VALUES="values";static SIGNATURE=new W("Print").setNamespace(a.SYSTEM).setParameters(new Map([y.ofEntry(an.VALUES,S.ofAny(an.VALUES),!0)]));getSignature(){return an.SIGNATURE}async internalExecute(e){var t=e.getArguments()?.get(an.VALUES);return console.log(...t),new $([Y.outputOf(new Map)])}}class on 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(on.PARAMETER_STRING_NAME,S.ofString(on.PARAMETER_STRING_NAME));static PARAMETER_SECOND_STRING=new y(on.PARAMETER_SECOND_STRING_NAME,S.ofString(on.PARAMETER_SECOND_STRING_NAME));static PARAMETER_THIRD_STRING=new y(on.PARAMETER_THIRD_STRING_NAME,S.ofString(on.PARAMETER_THIRD_STRING_NAME));static PARAMETER_INDEX=new y(on.PARAMETER_INDEX_NAME,S.ofInteger(on.PARAMETER_INDEX_NAME));static PARAMETER_SECOND_INDEX=new y(on.PARAMETER_SECOND_INDEX_NAME,S.ofInteger(on.PARAMETER_SECOND_INDEX_NAME));static PARAMETER_SEARCH_STRING=new y(on.PARAMETER_SEARCH_STRING_NAME,S.ofString(on.PARAMETER_STRING_NAME));static EVENT_STRING=new F(F.OUTPUT,G.of(on.EVENT_RESULT_NAME,S.ofString(on.EVENT_RESULT_NAME)));static EVENT_BOOLEAN=new F(F.OUTPUT,G.of(on.EVENT_RESULT_NAME,S.ofBoolean(on.EVENT_RESULT_NAME)));static EVENT_INT=new F(F.OUTPUT,G.of(on.EVENT_RESULT_NAME,S.ofInteger(on.EVENT_RESULT_NAME)));static EVENT_ARRAY=new F(F.OUTPUT,G.of(on.EVENT_RESULT_NAME,S.ofArray(on.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 on{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(on.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(on.PARAMETER_SEARCH_STRING_NAME);return new $([Y.outputOf(G.of(on.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,on.EVENT_BOOLEAN,on.PARAMETER_STRING,on.PARAMETER_SEARCH_STRING)]}static ofEntryAsStringAndIntegerStringOutput(e,t){return[e,new class extends on{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(on.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(on.PARAMETER_INDEX_NAME);return new $([Y.outputOf(G.of(on.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,on.EVENT_STRING,on.PARAMETER_STRING,on.PARAMETER_INDEX)]}static ofEntryAsStringIntegerOutput(e,t){return[e,new class extends on{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(on.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(on.PARAMETER_SEARCH_STRING_NAME);return new $([Y.outputOf(G.of(on.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,on.EVENT_INT,on.PARAMETER_STRING,on.PARAMETER_SEARCH_STRING)]}static ofEntryString(e,t){return[e,new class extends on{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(on.PARAMETER_STRING_NAME);return new $([Y.outputOf(G.of(on.EVENT_RESULT_NAME,t(r)))])}}(a.STRING,e,on.EVENT_STRING,on.PARAMETER_STRING)]}static ofEntryStringBooleanOutput(e,t){return[e,new class extends on{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(on.PARAMETER_STRING_NAME);return new $([Y.outputOf(G.of(on.EVENT_RESULT_NAME,t(r)))])}}(a.STRING,e,on.EVENT_BOOLEAN,on.PARAMETER_STRING)]}static ofEntryAsStringStringIntegerIntegerOutput(e,t){return[e,new class extends on{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(on.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(on.PARAMETER_SEARCH_STRING_NAME),s=e?.getArguments()?.get(on.PARAMETER_INDEX_NAME);return new $([Y.outputOf(G.of(on.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,on.EVENT_INT,on.PARAMETER_STRING,on.PARAMETER_SEARCH_STRING,on.PARAMETER_INDEX)]}static ofEntryAsStringIntegerIntegerStringOutput(e,t){return[e,new class extends on{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(on.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(on.PARAMETER_INDEX_NAME),s=e?.getArguments()?.get(on.PARAMETER_SECOND_INDEX_NAME);return new $([Y.outputOf(G.of(on.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,on.EVENT_INT,on.PARAMETER_STRING,on.PARAMETER_INDEX,on.PARAMETER_SECOND_INDEX)]}static ofEntryAsStringStringStringStringOutput(e,t){return[e,new class extends on{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(on.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(on.PARAMETER_SECOND_STRING_NAME),s=e?.getArguments()?.get(on.PARAMETER_THIRD_STRING_NAME);return new $([Y.outputOf(G.of(on.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,on.EVENT_STRING,on.PARAMETER_STRING,on.PARAMETER_SECOND_STRING,on.PARAMETER_THIRD_STRING)]}}class En extends Pe{static VALUE="value";static SCHEMA=(new S).setName(En.VALUE).setType(new N(l.STRING));static SIGNATURE=new W("Concatenate").setNamespace(a.STRING).setParameters(new Map([[En.VALUE,new y(En.VALUE,En.SCHEMA).setVariableArgument(!0)]])).setEvents(new Map([F.outputEventMapEntry(new Map([[En.VALUE,S.ofString(En.VALUE)]]))]));constructor(){super()}getSignature(){return En.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(En.VALUE),r="";return t.reduce(((e,t)=>r=e+t),r),new $([Y.outputOf(new Map([[En.VALUE,r]]))])}}class un 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(un.PARAMETER_STRING_NAME,S.ofString(un.PARAMETER_STRING_NAME));PARAMETER_AT_START=new y(un.PARAMETER_AT_START_NAME,S.ofInteger(un.PARAMETER_AT_START_NAME));PARAMETER_AT_END=new y(un.PARAMETER_AT_END_NAME,S.ofInteger(un.PARAMETER_AT_END_NAME));EVENT_STRING=new F(F.OUTPUT,new Map([[un.EVENT_RESULT_NAME,S.ofString(un.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(un.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(un.PARAMETER_AT_START_NAME),n=e?.getArguments()?.get(un.PARAMETER_AT_END_NAME);if(n>=r){let e="";return e+=t.substring(0,r),e+=t.substring(n),new $([Y.outputOf(new Map([[un.EVENT_RESULT_NAME,e.toString()]]))])}return new $([Y.outputOf(new Map([[un.EVENT_RESULT_NAME,t]]))])}}class An 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(An.PARAMETER_STRING_NAME,S.ofString(An.PARAMETER_STRING_NAME));PARAMETER_AT_POSITION=new y(An.PARAMETER_AT_POSITION_NAME,S.ofInteger(An.PARAMETER_AT_POSITION_NAME));PARAMETER_INSERT_STRING=new y(An.PARAMETER_INSERT_STRING_NAME,S.ofString(An.PARAMETER_INSERT_STRING_NAME));EVENT_STRING=new F(F.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([F.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(An.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(An.PARAMETER_AT_POSITION_NAME),n=e?.getArguments()?.get(An.PARAMETER_INSERT_STRING_NAME),s="";return s+=t.substring(0,r),s+=n,s+=t.substring(r),new $([Y.outputOf(new Map([[this.EVENT_RESULT_NAME,s]]))])}}class ln 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(ln.PARAMETER_STRING_NAME,S.ofString(ln.PARAMETER_STRING_NAME));static PARAMETER_POSTPAD_STRING=new y(ln.PARAMETER_POSTPAD_STRING_NAME,S.ofString(ln.PARAMETER_POSTPAD_STRING_NAME));static PARAMETER_LENGTH=new y(ln.PARAMETER_LENGTH_NAME,S.ofInteger(ln.PARAMETER_LENGTH_NAME));static EVENT_STRING=new F(F.OUTPUT,new Map([[ln.EVENT_RESULT_NAME,S.ofString(ln.EVENT_RESULT_NAME)]]));signature=new W("PostPad").setNamespace(a.STRING).setParameters(new Map([[ln.PARAMETER_STRING.getParameterName(),ln.PARAMETER_STRING],[ln.PARAMETER_POSTPAD_STRING.getParameterName(),ln.PARAMETER_POSTPAD_STRING],[ln.PARAMETER_LENGTH.getParameterName(),ln.PARAMETER_LENGTH]])).setEvents(new Map([[ln.EVENT_STRING.getName(),ln.EVENT_STRING]]));constructor(){super()}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(ln.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(ln.PARAMETER_POSTPAD_STRING_NAME),n=e.getArguments()?.get(ln.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 $([Y.of(ln.EVENT_RESULT_NAME,new Map([[ln.EVENT_RESULT_NAME,s.toString()]]))])}}class Rn 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(Rn.PARAMETER_STRING_NAME,S.ofString(Rn.PARAMETER_STRING_NAME));static PARAMETER_PREPAD_STRING=new y(Rn.PARAMETER_PREPAD_STRING_NAME,S.ofString(Rn.PARAMETER_PREPAD_STRING_NAME));static PARAMETER_LENGTH=new y(Rn.PARAMETER_LENGTH_NAME,S.ofInteger(Rn.PARAMETER_LENGTH_NAME));static EVENT_STRING=new F(F.OUTPUT,new Map([[Rn.EVENT_RESULT_NAME,S.ofString(Rn.EVENT_RESULT_NAME)]]));signature=new W("PrePad").setNamespace(a.STRING).setParameters(new Map([[Rn.PARAMETER_STRING.getParameterName(),Rn.PARAMETER_STRING],[Rn.PARAMETER_PREPAD_STRING.getParameterName(),Rn.PARAMETER_PREPAD_STRING],[Rn.PARAMETER_LENGTH.getParameterName(),Rn.PARAMETER_LENGTH]])).setEvents(new Map([[Rn.EVENT_STRING.getName(),Rn.EVENT_STRING]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(Rn.PARAMETER_STRING_NAME),r=e.getArguments()?.get(Rn.PARAMETER_PREPAD_STRING_NAME),n=e.getArguments()?.get(Rn.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 $([Y.of(Rn.EVENT_RESULT_NAME,new Map([[Rn.EVENT_RESULT_NAME,s]]))])}}class gn 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(gn.PARAMETER_STRING_NAME,S.ofString(gn.PARAMETER_STRING_NAME));static PARAMETER_OTHER_STRING=new y(gn.PARAMETER_OTHER_STRING_NAME,S.ofString(gn.PARAMETER_OTHER_STRING_NAME));static PARAMETER_FIRST_OFFSET=new y(gn.PARAMETER_FIRST_OFFSET_NAME,S.ofInteger(gn.PARAMETER_FIRST_OFFSET_NAME));static PARAMETER_SECOND_OFFSET=new y(gn.PARAMETER_SECOND_OFFSET_NAME,S.ofInteger(gn.PARAMETER_SECOND_OFFSET_NAME));static PARAMETER_INTEGER=new y(gn.PARAMETER_INTEGER_NAME,S.ofInteger(gn.PARAMETER_INTEGER_NAME));static PARAMETER_BOOLEAN=new y(gn.PARAMETER_BOOLEAN_NAME,S.ofBoolean(gn.PARAMETER_BOOLEAN_NAME));static EVENT_BOOLEAN=new F(F.OUTPUT,new Map([[gn.EVENT_RESULT_NAME,S.ofBoolean(gn.EVENT_RESULT_NAME)]]));signature=new W("RegionMatches").setNamespace(a.STRING).setParameters(new Map([[gn.PARAMETER_STRING.getParameterName(),gn.PARAMETER_STRING],[gn.PARAMETER_BOOLEAN.getParameterName(),gn.PARAMETER_BOOLEAN],[gn.PARAMETER_FIRST_OFFSET.getParameterName(),gn.PARAMETER_FIRST_OFFSET],[gn.PARAMETER_OTHER_STRING.getParameterName(),gn.PARAMETER_OTHER_STRING],[gn.PARAMETER_SECOND_OFFSET.getParameterName(),gn.PARAMETER_SECOND_OFFSET],[gn.PARAMETER_INTEGER.getParameterName(),gn.PARAMETER_INTEGER]])).setEvents(new Map([[gn.EVENT_BOOLEAN.getName(),gn.EVENT_BOOLEAN]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(gn.PARAMETER_STRING_NAME),r=e.getArguments()?.get(gn.PARAMETER_BOOLEAN_NAME),n=e.getArguments()?.get(gn.PARAMETER_FIRST_OFFSET_NAME),s=e?.getArguments()?.get(gn.PARAMETER_OTHER_STRING_NAME),a=e?.getArguments()?.get(gn.PARAMETER_SECOND_OFFSET_NAME),i=e.getArguments()?.get(gn.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 $([Y.outputOf(new Map([[gn.EVENT_RESULT_NAME,o]]))])}}class Tn 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(Tn.PARAMETER_STRING_NAME,S.ofString(Tn.PARAMETER_STRING_NAME));static PARAMETER_AT_START=new y(Tn.PARAMETER_AT_START_NAME,S.ofInteger(Tn.PARAMETER_AT_START_NAME));static PARAMETER_AT_LENGTH=new y(Tn.PARAMETER_AT_LENGTH_NAME,S.ofInteger(Tn.PARAMETER_AT_LENGTH_NAME));static PARAMETER_REPLACE_STRING=new y(Tn.PARAMETER_REPLACE_STRING_NAME,S.ofString(Tn.PARAMETER_REPLACE_STRING_NAME));static EVENT_STRING=new F(F.OUTPUT,new Map([[Tn.EVENT_RESULT_NAME,S.ofString(Tn.EVENT_RESULT_NAME)]]));constructor(){super()}signature=new W("ReplaceAtGivenPosition").setNamespace(a.STRING).setParameters(new Map([[Tn.PARAMETER_STRING.getParameterName(),Tn.PARAMETER_STRING],[Tn.PARAMETER_AT_START.getParameterName(),Tn.PARAMETER_AT_START],[Tn.PARAMETER_AT_LENGTH.getParameterName(),Tn.PARAMETER_AT_LENGTH],[Tn.PARAMETER_REPLACE_STRING.getParameterName(),Tn.PARAMETER_REPLACE_STRING]])).setEvents(new Map([[Tn.EVENT_STRING.getName(),Tn.EVENT_STRING]]));getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(Tn.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(Tn.PARAMETER_AT_START_NAME),n=e?.getArguments()?.get(Tn.PARAMETER_AT_LENGTH_NAME),s=e?.getArguments()?.get(Tn.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 $([Y.outputOf(new Map([[Tn.EVENT_RESULT_NAME,t]]))])}}class pn 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([F.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 $([Y.outputOf(G.of(this.VALUE,n))])}}class mn 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 F(F.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([F.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 $([Y.outputOf(G.of(this.EVENT_ARRAY.getName(),t.split(r)))])}}class hn 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 F(F.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 $([Y.outputOf(new Map([[this.EVENT_RESULT_NAME,r]]))])}}class cn extends Pe{static PARAMETER_STRING_NAME="string";static PARAMETER_LENGTH_NAME="length";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new y(cn.PARAMETER_STRING_NAME,S.ofString(cn.PARAMETER_STRING_NAME));static PARAMETER_LENGTH=new y(cn.PARAMETER_LENGTH_NAME,S.ofInteger(cn.PARAMETER_LENGTH_NAME));static EVENT_STRING=new F(F.OUTPUT,new Map([[cn.EVENT_RESULT_NAME,S.ofString(cn.EVENT_RESULT_NAME)]]));signature=new W("TrimTo").setNamespace(a.STRING).setParameters(new Map([[cn.PARAMETER_STRING.getParameterName(),cn.PARAMETER_STRING],[cn.PARAMETER_LENGTH.getParameterName(),cn.PARAMETER_LENGTH]])).setEvents(new Map([[cn.EVENT_STRING.getName(),cn.EVENT_STRING]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(cn.PARAMETER_STRING_NAME),r=e.getArguments()?.get(cn.PARAMETER_LENGTH_NAME);return new $([Y.of(cn.EVENT_RESULT_NAME,new Map([[cn.EVENT_RESULT_NAME,t.substring(0,r)]]))])}}class Nn{static repoMap=G.ofArrayEntries(on.ofEntryString("Trim",(e=>e.trim())),on.ofEntryString("LowerCase",(e=>e.toLocaleLowerCase())),on.ofEntryString("UpperCase",(e=>e.toUpperCase())),on.ofEntryStringBooleanOutput("IsBlank",(e=>""===e.trim())),on.ofEntryStringBooleanOutput("IsEmpty",(e=>""===e)),on.ofEntryAsStringBooleanOutput("Contains",((e,t)=>-1!=e.indexOf(t))),on.ofEntryAsStringBooleanOutput("EndsWith",((e,t)=>e.endsWith(t))),on.ofEntryAsStringBooleanOutput("EqualsIgnoreCase",((e,t)=>e.toUpperCase()==t.toUpperCase())),on.ofEntryAsStringBooleanOutput("Matches",((e,t)=>new RegExp(t).test(e))),on.ofEntryAsStringIntegerOutput("IndexOf",((e,t)=>e.indexOf(t))),on.ofEntryAsStringIntegerOutput("LastIndexOf",((e,t)=>e.lastIndexOf(t))),on.ofEntryAsStringAndIntegerStringOutput("Repeat",((e,t)=>e.repeat(t))),on.ofEntryAsStringStringIntegerIntegerOutput("IndexOfWithStartPoint",((e,t,r)=>e.indexOf(t,r))),on.ofEntryAsStringStringIntegerIntegerOutput("LastIndexOfWithStartPoint",((e,t,r)=>e.lastIndexOf(t,r))),on.ofEntryAsStringStringStringStringOutput("Replace",((e,t,r)=>e)),on.ofEntryAsStringStringStringStringOutput("ReplaceFirst",((e,t,r)=>e.replace(t,r))),on.ofEntryAsStringIntegerIntegerStringOutput("SubString",((e,t,r)=>e.substring(t,r))),U(new En),U(new un),U(new An),U(new ln),U(new Rn),U(new gn),U(new Tn),U(new pn),U(new mn),U(new hn),U(new cn));find(e,t){if(e==a.STRING)return Nn.repoMap.get(t)}}var fn={};t(fn,"HybridRepository",(()=>_n));class _n{constructor(...e){this.repos=e}find(e,t){for(let r of this.repos){let n=r.find(e,t);if(n)return n}}}const Sn=new Map([[a.SYSTEM_CTX,new Map([U(new class extends Pe{getSignature(){return ut}async internalExecute(e){const t=e?.getArguments()?.get("name");if(e?.getContext()?.has(t))throw new k(Q.format("Context already has an element for '$' ",t));let r=S.from(e?.getArguments()?.get("schema"));if(!r)throw new k("Schema is not supplied.");return e.getContext().set(t,new Et(r,E(r.getDefaultValue())?void 0:r.getDefaultValue())),new $([Y.outputOf(new Map)])}}),U(new class extends Pe{getSignature(){return At}async internalExecute(e){const t=e?.getArguments()?.get("name");if(!e.getContext()?.has(t))throw new k(Q.format("Context don't have an element for '$' ",t));return new $([Y.outputOf(new Map(["value",e.getContext()?.get(t)?.getElement()]))])}}),U(new class extends Pe{getSignature(){return kr}async internalExecute(e){let t=e?.getArguments()?.get("name");if(K.isNullOrBlank(t))throw new k("Empty string is not a valid name for the context element");let r=e?.getArguments()?.get("value");const n=new Pt(t),s=n.getTokens().peekLast();if(!s.getExpression().startsWith("Context")||s instanceof Pt||s instanceof Ot&&!s.getElement().toString().startsWith("Context"))throw new Ue(Q.format("The context path $ is not a valid path in context",t));for(const e of n.getOperations().toArray())if(e!=It.ARRAY_OPERATOR&&e!=It.OBJECT_OPERATOR)throw new Ue(Q.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 Pt&&n.getTokens().set(r,new Ot(t,new Hr(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(Q.format("Context doesn't have any element with name '$' ",t));if(a.isEmpty())return i.setElement(r),new $([Y.outputOf(new Map)]);let o=i.getElement(),u=a.removeLast(),A=s.removeLast(),l=A instanceof Ot?A.getElement():A.getExpression();for(E(o)&&(o=u==It.OBJECT_OPERATOR?{}:[],i.setElement(o));!a.isEmpty();)o=u==It.OBJECT_OPERATOR?this.getDataFromObject(o,l,a.peekLast()):this.getDataFromArray(o,l,a.peekLast()),u=a.removeLast(),A=s.removeLast(),l=A instanceof Ot?A.getElement():A.getExpression();return u==It.OBJECT_OPERATOR?this.putDataInObject(o,l,r):this.putDataInArray(o,l,r),new $([Y.outputOf(new Map)])}getDataFromArray(e,t,r){if(!Array.isArray(e))throw new k(Q.format("Expected an array but found $",e));const n=parseInt(t);if(isNaN(n))throw new k(Q.format("Expected an array index but found $",t));if(n<0)throw new k(Q.format("Array index is out of bound - $",t));let s=e[n];return E(s)&&(s=r==It.OBJECT_OPERATOR?{}:[],e[n]=s),s}getDataFromObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new k(Q.format("Expected an object but found $",e));let n=e[t];return E(n)&&(n=r==It.OBJECT_OPERATOR?{}:[],e[t]=n),n}putDataInArray(e,t,r){if(!Array.isArray(e))throw new k(Q.format("Expected an array but found $",e));const n=parseInt(t);if(isNaN(n))throw new k(Q.format("Expected an array index but found $",t));if(n<0)throw new k(Q.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(Q.format("Expected an object but found $",e));e[t]=r}})])],[a.SYSTEM_LOOP,new Map([U(new class extends Pe{getSignature(){return jr}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 $({next(){if(i)return;if(s&&a>=r||!s&&a<=r)return i=!0,Y.outputOf(new Map([["value",a]]));const e=Y.of(F.ITERATION,new Map([["index",a]]));return a+=n,e}})}}),U(new class extends Pe{getSignature(){return Wr}async internalExecute(e){let t=e.getArguments()?.get("count"),r=0;return new $({next(){if(r>=t)return Y.outputOf(new Map([["value",t]]));const e=Y.of(F.ITERATION,new Map([["index",r]]));return++r,e}})}})])],[a.SYSTEM,new Map([U(new Xr),U(new class extends Pe{getSignature(){return $r}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 k("Expect a value object");let n=r.value;return r.isExpression&&(n=new Hr(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 $([Y.outputOf(new Map)])}}),U(new an)])]]);class Mn extends _n{constructor(){super({find:(e,t)=>Sn.get(e)?.get(t)},new sn,new Nn,new it)}}var On={};t(On,"StatementExecution",(()=>Pn));var wn={};t(wn,"StatementMessage",(()=>In));class In{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 Pn{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 In(e,t))}addDependency(e){this.dependencies.add(e)}getDepenedencies(){return this.dependencies}equals(e){if(!(e instanceof Pn))return!1;return e.statement.equals(this.statement)}}var dn={};t(dn,"ContextTokenValueExtractor",(()=>yn));class yn extends Gr{static PREFIX="Context.";constructor(e){super(),this.context=e}getValueInternal(e){let t=e.split(Gr.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 xn={};t(xn,"OutputMapTokenValueExtractor",(()=>vn));class vn extends Gr{static PREFIX="Steps.";constructor(e){super(),this.output=e}getValueInternal(e){let t=e.split(Gr.REGEX_DOT),r=1,n=this.output.get(t[r++]);if(!n||r>=t.length)return;let s=n.get(t[r++]);if(!s||r>=t.length)return;let a=s.get(t[r++]);return this.retrieveElementFrom(e,t,r,a)}getPrefix(){return vn.PREFIX}}var Ln={};t(Ln,"ArgumentsTokenValueExtractor",(()=>Un));class Un extends Gr{static PREFIX="Arguments.";constructor(e){super(),this.args=e}getValueInternal(e){let t=e.split(Gr.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 Un.PREFIX}}var Vn={};t(Vn,"GraphVertex",(()=>Dn));var Gn={};t(Gn,"ExecutionGraph",(()=>Cn));class Cn{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 Dn(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 pt(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 Dn{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 te(this,e)),t}addInEdgeTo(e,t){return this.inVertices.add(new te(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 Cn(!0);var r=new pt(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 bn={};t(bn,"KIRuntime",(()=>zn));var Fn={};t(Fn,"JsonExpression",(()=>Yn));class Yn{constructor(e){this.expression=e}getExpression(){return this.expression}}var Bn={};let Hn;var kn;t(Bn,"ParameterReferenceType",(()=>Hn)),(kn=Hn||(Hn={})).VALUE="VALUE",kn.EXPRESSION="EXPRESSION";var $n={};function Xn(){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($n,"FunctionExecutionParameters",(()=>Wn));class Wn{count=0;valueExtractors=new Map;constructor(e,t,r){this.functionRepository=e,this.schemaRepository=t,this.executionId=r??Xn()}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 vn(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 jn={};let qn;var Jn;t(jn,"StatementMessageType",(()=>qn)),(Jn=qn||(qn={})).ERROR="ERROR",Jn.WARNING="WARNING",Jn.MESSAGE="MESSAGE";class zn 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()>zn.VERSION)throw new k("Runtime is at a lower version "+zn.VERSION+" and trying to run code from version "+this.fd.getVersion()+".")}getSignature(){return this.fd}async getExecutionPlan(e){let t=new Cn;for(let r of Array.from(this.fd.getSteps().values()))t.addVertex(this.prepareStatementExecution(r,e.getFunctionRepository(),e.getSchemaRepository()));return new te(this.makeEdges(t),t)}async internalExecute(e){e.getContext()||e.setContext(new Map),e.getEvents()||e.setEvents(new Map),e.getSteps()||e.setSteps(new Map),e.getArguments()&&e.addTokenValueExtractor(new Un(e.getArguments())),this.debugMode&&(console.log(`EID: ${e.getExecutionId()} Executing: ${this.fd.getNamespace()}.${this.fd.getName()}`),console.log(`EID: ${e.getExecutionId()} Parameters: `,e));let t=await this.getExecutionPlan(e);this.debugMode&&console.log(`EID: ${e.getExecutionId()} ${t.getT2()?.toString()}`);let r=t.getT1();if(this.debugMode&&r.length&&(console.log(`EID: ${e.getExecutionId()} Unresolved Dependencies: `),console.log(`EID: ${e.getExecutionId()} `,r.map((e=>Q.format("Steps.$.$",e.getT1(),e.getT2()))))),r.length)throw new k(Q.format("Found these unresolved dependencies : $ ",r.map((e=>Q.format("Steps.$.$",e.getT1(),e.getT2())))));let n=t.getT2().getVerticesData().filter((e=>e.getMessages().length)).map((e=>e.getStatement().getStatementName()+": \n"+e.getMessages().join(",")));if(n?.length)throw new k("Please fix the errors in the function definition before execution : \n"+n.join(",\n"));return await this.executeGraph(t.getT2(),e)}async executeGraph(e,t){let r=new pt;r.addAll(e.getVerticesWithNoIncomingEdges());let n=new pt;for(;!(r.isEmpty()&&n.isEmpty()||t.getEvents()?.has(F.OUTPUT));)if(await this.processBranchQue(t,r,n),await this.processExecutionQue(t,r,n),t.setCount(t.getCount()+1),t.getCount()==zn.MAX_EXECUTION_ITERATIONS)throw new k("Execution locked in an infinite loop");if(!e.isSubGraph()&&!t.getEvents()?.size){const e=this.getSignature().getEvents();if(e.size&&e.get(F.OUTPUT)?.getParameters()?.size)throw new k("No events raised")}return new $(Array.from(t.getEvents()?.entries()??[]).flatMap((e=>e[1].map((t=>Y.of(e[0],t))))))}async processExecutionQue(e,t,r){if(!t.isEmpty()){let n=t.pop();await this.allDependenciesResolvedVertex(n,e.getSteps())?await this.executeVertex(n,e,r,t,e.getFunctionRepository()):t.add(n)}}async processBranchQue(e,t,r){if(r.length){let n=r.pop();await this.allDependenciesResolvedTuples(n.getT2(),e.getSteps())?await this.executeBranch(e,t,n):r.add(n)}}async executeBranch(e,t,r){let n,s=r.getT4();do{if(await this.executeGraph(r.getT1(),e),n=r.getT3().next(),n&&(e.getSteps()?.has(s.getData().getStatement().getStatementName())||e.getSteps()?.set(s.getData().getStatement().getStatementName(),new Map),e.getSteps()?.get(s.getData().getStatement().getStatementName())?.set(n.getName(),this.resolveInternalExpressions(n.getResult(),e)),this.debugMode)){const t=s.getData().getStatement();console.log(`EID: ${e.getExecutionId()} Step : ${t.getStatementName()} => ${t.getNamespace()}.${t.getName()}`),console.log(`EID: ${e.getExecutionId()} Event : ${n.getName()} : `,e.getSteps().get(t.getStatementName()).get(n.getName()))}}while(n&&n.getName()!=F.OUTPUT);n?.getName()==F.OUTPUT&&s.getOutVertices().has(F.OUTPUT)&&(s?.getOutVertices()?.get(F.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(Q.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 zn?new Wn(t.getFunctionRepository(),t.getSchemaRepository(),`${t.getExecutionId()}_${a.getStatementName()}`).setArguments(E).setValuesMap(new Map(Array.from(t.getValuesMap().values()).filter((e=>e.getPrefix()!==Un.PREFIX&&e.getPrefix()!==vn.PREFIX&&e.getPrefix()!==yn.PREFIX)).map((e=>[e.getPrefix(),e])))):new Wn(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),R=l.next();if(!R)throw new k(Q.format("Executing $ returned no events",a.getStatementName()));let g=R.getName()==F.OUTPUT;if(t.getSteps()?.has(a.getStatementName())||t.getSteps().set(a.getStatementName(),new Map),t.getSteps().get(a.getStatementName()).set(R.getName(),this.resolveInternalExpressions(R.getResult(),t)),this.debugMode&&(console.log(`EID: ${t.getExecutionId()} Step : ${a.getStatementName()} => ${a.getNamespace()}.${a.getName()}`),console.log(`EID: ${t.getExecutionId()} Event : ${R.getName()} : `,t.getSteps().get(a.getStatementName()).get(R.getName()))),g){let r=e.getOutVertices().get(F.OUTPUT);r&&r.forEach((async e=>{await this.allDependenciesResolvedVertex(e,t.getSteps())&&n.add(e)}))}else{let t=e.getSubGraphOfType(R.getName()),n=this.makeEdges(t);r.push(new ne(t,n,l,e))}}resolveInternalExpressions(e,t){return e?Array.from(e.entries()).map((e=>new te(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 Yn){return new Hr(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 te(t[0],n);let a=r.get(t[0]);return a?(n=a.isVariableArgument()?s.sort(((e,t)=>(e.getOrder()??0)-(t.getOrder()??0))).map((t=>this.parameterReferenceEvaluation(e,t))).flatMap((e=>Array.isArray(e)?e:[e])):this.parameterReferenceEvaluation(e,s[0]),new te(t[0],n)):new te(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()==Hn.VALUE)r=this.resolveInternalExpression(t.getValue(),e);else if(t.getType()==Hn.EXPRESSION&&!K.isNullOrBlank(t.getExpression())){r=new Hr(t.getExpression()??"").evaluate(e.getValuesMap())}return r}prepareStatementExecution(e,t,r){let n=new Pn(e),s=t.find(e.getNamespace(),e.getName());if(!s)throw new k(Q.format("$.$ was not available",e.getNamespace(),e.getName()));let a=new Map(s.getSignature().getParameters());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 E(ie.getDefaultValue(e.getSchema(),r))&&n.addMessage(qn.ERROR,Q.format(zn.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()||E(ie.getDefaultValue(e.getSchema(),r))&&n.addMessage(qn.ERROR,Q.format(zn.PARAMETER_NEEDS_A_VALUE,e.getParameterName()));return n}parameterReferenceValidation(e,t,r,n){if(r){if(r.getType()==Hn.VALUE){E(r.getValue())&&E(ie.getDefaultValue(t.getSchema(),n))&&e.addMessage(qn.ERROR,Q.format(zn.PARAMETER_NEEDS_A_VALUE,t.getParameterName()));let s=new pt;for(s.push(new te(t.getSchema(),r.getValue()));!s.isEmpty();){let t=s.pop();if(t.getT2()instanceof Yn)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 te(e.getSingleSchema(),r));else{let r=t.getT2();for(let t=0;t<r.length;t++)s.push(new te(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 te(r.getProperties().get(e[0]),e[1]))}}}}else if(r.getType()==Hn.EXPRESSION)if(K.isNullOrBlank(r.getExpression()))E(ie.getDefaultValue(t.getSchema(),n))&&e.addMessage(qn.ERROR,Q.format(zn.PARAMETER_NEEDS_A_VALUE,t.getParameterName()));else try{this.addDependencies(e,r.getExpression())}catch(t){e.addMessage(qn.ERROR,Q.format("Error evaluating $ : $",r.getExpression(),t))}}else E(ie.getDefaultValue(t.getSchema(),n))&&e.addMessage(qn.ERROR,Q.format(zn.PARAMETER_NEEDS_A_VALUE,t.getParameterName()))}addDependencies(e,t){t&&Array.from(t.match(zn.STEP_REGEX_PATTERN)??[]).forEach((t=>e.addDependency(t)))}makeEdges(e){let t=e.getNodeMap().values(),r=[];for(let n of Array.from(t))for(let t of n.getData().getDependencies()){let s=t.indexOf(".",6),a=t.substring(6,s),i=t.indexOf(".",s+1),o=-1==i?t.substring(s+1):t.substring(s+1,i);e.getNodeMap().has(a)||r.push(new te(a,o));let E=e.getNodeMap().get(a);E&&n.addInEdgeTo(E,o)}return r}}var Qn={};t(Qn,"KIRunConstants",(()=>Kn));class Kn{static NAMESPACE="namespace";static NAME="name";static ID="id";constructor(){}}var Zn={};t(Zn,"Position",(()=>es));class es{static SCHEMA_NAME="Position";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(es.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){return e?new es(e.left,e.top):new es(-1,-1)}}var ts={};t(ts,"FunctionDefinition",(()=>ls));var rs={};t(rs,"Statement",(()=>os));var ns={};t(ns,"AbstractStatement",(()=>ss));class ss{override=!1;constructor(e){e&&(this.comment=e.comment,this.description=e.description,this.position=e.position?new es(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 as={};t(as,"ParameterReference",(()=>is));class is{static SCHEMA_NAME="ParameterReference";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(is.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 is){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=Xn()}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 is(Hn.EXPRESSION).setExpression(e);return[t.getKey(),t]}static ofValue(e){const t=new is(Hn.VALUE).setValue(e);return[t.getKey(),t]}static from(e){return new is(e.type).setValue(e.value).setExpression(e.expression).setKey(e.key).setOrder(e.order)}}class os extends ss{static SCHEMA_NAME="Statement";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(os.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["statementName",S.ofString("statementName")],["comment",S.ofString("comment")],["description",S.ofString("description")],["namespace",S.ofString("namespace")],["name",S.ofString("name")],["dependentStatements",S.ofObject("dependentstatement").setAdditionalProperties((new _).setSchemaValue(S.ofBoolean("exists")))],["parameterMap",(new S).setName("parameterMap").setAdditionalProperties((new _).setSchemaValue(S.ofObject("parameterReference").setAdditionalProperties((new _).setSchemaValue(is.SCHEMA))))],["position",es.SCHEMA]]));constructor(e,t,r){if(super(e instanceof os?e:void 0),e instanceof os){let t=e;this.statementName=t.statementName,this.name=t.name,this.namespace=t.namespace,t.parameterMap&&(this.parameterMap=new Map(Array.from(t.parameterMap.entries()).map((e=>[e[0],new Map(Array.from(e[1].entries()).map((e=>[e[0],new is(e[1])])))])))),t.dependentStatements&&(this.dependentStatements=new Map(Array.from(t.dependentStatements.entries())))}else{if(this.statementName=e,!r||!t)throw new Error("Unknown constructor");this.namespace=t,this.name=r}}getStatementName(){return this.statementName}setStatementName(e){return this.statementName=e,this}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getParameterMap(){return this.parameterMap||(this.parameterMap=new Map),this.parameterMap}setParameterMap(e){return this.parameterMap=e,this}getDependentStatements(){return this.dependentStatements??new Map}setDependentStatements(e){return this.dependentStatements=e,this}equals(e){if(!(e instanceof os))return!1;return e.statementName==this.statementName}static ofEntry(e){return[e.statementName,e]}static from(e){return new os(e.statementName,e.namespace,e.name).setParameterMap(new Map(Object.entries(e.parameterMap??{}).map((([e,t])=>[e,new Map(Object.entries(t??{}).map((([e,t])=>is.from(t))).map((e=>[e.getKey(),e])))])))).setDependentStatements(new Map(Object.entries(e.dependentStatements??{}))).setPosition(es.from(e.position)).setComment(e.comment).setDescription(e.description)}}var Es={};t(Es,"StatementGroup",(()=>us));class us extends ss{static SCHEMA_NAME="StatementGroup";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(us.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["statementGroupName",S.ofString("statementGroupName")],["comment",S.ofString("comment")],["description",S.ofString("description")],["position",es.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 us(e.statementGroupName,new Map(Object.entries(e.statements||{}).map((([e,t])=>[e,"true"==(""+t)?.toLowerCase()])))).setPosition(es.from(e.position)).setComment(e.comment).setDescription(e.description)}}const As=(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(F.SCHEMA))],["steps",S.ofObject("steps").setAdditionalProperties((new _).setSchemaValue(os.SCHEMA))]]));As.getProperties()?.set("parts",S.ofArray("parts",As));class ls extends W{static SCHEMA=As;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 ls(e.name).setSteps(new Map(Object.values(e.steps??{}).filter((e=>!!e)).map((e=>[e.statementName,os.from(e)])))).setStepGroups(new Map(Object.values(e.stepGroups??{}).filter((e=>!!e)).map((e=>[e.statementGroupName,us.from(e)])))).setParts(Array.from(e.parts??[]).filter((e=>!!e)).map((e=>ls.from(e)))).setVersion(e.version??1).setEvents(new Map(Object.values(e.events??{}).filter((e=>!!e)).map((e=>[e.name,F.from(e)])))).setParameters(new Map(Object.values(e.parameters??{}).filter((e=>!!e)).map((e=>[e.parameterName,y.from(e)])))):new ls("unknown")}}var Rs={};t(Rs,"Argument",(()=>gs));class gs{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 gs(0,e,t)}}var Ts={};e(Ts,Mr),e(Ts,Pr),e(Ts,yr),e(Ts,vr),e(Ts,Or);var ps={};e(ps,Ut),e(ps,Gt),e(ps,Dt),e(ps,Ft),e(ps,Bt),e(ps,kt),e(ps,Xt),e(ps,xt),e(ps,jt),e(ps,Jt),e(ps,Qt),e(ps,Zt),e(ps,tr),e(ps,nr),e(ps,ar),e(ps,or),e(ps,ur),e(ps,lr),e(ps,gr),e(ps,hr),e(ps,pr),e(ps,Nr),e(ps,_r),e(ps,yt),e(module.exports,r),e(module.exports,L),e(module.exports,{}),e(module.exports,ve),e(module.exports,V),e(module.exports,o),e(module.exports,Rt),e(module.exports,ht),e(module.exports,z),e(module.exports,J),e(module.exports,ee),e(module.exports,Ce),e(module.exports,gt),e(module.exports,On),e(module.exports,wn),e(module.exports,ot),e(module.exports,dn),e(module.exports,xn),e(module.exports,Ln),e(module.exports,Vn),e(module.exports,{}),e(module.exports,Gn),e(module.exports,bn),e(module.exports,jn),e(module.exports,$n),e(module.exports,lt),e(module.exports,Vr),e(module.exports,Ur),e(module.exports,dt),e(module.exports,wt),e(module.exports,_t),e(module.exports,Nt),e(module.exports,Mt),e(module.exports,{}),e(module.exports,j),e(module.exports,s),e(module.exports,Fn),e(module.exports,n),e(module.exports,me),e(module.exports,Re),e(module.exports,Te),e(module.exports,Ae),e(module.exports,oe),e(module.exports,fe),e(module.exports,ce),e(module.exports,q),e(module.exports,se),e(module.exports,O),e(module.exports,ue),e(module.exports,i),e(module.exports,c),e(module.exports,g),e(module.exports,T),e(module.exports,p),e(module.exports,A),e(module.exports,Z),e(module.exports,_e),e(module.exports,fn),e(module.exports,Qn),e(module.exports,M),e(module.exports,B),e(module.exports,Zn),e(module.exports,ts),e(module.exports,Bn),e(module.exports,D),e(module.exports,ns),e(module.exports,rs),e(module.exports,{}),e(module.exports,Es),e(module.exports,X),e(module.exports,b),e(module.exports,I),e(module.exports,Rs),e(module.exports,as),e(module.exports,Le),e(module.exports,H),e(module.exports,Ts),e(module.exports,ps),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 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 m;t(A,"SchemaType",(()=>l)),(m=l||(l={})).INTEGER="Integer",m.LONG="Long",m.FLOAT="Float",m.DOUBLE="Double",m.STRING="String",m.OBJECT="Object",m.ARRAY="Array",m.BOOLEAN="Boolean",m.NULL="Null";var g={};t(g,"TypeUtil",(()=>f));var R={};t(R,"MultipleType",(()=>h));var T={};t(T,"Type",(()=>p));class p{}class h extends p{constructor(e){super(),this.type=e instanceof h?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 c={};t(c,"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 h(new Set(e))}static from(e){return"string"==typeof e?new N(l[e]):Array.isArray(e)?new h(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 h(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 V(e){return[e.getSignature().getName(),e]}t(U,"KIRunFunctionRepository",(()=>In));var C={};t(C,"MapUtil",(()=>G)),t(C,"MapEntry",(()=>b));class G{static of(e,t,r,n,s,a,i,o,u,A,l,m,g,R,T,p,h,c,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(m)||_.set(l,m),E(g)||E(R)||_.set(g,R),E(T)||E(p)||_.set(T,p),E(h)||E(c)||_.set(h,c),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",(()=>X));var k={};t(k,"KIRuntimeException",(()=>$));class $ extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class X{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=[],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 W={};t(W,"FunctionSignature",(()=>j));class j{static SCHEMA_NAME="FunctionSignature";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(j.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 j?(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 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",(()=>me));class me{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 me.checkMinMaxItems(e,t,s),me.checkItems(e,t,r,s),me.checkUniqueItems(e,t,s),me.checkContains(t,e,r,s),n}static checkContains(e,t,r,n){if(E(e.getContains()))return;let s=me.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 ge={};t(ge,"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 Te={};t(Te,"NullValidator",(()=>pe));class pe{static validate(e,t,r){if(r)throw new ie(de.path(e),"Expected a null but found "+r);return r}constructor(){}}var he={};t(he,"NumberValidator",(()=>ce));class ce{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=ce.extractNumber(e,t,r,n);return ce.checkRange(t,r,n,s),ce.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()&&ce.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()&&ce.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()&&ce.numberCompare(n,t.getExclusiveMinimum())<=0)throw new ie(de.path(e),r.toString()+" should be greater than "+t.getExclusiveMinimum());if(t.getExclusiveMaximum()&&ce.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)ce.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)me.validate(e,r,n,s);else{if(t!=l.NULL)throw new ie(de.path(e),t+" is not a valid type.");pe.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 j(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 X([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 X([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 X([B.outputOf(new Map([]))])}}var Le={};t(Le,"PrimitiveUtil",(()=>Ce));var Ue={};t(Ue,"ExecutionException",(()=>Ve));class Ve extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class Ce{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):Ce.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):Ce.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 Ge extends ye{constructor(){super("BinarySearch",[Ge.PARAMETER_ARRAY_SOURCE_PRIMITIVE,Ge.PARAMETER_INT_SOURCE_FROM,Ge.PARAMETER_FIND_PRIMITIVE,Ge.PARAMETER_INT_LENGTH],Ge.EVENT_INDEX)}async internalExecute(e){let t=e?.getArguments()?.get(Ge.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Ge.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(Ge.PARAMETER_FIND_PRIMITIVE.getParameterName()),s=e?.getArguments()?.get(Ge.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==Ce.compare(t[e],n)){a=e;break}Ce.compare(t[e],n)>0?s=e-1:r=e+1}return new X([B.outputOf(new Map([[Ge.EVENT_INDEX.getName(),a]]))])}}var be={};t(be,"ArrayUtil",(()=>De));class De{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 Fe extends ye{constructor(){super("Compare",De.of(Fe.PARAMETER_ARRAY_SOURCE,Fe.PARAMETER_INT_SOURCE_FROM,Fe.PARAMETER_ARRAY_FIND,Fe.PARAMETER_INT_FIND_FROM,Fe.PARAMETER_INT_LENGTH),Fe.EVENT_RESULT_INTEGER)}async internalExecute(e){var t=e?.getArguments()?.get(Fe.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Fe.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(Fe.PARAMETER_ARRAY_FIND.getParameterName()),s=e?.getArguments()?.get(Fe.PARAMETER_INT_FIND_FROM.getParameterName()),a=e?.getArguments()?.get(Fe.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 X(De.of(B.outputOf(G.of(Fe.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 Ye extends ye{constructor(){super("Copy",[Ye.PARAMETER_ARRAY_SOURCE,Ye.PARAMETER_INT_SOURCE_FROM,Ye.PARAMETER_INT_LENGTH,Ye.PARAMETER_BOOLEAN_DEEP_COPY],Ye.EVENT_RESULT_ARRAY)}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_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(Ye.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 X([B.outputOf(G.of(Ye.EVENT_RESULT_NAME,a))])}}class Be 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(Be.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Be.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!=Ce.compare(t[e],r[s])||n.add(t[e]);return s=t.filter((e=>!n.has(e))),t.splice(0,t.length,...s),new X([B.outputOf(new Map([]))])}}class He extends ye{constructor(){super("DeleteFirst",[He.PARAMETER_ARRAY_SOURCE],He.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(He.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new $("Given source array is empty");return t.shift(),new X([B.outputOf(new Map([]))])}}class ke extends ye{constructor(){super("DeleteFrom",[ke.PARAMETER_ARRAY_SOURCE,ke.PARAMETER_INT_SOURCE_FROM,ke.PARAMETER_INT_LENGTH],ke.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(ke.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ke.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(ke.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new $("There are no elements to be deleted");if(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 X([B.outputOf(new Map([]))])}}class $e extends ye{constructor(){super("DeleteLast",[$e.PARAMETER_ARRAY_SOURCE],$e.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get($e.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new $("Given source array is empty");return t.pop(),new X([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 X([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 Fe,r=(await t.execute(e)).allResults()[0].getResult().get(We.EVENT_RESULT_NAME);return new X([B.outputOf(G.of(We.EVENT_RESULT_NAME,0==r))])}}class je extends ye{constructor(){super("Fill",[je.PARAMETER_ARRAY_SOURCE,je.PARAMETER_INT_SOURCE_FROM,je.PARAMETER_INT_LENGTH,je.PARAMETER_ANY],je.EVENT_RESULT_EMPTY)}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_INT_LENGTH.getParameterName()),s=e?.getArguments()?.get(je.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 X([B.outputOf(G.of())])}}class qe extends ye{constructor(){super("Frequency",[qe.PARAMETER_ARRAY_SOURCE,qe.PARAMETER_ANY,qe.PARAMETER_INT_SOURCE_FROM,qe.PARAMETER_INT_LENGTH],qe.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(qe.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(qe.PARAMETER_ANY.getParameterName()),n=e?.getArguments()?.get(qe.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(qe.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)return new X([B.outputOf(new Map([[qe.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==Ce.compare(t[e],r)&&i++;return new X([B.outputOf(new Map([[qe.EVENT_RESULT_INTEGER.getName(),i]]))])}}class Je extends ye{constructor(){super("IndexOf",[Je.PARAMETER_ARRAY_SOURCE,Je.PARAMETER_ANY_NOT_NULL,Je.PARAMETER_INT_FIND_FROM],Je.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(Je.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(Je.PARAMETER_ANY_NOT_NULL.getParameterName());let n=e?.getArguments()?.get(Je.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new X([B.outputOf(new Map([[Je.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==Ce.compare(t[e],r)){s=e;break}return new X([B.outputOf(new Map([[Je.EVENT_RESULT_INTEGER.getName(),s]]))])}}class ze extends ye{constructor(){super("IndexOfArray",[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||0==r.length)return new X([B.outputOf(new Map([[ze.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==Ce.compare(t[e],r[n])){for(;n<s&&0==Ce.compare(t[e+n],r[n]);)n++;if(n==s){a=e;break}}}return new X([B.outputOf(new Map([[ze.EVENT_RESULT_INTEGER.getName(),a]]))])}}class Qe extends ye{constructor(){super("LastIndexOf",[Qe.PARAMETER_ARRAY_SOURCE,Qe.PARAMETER_ANY_NOT_NULL,Qe.PARAMETER_INT_FIND_FROM],Qe.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(Qe.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(Qe.PARAMETER_ANY_NOT_NULL.getParameterName());let n=e?.getArguments()?.get(Qe.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new X([B.outputOf(new Map([[Qe.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==Ce.compare(t[e],r)){s=e;break}return new X([B.outputOf(new Map([[Qe.EVENT_RESULT_INTEGER.getName(),s]]))])}}class Ke extends ye{constructor(){super("LastIndexOfArray",[Ke.PARAMETER_ARRAY_SOURCE,Ke.PARAMETER_ARRAY_SECOND_SOURCE,Ke.PARAMETER_INT_FIND_FROM],Ke.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(Ke.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(Ke.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(Ke.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new X([B.outputOf(new Map([[Ke.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==Ce.compare(t[e],r[n])){for(;n<s&&0==Ce.compare(t[e+n],r[n]);)n++;n==s&&(a=e)}}return new X([B.outputOf(new Map([[Ke.EVENT_RESULT_INTEGER.getName(),a]]))])}}class Ze extends ye{constructor(){super("Max",[Ze.PARAMETER_ARRAY_SOURCE_PRIMITIVE],Ze.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(Ze.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];Ce.comparePrimitive(r,n)>=0||(r=n)}return new X([B.outputOf(new Map([[Ze.EVENT_RESULT_ANY.getName(),r]]))])}}class et extends ye{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||Ce.comparePrimitive(r[e],t)<0)&&(t=r[e]);return new X([B.outputOf(new Map([[et.EVENT_RESULT_ANY.getName(),t]]))])}}class tt extends ye{constructor(){super("MisMatch",[tt.PARAMETER_ARRAY_SOURCE,tt.PARAMETER_INT_FIND_FROM,tt.PARAMETER_ARRAY_SECOND_SOURCE,tt.PARAMETER_INT_SECOND_SOURCE_FROM,tt.PARAMETER_INT_LENGTH],tt.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(tt.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(tt.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(tt.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(tt.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(tt.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 X([B.outputOf(new Map([[tt.EVENT_RESULT_INTEGER.getName(),E]]))])}}class rt extends ye{constructor(){super("Reverse",[rt.PARAMETER_ARRAY_SOURCE,rt.PARAMETER_INT_SOURCE_FROM,rt.PARAMETER_INT_LENGTH],rt.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(rt.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(rt.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(rt.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 X([B.outputOf(new Map([]))])}}class nt extends ye{constructor(){super("Rotate",[nt.PARAMETER_ARRAY_SOURCE,nt.PARAMETER_ROTATE_LENGTH],nt.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(nt.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(nt.PARAMETER_ROTATE_LENGTH.getParameterName());if(0==t.length)return new X([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 X([B.outputOf(new Map([]))])}rotate(e,t,r){for(;t<r;){let n=e[t];e[t++]=e[r],e[r--]=n}}}class st extends ye{constructor(){super("Shuffle",[st.PARAMETER_ARRAY_SOURCE],st.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(st.PARAMETER_ARRAY_SOURCE.getParameterName());if(t.length<=1)return new X([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 X([B.outputOf(new Map([]))])}}class at extends ye{constructor(){super("Sort",[at.PARAMETER_ARRAY_SOURCE_PRIMITIVE,at.PARAMETER_INT_FIND_FROM,at.PARAMETER_INT_LENGTH,at.PARAMETER_BOOLEAN_ASCENDING],at.EVENT_RESULT_EMPTY)}async internalExecute(e){let t=e?.getArguments()?.get(at.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName()),r=e?.getArguments()?.get(at.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(at.PARAMETER_INT_LENGTH.getParameterName()),s=e?.getArguments()?.get(at.PARAMETER_BOOLEAN_ASCENDING.getParameterName());if(0==t.length)return new X([B.outputOf(new Map([[at.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 X([B.outputOf(new Map([[at.EVENT_RESULT_EMPTY.getName(),t]]))])}}class it extends ye{constructor(){super("SubArray",[it.PARAMETER_ARRAY_SOURCE,it.PARAMETER_INT_FIND_FROM,it.PARAMETER_INT_LENGTH],it.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(it.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(it.PARAMETER_INT_FIND_FROM.getParameterName()),n=e?.getArguments()?.get(it.PARAMETER_INT_LENGTH.getParameterName());if(-1==n&&(n=t.length-r),n<=0)return new X([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 X([B.outputOf(new Map([[it.EVENT_RESULT_ARRAY.getName(),s]]))])}}class ot{static repoMap=G.ofArrayEntries(V(new xe),V(new ve),V(new Ge),V(new Fe),V(new Ye),V(new Be),V(new He),V(new ke),V(new $e),V(new Xe),V(new We),V(new je),V(new qe),V(new Je),V(new ze),V(new Qe),V(new Ke),V(new Ze),V(new et),V(new tt),V(new rt),V(new nt),V(new st),V(new at),V(new it));static filterableNames=Array.from(ot.repoMap.values()).map((e=>e.getSignature().getFullName()));find(e,t){if(e==a.SYSTEM_ARRAY)return ot.repoMap.get(t)}filter(e){return ot.filterableNames.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}var Et={};t(Et,"ContextElement",(()=>ut));class ut{static NULL=new ut(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 At=new j("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 lt=new j("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 mt={};t(mt,"Expression",(()=>Pt));var gt={};t(gt,"LinkedList",(()=>pt));var Rt={};function Tt(e,t){let r=new pt;r.push(e);let n=new pt;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(Rt,"deepEqual",(()=>Tt));class pt{head=void 0;tail=void 0;length=0;constructor(e){if(e?.length){for(const t of e)if(this.head){const e=new ht(t,this.tail);this.tail.next=e,this.tail=e}else this.tail=this.head=new ht(t);this.length=e.length}}push(e){const t=new ht(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 ht(e,this.head),this.head.next=this.tail):(this.tail=new ht(e,this.tail),this.tail.previous.next=this.tail):this.head=this.tail=new ht(e),this}map(e,t){let r=new pt,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(Tt(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 ht{constructor(e,t,r){this.value=e,this.next=r,this.previous=t}toString(){return""+this.value}}var ct={};t(ct,"StringBuilder",(()=>Nt));class Nt{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 ft={};t(ft,"ExpressionEvaluationException",(()=>_t));class _t extends Error{constructor(e,t,r){super(K.format("$ : $",e,t)),this.cause=r}getCause(){return this.cause}}var St={};t(St,"ExpressionToken",(()=>Mt));class Mt{constructor(e){this.expression=e}getExpression(){return this.expression}toString(){return this.expression}}var Ot={};t(Ot,"ExpressionTokenValue",(()=>wt));class wt extends Mt{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 It={};t(It,"Operation",(()=>dt));class dt{static MULTIPLICATION=new dt("*");static DIVISION=new dt("/");static INTEGER_DIVISION=new dt("//");static MOD=new dt("%");static ADDITION=new dt("+");static SUBTRACTION=new dt("-");static NOT=new dt("not",void 0,!0);static AND=new dt("and",void 0,!0);static OR=new dt("or",void 0,!0);static LESS_THAN=new dt("<");static LESS_THAN_EQUAL=new dt("<=");static GREATER_THAN=new dt(">");static GREATER_THAN_EQUAL=new dt(">=");static EQUAL=new dt("=");static NOT_EQUAL=new dt("!=");static BITWISE_AND=new dt("&");static BITWISE_OR=new dt("|");static BITWISE_XOR=new dt("^");static BITWISE_COMPLEMENT=new dt("~");static BITWISE_LEFT_SHIFT=new dt("<<");static BITWISE_RIGHT_SHIFT=new dt(">>");static BITWISE_UNSIGNED_RIGHT_SHIFT=new dt(">>>");static UNARY_PLUS=new dt("UN: +","+");static UNARY_MINUS=new dt("UN: -","-");static UNARY_LOGICAL_NOT=new dt("UN: not","not");static UNARY_BITWISE_COMPLEMENT=new dt("UN: ~","~");static ARRAY_OPERATOR=new dt("[");static OBJECT_OPERATOR=new dt(".");static NULLISH_COALESCING_OPERATOR=new dt("??");static CONDITIONAL_TERNARY_OPERATOR=new dt("?");static VALUE_OF=new Map([["MULTIPLICATION",dt.MULTIPLICATION],["DIVISION",dt.DIVISION],["INTEGER_DIVISON",dt.INTEGER_DIVISION],["MOD",dt.MOD],["ADDITION",dt.ADDITION],["SUBTRACTION",dt.SUBTRACTION],["NOT",dt.NOT],["AND",dt.AND],["OR",dt.OR],["LESS_THAN",dt.LESS_THAN],["LESS_THAN_EQUAL",dt.LESS_THAN_EQUAL],["GREATER_THAN",dt.GREATER_THAN],["GREATER_THAN_EQUAL",dt.GREATER_THAN_EQUAL],["EQUAL",dt.EQUAL],["NOT_EQUAL",dt.NOT_EQUAL],["BITWISE_AND",dt.BITWISE_AND],["BITWISE_OR",dt.BITWISE_OR],["BITWISE_XOR",dt.BITWISE_XOR],["BITWISE_COMPLEMENT",dt.BITWISE_COMPLEMENT],["BITWISE_LEFT_SHIFT",dt.BITWISE_LEFT_SHIFT],["BITWISE_RIGHT_SHIFT",dt.BITWISE_RIGHT_SHIFT],["BITWISE_UNSIGNED_RIGHT_SHIFT",dt.BITWISE_UNSIGNED_RIGHT_SHIFT],["UNARY_PLUS",dt.UNARY_PLUS],["UNARY_MINUS",dt.UNARY_MINUS],["UNARY_LOGICAL_NOT",dt.UNARY_LOGICAL_NOT],["UNARY_BITWISE_COMPLEMENT",dt.UNARY_BITWISE_COMPLEMENT],["ARRAY_OPERATOR",dt.ARRAY_OPERATOR],["OBJECT_OPERATOR",dt.OBJECT_OPERATOR],["NULLISH_COALESCING_OPERATOR",dt.NULLISH_COALESCING_OPERATOR],["CONDITIONAL_TERNARY_OPERATOR",dt.CONDITIONAL_TERNARY_OPERATOR]]);static UNARY_OPERATORS=new Set([dt.ADDITION,dt.SUBTRACTION,dt.NOT,dt.BITWISE_COMPLEMENT,dt.UNARY_PLUS,dt.UNARY_MINUS,dt.UNARY_LOGICAL_NOT,dt.UNARY_BITWISE_COMPLEMENT]);static ARITHMETIC_OPERATORS=new Set([dt.MULTIPLICATION,dt.DIVISION,dt.INTEGER_DIVISION,dt.MOD,dt.ADDITION,dt.SUBTRACTION]);static LOGICAL_OPERATORS=new Set([dt.NOT,dt.AND,dt.OR,dt.LESS_THAN,dt.LESS_THAN_EQUAL,dt.GREATER_THAN,dt.GREATER_THAN_EQUAL,dt.EQUAL,dt.NOT_EQUAL,dt.NULLISH_COALESCING_OPERATOR]);static BITWISE_OPERATORS=new Set([dt.BITWISE_AND,dt.BITWISE_COMPLEMENT,dt.BITWISE_LEFT_SHIFT,dt.BITWISE_OR,dt.BITWISE_RIGHT_SHIFT,dt.BITWISE_UNSIGNED_RIGHT_SHIFT,dt.BITWISE_XOR]);static CONDITIONAL_OPERATORS=new Set([dt.CONDITIONAL_TERNARY_OPERATOR]);static OPERATOR_PRIORITY=new Map([[dt.UNARY_PLUS,1],[dt.UNARY_MINUS,1],[dt.UNARY_LOGICAL_NOT,1],[dt.UNARY_BITWISE_COMPLEMENT,1],[dt.ARRAY_OPERATOR,1],[dt.OBJECT_OPERATOR,1],[dt.MULTIPLICATION,2],[dt.DIVISION,2],[dt.INTEGER_DIVISION,2],[dt.MOD,2],[dt.ADDITION,3],[dt.SUBTRACTION,3],[dt.BITWISE_LEFT_SHIFT,4],[dt.BITWISE_RIGHT_SHIFT,4],[dt.BITWISE_UNSIGNED_RIGHT_SHIFT,4],[dt.LESS_THAN,5],[dt.LESS_THAN_EQUAL,5],[dt.GREATER_THAN,5],[dt.GREATER_THAN_EQUAL,5],[dt.EQUAL,6],[dt.NOT_EQUAL,6],[dt.BITWISE_AND,7],[dt.BITWISE_XOR,8],[dt.BITWISE_OR,9],[dt.AND,10],[dt.OR,11],[dt.NULLISH_COALESCING_OPERATOR,11],[dt.CONDITIONAL_TERNARY_OPERATOR,12]]);static OPERATORS=new Set([...Array.from(dt.ARITHMETIC_OPERATORS),...Array.from(dt.LOGICAL_OPERATORS),...Array.from(dt.BITWISE_OPERATORS),dt.ARRAY_OPERATOR,dt.OBJECT_OPERATOR,...Array.from(dt.CONDITIONAL_OPERATORS)].map((e=>e.getOperator())));static OPERATORS_WITHOUT_SPACE_WRAP=new Set([...Array.from(dt.ARITHMETIC_OPERATORS),...Array.from(dt.LOGICAL_OPERATORS),...Array.from(dt.BITWISE_OPERATORS),dt.ARRAY_OPERATOR,dt.OBJECT_OPERATOR,...Array.from(dt.CONDITIONAL_OPERATORS)].filter((e=>!e.shouldBeWrappedInSpace())).map((e=>e.getOperator())));static OPERATION_VALUE_OF=new Map(Array.from(dt.VALUE_OF.entries()).map((([e,t])=>[t.getOperator(),t])));static UNARY_MAP=new Map([[dt.ADDITION,dt.UNARY_PLUS],[dt.SUBTRACTION,dt.UNARY_MINUS],[dt.NOT,dt.UNARY_LOGICAL_NOT],[dt.BITWISE_COMPLEMENT,dt.UNARY_BITWISE_COMPLEMENT],[dt.UNARY_PLUS,dt.UNARY_PLUS],[dt.UNARY_MINUS,dt.UNARY_MINUS],[dt.UNARY_LOGICAL_NOT,dt.UNARY_LOGICAL_NOT],[dt.UNARY_BITWISE_COMPLEMENT,dt.UNARY_BITWISE_COMPLEMENT]]);static BIGGEST_OPERATOR_SIZE=Array.from(dt.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 dt.VALUE_OF.get(e)}toString(){return this.operator}}class Pt extends Mt{tokens=new pt;ops=new pt;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 Nt(""),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 _t(this.expression,"Extra closing parenthesis found");case"]":throw new _t(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()==dt.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()==dt.ARRAY_OPERATOR&&(i=this.process(e,n,s),s=i.getT1(),a=i.getT2())}++s}if(t=n.toString(),!Z.isNullOrBlank(t)){if(dt.OPERATORS.has(t))throw new _t(this.expression,"Expression is ending with an operator");this.tokens.push(new Mt(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 _t(this.expression,"Missing string ending marker "+t);let a=new re(s,!1);return this.tokens.push(new wt(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 Pt(t.toString())),t.setLength(0),new re(r,!1)}processOthers(e,t,r,n,s,a){let i=t-s;i=i<dt.BIGGEST_OPERATOR_SIZE?i:dt.BIGGEST_OPERATOR_SIZE;for(let e=i;e>0;e--){let t=this.expression.substring(s,s+e);if(dt.OPERATORS_WITHOUT_SPACE_WRAP.has(t))return Z.isNullOrBlank(n)||(this.tokens.push(new Mt(n)),a=!1),this.checkUnaryOperator(this.tokens,this.ops,dt.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 _t(this.expression,"Ternary operator is followed by an operator");""!=r.trim()&&(this.tokens.push(new Pt(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 _t(this.expression,"':' operater is missing");if(n>=e)throw new _t(this.expression,"Third part of the ternary expression is missing");for(;!this.ops.isEmpty()&&this.hasPrecedence(dt.CONDITIONAL_TERNARY_OPERATOR,this.ops.peek());){let e=this.ops.pop();if(dt.UNARY_OPERATORS.has(e)){const t=this.tokens.pop();this.tokens.push(new Pt("",t,void 0,e))}else{let t=this.tokens.pop(),r=this.tokens.pop();this.tokens.push(new Pt("",r,t,e))}}this.ops.push(dt.CONDITIONAL_TERNARY_OPERATOR),this.tokens.push(new Pt(this.expression.substring(o,n-1)));const E=this.expression.substring(n);if(""===E.trim())throw new _t(this.expression,"Third part of the ternary expression is missing");return this.tokens.push(new Pt(E)),e-1}processSubExpression(e,t,r,n,s){if(dt.OPERATORS.has(r))this.checkUnaryOperator(this.tokens,this.ops,dt.OPERATION_VALUE_OF.get(r),s),t.setLength(0);else if(!Z.isNullOrBlank(r))throw new _t(this.expression,K.format("Unkown token : $ found.",r));let a=1;const i=new Nt;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 _t(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 Pt(i.toString().trim())),n}processTokenSepearator(e,t,r){return Z.isNullOrBlank(t)||(dt.OPERATORS.has(t)?(this.checkUnaryOperator(this.tokens,this.ops,dt.OPERATION_VALUE_OF.get(t),r),r=!0):(this.tokens.push(new Mt(t)),r=!1)),e.setLength(0),r}checkUnaryOperator(e,t,r,n){if(r)if(n||e.isEmpty()){if(!dt.UNARY_OPERATORS.has(r))throw new _t(this.expression,K.format("Extra operator $ found.",r));{const e=dt.UNARY_MAP.get(r);e&&t.push(e)}}else{for(;!t.isEmpty()&&this.hasPrecedence(r,t.peek());){let r=t.pop();if(dt.UNARY_OPERATORS.has(r)){let t=e.pop();e.push(new Pt("",t,void 0,r))}else{let t=e.pop(),n=e.pop();e.push(new Pt("",n,t,r))}}t.push(r)}}hasPrecedence(e,t){let r=dt.OPERATOR_PRIORITY.get(e),n=dt.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 Nt,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 Pt?n[t].toString():n[t]).append(")"),t++;else if(r[s]==dt.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 yt={};t(yt,"ExpressionEvaluator",(()=>kr));var xt={};t(xt,"LogicalNullishCoalescingOperator",(()=>Ut));var vt={};t(vt,"BinaryOperator",(()=>Lt));class Lt{nullCheck(e,t,r){if(E(e)||E(t))throw new Ve(K.format("$ cannot be applied to a null value",r.getOperatorName()))}}class Ut extends Lt{apply(e,t){return E(e)?t:e}}var Vt={};t(Vt,"ArithmeticAdditionOperator",(()=>Ct));class Ct extends Lt{apply(e,t){return this.nullCheck(e,t,dt.ADDITION),e+t}}var Gt={};t(Gt,"ArithmeticDivisionOperator",(()=>bt));class bt extends Lt{apply(e,t){return this.nullCheck(e,t,dt.DIVISION),e/t}}var Dt={};t(Dt,"ArithmeticIntegerDivisionOperator",(()=>Ft));class Ft extends Lt{apply(e,t){return this.nullCheck(e,t,dt.DIVISION),Math.floor(e/t)}}var Yt={};t(Yt,"ArithmeticModulusOperator",(()=>Bt));class Bt extends Lt{apply(e,t){return this.nullCheck(e,t,dt.MOD),e%t}}var Ht={};t(Ht,"ArithmeticMultiplicationOperator",(()=>kt));class kt extends Lt{apply(e,t){this.nullCheck(e,t,dt.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 $t={};t($t,"ArithmeticSubtractionOperator",(()=>Xt));class Xt extends Lt{apply(e,t){return this.nullCheck(e,t,dt.SUBTRACTION),e-t}}var Wt={};t(Wt,"ArrayOperator",(()=>jt));class jt extends Lt{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 qt={};t(qt,"BitwiseAndOperator",(()=>Jt));class Jt extends Lt{apply(e,t){return this.nullCheck(e,t,dt.BITWISE_AND),e&t}}var zt={};t(zt,"BitwiseLeftShiftOperator",(()=>Qt));class Qt extends Lt{apply(e,t){return this.nullCheck(e,t,dt.BITWISE_LEFT_SHIFT),e<<t}}var Kt={};t(Kt,"BitwiseOrOperator",(()=>Zt));class Zt extends Lt{apply(e,t){return this.nullCheck(e,t,dt.BITWISE_OR),e|t}}var er={};t(er,"BitwiseRightShiftOperator",(()=>tr));class tr extends Lt{apply(e,t){return this.nullCheck(e,t,dt.BITWISE_RIGHT_SHIFT),e>>t}}var rr={};t(rr,"BitwiseUnsignedRightShiftOperator",(()=>nr));class nr extends Lt{apply(e,t){return this.nullCheck(e,t,dt.BITWISE_UNSIGNED_RIGHT_SHIFT),e>>>t}}var sr={};t(sr,"BitwiseXorOperator",(()=>ar));class ar extends Lt{apply(e,t){return this.nullCheck(e,t,dt.BITWISE_XOR),e^t}}var ir={};t(ir,"LogicalAndOperator",(()=>or));class or extends Lt{apply(e,t){const r=Ce.findPrimitiveNullAsBoolean(e),n=Ce.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 Er={};t(Er,"LogicalEqualOperator",(()=>ur));class ur extends Lt{apply(e,t){return Tt(e,t)}}var Ar={};t(Ar,"LogicalGreaterThanEqualOperator",(()=>lr));class lr extends Lt{apply(e,t){const r=Ce.findPrimitiveNullAsBoolean(e),n=Ce.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 mr={};t(mr,"LogicalGreaterThanOperator",(()=>gr));class gr extends Lt{apply(e,t){const r=Ce.findPrimitiveNullAsBoolean(e),n=Ce.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,"LogicalLessThanEqualOperator",(()=>Tr));class Tr extends Lt{apply(e,t){const r=Ce.findPrimitiveNullAsBoolean(e),n=Ce.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 pr={};t(pr,"LogicalLessThanOperator",(()=>hr));class hr extends Lt{apply(e,t){const r=Ce.findPrimitiveNullAsBoolean(e),n=Ce.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 cr={};t(cr,"LogicalNotEqualOperator",(()=>Nr));class Nr extends Lt{apply(e,t){return!Tt(e,t)}}var fr={};t(fr,"LogicalOrOperator",(()=>_r));class _r extends Lt{apply(e,t){const r=Ce.findPrimitiveNullAsBoolean(e),n=Ce.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 Sr={};t(Sr,"ObjectOperator",(()=>Mr));class Mr extends Lt{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 Or={};t(Or,"ArithmeticUnaryMinusOperator",(()=>dr));var wr={};t(wr,"UnaryOperator",(()=>Ir));class Ir{nullCheck(e,t){if(E(e))throw new Ve(K.format("$ cannot be applied to a null value",t.getOperatorName()))}}class dr extends Ir{apply(e){return this.nullCheck(e,dt.UNARY_MINUS),Ce.findPrimitiveNumberType(e),-e}}var Pr={};t(Pr,"ArithmeticUnaryPlusOperator",(()=>yr));class yr extends Ir{apply(e){return this.nullCheck(e,dt.UNARY_PLUS),Ce.findPrimitiveNumberType(e),e}}var xr={};t(xr,"BitwiseComplementOperator",(()=>vr));class vr extends Ir{apply(e){this.nullCheck(e,dt.UNARY_BITWISE_COMPLEMENT);let t=Ce.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 Lr={};t(Lr,"LogicalNotOperator",(()=>Ur));class Ur extends Ir{apply(e){return!e&&""!==e}}var Vr={};t(Vr,"LiteralTokenValueExtractor",(()=>Dr));var Cr={};t(Cr,"TokenValueExtractor",(()=>Gr));class Gr{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(Gr.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(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 _t(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 _t(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 _t(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 _t(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 _t(e,K.format("Unable to retrive $ from $ in the path $",t[r],n.toString(),e))}}const br=new Map([["true",!0],["false",!1],["null",void 0],["undefined",void 0]]);class Dr extends Gr{static INSTANCE=new Dr;getValueInternal(e){if(!Z.isNullOrBlank(e))return e=e.trim(),br.has(e)?br.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 _t(e,K.format("Unable to parse the literal or expression $",e),t)}}processString(e){if(!e.endsWith('"'))throw new _t(e,K.format("String literal $ is not closed properly",e));return e.substring(1,e.length-1)}getPrefix(){return""}}var Fr={},Yr={};t(Yr,"ConditionalTernaryOperator",(()=>Br));class Br 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(Fr,Yr);class Hr extends Gr{static PREFIX="_internal.";values=new Map;addValue(e,t){this.values.set(e,t)}getValueInternal(e){let t=e.split(Gr.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 Hr.PREFIX}}class kr{static UNARY_OPERATORS_MAP=new Map([[dt.UNARY_BITWISE_COMPLEMENT,new vr],[dt.UNARY_LOGICAL_NOT,new Ur],[dt.UNARY_MINUS,new dr],[dt.UNARY_PLUS,new yr]]);static TERNARY_OPERATORS_MAP=new Map([[dt.CONDITIONAL_TERNARY_OPERATOR,new Br]]);static BINARY_OPERATORS_MAP=new Map([[dt.ADDITION,new Ct],[dt.DIVISION,new bt],[dt.INTEGER_DIVISION,new Ft],[dt.MOD,new Bt],[dt.MULTIPLICATION,new kt],[dt.SUBTRACTION,new Xt],[dt.BITWISE_AND,new Jt],[dt.BITWISE_LEFT_SHIFT,new Qt],[dt.BITWISE_OR,new Zt],[dt.BITWISE_RIGHT_SHIFT,new tr],[dt.BITWISE_UNSIGNED_RIGHT_SHIFT,new nr],[dt.BITWISE_XOR,new ar],[dt.AND,new or],[dt.EQUAL,new ur],[dt.GREATER_THAN,new gr],[dt.GREATER_THAN_EQUAL,new lr],[dt.LESS_THAN,new hr],[dt.LESS_THAN_EQUAL,new Tr],[dt.OR,new _r],[dt.NOT_EQUAL,new Nr],[dt.NULLISH_COALESCING_OPERATOR,new Ut],[dt.ARRAY_OPERATOR,new jt],[dt.OBJECT_OPERATOR,new Mr]]);static UNARY_OPERATORS_MAP_KEY_SET=new Set(kr.UNARY_OPERATORS_MAP.keys());internalTokenValueExtractor=new Hr;constructor(e){e instanceof Pt?(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 pt;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 _t(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 Pt(a))}replaceNestingExpression(e,t,r){let n=e;for(var s of r.toArray()){if(-1==s.getT2())throw new _t(e,"Expecting }} nesting path operator to be closed");let r=new kr(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 Pt(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(kr.UNARY_OPERATORS_MAP_KEY_SET.has(e))n.push(this.applyUnaryOperation(e,this.getValueFromToken(t,o)));else if(e==dt.OBJECT_OPERATOR||e==dt.ARRAY_OPERATOR)this.processObjectOrArrayOperator(t,r,n,e,o);else if(e==dt.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 wt)return o.getElement();if(!(o instanceof Pt))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 pt,i=new pt;if(!n||!s)return;do{i.push(n),s instanceof Pt?a.push(new wt(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==dt.OBJECT_OPERATOR||n==dt.ARRAY_OPERATOR);s&&(s instanceof Pt?a.push(new wt(s.toString(),this.evaluateExpression(s,e))):a.push(s)),n&&t.push(n);let o=a.pop();if(o instanceof wt&&"object"==typeof o.getTokenValue()){const e=(new Date).getTime()+""+Math.round(1e3*Math.random());this.internalTokenValueExtractor.addValue(e,o.getTokenValue()),o=new Mt(Hr.PREFIX+e)}let E=new Nt(o instanceof wt?o.getTokenValue():o.toString());for(;!a.isEmpty();)o=a.pop(),n=i.pop(),E.append(n.getOperator()).append(o instanceof wt?o.getTokenValue():o.toString()),n==dt.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 wt(u,this.getValue(u,e)));else{let e;try{e=Dr.INSTANCE.getValue(u)}catch(t){e=u}r.push(new wt(u,e))}}applyTernaryOperation(e,t,r,n){let s=kr.TERNARY_OPERATORS_MAP.get(e);if(!s)throw new _t(this.expression,K.format("No operator found to evaluate $",this.getExpression()));return new wt(e.toString(),s.apply(t,r,n))}applyBinaryOperation(e,t,r){let n=typeof t,s=typeof r,a=kr.BINARY_OPERATORS_MAP.get(e);if(("object"===n||"object"===s)&&e!==dt.EQUAL&&e!==dt.NOT_EQUAL&&e!==dt.NULLISH_COALESCING_OPERATOR)throw new _t(this.expression,K.format("Cannot evaluate expression $ $ $",t,e.getOperator(),r));if(!a)throw new _t(this.expression,K.format("No operator found to evaluate $ $ $",t,e.getOperator(),r));return new wt(e.toString(),a.apply(t,r))}applyUnaryOperation(e,t){if("object"===typeof t||Array.isArray(t))throw new _t(this.expression,K.format("The operator $ cannot be applied to $",e.getOperator(),t));let r=kr.UNARY_OPERATORS_MAP.get(e);if(!r)throw new _t(this.expression,K.format("No Unary operator $ is found to apply on $",e.getOperator(),t));return new wt(e.toString(),r.apply(t))}getValueFromToken(e,t){return t instanceof Pt?this.evaluateExpression(t,e):t instanceof wt?t.getElement():this.getValue(t.getExpression(),e)}getValue(e,t){if(e.length<=5)return Dr.INSTANCE.getValue(e);const r=e.substring(0,e.indexOf(".")+1);return(t.get(r)??Dr.INSTANCE).getValue(e)}}const $r=new j("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 Xr=new j("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 Wr extends Pe{static CONDITION="condition";static SIGNATURE=new j("If").setNamespace(a.SYSTEM).setParameters(new Map([y.ofEntry(Wr.CONDITION,S.of(Wr.CONDITION,l.BOOLEAN))])).setEvents(new Map([Y.eventMapEntry(Y.TRUE,new Map),Y.eventMapEntry(Y.FALSE,new Map),Y.outputEventMapEntry(new Map)]));getSignature(){return Wr.SIGNATURE}async internalExecute(e){var t=e.getArguments()?.get(Wr.CONDITION);return new X([B.of(t?Y.TRUE:Y.FALSE,new Map),B.outputOf(new Map)])}}const jr=new j("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 qr=new j("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 Jr=new j("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 zr=[()=>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 Qr extends Pe{constructor(e,t,r=1,...n){super(),n&&n.length||(n=[l.DOUBLE]),this.parametersNumber=r,this.mathFunction=t,this.signature=new j(e).setNamespace(a.MATH).setParameters(zr[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=Ce.findPrimitiveNumberType(e.getArguments()?.get(1==this.parametersNumber?"value":"value1")).getT2();return 2==this.parametersNumber&&(t=Ce.findPrimitiveNumberType(e.getArguments()?.get("value2")).getT2()),new X([B.outputOf(new Map([["value",this.mathFunction.call(this,r,t)]]))])}}class Kr extends Pe{static SIGNATURE=new j("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 Kr.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get("value");return new X([B.outputOf(new Map([["value",Math.sqrt(t.reduce(((e,t)=>e+t*t),0))]]))])}}const Zr=new j("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 en=new j("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 tn extends Pe{static SIGNATURE=new j("Random").setNamespace(a.MATH).setEvents(new Map([Y.outputEventMapEntry(G.of("value",S.ofDouble("value")))]));getSignature(){return tn.SIGNATURE}async internalExecute(e){return new X([B.outputOf(new Map([["value",Math.random()]]))])}}class rn extends Pe{static MIN_VALUE="minValue";static MAX_VALUE="maxValue";static VALUE="value";static SIGNATURE=new j("RandomFloat").setParameters(G.of(rn.MIN_VALUE,y.of(rn.MIN_VALUE,S.ofFloat(rn.MIN_VALUE).setDefaultValue(0)),rn.MAX_VALUE,y.of(rn.MAX_VALUE,S.ofFloat(rn.MAX_VALUE).setDefaultValue(2147483647)))).setNamespace(a.MATH).setEvents(new Map([Y.outputEventMapEntry(G.of(rn.VALUE,S.ofFloat(rn.VALUE)))]));getSignature(){return rn.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(rn.MIN_VALUE),r=e.getArguments()?.get(rn.MAX_VALUE),n=Math.random()*(r-t)+t;return new X([B.outputOf(new Map([[rn.VALUE,n]]))])}}class nn extends Pe{static MIN_VALUE="minValue";static MAX_VALUE="maxValue";static VALUE="value";static SIGNATURE=new j("RandomInt").setParameters(G.of(nn.MIN_VALUE,y.of(nn.MIN_VALUE,S.ofInteger(nn.MIN_VALUE).setDefaultValue(0)),nn.MAX_VALUE,y.of(nn.MAX_VALUE,S.ofInteger(nn.MAX_VALUE).setDefaultValue(2147483647)))).setNamespace(a.MATH).setEvents(new Map([Y.outputEventMapEntry(G.of(nn.VALUE,S.ofInteger(nn.VALUE)))]));getSignature(){return nn.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(nn.MIN_VALUE),r=e.getArguments()?.get(nn.MAX_VALUE),n=Math.floor(Math.random()*(r-t)+t);return new X([B.outputOf(new Map([[nn.VALUE,n]]))])}}const sn={Absolute:new Qr("Absolute",(e=>Math.abs(e)),1,l.INTEGER,l.LONG,l.FLOAT,l.DOUBLE),ACosine:new Qr("ArcCosine",(e=>Math.acos(e))),ASine:new Qr("ArcSine",(e=>Math.asin(e))),ATangent:new Qr("ArcTangent",(e=>Math.atan(e))),Ceiling:new Qr("Ceiling",(e=>Math.ceil(e))),Cosine:new Qr("Cosine",(e=>Math.cos(e))),CosineH:new Qr("HyperbolicCosine",(e=>Math.cosh(e))),CubeRoot:new Qr("CubeRoot",(e=>Math.cbrt(e))),Exponential:new Qr("Exponential",(e=>Math.exp(e))),Expm1:new Qr("ExponentialMinus1",(e=>Math.expm1(e))),Floor:new Qr("Floor",(e=>Math.floor(e))),Log:new Qr("LogNatural",(e=>Math.log(e))),Log10:new Qr("Log10",(e=>Math.log10(e))),Round:new Qr("Round",(e=>Math.round(e)),1,l.INTEGER,l.LONG),Sine:new Qr("Sine",(e=>Math.sin(e))),SineH:new Qr("HyperbolicSine",(e=>Math.sinh(e))),Tangent:new Qr("Tangent",(e=>Math.tan(e))),TangentH:new Qr("HyperbolicTangent",(e=>Math.tanh(e))),ToDegrees:new Qr("ToDegrees",(e=>e*(Math.PI/180))),ToRadians:new Qr("ToRadians",(e=>e*(180/Math.PI))),SquareRoot:new Qr("SquareRoot",(e=>Math.sqrt(e))),ArcTangent:new Qr("ArcTangent2",((e,t)=>Math.atan2(e,t)),2),Power:new Qr("Power",((e,t)=>Math.pow(e,t)),2),Add:new class extends Pe{getSignature(){return Jr}async internalExecute(e){let t=e.getArguments()?.get("value");return new X([B.outputOf(new Map([["value",t.reduce(((e,t)=>e+t),0)]]))])}},Hypotenuse:new Kr,Maximum:new class extends Pe{getSignature(){return Zr}async internalExecute(e){let t=e.getArguments()?.get("value");return new X([B.outputOf(new Map([["value",t.reduce(((e,t)=>!e&&0!==e||t>e?t:e))]]))])}},Minimum:new class extends Pe{getSignature(){return en}async internalExecute(e){let t=e.getArguments()?.get("value");return new X([B.outputOf(new Map([["value",t.reduce(((e,t)=>!e&&0!==e||t<e?t:e))]]))])}},Random:new tn,RandomFloat:new rn,RandomInt:new nn},an=Object.values(sn).map((e=>e.getSignature().getFullName()));class on{find(e,t){if(e==a.MATH)return sn[t]}filter(e){return an.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}class En extends Pe{static VALUES="values";static SIGNATURE=new j("Print").setNamespace(a.SYSTEM).setParameters(new Map([y.ofEntry(En.VALUES,S.ofAny(En.VALUES),!0)]));getSignature(){return En.SIGNATURE}async internalExecute(e){var t=e.getArguments()?.get(En.VALUES);return console?.log(...t),new X([B.outputOf(new Map)])}}class un 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(un.PARAMETER_STRING_NAME,S.ofString(un.PARAMETER_STRING_NAME));static PARAMETER_SECOND_STRING=new y(un.PARAMETER_SECOND_STRING_NAME,S.ofString(un.PARAMETER_SECOND_STRING_NAME));static PARAMETER_THIRD_STRING=new y(un.PARAMETER_THIRD_STRING_NAME,S.ofString(un.PARAMETER_THIRD_STRING_NAME));static PARAMETER_INDEX=new y(un.PARAMETER_INDEX_NAME,S.ofInteger(un.PARAMETER_INDEX_NAME));static PARAMETER_SECOND_INDEX=new y(un.PARAMETER_SECOND_INDEX_NAME,S.ofInteger(un.PARAMETER_SECOND_INDEX_NAME));static PARAMETER_SEARCH_STRING=new y(un.PARAMETER_SEARCH_STRING_NAME,S.ofString(un.PARAMETER_STRING_NAME));static EVENT_STRING=new Y(Y.OUTPUT,G.of(un.EVENT_RESULT_NAME,S.ofString(un.EVENT_RESULT_NAME)));static EVENT_BOOLEAN=new Y(Y.OUTPUT,G.of(un.EVENT_RESULT_NAME,S.ofBoolean(un.EVENT_RESULT_NAME)));static EVENT_INT=new Y(Y.OUTPUT,G.of(un.EVENT_RESULT_NAME,S.ofInteger(un.EVENT_RESULT_NAME)));static EVENT_ARRAY=new Y(Y.OUTPUT,G.of(un.EVENT_RESULT_NAME,S.ofArray(un.EVENT_RESULT_NAME)));constructor(e,t,r,...n){super();const s=new Map;n.forEach((e=>s.set(e.getParameterName(),e))),this.signature=new j(t).setNamespace(e).setParameters(s).setEvents(G.of(r.getName(),r))}getSignature(){return this.signature}static ofEntryAsStringBooleanOutput(e,t){return[e,new class extends un{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(un.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(un.PARAMETER_SEARCH_STRING_NAME);return new X([B.outputOf(G.of(un.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,un.EVENT_BOOLEAN,un.PARAMETER_STRING,un.PARAMETER_SEARCH_STRING)]}static ofEntryAsStringAndIntegerStringOutput(e,t){return[e,new class extends un{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(un.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(un.PARAMETER_INDEX_NAME);return new X([B.outputOf(G.of(un.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,un.EVENT_STRING,un.PARAMETER_STRING,un.PARAMETER_INDEX)]}static ofEntryAsStringIntegerOutput(e,t){return[e,new class extends un{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(un.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(un.PARAMETER_SEARCH_STRING_NAME);return new X([B.outputOf(G.of(un.EVENT_RESULT_NAME,t(r,n)))])}}(a.STRING,e,un.EVENT_INT,un.PARAMETER_STRING,un.PARAMETER_SEARCH_STRING)]}static ofEntryString(e,t){return[e,new class extends un{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(un.PARAMETER_STRING_NAME);return new X([B.outputOf(G.of(un.EVENT_RESULT_NAME,t(r)))])}}(a.STRING,e,un.EVENT_STRING,un.PARAMETER_STRING)]}static ofEntryStringBooleanOutput(e,t){return[e,new class extends un{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(un.PARAMETER_STRING_NAME);return new X([B.outputOf(G.of(un.EVENT_RESULT_NAME,t(r)))])}}(a.STRING,e,un.EVENT_BOOLEAN,un.PARAMETER_STRING)]}static ofEntryAsStringStringIntegerIntegerOutput(e,t){return[e,new class extends un{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(un.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(un.PARAMETER_SEARCH_STRING_NAME),s=e?.getArguments()?.get(un.PARAMETER_INDEX_NAME);return new X([B.outputOf(G.of(un.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,un.EVENT_INT,un.PARAMETER_STRING,un.PARAMETER_SEARCH_STRING,un.PARAMETER_INDEX)]}static ofEntryAsStringIntegerIntegerStringOutput(e,t){return[e,new class extends un{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(un.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(un.PARAMETER_INDEX_NAME),s=e?.getArguments()?.get(un.PARAMETER_SECOND_INDEX_NAME);return new X([B.outputOf(G.of(un.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,un.EVENT_INT,un.PARAMETER_STRING,un.PARAMETER_INDEX,un.PARAMETER_SECOND_INDEX)]}static ofEntryAsStringStringStringStringOutput(e,t){return[e,new class extends un{constructor(e,t,r,...n){super(e,t,r,...n)}async internalExecute(e){let r=e?.getArguments()?.get(un.PARAMETER_STRING_NAME),n=e?.getArguments()?.get(un.PARAMETER_SECOND_STRING_NAME),s=e?.getArguments()?.get(un.PARAMETER_THIRD_STRING_NAME);return new X([B.outputOf(G.of(un.EVENT_RESULT_NAME,t(r,n,s)))])}}(a.STRING,e,un.EVENT_STRING,un.PARAMETER_STRING,un.PARAMETER_SECOND_STRING,un.PARAMETER_THIRD_STRING)]}}class An extends Pe{static VALUE="value";static SCHEMA=(new S).setName(An.VALUE).setType(new N(l.STRING));static SIGNATURE=new j("Concatenate").setNamespace(a.STRING).setParameters(new Map([[An.VALUE,new y(An.VALUE,An.SCHEMA).setVariableArgument(!0)]])).setEvents(new Map([Y.outputEventMapEntry(new Map([[An.VALUE,S.ofString(An.VALUE)]]))]));constructor(){super()}getSignature(){return An.SIGNATURE}async internalExecute(e){let t=e.getArguments()?.get(An.VALUE),r="";return t.reduce(((e,t)=>r=e+t),r),new X([B.outputOf(new Map([[An.VALUE,r]]))])}}class ln 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(ln.PARAMETER_STRING_NAME,S.ofString(ln.PARAMETER_STRING_NAME));PARAMETER_AT_START=new y(ln.PARAMETER_AT_START_NAME,S.ofInteger(ln.PARAMETER_AT_START_NAME));PARAMETER_AT_END=new y(ln.PARAMETER_AT_END_NAME,S.ofInteger(ln.PARAMETER_AT_END_NAME));EVENT_STRING=new Y(Y.OUTPUT,new Map([[ln.EVENT_RESULT_NAME,S.ofString(ln.EVENT_RESULT_NAME)]]));signature=new j("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(ln.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(ln.PARAMETER_AT_START_NAME),n=e?.getArguments()?.get(ln.PARAMETER_AT_END_NAME);if(n>=r){let e="";return e+=t.substring(0,r),e+=t.substring(n),new X([B.outputOf(new Map([[ln.EVENT_RESULT_NAME,e.toString()]]))])}return new X([B.outputOf(new Map([[ln.EVENT_RESULT_NAME,t]]))])}}class mn 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(mn.PARAMETER_STRING_NAME,S.ofString(mn.PARAMETER_STRING_NAME));PARAMETER_AT_POSITION=new y(mn.PARAMETER_AT_POSITION_NAME,S.ofInteger(mn.PARAMETER_AT_POSITION_NAME));PARAMETER_INSERT_STRING=new y(mn.PARAMETER_INSERT_STRING_NAME,S.ofString(mn.PARAMETER_INSERT_STRING_NAME));EVENT_STRING=new Y(Y.OUTPUT,new Map([[this.EVENT_RESULT_NAME,S.ofString(this.EVENT_RESULT_NAME)]]));signature=new j("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(mn.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(mn.PARAMETER_AT_POSITION_NAME),n=e?.getArguments()?.get(mn.PARAMETER_INSERT_STRING_NAME),s="";return s+=t.substring(0,r),s+=n,s+=t.substring(r),new X([B.outputOf(new Map([[this.EVENT_RESULT_NAME,s]]))])}}class gn 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(gn.PARAMETER_STRING_NAME,S.ofString(gn.PARAMETER_STRING_NAME));static PARAMETER_POSTPAD_STRING=new y(gn.PARAMETER_POSTPAD_STRING_NAME,S.ofString(gn.PARAMETER_POSTPAD_STRING_NAME));static PARAMETER_LENGTH=new y(gn.PARAMETER_LENGTH_NAME,S.ofInteger(gn.PARAMETER_LENGTH_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[gn.EVENT_RESULT_NAME,S.ofString(gn.EVENT_RESULT_NAME)]]));signature=new j("PostPad").setNamespace(a.STRING).setParameters(new Map([[gn.PARAMETER_STRING.getParameterName(),gn.PARAMETER_STRING],[gn.PARAMETER_POSTPAD_STRING.getParameterName(),gn.PARAMETER_POSTPAD_STRING],[gn.PARAMETER_LENGTH.getParameterName(),gn.PARAMETER_LENGTH]])).setEvents(new Map([[gn.EVENT_STRING.getName(),gn.EVENT_STRING]]));constructor(){super()}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(gn.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(gn.PARAMETER_POSTPAD_STRING_NAME),n=e.getArguments()?.get(gn.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 X([B.of(gn.EVENT_RESULT_NAME,new Map([[gn.EVENT_RESULT_NAME,s.toString()]]))])}}class Rn 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(Rn.PARAMETER_STRING_NAME,S.ofString(Rn.PARAMETER_STRING_NAME));static PARAMETER_PREPAD_STRING=new y(Rn.PARAMETER_PREPAD_STRING_NAME,S.ofString(Rn.PARAMETER_PREPAD_STRING_NAME));static PARAMETER_LENGTH=new y(Rn.PARAMETER_LENGTH_NAME,S.ofInteger(Rn.PARAMETER_LENGTH_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[Rn.EVENT_RESULT_NAME,S.ofString(Rn.EVENT_RESULT_NAME)]]));signature=new j("PrePad").setNamespace(a.STRING).setParameters(new Map([[Rn.PARAMETER_STRING.getParameterName(),Rn.PARAMETER_STRING],[Rn.PARAMETER_PREPAD_STRING.getParameterName(),Rn.PARAMETER_PREPAD_STRING],[Rn.PARAMETER_LENGTH.getParameterName(),Rn.PARAMETER_LENGTH]])).setEvents(new Map([[Rn.EVENT_STRING.getName(),Rn.EVENT_STRING]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(Rn.PARAMETER_STRING_NAME),r=e.getArguments()?.get(Rn.PARAMETER_PREPAD_STRING_NAME),n=e.getArguments()?.get(Rn.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 X([B.of(Rn.EVENT_RESULT_NAME,new Map([[Rn.EVENT_RESULT_NAME,s]]))])}}class Tn 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(Tn.PARAMETER_STRING_NAME,S.ofString(Tn.PARAMETER_STRING_NAME));static PARAMETER_OTHER_STRING=new y(Tn.PARAMETER_OTHER_STRING_NAME,S.ofString(Tn.PARAMETER_OTHER_STRING_NAME));static PARAMETER_FIRST_OFFSET=new y(Tn.PARAMETER_FIRST_OFFSET_NAME,S.ofInteger(Tn.PARAMETER_FIRST_OFFSET_NAME));static PARAMETER_SECOND_OFFSET=new y(Tn.PARAMETER_SECOND_OFFSET_NAME,S.ofInteger(Tn.PARAMETER_SECOND_OFFSET_NAME));static PARAMETER_INTEGER=new y(Tn.PARAMETER_INTEGER_NAME,S.ofInteger(Tn.PARAMETER_INTEGER_NAME));static PARAMETER_BOOLEAN=new y(Tn.PARAMETER_BOOLEAN_NAME,S.ofBoolean(Tn.PARAMETER_BOOLEAN_NAME));static EVENT_BOOLEAN=new Y(Y.OUTPUT,new Map([[Tn.EVENT_RESULT_NAME,S.ofBoolean(Tn.EVENT_RESULT_NAME)]]));signature=new j("RegionMatches").setNamespace(a.STRING).setParameters(new Map([[Tn.PARAMETER_STRING.getParameterName(),Tn.PARAMETER_STRING],[Tn.PARAMETER_BOOLEAN.getParameterName(),Tn.PARAMETER_BOOLEAN],[Tn.PARAMETER_FIRST_OFFSET.getParameterName(),Tn.PARAMETER_FIRST_OFFSET],[Tn.PARAMETER_OTHER_STRING.getParameterName(),Tn.PARAMETER_OTHER_STRING],[Tn.PARAMETER_SECOND_OFFSET.getParameterName(),Tn.PARAMETER_SECOND_OFFSET],[Tn.PARAMETER_INTEGER.getParameterName(),Tn.PARAMETER_INTEGER]])).setEvents(new Map([[Tn.EVENT_BOOLEAN.getName(),Tn.EVENT_BOOLEAN]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(Tn.PARAMETER_STRING_NAME),r=e.getArguments()?.get(Tn.PARAMETER_BOOLEAN_NAME),n=e.getArguments()?.get(Tn.PARAMETER_FIRST_OFFSET_NAME),s=e?.getArguments()?.get(Tn.PARAMETER_OTHER_STRING_NAME),a=e?.getArguments()?.get(Tn.PARAMETER_SECOND_OFFSET_NAME),i=e.getArguments()?.get(Tn.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 X([B.outputOf(new Map([[Tn.EVENT_RESULT_NAME,o]]))])}}class pn 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(pn.PARAMETER_STRING_NAME,S.ofString(pn.PARAMETER_STRING_NAME));static PARAMETER_AT_START=new y(pn.PARAMETER_AT_START_NAME,S.ofInteger(pn.PARAMETER_AT_START_NAME));static PARAMETER_AT_LENGTH=new y(pn.PARAMETER_AT_LENGTH_NAME,S.ofInteger(pn.PARAMETER_AT_LENGTH_NAME));static PARAMETER_REPLACE_STRING=new y(pn.PARAMETER_REPLACE_STRING_NAME,S.ofString(pn.PARAMETER_REPLACE_STRING_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[pn.EVENT_RESULT_NAME,S.ofString(pn.EVENT_RESULT_NAME)]]));constructor(){super()}signature=new j("ReplaceAtGivenPosition").setNamespace(a.STRING).setParameters(new Map([[pn.PARAMETER_STRING.getParameterName(),pn.PARAMETER_STRING],[pn.PARAMETER_AT_START.getParameterName(),pn.PARAMETER_AT_START],[pn.PARAMETER_AT_LENGTH.getParameterName(),pn.PARAMETER_AT_LENGTH],[pn.PARAMETER_REPLACE_STRING.getParameterName(),pn.PARAMETER_REPLACE_STRING]])).setEvents(new Map([[pn.EVENT_STRING.getName(),pn.EVENT_STRING]]));getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(pn.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(pn.PARAMETER_AT_START_NAME),n=e?.getArguments()?.get(pn.PARAMETER_AT_LENGTH_NAME),s=e?.getArguments()?.get(pn.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 X([B.outputOf(new Map([[pn.EVENT_RESULT_NAME,t]]))])}}class hn extends Pe{VALUE="value";SIGNATURE=new j("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 X([B.outputOf(G.of(this.VALUE,n))])}}class cn 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 j("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 X([B.outputOf(G.of(this.EVENT_ARRAY.getName(),t.split(r)))])}}class Nn 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 j("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 X([B.outputOf(new Map([[this.EVENT_RESULT_NAME,r]]))])}}class fn extends Pe{static PARAMETER_STRING_NAME="string";static PARAMETER_LENGTH_NAME="length";static EVENT_RESULT_NAME="result";static PARAMETER_STRING=new y(fn.PARAMETER_STRING_NAME,S.ofString(fn.PARAMETER_STRING_NAME));static PARAMETER_LENGTH=new y(fn.PARAMETER_LENGTH_NAME,S.ofInteger(fn.PARAMETER_LENGTH_NAME));static EVENT_STRING=new Y(Y.OUTPUT,new Map([[fn.EVENT_RESULT_NAME,S.ofString(fn.EVENT_RESULT_NAME)]]));signature=new j("TrimTo").setNamespace(a.STRING).setParameters(new Map([[fn.PARAMETER_STRING.getParameterName(),fn.PARAMETER_STRING],[fn.PARAMETER_LENGTH.getParameterName(),fn.PARAMETER_LENGTH]])).setEvents(new Map([[fn.EVENT_STRING.getName(),fn.EVENT_STRING]]));getSignature(){return this.signature}constructor(){super()}async internalExecute(e){let t=e.getArguments()?.get(fn.PARAMETER_STRING_NAME),r=e.getArguments()?.get(fn.PARAMETER_LENGTH_NAME);return new X([B.of(fn.EVENT_RESULT_NAME,new Map([[fn.EVENT_RESULT_NAME,t.substring(0,r)]]))])}}class _n{static repoMap=G.ofArrayEntries(un.ofEntryString("Trim",(e=>e.trim())),un.ofEntryString("LowerCase",(e=>e.toLocaleLowerCase())),un.ofEntryString("UpperCase",(e=>e.toUpperCase())),un.ofEntryStringBooleanOutput("IsBlank",(e=>""===e.trim())),un.ofEntryStringBooleanOutput("IsEmpty",(e=>""===e)),un.ofEntryAsStringBooleanOutput("Contains",((e,t)=>-1!=e.indexOf(t))),un.ofEntryAsStringBooleanOutput("EndsWith",((e,t)=>e.endsWith(t))),un.ofEntryAsStringBooleanOutput("EqualsIgnoreCase",((e,t)=>e.toUpperCase()==t.toUpperCase())),un.ofEntryAsStringBooleanOutput("Matches",((e,t)=>new RegExp(t).test(e))),un.ofEntryAsStringIntegerOutput("IndexOf",((e,t)=>e.indexOf(t))),un.ofEntryAsStringIntegerOutput("LastIndexOf",((e,t)=>e.lastIndexOf(t))),un.ofEntryAsStringAndIntegerStringOutput("Repeat",((e,t)=>e.repeat(t))),un.ofEntryAsStringStringIntegerIntegerOutput("IndexOfWithStartPoint",((e,t,r)=>e.indexOf(t,r))),un.ofEntryAsStringStringIntegerIntegerOutput("LastIndexOfWithStartPoint",((e,t,r)=>e.lastIndexOf(t,r))),un.ofEntryAsStringStringStringStringOutput("Replace",((e,t,r)=>e)),un.ofEntryAsStringStringStringStringOutput("ReplaceFirst",((e,t,r)=>e.replace(t,r))),un.ofEntryAsStringIntegerIntegerStringOutput("SubString",((e,t,r)=>e.substring(t,r))),V(new An),V(new ln),V(new mn),V(new gn),V(new Rn),V(new Tn),V(new pn),V(new hn),V(new cn),V(new Nn),V(new fn));static filterableNames=Array.from(_n.repoMap.values()).map((e=>e.getSignature().getFullName()));find(e,t){if(e==a.STRING)return _n.repoMap.get(t)}filter(e){return _n.filterableNames.filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}var Sn={};t(Sn,"HybridRepository",(()=>Mn));class Mn{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 On=new Map([[a.SYSTEM_CTX,new Map([V(new class extends Pe{getSignature(){return At}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 ut(r,E(r.getDefaultValue())?void 0:r.getDefaultValue())),new X([B.outputOf(new Map)])}}),V(new class extends Pe{getSignature(){return lt}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 X([B.outputOf(new Map(["value",e.getContext()?.get(t)?.getElement()]))])}}),V(new class extends Pe{getSignature(){return $r}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 Pt(t),s=n.getTokens().peekLast();if(!s.getExpression().startsWith("Context")||s instanceof Pt||s instanceof wt&&!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!=dt.ARRAY_OPERATOR&&e!=dt.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 Pt&&n.getTokens().set(r,new wt(t,new kr(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 X([B.outputOf(new Map)]);let o=i.getElement(),u=a.removeLast(),A=s.removeLast(),l=A instanceof wt?A.getElement():A.getExpression();for(E(o)&&(o=u==dt.OBJECT_OPERATOR?{}:[],i.setElement(o));!a.isEmpty();)o=u==dt.OBJECT_OPERATOR?this.getDataFromObject(o,l,a.peekLast()):this.getDataFromArray(o,l,a.peekLast()),u=a.removeLast(),A=s.removeLast(),l=A instanceof wt?A.getElement():A.getExpression();return u==dt.OBJECT_OPERATOR?this.putDataInObject(o,l,r):this.putDataInArray(o,l,r),new X([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==dt.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==dt.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([V(new class extends Pe{getSignature(){return qr}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 X({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}})}}),V(new class extends Pe{getSignature(){return jr}async internalExecute(e){let t=e.getArguments()?.get("count"),r=0;return new X({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([V(new Wr),V(new class extends Pe{getSignature(){return Xr}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 kr(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 X([B.outputOf(new Map)])}}),V(new En)])]]),wn=Array.from(On.values()).flatMap((e=>Array.from(e.values()))).map((e=>e.getSignature().getFullName()));class In extends Mn{constructor(){super({find:(e,t)=>On.get(e)?.get(t),filter:e=>Array.from(wn).filter((t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))},new on,new _n,new ot)}}var dn={};t(dn,"StatementExecution",(()=>xn));var Pn={};t(Pn,"StatementMessage",(()=>yn));class yn{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 xn{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 yn(e,t))}addDependency(e){this.dependencies.add(e)}getDepenedencies(){return this.dependencies}equals(e){if(!(e instanceof xn))return!1;return e.statement.equals(this.statement)}}var vn={};t(vn,"ContextTokenValueExtractor",(()=>Ln));class Ln extends Gr{static PREFIX="Context.";constructor(e){super(),this.context=e}getValueInternal(e){let t=e.split(Gr.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 Ln.PREFIX}}var Un={};t(Un,"OutputMapTokenValueExtractor",(()=>Vn));class Vn extends Gr{static PREFIX="Steps.";constructor(e){super(),this.output=e}getValueInternal(e){let t=e.split(Gr.REGEX_DOT),r=1,n=this.output.get(t[r++]);if(!n||r>=t.length)return;let s=n.get(t[r++]);if(!s||r>=t.length)return;let a=s.get(t[r++]);return this.retrieveElementFrom(e,t,r,a)}getPrefix(){return Vn.PREFIX}}var Cn={};t(Cn,"ArgumentsTokenValueExtractor",(()=>Gn));class Gn extends Gr{static PREFIX="Arguments.";constructor(e){super(),this.args=e}getValueInternal(e){let t=e.split(Gr.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 Gn.PREFIX}}var bn={};t(bn,"GraphVertex",(()=>Yn));var Dn={};t(Dn,"ExecutionGraph",(()=>Fn));class Fn{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 Yn(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 pt(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 Yn{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 Fn(!0);var r=new pt(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 Bn={};t(Bn,"KIRuntime",(()=>Zn));var Hn={};t(Hn,"JsonExpression",(()=>kn));class kn{constructor(e){this.expression=e}getExpression(){return this.expression}}var $n={};let Xn;var Wn;t($n,"ParameterReferenceType",(()=>Xn)),(Wn=Xn||(Xn={})).VALUE="VALUE",Wn.EXPRESSION="EXPRESSION";var jn={};function qn(){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(jn,"FunctionExecutionParameters",(()=>Jn));class Jn{count=0;valueExtractors=new Map;constructor(e,t,r){this.functionRepository=e,this.schemaRepository=t,this.executionId=r??qn()}getExecutionId(){return this.executionId}getContext(){return this.context}setContext(e){this.context=e;let t=new Ln(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 Vn(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 zn={};let Qn;var Kn;t(zn,"StatementMessageType",(()=>Qn)),(Kn=Qn||(Qn={})).ERROR="ERROR",Kn.WARNING="WARNING",Kn.MESSAGE="MESSAGE";class Zn 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()>Zn.VERSION)throw new $("Runtime is at a lower version "+Zn.VERSION+" and trying to run code from version "+this.fd.getVersion()+".")}getSignature(){return this.fd}async getExecutionPlan(e,t){let r=new Fn;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(Qn.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 Gn(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 pt;r.addAll(e.getVerticesWithNoIncomingEdges());let n=new pt;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()==Zn.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")}return new X(Array.from(t.getEvents()?.entries()??[]).flatMap((e=>e[1].map((t=>B.of(e[0],t))))))}async processExecutionQue(e,t,r){if(!t.isEmpty()){let n=t.pop();await this.allDependenciesResolvedVertex(n,e.getSteps())?await this.executeVertex(n,e,r,t,e.getFunctionRepository()):t.add(n)}}async processBranchQue(e,t,r){if(r.length){let n=r.pop();await this.allDependenciesResolvedTuples(n.getT2(),e.getSteps())?await this.executeBranch(e,t,n):r.add(n)}}async executeBranch(e,t,r){let n,s=r.getT4();do{if(await this.executeGraph(r.getT1(),e),n=r.getT3().next(),n&&(e.getSteps()?.has(s.getData().getStatement().getStatementName())||e.getSteps()?.set(s.getData().getStatement().getStatementName(),new Map),e.getSteps()?.get(s.getData().getStatement().getStatementName())?.set(n.getName(),this.resolveInternalExpressions(n.getResult(),e)),this.debugMode)){const t=s.getData().getStatement();console.log(`EID: ${e.getExecutionId()} Step : ${t.getStatementName()} => ${t.getNamespace()}.${t.getName()}`),console.log(`EID: ${e.getExecutionId()} Event : ${n.getName()} : `,e.getSteps().get(t.getStatementName()).get(n.getName()))}}while(n&&n.getName()!=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 Zn?new Jn(t.getFunctionRepository(),t.getSchemaRepository(),`${t.getExecutionId()}_${a.getStatementName()}`).setArguments(E).setValuesMap(new Map(Array.from(t.getValuesMap().values()).filter((e=>e.getPrefix()!==Gn.PREFIX&&e.getPrefix()!==Vn.PREFIX&&e.getPrefix()!==Ln.PREFIX)).map((e=>[e.getPrefix(),e])))):new Jn(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),m=l.next();if(!m)throw new $(K.format("Executing $ returned no events",a.getStatementName()));let g=m.getName()==Y.OUTPUT;if(t.getSteps()?.has(a.getStatementName())||t.getSteps().set(a.getStatementName(),new Map),t.getSteps().get(a.getStatementName()).set(m.getName(),this.resolveInternalExpressions(m.getResult(),t)),this.debugMode&&(console.log(`EID: ${t.getExecutionId()} Step : ${a.getStatementName()} => ${a.getNamespace()}.${a.getName()}`),console.log(`EID: ${t.getExecutionId()} Event : ${m.getName()} : `,t.getSteps().get(a.getStatementName()).get(m.getName()))),g){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(m.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 kn){return new kr(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))).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()==Xn.VALUE)r=this.resolveInternalExpression(t.getValue(),e);else if(t.getType()==Xn.EXPRESSION&&!Z.isNullOrBlank(t.getExpression())){r=new kr(t.getExpression()??"").evaluate(e.getValuesMap())}return r}prepareStatementExecution(e,t,r){let n=new xn(e),s=t.find(e.getNamespace(),e.getName());if(!s)return n.addMessage(Qn.ERROR,K.format("$.$ is not available",e.getNamespace(),e.getName())),n;let a=new Map(s.getSignature().getParameters());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 E(oe.getDefaultValue(e.getSchema(),r))&&n.addMessage(Qn.ERROR,K.format(Zn.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()||E(oe.getDefaultValue(e.getSchema(),r))&&n.addMessage(Qn.ERROR,K.format(Zn.PARAMETER_NEEDS_A_VALUE,e.getParameterName()));return n}parameterReferenceValidation(e,t,r,n){if(r){if(r.getType()==Xn.VALUE){E(r.getValue())&&E(oe.getDefaultValue(t.getSchema(),n))&&e.addMessage(Qn.ERROR,K.format(Zn.PARAMETER_NEEDS_A_VALUE,t.getParameterName()));let s=new pt;for(s.push(new re(t.getSchema(),r.getValue()));!s.isEmpty();){let t=s.pop();if(t.getT2()instanceof kn)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()==Xn.EXPRESSION)if(Z.isNullOrBlank(r.getExpression()))E(oe.getDefaultValue(t.getSchema(),n))&&e.addMessage(Qn.ERROR,K.format(Zn.PARAMETER_NEEDS_A_VALUE,t.getParameterName()));else try{this.addDependencies(e,r.getExpression())}catch(t){e.addMessage(Qn.ERROR,K.format("Error evaluating $ : $",r.getExpression(),t))}}else E(oe.getDefaultValue(t.getSchema(),n))&&e.addMessage(Qn.ERROR,K.format(Zn.PARAMETER_NEEDS_A_VALUE,t.getParameterName()))}addDependencies(e,t){t&&Array.from(t.match(Zn.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",(()=>ts));class ts{static NAMESPACE="namespace";static NAME="name";static ID="id";constructor(){}}var rs={};t(rs,"Position",(()=>ns));class ns{static SCHEMA_NAME="Position";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(ns.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){return e?new ns(e.left,e.top):new ns(-1,-1)}}var ss={};t(ss,"FunctionDefinition",(()=>Rs));var as={};t(as,"Statement",(()=>As));var is={};t(is,"AbstractStatement",(()=>os));class os{override=!1;constructor(e){e&&(this.comment=e.comment,this.description=e.description,this.position=e.position?new ns(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 Es={};t(Es,"ParameterReference",(()=>us));class us{static SCHEMA_NAME="ParameterReference";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(us.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 us){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=qn()}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 us(Xn.EXPRESSION).setExpression(e);return[t.getKey(),t]}static ofValue(e){const t=new us(Xn.VALUE).setValue(e);return[t.getKey(),t]}static from(e){return new us(e.type).setValue(e.value).setExpression(e.expression).setKey(e.key).setOrder(e.order)}}class As extends os{static SCHEMA_NAME="Statement";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(As.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(us.SCHEMA))))],["position",ns.SCHEMA]]));constructor(e,t,r){if(super(e instanceof As?e:void 0),e instanceof As){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 us(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 As))return!1;return e.statementName==this.statementName}static ofEntry(e){return[e.statementName,e]}static from(e){return new As(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])=>us.from(t))).map((e=>[e.getKey(),e])))])))).setDependentStatements(new Map(Object.entries(e.dependentStatements??{}))).setPosition(ns.from(e.position)).setComment(e.comment).setDescription(e.description)}}var ls={};t(ls,"StatementGroup",(()=>ms));class ms extends os{static SCHEMA_NAME="StatementGroup";static SCHEMA=(new S).setNamespace(a.SYSTEM).setName(ms.SCHEMA_NAME).setType(f.of(l.OBJECT)).setProperties(new Map([["statementGroupName",S.ofString("statementGroupName")],["comment",S.ofString("comment")],["description",S.ofString("description")],["position",ns.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 ms(e.statementGroupName,new Map(Object.entries(e.statements||{}).map((([e,t])=>[e,"true"==(""+t)?.toLowerCase()])))).setPosition(ns.from(e.position)).setComment(e.comment).setDescription(e.description)}}const gs=(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(As.SCHEMA))]]));gs.getProperties()?.set("parts",S.ofArray("parts",gs));class Rs extends j{static SCHEMA=gs;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 Rs(e.name).setSteps(new Map(Object.values(e.steps??{}).filter((e=>!!e)).map((e=>[e.statementName,As.from(e)])))).setStepGroups(new Map(Object.values(e.stepGroups??{}).filter((e=>!!e)).map((e=>[e.statementGroupName,ms.from(e)])))).setParts(Array.from(e.parts??[]).filter((e=>!!e)).map((e=>Rs.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 Rs("unknown")}}var Ts={};t(Ts,"Argument",(()=>ps));class ps{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 ps(0,e,t)}}var hs={};e(hs,Or),e(hs,Pr),e(hs,xr),e(hs,Lr),e(hs,wr);var cs={};e(cs,Vt),e(cs,Gt),e(cs,Dt),e(cs,Yt),e(cs,Ht),e(cs,$t),e(cs,Wt),e(cs,vt),e(cs,qt),e(cs,zt),e(cs,Kt),e(cs,er),e(cs,rr),e(cs,sr),e(cs,ir),e(cs,Er),e(cs,Ar),e(cs,mr),e(cs,Rr),e(cs,cr),e(cs,pr),e(cs,fr),e(cs,Sr),e(cs,xt),e(module.exports,r),e(module.exports,U),e(module.exports,{}),e(module.exports,Le),e(module.exports,C),e(module.exports,o),e(module.exports,gt),e(module.exports,ct),e(module.exports,Q),e(module.exports,z),e(module.exports,te),e(module.exports,be),e(module.exports,Rt),e(module.exports,dn),e(module.exports,Pn),e(module.exports,Et),e(module.exports,vn),e(module.exports,Un),e(module.exports,Cn),e(module.exports,bn),e(module.exports,{}),e(module.exports,Dn),e(module.exports,Bn),e(module.exports,zn),e(module.exports,jn),e(module.exports,mt),e(module.exports,Cr),e(module.exports,Vr),e(module.exports,yt),e(module.exports,It),e(module.exports,St),e(module.exports,ft),e(module.exports,Ot),e(module.exports,{}),e(module.exports,q),e(module.exports,s),e(module.exports,Hn),e(module.exports,n),e(module.exports,he),e(module.exports,ge),e(module.exports,Te),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,c),e(module.exports,g),e(module.exports,R),e(module.exports,T),e(module.exports,A),e(module.exports,ee),e(module.exports,Se),e(module.exports,Sn),e(module.exports,es),e(module.exports,M),e(module.exports,H),e(module.exports,rs),e(module.exports,ss),e(module.exports,$n),e(module.exports,D),e(module.exports,is),e(module.exports,as),e(module.exports,{}),e(module.exports,ls),e(module.exports,W),e(module.exports,F),e(module.exports,I),e(module.exports,Ts),e(module.exports,Es),e(module.exports,Ue),e(module.exports,k),e(module.exports,hs),e(module.exports,cs),e(module.exports,Fr);
|
|
2
2
|
//# sourceMappingURL=index.js.map
|