@fincity/kirun-js 2.10.0 → 2.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__tests__/engine/function/system/ValidateSchemaTest.ts +157 -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.map +1 -1
- package/package.json +1 -1
- package/src/engine/function/system/ValidateSchema.ts +76 -0
- package/src/engine/repository/KIRunFunctionRepository.ts +2 -0
package/dist/module.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{DateTime as e}from"luxon";function t(e,t,r,s){Object.defineProperty(e,t,{get:r,set:s,enumerable:!0,configurable:!0})}function r(e,t){return Object.keys(t).forEach(function(r){"default"===r||"__esModule"===r||Object.prototype.hasOwnProperty.call(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[r]}})}),e}t({},"KIRunSchemaRepository",()=>v);var s,n,a,i,o,E,u={};t(u,"AdditionalType",()=>w),t(u,"Schema",()=>P),t({},"Namespaces",()=>A);class A{static{this.SYSTEM="System"}static{this.SYSTEM_CTX="System.Context"}static{this.SYSTEM_LOOP="System.Loop"}static{this.SYSTEM_ARRAY="System.Array"}static{this.SYSTEM_OBJECT="System.Object"}static{this.MATH="System.Math"}static{this.STRING="System.String"}static{this.DATE="System.Date"}constructor(){}}function T(e){return null==e}t({},"ArraySchemaType",()=>l),t({},"isNullValue",()=>T);class l{constructor(e){if(!e)return;this.singleSchema=e.singleSchema?new P(e.singleSchema):void 0,this.tupleSchema=e.tupleSchema?e.tupleSchema.map(e=>new P(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!T(this.singleSchema)}static of(...e){return 1==e.length?new l().setSingleSchema(e[0]):new l().setTupleSchema(e)}static from(e){if(!e)return;if(Array.isArray(e))return new l().setTupleSchema(P.fromListOfSchemas(e));let t=Object.keys(e);if(-1!=t.indexOf("singleSchema"))return new l().setSingleSchema(P.from(e.singleSchema));if(-1!=t.indexOf("tupleSchema"))return new l().setTupleSchema(P.fromListOfSchemas(e.tupleSchema));let r=P.from(e);if(r)return new l().setSingleSchema(r)}}t({},"SchemaType",()=>c);var c=((s={}).INTEGER="Integer",s.LONG="Long",s.FLOAT="Float",s.DOUBLE="Double",s.STRING="String",s.OBJECT="Object",s.ARRAY="Array",s.BOOLEAN="Boolean",s.NULL="Null",s);t({},"TypeUtil",()=>m),t({},"MultipleType",()=>h),t({},"Type",()=>R);class R{}class h extends R{constructor(e){super(),e instanceof h?this.type=new Set(Array.from(e.type)):this.type=new Set(Array.from(e))}getType(){return this.type}setType(e){return this.type=e,this}getAllowedSchemaTypes(){return this.type}contains(e){return this.type?.has(e)}}t({},"SingleType",()=>g);class g extends R{constructor(e){super(),e instanceof g?this.type=e.type:this.type=e}getType(){return this.type}getAllowedSchemaTypes(){return new Set([this.type])}contains(e){return this.type==e}}class m{static of(...e){return 1==e.length?new g(e[0]):new h(new Set(e))}static from(e){return"string"==typeof e?new g(c[m.fromJSONType(e)]):Array.isArray(e)?new h(new Set(e.map(m.fromJSONType).map(e=>e).map(e=>c[e]))):void 0}static fromJSONType(e){let t=e.toUpperCase();return"NUMBER"===t?"DOUBLE":t}}let p="additionalProperty",f="additionalItems",N="enums",_="items",M="System.Schema",S="required",O="version",d="namespace";class w{constructor(e){if(!e||(this.booleanValue=e.booleanValue,!e.schemaValue))return;this.schemaValue=new P(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(T(e))return;let t=new w;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=P.from(e.schemaValue):t.schemaValue=P.from(e)}return t}}class P{static{this.NULL=new P().setNamespace(A.SYSTEM).setName("Null").setType(m.of(c.NULL)).setConstant(void 0)}static{this.TYPE_SCHEMA=new P().setType(m.of(c.STRING)).setEnums(["INTEGER","LONG","FLOAT","DOUBLE","STRING","OBJECT","ARRAY","BOOLEAN","NULL"])}static{this.SCHEMA=new P().setNamespace(A.SYSTEM).setName("Schema").setType(m.of(c.OBJECT)).setProperties(new Map([[d,P.of(d,c.STRING).setDefaultValue("_")],["name",P.ofString("name")],[O,P.of(O,c.INTEGER).setDefaultValue(1)],["ref",P.ofString("ref")],["type",new P().setAnyOf([P.TYPE_SCHEMA,P.ofArray("type",P.TYPE_SCHEMA)])],["anyOf",P.ofArray("anyOf",P.ofRef(M))],["allOf",P.ofArray("allOf",P.ofRef(M))],["oneOf",P.ofArray("oneOf",P.ofRef(M))],["not",P.ofRef(M)],["title",P.ofString("title")],["description",P.ofString("description")],["id",P.ofString("id")],["examples",P.ofAny("examples")],["defaultValue",P.ofAny("defaultValue")],["comment",P.ofString("comment")],[N,P.ofArray(N,P.ofString(N))],["constant",P.ofAny("constant")],["pattern",P.ofString("pattern")],["format",P.of("format",c.STRING).setEnums(["DATETIME","TIME","DATE","EMAIL","REGEX"])],["minLength",P.ofInteger("minLength")],["maxLength",P.ofInteger("maxLength")],["multipleOf",P.ofLong("multipleOf")],["minimum",P.ofNumber("minimum")],["maximum",P.ofNumber("maximum")],["exclusiveMinimum",P.ofNumber("exclusiveMinimum")],["exclusiveMaximum",P.ofNumber("exclusiveMaximum")],["properties",P.of("properties",c.OBJECT).setAdditionalProperties(new w().setSchemaValue(P.ofRef(M)))],["additionalProperties",new P().setName(p).setNamespace(A.SYSTEM).setAnyOf([P.ofBoolean(p),P.ofObject(p).setRef(M)]).setDefaultValue(!0)],[S,P.ofArray(S,P.ofString(S)).setDefaultValue([])],["propertyNames",P.ofRef(M)],["minProperties",P.ofInteger("minProperties")],["maxProperties",P.ofInteger("maxProperties")],["patternProperties",P.of("patternProperties",c.OBJECT).setAdditionalProperties(new w().setSchemaValue(P.ofRef(M)))],[_,new P().setName(_).setAnyOf([P.ofRef(M).setName("item"),P.ofArray("tuple",P.ofRef(M))])],["contains",P.ofRef(M)],["minContains",P.ofInteger("minContains")],["maxContains",P.ofInteger("maxContains")],["minItems",P.ofInteger("minItems")],["maxItems",P.ofInteger("maxItems")],["uniqueItems",P.ofBoolean("uniqueItems")],["additionalItems",new P().setName(f).setNamespace(A.SYSTEM).setAnyOf([P.ofBoolean(f),P.ofObject(f).setRef(M)])],["$defs",P.of("$defs",c.OBJECT).setAdditionalProperties(new w().setSchemaValue(P.ofRef(M)))],["permission",P.ofString("permission")],["details",P.ofObject("details")]])).setRequired([])}static ofString(e){return new P().setType(m.of(c.STRING)).setName(e)}static ofInteger(e){return new P().setType(m.of(c.INTEGER)).setName(e)}static ofFloat(e){return new P().setType(m.of(c.FLOAT)).setName(e)}static ofLong(e){return new P().setType(m.of(c.LONG)).setName(e)}static ofDouble(e){return new P().setType(m.of(c.DOUBLE)).setName(e)}static ofAny(e){return new P().setType(m.of(c.INTEGER,c.LONG,c.FLOAT,c.DOUBLE,c.STRING,c.BOOLEAN,c.ARRAY,c.NULL,c.OBJECT)).setName(e)}static ofAnyNotNull(e){return new P().setType(m.of(c.INTEGER,c.LONG,c.FLOAT,c.DOUBLE,c.STRING,c.BOOLEAN,c.ARRAY,c.OBJECT)).setName(e)}static ofNumber(e){return new P().setType(m.of(c.INTEGER,c.LONG,c.FLOAT,c.DOUBLE)).setName(e)}static ofBoolean(e){return new P().setType(m.of(c.BOOLEAN)).setName(e)}static of(e,...t){return new P().setType(m.of(...t)).setName(e)}static ofObject(e){return new P().setType(m.of(c.OBJECT)).setName(e)}static ofRef(e){return new P().setRef(e)}static ofArray(e,...t){return new P().setType(m.of(c.ARRAY)).setName(e).setItems(l.of(...t))}static fromListOfSchemas(e){if(T(e)&&!Array.isArray(e))return;let t=[];for(let r of Array.from(e)){let e=P.from(r);e&&t.push(e)}return t}static fromMapOfSchemas(e){if(T(e))return;let t=new Map;return Object.entries(e).forEach(([e,r])=>{let s=P.from(r);s&&t.set(e,s)}),t}static from(e,t=!1){if(T(e))return;let r=new P;return r.namespace=e.namespace??"_",r.name=e.name,r.version=e.version??1,r.ref=e.ref,t?r.type=new g(c.STRING):r.type=m.from(e.type),r.anyOf=P.fromListOfSchemas(e.anyOf),r.allOf=P.fromListOfSchemas(e.allOf),r.oneOf=P.fromListOfSchemas(e.oneOf),r.not=P.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=P.fromMapOfSchemas(e.properties),r.additionalProperties=w.from(e.additionalProperties),r.required=e.required,r.propertyNames=P.from(e.propertyNames,!0),r.minProperties=e.minProperties,r.maxProperties=e.maxProperties,r.patternProperties=P.fromMapOfSchemas(e.patternProperties),r.items=l.from(e.items),r.additionalItems=w.from(e.additionalItems),r.contains=P.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=P.fromMapOfSchemas(e.$defs),r.permission=e.permission,r.details=e.details?new Map(Object.entries(e.details)):void 0,r}constructor(e){if(this.namespace="_",this.version=1,!e)return;this.namespace=e.namespace,this.name=e.name,this.version=e.version,this.ref=e.ref,T(e.type)||(this.type=e.type instanceof g?new g(e.type):new h(e.type)),this.anyOf=e.anyOf?.map(e=>new P(e)),this.allOf=e.allOf?.map(e=>new P(e)),this.oneOf=e.oneOf?.map(e=>new P(e)),this.not=this.not?new P(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 P(e[1])])):void 0,this.additionalProperties=e.additionalProperties?new w(e.additionalProperties):void 0,this.required=e.required?[...e.required]:void 0,this.propertyNames=e.propertyNames?new P(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 P(e[1])])):void 0,this.items=e.items?new l(e.items):void 0,this.contains=e.contains?new P(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 w(e.additionalItems):void 0,this.$defs=e.$defs?new Map(Array.from(e.$defs.entries()).map(e=>[e[0],new P(e[1])])):void 0,this.permission=e.permission,this.details=e.details?new Map(JSON.parse(JSON.stringify(Array.from(e.details.values())))):void 0}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 g(c.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}getDetails(){return this.details}setDetails(e){return this.details=e,this}}t({},"Parameter",()=>L),t({},"SchemaReferenceException",()=>I);class I 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}}t({},"ParameterType",()=>y);var y=((n={}).CONSTANT="CONSTANT",n.EXPRESSION="EXPRESSION",n);let x="value";class L{static{this.SCHEMA_NAME="Parameter"}static{this.SCHEMA=new P().setNamespace(A.SYSTEM).setName(L.SCHEMA_NAME).setProperties(new Map([["schema",P.SCHEMA],["parameterName",P.ofString("parameterName")],["variableArgument",P.of("variableArgument",c.BOOLEAN).setDefaultValue(!1)],["type",P.ofString("type").setEnums(["EXPRESSION","CONSTANT"])]]))}static{this.EXPRESSION=new P().setNamespace(A.SYSTEM).setName("ParameterExpression").setType(m.of(c.OBJECT)).setProperties(new Map([["isExpression",P.ofBoolean("isExpression").setDefaultValue(!0)],[x,P.ofAny(x)]]))}constructor(e,t){if(this.variableArgument=!1,this.type=y.EXPRESSION,e instanceof L)this.schema=new P(e.schema),this.parameterName=e.parameterName,this.variableArgument=e.variableArgument,this.type=e.type;else{if(!t)throw Error("Unknown constructor signature");this.schema=t,this.parameterName=e}}getSchema(){return this.schema}setSchema(e){return this.schema=e,this}getParameterName(){return this.parameterName}setParameterName(e){return this.parameterName=e,this}isVariableArgument(){return this.variableArgument}setVariableArgument(e){return this.variableArgument=e,this}getType(){return this.type}setType(e){return this.type=e,this}static ofEntry(e,t,r=!1,s=y.EXPRESSION){return[e,new L(e,t).setType(s).setVariableArgument(r)]}static of(e,t,r=!1,s=y.EXPRESSION){return new L(e,t).setType(s).setVariableArgument(r)}static from(e){let t=P.from(e.schema);if(!t)throw new I("","Parameter requires Schema");return new L(e.parameterName,t).setVariableArgument(!!e.variableArgument).setType(e.type??y.EXPRESSION)}}var U={};t(U,"MapUtil",()=>b),t(U,"MapEntry",()=>V);class b{static of(e,t,r,s,n,a,i,o,E,u,A,l,c,R,h,g,m,p,f,N){let _=new Map;return T(e)||T(t)||_.set(e,t),T(r)||T(s)||_.set(r,s),T(n)||T(a)||_.set(n,a),T(i)||T(o)||_.set(i,o),T(E)||T(u)||_.set(E,u),T(A)||T(l)||_.set(A,l),T(c)||T(R)||_.set(c,R),T(h)||T(g)||_.set(h,g),T(m)||T(p)||_.set(m,p),T(f)||T(N)||_.set(f,N),_}static ofArrayEntries(...e){let t=new Map;for(let[r,s]of e)t.set(r,s);return t}static entry(e,t){return new V(e,t)}static ofEntries(...e){let t=new Map;for(let r of e)t.set(r.k,r.v);return t}static ofEntriesArray(...e){let t=new Map;for(let r=0;r<e.length;r++)t.set(e[r][0],e[r][1]);return t}constructor(){}}class V{constructor(e,t){this.k=e,this.v=t}}class v{constructor(){this.map=new Map([["any",P.ofAny("any").setNamespace(A.SYSTEM)],["boolean",P.ofBoolean("boolean").setNamespace(A.SYSTEM)],["double",P.ofDouble("double").setNamespace(A.SYSTEM)],["float",P.ofFloat("float").setNamespace(A.SYSTEM)],["integer",P.ofInteger("integer").setNamespace(A.SYSTEM)],["long",P.ofLong("long").setNamespace(A.SYSTEM)],["number",P.ofNumber("number").setNamespace(A.SYSTEM)],["string",P.ofString("string").setNamespace(A.SYSTEM)],["Timestamp",P.ofString("Timestamp").setNamespace(A.DATE)],["Timeunit",P.ofString("Timeunit").setNamespace(A.DATE).setEnums(["YEARS","QUARTERS","MONTHS","WEEKS","DAYS","HOURS","MINUTES","SECONDS","MILLISECONDS"])],["Duration",P.ofObject("Duration").setNamespace(A.DATE).setProperties(b.ofArrayEntries(["years",P.ofNumber("years")],["quarters",P.ofNumber("quarters")],["months",P.ofNumber("months")],["weeks",P.ofNumber("weeks")],["days",P.ofNumber("days")],["hours",P.ofNumber("hours")],["minutes",P.ofNumber("minutes")],["seconds",P.ofNumber("seconds")],["milliseconds",P.ofNumber("milliseconds")])).setAdditionalItems(w.from(!1))],["TimeObject",P.ofObject("TimeObject").setNamespace(A.DATE).setProperties(b.ofArrayEntries(["year",P.ofNumber("year")],["month",P.ofNumber("month")],["day",P.ofNumber("day")],["hour",P.ofNumber("hour")],["minute",P.ofNumber("minute")],["second",P.ofNumber("second")],["millisecond",P.ofNumber("millisecond")])).setAdditionalItems(w.from(!1))],[L.EXPRESSION.getName(),L.EXPRESSION],[P.NULL.getName(),P.NULL],[P.SCHEMA.getName(),P.SCHEMA]]),this.filterableNames=Array.from(this.map.values()).map(e=>e.getFullName())}async find(e,t){return A.SYSTEM!=e&&A.DATE!=e?Promise.resolve(void 0):Promise.resolve(this.map.get(t))}async filter(e){return Promise.resolve(this.filterableNames.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}function C(e){return[e.getSignature().getName(),e]}t({},"KIRunFunctionRepository",()=>sQ),t({},"EventResult",()=>G),t({},"Event",()=>D);class D{static{this.OUTPUT="output"}static{this.ERROR="error"}static{this.ITERATION="iteration"}static{this.TRUE="true"}static{this.FALSE="false"}static{this.SCHEMA_NAME="Event"}static{this.SCHEMA=new P().setNamespace(A.SYSTEM).setName(D.SCHEMA_NAME).setType(m.of(c.OBJECT)).setProperties(new Map([["name",P.ofString("name")],["parameters",P.ofObject("parameter").setAdditionalProperties(new w().setSchemaValue(P.SCHEMA))]]))}constructor(e,t){if(e instanceof D)this.name=e.name,this.parameters=new Map(Array.from(e.parameters.entries()).map(e=>[e[0],new P(e[1])]));else{if(this.name=e,!t)throw Error("Unknown constructor format");this.parameters=t}}getName(){return this.name}setName(e){return this.name=e,this}getParameters(){return this.parameters}setParameters(e){return this.parameters=e,this}static outputEventMapEntry(e){return D.eventMapEntry(D.OUTPUT,e)}static eventMapEntry(e,t){return[e,new D(e,t)]}static from(e){return new D(e.name,new Map(Object.entries(e.parameters??{}).map(e=>{let t=P.from(e[1]);if(!t)throw new I("","Event expects a schema");return[e[0],t]})))}}class G{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 G.of(D.OUTPUT,e)}static of(e,t){return new G(e,t)}}t({},"FunctionOutput",()=>F),t({},"KIRuntimeException",()=>$);class $ extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class F{constructor(e){if(this.index=0,T(e))throw new $("Function output is generating null");Array.isArray(e)&&e.length&&e[0]instanceof G?this.fo=e:(this.fo=[],Array.isArray(e)||(this.generator=e))}next(){if(!this.generator)return this.index<this.fo.length?this.fo[this.index++]:void 0;let e=this.generator.next();return e&&this.fo.push(e),e}allResults(){return this.fo}}t({},"FunctionSignature",()=>B);class B{static{this.SCHEMA_NAME="FunctionSignature"}static{this.SCHEMA=new P().setNamespace(A.SYSTEM).setName(B.SCHEMA_NAME).setProperties(new Map([["name",P.ofString("name")],["namespace",P.ofString("namespace")],["parameters",P.ofObject("parameters").setAdditionalProperties(new w().setSchemaValue(L.SCHEMA))],["events",P.ofObject("events").setAdditionalProperties(new w().setSchemaValue(D.SCHEMA))]]))}constructor(e){this.namespace="_",this.parameters=new Map,this.events=new Map,e instanceof B?(this.name=e.name,this.namespace=e.namespace,this.parameters=new Map(Array.from(e.parameters.entries()).map(e=>[e[0],new L(e[1])])),this.events=new Map(Array.from(e.events.entries()).map(e=>[e[0],new D(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}}t({},"AbstractFunction",()=>ef),t({},"SchemaValidator",()=>ep),t({},"deepEqual",()=>j),t({},"LinkedList",()=>H),t({},"StringFormatter",()=>Y);class Y{static format(e,...t){if(!t||0==t.length)return e;let r="",s=0,n="",a=n,i=e.length;for(let o=0;o<i;o++)"$"==(n=e.charAt(o))&&"\\"==a?r=r.substring(0,o-1)+n:"$"==n&&s<t.length?r+=t[s++]:r+=n,a=n;return r.toString()}constructor(){}}class H{constructor(e){if(this.head=void 0,this.tail=void 0,this.length=0,e?.length){for(let t of e)if(this.head){let e=new k(t,this.tail);this.tail.next=e,this.tail=e}else this.tail=this.head=new k(t);this.length=e.length}}push(e){let t=new k(e,void 0,this.head);this.head?(this.head.previous=t,this.head=t):this.tail=this.head=t,this.length++}pop(){if(!this.head)throw Error("List is empty and cannot pop further.");let e=this.head.value;if(this.length--,this.head==this.tail)return this.head=this.tail=void 0,e;let t=this.head;return this.head=t.next,t.next=void 0,t.previous=void 0,this.head.previous=void 0,e}isEmpty(){return!this.length}size(){return this.length}get(e){if(e<0||e>=this.length)throw Error(`${e} is out of bounds [0,${this.length}]`);let t=this.head;for(;e>0;)t=this.head.next,--e;return t.value}set(e,t){if(e<0||e>=this.length)throw new $(Y.format("Index $ out of bound to set the value in linked list.",e));let r=this.head;for(;e>0;)r=this.head.next,--e;return r.value=t,this}toString(){let e=this.head,t="";for(;e;)t+=e.value,(e=e.next)&&(t+=", ");return`[${t}]`}toArray(){let e=[],t=this.head;for(;t;)e.push(t.value),t=t.next;return e}peek(){if(!this.head)throw Error("List is empty so cannot peak");return this.head.value}peekLast(){if(!this.tail)throw Error("List is empty so cannot peak");return this.tail.value}getFirst(){if(!this.head)throw Error("List is empty so cannot get first");return this.head.value}removeFirst(){return this.pop()}removeLast(){if(!this.tail)throw Error("List is empty so cannot remove");--this.length;let e=this.tail.value;if(0==this.length)this.head=this.tail=void 0;else{let e=this.tail.previous;e.next=void 0,this.tail.previous=void 0,this.tail=e}return e}addAll(e){return e&&e.length&&e.forEach(this.add.bind(this)),this}add(e){return++this.length,this.tail||this.head?this.head===this.tail?(this.tail=new k(e,this.head),this.head.next=this.tail):(this.tail=new k(e,this.tail),this.tail.previous.next=this.tail):this.head=this.tail=new k(e),this}map(e,t){let r=new H,s=this.head,n=0;for(;s;)r.add(e(s.value,n)),s=s.next,++n;return r}indexOf(e){let t=this.head,r=0;for(;t;){if(j(t.value,e))return r;t=t.next,++r}return -1}forEach(e,t){let r=this.head,s=0;for(;r;)e(r.value,s),r=r.next,++s}}class k{constructor(e,t,r){this.value=e,this.next=r,this.previous=t}toString(){return""+this.value}}function j(e,t){let r=new H;r.push(e);let s=new H;for(s.push(t);!r.isEmpty()&&!s.isEmpty();){let e=r.pop(),t=s.pop();if(e===t)continue;let n=typeof e,a=typeof t;if("undefined"===n||"undefined"===a){if(!e&&!t)continue;return!1}if(n!==a)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!=t.length)return!1;for(let n=0;n<e.length;n++)r.push(e[n]),s.push(t[n]);continue}if("object"===n){if("object"!==a||null===e||null===t)return!1;let n=Object.entries(e),i=Object.entries(t);if(n.length!==i.length)return!1;for(let[e,a]of n)r.push(a),s.push(t[e]);continue}return!1}return!0}t({},"StringUtil",()=>W);class W{constructor(){}static nthIndex(e,t,r=0,s){if(!e)throw new $("String cannot be null");if(r<0||r>=e.length)throw new $(Y.format("Cannot search from index : $",r));if(s<=0||s>e.length)throw new $(Y.format("Cannot search for occurance : $",s));for(;r<e.length;){if(e.charAt(r)==t&&0==--s)return r;++r}return -1}static splitAtFirstOccurance(e,t){if(!e)return[void 0,void 0];let r=e.indexOf(t);return -1==r?[e,void 0]:[e.substring(0,r),e.substring(r+1)]}static splitAtLastOccurance(e,t){if(!e)return[void 0,void 0];let r=e.lastIndexOf(t);return -1==r?[e,void 0]:[e.substring(0,r),e.substring(r+1)]}static isNullOrBlank(e){return!e||""==e.trim()}}t({},"SchemaUtil",()=>Q);var X={};t(X,"Tuple2",()=>J),t(X,"Tuple3",()=>q),t(X,"Tuple4",()=>K);class J{constructor(e,t){this.f=e,this.s=t}getT1(){return this.f}getT2(){return this.s}setT1(e){return this.f=e,this}setT2(e){return this.s=e,this}}class q extends J{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 K extends q{constructor(e,t,r,s){super(e,t,r),this.fr=s}getT4(){return this.fr}setT1(e){return this.f=e,this}setT2(e){return this.s=e,this}setT3(e){return this.t=e,this}setT4(e){return this.fr=e,this}}t({},"SchemaValidationException",()=>z);class z extends Error{constructor(e,t,r=[],s){super(t+(r?r.map(e=>e.message).reduce((e,t)=>e+"\n"+t,""):"")),this.schemaPath=e,this.cause=s}getSchemaPath(){return this.schemaPath}getCause(){return this.cause}}class Q{static{this.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH="Unable to retrive schema from referenced path"}static{this.CYCLIC_REFERENCE_LIMIT_COUNTER=20}static async getDefaultValue(e,t){if(e)return e.getConstant()?e.getConstant():T(e.getDefaultValue())?Q.getDefaultValue(await Q.getSchemaFromRef(e,t,e.getRef()),t):e.getDefaultValue()}static async hasDefaultValueOrNullSchemaType(e,t){return e?e.getConstant()||!T(e.getDefaultValue())?Promise.resolve(!0):T(e.getRef())?e.getType()?.getAllowedSchemaTypes().has(c.NULL)?Promise.resolve(!0):Promise.resolve(!1):this.hasDefaultValueOrNullSchemaType(await Q.getSchemaFromRef(e,t,e.getRef()),t):Promise.resolve(!1)}static async getSchemaFromRef(e,t,r,s=0){if(++s==Q.CYCLIC_REFERENCE_LIMIT_COUNTER)throw new z(r??"","Schema has a cyclic reference");if(!e||!r||W.isNullOrBlank(r))return Promise.resolve(void 0);if(!r.startsWith("#")){var n=await Q.resolveExternalSchema(e,t,r);n&&(e=n.getT1(),r=n.getT2())}let a=r.split("/");return 1===a.length?Promise.resolve(e):Promise.resolve(Q.resolveInternalSchema(e,t,r,s,a,1))}static async resolveInternalSchema(e,t,r,s,n,a){let i=e;if(a!==n.length){for(;a<n.length;){if("$defs"===n[a]){if(++a>=n.length||!i.get$defs())throw new I(r,Q.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);i=i.get$defs()?.get(n[a])}else{if(i&&(!i.getType()?.contains(c.OBJECT)||!i.getProperties()))throw new I(r,"Cannot retrievie schema from non Object type schemas");i=i.getProperties()?.get(n[a])}if(a++,!i||!W.isNullOrBlank(i.getRef())&&!(i=await Q.getSchemaFromRef(i,t,i.getRef(),s)))throw new I(r,Q.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH)}return Promise.resolve(i)}}static async resolveExternalSchema(e,t,r){if(!t)return Promise.resolve(void 0);let s=W.splitAtFirstOccurance(r??"","/");if(!s[0])return Promise.resolve(void 0);let n=W.splitAtLastOccurance(s[0],".");if(!n[0]||!n[1])return Promise.resolve(void 0);let a=await t.find(n[0],n[1]);if(!a)return Promise.resolve(void 0);if(!s[1]||""===s[1])return Promise.resolve(new J(a,r));if(r="#/"+s[1],!a)throw new I(r,Q.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);return Promise.resolve(new J(a,r))}constructor(){}}t({},"AnyOfAllOfOneOfValidator",()=>Z);class Z{static async validate(e,t,r,s,n,a){let i=[];return t.getOneOf()&&!t.getOneOf()?await Z.oneOf(e,t,r,s,i,n,a):t.getAllOf()&&!t.getAllOf()?await Z.allOf(e,t,r,s,i,n,a):t.getAnyOf()&&!t.getAnyOf()?await Z.anyOf(e,t,r,s,i,n,a):s}static async anyOf(e,t,r,s,n,a,i){let o=!1;for(let E of t.getAnyOf()??[])try{await Z.validate(e,E,r,s,a,i),o=!0;break}catch(e){o=!1,n.push(e)}if(o)return s;throw new z(ep.path(e),"The value don't satisfy any of the schemas.",n)}static async allOf(e,t,r,s,n,a,i){let o=0;for(let E of t.getAllOf()??[])try{await Z.validate(e,E,r,s,a,i),o++}catch(e){n.push(e)}if(o===t.getAllOf()?.length)return s;throw new z(ep.path(e),"The value doesn't satisfy some of the schemas.",n)}static async oneOf(e,t,r,s,n,a,i){let o=0;for(let E of t.getOneOf()??[])try{await Z.validate(e,E,r,s,a,i),o++}catch(e){n.push(e)}if(1===o)return s;throw new z(ep.path(e),0==o?"The value does not satisfy any schema":"The value satisfy more than one schema",n)}constructor(){}}t({},"TypeValidator",()=>em),t({},"ArrayValidator",()=>ee);class ee{static async validate(e,t,r,s,n,a){if(T(s))throw new z(ep.path(e),"Expected an array but found null");if(!Array.isArray(s))throw new z(ep.path(e),s.toString()+" is not an Array");return ee.checkMinMaxItems(e,t,s),await ee.checkItems(e,t,r,s,n,a),ee.checkUniqueItems(e,t,s),await ee.checkContains(t,e,r,s),s}static async checkContains(e,t,r,s){if(T(e.getContains()))return;let n=await ee.countContains(t,e,r,s,T(e.getMinContains())&&T(e.getMaxContains()));if(0===n)throw new z(ep.path(t),"None of the items are of type contains schema");if(!T(e.getMinContains())&&e.getMinContains()>n)throw new z(ep.path(t),"The minimum number of the items of type contains schema should be "+e.getMinContains()+" but found "+n);if(!T(e.getMaxContains())&&e.getMaxContains()<n)throw new z(ep.path(t),"The maximum number of the items of type contains schema should be "+e.getMaxContains()+" but found "+n)}static async countContains(e,t,r,s,n){let a=0;for(let i=0;i<s.length;i++){let o=e?[...e]:[];try{if(await ep.validate(o,t.getContains(),r,s[i]),a++,n)break}catch(e){}}return a}static checkUniqueItems(e,t,r){if(t.getUniqueItems()&&t.getUniqueItems()&&new Set(r).size!==r.length)throw new z(ep.path(e),"Items on the array are not unique")}static checkMinMaxItems(e,t,r){if(t.getMinItems()&&t.getMinItems()>r.length)throw new z(ep.path(e),"Array should have minimum of "+t.getMinItems()+" elements");if(t.getMaxItems()&&t.getMaxItems()<r.length)throw new z(ep.path(e),"Array can have maximum of "+t.getMaxItems()+" elements")}static async checkItems(e,t,r,s,n,a){if(!t.getItems())return;let i=t.getItems();if(i.getSingleSchema())for(let t=0;t<s.length;t++){let o=e?[...e]:[];s[t]=await ep.validate(o,i.getSingleSchema(),r,s[t],n,a)}if(i.getTupleSchema()){if(i.getTupleSchema().length!==s.length&&T(t?.getAdditionalItems()))throw new z(ep.path(e),"Expected an array with only "+i.getTupleSchema().length+" but found "+s.length);await this.checkItemsInTupleSchema(e,r,s,i),await this.checkAdditionalItems(e,t,r,s,i)}}static async checkItemsInTupleSchema(e,t,r,s,n,a){for(let i=0;i<s.getTupleSchema()?.length;i++){let o=e?[...e]:[];r[i]=await ep.validate(o,s.getTupleSchema()[i],t,r[i],n,a)}}static async checkAdditionalItems(e,t,r,s,n){if(!T(t.getAdditionalItems())){let a=t.getAdditionalItems();if(a?.getBooleanValue()){let i=P.ofAny("item");if(a?.getBooleanValue()===!1&&s.length>n.getTupleSchema()?.length)throw new z(ep.path(e),"No Additional Items are defined");await this.checkEachItemInAdditionalItems(e,t,r,s,n,i)}else if(a?.getSchemaValue()){let i=a.getSchemaValue();await this.checkEachItemInAdditionalItems(e,t,r,s,n,i)}}}static async checkEachItemInAdditionalItems(e,t,r,s,n,a){for(let t=n.getTupleSchema()?.length;t<s.length;t++){let n=e?[...e]:[];s[t]=await ep.validate(n,a,r,s[t])}}constructor(){}}t({},"BooleanValidator",()=>et);class et{static validate(e,t,r){if(T(r))throw new z(ep.path(e),"Expected a boolean but found null");if("boolean"!=typeof r)throw new z(ep.path(e),r.toString()+" is not a boolean");return r}constructor(){}}t({},"NullValidator",()=>er);class er{static validate(e,t,r){if(T(r))return r;throw new z(ep.path(e),"Expected a null but found "+r)}constructor(){}}t({},"NumberValidator",()=>es);class es{static validate(e,t,r,s){if(T(s))throw new z(ep.path(t),"Expected a number but found null");if("number"!=typeof s)throw new z(ep.path(t),s.toString()+" is not a "+e);let n=es.extractNumber(e,t,r,s);return es.checkRange(t,r,s,n),es.checkMultipleOf(t,r,s,n),s}static extractNumber(e,t,r,s){let n=s;try{(e==c.LONG||e==c.INTEGER)&&(n=Math.round(n))}catch(r){throw new z(ep.path(t),s+" is not a number of type "+e,r)}if(T(n)||(e==c.LONG||e==c.INTEGER)&&n!=s)throw new z(ep.path(t),s.toString()+" is not a number of type "+e);return n}static checkMultipleOf(e,t,r,s){if(t.getMultipleOf()&&s%t.getMultipleOf()!=0)throw new z(ep.path(e),r.toString()+" is not multiple of "+t.getMultipleOf())}static checkRange(e,t,r,s){if(!T(t.getMinimum())&&0>es.numberCompare(s,t.getMinimum()))throw new z(ep.path(e),r.toString()+" should be greater than or equal to "+t.getMinimum());if(!T(t.getMaximum())&&es.numberCompare(s,t.getMaximum())>0)throw new z(ep.path(e),r.toString()+" should be less than or equal to "+t.getMaximum());if(!T(t.getExclusiveMinimum())&&0>=es.numberCompare(s,t.getExclusiveMinimum()))throw new z(ep.path(e),r.toString()+" should be greater than "+t.getExclusiveMinimum());if(!T(t.getExclusiveMaximum())&&es.numberCompare(s,t.getExclusiveMaximum())>0)throw new z(ep.path(e),r.toString()+" should be less than "+t.getExclusiveMaximum())}static numberCompare(e,t){return e-t}constructor(){}}t({},"ObjectValidator",()=>en);class en{static async validate(e,t,r,s,n,a){if(T(s))throw new z(ep.path(e),"Expected an object but found null");if("object"!=typeof s||Array.isArray(s))throw new z(ep.path(e),s.toString()+" is not an Object");let i=new Set(Object.keys(s));return en.checkMinMaxProperties(e,t,i),t.getPropertyNames()&&await en.checkPropertyNameSchema(e,t,r,i),t.getRequired()&&en.checkRequired(e,t,s),t.getProperties()&&await en.checkProperties(e,t,r,s,i,n,a),t.getPatternProperties()&&await en.checkPatternProperties(e,t,r,s,i),t.getAdditionalProperties()&&await en.checkAdditionalProperties(e,t,r,s,i),s}static async checkPropertyNameSchema(e,t,r,s){for(let n of Array.from(s.values()))try{await ep.validate(e,t.getPropertyNames(),r,n)}catch(t){throw new z(ep.path(e),"Property name '"+n+"' does not fit the property schema")}}static checkRequired(e,t,r){for(let s of t.getRequired()??[])if(T(r[s]))throw new z(ep.path(e),s+" is mandatory")}static async checkAdditionalProperties(e,t,r,s,n){let a=t.getAdditionalProperties();if(a.getSchemaValue())for(let t of Array.from(n.values())){let n=e?[...e]:[];s[t]=await ep.validate(n,a.getSchemaValue(),r,s[t])}else if(!1===a.getBooleanValue()&&n.size)throw new z(ep.path(e),Array.from(n)+" is/are additional properties which are not allowed.")}static async checkPatternProperties(e,t,r,s,n){let a=new Map;for(let e of Array.from(t.getPatternProperties().keys()))a.set(e,new RegExp(e));for(let i of Array.from(n.values())){let o=e?[...e]:[];for(let e of Array.from(a.entries()))if(e[1].test(i)){s[i]=await ep.validate(o,t.getPatternProperties().get(e[0]),r,s[i]),n.delete(i);break}}}static async checkProperties(e,t,r,s,n,a,i){for(let o of Array.from(t.getProperties())){let t=s[o[0]];if(!s.hasOwnProperty(o[0])&&T(t)&&T(await Q.getDefaultValue(o[1],r)))continue;let E=e?[...e]:[];s[o[0]]=await ep.validate(E,o[1],r,t,a,i),n.delete(o[0])}}static checkMinMaxProperties(e,t,r){if(t.getMinProperties()&&r.size<t.getMinProperties())throw new z(ep.path(e),"Object should have minimum of "+t.getMinProperties()+" properties");if(t.getMaxProperties()&&r.size>t.getMaxProperties())throw new z(ep.path(e),"Object can have maximum of "+t.getMaxProperties()+" properties")}constructor(){}}t({},"StringValidator",()=>ei),t({},"StringFormat",()=>ea);var ea=((a={}).DATETIME="DATETIME",a.TIME="TIME",a.DATE="DATE",a.EMAIL="EMAIL",a.REGEX="REGEX",a);class ei{static{this.TIME=/^([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?([+-][01][0-9]:[0-5][0-9])?$/}static{this.DATE=/^[0-9]{4,4}-([0][0-9]|[1][0-2])-(0[1-9]|[1-2][1-9]|3[01])$/}static{this.DATETIME=/^[0-9]{4,4}-([0][0-9]|[1][0-2])-(0[1-9]|[1-2][1-9]|3[01])T([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?([+-][01][0-9]:[0-5][0-9])?$/}static{this.EMAIL=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/}static validate(e,t,r){if(T(r))throw new z(ep.path(e),"Expected a string but found "+r);if("string"!=typeof r)throw new z(ep.path(e),r.toString()+" is not String");t.getFormat()==ea.TIME?ei.patternMatcher(e,t,r,ei.TIME,"time pattern"):t.getFormat()==ea.DATE?ei.patternMatcher(e,t,r,ei.DATE,"date pattern"):t.getFormat()==ea.DATETIME?ei.patternMatcher(e,t,r,ei.DATETIME,"date time pattern"):t.getFormat()==ea.EMAIL?ei.patternMatcher(e,t,r,ei.EMAIL,"email pattern"):t.getPattern()&&ei.patternMatcher(e,t,r,new RegExp(t.getPattern()),"pattern "+t.getPattern());let s=r.length;if(t.getMinLength()&&s<t.getMinLength())throw new z(ep.path(e),"Expected a minimum of "+t.getMinLength()+" characters");if(t.getMaxLength()&&s>t.getMaxLength())throw new z(ep.path(e),"Expected a maximum of "+t.getMaxLength()+" characters");return r}static patternMatcher(e,t,r,s,n){if(!s.test(r))throw new z(ep.path(e),r.toString()+" is not matched with the "+n)}constructor(){}}var eo=((i={}).STRICT="STRICT",i.LENIENT="LENIENT",i.USE_DEFAULT="USE_DEFAULT",i.SKIP="SKIP",i);let eE=e=>eo[e.toUpperCase()],eu=()=>Object.values(eo);class eA extends Error{constructor(e,t,r,s,n=[],a){super(r+(n?n.map(e=>e.message).reduce((e,t)=>e+"\n"+t,""):"")),this.schemaPath=e,this.source=t??null,this.mode=s??null,this.cause=a}getSchemaPath(){return this.schemaPath}getSource(){return this.source??null}getMode(){return this.mode??null}getCause(){return this.cause}}class eT{static handleUnConvertibleValue(e,t,r,s){return this.handleUnConvertibleValueWithDefault(e,t,r,null,s)}static handleUnConvertibleValueWithDefault(e,t,r,s,n){switch(null===t&&(t=eo.STRICT),t){case eo.STRICT:throw new eA(ep.path(e),r,n,t);case eo.LENIENT:return null;case eo.USE_DEFAULT:return s;case eo.SKIP:return r;default:throw new eA(ep.path(e),r,"Invalid conversion mode")}}constructor(){}}class el{static convert(e,t,r,s){if(T(s))return eT.handleUnConvertibleValueWithDefault(e,r,s,this.getDefault(t),"Expected a string but found null");let n=s??("object"==typeof s?JSON.stringify(s):String(s));return this.getConvertedString(n,r)}static getConvertedString(e,t){return t===eo.STRICT?e.toString():e.trim()}static getDefault(e){return e.getDefaultValue()??null}constructor(){}}class ec{static convert(e,t,r,s,n){if(T(n))return eT.handleUnConvertibleValueWithDefault(e,s,n,this.getDefault(r),"Expected a number but found null");if("object"==typeof n||"boolean"==typeof n||Array.isArray(n)||"string"==typeof n&&isNaN(n=Number(n)))return eT.handleUnConvertibleValueWithDefault(e,s,n,this.getDefault(r),n+" is not a "+t);let a=this.extractNumber(t,n,s);return null===a?eT.handleUnConvertibleValueWithDefault(e,s,n,this.getDefault(r),n+" is not a "+t):a}static extractNumber(e,t,r){if("number"!=typeof t)return null;switch(e){case c.INTEGER:return this.isInteger(t,r)?Math.floor(t):null;case c.LONG:return this.isLong(t,r)?Math.floor(t):null;case c.DOUBLE:return t;case c.FLOAT:return this.isFloat(t,r)?t:null;default:return null}}static isInteger(e,t){return t!==eo.STRICT?"number"==typeof e:Number.isInteger(e)}static isLong(e,t){return t!==eo.STRICT?"number"==typeof e:Number.isInteger(e)&&e>=Number.MIN_SAFE_INTEGER&&e<=Number.MAX_SAFE_INTEGER}static isFloat(e,t){return t!==eo.STRICT?"number"==typeof e:e>=-Number.MAX_VALUE&&e<=Number.MAX_VALUE}static getDefault(e){return"number"==typeof e.getDefaultValue()?Number(e.getDefaultValue):null}}class eR{static{this.BOOLEAN_MAP={true:!0,t:!0,yes:!0,y:!0,1:!0,false:!1,f:!1,no:!1,n:!1,0:!1}}static convert(e,t,r,s){return null==s?eT.handleUnConvertibleValueWithDefault(e,r,s,this.getDefault(t),"Expected a boolean but found null"):this.getBooleanPrimitive(s)??eT.handleUnConvertibleValueWithDefault(e,r,s,this.getDefault(t),"Unable to convert to boolean")}static getBooleanPrimitive(e){return"boolean"==typeof e?e:"string"==typeof e?this.handleStringValue(e):"number"==typeof e?this.handleNumberValue(e):null}static handleStringValue(e){let t=e.toLowerCase().trim();return eR.BOOLEAN_MAP[t]??null}static handleNumberValue(e){return 0===e||1===e?1===e:null}static getDefault(e){return e.getDefaultValue()??!1}constructor(){}}class eh{static convert(e,t,r,s){return T(s)?s:"string"==typeof s&&"null"===s.toLowerCase()?null:eT.handleUnConvertibleValueWithDefault(e,r,s,null,"Unable to convert to null")}constructor(){}}class eg{static handleValidationError(e,t,r,s,n){switch(t=t??eo.STRICT){case eo.STRICT:throw new z(ep.path(e),n);case eo.LENIENT:return null;case eo.USE_DEFAULT:return s;case eo.SKIP:return r}}constructor(){}}class em{static async validate(e,t,r,s,n,a,i){return t==c.OBJECT?await en.validate(e,r,s,n,a,i):t==c.ARRAY?await ee.validate(e,r,s,n,a,i):this.handleTypeValidationAndConversion(e,t,r,n,a,i)}static async handleTypeValidationAndConversion(e,t,r,s,n,a){let i=n?this.convertElement(e,t,r,s,a??eo.STRICT):s;return await this.validateElement(e,t,r,i,a??eo.STRICT)}static convertElement(e,t,r,s,n){if(T(t))return eT.handleUnConvertibleValueWithDefault(e,n,s,r.getDefaultValue()??null,Y.format("$ is not a valid type for conversion.",t));switch(t){case c.STRING:return el.convert(e,r,n,s);case c.INTEGER:case c.LONG:case c.DOUBLE:case c.FLOAT:return ec.convert(e,t,r,n,s);case c.BOOLEAN:return eR.convert(e,r,n,s);case c.NULL:return eh.convert(e,r,n,s);default:return eT.handleUnConvertibleValueWithDefault(e,n,s,r.getDefaultValue()??null,Y.format("$ is not a valid type for conversion.",t))}}static validateElement(e,t,r,s,n){if(T(t))return eg.handleValidationError(e,n,s,r.getDefaultValue()??null,Y.format("$ is not a valid type.",t));switch(t){case c.STRING:return ei.validate(e,r,s);case c.INTEGER:case c.LONG:case c.DOUBLE:case c.FLOAT:return es.validate(t,e,r,s);case c.BOOLEAN:return et.validate(e,r,s);case c.NULL:return er.validate(e,r,s);default:return eg.handleValidationError(e,n,s,r.getDefaultValue()??null,Y.format("$ is not a valid type.",t))}}constructor(){}}class ep{static{this.ORDER={[c.OBJECT]:0,[c.ARRAY]:1,[c.DOUBLE]:2,[c.FLOAT]:3,[c.LONG]:4,[c.INTEGER]:5,[c.STRING]:6,[c.BOOLEAN]:7,[c.NULL]:8}}static path(e){return e?e.map(e=>e.getTitle()??"").filter(e=>!!e).reduce((e,t,r)=>e+(0===r?"":".")+t,""):""}static async validate(e,t,r,s,n,a){if(!t)throw new z(ep.path(e),"No schema found to validate");if(e||(e=[]),e.push(t),T(s)&&!T(t.getDefaultValue()))return JSON.parse(JSON.stringify(t.getDefaultValue()));if(!T(t.getConstant()))return ep.constantValidation(e,t,s);if(t.getEnums()?.length)return ep.enumCheck(e,t,s);if(t.getFormat()&&T(t.getType()))throw new z(this.path(e),"Type is missing in schema for declared "+t.getFormat()?.toString()+" format.");if(!0===n&&T(t.getType()))throw new z(this.path(e),"Type is missing in schema for declared "+a);if(t.getType()&&(s=await ep.typeValidation(e,t,r,s,n,a)),!W.isNullOrBlank(t.getRef()))return await ep.validate(e,await Q.getSchemaFromRef(e[0],r,t.getRef()),r,s,n,a);if((t.getOneOf()||t.getAllOf()||t.getAnyOf())&&(s=await Z.validate(e,t,r,s,n,a)),t.getNot()){let i;try{await ep.validate(e,t.getNot(),r,s,n,a),i=!0}catch(e){i=!1}if(i)throw new z(ep.path(e),"Schema validated value in not condition.")}return s}static constantValidation(e,t,r){if(!j(t.getConstant(),r))throw new z(ep.path(e),"Expecting a constant value : "+r);return r}static enumCheck(e,t,r){let s=!1;for(let e of t.getEnums()??[])if(e===r){s=!0;break}if(s)return r;throw new z(ep.path(e),"Value is not one of "+t.getEnums())}static async typeValidation(e,t,r,s,n,a){let i=Array.from(t.getType()?.getAllowedSchemaTypes()?.values()??[]).sort((e,t)=>(this.ORDER[e]??1/0)-(this.ORDER[t]??1/0)),o=[];for(let E of i)try{return await em.validate(e,E,t,r,s,n,a)}catch(e){o.push(e)}throw new z(ep.path(e),"Value "+JSON.stringify(s)+" is not of valid type(s)",o)}constructor(){}}class ef{async validateArguments(e,t,r){let s=new Map;for(let n of Array.from(this.getSignature().getParameters().entries())){let a=n[1];try{let r=await this.validateArgument(e,t,n,a);s.set(r.getT1(),r.getT2())}catch(t){let e=this.getSignature();throw new $(`Error while executing the function ${e.getNamespace()}.${e.getName()}'s parameter ${a.getParameterName()} with step name '${r?.getStatement().getStatementName()??"Unknown Step"}' with error : ${t?.message}`)}}return s}async validateArgument(e,t,r,s){let n,a=r[0],i=e.get(r[0]);if(T(i)&&!s.isVariableArgument())return new J(a,await ep.validate(void 0,s.getSchema(),t,void 0));if(!s?.isVariableArgument())return new J(a,await ep.validate(void 0,s.getSchema(),t,i));Array.isArray(i)?n=i:(n=[],T(i)?T(s.getSchema().getDefaultValue())||n.push(s.getSchema().getDefaultValue()):n.push(i));for(let e=0;e<n.length;e++)n[e]=await ep.validate(void 0,s.getSchema(),t,n[e]);return new J(a,n)}async execute(e){let t=await this.validateArguments(e.getArguments()??new Map,e.getSchemaRepository(),e.getStatementExecution());e.setArguments(t);try{return await this.internalExecute(e)}catch(r){let t=this.getSignature();throw new $(`Error while executing the function ${t.getNamespace()}.${t.getName()} with step name '${e.getStatementExecution()?.getStatement().getStatementName()??"Unknown Step"}' with error : ${r?.message}`)}}getProbableEventSignature(e){return this.getSignature().getEvents()}}class eN extends ef{static{this.EVENT_INDEX_NAME="index"}static{this.EVENT_RESULT_NAME="result"}static{this.EVENT_INDEX=new D(D.OUTPUT,b.of(eN.EVENT_INDEX_NAME,P.ofInteger(eN.EVENT_INDEX_NAME)))}static{this.EVENT_RESULT_INTEGER=new D(D.OUTPUT,b.of(eN.EVENT_RESULT_NAME,P.ofInteger(eN.EVENT_RESULT_NAME)))}static{this.EVENT_RESULT_BOOLEAN=new D(D.OUTPUT,b.of(eN.EVENT_RESULT_NAME,P.ofBoolean(eN.EVENT_RESULT_NAME)))}static{this.EVENT_RESULT_ARRAY=new D(D.OUTPUT,b.of(eN.EVENT_RESULT_NAME,P.ofArray(eN.EVENT_RESULT_NAME,P.ofAny(eN.EVENT_RESULT_NAME))))}static{this.EVENT_RESULT_EMPTY=new D(D.OUTPUT,b.of())}static{this.EVENT_RESULT_ANY=new D(D.OUTPUT,b.of(this.EVENT_RESULT_NAME,P.ofAny(this.EVENT_RESULT_NAME)))}static{this.EVENT_RESULT_OBJECT=new D(D.OUTPUT,b.of(this.EVENT_RESULT_NAME,P.ofObject(this.EVENT_RESULT_NAME)))}static{this.PARAMETER_INT_LENGTH=L.of("length",P.ofInteger("length").setDefaultValue(-1))}static{this.PARAMETER_ARRAY_FIND=L.of("find",P.ofArray("eachFind",P.ofAny("eachFind")))}static{this.PARAMETER_INT_SOURCE_FROM=L.of("srcFrom",P.ofInteger("srcFrom").setDefaultValue(0).setMinimum(0))}static{this.PARAMETER_INT_SECOND_SOURCE_FROM=L.of("secondSrcFrom",P.ofInteger("secondSrcFrom").setDefaultValue(0))}static{this.PARAMETER_INT_FIND_FROM=L.of("findFrom",P.ofInteger("findFrom").setDefaultValue(0))}static{this.PARAMETER_INT_OFFSET=L.of("offset",P.ofInteger("offset").setDefaultValue(0))}static{this.PARAMETER_ROTATE_LENGTH=L.of("rotateLength",P.ofInteger("rotateLength").setDefaultValue(1).setMinimum(1))}static{this.PARAMETER_BOOLEAN_ASCENDING=L.of("ascending",P.ofBoolean("ascending").setDefaultValue(!0))}static{this.PARAMETER_KEY_PATH=L.of("keyPath",P.ofString("keyPath").setDefaultValue(""))}static{this.PARAMETER_FIND_PRIMITIVE=L.of("findPrimitive",P.of("findPrimitive",c.STRING,c.DOUBLE,c.FLOAT,c.INTEGER,c.LONG))}static{this.PARAMETER_ARRAY_SOURCE=L.of("source",P.ofArray("eachSource",P.ofAny("eachSource")))}static{this.PARAMETER_ARRAY_SECOND_SOURCE=L.of("secondSource",P.ofArray("eachSecondSource",P.ofAny("eachSecondSource")))}static{this.PARAMETER_ARRAY_SOURCE_PRIMITIVE=L.of("source",P.ofArray("eachSource",new P().setName("eachSource").setType(m.of(c.STRING,c.NULL,c.INTEGER,c.FLOAT,c.DOUBLE,c.LONG))))}static{this.PARAMETER_BOOLEAN_DEEP_COPY=L.of("deepCopy",P.ofBoolean("deepCopy").setDefaultValue(!0))}static{this.PARAMETER_ANY=L.of("element",P.ofAny("element"))}static{this.PARAMETER_ANY_ELEMENT_OBJECT=L.of("elementObject",P.ofAny("elementObject"))}static{this.PARAMETER_ANY_VAR_ARGS=L.of("element",P.ofAny("element")).setVariableArgument(!0)}static{this.PARAMETER_ARRAY_RESULT=L.of(eN.EVENT_RESULT_NAME,P.ofArray("eachResult",P.ofAny("eachResult")))}constructor(e,t,r){super();let s=new Map;for(let e of t)s.set(e.getParameterName(),e);this.signature=new B(e).setNamespace(A.SYSTEM_ARRAY).setParameters(s).setEvents(b.of(r.getName(),r))}getSignature(){return this.signature}}class e_ extends eN{constructor(){super("Concatenate",[eN.PARAMETER_ARRAY_SOURCE,eN.PARAMETER_ARRAY_SECOND_SOURCE],eN.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eN.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eN.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName());return new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,[...t,...r]]]))])}}class eM extends eN{constructor(){super("AddFirst",[eN.PARAMETER_ARRAY_SOURCE,eN.PARAMETER_ANY],eN.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eN.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eN.PARAMETER_ANY.getParameterName());if(0==(t=[...t]).length)return t.push(r),new F([G.outputOf(new Map([]))]);t.push(r);let s=t.length-1;for(;s>0;){let e=t[s-1];t[s-1]=t[s],t[s--]=e}return new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))])}}let eS="keyName";class eO extends eN{constructor(){super("ArrayToArrayOfObjects",[eN.PARAMETER_ARRAY_SOURCE,L.of(eS,P.ofString(eS),!0)],eN.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eO.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eS);if(!t?.length)return new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,[]]]))]);let s=t.map(e=>{let t={};if(Array.isArray(e)){if(r.length)r.forEach((r,s)=>{t[r]=e[s]});else for(let r=0;r<e.length;r++)t[`value${r+1}`]=e[r]}else t[r.length?r[0]:"value"]=e;return t});return new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,s]]))])}}t({},"PrimitiveUtil",()=>ew),t({},"ExecutionException",()=>ed);class ed extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class ew{static findPrimitiveNullAsBoolean(e){if(T(e))return new J(c.BOOLEAN,!1);let t=typeof e;if("object"===t)throw new ed(Y.format("$ is not a primitive type",e));return"boolean"===t?new J(c.BOOLEAN,e):"string"===t?new J(c.STRING,e):ew.findPrimitiveNumberType(e)}static findPrimitive(e){if(T(e))return new J(c.NULL,void 0);let t=typeof e;if("object"===t)throw new ed(Y.format("$ is not a primitive type",e));return"boolean"===t?new J(c.BOOLEAN,e):"string"===t?new J(c.STRING,e):ew.findPrimitiveNumberType(e)}static findPrimitiveNumberType(e){if(T(e)||Array.isArray(e)||"object"==typeof e)throw new ed(Y.format("Unable to convert $ to a number.",e));try{if(Number.isInteger(e))return new J(c.LONG,e);return new J(c.DOUBLE,e)}catch(t){throw new ed(Y.format("Unable to convert $ to a number.",e),t)}}static compare(e,t){if(e==t)return 0;if(T(e)||T(t))return T(e)?-1:1;if(Array.isArray(e)||Array.isArray(t)){if(Array.isArray(e)&&Array.isArray(t)){if(e.length!=t.length)return e.length-t.length;for(let r=0;r<e.length;r++){let s=this.compare(e[r],t[r]);if(0!=s)return s}return 0}return Array.isArray(e)?-1:1}let r=typeof e,s=typeof t;return"object"===r||"object"===s?("object"===r&&"object"===s&&Object.keys(e).forEach(r=>{let s=this.compare(e[r],t[r]);if(0!=s)return s}),"object"===r?-1:1):this.comparePrimitive(e,t)}static comparePrimitive(e,t){return T(e)||T(t)?T(e)&&T(t)?0:T(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)?c.LONG:c.DOUBLE}static toPrimitiveType(e){return e}constructor(){}}class eP extends eN{constructor(){super("BinarySearch",[eP.PARAMETER_ARRAY_SOURCE_PRIMITIVE,eP.PARAMETER_INT_SOURCE_FROM,eP.PARAMETER_FIND_PRIMITIVE,eP.PARAMETER_INT_LENGTH],eP.EVENT_INDEX)}async internalExecute(e){let t=e?.getArguments()?.get(eP.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eP.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eP.PARAMETER_FIND_PRIMITIVE.getParameterName()),n=e?.getArguments()?.get(eP.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length||r<0||r>t.length)throw new $("Search source array cannot be empty");if(-1==n&&(n=t.length-r),(n=r+n)>t.length)throw new $("End point for array cannot be more than the size of the source array");let a=-1;for(;r<=n;){let e=Math.floor((r+n)/2);if(0==ew.compare(t[e],s)){a=e;break}ew.compare(t[e],s)>0?n=e-1:r=e+1}return new F([G.outputOf(new Map([[eP.EVENT_INDEX_NAME,a]]))])}}t({},"ArrayUtil",()=>eI);class eI{static removeAListFrom(e,t){if(!t||!e||!e.length||!t.length)return;let r=new Set(t);for(let t=0;t<e.length;t++)r.has(e[t])&&(e.splice(t,1),t--)}static of(...e){let t=Array(e.length);for(let r=0;r<e.length;r++)t[r]=e[r];return t}constructor(){}}class ey extends eN{constructor(){super("Compare",eI.of(ey.PARAMETER_ARRAY_SOURCE,ey.PARAMETER_INT_SOURCE_FROM,ey.PARAMETER_ARRAY_FIND,ey.PARAMETER_INT_FIND_FROM,ey.PARAMETER_INT_LENGTH),ey.EVENT_RESULT_INTEGER)}async internalExecute(e){var t=e?.getArguments()?.get(ey.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ey.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(ey.PARAMETER_ARRAY_FIND.getParameterName()),n=e?.getArguments()?.get(ey.PARAMETER_INT_FIND_FROM.getParameterName()),a=e?.getArguments()?.get(ey.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new $("Compare source array cannot be empty");if(0==s.length)throw new $("Compare find array cannot be empty");if(-1==a&&(a=t.length-r),r+a>t.length)throw new $(Y.format("Source array size $ is less than comparing size $",t.length,r+a));if(n+a>s.length)throw new $(Y.format("Find array size $ is less than comparing size $",s.length,n+a));return new F(eI.of(G.outputOf(b.of(ey.EVENT_RESULT_NAME,this.compare(t,r,r+a,s,n,n+a)))))}compare(e,t,r,s,n,a){if(r<t){let e=t;t=r,r=e}if(a<n){let e=n;n=a,a=e}if(r-t!=a-n)throw new $(Y.format("Cannot compare uneven arrays from $ to $ in source array with $ to $ in find array",r,t,a,n));for(let a=t,i=n;a<r;a++,i++){let t=1;if(T(e[a])||T(s[i])){let r=T(e[a]);r==T(s[i])?t=0:r&&(t=-1)}else{let r=typeof e[a],n=typeof s[i];if("object"===r||"object"===n)t=1;else if("string"===r||"string"===n){let r=""+e[a],n=""+s[i];r===n?t=0:r<n&&(t=-1)}else"boolean"===r||"boolean"===n?t=r==n?0:1:"number"===r&&"number"===n&&(t=e[a]-s[i])}if(0!=t)return t}return 0}}function ex(e){return e?"function"==typeof globalThis.structuredClone?globalThis.structuredClone(e):JSON.parse(JSON.stringify(e)):e}t({},"duplicate",()=>ex);class eL extends eN{constructor(){super("Copy",[eL.PARAMETER_ARRAY_SOURCE,eL.PARAMETER_INT_SOURCE_FROM,eL.PARAMETER_INT_LENGTH,eL.PARAMETER_BOOLEAN_DEEP_COPY],eL.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(eL.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eL.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eL.PARAMETER_INT_LENGTH.getParameterName());if(-1==s&&(s=t.length-r),r+s>t.length)throw new $(Y.format("Array has no elements from $ to $ as the array size is $",r,r+s,t.length));var n=e?.getArguments()?.get(eL.PARAMETER_BOOLEAN_DEEP_COPY.getParameterName());let a=Array(s);for(let e=r;e<r+s;e++)T(t[e])||(a[e-r]=n?ex(t[e]):t[e]);return new F([G.outputOf(b.of(eL.EVENT_RESULT_NAME,a))])}}class eU extends eN{constructor(){super("Delete",[eN.PARAMETER_ARRAY_SOURCE,eN.PARAMETER_ANY_VAR_ARGS],eN.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eU.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eU.PARAMETER_ANY_VAR_ARGS.getParameterName());if(null==r)throw new $("The deletable var args are empty. So cannot be proceeded further.");if(0==t.length||0==r.length)throw new $("Expected a source or deletable for an array but not found any");let s=new Set;for(let e=t.length-1;e>=0;e--)for(let n=0;n<r.length;n++)s.has(e)||0!=ew.compare(t[e],r[n])||s.add(t[e]);return new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,t.filter(e=>!s.has(e))]]))])}}class eb extends eN{constructor(){super("DeleteFirst",[eb.PARAMETER_ARRAY_SOURCE],eb.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eb.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new $("Given source array is empty");return(t=[...t]).shift(),new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))])}}class eV extends eN{constructor(){super("DeleteFrom",[eV.PARAMETER_ARRAY_SOURCE,eV.PARAMETER_INT_SOURCE_FROM,eV.PARAMETER_INT_LENGTH],eV.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eV.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eV.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eV.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new $("There are no elements to be deleted");if(r>=(t=[...t]).length||r<0)throw new $("The int source for the array should be in between 0 and length of the array ");if(-1==s&&(s=t.length-r),r+s>t.length)throw new $("Requested length to be deleted is more than the size of array ");return t.splice(r,s),new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))])}}class ev extends eN{constructor(){super("DeleteLast",[ev.PARAMETER_ARRAY_SOURCE],ev.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(ev.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new $("Given source array is empty");return(t=[...t]).pop(),new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))])}}class eC extends eN{constructor(){super("Disjoint",[eC.PARAMETER_ARRAY_SOURCE,eC.PARAMETER_INT_SOURCE_FROM,eC.PARAMETER_ARRAY_SECOND_SOURCE,eC.PARAMETER_INT_SECOND_SOURCE_FROM,eC.PARAMETER_INT_LENGTH],eC.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eC.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eC.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eC.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(eC.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(eC.PARAMETER_INT_LENGTH.getParameterName());if(-1==a&&(a=t.length<=s.length?t.length-r:s.length-n),a>t.length||a>s.length||r+a>t.length||n+a>s.length)throw new $("The length which was being requested is more than than the size either source array or second source array");let i=new Set,o=new Set;for(let e=0;e<a;e++)i.add(t[e+r]);for(let e=0;e<a;e++)o.add(s[e+n]);let E=new Set;return i.forEach(e=>{o.has(e)?o.delete(e):E.add(e)}),o.forEach(e=>{i.has(e)||E.add(e)}),new F([G.outputOf(new Map([[eC.EVENT_RESULT_NAME,[...E]]]))])}}class eD extends eN{constructor(){super("Equals",[eD.PARAMETER_ARRAY_SOURCE,eD.PARAMETER_INT_SOURCE_FROM,eD.PARAMETER_ARRAY_FIND,eD.PARAMETER_INT_FIND_FROM,eD.PARAMETER_INT_LENGTH],eD.EVENT_RESULT_BOOLEAN)}async internalExecute(e){let t=new ey,r=(await t.execute(e)).allResults()[0].getResult().get(eD.EVENT_RESULT_NAME);return new F([G.outputOf(b.of(eD.EVENT_RESULT_NAME,0==r))])}}class eG extends eN{constructor(){super("Fill",[eG.PARAMETER_ARRAY_SOURCE,eG.PARAMETER_INT_SOURCE_FROM,eG.PARAMETER_INT_LENGTH,eG.PARAMETER_ANY],eG.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(eG.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eG.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eG.PARAMETER_INT_LENGTH.getParameterName()),n=e?.getArguments()?.get(eG.PARAMETER_ANY.getParameterName());if(r<0)throw new $(Y.format("Arrays out of bound trying to access $ index",r));-1==s&&(s=t.length-r);let a=r+s-t.length;if(t=[...t],a>0)for(let e=0;e<a;e++)t.push();for(let e=r;e<r+s;e++)t[e]=T(n)?n:ex(n);return new F([G.outputOf(b.of(eN.EVENT_RESULT_NAME,t))])}}class e$ extends eN{constructor(){super("Frequency",[e$.PARAMETER_ARRAY_SOURCE,e$.PARAMETER_ANY,e$.PARAMETER_INT_SOURCE_FROM,e$.PARAMETER_INT_LENGTH],e$.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(e$.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e$.PARAMETER_ANY.getParameterName()),s=e?.getArguments()?.get(e$.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(e$.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)return new F([G.outputOf(new Map([[e$.EVENT_RESULT_NAME,0]]))]);if(s>t.length)throw new $("Given start point is more than the size of source");let a=s+n;if(-1==n&&(a=t.length-s),a>t.length)throw new $("Given length is more than the size of source");let i=0;for(let e=s;e<a&&e<t.length;e++)0==ew.compare(t[e],r)&&i++;return new F([G.outputOf(new Map([[e$.EVENT_RESULT_NAME,i]]))])}}class eF extends eN{constructor(){super("IndexOf",[eF.PARAMETER_ARRAY_SOURCE,eF.PARAMETER_ANY_ELEMENT_OBJECT,eF.PARAMETER_INT_FIND_FROM],eF.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eF.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eF.PARAMETER_ANY_ELEMENT_OBJECT.getParameterName()),s=e?.getArguments()?.get(eF.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new F([G.outputOf(new Map([[eF.EVENT_RESULT_NAME,-1]]))]);if(s<0||s>t.length)throw new $("The size of the search index of the array is greater than the size of the array");let n=-1;for(let e=s;e<t.length;e++)if(0==ew.compare(t[e],r)){n=e;break}return new F([G.outputOf(new Map([[eF.EVENT_RESULT_NAME,n]]))])}}class eB extends eN{constructor(){super("IndexOfArray",[eB.PARAMETER_ARRAY_SOURCE,eB.PARAMETER_ARRAY_SECOND_SOURCE,eB.PARAMETER_INT_FIND_FROM],eB.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eB.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eB.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(eB.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length||0==r.length)return new F([G.outputOf(new Map([[eB.EVENT_RESULT_NAME,-1]]))]);if(s<0||s>t.length||t.length<r.length)throw new $("Given from second source is more than the size of the source array");let n=r.length,a=-1;for(let e=s;e<t.length;e++){let s=0;if(0==ew.compare(t[e],r[s])){for(;s<n&&0==ew.compare(t[e+s],r[s]);)s++;if(s==n){a=e;break}}}return new F([G.outputOf(new Map([[eB.EVENT_RESULT_NAME,a]]))])}}class eY extends eN{constructor(){super("LastIndexOf",[eY.PARAMETER_ARRAY_SOURCE,eY.PARAMETER_ANY_ELEMENT_OBJECT,eY.PARAMETER_INT_FIND_FROM],eY.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eY.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eY.PARAMETER_ANY_ELEMENT_OBJECT.getParameterName()),s=e?.getArguments()?.get(eY.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new F([G.outputOf(new Map([[eY.EVENT_RESULT_NAME,-1]]))]);if(s<0||s>t.length)throw new $("The value of length shouldn't the exceed the size of the array or shouldn't be in terms");let n=-1;for(let e=t.length-1;e>=s;e--)if(0==ew.compare(t[e],r)){n=e;break}return new F([G.outputOf(new Map([[eY.EVENT_RESULT_NAME,n]]))])}}class eH extends eN{constructor(){super("LastIndexOfArray",[eH.PARAMETER_ARRAY_SOURCE,eH.PARAMETER_ARRAY_SECOND_SOURCE,eH.PARAMETER_INT_FIND_FROM],eH.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eH.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eH.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(eH.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new F([G.outputOf(new Map([[eH.EVENT_RESULT_NAME,-1]]))]);if(s<0||s>t.length||r.length>t.length)throw new $("Given from index is more than the size of the source array");let n=r.length,a=-1;for(let e=s;e<t.length;e++){let s=0;if(0==ew.compare(t[e],r[s])){for(;s<n&&0==ew.compare(t[e+s],r[s]);)s++;s==n&&(a=e)}}return new F([G.outputOf(new Map([[eH.EVENT_RESULT_NAME,a]]))])}}class ek extends eN{constructor(){super("Max",[ek.PARAMETER_ARRAY_SOURCE_PRIMITIVE],ek.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(ek.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==t.length)throw new $("Search source array cannot be empty");let r=t[0];for(let e=1;e<t.length;e++){let s=t[e];ew.comparePrimitive(r,s)>=0||(r=s)}return new F([G.outputOf(new Map([[ek.EVENT_RESULT_NAME,r]]))])}}class ej extends eN{constructor(){super("Min",[ej.PARAMETER_ARRAY_SOURCE_PRIMITIVE],ej.EVENT_RESULT_ANY)}async internalExecute(e){let t,r=e?.getArguments()?.get(ej.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++)!T(r[e])&&(void 0===t||0>ew.comparePrimitive(r[e],t))&&(t=r[e]);return new F([G.outputOf(new Map([[ej.EVENT_RESULT_NAME,t]]))])}}class eW extends eN{constructor(){super("MisMatch",[eW.PARAMETER_ARRAY_SOURCE,eW.PARAMETER_INT_FIND_FROM,eW.PARAMETER_ARRAY_SECOND_SOURCE,eW.PARAMETER_INT_SECOND_SOURCE_FROM,eW.PARAMETER_INT_LENGTH],eW.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eW.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eW.PARAMETER_INT_FIND_FROM.getParameterName()),s=e?.getArguments()?.get(eW.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(eW.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(eW.PARAMETER_INT_LENGTH.getParameterName()),i=r<t.length&&r>0?r:0,o=n<s.length&&n>0?n:0;if(i+a>=t.length||o+a>s.length)throw new $("The size of the array for first and second which was being requested is more than size of the given array");let E=-1;for(let e=0;e<a;e++)if(t[i+e]!=s[o+e]){E=e;break}return new F([G.outputOf(new Map([[eW.EVENT_RESULT_NAME,E]]))])}}class eX extends eN{constructor(){super("Reverse",[eX.PARAMETER_ARRAY_SOURCE,eX.PARAMETER_INT_SOURCE_FROM,eX.PARAMETER_INT_LENGTH],eX.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eX.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eX.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eX.PARAMETER_INT_LENGTH.getParameterName());if(-1==s&&(s=t.length-r),s>=t.length||s<0||r<0)throw new $("Please provide start point between the start and end indexes or provide the length which was less than the source size ");t=[...t];let n=r+s-1;for(;r<=n;){let e=t[r],s=t[n];t[r++]=s,t[n--]=e}return new F([G.outputOf(new Map([[eX.EVENT_RESULT_NAME,t]]))])}}class eJ extends eN{constructor(){super("Rotate",[eJ.PARAMETER_ARRAY_SOURCE,eJ.PARAMETER_ROTATE_LENGTH],eJ.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eJ.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eJ.PARAMETER_ROTATE_LENGTH.getParameterName());if(0==t.length)return new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))]);let s=(t=[...t]).length;return r%=s,this.rotate(t,0,r-1),this.rotate(t,r,s-1),this.rotate(t,0,s-1),new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))])}rotate(e,t,r){for(;t<r;){let s=e[t];e[t++]=e[r],e[r--]=s}}}class eq extends eN{constructor(){super("Shuffle",[eq.PARAMETER_ARRAY_SOURCE],eq.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eq.PARAMETER_ARRAY_SOURCE.getParameterName());if(t.length<=1)return new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))]);let r=0,s=(t=[...t]).length;for(let e=0;e<s;e++){let e=Math.floor(Math.random()*s)%s,n=t[r];t[r]=t[e],t[e]=n,r=e}return new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))])}}t({},"ObjectValueSetterExtractor",()=>e5),t({},"Expression",()=>e1),t({},"StringBuilder",()=>eK);class eK{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)}}t({},"ExpressionEvaluationException",()=>ez);class ez extends Error{constructor(e,t,r){super(Y.format("$ : $",e,t)),this.cause=r}getCause(){return this.cause}}t({},"ExpressionToken",()=>eQ);class eQ{constructor(e){this.expression=e}getExpression(){return this.expression}toString(){return this.expression}}t({},"ExpressionTokenValue",()=>eZ);class eZ extends eQ{constructor(e,t){super(e),this.element=t}getTokenValue(){return this.element}getElement(){return this.element}toString(){return Y.format("$: $",this.expression,this.element)}}t({},"Operation",()=>e0);class e0{static{this.MULTIPLICATION=new e0("*")}static{this.DIVISION=new e0("/")}static{this.INTEGER_DIVISION=new e0("//")}static{this.MOD=new e0("%")}static{this.ADDITION=new e0("+")}static{this.SUBTRACTION=new e0("-")}static{this.NOT=new e0("not",void 0,!0)}static{this.AND=new e0("and",void 0,!0)}static{this.OR=new e0("or",void 0,!0)}static{this.LESS_THAN=new e0("<")}static{this.LESS_THAN_EQUAL=new e0("<=")}static{this.GREATER_THAN=new e0(">")}static{this.GREATER_THAN_EQUAL=new e0(">=")}static{this.EQUAL=new e0("=")}static{this.NOT_EQUAL=new e0("!=")}static{this.BITWISE_AND=new e0("&")}static{this.BITWISE_OR=new e0("|")}static{this.BITWISE_XOR=new e0("^")}static{this.BITWISE_COMPLEMENT=new e0("~")}static{this.BITWISE_LEFT_SHIFT=new e0("<<")}static{this.BITWISE_RIGHT_SHIFT=new e0(">>")}static{this.BITWISE_UNSIGNED_RIGHT_SHIFT=new e0(">>>")}static{this.UNARY_PLUS=new e0("UN: +","+")}static{this.UNARY_MINUS=new e0("UN: -","-")}static{this.UNARY_LOGICAL_NOT=new e0("UN: not","not")}static{this.UNARY_BITWISE_COMPLEMENT=new e0("UN: ~","~")}static{this.ARRAY_OPERATOR=new e0("[")}static{this.ARRAY_RANGE_INDEX_OPERATOR=new e0("..")}static{this.OBJECT_OPERATOR=new e0(".")}static{this.NULLISH_COALESCING_OPERATOR=new e0("??")}static{this.CONDITIONAL_TERNARY_OPERATOR=new e0("?")}static{this.VALUE_OF=new Map([["MULTIPLICATION",e0.MULTIPLICATION],["DIVISION",e0.DIVISION],["INTEGER_DIVISION",e0.INTEGER_DIVISION],["MOD",e0.MOD],["ADDITION",e0.ADDITION],["SUBTRACTION",e0.SUBTRACTION],["NOT",e0.NOT],["AND",e0.AND],["OR",e0.OR],["LESS_THAN",e0.LESS_THAN],["LESS_THAN_EQUAL",e0.LESS_THAN_EQUAL],["GREATER_THAN",e0.GREATER_THAN],["GREATER_THAN_EQUAL",e0.GREATER_THAN_EQUAL],["EQUAL",e0.EQUAL],["NOT_EQUAL",e0.NOT_EQUAL],["BITWISE_AND",e0.BITWISE_AND],["BITWISE_OR",e0.BITWISE_OR],["BITWISE_XOR",e0.BITWISE_XOR],["BITWISE_COMPLEMENT",e0.BITWISE_COMPLEMENT],["BITWISE_LEFT_SHIFT",e0.BITWISE_LEFT_SHIFT],["BITWISE_RIGHT_SHIFT",e0.BITWISE_RIGHT_SHIFT],["BITWISE_UNSIGNED_RIGHT_SHIFT",e0.BITWISE_UNSIGNED_RIGHT_SHIFT],["UNARY_PLUS",e0.UNARY_PLUS],["UNARY_MINUS",e0.UNARY_MINUS],["UNARY_LOGICAL_NOT",e0.UNARY_LOGICAL_NOT],["UNARY_BITWISE_COMPLEMENT",e0.UNARY_BITWISE_COMPLEMENT],["ARRAY_OPERATOR",e0.ARRAY_OPERATOR],["ARRAY_RANGE_INDEX_OPERATOR",e0.ARRAY_RANGE_INDEX_OPERATOR],["OBJECT_OPERATOR",e0.OBJECT_OPERATOR],["NULLISH_COALESCING_OPERATOR",e0.NULLISH_COALESCING_OPERATOR],["CONDITIONAL_TERNARY_OPERATOR",e0.CONDITIONAL_TERNARY_OPERATOR]])}static{this.UNARY_OPERATORS=new Set([e0.ADDITION,e0.SUBTRACTION,e0.NOT,e0.BITWISE_COMPLEMENT,e0.UNARY_PLUS,e0.UNARY_MINUS,e0.UNARY_LOGICAL_NOT,e0.UNARY_BITWISE_COMPLEMENT])}static{this.ARITHMETIC_OPERATORS=new Set([e0.MULTIPLICATION,e0.DIVISION,e0.INTEGER_DIVISION,e0.MOD,e0.ADDITION,e0.SUBTRACTION])}static{this.LOGICAL_OPERATORS=new Set([e0.NOT,e0.AND,e0.OR,e0.LESS_THAN,e0.LESS_THAN_EQUAL,e0.GREATER_THAN,e0.GREATER_THAN_EQUAL,e0.EQUAL,e0.NOT_EQUAL,e0.NULLISH_COALESCING_OPERATOR])}static{this.BITWISE_OPERATORS=new Set([e0.BITWISE_AND,e0.BITWISE_COMPLEMENT,e0.BITWISE_LEFT_SHIFT,e0.BITWISE_OR,e0.BITWISE_RIGHT_SHIFT,e0.BITWISE_UNSIGNED_RIGHT_SHIFT,e0.BITWISE_XOR])}static{this.CONDITIONAL_OPERATORS=new Set([e0.CONDITIONAL_TERNARY_OPERATOR])}static{this.OPERATOR_PRIORITY=new Map([[e0.UNARY_PLUS,1],[e0.UNARY_MINUS,1],[e0.UNARY_LOGICAL_NOT,1],[e0.UNARY_BITWISE_COMPLEMENT,1],[e0.ARRAY_OPERATOR,1],[e0.OBJECT_OPERATOR,1],[e0.ARRAY_RANGE_INDEX_OPERATOR,2],[e0.MULTIPLICATION,2],[e0.DIVISION,2],[e0.INTEGER_DIVISION,2],[e0.MOD,2],[e0.ADDITION,3],[e0.SUBTRACTION,3],[e0.BITWISE_LEFT_SHIFT,4],[e0.BITWISE_RIGHT_SHIFT,4],[e0.BITWISE_UNSIGNED_RIGHT_SHIFT,4],[e0.LESS_THAN,5],[e0.LESS_THAN_EQUAL,5],[e0.GREATER_THAN,5],[e0.GREATER_THAN_EQUAL,5],[e0.EQUAL,6],[e0.NOT_EQUAL,6],[e0.BITWISE_AND,7],[e0.BITWISE_XOR,8],[e0.BITWISE_OR,9],[e0.AND,10],[e0.OR,11],[e0.NULLISH_COALESCING_OPERATOR,11],[e0.CONDITIONAL_TERNARY_OPERATOR,12]])}static{this.OPERATORS=new Set([...Array.from(e0.ARITHMETIC_OPERATORS),...Array.from(e0.LOGICAL_OPERATORS),...Array.from(e0.BITWISE_OPERATORS),e0.ARRAY_OPERATOR,e0.ARRAY_RANGE_INDEX_OPERATOR,e0.OBJECT_OPERATOR,...Array.from(e0.CONDITIONAL_OPERATORS)].map(e=>e.getOperator()))}static{this.OPERATORS_WITHOUT_SPACE_WRAP=new Set([...Array.from(e0.ARITHMETIC_OPERATORS),...Array.from(e0.LOGICAL_OPERATORS),...Array.from(e0.BITWISE_OPERATORS),e0.ARRAY_OPERATOR,e0.ARRAY_RANGE_INDEX_OPERATOR,e0.OBJECT_OPERATOR,...Array.from(e0.CONDITIONAL_OPERATORS)].filter(e=>!e.shouldBeWrappedInSpace()).map(e=>e.getOperator()))}static{this.OPERATION_VALUE_OF=new Map(Array.from(e0.VALUE_OF.entries()).map(([e,t])=>[t.getOperator(),t]))}static{this.UNARY_MAP=new Map([[e0.ADDITION,e0.UNARY_PLUS],[e0.SUBTRACTION,e0.UNARY_MINUS],[e0.NOT,e0.UNARY_LOGICAL_NOT],[e0.BITWISE_COMPLEMENT,e0.UNARY_BITWISE_COMPLEMENT],[e0.UNARY_PLUS,e0.UNARY_PLUS],[e0.UNARY_MINUS,e0.UNARY_MINUS],[e0.UNARY_LOGICAL_NOT,e0.UNARY_LOGICAL_NOT],[e0.UNARY_BITWISE_COMPLEMENT,e0.UNARY_BITWISE_COMPLEMENT]])}static{this.BIGGEST_OPERATOR_SIZE=Array.from(e0.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 e0.VALUE_OF.get(e)}toString(){return this.operator}}class e1 extends eQ{constructor(e,t,r,s){super(e||""),this.tokens=new H,this.ops=new H,s?.getOperator()!=".."||(t?r||(r=new eZ("","")):t=new eZ("","")),t&&this.tokens.push(t),r&&this.tokens.push(r),s&&this.ops.push(s),this.evaluate(),this.ops.isEmpty()||".."!=this.ops.peekLast().getOperator()||1!=this.tokens.length||this.tokens.push(new eQ(""))}getTokens(){return this.tokens}getOperations(){return this.ops}evaluate(){let e;let t=this.expression.length,r="",s=new eK(""),n=0,a=!1;for(;n<t;){switch(r=this.expression[n],e=s.toString(),r){case" ":a=this.processTokenSepearator(s,e,a);break;case"(":n=this.processSubExpression(t,s,e,n,a),a=!1;break;case")":throw new ez(this.expression,"Extra closing parenthesis found");case"]":throw new ez(this.expression,"Extra closing square bracket found");case"'":case'"':{let e=this.processStringLiteral(t,r,n);n=e.getT1(),a=e.getT2();break}case"?":if(n+1<t&&"?"!=this.expression.charAt(n+1)&&0!=n&&"?"!=this.expression.charAt(n-1))n=this.processTernaryOperator(t,s,e,n,a);else{let i=this.processOthers(r,t,s,e,n,a);n=i.getT1(),(a=i.getT2())&&this.ops.peek()==e0.ARRAY_OPERATOR&&(n=(i=this.process(t,s,n)).getT1(),a=i.getT2())}break;default:let i=this.processOthers(r,t,s,e,n,a);n=i.getT1(),(a=i.getT2())&&this.ops.peek()==e0.ARRAY_OPERATOR&&(n=(i=this.process(t,s,n)).getT1(),a=i.getT2())}++n}if(e=s.toString(),!W.isNullOrBlank(e)){if(e0.OPERATORS.has(e))throw new ez(this.expression,"Expression is ending with an operator");this.tokens.push(new eQ(e))}}processStringLiteral(e,t,r){let s="",n=r+1;for(;n<e;n++){let e=this.expression.charAt(n);if(e==t&&"\\"!=this.expression.charAt(n-1))break;s+=e}if(n==e&&this.expression.charAt(n-1)!=t)throw new ez(this.expression,"Missing string ending marker "+t);let a=new J(n,!1);return this.tokens.push(new eZ(s,s)),a}process(e,t,r){let s=1;for(++r;r<e&&0!=s;){let e=this.expression.charAt(r);"]"==e?--s:"["==e&&++s,0!=s&&(t.append(e),r++)}return this.tokens.push(new e1(t.toString())),t.setLength(0),new J(r,!1)}processOthers(e,t,r,s,n,a){let i=t-n;i=i<e0.BIGGEST_OPERATOR_SIZE?i:e0.BIGGEST_OPERATOR_SIZE;for(let e=i;e>0;e--){let t=this.expression.substring(n,n+e);if(e0.OPERATORS_WITHOUT_SPACE_WRAP.has(t))return W.isNullOrBlank(s)?".."==t&&this.tokens.isEmpty()&&(this.tokens.push(new eQ("0")),a=!1):(this.tokens.push(new eQ(s)),a=!1),this.checkUnaryOperator(this.tokens,this.ops,e0.OPERATION_VALUE_OF.get(t),a),a=!0,r.setLength(0),new J(n+e-1,a)}return r.append(e),new J(n,!1)}processTernaryOperator(e,t,r,s,n){if(n)throw new ez(this.expression,"Ternary operator is followed by an operator");""!=r.trim()&&(this.tokens.push(new e1(r)),t.setLength(0));let a=1,i="",o=++s;for(;s<e&&a>0;)"?"==(i=this.expression.charAt(s))?++a:":"==i&&--a,++s;if(":"!=i)throw new ez(this.expression,"':' operater is missing");if(s>=e)throw new ez(this.expression,"Third part of the ternary expression is missing");for(;!this.ops.isEmpty()&&this.hasPrecedence(e0.CONDITIONAL_TERNARY_OPERATOR,this.ops.peek());){let e=this.ops.pop();if(e0.UNARY_OPERATORS.has(e)){let t=this.tokens.pop();this.tokens.push(new e1("",t,void 0,e))}else{let t=this.tokens.pop(),r=this.tokens.pop();this.tokens.push(new e1("",r,t,e))}}this.ops.push(e0.CONDITIONAL_TERNARY_OPERATOR),this.tokens.push(new e1(this.expression.substring(o,s-1)));let E=this.expression.substring(s);if(""===E.trim())throw new ez(this.expression,"Third part of the ternary expression is missing");return this.tokens.push(new e1(E)),e-1}processSubExpression(e,t,r,s,n){if(e0.OPERATORS.has(r))this.checkUnaryOperator(this.tokens,this.ops,e0.OPERATION_VALUE_OF.get(r),n),t.setLength(0);else if(!W.isNullOrBlank(r))throw new ez(this.expression,Y.format("Unkown token : $ found.",r));let a=1,i=new eK,o=this.expression.charAt(s);for(s++;s<e&&a>0;)"("==(o=this.expression.charAt(s))?a++:")"==o&&a--,0!=a&&(i.append(o),s++);if(")"!=o)throw new ez(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 e1(i.toString().trim())),s}processTokenSepearator(e,t,r){return W.isNullOrBlank(t)||(e0.OPERATORS.has(t)?(this.checkUnaryOperator(this.tokens,this.ops,e0.OPERATION_VALUE_OF.get(t),r),r=!0):(this.tokens.push(new eQ(t)),r=!1)),e.setLength(0),r}checkUnaryOperator(e,t,r,s){if(r){if(s||e.isEmpty()){if(e0.UNARY_OPERATORS.has(r)){let e=e0.UNARY_MAP.get(r);e&&t.push(e)}else throw new ez(this.expression,Y.format("Extra operator $ found.",r))}else{for(;!t.isEmpty()&&this.hasPrecedence(r,t.peek());){let r=t.pop();if(e0.UNARY_OPERATORS.has(r)){let t=e.pop();e.push(new e1("",t,void 0,r))}else{let t=e.pop(),s=e.pop();e.push(new e1("",s,t,r))}}t.push(r)}}}hasPrecedence(e,t){let r=e0.OPERATOR_PRIORITY.get(e),s=e0.OPERATOR_PRIORITY.get(t);if(!r||!s)throw Error("Unknown operators provided");return s<r}toString(){if(this.ops.isEmpty())return 1==this.tokens.size()?this.tokens.get(0).toString():"Error: No tokens";let e=new eK,t=0,r=this.ops.toArray(),s=this.tokens.toArray();for(let n=0;n<r.length;n++)if(r[n].getOperator().startsWith("UN: "))e.append("(").append(r[n].getOperator().substring(4)).append(s[t]instanceof e1?s[t].toString():s[t]).append(")"),t++;else if(r[n]==e0.CONDITIONAL_TERNARY_OPERATOR){let r=s[t++];e.insert(0,r.toString()),e.insert(0,":"),r=s[t++],e.insert(0,r.toString()),e.insert(0,"?"),r=s[t++],e.insert(0,r.toString()).append(")"),e.insert(0,"(")}else{if(0==t){let r=s[t++];e.insert(0,r.toString())}let a=s[t++];e.insert(0,r[n].getOperator()).insert(0,a instanceof e1?a.toString():a?.toString()).insert(0,"(").append(")")}return e.toString()}equals(e){return this.expression==e.expression}}t({},"TokenValueExtractor",()=>e2);class e2{static{this.REGEX_SQUARE_BRACKETS=/[\[\]]/}static{this.REGEX_DOT=/(?<!\.)\.(?!\.)/}getValue(e){let t=this.getPrefix();if(!e.startsWith(t))throw new $(Y.format("Token $ doesn't start with $",e,t));if(e.endsWith(".__index")){let t=e.substring(0,e.length-8),r=this.getValueInternal(t);if(!T(r?.__index))return r.__index;if(!t.endsWith("]"))return t.substring(t.lastIndexOf(".")+1);{let e=t.substring(t.lastIndexOf("[")+1,t.length-1),r=parseInt(e);return isNaN(r)?e:r}}return this.getValueInternal(e)}retrieveElementFrom(e,t,r,s){if(T(s))return;if(t.length==r)return s;let n=t[r].split(e2.REGEX_SQUARE_BRACKETS).map(e=>e.trim()).filter(e=>!W.isNullOrBlank(e)).reduce((s,n)=>this.resolveForEachPartOfTokenWithBrackets(e,t,r,n,s),s);return this.retrieveElementFrom(e,t,r+1,n)}resolveForEachPartOfTokenWithBrackets(e,t,r,s,n){if(!T(n))return"length"===s?this.getLength(e,n):"string"==typeof n||Array.isArray(n)?this.handleArrayAccess(e,s,n):this.handleObjectAccess(e,t,r,s,n)}getLength(e,t){let r=typeof t;if("string"===r||Array.isArray(t))return t.length;if("object"===r)return"length"in t?t.length:Object.keys(t).length;throw new ez(e,Y.format("Length can't be found in token $",e))}handleArrayAccess(e,t,r){let s=t.indexOf("..");if(s>=0){let e=t.substring(0,s),n=t.substring(s+2),a=0==e.length?0:parseInt(e),i=0==n.length?r.length:parseInt(n);if(isNaN(a)||isNaN(i))return;for(;a<0;)a+=r.length;for(;i<0;)i+=r.length;let o=typeof r;return a>=i?"string"==o?"":[]:"string"==o?r.substring(a,i):r.slice(a,i)}let n=parseInt(t);if(isNaN(n))throw new ez(e,Y.format("$ is not a number",t));for(;n<0;)n=r.length+n;if(!(n>=r.length))return r[n]}handleObjectAccess(e,t,r,s,n){if(s.startsWith('"')){if(!s.endsWith('"')||1==s.length||2==s.length)throw new ez(e,Y.format("$ is missing a double quote or empty key found",e));s=s.substring(1,t.length-2)}return this.checkIfObject(e,t,r,n),n[s]}checkIfObject(e,t,r,s){let n=typeof s;if("object"!=n&&"string"!=n||Array.isArray(s))throw new ez(e,Y.format("Unable to retrieve $ from $ in the path $",t[r],s.toString(),e))}}class e5 extends e2{constructor(e,t){super(),this.store=e,this.prefix=t}getValueInternal(e){let t=e.split(e2.REGEX_DOT);return this.retrieveElementFrom(e,t,1,this.store)}getStore(){return this.store}setStore(e){return this.store=e,this}setValue(e,t,r=!0,s=!1){this.store=ex(this.store),this.modifyStore(e,t,r,s)}modifyStore(e,t,r,s){let n=new e1(e),a=n.getTokens();a.removeLast();let i=n.getOperations(),o=i.removeLast(),E=a.removeLast(),u=E instanceof eZ?E.getElement():E.getExpression(),A=this.store;for(;!i.isEmpty();)A=o==e0.OBJECT_OPERATOR?this.getDataFromObject(A,u,i.peekLast()):this.getDataFromArray(A,u,i.peekLast()),o=i.removeLast(),u=(E=a.removeLast())instanceof eZ?E.getElement():E.getExpression();o==e0.OBJECT_OPERATOR?this.putDataInObject(A,u,t,r,s):this.putDataInArray(A,u,t,r,s)}getDataFromArray(e,t,r){if(!Array.isArray(e))throw new $(Y.format("Expected an array but found $",e));let s=parseInt(t);if(isNaN(s))throw new $(Y.format("Expected an array index but found $",t));if(s<0)throw new $(Y.format("Array index is out of bound - $",t));let n=e[s];return T(n)&&(n=r==e0.OBJECT_OPERATOR?{}:[],e[s]=n),n}getDataFromObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new $(Y.format("Expected an object but found $",e));let s=e[t];return T(s)&&(s=r==e0.OBJECT_OPERATOR?{}:[],e[t]=s),s}putDataInArray(e,t,r,s,n){if(!Array.isArray(e))throw new $(Y.format("Expected an array but found $",e));let a=parseInt(t);if(isNaN(a))throw new $(Y.format("Expected an array index but found $",t));if(a<0)throw new $(Y.format("Array index is out of bound - $",t));(s||T(e[a]))&&(n&&T(r)?e.splice(a,1):e[a]=r)}putDataInObject(e,t,r,s,n){if(Array.isArray(e)||"object"!=typeof e)throw new $(Y.format("Expected an object but found $",e));(s||T(e[t]))&&(n&&T(r)?delete e[t]:e[t]=r)}getPrefix(){return this.prefix}}class e7 extends eN{constructor(){super("Sort",[e7.PARAMETER_ARRAY_SOURCE,e7.PARAMETER_INT_FIND_FROM,e7.PARAMETER_INT_LENGTH,e7.PARAMETER_BOOLEAN_ASCENDING,e7.PARAMETER_KEY_PATH],e7.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(e7.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e7.PARAMETER_INT_FIND_FROM.getParameterName()),s=e?.getArguments()?.get(e7.PARAMETER_INT_LENGTH.getParameterName()),n=e?.getArguments()?.get(e7.PARAMETER_BOOLEAN_ASCENDING.getParameterName()),a=e?.getArguments()?.get(e7.PARAMETER_KEY_PATH.getParameterName());if(0==t.length)return new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))]);if(t=[...t],-1==s&&(s=t.length-r),r<0||r>=t.length||r+s>t.length)throw new $("Given start point is more than the size of the array or not available at that point");let i=t.slice(r,r+s+1),o=new e5({},"Data.");return i.sort((e,t)=>"object"==typeof e&&"object"==typeof t&&a.length?(o.setStore({a:e,b:t}),e4(o.getValue("Data.a."+a),o.getValue("Data.b."+a),n)):e4(e,t,n)),t.splice(r,s,...i),new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))])}}function e4(e,t,r){return e===t?0:null===e?1:null===t?-1:r?e<t?-1:1:e<t?1:-1}class e9 extends eN{constructor(){super("SubArray",[e9.PARAMETER_ARRAY_SOURCE,e9.PARAMETER_INT_FIND_FROM,e9.PARAMETER_INT_LENGTH],e9.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(e9.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e9.PARAMETER_INT_FIND_FROM.getParameterName()),s=e?.getArguments()?.get(e9.PARAMETER_INT_LENGTH.getParameterName());if(-1==s&&(s=t.length-r),s<=0)return new F([G.outputOf(new Map([]))]);if(!(r>=0&&r<t.length)||r+s>t.length)throw new $("Given find from point is more than the source size array or the Requested length for the subarray was more than the source size");let n=t.slice(r,r+s);return new F([G.outputOf(new Map([[e9.EVENT_RESULT_NAME,n]]))])}}class e6 extends eN{constructor(){super("Insert",[e6.PARAMETER_ARRAY_SOURCE,e6.PARAMETER_INT_OFFSET,e6.PARAMETER_ANY],e6.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(e6.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e6.PARAMETER_INT_OFFSET.getParameterName());var s=e?.getArguments()?.get(e6.PARAMETER_ANY.getParameterName());if(T(s)||T(r)||r>t.length)throw new $("Please valid resouces to insert at the correct location");if(0==(t=[...t]).length)return 0==r&&t.push(s),new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))]);t.push(s);let n=t.length-1;for(r++;n>=r;){let e=t[n-1];t[n-1]=t[n],t[n--]=e}return new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))])}}class e3 extends eN{constructor(){super("InsertLast",[e3.PARAMETER_ARRAY_SOURCE,e3.PARAMETER_ANY],e3.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(e3.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(e3.PARAMETER_ANY.getParameterName());return(t=[...t]).push(r),new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))])}}class e8 extends eN{constructor(){super("RemoveDuplicates",[e8.PARAMETER_ARRAY_SOURCE,e8.PARAMETER_INT_SOURCE_FROM,e8.PARAMETER_INT_LENGTH],e8.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(e8.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e8.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(e8.PARAMETER_INT_LENGTH.getParameterName());if(-1==s&&(s=t.length-r),r+s>t.length)throw new $(Y.format("Array has no elements from $ to $ as the array size is $",r,r+s,t.length));let n=[...t],a=r+s;for(let e=a-1;e>=r;e--)for(let t=e-1;t>=r;t--)if(j(n[e],n[t])){n.splice(e,1);break}return new F([G.outputOf(b.of(e8.EVENT_RESULT_NAME,n))])}}let te="keyPath",tt="valuePath",tr="ignoreNullValues",ts="ignoreNullKeys",tn="ignoreDuplicateKeys";class ta extends eN{constructor(){super("ArrayToObjects",[eN.PARAMETER_ARRAY_SOURCE,L.of(te,P.ofString(te)),L.of(tt,P.of(tt,c.STRING,c.NULL)),L.of(tr,P.ofBoolean(tr).setDefaultValue(!1)),L.of(ts,P.ofBoolean(ts).setDefaultValue(!0)),L.of(tn,P.ofBoolean(tn).setDefaultValue(!1))],eN.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(eN.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(te),s=e?.getArguments()?.get(tt)??"",n=e?.getArguments()?.get(tr),a=e?.getArguments()?.get(ts),i=e?.getArguments()?.get(tn),o=new e5({},"Data."),E=t.filter(e=>!T(e)).reduce((e,t)=>{o.setStore(t);let E=o.getValue("Data."+r);if(a&&T(E))return e;let u=s?o.getValue("Data."+s):t;return n&&T(u)||i&&e.hasOwnProperty(E)||(e[E]=u),e},{});return new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,E]]))])}}let ti="source",to="delimiter",tE="result";class tu extends ef{getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(ti),r=e?.getArguments()?.get(to);return new F([G.outputOf(new Map([[tE,t.join(r)]]))])}constructor(...e){super(...e),this.signature=new B("Join").setNamespace(A.SYSTEM_ARRAY).setParameters(new Map([[ti,new L(ti,P.ofArray(ti,P.of("each",c.STRING,c.INTEGER,c.LONG,c.DOUBLE,c.FLOAT,c.NULL)))],[to,new L(to,P.ofString(to).setDefaultValue(""))]])).setEvents(new Map([D.outputEventMapEntry(new Map([[tE,P.ofString(tE)]]))]))}}class tA{async find(e,t){return e!=A.SYSTEM_ARRAY?Promise.resolve(void 0):Promise.resolve(this.repoMap.get(t))}async filter(e){return Promise.resolve(this.filterableNames.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}constructor(){this.repoMap=b.ofArrayEntries(C(new e_),C(new eM),C(new eP),C(new ey),C(new eL),C(new eU),C(new eb),C(new eV),C(new ev),C(new eC),C(new eD),C(new eG),C(new e$),C(new eF),C(new eB),C(new eY),C(new eH),C(new ek),C(new ej),C(new eW),C(new eX),C(new eJ),C(new eq),C(new e7),C(new e9),C(new eO),C(new e6),C(new e3),C(new e8),C(new ta),C(new tu)),this.filterableNames=Array.from(this.repoMap.values()).map(e=>e.getSignature().getFullName())}}t({},"ContextElement",()=>tT);class tT{static{this.NULL=new tT(P.NULL,void 0)}constructor(e,t){this.schema=e,this.element=t}getSchema(){return this.schema}setSchema(e){return this.schema=e,this}getElement(){return this.element}setElement(e){return this.element=e,this}}let tl="name",tc="schema";class tR extends ef{getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(tl);if(e?.getContext()?.has(t))throw new $(Y.format("Context already has an element for '$' ",t));let r=P.from(e?.getArguments()?.get(tc));if(!r)throw new $("Schema is not supplied.");return e.getContext().set(t,new tT(r,T(r.getDefaultValue())?void 0:r.getDefaultValue())),new F([G.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new B("Create").setNamespace(A.SYSTEM_CTX).setParameters(new Map([L.ofEntry(tl,new P().setName(tl).setType(m.of(c.STRING)).setMinLength(1).setFormat(ea.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,y.CONSTANT),L.ofEntry(tc,P.SCHEMA,!1,y.CONSTANT)])).setEvents(new Map([D.outputEventMapEntry(new Map)]))}}let th="name",tg="value";class tm extends ef{getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(th);if(!e.getContext()?.has(t))throw new $(Y.format("Context don't have an element for '$' ",t));return new F([G.outputOf(new Map([tg,e.getContext()?.get(t)?.getElement()]))])}constructor(...e){super(...e),this.signature=new B("Get").setNamespace(A.SYSTEM_CTX).setParameters(new Map([L.ofEntry(th,new P().setName(th).setType(m.of(c.STRING)).setMinLength(1).setFormat(ea.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,y.CONSTANT)])).setEvents(new Map([D.outputEventMapEntry(new Map([[tg,P.ofAny(tg)]]))]))}}t({},"ExpressionEvaluator",()=>rM);var tp={},tf={};t(tf,"ArithmeticAdditionOperator",()=>tM);var tN={};t(tN,"BinaryOperator",()=>t_);class t_{nullCheck(e,t,r){if(T(e)||T(t))throw new ed(Y.format("$ cannot be applied to a null value",r.getOperatorName()))}}class tM extends t_{apply(e,t){return T(e)?t:T(t)?e:e+t}}var tS={};t(tS,"ArithmeticDivisionOperator",()=>tO);class tO extends t_{apply(e,t){return this.nullCheck(e,t,e0.DIVISION),e/t}}var td={};t(td,"ArithmeticIntegerDivisionOperator",()=>tw);class tw extends t_{apply(e,t){return this.nullCheck(e,t,e0.DIVISION),Math.floor(e/t)}}var tP={};t(tP,"ArithmeticModulusOperator",()=>tI);class tI extends t_{apply(e,t){return this.nullCheck(e,t,e0.MOD),e%t}}var ty={};t(ty,"ArithmeticMultiplicationOperator",()=>tx);class tx extends t_{apply(e,t){this.nullCheck(e,t,e0.MULTIPLICATION);let r="string"==typeof e,s=typeof t;if(r||"string"===s){let s=r?e:t,n=r?t:e,a="",i=n<0,o=Math.floor(n=Math.abs(n));for(;o-- >0;)a+=s;let E=Math.floor(s.length*(n-Math.floor(n)));if(E<0&&(E=-E),0!=E&&(a+=s.substring(0,E)),i){let e="";for(let t=a.length-1;t>=0;t--)e+=a[t];return e}return a}return e*t}}var tL={};t(tL,"ArithmeticSubtractionOperator",()=>tU);class tU extends t_{apply(e,t){return this.nullCheck(e,t,e0.SUBTRACTION),e-t}}var tb={};t(tb,"ArrayOperator",()=>tV);class tV extends t_{apply(e,t){if(!e)throw new ed("Cannot apply array operator on a null value");if(!t)throw new ed("Cannot retrive null index value");if(!Array.isArray(e)&&"string"!=typeof e)throw new ed(Y.format("Cannot retrieve value from a primitive value $",e));if(t>=e.length)throw new ed(Y.format("Cannot retrieve index $ from the array of length $",t,e.length));return e[t]}}var tv={};t(tv,"BitwiseAndOperator",()=>tC);class tC extends t_{apply(e,t){return this.nullCheck(e,t,e0.BITWISE_AND),e&t}}var tD={};t(tD,"BitwiseLeftShiftOperator",()=>tG);class tG extends t_{apply(e,t){return this.nullCheck(e,t,e0.BITWISE_LEFT_SHIFT),e<<t}}var t$={};t(t$,"BitwiseOrOperator",()=>tF);class tF extends t_{apply(e,t){return this.nullCheck(e,t,e0.BITWISE_OR),e|t}}var tB={};t(tB,"BitwiseRightShiftOperator",()=>tY);class tY extends t_{apply(e,t){return this.nullCheck(e,t,e0.BITWISE_RIGHT_SHIFT),e>>t}}var tH={};t(tH,"BitwiseUnsignedRightShiftOperator",()=>tk);class tk extends t_{apply(e,t){return this.nullCheck(e,t,e0.BITWISE_UNSIGNED_RIGHT_SHIFT),e>>>t}}var tj={};t(tj,"BitwiseXorOperator",()=>tW);class tW extends t_{apply(e,t){return this.nullCheck(e,t,e0.BITWISE_XOR),e^t}}var tX={};t(tX,"LogicalAndOperator",()=>tJ);class tJ extends t_{apply(e,t){return!!e&&""!==e&&!!t&&""!==t}}var tq={};t(tq,"LogicalEqualOperator",()=>tK);class tK extends t_{apply(e,t){return j(e,t)}}var tz={};t(tz,"LogicalGreaterThanEqualOperator",()=>tQ);class tQ extends t_{apply(e,t){let r=ew.findPrimitiveNullAsBoolean(e),s=ew.findPrimitiveNullAsBoolean(t);if(r.getT1()==c.BOOLEAN||s.getT1()==c.BOOLEAN)throw new ed(Y.format("Cannot compare >= with the values $ and $",r.getT2(),s.getT2()));return r.getT2()>=s.getT2()}}var tZ={};t(tZ,"LogicalGreaterThanOperator",()=>t0);class t0 extends t_{apply(e,t){let r=ew.findPrimitiveNullAsBoolean(e),s=ew.findPrimitiveNullAsBoolean(t);if(r.getT1()==c.BOOLEAN||s.getT1()==c.BOOLEAN)throw new ed(Y.format("Cannot compare > with the values $ and $",r.getT2(),s.getT2()));return r.getT2()>s.getT2()}}var t1={};t(t1,"LogicalLessThanEqualOperator",()=>t2);class t2 extends t_{apply(e,t){let r=ew.findPrimitiveNullAsBoolean(e),s=ew.findPrimitiveNullAsBoolean(t);if(r.getT1()==c.BOOLEAN||s.getT1()==c.BOOLEAN)throw new ed(Y.format("Cannot compare <= with the values $ and $",r.getT2(),s.getT2()));return r.getT2()<=s.getT2()}}var t5={};t(t5,"LogicalNotEqualOperator",()=>t7);class t7 extends t_{apply(e,t){return!j(e,t)}}var t4={};t(t4,"LogicalLessThanOperator",()=>t9);class t9 extends t_{apply(e,t){let r=ew.findPrimitiveNullAsBoolean(e),s=ew.findPrimitiveNullAsBoolean(t);if(r.getT1()==c.BOOLEAN||s.getT1()==c.BOOLEAN)throw new ed(Y.format("Cannot compare < with the values $ and $",r.getT2(),s.getT2()));return r.getT2()<s.getT2()}}var t6={};t(t6,"LogicalOrOperator",()=>t3);class t3 extends t_{apply(e,t){return!!e&&""!==e||!!t&&""!==t}}var t8={};t(t8,"ObjectOperator",()=>re);class re extends t_{apply(e,t){if(!e)throw new ed("Cannot apply array operator on a null value");if(!t)throw new ed("Cannot retrive null property value");let r=typeof e;if(!Array.isArray(e)&&"string"!=r&&"object"!=r)throw new ed(Y.format("Cannot retrieve value from a primitive value $",e));return e[t]}}var rt={};t(rt,"LogicalNullishCoalescingOperator",()=>rr);class rr extends t_{apply(e,t){return T(e)?t:e}}var rs={};t(rs,"ArrayRangeOperator",()=>rn);class rn extends t_{apply(e,t){return`${e??""}..${t??""}`}}r(tp,tf),r(tp,tS),r(tp,td),r(tp,tP),r(tp,ty),r(tp,tL),r(tp,tb),r(tp,tN),r(tp,tv),r(tp,tD),r(tp,t$),r(tp,tB),r(tp,tH),r(tp,tj),r(tp,tX),r(tp,tq),r(tp,tz),r(tp,tZ),r(tp,t1),r(tp,t5),r(tp,t4),r(tp,t6),r(tp,t8),r(tp,rt),r(tp,rs);var ra={},ri={};t(ri,"ArithmeticUnaryMinusOperator",()=>ru);var ro={};t(ro,"UnaryOperator",()=>rE);class rE{nullCheck(e,t){if(T(e))throw new ed(Y.format("$ cannot be applied to a null value",t.getOperatorName()))}}class ru extends rE{apply(e){return this.nullCheck(e,e0.UNARY_MINUS),ew.findPrimitiveNumberType(e),-e}}var rA={};t(rA,"ArithmeticUnaryPlusOperator",()=>rT);class rT extends rE{apply(e){return this.nullCheck(e,e0.UNARY_PLUS),ew.findPrimitiveNumberType(e),e}}var rl={};t(rl,"BitwiseComplementOperator",()=>rc);class rc extends rE{apply(e){this.nullCheck(e,e0.UNARY_BITWISE_COMPLEMENT);let t=ew.findPrimitiveNumberType(e);if(t.getT1()!=c.INTEGER&&t.getT1()!=c.LONG)throw new ed(Y.format("Unable to apply bitwise operator on $",e));return~e}}var rR={};t(rR,"LogicalNotOperator",()=>rh);class rh extends rE{apply(e){return!e&&""!==e}}r(ra,ri),r(ra,rA),r(ra,rl),r(ra,rR),r(ra,ro),t({},"LiteralTokenValueExtractor",()=>rm);let rg=new Map([["true",!0],["false",!1],["null",void 0],["undefined",void 0]]);class rm extends e2{static{this.INSTANCE=new rm}getValueInternal(e){if(!W.isNullOrBlank(e))return(e=e.trim(),rg.has(e))?rg.get(e):e.startsWith('"')?this.processString(e):this.processNumbers(e)}processNumbers(e){try{let t=Number(e);if(isNaN(t))throw Error("Parse number error");return t}catch(t){throw new ez(e,Y.format("Unable to parse the literal or expression $",e),t)}}processString(e){if(!e.endsWith('"'))throw new ez(e,Y.format("String literal $ is not closed properly",e));return e.substring(1,e.length-1)}getPrefix(){return""}getStore(){}getValueFromExtractors(e,t){return t.has(e+".")?t.get(e+".")?.getStore():this.getValue(e)}}var rp={};t(rp,"ConditionalTernaryOperator",()=>rN);class rf{nullCheck(e,t,r,s){if(T(e)||T(t)||T(r))throw new ed(Y.format("$ cannot be applied to a null value",s.getOperatorName()))}}class rN extends rf{apply(e,t,r){return e?t:r}}r({},rp);class r_ extends e2{static{this.PREFIX="_internal."}addValue(e,t){this.values.set(e,t)}getValueInternal(e){let t=e.split(e2.REGEX_DOT),r=t[1],s=r.indexOf("["),n=2;return -1!=s&&(r=t[1].substring(0,s),t[1]=t[1].substring(s),n=1),this.retrieveElementFrom(e,t,n,this.values.get(r))}getPrefix(){return r_.PREFIX}getStore(){}constructor(...e){super(...e),this.values=new Map}}class rM{static{this.UNARY_OPERATORS_MAP=new Map([[e0.UNARY_BITWISE_COMPLEMENT,new rc],[e0.UNARY_LOGICAL_NOT,new rh],[e0.UNARY_MINUS,new ru],[e0.UNARY_PLUS,new rT]])}static{this.TERNARY_OPERATORS_MAP=new Map([[e0.CONDITIONAL_TERNARY_OPERATOR,new rN]])}static{this.BINARY_OPERATORS_MAP=new Map([[e0.ADDITION,new tM],[e0.DIVISION,new tO],[e0.INTEGER_DIVISION,new tw],[e0.MOD,new tI],[e0.MULTIPLICATION,new tx],[e0.SUBTRACTION,new tU],[e0.BITWISE_AND,new tC],[e0.BITWISE_LEFT_SHIFT,new tG],[e0.BITWISE_OR,new tF],[e0.BITWISE_RIGHT_SHIFT,new tY],[e0.BITWISE_UNSIGNED_RIGHT_SHIFT,new tk],[e0.BITWISE_XOR,new tW],[e0.AND,new tJ],[e0.EQUAL,new tK],[e0.GREATER_THAN,new t0],[e0.GREATER_THAN_EQUAL,new tQ],[e0.LESS_THAN,new t9],[e0.LESS_THAN_EQUAL,new t2],[e0.OR,new t3],[e0.NOT_EQUAL,new t7],[e0.NULLISH_COALESCING_OPERATOR,new rr],[e0.ARRAY_OPERATOR,new tV],[e0.ARRAY_RANGE_INDEX_OPERATOR,new rn],[e0.OBJECT_OPERATOR,new re]])}static{this.UNARY_OPERATORS_MAP_KEY_SET=new Set(rM.UNARY_OPERATORS_MAP.keys())}constructor(e){this.internalTokenValueExtractor=new r_,e instanceof e1?(this.exp=e,this.expression=this.exp.getExpression()):this.expression=e}evaluate(e){let t=this.processNestingExpression(this.expression,e);return this.expression=t.getT1(),this.exp=t.getT2(),(e=new Map(e.entries())).set(this.internalTokenValueExtractor.getPrefix(),this.internalTokenValueExtractor),this.evaluateExpression(this.exp,e)}processNestingExpression(e,t){let r=0,s=0,n=new H;for(;s<e.length-1;){if("{"==e.charAt(s)&&"{"==e.charAt(s+1))0==r&&n.push(new J(s+2,-1)),r++,s++;else if("}"==e.charAt(s)&&"}"==e.charAt(s+1)){if(--r<0)throw new ez(e,"Expecting {{ nesting path operator to be started before closing");0==r&&n.push(n.pop().setT2(s)),s++}s++}let a=this.replaceNestingExpression(e,t,n);return new J(a,new e1(a))}replaceNestingExpression(e,t,r){let s=e;for(let n of r.toArray()){if(-1==n.getT2())throw new ez(e,"Expecting }} nesting path operator to be closed");let r=new rM(s.substring(n.getT1(),n.getT2())).evaluate(t);s=s.substring(0,n.getT1()-2)+r+s.substring(n.getT2()+2)}return s}getExpression(){return this.exp||(this.exp=new e1(this.expression)),this.exp}getExpressionString(){return this.expression}evaluateExpression(e,t){let r=e.getOperations(),s=e.getTokens();for(;!r.isEmpty();){let e=r.pop(),n=s.pop();if(rM.UNARY_OPERATORS_MAP_KEY_SET.has(e))s.push(this.applyUnaryOperation(e,this.getValueFromToken(t,n)));else if(e==e0.OBJECT_OPERATOR||e==e0.ARRAY_OPERATOR)this.processObjectOrArrayOperator(t,r,s,e,n);else if(e==e0.CONDITIONAL_TERNARY_OPERATOR){let r=s.pop(),a=s.pop(),i=this.getValueFromToken(t,a),o=this.getValueFromToken(t,r),E=this.getValueFromToken(t,n);s.push(this.applyTernaryOperation(e,i,o,E))}else{let r=s.pop(),a=this.getValueFromToken(t,r),i=this.getValueFromToken(t,n);s.push(this.applyBinaryOperation(e,a,i))}}if(s.isEmpty())throw new ed(Y.format("Expression : $ evaluated to null",e));if(1!=s.size())throw new ed(Y.format("Expression : $ evaluated multiple values $",e,s));let n=s.get(0);if(n instanceof eZ)return n.getElement();if(!(n instanceof e1))return this.getValueFromToken(t,n);throw new ed(Y.format("Expression : $ evaluated to $",e,s.get(0)))}processObjectOrArrayOperator(e,t,r,s,n){let a=new H,i=new H;if(!s||!n)return;do i.push(s),n instanceof e1?a.push(new eZ(n.toString(),this.evaluateExpression(n,e))):n&&a.push(n),n=r.isEmpty()?void 0:r.pop(),s=t.isEmpty()?void 0:t.pop();while(s==e0.OBJECT_OPERATOR||s==e0.ARRAY_OPERATOR)n&&(n instanceof e1?a.push(new eZ(n.toString(),this.evaluateExpression(n,e))):a.push(n)),s&&t.push(s);let o=a.pop();if(o instanceof eZ&&"object"==typeof o.getTokenValue()){let e=new Date().getTime()+""+Math.round(1e3*Math.random());this.internalTokenValueExtractor.addValue(e,o.getTokenValue()),o=new eQ(r_.PREFIX+e)}let E=new eK(o instanceof eZ?o.getTokenValue():o.toString());for(;!a.isEmpty();)o=a.pop(),s=i.pop(),E.append(s.getOperator()).append(o instanceof eZ?o.getTokenValue():o.toString()),s==e0.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 eZ(u,this.getValue(u,e)));else{let e;try{e=rm.INSTANCE.getValue(u)}catch(t){e=u}r.push(new eZ(u,e))}}applyTernaryOperation(e,t,r,s){let n=rM.TERNARY_OPERATORS_MAP.get(e);if(!n)throw new ez(this.expression,Y.format("No operator found to evaluate $",this.getExpression()));return new eZ(e.toString(),n.apply(t,r,s))}applyBinaryOperation(e,t,r){let s=typeof t,n=typeof r,a=rM.BINARY_OPERATORS_MAP.get(e);if(("object"===s||"object"===n)&&e!==e0.EQUAL&&e!==e0.NOT_EQUAL&&e!==e0.NULLISH_COALESCING_OPERATOR&&e!==e0.AND&&e!==e0.OR)throw new ez(this.expression,Y.format("Cannot evaluate expression $ $ $",t,e.getOperator(),r));if(!a)throw new ez(this.expression,Y.format("No operator found to evaluate $ $ $",t,e.getOperator(),r));return new eZ(e.toString(),a.apply(t,r))}applyUnaryOperation(e,t){let r=typeof t;if(e.getOperator()!=e0.NOT.getOperator()&&e.getOperator()!=e0.UNARY_LOGICAL_NOT.getOperator()&&("object"===r||Array.isArray(t)))throw new ez(this.expression,Y.format("The operator $ cannot be applied to $",e.getOperator(),t));let s=rM.UNARY_OPERATORS_MAP.get(e);if(!s)throw new ez(this.expression,Y.format("No Unary operator $ is found to apply on $",e.getOperator(),t));return new eZ(e.toString(),s.apply(t))}getValueFromToken(e,t){return t instanceof e1?this.evaluateExpression(t,e):t instanceof eZ?t.getElement():this.getValue(t.getExpression(),e)}getValue(e,t){let r=e.substring(0,e.indexOf(".")+1);return t.has(r)?t.get(r).getValue(e):rm.INSTANCE.getValueFromExtractors(e,t)}}let rS="name",rO="value";class rd extends ef{getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(rS);if(W.isNullOrBlank(t))throw new $("Empty string is not a valid name for the context element");let r=e?.getArguments()?.get(rO),s=new e1(t),n=s.getTokens().peekLast();if(!n.getExpression().startsWith("Context")||n instanceof e1||n instanceof eZ&&!n.getElement().toString().startsWith("Context"))throw new ed(Y.format("The context path $ is not a valid path in context",t));for(let e of s.getOperations().toArray())if(e!=e0.ARRAY_OPERATOR&&e!=e0.OBJECT_OPERATOR)throw new ed(Y.format("Expected a reference to the context location, but found an expression $",t));for(let r=0;r<s.getTokens().size();r++){let n=s.getTokens().get(r);n instanceof e1&&s.getTokens().set(r,new eZ(t,new rM(n).evaluate(e.getValuesMap())))}return this.modifyContext(e,t,r,s)}modifyContext(e,t,r,s){let n=s.getTokens();n.removeLast();let a=s.getOperations();a.removeLast();let i=e.getContext()?.get(n.removeLast().getExpression());if(T(i))throw new $(Y.format("Context doesn't have any element with name '$' ",t));if(a.isEmpty())return i.setElement(r),new F([G.outputOf(new Map)]);let o=i.getElement(),E=a.removeLast(),u=n.removeLast(),A=u instanceof eZ?u.getElement():u.getExpression();for(T(o)&&(o=E==e0.OBJECT_OPERATOR?{}:[],i.setElement(o));!a.isEmpty();)o=E==e0.OBJECT_OPERATOR?this.getDataFromObject(o,A,a.peekLast()):this.getDataFromArray(o,A,a.peekLast()),E=a.removeLast(),A=(u=n.removeLast())instanceof eZ?u.getElement():u.getExpression();return E==e0.OBJECT_OPERATOR?this.putDataInObject(o,A,r):this.putDataInArray(o,A,r),new F([G.outputOf(new Map)])}getDataFromArray(e,t,r){if(!Array.isArray(e))throw new $(Y.format("Expected an array but found $",e));let s=parseInt(t);if(isNaN(s))throw new $(Y.format("Expected an array index but found $",t));if(s<0)throw new $(Y.format("Array index is out of bound - $",t));let n=e[s];return T(n)&&(n=r==e0.OBJECT_OPERATOR?{}:[],e[s]=n),n}getDataFromObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new $(Y.format("Expected an object but found $",e));let s=e[t];return T(s)&&(s=r==e0.OBJECT_OPERATOR?{}:[],e[t]=s),s}putDataInArray(e,t,r){if(!Array.isArray(e))throw new $(Y.format("Expected an array but found $",e));let s=parseInt(t);if(isNaN(s))throw new $(Y.format("Expected an array index but found $",t));if(s<0)throw new $(Y.format("Array index is out of bound - $",t));e[s]=r}putDataInObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new $(Y.format("Expected an object but found $",e));e[t]=r}constructor(...e){super(...e),this.signature=new B("Set").setNamespace(A.SYSTEM_CTX).setParameters(new Map([L.ofEntry(rS,new P().setName(rS).setType(m.of(c.STRING)).setMinLength(1),!1),L.ofEntry(rO,P.ofAny(rO))])).setEvents(new Map([D.outputEventMapEntry(new Map)]))}}let rw="value",rP="eventName",rI="results";class ry extends ef{getSignature(){return this.signature}async internalExecute(e){let t=e.getEvents(),r=e.getArguments(),s=r?.get(rP),n=e?.getArguments()?.get(rI).map(t=>{let r=t[rw];if(T(r))throw new $("Expect a value object");let s=r.value;return r.isExpression&&(s=new rM(s).evaluate(e.getValuesMap())),[t.name,s]}).reduce((e,t)=>(e.set(t[0],t[1]),e),new Map);return t?.has(s)||t?.set(s,[]),t?.get(s)?.push(n),new F([G.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new B("GenerateEvent").setNamespace(A.SYSTEM).setParameters(new Map([L.ofEntry(rP,P.ofString(rP).setDefaultValue("output")),L.ofEntry(rI,P.ofObject(rI).setProperties(new Map([["name",P.ofString("name")],[rw,L.EXPRESSION]])),!0)])).setEvents(new Map([D.outputEventMapEntry(new Map)]))}}class rx extends ef{static{this.CONDITION="condition"}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rx.CONDITION);return new F([G.of(t||""===t?D.TRUE:D.FALSE,new Map),G.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new B("If").setNamespace(A.SYSTEM).setParameters(new Map([L.ofEntry(rx.CONDITION,P.ofAny(rx.CONDITION))])).setEvents(new Map([D.eventMapEntry(D.TRUE,new Map),D.eventMapEntry(D.FALSE,new Map),D.outputEventMapEntry(new Map)]))}}let rL="stepName";class rU extends ef{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rL);return e.getExecutionContext().set(t,!0),new F([G.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new B("Break").setNamespace(A.SYSTEM_LOOP).setParameters(new Map([L.ofEntry(rL,P.of(rL,c.STRING))])).setEvents(new Map([D.outputEventMapEntry(new Map([]))]))}}let rb="count",rV="value",rv="index";class rC extends ef{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rb),r=0,s=e.getStatementExecution()?.getStatement()?.getStatementName();return new F({next(){if(r>=t||s&&e.getExecutionContext()?.get(s))return s&&e.getExecutionContext()?.delete(s),G.outputOf(new Map([[rV,r]]));let n=G.of(D.ITERATION,new Map([[rv,r]]));return++r,n}})}constructor(...e){super(...e),this.signature=new B("CountLoop").setNamespace(A.SYSTEM_LOOP).setParameters(new Map([L.ofEntry(rb,P.of(rb,c.INTEGER))])).setEvents(new Map([D.eventMapEntry(D.ITERATION,new Map([[rv,P.of(rv,c.INTEGER)]])),D.outputEventMapEntry(new Map([[rV,P.of(rV,c.INTEGER)]]))]))}}let rD="source",rG="each",r$="index",rF="value";class rB extends ef{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rD),r=0,s=e.getStatementExecution()?.getStatement()?.getStatementName();return new F({next(){if(r>=t.length||s&&e.getExecutionContext()?.get(s))return s&&e.getExecutionContext()?.delete(s),G.outputOf(new Map([[rF,r]]));let n=G.of(D.ITERATION,new Map([[r$,r],[rG,t[r]]]));return++r,n}})}constructor(...e){super(...e),this.signature=new B("ForEachLoop").setNamespace(A.SYSTEM_LOOP).setParameters(new Map([L.ofEntry(rD,P.ofArray(rD,P.ofAny(rD)))])).setEvents(new Map([D.eventMapEntry(D.ITERATION,new Map([[r$,P.of(r$,c.INTEGER)],[rG,P.ofAny(rG)]])),D.outputEventMapEntry(new Map([[rF,P.of(rF,c.INTEGER)]]))]))}}let rY="from",rH="step",rk="value",rj="index";class rW extends ef{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rY),r=e.getArguments()?.get("to"),s=e.getArguments()?.get(rH),n=s>0,a=t,i=!1,o=e.getStatementExecution()?.getStatement()?.getStatementName();return new F({next(){if(i)return;if(n&&a>=r||!n&&a<=r||o&&e.getExecutionContext()?.get(o))return i=!0,o&&e.getExecutionContext()?.delete(o),G.outputOf(new Map([[rk,a]]));let t=G.of(D.ITERATION,new Map([[rj,a]]));return a+=s,t}})}constructor(...e){super(...e),this.signature=new B("RangeLoop").setNamespace(A.SYSTEM_LOOP).setParameters(new Map([L.ofEntry(rY,P.of(rY,c.INTEGER,c.LONG,c.FLOAT,c.DOUBLE).setDefaultValue(0)),L.ofEntry("to",P.of("to",c.INTEGER,c.LONG,c.FLOAT,c.DOUBLE).setDefaultValue(1)),L.ofEntry(rH,P.of(rH,c.INTEGER,c.LONG,c.FLOAT,c.DOUBLE).setDefaultValue(1).setNot(new P().setConstant(0)))])).setEvents(new Map([D.eventMapEntry(D.ITERATION,new Map([[rj,P.of(rj,c.INTEGER,c.LONG,c.FLOAT,c.DOUBLE)]])),D.outputEventMapEntry(new Map([[rk,P.of(rk,c.INTEGER,c.LONG,c.FLOAT,c.DOUBLE)]]))]))}}let rX="value";class rJ extends ef{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rX);return new F([G.outputOf(new Map([[rX,t.reduce((e,t)=>e+=t,0)]]))])}constructor(...e){super(...e),this.signature=new B("Add").setNamespace(A.MATH).setParameters(new Map([[rX,new L(rX,P.ofNumber(rX)).setVariableArgument(!0)]])).setEvents(new Map([D.outputEventMapEntry(new Map([[rX,P.ofNumber(rX)]]))]))}}let rq="value",rK="value1",rz="value2";class rQ extends ef{constructor(e,t,r=1,...s){super(),this.paramFunctions=[()=>new Map([[rq,new L(rq,P.ofNumber(rq))]]),()=>new Map([[rK,new L(rK,P.ofNumber(rK))],[rz,new L(rz,P.ofNumber(rz))]])],s&&s.length||(s=[c.DOUBLE]),this.parametersNumber=r,this.mathFunction=t,this.signature=new B(e).setNamespace(A.MATH).setParameters(this.paramFunctions[r-1]()).setEvents(new Map([D.outputEventMapEntry(new Map([[rq,new P().setType(m.of(...s)).setName(rq)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t,r=ew.findPrimitiveNumberType(e.getArguments()?.get(1==this.parametersNumber?rq:rK)).getT2();return 2==this.parametersNumber&&(t=ew.findPrimitiveNumberType(e.getArguments()?.get(rz)).getT2()),new F([G.outputOf(new Map([[rq,this.mathFunction.call(this,r,t)]]))])}}let rZ="value";class r0 extends ef{constructor(){super(),this.signature=new B("Hypotenuse").setNamespace(A.MATH).setParameters(new Map([[rZ,new L(rZ,P.ofNumber(rZ)).setVariableArgument(!0)]])).setEvents(new Map([D.outputEventMapEntry(new Map([[rZ,new P().setType(m.of(c.DOUBLE)).setName(rZ)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rZ);return new F([G.outputOf(new Map([[rZ,Math.sqrt(t.reduce((e,t)=>e+=t*t,0))]]))])}}let r1="value";class r2 extends ef{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(r1);return new F([G.outputOf(new Map([[r1,t.reduce((e,t)=>!e&&0!==e||t>e?t:e)]]))])}constructor(...e){super(...e),this.signature=new B("Maximum").setNamespace(A.MATH).setParameters(new Map([[r1,new L(r1,P.ofNumber(r1)).setVariableArgument(!0)]])).setEvents(new Map([D.outputEventMapEntry(new Map([[r1,P.ofNumber(r1)]]))]))}}let r5="value";class r7 extends ef{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(r5);return new F([G.outputOf(new Map([[r5,t.reduce((e,t)=>!e&&0!==e||t<e?t:e)]]))])}constructor(...e){super(...e),this.signature=new B("Minimum").setNamespace(A.MATH).setParameters(new Map([[r5,new L(r5,P.ofNumber(r5)).setVariableArgument(!0)]])).setEvents(new Map([D.outputEventMapEntry(new Map([[r5,P.ofNumber(r5)]]))]))}}let r4="value";class r9 extends ef{getSignature(){return this.signature}async internalExecute(e){return new F([G.outputOf(new Map([[r4,Math.random()]]))])}constructor(...e){super(...e),this.signature=new B("Random").setNamespace(A.MATH).setEvents(new Map([D.outputEventMapEntry(b.of(r4,P.ofDouble(r4)))]))}}class r6 extends ef{static{this.MIN_VALUE="minValue"}static{this.MAX_VALUE="maxValue"}static{this.VALUE="value"}constructor(e,t,r,s,n){super(),this.signature=new B(e).setParameters(b.of(r6.MIN_VALUE,t,r6.MAX_VALUE,r)).setNamespace(A.MATH).setEvents(new Map([D.outputEventMapEntry(b.of(r6.VALUE,s))])),this.randomFunction=n}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(r6.MIN_VALUE),r=e.getArguments()?.get(r6.MAX_VALUE),s=this.randomFunction(t,r);return new F([G.outputOf(new Map([[r6.VALUE,s]]))])}}class r3{constructor(){this.functionObjectsIndex={Absolute:new rQ("Absolute",e=>Math.abs(e),1,c.INTEGER,c.LONG,c.FLOAT,c.DOUBLE),ArcCosine:new rQ("ArcCosine",e=>Math.acos(e)),ArcSine:new rQ("ArcSine",e=>Math.asin(e)),ArcTangent:new rQ("ArcTangent",e=>Math.atan(e)),Ceiling:new rQ("Ceiling",e=>Math.ceil(e)),Cosine:new rQ("Cosine",e=>Math.cos(e)),HyperbolicCosine:new rQ("HyperbolicCosine",e=>Math.cosh(e)),CubeRoot:new rQ("CubeRoot",e=>Math.cbrt(e)),Exponential:new rQ("Exponential",e=>Math.exp(e)),ExponentialMinus1:new rQ("ExponentialMinus1",e=>Math.expm1(e)),Floor:new rQ("Floor",e=>Math.floor(e)),LogNatural:new rQ("LogNatural",e=>Math.log(e)),Log10:new rQ("Log10",e=>Math.log10(e)),Round:new rQ("Round",e=>Math.round(e),1,c.INTEGER,c.LONG),Sine:new rQ("Sine",e=>Math.sin(e)),HyperbolicSine:new rQ("HyperbolicSine",e=>Math.sinh(e)),Tangent:new rQ("Tangent",e=>Math.tan(e)),HyperbolicTangent:new rQ("HyperbolicTangent",e=>Math.tanh(e)),ToDegrees:new rQ("ToDegrees",e=>Math.PI/180*e),ToRadians:new rQ("ToRadians",e=>180/Math.PI*e),SquareRoot:new rQ("SquareRoot",e=>Math.sqrt(e)),ArcTangent2:new rQ("ArcTangent2",(e,t)=>Math.atan2(e,t),2),Power:new rQ("Power",(e,t)=>Math.pow(e,t),2),Add:new rJ,Hypotenuse:new r0,Maximum:new r2,Minimum:new r7,Random:new r9,RandomFloat:new r6("RandomFloat",L.of(r6.MIN_VALUE,P.ofFloat(r6.MIN_VALUE).setDefaultValue(0)),L.of(r6.MAX_VALUE,P.ofFloat(r6.MAX_VALUE).setDefaultValue(0x7fffffff)),P.ofFloat(r6.VALUE),(e,t)=>Math.random()*(t-e)+e),RandomInt:new r6("RandomInt",L.of(r6.MIN_VALUE,P.ofInteger(r6.MIN_VALUE).setDefaultValue(0)),L.of(r6.MAX_VALUE,P.ofInteger(r6.MAX_VALUE).setDefaultValue(0x7fffffff)),P.ofInteger(r6.VALUE),(e,t)=>Math.round(Math.random()*(t-e)+e)),RandomLong:new r6("RandomLong",L.of(r6.MIN_VALUE,P.ofLong(r6.MIN_VALUE).setDefaultValue(0)),L.of(r6.MAX_VALUE,P.ofLong(r6.MAX_VALUE).setDefaultValue(Number.MAX_SAFE_INTEGER)),P.ofLong(r6.VALUE),(e,t)=>Math.round(Math.random()*(t-e)+e)),RandomDouble:new r6("RandomDouble",L.of(r6.MIN_VALUE,P.ofDouble(r6.MIN_VALUE).setDefaultValue(0)),L.of(r6.MAX_VALUE,P.ofDouble(r6.MAX_VALUE).setDefaultValue(Number.MAX_VALUE)),P.ofDouble(r6.VALUE),(e,t)=>Math.random()*(t-e)+e)},this.filterableNames=Object.values(this.functionObjectsIndex).map(e=>e.getSignature().getFullName())}async find(e,t){return e!=A.MATH?Promise.resolve(void 0):Promise.resolve(this.functionObjectsIndex[t])}async filter(e){return Promise.resolve(this.filterableNames.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}class r8 extends ef{static{this.SOURCE="source"}static{this.SCHEMA="schema"}static{this.VALUE="value"}static{this.CONVERSION_MODE="conversionMode"}getSignature(){return this.signature}internalExecute(e){let t=e.getArguments()?.get(r8.SOURCE),r=P.from(e?.getArguments()?.get(r8.SCHEMA));if(!r)throw new $("Schema is not supplied.");let s=eE(e.getArguments()?.get(r8.CONVERSION_MODE))||eo.STRICT;return this.convertToSchema(r,e.getSchemaRepository(),t,s)}async convertToSchema(e,t,r,s){try{return new F([G.outputOf(b.of(r8.VALUE,ep.validate([],e,t,r,!0,s)))])}catch(e){throw new $(e?.message)}}constructor(...e){super(...e),this.signature=new B("ObjectConvert").setNamespace(A.SYSTEM_OBJECT).setParameters(new Map([L.ofEntry(r8.SOURCE,P.ofAny(r8.SCHEMA)),L.ofEntry(r8.SCHEMA,P.SCHEMA,!1,y.CONSTANT),L.ofEntry(r8.CONVERSION_MODE,P.ofString(r8.CONVERSION_MODE).setEnums(eu()))])).setEvents(new Map([D.outputEventMapEntry(b.of(r8.VALUE,P.ofAny(r8.VALUE)))]))}}let se="value",st="source";class sr extends ef{constructor(){super(),this.signature=new B("ObjectDeleteKey").setNamespace(A.SYSTEM_OBJECT).setParameters(new Map([L.ofEntry(st,P.ofAny(st)),L.ofEntry("key",P.ofString("key"))])).setEvents(new Map([D.outputEventMapEntry(new Map([[se,P.ofAny(se)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(st),r=e.getArguments()?.get("key");return T(t)?new F([G.outputOf(new Map([[se,void 0]]))]):(t=ex(t),delete t[r],new F([G.outputOf(new Map([[se,t]]))]))}}let ss="source";class sn extends ef{constructor(e,t){super(),this.signature=new B(e).setNamespace(A.SYSTEM_OBJECT).setParameters(new Map([L.ofEntry(ss,P.ofAny(ss))])).setEvents(new Map([D.outputEventMapEntry(new Map([["value",t]]))]))}getSignature(){return this.signature}}let sa="value";class si extends sn{constructor(){super("ObjectEntries",P.ofArray(sa,P.ofArray("tuple",P.ofString("key"),P.ofAny("value"))))}async internalExecute(e){var t=e.getArguments()?.get("source");if(T(t))return new F([G.outputOf(new Map([[sa,[]]]))]);let r=Object.entries(ex(t)).sort((e,t)=>e[0].localeCompare(t[0]));return new F([G.outputOf(new Map([[sa,r]]))])}}let so="value";class sE extends sn{constructor(){super("ObjectKeys",P.ofArray(so,P.ofString(so)))}async internalExecute(e){var t=e.getArguments()?.get("source");if(T(t))return new F([G.outputOf(new Map([[so,[]]]))]);let r=Object.keys(ex(t)).sort((e,t)=>e.localeCompare(t));return new F([G.outputOf(new Map([[so,r]]))])}}let su="value",sA="source",sT="overwrite",sl="deleteKeyOnNull";class sc extends ef{constructor(){super(),this.signature=new B("ObjectPutValue").setNamespace(A.SYSTEM_OBJECT).setParameters(new Map([L.ofEntry(sA,P.ofObject(sA)),L.ofEntry("key",P.ofString("key")),L.ofEntry(su,P.ofAny(su)),L.ofEntry(sT,P.ofBoolean(sT).setDefaultValue(!0)),L.ofEntry(sl,P.ofBoolean(sl).setDefaultValue(!1))])).setEvents(new Map([D.outputEventMapEntry(new Map([[su,P.ofObject(su)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(sA),r=e.getArguments()?.get("key"),s=e.getArguments()?.get(su),n=e.getArguments()?.get(sT),a=e.getArguments()?.get(sl),i=new e5(t,"Data.");return i.setValue(r,s,n,a),new F([G.outputOf(new Map([[su,i.getStore()]]))])}}let sR="value";class sh extends sn{constructor(){super("ObjectValues",P.ofArray(sR,P.ofAny(sR)))}async internalExecute(e){var t=e.getArguments()?.get("source");if(T(t))return new F([G.outputOf(new Map([[sR,[]]]))]);let r=Object.entries(ex(t)).sort((e,t)=>e[0].localeCompare(t[0])).map(e=>e[1]);return new F([G.outputOf(new Map([[sR,r]]))])}}class sg{constructor(){this.functionObjectsIndex={ObjectValues:new sh,ObjectKeys:new sE,ObjectEntries:new si,ObjectDeleteKey:new sr,ObjectPutValue:new sc,ObjectConvert:new r8},this.filterableNames=Object.values(this.functionObjectsIndex).map(e=>e.getSignature().getFullName())}async find(e,t){return e!=A.SYSTEM_OBJECT?Promise.resolve(void 0):Promise.resolve(this.functionObjectsIndex[t])}async filter(e){return Promise.resolve(this.filterableNames.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}class sm extends ef{static{this.VALUES="values"}static{this.STREAM="stream"}static{this.LOG="LOG"}static{this.ERROR="ERROR"}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(sm.VALUES),r=e.getArguments()?.get(sm.STREAM);return(r===sm.LOG?console?.log:console?.error)?.(...t),new F([G.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new B("Print").setNamespace(A.SYSTEM).setParameters(new Map([L.ofEntry(sm.VALUES,P.ofAny(sm.VALUES),!0),L.ofEntry(sm.STREAM,P.ofString(sm.STREAM).setEnums([sm.LOG,sm.ERROR]).setDefaultValue(sm.LOG))])).setEvents(new Map([D.outputEventMapEntry(new Map)]))}}class sp extends ef{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_SEARCH_STRING_NAME="searchString"}static{this.PARAMETER_SECOND_STRING_NAME="secondString"}static{this.PARAMETER_THIRD_STRING_NAME="thirdString"}static{this.PARAMETER_INDEX_NAME="index"}static{this.PARAMETER_SECOND_INDEX_NAME="secondIndex"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new L(sp.PARAMETER_STRING_NAME,P.ofString(sp.PARAMETER_STRING_NAME))}static{this.PARAMETER_SECOND_STRING=new L(sp.PARAMETER_SECOND_STRING_NAME,P.ofString(sp.PARAMETER_SECOND_STRING_NAME))}static{this.PARAMETER_THIRD_STRING=new L(sp.PARAMETER_THIRD_STRING_NAME,P.ofString(sp.PARAMETER_THIRD_STRING_NAME))}static{this.PARAMETER_INDEX=new L(sp.PARAMETER_INDEX_NAME,P.ofInteger(sp.PARAMETER_INDEX_NAME))}static{this.PARAMETER_SECOND_INDEX=new L(sp.PARAMETER_SECOND_INDEX_NAME,P.ofInteger(sp.PARAMETER_SECOND_INDEX_NAME))}static{this.PARAMETER_SEARCH_STRING=new L(sp.PARAMETER_SEARCH_STRING_NAME,P.ofString(sp.PARAMETER_STRING_NAME))}static{this.EVENT_STRING=new D(D.OUTPUT,b.of(sp.EVENT_RESULT_NAME,P.ofString(sp.EVENT_RESULT_NAME)))}static{this.EVENT_BOOLEAN=new D(D.OUTPUT,b.of(sp.EVENT_RESULT_NAME,P.ofBoolean(sp.EVENT_RESULT_NAME)))}static{this.EVENT_INT=new D(D.OUTPUT,b.of(sp.EVENT_RESULT_NAME,P.ofInteger(sp.EVENT_RESULT_NAME)))}static{this.EVENT_ARRAY=new D(D.OUTPUT,b.of(sp.EVENT_RESULT_NAME,P.ofArray(sp.EVENT_RESULT_NAME)))}constructor(e,t,r,...s){super();let n=new Map;s.forEach(e=>n.set(e.getParameterName(),e)),this.signature=new B(t).setNamespace(e).setParameters(n).setEvents(b.of(r.getName(),r))}getSignature(){return this.signature}static ofEntryStringStringAndBooleanOutput(e,t){return[e,new class extends sp{async internalExecute(e){let r=e?.getArguments()?.get(sp.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sp.PARAMETER_SEARCH_STRING_NAME);return new F([G.outputOf(b.of(sp.EVENT_RESULT_NAME,t(r,s)))])}}(A.STRING,e,sp.EVENT_BOOLEAN,sp.PARAMETER_STRING,sp.PARAMETER_SEARCH_STRING)]}static ofEntryStringIntegerAndStringOutput(e,t){return[e,new class extends sp{async internalExecute(e){let r=e?.getArguments()?.get(sp.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sp.PARAMETER_INDEX_NAME);return new F([G.outputOf(b.of(sp.EVENT_RESULT_NAME,t(r,s)))])}}(A.STRING,e,sp.EVENT_STRING,sp.PARAMETER_STRING,sp.PARAMETER_INDEX)]}static ofEntryStringStringAndIntegerOutput(e,t){return[e,new class extends sp{async internalExecute(e){let r=e?.getArguments()?.get(sp.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sp.PARAMETER_SEARCH_STRING_NAME);return new F([G.outputOf(b.of(sp.EVENT_RESULT_NAME,t(r,s)))])}}(A.STRING,e,sp.EVENT_INT,sp.PARAMETER_STRING,sp.PARAMETER_SEARCH_STRING)]}static ofEntryStringAndStringOutput(e,t){return[e,new class extends sp{async internalExecute(e){let r=e?.getArguments()?.get(sp.PARAMETER_STRING_NAME);return new F([G.outputOf(b.of(sp.EVENT_RESULT_NAME,t(r)))])}}(A.STRING,e,sp.EVENT_STRING,sp.PARAMETER_STRING)]}static ofEntryStringAndBooleanOutput(e,t){return[e,new class extends sp{async internalExecute(e){let r=e?.getArguments()?.get(sp.PARAMETER_STRING_NAME);return new F([G.outputOf(b.of(sp.EVENT_RESULT_NAME,t(r)))])}}(A.STRING,e,sp.EVENT_BOOLEAN,sp.PARAMETER_STRING)]}static ofEntryStringStringIntegerAndIntegerOutput(e,t){return[e,new class extends sp{async internalExecute(e){let r=e?.getArguments()?.get(sp.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sp.PARAMETER_SEARCH_STRING_NAME),n=e?.getArguments()?.get(sp.PARAMETER_INDEX_NAME);return new F([G.outputOf(b.of(sp.EVENT_RESULT_NAME,t(r,s,n)))])}}(A.STRING,e,sp.EVENT_INT,sp.PARAMETER_STRING,sp.PARAMETER_SEARCH_STRING,sp.PARAMETER_INDEX)]}static ofEntryStringIntegerIntegerAndStringOutput(e,t){return[e,new class extends sp{async internalExecute(e){let r=e?.getArguments()?.get(sp.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sp.PARAMETER_INDEX_NAME),n=e?.getArguments()?.get(sp.PARAMETER_SECOND_INDEX_NAME);return new F([G.outputOf(b.of(sp.EVENT_RESULT_NAME,t(r,s,n)))])}}(A.STRING,e,sp.EVENT_STRING,sp.PARAMETER_STRING,sp.PARAMETER_INDEX,sp.PARAMETER_SECOND_INDEX)]}static ofEntryStringStringStringAndStringOutput(e,t){return[e,new class extends sp{async internalExecute(e){let r=e?.getArguments()?.get(sp.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sp.PARAMETER_SECOND_STRING_NAME),n=e?.getArguments()?.get(sp.PARAMETER_THIRD_STRING_NAME);return new F([G.outputOf(b.of(sp.EVENT_RESULT_NAME,t(r,s,n)))])}}(A.STRING,e,sp.EVENT_STRING,sp.PARAMETER_STRING,sp.PARAMETER_SECOND_STRING,sp.PARAMETER_THIRD_STRING)]}static ofEntryStringAndIntegerOutput(e,t){return[e,new class extends sp{async internalExecute(e){let r=e?.getArguments()?.get(sp.PARAMETER_STRING_NAME);return new F([G.outputOf(b.of(sp.EVENT_RESULT_NAME,t(r)))])}}(A.STRING,e,sp.EVENT_INT,sp.PARAMETER_STRING)]}}class sf extends ef{static{this.VALUE="value"}constructor(){super(),this.signature=new B("Concatenate").setNamespace(A.STRING).setParameters(new Map([[sf.VALUE,new L(sf.VALUE,new P().setName(sf.VALUE).setType(new g(c.STRING))).setVariableArgument(!0)]])).setEvents(new Map([D.outputEventMapEntry(new Map([[sf.VALUE,P.ofString(sf.VALUE)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(sf.VALUE),r="";return t.reduce((e,t)=>r=e+t,r),new F([G.outputOf(new Map([[sf.VALUE,r]]))])}}class sN extends ef{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_AT_START_NAME="startPosition"}static{this.PARAMETER_AT_END_NAME="endPosition"}static{this.EVENT_RESULT_NAME="result"}constructor(){super(),this.PARAMETER_STRING=new L(sN.PARAMETER_STRING_NAME,P.ofString(sN.PARAMETER_STRING_NAME)),this.PARAMETER_AT_START=new L(sN.PARAMETER_AT_START_NAME,P.ofInteger(sN.PARAMETER_AT_START_NAME)),this.PARAMETER_AT_END=new L(sN.PARAMETER_AT_END_NAME,P.ofInteger(sN.PARAMETER_AT_END_NAME)),this.EVENT_STRING=new D(D.OUTPUT,new Map([[sN.EVENT_RESULT_NAME,P.ofString(sN.EVENT_RESULT_NAME)]])),this.signature=new B("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]]))}getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(sN.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(sN.PARAMETER_AT_START_NAME),s=e?.getArguments()?.get(sN.PARAMETER_AT_END_NAME);if(s>=r){let e="";return e+=t.substring(0,r),e+=t.substring(s),new F([G.outputOf(new Map([[sN.EVENT_RESULT_NAME,e.toString()]]))])}return new F([G.outputOf(new Map([[sN.EVENT_RESULT_NAME,t]]))])}}class s_ extends ef{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_AT_POSITION_NAME="position"}static{this.PARAMETER_INSERT_STRING_NAME="insertString"}getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(s_.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(s_.PARAMETER_AT_POSITION_NAME),s=e?.getArguments()?.get(s_.PARAMETER_INSERT_STRING_NAME),n="";return n+=t.substring(0,r),n+=s,n+=t.substring(r),new F([G.outputOf(new Map([[this.EVENT_RESULT_NAME,n]]))])}constructor(...e){super(...e),this.EVENT_RESULT_NAME="result",this.PARAMETER_STRING=new L(s_.PARAMETER_STRING_NAME,P.ofString(s_.PARAMETER_STRING_NAME)),this.PARAMETER_AT_POSITION=new L(s_.PARAMETER_AT_POSITION_NAME,P.ofInteger(s_.PARAMETER_AT_POSITION_NAME)),this.PARAMETER_INSERT_STRING=new L(s_.PARAMETER_INSERT_STRING_NAME,P.ofString(s_.PARAMETER_INSERT_STRING_NAME)),this.EVENT_STRING=new D(D.OUTPUT,new Map([[this.EVENT_RESULT_NAME,P.ofString(this.EVENT_RESULT_NAME)]])),this.signature=new B("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([D.outputEventMapEntry(new Map([[this.EVENT_RESULT_NAME,P.ofString(this.EVENT_RESULT_NAME)]]))]))}}class sM extends ef{static{this.PARAMETER_REGEX_NAME="regex"}static{this.PARAMETER_STRING_NAME="string"}static{this.EVENT_RESULT_NAME="result"}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(sM.PARAMETER_REGEX_NAME),r=e.getArguments()?.get(sM.PARAMETER_STRING_NAME);return new F([G.outputOf(new Map([[sM.EVENT_RESULT_NAME,!!r.match(t)?.length]]))])}constructor(...e){super(...e),this.signature=new B("Matches").setNamespace(A.STRING).setParameters(b.ofEntries(b.entry(...L.ofEntry(sM.PARAMETER_REGEX_NAME,P.ofString(sM.PARAMETER_REGEX_NAME))),b.entry(...L.ofEntry(sM.PARAMETER_STRING_NAME,P.ofString(sM.PARAMETER_STRING_NAME))))).setEvents(b.ofEntries(b.entry(...D.outputEventMapEntry(new Map([[sM.EVENT_RESULT_NAME,P.ofBoolean(sM.EVENT_RESULT_NAME)]])))))}}class sS extends ef{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_POSTPAD_STRING_NAME="postpadString"}static{this.PARAMETER_LENGTH_NAME="length"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new L(sS.PARAMETER_STRING_NAME,P.ofString(sS.PARAMETER_STRING_NAME))}static{this.PARAMETER_POSTPAD_STRING=new L(sS.PARAMETER_POSTPAD_STRING_NAME,P.ofString(sS.PARAMETER_POSTPAD_STRING_NAME))}static{this.PARAMETER_LENGTH=new L(sS.PARAMETER_LENGTH_NAME,P.ofInteger(sS.PARAMETER_LENGTH_NAME))}static{this.EVENT_STRING=new D(D.OUTPUT,new Map([[sS.EVENT_RESULT_NAME,P.ofString(sS.EVENT_RESULT_NAME)]]))}constructor(){super(),this.signature=new B("PostPad").setNamespace(A.STRING).setParameters(new Map([[sS.PARAMETER_STRING.getParameterName(),sS.PARAMETER_STRING],[sS.PARAMETER_POSTPAD_STRING.getParameterName(),sS.PARAMETER_POSTPAD_STRING],[sS.PARAMETER_LENGTH.getParameterName(),sS.PARAMETER_LENGTH]])).setEvents(new Map([[sS.EVENT_STRING.getName(),sS.EVENT_STRING]]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(sS.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(sS.PARAMETER_POSTPAD_STRING_NAME),s=e.getArguments()?.get(sS.PARAMETER_LENGTH_NAME),n="",a=r.length;for(n+=t;a<=s;)n+=r,a+=r.length;return n.length-t.length<s&&(n+=r.substring(0,s-(n.length-t.length))),new F([G.outputOf(new Map([[sS.EVENT_RESULT_NAME,n.toString()]]))])}}class sO extends ef{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_PREPAD_STRING_NAME="prepadString"}static{this.PARAMETER_LENGTH_NAME="length"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new L(sO.PARAMETER_STRING_NAME,P.ofString(sO.PARAMETER_STRING_NAME))}static{this.PARAMETER_PREPAD_STRING=new L(sO.PARAMETER_PREPAD_STRING_NAME,P.ofString(sO.PARAMETER_PREPAD_STRING_NAME))}static{this.PARAMETER_LENGTH=new L(sO.PARAMETER_LENGTH_NAME,P.ofInteger(sO.PARAMETER_LENGTH_NAME))}static{this.EVENT_STRING=new D(D.OUTPUT,new Map([[sO.EVENT_RESULT_NAME,P.ofString(sO.EVENT_RESULT_NAME)]]))}getSignature(){return this.signature}constructor(){super(),this.signature=new B("PrePad").setNamespace(A.STRING).setParameters(new Map([[sO.PARAMETER_STRING.getParameterName(),sO.PARAMETER_STRING],[sO.PARAMETER_PREPAD_STRING.getParameterName(),sO.PARAMETER_PREPAD_STRING],[sO.PARAMETER_LENGTH.getParameterName(),sO.PARAMETER_LENGTH]])).setEvents(new Map([[sO.EVENT_STRING.getName(),sO.EVENT_STRING]]))}async internalExecute(e){let t=e.getArguments()?.get(sO.PARAMETER_STRING_NAME),r=e.getArguments()?.get(sO.PARAMETER_PREPAD_STRING_NAME),s=e.getArguments()?.get(sO.PARAMETER_LENGTH_NAME),n="",a=r.length;for(;a<=s;)n+=r,a+=r.length;return n.length<s&&(n+=r.substring(0,s-n.length)),n+=t,new F([G.outputOf(new Map([[sO.EVENT_RESULT_NAME,n]]))])}}class sd extends ef{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_BOOLEAN_NAME="boolean"}static{this.PARAMETER_FIRST_OFFSET_NAME="firstOffset"}static{this.PARAMETER_OTHER_STRING_NAME="otherString"}static{this.PARAMETER_SECOND_OFFSET_NAME="secondOffset"}static{this.PARAMETER_INTEGER_NAME="length"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new L(sd.PARAMETER_STRING_NAME,P.ofString(sd.PARAMETER_STRING_NAME))}static{this.PARAMETER_OTHER_STRING=new L(sd.PARAMETER_OTHER_STRING_NAME,P.ofString(sd.PARAMETER_OTHER_STRING_NAME))}static{this.PARAMETER_FIRST_OFFSET=new L(sd.PARAMETER_FIRST_OFFSET_NAME,P.ofInteger(sd.PARAMETER_FIRST_OFFSET_NAME))}static{this.PARAMETER_SECOND_OFFSET=new L(sd.PARAMETER_SECOND_OFFSET_NAME,P.ofInteger(sd.PARAMETER_SECOND_OFFSET_NAME))}static{this.PARAMETER_INTEGER=new L(sd.PARAMETER_INTEGER_NAME,P.ofInteger(sd.PARAMETER_INTEGER_NAME))}static{this.PARAMETER_BOOLEAN=new L(sd.PARAMETER_BOOLEAN_NAME,P.ofBoolean(sd.PARAMETER_BOOLEAN_NAME))}static{this.EVENT_BOOLEAN=new D(D.OUTPUT,new Map([[sd.EVENT_RESULT_NAME,P.ofBoolean(sd.EVENT_RESULT_NAME)]]))}getSignature(){return this.signature}constructor(){super(),this.signature=new B("RegionMatches").setNamespace(A.STRING).setParameters(new Map([[sd.PARAMETER_STRING.getParameterName(),sd.PARAMETER_STRING],[sd.PARAMETER_BOOLEAN.getParameterName(),sd.PARAMETER_BOOLEAN],[sd.PARAMETER_FIRST_OFFSET.getParameterName(),sd.PARAMETER_FIRST_OFFSET],[sd.PARAMETER_OTHER_STRING.getParameterName(),sd.PARAMETER_OTHER_STRING],[sd.PARAMETER_SECOND_OFFSET.getParameterName(),sd.PARAMETER_SECOND_OFFSET],[sd.PARAMETER_INTEGER.getParameterName(),sd.PARAMETER_INTEGER]])).setEvents(new Map([[sd.EVENT_BOOLEAN.getName(),sd.EVENT_BOOLEAN]]))}async internalExecute(e){let t=e.getArguments()?.get(sd.PARAMETER_STRING_NAME),r=e.getArguments()?.get(sd.PARAMETER_BOOLEAN_NAME),s=e.getArguments()?.get(sd.PARAMETER_FIRST_OFFSET_NAME),n=e?.getArguments()?.get(sd.PARAMETER_OTHER_STRING_NAME),a=e?.getArguments()?.get(sd.PARAMETER_SECOND_OFFSET_NAME),i=e.getArguments()?.get(sd.PARAMETER_INTEGER_NAME),o=!1;return o=!(s<0)&&!(a<0)&&!(s+i>t.length)&&!(a+i>n.length)&&(r?(t=t.substring(s,s+i).toUpperCase())==n.substring(a,a+i).toUpperCase():(t=t.substring(s,s+i))==n.substring(a,i)),new F([G.outputOf(new Map([[sd.EVENT_RESULT_NAME,o]]))])}}class sw extends ef{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_AT_START_NAME="startPosition"}static{this.PARAMETER_AT_LENGTH_NAME="lengthPosition"}static{this.PARAMETER_REPLACE_STRING_NAME="replaceString"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new L(sw.PARAMETER_STRING_NAME,P.ofString(sw.PARAMETER_STRING_NAME))}static{this.PARAMETER_AT_START=new L(sw.PARAMETER_AT_START_NAME,P.ofInteger(sw.PARAMETER_AT_START_NAME))}static{this.PARAMETER_AT_LENGTH=new L(sw.PARAMETER_AT_LENGTH_NAME,P.ofInteger(sw.PARAMETER_AT_LENGTH_NAME))}static{this.PARAMETER_REPLACE_STRING=new L(sw.PARAMETER_REPLACE_STRING_NAME,P.ofString(sw.PARAMETER_REPLACE_STRING_NAME))}static{this.EVENT_STRING=new D(D.OUTPUT,new Map([[sw.EVENT_RESULT_NAME,P.ofString(sw.EVENT_RESULT_NAME)]]))}constructor(){super(),this.signature=new B("ReplaceAtGivenPosition").setNamespace(A.STRING).setParameters(new Map([[sw.PARAMETER_STRING.getParameterName(),sw.PARAMETER_STRING],[sw.PARAMETER_AT_START.getParameterName(),sw.PARAMETER_AT_START],[sw.PARAMETER_AT_LENGTH.getParameterName(),sw.PARAMETER_AT_LENGTH],[sw.PARAMETER_REPLACE_STRING.getParameterName(),sw.PARAMETER_REPLACE_STRING]])).setEvents(new Map([[sw.EVENT_STRING.getName(),sw.EVENT_STRING]]))}getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(sw.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(sw.PARAMETER_AT_START_NAME),s=e?.getArguments()?.get(sw.PARAMETER_AT_LENGTH_NAME),n=e?.getArguments()?.get(sw.PARAMETER_REPLACE_STRING_NAME);if(t.length,r<s){let e="";e+=t.substring(0,r),e+=n,e+=t.substring(r+s)}return new F([G.outputOf(new Map([[sw.EVENT_RESULT_NAME,t]]))])}}class sP extends ef{constructor(){super(),this.VALUE="value",this.signature=new B("Reverse").setNamespace(A.STRING).setParameters(new Map([[this.VALUE,new L(this.VALUE,P.ofString(this.VALUE)).setVariableArgument(!1)]])).setEvents(new Map([D.outputEventMapEntry(new Map([[this.VALUE,new P().setType(m.of(c.STRING)).setName(this.VALUE)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(this.VALUE),r=t.length-1,s="";for(;r>=0;)s+=t.charAt(r--);return new F([G.outputOf(b.of(this.VALUE,s))])}}class sI extends ef{getSignature(){return this.signature}constructor(){super(),this.PARAMETER_STRING_NAME="string",this.PARAMETER_SPLIT_STRING_NAME="searchString",this.EVENT_RESULT_NAME="result",this.PARAMETER_STRING=new L(this.PARAMETER_STRING_NAME,P.ofString(this.PARAMETER_STRING_NAME)),this.PARAMETER_SPLIT_STRING=new L(this.PARAMETER_SPLIT_STRING_NAME,P.ofString(this.PARAMETER_SPLIT_STRING_NAME)),this.EVENT_ARRAY=new D(D.OUTPUT,b.of(this.EVENT_RESULT_NAME,P.ofArray(this.EVENT_RESULT_NAME))),this.signature=new B("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([D.outputEventMapEntry(new Map([[this.EVENT_RESULT_NAME,P.ofArray(this.EVENT_RESULT_NAME)]]))]))}async internalExecute(e){let t=e.getArguments()?.get(this.PARAMETER_STRING_NAME),r=e.getArguments()?.get(this.PARAMETER_SPLIT_STRING_NAME);return new F([G.outputOf(b.of(this.EVENT_RESULT_NAME,t.split(r)))])}}class sy extends ef{getSignature(){return this.signature}constructor(){super(),this.PARAMETER_INPUT_ANYTYPE_NAME="anytype",this.EVENT_RESULT_NAME="result",this.PARAMETER_INPUT_ANYTYPE=new L(this.PARAMETER_INPUT_ANYTYPE_NAME,P.ofAny(this.PARAMETER_INPUT_ANYTYPE_NAME)),this.EVENT_STRING=new D(D.OUTPUT,new Map([[this.EVENT_RESULT_NAME,P.ofString(this.EVENT_RESULT_NAME)]])),this.signature=new B("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]]))}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 F([G.outputOf(new Map([[this.EVENT_RESULT_NAME,r]]))])}}class sx extends ef{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_LENGTH_NAME="length"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new L(sx.PARAMETER_STRING_NAME,P.ofString(sx.PARAMETER_STRING_NAME))}static{this.PARAMETER_LENGTH=new L(sx.PARAMETER_LENGTH_NAME,P.ofInteger(sx.PARAMETER_LENGTH_NAME))}static{this.EVENT_STRING=new D(D.OUTPUT,new Map([[sx.EVENT_RESULT_NAME,P.ofString(sx.EVENT_RESULT_NAME)]]))}getSignature(){return this.signature}constructor(){super(),this.signature=new B("TrimTo").setNamespace(A.STRING).setParameters(new Map([[sx.PARAMETER_STRING.getParameterName(),sx.PARAMETER_STRING],[sx.PARAMETER_LENGTH.getParameterName(),sx.PARAMETER_LENGTH]])).setEvents(new Map([[sx.EVENT_STRING.getName(),sx.EVENT_STRING]]))}async internalExecute(e){let t=e.getArguments()?.get(sx.PARAMETER_STRING_NAME),r=e.getArguments()?.get(sx.PARAMETER_LENGTH_NAME);return new F([G.outputOf(new Map([[sx.EVENT_RESULT_NAME,t.substring(0,r)]]))])}}class sL{async find(e,t){return e!=A.STRING?Promise.resolve(void 0):Promise.resolve(this.repoMap.get(t))}async filter(e){return Promise.resolve(this.filterableNames.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}constructor(){this.repoMap=b.ofArrayEntries(sp.ofEntryStringAndStringOutput("Trim",e=>e.trim()),sp.ofEntryStringAndStringOutput("TrimStart",e=>e.trimStart()),sp.ofEntryStringAndStringOutput("TrimEnd",e=>e.trimEnd()),sp.ofEntryStringAndIntegerOutput("Length",e=>e.length),sp.ofEntryStringStringAndIntegerOutput("Frequency",(e,t)=>{let r=0,s=e.indexOf(t);for(;-1!=s;)r++,s=e.indexOf(t,s+1);return r}),sp.ofEntryStringAndStringOutput("LowerCase",e=>e.toLocaleLowerCase()),sp.ofEntryStringAndStringOutput("UpperCase",e=>e.toUpperCase()),sp.ofEntryStringAndBooleanOutput("IsBlank",e=>""===e.trim()),sp.ofEntryStringAndBooleanOutput("IsEmpty",e=>""===e),sp.ofEntryStringStringAndBooleanOutput("Contains",(e,t)=>-1!=e.indexOf(t)),sp.ofEntryStringStringAndBooleanOutput("EndsWith",(e,t)=>e.endsWith(t)),sp.ofEntryStringStringAndBooleanOutput("StartsWith",(e,t)=>e.startsWith(t)),sp.ofEntryStringStringAndBooleanOutput("EqualsIgnoreCase",(e,t)=>e.toUpperCase()==t.toUpperCase()),sp.ofEntryStringStringAndBooleanOutput("Matches",(e,t)=>new RegExp(t).test(e)),sp.ofEntryStringStringAndIntegerOutput("IndexOf",(e,t)=>e.indexOf(t)),sp.ofEntryStringStringAndIntegerOutput("LastIndexOf",(e,t)=>e.lastIndexOf(t)),sp.ofEntryStringIntegerAndStringOutput("Repeat",(e,t)=>e.repeat(t)),sp.ofEntryStringStringIntegerAndIntegerOutput("IndexOfWithStartPoint",(e,t,r)=>e.indexOf(t,r)),sp.ofEntryStringStringIntegerAndIntegerOutput("LastIndexOfWithStartPoint",(e,t,r)=>e.lastIndexOf(t,r)),sp.ofEntryStringStringStringAndStringOutput("Replace",(e,t,r)=>e.replaceAll(t,r)),sp.ofEntryStringStringStringAndStringOutput("ReplaceFirst",(e,t,r)=>e.replace(t,r)),sp.ofEntryStringIntegerIntegerAndStringOutput("SubString",(e,t,r)=>e.substring(t,r)),C(new sf),C(new sN),C(new s_),C(new sS),C(new sO),C(new sd),C(new sw),C(new sP),C(new sI),C(new sy),C(new sx),C(new sM)),this.filterableNames=Array.from(this.repoMap.values()).map(e=>e.getSignature().getFullName())}}class sU extends ef{static{this.PARAMETER_TIMESTAMP_NAME="isoTimeStamp"}static{this.PARAMETER_TIMESTAMP_NAME_ONE="isoTimeStamp1"}static{this.PARAMETER_TIMESTAMP_NAME_TWO="isoTimeStamp2"}static{this.PARAMETER_UNIT_NAME="unit"}static{this.PARAMETER_NUMBER_NAME="number"}static{this.PARAMETER_TIMESTAMP=new L(sU.PARAMETER_TIMESTAMP_NAME,P.ofRef(A.DATE+".Timestamp"))}static{this.PARAMETER_TIMESTAMP_ONE=new L(sU.PARAMETER_TIMESTAMP_NAME_ONE,P.ofRef(A.DATE+".Timestamp"))}static{this.PARAMETER_TIMESTAMP_TWO=new L(sU.PARAMETER_TIMESTAMP_NAME_TWO,P.ofRef(A.DATE+".Timestamp"))}static{this.PARAMETER_VARIABLE_UNIT=new L(sU.PARAMETER_UNIT_NAME,P.ofRef(A.DATE+".Timeunit")).setVariableArgument(!0)}static{this.PARAMETER_UNIT=new L(sU.PARAMETER_UNIT_NAME,P.ofRef(A.DATE+".Timeunit"))}static{this.PARAMETER_NUMBER=new L(sU.PARAMETER_NUMBER_NAME,P.ofInteger(sU.PARAMETER_NUMBER_NAME))}static{this.EVENT_RESULT_NAME="result"}static{this.EVENT_TIMESTAMP_NAME="isoTimeStamp"}static{this.EVENT_INT=new D(D.OUTPUT,b.of(sU.EVENT_RESULT_NAME,P.ofInteger(sU.EVENT_RESULT_NAME)))}static{this.EVENT_STRING=new D(D.OUTPUT,b.of(sU.EVENT_RESULT_NAME,P.ofString(sU.EVENT_RESULT_NAME)))}static{this.EVENT_LONG=new D(D.OUTPUT,b.of(sU.EVENT_RESULT_NAME,P.ofLong(sU.EVENT_RESULT_NAME)))}static{this.EVENT_BOOLEAN=new D(D.OUTPUT,b.of(sU.EVENT_RESULT_NAME,P.ofBoolean(sU.EVENT_RESULT_NAME)))}static{this.EVENT_TIMESTAMP=new D(D.OUTPUT,b.of(sU.EVENT_TIMESTAMP_NAME,P.ofRef(A.DATE+".Timestamp")))}getSignature(){return this.signature}constructor(e,t,...r){if(super(),this.signature=new B(e).setNamespace(A.DATE).setEvents(b.of(t.getName(),t)),!r?.length)return;let s=new Map;r.forEach(e=>s.set(e.getParameterName(),e)),this.signature.setParameters(s)}static ofEntryTimestampAndIntegerOutput(e,t){return[e,new class extends sU{async internalExecute(e){return new F([G.outputOf(b.of(sU.EVENT_RESULT_NAME,t(e.getArguments()?.get(sU.PARAMETER_TIMESTAMP_NAME))))])}}(e,sU.EVENT_INT,sU.PARAMETER_TIMESTAMP)]}static ofEntryTimestampAndBooleanOutput(e,t){return[e,new class extends sU{async internalExecute(e){return new F([G.outputOf(b.of(sU.EVENT_RESULT_NAME,t(e.getArguments()?.get(sU.PARAMETER_TIMESTAMP_NAME))))])}}(e,sU.EVENT_BOOLEAN,sU.PARAMETER_TIMESTAMP)]}static ofEntryTimestampAndStringOutput(e,t){return[e,new class extends sU{async internalExecute(e){return new F([G.outputOf(b.of(sU.EVENT_RESULT_NAME,t(e.getArguments()?.get(sU.PARAMETER_TIMESTAMP_NAME))))])}}(e,sU.EVENT_STRING,sU.PARAMETER_TIMESTAMP)]}static ofEntryTimestampIntegerAndTimestampOutput(e,t){return[e,new class extends sU{async internalExecute(e){return new F([G.outputOf(b.of(sU.EVENT_RESULT_NAME,t(e.getArguments()?.get(sU.PARAMETER_TIMESTAMP_NAME),e.getArguments()?.get(sU.PARAMETER_NUMBER_NAME))))])}}(e,sU.EVENT_TIMESTAMP,sU.PARAMETER_TIMESTAMP,sU.PARAMETER_NUMBER)]}static ofEntryTimestampTimestampAndTOutput(e,t,r,...s){return[e,new class extends sU{async internalExecute(e){let t=[];return s?.length&&t.push(...s.map(t=>e.getArguments()?.get(t.getParameterName()))),new F([G.outputOf(b.of(sU.EVENT_RESULT_NAME,r(e.getArguments()?.get(sU.PARAMETER_TIMESTAMP_NAME_ONE),e.getArguments()?.get(sU.PARAMETER_TIMESTAMP_NAME_TWO),t)))])}}(e,t,sU.PARAMETER_TIMESTAMP_ONE,sU.PARAMETER_TIMESTAMP_TWO,...s)]}}function sb(t){let r=e.fromISO(t,{setZone:!0});if(!r?.isValid)throw Error("Invalid ISO timestamp");return r}class sV extends sU{static{this.PARAMETER_YEARS_NAME="years"}static{this.PARAMETER_MONTHS_NAME="months"}static{this.PARAMETER_DAYS_NAME="days"}static{this.PARAMETER_HOURS_NAME="hours"}static{this.PARAMETER_MINUTES_NAME="minutes"}static{this.PARAMETER_SECONDS_NAME="seconds"}static{this.PARAMETER_MILLISECONDS_NAME="milliseconds"}constructor(e){super(e?"AddTime":"SubtractTime",sU.EVENT_TIMESTAMP,sU.PARAMETER_TIMESTAMP,L.of(sV.PARAMETER_YEARS_NAME,P.ofNumber(sV.PARAMETER_YEARS_NAME).setDefaultValue(0)),L.of(sV.PARAMETER_MONTHS_NAME,P.ofNumber(sV.PARAMETER_MONTHS_NAME).setDefaultValue(0)),L.of(sV.PARAMETER_DAYS_NAME,P.ofNumber(sV.PARAMETER_DAYS_NAME).setDefaultValue(0)),L.of(sV.PARAMETER_HOURS_NAME,P.ofNumber(sV.PARAMETER_HOURS_NAME).setDefaultValue(0)),L.of(sV.PARAMETER_MINUTES_NAME,P.ofNumber(sV.PARAMETER_MINUTES_NAME).setDefaultValue(0)),L.of(sV.PARAMETER_SECONDS_NAME,P.ofNumber(sV.PARAMETER_SECONDS_NAME).setDefaultValue(0)),L.of(sV.PARAMETER_MILLISECONDS_NAME,P.ofNumber(sV.PARAMETER_MILLISECONDS_NAME).setDefaultValue(0))),this.isAdd=e}async internalExecute(e){let t;let r=sb(e.getArguments()?.get(sU.PARAMETER_TIMESTAMP_NAME)),s=e.getArguments()?.get(sV.PARAMETER_YEARS_NAME),n=e.getArguments()?.get(sV.PARAMETER_MONTHS_NAME),a=e.getArguments()?.get(sV.PARAMETER_DAYS_NAME),i=e.getArguments()?.get(sV.PARAMETER_HOURS_NAME),o={years:s,months:n,days:a,hours:i,minutes:e.getArguments()?.get(sV.PARAMETER_MINUTES_NAME),seconds:e.getArguments()?.get(sV.PARAMETER_SECONDS_NAME),milliseconds:e.getArguments()?.get(sV.PARAMETER_MILLISECONDS_NAME)};return t=this.isAdd?r.plus(o):r.minus(o),new F([G.outputOf(b.of(sU.EVENT_TIMESTAMP_NAME,t.toISO()))])}}class sv extends ef{constructor(e,t){super(),this.paramName=`epoch${t?"Seconds":"Milliseconds"}`,this.isSeconds=t,this.signature=new B(e).setNamespace(A.DATE).setParameters(new Map([[this.paramName,L.of(this.paramName,new P().setName(this.paramName).setType(m.of(c.LONG,c.INTEGER,c.STRING)))]])).setEvents(new Map([[sU.EVENT_TIMESTAMP.getName(),sU.EVENT_TIMESTAMP]]))}getSignature(){return this.signature}internalExecute(e){let t=parseInt(e.getArguments()?.get(this.paramName)),r=this.isSeconds?1e3*t:t;if(isNaN(r))throw Error(`Please provide a valid value for ${this.paramName}.`);return Promise.resolve(new F([G.outputOf(b.of(sU.EVENT_TIMESTAMP_NAME,new Date(r).toISOString()))]))}}class sC extends ef{constructor(e,t){super(),this.isSeconds=t,this.signature=new B(e).setNamespace(A.DATE).setParameters(new Map([[sU.PARAMETER_TIMESTAMP_NAME,sU.PARAMETER_TIMESTAMP]])).setEvents(new Map([[sU.EVENT_TIMESTAMP.getName(),sU.EVENT_LONG]]))}getSignature(){return this.signature}internalExecute(t){let r=t.getArguments()?.get(sU.PARAMETER_TIMESTAMP_NAME),s=this.isSeconds?e.fromISO(r).toSeconds():e.fromISO(r).toMillis();return Promise.resolve(new F([G.outputOf(b.of(sU.EVENT_RESULT_NAME,s))]))}}class sD extends sU{static{this.PARAMETER_FORMAT_NAME="format"}static{this.PARAMETER_LOCALE_NAME="locale"}constructor(){super("ToDateString",sU.EVENT_STRING,sU.PARAMETER_TIMESTAMP,L.of(sD.PARAMETER_FORMAT_NAME,P.ofString(sD.PARAMETER_FORMAT_NAME)),L.of(sD.PARAMETER_LOCALE_NAME,P.ofString(sD.PARAMETER_LOCALE_NAME).setDefaultValue("")))}async internalExecute(e){let t=sb(e.getArguments()?.get(sU.PARAMETER_TIMESTAMP_NAME)),r=e.getArguments()?.get(sD.PARAMETER_FORMAT_NAME),s=e.getArguments()?.get(sD.PARAMETER_LOCALE_NAME);return""===s&&(s="system"),new F([G.outputOf(b.of(sU.EVENT_RESULT_NAME,t.toFormat(r,{locale:s})))])}}class sG extends sU{static{this.PARAMETER_TIMEZONE_NAME="timezone"}constructor(){super("SetTimeZone",sU.EVENT_TIMESTAMP,sU.PARAMETER_TIMESTAMP,L.of(sG.PARAMETER_TIMEZONE_NAME,P.ofString(sG.PARAMETER_TIMEZONE_NAME)))}async internalExecute(e){let t=sb(e.getArguments()?.get(sU.PARAMETER_TIMESTAMP_NAME)),r=e.getArguments()?.get(sG.PARAMETER_TIMEZONE_NAME);return new F([G.outputOf(b.of(sU.EVENT_TIMESTAMP_NAME,t.setZone(r).toISO()))])}}class s$ extends sU{static{this.PARAMETER_START_TIMESTAMP_NAME="startTimestamp"}static{this.PARAMETER_END_TIMESTAMP_NAME="endTimestamp"}static{this.PARAMETER_CHECK_TIMESTAMP_NAME="checkTimestamp"}constructor(){super("IsBetween",s$.EVENT_BOOLEAN,L.of(s$.PARAMETER_START_TIMESTAMP_NAME,P.ofRef(A.DATE+".Timestamp")),L.of(s$.PARAMETER_END_TIMESTAMP_NAME,P.ofRef(A.DATE+".Timestamp")),L.of(s$.PARAMETER_CHECK_TIMESTAMP_NAME,P.ofRef(A.DATE+".Timestamp")))}async internalExecute(e){let t=e.getArguments()?.get(s$.PARAMETER_START_TIMESTAMP_NAME),r=e.getArguments()?.get(s$.PARAMETER_END_TIMESTAMP_NAME),s=e.getArguments()?.get(s$.PARAMETER_CHECK_TIMESTAMP_NAME),n=sb(t),a=sb(r),i=sb(s);return n>a&&([n,a]=[a,n]),new F([G.outputOf(b.of(s$.EVENT_RESULT_NAME,n<=i&&i<=a))])}}class sF extends ef{constructor(e){super(),this.isLast=e,this.signature=new B(e?"LastOf":"FirstOf").setNamespace(A.DATE).setParameters(new Map([[sU.PARAMETER_TIMESTAMP_NAME,new L(sU.PARAMETER_TIMESTAMP_NAME,P.ofRef(A.DATE+".Timestamp")).setVariableArgument(!0)]])).setEvents(new Map([[sU.EVENT_TIMESTAMP.getName(),sU.EVENT_TIMESTAMP]]))}getSignature(){return this.signature}internalExecute(e){let t=e.getArguments()?.get(sU.PARAMETER_TIMESTAMP_NAME);if(!t?.length)throw Error("No timestamps provided");let r=t.map(e=>sb(e));return r.sort((e,t)=>e.toMillis()-t.toMillis()),Promise.resolve(new F([G.outputOf(b.of(sU.EVENT_TIMESTAMP_NAME,r[this.isLast?r.length-1:0].toISO()))]))}}class sB extends sU{static{this.EVENT_TIME_OBJECT_NAME="object"}static{this.EVENT_TIME_ARRAY_NAME="array"}constructor(e){super(e?"TimeAsArray":"TimeAsObject",new D(D.OUTPUT,b.of(e?sB.EVENT_TIME_ARRAY_NAME:sB.EVENT_TIME_OBJECT_NAME,e?P.ofArray(sB.EVENT_TIME_ARRAY_NAME,P.ofInteger("timeParts")):P.ofRef(A.DATE+".TimeObject"))),sU.PARAMETER_TIMESTAMP),this.isArray=e}async internalExecute(e){let t=sb(e.getArguments()?.get(sU.PARAMETER_TIMESTAMP_NAME)).toObject();return new F([G.outputOf(b.of(this.isArray?sB.EVENT_TIME_ARRAY_NAME:sB.EVENT_TIME_OBJECT_NAME,this.isArray?[t.year,t.month,t.day,t.hour,t.minute,t.second,t.millisecond]:t))])}}class sY extends sU{constructor(e){super(e?"StartOf":"EndOf",sU.EVENT_TIMESTAMP,sU.PARAMETER_TIMESTAMP,sU.PARAMETER_UNIT),this.isStart=e}async internalExecute(e){let t=sb(e.getArguments()?.get(sU.PARAMETER_TIMESTAMP_NAME)),r=e.getArguments()?.get(sU.PARAMETER_UNIT_NAME)?.toLowerCase();r=r.substring(0,r.length-1);let s=this.isStart?t.startOf(r):t.endOf(r);return new F([G.outputOf(b.of(sU.EVENT_TIMESTAMP_NAME,s.toISO({includeOffset:!0})))])}}class sH extends sU{static{this.EVENT_NAMES_NAME="names"}static{this.PARAMETER_UNIT_NAME="unit"}static{this.PARAMETER_LOCALE_NAME="locale"}constructor(){super("GetNames",new D(sH.EVENT_NAMES_NAME,b.of(sH.EVENT_NAMES_NAME,P.ofArray(sH.EVENT_NAMES_NAME,P.ofString(sH.EVENT_NAMES_NAME)))),new L(sH.PARAMETER_UNIT_NAME,P.ofString(sH.PARAMETER_UNIT_NAME).setEnums(["TIMEZONES","MONTHS","WEEKDAYS"])),new L(sH.PARAMETER_LOCALE_NAME,P.ofString(sH.PARAMETER_LOCALE_NAME).setDefaultValue("system")))}async internalExecute(e){let t=e.getArguments()?.get(sH.PARAMETER_UNIT_NAME),r=e.getArguments()?.get(sH.PARAMETER_LOCALE_NAME);return new F([G.outputOf(b.of(sH.EVENT_NAMES_NAME,this.getNames(t,r)))])}getNames(t,r){return"TIMEZONES"===t?Intl.supportedValuesOf("timeZone"):"MONTHS"===t?[1,2,3,4,5,6,7,8,9,10,11,12].map(t=>e.now().setLocale(r).set({month:t}).toFormat("MMMM")):"WEEKDAYS"===t?[1,2,3,4,5,6,7].map(t=>e.now().setLocale(r).set({month:7,year:2024,day:t}).toFormat("EEEE")):[]}}class sk extends ef{internalExecute(t){let r=t.getArguments()?.get(sU.PARAMETER_TIMESTAMP_NAME),s=e.fromISO(r);return Promise.resolve(new F([G.outputOf(b.of(sU.EVENT_RESULT_NAME,s.isValid))]))}getSignature(){return this.signature}constructor(...e){super(...e),this.signature=new B("IsValidISODate").setNamespace(A.DATE).setParameters(new Map([L.ofEntry(sU.PARAMETER_TIMESTAMP_NAME,P.ofString(sU.PARAMETER_TIMESTAMP_NAME))])).setEvents(new Map([D.outputEventMapEntry(b.of(sU.EVENT_RESULT_NAME,P.ofBoolean(sU.EVENT_RESULT_NAME)))]))}}class sj extends sU{static{this.PARAMETER_BASE_NAME="base"}static{this.PARAMETER_BASE=new L(sj.PARAMETER_BASE_NAME,P.ofRef(A.DATE+".Timestamp").setDefaultValue(""))}static{this.PARAMETER_LOCALE_NAME="locale"}static{this.PARAMETER_LOCALE=new L(sj.PARAMETER_LOCALE_NAME,P.ofString(sj.PARAMETER_LOCALE_NAME).setDefaultValue("system"))}static{this.PARAMETER_FORMAT_NAME="format"}static{this.PARAMETER_FORMAT=new L(sj.PARAMETER_FORMAT_NAME,P.ofString(sj.PARAMETER_FORMAT_NAME).setEnums(["LONG","SHORT","NARROW"]).setDefaultValue("LONG"))}static{this.PARAMETER_ROUND_NAME="round"}static{this.PARAMETER_ROUND=new L(sj.PARAMETER_ROUND_NAME,P.ofBoolean(sj.PARAMETER_ROUND_NAME).setDefaultValue(!0))}constructor(){super("FromNow",sU.EVENT_STRING,sU.PARAMETER_TIMESTAMP,sj.PARAMETER_FORMAT,sj.PARAMETER_BASE,sU.PARAMETER_VARIABLE_UNIT,sj.PARAMETER_ROUND,sj.PARAMETER_LOCALE)}internalExecute(t){let r=t.getArguments()?.get(sj.PARAMETER_BASE_NAME),s=""===r?e.now():e.fromISO(r),n=t.getArguments()?.get(sU.PARAMETER_TIMESTAMP_NAME),a=e.fromISO(n),i=t.getArguments()?.get(sj.PARAMETER_UNIT_NAME),o=t.getArguments()?.get(sj.PARAMETER_FORMAT_NAME),E=t.getArguments()?.get(sj.PARAMETER_ROUND_NAME),u=t.getArguments()?.get(sj.PARAMETER_LOCALE_NAME),A={base:s,style:o?.toLowerCase(),round:E,locale:u};return i?.length>0&&(A.unit=i.map(e=>e.toLowerCase())),Promise.resolve(new F([G.outputOf(b.of(sU.EVENT_RESULT_NAME,a.toRelative(A)??"Unknown"))]))}}class sW extends sU{static{this.PARAMETER_FORMAT_NAME="format"}static{this.PARAMETER_TIMESTAMP_STRING_NAME="timestampString"}constructor(){super("FromDateString",sU.EVENT_TIMESTAMP,L.of(sW.PARAMETER_TIMESTAMP_STRING_NAME,P.ofString(sW.PARAMETER_TIMESTAMP_STRING_NAME)),L.of(sW.PARAMETER_FORMAT_NAME,P.ofString(sW.PARAMETER_FORMAT_NAME)))}async internalExecute(t){let r=t.getArguments()?.get(sW.PARAMETER_TIMESTAMP_STRING_NAME),s=t.getArguments()?.get(sW.PARAMETER_FORMAT_NAME),n=e.fromFormat(r,s);return new F([G.outputOf(b.of(sU.EVENT_RESULT_NAME,n.toISO()))])}}class sX extends sU{constructor(){super("GetCurrentTimestamp",sU.EVENT_TIMESTAMP)}async internalExecute(t){return new F([G.outputOf(b.of(sU.EVENT_TIMESTAMP_NAME,e.now().toISO()))])}}class sJ{find(e,t){return e!=A.DATE?Promise.resolve(void 0):Promise.resolve(this.repoMap.get(t))}filter(e){return Promise.resolve(this.filterableNames.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}constructor(){this.repoMap=b.ofArrayEntries(["EpochSecondsToTimestamp",new sv("EpochSecondsToTimestamp",!0)],["EpochMillisecondsToTimestamp",new sv("EpochMillisecondsToTimestamp",!1)],sU.ofEntryTimestampAndIntegerOutput("GetDay",e=>sb(e).day),sU.ofEntryTimestampAndIntegerOutput("GetDayOfWeek",e=>sb(e).weekday),sU.ofEntryTimestampAndIntegerOutput("GetMonth",e=>sb(e).month),sU.ofEntryTimestampAndIntegerOutput("GetYear",e=>sb(e).year),sU.ofEntryTimestampAndIntegerOutput("GetHours",e=>sb(e).hour),sU.ofEntryTimestampAndIntegerOutput("GetMinutes",e=>sb(e).minute),sU.ofEntryTimestampAndIntegerOutput("GetSeconds",e=>sb(e).second),sU.ofEntryTimestampAndIntegerOutput("GetMilliseconds",e=>sb(e).millisecond),sU.ofEntryTimestampAndIntegerOutput("GetDaysInMonth",e=>sb(e).daysInMonth),sU.ofEntryTimestampAndIntegerOutput("GetDaysInYear",e=>sb(e).daysInYear),["TimestampToEpochSeconds",new sC("TimestampToEpochSeconds",!0)],["TimestampToEpochMilliseconds",new sC("TimestampToEpochMilliseconds",!1)],sU.ofEntryTimestampAndStringOutput("GetTimeZoneName",e=>sb(e).zoneName),sU.ofEntryTimestampAndStringOutput("GetTimeZoneOffsetLong",e=>sb(e).offsetNameLong),sU.ofEntryTimestampAndStringOutput("GetTimeZoneOffsetShort",e=>sb(e).offsetNameShort),sU.ofEntryTimestampAndIntegerOutput("GetTimeZoneOffset",e=>sb(e).offset),["ToDateString",new sD],["AddTime",new sV(!0)],["SubtractTime",new sV(!1)],["GetCurrentTimestamp",new sX],sU.ofEntryTimestampTimestampAndTOutput("Difference",new D(D.OUTPUT,b.of(sU.EVENT_RESULT_NAME,P.ofRef(`${A.DATE}.Duration`))),(e,t,r)=>{let s;let n=sb(e),a=sb(t);r?.[0]?.length&&(s=r[0]?.filter(e=>!!e).map(e=>e.toLowerCase()));let i=n.diff(a);return s?.length?i.shiftTo(...s).toObject():i.toObject()},sU.PARAMETER_VARIABLE_UNIT),sU.ofEntryTimestampIntegerAndTimestampOutput("SetDay",(e,t)=>sb(e).set({day:t}).toISO()),sU.ofEntryTimestampIntegerAndTimestampOutput("SetMonth",(e,t)=>sb(e).set({month:t}).toISO()),sU.ofEntryTimestampIntegerAndTimestampOutput("SetYear",(e,t)=>sb(e).set({year:t}).toISO()),sU.ofEntryTimestampIntegerAndTimestampOutput("SetHours",(e,t)=>sb(e).set({hour:t}).toISO()),sU.ofEntryTimestampIntegerAndTimestampOutput("SetMinutes",(e,t)=>sb(e).set({minute:t}).toISO()),sU.ofEntryTimestampIntegerAndTimestampOutput("SetSeconds",(e,t)=>sb(e).set({second:t}).toISO()),sU.ofEntryTimestampIntegerAndTimestampOutput("SetMilliseconds",(e,t)=>sb(e).set({millisecond:t}).toISO()),["SetTimeZone",new sG],sU.ofEntryTimestampTimestampAndTOutput("IsBefore",new D(D.OUTPUT,b.of(sU.EVENT_RESULT_NAME,P.ofBoolean(sU.EVENT_RESULT_NAME))),(e,t)=>sb(e)<sb(t)),sU.ofEntryTimestampTimestampAndTOutput("IsAfter",new D(D.OUTPUT,b.of(sU.EVENT_RESULT_NAME,P.ofBoolean(sU.EVENT_RESULT_NAME))),(e,t)=>sb(e)>sb(t)),sU.ofEntryTimestampTimestampAndTOutput("IsSame",new D(D.OUTPUT,b.of(sU.EVENT_RESULT_NAME,P.ofBoolean(sU.EVENT_RESULT_NAME))),(e,t)=>sb(e)===sb(t)),sU.ofEntryTimestampTimestampAndTOutput("IsSameOrBefore",new D(D.OUTPUT,b.of(sU.EVENT_RESULT_NAME,P.ofBoolean(sU.EVENT_RESULT_NAME))),(e,t)=>sb(e)<=sb(t)),sU.ofEntryTimestampTimestampAndTOutput("IsSameOrAfter",new D(D.OUTPUT,b.of(sU.EVENT_RESULT_NAME,P.ofBoolean(sU.EVENT_RESULT_NAME))),(e,t)=>sb(e)>=sb(t)),sU.ofEntryTimestampAndBooleanOutput("IsInLeapYear",e=>sb(e).isInLeapYear),sU.ofEntryTimestampAndBooleanOutput("IsInDST",e=>sb(e).isInDST),["IsBetween",new s$],["LastOf",new sF(!0)],["FirstOf",new sF(!1)],["StartOf",new sY(!0)],["EndOf",new sY(!1)],["TimeAsObject",new sB(!1)],["TimeAsArray",new sB(!0)],["GetNames",new sH],["IsValidISODate",new sk],["FromNow",new sj],["FromDateString",new sW]),this.filterableNames=Array.from(this.repoMap.values()).map(e=>e.getSignature().getFullName())}}class sq extends ef{static{this.MILLIS="millis"}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(sq.MILLIS);return await new Promise(e=>setTimeout(e,t)),new F([G.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new B("Wait").setNamespace(A.SYSTEM).setParameters(new Map([L.ofEntry(sq.MILLIS,P.ofNumber(sq.MILLIS).setMinimum(0).setDefaultValue(0))])).setEvents(new Map([D.outputEventMapEntry(new Map)]))}}t({},"HybridRepository",()=>sK);class sK{constructor(...e){this.repos=e}async find(e,t){for(let r of this.repos){let s=await r.find(e,t);if(s)return s}}async filter(e){let t=new Set;for(let r of this.repos)(await r.filter(e)).forEach(e=>t.add(e));return Array.from(t)}}class sz{constructor(){this.map=new Map([[A.SYSTEM_CTX,new Map([C(new tR),C(new tm),C(new rd)])],[A.SYSTEM_LOOP,new Map([C(new rW),C(new rC),C(new rU),C(new rB)])],[A.SYSTEM,new Map([C(new rx),C(new ry),C(new sm),C(new sq),C(new tu)])]]),this.filterableNames=Array.from(this.map.values()).flatMap(e=>Array.from(e.values())).map(e=>e.getSignature().getFullName())}async find(e,t){return this.map.get(e)?.get(t)}async filter(e){return Array.from(this.filterableNames).filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase()))}}class sQ extends sK{constructor(){super(new sz,new r3,new sL,new tA,new sg,new sJ)}}t({},"StatementExecution",()=>s0),t({},"StatementMessage",()=>sZ);class sZ{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 s0{constructor(e){this.messages=[],this.dependencies=new Set,this.statement=e}getStatement(){return this.statement}setStatement(e){return this.statement=e,this}getMessages(){return this.messages}setMessages(e){return this.messages=e,this}getDependencies(){return this.dependencies}setDependencies(e){return this.dependencies=e,this}getUniqueKey(){return this.statement.getStatementName()}addMessage(e,t){this.messages.push(new sZ(e,t))}addDependency(e){this.dependencies.add(e)}getDepenedencies(){return this.dependencies}equals(e){return e instanceof s0&&e.statement.equals(this.statement)}}t({},"ContextTokenValueExtractor",()=>s1);class s1 extends e2{static{this.PREFIX="Context."}constructor(e){super(),this.context=e}getValueInternal(e){let t=e.split(e2.REGEX_DOT),r=t[1],s=r.indexOf("["),n=2;return -1!=s&&(r=t[1].substring(0,s),t[1]=t[1].substring(s),n=1),this.retrieveElementFrom(e,t,n,this.context.get(r)?.getElement())}getPrefix(){return s1.PREFIX}getStore(){return T(this.context)?this.context:Array.from(this.context.entries()).reduce((e,[t,r])=>(T(r)||(e[t]=r.getElement()),e),{})}}t({},"OutputMapTokenValueExtractor",()=>s2);class s2 extends e2{static{this.PREFIX="Steps."}constructor(e){super(),this.output=e}getValueInternal(e){let t=e.split(e2.REGEX_DOT),r=1,s=this.output.get(t[r++]);if(!s||r>=t.length)return;let n=s.get(t[r++]);if(!n||r>t.length)return;if(r===t.length)return n;let a=t[r].indexOf("[");if(-1===a){let s=n.get(t[r++]);return this.retrieveElementFrom(e,t,r,s)}let i=t[r].substring(0,a),o=n.get(i);return this.retrieveElementFrom(e,t,r,{[i]:o})}getPrefix(){return s2.PREFIX}getStore(){return this.convertMapToObj(this.output)}convertMapToObj(e){return 0===e.size?{}:Array.from(e.entries()).reduce((e,[t,r])=>(e[t]=r instanceof Map?this.convertMapToObj(r):r,e),{})}}t({},"ArgumentsTokenValueExtractor",()=>s5);class s5 extends e2{static{this.PREFIX="Arguments."}constructor(e){super(),this.args=e}getValueInternal(e){let t=e.split(e2.REGEX_DOT),r=t[1],s=r.indexOf("["),n=2;return -1!=s&&(r=t[1].substring(0,s),t[1]=t[1].substring(s),n=1),this.retrieveElementFrom(e,t,n,this.args.get(r))}getPrefix(){return s5.PREFIX}getStore(){return T(this.args)?this.args:Array.from(this.args.entries()).reduce((e,[t,r])=>(e[t]=r,e),{})}}t({},"GraphVertex",()=>s4),t({},"ExecutionGraph",()=>s7);class s7{constructor(e=!1){this.nodeMap=new Map,this.isSubGrph=e}getVerticesData(){return Array.from(this.nodeMap.values()).map(e=>e.getData())}addVertex(e){if(!this.nodeMap.has(e.getUniqueKey())){let t=new s4(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 H(this.getVerticesWithNoIncomingEdges()),r=new Set;for(;!t.isEmpty();){if(r.has(t.getFirst().getKey()))return!0;e=t.removeFirst(),r.add(e.getKey()),e.hasOutgoingEdges()&&t.addAll(Array.from(e.getOutVertices().values()).flatMap(e=>Array.from(e)))}return!1}addVertices(e){for(let t of e)this.addVertex(t)}getNodeMap(){return this.nodeMap}isSubGraph(){return this.isSubGrph}toString(){return"Execution Graph : \n"+Array.from(this.nodeMap.values()).map(e=>e.toString()).join("\n")}}class s4{constructor(e,t){this.outVertices=new Map,this.inVertices=new Set,this.data=t,this.graph=e}getData(){return this.data}setData(e){return this.data=e,this}getOutVertices(){return this.outVertices}setOutVertices(e){return this.outVertices=e,this}getInVertices(){return this.inVertices}setInVertices(e){return this.inVertices=e,this}getGraph(){return this.graph}setGraph(e){return this.graph=e,this}getKey(){return this.data.getUniqueKey()}addOutEdgeTo(e,t){return this.outVertices.has(e)||this.outVertices.set(e,new Set),this.outVertices.get(e).add(t),t.inVertices.add(new J(this,e)),t}addInEdgeTo(e,t){return this.inVertices.add(new J(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 s7(!0);var r=new H(Array.from(this.outVertices.get(e)??[]));for(r.map(e=>e.getData()).forEach(e=>t.addVertex(e));!r.isEmpty();)Array.from(r.pop().outVertices.values()).flatMap(e=>Array.from(e)).forEach(e=>{t.addVertex(e.getData()),r.add(e)});return t}toString(){var e=Array.from(this.getInVertices()).map(e=>e.getT1().getKey()+"("+e.getT2()+")").join(", "),t=Array.from(this.outVertices.entries()).map(([e,t])=>e+": "+Array.from(t).map(e=>e.getKey()).join(",")).join("\n ");return this.getKey()+":\n In: "+e+"\n Out: \n "+t}}t({},"KIRuntime",()=>nt),t({},"JsonExpression",()=>s9);class s9{constructor(e){this.expression=e}getExpression(){return this.expression}}t({},"ParameterReferenceType",()=>s6);var s6=((o={}).VALUE="VALUE",o.EXPRESSION="EXPRESSION",o);function s3(){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({},"FunctionExecutionParameters",()=>s8);class s8{constructor(e,t,r){this.count=0,this.executionContext=new Map,this.valueExtractors=new Map,this.functionRepository=e,this.schemaRepository=t,this.executionId=r??s3()}getExecutionId(){return this.executionId}getContext(){return this.context}setContext(e){this.context=e;let t=new s1(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 s2(e);return this.valueExtractors.set(t.getPrefix(),t),this}getCount(){return this.count}setCount(e){return this.count=e,this}getValuesMap(){return this.valueExtractors}getFunctionRepository(){return this.functionRepository}setFunctionRepository(e){return this.functionRepository=e,this}getSchemaRepository(){return this.schemaRepository}setSchemaRepository(e){return this.schemaRepository=e,this}addTokenValueExtractor(...e){for(let t of e)this.valueExtractors.set(t.getPrefix(),t);return this}setValuesMap(e){for(let[t,r]of e.entries())this.valueExtractors.set(t,r);return this}setExecutionContext(e){return this.executionContext=e,this}getExecutionContext(){return this.executionContext}}t({},"StatementMessageType",()=>ne);var ne=((E={}).ERROR="ERROR",E.WARNING="WARNING",E.MESSAGE="MESSAGE",E);class nt extends ef{static{this.PARAMETER_NEEDS_A_VALUE='Parameter "$" needs a value'}static{this.STEP_REGEX_PATTERN=RegExp("Steps\\.([a-zA-Z0-9\\\\-]{1,})\\.([a-zA-Z0-9\\\\-]{1,})","g")}static{this.VERSION=1}static{this.MAX_EXECUTION_ITERATIONS=1e7}constructor(e,t=!1){if(super(),this.debugMode=!1,this.debugMode=t,this.fd=e,this.fd.getVersion()>nt.VERSION)throw new $("Runtime is at a lower version "+nt.VERSION+" and trying to run code from version "+this.fd.getVersion()+".")}getSignature(){return this.fd}async getExecutionPlan(e,t){let r=new s7;for(let s of Array.from(this.fd.getSteps().values()))r.addVertex(await this.prepareStatementExecution(s,e,t));return Array.from(this.makeEdges(r).getT2().entries()).forEach(e=>{let t=r.getNodeMap().get(e[0])?.getData();t&&t.addMessage(ne.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 s5(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 H;r.addAll(e.getVerticesWithNoIncomingEdges());let s=new H;for(;(!r.isEmpty()||!s.isEmpty())&&!t.getEvents()?.has(D.OUTPUT);)if(await this.processBranchQue(t,r,s),await this.processExecutionQue(t,r,s),t.setCount(t.getCount()+1),t.getCount()==nt.MAX_EXECUTION_ITERATIONS)throw new $("Execution locked in an infinite loop");if(!e.isSubGraph()&&!t.getEvents()?.size){let e=this.getSignature().getEvents();if(e.size&&e.get(D.OUTPUT)?.getParameters()?.size)throw new $("No events raised")}let n=Array.from(t.getEvents()?.entries()??[]).flatMap(e=>e[1].map(t=>G.of(e[0],t)));return new F(n.length||e.isSubGraph()?n:[G.of(D.OUTPUT,new Map)])}async processExecutionQue(e,t,r){if(!t.isEmpty()){let s=t.pop();await this.allDependenciesResolvedVertex(s,e.getSteps())?await this.executeVertex(s,e,r,t,e.getFunctionRepository()):t.add(s)}}async processBranchQue(e,t,r){if(r.length){let s=r.pop();await this.allDependenciesResolvedTuples(s.getT2(),e.getSteps())?await this.executeBranch(e,t,s):r.add(s)}}async executeBranch(e,t,r){let s,n=r.getT4();do if(r.getT1().getVerticesData().map(e=>e.getStatement().getStatementName()).forEach(t=>e.getSteps()?.delete(t)),await this.executeGraph(r.getT1(),e),(s=r.getT3().next())&&(e.getSteps()?.has(n.getData().getStatement().getStatementName())||e.getSteps()?.set(n.getData().getStatement().getStatementName(),new Map),e.getSteps()?.get(n.getData().getStatement().getStatementName())?.set(s.getName(),this.resolveInternalExpressions(s.getResult(),e)),this.debugMode)){let t=n.getData().getStatement();console.log(`EID: ${e.getExecutionId()} Step : ${t.getStatementName()} => ${t.getNamespace()}.${t.getName()}`),console.log(`EID: ${e.getExecutionId()} Event : ${s.getName()} : `,e.getSteps().get(t.getStatementName()).get(s.getName()))}while(s&&s.getName()!=D.OUTPUT)s?.getName()==D.OUTPUT&&n.getOutVertices().has(D.OUTPUT)&&(n?.getOutVertices()?.get(D.OUTPUT)??[]).forEach(async r=>{await this.allDependenciesResolvedVertex(r,e.getSteps())&&t.add(r)})}async executeVertex(e,t,r,s,n){let a,i=e.getData().getStatement();if(i.getExecuteIftrue().size&&!(Array.from(i.getExecuteIftrue().entries())??[]).filter(e=>e[1]).map(([e])=>new rM(e).evaluate(t.getValuesMap())).every(e=>!T(e)&&!1!==e))return;let o=await n.find(i.getNamespace(),i.getName());if(!o)throw new $(Y.format("$.$ function is not found.",i.getNamespace(),i.getName()));let E=o?.getSignature().getParameters(),u=this.getArgumentsFromParametersMap(t,i,E??new Map);this.debugMode&&(console.log(`EID: ${t.getExecutionId()} Step : ${i.getStatementName()} => ${i.getNamespace()}.${i.getName()}`),console.log(`EID: ${t.getExecutionId()} Arguments : `,u));let A=t.getContext();a=o instanceof nt?new s8(t.getFunctionRepository(),t.getSchemaRepository(),`${t.getExecutionId()}_${i.getStatementName()}`).setArguments(u).setValuesMap(new Map(Array.from(t.getValuesMap().values()).filter(e=>e.getPrefix()!==s5.PREFIX&&e.getPrefix()!==s2.PREFIX&&e.getPrefix()!==s1.PREFIX).map(e=>[e.getPrefix(),e]))):new s8(t.getFunctionRepository(),t.getSchemaRepository(),t.getExecutionId()).setValuesMap(t.getValuesMap()).setContext(A).setArguments(u).setEvents(t.getEvents()).setSteps(t.getSteps()).setStatementExecution(e.getData()).setCount(t.getCount()).setExecutionContext(t.getExecutionContext());let l=await o.execute(a),c=l.next();if(!c)throw new $(Y.format("Executing $ returned no events",i.getStatementName()));let R=c.getName()==D.OUTPUT;if(t.getSteps()?.has(i.getStatementName())||t.getSteps().set(i.getStatementName(),new Map),t.getSteps().get(i.getStatementName()).set(c.getName(),this.resolveInternalExpressions(c.getResult(),t)),this.debugMode&&(console.log(`EID: ${t.getExecutionId()} Step : ${i.getStatementName()} => ${i.getNamespace()}.${i.getName()}`),console.log(`EID: ${t.getExecutionId()} Event : ${c.getName()} : `,t.getSteps().get(i.getStatementName()).get(c.getName()))),R){let r=e.getOutVertices().get(D.OUTPUT);r&&r.forEach(async e=>{await this.allDependenciesResolvedVertex(e,t.getSteps())&&s.add(e)})}else{let t=e.getSubGraphOfType(c.getName()),s=this.makeEdges(t).getT1();r.push(new K(t,s,l,e))}}resolveInternalExpressions(e,t){return e?Array.from(e.entries()).map(e=>new J(e[0],this.resolveInternalExpression(e[1],t))).reduce((e,t)=>(e.set(t.getT1(),t.getT2()),e),new Map):e}resolveInternalExpression(e,t){if(T(e)||"object"!=typeof e)return e;if(e instanceof s9)return new rM(e.getExpression()).evaluate(t.getValuesMap());if(Array.isArray(e)){let r=[];for(let s of e)r.push(this.resolveInternalExpression(s,t));return r}if("object"==typeof e){let r={};for(let s of Object.entries(e))r[s[0]]=this.resolveInternalExpression(s[1],t);return r}}allDependenciesResolvedTuples(e,t){for(let r of e)if(!t.has(r.getT1())||!t.get(r.getT1())?.get(r.getT2()))return!1;return!0}allDependenciesResolvedVertex(e,t){return!e.getInVertices().size||0==Array.from(e.getInVertices()).filter(e=>{let r=e.getT1().getData().getStatement().getStatementName(),s=e.getT2();return!(t.has(r)&&t.get(r)?.has(s))}).length}getArgumentsFromParametersMap(e,t,r){return Array.from(t.getParameterMap().entries()).map(t=>{let s,n=Array.from(t[1]?.values()??[]);if(!n?.length)return new J(t[0],s);let a=r.get(t[0]);return a?(s=a.isVariableArgument()?n.sort((e,t)=>(e.getOrder()??0)-(t.getOrder()??0)).filter(e=>!T(e)).map(t=>this.parameterReferenceEvaluation(e,t)).flatMap(e=>Array.isArray(e)?e:[e]):this.parameterReferenceEvaluation(e,n[0]),new J(t[0],s)):new J(t[0],void 0)}).filter(e=>!T(e.getT2())).reduce((e,t)=>(e.set(t.getT1(),t.getT2()),e),new Map)}parameterReferenceEvaluation(e,t){let r;return t.getType()==s6.VALUE?r=this.resolveInternalExpression(t.getValue(),e):t.getType()!=s6.EXPRESSION||W.isNullOrBlank(t.getExpression())||(r=new rM(t.getExpression()??"").evaluate(e.getValuesMap())),r}async prepareStatementExecution(e,t,r){let s=new s0(e),n=await t.find(e.getNamespace(),e.getName());if(!n)return s.addMessage(ne.ERROR,Y.format("$.$ is not available",e.getNamespace(),e.getName())),Promise.resolve(s);let a=new Map(n.getSignature().getParameters());if(!e.getParameterMap())return Promise.resolve(s);for(let t of Array.from(e.getParameterMap().entries())){let e=a.get(t[0]);if(!e)continue;let n=Array.from(t[1]?.values()??[]);if(!n.length&&!e.isVariableArgument()){await Q.hasDefaultValueOrNullSchemaType(e.getSchema(),r)||s.addMessage(ne.ERROR,Y.format(nt.PARAMETER_NEEDS_A_VALUE,e.getParameterName())),a.delete(e.getParameterName());continue}if(e.isVariableArgument())for(let t of(n.sort((e,t)=>(e.getOrder()??0)-(t.getOrder()??0)),n))this.parameterReferenceValidation(s,e,t,r);else if(n.length){let t=n[0];this.parameterReferenceValidation(s,e,t,r)}a.delete(e.getParameterName())}if(!T(s.getStatement().getDependentStatements()))for(let e of Array.from(s.getStatement().getDependentStatements().entries()))e[1]&&s.addDependency(e[0]);if(!T(s.getStatement().getExecuteIftrue()))for(let e of Array.from(s.getStatement().getExecuteIftrue().entries()))e[1]&&this.addDependencies(s,e[0]);if(a.size)for(let e of Array.from(a.values()))e.isVariableArgument()||await Q.hasDefaultValueOrNullSchemaType(e.getSchema(),r)||s.addMessage(ne.ERROR,Y.format(nt.PARAMETER_NEEDS_A_VALUE,e.getParameterName()));return Promise.resolve(s)}async parameterReferenceValidation(e,t,r,s){if(r){if(r.getType()==s6.VALUE){if(T(r.getValue())&&!await Q.hasDefaultValueOrNullSchemaType(t.getSchema(),s)&&e.addMessage(ne.ERROR,Y.format(nt.PARAMETER_NEEDS_A_VALUE,t.getParameterName())),T(r.getValue()))return;let n=new H;for(n.push(new J(t.getSchema(),r.getValue()));!n.isEmpty();){let t=n.pop();if(t.getT2()instanceof s9)this.addDependencies(e,t.getT2().getExpression());else{if(T(t.getT1())||T(t.getT1().getType()))continue;if(t.getT1().getType()?.contains(c.ARRAY)&&Array.isArray(t.getT2())){let e=t.getT1().getItems();if(!e)continue;if(e.isSingleType())for(let r of t.getT2())n.push(new J(e.getSingleSchema(),r));else{let r=t.getT2();for(let t=0;t<r.length;t++)n.push(new J(e.getTupleSchema()[t],r[t]))}}else if(t.getT1().getType()?.contains(c.OBJECT)&&"object"==typeof t.getT2()){let r=t.getT1();if(r.getName()===L.EXPRESSION.getName()&&r.getNamespace()===L.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])&&n.push(new J(r.getProperties().get(e[0]),e[1]))}}}}else if(r.getType()==s6.EXPRESSION){if(W.isNullOrBlank(r.getExpression()))T(Q.getDefaultValue(t.getSchema(),s))&&e.addMessage(ne.ERROR,Y.format(nt.PARAMETER_NEEDS_A_VALUE,t.getParameterName()));else try{this.addDependencies(e,r.getExpression())}catch(t){e.addMessage(ne.ERROR,Y.format("Error evaluating $ : $",r.getExpression(),t))}}}else T(await Q.getDefaultValue(t.getSchema(),s))&&e.addMessage(ne.ERROR,Y.format(nt.PARAMETER_NEEDS_A_VALUE,t.getParameterName()))}addDependencies(e,t){t&&Array.from(t.match(nt.STEP_REGEX_PATTERN)??[]).forEach(t=>e.addDependency(t))}makeEdges(e){let t=e.getNodeMap().values(),r=[],s=new Map;for(let n of Array.from(t))for(let t of Array.from(n.getData().getDependencies())){let a=t.indexOf(".",6),i=t.substring(6,a),o=t.indexOf(".",a+1),E=-1==o?t.substring(a+1):t.substring(a+1,o);e.getNodeMap().has(i)?n.addInEdgeTo(e.getNodeMap().get(i),E):(r.push(new J(i,E)),s.set(n.getData().getStatement().getStatementName(),Y.format("Unable to find the step with name $",i)))}return new J(r,s)}}t({},"KIRunConstants",()=>nr);class nr{static{this.NAMESPACE="namespace"}static{this.NAME="name"}static{this.ID="id"}constructor(){}}t({},"Position",()=>ns);class ns{static{this.SCHEMA_NAME="Position"}static{this.SCHEMA=new P().setNamespace(A.SYSTEM).setName(ns.SCHEMA_NAME).setType(m.of(c.OBJECT)).setProperties(new Map([["left",P.ofFloat("left")],["top",P.ofFloat("top")]]))}constructor(e,t){this.left=e,this.top=t}getLeft(){return this.left}setLeft(e){return this.left=e,this}getTop(){return this.top}setTop(e){return this.top=e,this}static from(e){if(e)return new ns(e.left,e.top)}}t({},"FunctionDefinition",()=>nu),t({},"Statement",()=>ni),t({},"AbstractStatement",()=>nn);class nn{constructor(e){if(this.override=!1,!e)return;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}}t({},"ParameterReference",()=>na);class na{static{this.SCHEMA_NAME="ParameterReference"}static{this.SCHEMA=new P().setNamespace(A.SYSTEM).setName(na.SCHEMA_NAME).setType(m.of(c.OBJECT)).setProperties(new Map([["key",P.ofString("key")],["value",P.ofAny("value")],["expression",P.ofString("expression")],["type",P.ofString("type").setEnums(["EXPRESSION","VALUE"])],["order",P.ofInteger("order")]]))}constructor(e){e instanceof na?(this.key=e.key,this.type=e.type,this.value=T(e.value)?void 0:JSON.parse(JSON.stringify(e.value)),this.expression=e.expression,this.order=e.order):(this.type=e,this.key=s3())}getType(){return this.type}setType(e){return this.type=e,this}getKey(){return this.key}setKey(e){return this.key=e,this}getValue(){return this.value}setValue(e){return this.value=e,this}getExpression(){return this.expression}setExpression(e){return this.expression=e,this}setOrder(e){return this.order=e,this}getOrder(){return this.order}static ofExpression(e){let t=new na(s6.EXPRESSION).setExpression(e);return[t.getKey(),t]}static ofValue(e){let t=new na(s6.VALUE).setValue(e);return[t.getKey(),t]}static from(e){return new na(e.type).setValue(e.value).setExpression(e.expression).setKey(e.key).setOrder(e.order)}}class ni extends nn{static{this.SCHEMA_NAME="Statement"}static{this.SCHEMA=new P().setNamespace(A.SYSTEM).setName(ni.SCHEMA_NAME).setType(m.of(c.OBJECT)).setProperties(new Map([["statementName",P.ofString("statementName")],["comment",P.ofString("comment")],["description",P.ofString("description")],["namespace",P.ofString("namespace")],["name",P.ofString("name")],["dependentStatements",P.ofObject("dependentstatement").setAdditionalProperties(new w().setSchemaValue(P.ofBoolean("exists"))).setDefaultValue({})],["executeIftrue",P.ofObject("executeIftrue").setAdditionalProperties(new w().setSchemaValue(P.ofBoolean("exists"))).setDefaultValue({})],["parameterMap",new P().setName("parameterMap").setAdditionalProperties(new w().setSchemaValue(P.ofObject("parameterReference").setAdditionalProperties(new w().setSchemaValue(na.SCHEMA))))],["position",ns.SCHEMA]]))}constructor(e,t,r){if(super(e instanceof ni?e:void 0),e instanceof ni)this.statementName=e.statementName,this.name=e.name,this.namespace=e.namespace,e.parameterMap&&(this.parameterMap=new Map(Array.from(e.parameterMap.entries()).map(e=>[e[0],new Map(Array.from(e[1].entries()).map(e=>[e[0],new na(e[1])]))]))),e.dependentStatements&&(this.dependentStatements=new Map(Array.from(e.dependentStatements.entries())));else{if(this.statementName=e,!r||!t)throw Error("Unknown constructor");this.namespace=t,this.name=r}}getStatementName(){return this.statementName}setStatementName(e){return this.statementName=e,this}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getParameterMap(){return this.parameterMap||(this.parameterMap=new Map),this.parameterMap}setParameterMap(e){return this.parameterMap=e,this}getDependentStatements(){return this.dependentStatements??new Map}setDependentStatements(e){return this.dependentStatements=e,this}getExecuteIftrue(){return this.executeIftrue??new Map}setExecuteIftrue(e){return this.executeIftrue=e,this}equals(e){return e instanceof ni&&e.statementName==this.statementName}static ofEntry(e){return[e.statementName,e]}static from(e){return new ni(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])=>na.from(t)).map(e=>[e.getKey(),e]))]))).setDependentStatements(new Map(Object.entries(e.dependentStatements??{}))).setExecuteIftrue(new Map(Object.entries(e.executeIftrue??{}))).setPosition(ns.from(e.position)).setComment(e.comment).setDescription(e.description)}}t({},"StatementGroup",()=>no);class no extends nn{static{this.SCHEMA_NAME="StatementGroup"}static{this.SCHEMA=new P().setNamespace(A.SYSTEM).setName(no.SCHEMA_NAME).setType(m.of(c.OBJECT)).setProperties(new Map([["statementGroupName",P.ofString("statementGroupName")],["comment",P.ofString("comment")],["description",P.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 no(e.statementGroupName,new Map(Object.entries(e.statements||{}).map(([e,t])=>[e,(""+t)?.toLowerCase()=="true"]))).setPosition(ns.from(e.position)).setComment(e.comment).setDescription(e.description)}}let nE=new P().setNamespace(A.SYSTEM).setName("FunctionDefinition").setProperties(new Map([["name",P.ofString("name")],["namespace",P.ofString("namespace")],["parameters",P.ofArray("parameters",L.SCHEMA)],["events",P.ofObject("events").setAdditionalProperties(new w().setSchemaValue(D.SCHEMA))],["steps",P.ofObject("steps").setAdditionalProperties(new w().setSchemaValue(ni.SCHEMA))]]));nE.getProperties()?.set("parts",P.ofArray("parts",nE));class nu extends B{static{this.SCHEMA=nE}constructor(e){super(e),this.version=1}getVersion(){return this.version}setVersion(e){return this.version=e,this}getSteps(){return this.steps??new Map}setSteps(e){return this.steps=e,this}getStepGroups(){return this.stepGroups}setStepGroups(e){return this.stepGroups=e,this}getParts(){return this.parts}setParts(e){return this.parts=e,this}static from(e){return e?new nu(e.name).setSteps(new Map(Object.values(e.steps??{}).filter(e=>!!e).map(e=>[e.statementName,ni.from(e)]))).setStepGroups(new Map(Object.values(e.stepGroups??{}).filter(e=>!!e).map(e=>[e.statementGroupName,no.from(e)]))).setParts(Array.from(e.parts??[]).filter(e=>!!e).map(e=>nu.from(e))).setVersion(e.version??1).setEvents(new Map(Object.values(e.events??{}).filter(e=>!!e).map(e=>[e.name,D.from(e)]))).setParameters(new Map(Object.values(e.parameters??{}).filter(e=>!!e).map(e=>[e.parameterName,L.from(e)]))).setNamespace(e.namespace):new nu("unknown")}}t({},"Argument",()=>nA);class nA{constructor(e,t,r){this.argumentIndex=0,this.argumentIndex=e,this.name=t,this.value=r}getArgumentIndex(){return this.argumentIndex}setArgumentIndex(e){return this.argumentIndex=e,this}getName(){return this.name}setName(e){return this.name=e,this}getValue(){return this.value}setValue(e){return this.value=e,this}static of(e,t){return new nA(0,e,t)}}export{v as KIRunSchemaRepository,sQ as KIRunFunctionRepository,ew as PrimitiveUtil,b as MapUtil,V as MapEntry,T as isNullValue,H as LinkedList,eK as StringBuilder,Y as StringFormatter,W as StringUtil,J as Tuple2,q as Tuple3,K as Tuple4,eI as ArrayUtil,j as deepEqual,ex as duplicate,s0 as StatementExecution,sZ as StatementMessage,tT as ContextElement,s1 as ContextTokenValueExtractor,s2 as OutputMapTokenValueExtractor,s5 as ArgumentsTokenValueExtractor,s4 as GraphVertex,s7 as ExecutionGraph,nt as KIRuntime,ne as StatementMessageType,s8 as FunctionExecutionParameters,e1 as Expression,e2 as TokenValueExtractor,rm as LiteralTokenValueExtractor,e5 as ObjectValueSetterExtractor,rM as ExpressionEvaluator,e0 as Operation,eQ as ExpressionToken,ez as ExpressionEvaluationException,eZ as ExpressionTokenValue,ef as AbstractFunction,A as Namespaces,s9 as JsonExpression,w as AdditionalType,P as Schema,es as NumberValidator,et as BooleanValidator,er as NullValidator,ee as ArrayValidator,Z as AnyOfAllOfOneOfValidator,ei as StringValidator,en as ObjectValidator,ep as SchemaValidator,z as SchemaValidationException,I as SchemaReferenceException,em as TypeValidator,l as ArraySchemaType,g as SingleType,m as TypeUtil,h as MultipleType,R as Type,c as SchemaType,Q as SchemaUtil,ea as StringFormat,sK as HybridRepository,nr as KIRunConstants,L as Parameter,F as FunctionOutput,ns as Position,nu as FunctionDefinition,s6 as ParameterReferenceType,G as EventResult,nn as AbstractStatement,ni as Statement,no as StatementGroup,B as FunctionSignature,D as Event,y as ParameterType,nA as Argument,na as ParameterReference,ed as ExecutionException,$ as KIRuntimeException,ru as ArithmeticUnaryMinusOperator,rT as ArithmeticUnaryPlusOperator,rc as BitwiseComplementOperator,rh as LogicalNotOperator,rE as UnaryOperator,tM as ArithmeticAdditionOperator,tO as ArithmeticDivisionOperator,tw as ArithmeticIntegerDivisionOperator,tI as ArithmeticModulusOperator,tx as ArithmeticMultiplicationOperator,tU as ArithmeticSubtractionOperator,tV as ArrayOperator,t_ as BinaryOperator,tC as BitwiseAndOperator,tG as BitwiseLeftShiftOperator,tF as BitwiseOrOperator,tY as BitwiseRightShiftOperator,tk as BitwiseUnsignedRightShiftOperator,tW as BitwiseXorOperator,tJ as LogicalAndOperator,tK as LogicalEqualOperator,tQ as LogicalGreaterThanEqualOperator,t0 as LogicalGreaterThanOperator,t2 as LogicalLessThanEqualOperator,t7 as LogicalNotEqualOperator,t9 as LogicalLessThanOperator,t3 as LogicalOrOperator,re as ObjectOperator,rr as LogicalNullishCoalescingOperator,rn as ArrayRangeOperator,rN as ConditionalTernaryOperator};
|
|
1
|
+
import{DateTime as e}from"luxon";function t(e,t,r,s){Object.defineProperty(e,t,{get:r,set:s,enumerable:!0,configurable:!0})}function r(e,t){return Object.keys(t).forEach(function(r){"default"===r||"__esModule"===r||Object.prototype.hasOwnProperty.call(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[r]}})}),e}t({},"KIRunSchemaRepository",()=>v);var s,n,a,i,o,E,u={};t(u,"AdditionalType",()=>w),t(u,"Schema",()=>I),t({},"Namespaces",()=>A);class A{static{this.SYSTEM="System"}static{this.SYSTEM_CTX="System.Context"}static{this.SYSTEM_LOOP="System.Loop"}static{this.SYSTEM_ARRAY="System.Array"}static{this.SYSTEM_OBJECT="System.Object"}static{this.MATH="System.Math"}static{this.STRING="System.String"}static{this.DATE="System.Date"}constructor(){}}function T(e){return null==e}t({},"ArraySchemaType",()=>l),t({},"isNullValue",()=>T);class l{constructor(e){if(!e)return;this.singleSchema=e.singleSchema?new I(e.singleSchema):void 0,this.tupleSchema=e.tupleSchema?e.tupleSchema.map(e=>new I(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!T(this.singleSchema)}static of(...e){return 1==e.length?new l().setSingleSchema(e[0]):new l().setTupleSchema(e)}static from(e){if(!e)return;if(Array.isArray(e))return new l().setTupleSchema(I.fromListOfSchemas(e));let t=Object.keys(e);if(-1!=t.indexOf("singleSchema"))return new l().setSingleSchema(I.from(e.singleSchema));if(-1!=t.indexOf("tupleSchema"))return new l().setTupleSchema(I.fromListOfSchemas(e.tupleSchema));let r=I.from(e);if(r)return new l().setSingleSchema(r)}}t({},"SchemaType",()=>c);var c=((s={}).INTEGER="Integer",s.LONG="Long",s.FLOAT="Float",s.DOUBLE="Double",s.STRING="String",s.OBJECT="Object",s.ARRAY="Array",s.BOOLEAN="Boolean",s.NULL="Null",s);t({},"TypeUtil",()=>m),t({},"MultipleType",()=>R),t({},"Type",()=>h);class h{}class R extends h{constructor(e){super(),e instanceof R?this.type=new Set(Array.from(e.type)):this.type=new Set(Array.from(e))}getType(){return this.type}setType(e){return this.type=e,this}getAllowedSchemaTypes(){return this.type}contains(e){return this.type?.has(e)}}t({},"SingleType",()=>g);class g extends h{constructor(e){super(),e instanceof g?this.type=e.type:this.type=e}getType(){return this.type}getAllowedSchemaTypes(){return new Set([this.type])}contains(e){return this.type==e}}class m{static of(...e){return 1==e.length?new g(e[0]):new R(new Set(e))}static from(e){return"string"==typeof e?new g(c[m.fromJSONType(e)]):Array.isArray(e)?new R(new Set(e.map(m.fromJSONType).map(e=>e).map(e=>c[e]))):void 0}static fromJSONType(e){let t=e.toUpperCase();return"NUMBER"===t?"DOUBLE":t}}let p="additionalProperty",f="additionalItems",N="enums",_="items",M="System.Schema",S="required",O="version",d="namespace";class w{constructor(e){if(!e||(this.booleanValue=e.booleanValue,!e.schemaValue))return;this.schemaValue=new I(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(T(e))return;let t=new w;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=I.from(e.schemaValue):t.schemaValue=I.from(e)}return t}}class I{static{this.NULL=new I().setNamespace(A.SYSTEM).setName("Null").setType(m.of(c.NULL)).setConstant(void 0)}static{this.TYPE_SCHEMA=new I().setType(m.of(c.STRING)).setEnums(["INTEGER","LONG","FLOAT","DOUBLE","STRING","OBJECT","ARRAY","BOOLEAN","NULL"])}static{this.SCHEMA=new I().setNamespace(A.SYSTEM).setName("Schema").setType(m.of(c.OBJECT)).setProperties(new Map([[d,I.of(d,c.STRING).setDefaultValue("_")],["name",I.ofString("name")],[O,I.of(O,c.INTEGER).setDefaultValue(1)],["ref",I.ofString("ref")],["type",new I().setAnyOf([I.TYPE_SCHEMA,I.ofArray("type",I.TYPE_SCHEMA)])],["anyOf",I.ofArray("anyOf",I.ofRef(M))],["allOf",I.ofArray("allOf",I.ofRef(M))],["oneOf",I.ofArray("oneOf",I.ofRef(M))],["not",I.ofRef(M)],["title",I.ofString("title")],["description",I.ofString("description")],["id",I.ofString("id")],["examples",I.ofAny("examples")],["defaultValue",I.ofAny("defaultValue")],["comment",I.ofString("comment")],[N,I.ofArray(N,I.ofString(N))],["constant",I.ofAny("constant")],["pattern",I.ofString("pattern")],["format",I.of("format",c.STRING).setEnums(["DATETIME","TIME","DATE","EMAIL","REGEX"])],["minLength",I.ofInteger("minLength")],["maxLength",I.ofInteger("maxLength")],["multipleOf",I.ofLong("multipleOf")],["minimum",I.ofNumber("minimum")],["maximum",I.ofNumber("maximum")],["exclusiveMinimum",I.ofNumber("exclusiveMinimum")],["exclusiveMaximum",I.ofNumber("exclusiveMaximum")],["properties",I.of("properties",c.OBJECT).setAdditionalProperties(new w().setSchemaValue(I.ofRef(M)))],["additionalProperties",new I().setName(p).setNamespace(A.SYSTEM).setAnyOf([I.ofBoolean(p),I.ofObject(p).setRef(M)]).setDefaultValue(!0)],[S,I.ofArray(S,I.ofString(S)).setDefaultValue([])],["propertyNames",I.ofRef(M)],["minProperties",I.ofInteger("minProperties")],["maxProperties",I.ofInteger("maxProperties")],["patternProperties",I.of("patternProperties",c.OBJECT).setAdditionalProperties(new w().setSchemaValue(I.ofRef(M)))],[_,new I().setName(_).setAnyOf([I.ofRef(M).setName("item"),I.ofArray("tuple",I.ofRef(M))])],["contains",I.ofRef(M)],["minContains",I.ofInteger("minContains")],["maxContains",I.ofInteger("maxContains")],["minItems",I.ofInteger("minItems")],["maxItems",I.ofInteger("maxItems")],["uniqueItems",I.ofBoolean("uniqueItems")],["additionalItems",new I().setName(f).setNamespace(A.SYSTEM).setAnyOf([I.ofBoolean(f),I.ofObject(f).setRef(M)])],["$defs",I.of("$defs",c.OBJECT).setAdditionalProperties(new w().setSchemaValue(I.ofRef(M)))],["permission",I.ofString("permission")],["details",I.ofObject("details")]])).setRequired([])}static ofString(e){return new I().setType(m.of(c.STRING)).setName(e)}static ofInteger(e){return new I().setType(m.of(c.INTEGER)).setName(e)}static ofFloat(e){return new I().setType(m.of(c.FLOAT)).setName(e)}static ofLong(e){return new I().setType(m.of(c.LONG)).setName(e)}static ofDouble(e){return new I().setType(m.of(c.DOUBLE)).setName(e)}static ofAny(e){return new I().setType(m.of(c.INTEGER,c.LONG,c.FLOAT,c.DOUBLE,c.STRING,c.BOOLEAN,c.ARRAY,c.NULL,c.OBJECT)).setName(e)}static ofAnyNotNull(e){return new I().setType(m.of(c.INTEGER,c.LONG,c.FLOAT,c.DOUBLE,c.STRING,c.BOOLEAN,c.ARRAY,c.OBJECT)).setName(e)}static ofNumber(e){return new I().setType(m.of(c.INTEGER,c.LONG,c.FLOAT,c.DOUBLE)).setName(e)}static ofBoolean(e){return new I().setType(m.of(c.BOOLEAN)).setName(e)}static of(e,...t){return new I().setType(m.of(...t)).setName(e)}static ofObject(e){return new I().setType(m.of(c.OBJECT)).setName(e)}static ofRef(e){return new I().setRef(e)}static ofArray(e,...t){return new I().setType(m.of(c.ARRAY)).setName(e).setItems(l.of(...t))}static fromListOfSchemas(e){if(T(e)&&!Array.isArray(e))return;let t=[];for(let r of Array.from(e)){let e=I.from(r);e&&t.push(e)}return t}static fromMapOfSchemas(e){if(T(e))return;let t=new Map;return Object.entries(e).forEach(([e,r])=>{let s=I.from(r);s&&t.set(e,s)}),t}static from(e,t=!1){if(T(e))return;let r=new I;return r.namespace=e.namespace??"_",r.name=e.name,r.version=e.version??1,r.ref=e.ref,t?r.type=new g(c.STRING):r.type=m.from(e.type),r.anyOf=I.fromListOfSchemas(e.anyOf),r.allOf=I.fromListOfSchemas(e.allOf),r.oneOf=I.fromListOfSchemas(e.oneOf),r.not=I.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=I.fromMapOfSchemas(e.properties),r.additionalProperties=w.from(e.additionalProperties),r.required=e.required,r.propertyNames=I.from(e.propertyNames,!0),r.minProperties=e.minProperties,r.maxProperties=e.maxProperties,r.patternProperties=I.fromMapOfSchemas(e.patternProperties),r.items=l.from(e.items),r.additionalItems=w.from(e.additionalItems),r.contains=I.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=I.fromMapOfSchemas(e.$defs),r.permission=e.permission,r.details=e.details?new Map(Object.entries(e.details)):void 0,r}constructor(e){if(this.namespace="_",this.version=1,!e)return;this.namespace=e.namespace,this.name=e.name,this.version=e.version,this.ref=e.ref,T(e.type)||(this.type=e.type instanceof g?new g(e.type):new R(e.type)),this.anyOf=e.anyOf?.map(e=>new I(e)),this.allOf=e.allOf?.map(e=>new I(e)),this.oneOf=e.oneOf?.map(e=>new I(e)),this.not=this.not?new I(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 I(e[1])])):void 0,this.additionalProperties=e.additionalProperties?new w(e.additionalProperties):void 0,this.required=e.required?[...e.required]:void 0,this.propertyNames=e.propertyNames?new I(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 I(e[1])])):void 0,this.items=e.items?new l(e.items):void 0,this.contains=e.contains?new I(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 w(e.additionalItems):void 0,this.$defs=e.$defs?new Map(Array.from(e.$defs.entries()).map(e=>[e[0],new I(e[1])])):void 0,this.permission=e.permission,this.details=e.details?new Map(JSON.parse(JSON.stringify(Array.from(e.details.values())))):void 0}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 g(c.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}getDetails(){return this.details}setDetails(e){return this.details=e,this}}t({},"Parameter",()=>L),t({},"SchemaReferenceException",()=>P);class P 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}}t({},"ParameterType",()=>y);var y=((n={}).CONSTANT="CONSTANT",n.EXPRESSION="EXPRESSION",n);let x="value";class L{static{this.SCHEMA_NAME="Parameter"}static{this.SCHEMA=new I().setNamespace(A.SYSTEM).setName(L.SCHEMA_NAME).setProperties(new Map([["schema",I.SCHEMA],["parameterName",I.ofString("parameterName")],["variableArgument",I.of("variableArgument",c.BOOLEAN).setDefaultValue(!1)],["type",I.ofString("type").setEnums(["EXPRESSION","CONSTANT"])]]))}static{this.EXPRESSION=new I().setNamespace(A.SYSTEM).setName("ParameterExpression").setType(m.of(c.OBJECT)).setProperties(new Map([["isExpression",I.ofBoolean("isExpression").setDefaultValue(!0)],[x,I.ofAny(x)]]))}constructor(e,t){if(this.variableArgument=!1,this.type=y.EXPRESSION,e instanceof L)this.schema=new I(e.schema),this.parameterName=e.parameterName,this.variableArgument=e.variableArgument,this.type=e.type;else{if(!t)throw Error("Unknown constructor signature");this.schema=t,this.parameterName=e}}getSchema(){return this.schema}setSchema(e){return this.schema=e,this}getParameterName(){return this.parameterName}setParameterName(e){return this.parameterName=e,this}isVariableArgument(){return this.variableArgument}setVariableArgument(e){return this.variableArgument=e,this}getType(){return this.type}setType(e){return this.type=e,this}static ofEntry(e,t,r=!1,s=y.EXPRESSION){return[e,new L(e,t).setType(s).setVariableArgument(r)]}static of(e,t,r=!1,s=y.EXPRESSION){return new L(e,t).setType(s).setVariableArgument(r)}static from(e){let t=I.from(e.schema);if(!t)throw new P("","Parameter requires Schema");return new L(e.parameterName,t).setVariableArgument(!!e.variableArgument).setType(e.type??y.EXPRESSION)}}var U={};t(U,"MapUtil",()=>b),t(U,"MapEntry",()=>V);class b{static of(e,t,r,s,n,a,i,o,E,u,A,l,c,h,R,g,m,p,f,N){let _=new Map;return T(e)||T(t)||_.set(e,t),T(r)||T(s)||_.set(r,s),T(n)||T(a)||_.set(n,a),T(i)||T(o)||_.set(i,o),T(E)||T(u)||_.set(E,u),T(A)||T(l)||_.set(A,l),T(c)||T(h)||_.set(c,h),T(R)||T(g)||_.set(R,g),T(m)||T(p)||_.set(m,p),T(f)||T(N)||_.set(f,N),_}static ofArrayEntries(...e){let t=new Map;for(let[r,s]of e)t.set(r,s);return t}static entry(e,t){return new V(e,t)}static ofEntries(...e){let t=new Map;for(let r of e)t.set(r.k,r.v);return t}static ofEntriesArray(...e){let t=new Map;for(let r=0;r<e.length;r++)t.set(e[r][0],e[r][1]);return t}constructor(){}}class V{constructor(e,t){this.k=e,this.v=t}}class v{constructor(){this.map=new Map([["any",I.ofAny("any").setNamespace(A.SYSTEM)],["boolean",I.ofBoolean("boolean").setNamespace(A.SYSTEM)],["double",I.ofDouble("double").setNamespace(A.SYSTEM)],["float",I.ofFloat("float").setNamespace(A.SYSTEM)],["integer",I.ofInteger("integer").setNamespace(A.SYSTEM)],["long",I.ofLong("long").setNamespace(A.SYSTEM)],["number",I.ofNumber("number").setNamespace(A.SYSTEM)],["string",I.ofString("string").setNamespace(A.SYSTEM)],["Timestamp",I.ofString("Timestamp").setNamespace(A.DATE)],["Timeunit",I.ofString("Timeunit").setNamespace(A.DATE).setEnums(["YEARS","QUARTERS","MONTHS","WEEKS","DAYS","HOURS","MINUTES","SECONDS","MILLISECONDS"])],["Duration",I.ofObject("Duration").setNamespace(A.DATE).setProperties(b.ofArrayEntries(["years",I.ofNumber("years")],["quarters",I.ofNumber("quarters")],["months",I.ofNumber("months")],["weeks",I.ofNumber("weeks")],["days",I.ofNumber("days")],["hours",I.ofNumber("hours")],["minutes",I.ofNumber("minutes")],["seconds",I.ofNumber("seconds")],["milliseconds",I.ofNumber("milliseconds")])).setAdditionalItems(w.from(!1))],["TimeObject",I.ofObject("TimeObject").setNamespace(A.DATE).setProperties(b.ofArrayEntries(["year",I.ofNumber("year")],["month",I.ofNumber("month")],["day",I.ofNumber("day")],["hour",I.ofNumber("hour")],["minute",I.ofNumber("minute")],["second",I.ofNumber("second")],["millisecond",I.ofNumber("millisecond")])).setAdditionalItems(w.from(!1))],[L.EXPRESSION.getName(),L.EXPRESSION],[I.NULL.getName(),I.NULL],[I.SCHEMA.getName(),I.SCHEMA]]),this.filterableNames=Array.from(this.map.values()).map(e=>e.getFullName())}async find(e,t){return A.SYSTEM!=e&&A.DATE!=e?Promise.resolve(void 0):Promise.resolve(this.map.get(t))}async filter(e){return Promise.resolve(this.filterableNames.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}function C(e){return[e.getSignature().getName(),e]}t({},"KIRunFunctionRepository",()=>sZ),t({},"EventResult",()=>G),t({},"Event",()=>D);class D{static{this.OUTPUT="output"}static{this.ERROR="error"}static{this.ITERATION="iteration"}static{this.TRUE="true"}static{this.FALSE="false"}static{this.SCHEMA_NAME="Event"}static{this.SCHEMA=new I().setNamespace(A.SYSTEM).setName(D.SCHEMA_NAME).setType(m.of(c.OBJECT)).setProperties(new Map([["name",I.ofString("name")],["parameters",I.ofObject("parameter").setAdditionalProperties(new w().setSchemaValue(I.SCHEMA))]]))}constructor(e,t){if(e instanceof D)this.name=e.name,this.parameters=new Map(Array.from(e.parameters.entries()).map(e=>[e[0],new I(e[1])]));else{if(this.name=e,!t)throw Error("Unknown constructor format");this.parameters=t}}getName(){return this.name}setName(e){return this.name=e,this}getParameters(){return this.parameters}setParameters(e){return this.parameters=e,this}static outputEventMapEntry(e){return D.eventMapEntry(D.OUTPUT,e)}static eventMapEntry(e,t){return[e,new D(e,t)]}static from(e){return new D(e.name,new Map(Object.entries(e.parameters??{}).map(e=>{let t=I.from(e[1]);if(!t)throw new P("","Event expects a schema");return[e[0],t]})))}}class G{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 G.of(D.OUTPUT,e)}static of(e,t){return new G(e,t)}}t({},"FunctionOutput",()=>F),t({},"KIRuntimeException",()=>$);class $ extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class F{constructor(e){if(this.index=0,T(e))throw new $("Function output is generating null");Array.isArray(e)&&e.length&&e[0]instanceof G?this.fo=e:(this.fo=[],Array.isArray(e)||(this.generator=e))}next(){if(!this.generator)return this.index<this.fo.length?this.fo[this.index++]:void 0;let e=this.generator.next();return e&&this.fo.push(e),e}allResults(){return this.fo}}t({},"FunctionSignature",()=>B);class B{static{this.SCHEMA_NAME="FunctionSignature"}static{this.SCHEMA=new I().setNamespace(A.SYSTEM).setName(B.SCHEMA_NAME).setProperties(new Map([["name",I.ofString("name")],["namespace",I.ofString("namespace")],["parameters",I.ofObject("parameters").setAdditionalProperties(new w().setSchemaValue(L.SCHEMA))],["events",I.ofObject("events").setAdditionalProperties(new w().setSchemaValue(D.SCHEMA))]]))}constructor(e){this.namespace="_",this.parameters=new Map,this.events=new Map,e instanceof B?(this.name=e.name,this.namespace=e.namespace,this.parameters=new Map(Array.from(e.parameters.entries()).map(e=>[e[0],new L(e[1])])),this.events=new Map(Array.from(e.events.entries()).map(e=>[e[0],new D(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}}t({},"AbstractFunction",()=>ef),t({},"SchemaValidator",()=>ep),t({},"deepEqual",()=>j),t({},"LinkedList",()=>H),t({},"StringFormatter",()=>Y);class Y{static format(e,...t){if(!t||0==t.length)return e;let r="",s=0,n="",a=n,i=e.length;for(let o=0;o<i;o++)"$"==(n=e.charAt(o))&&"\\"==a?r=r.substring(0,o-1)+n:"$"==n&&s<t.length?r+=t[s++]:r+=n,a=n;return r.toString()}constructor(){}}class H{constructor(e){if(this.head=void 0,this.tail=void 0,this.length=0,e?.length){for(let t of e)if(this.head){let e=new k(t,this.tail);this.tail.next=e,this.tail=e}else this.tail=this.head=new k(t);this.length=e.length}}push(e){let t=new k(e,void 0,this.head);this.head?(this.head.previous=t,this.head=t):this.tail=this.head=t,this.length++}pop(){if(!this.head)throw Error("List is empty and cannot pop further.");let e=this.head.value;if(this.length--,this.head==this.tail)return this.head=this.tail=void 0,e;let t=this.head;return this.head=t.next,t.next=void 0,t.previous=void 0,this.head.previous=void 0,e}isEmpty(){return!this.length}size(){return this.length}get(e){if(e<0||e>=this.length)throw Error(`${e} is out of bounds [0,${this.length}]`);let t=this.head;for(;e>0;)t=this.head.next,--e;return t.value}set(e,t){if(e<0||e>=this.length)throw new $(Y.format("Index $ out of bound to set the value in linked list.",e));let r=this.head;for(;e>0;)r=this.head.next,--e;return r.value=t,this}toString(){let e=this.head,t="";for(;e;)t+=e.value,(e=e.next)&&(t+=", ");return`[${t}]`}toArray(){let e=[],t=this.head;for(;t;)e.push(t.value),t=t.next;return e}peek(){if(!this.head)throw Error("List is empty so cannot peak");return this.head.value}peekLast(){if(!this.tail)throw Error("List is empty so cannot peak");return this.tail.value}getFirst(){if(!this.head)throw Error("List is empty so cannot get first");return this.head.value}removeFirst(){return this.pop()}removeLast(){if(!this.tail)throw Error("List is empty so cannot remove");--this.length;let e=this.tail.value;if(0==this.length)this.head=this.tail=void 0;else{let e=this.tail.previous;e.next=void 0,this.tail.previous=void 0,this.tail=e}return e}addAll(e){return e&&e.length&&e.forEach(this.add.bind(this)),this}add(e){return++this.length,this.tail||this.head?this.head===this.tail?(this.tail=new k(e,this.head),this.head.next=this.tail):(this.tail=new k(e,this.tail),this.tail.previous.next=this.tail):this.head=this.tail=new k(e),this}map(e,t){let r=new H,s=this.head,n=0;for(;s;)r.add(e(s.value,n)),s=s.next,++n;return r}indexOf(e){let t=this.head,r=0;for(;t;){if(j(t.value,e))return r;t=t.next,++r}return -1}forEach(e,t){let r=this.head,s=0;for(;r;)e(r.value,s),r=r.next,++s}}class k{constructor(e,t,r){this.value=e,this.next=r,this.previous=t}toString(){return""+this.value}}function j(e,t){let r=new H;r.push(e);let s=new H;for(s.push(t);!r.isEmpty()&&!s.isEmpty();){let e=r.pop(),t=s.pop();if(e===t)continue;let n=typeof e,a=typeof t;if("undefined"===n||"undefined"===a){if(!e&&!t)continue;return!1}if(n!==a)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!=t.length)return!1;for(let n=0;n<e.length;n++)r.push(e[n]),s.push(t[n]);continue}if("object"===n){if("object"!==a||null===e||null===t)return!1;let n=Object.entries(e),i=Object.entries(t);if(n.length!==i.length)return!1;for(let[e,a]of n)r.push(a),s.push(t[e]);continue}return!1}return!0}t({},"StringUtil",()=>W);class W{constructor(){}static nthIndex(e,t,r=0,s){if(!e)throw new $("String cannot be null");if(r<0||r>=e.length)throw new $(Y.format("Cannot search from index : $",r));if(s<=0||s>e.length)throw new $(Y.format("Cannot search for occurance : $",s));for(;r<e.length;){if(e.charAt(r)==t&&0==--s)return r;++r}return -1}static splitAtFirstOccurance(e,t){if(!e)return[void 0,void 0];let r=e.indexOf(t);return -1==r?[e,void 0]:[e.substring(0,r),e.substring(r+1)]}static splitAtLastOccurance(e,t){if(!e)return[void 0,void 0];let r=e.lastIndexOf(t);return -1==r?[e,void 0]:[e.substring(0,r),e.substring(r+1)]}static isNullOrBlank(e){return!e||""==e.trim()}}t({},"SchemaUtil",()=>Q);var X={};t(X,"Tuple2",()=>J),t(X,"Tuple3",()=>q),t(X,"Tuple4",()=>K);class J{constructor(e,t){this.f=e,this.s=t}getT1(){return this.f}getT2(){return this.s}setT1(e){return this.f=e,this}setT2(e){return this.s=e,this}}class q extends J{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 K extends q{constructor(e,t,r,s){super(e,t,r),this.fr=s}getT4(){return this.fr}setT1(e){return this.f=e,this}setT2(e){return this.s=e,this}setT3(e){return this.t=e,this}setT4(e){return this.fr=e,this}}t({},"SchemaValidationException",()=>z);class z extends Error{constructor(e,t,r=[],s){super(t+(r?r.map(e=>e.message).reduce((e,t)=>e+"\n"+t,""):"")),this.schemaPath=e,this.cause=s}getSchemaPath(){return this.schemaPath}getCause(){return this.cause}}class Q{static{this.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH="Unable to retrive schema from referenced path"}static{this.CYCLIC_REFERENCE_LIMIT_COUNTER=20}static async getDefaultValue(e,t){if(e)return e.getConstant()?e.getConstant():T(e.getDefaultValue())?Q.getDefaultValue(await Q.getSchemaFromRef(e,t,e.getRef()),t):e.getDefaultValue()}static async hasDefaultValueOrNullSchemaType(e,t){return e?e.getConstant()||!T(e.getDefaultValue())?Promise.resolve(!0):T(e.getRef())?e.getType()?.getAllowedSchemaTypes().has(c.NULL)?Promise.resolve(!0):Promise.resolve(!1):this.hasDefaultValueOrNullSchemaType(await Q.getSchemaFromRef(e,t,e.getRef()),t):Promise.resolve(!1)}static async getSchemaFromRef(e,t,r,s=0){if(++s==Q.CYCLIC_REFERENCE_LIMIT_COUNTER)throw new z(r??"","Schema has a cyclic reference");if(!e||!r||W.isNullOrBlank(r))return Promise.resolve(void 0);if(!r.startsWith("#")){var n=await Q.resolveExternalSchema(e,t,r);n&&(e=n.getT1(),r=n.getT2())}let a=r.split("/");return 1===a.length?Promise.resolve(e):Promise.resolve(Q.resolveInternalSchema(e,t,r,s,a,1))}static async resolveInternalSchema(e,t,r,s,n,a){let i=e;if(a!==n.length){for(;a<n.length;){if("$defs"===n[a]){if(++a>=n.length||!i.get$defs())throw new P(r,Q.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);i=i.get$defs()?.get(n[a])}else{if(i&&(!i.getType()?.contains(c.OBJECT)||!i.getProperties()))throw new P(r,"Cannot retrievie schema from non Object type schemas");i=i.getProperties()?.get(n[a])}if(a++,!i||!W.isNullOrBlank(i.getRef())&&!(i=await Q.getSchemaFromRef(i,t,i.getRef(),s)))throw new P(r,Q.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH)}return Promise.resolve(i)}}static async resolveExternalSchema(e,t,r){if(!t)return Promise.resolve(void 0);let s=W.splitAtFirstOccurance(r??"","/");if(!s[0])return Promise.resolve(void 0);let n=W.splitAtLastOccurance(s[0],".");if(!n[0]||!n[1])return Promise.resolve(void 0);let a=await t.find(n[0],n[1]);if(!a)return Promise.resolve(void 0);if(!s[1]||""===s[1])return Promise.resolve(new J(a,r));if(r="#/"+s[1],!a)throw new P(r,Q.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);return Promise.resolve(new J(a,r))}constructor(){}}t({},"AnyOfAllOfOneOfValidator",()=>Z);class Z{static async validate(e,t,r,s,n,a){let i=[];return t.getOneOf()&&!t.getOneOf()?await Z.oneOf(e,t,r,s,i,n,a):t.getAllOf()&&!t.getAllOf()?await Z.allOf(e,t,r,s,i,n,a):t.getAnyOf()&&!t.getAnyOf()?await Z.anyOf(e,t,r,s,i,n,a):s}static async anyOf(e,t,r,s,n,a,i){let o=!1;for(let E of t.getAnyOf()??[])try{await Z.validate(e,E,r,s,a,i),o=!0;break}catch(e){o=!1,n.push(e)}if(o)return s;throw new z(ep.path(e),"The value don't satisfy any of the schemas.",n)}static async allOf(e,t,r,s,n,a,i){let o=0;for(let E of t.getAllOf()??[])try{await Z.validate(e,E,r,s,a,i),o++}catch(e){n.push(e)}if(o===t.getAllOf()?.length)return s;throw new z(ep.path(e),"The value doesn't satisfy some of the schemas.",n)}static async oneOf(e,t,r,s,n,a,i){let o=0;for(let E of t.getOneOf()??[])try{await Z.validate(e,E,r,s,a,i),o++}catch(e){n.push(e)}if(1===o)return s;throw new z(ep.path(e),0==o?"The value does not satisfy any schema":"The value satisfy more than one schema",n)}constructor(){}}t({},"TypeValidator",()=>em),t({},"ArrayValidator",()=>ee);class ee{static async validate(e,t,r,s,n,a){if(T(s))throw new z(ep.path(e),"Expected an array but found null");if(!Array.isArray(s))throw new z(ep.path(e),s.toString()+" is not an Array");return ee.checkMinMaxItems(e,t,s),await ee.checkItems(e,t,r,s,n,a),ee.checkUniqueItems(e,t,s),await ee.checkContains(t,e,r,s),s}static async checkContains(e,t,r,s){if(T(e.getContains()))return;let n=await ee.countContains(t,e,r,s,T(e.getMinContains())&&T(e.getMaxContains()));if(0===n)throw new z(ep.path(t),"None of the items are of type contains schema");if(!T(e.getMinContains())&&e.getMinContains()>n)throw new z(ep.path(t),"The minimum number of the items of type contains schema should be "+e.getMinContains()+" but found "+n);if(!T(e.getMaxContains())&&e.getMaxContains()<n)throw new z(ep.path(t),"The maximum number of the items of type contains schema should be "+e.getMaxContains()+" but found "+n)}static async countContains(e,t,r,s,n){let a=0;for(let i=0;i<s.length;i++){let o=e?[...e]:[];try{if(await ep.validate(o,t.getContains(),r,s[i]),a++,n)break}catch(e){}}return a}static checkUniqueItems(e,t,r){if(t.getUniqueItems()&&t.getUniqueItems()&&new Set(r).size!==r.length)throw new z(ep.path(e),"Items on the array are not unique")}static checkMinMaxItems(e,t,r){if(t.getMinItems()&&t.getMinItems()>r.length)throw new z(ep.path(e),"Array should have minimum of "+t.getMinItems()+" elements");if(t.getMaxItems()&&t.getMaxItems()<r.length)throw new z(ep.path(e),"Array can have maximum of "+t.getMaxItems()+" elements")}static async checkItems(e,t,r,s,n,a){if(!t.getItems())return;let i=t.getItems();if(i.getSingleSchema())for(let t=0;t<s.length;t++){let o=e?[...e]:[];s[t]=await ep.validate(o,i.getSingleSchema(),r,s[t],n,a)}if(i.getTupleSchema()){if(i.getTupleSchema().length!==s.length&&T(t?.getAdditionalItems()))throw new z(ep.path(e),"Expected an array with only "+i.getTupleSchema().length+" but found "+s.length);await this.checkItemsInTupleSchema(e,r,s,i),await this.checkAdditionalItems(e,t,r,s,i)}}static async checkItemsInTupleSchema(e,t,r,s,n,a){for(let i=0;i<s.getTupleSchema()?.length;i++){let o=e?[...e]:[];r[i]=await ep.validate(o,s.getTupleSchema()[i],t,r[i],n,a)}}static async checkAdditionalItems(e,t,r,s,n){if(!T(t.getAdditionalItems())){let a=t.getAdditionalItems();if(a?.getBooleanValue()){let i=I.ofAny("item");if(a?.getBooleanValue()===!1&&s.length>n.getTupleSchema()?.length)throw new z(ep.path(e),"No Additional Items are defined");await this.checkEachItemInAdditionalItems(e,t,r,s,n,i)}else if(a?.getSchemaValue()){let i=a.getSchemaValue();await this.checkEachItemInAdditionalItems(e,t,r,s,n,i)}}}static async checkEachItemInAdditionalItems(e,t,r,s,n,a){for(let t=n.getTupleSchema()?.length;t<s.length;t++){let n=e?[...e]:[];s[t]=await ep.validate(n,a,r,s[t])}}constructor(){}}t({},"BooleanValidator",()=>et);class et{static validate(e,t,r){if(T(r))throw new z(ep.path(e),"Expected a boolean but found null");if("boolean"!=typeof r)throw new z(ep.path(e),r.toString()+" is not a boolean");return r}constructor(){}}t({},"NullValidator",()=>er);class er{static validate(e,t,r){if(T(r))return r;throw new z(ep.path(e),"Expected a null but found "+r)}constructor(){}}t({},"NumberValidator",()=>es);class es{static validate(e,t,r,s){if(T(s))throw new z(ep.path(t),"Expected a number but found null");if("number"!=typeof s)throw new z(ep.path(t),s.toString()+" is not a "+e);let n=es.extractNumber(e,t,r,s);return es.checkRange(t,r,s,n),es.checkMultipleOf(t,r,s,n),s}static extractNumber(e,t,r,s){let n=s;try{(e==c.LONG||e==c.INTEGER)&&(n=Math.round(n))}catch(r){throw new z(ep.path(t),s+" is not a number of type "+e,r)}if(T(n)||(e==c.LONG||e==c.INTEGER)&&n!=s)throw new z(ep.path(t),s.toString()+" is not a number of type "+e);return n}static checkMultipleOf(e,t,r,s){if(t.getMultipleOf()&&s%t.getMultipleOf()!=0)throw new z(ep.path(e),r.toString()+" is not multiple of "+t.getMultipleOf())}static checkRange(e,t,r,s){if(!T(t.getMinimum())&&0>es.numberCompare(s,t.getMinimum()))throw new z(ep.path(e),r.toString()+" should be greater than or equal to "+t.getMinimum());if(!T(t.getMaximum())&&es.numberCompare(s,t.getMaximum())>0)throw new z(ep.path(e),r.toString()+" should be less than or equal to "+t.getMaximum());if(!T(t.getExclusiveMinimum())&&0>=es.numberCompare(s,t.getExclusiveMinimum()))throw new z(ep.path(e),r.toString()+" should be greater than "+t.getExclusiveMinimum());if(!T(t.getExclusiveMaximum())&&es.numberCompare(s,t.getExclusiveMaximum())>0)throw new z(ep.path(e),r.toString()+" should be less than "+t.getExclusiveMaximum())}static numberCompare(e,t){return e-t}constructor(){}}t({},"ObjectValidator",()=>en);class en{static async validate(e,t,r,s,n,a){if(T(s))throw new z(ep.path(e),"Expected an object but found null");if("object"!=typeof s||Array.isArray(s))throw new z(ep.path(e),s.toString()+" is not an Object");let i=new Set(Object.keys(s));return en.checkMinMaxProperties(e,t,i),t.getPropertyNames()&&await en.checkPropertyNameSchema(e,t,r,i),t.getRequired()&&en.checkRequired(e,t,s),t.getProperties()&&await en.checkProperties(e,t,r,s,i,n,a),t.getPatternProperties()&&await en.checkPatternProperties(e,t,r,s,i),t.getAdditionalProperties()&&await en.checkAdditionalProperties(e,t,r,s,i),s}static async checkPropertyNameSchema(e,t,r,s){for(let n of Array.from(s.values()))try{await ep.validate(e,t.getPropertyNames(),r,n)}catch(t){throw new z(ep.path(e),"Property name '"+n+"' does not fit the property schema")}}static checkRequired(e,t,r){for(let s of t.getRequired()??[])if(T(r[s]))throw new z(ep.path(e),s+" is mandatory")}static async checkAdditionalProperties(e,t,r,s,n){let a=t.getAdditionalProperties();if(a.getSchemaValue())for(let t of Array.from(n.values())){let n=e?[...e]:[];s[t]=await ep.validate(n,a.getSchemaValue(),r,s[t])}else if(!1===a.getBooleanValue()&&n.size)throw new z(ep.path(e),Array.from(n)+" is/are additional properties which are not allowed.")}static async checkPatternProperties(e,t,r,s,n){let a=new Map;for(let e of Array.from(t.getPatternProperties().keys()))a.set(e,new RegExp(e));for(let i of Array.from(n.values())){let o=e?[...e]:[];for(let e of Array.from(a.entries()))if(e[1].test(i)){s[i]=await ep.validate(o,t.getPatternProperties().get(e[0]),r,s[i]),n.delete(i);break}}}static async checkProperties(e,t,r,s,n,a,i){for(let o of Array.from(t.getProperties())){let t=s[o[0]];if(!s.hasOwnProperty(o[0])&&T(t)&&T(await Q.getDefaultValue(o[1],r)))continue;let E=e?[...e]:[];s[o[0]]=await ep.validate(E,o[1],r,t,a,i),n.delete(o[0])}}static checkMinMaxProperties(e,t,r){if(t.getMinProperties()&&r.size<t.getMinProperties())throw new z(ep.path(e),"Object should have minimum of "+t.getMinProperties()+" properties");if(t.getMaxProperties()&&r.size>t.getMaxProperties())throw new z(ep.path(e),"Object can have maximum of "+t.getMaxProperties()+" properties")}constructor(){}}t({},"StringValidator",()=>ei),t({},"StringFormat",()=>ea);var ea=((a={}).DATETIME="DATETIME",a.TIME="TIME",a.DATE="DATE",a.EMAIL="EMAIL",a.REGEX="REGEX",a);class ei{static{this.TIME=/^([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?([+-][01][0-9]:[0-5][0-9])?$/}static{this.DATE=/^[0-9]{4,4}-([0][0-9]|[1][0-2])-(0[1-9]|[1-2][1-9]|3[01])$/}static{this.DATETIME=/^[0-9]{4,4}-([0][0-9]|[1][0-2])-(0[1-9]|[1-2][1-9]|3[01])T([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?([+-][01][0-9]:[0-5][0-9])?$/}static{this.EMAIL=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/}static validate(e,t,r){if(T(r))throw new z(ep.path(e),"Expected a string but found "+r);if("string"!=typeof r)throw new z(ep.path(e),r.toString()+" is not String");t.getFormat()==ea.TIME?ei.patternMatcher(e,t,r,ei.TIME,"time pattern"):t.getFormat()==ea.DATE?ei.patternMatcher(e,t,r,ei.DATE,"date pattern"):t.getFormat()==ea.DATETIME?ei.patternMatcher(e,t,r,ei.DATETIME,"date time pattern"):t.getFormat()==ea.EMAIL?ei.patternMatcher(e,t,r,ei.EMAIL,"email pattern"):t.getPattern()&&ei.patternMatcher(e,t,r,new RegExp(t.getPattern()),"pattern "+t.getPattern());let s=r.length;if(t.getMinLength()&&s<t.getMinLength())throw new z(ep.path(e),"Expected a minimum of "+t.getMinLength()+" characters");if(t.getMaxLength()&&s>t.getMaxLength())throw new z(ep.path(e),"Expected a maximum of "+t.getMaxLength()+" characters");return r}static patternMatcher(e,t,r,s,n){if(!s.test(r))throw new z(ep.path(e),r.toString()+" is not matched with the "+n)}constructor(){}}var eo=((i={}).STRICT="STRICT",i.LENIENT="LENIENT",i.USE_DEFAULT="USE_DEFAULT",i.SKIP="SKIP",i);let eE=e=>eo[e.toUpperCase()],eu=()=>Object.values(eo);class eA extends Error{constructor(e,t,r,s,n=[],a){super(r+(n?n.map(e=>e.message).reduce((e,t)=>e+"\n"+t,""):"")),this.schemaPath=e,this.source=t??null,this.mode=s??null,this.cause=a}getSchemaPath(){return this.schemaPath}getSource(){return this.source??null}getMode(){return this.mode??null}getCause(){return this.cause}}class eT{static handleUnConvertibleValue(e,t,r,s){return this.handleUnConvertibleValueWithDefault(e,t,r,null,s)}static handleUnConvertibleValueWithDefault(e,t,r,s,n){switch(null===t&&(t=eo.STRICT),t){case eo.STRICT:throw new eA(ep.path(e),r,n,t);case eo.LENIENT:return null;case eo.USE_DEFAULT:return s;case eo.SKIP:return r;default:throw new eA(ep.path(e),r,"Invalid conversion mode")}}constructor(){}}class el{static convert(e,t,r,s){if(T(s))return eT.handleUnConvertibleValueWithDefault(e,r,s,this.getDefault(t),"Expected a string but found null");let n=s??("object"==typeof s?JSON.stringify(s):String(s));return this.getConvertedString(n,r)}static getConvertedString(e,t){return t===eo.STRICT?e.toString():e.trim()}static getDefault(e){return e.getDefaultValue()??null}constructor(){}}class ec{static convert(e,t,r,s,n){if(T(n))return eT.handleUnConvertibleValueWithDefault(e,s,n,this.getDefault(r),"Expected a number but found null");if("object"==typeof n||"boolean"==typeof n||Array.isArray(n)||"string"==typeof n&&isNaN(n=Number(n)))return eT.handleUnConvertibleValueWithDefault(e,s,n,this.getDefault(r),n+" is not a "+t);let a=this.extractNumber(t,n,s);return null===a?eT.handleUnConvertibleValueWithDefault(e,s,n,this.getDefault(r),n+" is not a "+t):a}static extractNumber(e,t,r){if("number"!=typeof t)return null;switch(e){case c.INTEGER:return this.isInteger(t,r)?Math.floor(t):null;case c.LONG:return this.isLong(t,r)?Math.floor(t):null;case c.DOUBLE:return t;case c.FLOAT:return this.isFloat(t,r)?t:null;default:return null}}static isInteger(e,t){return t!==eo.STRICT?"number"==typeof e:Number.isInteger(e)}static isLong(e,t){return t!==eo.STRICT?"number"==typeof e:Number.isInteger(e)&&e>=Number.MIN_SAFE_INTEGER&&e<=Number.MAX_SAFE_INTEGER}static isFloat(e,t){return t!==eo.STRICT?"number"==typeof e:e>=-Number.MAX_VALUE&&e<=Number.MAX_VALUE}static getDefault(e){return"number"==typeof e.getDefaultValue()?Number(e.getDefaultValue):null}}class eh{static{this.BOOLEAN_MAP={true:!0,t:!0,yes:!0,y:!0,1:!0,false:!1,f:!1,no:!1,n:!1,0:!1}}static convert(e,t,r,s){return null==s?eT.handleUnConvertibleValueWithDefault(e,r,s,this.getDefault(t),"Expected a boolean but found null"):this.getBooleanPrimitive(s)??eT.handleUnConvertibleValueWithDefault(e,r,s,this.getDefault(t),"Unable to convert to boolean")}static getBooleanPrimitive(e){return"boolean"==typeof e?e:"string"==typeof e?this.handleStringValue(e):"number"==typeof e?this.handleNumberValue(e):null}static handleStringValue(e){let t=e.toLowerCase().trim();return eh.BOOLEAN_MAP[t]??null}static handleNumberValue(e){return 0===e||1===e?1===e:null}static getDefault(e){return e.getDefaultValue()??!1}constructor(){}}class eR{static convert(e,t,r,s){return T(s)?s:"string"==typeof s&&"null"===s.toLowerCase()?null:eT.handleUnConvertibleValueWithDefault(e,r,s,null,"Unable to convert to null")}constructor(){}}class eg{static handleValidationError(e,t,r,s,n){switch(t=t??eo.STRICT){case eo.STRICT:throw new z(ep.path(e),n);case eo.LENIENT:return null;case eo.USE_DEFAULT:return s;case eo.SKIP:return r}}constructor(){}}class em{static async validate(e,t,r,s,n,a,i){return t==c.OBJECT?await en.validate(e,r,s,n,a,i):t==c.ARRAY?await ee.validate(e,r,s,n,a,i):this.handleTypeValidationAndConversion(e,t,r,n,a,i)}static async handleTypeValidationAndConversion(e,t,r,s,n,a){let i=n?this.convertElement(e,t,r,s,a??eo.STRICT):s;return await this.validateElement(e,t,r,i,a??eo.STRICT)}static convertElement(e,t,r,s,n){if(T(t))return eT.handleUnConvertibleValueWithDefault(e,n,s,r.getDefaultValue()??null,Y.format("$ is not a valid type for conversion.",t));switch(t){case c.STRING:return el.convert(e,r,n,s);case c.INTEGER:case c.LONG:case c.DOUBLE:case c.FLOAT:return ec.convert(e,t,r,n,s);case c.BOOLEAN:return eh.convert(e,r,n,s);case c.NULL:return eR.convert(e,r,n,s);default:return eT.handleUnConvertibleValueWithDefault(e,n,s,r.getDefaultValue()??null,Y.format("$ is not a valid type for conversion.",t))}}static validateElement(e,t,r,s,n){if(T(t))return eg.handleValidationError(e,n,s,r.getDefaultValue()??null,Y.format("$ is not a valid type.",t));switch(t){case c.STRING:return ei.validate(e,r,s);case c.INTEGER:case c.LONG:case c.DOUBLE:case c.FLOAT:return es.validate(t,e,r,s);case c.BOOLEAN:return et.validate(e,r,s);case c.NULL:return er.validate(e,r,s);default:return eg.handleValidationError(e,n,s,r.getDefaultValue()??null,Y.format("$ is not a valid type.",t))}}constructor(){}}class ep{static{this.ORDER={[c.OBJECT]:0,[c.ARRAY]:1,[c.DOUBLE]:2,[c.FLOAT]:3,[c.LONG]:4,[c.INTEGER]:5,[c.STRING]:6,[c.BOOLEAN]:7,[c.NULL]:8}}static path(e){return e?e.map(e=>e.getTitle()??"").filter(e=>!!e).reduce((e,t,r)=>e+(0===r?"":".")+t,""):""}static async validate(e,t,r,s,n,a){if(!t)throw new z(ep.path(e),"No schema found to validate");if(e||(e=[]),e.push(t),T(s)&&!T(t.getDefaultValue()))return JSON.parse(JSON.stringify(t.getDefaultValue()));if(!T(t.getConstant()))return ep.constantValidation(e,t,s);if(t.getEnums()?.length)return ep.enumCheck(e,t,s);if(t.getFormat()&&T(t.getType()))throw new z(this.path(e),"Type is missing in schema for declared "+t.getFormat()?.toString()+" format.");if(!0===n&&T(t.getType()))throw new z(this.path(e),"Type is missing in schema for declared "+a);if(t.getType()&&(s=await ep.typeValidation(e,t,r,s,n,a)),!W.isNullOrBlank(t.getRef()))return await ep.validate(e,await Q.getSchemaFromRef(e[0],r,t.getRef()),r,s,n,a);if((t.getOneOf()||t.getAllOf()||t.getAnyOf())&&(s=await Z.validate(e,t,r,s,n,a)),t.getNot()){let i;try{await ep.validate(e,t.getNot(),r,s,n,a),i=!0}catch(e){i=!1}if(i)throw new z(ep.path(e),"Schema validated value in not condition.")}return s}static constantValidation(e,t,r){if(!j(t.getConstant(),r))throw new z(ep.path(e),"Expecting a constant value : "+r);return r}static enumCheck(e,t,r){let s=!1;for(let e of t.getEnums()??[])if(e===r){s=!0;break}if(s)return r;throw new z(ep.path(e),"Value is not one of "+t.getEnums())}static async typeValidation(e,t,r,s,n,a){let i=Array.from(t.getType()?.getAllowedSchemaTypes()?.values()??[]).sort((e,t)=>(this.ORDER[e]??1/0)-(this.ORDER[t]??1/0)),o=[];for(let E of i)try{return await em.validate(e,E,t,r,s,n,a)}catch(e){o.push(e)}throw new z(ep.path(e),"Value "+JSON.stringify(s)+" is not of valid type(s)",o)}constructor(){}}class ef{async validateArguments(e,t,r){let s=new Map;for(let n of Array.from(this.getSignature().getParameters().entries())){let a=n[1];try{let r=await this.validateArgument(e,t,n,a);s.set(r.getT1(),r.getT2())}catch(t){let e=this.getSignature();throw new $(`Error while executing the function ${e.getNamespace()}.${e.getName()}'s parameter ${a.getParameterName()} with step name '${r?.getStatement().getStatementName()??"Unknown Step"}' with error : ${t?.message}`)}}return s}async validateArgument(e,t,r,s){let n,a=r[0],i=e.get(r[0]);if(T(i)&&!s.isVariableArgument())return new J(a,await ep.validate(void 0,s.getSchema(),t,void 0));if(!s?.isVariableArgument())return new J(a,await ep.validate(void 0,s.getSchema(),t,i));Array.isArray(i)?n=i:(n=[],T(i)?T(s.getSchema().getDefaultValue())||n.push(s.getSchema().getDefaultValue()):n.push(i));for(let e=0;e<n.length;e++)n[e]=await ep.validate(void 0,s.getSchema(),t,n[e]);return new J(a,n)}async execute(e){let t=await this.validateArguments(e.getArguments()??new Map,e.getSchemaRepository(),e.getStatementExecution());e.setArguments(t);try{return await this.internalExecute(e)}catch(r){let t=this.getSignature();throw new $(`Error while executing the function ${t.getNamespace()}.${t.getName()} with step name '${e.getStatementExecution()?.getStatement().getStatementName()??"Unknown Step"}' with error : ${r?.message}`)}}getProbableEventSignature(e){return this.getSignature().getEvents()}}class eN extends ef{static{this.EVENT_INDEX_NAME="index"}static{this.EVENT_RESULT_NAME="result"}static{this.EVENT_INDEX=new D(D.OUTPUT,b.of(eN.EVENT_INDEX_NAME,I.ofInteger(eN.EVENT_INDEX_NAME)))}static{this.EVENT_RESULT_INTEGER=new D(D.OUTPUT,b.of(eN.EVENT_RESULT_NAME,I.ofInteger(eN.EVENT_RESULT_NAME)))}static{this.EVENT_RESULT_BOOLEAN=new D(D.OUTPUT,b.of(eN.EVENT_RESULT_NAME,I.ofBoolean(eN.EVENT_RESULT_NAME)))}static{this.EVENT_RESULT_ARRAY=new D(D.OUTPUT,b.of(eN.EVENT_RESULT_NAME,I.ofArray(eN.EVENT_RESULT_NAME,I.ofAny(eN.EVENT_RESULT_NAME))))}static{this.EVENT_RESULT_EMPTY=new D(D.OUTPUT,b.of())}static{this.EVENT_RESULT_ANY=new D(D.OUTPUT,b.of(this.EVENT_RESULT_NAME,I.ofAny(this.EVENT_RESULT_NAME)))}static{this.EVENT_RESULT_OBJECT=new D(D.OUTPUT,b.of(this.EVENT_RESULT_NAME,I.ofObject(this.EVENT_RESULT_NAME)))}static{this.PARAMETER_INT_LENGTH=L.of("length",I.ofInteger("length").setDefaultValue(-1))}static{this.PARAMETER_ARRAY_FIND=L.of("find",I.ofArray("eachFind",I.ofAny("eachFind")))}static{this.PARAMETER_INT_SOURCE_FROM=L.of("srcFrom",I.ofInteger("srcFrom").setDefaultValue(0).setMinimum(0))}static{this.PARAMETER_INT_SECOND_SOURCE_FROM=L.of("secondSrcFrom",I.ofInteger("secondSrcFrom").setDefaultValue(0))}static{this.PARAMETER_INT_FIND_FROM=L.of("findFrom",I.ofInteger("findFrom").setDefaultValue(0))}static{this.PARAMETER_INT_OFFSET=L.of("offset",I.ofInteger("offset").setDefaultValue(0))}static{this.PARAMETER_ROTATE_LENGTH=L.of("rotateLength",I.ofInteger("rotateLength").setDefaultValue(1).setMinimum(1))}static{this.PARAMETER_BOOLEAN_ASCENDING=L.of("ascending",I.ofBoolean("ascending").setDefaultValue(!0))}static{this.PARAMETER_KEY_PATH=L.of("keyPath",I.ofString("keyPath").setDefaultValue(""))}static{this.PARAMETER_FIND_PRIMITIVE=L.of("findPrimitive",I.of("findPrimitive",c.STRING,c.DOUBLE,c.FLOAT,c.INTEGER,c.LONG))}static{this.PARAMETER_ARRAY_SOURCE=L.of("source",I.ofArray("eachSource",I.ofAny("eachSource")))}static{this.PARAMETER_ARRAY_SECOND_SOURCE=L.of("secondSource",I.ofArray("eachSecondSource",I.ofAny("eachSecondSource")))}static{this.PARAMETER_ARRAY_SOURCE_PRIMITIVE=L.of("source",I.ofArray("eachSource",new I().setName("eachSource").setType(m.of(c.STRING,c.NULL,c.INTEGER,c.FLOAT,c.DOUBLE,c.LONG))))}static{this.PARAMETER_BOOLEAN_DEEP_COPY=L.of("deepCopy",I.ofBoolean("deepCopy").setDefaultValue(!0))}static{this.PARAMETER_ANY=L.of("element",I.ofAny("element"))}static{this.PARAMETER_ANY_ELEMENT_OBJECT=L.of("elementObject",I.ofAny("elementObject"))}static{this.PARAMETER_ANY_VAR_ARGS=L.of("element",I.ofAny("element")).setVariableArgument(!0)}static{this.PARAMETER_ARRAY_RESULT=L.of(eN.EVENT_RESULT_NAME,I.ofArray("eachResult",I.ofAny("eachResult")))}constructor(e,t,r){super();let s=new Map;for(let e of t)s.set(e.getParameterName(),e);this.signature=new B(e).setNamespace(A.SYSTEM_ARRAY).setParameters(s).setEvents(b.of(r.getName(),r))}getSignature(){return this.signature}}class e_ extends eN{constructor(){super("Concatenate",[eN.PARAMETER_ARRAY_SOURCE,eN.PARAMETER_ARRAY_SECOND_SOURCE],eN.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eN.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eN.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName());return new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,[...t,...r]]]))])}}class eM extends eN{constructor(){super("AddFirst",[eN.PARAMETER_ARRAY_SOURCE,eN.PARAMETER_ANY],eN.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eN.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eN.PARAMETER_ANY.getParameterName());if(0==(t=[...t]).length)return t.push(r),new F([G.outputOf(new Map([]))]);t.push(r);let s=t.length-1;for(;s>0;){let e=t[s-1];t[s-1]=t[s],t[s--]=e}return new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))])}}let eS="keyName";class eO extends eN{constructor(){super("ArrayToArrayOfObjects",[eN.PARAMETER_ARRAY_SOURCE,L.of(eS,I.ofString(eS),!0)],eN.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eO.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eS);if(!t?.length)return new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,[]]]))]);let s=t.map(e=>{let t={};if(Array.isArray(e)){if(r.length)r.forEach((r,s)=>{t[r]=e[s]});else for(let r=0;r<e.length;r++)t[`value${r+1}`]=e[r]}else t[r.length?r[0]:"value"]=e;return t});return new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,s]]))])}}t({},"PrimitiveUtil",()=>ew),t({},"ExecutionException",()=>ed);class ed extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class ew{static findPrimitiveNullAsBoolean(e){if(T(e))return new J(c.BOOLEAN,!1);let t=typeof e;if("object"===t)throw new ed(Y.format("$ is not a primitive type",e));return"boolean"===t?new J(c.BOOLEAN,e):"string"===t?new J(c.STRING,e):ew.findPrimitiveNumberType(e)}static findPrimitive(e){if(T(e))return new J(c.NULL,void 0);let t=typeof e;if("object"===t)throw new ed(Y.format("$ is not a primitive type",e));return"boolean"===t?new J(c.BOOLEAN,e):"string"===t?new J(c.STRING,e):ew.findPrimitiveNumberType(e)}static findPrimitiveNumberType(e){if(T(e)||Array.isArray(e)||"object"==typeof e)throw new ed(Y.format("Unable to convert $ to a number.",e));try{if(Number.isInteger(e))return new J(c.LONG,e);return new J(c.DOUBLE,e)}catch(t){throw new ed(Y.format("Unable to convert $ to a number.",e),t)}}static compare(e,t){if(e==t)return 0;if(T(e)||T(t))return T(e)?-1:1;if(Array.isArray(e)||Array.isArray(t)){if(Array.isArray(e)&&Array.isArray(t)){if(e.length!=t.length)return e.length-t.length;for(let r=0;r<e.length;r++){let s=this.compare(e[r],t[r]);if(0!=s)return s}return 0}return Array.isArray(e)?-1:1}let r=typeof e,s=typeof t;return"object"===r||"object"===s?("object"===r&&"object"===s&&Object.keys(e).forEach(r=>{let s=this.compare(e[r],t[r]);if(0!=s)return s}),"object"===r?-1:1):this.comparePrimitive(e,t)}static comparePrimitive(e,t){return T(e)||T(t)?T(e)&&T(t)?0:T(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)?c.LONG:c.DOUBLE}static toPrimitiveType(e){return e}constructor(){}}class eI extends eN{constructor(){super("BinarySearch",[eI.PARAMETER_ARRAY_SOURCE_PRIMITIVE,eI.PARAMETER_INT_SOURCE_FROM,eI.PARAMETER_FIND_PRIMITIVE,eI.PARAMETER_INT_LENGTH],eI.EVENT_INDEX)}async internalExecute(e){let t=e?.getArguments()?.get(eI.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eI.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eI.PARAMETER_FIND_PRIMITIVE.getParameterName()),n=e?.getArguments()?.get(eI.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length||r<0||r>t.length)throw new $("Search source array cannot be empty");if(-1==n&&(n=t.length-r),(n=r+n)>t.length)throw new $("End point for array cannot be more than the size of the source array");let a=-1;for(;r<=n;){let e=Math.floor((r+n)/2);if(0==ew.compare(t[e],s)){a=e;break}ew.compare(t[e],s)>0?n=e-1:r=e+1}return new F([G.outputOf(new Map([[eI.EVENT_INDEX_NAME,a]]))])}}t({},"ArrayUtil",()=>eP);class eP{static removeAListFrom(e,t){if(!t||!e||!e.length||!t.length)return;let r=new Set(t);for(let t=0;t<e.length;t++)r.has(e[t])&&(e.splice(t,1),t--)}static of(...e){let t=Array(e.length);for(let r=0;r<e.length;r++)t[r]=e[r];return t}constructor(){}}class ey extends eN{constructor(){super("Compare",eP.of(ey.PARAMETER_ARRAY_SOURCE,ey.PARAMETER_INT_SOURCE_FROM,ey.PARAMETER_ARRAY_FIND,ey.PARAMETER_INT_FIND_FROM,ey.PARAMETER_INT_LENGTH),ey.EVENT_RESULT_INTEGER)}async internalExecute(e){var t=e?.getArguments()?.get(ey.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ey.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(ey.PARAMETER_ARRAY_FIND.getParameterName()),n=e?.getArguments()?.get(ey.PARAMETER_INT_FIND_FROM.getParameterName()),a=e?.getArguments()?.get(ey.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new $("Compare source array cannot be empty");if(0==s.length)throw new $("Compare find array cannot be empty");if(-1==a&&(a=t.length-r),r+a>t.length)throw new $(Y.format("Source array size $ is less than comparing size $",t.length,r+a));if(n+a>s.length)throw new $(Y.format("Find array size $ is less than comparing size $",s.length,n+a));return new F(eP.of(G.outputOf(b.of(ey.EVENT_RESULT_NAME,this.compare(t,r,r+a,s,n,n+a)))))}compare(e,t,r,s,n,a){if(r<t){let e=t;t=r,r=e}if(a<n){let e=n;n=a,a=e}if(r-t!=a-n)throw new $(Y.format("Cannot compare uneven arrays from $ to $ in source array with $ to $ in find array",r,t,a,n));for(let a=t,i=n;a<r;a++,i++){let t=1;if(T(e[a])||T(s[i])){let r=T(e[a]);r==T(s[i])?t=0:r&&(t=-1)}else{let r=typeof e[a],n=typeof s[i];if("object"===r||"object"===n)t=1;else if("string"===r||"string"===n){let r=""+e[a],n=""+s[i];r===n?t=0:r<n&&(t=-1)}else"boolean"===r||"boolean"===n?t=r==n?0:1:"number"===r&&"number"===n&&(t=e[a]-s[i])}if(0!=t)return t}return 0}}function ex(e){return e?"function"==typeof globalThis.structuredClone?globalThis.structuredClone(e):JSON.parse(JSON.stringify(e)):e}t({},"duplicate",()=>ex);class eL extends eN{constructor(){super("Copy",[eL.PARAMETER_ARRAY_SOURCE,eL.PARAMETER_INT_SOURCE_FROM,eL.PARAMETER_INT_LENGTH,eL.PARAMETER_BOOLEAN_DEEP_COPY],eL.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(eL.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eL.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eL.PARAMETER_INT_LENGTH.getParameterName());if(-1==s&&(s=t.length-r),r+s>t.length)throw new $(Y.format("Array has no elements from $ to $ as the array size is $",r,r+s,t.length));var n=e?.getArguments()?.get(eL.PARAMETER_BOOLEAN_DEEP_COPY.getParameterName());let a=Array(s);for(let e=r;e<r+s;e++)T(t[e])||(a[e-r]=n?ex(t[e]):t[e]);return new F([G.outputOf(b.of(eL.EVENT_RESULT_NAME,a))])}}class eU extends eN{constructor(){super("Delete",[eN.PARAMETER_ARRAY_SOURCE,eN.PARAMETER_ANY_VAR_ARGS],eN.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eU.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eU.PARAMETER_ANY_VAR_ARGS.getParameterName());if(null==r)throw new $("The deletable var args are empty. So cannot be proceeded further.");if(0==t.length||0==r.length)throw new $("Expected a source or deletable for an array but not found any");let s=new Set;for(let e=t.length-1;e>=0;e--)for(let n=0;n<r.length;n++)s.has(e)||0!=ew.compare(t[e],r[n])||s.add(t[e]);return new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,t.filter(e=>!s.has(e))]]))])}}class eb extends eN{constructor(){super("DeleteFirst",[eb.PARAMETER_ARRAY_SOURCE],eb.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eb.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new $("Given source array is empty");return(t=[...t]).shift(),new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))])}}class eV extends eN{constructor(){super("DeleteFrom",[eV.PARAMETER_ARRAY_SOURCE,eV.PARAMETER_INT_SOURCE_FROM,eV.PARAMETER_INT_LENGTH],eV.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eV.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eV.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eV.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new $("There are no elements to be deleted");if(r>=(t=[...t]).length||r<0)throw new $("The int source for the array should be in between 0 and length of the array ");if(-1==s&&(s=t.length-r),r+s>t.length)throw new $("Requested length to be deleted is more than the size of array ");return t.splice(r,s),new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))])}}class ev extends eN{constructor(){super("DeleteLast",[ev.PARAMETER_ARRAY_SOURCE],ev.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(ev.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new $("Given source array is empty");return(t=[...t]).pop(),new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))])}}class eC extends eN{constructor(){super("Disjoint",[eC.PARAMETER_ARRAY_SOURCE,eC.PARAMETER_INT_SOURCE_FROM,eC.PARAMETER_ARRAY_SECOND_SOURCE,eC.PARAMETER_INT_SECOND_SOURCE_FROM,eC.PARAMETER_INT_LENGTH],eC.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eC.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eC.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eC.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(eC.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(eC.PARAMETER_INT_LENGTH.getParameterName());if(-1==a&&(a=t.length<=s.length?t.length-r:s.length-n),a>t.length||a>s.length||r+a>t.length||n+a>s.length)throw new $("The length which was being requested is more than than the size either source array or second source array");let i=new Set,o=new Set;for(let e=0;e<a;e++)i.add(t[e+r]);for(let e=0;e<a;e++)o.add(s[e+n]);let E=new Set;return i.forEach(e=>{o.has(e)?o.delete(e):E.add(e)}),o.forEach(e=>{i.has(e)||E.add(e)}),new F([G.outputOf(new Map([[eC.EVENT_RESULT_NAME,[...E]]]))])}}class eD extends eN{constructor(){super("Equals",[eD.PARAMETER_ARRAY_SOURCE,eD.PARAMETER_INT_SOURCE_FROM,eD.PARAMETER_ARRAY_FIND,eD.PARAMETER_INT_FIND_FROM,eD.PARAMETER_INT_LENGTH],eD.EVENT_RESULT_BOOLEAN)}async internalExecute(e){let t=new ey,r=(await t.execute(e)).allResults()[0].getResult().get(eD.EVENT_RESULT_NAME);return new F([G.outputOf(b.of(eD.EVENT_RESULT_NAME,0==r))])}}class eG extends eN{constructor(){super("Fill",[eG.PARAMETER_ARRAY_SOURCE,eG.PARAMETER_INT_SOURCE_FROM,eG.PARAMETER_INT_LENGTH,eG.PARAMETER_ANY],eG.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(eG.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eG.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eG.PARAMETER_INT_LENGTH.getParameterName()),n=e?.getArguments()?.get(eG.PARAMETER_ANY.getParameterName());if(r<0)throw new $(Y.format("Arrays out of bound trying to access $ index",r));-1==s&&(s=t.length-r);let a=r+s-t.length;if(t=[...t],a>0)for(let e=0;e<a;e++)t.push();for(let e=r;e<r+s;e++)t[e]=T(n)?n:ex(n);return new F([G.outputOf(b.of(eN.EVENT_RESULT_NAME,t))])}}class e$ extends eN{constructor(){super("Frequency",[e$.PARAMETER_ARRAY_SOURCE,e$.PARAMETER_ANY,e$.PARAMETER_INT_SOURCE_FROM,e$.PARAMETER_INT_LENGTH],e$.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(e$.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e$.PARAMETER_ANY.getParameterName()),s=e?.getArguments()?.get(e$.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(e$.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)return new F([G.outputOf(new Map([[e$.EVENT_RESULT_NAME,0]]))]);if(s>t.length)throw new $("Given start point is more than the size of source");let a=s+n;if(-1==n&&(a=t.length-s),a>t.length)throw new $("Given length is more than the size of source");let i=0;for(let e=s;e<a&&e<t.length;e++)0==ew.compare(t[e],r)&&i++;return new F([G.outputOf(new Map([[e$.EVENT_RESULT_NAME,i]]))])}}class eF extends eN{constructor(){super("IndexOf",[eF.PARAMETER_ARRAY_SOURCE,eF.PARAMETER_ANY_ELEMENT_OBJECT,eF.PARAMETER_INT_FIND_FROM],eF.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eF.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eF.PARAMETER_ANY_ELEMENT_OBJECT.getParameterName()),s=e?.getArguments()?.get(eF.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new F([G.outputOf(new Map([[eF.EVENT_RESULT_NAME,-1]]))]);if(s<0||s>t.length)throw new $("The size of the search index of the array is greater than the size of the array");let n=-1;for(let e=s;e<t.length;e++)if(0==ew.compare(t[e],r)){n=e;break}return new F([G.outputOf(new Map([[eF.EVENT_RESULT_NAME,n]]))])}}class eB extends eN{constructor(){super("IndexOfArray",[eB.PARAMETER_ARRAY_SOURCE,eB.PARAMETER_ARRAY_SECOND_SOURCE,eB.PARAMETER_INT_FIND_FROM],eB.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eB.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eB.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(eB.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length||0==r.length)return new F([G.outputOf(new Map([[eB.EVENT_RESULT_NAME,-1]]))]);if(s<0||s>t.length||t.length<r.length)throw new $("Given from second source is more than the size of the source array");let n=r.length,a=-1;for(let e=s;e<t.length;e++){let s=0;if(0==ew.compare(t[e],r[s])){for(;s<n&&0==ew.compare(t[e+s],r[s]);)s++;if(s==n){a=e;break}}}return new F([G.outputOf(new Map([[eB.EVENT_RESULT_NAME,a]]))])}}class eY extends eN{constructor(){super("LastIndexOf",[eY.PARAMETER_ARRAY_SOURCE,eY.PARAMETER_ANY_ELEMENT_OBJECT,eY.PARAMETER_INT_FIND_FROM],eY.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eY.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eY.PARAMETER_ANY_ELEMENT_OBJECT.getParameterName()),s=e?.getArguments()?.get(eY.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new F([G.outputOf(new Map([[eY.EVENT_RESULT_NAME,-1]]))]);if(s<0||s>t.length)throw new $("The value of length shouldn't the exceed the size of the array or shouldn't be in terms");let n=-1;for(let e=t.length-1;e>=s;e--)if(0==ew.compare(t[e],r)){n=e;break}return new F([G.outputOf(new Map([[eY.EVENT_RESULT_NAME,n]]))])}}class eH extends eN{constructor(){super("LastIndexOfArray",[eH.PARAMETER_ARRAY_SOURCE,eH.PARAMETER_ARRAY_SECOND_SOURCE,eH.PARAMETER_INT_FIND_FROM],eH.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eH.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eH.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(eH.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new F([G.outputOf(new Map([[eH.EVENT_RESULT_NAME,-1]]))]);if(s<0||s>t.length||r.length>t.length)throw new $("Given from index is more than the size of the source array");let n=r.length,a=-1;for(let e=s;e<t.length;e++){let s=0;if(0==ew.compare(t[e],r[s])){for(;s<n&&0==ew.compare(t[e+s],r[s]);)s++;s==n&&(a=e)}}return new F([G.outputOf(new Map([[eH.EVENT_RESULT_NAME,a]]))])}}class ek extends eN{constructor(){super("Max",[ek.PARAMETER_ARRAY_SOURCE_PRIMITIVE],ek.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(ek.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==t.length)throw new $("Search source array cannot be empty");let r=t[0];for(let e=1;e<t.length;e++){let s=t[e];ew.comparePrimitive(r,s)>=0||(r=s)}return new F([G.outputOf(new Map([[ek.EVENT_RESULT_NAME,r]]))])}}class ej extends eN{constructor(){super("Min",[ej.PARAMETER_ARRAY_SOURCE_PRIMITIVE],ej.EVENT_RESULT_ANY)}async internalExecute(e){let t,r=e?.getArguments()?.get(ej.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++)!T(r[e])&&(void 0===t||0>ew.comparePrimitive(r[e],t))&&(t=r[e]);return new F([G.outputOf(new Map([[ej.EVENT_RESULT_NAME,t]]))])}}class eW extends eN{constructor(){super("MisMatch",[eW.PARAMETER_ARRAY_SOURCE,eW.PARAMETER_INT_FIND_FROM,eW.PARAMETER_ARRAY_SECOND_SOURCE,eW.PARAMETER_INT_SECOND_SOURCE_FROM,eW.PARAMETER_INT_LENGTH],eW.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eW.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eW.PARAMETER_INT_FIND_FROM.getParameterName()),s=e?.getArguments()?.get(eW.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(eW.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(eW.PARAMETER_INT_LENGTH.getParameterName()),i=r<t.length&&r>0?r:0,o=n<s.length&&n>0?n:0;if(i+a>=t.length||o+a>s.length)throw new $("The size of the array for first and second which was being requested is more than size of the given array");let E=-1;for(let e=0;e<a;e++)if(t[i+e]!=s[o+e]){E=e;break}return new F([G.outputOf(new Map([[eW.EVENT_RESULT_NAME,E]]))])}}class eX extends eN{constructor(){super("Reverse",[eX.PARAMETER_ARRAY_SOURCE,eX.PARAMETER_INT_SOURCE_FROM,eX.PARAMETER_INT_LENGTH],eX.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eX.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eX.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eX.PARAMETER_INT_LENGTH.getParameterName());if(-1==s&&(s=t.length-r),s>=t.length||s<0||r<0)throw new $("Please provide start point between the start and end indexes or provide the length which was less than the source size ");t=[...t];let n=r+s-1;for(;r<=n;){let e=t[r],s=t[n];t[r++]=s,t[n--]=e}return new F([G.outputOf(new Map([[eX.EVENT_RESULT_NAME,t]]))])}}class eJ extends eN{constructor(){super("Rotate",[eJ.PARAMETER_ARRAY_SOURCE,eJ.PARAMETER_ROTATE_LENGTH],eJ.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eJ.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eJ.PARAMETER_ROTATE_LENGTH.getParameterName());if(0==t.length)return new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))]);let s=(t=[...t]).length;return r%=s,this.rotate(t,0,r-1),this.rotate(t,r,s-1),this.rotate(t,0,s-1),new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))])}rotate(e,t,r){for(;t<r;){let s=e[t];e[t++]=e[r],e[r--]=s}}}class eq extends eN{constructor(){super("Shuffle",[eq.PARAMETER_ARRAY_SOURCE],eq.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eq.PARAMETER_ARRAY_SOURCE.getParameterName());if(t.length<=1)return new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))]);let r=0,s=(t=[...t]).length;for(let e=0;e<s;e++){let e=Math.floor(Math.random()*s)%s,n=t[r];t[r]=t[e],t[e]=n,r=e}return new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))])}}t({},"ObjectValueSetterExtractor",()=>e5),t({},"Expression",()=>e1),t({},"StringBuilder",()=>eK);class eK{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)}}t({},"ExpressionEvaluationException",()=>ez);class ez extends Error{constructor(e,t,r){super(Y.format("$ : $",e,t)),this.cause=r}getCause(){return this.cause}}t({},"ExpressionToken",()=>eQ);class eQ{constructor(e){this.expression=e}getExpression(){return this.expression}toString(){return this.expression}}t({},"ExpressionTokenValue",()=>eZ);class eZ extends eQ{constructor(e,t){super(e),this.element=t}getTokenValue(){return this.element}getElement(){return this.element}toString(){return Y.format("$: $",this.expression,this.element)}}t({},"Operation",()=>e0);class e0{static{this.MULTIPLICATION=new e0("*")}static{this.DIVISION=new e0("/")}static{this.INTEGER_DIVISION=new e0("//")}static{this.MOD=new e0("%")}static{this.ADDITION=new e0("+")}static{this.SUBTRACTION=new e0("-")}static{this.NOT=new e0("not",void 0,!0)}static{this.AND=new e0("and",void 0,!0)}static{this.OR=new e0("or",void 0,!0)}static{this.LESS_THAN=new e0("<")}static{this.LESS_THAN_EQUAL=new e0("<=")}static{this.GREATER_THAN=new e0(">")}static{this.GREATER_THAN_EQUAL=new e0(">=")}static{this.EQUAL=new e0("=")}static{this.NOT_EQUAL=new e0("!=")}static{this.BITWISE_AND=new e0("&")}static{this.BITWISE_OR=new e0("|")}static{this.BITWISE_XOR=new e0("^")}static{this.BITWISE_COMPLEMENT=new e0("~")}static{this.BITWISE_LEFT_SHIFT=new e0("<<")}static{this.BITWISE_RIGHT_SHIFT=new e0(">>")}static{this.BITWISE_UNSIGNED_RIGHT_SHIFT=new e0(">>>")}static{this.UNARY_PLUS=new e0("UN: +","+")}static{this.UNARY_MINUS=new e0("UN: -","-")}static{this.UNARY_LOGICAL_NOT=new e0("UN: not","not")}static{this.UNARY_BITWISE_COMPLEMENT=new e0("UN: ~","~")}static{this.ARRAY_OPERATOR=new e0("[")}static{this.ARRAY_RANGE_INDEX_OPERATOR=new e0("..")}static{this.OBJECT_OPERATOR=new e0(".")}static{this.NULLISH_COALESCING_OPERATOR=new e0("??")}static{this.CONDITIONAL_TERNARY_OPERATOR=new e0("?")}static{this.VALUE_OF=new Map([["MULTIPLICATION",e0.MULTIPLICATION],["DIVISION",e0.DIVISION],["INTEGER_DIVISION",e0.INTEGER_DIVISION],["MOD",e0.MOD],["ADDITION",e0.ADDITION],["SUBTRACTION",e0.SUBTRACTION],["NOT",e0.NOT],["AND",e0.AND],["OR",e0.OR],["LESS_THAN",e0.LESS_THAN],["LESS_THAN_EQUAL",e0.LESS_THAN_EQUAL],["GREATER_THAN",e0.GREATER_THAN],["GREATER_THAN_EQUAL",e0.GREATER_THAN_EQUAL],["EQUAL",e0.EQUAL],["NOT_EQUAL",e0.NOT_EQUAL],["BITWISE_AND",e0.BITWISE_AND],["BITWISE_OR",e0.BITWISE_OR],["BITWISE_XOR",e0.BITWISE_XOR],["BITWISE_COMPLEMENT",e0.BITWISE_COMPLEMENT],["BITWISE_LEFT_SHIFT",e0.BITWISE_LEFT_SHIFT],["BITWISE_RIGHT_SHIFT",e0.BITWISE_RIGHT_SHIFT],["BITWISE_UNSIGNED_RIGHT_SHIFT",e0.BITWISE_UNSIGNED_RIGHT_SHIFT],["UNARY_PLUS",e0.UNARY_PLUS],["UNARY_MINUS",e0.UNARY_MINUS],["UNARY_LOGICAL_NOT",e0.UNARY_LOGICAL_NOT],["UNARY_BITWISE_COMPLEMENT",e0.UNARY_BITWISE_COMPLEMENT],["ARRAY_OPERATOR",e0.ARRAY_OPERATOR],["ARRAY_RANGE_INDEX_OPERATOR",e0.ARRAY_RANGE_INDEX_OPERATOR],["OBJECT_OPERATOR",e0.OBJECT_OPERATOR],["NULLISH_COALESCING_OPERATOR",e0.NULLISH_COALESCING_OPERATOR],["CONDITIONAL_TERNARY_OPERATOR",e0.CONDITIONAL_TERNARY_OPERATOR]])}static{this.UNARY_OPERATORS=new Set([e0.ADDITION,e0.SUBTRACTION,e0.NOT,e0.BITWISE_COMPLEMENT,e0.UNARY_PLUS,e0.UNARY_MINUS,e0.UNARY_LOGICAL_NOT,e0.UNARY_BITWISE_COMPLEMENT])}static{this.ARITHMETIC_OPERATORS=new Set([e0.MULTIPLICATION,e0.DIVISION,e0.INTEGER_DIVISION,e0.MOD,e0.ADDITION,e0.SUBTRACTION])}static{this.LOGICAL_OPERATORS=new Set([e0.NOT,e0.AND,e0.OR,e0.LESS_THAN,e0.LESS_THAN_EQUAL,e0.GREATER_THAN,e0.GREATER_THAN_EQUAL,e0.EQUAL,e0.NOT_EQUAL,e0.NULLISH_COALESCING_OPERATOR])}static{this.BITWISE_OPERATORS=new Set([e0.BITWISE_AND,e0.BITWISE_COMPLEMENT,e0.BITWISE_LEFT_SHIFT,e0.BITWISE_OR,e0.BITWISE_RIGHT_SHIFT,e0.BITWISE_UNSIGNED_RIGHT_SHIFT,e0.BITWISE_XOR])}static{this.CONDITIONAL_OPERATORS=new Set([e0.CONDITIONAL_TERNARY_OPERATOR])}static{this.OPERATOR_PRIORITY=new Map([[e0.UNARY_PLUS,1],[e0.UNARY_MINUS,1],[e0.UNARY_LOGICAL_NOT,1],[e0.UNARY_BITWISE_COMPLEMENT,1],[e0.ARRAY_OPERATOR,1],[e0.OBJECT_OPERATOR,1],[e0.ARRAY_RANGE_INDEX_OPERATOR,2],[e0.MULTIPLICATION,2],[e0.DIVISION,2],[e0.INTEGER_DIVISION,2],[e0.MOD,2],[e0.ADDITION,3],[e0.SUBTRACTION,3],[e0.BITWISE_LEFT_SHIFT,4],[e0.BITWISE_RIGHT_SHIFT,4],[e0.BITWISE_UNSIGNED_RIGHT_SHIFT,4],[e0.LESS_THAN,5],[e0.LESS_THAN_EQUAL,5],[e0.GREATER_THAN,5],[e0.GREATER_THAN_EQUAL,5],[e0.EQUAL,6],[e0.NOT_EQUAL,6],[e0.BITWISE_AND,7],[e0.BITWISE_XOR,8],[e0.BITWISE_OR,9],[e0.AND,10],[e0.OR,11],[e0.NULLISH_COALESCING_OPERATOR,11],[e0.CONDITIONAL_TERNARY_OPERATOR,12]])}static{this.OPERATORS=new Set([...Array.from(e0.ARITHMETIC_OPERATORS),...Array.from(e0.LOGICAL_OPERATORS),...Array.from(e0.BITWISE_OPERATORS),e0.ARRAY_OPERATOR,e0.ARRAY_RANGE_INDEX_OPERATOR,e0.OBJECT_OPERATOR,...Array.from(e0.CONDITIONAL_OPERATORS)].map(e=>e.getOperator()))}static{this.OPERATORS_WITHOUT_SPACE_WRAP=new Set([...Array.from(e0.ARITHMETIC_OPERATORS),...Array.from(e0.LOGICAL_OPERATORS),...Array.from(e0.BITWISE_OPERATORS),e0.ARRAY_OPERATOR,e0.ARRAY_RANGE_INDEX_OPERATOR,e0.OBJECT_OPERATOR,...Array.from(e0.CONDITIONAL_OPERATORS)].filter(e=>!e.shouldBeWrappedInSpace()).map(e=>e.getOperator()))}static{this.OPERATION_VALUE_OF=new Map(Array.from(e0.VALUE_OF.entries()).map(([e,t])=>[t.getOperator(),t]))}static{this.UNARY_MAP=new Map([[e0.ADDITION,e0.UNARY_PLUS],[e0.SUBTRACTION,e0.UNARY_MINUS],[e0.NOT,e0.UNARY_LOGICAL_NOT],[e0.BITWISE_COMPLEMENT,e0.UNARY_BITWISE_COMPLEMENT],[e0.UNARY_PLUS,e0.UNARY_PLUS],[e0.UNARY_MINUS,e0.UNARY_MINUS],[e0.UNARY_LOGICAL_NOT,e0.UNARY_LOGICAL_NOT],[e0.UNARY_BITWISE_COMPLEMENT,e0.UNARY_BITWISE_COMPLEMENT]])}static{this.BIGGEST_OPERATOR_SIZE=Array.from(e0.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 e0.VALUE_OF.get(e)}toString(){return this.operator}}class e1 extends eQ{constructor(e,t,r,s){super(e||""),this.tokens=new H,this.ops=new H,s?.getOperator()!=".."||(t?r||(r=new eZ("","")):t=new eZ("","")),t&&this.tokens.push(t),r&&this.tokens.push(r),s&&this.ops.push(s),this.evaluate(),this.ops.isEmpty()||".."!=this.ops.peekLast().getOperator()||1!=this.tokens.length||this.tokens.push(new eQ(""))}getTokens(){return this.tokens}getOperations(){return this.ops}evaluate(){let e;let t=this.expression.length,r="",s=new eK(""),n=0,a=!1;for(;n<t;){switch(r=this.expression[n],e=s.toString(),r){case" ":a=this.processTokenSepearator(s,e,a);break;case"(":n=this.processSubExpression(t,s,e,n,a),a=!1;break;case")":throw new ez(this.expression,"Extra closing parenthesis found");case"]":throw new ez(this.expression,"Extra closing square bracket found");case"'":case'"':{let e=this.processStringLiteral(t,r,n);n=e.getT1(),a=e.getT2();break}case"?":if(n+1<t&&"?"!=this.expression.charAt(n+1)&&0!=n&&"?"!=this.expression.charAt(n-1))n=this.processTernaryOperator(t,s,e,n,a);else{let i=this.processOthers(r,t,s,e,n,a);n=i.getT1(),(a=i.getT2())&&this.ops.peek()==e0.ARRAY_OPERATOR&&(n=(i=this.process(t,s,n)).getT1(),a=i.getT2())}break;default:let i=this.processOthers(r,t,s,e,n,a);n=i.getT1(),(a=i.getT2())&&this.ops.peek()==e0.ARRAY_OPERATOR&&(n=(i=this.process(t,s,n)).getT1(),a=i.getT2())}++n}if(e=s.toString(),!W.isNullOrBlank(e)){if(e0.OPERATORS.has(e))throw new ez(this.expression,"Expression is ending with an operator");this.tokens.push(new eQ(e))}}processStringLiteral(e,t,r){let s="",n=r+1;for(;n<e;n++){let e=this.expression.charAt(n);if(e==t&&"\\"!=this.expression.charAt(n-1))break;s+=e}if(n==e&&this.expression.charAt(n-1)!=t)throw new ez(this.expression,"Missing string ending marker "+t);let a=new J(n,!1);return this.tokens.push(new eZ(s,s)),a}process(e,t,r){let s=1;for(++r;r<e&&0!=s;){let e=this.expression.charAt(r);"]"==e?--s:"["==e&&++s,0!=s&&(t.append(e),r++)}return this.tokens.push(new e1(t.toString())),t.setLength(0),new J(r,!1)}processOthers(e,t,r,s,n,a){let i=t-n;i=i<e0.BIGGEST_OPERATOR_SIZE?i:e0.BIGGEST_OPERATOR_SIZE;for(let e=i;e>0;e--){let t=this.expression.substring(n,n+e);if(e0.OPERATORS_WITHOUT_SPACE_WRAP.has(t))return W.isNullOrBlank(s)?".."==t&&this.tokens.isEmpty()&&(this.tokens.push(new eQ("0")),a=!1):(this.tokens.push(new eQ(s)),a=!1),this.checkUnaryOperator(this.tokens,this.ops,e0.OPERATION_VALUE_OF.get(t),a),a=!0,r.setLength(0),new J(n+e-1,a)}return r.append(e),new J(n,!1)}processTernaryOperator(e,t,r,s,n){if(n)throw new ez(this.expression,"Ternary operator is followed by an operator");""!=r.trim()&&(this.tokens.push(new e1(r)),t.setLength(0));let a=1,i="",o=++s;for(;s<e&&a>0;)"?"==(i=this.expression.charAt(s))?++a:":"==i&&--a,++s;if(":"!=i)throw new ez(this.expression,"':' operater is missing");if(s>=e)throw new ez(this.expression,"Third part of the ternary expression is missing");for(;!this.ops.isEmpty()&&this.hasPrecedence(e0.CONDITIONAL_TERNARY_OPERATOR,this.ops.peek());){let e=this.ops.pop();if(e0.UNARY_OPERATORS.has(e)){let t=this.tokens.pop();this.tokens.push(new e1("",t,void 0,e))}else{let t=this.tokens.pop(),r=this.tokens.pop();this.tokens.push(new e1("",r,t,e))}}this.ops.push(e0.CONDITIONAL_TERNARY_OPERATOR),this.tokens.push(new e1(this.expression.substring(o,s-1)));let E=this.expression.substring(s);if(""===E.trim())throw new ez(this.expression,"Third part of the ternary expression is missing");return this.tokens.push(new e1(E)),e-1}processSubExpression(e,t,r,s,n){if(e0.OPERATORS.has(r))this.checkUnaryOperator(this.tokens,this.ops,e0.OPERATION_VALUE_OF.get(r),n),t.setLength(0);else if(!W.isNullOrBlank(r))throw new ez(this.expression,Y.format("Unkown token : $ found.",r));let a=1,i=new eK,o=this.expression.charAt(s);for(s++;s<e&&a>0;)"("==(o=this.expression.charAt(s))?a++:")"==o&&a--,0!=a&&(i.append(o),s++);if(")"!=o)throw new ez(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 e1(i.toString().trim())),s}processTokenSepearator(e,t,r){return W.isNullOrBlank(t)||(e0.OPERATORS.has(t)?(this.checkUnaryOperator(this.tokens,this.ops,e0.OPERATION_VALUE_OF.get(t),r),r=!0):(this.tokens.push(new eQ(t)),r=!1)),e.setLength(0),r}checkUnaryOperator(e,t,r,s){if(r){if(s||e.isEmpty()){if(e0.UNARY_OPERATORS.has(r)){let e=e0.UNARY_MAP.get(r);e&&t.push(e)}else throw new ez(this.expression,Y.format("Extra operator $ found.",r))}else{for(;!t.isEmpty()&&this.hasPrecedence(r,t.peek());){let r=t.pop();if(e0.UNARY_OPERATORS.has(r)){let t=e.pop();e.push(new e1("",t,void 0,r))}else{let t=e.pop(),s=e.pop();e.push(new e1("",s,t,r))}}t.push(r)}}}hasPrecedence(e,t){let r=e0.OPERATOR_PRIORITY.get(e),s=e0.OPERATOR_PRIORITY.get(t);if(!r||!s)throw Error("Unknown operators provided");return s<r}toString(){if(this.ops.isEmpty())return 1==this.tokens.size()?this.tokens.get(0).toString():"Error: No tokens";let e=new eK,t=0,r=this.ops.toArray(),s=this.tokens.toArray();for(let n=0;n<r.length;n++)if(r[n].getOperator().startsWith("UN: "))e.append("(").append(r[n].getOperator().substring(4)).append(s[t]instanceof e1?s[t].toString():s[t]).append(")"),t++;else if(r[n]==e0.CONDITIONAL_TERNARY_OPERATOR){let r=s[t++];e.insert(0,r.toString()),e.insert(0,":"),r=s[t++],e.insert(0,r.toString()),e.insert(0,"?"),r=s[t++],e.insert(0,r.toString()).append(")"),e.insert(0,"(")}else{if(0==t){let r=s[t++];e.insert(0,r.toString())}let a=s[t++];e.insert(0,r[n].getOperator()).insert(0,a instanceof e1?a.toString():a?.toString()).insert(0,"(").append(")")}return e.toString()}equals(e){return this.expression==e.expression}}t({},"TokenValueExtractor",()=>e2);class e2{static{this.REGEX_SQUARE_BRACKETS=/[\[\]]/}static{this.REGEX_DOT=/(?<!\.)\.(?!\.)/}getValue(e){let t=this.getPrefix();if(!e.startsWith(t))throw new $(Y.format("Token $ doesn't start with $",e,t));if(e.endsWith(".__index")){let t=e.substring(0,e.length-8),r=this.getValueInternal(t);if(!T(r?.__index))return r.__index;if(!t.endsWith("]"))return t.substring(t.lastIndexOf(".")+1);{let e=t.substring(t.lastIndexOf("[")+1,t.length-1),r=parseInt(e);return isNaN(r)?e:r}}return this.getValueInternal(e)}retrieveElementFrom(e,t,r,s){if(T(s))return;if(t.length==r)return s;let n=t[r].split(e2.REGEX_SQUARE_BRACKETS).map(e=>e.trim()).filter(e=>!W.isNullOrBlank(e)).reduce((s,n)=>this.resolveForEachPartOfTokenWithBrackets(e,t,r,n,s),s);return this.retrieveElementFrom(e,t,r+1,n)}resolveForEachPartOfTokenWithBrackets(e,t,r,s,n){if(!T(n))return"length"===s?this.getLength(e,n):"string"==typeof n||Array.isArray(n)?this.handleArrayAccess(e,s,n):this.handleObjectAccess(e,t,r,s,n)}getLength(e,t){let r=typeof t;if("string"===r||Array.isArray(t))return t.length;if("object"===r)return"length"in t?t.length:Object.keys(t).length;throw new ez(e,Y.format("Length can't be found in token $",e))}handleArrayAccess(e,t,r){let s=t.indexOf("..");if(s>=0){let e=t.substring(0,s),n=t.substring(s+2),a=0==e.length?0:parseInt(e),i=0==n.length?r.length:parseInt(n);if(isNaN(a)||isNaN(i))return;for(;a<0;)a+=r.length;for(;i<0;)i+=r.length;let o=typeof r;return a>=i?"string"==o?"":[]:"string"==o?r.substring(a,i):r.slice(a,i)}let n=parseInt(t);if(isNaN(n))throw new ez(e,Y.format("$ is not a number",t));for(;n<0;)n=r.length+n;if(!(n>=r.length))return r[n]}handleObjectAccess(e,t,r,s,n){if(s.startsWith('"')){if(!s.endsWith('"')||1==s.length||2==s.length)throw new ez(e,Y.format("$ is missing a double quote or empty key found",e));s=s.substring(1,t.length-2)}return this.checkIfObject(e,t,r,n),n[s]}checkIfObject(e,t,r,s){let n=typeof s;if("object"!=n&&"string"!=n||Array.isArray(s))throw new ez(e,Y.format("Unable to retrieve $ from $ in the path $",t[r],s.toString(),e))}}class e5 extends e2{constructor(e,t){super(),this.store=e,this.prefix=t}getValueInternal(e){let t=e.split(e2.REGEX_DOT);return this.retrieveElementFrom(e,t,1,this.store)}getStore(){return this.store}setStore(e){return this.store=e,this}setValue(e,t,r=!0,s=!1){this.store=ex(this.store),this.modifyStore(e,t,r,s)}modifyStore(e,t,r,s){let n=new e1(e),a=n.getTokens();a.removeLast();let i=n.getOperations(),o=i.removeLast(),E=a.removeLast(),u=E instanceof eZ?E.getElement():E.getExpression(),A=this.store;for(;!i.isEmpty();)A=o==e0.OBJECT_OPERATOR?this.getDataFromObject(A,u,i.peekLast()):this.getDataFromArray(A,u,i.peekLast()),o=i.removeLast(),u=(E=a.removeLast())instanceof eZ?E.getElement():E.getExpression();o==e0.OBJECT_OPERATOR?this.putDataInObject(A,u,t,r,s):this.putDataInArray(A,u,t,r,s)}getDataFromArray(e,t,r){if(!Array.isArray(e))throw new $(Y.format("Expected an array but found $",e));let s=parseInt(t);if(isNaN(s))throw new $(Y.format("Expected an array index but found $",t));if(s<0)throw new $(Y.format("Array index is out of bound - $",t));let n=e[s];return T(n)&&(n=r==e0.OBJECT_OPERATOR?{}:[],e[s]=n),n}getDataFromObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new $(Y.format("Expected an object but found $",e));let s=e[t];return T(s)&&(s=r==e0.OBJECT_OPERATOR?{}:[],e[t]=s),s}putDataInArray(e,t,r,s,n){if(!Array.isArray(e))throw new $(Y.format("Expected an array but found $",e));let a=parseInt(t);if(isNaN(a))throw new $(Y.format("Expected an array index but found $",t));if(a<0)throw new $(Y.format("Array index is out of bound - $",t));(s||T(e[a]))&&(n&&T(r)?e.splice(a,1):e[a]=r)}putDataInObject(e,t,r,s,n){if(Array.isArray(e)||"object"!=typeof e)throw new $(Y.format("Expected an object but found $",e));(s||T(e[t]))&&(n&&T(r)?delete e[t]:e[t]=r)}getPrefix(){return this.prefix}}class e7 extends eN{constructor(){super("Sort",[e7.PARAMETER_ARRAY_SOURCE,e7.PARAMETER_INT_FIND_FROM,e7.PARAMETER_INT_LENGTH,e7.PARAMETER_BOOLEAN_ASCENDING,e7.PARAMETER_KEY_PATH],e7.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(e7.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e7.PARAMETER_INT_FIND_FROM.getParameterName()),s=e?.getArguments()?.get(e7.PARAMETER_INT_LENGTH.getParameterName()),n=e?.getArguments()?.get(e7.PARAMETER_BOOLEAN_ASCENDING.getParameterName()),a=e?.getArguments()?.get(e7.PARAMETER_KEY_PATH.getParameterName());if(0==t.length)return new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))]);if(t=[...t],-1==s&&(s=t.length-r),r<0||r>=t.length||r+s>t.length)throw new $("Given start point is more than the size of the array or not available at that point");let i=t.slice(r,r+s+1),o=new e5({},"Data.");return i.sort((e,t)=>"object"==typeof e&&"object"==typeof t&&a.length?(o.setStore({a:e,b:t}),e4(o.getValue("Data.a."+a),o.getValue("Data.b."+a),n)):e4(e,t,n)),t.splice(r,s,...i),new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))])}}function e4(e,t,r){return e===t?0:null===e?1:null===t?-1:r?e<t?-1:1:e<t?1:-1}class e9 extends eN{constructor(){super("SubArray",[e9.PARAMETER_ARRAY_SOURCE,e9.PARAMETER_INT_FIND_FROM,e9.PARAMETER_INT_LENGTH],e9.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(e9.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e9.PARAMETER_INT_FIND_FROM.getParameterName()),s=e?.getArguments()?.get(e9.PARAMETER_INT_LENGTH.getParameterName());if(-1==s&&(s=t.length-r),s<=0)return new F([G.outputOf(new Map([]))]);if(!(r>=0&&r<t.length)||r+s>t.length)throw new $("Given find from point is more than the source size array or the Requested length for the subarray was more than the source size");let n=t.slice(r,r+s);return new F([G.outputOf(new Map([[e9.EVENT_RESULT_NAME,n]]))])}}class e6 extends eN{constructor(){super("Insert",[e6.PARAMETER_ARRAY_SOURCE,e6.PARAMETER_INT_OFFSET,e6.PARAMETER_ANY],e6.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(e6.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e6.PARAMETER_INT_OFFSET.getParameterName());var s=e?.getArguments()?.get(e6.PARAMETER_ANY.getParameterName());if(T(s)||T(r)||r>t.length)throw new $("Please valid resouces to insert at the correct location");if(0==(t=[...t]).length)return 0==r&&t.push(s),new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))]);t.push(s);let n=t.length-1;for(r++;n>=r;){let e=t[n-1];t[n-1]=t[n],t[n--]=e}return new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))])}}class e3 extends eN{constructor(){super("InsertLast",[e3.PARAMETER_ARRAY_SOURCE,e3.PARAMETER_ANY],e3.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(e3.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(e3.PARAMETER_ANY.getParameterName());return(t=[...t]).push(r),new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,t]]))])}}class e8 extends eN{constructor(){super("RemoveDuplicates",[e8.PARAMETER_ARRAY_SOURCE,e8.PARAMETER_INT_SOURCE_FROM,e8.PARAMETER_INT_LENGTH],e8.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(e8.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e8.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(e8.PARAMETER_INT_LENGTH.getParameterName());if(-1==s&&(s=t.length-r),r+s>t.length)throw new $(Y.format("Array has no elements from $ to $ as the array size is $",r,r+s,t.length));let n=[...t],a=r+s;for(let e=a-1;e>=r;e--)for(let t=e-1;t>=r;t--)if(j(n[e],n[t])){n.splice(e,1);break}return new F([G.outputOf(b.of(e8.EVENT_RESULT_NAME,n))])}}let te="keyPath",tt="valuePath",tr="ignoreNullValues",ts="ignoreNullKeys",tn="ignoreDuplicateKeys";class ta extends eN{constructor(){super("ArrayToObjects",[eN.PARAMETER_ARRAY_SOURCE,L.of(te,I.ofString(te)),L.of(tt,I.of(tt,c.STRING,c.NULL)),L.of(tr,I.ofBoolean(tr).setDefaultValue(!1)),L.of(ts,I.ofBoolean(ts).setDefaultValue(!0)),L.of(tn,I.ofBoolean(tn).setDefaultValue(!1))],eN.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(eN.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(te),s=e?.getArguments()?.get(tt)??"",n=e?.getArguments()?.get(tr),a=e?.getArguments()?.get(ts),i=e?.getArguments()?.get(tn),o=new e5({},"Data."),E=t.filter(e=>!T(e)).reduce((e,t)=>{o.setStore(t);let E=o.getValue("Data."+r);if(a&&T(E))return e;let u=s?o.getValue("Data."+s):t;return n&&T(u)||i&&e.hasOwnProperty(E)||(e[E]=u),e},{});return new F([G.outputOf(new Map([[eN.EVENT_RESULT_NAME,E]]))])}}let ti="source",to="delimiter",tE="result";class tu extends ef{getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(ti),r=e?.getArguments()?.get(to);return new F([G.outputOf(new Map([[tE,t.join(r)]]))])}constructor(...e){super(...e),this.signature=new B("Join").setNamespace(A.SYSTEM_ARRAY).setParameters(new Map([[ti,new L(ti,I.ofArray(ti,I.of("each",c.STRING,c.INTEGER,c.LONG,c.DOUBLE,c.FLOAT,c.NULL)))],[to,new L(to,I.ofString(to).setDefaultValue(""))]])).setEvents(new Map([D.outputEventMapEntry(new Map([[tE,I.ofString(tE)]]))]))}}class tA{async find(e,t){return e!=A.SYSTEM_ARRAY?Promise.resolve(void 0):Promise.resolve(this.repoMap.get(t))}async filter(e){return Promise.resolve(this.filterableNames.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}constructor(){this.repoMap=b.ofArrayEntries(C(new e_),C(new eM),C(new eI),C(new ey),C(new eL),C(new eU),C(new eb),C(new eV),C(new ev),C(new eC),C(new eD),C(new eG),C(new e$),C(new eF),C(new eB),C(new eY),C(new eH),C(new ek),C(new ej),C(new eW),C(new eX),C(new eJ),C(new eq),C(new e7),C(new e9),C(new eO),C(new e6),C(new e3),C(new e8),C(new ta),C(new tu)),this.filterableNames=Array.from(this.repoMap.values()).map(e=>e.getSignature().getFullName())}}t({},"ContextElement",()=>tT);class tT{static{this.NULL=new tT(I.NULL,void 0)}constructor(e,t){this.schema=e,this.element=t}getSchema(){return this.schema}setSchema(e){return this.schema=e,this}getElement(){return this.element}setElement(e){return this.element=e,this}}let tl="name",tc="schema";class th extends ef{getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(tl);if(e?.getContext()?.has(t))throw new $(Y.format("Context already has an element for '$' ",t));let r=I.from(e?.getArguments()?.get(tc));if(!r)throw new $("Schema is not supplied.");return e.getContext().set(t,new tT(r,T(r.getDefaultValue())?void 0:r.getDefaultValue())),new F([G.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new B("Create").setNamespace(A.SYSTEM_CTX).setParameters(new Map([L.ofEntry(tl,new I().setName(tl).setType(m.of(c.STRING)).setMinLength(1).setFormat(ea.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,y.CONSTANT),L.ofEntry(tc,I.SCHEMA,!1,y.CONSTANT)])).setEvents(new Map([D.outputEventMapEntry(new Map)]))}}let tR="name",tg="value";class tm extends ef{getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(tR);if(!e.getContext()?.has(t))throw new $(Y.format("Context don't have an element for '$' ",t));return new F([G.outputOf(new Map([tg,e.getContext()?.get(t)?.getElement()]))])}constructor(...e){super(...e),this.signature=new B("Get").setNamespace(A.SYSTEM_CTX).setParameters(new Map([L.ofEntry(tR,new I().setName(tR).setType(m.of(c.STRING)).setMinLength(1).setFormat(ea.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,y.CONSTANT)])).setEvents(new Map([D.outputEventMapEntry(new Map([[tg,I.ofAny(tg)]]))]))}}t({},"ExpressionEvaluator",()=>rM);var tp={},tf={};t(tf,"ArithmeticAdditionOperator",()=>tM);var tN={};t(tN,"BinaryOperator",()=>t_);class t_{nullCheck(e,t,r){if(T(e)||T(t))throw new ed(Y.format("$ cannot be applied to a null value",r.getOperatorName()))}}class tM extends t_{apply(e,t){return T(e)?t:T(t)?e:e+t}}var tS={};t(tS,"ArithmeticDivisionOperator",()=>tO);class tO extends t_{apply(e,t){return this.nullCheck(e,t,e0.DIVISION),e/t}}var td={};t(td,"ArithmeticIntegerDivisionOperator",()=>tw);class tw extends t_{apply(e,t){return this.nullCheck(e,t,e0.DIVISION),Math.floor(e/t)}}var tI={};t(tI,"ArithmeticModulusOperator",()=>tP);class tP extends t_{apply(e,t){return this.nullCheck(e,t,e0.MOD),e%t}}var ty={};t(ty,"ArithmeticMultiplicationOperator",()=>tx);class tx extends t_{apply(e,t){this.nullCheck(e,t,e0.MULTIPLICATION);let r="string"==typeof e,s=typeof t;if(r||"string"===s){let s=r?e:t,n=r?t:e,a="",i=n<0,o=Math.floor(n=Math.abs(n));for(;o-- >0;)a+=s;let E=Math.floor(s.length*(n-Math.floor(n)));if(E<0&&(E=-E),0!=E&&(a+=s.substring(0,E)),i){let e="";for(let t=a.length-1;t>=0;t--)e+=a[t];return e}return a}return e*t}}var tL={};t(tL,"ArithmeticSubtractionOperator",()=>tU);class tU extends t_{apply(e,t){return this.nullCheck(e,t,e0.SUBTRACTION),e-t}}var tb={};t(tb,"ArrayOperator",()=>tV);class tV extends t_{apply(e,t){if(!e)throw new ed("Cannot apply array operator on a null value");if(!t)throw new ed("Cannot retrive null index value");if(!Array.isArray(e)&&"string"!=typeof e)throw new ed(Y.format("Cannot retrieve value from a primitive value $",e));if(t>=e.length)throw new ed(Y.format("Cannot retrieve index $ from the array of length $",t,e.length));return e[t]}}var tv={};t(tv,"BitwiseAndOperator",()=>tC);class tC extends t_{apply(e,t){return this.nullCheck(e,t,e0.BITWISE_AND),e&t}}var tD={};t(tD,"BitwiseLeftShiftOperator",()=>tG);class tG extends t_{apply(e,t){return this.nullCheck(e,t,e0.BITWISE_LEFT_SHIFT),e<<t}}var t$={};t(t$,"BitwiseOrOperator",()=>tF);class tF extends t_{apply(e,t){return this.nullCheck(e,t,e0.BITWISE_OR),e|t}}var tB={};t(tB,"BitwiseRightShiftOperator",()=>tY);class tY extends t_{apply(e,t){return this.nullCheck(e,t,e0.BITWISE_RIGHT_SHIFT),e>>t}}var tH={};t(tH,"BitwiseUnsignedRightShiftOperator",()=>tk);class tk extends t_{apply(e,t){return this.nullCheck(e,t,e0.BITWISE_UNSIGNED_RIGHT_SHIFT),e>>>t}}var tj={};t(tj,"BitwiseXorOperator",()=>tW);class tW extends t_{apply(e,t){return this.nullCheck(e,t,e0.BITWISE_XOR),e^t}}var tX={};t(tX,"LogicalAndOperator",()=>tJ);class tJ extends t_{apply(e,t){return!!e&&""!==e&&!!t&&""!==t}}var tq={};t(tq,"LogicalEqualOperator",()=>tK);class tK extends t_{apply(e,t){return j(e,t)}}var tz={};t(tz,"LogicalGreaterThanEqualOperator",()=>tQ);class tQ extends t_{apply(e,t){let r=ew.findPrimitiveNullAsBoolean(e),s=ew.findPrimitiveNullAsBoolean(t);if(r.getT1()==c.BOOLEAN||s.getT1()==c.BOOLEAN)throw new ed(Y.format("Cannot compare >= with the values $ and $",r.getT2(),s.getT2()));return r.getT2()>=s.getT2()}}var tZ={};t(tZ,"LogicalGreaterThanOperator",()=>t0);class t0 extends t_{apply(e,t){let r=ew.findPrimitiveNullAsBoolean(e),s=ew.findPrimitiveNullAsBoolean(t);if(r.getT1()==c.BOOLEAN||s.getT1()==c.BOOLEAN)throw new ed(Y.format("Cannot compare > with the values $ and $",r.getT2(),s.getT2()));return r.getT2()>s.getT2()}}var t1={};t(t1,"LogicalLessThanEqualOperator",()=>t2);class t2 extends t_{apply(e,t){let r=ew.findPrimitiveNullAsBoolean(e),s=ew.findPrimitiveNullAsBoolean(t);if(r.getT1()==c.BOOLEAN||s.getT1()==c.BOOLEAN)throw new ed(Y.format("Cannot compare <= with the values $ and $",r.getT2(),s.getT2()));return r.getT2()<=s.getT2()}}var t5={};t(t5,"LogicalNotEqualOperator",()=>t7);class t7 extends t_{apply(e,t){return!j(e,t)}}var t4={};t(t4,"LogicalLessThanOperator",()=>t9);class t9 extends t_{apply(e,t){let r=ew.findPrimitiveNullAsBoolean(e),s=ew.findPrimitiveNullAsBoolean(t);if(r.getT1()==c.BOOLEAN||s.getT1()==c.BOOLEAN)throw new ed(Y.format("Cannot compare < with the values $ and $",r.getT2(),s.getT2()));return r.getT2()<s.getT2()}}var t6={};t(t6,"LogicalOrOperator",()=>t3);class t3 extends t_{apply(e,t){return!!e&&""!==e||!!t&&""!==t}}var t8={};t(t8,"ObjectOperator",()=>re);class re extends t_{apply(e,t){if(!e)throw new ed("Cannot apply array operator on a null value");if(!t)throw new ed("Cannot retrive null property value");let r=typeof e;if(!Array.isArray(e)&&"string"!=r&&"object"!=r)throw new ed(Y.format("Cannot retrieve value from a primitive value $",e));return e[t]}}var rt={};t(rt,"LogicalNullishCoalescingOperator",()=>rr);class rr extends t_{apply(e,t){return T(e)?t:e}}var rs={};t(rs,"ArrayRangeOperator",()=>rn);class rn extends t_{apply(e,t){return`${e??""}..${t??""}`}}r(tp,tf),r(tp,tS),r(tp,td),r(tp,tI),r(tp,ty),r(tp,tL),r(tp,tb),r(tp,tN),r(tp,tv),r(tp,tD),r(tp,t$),r(tp,tB),r(tp,tH),r(tp,tj),r(tp,tX),r(tp,tq),r(tp,tz),r(tp,tZ),r(tp,t1),r(tp,t5),r(tp,t4),r(tp,t6),r(tp,t8),r(tp,rt),r(tp,rs);var ra={},ri={};t(ri,"ArithmeticUnaryMinusOperator",()=>ru);var ro={};t(ro,"UnaryOperator",()=>rE);class rE{nullCheck(e,t){if(T(e))throw new ed(Y.format("$ cannot be applied to a null value",t.getOperatorName()))}}class ru extends rE{apply(e){return this.nullCheck(e,e0.UNARY_MINUS),ew.findPrimitiveNumberType(e),-e}}var rA={};t(rA,"ArithmeticUnaryPlusOperator",()=>rT);class rT extends rE{apply(e){return this.nullCheck(e,e0.UNARY_PLUS),ew.findPrimitiveNumberType(e),e}}var rl={};t(rl,"BitwiseComplementOperator",()=>rc);class rc extends rE{apply(e){this.nullCheck(e,e0.UNARY_BITWISE_COMPLEMENT);let t=ew.findPrimitiveNumberType(e);if(t.getT1()!=c.INTEGER&&t.getT1()!=c.LONG)throw new ed(Y.format("Unable to apply bitwise operator on $",e));return~e}}var rh={};t(rh,"LogicalNotOperator",()=>rR);class rR extends rE{apply(e){return!e&&""!==e}}r(ra,ri),r(ra,rA),r(ra,rl),r(ra,rh),r(ra,ro),t({},"LiteralTokenValueExtractor",()=>rm);let rg=new Map([["true",!0],["false",!1],["null",void 0],["undefined",void 0]]);class rm extends e2{static{this.INSTANCE=new rm}getValueInternal(e){if(!W.isNullOrBlank(e))return(e=e.trim(),rg.has(e))?rg.get(e):e.startsWith('"')?this.processString(e):this.processNumbers(e)}processNumbers(e){try{let t=Number(e);if(isNaN(t))throw Error("Parse number error");return t}catch(t){throw new ez(e,Y.format("Unable to parse the literal or expression $",e),t)}}processString(e){if(!e.endsWith('"'))throw new ez(e,Y.format("String literal $ is not closed properly",e));return e.substring(1,e.length-1)}getPrefix(){return""}getStore(){}getValueFromExtractors(e,t){return t.has(e+".")?t.get(e+".")?.getStore():this.getValue(e)}}var rp={};t(rp,"ConditionalTernaryOperator",()=>rN);class rf{nullCheck(e,t,r,s){if(T(e)||T(t)||T(r))throw new ed(Y.format("$ cannot be applied to a null value",s.getOperatorName()))}}class rN extends rf{apply(e,t,r){return e?t:r}}r({},rp);class r_ extends e2{static{this.PREFIX="_internal."}addValue(e,t){this.values.set(e,t)}getValueInternal(e){let t=e.split(e2.REGEX_DOT),r=t[1],s=r.indexOf("["),n=2;return -1!=s&&(r=t[1].substring(0,s),t[1]=t[1].substring(s),n=1),this.retrieveElementFrom(e,t,n,this.values.get(r))}getPrefix(){return r_.PREFIX}getStore(){}constructor(...e){super(...e),this.values=new Map}}class rM{static{this.UNARY_OPERATORS_MAP=new Map([[e0.UNARY_BITWISE_COMPLEMENT,new rc],[e0.UNARY_LOGICAL_NOT,new rR],[e0.UNARY_MINUS,new ru],[e0.UNARY_PLUS,new rT]])}static{this.TERNARY_OPERATORS_MAP=new Map([[e0.CONDITIONAL_TERNARY_OPERATOR,new rN]])}static{this.BINARY_OPERATORS_MAP=new Map([[e0.ADDITION,new tM],[e0.DIVISION,new tO],[e0.INTEGER_DIVISION,new tw],[e0.MOD,new tP],[e0.MULTIPLICATION,new tx],[e0.SUBTRACTION,new tU],[e0.BITWISE_AND,new tC],[e0.BITWISE_LEFT_SHIFT,new tG],[e0.BITWISE_OR,new tF],[e0.BITWISE_RIGHT_SHIFT,new tY],[e0.BITWISE_UNSIGNED_RIGHT_SHIFT,new tk],[e0.BITWISE_XOR,new tW],[e0.AND,new tJ],[e0.EQUAL,new tK],[e0.GREATER_THAN,new t0],[e0.GREATER_THAN_EQUAL,new tQ],[e0.LESS_THAN,new t9],[e0.LESS_THAN_EQUAL,new t2],[e0.OR,new t3],[e0.NOT_EQUAL,new t7],[e0.NULLISH_COALESCING_OPERATOR,new rr],[e0.ARRAY_OPERATOR,new tV],[e0.ARRAY_RANGE_INDEX_OPERATOR,new rn],[e0.OBJECT_OPERATOR,new re]])}static{this.UNARY_OPERATORS_MAP_KEY_SET=new Set(rM.UNARY_OPERATORS_MAP.keys())}constructor(e){this.internalTokenValueExtractor=new r_,e instanceof e1?(this.exp=e,this.expression=this.exp.getExpression()):this.expression=e}evaluate(e){let t=this.processNestingExpression(this.expression,e);return this.expression=t.getT1(),this.exp=t.getT2(),(e=new Map(e.entries())).set(this.internalTokenValueExtractor.getPrefix(),this.internalTokenValueExtractor),this.evaluateExpression(this.exp,e)}processNestingExpression(e,t){let r=0,s=0,n=new H;for(;s<e.length-1;){if("{"==e.charAt(s)&&"{"==e.charAt(s+1))0==r&&n.push(new J(s+2,-1)),r++,s++;else if("}"==e.charAt(s)&&"}"==e.charAt(s+1)){if(--r<0)throw new ez(e,"Expecting {{ nesting path operator to be started before closing");0==r&&n.push(n.pop().setT2(s)),s++}s++}let a=this.replaceNestingExpression(e,t,n);return new J(a,new e1(a))}replaceNestingExpression(e,t,r){let s=e;for(let n of r.toArray()){if(-1==n.getT2())throw new ez(e,"Expecting }} nesting path operator to be closed");let r=new rM(s.substring(n.getT1(),n.getT2())).evaluate(t);s=s.substring(0,n.getT1()-2)+r+s.substring(n.getT2()+2)}return s}getExpression(){return this.exp||(this.exp=new e1(this.expression)),this.exp}getExpressionString(){return this.expression}evaluateExpression(e,t){let r=e.getOperations(),s=e.getTokens();for(;!r.isEmpty();){let e=r.pop(),n=s.pop();if(rM.UNARY_OPERATORS_MAP_KEY_SET.has(e))s.push(this.applyUnaryOperation(e,this.getValueFromToken(t,n)));else if(e==e0.OBJECT_OPERATOR||e==e0.ARRAY_OPERATOR)this.processObjectOrArrayOperator(t,r,s,e,n);else if(e==e0.CONDITIONAL_TERNARY_OPERATOR){let r=s.pop(),a=s.pop(),i=this.getValueFromToken(t,a),o=this.getValueFromToken(t,r),E=this.getValueFromToken(t,n);s.push(this.applyTernaryOperation(e,i,o,E))}else{let r=s.pop(),a=this.getValueFromToken(t,r),i=this.getValueFromToken(t,n);s.push(this.applyBinaryOperation(e,a,i))}}if(s.isEmpty())throw new ed(Y.format("Expression : $ evaluated to null",e));if(1!=s.size())throw new ed(Y.format("Expression : $ evaluated multiple values $",e,s));let n=s.get(0);if(n instanceof eZ)return n.getElement();if(!(n instanceof e1))return this.getValueFromToken(t,n);throw new ed(Y.format("Expression : $ evaluated to $",e,s.get(0)))}processObjectOrArrayOperator(e,t,r,s,n){let a=new H,i=new H;if(!s||!n)return;do i.push(s),n instanceof e1?a.push(new eZ(n.toString(),this.evaluateExpression(n,e))):n&&a.push(n),n=r.isEmpty()?void 0:r.pop(),s=t.isEmpty()?void 0:t.pop();while(s==e0.OBJECT_OPERATOR||s==e0.ARRAY_OPERATOR)n&&(n instanceof e1?a.push(new eZ(n.toString(),this.evaluateExpression(n,e))):a.push(n)),s&&t.push(s);let o=a.pop();if(o instanceof eZ&&"object"==typeof o.getTokenValue()){let e=new Date().getTime()+""+Math.round(1e3*Math.random());this.internalTokenValueExtractor.addValue(e,o.getTokenValue()),o=new eQ(r_.PREFIX+e)}let E=new eK(o instanceof eZ?o.getTokenValue():o.toString());for(;!a.isEmpty();)o=a.pop(),s=i.pop(),E.append(s.getOperator()).append(o instanceof eZ?o.getTokenValue():o.toString()),s==e0.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 eZ(u,this.getValue(u,e)));else{let e;try{e=rm.INSTANCE.getValue(u)}catch(t){e=u}r.push(new eZ(u,e))}}applyTernaryOperation(e,t,r,s){let n=rM.TERNARY_OPERATORS_MAP.get(e);if(!n)throw new ez(this.expression,Y.format("No operator found to evaluate $",this.getExpression()));return new eZ(e.toString(),n.apply(t,r,s))}applyBinaryOperation(e,t,r){let s=typeof t,n=typeof r,a=rM.BINARY_OPERATORS_MAP.get(e);if(("object"===s||"object"===n)&&e!==e0.EQUAL&&e!==e0.NOT_EQUAL&&e!==e0.NULLISH_COALESCING_OPERATOR&&e!==e0.AND&&e!==e0.OR)throw new ez(this.expression,Y.format("Cannot evaluate expression $ $ $",t,e.getOperator(),r));if(!a)throw new ez(this.expression,Y.format("No operator found to evaluate $ $ $",t,e.getOperator(),r));return new eZ(e.toString(),a.apply(t,r))}applyUnaryOperation(e,t){let r=typeof t;if(e.getOperator()!=e0.NOT.getOperator()&&e.getOperator()!=e0.UNARY_LOGICAL_NOT.getOperator()&&("object"===r||Array.isArray(t)))throw new ez(this.expression,Y.format("The operator $ cannot be applied to $",e.getOperator(),t));let s=rM.UNARY_OPERATORS_MAP.get(e);if(!s)throw new ez(this.expression,Y.format("No Unary operator $ is found to apply on $",e.getOperator(),t));return new eZ(e.toString(),s.apply(t))}getValueFromToken(e,t){return t instanceof e1?this.evaluateExpression(t,e):t instanceof eZ?t.getElement():this.getValue(t.getExpression(),e)}getValue(e,t){let r=e.substring(0,e.indexOf(".")+1);return t.has(r)?t.get(r).getValue(e):rm.INSTANCE.getValueFromExtractors(e,t)}}let rS="name",rO="value";class rd extends ef{getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(rS);if(W.isNullOrBlank(t))throw new $("Empty string is not a valid name for the context element");let r=e?.getArguments()?.get(rO),s=new e1(t),n=s.getTokens().peekLast();if(!n.getExpression().startsWith("Context")||n instanceof e1||n instanceof eZ&&!n.getElement().toString().startsWith("Context"))throw new ed(Y.format("The context path $ is not a valid path in context",t));for(let e of s.getOperations().toArray())if(e!=e0.ARRAY_OPERATOR&&e!=e0.OBJECT_OPERATOR)throw new ed(Y.format("Expected a reference to the context location, but found an expression $",t));for(let r=0;r<s.getTokens().size();r++){let n=s.getTokens().get(r);n instanceof e1&&s.getTokens().set(r,new eZ(t,new rM(n).evaluate(e.getValuesMap())))}return this.modifyContext(e,t,r,s)}modifyContext(e,t,r,s){let n=s.getTokens();n.removeLast();let a=s.getOperations();a.removeLast();let i=e.getContext()?.get(n.removeLast().getExpression());if(T(i))throw new $(Y.format("Context doesn't have any element with name '$' ",t));if(a.isEmpty())return i.setElement(r),new F([G.outputOf(new Map)]);let o=i.getElement(),E=a.removeLast(),u=n.removeLast(),A=u instanceof eZ?u.getElement():u.getExpression();for(T(o)&&(o=E==e0.OBJECT_OPERATOR?{}:[],i.setElement(o));!a.isEmpty();)o=E==e0.OBJECT_OPERATOR?this.getDataFromObject(o,A,a.peekLast()):this.getDataFromArray(o,A,a.peekLast()),E=a.removeLast(),A=(u=n.removeLast())instanceof eZ?u.getElement():u.getExpression();return E==e0.OBJECT_OPERATOR?this.putDataInObject(o,A,r):this.putDataInArray(o,A,r),new F([G.outputOf(new Map)])}getDataFromArray(e,t,r){if(!Array.isArray(e))throw new $(Y.format("Expected an array but found $",e));let s=parseInt(t);if(isNaN(s))throw new $(Y.format("Expected an array index but found $",t));if(s<0)throw new $(Y.format("Array index is out of bound - $",t));let n=e[s];return T(n)&&(n=r==e0.OBJECT_OPERATOR?{}:[],e[s]=n),n}getDataFromObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new $(Y.format("Expected an object but found $",e));let s=e[t];return T(s)&&(s=r==e0.OBJECT_OPERATOR?{}:[],e[t]=s),s}putDataInArray(e,t,r){if(!Array.isArray(e))throw new $(Y.format("Expected an array but found $",e));let s=parseInt(t);if(isNaN(s))throw new $(Y.format("Expected an array index but found $",t));if(s<0)throw new $(Y.format("Array index is out of bound - $",t));e[s]=r}putDataInObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new $(Y.format("Expected an object but found $",e));e[t]=r}constructor(...e){super(...e),this.signature=new B("Set").setNamespace(A.SYSTEM_CTX).setParameters(new Map([L.ofEntry(rS,new I().setName(rS).setType(m.of(c.STRING)).setMinLength(1),!1),L.ofEntry(rO,I.ofAny(rO))])).setEvents(new Map([D.outputEventMapEntry(new Map)]))}}let rw="value",rI="eventName",rP="results";class ry extends ef{getSignature(){return this.signature}async internalExecute(e){let t=e.getEvents(),r=e.getArguments(),s=r?.get(rI),n=e?.getArguments()?.get(rP).map(t=>{let r=t[rw];if(T(r))throw new $("Expect a value object");let s=r.value;return r.isExpression&&(s=new rM(s).evaluate(e.getValuesMap())),[t.name,s]}).reduce((e,t)=>(e.set(t[0],t[1]),e),new Map);return t?.has(s)||t?.set(s,[]),t?.get(s)?.push(n),new F([G.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new B("GenerateEvent").setNamespace(A.SYSTEM).setParameters(new Map([L.ofEntry(rI,I.ofString(rI).setDefaultValue("output")),L.ofEntry(rP,I.ofObject(rP).setProperties(new Map([["name",I.ofString("name")],[rw,L.EXPRESSION]])),!0)])).setEvents(new Map([D.outputEventMapEntry(new Map)]))}}class rx extends ef{static{this.CONDITION="condition"}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rx.CONDITION);return new F([G.of(t||""===t?D.TRUE:D.FALSE,new Map),G.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new B("If").setNamespace(A.SYSTEM).setParameters(new Map([L.ofEntry(rx.CONDITION,I.ofAny(rx.CONDITION))])).setEvents(new Map([D.eventMapEntry(D.TRUE,new Map),D.eventMapEntry(D.FALSE,new Map),D.outputEventMapEntry(new Map)]))}}let rL="stepName";class rU extends ef{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rL);return e.getExecutionContext().set(t,!0),new F([G.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new B("Break").setNamespace(A.SYSTEM_LOOP).setParameters(new Map([L.ofEntry(rL,I.of(rL,c.STRING))])).setEvents(new Map([D.outputEventMapEntry(new Map([]))]))}}let rb="count",rV="value",rv="index";class rC extends ef{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rb),r=0,s=e.getStatementExecution()?.getStatement()?.getStatementName();return new F({next(){if(r>=t||s&&e.getExecutionContext()?.get(s))return s&&e.getExecutionContext()?.delete(s),G.outputOf(new Map([[rV,r]]));let n=G.of(D.ITERATION,new Map([[rv,r]]));return++r,n}})}constructor(...e){super(...e),this.signature=new B("CountLoop").setNamespace(A.SYSTEM_LOOP).setParameters(new Map([L.ofEntry(rb,I.of(rb,c.INTEGER))])).setEvents(new Map([D.eventMapEntry(D.ITERATION,new Map([[rv,I.of(rv,c.INTEGER)]])),D.outputEventMapEntry(new Map([[rV,I.of(rV,c.INTEGER)]]))]))}}let rD="source",rG="each",r$="index",rF="value";class rB extends ef{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rD),r=0,s=e.getStatementExecution()?.getStatement()?.getStatementName();return new F({next(){if(r>=t.length||s&&e.getExecutionContext()?.get(s))return s&&e.getExecutionContext()?.delete(s),G.outputOf(new Map([[rF,r]]));let n=G.of(D.ITERATION,new Map([[r$,r],[rG,t[r]]]));return++r,n}})}constructor(...e){super(...e),this.signature=new B("ForEachLoop").setNamespace(A.SYSTEM_LOOP).setParameters(new Map([L.ofEntry(rD,I.ofArray(rD,I.ofAny(rD)))])).setEvents(new Map([D.eventMapEntry(D.ITERATION,new Map([[r$,I.of(r$,c.INTEGER)],[rG,I.ofAny(rG)]])),D.outputEventMapEntry(new Map([[rF,I.of(rF,c.INTEGER)]]))]))}}let rY="from",rH="step",rk="value",rj="index";class rW extends ef{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rY),r=e.getArguments()?.get("to"),s=e.getArguments()?.get(rH),n=s>0,a=t,i=!1,o=e.getStatementExecution()?.getStatement()?.getStatementName();return new F({next(){if(i)return;if(n&&a>=r||!n&&a<=r||o&&e.getExecutionContext()?.get(o))return i=!0,o&&e.getExecutionContext()?.delete(o),G.outputOf(new Map([[rk,a]]));let t=G.of(D.ITERATION,new Map([[rj,a]]));return a+=s,t}})}constructor(...e){super(...e),this.signature=new B("RangeLoop").setNamespace(A.SYSTEM_LOOP).setParameters(new Map([L.ofEntry(rY,I.of(rY,c.INTEGER,c.LONG,c.FLOAT,c.DOUBLE).setDefaultValue(0)),L.ofEntry("to",I.of("to",c.INTEGER,c.LONG,c.FLOAT,c.DOUBLE).setDefaultValue(1)),L.ofEntry(rH,I.of(rH,c.INTEGER,c.LONG,c.FLOAT,c.DOUBLE).setDefaultValue(1).setNot(new I().setConstant(0)))])).setEvents(new Map([D.eventMapEntry(D.ITERATION,new Map([[rj,I.of(rj,c.INTEGER,c.LONG,c.FLOAT,c.DOUBLE)]])),D.outputEventMapEntry(new Map([[rk,I.of(rk,c.INTEGER,c.LONG,c.FLOAT,c.DOUBLE)]]))]))}}let rX="value";class rJ extends ef{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rX);return new F([G.outputOf(new Map([[rX,t.reduce((e,t)=>e+=t,0)]]))])}constructor(...e){super(...e),this.signature=new B("Add").setNamespace(A.MATH).setParameters(new Map([[rX,new L(rX,I.ofNumber(rX)).setVariableArgument(!0)]])).setEvents(new Map([D.outputEventMapEntry(new Map([[rX,I.ofNumber(rX)]]))]))}}let rq="value",rK="value1",rz="value2";class rQ extends ef{constructor(e,t,r=1,...s){super(),this.paramFunctions=[()=>new Map([[rq,new L(rq,I.ofNumber(rq))]]),()=>new Map([[rK,new L(rK,I.ofNumber(rK))],[rz,new L(rz,I.ofNumber(rz))]])],s&&s.length||(s=[c.DOUBLE]),this.parametersNumber=r,this.mathFunction=t,this.signature=new B(e).setNamespace(A.MATH).setParameters(this.paramFunctions[r-1]()).setEvents(new Map([D.outputEventMapEntry(new Map([[rq,new I().setType(m.of(...s)).setName(rq)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t,r=ew.findPrimitiveNumberType(e.getArguments()?.get(1==this.parametersNumber?rq:rK)).getT2();return 2==this.parametersNumber&&(t=ew.findPrimitiveNumberType(e.getArguments()?.get(rz)).getT2()),new F([G.outputOf(new Map([[rq,this.mathFunction.call(this,r,t)]]))])}}let rZ="value";class r0 extends ef{constructor(){super(),this.signature=new B("Hypotenuse").setNamespace(A.MATH).setParameters(new Map([[rZ,new L(rZ,I.ofNumber(rZ)).setVariableArgument(!0)]])).setEvents(new Map([D.outputEventMapEntry(new Map([[rZ,new I().setType(m.of(c.DOUBLE)).setName(rZ)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rZ);return new F([G.outputOf(new Map([[rZ,Math.sqrt(t.reduce((e,t)=>e+=t*t,0))]]))])}}let r1="value";class r2 extends ef{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(r1);return new F([G.outputOf(new Map([[r1,t.reduce((e,t)=>!e&&0!==e||t>e?t:e)]]))])}constructor(...e){super(...e),this.signature=new B("Maximum").setNamespace(A.MATH).setParameters(new Map([[r1,new L(r1,I.ofNumber(r1)).setVariableArgument(!0)]])).setEvents(new Map([D.outputEventMapEntry(new Map([[r1,I.ofNumber(r1)]]))]))}}let r5="value";class r7 extends ef{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(r5);return new F([G.outputOf(new Map([[r5,t.reduce((e,t)=>!e&&0!==e||t<e?t:e)]]))])}constructor(...e){super(...e),this.signature=new B("Minimum").setNamespace(A.MATH).setParameters(new Map([[r5,new L(r5,I.ofNumber(r5)).setVariableArgument(!0)]])).setEvents(new Map([D.outputEventMapEntry(new Map([[r5,I.ofNumber(r5)]]))]))}}let r4="value";class r9 extends ef{getSignature(){return this.signature}async internalExecute(e){return new F([G.outputOf(new Map([[r4,Math.random()]]))])}constructor(...e){super(...e),this.signature=new B("Random").setNamespace(A.MATH).setEvents(new Map([D.outputEventMapEntry(b.of(r4,I.ofDouble(r4)))]))}}class r6 extends ef{static{this.MIN_VALUE="minValue"}static{this.MAX_VALUE="maxValue"}static{this.VALUE="value"}constructor(e,t,r,s,n){super(),this.signature=new B(e).setParameters(b.of(r6.MIN_VALUE,t,r6.MAX_VALUE,r)).setNamespace(A.MATH).setEvents(new Map([D.outputEventMapEntry(b.of(r6.VALUE,s))])),this.randomFunction=n}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(r6.MIN_VALUE),r=e.getArguments()?.get(r6.MAX_VALUE),s=this.randomFunction(t,r);return new F([G.outputOf(new Map([[r6.VALUE,s]]))])}}class r3{constructor(){this.functionObjectsIndex={Absolute:new rQ("Absolute",e=>Math.abs(e),1,c.INTEGER,c.LONG,c.FLOAT,c.DOUBLE),ArcCosine:new rQ("ArcCosine",e=>Math.acos(e)),ArcSine:new rQ("ArcSine",e=>Math.asin(e)),ArcTangent:new rQ("ArcTangent",e=>Math.atan(e)),Ceiling:new rQ("Ceiling",e=>Math.ceil(e)),Cosine:new rQ("Cosine",e=>Math.cos(e)),HyperbolicCosine:new rQ("HyperbolicCosine",e=>Math.cosh(e)),CubeRoot:new rQ("CubeRoot",e=>Math.cbrt(e)),Exponential:new rQ("Exponential",e=>Math.exp(e)),ExponentialMinus1:new rQ("ExponentialMinus1",e=>Math.expm1(e)),Floor:new rQ("Floor",e=>Math.floor(e)),LogNatural:new rQ("LogNatural",e=>Math.log(e)),Log10:new rQ("Log10",e=>Math.log10(e)),Round:new rQ("Round",e=>Math.round(e),1,c.INTEGER,c.LONG),Sine:new rQ("Sine",e=>Math.sin(e)),HyperbolicSine:new rQ("HyperbolicSine",e=>Math.sinh(e)),Tangent:new rQ("Tangent",e=>Math.tan(e)),HyperbolicTangent:new rQ("HyperbolicTangent",e=>Math.tanh(e)),ToDegrees:new rQ("ToDegrees",e=>Math.PI/180*e),ToRadians:new rQ("ToRadians",e=>180/Math.PI*e),SquareRoot:new rQ("SquareRoot",e=>Math.sqrt(e)),ArcTangent2:new rQ("ArcTangent2",(e,t)=>Math.atan2(e,t),2),Power:new rQ("Power",(e,t)=>Math.pow(e,t),2),Add:new rJ,Hypotenuse:new r0,Maximum:new r2,Minimum:new r7,Random:new r9,RandomFloat:new r6("RandomFloat",L.of(r6.MIN_VALUE,I.ofFloat(r6.MIN_VALUE).setDefaultValue(0)),L.of(r6.MAX_VALUE,I.ofFloat(r6.MAX_VALUE).setDefaultValue(0x7fffffff)),I.ofFloat(r6.VALUE),(e,t)=>Math.random()*(t-e)+e),RandomInt:new r6("RandomInt",L.of(r6.MIN_VALUE,I.ofInteger(r6.MIN_VALUE).setDefaultValue(0)),L.of(r6.MAX_VALUE,I.ofInteger(r6.MAX_VALUE).setDefaultValue(0x7fffffff)),I.ofInteger(r6.VALUE),(e,t)=>Math.round(Math.random()*(t-e)+e)),RandomLong:new r6("RandomLong",L.of(r6.MIN_VALUE,I.ofLong(r6.MIN_VALUE).setDefaultValue(0)),L.of(r6.MAX_VALUE,I.ofLong(r6.MAX_VALUE).setDefaultValue(Number.MAX_SAFE_INTEGER)),I.ofLong(r6.VALUE),(e,t)=>Math.round(Math.random()*(t-e)+e)),RandomDouble:new r6("RandomDouble",L.of(r6.MIN_VALUE,I.ofDouble(r6.MIN_VALUE).setDefaultValue(0)),L.of(r6.MAX_VALUE,I.ofDouble(r6.MAX_VALUE).setDefaultValue(Number.MAX_VALUE)),I.ofDouble(r6.VALUE),(e,t)=>Math.random()*(t-e)+e)},this.filterableNames=Object.values(this.functionObjectsIndex).map(e=>e.getSignature().getFullName())}async find(e,t){return e!=A.MATH?Promise.resolve(void 0):Promise.resolve(this.functionObjectsIndex[t])}async filter(e){return Promise.resolve(this.filterableNames.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}class r8 extends ef{static{this.SOURCE="source"}static{this.SCHEMA="schema"}static{this.VALUE="value"}static{this.CONVERSION_MODE="conversionMode"}getSignature(){return this.signature}internalExecute(e){let t=e.getArguments()?.get(r8.SOURCE),r=I.from(e?.getArguments()?.get(r8.SCHEMA));if(!r)throw new $("Schema is not supplied.");let s=eE(e.getArguments()?.get(r8.CONVERSION_MODE))||eo.STRICT;return this.convertToSchema(r,e.getSchemaRepository(),t,s)}async convertToSchema(e,t,r,s){try{return new F([G.outputOf(b.of(r8.VALUE,ep.validate([],e,t,r,!0,s)))])}catch(e){throw new $(e?.message)}}constructor(...e){super(...e),this.signature=new B("ObjectConvert").setNamespace(A.SYSTEM_OBJECT).setParameters(new Map([L.ofEntry(r8.SOURCE,I.ofAny(r8.SCHEMA)),L.ofEntry(r8.SCHEMA,I.SCHEMA,!1,y.CONSTANT),L.ofEntry(r8.CONVERSION_MODE,I.ofString(r8.CONVERSION_MODE).setEnums(eu()))])).setEvents(new Map([D.outputEventMapEntry(b.of(r8.VALUE,I.ofAny(r8.VALUE)))]))}}let se="value",st="source";class sr extends ef{constructor(){super(),this.signature=new B("ObjectDeleteKey").setNamespace(A.SYSTEM_OBJECT).setParameters(new Map([L.ofEntry(st,I.ofAny(st)),L.ofEntry("key",I.ofString("key"))])).setEvents(new Map([D.outputEventMapEntry(new Map([[se,I.ofAny(se)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(st),r=e.getArguments()?.get("key");return T(t)?new F([G.outputOf(new Map([[se,void 0]]))]):(t=ex(t),delete t[r],new F([G.outputOf(new Map([[se,t]]))]))}}let ss="source";class sn extends ef{constructor(e,t){super(),this.signature=new B(e).setNamespace(A.SYSTEM_OBJECT).setParameters(new Map([L.ofEntry(ss,I.ofAny(ss))])).setEvents(new Map([D.outputEventMapEntry(new Map([["value",t]]))]))}getSignature(){return this.signature}}let sa="value";class si extends sn{constructor(){super("ObjectEntries",I.ofArray(sa,I.ofArray("tuple",I.ofString("key"),I.ofAny("value"))))}async internalExecute(e){var t=e.getArguments()?.get("source");if(T(t))return new F([G.outputOf(new Map([[sa,[]]]))]);let r=Object.entries(ex(t)).sort((e,t)=>e[0].localeCompare(t[0]));return new F([G.outputOf(new Map([[sa,r]]))])}}let so="value";class sE extends sn{constructor(){super("ObjectKeys",I.ofArray(so,I.ofString(so)))}async internalExecute(e){var t=e.getArguments()?.get("source");if(T(t))return new F([G.outputOf(new Map([[so,[]]]))]);let r=Object.keys(ex(t)).sort((e,t)=>e.localeCompare(t));return new F([G.outputOf(new Map([[so,r]]))])}}let su="value",sA="source",sT="overwrite",sl="deleteKeyOnNull";class sc extends ef{constructor(){super(),this.signature=new B("ObjectPutValue").setNamespace(A.SYSTEM_OBJECT).setParameters(new Map([L.ofEntry(sA,I.ofObject(sA)),L.ofEntry("key",I.ofString("key")),L.ofEntry(su,I.ofAny(su)),L.ofEntry(sT,I.ofBoolean(sT).setDefaultValue(!0)),L.ofEntry(sl,I.ofBoolean(sl).setDefaultValue(!1))])).setEvents(new Map([D.outputEventMapEntry(new Map([[su,I.ofObject(su)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(sA),r=e.getArguments()?.get("key"),s=e.getArguments()?.get(su),n=e.getArguments()?.get(sT),a=e.getArguments()?.get(sl),i=new e5(t,"Data.");return i.setValue(r,s,n,a),new F([G.outputOf(new Map([[su,i.getStore()]]))])}}let sh="value";class sR extends sn{constructor(){super("ObjectValues",I.ofArray(sh,I.ofAny(sh)))}async internalExecute(e){var t=e.getArguments()?.get("source");if(T(t))return new F([G.outputOf(new Map([[sh,[]]]))]);let r=Object.entries(ex(t)).sort((e,t)=>e[0].localeCompare(t[0])).map(e=>e[1]);return new F([G.outputOf(new Map([[sh,r]]))])}}class sg{constructor(){this.functionObjectsIndex={ObjectValues:new sR,ObjectKeys:new sE,ObjectEntries:new si,ObjectDeleteKey:new sr,ObjectPutValue:new sc,ObjectConvert:new r8},this.filterableNames=Object.values(this.functionObjectsIndex).map(e=>e.getSignature().getFullName())}async find(e,t){return e!=A.SYSTEM_OBJECT?Promise.resolve(void 0):Promise.resolve(this.functionObjectsIndex[t])}async filter(e){return Promise.resolve(this.filterableNames.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}}class sm extends ef{static{this.VALUES="values"}static{this.STREAM="stream"}static{this.LOG="LOG"}static{this.ERROR="ERROR"}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(sm.VALUES),r=e.getArguments()?.get(sm.STREAM);return(r===sm.LOG?console?.log:console?.error)?.(...t),new F([G.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new B("Print").setNamespace(A.SYSTEM).setParameters(new Map([L.ofEntry(sm.VALUES,I.ofAny(sm.VALUES),!0),L.ofEntry(sm.STREAM,I.ofString(sm.STREAM).setEnums([sm.LOG,sm.ERROR]).setDefaultValue(sm.LOG))])).setEvents(new Map([D.outputEventMapEntry(new Map)]))}}class sp extends ef{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_SEARCH_STRING_NAME="searchString"}static{this.PARAMETER_SECOND_STRING_NAME="secondString"}static{this.PARAMETER_THIRD_STRING_NAME="thirdString"}static{this.PARAMETER_INDEX_NAME="index"}static{this.PARAMETER_SECOND_INDEX_NAME="secondIndex"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new L(sp.PARAMETER_STRING_NAME,I.ofString(sp.PARAMETER_STRING_NAME))}static{this.PARAMETER_SECOND_STRING=new L(sp.PARAMETER_SECOND_STRING_NAME,I.ofString(sp.PARAMETER_SECOND_STRING_NAME))}static{this.PARAMETER_THIRD_STRING=new L(sp.PARAMETER_THIRD_STRING_NAME,I.ofString(sp.PARAMETER_THIRD_STRING_NAME))}static{this.PARAMETER_INDEX=new L(sp.PARAMETER_INDEX_NAME,I.ofInteger(sp.PARAMETER_INDEX_NAME))}static{this.PARAMETER_SECOND_INDEX=new L(sp.PARAMETER_SECOND_INDEX_NAME,I.ofInteger(sp.PARAMETER_SECOND_INDEX_NAME))}static{this.PARAMETER_SEARCH_STRING=new L(sp.PARAMETER_SEARCH_STRING_NAME,I.ofString(sp.PARAMETER_STRING_NAME))}static{this.EVENT_STRING=new D(D.OUTPUT,b.of(sp.EVENT_RESULT_NAME,I.ofString(sp.EVENT_RESULT_NAME)))}static{this.EVENT_BOOLEAN=new D(D.OUTPUT,b.of(sp.EVENT_RESULT_NAME,I.ofBoolean(sp.EVENT_RESULT_NAME)))}static{this.EVENT_INT=new D(D.OUTPUT,b.of(sp.EVENT_RESULT_NAME,I.ofInteger(sp.EVENT_RESULT_NAME)))}static{this.EVENT_ARRAY=new D(D.OUTPUT,b.of(sp.EVENT_RESULT_NAME,I.ofArray(sp.EVENT_RESULT_NAME)))}constructor(e,t,r,...s){super();let n=new Map;s.forEach(e=>n.set(e.getParameterName(),e)),this.signature=new B(t).setNamespace(e).setParameters(n).setEvents(b.of(r.getName(),r))}getSignature(){return this.signature}static ofEntryStringStringAndBooleanOutput(e,t){return[e,new class extends sp{async internalExecute(e){let r=e?.getArguments()?.get(sp.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sp.PARAMETER_SEARCH_STRING_NAME);return new F([G.outputOf(b.of(sp.EVENT_RESULT_NAME,t(r,s)))])}}(A.STRING,e,sp.EVENT_BOOLEAN,sp.PARAMETER_STRING,sp.PARAMETER_SEARCH_STRING)]}static ofEntryStringIntegerAndStringOutput(e,t){return[e,new class extends sp{async internalExecute(e){let r=e?.getArguments()?.get(sp.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sp.PARAMETER_INDEX_NAME);return new F([G.outputOf(b.of(sp.EVENT_RESULT_NAME,t(r,s)))])}}(A.STRING,e,sp.EVENT_STRING,sp.PARAMETER_STRING,sp.PARAMETER_INDEX)]}static ofEntryStringStringAndIntegerOutput(e,t){return[e,new class extends sp{async internalExecute(e){let r=e?.getArguments()?.get(sp.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sp.PARAMETER_SEARCH_STRING_NAME);return new F([G.outputOf(b.of(sp.EVENT_RESULT_NAME,t(r,s)))])}}(A.STRING,e,sp.EVENT_INT,sp.PARAMETER_STRING,sp.PARAMETER_SEARCH_STRING)]}static ofEntryStringAndStringOutput(e,t){return[e,new class extends sp{async internalExecute(e){let r=e?.getArguments()?.get(sp.PARAMETER_STRING_NAME);return new F([G.outputOf(b.of(sp.EVENT_RESULT_NAME,t(r)))])}}(A.STRING,e,sp.EVENT_STRING,sp.PARAMETER_STRING)]}static ofEntryStringAndBooleanOutput(e,t){return[e,new class extends sp{async internalExecute(e){let r=e?.getArguments()?.get(sp.PARAMETER_STRING_NAME);return new F([G.outputOf(b.of(sp.EVENT_RESULT_NAME,t(r)))])}}(A.STRING,e,sp.EVENT_BOOLEAN,sp.PARAMETER_STRING)]}static ofEntryStringStringIntegerAndIntegerOutput(e,t){return[e,new class extends sp{async internalExecute(e){let r=e?.getArguments()?.get(sp.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sp.PARAMETER_SEARCH_STRING_NAME),n=e?.getArguments()?.get(sp.PARAMETER_INDEX_NAME);return new F([G.outputOf(b.of(sp.EVENT_RESULT_NAME,t(r,s,n)))])}}(A.STRING,e,sp.EVENT_INT,sp.PARAMETER_STRING,sp.PARAMETER_SEARCH_STRING,sp.PARAMETER_INDEX)]}static ofEntryStringIntegerIntegerAndStringOutput(e,t){return[e,new class extends sp{async internalExecute(e){let r=e?.getArguments()?.get(sp.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sp.PARAMETER_INDEX_NAME),n=e?.getArguments()?.get(sp.PARAMETER_SECOND_INDEX_NAME);return new F([G.outputOf(b.of(sp.EVENT_RESULT_NAME,t(r,s,n)))])}}(A.STRING,e,sp.EVENT_STRING,sp.PARAMETER_STRING,sp.PARAMETER_INDEX,sp.PARAMETER_SECOND_INDEX)]}static ofEntryStringStringStringAndStringOutput(e,t){return[e,new class extends sp{async internalExecute(e){let r=e?.getArguments()?.get(sp.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sp.PARAMETER_SECOND_STRING_NAME),n=e?.getArguments()?.get(sp.PARAMETER_THIRD_STRING_NAME);return new F([G.outputOf(b.of(sp.EVENT_RESULT_NAME,t(r,s,n)))])}}(A.STRING,e,sp.EVENT_STRING,sp.PARAMETER_STRING,sp.PARAMETER_SECOND_STRING,sp.PARAMETER_THIRD_STRING)]}static ofEntryStringAndIntegerOutput(e,t){return[e,new class extends sp{async internalExecute(e){let r=e?.getArguments()?.get(sp.PARAMETER_STRING_NAME);return new F([G.outputOf(b.of(sp.EVENT_RESULT_NAME,t(r)))])}}(A.STRING,e,sp.EVENT_INT,sp.PARAMETER_STRING)]}}class sf extends ef{static{this.VALUE="value"}constructor(){super(),this.signature=new B("Concatenate").setNamespace(A.STRING).setParameters(new Map([[sf.VALUE,new L(sf.VALUE,new I().setName(sf.VALUE).setType(new g(c.STRING))).setVariableArgument(!0)]])).setEvents(new Map([D.outputEventMapEntry(new Map([[sf.VALUE,I.ofString(sf.VALUE)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(sf.VALUE),r="";return t.reduce((e,t)=>r=e+t,r),new F([G.outputOf(new Map([[sf.VALUE,r]]))])}}class sN extends ef{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_AT_START_NAME="startPosition"}static{this.PARAMETER_AT_END_NAME="endPosition"}static{this.EVENT_RESULT_NAME="result"}constructor(){super(),this.PARAMETER_STRING=new L(sN.PARAMETER_STRING_NAME,I.ofString(sN.PARAMETER_STRING_NAME)),this.PARAMETER_AT_START=new L(sN.PARAMETER_AT_START_NAME,I.ofInteger(sN.PARAMETER_AT_START_NAME)),this.PARAMETER_AT_END=new L(sN.PARAMETER_AT_END_NAME,I.ofInteger(sN.PARAMETER_AT_END_NAME)),this.EVENT_STRING=new D(D.OUTPUT,new Map([[sN.EVENT_RESULT_NAME,I.ofString(sN.EVENT_RESULT_NAME)]])),this.signature=new B("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]]))}getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(sN.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(sN.PARAMETER_AT_START_NAME),s=e?.getArguments()?.get(sN.PARAMETER_AT_END_NAME);if(s>=r){let e="";return e+=t.substring(0,r),e+=t.substring(s),new F([G.outputOf(new Map([[sN.EVENT_RESULT_NAME,e.toString()]]))])}return new F([G.outputOf(new Map([[sN.EVENT_RESULT_NAME,t]]))])}}class s_ extends ef{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_AT_POSITION_NAME="position"}static{this.PARAMETER_INSERT_STRING_NAME="insertString"}getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(s_.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(s_.PARAMETER_AT_POSITION_NAME),s=e?.getArguments()?.get(s_.PARAMETER_INSERT_STRING_NAME),n="";return n+=t.substring(0,r),n+=s,n+=t.substring(r),new F([G.outputOf(new Map([[this.EVENT_RESULT_NAME,n]]))])}constructor(...e){super(...e),this.EVENT_RESULT_NAME="result",this.PARAMETER_STRING=new L(s_.PARAMETER_STRING_NAME,I.ofString(s_.PARAMETER_STRING_NAME)),this.PARAMETER_AT_POSITION=new L(s_.PARAMETER_AT_POSITION_NAME,I.ofInteger(s_.PARAMETER_AT_POSITION_NAME)),this.PARAMETER_INSERT_STRING=new L(s_.PARAMETER_INSERT_STRING_NAME,I.ofString(s_.PARAMETER_INSERT_STRING_NAME)),this.EVENT_STRING=new D(D.OUTPUT,new Map([[this.EVENT_RESULT_NAME,I.ofString(this.EVENT_RESULT_NAME)]])),this.signature=new B("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([D.outputEventMapEntry(new Map([[this.EVENT_RESULT_NAME,I.ofString(this.EVENT_RESULT_NAME)]]))]))}}class sM extends ef{static{this.PARAMETER_REGEX_NAME="regex"}static{this.PARAMETER_STRING_NAME="string"}static{this.EVENT_RESULT_NAME="result"}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(sM.PARAMETER_REGEX_NAME),r=e.getArguments()?.get(sM.PARAMETER_STRING_NAME);return new F([G.outputOf(new Map([[sM.EVENT_RESULT_NAME,!!r.match(t)?.length]]))])}constructor(...e){super(...e),this.signature=new B("Matches").setNamespace(A.STRING).setParameters(b.ofEntries(b.entry(...L.ofEntry(sM.PARAMETER_REGEX_NAME,I.ofString(sM.PARAMETER_REGEX_NAME))),b.entry(...L.ofEntry(sM.PARAMETER_STRING_NAME,I.ofString(sM.PARAMETER_STRING_NAME))))).setEvents(b.ofEntries(b.entry(...D.outputEventMapEntry(new Map([[sM.EVENT_RESULT_NAME,I.ofBoolean(sM.EVENT_RESULT_NAME)]])))))}}class sS extends ef{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_POSTPAD_STRING_NAME="postpadString"}static{this.PARAMETER_LENGTH_NAME="length"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new L(sS.PARAMETER_STRING_NAME,I.ofString(sS.PARAMETER_STRING_NAME))}static{this.PARAMETER_POSTPAD_STRING=new L(sS.PARAMETER_POSTPAD_STRING_NAME,I.ofString(sS.PARAMETER_POSTPAD_STRING_NAME))}static{this.PARAMETER_LENGTH=new L(sS.PARAMETER_LENGTH_NAME,I.ofInteger(sS.PARAMETER_LENGTH_NAME))}static{this.EVENT_STRING=new D(D.OUTPUT,new Map([[sS.EVENT_RESULT_NAME,I.ofString(sS.EVENT_RESULT_NAME)]]))}constructor(){super(),this.signature=new B("PostPad").setNamespace(A.STRING).setParameters(new Map([[sS.PARAMETER_STRING.getParameterName(),sS.PARAMETER_STRING],[sS.PARAMETER_POSTPAD_STRING.getParameterName(),sS.PARAMETER_POSTPAD_STRING],[sS.PARAMETER_LENGTH.getParameterName(),sS.PARAMETER_LENGTH]])).setEvents(new Map([[sS.EVENT_STRING.getName(),sS.EVENT_STRING]]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(sS.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(sS.PARAMETER_POSTPAD_STRING_NAME),s=e.getArguments()?.get(sS.PARAMETER_LENGTH_NAME),n="",a=r.length;for(n+=t;a<=s;)n+=r,a+=r.length;return n.length-t.length<s&&(n+=r.substring(0,s-(n.length-t.length))),new F([G.outputOf(new Map([[sS.EVENT_RESULT_NAME,n.toString()]]))])}}class sO extends ef{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_PREPAD_STRING_NAME="prepadString"}static{this.PARAMETER_LENGTH_NAME="length"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new L(sO.PARAMETER_STRING_NAME,I.ofString(sO.PARAMETER_STRING_NAME))}static{this.PARAMETER_PREPAD_STRING=new L(sO.PARAMETER_PREPAD_STRING_NAME,I.ofString(sO.PARAMETER_PREPAD_STRING_NAME))}static{this.PARAMETER_LENGTH=new L(sO.PARAMETER_LENGTH_NAME,I.ofInteger(sO.PARAMETER_LENGTH_NAME))}static{this.EVENT_STRING=new D(D.OUTPUT,new Map([[sO.EVENT_RESULT_NAME,I.ofString(sO.EVENT_RESULT_NAME)]]))}getSignature(){return this.signature}constructor(){super(),this.signature=new B("PrePad").setNamespace(A.STRING).setParameters(new Map([[sO.PARAMETER_STRING.getParameterName(),sO.PARAMETER_STRING],[sO.PARAMETER_PREPAD_STRING.getParameterName(),sO.PARAMETER_PREPAD_STRING],[sO.PARAMETER_LENGTH.getParameterName(),sO.PARAMETER_LENGTH]])).setEvents(new Map([[sO.EVENT_STRING.getName(),sO.EVENT_STRING]]))}async internalExecute(e){let t=e.getArguments()?.get(sO.PARAMETER_STRING_NAME),r=e.getArguments()?.get(sO.PARAMETER_PREPAD_STRING_NAME),s=e.getArguments()?.get(sO.PARAMETER_LENGTH_NAME),n="",a=r.length;for(;a<=s;)n+=r,a+=r.length;return n.length<s&&(n+=r.substring(0,s-n.length)),n+=t,new F([G.outputOf(new Map([[sO.EVENT_RESULT_NAME,n]]))])}}class sd extends ef{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_BOOLEAN_NAME="boolean"}static{this.PARAMETER_FIRST_OFFSET_NAME="firstOffset"}static{this.PARAMETER_OTHER_STRING_NAME="otherString"}static{this.PARAMETER_SECOND_OFFSET_NAME="secondOffset"}static{this.PARAMETER_INTEGER_NAME="length"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new L(sd.PARAMETER_STRING_NAME,I.ofString(sd.PARAMETER_STRING_NAME))}static{this.PARAMETER_OTHER_STRING=new L(sd.PARAMETER_OTHER_STRING_NAME,I.ofString(sd.PARAMETER_OTHER_STRING_NAME))}static{this.PARAMETER_FIRST_OFFSET=new L(sd.PARAMETER_FIRST_OFFSET_NAME,I.ofInteger(sd.PARAMETER_FIRST_OFFSET_NAME))}static{this.PARAMETER_SECOND_OFFSET=new L(sd.PARAMETER_SECOND_OFFSET_NAME,I.ofInteger(sd.PARAMETER_SECOND_OFFSET_NAME))}static{this.PARAMETER_INTEGER=new L(sd.PARAMETER_INTEGER_NAME,I.ofInteger(sd.PARAMETER_INTEGER_NAME))}static{this.PARAMETER_BOOLEAN=new L(sd.PARAMETER_BOOLEAN_NAME,I.ofBoolean(sd.PARAMETER_BOOLEAN_NAME))}static{this.EVENT_BOOLEAN=new D(D.OUTPUT,new Map([[sd.EVENT_RESULT_NAME,I.ofBoolean(sd.EVENT_RESULT_NAME)]]))}getSignature(){return this.signature}constructor(){super(),this.signature=new B("RegionMatches").setNamespace(A.STRING).setParameters(new Map([[sd.PARAMETER_STRING.getParameterName(),sd.PARAMETER_STRING],[sd.PARAMETER_BOOLEAN.getParameterName(),sd.PARAMETER_BOOLEAN],[sd.PARAMETER_FIRST_OFFSET.getParameterName(),sd.PARAMETER_FIRST_OFFSET],[sd.PARAMETER_OTHER_STRING.getParameterName(),sd.PARAMETER_OTHER_STRING],[sd.PARAMETER_SECOND_OFFSET.getParameterName(),sd.PARAMETER_SECOND_OFFSET],[sd.PARAMETER_INTEGER.getParameterName(),sd.PARAMETER_INTEGER]])).setEvents(new Map([[sd.EVENT_BOOLEAN.getName(),sd.EVENT_BOOLEAN]]))}async internalExecute(e){let t=e.getArguments()?.get(sd.PARAMETER_STRING_NAME),r=e.getArguments()?.get(sd.PARAMETER_BOOLEAN_NAME),s=e.getArguments()?.get(sd.PARAMETER_FIRST_OFFSET_NAME),n=e?.getArguments()?.get(sd.PARAMETER_OTHER_STRING_NAME),a=e?.getArguments()?.get(sd.PARAMETER_SECOND_OFFSET_NAME),i=e.getArguments()?.get(sd.PARAMETER_INTEGER_NAME),o=!1;return o=!(s<0)&&!(a<0)&&!(s+i>t.length)&&!(a+i>n.length)&&(r?(t=t.substring(s,s+i).toUpperCase())==n.substring(a,a+i).toUpperCase():(t=t.substring(s,s+i))==n.substring(a,i)),new F([G.outputOf(new Map([[sd.EVENT_RESULT_NAME,o]]))])}}class sw extends ef{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_AT_START_NAME="startPosition"}static{this.PARAMETER_AT_LENGTH_NAME="lengthPosition"}static{this.PARAMETER_REPLACE_STRING_NAME="replaceString"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new L(sw.PARAMETER_STRING_NAME,I.ofString(sw.PARAMETER_STRING_NAME))}static{this.PARAMETER_AT_START=new L(sw.PARAMETER_AT_START_NAME,I.ofInteger(sw.PARAMETER_AT_START_NAME))}static{this.PARAMETER_AT_LENGTH=new L(sw.PARAMETER_AT_LENGTH_NAME,I.ofInteger(sw.PARAMETER_AT_LENGTH_NAME))}static{this.PARAMETER_REPLACE_STRING=new L(sw.PARAMETER_REPLACE_STRING_NAME,I.ofString(sw.PARAMETER_REPLACE_STRING_NAME))}static{this.EVENT_STRING=new D(D.OUTPUT,new Map([[sw.EVENT_RESULT_NAME,I.ofString(sw.EVENT_RESULT_NAME)]]))}constructor(){super(),this.signature=new B("ReplaceAtGivenPosition").setNamespace(A.STRING).setParameters(new Map([[sw.PARAMETER_STRING.getParameterName(),sw.PARAMETER_STRING],[sw.PARAMETER_AT_START.getParameterName(),sw.PARAMETER_AT_START],[sw.PARAMETER_AT_LENGTH.getParameterName(),sw.PARAMETER_AT_LENGTH],[sw.PARAMETER_REPLACE_STRING.getParameterName(),sw.PARAMETER_REPLACE_STRING]])).setEvents(new Map([[sw.EVENT_STRING.getName(),sw.EVENT_STRING]]))}getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(sw.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(sw.PARAMETER_AT_START_NAME),s=e?.getArguments()?.get(sw.PARAMETER_AT_LENGTH_NAME),n=e?.getArguments()?.get(sw.PARAMETER_REPLACE_STRING_NAME);if(t.length,r<s){let e="";e+=t.substring(0,r),e+=n,e+=t.substring(r+s)}return new F([G.outputOf(new Map([[sw.EVENT_RESULT_NAME,t]]))])}}class sI extends ef{constructor(){super(),this.VALUE="value",this.signature=new B("Reverse").setNamespace(A.STRING).setParameters(new Map([[this.VALUE,new L(this.VALUE,I.ofString(this.VALUE)).setVariableArgument(!1)]])).setEvents(new Map([D.outputEventMapEntry(new Map([[this.VALUE,new I().setType(m.of(c.STRING)).setName(this.VALUE)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(this.VALUE),r=t.length-1,s="";for(;r>=0;)s+=t.charAt(r--);return new F([G.outputOf(b.of(this.VALUE,s))])}}class sP extends ef{getSignature(){return this.signature}constructor(){super(),this.PARAMETER_STRING_NAME="string",this.PARAMETER_SPLIT_STRING_NAME="searchString",this.EVENT_RESULT_NAME="result",this.PARAMETER_STRING=new L(this.PARAMETER_STRING_NAME,I.ofString(this.PARAMETER_STRING_NAME)),this.PARAMETER_SPLIT_STRING=new L(this.PARAMETER_SPLIT_STRING_NAME,I.ofString(this.PARAMETER_SPLIT_STRING_NAME)),this.EVENT_ARRAY=new D(D.OUTPUT,b.of(this.EVENT_RESULT_NAME,I.ofArray(this.EVENT_RESULT_NAME))),this.signature=new B("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([D.outputEventMapEntry(new Map([[this.EVENT_RESULT_NAME,I.ofArray(this.EVENT_RESULT_NAME)]]))]))}async internalExecute(e){let t=e.getArguments()?.get(this.PARAMETER_STRING_NAME),r=e.getArguments()?.get(this.PARAMETER_SPLIT_STRING_NAME);return new F([G.outputOf(b.of(this.EVENT_RESULT_NAME,t.split(r)))])}}class sy extends ef{getSignature(){return this.signature}constructor(){super(),this.PARAMETER_INPUT_ANYTYPE_NAME="anytype",this.EVENT_RESULT_NAME="result",this.PARAMETER_INPUT_ANYTYPE=new L(this.PARAMETER_INPUT_ANYTYPE_NAME,I.ofAny(this.PARAMETER_INPUT_ANYTYPE_NAME)),this.EVENT_STRING=new D(D.OUTPUT,new Map([[this.EVENT_RESULT_NAME,I.ofString(this.EVENT_RESULT_NAME)]])),this.signature=new B("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]]))}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 F([G.outputOf(new Map([[this.EVENT_RESULT_NAME,r]]))])}}class sx extends ef{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_LENGTH_NAME="length"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new L(sx.PARAMETER_STRING_NAME,I.ofString(sx.PARAMETER_STRING_NAME))}static{this.PARAMETER_LENGTH=new L(sx.PARAMETER_LENGTH_NAME,I.ofInteger(sx.PARAMETER_LENGTH_NAME))}static{this.EVENT_STRING=new D(D.OUTPUT,new Map([[sx.EVENT_RESULT_NAME,I.ofString(sx.EVENT_RESULT_NAME)]]))}getSignature(){return this.signature}constructor(){super(),this.signature=new B("TrimTo").setNamespace(A.STRING).setParameters(new Map([[sx.PARAMETER_STRING.getParameterName(),sx.PARAMETER_STRING],[sx.PARAMETER_LENGTH.getParameterName(),sx.PARAMETER_LENGTH]])).setEvents(new Map([[sx.EVENT_STRING.getName(),sx.EVENT_STRING]]))}async internalExecute(e){let t=e.getArguments()?.get(sx.PARAMETER_STRING_NAME),r=e.getArguments()?.get(sx.PARAMETER_LENGTH_NAME);return new F([G.outputOf(new Map([[sx.EVENT_RESULT_NAME,t.substring(0,r)]]))])}}class sL{async find(e,t){return e!=A.STRING?Promise.resolve(void 0):Promise.resolve(this.repoMap.get(t))}async filter(e){return Promise.resolve(this.filterableNames.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}constructor(){this.repoMap=b.ofArrayEntries(sp.ofEntryStringAndStringOutput("Trim",e=>e.trim()),sp.ofEntryStringAndStringOutput("TrimStart",e=>e.trimStart()),sp.ofEntryStringAndStringOutput("TrimEnd",e=>e.trimEnd()),sp.ofEntryStringAndIntegerOutput("Length",e=>e.length),sp.ofEntryStringStringAndIntegerOutput("Frequency",(e,t)=>{let r=0,s=e.indexOf(t);for(;-1!=s;)r++,s=e.indexOf(t,s+1);return r}),sp.ofEntryStringAndStringOutput("LowerCase",e=>e.toLocaleLowerCase()),sp.ofEntryStringAndStringOutput("UpperCase",e=>e.toUpperCase()),sp.ofEntryStringAndBooleanOutput("IsBlank",e=>""===e.trim()),sp.ofEntryStringAndBooleanOutput("IsEmpty",e=>""===e),sp.ofEntryStringStringAndBooleanOutput("Contains",(e,t)=>-1!=e.indexOf(t)),sp.ofEntryStringStringAndBooleanOutput("EndsWith",(e,t)=>e.endsWith(t)),sp.ofEntryStringStringAndBooleanOutput("StartsWith",(e,t)=>e.startsWith(t)),sp.ofEntryStringStringAndBooleanOutput("EqualsIgnoreCase",(e,t)=>e.toUpperCase()==t.toUpperCase()),sp.ofEntryStringStringAndBooleanOutput("Matches",(e,t)=>new RegExp(t).test(e)),sp.ofEntryStringStringAndIntegerOutput("IndexOf",(e,t)=>e.indexOf(t)),sp.ofEntryStringStringAndIntegerOutput("LastIndexOf",(e,t)=>e.lastIndexOf(t)),sp.ofEntryStringIntegerAndStringOutput("Repeat",(e,t)=>e.repeat(t)),sp.ofEntryStringStringIntegerAndIntegerOutput("IndexOfWithStartPoint",(e,t,r)=>e.indexOf(t,r)),sp.ofEntryStringStringIntegerAndIntegerOutput("LastIndexOfWithStartPoint",(e,t,r)=>e.lastIndexOf(t,r)),sp.ofEntryStringStringStringAndStringOutput("Replace",(e,t,r)=>e.replaceAll(t,r)),sp.ofEntryStringStringStringAndStringOutput("ReplaceFirst",(e,t,r)=>e.replace(t,r)),sp.ofEntryStringIntegerIntegerAndStringOutput("SubString",(e,t,r)=>e.substring(t,r)),C(new sf),C(new sN),C(new s_),C(new sS),C(new sO),C(new sd),C(new sw),C(new sI),C(new sP),C(new sy),C(new sx),C(new sM)),this.filterableNames=Array.from(this.repoMap.values()).map(e=>e.getSignature().getFullName())}}class sU extends ef{static{this.PARAMETER_TIMESTAMP_NAME="isoTimeStamp"}static{this.PARAMETER_TIMESTAMP_NAME_ONE="isoTimeStamp1"}static{this.PARAMETER_TIMESTAMP_NAME_TWO="isoTimeStamp2"}static{this.PARAMETER_UNIT_NAME="unit"}static{this.PARAMETER_NUMBER_NAME="number"}static{this.PARAMETER_TIMESTAMP=new L(sU.PARAMETER_TIMESTAMP_NAME,I.ofRef(A.DATE+".Timestamp"))}static{this.PARAMETER_TIMESTAMP_ONE=new L(sU.PARAMETER_TIMESTAMP_NAME_ONE,I.ofRef(A.DATE+".Timestamp"))}static{this.PARAMETER_TIMESTAMP_TWO=new L(sU.PARAMETER_TIMESTAMP_NAME_TWO,I.ofRef(A.DATE+".Timestamp"))}static{this.PARAMETER_VARIABLE_UNIT=new L(sU.PARAMETER_UNIT_NAME,I.ofRef(A.DATE+".Timeunit")).setVariableArgument(!0)}static{this.PARAMETER_UNIT=new L(sU.PARAMETER_UNIT_NAME,I.ofRef(A.DATE+".Timeunit"))}static{this.PARAMETER_NUMBER=new L(sU.PARAMETER_NUMBER_NAME,I.ofInteger(sU.PARAMETER_NUMBER_NAME))}static{this.EVENT_RESULT_NAME="result"}static{this.EVENT_TIMESTAMP_NAME="isoTimeStamp"}static{this.EVENT_INT=new D(D.OUTPUT,b.of(sU.EVENT_RESULT_NAME,I.ofInteger(sU.EVENT_RESULT_NAME)))}static{this.EVENT_STRING=new D(D.OUTPUT,b.of(sU.EVENT_RESULT_NAME,I.ofString(sU.EVENT_RESULT_NAME)))}static{this.EVENT_LONG=new D(D.OUTPUT,b.of(sU.EVENT_RESULT_NAME,I.ofLong(sU.EVENT_RESULT_NAME)))}static{this.EVENT_BOOLEAN=new D(D.OUTPUT,b.of(sU.EVENT_RESULT_NAME,I.ofBoolean(sU.EVENT_RESULT_NAME)))}static{this.EVENT_TIMESTAMP=new D(D.OUTPUT,b.of(sU.EVENT_TIMESTAMP_NAME,I.ofRef(A.DATE+".Timestamp")))}getSignature(){return this.signature}constructor(e,t,...r){if(super(),this.signature=new B(e).setNamespace(A.DATE).setEvents(b.of(t.getName(),t)),!r?.length)return;let s=new Map;r.forEach(e=>s.set(e.getParameterName(),e)),this.signature.setParameters(s)}static ofEntryTimestampAndIntegerOutput(e,t){return[e,new class extends sU{async internalExecute(e){return new F([G.outputOf(b.of(sU.EVENT_RESULT_NAME,t(e.getArguments()?.get(sU.PARAMETER_TIMESTAMP_NAME))))])}}(e,sU.EVENT_INT,sU.PARAMETER_TIMESTAMP)]}static ofEntryTimestampAndBooleanOutput(e,t){return[e,new class extends sU{async internalExecute(e){return new F([G.outputOf(b.of(sU.EVENT_RESULT_NAME,t(e.getArguments()?.get(sU.PARAMETER_TIMESTAMP_NAME))))])}}(e,sU.EVENT_BOOLEAN,sU.PARAMETER_TIMESTAMP)]}static ofEntryTimestampAndStringOutput(e,t){return[e,new class extends sU{async internalExecute(e){return new F([G.outputOf(b.of(sU.EVENT_RESULT_NAME,t(e.getArguments()?.get(sU.PARAMETER_TIMESTAMP_NAME))))])}}(e,sU.EVENT_STRING,sU.PARAMETER_TIMESTAMP)]}static ofEntryTimestampIntegerAndTimestampOutput(e,t){return[e,new class extends sU{async internalExecute(e){return new F([G.outputOf(b.of(sU.EVENT_RESULT_NAME,t(e.getArguments()?.get(sU.PARAMETER_TIMESTAMP_NAME),e.getArguments()?.get(sU.PARAMETER_NUMBER_NAME))))])}}(e,sU.EVENT_TIMESTAMP,sU.PARAMETER_TIMESTAMP,sU.PARAMETER_NUMBER)]}static ofEntryTimestampTimestampAndTOutput(e,t,r,...s){return[e,new class extends sU{async internalExecute(e){let t=[];return s?.length&&t.push(...s.map(t=>e.getArguments()?.get(t.getParameterName()))),new F([G.outputOf(b.of(sU.EVENT_RESULT_NAME,r(e.getArguments()?.get(sU.PARAMETER_TIMESTAMP_NAME_ONE),e.getArguments()?.get(sU.PARAMETER_TIMESTAMP_NAME_TWO),t)))])}}(e,t,sU.PARAMETER_TIMESTAMP_ONE,sU.PARAMETER_TIMESTAMP_TWO,...s)]}}function sb(t){let r=e.fromISO(t,{setZone:!0});if(!r?.isValid)throw Error("Invalid ISO timestamp");return r}class sV extends sU{static{this.PARAMETER_YEARS_NAME="years"}static{this.PARAMETER_MONTHS_NAME="months"}static{this.PARAMETER_DAYS_NAME="days"}static{this.PARAMETER_HOURS_NAME="hours"}static{this.PARAMETER_MINUTES_NAME="minutes"}static{this.PARAMETER_SECONDS_NAME="seconds"}static{this.PARAMETER_MILLISECONDS_NAME="milliseconds"}constructor(e){super(e?"AddTime":"SubtractTime",sU.EVENT_TIMESTAMP,sU.PARAMETER_TIMESTAMP,L.of(sV.PARAMETER_YEARS_NAME,I.ofNumber(sV.PARAMETER_YEARS_NAME).setDefaultValue(0)),L.of(sV.PARAMETER_MONTHS_NAME,I.ofNumber(sV.PARAMETER_MONTHS_NAME).setDefaultValue(0)),L.of(sV.PARAMETER_DAYS_NAME,I.ofNumber(sV.PARAMETER_DAYS_NAME).setDefaultValue(0)),L.of(sV.PARAMETER_HOURS_NAME,I.ofNumber(sV.PARAMETER_HOURS_NAME).setDefaultValue(0)),L.of(sV.PARAMETER_MINUTES_NAME,I.ofNumber(sV.PARAMETER_MINUTES_NAME).setDefaultValue(0)),L.of(sV.PARAMETER_SECONDS_NAME,I.ofNumber(sV.PARAMETER_SECONDS_NAME).setDefaultValue(0)),L.of(sV.PARAMETER_MILLISECONDS_NAME,I.ofNumber(sV.PARAMETER_MILLISECONDS_NAME).setDefaultValue(0))),this.isAdd=e}async internalExecute(e){let t;let r=sb(e.getArguments()?.get(sU.PARAMETER_TIMESTAMP_NAME)),s=e.getArguments()?.get(sV.PARAMETER_YEARS_NAME),n=e.getArguments()?.get(sV.PARAMETER_MONTHS_NAME),a=e.getArguments()?.get(sV.PARAMETER_DAYS_NAME),i=e.getArguments()?.get(sV.PARAMETER_HOURS_NAME),o={years:s,months:n,days:a,hours:i,minutes:e.getArguments()?.get(sV.PARAMETER_MINUTES_NAME),seconds:e.getArguments()?.get(sV.PARAMETER_SECONDS_NAME),milliseconds:e.getArguments()?.get(sV.PARAMETER_MILLISECONDS_NAME)};return t=this.isAdd?r.plus(o):r.minus(o),new F([G.outputOf(b.of(sU.EVENT_TIMESTAMP_NAME,t.toISO()))])}}class sv extends ef{constructor(e,t){super(),this.paramName=`epoch${t?"Seconds":"Milliseconds"}`,this.isSeconds=t,this.signature=new B(e).setNamespace(A.DATE).setParameters(new Map([[this.paramName,L.of(this.paramName,new I().setName(this.paramName).setType(m.of(c.LONG,c.INTEGER,c.STRING)))]])).setEvents(new Map([[sU.EVENT_TIMESTAMP.getName(),sU.EVENT_TIMESTAMP]]))}getSignature(){return this.signature}internalExecute(e){let t=parseInt(e.getArguments()?.get(this.paramName)),r=this.isSeconds?1e3*t:t;if(isNaN(r))throw Error(`Please provide a valid value for ${this.paramName}.`);return Promise.resolve(new F([G.outputOf(b.of(sU.EVENT_TIMESTAMP_NAME,new Date(r).toISOString()))]))}}class sC extends ef{constructor(e,t){super(),this.isSeconds=t,this.signature=new B(e).setNamespace(A.DATE).setParameters(new Map([[sU.PARAMETER_TIMESTAMP_NAME,sU.PARAMETER_TIMESTAMP]])).setEvents(new Map([[sU.EVENT_TIMESTAMP.getName(),sU.EVENT_LONG]]))}getSignature(){return this.signature}internalExecute(t){let r=t.getArguments()?.get(sU.PARAMETER_TIMESTAMP_NAME),s=this.isSeconds?e.fromISO(r).toSeconds():e.fromISO(r).toMillis();return Promise.resolve(new F([G.outputOf(b.of(sU.EVENT_RESULT_NAME,s))]))}}class sD extends sU{static{this.PARAMETER_FORMAT_NAME="format"}static{this.PARAMETER_LOCALE_NAME="locale"}constructor(){super("ToDateString",sU.EVENT_STRING,sU.PARAMETER_TIMESTAMP,L.of(sD.PARAMETER_FORMAT_NAME,I.ofString(sD.PARAMETER_FORMAT_NAME)),L.of(sD.PARAMETER_LOCALE_NAME,I.ofString(sD.PARAMETER_LOCALE_NAME).setDefaultValue("")))}async internalExecute(e){let t=sb(e.getArguments()?.get(sU.PARAMETER_TIMESTAMP_NAME)),r=e.getArguments()?.get(sD.PARAMETER_FORMAT_NAME),s=e.getArguments()?.get(sD.PARAMETER_LOCALE_NAME);return""===s&&(s="system"),new F([G.outputOf(b.of(sU.EVENT_RESULT_NAME,t.toFormat(r,{locale:s})))])}}class sG extends sU{static{this.PARAMETER_TIMEZONE_NAME="timezone"}constructor(){super("SetTimeZone",sU.EVENT_TIMESTAMP,sU.PARAMETER_TIMESTAMP,L.of(sG.PARAMETER_TIMEZONE_NAME,I.ofString(sG.PARAMETER_TIMEZONE_NAME)))}async internalExecute(e){let t=sb(e.getArguments()?.get(sU.PARAMETER_TIMESTAMP_NAME)),r=e.getArguments()?.get(sG.PARAMETER_TIMEZONE_NAME);return new F([G.outputOf(b.of(sU.EVENT_TIMESTAMP_NAME,t.setZone(r).toISO()))])}}class s$ extends sU{static{this.PARAMETER_START_TIMESTAMP_NAME="startTimestamp"}static{this.PARAMETER_END_TIMESTAMP_NAME="endTimestamp"}static{this.PARAMETER_CHECK_TIMESTAMP_NAME="checkTimestamp"}constructor(){super("IsBetween",s$.EVENT_BOOLEAN,L.of(s$.PARAMETER_START_TIMESTAMP_NAME,I.ofRef(A.DATE+".Timestamp")),L.of(s$.PARAMETER_END_TIMESTAMP_NAME,I.ofRef(A.DATE+".Timestamp")),L.of(s$.PARAMETER_CHECK_TIMESTAMP_NAME,I.ofRef(A.DATE+".Timestamp")))}async internalExecute(e){let t=e.getArguments()?.get(s$.PARAMETER_START_TIMESTAMP_NAME),r=e.getArguments()?.get(s$.PARAMETER_END_TIMESTAMP_NAME),s=e.getArguments()?.get(s$.PARAMETER_CHECK_TIMESTAMP_NAME),n=sb(t),a=sb(r),i=sb(s);return n>a&&([n,a]=[a,n]),new F([G.outputOf(b.of(s$.EVENT_RESULT_NAME,n<=i&&i<=a))])}}class sF extends ef{constructor(e){super(),this.isLast=e,this.signature=new B(e?"LastOf":"FirstOf").setNamespace(A.DATE).setParameters(new Map([[sU.PARAMETER_TIMESTAMP_NAME,new L(sU.PARAMETER_TIMESTAMP_NAME,I.ofRef(A.DATE+".Timestamp")).setVariableArgument(!0)]])).setEvents(new Map([[sU.EVENT_TIMESTAMP.getName(),sU.EVENT_TIMESTAMP]]))}getSignature(){return this.signature}internalExecute(e){let t=e.getArguments()?.get(sU.PARAMETER_TIMESTAMP_NAME);if(!t?.length)throw Error("No timestamps provided");let r=t.map(e=>sb(e));return r.sort((e,t)=>e.toMillis()-t.toMillis()),Promise.resolve(new F([G.outputOf(b.of(sU.EVENT_TIMESTAMP_NAME,r[this.isLast?r.length-1:0].toISO()))]))}}class sB extends sU{static{this.EVENT_TIME_OBJECT_NAME="object"}static{this.EVENT_TIME_ARRAY_NAME="array"}constructor(e){super(e?"TimeAsArray":"TimeAsObject",new D(D.OUTPUT,b.of(e?sB.EVENT_TIME_ARRAY_NAME:sB.EVENT_TIME_OBJECT_NAME,e?I.ofArray(sB.EVENT_TIME_ARRAY_NAME,I.ofInteger("timeParts")):I.ofRef(A.DATE+".TimeObject"))),sU.PARAMETER_TIMESTAMP),this.isArray=e}async internalExecute(e){let t=sb(e.getArguments()?.get(sU.PARAMETER_TIMESTAMP_NAME)).toObject();return new F([G.outputOf(b.of(this.isArray?sB.EVENT_TIME_ARRAY_NAME:sB.EVENT_TIME_OBJECT_NAME,this.isArray?[t.year,t.month,t.day,t.hour,t.minute,t.second,t.millisecond]:t))])}}class sY extends sU{constructor(e){super(e?"StartOf":"EndOf",sU.EVENT_TIMESTAMP,sU.PARAMETER_TIMESTAMP,sU.PARAMETER_UNIT),this.isStart=e}async internalExecute(e){let t=sb(e.getArguments()?.get(sU.PARAMETER_TIMESTAMP_NAME)),r=e.getArguments()?.get(sU.PARAMETER_UNIT_NAME)?.toLowerCase();r=r.substring(0,r.length-1);let s=this.isStart?t.startOf(r):t.endOf(r);return new F([G.outputOf(b.of(sU.EVENT_TIMESTAMP_NAME,s.toISO({includeOffset:!0})))])}}class sH extends sU{static{this.EVENT_NAMES_NAME="names"}static{this.PARAMETER_UNIT_NAME="unit"}static{this.PARAMETER_LOCALE_NAME="locale"}constructor(){super("GetNames",new D(sH.EVENT_NAMES_NAME,b.of(sH.EVENT_NAMES_NAME,I.ofArray(sH.EVENT_NAMES_NAME,I.ofString(sH.EVENT_NAMES_NAME)))),new L(sH.PARAMETER_UNIT_NAME,I.ofString(sH.PARAMETER_UNIT_NAME).setEnums(["TIMEZONES","MONTHS","WEEKDAYS"])),new L(sH.PARAMETER_LOCALE_NAME,I.ofString(sH.PARAMETER_LOCALE_NAME).setDefaultValue("system")))}async internalExecute(e){let t=e.getArguments()?.get(sH.PARAMETER_UNIT_NAME),r=e.getArguments()?.get(sH.PARAMETER_LOCALE_NAME);return new F([G.outputOf(b.of(sH.EVENT_NAMES_NAME,this.getNames(t,r)))])}getNames(t,r){return"TIMEZONES"===t?Intl.supportedValuesOf("timeZone"):"MONTHS"===t?[1,2,3,4,5,6,7,8,9,10,11,12].map(t=>e.now().setLocale(r).set({month:t}).toFormat("MMMM")):"WEEKDAYS"===t?[1,2,3,4,5,6,7].map(t=>e.now().setLocale(r).set({month:7,year:2024,day:t}).toFormat("EEEE")):[]}}class sk extends ef{internalExecute(t){let r=t.getArguments()?.get(sU.PARAMETER_TIMESTAMP_NAME),s=e.fromISO(r);return Promise.resolve(new F([G.outputOf(b.of(sU.EVENT_RESULT_NAME,s.isValid))]))}getSignature(){return this.signature}constructor(...e){super(...e),this.signature=new B("IsValidISODate").setNamespace(A.DATE).setParameters(new Map([L.ofEntry(sU.PARAMETER_TIMESTAMP_NAME,I.ofString(sU.PARAMETER_TIMESTAMP_NAME))])).setEvents(new Map([D.outputEventMapEntry(b.of(sU.EVENT_RESULT_NAME,I.ofBoolean(sU.EVENT_RESULT_NAME)))]))}}class sj extends sU{static{this.PARAMETER_BASE_NAME="base"}static{this.PARAMETER_BASE=new L(sj.PARAMETER_BASE_NAME,I.ofRef(A.DATE+".Timestamp").setDefaultValue(""))}static{this.PARAMETER_LOCALE_NAME="locale"}static{this.PARAMETER_LOCALE=new L(sj.PARAMETER_LOCALE_NAME,I.ofString(sj.PARAMETER_LOCALE_NAME).setDefaultValue("system"))}static{this.PARAMETER_FORMAT_NAME="format"}static{this.PARAMETER_FORMAT=new L(sj.PARAMETER_FORMAT_NAME,I.ofString(sj.PARAMETER_FORMAT_NAME).setEnums(["LONG","SHORT","NARROW"]).setDefaultValue("LONG"))}static{this.PARAMETER_ROUND_NAME="round"}static{this.PARAMETER_ROUND=new L(sj.PARAMETER_ROUND_NAME,I.ofBoolean(sj.PARAMETER_ROUND_NAME).setDefaultValue(!0))}constructor(){super("FromNow",sU.EVENT_STRING,sU.PARAMETER_TIMESTAMP,sj.PARAMETER_FORMAT,sj.PARAMETER_BASE,sU.PARAMETER_VARIABLE_UNIT,sj.PARAMETER_ROUND,sj.PARAMETER_LOCALE)}internalExecute(t){let r=t.getArguments()?.get(sj.PARAMETER_BASE_NAME),s=""===r?e.now():e.fromISO(r),n=t.getArguments()?.get(sU.PARAMETER_TIMESTAMP_NAME),a=e.fromISO(n),i=t.getArguments()?.get(sj.PARAMETER_UNIT_NAME),o=t.getArguments()?.get(sj.PARAMETER_FORMAT_NAME),E=t.getArguments()?.get(sj.PARAMETER_ROUND_NAME),u=t.getArguments()?.get(sj.PARAMETER_LOCALE_NAME),A={base:s,style:o?.toLowerCase(),round:E,locale:u};return i?.length>0&&(A.unit=i.map(e=>e.toLowerCase())),Promise.resolve(new F([G.outputOf(b.of(sU.EVENT_RESULT_NAME,a.toRelative(A)??"Unknown"))]))}}class sW extends sU{static{this.PARAMETER_FORMAT_NAME="format"}static{this.PARAMETER_TIMESTAMP_STRING_NAME="timestampString"}constructor(){super("FromDateString",sU.EVENT_TIMESTAMP,L.of(sW.PARAMETER_TIMESTAMP_STRING_NAME,I.ofString(sW.PARAMETER_TIMESTAMP_STRING_NAME)),L.of(sW.PARAMETER_FORMAT_NAME,I.ofString(sW.PARAMETER_FORMAT_NAME)))}async internalExecute(t){let r=t.getArguments()?.get(sW.PARAMETER_TIMESTAMP_STRING_NAME),s=t.getArguments()?.get(sW.PARAMETER_FORMAT_NAME),n=e.fromFormat(r,s);return new F([G.outputOf(b.of(sU.EVENT_RESULT_NAME,n.toISO()))])}}class sX extends sU{constructor(){super("GetCurrentTimestamp",sU.EVENT_TIMESTAMP)}async internalExecute(t){return new F([G.outputOf(b.of(sU.EVENT_TIMESTAMP_NAME,e.now().toISO()))])}}class sJ{find(e,t){return e!=A.DATE?Promise.resolve(void 0):Promise.resolve(this.repoMap.get(t))}filter(e){return Promise.resolve(this.filterableNames.filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase())))}constructor(){this.repoMap=b.ofArrayEntries(["EpochSecondsToTimestamp",new sv("EpochSecondsToTimestamp",!0)],["EpochMillisecondsToTimestamp",new sv("EpochMillisecondsToTimestamp",!1)],sU.ofEntryTimestampAndIntegerOutput("GetDay",e=>sb(e).day),sU.ofEntryTimestampAndIntegerOutput("GetDayOfWeek",e=>sb(e).weekday),sU.ofEntryTimestampAndIntegerOutput("GetMonth",e=>sb(e).month),sU.ofEntryTimestampAndIntegerOutput("GetYear",e=>sb(e).year),sU.ofEntryTimestampAndIntegerOutput("GetHours",e=>sb(e).hour),sU.ofEntryTimestampAndIntegerOutput("GetMinutes",e=>sb(e).minute),sU.ofEntryTimestampAndIntegerOutput("GetSeconds",e=>sb(e).second),sU.ofEntryTimestampAndIntegerOutput("GetMilliseconds",e=>sb(e).millisecond),sU.ofEntryTimestampAndIntegerOutput("GetDaysInMonth",e=>sb(e).daysInMonth),sU.ofEntryTimestampAndIntegerOutput("GetDaysInYear",e=>sb(e).daysInYear),["TimestampToEpochSeconds",new sC("TimestampToEpochSeconds",!0)],["TimestampToEpochMilliseconds",new sC("TimestampToEpochMilliseconds",!1)],sU.ofEntryTimestampAndStringOutput("GetTimeZoneName",e=>sb(e).zoneName),sU.ofEntryTimestampAndStringOutput("GetTimeZoneOffsetLong",e=>sb(e).offsetNameLong),sU.ofEntryTimestampAndStringOutput("GetTimeZoneOffsetShort",e=>sb(e).offsetNameShort),sU.ofEntryTimestampAndIntegerOutput("GetTimeZoneOffset",e=>sb(e).offset),["ToDateString",new sD],["AddTime",new sV(!0)],["SubtractTime",new sV(!1)],["GetCurrentTimestamp",new sX],sU.ofEntryTimestampTimestampAndTOutput("Difference",new D(D.OUTPUT,b.of(sU.EVENT_RESULT_NAME,I.ofRef(`${A.DATE}.Duration`))),(e,t,r)=>{let s;let n=sb(e),a=sb(t);r?.[0]?.length&&(s=r[0]?.filter(e=>!!e).map(e=>e.toLowerCase()));let i=n.diff(a);return s?.length?i.shiftTo(...s).toObject():i.toObject()},sU.PARAMETER_VARIABLE_UNIT),sU.ofEntryTimestampIntegerAndTimestampOutput("SetDay",(e,t)=>sb(e).set({day:t}).toISO()),sU.ofEntryTimestampIntegerAndTimestampOutput("SetMonth",(e,t)=>sb(e).set({month:t}).toISO()),sU.ofEntryTimestampIntegerAndTimestampOutput("SetYear",(e,t)=>sb(e).set({year:t}).toISO()),sU.ofEntryTimestampIntegerAndTimestampOutput("SetHours",(e,t)=>sb(e).set({hour:t}).toISO()),sU.ofEntryTimestampIntegerAndTimestampOutput("SetMinutes",(e,t)=>sb(e).set({minute:t}).toISO()),sU.ofEntryTimestampIntegerAndTimestampOutput("SetSeconds",(e,t)=>sb(e).set({second:t}).toISO()),sU.ofEntryTimestampIntegerAndTimestampOutput("SetMilliseconds",(e,t)=>sb(e).set({millisecond:t}).toISO()),["SetTimeZone",new sG],sU.ofEntryTimestampTimestampAndTOutput("IsBefore",new D(D.OUTPUT,b.of(sU.EVENT_RESULT_NAME,I.ofBoolean(sU.EVENT_RESULT_NAME))),(e,t)=>sb(e)<sb(t)),sU.ofEntryTimestampTimestampAndTOutput("IsAfter",new D(D.OUTPUT,b.of(sU.EVENT_RESULT_NAME,I.ofBoolean(sU.EVENT_RESULT_NAME))),(e,t)=>sb(e)>sb(t)),sU.ofEntryTimestampTimestampAndTOutput("IsSame",new D(D.OUTPUT,b.of(sU.EVENT_RESULT_NAME,I.ofBoolean(sU.EVENT_RESULT_NAME))),(e,t)=>sb(e)===sb(t)),sU.ofEntryTimestampTimestampAndTOutput("IsSameOrBefore",new D(D.OUTPUT,b.of(sU.EVENT_RESULT_NAME,I.ofBoolean(sU.EVENT_RESULT_NAME))),(e,t)=>sb(e)<=sb(t)),sU.ofEntryTimestampTimestampAndTOutput("IsSameOrAfter",new D(D.OUTPUT,b.of(sU.EVENT_RESULT_NAME,I.ofBoolean(sU.EVENT_RESULT_NAME))),(e,t)=>sb(e)>=sb(t)),sU.ofEntryTimestampAndBooleanOutput("IsInLeapYear",e=>sb(e).isInLeapYear),sU.ofEntryTimestampAndBooleanOutput("IsInDST",e=>sb(e).isInDST),["IsBetween",new s$],["LastOf",new sF(!0)],["FirstOf",new sF(!1)],["StartOf",new sY(!0)],["EndOf",new sY(!1)],["TimeAsObject",new sB(!1)],["TimeAsArray",new sB(!0)],["GetNames",new sH],["IsValidISODate",new sk],["FromNow",new sj],["FromDateString",new sW]),this.filterableNames=Array.from(this.repoMap.values()).map(e=>e.getSignature().getFullName())}}class sq extends ef{static{this.MILLIS="millis"}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(sq.MILLIS);return await new Promise(e=>setTimeout(e,t)),new F([G.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new B("Wait").setNamespace(A.SYSTEM).setParameters(new Map([L.ofEntry(sq.MILLIS,I.ofNumber(sq.MILLIS).setMinimum(0).setDefaultValue(0))])).setEvents(new Map([D.outputEventMapEntry(new Map)]))}}t({},"HybridRepository",()=>sK);class sK{constructor(...e){this.repos=e}async find(e,t){for(let r of this.repos){let s=await r.find(e,t);if(s)return s}}async filter(e){let t=new Set;for(let r of this.repos)(await r.filter(e)).forEach(e=>t.add(e));return Array.from(t)}}class sz extends ef{static{this.SOURCE="source"}static{this.SCHEMA="schema"}static{this.IS_VALID="isValid"}getSignature(){return this.signature}internalExecute(e){let t=e.getArguments()?.get(sz.SOURCE),r=I.from(e?.getArguments()?.get(sz.SCHEMA));if(!r)throw new $("Schema is not supplied.");return this.validateSchema(r,e.getSchemaRepository(),t)}async validateSchema(e,t,r){try{return await ep.validate([],e,t,r,!0),new F([G.outputOf(b.of(sz.IS_VALID,!0))])}catch(e){return new F([G.outputOf(b.of(sz.IS_VALID,!1))])}}constructor(...e){super(...e),this.signature=new B("ValidateSchema").setNamespace(A.SYSTEM_OBJECT).setParameters(new Map([L.ofEntry(sz.SOURCE,I.ofAny(sz.SCHEMA)),L.ofEntry(sz.SCHEMA,I.SCHEMA,!1,y.CONSTANT)])).setEvents(new Map([D.outputEventMapEntry(b.of(sz.IS_VALID,I.ofBoolean(sz.IS_VALID)))]))}}class sQ{constructor(){this.map=new Map([[A.SYSTEM_CTX,new Map([C(new th),C(new tm),C(new rd)])],[A.SYSTEM_LOOP,new Map([C(new rW),C(new rC),C(new rU),C(new rB)])],[A.SYSTEM,new Map([C(new rx),C(new ry),C(new sm),C(new sq),C(new tu),C(new sz)])]]),this.filterableNames=Array.from(this.map.values()).flatMap(e=>Array.from(e.values())).map(e=>e.getSignature().getFullName())}async find(e,t){return this.map.get(e)?.get(t)}async filter(e){return Array.from(this.filterableNames).filter(t=>-1!==t.toLowerCase().indexOf(e.toLowerCase()))}}class sZ extends sK{constructor(){super(new sQ,new r3,new sL,new tA,new sg,new sJ)}}t({},"StatementExecution",()=>s1),t({},"StatementMessage",()=>s0);class s0{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 s1{constructor(e){this.messages=[],this.dependencies=new Set,this.statement=e}getStatement(){return this.statement}setStatement(e){return this.statement=e,this}getMessages(){return this.messages}setMessages(e){return this.messages=e,this}getDependencies(){return this.dependencies}setDependencies(e){return this.dependencies=e,this}getUniqueKey(){return this.statement.getStatementName()}addMessage(e,t){this.messages.push(new s0(e,t))}addDependency(e){this.dependencies.add(e)}getDepenedencies(){return this.dependencies}equals(e){return e instanceof s1&&e.statement.equals(this.statement)}}t({},"ContextTokenValueExtractor",()=>s2);class s2 extends e2{static{this.PREFIX="Context."}constructor(e){super(),this.context=e}getValueInternal(e){let t=e.split(e2.REGEX_DOT),r=t[1],s=r.indexOf("["),n=2;return -1!=s&&(r=t[1].substring(0,s),t[1]=t[1].substring(s),n=1),this.retrieveElementFrom(e,t,n,this.context.get(r)?.getElement())}getPrefix(){return s2.PREFIX}getStore(){return T(this.context)?this.context:Array.from(this.context.entries()).reduce((e,[t,r])=>(T(r)||(e[t]=r.getElement()),e),{})}}t({},"OutputMapTokenValueExtractor",()=>s5);class s5 extends e2{static{this.PREFIX="Steps."}constructor(e){super(),this.output=e}getValueInternal(e){let t=e.split(e2.REGEX_DOT),r=1,s=this.output.get(t[r++]);if(!s||r>=t.length)return;let n=s.get(t[r++]);if(!n||r>t.length)return;if(r===t.length)return n;let a=t[r].indexOf("[");if(-1===a){let s=n.get(t[r++]);return this.retrieveElementFrom(e,t,r,s)}let i=t[r].substring(0,a),o=n.get(i);return this.retrieveElementFrom(e,t,r,{[i]:o})}getPrefix(){return s5.PREFIX}getStore(){return this.convertMapToObj(this.output)}convertMapToObj(e){return 0===e.size?{}:Array.from(e.entries()).reduce((e,[t,r])=>(e[t]=r instanceof Map?this.convertMapToObj(r):r,e),{})}}t({},"ArgumentsTokenValueExtractor",()=>s7);class s7 extends e2{static{this.PREFIX="Arguments."}constructor(e){super(),this.args=e}getValueInternal(e){let t=e.split(e2.REGEX_DOT),r=t[1],s=r.indexOf("["),n=2;return -1!=s&&(r=t[1].substring(0,s),t[1]=t[1].substring(s),n=1),this.retrieveElementFrom(e,t,n,this.args.get(r))}getPrefix(){return s7.PREFIX}getStore(){return T(this.args)?this.args:Array.from(this.args.entries()).reduce((e,[t,r])=>(e[t]=r,e),{})}}t({},"GraphVertex",()=>s9),t({},"ExecutionGraph",()=>s4);class s4{constructor(e=!1){this.nodeMap=new Map,this.isSubGrph=e}getVerticesData(){return Array.from(this.nodeMap.values()).map(e=>e.getData())}addVertex(e){if(!this.nodeMap.has(e.getUniqueKey())){let t=new s9(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 H(this.getVerticesWithNoIncomingEdges()),r=new Set;for(;!t.isEmpty();){if(r.has(t.getFirst().getKey()))return!0;e=t.removeFirst(),r.add(e.getKey()),e.hasOutgoingEdges()&&t.addAll(Array.from(e.getOutVertices().values()).flatMap(e=>Array.from(e)))}return!1}addVertices(e){for(let t of e)this.addVertex(t)}getNodeMap(){return this.nodeMap}isSubGraph(){return this.isSubGrph}toString(){return"Execution Graph : \n"+Array.from(this.nodeMap.values()).map(e=>e.toString()).join("\n")}}class s9{constructor(e,t){this.outVertices=new Map,this.inVertices=new Set,this.data=t,this.graph=e}getData(){return this.data}setData(e){return this.data=e,this}getOutVertices(){return this.outVertices}setOutVertices(e){return this.outVertices=e,this}getInVertices(){return this.inVertices}setInVertices(e){return this.inVertices=e,this}getGraph(){return this.graph}setGraph(e){return this.graph=e,this}getKey(){return this.data.getUniqueKey()}addOutEdgeTo(e,t){return this.outVertices.has(e)||this.outVertices.set(e,new Set),this.outVertices.get(e).add(t),t.inVertices.add(new J(this,e)),t}addInEdgeTo(e,t){return this.inVertices.add(new J(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 s4(!0);var r=new H(Array.from(this.outVertices.get(e)??[]));for(r.map(e=>e.getData()).forEach(e=>t.addVertex(e));!r.isEmpty();)Array.from(r.pop().outVertices.values()).flatMap(e=>Array.from(e)).forEach(e=>{t.addVertex(e.getData()),r.add(e)});return t}toString(){var e=Array.from(this.getInVertices()).map(e=>e.getT1().getKey()+"("+e.getT2()+")").join(", "),t=Array.from(this.outVertices.entries()).map(([e,t])=>e+": "+Array.from(t).map(e=>e.getKey()).join(",")).join("\n ");return this.getKey()+":\n In: "+e+"\n Out: \n "+t}}t({},"KIRuntime",()=>nr),t({},"JsonExpression",()=>s6);class s6{constructor(e){this.expression=e}getExpression(){return this.expression}}t({},"ParameterReferenceType",()=>s3);var s3=((o={}).VALUE="VALUE",o.EXPRESSION="EXPRESSION",o);function s8(){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({},"FunctionExecutionParameters",()=>ne);class ne{constructor(e,t,r){this.count=0,this.executionContext=new Map,this.valueExtractors=new Map,this.functionRepository=e,this.schemaRepository=t,this.executionId=r??s8()}getExecutionId(){return this.executionId}getContext(){return this.context}setContext(e){this.context=e;let t=new s2(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 s5(e);return this.valueExtractors.set(t.getPrefix(),t),this}getCount(){return this.count}setCount(e){return this.count=e,this}getValuesMap(){return this.valueExtractors}getFunctionRepository(){return this.functionRepository}setFunctionRepository(e){return this.functionRepository=e,this}getSchemaRepository(){return this.schemaRepository}setSchemaRepository(e){return this.schemaRepository=e,this}addTokenValueExtractor(...e){for(let t of e)this.valueExtractors.set(t.getPrefix(),t);return this}setValuesMap(e){for(let[t,r]of e.entries())this.valueExtractors.set(t,r);return this}setExecutionContext(e){return this.executionContext=e,this}getExecutionContext(){return this.executionContext}}t({},"StatementMessageType",()=>nt);var nt=((E={}).ERROR="ERROR",E.WARNING="WARNING",E.MESSAGE="MESSAGE",E);class nr extends ef{static{this.PARAMETER_NEEDS_A_VALUE='Parameter "$" needs a value'}static{this.STEP_REGEX_PATTERN=RegExp("Steps\\.([a-zA-Z0-9\\\\-]{1,})\\.([a-zA-Z0-9\\\\-]{1,})","g")}static{this.VERSION=1}static{this.MAX_EXECUTION_ITERATIONS=1e7}constructor(e,t=!1){if(super(),this.debugMode=!1,this.debugMode=t,this.fd=e,this.fd.getVersion()>nr.VERSION)throw new $("Runtime is at a lower version "+nr.VERSION+" and trying to run code from version "+this.fd.getVersion()+".")}getSignature(){return this.fd}async getExecutionPlan(e,t){let r=new s4;for(let s of Array.from(this.fd.getSteps().values()))r.addVertex(await this.prepareStatementExecution(s,e,t));return Array.from(this.makeEdges(r).getT2().entries()).forEach(e=>{let t=r.getNodeMap().get(e[0])?.getData();t&&t.addMessage(nt.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 s7(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 H;r.addAll(e.getVerticesWithNoIncomingEdges());let s=new H;for(;(!r.isEmpty()||!s.isEmpty())&&!t.getEvents()?.has(D.OUTPUT);)if(await this.processBranchQue(t,r,s),await this.processExecutionQue(t,r,s),t.setCount(t.getCount()+1),t.getCount()==nr.MAX_EXECUTION_ITERATIONS)throw new $("Execution locked in an infinite loop");if(!e.isSubGraph()&&!t.getEvents()?.size){let e=this.getSignature().getEvents();if(e.size&&e.get(D.OUTPUT)?.getParameters()?.size)throw new $("No events raised")}let n=Array.from(t.getEvents()?.entries()??[]).flatMap(e=>e[1].map(t=>G.of(e[0],t)));return new F(n.length||e.isSubGraph()?n:[G.of(D.OUTPUT,new Map)])}async processExecutionQue(e,t,r){if(!t.isEmpty()){let s=t.pop();await this.allDependenciesResolvedVertex(s,e.getSteps())?await this.executeVertex(s,e,r,t,e.getFunctionRepository()):t.add(s)}}async processBranchQue(e,t,r){if(r.length){let s=r.pop();await this.allDependenciesResolvedTuples(s.getT2(),e.getSteps())?await this.executeBranch(e,t,s):r.add(s)}}async executeBranch(e,t,r){let s,n=r.getT4();do if(r.getT1().getVerticesData().map(e=>e.getStatement().getStatementName()).forEach(t=>e.getSteps()?.delete(t)),await this.executeGraph(r.getT1(),e),(s=r.getT3().next())&&(e.getSteps()?.has(n.getData().getStatement().getStatementName())||e.getSteps()?.set(n.getData().getStatement().getStatementName(),new Map),e.getSteps()?.get(n.getData().getStatement().getStatementName())?.set(s.getName(),this.resolveInternalExpressions(s.getResult(),e)),this.debugMode)){let t=n.getData().getStatement();console.log(`EID: ${e.getExecutionId()} Step : ${t.getStatementName()} => ${t.getNamespace()}.${t.getName()}`),console.log(`EID: ${e.getExecutionId()} Event : ${s.getName()} : `,e.getSteps().get(t.getStatementName()).get(s.getName()))}while(s&&s.getName()!=D.OUTPUT)s?.getName()==D.OUTPUT&&n.getOutVertices().has(D.OUTPUT)&&(n?.getOutVertices()?.get(D.OUTPUT)??[]).forEach(async r=>{await this.allDependenciesResolvedVertex(r,e.getSteps())&&t.add(r)})}async executeVertex(e,t,r,s,n){let a,i=e.getData().getStatement();if(i.getExecuteIftrue().size&&!(Array.from(i.getExecuteIftrue().entries())??[]).filter(e=>e[1]).map(([e])=>new rM(e).evaluate(t.getValuesMap())).every(e=>!T(e)&&!1!==e))return;let o=await n.find(i.getNamespace(),i.getName());if(!o)throw new $(Y.format("$.$ function is not found.",i.getNamespace(),i.getName()));let E=o?.getSignature().getParameters(),u=this.getArgumentsFromParametersMap(t,i,E??new Map);this.debugMode&&(console.log(`EID: ${t.getExecutionId()} Step : ${i.getStatementName()} => ${i.getNamespace()}.${i.getName()}`),console.log(`EID: ${t.getExecutionId()} Arguments : `,u));let A=t.getContext();a=o instanceof nr?new ne(t.getFunctionRepository(),t.getSchemaRepository(),`${t.getExecutionId()}_${i.getStatementName()}`).setArguments(u).setValuesMap(new Map(Array.from(t.getValuesMap().values()).filter(e=>e.getPrefix()!==s7.PREFIX&&e.getPrefix()!==s5.PREFIX&&e.getPrefix()!==s2.PREFIX).map(e=>[e.getPrefix(),e]))):new ne(t.getFunctionRepository(),t.getSchemaRepository(),t.getExecutionId()).setValuesMap(t.getValuesMap()).setContext(A).setArguments(u).setEvents(t.getEvents()).setSteps(t.getSteps()).setStatementExecution(e.getData()).setCount(t.getCount()).setExecutionContext(t.getExecutionContext());let l=await o.execute(a),c=l.next();if(!c)throw new $(Y.format("Executing $ returned no events",i.getStatementName()));let h=c.getName()==D.OUTPUT;if(t.getSteps()?.has(i.getStatementName())||t.getSteps().set(i.getStatementName(),new Map),t.getSteps().get(i.getStatementName()).set(c.getName(),this.resolveInternalExpressions(c.getResult(),t)),this.debugMode&&(console.log(`EID: ${t.getExecutionId()} Step : ${i.getStatementName()} => ${i.getNamespace()}.${i.getName()}`),console.log(`EID: ${t.getExecutionId()} Event : ${c.getName()} : `,t.getSteps().get(i.getStatementName()).get(c.getName()))),h){let r=e.getOutVertices().get(D.OUTPUT);r&&r.forEach(async e=>{await this.allDependenciesResolvedVertex(e,t.getSteps())&&s.add(e)})}else{let t=e.getSubGraphOfType(c.getName()),s=this.makeEdges(t).getT1();r.push(new K(t,s,l,e))}}resolveInternalExpressions(e,t){return e?Array.from(e.entries()).map(e=>new J(e[0],this.resolveInternalExpression(e[1],t))).reduce((e,t)=>(e.set(t.getT1(),t.getT2()),e),new Map):e}resolveInternalExpression(e,t){if(T(e)||"object"!=typeof e)return e;if(e instanceof s6)return new rM(e.getExpression()).evaluate(t.getValuesMap());if(Array.isArray(e)){let r=[];for(let s of e)r.push(this.resolveInternalExpression(s,t));return r}if("object"==typeof e){let r={};for(let s of Object.entries(e))r[s[0]]=this.resolveInternalExpression(s[1],t);return r}}allDependenciesResolvedTuples(e,t){for(let r of e)if(!t.has(r.getT1())||!t.get(r.getT1())?.get(r.getT2()))return!1;return!0}allDependenciesResolvedVertex(e,t){return!e.getInVertices().size||0==Array.from(e.getInVertices()).filter(e=>{let r=e.getT1().getData().getStatement().getStatementName(),s=e.getT2();return!(t.has(r)&&t.get(r)?.has(s))}).length}getArgumentsFromParametersMap(e,t,r){return Array.from(t.getParameterMap().entries()).map(t=>{let s,n=Array.from(t[1]?.values()??[]);if(!n?.length)return new J(t[0],s);let a=r.get(t[0]);return a?(s=a.isVariableArgument()?n.sort((e,t)=>(e.getOrder()??0)-(t.getOrder()??0)).filter(e=>!T(e)).map(t=>this.parameterReferenceEvaluation(e,t)).flatMap(e=>Array.isArray(e)?e:[e]):this.parameterReferenceEvaluation(e,n[0]),new J(t[0],s)):new J(t[0],void 0)}).filter(e=>!T(e.getT2())).reduce((e,t)=>(e.set(t.getT1(),t.getT2()),e),new Map)}parameterReferenceEvaluation(e,t){let r;return t.getType()==s3.VALUE?r=this.resolveInternalExpression(t.getValue(),e):t.getType()!=s3.EXPRESSION||W.isNullOrBlank(t.getExpression())||(r=new rM(t.getExpression()??"").evaluate(e.getValuesMap())),r}async prepareStatementExecution(e,t,r){let s=new s1(e),n=await t.find(e.getNamespace(),e.getName());if(!n)return s.addMessage(nt.ERROR,Y.format("$.$ is not available",e.getNamespace(),e.getName())),Promise.resolve(s);let a=new Map(n.getSignature().getParameters());if(!e.getParameterMap())return Promise.resolve(s);for(let t of Array.from(e.getParameterMap().entries())){let e=a.get(t[0]);if(!e)continue;let n=Array.from(t[1]?.values()??[]);if(!n.length&&!e.isVariableArgument()){await Q.hasDefaultValueOrNullSchemaType(e.getSchema(),r)||s.addMessage(nt.ERROR,Y.format(nr.PARAMETER_NEEDS_A_VALUE,e.getParameterName())),a.delete(e.getParameterName());continue}if(e.isVariableArgument())for(let t of(n.sort((e,t)=>(e.getOrder()??0)-(t.getOrder()??0)),n))this.parameterReferenceValidation(s,e,t,r);else if(n.length){let t=n[0];this.parameterReferenceValidation(s,e,t,r)}a.delete(e.getParameterName())}if(!T(s.getStatement().getDependentStatements()))for(let e of Array.from(s.getStatement().getDependentStatements().entries()))e[1]&&s.addDependency(e[0]);if(!T(s.getStatement().getExecuteIftrue()))for(let e of Array.from(s.getStatement().getExecuteIftrue().entries()))e[1]&&this.addDependencies(s,e[0]);if(a.size)for(let e of Array.from(a.values()))e.isVariableArgument()||await Q.hasDefaultValueOrNullSchemaType(e.getSchema(),r)||s.addMessage(nt.ERROR,Y.format(nr.PARAMETER_NEEDS_A_VALUE,e.getParameterName()));return Promise.resolve(s)}async parameterReferenceValidation(e,t,r,s){if(r){if(r.getType()==s3.VALUE){if(T(r.getValue())&&!await Q.hasDefaultValueOrNullSchemaType(t.getSchema(),s)&&e.addMessage(nt.ERROR,Y.format(nr.PARAMETER_NEEDS_A_VALUE,t.getParameterName())),T(r.getValue()))return;let n=new H;for(n.push(new J(t.getSchema(),r.getValue()));!n.isEmpty();){let t=n.pop();if(t.getT2()instanceof s6)this.addDependencies(e,t.getT2().getExpression());else{if(T(t.getT1())||T(t.getT1().getType()))continue;if(t.getT1().getType()?.contains(c.ARRAY)&&Array.isArray(t.getT2())){let e=t.getT1().getItems();if(!e)continue;if(e.isSingleType())for(let r of t.getT2())n.push(new J(e.getSingleSchema(),r));else{let r=t.getT2();for(let t=0;t<r.length;t++)n.push(new J(e.getTupleSchema()[t],r[t]))}}else if(t.getT1().getType()?.contains(c.OBJECT)&&"object"==typeof t.getT2()){let r=t.getT1();if(r.getName()===L.EXPRESSION.getName()&&r.getNamespace()===L.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])&&n.push(new J(r.getProperties().get(e[0]),e[1]))}}}}else if(r.getType()==s3.EXPRESSION){if(W.isNullOrBlank(r.getExpression()))T(Q.getDefaultValue(t.getSchema(),s))&&e.addMessage(nt.ERROR,Y.format(nr.PARAMETER_NEEDS_A_VALUE,t.getParameterName()));else try{this.addDependencies(e,r.getExpression())}catch(t){e.addMessage(nt.ERROR,Y.format("Error evaluating $ : $",r.getExpression(),t))}}}else T(await Q.getDefaultValue(t.getSchema(),s))&&e.addMessage(nt.ERROR,Y.format(nr.PARAMETER_NEEDS_A_VALUE,t.getParameterName()))}addDependencies(e,t){t&&Array.from(t.match(nr.STEP_REGEX_PATTERN)??[]).forEach(t=>e.addDependency(t))}makeEdges(e){let t=e.getNodeMap().values(),r=[],s=new Map;for(let n of Array.from(t))for(let t of Array.from(n.getData().getDependencies())){let a=t.indexOf(".",6),i=t.substring(6,a),o=t.indexOf(".",a+1),E=-1==o?t.substring(a+1):t.substring(a+1,o);e.getNodeMap().has(i)?n.addInEdgeTo(e.getNodeMap().get(i),E):(r.push(new J(i,E)),s.set(n.getData().getStatement().getStatementName(),Y.format("Unable to find the step with name $",i)))}return new J(r,s)}}t({},"KIRunConstants",()=>ns);class ns{static{this.NAMESPACE="namespace"}static{this.NAME="name"}static{this.ID="id"}constructor(){}}t({},"Position",()=>nn);class nn{static{this.SCHEMA_NAME="Position"}static{this.SCHEMA=new I().setNamespace(A.SYSTEM).setName(nn.SCHEMA_NAME).setType(m.of(c.OBJECT)).setProperties(new Map([["left",I.ofFloat("left")],["top",I.ofFloat("top")]]))}constructor(e,t){this.left=e,this.top=t}getLeft(){return this.left}setLeft(e){return this.left=e,this}getTop(){return this.top}setTop(e){return this.top=e,this}static from(e){if(e)return new nn(e.left,e.top)}}t({},"FunctionDefinition",()=>nA),t({},"Statement",()=>no),t({},"AbstractStatement",()=>na);class na{constructor(e){if(this.override=!1,!e)return;this.comment=e.comment,this.description=e.description,this.position=e.position?new nn(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}}t({},"ParameterReference",()=>ni);class ni{static{this.SCHEMA_NAME="ParameterReference"}static{this.SCHEMA=new I().setNamespace(A.SYSTEM).setName(ni.SCHEMA_NAME).setType(m.of(c.OBJECT)).setProperties(new Map([["key",I.ofString("key")],["value",I.ofAny("value")],["expression",I.ofString("expression")],["type",I.ofString("type").setEnums(["EXPRESSION","VALUE"])],["order",I.ofInteger("order")]]))}constructor(e){e instanceof ni?(this.key=e.key,this.type=e.type,this.value=T(e.value)?void 0:JSON.parse(JSON.stringify(e.value)),this.expression=e.expression,this.order=e.order):(this.type=e,this.key=s8())}getType(){return this.type}setType(e){return this.type=e,this}getKey(){return this.key}setKey(e){return this.key=e,this}getValue(){return this.value}setValue(e){return this.value=e,this}getExpression(){return this.expression}setExpression(e){return this.expression=e,this}setOrder(e){return this.order=e,this}getOrder(){return this.order}static ofExpression(e){let t=new ni(s3.EXPRESSION).setExpression(e);return[t.getKey(),t]}static ofValue(e){let t=new ni(s3.VALUE).setValue(e);return[t.getKey(),t]}static from(e){return new ni(e.type).setValue(e.value).setExpression(e.expression).setKey(e.key).setOrder(e.order)}}class no extends na{static{this.SCHEMA_NAME="Statement"}static{this.SCHEMA=new I().setNamespace(A.SYSTEM).setName(no.SCHEMA_NAME).setType(m.of(c.OBJECT)).setProperties(new Map([["statementName",I.ofString("statementName")],["comment",I.ofString("comment")],["description",I.ofString("description")],["namespace",I.ofString("namespace")],["name",I.ofString("name")],["dependentStatements",I.ofObject("dependentstatement").setAdditionalProperties(new w().setSchemaValue(I.ofBoolean("exists"))).setDefaultValue({})],["executeIftrue",I.ofObject("executeIftrue").setAdditionalProperties(new w().setSchemaValue(I.ofBoolean("exists"))).setDefaultValue({})],["parameterMap",new I().setName("parameterMap").setAdditionalProperties(new w().setSchemaValue(I.ofObject("parameterReference").setAdditionalProperties(new w().setSchemaValue(ni.SCHEMA))))],["position",nn.SCHEMA]]))}constructor(e,t,r){if(super(e instanceof no?e:void 0),e instanceof no)this.statementName=e.statementName,this.name=e.name,this.namespace=e.namespace,e.parameterMap&&(this.parameterMap=new Map(Array.from(e.parameterMap.entries()).map(e=>[e[0],new Map(Array.from(e[1].entries()).map(e=>[e[0],new ni(e[1])]))]))),e.dependentStatements&&(this.dependentStatements=new Map(Array.from(e.dependentStatements.entries())));else{if(this.statementName=e,!r||!t)throw Error("Unknown constructor");this.namespace=t,this.name=r}}getStatementName(){return this.statementName}setStatementName(e){return this.statementName=e,this}getNamespace(){return this.namespace}setNamespace(e){return this.namespace=e,this}getName(){return this.name}setName(e){return this.name=e,this}getParameterMap(){return this.parameterMap||(this.parameterMap=new Map),this.parameterMap}setParameterMap(e){return this.parameterMap=e,this}getDependentStatements(){return this.dependentStatements??new Map}setDependentStatements(e){return this.dependentStatements=e,this}getExecuteIftrue(){return this.executeIftrue??new Map}setExecuteIftrue(e){return this.executeIftrue=e,this}equals(e){return e instanceof no&&e.statementName==this.statementName}static ofEntry(e){return[e.statementName,e]}static from(e){return new no(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])=>ni.from(t)).map(e=>[e.getKey(),e]))]))).setDependentStatements(new Map(Object.entries(e.dependentStatements??{}))).setExecuteIftrue(new Map(Object.entries(e.executeIftrue??{}))).setPosition(nn.from(e.position)).setComment(e.comment).setDescription(e.description)}}t({},"StatementGroup",()=>nE);class nE extends na{static{this.SCHEMA_NAME="StatementGroup"}static{this.SCHEMA=new I().setNamespace(A.SYSTEM).setName(nE.SCHEMA_NAME).setType(m.of(c.OBJECT)).setProperties(new Map([["statementGroupName",I.ofString("statementGroupName")],["comment",I.ofString("comment")],["description",I.ofString("description")],["position",nn.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 nE(e.statementGroupName,new Map(Object.entries(e.statements||{}).map(([e,t])=>[e,(""+t)?.toLowerCase()=="true"]))).setPosition(nn.from(e.position)).setComment(e.comment).setDescription(e.description)}}let nu=new I().setNamespace(A.SYSTEM).setName("FunctionDefinition").setProperties(new Map([["name",I.ofString("name")],["namespace",I.ofString("namespace")],["parameters",I.ofArray("parameters",L.SCHEMA)],["events",I.ofObject("events").setAdditionalProperties(new w().setSchemaValue(D.SCHEMA))],["steps",I.ofObject("steps").setAdditionalProperties(new w().setSchemaValue(no.SCHEMA))]]));nu.getProperties()?.set("parts",I.ofArray("parts",nu));class nA extends B{static{this.SCHEMA=nu}constructor(e){super(e),this.version=1}getVersion(){return this.version}setVersion(e){return this.version=e,this}getSteps(){return this.steps??new Map}setSteps(e){return this.steps=e,this}getStepGroups(){return this.stepGroups}setStepGroups(e){return this.stepGroups=e,this}getParts(){return this.parts}setParts(e){return this.parts=e,this}static from(e){return e?new nA(e.name).setSteps(new Map(Object.values(e.steps??{}).filter(e=>!!e).map(e=>[e.statementName,no.from(e)]))).setStepGroups(new Map(Object.values(e.stepGroups??{}).filter(e=>!!e).map(e=>[e.statementGroupName,nE.from(e)]))).setParts(Array.from(e.parts??[]).filter(e=>!!e).map(e=>nA.from(e))).setVersion(e.version??1).setEvents(new Map(Object.values(e.events??{}).filter(e=>!!e).map(e=>[e.name,D.from(e)]))).setParameters(new Map(Object.values(e.parameters??{}).filter(e=>!!e).map(e=>[e.parameterName,L.from(e)]))).setNamespace(e.namespace):new nA("unknown")}}t({},"Argument",()=>nT);class nT{constructor(e,t,r){this.argumentIndex=0,this.argumentIndex=e,this.name=t,this.value=r}getArgumentIndex(){return this.argumentIndex}setArgumentIndex(e){return this.argumentIndex=e,this}getName(){return this.name}setName(e){return this.name=e,this}getValue(){return this.value}setValue(e){return this.value=e,this}static of(e,t){return new nT(0,e,t)}}export{v as KIRunSchemaRepository,sZ as KIRunFunctionRepository,ew as PrimitiveUtil,b as MapUtil,V as MapEntry,T as isNullValue,H as LinkedList,eK as StringBuilder,Y as StringFormatter,W as StringUtil,J as Tuple2,q as Tuple3,K as Tuple4,eP as ArrayUtil,j as deepEqual,ex as duplicate,s1 as StatementExecution,s0 as StatementMessage,tT as ContextElement,s2 as ContextTokenValueExtractor,s5 as OutputMapTokenValueExtractor,s7 as ArgumentsTokenValueExtractor,s9 as GraphVertex,s4 as ExecutionGraph,nr as KIRuntime,nt as StatementMessageType,ne as FunctionExecutionParameters,e1 as Expression,e2 as TokenValueExtractor,rm as LiteralTokenValueExtractor,e5 as ObjectValueSetterExtractor,rM as ExpressionEvaluator,e0 as Operation,eQ as ExpressionToken,ez as ExpressionEvaluationException,eZ as ExpressionTokenValue,ef as AbstractFunction,A as Namespaces,s6 as JsonExpression,w as AdditionalType,I as Schema,es as NumberValidator,et as BooleanValidator,er as NullValidator,ee as ArrayValidator,Z as AnyOfAllOfOneOfValidator,ei as StringValidator,en as ObjectValidator,ep as SchemaValidator,z as SchemaValidationException,P as SchemaReferenceException,em as TypeValidator,l as ArraySchemaType,g as SingleType,m as TypeUtil,R as MultipleType,h as Type,c as SchemaType,Q as SchemaUtil,ea as StringFormat,sK as HybridRepository,ns as KIRunConstants,L as Parameter,F as FunctionOutput,nn as Position,nA as FunctionDefinition,s3 as ParameterReferenceType,G as EventResult,na as AbstractStatement,no as Statement,nE as StatementGroup,B as FunctionSignature,D as Event,y as ParameterType,nT as Argument,ni as ParameterReference,ed as ExecutionException,$ as KIRuntimeException,ru as ArithmeticUnaryMinusOperator,rT as ArithmeticUnaryPlusOperator,rc as BitwiseComplementOperator,rR as LogicalNotOperator,rE as UnaryOperator,tM as ArithmeticAdditionOperator,tO as ArithmeticDivisionOperator,tw as ArithmeticIntegerDivisionOperator,tP as ArithmeticModulusOperator,tx as ArithmeticMultiplicationOperator,tU as ArithmeticSubtractionOperator,tV as ArrayOperator,t_ as BinaryOperator,tC as BitwiseAndOperator,tG as BitwiseLeftShiftOperator,tF as BitwiseOrOperator,tY as BitwiseRightShiftOperator,tk as BitwiseUnsignedRightShiftOperator,tW as BitwiseXorOperator,tJ as LogicalAndOperator,tK as LogicalEqualOperator,tQ as LogicalGreaterThanEqualOperator,t0 as LogicalGreaterThanOperator,t2 as LogicalLessThanEqualOperator,t7 as LogicalNotEqualOperator,t9 as LogicalLessThanOperator,t3 as LogicalOrOperator,re as ObjectOperator,rr as LogicalNullishCoalescingOperator,rn as ArrayRangeOperator,rN as ConditionalTernaryOperator};
|
|
2
2
|
//# sourceMappingURL=module.js.map
|