@fincity/kirun-js 2.16.2 → 3.0.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/runtime/expression/ExpressionEvaluatorLengthSubtractionBugTest.ts +384 -0
- package/__tests__/engine/runtime/expression/ExpressionEvaluatorLengthSubtractionTest.ts +338 -0
- package/__tests__/engine/runtime/expression/ExpressionTest.ts +7 -5
- 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 +56 -39
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/engine/function/system/context/SetFunction.ts +226 -75
- package/src/engine/runtime/expression/Expression.ts +267 -71
- package/src/engine/runtime/expression/ExpressionEvaluator.ts +317 -22
- package/src/engine/runtime/expression/ExpressionLexer.ts +365 -0
- package/src/engine/runtime/expression/ExpressionParser.ts +541 -0
- package/src/engine/runtime/expression/ExpressionParserDebug.ts +21 -0
- package/src/engine/runtime/expression/Operation.ts +1 -0
- package/src/engine/runtime/expression/tokenextractor/ObjectValueSetterExtractor.ts +134 -31
- package/src/engine/runtime/expression/tokenextractor/TokenValueExtractor.ts +32 -8
- package/src/engine/util/LinkedList.ts +1 -1
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",()=>C);var s,n,a,i,o,E,u={};t(u,"AdditionalType",()=>w),t(u,"Schema",()=>I),t(u,"SchemaDetails",()=>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.SYSTEM_JSON="System.JSON"}static{this.MATH="System.Math"}static{this.STRING="System.String"}static{this.DATE="System.Date"}constructor(){}}function l(e){return null==e}t({},"ArraySchemaType",()=>T),t({},"isNullValue",()=>l);class T{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!l(this.singleSchema)}static of(...e){return 1==e.length?new T().setSingleSchema(e[0]):new T().setTupleSchema(e)}static from(e){if(!e)return;if(Array.isArray(e))return new T().setTupleSchema(I.fromListOfSchemas(e));let t=Object.keys(e);if(-1!=t.indexOf("singleSchema"))return new T().setSingleSchema(I.from(e.singleSchema));if(-1!=t.indexOf("tupleSchema"))return new T().setTupleSchema(I.fromListOfSchemas(e.tupleSchema));let r=I.from(e);if(r)return new T().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",()=>p),t({},"MultipleType",()=>g),t({},"Type",()=>h);class h{}class g extends h{constructor(e){super(),e instanceof g?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",()=>R);class R extends h{constructor(e){super(),e instanceof R?this.type=e.type:this.type=e}getType(){return this.type}getAllowedSchemaTypes(){return new Set([this.type])}contains(e){return this.type==e}}class p{static of(...e){return 1==e.length?new R(e[0]):new g(new Set(e))}static from(e){return"string"==typeof e?new R(c[p.fromJSONType(e)]):Array.isArray(e)?new g(new Set(e.map(p.fromJSONType).map(e=>e).map(e=>c[e]))):void 0}static fromJSONType(e){let t=e.toUpperCase();return"NUMBER"===t?"DOUBLE":t}}let m="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(l(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 P{constructor(e){if(!e)return;this.preferredComponent=e.preferredComponent,e.validationMessages&&(this.validationMessages=new Map(Array.from(e.validationMessages.entries()))),e.properties&&(this.properties=new Map(Array.from(e.properties.entries()))),e.styleProperties&&(this.styleProperties=new Map(Array.from(e.styleProperties.entries()))),this.order=e.order,this.label=e.label}getPreferredComponent(){return this.preferredComponent}setPreferredComponent(e){return this.preferredComponent=e,this}getValidationMessages(){return this.validationMessages}setValidationMessages(e){return this.validationMessages=e,this}getValidationMessage(e){return this.validationMessages?.get(e)}setProperties(e){return this.properties=e,this}getProperties(){return this.properties}setStyleProperties(e){return this.styleProperties=e,this}getStyleProperties(){return this.styleProperties}getOrder(){return this.order}setOrder(e){return this.order=e,this}getLabel(){return this.label}setLabel(e){return this.label=e,this}static from(e){if(e)return new P().setPreferredComponent(e.preferredComponent).setValidationMessages(e.validationMessages?new Map(Object.entries(e.validationMessages)):void 0).setProperties(e.properties?new Map(Object.entries(e.properties)):void 0).setStyleProperties(e.styleProperties?new Map(Object.entries(e.styleProperties)):void 0).setOrder(e.order).setLabel(e.label)}}class I{static{this.NULL=new I().setNamespace(A.SYSTEM).setName("Null").setType(p.of(c.NULL)).setConstant(void 0)}static{this.TYPE_SCHEMA=new I().setType(p.of(c.STRING)).setEnums(["INTEGER","LONG","FLOAT","DOUBLE","STRING","OBJECT","ARRAY","BOOLEAN","NULL"])}static{this.SCHEMA=new I().setNamespace(A.SYSTEM).setName("Schema").setType(p.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(m).setNamespace(A.SYSTEM).setAnyOf([I.ofBoolean(m),I.ofObject(m).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")],["viewDetails",I.ofObject("viewDetails")]])).setRequired([])}static ofString(e){return new I().setType(p.of(c.STRING)).setName(e)}static ofInteger(e){return new I().setType(p.of(c.INTEGER)).setName(e)}static ofFloat(e){return new I().setType(p.of(c.FLOAT)).setName(e)}static ofLong(e){return new I().setType(p.of(c.LONG)).setName(e)}static ofDouble(e){return new I().setType(p.of(c.DOUBLE)).setName(e)}static ofAny(e){return new I().setType(p.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(p.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(p.of(c.INTEGER,c.LONG,c.FLOAT,c.DOUBLE)).setName(e)}static ofBoolean(e){return new I().setType(p.of(c.BOOLEAN)).setName(e)}static of(e,...t){return new I().setType(p.of(...t)).setName(e)}static ofObject(e){return new I().setType(p.of(c.OBJECT)).setName(e)}static ofRef(e){return new I().setRef(e)}static ofArray(e,...t){return new I().setType(p.of(c.ARRAY)).setName(e).setItems(T.of(...t))}static fromListOfSchemas(e){if(l(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(l(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(l(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 R(c.STRING):r.type=p.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=T.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?P.from(e.details):void 0,r.viewDetails=e.viewDetails?P.from(e.viewDetails):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,l(e.type)||(this.type=e.type instanceof R?new R(e.type):new g(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 T(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,this.viewDetails=e.viewDetails}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 R(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}getViewDetails(){return this.viewDetails}setViewDetails(e){return this.viewDetails=e,this}}t({},"Parameter",()=>U),t({},"SchemaReferenceException",()=>y);class y 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",()=>x);var x=((n={}).CONSTANT="CONSTANT",n.EXPRESSION="EXPRESSION",n);let L="value";class U{static{this.SCHEMA_NAME="Parameter"}static{this.SCHEMA=new I().setNamespace(A.SYSTEM).setName(U.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(p.of(c.OBJECT)).setProperties(new Map([["isExpression",I.ofBoolean("isExpression").setDefaultValue(!0)],[L,I.ofAny(L)]]))}constructor(e,t){if(this.variableArgument=!1,this.type=x.EXPRESSION,e instanceof U)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=x.EXPRESSION){return[e,new U(e,t).setType(s).setVariableArgument(r)]}static of(e,t,r=!1,s=x.EXPRESSION){return new U(e,t).setType(s).setVariableArgument(r)}static from(e){let t=I.from(e.schema);if(!t)throw new y("","Parameter requires Schema");return new U(e.parameterName,t).setVariableArgument(!!e.variableArgument).setType(e.type??x.EXPRESSION)}}var b={};t(b,"MapUtil",()=>v),t(b,"MapEntry",()=>V);class v{static of(e,t,r,s,n,a,i,o,E,u,A,T,c,h,g,R,p,m,f,N){let _=new Map;return l(e)||l(t)||_.set(e,t),l(r)||l(s)||_.set(r,s),l(n)||l(a)||_.set(n,a),l(i)||l(o)||_.set(i,o),l(E)||l(u)||_.set(E,u),l(A)||l(T)||_.set(A,T),l(c)||l(h)||_.set(c,h),l(g)||l(R)||_.set(g,R),l(p)||l(m)||_.set(p,m),l(f)||l(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 C{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(v.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(v.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))],[U.EXPRESSION.getName(),U.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 D(e){return[e.getSignature().getName(),e]}t({},"KIRunFunctionRepository",()=>nt),t({},"EventResult",()=>$),t({},"Event",()=>G);class G{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(G.SCHEMA_NAME).setType(p.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 G)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 G.eventMapEntry(G.OUTPUT,e)}static eventMapEntry(e,t){return[e,new G(e,t)]}static from(e){return new G(e.name,new Map(Object.entries(e.parameters??{}).map(e=>{let t=I.from(e[1]);if(!t)throw new y("","Event expects a schema");return[e[0],t]})))}}class ${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 $.of(G.OUTPUT,e)}static of(e,t){return new $(e,t)}}t({},"FunctionOutput",()=>B),t({},"KIRuntimeException",()=>F);class F extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class B{constructor(e){if(this.index=0,l(e))throw new F("Function output is generating null");Array.isArray(e)&&e.length&&e[0]instanceof $?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",()=>Y);class Y{static{this.SCHEMA_NAME="FunctionSignature"}static{this.SCHEMA=new I().setNamespace(A.SYSTEM).setName(Y.SCHEMA_NAME).setProperties(new Map([["name",I.ofString("name")],["namespace",I.ofString("namespace")],["parameters",I.ofObject("parameters").setAdditionalProperties(new w().setSchemaValue(U.SCHEMA))],["events",I.ofObject("events").setAdditionalProperties(new w().setSchemaValue(G.SCHEMA))]]))}constructor(e){this.namespace="_",this.parameters=new Map,this.events=new Map,e instanceof Y?(this.name=e.name,this.namespace=e.namespace,this.parameters=new Map(Array.from(e.parameters.entries()).map(e=>[e[0],new U(e[1])])),this.events=new Map(Array.from(e.events.entries()).map(e=>[e[0],new G(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",()=>eN),t({},"SchemaValidator",()=>ef),t({},"deepEqual",()=>W),t({},"LinkedList",()=>H),t({},"StringFormatter",()=>k);class k{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 j(t,this.tail);this.tail.next=e,this.tail=e}else this.tail=this.head=new j(t);this.length=e.length}}push(e){let t=new j(e,void 0,this.head);this.head?(this.head.previous=t,this.head=t):this.tail=this.head=t,this.length++}pop(){if(!this.head)throw Error("List is empty and cannot pop further.");let e=this.head.value;if(this.length--,this.head==this.tail)return this.head=this.tail=void 0,e;let t=this.head;return this.head=t.next,t.next=void 0,t.previous=void 0,this.head.previous=void 0,e}isEmpty(){return!this.length}size(){return this.length}get(e){if(e<0||e>=this.length)throw Error(`${e} is out of bounds [0,${this.length}]`);let t=this.head;for(;e>0;)t=this.head.next,--e;return t.value}set(e,t){if(e<0||e>=this.length)throw new F(k.format("Index $ out of bound to set the value in linked list.",e));let r=this.head;for(;e>0;)r=this.head.next,--e;return r.value=t,this}toString(){let e=this.head,t="";for(;e;)t+=e.value,(e=e.next)&&(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 j(e,this.head),this.head.next=this.tail):(this.tail=new j(e,this.tail),this.tail.previous.next=this.tail):this.head=this.tail=new j(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(W(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 j{constructor(e,t,r){this.value=e,this.next=r,this.previous=t}toString(){return""+this.value}}function W(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",()=>X);class X{constructor(){}static nthIndex(e,t,r=0,s){if(!e)throw new F("String cannot be null");if(r<0||r>=e.length)throw new F(k.format("Cannot search from index : $",r));if(s<=0||s>e.length)throw new F(k.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",()=>Z);var J={};t(J,"Tuple2",()=>q),t(J,"Tuple3",()=>K),t(J,"Tuple4",()=>z);class q{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 K extends q{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 z extends K{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",()=>Q);class Q extends Error{constructor(e,t,r=[],s){super(t+(r?r.map(e=>e.message).reduce((e,t)=>e+"\n"+t,""):"")),this.schemaPath=e,this.cause=s}getSchemaPath(){return this.schemaPath}getCause(){return this.cause}}class Z{static{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():l(e.getDefaultValue())?Z.getDefaultValue(await Z.getSchemaFromRef(e,t,e.getRef()),t):e.getDefaultValue()}static async hasDefaultValueOrNullSchemaType(e,t){return e?e.getConstant()||!l(e.getDefaultValue())?Promise.resolve(!0):l(e.getRef())?e.getType()?.getAllowedSchemaTypes().has(c.NULL)?Promise.resolve(!0):Promise.resolve(!1):this.hasDefaultValueOrNullSchemaType(await Z.getSchemaFromRef(e,t,e.getRef()),t):Promise.resolve(!1)}static async getSchemaFromRef(e,t,r,s=0){if(++s==Z.CYCLIC_REFERENCE_LIMIT_COUNTER)throw new Q(r??"","Schema has a cyclic reference");if(!e||!r||X.isNullOrBlank(r))return Promise.resolve(void 0);if(!r.startsWith("#")){var n=await Z.resolveExternalSchema(e,t,r);n&&(e=n.getT1(),r=n.getT2())}let a=r.split("/");return 1===a.length?Promise.resolve(e):Promise.resolve(Z.resolveInternalSchema(e,t,r,s,a,1))}static async resolveInternalSchema(e,t,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 y(r,Z.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 y(r,"Cannot retrievie schema from non Object type schemas");i=i.getProperties()?.get(n[a])}if(a++,!i||!X.isNullOrBlank(i.getRef())&&!(i=await Z.getSchemaFromRef(i,t,i.getRef(),s)))throw new y(r,Z.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=X.splitAtFirstOccurance(r??"","/");if(!s[0])return Promise.resolve(void 0);let n=X.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 q(a,r));if(r="#/"+s[1],!a)throw new y(r,Z.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);return Promise.resolve(new q(a,r))}constructor(){}}t({},"AnyOfAllOfOneOfValidator",()=>ee);class ee{static async validate(e,t,r,s,n,a){let i=[];return t.getOneOf()&&!t.getOneOf()?await ee.oneOf(e,t,r,s,i,n,a):t.getAllOf()&&!t.getAllOf()?await ee.allOf(e,t,r,s,i,n,a):t.getAnyOf()&&!t.getAnyOf()?await ee.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 ee.validate(e,E,r,s,a,i),o=!0;break}catch(e){o=!1,n.push(e)}if(o)return s;throw new Q(ef.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 ee.validate(e,E,r,s,a,i),o++}catch(e){n.push(e)}if(o===t.getAllOf()?.length)return s;throw new Q(ef.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 ee.validate(e,E,r,s,a,i),o++}catch(e){n.push(e)}if(1===o)return s;throw new Q(ef.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",()=>et);class et{static async validate(e,t,r,s,n,a){if(l(s))throw new Q(ef.path(e),"Expected an array but found null");if(!Array.isArray(s))throw new Q(ef.path(e),s.toString()+" is not an Array");return et.checkMinMaxItems(e,t,s),await et.checkItems(e,t,r,s,n,a),et.checkUniqueItems(e,t,s),await et.checkContains(t,e,r,s),s}static async checkContains(e,t,r,s){if(l(e.getContains()))return;let n=await et.countContains(t,e,r,s,l(e.getMinContains())&&l(e.getMaxContains()));if(0===n)throw new Q(ef.path(t),"None of the items are of type contains schema");if(!l(e.getMinContains())&&e.getMinContains()>n)throw new Q(ef.path(t),"The minimum number of the items of type contains schema should be "+e.getMinContains()+" but found "+n);if(!l(e.getMaxContains())&&e.getMaxContains()<n)throw new Q(ef.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 ef.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 Q(ef.path(e),"Items on the array are not unique")}static checkMinMaxItems(e,t,r){if(t.getMinItems()&&t.getMinItems()>r.length)throw new Q(ef.path(e),"Array should have minimum of "+t.getMinItems()+" elements");if(t.getMaxItems()&&t.getMaxItems()<r.length)throw new Q(ef.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 ef.validate(o,i.getSingleSchema(),r,s[t],n,a)}if(i.getTupleSchema()){if(i.getTupleSchema().length!==s.length&&l(t?.getAdditionalItems()))throw new Q(ef.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 ef.validate(o,s.getTupleSchema()[i],t,r[i],n,a)}}static async checkAdditionalItems(e,t,r,s,n){if(!l(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 Q(ef.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 ef.validate(n,a,r,s[t])}}constructor(){}}t({},"BooleanValidator",()=>er);class er{static validate(e,t,r){if(l(r))throw new Q(ef.path(e),"Expected a boolean but found null");if("boolean"!=typeof r)throw new Q(ef.path(e),r.toString()+" is not a boolean");return r}constructor(){}}t({},"NullValidator",()=>es);class es{static validate(e,t,r){if(l(r))return r;throw new Q(ef.path(e),"Expected a null but found "+r)}constructor(){}}t({},"NumberValidator",()=>en);class en{static validate(e,t,r,s){if(l(s))throw new Q(ef.path(t),"Expected a number but found null");if("number"!=typeof s)throw new Q(ef.path(t),s.toString()+" is not a "+e);let n=en.extractNumber(e,t,r,s);return en.checkRange(t,r,s,n),en.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 Q(ef.path(t),s+" is not a number of type "+e,r)}if(l(n)||(e==c.LONG||e==c.INTEGER)&&n!=s)throw new Q(ef.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 Q(ef.path(e),t.getDetails()?.getValidationMessage("multipleOf")??r.toString()+" is not multiple of "+t.getMultipleOf())}static checkRange(e,t,r,s){if(!l(t.getMinimum())&&0>en.numberCompare(s,t.getMinimum()))throw new Q(ef.path(e),t.getDetails()?.getValidationMessage("minimum")??r.toString()+" should be greater than or equal to "+t.getMinimum());if(!l(t.getMaximum())&&en.numberCompare(s,t.getMaximum())>0)throw new Q(ef.path(e),t.getDetails()?.getValidationMessage("maximum")??r.toString()+" should be less than or equal to "+t.getMaximum());if(!l(t.getExclusiveMinimum())&&0>=en.numberCompare(s,t.getExclusiveMinimum()))throw new Q(ef.path(e),t.getDetails()?.getValidationMessage("exclusiveMinimum")??r.toString()+" should be greater than "+t.getExclusiveMinimum());if(!l(t.getExclusiveMaximum())&&en.numberCompare(s,t.getExclusiveMaximum())>0)throw new Q(ef.path(e),t.getDetails()?.getValidationMessage("exclusiveMaximum")??r.toString()+" should be less than "+t.getExclusiveMaximum())}static numberCompare(e,t){return e-t}constructor(){}}t({},"ObjectValidator",()=>ea);class ea{static async validate(e,t,r,s,n,a){if(l(s))throw new Q(ef.path(e),"Expected an object but found null");if("object"!=typeof s||Array.isArray(s))throw new Q(ef.path(e),s.toString()+" is not an Object");let i=new Set(Object.keys(s));return ea.checkMinMaxProperties(e,t,i),t.getPropertyNames()&&await ea.checkPropertyNameSchema(e,t,r,i),t.getRequired()&&ea.checkRequired(e,t,s),t.getProperties()&&await ea.checkProperties(e,t,r,s,i,n,a),t.getPatternProperties()&&await ea.checkPatternProperties(e,t,r,s,i),t.getAdditionalProperties()&&await ea.checkAdditionalProperties(e,t,r,s,i),s}static async checkPropertyNameSchema(e,t,r,s){for(let n of Array.from(s.values()))try{await ef.validate(e,t.getPropertyNames(),r,n)}catch(t){throw new Q(ef.path(e),"Property name '"+n+"' does not fit the property schema")}}static checkRequired(e,t,r){for(let s of t.getRequired()??[])if(l(r[s]))throw new Q(ef.path(e),t.getProperties()?.get(s)?.getDetails()?.getValidationMessage("mandatory")??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 ef.validate(n,a.getSchemaValue(),r,s[t])}else if(!1===a.getBooleanValue()&&n.size)throw new Q(ef.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 ef.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])&&l(t)&&l(await Z.getDefaultValue(o[1],r)))continue;let E=e?[...e]:[];s[o[0]]=await ef.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 Q(ef.path(e),"Object should have minimum of "+t.getMinProperties()+" properties");if(t.getMaxProperties()&&r.size>t.getMaxProperties())throw new Q(ef.path(e),"Object can have maximum of "+t.getMaxProperties()+" properties")}}t({},"StringValidator",()=>eo),t({},"StringFormat",()=>ei);var ei=((a={}).DATETIME="DATETIME",a.TIME="TIME",a.DATE="DATE",a.EMAIL="EMAIL",a.REGEX="REGEX",a);class eo{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(l(r))throw new Q(ef.path(e),"Expected a string but found "+r);if("string"!=typeof r)throw new Q(ef.path(e),r.toString()+" is not String");t.getFormat()==ei.TIME?eo.patternMatcher(e,t,r,eo.TIME,"time pattern"):t.getFormat()==ei.DATE?eo.patternMatcher(e,t,r,eo.DATE,"date pattern"):t.getFormat()==ei.DATETIME?eo.patternMatcher(e,t,r,eo.DATETIME,"date time pattern"):t.getFormat()==ei.EMAIL?eo.patternMatcher(e,t,r,eo.EMAIL,"email pattern"):t.getPattern()&&eo.patternMatcher(e,t,r,new RegExp(t.getPattern()),"pattern "+t.getPattern());let s=r.length;if(t.getMinLength()&&s<t.getMinLength())throw new Q(ef.path(e),t.getDetails()?.getValidationMessage("minLength")??"Expected a minimum of "+t.getMinLength()+" characters");if(t.getMaxLength()&&s>t.getMaxLength())throw new Q(ef.path(e),t.getDetails()?.getValidationMessage("maxLength")??"Expected a maximum of "+t.getMaxLength()+" characters");return r}static patternMatcher(e,t,r,s,n){if(!s.test(r))throw new Q(ef.path(e),t.getDetails()?.getValidationMessage("pattern")??r.toString()+" is not matched with the "+n)}constructor(){}}var eE=((i={}).STRICT="STRICT",i.LENIENT="LENIENT",i.USE_DEFAULT="USE_DEFAULT",i.SKIP="SKIP",i);let eu=e=>eE[e.toUpperCase()],eA=()=>Object.values(eE);class el 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=eE.STRICT),t){case eE.STRICT:throw new el(ef.path(e),r,n,t);case eE.LENIENT:return null;case eE.USE_DEFAULT:return s;case eE.SKIP:return r;default:throw new el(ef.path(e),r,"Invalid conversion mode")}}constructor(){}}class ec{static convert(e,t,r,s){if(l(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===eE.STRICT?e.toString():e.trim()}static getDefault(e){return e.getDefaultValue()??null}constructor(){}}class eh{static convert(e,t,r,s,n){if(l(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!==eE.STRICT?"number"==typeof e:Number.isInteger(e)}static isLong(e,t){return t!==eE.STRICT?"number"==typeof e:Number.isInteger(e)&&e>=Number.MIN_SAFE_INTEGER&&e<=Number.MAX_SAFE_INTEGER}static isFloat(e,t){return t!==eE.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 eg{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 eg.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 l(s)?s:"string"==typeof s&&"null"===s.toLowerCase()?null:eT.handleUnConvertibleValueWithDefault(e,r,s,null,"Unable to convert to null")}constructor(){}}class ep{static handleValidationError(e,t,r,s,n){switch(t=t??eE.STRICT){case eE.STRICT:throw new Q(ef.path(e),n);case eE.LENIENT:return null;case eE.USE_DEFAULT:return s;case eE.SKIP:return r}}constructor(){}}class em{static async validate(e,t,r,s,n,a,i){return t==c.OBJECT?await ea.validate(e,r,s,n,a,i):t==c.ARRAY?await et.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??eE.STRICT):s;return await this.validateElement(e,t,r,i,a??eE.STRICT)}static convertElement(e,t,r,s,n){if(l(t))return eT.handleUnConvertibleValueWithDefault(e,n,s,r.getDefaultValue()??null,k.format("$ is not a valid type for conversion.",t));switch(t){case c.STRING:return ec.convert(e,r,n,s);case c.INTEGER:case c.LONG:case c.DOUBLE:case c.FLOAT:return eh.convert(e,t,r,n,s);case c.BOOLEAN:return eg.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,k.format("$ is not a valid type for conversion.",t))}}static validateElement(e,t,r,s,n){if(l(t))return ep.handleValidationError(e,n,s,r.getDefaultValue()??null,k.format("$ is not a valid type.",t));switch(t){case c.STRING:return eo.validate(e,r,s);case c.INTEGER:case c.LONG:case c.DOUBLE:case c.FLOAT:return en.validate(t,e,r,s);case c.BOOLEAN:return er.validate(e,r,s);case c.NULL:return es.validate(e,r,s);default:return ep.handleValidationError(e,n,s,r.getDefaultValue()??null,k.format("$ is not a valid type.",t))}}constructor(){}}class ef{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 Q(ef.path(e),"No schema found to validate");if(e||(e=[]),e.push(t),l(s)&&!l(t.getDefaultValue()))return JSON.parse(JSON.stringify(t.getDefaultValue()));if(!l(t.getConstant()))return ef.constantValidation(e,t,s);if(t.getEnums()?.length)return ef.enumCheck(e,t,s);if(t.getFormat()&&l(t.getType()))throw new Q(this.path(e),"Type is missing in schema for declared "+t.getFormat()?.toString()+" format.");if(!0===n&&l(t.getType()))throw new Q(this.path(e),"Type is missing in schema for declared "+a);if(t.getType()&&(s=await ef.typeValidation(e,t,r,s,n,a)),!X.isNullOrBlank(t.getRef()))return await ef.validate(e,await Z.getSchemaFromRef(e[0],r,t.getRef()),r,s,n,a);if((t.getOneOf()||t.getAllOf()||t.getAnyOf())&&(s=await ee.validate(e,t,r,s,n,a)),t.getNot()){let i;try{await ef.validate(e,t.getNot(),r,s,n,a),i=!0}catch(e){i=!1}if(i)throw new Q(ef.path(e),"Schema validated value in not condition.")}return s}static constantValidation(e,t,r){if(!W(t.getConstant(),r))throw new Q(ef.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 Q(ef.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)}if(1==o.length)throw new Q(ef.path(e),o[0].message);throw new Q(ef.path(e),"Value "+JSON.stringify(s)+" is not of valid type(s)",o)}}class eN{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 F(`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(l(i)&&!s.isVariableArgument())return new q(a,await ef.validate(void 0,s.getSchema(),t,void 0));if(!s?.isVariableArgument())return new q(a,await ef.validate(void 0,s.getSchema(),t,i));Array.isArray(i)?n=i:(n=[],l(i)?l(s.getSchema().getDefaultValue())||n.push(s.getSchema().getDefaultValue()):n.push(i));for(let e=0;e<n.length;e++)n[e]=await ef.validate(void 0,s.getSchema(),t,n[e]);return new q(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 F(`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 e_ extends eN{static{this.EVENT_INDEX_NAME="index"}static{this.EVENT_RESULT_NAME="result"}static{this.EVENT_INDEX=new G(G.OUTPUT,v.of(e_.EVENT_INDEX_NAME,I.ofInteger(e_.EVENT_INDEX_NAME)))}static{this.EVENT_RESULT_INTEGER=new G(G.OUTPUT,v.of(e_.EVENT_RESULT_NAME,I.ofInteger(e_.EVENT_RESULT_NAME)))}static{this.EVENT_RESULT_BOOLEAN=new G(G.OUTPUT,v.of(e_.EVENT_RESULT_NAME,I.ofBoolean(e_.EVENT_RESULT_NAME)))}static{this.EVENT_RESULT_ARRAY=new G(G.OUTPUT,v.of(e_.EVENT_RESULT_NAME,I.ofArray(e_.EVENT_RESULT_NAME,I.ofAny(e_.EVENT_RESULT_NAME))))}static{this.EVENT_RESULT_EMPTY=new G(G.OUTPUT,v.of())}static{this.EVENT_RESULT_ANY=new G(G.OUTPUT,v.of(this.EVENT_RESULT_NAME,I.ofAny(this.EVENT_RESULT_NAME)))}static{this.EVENT_RESULT_OBJECT=new G(G.OUTPUT,v.of(this.EVENT_RESULT_NAME,I.ofObject(this.EVENT_RESULT_NAME)))}static{this.PARAMETER_INT_LENGTH=U.of("length",I.ofInteger("length").setDefaultValue(-1))}static{this.PARAMETER_ARRAY_FIND=U.of("find",I.ofArray("eachFind",I.ofAny("eachFind")))}static{this.PARAMETER_INT_SOURCE_FROM=U.of("srcFrom",I.ofInteger("srcFrom").setDefaultValue(0).setMinimum(0))}static{this.PARAMETER_INT_SECOND_SOURCE_FROM=U.of("secondSrcFrom",I.ofInteger("secondSrcFrom").setDefaultValue(0))}static{this.PARAMETER_INT_FIND_FROM=U.of("findFrom",I.ofInteger("findFrom").setDefaultValue(0))}static{this.PARAMETER_INT_OFFSET=U.of("offset",I.ofInteger("offset").setDefaultValue(0))}static{this.PARAMETER_ROTATE_LENGTH=U.of("rotateLength",I.ofInteger("rotateLength").setDefaultValue(1).setMinimum(1))}static{this.PARAMETER_BOOLEAN_ASCENDING=U.of("ascending",I.ofBoolean("ascending").setDefaultValue(!0))}static{this.PARAMETER_KEY_PATH=U.of("keyPath",I.ofString("keyPath").setDefaultValue(""))}static{this.PARAMETER_FIND_PRIMITIVE=U.of("findPrimitive",I.of("findPrimitive",c.STRING,c.DOUBLE,c.FLOAT,c.INTEGER,c.LONG))}static{this.PARAMETER_ARRAY_SOURCE=U.of("source",I.ofArray("eachSource",I.ofAny("eachSource")))}static{this.PARAMETER_ARRAY_SECOND_SOURCE=U.of("secondSource",I.ofArray("eachSecondSource",I.ofAny("eachSecondSource")))}static{this.PARAMETER_ARRAY_SOURCE_PRIMITIVE=U.of("source",I.ofArray("eachSource",new I().setName("eachSource").setType(p.of(c.STRING,c.NULL,c.INTEGER,c.FLOAT,c.DOUBLE,c.LONG))))}static{this.PARAMETER_BOOLEAN_DEEP_COPY=U.of("deepCopy",I.ofBoolean("deepCopy").setDefaultValue(!0))}static{this.PARAMETER_ANY=U.of("element",I.ofAny("element"))}static{this.PARAMETER_ANY_ELEMENT_OBJECT=U.of("elementObject",I.ofAny("elementObject"))}static{this.PARAMETER_ANY_VAR_ARGS=U.of("element",I.ofAny("element")).setVariableArgument(!0)}static{this.PARAMETER_ARRAY_RESULT=U.of(e_.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 Y(e).setNamespace(A.SYSTEM_ARRAY).setParameters(s).setEvents(v.of(r.getName(),r))}getSignature(){return this.signature}}class eM extends e_{constructor(){super("Concatenate",[e_.PARAMETER_ARRAY_SOURCE,e_.PARAMETER_ARRAY_SECOND_SOURCE],e_.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(e_.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e_.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName());return new B([$.outputOf(new Map([[e_.EVENT_RESULT_NAME,[...t,...r]]]))])}}class eS extends e_{constructor(){super("AddFirst",[e_.PARAMETER_ARRAY_SOURCE,e_.PARAMETER_ANY],e_.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(e_.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e_.PARAMETER_ANY.getParameterName());if(0==(t=[...t]).length)return t.push(r),new B([$.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 B([$.outputOf(new Map([[e_.EVENT_RESULT_NAME,t]]))])}}let eO="keyName";class ed extends e_{constructor(){super("ArrayToArrayOfObjects",[e_.PARAMETER_ARRAY_SOURCE,U.of(eO,I.ofString(eO),!0)],e_.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(ed.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eO);if(!t?.length)return new B([$.outputOf(new Map([[e_.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 B([$.outputOf(new Map([[e_.EVENT_RESULT_NAME,s]]))])}}t({},"PrimitiveUtil",()=>eP),t({},"ExecutionException",()=>ew);class ew extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class eP{static findPrimitiveNullAsBoolean(e){if(l(e))return new q(c.BOOLEAN,!1);let t=typeof e;if("object"===t)throw new ew(k.format("$ is not a primitive type",e));return"boolean"===t?new q(c.BOOLEAN,e):"string"===t?new q(c.STRING,e):eP.findPrimitiveNumberType(e)}static findPrimitive(e){if(l(e))return new q(c.NULL,void 0);let t=typeof e;if("object"===t)throw new ew(k.format("$ is not a primitive type",e));return"boolean"===t?new q(c.BOOLEAN,e):"string"===t?new q(c.STRING,e):eP.findPrimitiveNumberType(e)}static findPrimitiveNumberType(e){if(l(e)||Array.isArray(e)||"object"==typeof e)throw new ew(k.format("Unable to convert $ to a number.",e));try{if(Number.isInteger(e))return new q(c.LONG,e);return new q(c.DOUBLE,e)}catch(t){throw new ew(k.format("Unable to convert $ to a number.",e),t)}}static compare(e,t){if(e==t)return 0;if(l(e)||l(t))return l(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 l(e)||l(t)?l(e)&&l(t)?0:l(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 e_{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 F("Search source array cannot be empty");if(-1==n&&(n=t.length-r),(n=r+n)>t.length)throw new F("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==eP.compare(t[e],s)){a=e;break}eP.compare(t[e],s)>0?n=e-1:r=e+1}return new B([$.outputOf(new Map([[eI.EVENT_INDEX_NAME,a]]))])}}t({},"ArrayUtil",()=>ey);class ey{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 ex extends e_{constructor(){super("Compare",ey.of(ex.PARAMETER_ARRAY_SOURCE,ex.PARAMETER_INT_SOURCE_FROM,ex.PARAMETER_ARRAY_FIND,ex.PARAMETER_INT_FIND_FROM,ex.PARAMETER_INT_LENGTH),ex.EVENT_RESULT_INTEGER)}async internalExecute(e){var 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_ARRAY_FIND.getParameterName()),n=e?.getArguments()?.get(ex.PARAMETER_INT_FIND_FROM.getParameterName()),a=e?.getArguments()?.get(ex.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new F("Compare source array cannot be empty");if(0==s.length)throw new F("Compare find array cannot be empty");if(-1==a&&(a=t.length-r),r+a>t.length)throw new F(k.format("Source array size $ is less than comparing size $",t.length,r+a));if(n+a>s.length)throw new F(k.format("Find array size $ is less than comparing size $",s.length,n+a));return new B(ey.of($.outputOf(v.of(ex.EVENT_RESULT_NAME,this.compare(t,r,r+a,s,n,n+a)))))}compare(e,t,r,s,n,a){if(r<t){let e=t;t=r,r=e}if(a<n){let e=n;n=a,a=e}if(r-t!=a-n)throw new F(k.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(l(e[a])||l(s[i])){let r=l(e[a]);r==l(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):"number"===r&&"number"===n&&(t=e[a]-s[i])}if(0!=t)return t}return 0}}function eL(e){return e?"function"==typeof globalThis.structuredClone?globalThis.structuredClone(e):JSON.parse(JSON.stringify(e)):e}t({},"duplicate",()=>eL);class eU extends e_{constructor(){super("Copy",[eU.PARAMETER_ARRAY_SOURCE,eU.PARAMETER_INT_SOURCE_FROM,eU.PARAMETER_INT_LENGTH,eU.PARAMETER_BOOLEAN_DEEP_COPY],eU.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(eU.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eU.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eU.PARAMETER_INT_LENGTH.getParameterName());if(-1==s&&(s=t.length-r),r+s>t.length)throw new F(k.format("Array has no elements from $ to $ as the array size is $",r,r+s,t.length));var n=e?.getArguments()?.get(eU.PARAMETER_BOOLEAN_DEEP_COPY.getParameterName());let a=Array(s);for(let e=r;e<r+s;e++)l(t[e])||(a[e-r]=n?eL(t[e]):t[e]);return new B([$.outputOf(v.of(eU.EVENT_RESULT_NAME,a))])}}class eb extends e_{constructor(){super("Delete",[e_.PARAMETER_ARRAY_SOURCE,e_.PARAMETER_ANY_VAR_ARGS],e_.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eb.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eb.PARAMETER_ANY_VAR_ARGS.getParameterName());if(null==r)throw new F("The deletable var args are empty. So cannot be proceeded further.");if(0==t.length||0==r.length)throw new F("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!=eP.compare(t[e],r[n])||s.add(t[e]);return new B([$.outputOf(new Map([[e_.EVENT_RESULT_NAME,t.filter(e=>!s.has(e))]]))])}}class ev extends e_{constructor(){super("DeleteFirst",[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 F("Given source array is empty");return(t=[...t]).shift(),new B([$.outputOf(new Map([[e_.EVENT_RESULT_NAME,t]]))])}}class eV extends e_{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 F("There are no elements to be deleted");if(r>=(t=[...t]).length||r<0)throw new F("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 F("Requested length to be deleted is more than the size of array ");return t.splice(r,s),new B([$.outputOf(new Map([[e_.EVENT_RESULT_NAME,t]]))])}}class eC extends e_{constructor(){super("DeleteLast",[eC.PARAMETER_ARRAY_SOURCE],eC.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eC.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new F("Given source array is empty");return(t=[...t]).pop(),new B([$.outputOf(new Map([[e_.EVENT_RESULT_NAME,t]]))])}}class eD extends e_{constructor(){super("Disjoint",[eD.PARAMETER_ARRAY_SOURCE,eD.PARAMETER_INT_SOURCE_FROM,eD.PARAMETER_ARRAY_SECOND_SOURCE,eD.PARAMETER_INT_SECOND_SOURCE_FROM,eD.PARAMETER_INT_LENGTH],eD.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eD.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eD.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eD.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(eD.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(eD.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 F("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 B([$.outputOf(new Map([[eD.EVENT_RESULT_NAME,[...E]]]))])}}class eG extends e_{constructor(){super("Equals",[eG.PARAMETER_ARRAY_SOURCE,eG.PARAMETER_INT_SOURCE_FROM,eG.PARAMETER_ARRAY_FIND,eG.PARAMETER_INT_FIND_FROM,eG.PARAMETER_INT_LENGTH],eG.EVENT_RESULT_BOOLEAN)}async internalExecute(e){let t=new ex,r=(await t.execute(e)).allResults()[0].getResult().get(eG.EVENT_RESULT_NAME);return new B([$.outputOf(v.of(eG.EVENT_RESULT_NAME,0==r))])}}class e$ extends e_{constructor(){super("Fill",[e$.PARAMETER_ARRAY_SOURCE,e$.PARAMETER_INT_SOURCE_FROM,e$.PARAMETER_INT_LENGTH,e$.PARAMETER_ANY],e$.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(e$.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e$.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(e$.PARAMETER_INT_LENGTH.getParameterName()),n=e?.getArguments()?.get(e$.PARAMETER_ANY.getParameterName());if(r<0)throw new F(k.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]=l(n)?n:eL(n);return new B([$.outputOf(v.of(e_.EVENT_RESULT_NAME,t))])}}class eF extends e_{constructor(){super("Frequency",[eF.PARAMETER_ARRAY_SOURCE,eF.PARAMETER_ANY,eF.PARAMETER_INT_SOURCE_FROM,eF.PARAMETER_INT_LENGTH],eF.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eF.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eF.PARAMETER_ANY.getParameterName()),s=e?.getArguments()?.get(eF.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(eF.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)return new B([$.outputOf(new Map([[eF.EVENT_RESULT_NAME,0]]))]);if(s>t.length)throw new F("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 F("Given length is more than the size of source");let i=0;for(let e=s;e<a&&e<t.length;e++)0==eP.compare(t[e],r)&&i++;return new B([$.outputOf(new Map([[eF.EVENT_RESULT_NAME,i]]))])}}class eB extends e_{constructor(){super("IndexOf",[eB.PARAMETER_ARRAY_SOURCE,eB.PARAMETER_ANY_ELEMENT_OBJECT,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_ANY_ELEMENT_OBJECT.getParameterName()),s=e?.getArguments()?.get(eB.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new B([$.outputOf(new Map([[eB.EVENT_RESULT_NAME,-1]]))]);if(s<0||s>t.length)throw new F("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==eP.compare(t[e],r)){n=e;break}return new B([$.outputOf(new Map([[eB.EVENT_RESULT_NAME,n]]))])}}class eY extends e_{constructor(){super("IndexOfArray",[eY.PARAMETER_ARRAY_SOURCE,eY.PARAMETER_ARRAY_SECOND_SOURCE,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_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(eY.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length||0==r.length)return new B([$.outputOf(new Map([[eY.EVENT_RESULT_NAME,-1]]))]);if(s<0||s>t.length||t.length<r.length)throw new F("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==eP.compare(t[e],r[s])){for(;s<n&&0==eP.compare(t[e+s],r[s]);)s++;if(s==n){a=e;break}}}return new B([$.outputOf(new Map([[eY.EVENT_RESULT_NAME,a]]))])}}class ek extends e_{constructor(){super("LastIndexOf",[ek.PARAMETER_ARRAY_SOURCE,ek.PARAMETER_ANY_ELEMENT_OBJECT,ek.PARAMETER_INT_FIND_FROM],ek.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(ek.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ek.PARAMETER_ANY_ELEMENT_OBJECT.getParameterName()),s=e?.getArguments()?.get(ek.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new B([$.outputOf(new Map([[ek.EVENT_RESULT_NAME,-1]]))]);if(s<0||s>t.length)throw new F("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==eP.compare(t[e],r)){n=e;break}return new B([$.outputOf(new Map([[ek.EVENT_RESULT_NAME,n]]))])}}class eH extends e_{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 B([$.outputOf(new Map([[eH.EVENT_RESULT_NAME,-1]]))]);if(s<0||s>t.length||r.length>t.length)throw new F("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==eP.compare(t[e],r[s])){for(;s<n&&0==eP.compare(t[e+s],r[s]);)s++;s==n&&(a=e)}}return new B([$.outputOf(new Map([[eH.EVENT_RESULT_NAME,a]]))])}}class ej extends e_{constructor(){super("Max",[ej.PARAMETER_ARRAY_SOURCE_PRIMITIVE],ej.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(ej.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==t.length)throw new F("Search source array cannot be empty");let r=t[0];for(let e=1;e<t.length;e++){let s=t[e];eP.comparePrimitive(r,s)>=0||(r=s)}return new B([$.outputOf(new Map([[ej.EVENT_RESULT_NAME,r]]))])}}class eW extends e_{constructor(){super("Min",[eW.PARAMETER_ARRAY_SOURCE_PRIMITIVE],eW.EVENT_RESULT_ANY)}async internalExecute(e){let t,r=e?.getArguments()?.get(eW.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==r.length)throw new F("Search source array cannot be empty");for(let e=0;e<r.length;e++)!l(r[e])&&(void 0===t||0>eP.comparePrimitive(r[e],t))&&(t=r[e]);return new B([$.outputOf(new Map([[eW.EVENT_RESULT_NAME,t]]))])}}class eX extends e_{constructor(){super("MisMatch",[eX.PARAMETER_ARRAY_SOURCE,eX.PARAMETER_INT_FIND_FROM,eX.PARAMETER_ARRAY_SECOND_SOURCE,eX.PARAMETER_INT_SECOND_SOURCE_FROM,eX.PARAMETER_INT_LENGTH],eX.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eX.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eX.PARAMETER_INT_FIND_FROM.getParameterName()),s=e?.getArguments()?.get(eX.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(eX.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(eX.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 F("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 B([$.outputOf(new Map([[eX.EVENT_RESULT_NAME,E]]))])}}class eJ extends e_{constructor(){super("Reverse",[eJ.PARAMETER_ARRAY_SOURCE,eJ.PARAMETER_INT_SOURCE_FROM,eJ.PARAMETER_INT_LENGTH],eJ.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eJ.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eJ.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eJ.PARAMETER_INT_LENGTH.getParameterName());if(-1==s&&(s=t.length-r),s>=t.length||s<0||r<0)throw new F("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 B([$.outputOf(new Map([[eJ.EVENT_RESULT_NAME,t]]))])}}class eq extends e_{constructor(){super("Rotate",[eq.PARAMETER_ARRAY_SOURCE,eq.PARAMETER_ROTATE_LENGTH],eq.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eq.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eq.PARAMETER_ROTATE_LENGTH.getParameterName());if(0==t.length)return new B([$.outputOf(new Map([[e_.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 B([$.outputOf(new Map([[e_.EVENT_RESULT_NAME,t]]))])}rotate(e,t,r){for(;t<r;){let s=e[t];e[t++]=e[r],e[r--]=s}}}class eK extends e_{constructor(){super("Shuffle",[eK.PARAMETER_ARRAY_SOURCE],eK.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eK.PARAMETER_ARRAY_SOURCE.getParameterName());if(t.length<=1)return new B([$.outputOf(new Map([[e_.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 B([$.outputOf(new Map([[e_.EVENT_RESULT_NAME,t]]))])}}t({},"ObjectValueSetterExtractor",()=>e7),t({},"Expression",()=>e2),t({},"StringBuilder",()=>ez);class ez{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 F(`Index ${e} is greater than or equal to ${this.str.length}`)}substring(e,t){return this.str.substring(e,t)}}t({},"ExpressionEvaluationException",()=>eQ);class eQ extends Error{constructor(e,t,r){super(k.format("$ : $",e,t)),this.cause=r}getCause(){return this.cause}}t({},"ExpressionToken",()=>eZ);class eZ{constructor(e){this.expression=e}getExpression(){return this.expression}toString(){return this.expression}}t({},"ExpressionTokenValue",()=>e0);class e0 extends eZ{constructor(e,t){super(e),this.element=t}getTokenValue(){return this.element}getElement(){return this.element}toString(){return k.format("$: $",this.expression,this.element)}}t({},"Operation",()=>e1);class e1{static{this.MULTIPLICATION=new e1("*")}static{this.DIVISION=new e1("/")}static{this.INTEGER_DIVISION=new e1("//")}static{this.MOD=new e1("%")}static{this.ADDITION=new e1("+")}static{this.SUBTRACTION=new e1("-")}static{this.NOT=new e1("not",void 0,!0)}static{this.AND=new e1("and",void 0,!0)}static{this.OR=new e1("or",void 0,!0)}static{this.LESS_THAN=new e1("<")}static{this.LESS_THAN_EQUAL=new e1("<=")}static{this.GREATER_THAN=new e1(">")}static{this.GREATER_THAN_EQUAL=new e1(">=")}static{this.EQUAL=new e1("=")}static{this.NOT_EQUAL=new e1("!=")}static{this.BITWISE_AND=new e1("&")}static{this.BITWISE_OR=new e1("|")}static{this.BITWISE_XOR=new e1("^")}static{this.BITWISE_COMPLEMENT=new e1("~")}static{this.BITWISE_LEFT_SHIFT=new e1("<<")}static{this.BITWISE_RIGHT_SHIFT=new e1(">>")}static{this.BITWISE_UNSIGNED_RIGHT_SHIFT=new e1(">>>")}static{this.UNARY_PLUS=new e1("UN: +","+")}static{this.UNARY_MINUS=new e1("UN: -","-")}static{this.UNARY_LOGICAL_NOT=new e1("UN: not","not")}static{this.UNARY_BITWISE_COMPLEMENT=new e1("UN: ~","~")}static{this.ARRAY_OPERATOR=new e1("[")}static{this.ARRAY_RANGE_INDEX_OPERATOR=new e1("..")}static{this.OBJECT_OPERATOR=new e1(".")}static{this.NULLISH_COALESCING_OPERATOR=new e1("??")}static{this.CONDITIONAL_TERNARY_OPERATOR=new e1("?")}static{this.VALUE_OF=new Map([["MULTIPLICATION",e1.MULTIPLICATION],["DIVISION",e1.DIVISION],["INTEGER_DIVISION",e1.INTEGER_DIVISION],["MOD",e1.MOD],["ADDITION",e1.ADDITION],["SUBTRACTION",e1.SUBTRACTION],["NOT",e1.NOT],["AND",e1.AND],["OR",e1.OR],["LESS_THAN",e1.LESS_THAN],["LESS_THAN_EQUAL",e1.LESS_THAN_EQUAL],["GREATER_THAN",e1.GREATER_THAN],["GREATER_THAN_EQUAL",e1.GREATER_THAN_EQUAL],["EQUAL",e1.EQUAL],["NOT_EQUAL",e1.NOT_EQUAL],["BITWISE_AND",e1.BITWISE_AND],["BITWISE_OR",e1.BITWISE_OR],["BITWISE_XOR",e1.BITWISE_XOR],["BITWISE_COMPLEMENT",e1.BITWISE_COMPLEMENT],["BITWISE_LEFT_SHIFT",e1.BITWISE_LEFT_SHIFT],["BITWISE_RIGHT_SHIFT",e1.BITWISE_RIGHT_SHIFT],["BITWISE_UNSIGNED_RIGHT_SHIFT",e1.BITWISE_UNSIGNED_RIGHT_SHIFT],["UNARY_PLUS",e1.UNARY_PLUS],["UNARY_MINUS",e1.UNARY_MINUS],["UNARY_LOGICAL_NOT",e1.UNARY_LOGICAL_NOT],["UNARY_BITWISE_COMPLEMENT",e1.UNARY_BITWISE_COMPLEMENT],["ARRAY_OPERATOR",e1.ARRAY_OPERATOR],["ARRAY_RANGE_INDEX_OPERATOR",e1.ARRAY_RANGE_INDEX_OPERATOR],["OBJECT_OPERATOR",e1.OBJECT_OPERATOR],["NULLISH_COALESCING_OPERATOR",e1.NULLISH_COALESCING_OPERATOR],["CONDITIONAL_TERNARY_OPERATOR",e1.CONDITIONAL_TERNARY_OPERATOR]])}static{this.UNARY_OPERATORS=new Set([e1.ADDITION,e1.SUBTRACTION,e1.NOT,e1.BITWISE_COMPLEMENT,e1.UNARY_PLUS,e1.UNARY_MINUS,e1.UNARY_LOGICAL_NOT,e1.UNARY_BITWISE_COMPLEMENT])}static{this.ARITHMETIC_OPERATORS=new Set([e1.MULTIPLICATION,e1.DIVISION,e1.INTEGER_DIVISION,e1.MOD,e1.ADDITION,e1.SUBTRACTION])}static{this.LOGICAL_OPERATORS=new Set([e1.NOT,e1.AND,e1.OR,e1.LESS_THAN,e1.LESS_THAN_EQUAL,e1.GREATER_THAN,e1.GREATER_THAN_EQUAL,e1.EQUAL,e1.NOT_EQUAL,e1.NULLISH_COALESCING_OPERATOR])}static{this.BITWISE_OPERATORS=new Set([e1.BITWISE_AND,e1.BITWISE_COMPLEMENT,e1.BITWISE_LEFT_SHIFT,e1.BITWISE_OR,e1.BITWISE_RIGHT_SHIFT,e1.BITWISE_UNSIGNED_RIGHT_SHIFT,e1.BITWISE_XOR])}static{this.CONDITIONAL_OPERATORS=new Set([e1.CONDITIONAL_TERNARY_OPERATOR])}static{this.OPERATOR_PRIORITY=new Map([[e1.UNARY_PLUS,1],[e1.UNARY_MINUS,1],[e1.UNARY_LOGICAL_NOT,1],[e1.UNARY_BITWISE_COMPLEMENT,1],[e1.ARRAY_OPERATOR,1],[e1.OBJECT_OPERATOR,1],[e1.ARRAY_RANGE_INDEX_OPERATOR,2],[e1.MULTIPLICATION,2],[e1.DIVISION,2],[e1.INTEGER_DIVISION,2],[e1.MOD,2],[e1.ADDITION,3],[e1.SUBTRACTION,3],[e1.BITWISE_LEFT_SHIFT,4],[e1.BITWISE_RIGHT_SHIFT,4],[e1.BITWISE_UNSIGNED_RIGHT_SHIFT,4],[e1.LESS_THAN,5],[e1.LESS_THAN_EQUAL,5],[e1.GREATER_THAN,5],[e1.GREATER_THAN_EQUAL,5],[e1.EQUAL,6],[e1.NOT_EQUAL,6],[e1.BITWISE_AND,7],[e1.BITWISE_XOR,8],[e1.BITWISE_OR,9],[e1.AND,10],[e1.OR,11],[e1.NULLISH_COALESCING_OPERATOR,11],[e1.CONDITIONAL_TERNARY_OPERATOR,12]])}static{this.OPERATORS=new Set([...Array.from(e1.ARITHMETIC_OPERATORS),...Array.from(e1.LOGICAL_OPERATORS),...Array.from(e1.BITWISE_OPERATORS),e1.ARRAY_OPERATOR,e1.ARRAY_RANGE_INDEX_OPERATOR,e1.OBJECT_OPERATOR,...Array.from(e1.CONDITIONAL_OPERATORS)].map(e=>e.getOperator()))}static{this.OPERATORS_WITHOUT_SPACE_WRAP=new Set([...Array.from(e1.ARITHMETIC_OPERATORS),...Array.from(e1.LOGICAL_OPERATORS),...Array.from(e1.BITWISE_OPERATORS),e1.ARRAY_OPERATOR,e1.ARRAY_RANGE_INDEX_OPERATOR,e1.OBJECT_OPERATOR,...Array.from(e1.CONDITIONAL_OPERATORS)].filter(e=>!e.shouldBeWrappedInSpace()).map(e=>e.getOperator()))}static{this.OPERATION_VALUE_OF=new Map(Array.from(e1.VALUE_OF.entries()).map(([e,t])=>[t.getOperator(),t]))}static{this.UNARY_MAP=new Map([[e1.ADDITION,e1.UNARY_PLUS],[e1.SUBTRACTION,e1.UNARY_MINUS],[e1.NOT,e1.UNARY_LOGICAL_NOT],[e1.BITWISE_COMPLEMENT,e1.UNARY_BITWISE_COMPLEMENT],[e1.UNARY_PLUS,e1.UNARY_PLUS],[e1.UNARY_MINUS,e1.UNARY_MINUS],[e1.UNARY_LOGICAL_NOT,e1.UNARY_LOGICAL_NOT],[e1.UNARY_BITWISE_COMPLEMENT,e1.UNARY_BITWISE_COMPLEMENT]])}static{this.BIGGEST_OPERATOR_SIZE=Array.from(e1.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 e1.VALUE_OF.get(e)}toString(){return this.operator}}class e2 extends eZ{constructor(e,t,r,s){super(e||""),this.tokens=new H,this.ops=new H,s?.getOperator()==".."&&(t?r||(r=new e0("","")):t=new e0("","")),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 eZ(""))}getTokens(){return this.tokens}getOperations(){return this.ops}getTokensArray(){return this.cachedTokensArray||(this.cachedTokensArray=this.tokens.toArray()),this.cachedTokensArray}getOperationsArray(){return this.cachedOpsArray||(this.cachedOpsArray=this.ops.toArray()),this.cachedOpsArray}evaluate(){let e,t=this.expression.length,r="",s=new ez(""),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 eQ(this.expression,"Extra closing parenthesis found");case"]":throw new eQ(this.expression,"Extra closing square bracket found");case"'":case'"':if(a&&this.ops.peek()==e1.ARRAY_OPERATOR){let e=this.process(t,s,n);n=e.getT1(),a=e.getT2()}else{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()==e1.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()==e1.ARRAY_OPERATOR&&(n=(i=this.process(t,s,n)).getT1(),a=i.getT2())}++n}if(e=s.toString(),!X.isNullOrBlank(e))if(e1.OPERATORS.has(e))throw new eQ(this.expression,"Expression is ending with an operator");else this.tokens.push(new eZ(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 eQ(this.expression,"Missing string ending marker "+t);let a=new q(n,!1);return this.tokens.push(new e0(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 e2(t.toString())),t.setLength(0),new q(r,!1)}processOthers(e,t,r,s,n,a){let i=t-n;i=i<e1.BIGGEST_OPERATOR_SIZE?i:e1.BIGGEST_OPERATOR_SIZE;for(let e=i;e>0;e--){let t=this.expression.substring(n,n+e);if(e1.OPERATORS_WITHOUT_SPACE_WRAP.has(t))return X.isNullOrBlank(s)?".."==t&&this.tokens.isEmpty()&&(this.tokens.push(new eZ("0")),a=!1):(this.tokens.push(new eZ(s)),a=!1),this.checkUnaryOperator(this.tokens,this.ops,e1.OPERATION_VALUE_OF.get(t),a),a=!0,r.setLength(0),new q(n+e-1,a)}return r.append(e),new q(n,!1)}processTernaryOperator(e,t,r,s,n){if(n)throw new eQ(this.expression,"Ternary operator is followed by an operator");""!=r.trim()&&(this.tokens.push(new e2(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 eQ(this.expression,"':' operater is missing");if(s>=e)throw new eQ(this.expression,"Third part of the ternary expression is missing");for(;!this.ops.isEmpty()&&this.hasPrecedence(e1.CONDITIONAL_TERNARY_OPERATOR,this.ops.peek());){let e=this.ops.pop();if(e1.UNARY_OPERATORS.has(e)){let t=this.tokens.pop();this.tokens.push(new e2("",t,void 0,e))}else{let t=this.tokens.pop(),r=this.tokens.pop();this.tokens.push(new e2("",r,t,e))}}this.ops.push(e1.CONDITIONAL_TERNARY_OPERATOR),this.tokens.push(new e2(this.expression.substring(o,s-1)));let E=this.expression.substring(s);if(""===E.trim())throw new eQ(this.expression,"Third part of the ternary expression is missing");return this.tokens.push(new e2(E)),e-1}processSubExpression(e,t,r,s,n){if(e1.OPERATORS.has(r))this.checkUnaryOperator(this.tokens,this.ops,e1.OPERATION_VALUE_OF.get(r),n),t.setLength(0);else if(!X.isNullOrBlank(r))throw new eQ(this.expression,k.format("Unkown token : $ found.",r));let a=1,i=new ez,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 eQ(this.expression,"Missing a closed parenthesis");for(;i.length()>2&&this.hasMatchingOuterParentheses(i.toString());)i.deleteCharAt(0),i.setLength(i.length()-1);return this.tokens.push(new e2(i.toString().trim())),s}processTokenSepearator(e,t,r){return X.isNullOrBlank(t)||(e1.OPERATORS.has(t)?(this.checkUnaryOperator(this.tokens,this.ops,e1.OPERATION_VALUE_OF.get(t),r),r=!0):(this.tokens.push(new eZ(t)),r=!1)),e.setLength(0),r}checkUnaryOperator(e,t,r,s){if(r)if(s||e.isEmpty())if(e1.UNARY_OPERATORS.has(r)){let e=e1.UNARY_MAP.get(r);e&&t.push(e)}else throw new eQ(this.expression,k.format("Extra operator $ found.",r));else{for(;!t.isEmpty()&&this.hasPrecedence(r,t.peek());){let r=t.pop();if(e1.UNARY_OPERATORS.has(r)){let t=e.pop();e.push(new e2("",t,void 0,r))}else{let t=e.pop(),s=e.pop();e.push(new e2("",s,t,r))}}t.push(r)}}hasPrecedence(e,t){let r=e1.OPERATOR_PRIORITY.get(e),s=e1.OPERATOR_PRIORITY.get(t);if(!r||!s)throw Error("Unknown operators provided");return s<r}hasMatchingOuterParentheses(e){if(e.length<2||"("!==e.charAt(0)||")"!==e.charAt(e.length-1))return!1;let t=0;for(let r=0;r<e.length-1;r++){let s=e.charAt(r);if("("===s?t++:")"===s&&t--,0===t)return!1}return 1===t}toString(){if(this.ops.isEmpty())return 1==this.tokens.size()?this.tokens.get(0).toString():"Error: No tokens";let e=new ez,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 e2?s[t].toString():s[t]).append(")"),t++;else if(r[n]==e1.CONDITIONAL_TERNARY_OPERATOR){let r=s[t++];e.insert(0,(r instanceof e2,r.toString())),e.insert(0,":"),r=s[t++],e.insert(0,(r instanceof e2,r.toString())),e.insert(0,"?"),r=s[t++],e.insert(0,(r instanceof e2,r.toString())).append(")"),e.insert(0,"(")}else{if(0==t){let r=s[t++];e.insert(0,(r instanceof e2,r.toString()))}let a=s[t++];e.insert(0,r[n].getOperator()).insert(0,a instanceof e2?a.toString():a?.toString()).insert(0,"(").append(")")}return e.toString()}equals(e){return this.expression==e.expression}}t({},"TokenValueExtractor",()=>e5);class e5{static{this.REGEX_SQUARE_BRACKETS=/[\[\]]/}static{this.REGEX_DOT=/(?<!\.)\.(?!\.)/}static{this.pathCache=new Map}static{this.bracketCache=new Map}static splitPath(e){let t=e5.pathCache.get(e);return t||(t=e5.splitPathInternal(e),e5.pathCache.set(e,t)),t}static splitPathInternal(e){let t=[],r=0,s=!1;for(let n=0;n<e.length;n++){let a=e.charAt(n);"["===a?s=!0:"]"===a?s=!1:"."!==a||s||e5.isDoubleDot(e,n)||(n>r&&t.push(e.substring(r,n)),r=n+1)}return r<e.length&&t.push(e.substring(r)),t}static isDoubleDot(e,t){return t>0&&"."===e.charAt(t-1)||t<e.length-1&&"."===e.charAt(t+1)}static parseBracketSegment(e){let t=e5.bracketCache.get(e);return t||(t=e.split(e5.REGEX_SQUARE_BRACKETS).map(e=>e.trim()).filter(e=>!X.isNullOrBlank(e)),e5.bracketCache.set(e,t)),t}getValue(e){let t=this.getPrefix();if(!e.startsWith(t))throw new F(k.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(!l(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=Number.parseInt(e);return isNaN(r)?e:r}}return this.getValueInternal(e)}retrieveElementFrom(e,t,r,s){let n=s;for(let s=r;s<t.length;s++){if(l(n))return;for(let r of e5.parseBracketSegment(t[s]))if(void 0===(n=this.resolveSegmentFast(e,t,s,r,n)))return}return n}resolveSegmentFast(e,t,r,s,n){if(null!=n){if(s.startsWith('"')||s.startsWith("'"))return this.resolveForEachPartOfTokenWithBrackets(e,t,r,s,n);if("object"==typeof n&&!Array.isArray(n))return s in n?n[s]:"length"===s?Object.keys(n).length:n[s];if(Array.isArray(n)){if("length"===s)return n.length;if(/^-?\d+$/.test(s)){let e=Number.parseInt(s,10),t=e<0?n.length+e:e;return t>=0&&t<n.length?n[t]:void 0}}if("string"==typeof n){if("length"===s)return n.length;if(/^-?\d+$/.test(s)){let e=Number.parseInt(s,10),t=e<0?n.length+e:e;return t>=0&&t<n.length?n[t]:void 0}}return this.resolveForEachPartOfTokenWithBrackets(e,t,r,s,n)}}resolveForEachPartOfTokenWithBrackets(e,t,r,s,n){if(!l(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)if("length"in t)return t.length;else return Object.keys(t).length;throw new eQ(e,k.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 eQ(e,k.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('"')||s.startsWith("'")){let t=s[0];if(!s.endsWith(t)||1==s.length||2==s.length)throw new eQ(e,k.format("$ is missing a closing quote or empty key found",e));s=s.substring(1,s.length-1)}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 eQ(e,k.format("Unable to retrieve $ from $ in the path $",t[r],s.toString(),e))}}class e7 extends e5{constructor(e,t){super(),this.store=e,this.prefix=t}getValueInternal(e){let t=e.split(e5.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=eL(this.store),this.modifyStore(e,t,r,s)}modifyStore(e,t,r,s){let n=new e2(e),a=n.getTokens();a.removeLast();let i=n.getOperations(),o=i.removeLast(),E=a.removeLast(),u=E instanceof e0?E.getElement():E.getExpression(),A=this.store;for(;!i.isEmpty();)A=o==e1.OBJECT_OPERATOR?this.getDataFromObject(A,u,i.peekLast()):this.getDataFromArray(A,u,i.peekLast()),o=i.removeLast(),u=(E=a.removeLast())instanceof e0?E.getElement():E.getExpression();o==e1.OBJECT_OPERATOR?this.putDataInObject(A,u,t,r,s):this.putDataInArray(A,u,t,r,s)}getDataFromArray(e,t,r){if(!Array.isArray(e))throw new F(k.format("Expected an array but found $",e));let s=parseInt(t);if(isNaN(s))throw new F(k.format("Expected an array index but found $",t));if(s<0)throw new F(k.format("Array index is out of bound - $",t));let n=e[s];return l(n)&&(n=r==e1.OBJECT_OPERATOR?{}:[],e[s]=n),n}getDataFromObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new F(k.format("Expected an object but found $",e));let s=e[t];return l(s)&&(s=r==e1.OBJECT_OPERATOR?{}:[],e[t]=s),s}putDataInArray(e,t,r,s,n){if(!Array.isArray(e))throw new F(k.format("Expected an array but found $",e));let a=parseInt(t);if(isNaN(a))throw new F(k.format("Expected an array index but found $",t));if(a<0)throw new F(k.format("Array index is out of bound - $",t));(s||l(e[a]))&&(n&&l(r)?e.splice(a,1):e[a]=r)}putDataInObject(e,t,r,s,n){if(Array.isArray(e)||"object"!=typeof e)throw new F(k.format("Expected an object but found $",e));(s||l(e[t]))&&(n&&l(r)?delete e[t]:e[t]=r)}getPrefix(){return this.prefix}}class e4 extends e_{constructor(){super("Sort",[e4.PARAMETER_ARRAY_SOURCE,e4.PARAMETER_INT_FIND_FROM,e4.PARAMETER_INT_LENGTH,e4.PARAMETER_BOOLEAN_ASCENDING,e4.PARAMETER_KEY_PATH],e4.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(e4.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e4.PARAMETER_INT_FIND_FROM.getParameterName()),s=e?.getArguments()?.get(e4.PARAMETER_INT_LENGTH.getParameterName()),n=e?.getArguments()?.get(e4.PARAMETER_BOOLEAN_ASCENDING.getParameterName()),a=e?.getArguments()?.get(e4.PARAMETER_KEY_PATH.getParameterName());if(0==t.length)return new B([$.outputOf(new Map([[e_.EVENT_RESULT_NAME,t]]))]);if(t=[...t],-1==s&&(s=t.length-r),r<0||r>=t.length||r+s>t.length)throw new F("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 e7({},"Data.");return i.sort((e,t)=>"object"==typeof e&&"object"==typeof t&&a.length?(o.setStore({a:e,b:t}),e9(o.getValue("Data.a."+a),o.getValue("Data.b."+a),n)):e9(e,t,n)),t.splice(r,s,...i),new B([$.outputOf(new Map([[e_.EVENT_RESULT_NAME,t]]))])}}function e9(e,t,r){return e===t?0:null===e?1:null===t?-1:r?e<t?-1:1:e<t?1:-1}class e6 extends e_{constructor(){super("SubArray",[e6.PARAMETER_ARRAY_SOURCE,e6.PARAMETER_INT_FIND_FROM,e6.PARAMETER_INT_LENGTH],e6.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(e6.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e6.PARAMETER_INT_FIND_FROM.getParameterName()),s=e?.getArguments()?.get(e6.PARAMETER_INT_LENGTH.getParameterName());if(-1==s&&(s=t.length-r),s<=0)return new B([$.outputOf(new Map([]))]);if(!(r>=0&&r<t.length)||r+s>t.length)throw new F("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 B([$.outputOf(new Map([[e6.EVENT_RESULT_NAME,n]]))])}}class e3 extends e_{constructor(){super("Insert",[e3.PARAMETER_ARRAY_SOURCE,e3.PARAMETER_INT_OFFSET,e3.PARAMETER_ANY],e3.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(e3.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e3.PARAMETER_INT_OFFSET.getParameterName());var s=e?.getArguments()?.get(e3.PARAMETER_ANY.getParameterName());if(l(s)||l(r)||r>t.length)throw new F("Please valid resouces to insert at the correct location");if(0==(t=[...t]).length)return 0==r&&t.push(s),new B([$.outputOf(new Map([[e_.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 B([$.outputOf(new Map([[e_.EVENT_RESULT_NAME,t]]))])}}class e8 extends e_{constructor(){super("InsertLast",[e8.PARAMETER_ARRAY_SOURCE,e8.PARAMETER_ANY],e8.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(e8.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(e8.PARAMETER_ANY.getParameterName());return(t=[...t]).push(r),new B([$.outputOf(new Map([[e_.EVENT_RESULT_NAME,t]]))])}}class te extends e_{constructor(){super("RemoveDuplicates",[te.PARAMETER_ARRAY_SOURCE,te.PARAMETER_INT_SOURCE_FROM,te.PARAMETER_INT_LENGTH],te.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(te.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(te.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(te.PARAMETER_INT_LENGTH.getParameterName());if(-1==s&&(s=t.length-r),r+s>t.length)throw new F(k.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(W(n[e],n[t])){n.splice(e,1);break}return new B([$.outputOf(v.of(te.EVENT_RESULT_NAME,n))])}}let tt="keyPath",tr="valuePath",ts="ignoreNullValues",tn="ignoreNullKeys",ta="ignoreDuplicateKeys";class ti extends e_{constructor(){super("ArrayToObjects",[e_.PARAMETER_ARRAY_SOURCE,U.of(tt,I.ofString(tt)),U.of(tr,I.of(tr,c.STRING,c.NULL)),U.of(ts,I.ofBoolean(ts).setDefaultValue(!1)),U.of(tn,I.ofBoolean(tn).setDefaultValue(!0)),U.of(ta,I.ofBoolean(ta).setDefaultValue(!1))],e_.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(e_.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(tt),s=e?.getArguments()?.get(tr)??"",n=e?.getArguments()?.get(ts),a=e?.getArguments()?.get(tn),i=e?.getArguments()?.get(ta),o=new e7({},"Data."),E=t.filter(e=>!l(e)).reduce((e,t)=>{o.setStore(t);let E=o.getValue("Data."+r);if(a&&l(E))return e;let u=s?o.getValue("Data."+s):t;return n&&l(u)||i&&e.hasOwnProperty(E)||(e[E]=u),e},{});return new B([$.outputOf(new Map([[e_.EVENT_RESULT_NAME,E]]))])}}let to="source",tE="delimiter",tu="result";class tA extends eN{getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(to),r=e?.getArguments()?.get(tE);return new B([$.outputOf(new Map([[tu,t.join(r)]]))])}constructor(...e){super(...e),this.signature=new Y("Join").setNamespace(A.SYSTEM_ARRAY).setParameters(new Map([[to,new U(to,I.ofArray(to,I.of("each",c.STRING,c.INTEGER,c.LONG,c.DOUBLE,c.FLOAT,c.NULL)))],[tE,new U(tE,I.ofString(tE).setDefaultValue(""))]])).setEvents(new Map([G.outputEventMapEntry(new Map([[tu,I.ofString(tu)]]))]))}}class tl{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=v.ofArrayEntries(D(new eM),D(new eS),D(new eI),D(new ex),D(new eU),D(new eb),D(new ev),D(new eV),D(new eC),D(new eD),D(new eG),D(new e$),D(new eF),D(new eB),D(new eY),D(new ek),D(new eH),D(new ej),D(new eW),D(new eX),D(new eJ),D(new eq),D(new eK),D(new e4),D(new e6),D(new ed),D(new e3),D(new e8),D(new te),D(new ti),D(new tA)),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 tc="name",th="schema";class tg extends eN{getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(tc);if(e?.getContext()?.has(t))throw new F(k.format("Context already has an element for '$' ",t));let r=I.from(e?.getArguments()?.get(th));if(!r)throw new F("Schema is not supplied.");return e.getContext().set(t,new tT(r,l(r.getDefaultValue())?void 0:r.getDefaultValue())),new B([$.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new Y("Create").setNamespace(A.SYSTEM_CTX).setParameters(new Map([U.ofEntry(tc,new I().setName(tc).setType(p.of(c.STRING)).setMinLength(1).setFormat(ei.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,x.CONSTANT),U.ofEntry(th,I.SCHEMA,!1,x.CONSTANT)])).setEvents(new Map([G.outputEventMapEntry(new Map)]))}}let tR="name",tp="value";class tm extends eN{getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(tR);if(!e.getContext()?.has(t))throw new F(k.format("Context don't have an element for '$' ",t));return new B([$.outputOf(new Map([tp,e.getContext()?.get(t)?.getElement()]))])}constructor(...e){super(...e),this.signature=new Y("Get").setNamespace(A.SYSTEM_CTX).setParameters(new Map([U.ofEntry(tR,new I().setName(tR).setType(p.of(c.STRING)).setMinLength(1).setFormat(ei.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,x.CONSTANT)])).setEvents(new Map([G.outputEventMapEntry(new Map([[tp,I.ofAny(tp)]]))]))}}t({},"ExpressionEvaluator",()=>rS);var tf={},tN={};t(tN,"ArithmeticAdditionOperator",()=>tS);var t_={};t(t_,"BinaryOperator",()=>tM);class tM{nullCheck(e,t,r){if(l(e)||l(t))throw new ew(k.format("$ cannot be applied to a null value",r.getOperatorName()))}}class tS extends tM{apply(e,t){return l(e)?t:l(t)?e:e+t}}var tO={};t(tO,"ArithmeticDivisionOperator",()=>td);class td extends tM{apply(e,t){return this.nullCheck(e,t,e1.DIVISION),e/t}}var tw={};t(tw,"ArithmeticIntegerDivisionOperator",()=>tP);class tP extends tM{apply(e,t){return this.nullCheck(e,t,e1.DIVISION),Math.floor(e/t)}}var tI={};t(tI,"ArithmeticModulusOperator",()=>ty);class ty extends tM{apply(e,t){return this.nullCheck(e,t,e1.MOD),e%t}}var tx={};t(tx,"ArithmeticMultiplicationOperator",()=>tL);class tL extends tM{apply(e,t){this.nullCheck(e,t,e1.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 tU={};t(tU,"ArithmeticSubtractionOperator",()=>tb);class tb extends tM{apply(e,t){return this.nullCheck(e,t,e1.SUBTRACTION),e-t}}var tv={};t(tv,"ArrayOperator",()=>tV);class tV extends tM{apply(e,t){if(!e)throw new ew("Cannot apply array operator on a null value");if(!t)throw new ew("Cannot retrive null index value");if(!Array.isArray(e)&&"string"!=typeof e)throw new ew(k.format("Cannot retrieve value from a primitive value $",e));if(t>=e.length)throw new ew(k.format("Cannot retrieve index $ from the array of length $",t,e.length));return e[t]}}var tC={};t(tC,"BitwiseAndOperator",()=>tD);class tD extends tM{apply(e,t){return this.nullCheck(e,t,e1.BITWISE_AND),e&t}}var tG={};t(tG,"BitwiseLeftShiftOperator",()=>t$);class t$ extends tM{apply(e,t){return this.nullCheck(e,t,e1.BITWISE_LEFT_SHIFT),e<<t}}var tF={};t(tF,"BitwiseOrOperator",()=>tB);class tB extends tM{apply(e,t){return this.nullCheck(e,t,e1.BITWISE_OR),e|t}}var tY={};t(tY,"BitwiseRightShiftOperator",()=>tk);class tk extends tM{apply(e,t){return this.nullCheck(e,t,e1.BITWISE_RIGHT_SHIFT),e>>t}}var tH={};t(tH,"BitwiseUnsignedRightShiftOperator",()=>tj);class tj extends tM{apply(e,t){return this.nullCheck(e,t,e1.BITWISE_UNSIGNED_RIGHT_SHIFT),e>>>t}}var tW={};t(tW,"BitwiseXorOperator",()=>tX);class tX extends tM{apply(e,t){return this.nullCheck(e,t,e1.BITWISE_XOR),e^t}}var tJ={};t(tJ,"LogicalAndOperator",()=>tq);class tq extends tM{apply(e,t){return!!e&&""!==e&&!!t&&""!==t}}var tK={};t(tK,"LogicalEqualOperator",()=>tz);class tz extends tM{apply(e,t){return W(e,t)}}var tQ={};t(tQ,"LogicalGreaterThanEqualOperator",()=>tZ);class tZ extends tM{apply(e,t){let r=eP.findPrimitiveNullAsBoolean(e),s=eP.findPrimitiveNullAsBoolean(t);if(r.getT1()==c.BOOLEAN||s.getT1()==c.BOOLEAN)throw new ew(k.format("Cannot compare >= with the values $ and $",r.getT2(),s.getT2()));return r.getT2()>=s.getT2()}}var t0={};t(t0,"LogicalGreaterThanOperator",()=>t1);class t1 extends tM{apply(e,t){let r=eP.findPrimitiveNullAsBoolean(e),s=eP.findPrimitiveNullAsBoolean(t);if(r.getT1()==c.BOOLEAN||s.getT1()==c.BOOLEAN)throw new ew(k.format("Cannot compare > with the values $ and $",r.getT2(),s.getT2()));return r.getT2()>s.getT2()}}var t2={};t(t2,"LogicalLessThanEqualOperator",()=>t5);class t5 extends tM{apply(e,t){let r=eP.findPrimitiveNullAsBoolean(e),s=eP.findPrimitiveNullAsBoolean(t);if(r.getT1()==c.BOOLEAN||s.getT1()==c.BOOLEAN)throw new ew(k.format("Cannot compare <= with the values $ and $",r.getT2(),s.getT2()));return r.getT2()<=s.getT2()}}var t7={};t(t7,"LogicalNotEqualOperator",()=>t4);class t4 extends tM{apply(e,t){return!W(e,t)}}var t9={};t(t9,"LogicalLessThanOperator",()=>t6);class t6 extends tM{apply(e,t){let r=eP.findPrimitiveNullAsBoolean(e),s=eP.findPrimitiveNullAsBoolean(t);if(r.getT1()==c.BOOLEAN||s.getT1()==c.BOOLEAN)throw new ew(k.format("Cannot compare < with the values $ and $",r.getT2(),s.getT2()));return r.getT2()<s.getT2()}}var t3={};t(t3,"LogicalOrOperator",()=>t8);class t8 extends tM{apply(e,t){return!!e&&""!==e||!!t&&""!==t}}var re={};t(re,"ObjectOperator",()=>rt);class rt extends tM{apply(e,t){if(!e)throw new ew("Cannot apply array operator on a null value");if(!t)throw new ew("Cannot retrive null property value");let r=typeof e;if(!Array.isArray(e)&&"string"!=r&&"object"!=r)throw new ew(k.format("Cannot retrieve value from a primitive value $",e));return e[t]}}var rr={};t(rr,"LogicalNullishCoalescingOperator",()=>rs);class rs extends tM{apply(e,t){return l(e)?t:e}}var rn={};t(rn,"ArrayRangeOperator",()=>ra);class ra extends tM{apply(e,t){return`${e??""}..${t??""}`}}r(tf,tN),r(tf,tO),r(tf,tw),r(tf,tI),r(tf,tx),r(tf,tU),r(tf,tv),r(tf,t_),r(tf,tC),r(tf,tG),r(tf,tF),r(tf,tY),r(tf,tH),r(tf,tW),r(tf,tJ),r(tf,tK),r(tf,tQ),r(tf,t0),r(tf,t2),r(tf,t7),r(tf,t9),r(tf,t3),r(tf,re),r(tf,rr),r(tf,rn);var ri={},ro={};t(ro,"ArithmeticUnaryMinusOperator",()=>rA);var rE={};t(rE,"UnaryOperator",()=>ru);class ru{nullCheck(e,t){if(l(e))throw new ew(k.format("$ cannot be applied to a null value",t.getOperatorName()))}}class rA extends ru{apply(e){return this.nullCheck(e,e1.UNARY_MINUS),eP.findPrimitiveNumberType(e),-e}}var rl={};t(rl,"ArithmeticUnaryPlusOperator",()=>rT);class rT extends ru{apply(e){return this.nullCheck(e,e1.UNARY_PLUS),eP.findPrimitiveNumberType(e),e}}var rc={};t(rc,"BitwiseComplementOperator",()=>rh);class rh extends ru{apply(e){this.nullCheck(e,e1.UNARY_BITWISE_COMPLEMENT);let t=eP.findPrimitiveNumberType(e);if(t.getT1()!=c.INTEGER&&t.getT1()!=c.LONG)throw new ew(k.format("Unable to apply bitwise operator on $",e));return~e}}var rg={};t(rg,"LogicalNotOperator",()=>rR);class rR extends ru{apply(e){return!e&&""!==e}}r(ri,ro),r(ri,rl),r(ri,rc),r(ri,rg),r(ri,rE),t({},"LiteralTokenValueExtractor",()=>rm);let rp=new Map([["true",!0],["false",!1],["null",void 0],["undefined",void 0]]);class rm extends e5{static{this.INSTANCE=new rm}getValueInternal(e){if(!X.isNullOrBlank(e))return(e=e.trim(),rp.has(e))?rp.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 eQ(e,k.format("Unable to parse the literal or expression $",e),t)}}processString(e){if(!e.endsWith('"'))throw new eQ(e,k.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 rf={};t(rf,"ConditionalTernaryOperator",()=>r_);class rN{nullCheck(e,t,r,s){if(l(e)||l(t)||l(r))throw new ew(k.format("$ cannot be applied to a null value",s.getOperatorName()))}}class r_ extends rN{apply(e,t,r){return e?t:r}}r({},rf);class rM extends e5{static{this.PREFIX="_internal."}addValue(e,t){this.values.set(e,t)}getValueInternal(e){let t=e5.splitPath(e),r=t[1],s=r.indexOf("["),n=2;return -1!=s&&(r=t[1].substring(0,s),(t=[...t])[1]=t[1].substring(s),n=1),this.retrieveElementFrom(e,t,n,this.values.get(r))}getPrefix(){return rM.PREFIX}getStore(){}constructor(...e){super(...e),this.values=new Map}}class rS{static{this.expressionCache=new Map}static{this.keyCounter=0}static getCachedExpression(e){let t=rS.expressionCache.get(e);return t||(t=new e2(e),rS.expressionCache.set(e,t)),t}static{this.UNARY_OPERATORS_MAP=new Map([[e1.UNARY_BITWISE_COMPLEMENT,new rh],[e1.UNARY_LOGICAL_NOT,new rR],[e1.UNARY_MINUS,new rA],[e1.UNARY_PLUS,new rT]])}static{this.TERNARY_OPERATORS_MAP=new Map([[e1.CONDITIONAL_TERNARY_OPERATOR,new r_]])}static{this.BINARY_OPERATORS_MAP=new Map([[e1.ADDITION,new tS],[e1.DIVISION,new td],[e1.INTEGER_DIVISION,new tP],[e1.MOD,new ty],[e1.MULTIPLICATION,new tL],[e1.SUBTRACTION,new tb],[e1.BITWISE_AND,new tD],[e1.BITWISE_LEFT_SHIFT,new t$],[e1.BITWISE_OR,new tB],[e1.BITWISE_RIGHT_SHIFT,new tk],[e1.BITWISE_UNSIGNED_RIGHT_SHIFT,new tj],[e1.BITWISE_XOR,new tX],[e1.AND,new tq],[e1.EQUAL,new tz],[e1.GREATER_THAN,new t1],[e1.GREATER_THAN_EQUAL,new tZ],[e1.LESS_THAN,new t6],[e1.LESS_THAN_EQUAL,new t5],[e1.OR,new t8],[e1.NOT_EQUAL,new t4],[e1.NULLISH_COALESCING_OPERATOR,new rs],[e1.ARRAY_OPERATOR,new tV],[e1.ARRAY_RANGE_INDEX_OPERATOR,new ra],[e1.OBJECT_OPERATOR,new rt]])}static{this.UNARY_OPERATORS_MAP_KEY_SET=new Set(rS.UNARY_OPERATORS_MAP.keys())}static{this.PATTERN_UNKNOWN=0}static{this.PATTERN_LITERAL=1}static{this.PATTERN_SIMPLE_PATH=2}static{this.PATTERN_SIMPLE_ARRAY_ACCESS=3}static{this.PATTERN_SIMPLE_COMPARISON=4}static{this.PATTERN_SIMPLE_TERNARY=5}static{this.patternCache=new Map}static{this.LITERAL_TRUE="true"}static{this.LITERAL_FALSE="false"}static{this.LITERAL_NULL="null"}static{this.LITERAL_UNDEFINED="undefined"}static{this.NUMBER_REGEX=/^-?\d+(\.\d+)?$/}static{this.SINGLE_QUOTE_STRING_REGEX=/^'([^'\\]|\\.)*'$/}static{this.DOUBLE_QUOTE_STRING_REGEX=/^"([^"\\]|\\.)*"$/}static{this.SIMPLE_PATH_REGEX=/^[A-Za-z_][A-Za-z0-9_]*(\.[A-Za-z_][A-Za-z0-9_]*|\[\d+\])*$/}static detectPattern(e){let t=e.getExpression(),r=rS.patternCache.get(t);if(void 0!==r)return r;let s=rS.PATTERN_UNKNOWN;if(t===rS.LITERAL_TRUE||t===rS.LITERAL_FALSE||t===rS.LITERAL_NULL||t===rS.LITERAL_UNDEFINED||rS.NUMBER_REGEX.test(t)||rS.SINGLE_QUOTE_STRING_REGEX.test(t)||rS.DOUBLE_QUOTE_STRING_REGEX.test(t))s=rS.PATTERN_LITERAL;else if(!t.includes(".")||t.includes("{{")||t.includes("..")){if(t.includes(".."))s=rS.PATTERN_UNKNOWN;else if(!t.includes("{{")){let t=e.getOperationsArray();s=rS.detectTernaryOrComparison(e,t)}}else{let t=e.getOperationsArray(),r=e.getTokensArray(),n=t.length>0;for(let e of t)if(e!==e1.OBJECT_OPERATOR&&e!==e1.ARRAY_OPERATOR){n=!1;break}if(n){for(let e of r)if(e instanceof e2){n=!1;break}}s=n?rS.PATTERN_SIMPLE_PATH:rS.detectTernaryOrComparison(e,t)}return rS.patternCache.set(t,s),s}static detectTernaryOrComparison(e,t){for(let t of e.getTokensArray())if(t instanceof e2)return rS.PATTERN_UNKNOWN;return 1===t.length&&t[0]===e1.CONDITIONAL_TERNARY_OPERATOR?rS.PATTERN_SIMPLE_TERNARY:1===t.length&&(t[0]===e1.EQUAL||t[0]===e1.NOT_EQUAL)?rS.PATTERN_SIMPLE_COMPARISON:rS.PATTERN_UNKNOWN}static evaluateLiteral(e){if(e===rS.LITERAL_TRUE)return!0;if(e===rS.LITERAL_FALSE)return!1;if(e===rS.LITERAL_NULL)return null;if(e!==rS.LITERAL_UNDEFINED){if(rS.NUMBER_REGEX.test(e))return e.includes(".")?Number.parseFloat(e):Number.parseInt(e,10);if(rS.SINGLE_QUOTE_STRING_REGEX.test(e)||rS.DOUBLE_QUOTE_STRING_REGEX.test(e))return e.slice(1,-1)}}evaluateSimplePath(e,t){let r=e.getExpression(),s=r.indexOf(".");if(-1===s)return;let n=r.substring(0,s+1),a=t.get(n);if(a)return a.getValue(r)}evaluateSimpleComparison(e,t){let r=e.getOperationsArray(),s=e.getTokensArray();if(2!==s.length||1!==r.length)return;let n=this.getTokenValue(s[1],t),a=this.getTokenValue(s[0],t);return r[0]===e1.EQUAL?n==a:r[0]===e1.NOT_EQUAL?n!=a:void 0}evaluateSimpleTernary(e,t){let r=e.getTokensArray();if(3!==r.length)return;let s=this.getTokenValue(r[2],t),n=this.getTokenValue(r[1],t),a=this.getTokenValue(r[0],t);return s?n:a}getTokenValue(e,t){if(e instanceof e0)return e.getElement();let r=e.getExpression(),s=rS.evaluateLiteral(r);if(void 0!==s||"undefined"===r||"null"===r)return s;let n=r.indexOf(".");if(-1!==n){let e=r.substring(0,n+1),s=t.get(e);if(s)return s.getValue(r)}return rm.INSTANCE.getValue(r)}constructor(e){this.internalTokenValueExtractor=new rM,e instanceof e2?(this.exp=e,this.expression=this.exp.getExpression()):this.expression=e}evaluate(e){let t=this.processNestingExpression(this.expression,e);this.expression=t.getT1(),this.exp=t.getT2();let r=rS.detectPattern(this.exp);return r===rS.PATTERN_LITERAL?rS.evaluateLiteral(this.expression):r===rS.PATTERN_SIMPLE_PATH?this.evaluateSimplePath(this.exp,e):r===rS.PATTERN_SIMPLE_COMPARISON?this.evaluateSimpleComparison(this.exp,e):r===rS.PATTERN_SIMPLE_TERNARY?this.evaluateSimpleTernary(this.exp,e):((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 q(s+2,-1)),r++,s++;else if("}"==e.charAt(s)&&"}"==e.charAt(s+1)){if(--r<0)throw new eQ(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 q(a,rS.getCachedExpression(a))}replaceNestingExpression(e,t,r){let s=e;for(let n of r.toArray()){if(-1==n.getT2())throw new eQ(e,"Expecting }} nesting path operator to be closed");let r=new rS(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=rS.getCachedExpression(this.expression)),this.exp}getExpressionString(){return this.expression}evaluateExpression(e,t){let r=e.getOperationsArray(),s=e.getTokensArray(),n=[],a={opIdx:0,srcIdx:0},i=()=>n.length>0?n.pop():s[a.srcIdx++],o=()=>{if(!(a.opIdx>=r.length))return r[a.opIdx++]},E=()=>{if(!(a.opIdx>=r.length))return r[a.opIdx]},u=()=>n.length>0||a.srcIdx<s.length;for(;a.opIdx<r.length;){let e=o(),A=i();if(rS.UNARY_OPERATORS_MAP_KEY_SET.has(e))n.push(this.applyUnaryOperation(e,this.getValueFromToken(t,A)));else if(e==e1.OBJECT_OPERATOR||e==e1.ARRAY_OPERATOR)this.processObjectOrArrayOperatorIndexed(t,r,s,n,a,e,A,i,o,E,u);else if(e==e1.CONDITIONAL_TERNARY_OPERATOR){let r=i(),s=i(),a=this.getValueFromToken(t,s),o=this.getValueFromToken(t,r),E=this.getValueFromToken(t,A);n.push(this.applyTernaryOperation(e,a,o,E))}else{let r=i(),s=this.getValueFromToken(t,r),a=this.getValueFromToken(t,A);n.push(this.applyBinaryOperation(e,s,a))}}for(;a.srcIdx<s.length;)n.push(s[a.srcIdx++]);if(0===n.length)throw new ew(k.format("Expression : $ evaluated to null",e));if(1!==n.length)throw new ew(k.format("Expression : $ evaluated multiple values $",e,n));let A=n[0];return A instanceof e0?A.getElement():A instanceof e2?this.evaluateExpression(A,t):this.getValueFromToken(t,A)}processObjectOrArrayOperatorIndexed(e,t,r,s,n,a,i,o,E,u,A){let l=[],T=[];if(!a||!i)return;do T.push(a),i instanceof e2?l.push(new e0(i.toString(),this.evaluateExpression(i,e))):i&&l.push(i),i=A()?o():void 0,a=E();while(a==e1.OBJECT_OPERATOR||a==e1.ARRAY_OPERATOR)i&&(i instanceof e2?l.push(new e0(i.toString(),this.evaluateExpression(i,e))):l.push(i)),void 0!==a&&n.opIdx--;let c=l.length-1,h=T.length-1,g=l[c--];if(g instanceof e0&&"object"==typeof g.getTokenValue()){let e="_k"+rS.keyCounter++;this.internalTokenValueExtractor.addValue(e,g.getTokenValue()),g=new eZ(rM.PREFIX+e)}let R=g instanceof e0?g.getTokenValue():g.toString();for(;c>=0;){g=l[c--],a=T[h--];let e=g instanceof e0?g.getTokenValue():g.toString();R=R+a.getOperator()+e+(a==e1.ARRAY_OPERATOR?"]":"")}let p=R.substring(0,R.indexOf(".")+1);if(p.length>2&&e.has(p))s.push(new e0(R,this.getValue(R,e)));else{let e;try{e=rm.INSTANCE.getValue(R)}catch(t){e=R}s.push(new e0(R,e))}}applyTernaryOperation(e,t,r,s){let n=rS.TERNARY_OPERATORS_MAP.get(e);if(!n)throw new eQ(this.expression,k.format("No operator found to evaluate $",this.getExpression()));return new e0(e.toString(),n.apply(t,r,s))}applyBinaryOperation(e,t,r){let s=typeof t,n=typeof r,a=rS.BINARY_OPERATORS_MAP.get(e);if(("object"===s||"object"===n)&&e!==e1.EQUAL&&e!==e1.NOT_EQUAL&&e!==e1.NULLISH_COALESCING_OPERATOR&&e!==e1.AND&&e!==e1.OR)throw new eQ(this.expression,k.format("Cannot evaluate expression $ $ $",t,e.getOperator(),r));if(!a)throw new eQ(this.expression,k.format("No operator found to evaluate $ $ $",t,e.getOperator(),r));return new e0(e.toString(),a.apply(t,r))}applyUnaryOperation(e,t){let r=typeof t;if(e.getOperator()!=e1.NOT.getOperator()&&e.getOperator()!=e1.UNARY_LOGICAL_NOT.getOperator()&&("object"===r||Array.isArray(t)))throw new eQ(this.expression,k.format("The operator $ cannot be applied to $",e.getOperator(),t));let s=rS.UNARY_OPERATORS_MAP.get(e);if(!s)throw new eQ(this.expression,k.format("No Unary operator $ is found to apply on $",e.getOperator(),t));return new e0(e.toString(),s.apply(t))}getValueFromToken(e,t){return t instanceof e2?this.evaluateExpression(t,e):t instanceof e0?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 rO="name",rd="value";class rw extends eN{getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(rO);if(X.isNullOrBlank(t))throw new F("Empty string is not a valid name for the context element");let r=e?.getArguments()?.get(rd),s=new e2(t),n=s.getTokens().peekLast();if(!n.getExpression().startsWith("Context")||n instanceof e2||n instanceof e0&&!n.getElement().toString().startsWith("Context"))throw new ew(k.format("The context path $ is not a valid path in context",t));for(let e of s.getOperations().toArray())if(e!=e1.ARRAY_OPERATOR&&e!=e1.OBJECT_OPERATOR)throw new ew(k.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 e2&&s.getTokens().set(r,new e0(t,new rS(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(l(i))throw new F(k.format("Context doesn't have any element with name '$' ",t));if(a.isEmpty())return i.setElement(r),new B([$.outputOf(new Map)]);let o=i.getElement(),E=a.removeLast(),u=n.removeLast(),A=u instanceof e0?u.getElement():u.getExpression();for(l(o)&&(o=E==e1.OBJECT_OPERATOR?{}:[],i.setElement(o));!a.isEmpty();)o=E==e1.OBJECT_OPERATOR?this.getDataFromObject(o,A,a.peekLast()):this.getDataFromArray(o,A,a.peekLast()),E=a.removeLast(),A=(u=n.removeLast())instanceof e0?u.getElement():u.getExpression();return E==e1.OBJECT_OPERATOR?this.putDataInObject(o,A,r):this.putDataInArray(o,A,r),new B([$.outputOf(new Map)])}getDataFromArray(e,t,r){if(!Array.isArray(e))throw new F(k.format("Expected an array but found $",e));let s=parseInt(t);if(isNaN(s))throw new F(k.format("Expected an array index but found $",t));if(s<0)throw new F(k.format("Array index is out of bound - $",t));let n=e[s];return l(n)&&(n=r==e1.OBJECT_OPERATOR?{}:[],e[s]=n),n}getDataFromObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new F(k.format("Expected an object but found $",e));let s=e[t];return l(s)&&(s=r==e1.OBJECT_OPERATOR?{}:[],e[t]=s),s}putDataInArray(e,t,r){if(!Array.isArray(e))throw new F(k.format("Expected an array but found $",e));let s=parseInt(t);if(isNaN(s))throw new F(k.format("Expected an array index but found $",t));if(s<0)throw new F(k.format("Array index is out of bound - $",t));e[s]=r}putDataInObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new F(k.format("Expected an object but found $",e));e[t]=r}constructor(...e){super(...e),this.signature=new Y("Set").setNamespace(A.SYSTEM_CTX).setParameters(new Map([U.ofEntry(rO,new I().setName(rO).setType(p.of(c.STRING)).setMinLength(1),!1),U.ofEntry(rd,I.ofAny(rd))])).setEvents(new Map([G.outputEventMapEntry(new Map)]))}}let rP="value",rI="eventName",ry="results";class rx extends eN{getSignature(){return this.signature}async internalExecute(e){let t=e.getEvents(),r=e.getArguments(),s=r?.get(rI),n=e?.getArguments()?.get(ry).map(t=>{let r=t[rP];if(l(r))throw new F("Expect a value object");let s=r.value;return r.isExpression&&(s=new rS(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 B([$.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new Y("GenerateEvent").setNamespace(A.SYSTEM).setParameters(new Map([U.ofEntry(rI,I.ofString(rI).setDefaultValue("output")),U.ofEntry(ry,I.ofObject(ry).setProperties(new Map([["name",I.ofString("name")],[rP,U.EXPRESSION]])),!0)])).setEvents(new Map([G.outputEventMapEntry(new Map)]))}}class rL extends eN{static{this.CONDITION="condition"}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rL.CONDITION);return new B([$.of(t||""===t?G.TRUE:G.FALSE,new Map),$.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new Y("If").setNamespace(A.SYSTEM).setParameters(new Map([U.ofEntry(rL.CONDITION,I.ofAny(rL.CONDITION))])).setEvents(new Map([G.eventMapEntry(G.TRUE,new Map),G.eventMapEntry(G.FALSE,new Map),G.outputEventMapEntry(new Map)]))}}let rU="stepName";class rb extends eN{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rU);return e.getExecutionContext().set(t,!0),new B([$.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new Y("Break").setNamespace(A.SYSTEM_LOOP).setParameters(new Map([U.ofEntry(rU,I.of(rU,c.STRING))])).setEvents(new Map([G.outputEventMapEntry(new Map([]))]))}}let rv="count",rV="value",rC="index";class rD extends eN{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rv),r=0,s=e.getStatementExecution()?.getStatement()?.getStatementName();return new B({next(){if(r>=t||s&&e.getExecutionContext()?.get(s))return s&&e.getExecutionContext()?.delete(s),$.outputOf(new Map([[rV,r]]));let n=$.of(G.ITERATION,new Map([[rC,r]]));return++r,n}})}constructor(...e){super(...e),this.signature=new Y("CountLoop").setNamespace(A.SYSTEM_LOOP).setParameters(new Map([U.ofEntry(rv,I.of(rv,c.INTEGER))])).setEvents(new Map([G.eventMapEntry(G.ITERATION,new Map([[rC,I.of(rC,c.INTEGER)]])),G.outputEventMapEntry(new Map([[rV,I.of(rV,c.INTEGER)]]))]))}}let rG="source",r$="each",rF="index",rB="value";class rY extends eN{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rG),r=0,s=e.getStatementExecution()?.getStatement()?.getStatementName();return new B({next(){if(r>=t.length||s&&e.getExecutionContext()?.get(s))return s&&e.getExecutionContext()?.delete(s),$.outputOf(new Map([[rB,r]]));let n=$.of(G.ITERATION,new Map([[rF,r],[r$,t[r]]]));return++r,n}})}constructor(...e){super(...e),this.signature=new Y("ForEachLoop").setNamespace(A.SYSTEM_LOOP).setParameters(new Map([U.ofEntry(rG,I.ofArray(rG,I.ofAny(rG)))])).setEvents(new Map([G.eventMapEntry(G.ITERATION,new Map([[rF,I.of(rF,c.INTEGER)],[r$,I.ofAny(r$)]])),G.outputEventMapEntry(new Map([[rB,I.of(rB,c.INTEGER)]]))]))}}let rk="from",rH="step",rj="value",rW="index";class rX extends eN{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rk),r=e.getArguments()?.get("to"),s=e.getArguments()?.get(rH),n=s>0,a=t,i=!1,o=e.getStatementExecution()?.getStatement()?.getStatementName();return new B({next(){if(i)return;if(n&&a>=r||!n&&a<=r||o&&e.getExecutionContext()?.get(o))return i=!0,o&&e.getExecutionContext()?.delete(o),$.outputOf(new Map([[rj,a]]));let t=$.of(G.ITERATION,new Map([[rW,a]]));return a+=s,t}})}constructor(...e){super(...e),this.signature=new Y("RangeLoop").setNamespace(A.SYSTEM_LOOP).setParameters(new Map([U.ofEntry(rk,I.of(rk,c.INTEGER,c.LONG,c.FLOAT,c.DOUBLE).setDefaultValue(0)),U.ofEntry("to",I.of("to",c.INTEGER,c.LONG,c.FLOAT,c.DOUBLE).setDefaultValue(1)),U.ofEntry(rH,I.of(rH,c.INTEGER,c.LONG,c.FLOAT,c.DOUBLE).setDefaultValue(1).setNot(new I().setConstant(0)))])).setEvents(new Map([G.eventMapEntry(G.ITERATION,new Map([[rW,I.of(rW,c.INTEGER,c.LONG,c.FLOAT,c.DOUBLE)]])),G.outputEventMapEntry(new Map([[rj,I.of(rj,c.INTEGER,c.LONG,c.FLOAT,c.DOUBLE)]]))]))}}let rJ="value";class rq extends eN{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rJ);return new B([$.outputOf(new Map([[rJ,t.reduce((e,t)=>e+=t,0)]]))])}constructor(...e){super(...e),this.signature=new Y("Add").setNamespace(A.MATH).setParameters(new Map([[rJ,new U(rJ,I.ofNumber(rJ)).setVariableArgument(!0)]])).setEvents(new Map([G.outputEventMapEntry(new Map([[rJ,I.ofNumber(rJ)]]))]))}}let rK="value",rz="value1",rQ="value2";class rZ extends eN{constructor(e,t,r=1,...s){super(),this.paramFunctions=[()=>new Map([[rK,new U(rK,I.ofNumber(rK))]]),()=>new Map([[rz,new U(rz,I.ofNumber(rz))],[rQ,new U(rQ,I.ofNumber(rQ))]])],s&&s.length||(s=[c.DOUBLE]),this.parametersNumber=r,this.mathFunction=t,this.signature=new Y(e).setNamespace(A.MATH).setParameters(this.paramFunctions[r-1]()).setEvents(new Map([G.outputEventMapEntry(new Map([[rK,new I().setType(p.of(...s)).setName(rK)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t,r=eP.findPrimitiveNumberType(e.getArguments()?.get(1==this.parametersNumber?rK:rz)).getT2();return 2==this.parametersNumber&&(t=eP.findPrimitiveNumberType(e.getArguments()?.get(rQ)).getT2()),new B([$.outputOf(new Map([[rK,this.mathFunction.call(this,r,t)]]))])}}let r0="value";class r1 extends eN{constructor(){super(),this.signature=new Y("Hypotenuse").setNamespace(A.MATH).setParameters(new Map([[r0,new U(r0,I.ofNumber(r0)).setVariableArgument(!0)]])).setEvents(new Map([G.outputEventMapEntry(new Map([[r0,new I().setType(p.of(c.DOUBLE)).setName(r0)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(r0);return new B([$.outputOf(new Map([[r0,Math.sqrt(t.reduce((e,t)=>e+=t*t,0))]]))])}}let r2="value";class r5 extends eN{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(r2);return new B([$.outputOf(new Map([[r2,t.reduce((e,t)=>!e&&0!==e||t>e?t:e)]]))])}constructor(...e){super(...e),this.signature=new Y("Maximum").setNamespace(A.MATH).setParameters(new Map([[r2,new U(r2,I.ofNumber(r2)).setVariableArgument(!0)]])).setEvents(new Map([G.outputEventMapEntry(new Map([[r2,I.ofNumber(r2)]]))]))}}let r7="value";class r4 extends eN{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(r7);return new B([$.outputOf(new Map([[r7,t.reduce((e,t)=>!e&&0!==e||t<e?t:e)]]))])}constructor(...e){super(...e),this.signature=new Y("Minimum").setNamespace(A.MATH).setParameters(new Map([[r7,new U(r7,I.ofNumber(r7)).setVariableArgument(!0)]])).setEvents(new Map([G.outputEventMapEntry(new Map([[r7,I.ofNumber(r7)]]))]))}}let r9="value";class r6 extends eN{getSignature(){return this.signature}async internalExecute(e){return new B([$.outputOf(new Map([[r9,Math.random()]]))])}constructor(...e){super(...e),this.signature=new Y("Random").setNamespace(A.MATH).setEvents(new Map([G.outputEventMapEntry(v.of(r9,I.ofDouble(r9)))]))}}class r3 extends eN{static{this.MIN_VALUE="minValue"}static{this.MAX_VALUE="maxValue"}static{this.VALUE="value"}constructor(e,t,r,s,n){super(),this.signature=new Y(e).setParameters(v.of(r3.MIN_VALUE,t,r3.MAX_VALUE,r)).setNamespace(A.MATH).setEvents(new Map([G.outputEventMapEntry(v.of(r3.VALUE,s))])),this.randomFunction=n}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(r3.MIN_VALUE),r=e.getArguments()?.get(r3.MAX_VALUE),s=this.randomFunction(t,r);return new B([$.outputOf(new Map([[r3.VALUE,s]]))])}}class r8{constructor(){this.functionObjectsIndex={Absolute:new rZ("Absolute",e=>Math.abs(e),1,c.INTEGER,c.LONG,c.FLOAT,c.DOUBLE),ArcCosine:new rZ("ArcCosine",e=>Math.acos(e)),ArcSine:new rZ("ArcSine",e=>Math.asin(e)),ArcTangent:new rZ("ArcTangent",e=>Math.atan(e)),Ceiling:new rZ("Ceiling",e=>Math.ceil(e)),Cosine:new rZ("Cosine",e=>Math.cos(e)),HyperbolicCosine:new rZ("HyperbolicCosine",e=>Math.cosh(e)),CubeRoot:new rZ("CubeRoot",e=>Math.cbrt(e)),Exponential:new rZ("Exponential",e=>Math.exp(e)),ExponentialMinus1:new rZ("ExponentialMinus1",e=>Math.expm1(e)),Floor:new rZ("Floor",e=>Math.floor(e)),LogNatural:new rZ("LogNatural",e=>Math.log(e)),Log10:new rZ("Log10",e=>Math.log10(e)),Round:new rZ("Round",e=>Math.round(e),1,c.INTEGER,c.LONG),Sine:new rZ("Sine",e=>Math.sin(e)),HyperbolicSine:new rZ("HyperbolicSine",e=>Math.sinh(e)),Tangent:new rZ("Tangent",e=>Math.tan(e)),HyperbolicTangent:new rZ("HyperbolicTangent",e=>Math.tanh(e)),ToDegrees:new rZ("ToDegrees",e=>Math.PI/180*e),ToRadians:new rZ("ToRadians",e=>180/Math.PI*e),SquareRoot:new rZ("SquareRoot",e=>Math.sqrt(e)),ArcTangent2:new rZ("ArcTangent2",(e,t)=>Math.atan2(e,t),2),Power:new rZ("Power",(e,t)=>Math.pow(e,t),2),Add:new rq,Hypotenuse:new r1,Maximum:new r5,Minimum:new r4,Random:new r6,RandomFloat:new r3("RandomFloat",U.of(r3.MIN_VALUE,I.ofFloat(r3.MIN_VALUE).setDefaultValue(0)),U.of(r3.MAX_VALUE,I.ofFloat(r3.MAX_VALUE).setDefaultValue(0x7fffffff)),I.ofFloat(r3.VALUE),(e,t)=>Math.random()*(t-e)+e),RandomInt:new r3("RandomInt",U.of(r3.MIN_VALUE,I.ofInteger(r3.MIN_VALUE).setDefaultValue(0)),U.of(r3.MAX_VALUE,I.ofInteger(r3.MAX_VALUE).setDefaultValue(0x7fffffff)),I.ofInteger(r3.VALUE),(e,t)=>Math.round(Math.random()*(t-e)+e)),RandomLong:new r3("RandomLong",U.of(r3.MIN_VALUE,I.ofLong(r3.MIN_VALUE).setDefaultValue(0)),U.of(r3.MAX_VALUE,I.ofLong(r3.MAX_VALUE).setDefaultValue(Number.MAX_SAFE_INTEGER)),I.ofLong(r3.VALUE),(e,t)=>Math.round(Math.random()*(t-e)+e)),RandomDouble:new r3("RandomDouble",U.of(r3.MIN_VALUE,I.ofDouble(r3.MIN_VALUE).setDefaultValue(0)),U.of(r3.MAX_VALUE,I.ofDouble(r3.MAX_VALUE).setDefaultValue(Number.MAX_VALUE)),I.ofDouble(r3.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 se extends eN{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(se.SOURCE),r=I.from(e?.getArguments()?.get(se.SCHEMA));if(!r)throw new F("Schema is not supplied.");let s=eu(e.getArguments()?.get(se.CONVERSION_MODE))||eE.STRICT;return this.convertToSchema(r,e.getSchemaRepository(),t,s)}async convertToSchema(e,t,r,s){try{return new B([$.outputOf(v.of(se.VALUE,ef.validate([],e,t,r,!0,s)))])}catch(e){throw new F(e?.message)}}constructor(...e){super(...e),this.signature=new Y("ObjectConvert").setNamespace(A.SYSTEM_OBJECT).setParameters(new Map([U.ofEntry(se.SOURCE,I.ofAny(se.SCHEMA)),U.ofEntry(se.SCHEMA,I.SCHEMA,!1,x.CONSTANT),U.ofEntry(se.CONVERSION_MODE,I.ofString(se.CONVERSION_MODE).setEnums(eA()))])).setEvents(new Map([G.outputEventMapEntry(v.of(se.VALUE,I.ofAny(se.VALUE)))]))}}let st="value",sr="source";class ss extends eN{constructor(){super(),this.signature=new Y("ObjectDeleteKey").setNamespace(A.SYSTEM_OBJECT).setParameters(new Map([U.ofEntry(sr,I.ofAny(sr)),U.ofEntry("key",I.ofString("key"))])).setEvents(new Map([G.outputEventMapEntry(new Map([[st,I.ofAny(st)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(sr),r=e.getArguments()?.get("key");return l(t)?new B([$.outputOf(new Map([[st,void 0]]))]):(t=eL(t),delete t[r],new B([$.outputOf(new Map([[st,t]]))]))}}let sn="source";class sa extends eN{constructor(e,t){super(),this.signature=new Y(e).setNamespace(A.SYSTEM_OBJECT).setParameters(new Map([U.ofEntry(sn,I.ofAny(sn))])).setEvents(new Map([G.outputEventMapEntry(new Map([["value",t]]))]))}getSignature(){return this.signature}}let si="value";class so extends sa{constructor(){super("ObjectEntries",I.ofArray(si,I.ofArray("tuple",I.ofString("key"),I.ofAny("value"))))}async internalExecute(e){var t=e.getArguments()?.get("source");if(l(t))return new B([$.outputOf(new Map([[si,[]]]))]);let r=Object.entries(eL(t)).sort((e,t)=>e[0].localeCompare(t[0]));return new B([$.outputOf(new Map([[si,r]]))])}}let sE="value";class su extends sa{constructor(){super("ObjectKeys",I.ofArray(sE,I.ofString(sE)))}async internalExecute(e){var t=e.getArguments()?.get("source");if(l(t))return new B([$.outputOf(new Map([[sE,[]]]))]);let r=Object.keys(eL(t)).sort((e,t)=>e.localeCompare(t));return new B([$.outputOf(new Map([[sE,r]]))])}}let sA="value",sl="source",sT="overwrite",sc="deleteKeyOnNull";class sh extends eN{constructor(){super(),this.signature=new Y("ObjectPutValue").setNamespace(A.SYSTEM_OBJECT).setParameters(new Map([U.ofEntry(sl,I.ofObject(sl)),U.ofEntry("key",I.ofString("key")),U.ofEntry(sA,I.ofAny(sA)),U.ofEntry(sT,I.ofBoolean(sT).setDefaultValue(!0)),U.ofEntry(sc,I.ofBoolean(sc).setDefaultValue(!1))])).setEvents(new Map([G.outputEventMapEntry(new Map([[sA,I.ofObject(sA)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(sl),r=e.getArguments()?.get("key"),s=e.getArguments()?.get(sA),n=e.getArguments()?.get(sT),a=e.getArguments()?.get(sc),i=new e7(t,"Data.");return i.setValue(r,s,n,a),new B([$.outputOf(new Map([[sA,i.getStore()]]))])}}let sg="value";class sR extends sa{constructor(){super("ObjectValues",I.ofArray(sg,I.ofAny(sg)))}async internalExecute(e){var t=e.getArguments()?.get("source");if(l(t))return new B([$.outputOf(new Map([[sg,[]]]))]);let r=Object.entries(eL(t)).sort((e,t)=>e[0].localeCompare(t[0])).map(e=>e[1]);return new B([$.outputOf(new Map([[sg,r]]))])}}class sp{constructor(){this.functionObjectsIndex={ObjectValues:new sR,ObjectKeys:new su,ObjectEntries:new so,ObjectDeleteKey:new ss,ObjectPutValue:new sh,ObjectConvert:new se},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 eN{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 B([$.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new Y("Print").setNamespace(A.SYSTEM).setParameters(new Map([U.ofEntry(sm.VALUES,I.ofAny(sm.VALUES),!0),U.ofEntry(sm.STREAM,I.ofString(sm.STREAM).setEnums([sm.LOG,sm.ERROR]).setDefaultValue(sm.LOG))])).setEvents(new Map([G.outputEventMapEntry(new Map)]))}}class sf extends eN{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 U(sf.PARAMETER_STRING_NAME,I.ofString(sf.PARAMETER_STRING_NAME))}static{this.PARAMETER_SECOND_STRING=new U(sf.PARAMETER_SECOND_STRING_NAME,I.ofString(sf.PARAMETER_SECOND_STRING_NAME))}static{this.PARAMETER_THIRD_STRING=new U(sf.PARAMETER_THIRD_STRING_NAME,I.ofString(sf.PARAMETER_THIRD_STRING_NAME))}static{this.PARAMETER_INDEX=new U(sf.PARAMETER_INDEX_NAME,I.ofInteger(sf.PARAMETER_INDEX_NAME))}static{this.PARAMETER_SECOND_INDEX=new U(sf.PARAMETER_SECOND_INDEX_NAME,I.ofInteger(sf.PARAMETER_SECOND_INDEX_NAME))}static{this.PARAMETER_SEARCH_STRING=new U(sf.PARAMETER_SEARCH_STRING_NAME,I.ofString(sf.PARAMETER_STRING_NAME))}static{this.EVENT_STRING=new G(G.OUTPUT,v.of(sf.EVENT_RESULT_NAME,I.ofString(sf.EVENT_RESULT_NAME)))}static{this.EVENT_BOOLEAN=new G(G.OUTPUT,v.of(sf.EVENT_RESULT_NAME,I.ofBoolean(sf.EVENT_RESULT_NAME)))}static{this.EVENT_INT=new G(G.OUTPUT,v.of(sf.EVENT_RESULT_NAME,I.ofInteger(sf.EVENT_RESULT_NAME)))}static{this.EVENT_ARRAY=new G(G.OUTPUT,v.of(sf.EVENT_RESULT_NAME,I.ofArray(sf.EVENT_RESULT_NAME)))}constructor(e,t,r,...s){super();let n=new Map;s.forEach(e=>n.set(e.getParameterName(),e)),this.signature=new Y(t).setNamespace(e).setParameters(n).setEvents(v.of(r.getName(),r))}getSignature(){return this.signature}static ofEntryStringStringAndBooleanOutput(e,t){return[e,new class extends sf{async internalExecute(e){let r=e?.getArguments()?.get(sf.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sf.PARAMETER_SEARCH_STRING_NAME);return new B([$.outputOf(v.of(sf.EVENT_RESULT_NAME,t(r,s)))])}}(A.STRING,e,sf.EVENT_BOOLEAN,sf.PARAMETER_STRING,sf.PARAMETER_SEARCH_STRING)]}static ofEntryStringIntegerAndStringOutput(e,t){return[e,new class extends sf{async internalExecute(e){let r=e?.getArguments()?.get(sf.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sf.PARAMETER_INDEX_NAME);return new B([$.outputOf(v.of(sf.EVENT_RESULT_NAME,t(r,s)))])}}(A.STRING,e,sf.EVENT_STRING,sf.PARAMETER_STRING,sf.PARAMETER_INDEX)]}static ofEntryStringStringAndIntegerOutput(e,t){return[e,new class extends sf{async internalExecute(e){let r=e?.getArguments()?.get(sf.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sf.PARAMETER_SEARCH_STRING_NAME);return new B([$.outputOf(v.of(sf.EVENT_RESULT_NAME,t(r,s)))])}}(A.STRING,e,sf.EVENT_INT,sf.PARAMETER_STRING,sf.PARAMETER_SEARCH_STRING)]}static ofEntryStringAndStringOutput(e,t){return[e,new class extends sf{async internalExecute(e){let r=e?.getArguments()?.get(sf.PARAMETER_STRING_NAME);return new B([$.outputOf(v.of(sf.EVENT_RESULT_NAME,t(r)))])}}(A.STRING,e,sf.EVENT_STRING,sf.PARAMETER_STRING)]}static ofEntryStringAndBooleanOutput(e,t){return[e,new class extends sf{async internalExecute(e){let r=e?.getArguments()?.get(sf.PARAMETER_STRING_NAME);return new B([$.outputOf(v.of(sf.EVENT_RESULT_NAME,t(r)))])}}(A.STRING,e,sf.EVENT_BOOLEAN,sf.PARAMETER_STRING)]}static ofEntryStringStringIntegerAndIntegerOutput(e,t){return[e,new class extends sf{async internalExecute(e){let r=e?.getArguments()?.get(sf.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sf.PARAMETER_SEARCH_STRING_NAME),n=e?.getArguments()?.get(sf.PARAMETER_INDEX_NAME);return new B([$.outputOf(v.of(sf.EVENT_RESULT_NAME,t(r,s,n)))])}}(A.STRING,e,sf.EVENT_INT,sf.PARAMETER_STRING,sf.PARAMETER_SEARCH_STRING,sf.PARAMETER_INDEX)]}static ofEntryStringIntegerIntegerAndStringOutput(e,t){return[e,new class extends sf{async internalExecute(e){let r=e?.getArguments()?.get(sf.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sf.PARAMETER_INDEX_NAME),n=e?.getArguments()?.get(sf.PARAMETER_SECOND_INDEX_NAME);return new B([$.outputOf(v.of(sf.EVENT_RESULT_NAME,t(r,s,n)))])}}(A.STRING,e,sf.EVENT_STRING,sf.PARAMETER_STRING,sf.PARAMETER_INDEX,sf.PARAMETER_SECOND_INDEX)]}static ofEntryStringStringStringAndStringOutput(e,t){return[e,new class extends sf{async internalExecute(e){let r=e?.getArguments()?.get(sf.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sf.PARAMETER_SECOND_STRING_NAME),n=e?.getArguments()?.get(sf.PARAMETER_THIRD_STRING_NAME);return new B([$.outputOf(v.of(sf.EVENT_RESULT_NAME,t(r,s,n)))])}}(A.STRING,e,sf.EVENT_STRING,sf.PARAMETER_STRING,sf.PARAMETER_SECOND_STRING,sf.PARAMETER_THIRD_STRING)]}static ofEntryStringAndIntegerOutput(e,t){return[e,new class extends sf{async internalExecute(e){let r=e?.getArguments()?.get(sf.PARAMETER_STRING_NAME);return new B([$.outputOf(v.of(sf.EVENT_RESULT_NAME,t(r)))])}}(A.STRING,e,sf.EVENT_INT,sf.PARAMETER_STRING)]}}class sN extends eN{static{this.VALUE="value"}constructor(){super(),this.signature=new Y("Concatenate").setNamespace(A.STRING).setParameters(new Map([[sN.VALUE,new U(sN.VALUE,new I().setName(sN.VALUE).setType(new R(c.STRING))).setVariableArgument(!0)]])).setEvents(new Map([G.outputEventMapEntry(new Map([[sN.VALUE,I.ofString(sN.VALUE)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(sN.VALUE),r="";return t.reduce((e,t)=>r=e+t,r),new B([$.outputOf(new Map([[sN.VALUE,r]]))])}}class s_ extends eN{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 U(s_.PARAMETER_STRING_NAME,I.ofString(s_.PARAMETER_STRING_NAME)),this.PARAMETER_AT_START=new U(s_.PARAMETER_AT_START_NAME,I.ofInteger(s_.PARAMETER_AT_START_NAME)),this.PARAMETER_AT_END=new U(s_.PARAMETER_AT_END_NAME,I.ofInteger(s_.PARAMETER_AT_END_NAME)),this.EVENT_STRING=new G(G.OUTPUT,new Map([[s_.EVENT_RESULT_NAME,I.ofString(s_.EVENT_RESULT_NAME)]])),this.signature=new Y("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(s_.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(s_.PARAMETER_AT_START_NAME),s=e?.getArguments()?.get(s_.PARAMETER_AT_END_NAME);if(s>=r){let e="";return e+=t.substring(0,r),e+=t.substring(s),new B([$.outputOf(new Map([[s_.EVENT_RESULT_NAME,e.toString()]]))])}return new B([$.outputOf(new Map([[s_.EVENT_RESULT_NAME,t]]))])}}class sM extends eN{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(sM.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(sM.PARAMETER_AT_POSITION_NAME),s=e?.getArguments()?.get(sM.PARAMETER_INSERT_STRING_NAME),n="";return n+=t.substring(0,r),n+=s,n+=t.substring(r),new B([$.outputOf(new Map([[this.EVENT_RESULT_NAME,n]]))])}constructor(...e){super(...e),this.EVENT_RESULT_NAME="result",this.PARAMETER_STRING=new U(sM.PARAMETER_STRING_NAME,I.ofString(sM.PARAMETER_STRING_NAME)),this.PARAMETER_AT_POSITION=new U(sM.PARAMETER_AT_POSITION_NAME,I.ofInteger(sM.PARAMETER_AT_POSITION_NAME)),this.PARAMETER_INSERT_STRING=new U(sM.PARAMETER_INSERT_STRING_NAME,I.ofString(sM.PARAMETER_INSERT_STRING_NAME)),this.EVENT_STRING=new G(G.OUTPUT,new Map([[this.EVENT_RESULT_NAME,I.ofString(this.EVENT_RESULT_NAME)]])),this.signature=new Y("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([G.outputEventMapEntry(new Map([[this.EVENT_RESULT_NAME,I.ofString(this.EVENT_RESULT_NAME)]]))]))}}class sS extends eN{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(sS.PARAMETER_REGEX_NAME),r=e.getArguments()?.get(sS.PARAMETER_STRING_NAME);return new B([$.outputOf(new Map([[sS.EVENT_RESULT_NAME,!!r.match(t)?.length]]))])}constructor(...e){super(...e),this.signature=new Y("Matches").setNamespace(A.STRING).setParameters(v.ofEntries(v.entry(...U.ofEntry(sS.PARAMETER_REGEX_NAME,I.ofString(sS.PARAMETER_REGEX_NAME))),v.entry(...U.ofEntry(sS.PARAMETER_STRING_NAME,I.ofString(sS.PARAMETER_STRING_NAME))))).setEvents(v.ofEntries(v.entry(...G.outputEventMapEntry(new Map([[sS.EVENT_RESULT_NAME,I.ofBoolean(sS.EVENT_RESULT_NAME)]])))))}}class sO extends eN{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 U(sO.PARAMETER_STRING_NAME,I.ofString(sO.PARAMETER_STRING_NAME))}static{this.PARAMETER_POSTPAD_STRING=new U(sO.PARAMETER_POSTPAD_STRING_NAME,I.ofString(sO.PARAMETER_POSTPAD_STRING_NAME))}static{this.PARAMETER_LENGTH=new U(sO.PARAMETER_LENGTH_NAME,I.ofInteger(sO.PARAMETER_LENGTH_NAME))}static{this.EVENT_STRING=new G(G.OUTPUT,new Map([[sO.EVENT_RESULT_NAME,I.ofString(sO.EVENT_RESULT_NAME)]]))}constructor(){super(),this.signature=new Y("PostPad").setNamespace(A.STRING).setParameters(new Map([[sO.PARAMETER_STRING.getParameterName(),sO.PARAMETER_STRING],[sO.PARAMETER_POSTPAD_STRING.getParameterName(),sO.PARAMETER_POSTPAD_STRING],[sO.PARAMETER_LENGTH.getParameterName(),sO.PARAMETER_LENGTH]])).setEvents(new Map([[sO.EVENT_STRING.getName(),sO.EVENT_STRING]]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(sO.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(sO.PARAMETER_POSTPAD_STRING_NAME),s=e.getArguments()?.get(sO.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 B([$.outputOf(new Map([[sO.EVENT_RESULT_NAME,n.toString()]]))])}}class sd extends eN{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 U(sd.PARAMETER_STRING_NAME,I.ofString(sd.PARAMETER_STRING_NAME))}static{this.PARAMETER_PREPAD_STRING=new U(sd.PARAMETER_PREPAD_STRING_NAME,I.ofString(sd.PARAMETER_PREPAD_STRING_NAME))}static{this.PARAMETER_LENGTH=new U(sd.PARAMETER_LENGTH_NAME,I.ofInteger(sd.PARAMETER_LENGTH_NAME))}static{this.EVENT_STRING=new G(G.OUTPUT,new Map([[sd.EVENT_RESULT_NAME,I.ofString(sd.EVENT_RESULT_NAME)]]))}getSignature(){return this.signature}constructor(){super(),this.signature=new Y("PrePad").setNamespace(A.STRING).setParameters(new Map([[sd.PARAMETER_STRING.getParameterName(),sd.PARAMETER_STRING],[sd.PARAMETER_PREPAD_STRING.getParameterName(),sd.PARAMETER_PREPAD_STRING],[sd.PARAMETER_LENGTH.getParameterName(),sd.PARAMETER_LENGTH]])).setEvents(new Map([[sd.EVENT_STRING.getName(),sd.EVENT_STRING]]))}async internalExecute(e){let t=e.getArguments()?.get(sd.PARAMETER_STRING_NAME),r=e.getArguments()?.get(sd.PARAMETER_PREPAD_STRING_NAME),s=e.getArguments()?.get(sd.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 B([$.outputOf(new Map([[sd.EVENT_RESULT_NAME,n]]))])}}class sw extends eN{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 U(sw.PARAMETER_STRING_NAME,I.ofString(sw.PARAMETER_STRING_NAME))}static{this.PARAMETER_OTHER_STRING=new U(sw.PARAMETER_OTHER_STRING_NAME,I.ofString(sw.PARAMETER_OTHER_STRING_NAME))}static{this.PARAMETER_FIRST_OFFSET=new U(sw.PARAMETER_FIRST_OFFSET_NAME,I.ofInteger(sw.PARAMETER_FIRST_OFFSET_NAME))}static{this.PARAMETER_SECOND_OFFSET=new U(sw.PARAMETER_SECOND_OFFSET_NAME,I.ofInteger(sw.PARAMETER_SECOND_OFFSET_NAME))}static{this.PARAMETER_INTEGER=new U(sw.PARAMETER_INTEGER_NAME,I.ofInteger(sw.PARAMETER_INTEGER_NAME))}static{this.PARAMETER_BOOLEAN=new U(sw.PARAMETER_BOOLEAN_NAME,I.ofBoolean(sw.PARAMETER_BOOLEAN_NAME))}static{this.EVENT_BOOLEAN=new G(G.OUTPUT,new Map([[sw.EVENT_RESULT_NAME,I.ofBoolean(sw.EVENT_RESULT_NAME)]]))}getSignature(){return this.signature}constructor(){super(),this.signature=new Y("RegionMatches").setNamespace(A.STRING).setParameters(new Map([[sw.PARAMETER_STRING.getParameterName(),sw.PARAMETER_STRING],[sw.PARAMETER_BOOLEAN.getParameterName(),sw.PARAMETER_BOOLEAN],[sw.PARAMETER_FIRST_OFFSET.getParameterName(),sw.PARAMETER_FIRST_OFFSET],[sw.PARAMETER_OTHER_STRING.getParameterName(),sw.PARAMETER_OTHER_STRING],[sw.PARAMETER_SECOND_OFFSET.getParameterName(),sw.PARAMETER_SECOND_OFFSET],[sw.PARAMETER_INTEGER.getParameterName(),sw.PARAMETER_INTEGER]])).setEvents(new Map([[sw.EVENT_BOOLEAN.getName(),sw.EVENT_BOOLEAN]]))}async internalExecute(e){let t=e.getArguments()?.get(sw.PARAMETER_STRING_NAME),r=e.getArguments()?.get(sw.PARAMETER_BOOLEAN_NAME),s=e.getArguments()?.get(sw.PARAMETER_FIRST_OFFSET_NAME),n=e?.getArguments()?.get(sw.PARAMETER_OTHER_STRING_NAME),a=e?.getArguments()?.get(sw.PARAMETER_SECOND_OFFSET_NAME),i=e.getArguments()?.get(sw.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 B([$.outputOf(new Map([[sw.EVENT_RESULT_NAME,o]]))])}}class sP extends eN{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 U(sP.PARAMETER_STRING_NAME,I.ofString(sP.PARAMETER_STRING_NAME))}static{this.PARAMETER_AT_START=new U(sP.PARAMETER_AT_START_NAME,I.ofInteger(sP.PARAMETER_AT_START_NAME))}static{this.PARAMETER_AT_LENGTH=new U(sP.PARAMETER_AT_LENGTH_NAME,I.ofInteger(sP.PARAMETER_AT_LENGTH_NAME))}static{this.PARAMETER_REPLACE_STRING=new U(sP.PARAMETER_REPLACE_STRING_NAME,I.ofString(sP.PARAMETER_REPLACE_STRING_NAME))}static{this.EVENT_STRING=new G(G.OUTPUT,new Map([[sP.EVENT_RESULT_NAME,I.ofString(sP.EVENT_RESULT_NAME)]]))}constructor(){super(),this.signature=new Y("ReplaceAtGivenPosition").setNamespace(A.STRING).setParameters(new Map([[sP.PARAMETER_STRING.getParameterName(),sP.PARAMETER_STRING],[sP.PARAMETER_AT_START.getParameterName(),sP.PARAMETER_AT_START],[sP.PARAMETER_AT_LENGTH.getParameterName(),sP.PARAMETER_AT_LENGTH],[sP.PARAMETER_REPLACE_STRING.getParameterName(),sP.PARAMETER_REPLACE_STRING]])).setEvents(new Map([[sP.EVENT_STRING.getName(),sP.EVENT_STRING]]))}getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(sP.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(sP.PARAMETER_AT_START_NAME),s=e?.getArguments()?.get(sP.PARAMETER_AT_LENGTH_NAME),n=e?.getArguments()?.get(sP.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 B([$.outputOf(new Map([[sP.EVENT_RESULT_NAME,t]]))])}}class sI extends eN{constructor(){super(),this.VALUE="value",this.signature=new Y("Reverse").setNamespace(A.STRING).setParameters(new Map([[this.VALUE,new U(this.VALUE,I.ofString(this.VALUE)).setVariableArgument(!1)]])).setEvents(new Map([G.outputEventMapEntry(new Map([[this.VALUE,new I().setType(p.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 B([$.outputOf(v.of(this.VALUE,s))])}}class sy extends eN{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 U(this.PARAMETER_STRING_NAME,I.ofString(this.PARAMETER_STRING_NAME)),this.PARAMETER_SPLIT_STRING=new U(this.PARAMETER_SPLIT_STRING_NAME,I.ofString(this.PARAMETER_SPLIT_STRING_NAME)),this.EVENT_ARRAY=new G(G.OUTPUT,v.of(this.EVENT_RESULT_NAME,I.ofArray(this.EVENT_RESULT_NAME))),this.signature=new Y("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([G.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 B([$.outputOf(v.of(this.EVENT_RESULT_NAME,t.split(r)))])}}class sx extends eN{getSignature(){return this.signature}constructor(){super(),this.PARAMETER_INPUT_ANYTYPE_NAME="anytype",this.EVENT_RESULT_NAME="result",this.PARAMETER_INPUT_ANYTYPE=new U(this.PARAMETER_INPUT_ANYTYPE_NAME,I.ofAny(this.PARAMETER_INPUT_ANYTYPE_NAME)),this.EVENT_STRING=new G(G.OUTPUT,new Map([[this.EVENT_RESULT_NAME,I.ofString(this.EVENT_RESULT_NAME)]])),this.signature=new Y("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 B([$.outputOf(new Map([[this.EVENT_RESULT_NAME,r]]))])}}class sL extends eN{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_LENGTH_NAME="length"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new U(sL.PARAMETER_STRING_NAME,I.ofString(sL.PARAMETER_STRING_NAME))}static{this.PARAMETER_LENGTH=new U(sL.PARAMETER_LENGTH_NAME,I.ofInteger(sL.PARAMETER_LENGTH_NAME))}static{this.EVENT_STRING=new G(G.OUTPUT,new Map([[sL.EVENT_RESULT_NAME,I.ofString(sL.EVENT_RESULT_NAME)]]))}getSignature(){return this.signature}constructor(){super(),this.signature=new Y("TrimTo").setNamespace(A.STRING).setParameters(new Map([[sL.PARAMETER_STRING.getParameterName(),sL.PARAMETER_STRING],[sL.PARAMETER_LENGTH.getParameterName(),sL.PARAMETER_LENGTH]])).setEvents(new Map([[sL.EVENT_STRING.getName(),sL.EVENT_STRING]]))}async internalExecute(e){let t=e.getArguments()?.get(sL.PARAMETER_STRING_NAME),r=e.getArguments()?.get(sL.PARAMETER_LENGTH_NAME);return new B([$.outputOf(new Map([[sL.EVENT_RESULT_NAME,t.substring(0,r)]]))])}}class sU{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=v.ofArrayEntries(sf.ofEntryStringAndStringOutput("Trim",e=>e.trim()),sf.ofEntryStringAndStringOutput("TrimStart",e=>e.trimStart()),sf.ofEntryStringAndStringOutput("TrimEnd",e=>e.trimEnd()),sf.ofEntryStringAndIntegerOutput("Length",e=>e.length),sf.ofEntryStringStringAndIntegerOutput("Frequency",(e,t)=>{let r=0,s=e.indexOf(t);for(;-1!=s;)r++,s=e.indexOf(t,s+1);return r}),sf.ofEntryStringAndStringOutput("LowerCase",e=>e.toLocaleLowerCase()),sf.ofEntryStringAndStringOutput("UpperCase",e=>e.toUpperCase()),sf.ofEntryStringAndBooleanOutput("IsBlank",e=>""===e.trim()),sf.ofEntryStringAndBooleanOutput("IsEmpty",e=>""===e),sf.ofEntryStringStringAndBooleanOutput("Contains",(e,t)=>-1!=e.indexOf(t)),sf.ofEntryStringStringAndBooleanOutput("EndsWith",(e,t)=>e.endsWith(t)),sf.ofEntryStringStringAndBooleanOutput("StartsWith",(e,t)=>e.startsWith(t)),sf.ofEntryStringStringAndBooleanOutput("EqualsIgnoreCase",(e,t)=>e.toUpperCase()==t.toUpperCase()),sf.ofEntryStringStringAndBooleanOutput("Matches",(e,t)=>new RegExp(t).test(e)),sf.ofEntryStringStringAndIntegerOutput("IndexOf",(e,t)=>e.indexOf(t)),sf.ofEntryStringStringAndIntegerOutput("LastIndexOf",(e,t)=>e.lastIndexOf(t)),sf.ofEntryStringIntegerAndStringOutput("Repeat",(e,t)=>e.repeat(t)),sf.ofEntryStringStringIntegerAndIntegerOutput("IndexOfWithStartPoint",(e,t,r)=>e.indexOf(t,r)),sf.ofEntryStringStringIntegerAndIntegerOutput("LastIndexOfWithStartPoint",(e,t,r)=>e.lastIndexOf(t,r)),sf.ofEntryStringStringStringAndStringOutput("Replace",(e,t,r)=>e.replaceAll(t,r)),sf.ofEntryStringStringStringAndStringOutput("ReplaceFirst",(e,t,r)=>e.replace(t,r)),sf.ofEntryStringIntegerIntegerAndStringOutput("SubString",(e,t,r)=>e.substring(t,r)),D(new sN),D(new s_),D(new sM),D(new sO),D(new sd),D(new sw),D(new sP),D(new sI),D(new sy),D(new sx),D(new sL),D(new sS)),this.filterableNames=Array.from(this.repoMap.values()).map(e=>e.getSignature().getFullName())}}class sb extends eN{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 U(sb.PARAMETER_TIMESTAMP_NAME,I.ofRef(A.DATE+".Timestamp"))}static{this.PARAMETER_TIMESTAMP_ONE=new U(sb.PARAMETER_TIMESTAMP_NAME_ONE,I.ofRef(A.DATE+".Timestamp"))}static{this.PARAMETER_TIMESTAMP_TWO=new U(sb.PARAMETER_TIMESTAMP_NAME_TWO,I.ofRef(A.DATE+".Timestamp"))}static{this.PARAMETER_VARIABLE_UNIT=new U(sb.PARAMETER_UNIT_NAME,I.ofRef(A.DATE+".Timeunit")).setVariableArgument(!0)}static{this.PARAMETER_UNIT=new U(sb.PARAMETER_UNIT_NAME,I.ofRef(A.DATE+".Timeunit"))}static{this.PARAMETER_NUMBER=new U(sb.PARAMETER_NUMBER_NAME,I.ofInteger(sb.PARAMETER_NUMBER_NAME))}static{this.EVENT_RESULT_NAME="result"}static{this.EVENT_TIMESTAMP_NAME="isoTimeStamp"}static{this.EVENT_INT=new G(G.OUTPUT,v.of(sb.EVENT_RESULT_NAME,I.ofInteger(sb.EVENT_RESULT_NAME)))}static{this.EVENT_STRING=new G(G.OUTPUT,v.of(sb.EVENT_RESULT_NAME,I.ofString(sb.EVENT_RESULT_NAME)))}static{this.EVENT_LONG=new G(G.OUTPUT,v.of(sb.EVENT_RESULT_NAME,I.ofLong(sb.EVENT_RESULT_NAME)))}static{this.EVENT_BOOLEAN=new G(G.OUTPUT,v.of(sb.EVENT_RESULT_NAME,I.ofBoolean(sb.EVENT_RESULT_NAME)))}static{this.EVENT_TIMESTAMP=new G(G.OUTPUT,v.of(sb.EVENT_TIMESTAMP_NAME,I.ofRef(A.DATE+".Timestamp")))}getSignature(){return this.signature}constructor(e,t,...r){if(super(),this.signature=new Y(e).setNamespace(A.DATE).setEvents(v.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 sb{async internalExecute(e){return new B([$.outputOf(v.of(sb.EVENT_RESULT_NAME,t(e.getArguments()?.get(sb.PARAMETER_TIMESTAMP_NAME))))])}}(e,sb.EVENT_INT,sb.PARAMETER_TIMESTAMP)]}static ofEntryTimestampAndBooleanOutput(e,t){return[e,new class extends sb{async internalExecute(e){return new B([$.outputOf(v.of(sb.EVENT_RESULT_NAME,t(e.getArguments()?.get(sb.PARAMETER_TIMESTAMP_NAME))))])}}(e,sb.EVENT_BOOLEAN,sb.PARAMETER_TIMESTAMP)]}static ofEntryTimestampAndStringOutput(e,t){return[e,new class extends sb{async internalExecute(e){return new B([$.outputOf(v.of(sb.EVENT_RESULT_NAME,t(e.getArguments()?.get(sb.PARAMETER_TIMESTAMP_NAME))))])}}(e,sb.EVENT_STRING,sb.PARAMETER_TIMESTAMP)]}static ofEntryTimestampIntegerAndTimestampOutput(e,t){return[e,new class extends sb{async internalExecute(e){return new B([$.outputOf(v.of(sb.EVENT_RESULT_NAME,t(e.getArguments()?.get(sb.PARAMETER_TIMESTAMP_NAME),e.getArguments()?.get(sb.PARAMETER_NUMBER_NAME))))])}}(e,sb.EVENT_TIMESTAMP,sb.PARAMETER_TIMESTAMP,sb.PARAMETER_NUMBER)]}static ofEntryTimestampTimestampAndTOutput(e,t,r,...s){return[e,new class extends sb{async internalExecute(e){let t=[];return s?.length&&t.push(...s.map(t=>e.getArguments()?.get(t.getParameterName()))),new B([$.outputOf(v.of(sb.EVENT_RESULT_NAME,r(e.getArguments()?.get(sb.PARAMETER_TIMESTAMP_NAME_ONE),e.getArguments()?.get(sb.PARAMETER_TIMESTAMP_NAME_TWO),t)))])}}(e,t,sb.PARAMETER_TIMESTAMP_ONE,sb.PARAMETER_TIMESTAMP_TWO,...s)]}}function sv(t){let r=e.fromISO(t,{setZone:!0});if(!r?.isValid)throw Error("Invalid ISO timestamp");return r}class sV extends sb{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",sb.EVENT_TIMESTAMP,sb.PARAMETER_TIMESTAMP,U.of(sV.PARAMETER_YEARS_NAME,I.ofNumber(sV.PARAMETER_YEARS_NAME).setDefaultValue(0)),U.of(sV.PARAMETER_MONTHS_NAME,I.ofNumber(sV.PARAMETER_MONTHS_NAME).setDefaultValue(0)),U.of(sV.PARAMETER_DAYS_NAME,I.ofNumber(sV.PARAMETER_DAYS_NAME).setDefaultValue(0)),U.of(sV.PARAMETER_HOURS_NAME,I.ofNumber(sV.PARAMETER_HOURS_NAME).setDefaultValue(0)),U.of(sV.PARAMETER_MINUTES_NAME,I.ofNumber(sV.PARAMETER_MINUTES_NAME).setDefaultValue(0)),U.of(sV.PARAMETER_SECONDS_NAME,I.ofNumber(sV.PARAMETER_SECONDS_NAME).setDefaultValue(0)),U.of(sV.PARAMETER_MILLISECONDS_NAME,I.ofNumber(sV.PARAMETER_MILLISECONDS_NAME).setDefaultValue(0))),this.isAdd=e}async internalExecute(e){let t,r=sv(e.getArguments()?.get(sb.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=e.getArguments()?.get(sV.PARAMETER_MINUTES_NAME),E={years:s,months:n,days:a,hours:i,minutes:o,seconds:e.getArguments()?.get(sV.PARAMETER_SECONDS_NAME),milliseconds:e.getArguments()?.get(sV.PARAMETER_MILLISECONDS_NAME)};return t=this.isAdd?r.plus(E):r.minus(E),new B([$.outputOf(v.of(sb.EVENT_TIMESTAMP_NAME,t.toISO()))])}}class sC extends eN{constructor(e,t){super(),this.paramName=`epoch${t?"Seconds":"Milliseconds"}`,this.isSeconds=t,this.signature=new Y(e).setNamespace(A.DATE).setParameters(new Map([[this.paramName,U.of(this.paramName,new I().setName(this.paramName).setType(p.of(c.LONG,c.INTEGER,c.STRING)))]])).setEvents(new Map([[sb.EVENT_TIMESTAMP.getName(),sb.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 B([$.outputOf(v.of(sb.EVENT_TIMESTAMP_NAME,new Date(r).toISOString()))]))}}class sD extends eN{constructor(e,t){super(),this.isSeconds=t,this.signature=new Y(e).setNamespace(A.DATE).setParameters(new Map([[sb.PARAMETER_TIMESTAMP_NAME,sb.PARAMETER_TIMESTAMP]])).setEvents(new Map([[sb.EVENT_TIMESTAMP.getName(),sb.EVENT_LONG]]))}getSignature(){return this.signature}internalExecute(t){let r=t.getArguments()?.get(sb.PARAMETER_TIMESTAMP_NAME),s=this.isSeconds?e.fromISO(r).toSeconds():e.fromISO(r).toMillis();return Promise.resolve(new B([$.outputOf(v.of(sb.EVENT_RESULT_NAME,s))]))}}class sG extends sb{static{this.PARAMETER_FORMAT_NAME="format"}static{this.PARAMETER_LOCALE_NAME="locale"}constructor(){super("ToDateString",sb.EVENT_STRING,sb.PARAMETER_TIMESTAMP,U.of(sG.PARAMETER_FORMAT_NAME,I.ofString(sG.PARAMETER_FORMAT_NAME)),U.of(sG.PARAMETER_LOCALE_NAME,I.ofString(sG.PARAMETER_LOCALE_NAME).setDefaultValue("")))}async internalExecute(e){let t=sv(e.getArguments()?.get(sb.PARAMETER_TIMESTAMP_NAME)),r=e.getArguments()?.get(sG.PARAMETER_FORMAT_NAME),s=e.getArguments()?.get(sG.PARAMETER_LOCALE_NAME);return""===s&&(s="system"),new B([$.outputOf(v.of(sb.EVENT_RESULT_NAME,t.toFormat(r,{locale:s})))])}}class s$ extends sb{static{this.PARAMETER_TIMEZONE_NAME="timezone"}constructor(){super("SetTimeZone",sb.EVENT_TIMESTAMP,sb.PARAMETER_TIMESTAMP,U.of(s$.PARAMETER_TIMEZONE_NAME,I.ofString(s$.PARAMETER_TIMEZONE_NAME)))}async internalExecute(e){let t=sv(e.getArguments()?.get(sb.PARAMETER_TIMESTAMP_NAME)),r=e.getArguments()?.get(s$.PARAMETER_TIMEZONE_NAME);return new B([$.outputOf(v.of(sb.EVENT_TIMESTAMP_NAME,t.setZone(r).toISO()))])}}class sF extends sb{static{this.PARAMETER_START_TIMESTAMP_NAME="startTimestamp"}static{this.PARAMETER_END_TIMESTAMP_NAME="endTimestamp"}static{this.PARAMETER_CHECK_TIMESTAMP_NAME="checkTimestamp"}constructor(){super("IsBetween",sF.EVENT_BOOLEAN,U.of(sF.PARAMETER_START_TIMESTAMP_NAME,I.ofRef(A.DATE+".Timestamp")),U.of(sF.PARAMETER_END_TIMESTAMP_NAME,I.ofRef(A.DATE+".Timestamp")),U.of(sF.PARAMETER_CHECK_TIMESTAMP_NAME,I.ofRef(A.DATE+".Timestamp")))}async internalExecute(e){let t=e.getArguments()?.get(sF.PARAMETER_START_TIMESTAMP_NAME),r=e.getArguments()?.get(sF.PARAMETER_END_TIMESTAMP_NAME),s=e.getArguments()?.get(sF.PARAMETER_CHECK_TIMESTAMP_NAME),n=sv(t),a=sv(r),i=sv(s);return n>a&&([n,a]=[a,n]),new B([$.outputOf(v.of(sF.EVENT_RESULT_NAME,n<=i&&i<=a))])}}class sB extends eN{constructor(e){super(),this.isLast=e,this.signature=new Y(e?"LastOf":"FirstOf").setNamespace(A.DATE).setParameters(new Map([[sb.PARAMETER_TIMESTAMP_NAME,new U(sb.PARAMETER_TIMESTAMP_NAME,I.ofRef(A.DATE+".Timestamp")).setVariableArgument(!0)]])).setEvents(new Map([[sb.EVENT_TIMESTAMP.getName(),sb.EVENT_TIMESTAMP]]))}getSignature(){return this.signature}internalExecute(e){let t=e.getArguments()?.get(sb.PARAMETER_TIMESTAMP_NAME);if(!t?.length)throw Error("No timestamps provided");let r=t.map(e=>sv(e));return r.sort((e,t)=>e.toMillis()-t.toMillis()),Promise.resolve(new B([$.outputOf(v.of(sb.EVENT_TIMESTAMP_NAME,r[this.isLast?r.length-1:0].toISO()))]))}}class sY extends sb{static{this.EVENT_TIME_OBJECT_NAME="object"}static{this.EVENT_TIME_ARRAY_NAME="array"}constructor(e){super(e?"TimeAsArray":"TimeAsObject",new G(G.OUTPUT,v.of(e?sY.EVENT_TIME_ARRAY_NAME:sY.EVENT_TIME_OBJECT_NAME,e?I.ofArray(sY.EVENT_TIME_ARRAY_NAME,I.ofInteger("timeParts")):I.ofRef(A.DATE+".TimeObject"))),sb.PARAMETER_TIMESTAMP),this.isArray=e}async internalExecute(e){let t=sv(e.getArguments()?.get(sb.PARAMETER_TIMESTAMP_NAME)).toObject();return new B([$.outputOf(v.of(this.isArray?sY.EVENT_TIME_ARRAY_NAME:sY.EVENT_TIME_OBJECT_NAME,this.isArray?[t.year,t.month,t.day,t.hour,t.minute,t.second,t.millisecond]:t))])}}class sk extends sb{constructor(e){super(e?"StartOf":"EndOf",sb.EVENT_TIMESTAMP,sb.PARAMETER_TIMESTAMP,sb.PARAMETER_UNIT),this.isStart=e}async internalExecute(e){let t=sv(e.getArguments()?.get(sb.PARAMETER_TIMESTAMP_NAME)),r=e.getArguments()?.get(sb.PARAMETER_UNIT_NAME)?.toLowerCase();r=r.substring(0,r.length-1);let s=this.isStart?t.startOf(r):t.endOf(r);return new B([$.outputOf(v.of(sb.EVENT_TIMESTAMP_NAME,s.toISO({includeOffset:!0})))])}}class sH extends sb{static{this.EVENT_NAMES_NAME="names"}static{this.PARAMETER_UNIT_NAME="unit"}static{this.PARAMETER_LOCALE_NAME="locale"}constructor(){super("GetNames",new G(sH.EVENT_NAMES_NAME,v.of(sH.EVENT_NAMES_NAME,I.ofArray(sH.EVENT_NAMES_NAME,I.ofString(sH.EVENT_NAMES_NAME)))),new U(sH.PARAMETER_UNIT_NAME,I.ofString(sH.PARAMETER_UNIT_NAME).setEnums(["TIMEZONES","MONTHS","WEEKDAYS"])),new U(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 B([$.outputOf(v.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 sj extends eN{internalExecute(t){let r=t.getArguments()?.get(sb.PARAMETER_TIMESTAMP_NAME),s=e.fromISO(r);return Promise.resolve(new B([$.outputOf(v.of(sb.EVENT_RESULT_NAME,s.isValid))]))}getSignature(){return this.signature}constructor(...e){super(...e),this.signature=new Y("IsValidISODate").setNamespace(A.DATE).setParameters(new Map([U.ofEntry(sb.PARAMETER_TIMESTAMP_NAME,I.ofString(sb.PARAMETER_TIMESTAMP_NAME))])).setEvents(new Map([G.outputEventMapEntry(v.of(sb.EVENT_RESULT_NAME,I.ofBoolean(sb.EVENT_RESULT_NAME)))]))}}class sW extends sb{static{this.PARAMETER_BASE_NAME="base"}static{this.PARAMETER_BASE=new U(sW.PARAMETER_BASE_NAME,I.ofRef(A.DATE+".Timestamp").setDefaultValue(""))}static{this.PARAMETER_LOCALE_NAME="locale"}static{this.PARAMETER_LOCALE=new U(sW.PARAMETER_LOCALE_NAME,I.ofString(sW.PARAMETER_LOCALE_NAME).setDefaultValue("system"))}static{this.PARAMETER_FORMAT_NAME="format"}static{this.PARAMETER_FORMAT=new U(sW.PARAMETER_FORMAT_NAME,I.ofString(sW.PARAMETER_FORMAT_NAME).setEnums(["LONG","SHORT","NARROW"]).setDefaultValue("LONG"))}static{this.PARAMETER_ROUND_NAME="round"}static{this.PARAMETER_ROUND=new U(sW.PARAMETER_ROUND_NAME,I.ofBoolean(sW.PARAMETER_ROUND_NAME).setDefaultValue(!0))}constructor(){super("FromNow",sb.EVENT_STRING,sb.PARAMETER_TIMESTAMP,sW.PARAMETER_FORMAT,sW.PARAMETER_BASE,sb.PARAMETER_VARIABLE_UNIT,sW.PARAMETER_ROUND,sW.PARAMETER_LOCALE)}internalExecute(t){let r=t.getArguments()?.get(sW.PARAMETER_BASE_NAME),s=""===r?e.now():e.fromISO(r),n=t.getArguments()?.get(sb.PARAMETER_TIMESTAMP_NAME),a=e.fromISO(n),i=t.getArguments()?.get(sW.PARAMETER_UNIT_NAME),o=t.getArguments()?.get(sW.PARAMETER_FORMAT_NAME),E=t.getArguments()?.get(sW.PARAMETER_ROUND_NAME),u=t.getArguments()?.get(sW.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 B([$.outputOf(v.of(sb.EVENT_RESULT_NAME,a.toRelative(A)??"Unknown"))]))}}class sX extends sb{static{this.PARAMETER_FORMAT_NAME="format"}static{this.PARAMETER_TIMESTAMP_STRING_NAME="timestampString"}constructor(){super("FromDateString",sb.EVENT_TIMESTAMP,U.of(sX.PARAMETER_TIMESTAMP_STRING_NAME,I.ofString(sX.PARAMETER_TIMESTAMP_STRING_NAME)),U.of(sX.PARAMETER_FORMAT_NAME,I.ofString(sX.PARAMETER_FORMAT_NAME)))}async internalExecute(t){let r=t.getArguments()?.get(sX.PARAMETER_TIMESTAMP_STRING_NAME),s=t.getArguments()?.get(sX.PARAMETER_FORMAT_NAME),n=e.fromFormat(r,s);return new B([$.outputOf(v.of(sb.EVENT_RESULT_NAME,n.toISO()))])}}class sJ extends sb{constructor(){super("GetCurrentTimestamp",sb.EVENT_TIMESTAMP)}async internalExecute(t){return new B([$.outputOf(v.of(sb.EVENT_TIMESTAMP_NAME,e.now().toISO()))])}}class sq{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=v.ofArrayEntries(["EpochSecondsToTimestamp",new sC("EpochSecondsToTimestamp",!0)],["EpochMillisecondsToTimestamp",new sC("EpochMillisecondsToTimestamp",!1)],sb.ofEntryTimestampAndIntegerOutput("GetDay",e=>sv(e).day),sb.ofEntryTimestampAndIntegerOutput("GetDayOfWeek",e=>sv(e).weekday),sb.ofEntryTimestampAndIntegerOutput("GetMonth",e=>sv(e).month),sb.ofEntryTimestampAndIntegerOutput("GetYear",e=>sv(e).year),sb.ofEntryTimestampAndIntegerOutput("GetHours",e=>sv(e).hour),sb.ofEntryTimestampAndIntegerOutput("GetMinutes",e=>sv(e).minute),sb.ofEntryTimestampAndIntegerOutput("GetSeconds",e=>sv(e).second),sb.ofEntryTimestampAndIntegerOutput("GetMilliseconds",e=>sv(e).millisecond),sb.ofEntryTimestampAndIntegerOutput("GetDaysInMonth",e=>sv(e).daysInMonth),sb.ofEntryTimestampAndIntegerOutput("GetDaysInYear",e=>sv(e).daysInYear),["TimestampToEpochSeconds",new sD("TimestampToEpochSeconds",!0)],["TimestampToEpochMilliseconds",new sD("TimestampToEpochMilliseconds",!1)],sb.ofEntryTimestampAndStringOutput("GetTimeZoneName",e=>sv(e).zoneName),sb.ofEntryTimestampAndStringOutput("GetTimeZoneOffsetLong",e=>sv(e).offsetNameLong),sb.ofEntryTimestampAndStringOutput("GetTimeZoneOffsetShort",e=>sv(e).offsetNameShort),sb.ofEntryTimestampAndIntegerOutput("GetTimeZoneOffset",e=>sv(e).offset),["ToDateString",new sG],["AddTime",new sV(!0)],["SubtractTime",new sV(!1)],["GetCurrentTimestamp",new sJ],sb.ofEntryTimestampTimestampAndTOutput("Difference",new G(G.OUTPUT,v.of(sb.EVENT_RESULT_NAME,I.ofRef(`${A.DATE}.Duration`))),(e,t,r)=>{let s,n=sv(e),a=sv(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()},sb.PARAMETER_VARIABLE_UNIT),sb.ofEntryTimestampIntegerAndTimestampOutput("SetDay",(e,t)=>sv(e).set({day:t}).toISO()),sb.ofEntryTimestampIntegerAndTimestampOutput("SetMonth",(e,t)=>sv(e).set({month:t}).toISO()),sb.ofEntryTimestampIntegerAndTimestampOutput("SetYear",(e,t)=>sv(e).set({year:t}).toISO()),sb.ofEntryTimestampIntegerAndTimestampOutput("SetHours",(e,t)=>sv(e).set({hour:t}).toISO()),sb.ofEntryTimestampIntegerAndTimestampOutput("SetMinutes",(e,t)=>sv(e).set({minute:t}).toISO()),sb.ofEntryTimestampIntegerAndTimestampOutput("SetSeconds",(e,t)=>sv(e).set({second:t}).toISO()),sb.ofEntryTimestampIntegerAndTimestampOutput("SetMilliseconds",(e,t)=>sv(e).set({millisecond:t}).toISO()),["SetTimeZone",new s$],sb.ofEntryTimestampTimestampAndTOutput("IsBefore",new G(G.OUTPUT,v.of(sb.EVENT_RESULT_NAME,I.ofBoolean(sb.EVENT_RESULT_NAME))),(e,t)=>sv(e)<sv(t)),sb.ofEntryTimestampTimestampAndTOutput("IsAfter",new G(G.OUTPUT,v.of(sb.EVENT_RESULT_NAME,I.ofBoolean(sb.EVENT_RESULT_NAME))),(e,t)=>sv(e)>sv(t)),sb.ofEntryTimestampTimestampAndTOutput("IsSame",new G(G.OUTPUT,v.of(sb.EVENT_RESULT_NAME,I.ofBoolean(sb.EVENT_RESULT_NAME))),(e,t)=>sv(e)===sv(t)),sb.ofEntryTimestampTimestampAndTOutput("IsSameOrBefore",new G(G.OUTPUT,v.of(sb.EVENT_RESULT_NAME,I.ofBoolean(sb.EVENT_RESULT_NAME))),(e,t)=>sv(e)<=sv(t)),sb.ofEntryTimestampTimestampAndTOutput("IsSameOrAfter",new G(G.OUTPUT,v.of(sb.EVENT_RESULT_NAME,I.ofBoolean(sb.EVENT_RESULT_NAME))),(e,t)=>sv(e)>=sv(t)),sb.ofEntryTimestampAndBooleanOutput("IsInLeapYear",e=>sv(e).isInLeapYear),sb.ofEntryTimestampAndBooleanOutput("IsInDST",e=>sv(e).isInDST),["IsBetween",new sF],["LastOf",new sB(!0)],["FirstOf",new sB(!1)],["StartOf",new sk(!0)],["EndOf",new sk(!1)],["TimeAsObject",new sY(!1)],["TimeAsArray",new sY(!0)],["GetNames",new sH],["IsValidISODate",new sj],["FromNow",new sW],["FromDateString",new sX]),this.filterableNames=Array.from(this.repoMap.values()).map(e=>e.getSignature().getFullName())}}class sK extends eN{static{this.MILLIS="millis"}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(sK.MILLIS);return await new Promise(e=>setTimeout(e,t)),new B([$.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new Y("Wait").setNamespace(A.SYSTEM).setParameters(new Map([U.ofEntry(sK.MILLIS,I.ofNumber(sK.MILLIS).setMinimum(0).setDefaultValue(0))])).setEvents(new Map([G.outputEventMapEntry(new Map)]))}}let sz="resultShape",sQ="value";class sZ extends eN{constructor(){super(),this.signature=new Y("Make").setNamespace(A.SYSTEM).setParameters(new Map([U.ofEntry(sz,I.ofAny(sz))])).setEvents(new Map([G.outputEventMapEntry(v.of(sQ,I.ofAny(sQ)))]))}getSignature(){return this.signature}async internalExecute(e){let t=(e.getArguments()??new Map).get(sz),r=e.getValuesMap(),s=this.processValue(t,r);return new B([$.outputOf(v.of(sQ,s))])}processValue(e,t){if(null==e)return e;if("string"==typeof e)return this.evaluateExpression(e,t);if(Array.isArray(e))return e.map(e=>this.processValue(e,t));if("object"==typeof e){let r={};for(let[s,n]of Object.entries(e))r[s]=this.processValue(n,t);return r}return e}evaluateExpression(e,t){if(!e||!e.startsWith("{{")||!e.endsWith("}}"))return e;let r=new rS(e.substring(2,e.length-2)).evaluate(t);return void 0!==r?r:null}}t({},"HybridRepository",()=>s0);class s0{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 s1 extends eN{static{this.SOURCE="source"}static{this.SCHEMA="schema"}static{this.IS_VALID="isValid"}getSignature(){return this.signature}internalExecute(e){let t=e.getArguments()?.get(s1.SOURCE),r=I.from(e?.getArguments()?.get(s1.SCHEMA));if(!r)throw new F("Schema is not supplied.");return this.validateSchema(r,e.getSchemaRepository(),t)}async validateSchema(e,t,r){try{return await ef.validate([],e,t,r,!0),new B([$.outputOf(v.of(s1.IS_VALID,!0))])}catch(e){return new B([$.outputOf(v.of(s1.IS_VALID,!1))])}}constructor(...e){super(...e),this.signature=new Y("ValidateSchema").setNamespace(A.SYSTEM_OBJECT).setParameters(new Map([U.ofEntry(s1.SOURCE,I.ofAny(s1.SCHEMA)),U.ofEntry(s1.SCHEMA,I.SCHEMA,!1,x.CONSTANT)])).setEvents(new Map([G.outputEventMapEntry(v.of(s1.IS_VALID,I.ofBoolean(s1.IS_VALID)))]))}}let s2="value",s5="error",s7="errorMessage",s4="source";class s9 extends eN{constructor(){super(),this.signature=new Y("JSONParse").setNamespace(A.SYSTEM_JSON).setParameters(new Map([U.ofEntry(s4,I.ofString(s4))])).setEvents(new Map([G.eventMapEntry(s5,new Map([[s7,I.ofString(s7)]])),G.outputEventMapEntry(new Map([[s2,I.ofAny(s2)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t,r=e.getArguments()?.get("source");try{t=r?JSON.parse(r):null}catch(e){return new B([$.of(s5,new Map([[s7,e?.message??"Unknown Error parsing JSON"]])),$.outputOf(new Map([[s2,null]]))])}return new B([$.outputOf(new Map([[s2,t]]))])}}let s6="value",s3="source";class s8 extends eN{constructor(){super(),this.signature=new Y("JSONStringify").setNamespace(A.SYSTEM_JSON).setParameters(new Map([U.ofEntry(s3,I.ofAny(s3))])).setEvents(new Map([G.outputEventMapEntry(new Map([[s6,I.ofString(s6)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get("source");return new B([$.outputOf(new Map([[s6,JSON.stringify(t??null)]]))])}}class ne{constructor(){this.map=new Map([[A.SYSTEM_JSON,new Map([D(new s9),D(new s8)])],[A.SYSTEM_CTX,new Map([D(new tg),D(new tm),D(new rw)])],[A.SYSTEM_LOOP,new Map([D(new rX),D(new rD),D(new rb),D(new rY)])],[A.SYSTEM,new Map([D(new rL),D(new rx),D(new sm),D(new sK),D(new tA),D(new s1),D(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 nt extends s0{constructor(){super(new ne,new r8,new sU,new tl,new sp,new sq)}}t({},"StatementExecution",()=>ns),t({},"StatementMessage",()=>nr);class nr{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 ns{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 nr(e,t))}addDependency(e){this.dependencies.add(e)}getDepenedencies(){return this.dependencies}equals(e){return e instanceof ns&&e.statement.equals(this.statement)}}t({},"ContextTokenValueExtractor",()=>nn);class nn extends e5{static{this.PREFIX="Context."}constructor(e){super(),this.context=e}getValueInternal(e){let t=e5.splitPath(e),r=t[1],s=r.indexOf("["),n=2;return -1!=s&&(r=t[1].substring(0,s),(t=[...t])[1]=t[1].substring(s),n=1),this.retrieveElementFrom(e,t,n,this.context.get(r)?.getElement())}getPrefix(){return nn.PREFIX}getStore(){return l(this.context)?this.context:Array.from(this.context.entries()).reduce((e,[t,r])=>(l(r)||(e[t]=r.getElement()),e),{})}}t({},"OutputMapTokenValueExtractor",()=>na);class na extends e5{static{this.PREFIX="Steps."}constructor(e){super(),this.output=e}getValueInternal(e){let t=e5.splitPath(e),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 na.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",()=>ni);class ni extends e5{static{this.PREFIX="Arguments."}constructor(e){super(),this.args=e}getValueInternal(e){let t=e5.splitPath(e),r=t[1],s=r.indexOf("["),n=2;return -1!=s&&(r=t[1].substring(0,s),(t=[...t])[1]=t[1].substring(s),n=1),this.retrieveElementFrom(e,t,n,this.args.get(r))}getPrefix(){return ni.PREFIX}getStore(){return l(this.args)?this.args:Array.from(this.args.entries()).reduce((e,[t,r])=>(e[t]=r,e),{})}}t({},"GraphVertex",()=>nE),t({},"ExecutionGraph",()=>no);class no{constructor(e=!1){this.nodeMap=new Map,this.edgesBuilt=!1,this.isSubGrph=e}areEdgesBuilt(){return this.edgesBuilt}setEdgesBuilt(e){this.edgesBuilt=e}getVerticesData(){return Array.from(this.nodeMap.values()).map(e=>e.getData())}addVertex(e){if(!this.nodeMap.has(e.getUniqueKey())){let t=new nE(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 nE{constructor(e,t){this.outVertices=new Map,this.inVertices=new Set,this.subGraphCache=new Map,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 q(this,e)),t}addInEdgeTo(e,t){return this.inVertices.add(new q(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=this.subGraphCache.get(e);if(t)return t;let r=new no(!0);var s=new H(Array.from(this.outVertices.get(e)??[]));for(s.map(e=>e.getData()).forEach(e=>r.addVertex(e));!s.isEmpty();)Array.from(s.pop().outVertices.values()).flatMap(e=>Array.from(e)).forEach(e=>{r.addVertex(e.getData()),s.add(e)});return this.subGraphCache.set(e,r),r}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",()=>nh),t({},"JsonExpression",()=>nu);class nu{constructor(e){this.expression=e}getExpression(){return this.expression}}t({},"ParameterReferenceType",()=>nA);var nA=((o={}).VALUE="VALUE",o.EXPRESSION="EXPRESSION",o);function nl(){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",()=>nT);class nT{constructor(e,t,r){this.count=0,this.executionContext=new Map,this.valueExtractors=new Map,this.functionRepository=e,this.schemaRepository=t,this.executionId=r??nl()}getExecutionId(){return this.executionId}getContext(){return this.context}setContext(e){this.context=e;let t=new nn(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 na(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",()=>nc);var nc=((E={}).ERROR="ERROR",E.WARNING="WARNING",E.MESSAGE="MESSAGE",E);class nh extends eN{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.functionCache=new Map,this.debugMode=t,this.fd=e,this.fd.getVersion()>nh.VERSION)throw new F("Runtime is at a lower version "+nh.VERSION+" and trying to run code from version "+this.fd.getVersion()+".")}getSignature(){return this.fd}async getCachedFunction(e,t,r){let s=`${t}.${r}`;if(this.functionCache.has(s))return this.functionCache.get(s);let n=await e.find(t,r);return n&&this.functionCache.set(s,n),n}async getExecutionPlan(e,t){let r=new no,s=Array.from(this.fd.getSteps().values());for(let n of(await Promise.all(s.map(r=>this.prepareStatementExecution(r,e,t)))))r.addVertex(n);return Array.from(this.makeEdges(r).getT2().entries()).forEach(e=>{let t=r.getNodeMap().get(e[0])?.getData();t&&t.addMessage(nc.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 ni(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 F("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(G.OUTPUT);){let e=r.length,n=s.length;if(await this.processBranchQue(t,r,s),await this.processExecutionQue(t,r,s),(e!==r.length||n!==s.length)&&(t.setCount(t.getCount()+1),t.getCount()==nh.MAX_EXECUTION_ITERATIONS))throw new F("Execution locked in an infinite loop")}if(!e.isSubGraph()&&!t.getEvents()?.size){let e=this.getSignature().getEvents();if(e.size&&e.get(G.OUTPUT)?.getParameters()?.size)throw new F("No events raised")}let n=Array.from(t.getEvents()?.entries()??[]).flatMap(e=>e[1].map(t=>$.of(e[0],t)));return new B(n.length||e.isSubGraph()?n:[$.of(G.OUTPUT,new Map)])}async processExecutionQue(e,t,r){if(t.isEmpty())return;let s=[];for(;!t.isEmpty();)s.push(t.pop());let n=[],a=[];for(let t of s)this.allDependenciesResolvedVertex(t,e.getSteps())?n.push(t):a.push(t);for(let e of a)t.add(e);n.length>0&&await Promise.all(n.map(s=>this.executeVertex(s,e,r,t,e.getFunctionRepository())))}async processBranchQue(e,t,r){if(!r.length)return;let s=[];for(;r.length;)s.push(r.pop());let n=[],a=[];for(let t of s)this.allDependenciesResolvedTuples(t.getT2(),e.getSteps())?n.push(t):a.push(t);for(let e of a)r.add(e);for(let r of n)await this.executeBranch(e,t,r)}async executeBranch(e,t,r){let s,n=r.getT4(),a=r.getT1().getVerticesData().map(e=>e.getStatement().getStatementName());do{let t=e.getSteps();if(t)for(let e of a)t.delete(e);if(await this.executeGraph(r.getT1(),e),(s=r.getT3().next())&&(e.getSteps()?.has(n.getData().getStatement().getStatementName())||e.getSteps()?.set(n.getData().getStatement().getStatementName(),new Map),e.getSteps()?.get(n.getData().getStatement().getStatementName())?.set(s.getName(),this.resolveInternalExpressions(s.getResult(),e)),this.debugMode)){let t=n.getData().getStatement();console.log(`EID: ${e.getExecutionId()} Step : ${t.getStatementName()} => ${t.getNamespace()}.${t.getName()}`),console.log(`EID: ${e.getExecutionId()} Event : ${s.getName()} : `,e.getSteps().get(t.getStatementName()).get(s.getName()))}}while(s&&s.getName()!=G.OUTPUT)if(s?.getName()==G.OUTPUT&&n.getOutVertices().has(G.OUTPUT))for(let r of Array.from(n?.getOutVertices()?.get(G.OUTPUT)??[]))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 rS(e).evaluate(t.getValuesMap())).every(e=>!l(e)&&!1!==e))return;let o=await this.getCachedFunction(n,i.getNamespace(),i.getName());if(!o)throw new F(k.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 nh?new nT(t.getFunctionRepository(),t.getSchemaRepository(),`${t.getExecutionId()}_${i.getStatementName()}`).setArguments(u).setValuesMap(new Map(Array.from(t.getValuesMap().values()).filter(e=>e.getPrefix()!==ni.PREFIX&&e.getPrefix()!==na.PREFIX&&e.getPrefix()!==nn.PREFIX).map(e=>[e.getPrefix(),e]))):new nT(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 T=await o.execute(a),c=T.next();if(!c)throw new F(k.format("Executing $ returned no events",i.getStatementName()));let h=c.getName()==G.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(G.OUTPUT);if(r)for(let e of Array.from(r))this.allDependenciesResolvedVertex(e,t.getSteps())&&s.add(e)}else{let t=e.getSubGraphOfType(c.getName()),s=[];t.areEdgesBuilt()||(s=this.makeEdges(t).getT1(),t.setEdgesBuilt(!0)),r.push(new z(t,s,T,e))}}resolveInternalExpressions(e,t){if(!e)return e;let r=new Map;for(let[s,n]of e.entries())r.set(s,this.resolveInternalExpression(n,t));return r}resolveInternalExpression(e,t){if(l(e)||"object"!=typeof e)return e;if(e instanceof nu)return new rS(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){let r=e.getInVertices();if(!r.size)return!0;for(let e of r){let r=e.getT1().getData().getStatement().getStatementName(),s=e.getT2();if(!(t.has(r)&&t.get(r)?.has(s)))return!1}return!0}getArgumentsFromParametersMap(e,t,r){let s=new Map;for(let[n,a]of t.getParameterMap().entries()){let t,i=Array.from(a?.values()??[]);if(!i?.length)continue;let o=r.get(n);o&&(t=o.isVariableArgument()?i.sort((e,t)=>(e.getOrder()??0)-(t.getOrder()??0)).filter(e=>!l(e)).map(t=>this.parameterReferenceEvaluation(e,t)).flatMap(e=>Array.isArray(e)?e:[e]):this.parameterReferenceEvaluation(e,i[0]),l(t)||s.set(n,t))}return s}parameterReferenceEvaluation(e,t){let r;return t.getType()==nA.VALUE?r=this.resolveInternalExpression(t.getValue(),e):t.getType()!=nA.EXPRESSION||X.isNullOrBlank(t.getExpression())||(r=new rS(t.getExpression()??"").evaluate(e.getValuesMap())),r}async prepareStatementExecution(e,t,r){let s=new ns(e),n=await this.getCachedFunction(t,e.getNamespace(),e.getName());if(!n)return s.addMessage(nc.ERROR,k.format("$.$ is not available",e.getNamespace(),e.getName())),Promise.resolve(s);let a=new Map(n.getSignature().getParameters());if(!e.getParameterMap())return Promise.resolve(s);for(let t of Array.from(e.getParameterMap().entries())){let e=a.get(t[0]);if(!e)continue;let n=Array.from(t[1]?.values()??[]);if(!n.length&&!e.isVariableArgument()){await Z.hasDefaultValueOrNullSchemaType(e.getSchema(),r)||s.addMessage(nc.ERROR,k.format(nh.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(!l(s.getStatement().getDependentStatements()))for(let e of Array.from(s.getStatement().getDependentStatements().entries()))e[1]&&s.addDependency(e[0]);if(!l(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 Z.hasDefaultValueOrNullSchemaType(e.getSchema(),r)||s.addMessage(nc.ERROR,k.format(nh.PARAMETER_NEEDS_A_VALUE,e.getParameterName())));return Promise.resolve(s)}async parameterReferenceValidation(e,t,r,s){if(r){if(r.getType()==nA.VALUE){if(l(r.getValue())&&!await Z.hasDefaultValueOrNullSchemaType(t.getSchema(),s)&&e.addMessage(nc.ERROR,k.format(nh.PARAMETER_NEEDS_A_VALUE,t.getParameterName())),l(r.getValue()))return;let n=new H;for(n.push(new q(t.getSchema(),r.getValue()));!n.isEmpty();){let t=n.pop();if(t.getT2()instanceof nu)this.addDependencies(e,t.getT2().getExpression());else{if(l(t.getT1())||l(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 q(e.getSingleSchema(),r));else{let r=t.getT2();for(let t=0;t<r.length;t++)n.push(new q(e.getTupleSchema()[t],r[t]))}}else if(t.getT1().getType()?.contains(c.OBJECT)&&"object"==typeof t.getT2()){let r=t.getT1();if(r.getName()===U.EXPRESSION.getName()&&r.getNamespace()===U.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 q(r.getProperties().get(e[0]),e[1]))}}}}else if(r.getType()==nA.EXPRESSION)if(X.isNullOrBlank(r.getExpression()))l(Z.getDefaultValue(t.getSchema(),s))&&e.addMessage(nc.ERROR,k.format(nh.PARAMETER_NEEDS_A_VALUE,t.getParameterName()));else try{this.addDependencies(e,r.getExpression())}catch(t){e.addMessage(nc.ERROR,k.format("Error evaluating $ : $",r.getExpression(),t))}}else l(await Z.getDefaultValue(t.getSchema(),s))&&e.addMessage(nc.ERROR,k.format(nh.PARAMETER_NEEDS_A_VALUE,t.getParameterName()))}addDependencies(e,t){t&&Array.from(t.match(nh.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 q(i,E)),s.set(n.getData().getStatement().getStatementName(),k.format("Unable to find the step with name $",i)))}return new q(r,s)}}t({},"KIRunConstants",()=>ng);class ng{static{this.NAMESPACE="namespace"}static{this.NAME="name"}static{this.ID="id"}constructor(){}}t({},"Position",()=>nR);class nR{static{this.SCHEMA_NAME="Position"}static{this.SCHEMA=new I().setNamespace(A.SYSTEM).setName(nR.SCHEMA_NAME).setType(p.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 nR(e.left,e.top)}}t({},"FunctionDefinition",()=>nM),t({},"Statement",()=>nf),t({},"AbstractStatement",()=>np);class np{constructor(e){if(this.override=!1,!e)return;this.comment=e.comment,this.description=e.description,this.position=e.position?new nR(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",()=>nm);class nm{static{this.SCHEMA_NAME="ParameterReference"}static{this.SCHEMA=new I().setNamespace(A.SYSTEM).setName(nm.SCHEMA_NAME).setType(p.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 nm?(this.key=e.key,this.type=e.type,this.value=l(e.value)?void 0:JSON.parse(JSON.stringify(e.value)),this.expression=e.expression,this.order=e.order):(this.type=e,this.key=nl())}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 nm(nA.EXPRESSION).setExpression(e);return[t.getKey(),t]}static ofValue(e){let t=new nm(nA.VALUE).setValue(e);return[t.getKey(),t]}static from(e){return new nm(e.type).setValue(e.value).setExpression(e.expression).setKey(e.key).setOrder(e.order)}}class nf extends np{static{this.SCHEMA_NAME="Statement"}static{this.SCHEMA=new I().setNamespace(A.SYSTEM).setName(nf.SCHEMA_NAME).setType(p.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(nm.SCHEMA))))],["position",nR.SCHEMA]]))}constructor(e,t,r){if(super(e instanceof nf?e:void 0),e instanceof nf)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 nm(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 nf&&e.statementName==this.statementName}static ofEntry(e){return[e.statementName,e]}static from(e){return new nf(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])=>nm.from(t)).map(e=>[e.getKey(),e]))]))).setDependentStatements(new Map(Object.entries(e.dependentStatements??{}))).setExecuteIftrue(new Map(Object.entries(e.executeIftrue??{}))).setPosition(nR.from(e.position)).setComment(e.comment).setDescription(e.description)}}t({},"StatementGroup",()=>nN);class nN extends np{static{this.SCHEMA_NAME="StatementGroup"}static{this.SCHEMA=new I().setNamespace(A.SYSTEM).setName(nN.SCHEMA_NAME).setType(p.of(c.OBJECT)).setProperties(new Map([["statementGroupName",I.ofString("statementGroupName")],["comment",I.ofString("comment")],["description",I.ofString("description")],["position",nR.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 nN(e.statementGroupName,new Map(Object.entries(e.statements||{}).map(([e,t])=>[e,(""+t)?.toLowerCase()=="true"]))).setPosition(nR.from(e.position)).setComment(e.comment).setDescription(e.description)}}let n_=new I().setNamespace(A.SYSTEM).setName("FunctionDefinition").setProperties(new Map([["name",I.ofString("name")],["namespace",I.ofString("namespace")],["parameters",I.ofArray("parameters",U.SCHEMA)],["events",I.ofObject("events").setAdditionalProperties(new w().setSchemaValue(G.SCHEMA))],["steps",I.ofObject("steps").setAdditionalProperties(new w().setSchemaValue(nf.SCHEMA))]]));n_.getProperties()?.set("parts",I.ofArray("parts",n_));class nM extends Y{static{this.SCHEMA=n_}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 nM(e.name).setSteps(new Map(Object.values(e.steps??{}).filter(e=>!!e).map(e=>[e.statementName,nf.from(e)]))).setStepGroups(new Map(Object.values(e.stepGroups??{}).filter(e=>!!e).map(e=>[e.statementGroupName,nN.from(e)]))).setParts(Array.from(e.parts??[]).filter(e=>!!e).map(e=>nM.from(e))).setVersion(e.version??1).setEvents(new Map(Object.values(e.events??{}).filter(e=>!!e).map(e=>[e.name,G.from(e)]))).setParameters(new Map(Object.values(e.parameters??{}).filter(e=>!!e).map(e=>[e.parameterName,U.from(e)]))).setNamespace(e.namespace):new nM("unknown")}}t({},"Argument",()=>nS);class nS{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 nS(0,e,t)}}export{C as KIRunSchemaRepository,nt as KIRunFunctionRepository,eP as PrimitiveUtil,v as MapUtil,V as MapEntry,l as isNullValue,H as LinkedList,ez as StringBuilder,k as StringFormatter,X as StringUtil,q as Tuple2,K as Tuple3,z as Tuple4,ey as ArrayUtil,W as deepEqual,eL as duplicate,ns as StatementExecution,nr as StatementMessage,tT as ContextElement,nn as ContextTokenValueExtractor,na as OutputMapTokenValueExtractor,ni as ArgumentsTokenValueExtractor,nE as GraphVertex,no as ExecutionGraph,nh as KIRuntime,nc as StatementMessageType,nT as FunctionExecutionParameters,e2 as Expression,e5 as TokenValueExtractor,rm as LiteralTokenValueExtractor,e7 as ObjectValueSetterExtractor,rS as ExpressionEvaluator,e1 as Operation,eZ as ExpressionToken,eQ as ExpressionEvaluationException,e0 as ExpressionTokenValue,eN as AbstractFunction,A as Namespaces,nu as JsonExpression,w as AdditionalType,I as Schema,P as SchemaDetails,en as NumberValidator,er as BooleanValidator,es as NullValidator,et as ArrayValidator,ee as AnyOfAllOfOneOfValidator,eo as StringValidator,ea as ObjectValidator,ef as SchemaValidator,Q as SchemaValidationException,y as SchemaReferenceException,em as TypeValidator,T as ArraySchemaType,R as SingleType,p as TypeUtil,g as MultipleType,h as Type,c as SchemaType,Z as SchemaUtil,ei as StringFormat,s0 as HybridRepository,ng as KIRunConstants,U as Parameter,B as FunctionOutput,nR as Position,nM as FunctionDefinition,nA as ParameterReferenceType,$ as EventResult,np as AbstractStatement,nf as Statement,nN as StatementGroup,Y as FunctionSignature,G as Event,x as ParameterType,nS as Argument,nm as ParameterReference,ew as ExecutionException,F as KIRuntimeException,rA as ArithmeticUnaryMinusOperator,rT as ArithmeticUnaryPlusOperator,rh as BitwiseComplementOperator,rR as LogicalNotOperator,ru as UnaryOperator,tS as ArithmeticAdditionOperator,td as ArithmeticDivisionOperator,tP as ArithmeticIntegerDivisionOperator,ty as ArithmeticModulusOperator,tL as ArithmeticMultiplicationOperator,tb as ArithmeticSubtractionOperator,tV as ArrayOperator,tM as BinaryOperator,tD as BitwiseAndOperator,t$ as BitwiseLeftShiftOperator,tB as BitwiseOrOperator,tk as BitwiseRightShiftOperator,tj as BitwiseUnsignedRightShiftOperator,tX as BitwiseXorOperator,tq as LogicalAndOperator,tz as LogicalEqualOperator,tZ as LogicalGreaterThanEqualOperator,t1 as LogicalGreaterThanOperator,t5 as LogicalLessThanEqualOperator,t4 as LogicalNotEqualOperator,t6 as LogicalLessThanOperator,t8 as LogicalOrOperator,rt as ObjectOperator,rs as LogicalNullishCoalescingOperator,ra as ArrayRangeOperator,r_ 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",()=>D);var s,n,a,i,o,E,u,A={};t(A,"AdditionalType",()=>w),t(A,"Schema",()=>y),t(A,"SchemaDetails",()=>P),t({},"Namespaces",()=>h);class h{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.SYSTEM_JSON="System.JSON"}static{this.MATH="System.Math"}static{this.STRING="System.String"}static{this.DATE="System.Date"}constructor(){}}function l(e){return null==e}t({},"ArraySchemaType",()=>T),t({},"isNullValue",()=>l);class T{constructor(e){if(!e)return;this.singleSchema=e.singleSchema?new y(e.singleSchema):void 0,this.tupleSchema=e.tupleSchema?e.tupleSchema.map(e=>new y(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!l(this.singleSchema)}static of(...e){return 1==e.length?new T().setSingleSchema(e[0]):new T().setTupleSchema(e)}static from(e){if(!e)return;if(Array.isArray(e))return new T().setTupleSchema(y.fromListOfSchemas(e));let t=Object.keys(e);if(-1!=t.indexOf("singleSchema"))return new T().setSingleSchema(y.from(e.singleSchema));if(-1!=t.indexOf("tupleSchema"))return new T().setTupleSchema(y.fromListOfSchemas(e.tupleSchema));let r=y.from(e);if(r)return new T().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",()=>p),t({},"Type",()=>g);class g{}class p extends g{constructor(e){super(),e instanceof p?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",()=>R);class R extends g{constructor(e){super(),e instanceof R?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 R(e[0]):new p(new Set(e))}static from(e){return"string"==typeof e?new R(c[m.fromJSONType(e)]):Array.isArray(e)?new p(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 f="additionalProperty",N="additionalItems",_="enums",M="items",S="System.Schema",O="required",d="version",I="namespace";class w{constructor(e){if(!e||(this.booleanValue=e.booleanValue,!e.schemaValue))return;this.schemaValue=new y(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(l(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=y.from(e.schemaValue):t.schemaValue=y.from(e)}return t}}class P{constructor(e){if(!e)return;this.preferredComponent=e.preferredComponent,e.validationMessages&&(this.validationMessages=new Map(Array.from(e.validationMessages.entries()))),e.properties&&(this.properties=new Map(Array.from(e.properties.entries()))),e.styleProperties&&(this.styleProperties=new Map(Array.from(e.styleProperties.entries()))),this.order=e.order,this.label=e.label}getPreferredComponent(){return this.preferredComponent}setPreferredComponent(e){return this.preferredComponent=e,this}getValidationMessages(){return this.validationMessages}setValidationMessages(e){return this.validationMessages=e,this}getValidationMessage(e){return this.validationMessages?.get(e)}setProperties(e){return this.properties=e,this}getProperties(){return this.properties}setStyleProperties(e){return this.styleProperties=e,this}getStyleProperties(){return this.styleProperties}getOrder(){return this.order}setOrder(e){return this.order=e,this}getLabel(){return this.label}setLabel(e){return this.label=e,this}static from(e){if(e)return new P().setPreferredComponent(e.preferredComponent).setValidationMessages(e.validationMessages?new Map(Object.entries(e.validationMessages)):void 0).setProperties(e.properties?new Map(Object.entries(e.properties)):void 0).setStyleProperties(e.styleProperties?new Map(Object.entries(e.styleProperties)):void 0).setOrder(e.order).setLabel(e.label)}}class y{static{this.NULL=new y().setNamespace(h.SYSTEM).setName("Null").setType(m.of(c.NULL)).setConstant(void 0)}static{this.TYPE_SCHEMA=new y().setType(m.of(c.STRING)).setEnums(["INTEGER","LONG","FLOAT","DOUBLE","STRING","OBJECT","ARRAY","BOOLEAN","NULL"])}static{this.SCHEMA=new y().setNamespace(h.SYSTEM).setName("Schema").setType(m.of(c.OBJECT)).setProperties(new Map([[I,y.of(I,c.STRING).setDefaultValue("_")],["name",y.ofString("name")],[d,y.of(d,c.INTEGER).setDefaultValue(1)],["ref",y.ofString("ref")],["type",new y().setAnyOf([y.TYPE_SCHEMA,y.ofArray("type",y.TYPE_SCHEMA)])],["anyOf",y.ofArray("anyOf",y.ofRef(S))],["allOf",y.ofArray("allOf",y.ofRef(S))],["oneOf",y.ofArray("oneOf",y.ofRef(S))],["not",y.ofRef(S)],["title",y.ofString("title")],["description",y.ofString("description")],["id",y.ofString("id")],["examples",y.ofAny("examples")],["defaultValue",y.ofAny("defaultValue")],["comment",y.ofString("comment")],[_,y.ofArray(_,y.ofString(_))],["constant",y.ofAny("constant")],["pattern",y.ofString("pattern")],["format",y.of("format",c.STRING).setEnums(["DATETIME","TIME","DATE","EMAIL","REGEX"])],["minLength",y.ofInteger("minLength")],["maxLength",y.ofInteger("maxLength")],["multipleOf",y.ofLong("multipleOf")],["minimum",y.ofNumber("minimum")],["maximum",y.ofNumber("maximum")],["exclusiveMinimum",y.ofNumber("exclusiveMinimum")],["exclusiveMaximum",y.ofNumber("exclusiveMaximum")],["properties",y.of("properties",c.OBJECT).setAdditionalProperties(new w().setSchemaValue(y.ofRef(S)))],["additionalProperties",new y().setName(f).setNamespace(h.SYSTEM).setAnyOf([y.ofBoolean(f),y.ofObject(f).setRef(S)]).setDefaultValue(!0)],[O,y.ofArray(O,y.ofString(O)).setDefaultValue([])],["propertyNames",y.ofRef(S)],["minProperties",y.ofInteger("minProperties")],["maxProperties",y.ofInteger("maxProperties")],["patternProperties",y.of("patternProperties",c.OBJECT).setAdditionalProperties(new w().setSchemaValue(y.ofRef(S)))],[M,new y().setName(M).setAnyOf([y.ofRef(S).setName("item"),y.ofArray("tuple",y.ofRef(S))])],["contains",y.ofRef(S)],["minContains",y.ofInteger("minContains")],["maxContains",y.ofInteger("maxContains")],["minItems",y.ofInteger("minItems")],["maxItems",y.ofInteger("maxItems")],["uniqueItems",y.ofBoolean("uniqueItems")],["additionalItems",new y().setName(N).setNamespace(h.SYSTEM).setAnyOf([y.ofBoolean(N),y.ofObject(N).setRef(S)])],["$defs",y.of("$defs",c.OBJECT).setAdditionalProperties(new w().setSchemaValue(y.ofRef(S)))],["permission",y.ofString("permission")],["details",y.ofObject("details")],["viewDetails",y.ofObject("viewDetails")]])).setRequired([])}static ofString(e){return new y().setType(m.of(c.STRING)).setName(e)}static ofInteger(e){return new y().setType(m.of(c.INTEGER)).setName(e)}static ofFloat(e){return new y().setType(m.of(c.FLOAT)).setName(e)}static ofLong(e){return new y().setType(m.of(c.LONG)).setName(e)}static ofDouble(e){return new y().setType(m.of(c.DOUBLE)).setName(e)}static ofAny(e){return new y().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 y().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 y().setType(m.of(c.INTEGER,c.LONG,c.FLOAT,c.DOUBLE)).setName(e)}static ofBoolean(e){return new y().setType(m.of(c.BOOLEAN)).setName(e)}static of(e,...t){return new y().setType(m.of(...t)).setName(e)}static ofObject(e){return new y().setType(m.of(c.OBJECT)).setName(e)}static ofRef(e){return new y().setRef(e)}static ofArray(e,...t){return new y().setType(m.of(c.ARRAY)).setName(e).setItems(T.of(...t))}static fromListOfSchemas(e){if(l(e)&&!Array.isArray(e))return;let t=[];for(let r of Array.from(e)){let e=y.from(r);e&&t.push(e)}return t}static fromMapOfSchemas(e){if(l(e))return;let t=new Map;return Object.entries(e).forEach(([e,r])=>{let s=y.from(r);s&&t.set(e,s)}),t}static from(e,t=!1){if(l(e))return;let r=new y;return r.namespace=e.namespace??"_",r.name=e.name,r.version=e.version??1,r.ref=e.ref,t?r.type=new R(c.STRING):r.type=m.from(e.type),r.anyOf=y.fromListOfSchemas(e.anyOf),r.allOf=y.fromListOfSchemas(e.allOf),r.oneOf=y.fromListOfSchemas(e.oneOf),r.not=y.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=y.fromMapOfSchemas(e.properties),r.additionalProperties=w.from(e.additionalProperties),r.required=e.required,r.propertyNames=y.from(e.propertyNames,!0),r.minProperties=e.minProperties,r.maxProperties=e.maxProperties,r.patternProperties=y.fromMapOfSchemas(e.patternProperties),r.items=T.from(e.items),r.additionalItems=w.from(e.additionalItems),r.contains=y.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=y.fromMapOfSchemas(e.$defs),r.permission=e.permission,r.details=e.details?P.from(e.details):void 0,r.viewDetails=e.viewDetails?P.from(e.viewDetails):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,l(e.type)||(this.type=e.type instanceof R?new R(e.type):new p(e.type)),this.anyOf=e.anyOf?.map(e=>new y(e)),this.allOf=e.allOf?.map(e=>new y(e)),this.oneOf=e.oneOf?.map(e=>new y(e)),this.not=this.not?new y(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 y(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 y(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 y(e[1])])):void 0,this.items=e.items?new T(e.items):void 0,this.contains=e.contains?new y(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 y(e[1])])):void 0,this.permission=e.permission,this.details=e.details,this.viewDetails=e.viewDetails}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 R(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}getViewDetails(){return this.viewDetails}setViewDetails(e){return this.viewDetails=e,this}}t({},"Parameter",()=>b),t({},"SchemaReferenceException",()=>x);class x 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",()=>L);var L=((n={}).CONSTANT="CONSTANT",n.EXPRESSION="EXPRESSION",n);let v="value";class b{static{this.SCHEMA_NAME="Parameter"}static{this.SCHEMA=new y().setNamespace(h.SYSTEM).setName(b.SCHEMA_NAME).setProperties(new Map([["schema",y.SCHEMA],["parameterName",y.ofString("parameterName")],["variableArgument",y.of("variableArgument",c.BOOLEAN).setDefaultValue(!1)],["type",y.ofString("type").setEnums(["EXPRESSION","CONSTANT"])]]))}static{this.EXPRESSION=new y().setNamespace(h.SYSTEM).setName("ParameterExpression").setType(m.of(c.OBJECT)).setProperties(new Map([["isExpression",y.ofBoolean("isExpression").setDefaultValue(!0)],[v,y.ofAny(v)]]))}constructor(e,t){if(this.variableArgument=!1,this.type=L.EXPRESSION,e instanceof b)this.schema=new y(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=L.EXPRESSION){return[e,new b(e,t).setType(s).setVariableArgument(r)]}static of(e,t,r=!1,s=L.EXPRESSION){return new b(e,t).setType(s).setVariableArgument(r)}static from(e){let t=y.from(e.schema);if(!t)throw new x("","Parameter requires Schema");return new b(e.parameterName,t).setVariableArgument(!!e.variableArgument).setType(e.type??L.EXPRESSION)}}var U={};t(U,"MapUtil",()=>V),t(U,"MapEntry",()=>C);class V{static of(e,t,r,s,n,a,i,o,E,u,A,h,T,c,g,p,R,m,f,N){let _=new Map;return l(e)||l(t)||_.set(e,t),l(r)||l(s)||_.set(r,s),l(n)||l(a)||_.set(n,a),l(i)||l(o)||_.set(i,o),l(E)||l(u)||_.set(E,u),l(A)||l(h)||_.set(A,h),l(T)||l(c)||_.set(T,c),l(g)||l(p)||_.set(g,p),l(R)||l(m)||_.set(R,m),l(f)||l(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 C(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 C{constructor(e,t){this.k=e,this.v=t}}class D{constructor(){this.map=new Map([["any",y.ofAny("any").setNamespace(h.SYSTEM)],["boolean",y.ofBoolean("boolean").setNamespace(h.SYSTEM)],["double",y.ofDouble("double").setNamespace(h.SYSTEM)],["float",y.ofFloat("float").setNamespace(h.SYSTEM)],["integer",y.ofInteger("integer").setNamespace(h.SYSTEM)],["long",y.ofLong("long").setNamespace(h.SYSTEM)],["number",y.ofNumber("number").setNamespace(h.SYSTEM)],["string",y.ofString("string").setNamespace(h.SYSTEM)],["Timestamp",y.ofString("Timestamp").setNamespace(h.DATE)],["Timeunit",y.ofString("Timeunit").setNamespace(h.DATE).setEnums(["YEARS","QUARTERS","MONTHS","WEEKS","DAYS","HOURS","MINUTES","SECONDS","MILLISECONDS"])],["Duration",y.ofObject("Duration").setNamespace(h.DATE).setProperties(V.ofArrayEntries(["years",y.ofNumber("years")],["quarters",y.ofNumber("quarters")],["months",y.ofNumber("months")],["weeks",y.ofNumber("weeks")],["days",y.ofNumber("days")],["hours",y.ofNumber("hours")],["minutes",y.ofNumber("minutes")],["seconds",y.ofNumber("seconds")],["milliseconds",y.ofNumber("milliseconds")])).setAdditionalItems(w.from(!1))],["TimeObject",y.ofObject("TimeObject").setNamespace(h.DATE).setProperties(V.ofArrayEntries(["year",y.ofNumber("year")],["month",y.ofNumber("month")],["day",y.ofNumber("day")],["hour",y.ofNumber("hour")],["minute",y.ofNumber("minute")],["second",y.ofNumber("second")],["millisecond",y.ofNumber("millisecond")])).setAdditionalItems(w.from(!1))],[b.EXPRESSION.getName(),b.EXPRESSION],[y.NULL.getName(),y.NULL],[y.SCHEMA.getName(),y.SCHEMA]]),this.filterableNames=Array.from(this.map.values()).map(e=>e.getFullName())}async find(e,t){return h.SYSTEM!=e&&h.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 G(e){return[e.getSignature().getName(),e]}t({},"KIRunFunctionRepository",()=>ni),t({},"EventResult",()=>B),t({},"Event",()=>$);class ${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 y().setNamespace(h.SYSTEM).setName($.SCHEMA_NAME).setType(m.of(c.OBJECT)).setProperties(new Map([["name",y.ofString("name")],["parameters",y.ofObject("parameter").setAdditionalProperties(new w().setSchemaValue(y.SCHEMA))]]))}constructor(e,t){if(e instanceof $)this.name=e.name,this.parameters=new Map(Array.from(e.parameters.entries()).map(e=>[e[0],new y(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 $.eventMapEntry($.OUTPUT,e)}static eventMapEntry(e,t){return[e,new $(e,t)]}static from(e){return new $(e.name,new Map(Object.entries(e.parameters??{}).map(e=>{let t=y.from(e[1]);if(!t)throw new x("","Event expects a schema");return[e[0],t]})))}}class B{constructor(e,t){this.name=e,this.result=t}getName(){return this.name}setName(e){return this.name=e,this}getResult(){return this.result}setResult(e){return this.result=e,this}static outputOf(e){return B.of($.OUTPUT,e)}static of(e,t){return new B(e,t)}}t({},"FunctionOutput",()=>F),t({},"KIRuntimeException",()=>k);class k extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class F{constructor(e){if(this.index=0,l(e))throw new k("Function output is generating null");Array.isArray(e)&&e.length&&e[0]instanceof B?this.fo=e:(this.fo=[],Array.isArray(e)||(this.generator=e))}next(){if(!this.generator)return this.index<this.fo.length?this.fo[this.index++]:void 0;let e=this.generator.next();return e&&this.fo.push(e),e}allResults(){return this.fo}}t({},"FunctionSignature",()=>Y);class Y{static{this.SCHEMA_NAME="FunctionSignature"}static{this.SCHEMA=new y().setNamespace(h.SYSTEM).setName(Y.SCHEMA_NAME).setProperties(new Map([["name",y.ofString("name")],["namespace",y.ofString("namespace")],["parameters",y.ofObject("parameters").setAdditionalProperties(new w().setSchemaValue(b.SCHEMA))],["events",y.ofObject("events").setAdditionalProperties(new w().setSchemaValue($.SCHEMA))]]))}constructor(e){this.namespace="_",this.parameters=new Map,this.events=new Map,e instanceof Y?(this.name=e.name,this.namespace=e.namespace,this.parameters=new Map(Array.from(e.parameters.entries()).map(e=>[e[0],new b(e[1])])),this.events=new Map(Array.from(e.events.entries()).map(e=>[e[0],new $(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",()=>e_),t({},"SchemaValidator",()=>eN),t({},"deepEqual",()=>X),t({},"LinkedList",()=>W),t({},"StringFormatter",()=>H);class H{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 W{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 j(t,this.tail);this.tail.next=e,this.tail=e}else this.tail=this.head=new j(t);this.length=e.length}}push(e){let t=new j(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=t.next,--e;return t.value}set(e,t){if(e<0||e>=this.length)throw new k(H.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 j(e,this.head),this.head.next=this.tail):(this.tail=new j(e,this.tail),this.tail.previous.next=this.tail):this.head=this.tail=new j(e),this}map(e,t){let r=new W,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(X(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 j{constructor(e,t,r){this.value=e,this.next=r,this.previous=t}toString(){return""+this.value}}function X(e,t){let r=new W;r.push(e);let s=new W;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",()=>J);class J{constructor(){}static nthIndex(e,t,r=0,s){if(!e)throw new k("String cannot be null");if(r<0||r>=e.length)throw new k(H.format("Cannot search from index : $",r));if(s<=0||s>e.length)throw new k(H.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",()=>ee);var q={};t(q,"Tuple2",()=>K),t(q,"Tuple3",()=>Q),t(q,"Tuple4",()=>z);class K{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 K{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 z 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 ee{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():l(e.getDefaultValue())?ee.getDefaultValue(await ee.getSchemaFromRef(e,t,e.getRef()),t):e.getDefaultValue()}static async hasDefaultValueOrNullSchemaType(e,t){return e?e.getConstant()||!l(e.getDefaultValue())?Promise.resolve(!0):l(e.getRef())?e.getType()?.getAllowedSchemaTypes().has(c.NULL)?Promise.resolve(!0):Promise.resolve(!1):this.hasDefaultValueOrNullSchemaType(await ee.getSchemaFromRef(e,t,e.getRef()),t):Promise.resolve(!1)}static async getSchemaFromRef(e,t,r,s=0){if(++s==ee.CYCLIC_REFERENCE_LIMIT_COUNTER)throw new Z(r??"","Schema has a cyclic reference");if(!e||!r||J.isNullOrBlank(r))return Promise.resolve(void 0);if(!r.startsWith("#")){var n=await ee.resolveExternalSchema(e,t,r);n&&(e=n.getT1(),r=n.getT2())}let a=r.split("/");return 1===a.length?Promise.resolve(e):Promise.resolve(ee.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 x(r,ee.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 x(r,"Cannot retrievie schema from non Object type schemas");i=i.getProperties()?.get(n[a])}if(a++,!i||!J.isNullOrBlank(i.getRef())&&!(i=await ee.getSchemaFromRef(i,t,i.getRef(),s)))throw new x(r,ee.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=J.splitAtFirstOccurance(r??"","/");if(!s[0])return Promise.resolve(void 0);let n=J.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 K(a,r));if(r="#/"+s[1],!a)throw new x(r,ee.UNABLE_TO_RETRIVE_SCHEMA_FROM_REFERENCED_PATH);return Promise.resolve(new K(a,r))}constructor(){}}t({},"AnyOfAllOfOneOfValidator",()=>et);class et{static async validate(e,t,r,s,n,a){let i=[];return t.getOneOf()&&!t.getOneOf()?await et.oneOf(e,t,r,s,i,n,a):t.getAllOf()&&!t.getAllOf()?await et.allOf(e,t,r,s,i,n,a):t.getAnyOf()&&!t.getAnyOf()?await et.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 et.validate(e,E,r,s,a,i),o=!0;break}catch(e){o=!1,n.push(e)}if(o)return s;throw new Z(eN.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 et.validate(e,E,r,s,a,i),o++}catch(e){n.push(e)}if(o===t.getAllOf()?.length)return s;throw new Z(eN.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 et.validate(e,E,r,s,a,i),o++}catch(e){n.push(e)}if(1===o)return s;throw new Z(eN.path(e),0==o?"The value does not satisfy any schema":"The value satisfy more than one schema",n)}constructor(){}}t({},"TypeValidator",()=>ef),t({},"ArrayValidator",()=>er);class er{static async validate(e,t,r,s,n,a){if(l(s))throw new Z(eN.path(e),"Expected an array but found null");if(!Array.isArray(s))throw new Z(eN.path(e),s.toString()+" is not an Array");return er.checkMinMaxItems(e,t,s),await er.checkItems(e,t,r,s,n,a),er.checkUniqueItems(e,t,s),await er.checkContains(t,e,r,s),s}static async checkContains(e,t,r,s){if(l(e.getContains()))return;let n=await er.countContains(t,e,r,s,l(e.getMinContains())&&l(e.getMaxContains()));if(0===n)throw new Z(eN.path(t),"None of the items are of type contains schema");if(!l(e.getMinContains())&&e.getMinContains()>n)throw new Z(eN.path(t),"The minimum number of the items of type contains schema should be "+e.getMinContains()+" but found "+n);if(!l(e.getMaxContains())&&e.getMaxContains()<n)throw new Z(eN.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 eN.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(eN.path(e),"Items on the array are not unique")}static checkMinMaxItems(e,t,r){if(t.getMinItems()&&t.getMinItems()>r.length)throw new Z(eN.path(e),"Array should have minimum of "+t.getMinItems()+" elements");if(t.getMaxItems()&&t.getMaxItems()<r.length)throw new Z(eN.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 eN.validate(o,i.getSingleSchema(),r,s[t],n,a)}if(i.getTupleSchema()){if(i.getTupleSchema().length!==s.length&&l(t?.getAdditionalItems()))throw new Z(eN.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 eN.validate(o,s.getTupleSchema()[i],t,r[i],n,a)}}static async checkAdditionalItems(e,t,r,s,n){if(!l(t.getAdditionalItems())){let a=t.getAdditionalItems();if(a?.getBooleanValue()){let i=y.ofAny("item");if(a?.getBooleanValue()===!1&&s.length>n.getTupleSchema()?.length)throw new Z(eN.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 eN.validate(n,a,r,s[t])}}constructor(){}}t({},"BooleanValidator",()=>es);class es{static validate(e,t,r){if(l(r))throw new Z(eN.path(e),"Expected a boolean but found null");if("boolean"!=typeof r)throw new Z(eN.path(e),r.toString()+" is not a boolean");return r}constructor(){}}t({},"NullValidator",()=>en);class en{static validate(e,t,r){if(l(r))return r;throw new Z(eN.path(e),"Expected a null but found "+r)}constructor(){}}t({},"NumberValidator",()=>ea);class ea{static validate(e,t,r,s){if(l(s))throw new Z(eN.path(t),"Expected a number but found null");if("number"!=typeof s)throw new Z(eN.path(t),s.toString()+" is not a "+e);let n=ea.extractNumber(e,t,r,s);return ea.checkRange(t,r,s,n),ea.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(eN.path(t),s+" is not a number of type "+e,r)}if(l(n)||(e==c.LONG||e==c.INTEGER)&&n!=s)throw new Z(eN.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(eN.path(e),t.getDetails()?.getValidationMessage("multipleOf")??r.toString()+" is not multiple of "+t.getMultipleOf())}static checkRange(e,t,r,s){if(!l(t.getMinimum())&&0>ea.numberCompare(s,t.getMinimum()))throw new Z(eN.path(e),t.getDetails()?.getValidationMessage("minimum")??r.toString()+" should be greater than or equal to "+t.getMinimum());if(!l(t.getMaximum())&&ea.numberCompare(s,t.getMaximum())>0)throw new Z(eN.path(e),t.getDetails()?.getValidationMessage("maximum")??r.toString()+" should be less than or equal to "+t.getMaximum());if(!l(t.getExclusiveMinimum())&&0>=ea.numberCompare(s,t.getExclusiveMinimum()))throw new Z(eN.path(e),t.getDetails()?.getValidationMessage("exclusiveMinimum")??r.toString()+" should be greater than "+t.getExclusiveMinimum());if(!l(t.getExclusiveMaximum())&&ea.numberCompare(s,t.getExclusiveMaximum())>0)throw new Z(eN.path(e),t.getDetails()?.getValidationMessage("exclusiveMaximum")??r.toString()+" should be less than "+t.getExclusiveMaximum())}static numberCompare(e,t){return e-t}constructor(){}}t({},"ObjectValidator",()=>ei);class ei{static async validate(e,t,r,s,n,a){if(l(s))throw new Z(eN.path(e),"Expected an object but found null");if("object"!=typeof s||Array.isArray(s))throw new Z(eN.path(e),s.toString()+" is not an Object");let i=new Set(Object.keys(s));return ei.checkMinMaxProperties(e,t,i),t.getPropertyNames()&&await ei.checkPropertyNameSchema(e,t,r,i),t.getRequired()&&ei.checkRequired(e,t,s),t.getProperties()&&await ei.checkProperties(e,t,r,s,i,n,a),t.getPatternProperties()&&await ei.checkPatternProperties(e,t,r,s,i),t.getAdditionalProperties()&&await ei.checkAdditionalProperties(e,t,r,s,i),s}static async checkPropertyNameSchema(e,t,r,s){for(let n of Array.from(s.values()))try{await eN.validate(e,t.getPropertyNames(),r,n)}catch(t){throw new Z(eN.path(e),"Property name '"+n+"' does not fit the property schema")}}static checkRequired(e,t,r){for(let s of t.getRequired()??[])if(l(r[s]))throw new Z(eN.path(e),t.getProperties()?.get(s)?.getDetails()?.getValidationMessage("mandatory")??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 eN.validate(n,a.getSchemaValue(),r,s[t])}else if(!1===a.getBooleanValue()&&n.size)throw new Z(eN.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 eN.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])&&l(t)&&l(await ee.getDefaultValue(o[1],r)))continue;let E=e?[...e]:[];s[o[0]]=await eN.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(eN.path(e),"Object should have minimum of "+t.getMinProperties()+" properties");if(t.getMaxProperties()&&r.size>t.getMaxProperties())throw new Z(eN.path(e),"Object can have maximum of "+t.getMaxProperties()+" properties")}}t({},"StringValidator",()=>eE),t({},"StringFormat",()=>eo);var eo=((a={}).DATETIME="DATETIME",a.TIME="TIME",a.DATE="DATE",a.EMAIL="EMAIL",a.REGEX="REGEX",a);class eE{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(l(r))throw new Z(eN.path(e),"Expected a string but found "+r);if("string"!=typeof r)throw new Z(eN.path(e),r.toString()+" is not String");t.getFormat()==eo.TIME?eE.patternMatcher(e,t,r,eE.TIME,"time pattern"):t.getFormat()==eo.DATE?eE.patternMatcher(e,t,r,eE.DATE,"date pattern"):t.getFormat()==eo.DATETIME?eE.patternMatcher(e,t,r,eE.DATETIME,"date time pattern"):t.getFormat()==eo.EMAIL?eE.patternMatcher(e,t,r,eE.EMAIL,"email pattern"):t.getPattern()&&eE.patternMatcher(e,t,r,new RegExp(t.getPattern()),"pattern "+t.getPattern());let s=r.length;if(t.getMinLength()&&s<t.getMinLength())throw new Z(eN.path(e),t.getDetails()?.getValidationMessage("minLength")??"Expected a minimum of "+t.getMinLength()+" characters");if(t.getMaxLength()&&s>t.getMaxLength())throw new Z(eN.path(e),t.getDetails()?.getValidationMessage("maxLength")??"Expected a maximum of "+t.getMaxLength()+" characters");return r}static patternMatcher(e,t,r,s,n){if(!s.test(r))throw new Z(eN.path(e),t.getDetails()?.getValidationMessage("pattern")??r.toString()+" is not matched with the "+n)}constructor(){}}var eu=((i={}).STRICT="STRICT",i.LENIENT="LENIENT",i.USE_DEFAULT="USE_DEFAULT",i.SKIP="SKIP",i);let eA=e=>eu[e.toUpperCase()],eh=()=>Object.values(eu);class el 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=eu.STRICT),t){case eu.STRICT:throw new el(eN.path(e),r,n,t);case eu.LENIENT:return null;case eu.USE_DEFAULT:return s;case eu.SKIP:return r;default:throw new el(eN.path(e),r,"Invalid conversion mode")}}constructor(){}}class ec{static convert(e,t,r,s){if(l(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===eu.STRICT?e.toString():e.trim()}static getDefault(e){return e.getDefaultValue()??null}constructor(){}}class eg{static convert(e,t,r,s,n){if(l(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!==eu.STRICT?"number"==typeof e:Number.isInteger(e)}static isLong(e,t){return t!==eu.STRICT?"number"==typeof e:Number.isInteger(e)&&e>=Number.MIN_SAFE_INTEGER&&e<=Number.MAX_SAFE_INTEGER}static isFloat(e,t){return t!==eu.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 ep{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 ep.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 l(s)?s:"string"==typeof s&&"null"===s.toLowerCase()?null:eT.handleUnConvertibleValueWithDefault(e,r,s,null,"Unable to convert to null")}constructor(){}}class em{static handleValidationError(e,t,r,s,n){switch(t=t??eu.STRICT){case eu.STRICT:throw new Z(eN.path(e),n);case eu.LENIENT:return null;case eu.USE_DEFAULT:return s;case eu.SKIP:return r}}constructor(){}}class ef{static async validate(e,t,r,s,n,a,i){return t==c.OBJECT?await ei.validate(e,r,s,n,a,i):t==c.ARRAY?await er.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??eu.STRICT):s;return await this.validateElement(e,t,r,i,a??eu.STRICT)}static convertElement(e,t,r,s,n){if(l(t))return eT.handleUnConvertibleValueWithDefault(e,n,s,r.getDefaultValue()??null,H.format("$ is not a valid type for conversion.",t));switch(t){case c.STRING:return ec.convert(e,r,n,s);case c.INTEGER:case c.LONG:case c.DOUBLE:case c.FLOAT:return eg.convert(e,t,r,n,s);case c.BOOLEAN:return ep.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,H.format("$ is not a valid type for conversion.",t))}}static validateElement(e,t,r,s,n){if(l(t))return em.handleValidationError(e,n,s,r.getDefaultValue()??null,H.format("$ is not a valid type.",t));switch(t){case c.STRING:return eE.validate(e,r,s);case c.INTEGER:case c.LONG:case c.DOUBLE:case c.FLOAT:return ea.validate(t,e,r,s);case c.BOOLEAN:return es.validate(e,r,s);case c.NULL:return en.validate(e,r,s);default:return em.handleValidationError(e,n,s,r.getDefaultValue()??null,H.format("$ is not a valid type.",t))}}constructor(){}}class eN{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(eN.path(e),"No schema found to validate");if(e||(e=[]),e.push(t),l(s)&&!l(t.getDefaultValue()))return JSON.parse(JSON.stringify(t.getDefaultValue()));if(!l(t.getConstant()))return eN.constantValidation(e,t,s);if(t.getEnums()?.length)return eN.enumCheck(e,t,s);if(t.getFormat()&&l(t.getType()))throw new Z(this.path(e),"Type is missing in schema for declared "+t.getFormat()?.toString()+" format.");if(!0===n&&l(t.getType()))throw new Z(this.path(e),"Type is missing in schema for declared "+a);if(t.getType()&&(s=await eN.typeValidation(e,t,r,s,n,a)),!J.isNullOrBlank(t.getRef()))return await eN.validate(e,await ee.getSchemaFromRef(e[0],r,t.getRef()),r,s,n,a);if((t.getOneOf()||t.getAllOf()||t.getAnyOf())&&(s=await et.validate(e,t,r,s,n,a)),t.getNot()){let i;try{await eN.validate(e,t.getNot(),r,s,n,a),i=!0}catch(e){i=!1}if(i)throw new Z(eN.path(e),"Schema validated value in not condition.")}return s}static constantValidation(e,t,r){if(!X(t.getConstant(),r))throw new Z(eN.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(eN.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 ef.validate(e,E,t,r,s,n,a)}catch(e){o.push(e)}if(1==o.length)throw new Z(eN.path(e),o[0].message);throw new Z(eN.path(e),"Value "+JSON.stringify(s)+" is not of valid type(s)",o)}}class e_{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 k(`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(l(i)&&!s.isVariableArgument())return new K(a,await eN.validate(void 0,s.getSchema(),t,void 0));if(!s?.isVariableArgument())return new K(a,await eN.validate(void 0,s.getSchema(),t,i));Array.isArray(i)?n=i:(n=[],l(i)?l(s.getSchema().getDefaultValue())||n.push(s.getSchema().getDefaultValue()):n.push(i));for(let e=0;e<n.length;e++)n[e]=await eN.validate(void 0,s.getSchema(),t,n[e]);return new K(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 k(`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 eM extends e_{static{this.EVENT_INDEX_NAME="index"}static{this.EVENT_RESULT_NAME="result"}static{this.EVENT_INDEX=new $($.OUTPUT,V.of(eM.EVENT_INDEX_NAME,y.ofInteger(eM.EVENT_INDEX_NAME)))}static{this.EVENT_RESULT_INTEGER=new $($.OUTPUT,V.of(eM.EVENT_RESULT_NAME,y.ofInteger(eM.EVENT_RESULT_NAME)))}static{this.EVENT_RESULT_BOOLEAN=new $($.OUTPUT,V.of(eM.EVENT_RESULT_NAME,y.ofBoolean(eM.EVENT_RESULT_NAME)))}static{this.EVENT_RESULT_ARRAY=new $($.OUTPUT,V.of(eM.EVENT_RESULT_NAME,y.ofArray(eM.EVENT_RESULT_NAME,y.ofAny(eM.EVENT_RESULT_NAME))))}static{this.EVENT_RESULT_EMPTY=new $($.OUTPUT,V.of())}static{this.EVENT_RESULT_ANY=new $($.OUTPUT,V.of(this.EVENT_RESULT_NAME,y.ofAny(this.EVENT_RESULT_NAME)))}static{this.EVENT_RESULT_OBJECT=new $($.OUTPUT,V.of(this.EVENT_RESULT_NAME,y.ofObject(this.EVENT_RESULT_NAME)))}static{this.PARAMETER_INT_LENGTH=b.of("length",y.ofInteger("length").setDefaultValue(-1))}static{this.PARAMETER_ARRAY_FIND=b.of("find",y.ofArray("eachFind",y.ofAny("eachFind")))}static{this.PARAMETER_INT_SOURCE_FROM=b.of("srcFrom",y.ofInteger("srcFrom").setDefaultValue(0).setMinimum(0))}static{this.PARAMETER_INT_SECOND_SOURCE_FROM=b.of("secondSrcFrom",y.ofInteger("secondSrcFrom").setDefaultValue(0))}static{this.PARAMETER_INT_FIND_FROM=b.of("findFrom",y.ofInteger("findFrom").setDefaultValue(0))}static{this.PARAMETER_INT_OFFSET=b.of("offset",y.ofInteger("offset").setDefaultValue(0))}static{this.PARAMETER_ROTATE_LENGTH=b.of("rotateLength",y.ofInteger("rotateLength").setDefaultValue(1).setMinimum(1))}static{this.PARAMETER_BOOLEAN_ASCENDING=b.of("ascending",y.ofBoolean("ascending").setDefaultValue(!0))}static{this.PARAMETER_KEY_PATH=b.of("keyPath",y.ofString("keyPath").setDefaultValue(""))}static{this.PARAMETER_FIND_PRIMITIVE=b.of("findPrimitive",y.of("findPrimitive",c.STRING,c.DOUBLE,c.FLOAT,c.INTEGER,c.LONG))}static{this.PARAMETER_ARRAY_SOURCE=b.of("source",y.ofArray("eachSource",y.ofAny("eachSource")))}static{this.PARAMETER_ARRAY_SECOND_SOURCE=b.of("secondSource",y.ofArray("eachSecondSource",y.ofAny("eachSecondSource")))}static{this.PARAMETER_ARRAY_SOURCE_PRIMITIVE=b.of("source",y.ofArray("eachSource",new y().setName("eachSource").setType(m.of(c.STRING,c.NULL,c.INTEGER,c.FLOAT,c.DOUBLE,c.LONG))))}static{this.PARAMETER_BOOLEAN_DEEP_COPY=b.of("deepCopy",y.ofBoolean("deepCopy").setDefaultValue(!0))}static{this.PARAMETER_ANY=b.of("element",y.ofAny("element"))}static{this.PARAMETER_ANY_ELEMENT_OBJECT=b.of("elementObject",y.ofAny("elementObject"))}static{this.PARAMETER_ANY_VAR_ARGS=b.of("element",y.ofAny("element")).setVariableArgument(!0)}static{this.PARAMETER_ARRAY_RESULT=b.of(eM.EVENT_RESULT_NAME,y.ofArray("eachResult",y.ofAny("eachResult")))}constructor(e,t,r){super();let s=new Map;for(let e of t)s.set(e.getParameterName(),e);this.signature=new Y(e).setNamespace(h.SYSTEM_ARRAY).setParameters(s).setEvents(V.of(r.getName(),r))}getSignature(){return this.signature}}class eS extends eM{constructor(){super("Concatenate",[eM.PARAMETER_ARRAY_SOURCE,eM.PARAMETER_ARRAY_SECOND_SOURCE],eM.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eM.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eM.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName());return new F([B.outputOf(new Map([[eM.EVENT_RESULT_NAME,[...t,...r]]]))])}}class eO extends eM{constructor(){super("AddFirst",[eM.PARAMETER_ARRAY_SOURCE,eM.PARAMETER_ANY],eM.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eM.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eM.PARAMETER_ANY.getParameterName());if(0==(t=[...t]).length)return t.push(r),new F([B.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([B.outputOf(new Map([[eM.EVENT_RESULT_NAME,t]]))])}}let ed="keyName";class eI extends eM{constructor(){super("ArrayToArrayOfObjects",[eM.PARAMETER_ARRAY_SOURCE,b.of(ed,y.ofString(ed),!0)],eM.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eI.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ed);if(!t?.length)return new F([B.outputOf(new Map([[eM.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([B.outputOf(new Map([[eM.EVENT_RESULT_NAME,s]]))])}}t({},"PrimitiveUtil",()=>eP),t({},"ExecutionException",()=>ew);class ew extends Error{constructor(e,t){super(e),this.cause=t}getCause(){return this.cause}}class eP{static findPrimitiveNullAsBoolean(e){if(l(e))return new K(c.BOOLEAN,!1);let t=typeof e;if("object"===t)throw new ew(H.format("$ is not a primitive type",e));return"boolean"===t?new K(c.BOOLEAN,e):"string"===t?new K(c.STRING,e):eP.findPrimitiveNumberType(e)}static findPrimitive(e){if(l(e))return new K(c.NULL,void 0);let t=typeof e;if("object"===t)throw new ew(H.format("$ is not a primitive type",e));return"boolean"===t?new K(c.BOOLEAN,e):"string"===t?new K(c.STRING,e):eP.findPrimitiveNumberType(e)}static findPrimitiveNumberType(e){if(l(e)||Array.isArray(e)||"object"==typeof e)throw new ew(H.format("Unable to convert $ to a number.",e));try{if(Number.isInteger(e))return new K(c.LONG,e);return new K(c.DOUBLE,e)}catch(t){throw new ew(H.format("Unable to convert $ to a number.",e),t)}}static compare(e,t){if(e==t)return 0;if(l(e)||l(t))return l(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 l(e)||l(t)?l(e)&&l(t)?0:l(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 ey extends eM{constructor(){super("BinarySearch",[ey.PARAMETER_ARRAY_SOURCE_PRIMITIVE,ey.PARAMETER_INT_SOURCE_FROM,ey.PARAMETER_FIND_PRIMITIVE,ey.PARAMETER_INT_LENGTH],ey.EVENT_INDEX)}async internalExecute(e){let 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_FIND_PRIMITIVE.getParameterName()),n=e?.getArguments()?.get(ey.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length||r<0||r>t.length)throw new k("Search source array cannot be empty");if(-1==n&&(n=t.length-r),(n=r+n)>t.length)throw new k("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==eP.compare(t[e],s)){a=e;break}eP.compare(t[e],s)>0?n=e-1:r=e+1}return new F([B.outputOf(new Map([[ey.EVENT_INDEX_NAME,a]]))])}}t({},"ArrayUtil",()=>ex);class ex{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 eL extends eM{constructor(){super("Compare",ex.of(eL.PARAMETER_ARRAY_SOURCE,eL.PARAMETER_INT_SOURCE_FROM,eL.PARAMETER_ARRAY_FIND,eL.PARAMETER_INT_FIND_FROM,eL.PARAMETER_INT_LENGTH),eL.EVENT_RESULT_INTEGER)}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_ARRAY_FIND.getParameterName()),n=e?.getArguments()?.get(eL.PARAMETER_INT_FIND_FROM.getParameterName()),a=e?.getArguments()?.get(eL.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)throw new k("Compare source array cannot be empty");if(0==s.length)throw new k("Compare find array cannot be empty");if(-1==a&&(a=t.length-r),r+a>t.length)throw new k(H.format("Source array size $ is less than comparing size $",t.length,r+a));if(n+a>s.length)throw new k(H.format("Find array size $ is less than comparing size $",s.length,n+a));return new F(ex.of(B.outputOf(V.of(eL.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 k(H.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(l(e[a])||l(s[i])){let r=l(e[a]);r==l(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):"number"===r&&"number"===n&&(t=e[a]-s[i])}if(0!=t)return t}return 0}}function ev(e){return e?"function"==typeof globalThis.structuredClone?globalThis.structuredClone(e):JSON.parse(JSON.stringify(e)):e}t({},"duplicate",()=>ev);class eb extends eM{constructor(){super("Copy",[eb.PARAMETER_ARRAY_SOURCE,eb.PARAMETER_INT_SOURCE_FROM,eb.PARAMETER_INT_LENGTH,eb.PARAMETER_BOOLEAN_DEEP_COPY],eb.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(eb.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eb.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eb.PARAMETER_INT_LENGTH.getParameterName());if(-1==s&&(s=t.length-r),r+s>t.length)throw new k(H.format("Array has no elements from $ to $ as the array size is $",r,r+s,t.length));var n=e?.getArguments()?.get(eb.PARAMETER_BOOLEAN_DEEP_COPY.getParameterName());let a=Array(s);for(let e=r;e<r+s;e++)l(t[e])||(a[e-r]=n?ev(t[e]):t[e]);return new F([B.outputOf(V.of(eb.EVENT_RESULT_NAME,a))])}}class eU extends eM{constructor(){super("Delete",[eM.PARAMETER_ARRAY_SOURCE,eM.PARAMETER_ANY_VAR_ARGS],eM.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 k("The deletable var args are empty. So cannot be proceeded further.");if(0==t.length||0==r.length)throw new k("Expected a source or deletable for an array but not found any");let s=new Set;for(let e=t.length-1;e>=0;e--)for(let n=0;n<r.length;n++)s.has(e)||0!=eP.compare(t[e],r[n])||s.add(t[e]);return new F([B.outputOf(new Map([[eM.EVENT_RESULT_NAME,t.filter(e=>!s.has(e))]]))])}}class eV extends eM{constructor(){super("DeleteFirst",[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 k("Given source array is empty");return(t=[...t]).shift(),new F([B.outputOf(new Map([[eM.EVENT_RESULT_NAME,t]]))])}}class eC extends eM{constructor(){super("DeleteFrom",[eC.PARAMETER_ARRAY_SOURCE,eC.PARAMETER_INT_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_INT_LENGTH.getParameterName());if(0==t.length)throw new k("There are no elements to be deleted");if(r>=(t=[...t]).length||r<0)throw new k("The int source for the array should be in between 0 and length of the array ");if(-1==s&&(s=t.length-r),r+s>t.length)throw new k("Requested length to be deleted is more than the size of array ");return t.splice(r,s),new F([B.outputOf(new Map([[eM.EVENT_RESULT_NAME,t]]))])}}class eD extends eM{constructor(){super("DeleteLast",[eD.PARAMETER_ARRAY_SOURCE],eD.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eD.PARAMETER_ARRAY_SOURCE.getParameterName());if(0==t.length)throw new k("Given source array is empty");return(t=[...t]).pop(),new F([B.outputOf(new Map([[eM.EVENT_RESULT_NAME,t]]))])}}class eG extends eM{constructor(){super("Disjoint",[eG.PARAMETER_ARRAY_SOURCE,eG.PARAMETER_INT_SOURCE_FROM,eG.PARAMETER_ARRAY_SECOND_SOURCE,eG.PARAMETER_INT_SECOND_SOURCE_FROM,eG.PARAMETER_INT_LENGTH],eG.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eG.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eG.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eG.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(eG.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(eG.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 k("The length which was being requested is more than than the size either source array or second source array");let i=new Set,o=new Set;for(let e=0;e<a;e++)i.add(t[e+r]);for(let e=0;e<a;e++)o.add(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([B.outputOf(new Map([[eG.EVENT_RESULT_NAME,[...E]]]))])}}class e$ extends eM{constructor(){super("Equals",[e$.PARAMETER_ARRAY_SOURCE,e$.PARAMETER_INT_SOURCE_FROM,e$.PARAMETER_ARRAY_FIND,e$.PARAMETER_INT_FIND_FROM,e$.PARAMETER_INT_LENGTH],e$.EVENT_RESULT_BOOLEAN)}async internalExecute(e){let t=new eL,r=(await t.execute(e)).allResults()[0].getResult().get(e$.EVENT_RESULT_NAME);return new F([B.outputOf(V.of(e$.EVENT_RESULT_NAME,0==r))])}}class eB extends eM{constructor(){super("Fill",[eB.PARAMETER_ARRAY_SOURCE,eB.PARAMETER_INT_SOURCE_FROM,eB.PARAMETER_INT_LENGTH,eB.PARAMETER_ANY],eB.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(eB.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eB.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eB.PARAMETER_INT_LENGTH.getParameterName()),n=e?.getArguments()?.get(eB.PARAMETER_ANY.getParameterName());if(r<0)throw new k(H.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]=l(n)?n:ev(n);return new F([B.outputOf(V.of(eM.EVENT_RESULT_NAME,t))])}}class ek extends eM{constructor(){super("Frequency",[ek.PARAMETER_ARRAY_SOURCE,ek.PARAMETER_ANY,ek.PARAMETER_INT_SOURCE_FROM,ek.PARAMETER_INT_LENGTH],ek.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(ek.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(ek.PARAMETER_ANY.getParameterName()),s=e?.getArguments()?.get(ek.PARAMETER_INT_SOURCE_FROM.getParameterName()),n=e?.getArguments()?.get(ek.PARAMETER_INT_LENGTH.getParameterName());if(0==t.length)return new F([B.outputOf(new Map([[ek.EVENT_RESULT_NAME,0]]))]);if(s>t.length)throw new k("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 k("Given length is more than the size of source");let i=0;for(let e=s;e<a&&e<t.length;e++)0==eP.compare(t[e],r)&&i++;return new F([B.outputOf(new Map([[ek.EVENT_RESULT_NAME,i]]))])}}class eF extends eM{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([B.outputOf(new Map([[eF.EVENT_RESULT_NAME,-1]]))]);if(s<0||s>t.length)throw new k("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==eP.compare(t[e],r)){n=e;break}return new F([B.outputOf(new Map([[eF.EVENT_RESULT_NAME,n]]))])}}class eY extends eM{constructor(){super("IndexOfArray",[eY.PARAMETER_ARRAY_SOURCE,eY.PARAMETER_ARRAY_SECOND_SOURCE,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_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(eY.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length||0==r.length)return new F([B.outputOf(new Map([[eY.EVENT_RESULT_NAME,-1]]))]);if(s<0||s>t.length||t.length<r.length)throw new k("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==eP.compare(t[e],r[s])){for(;s<n&&0==eP.compare(t[e+s],r[s]);)s++;if(s==n){a=e;break}}}return new F([B.outputOf(new Map([[eY.EVENT_RESULT_NAME,a]]))])}}class eH extends eM{constructor(){super("LastIndexOf",[eH.PARAMETER_ARRAY_SOURCE,eH.PARAMETER_ANY_ELEMENT_OBJECT,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_ANY_ELEMENT_OBJECT.getParameterName()),s=e?.getArguments()?.get(eH.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new F([B.outputOf(new Map([[eH.EVENT_RESULT_NAME,-1]]))]);if(s<0||s>t.length)throw new k("The value of length shouldn't the exceed the size of the array or shouldn't be in terms");let n=-1;for(let e=t.length-1;e>=s;e--)if(0==eP.compare(t[e],r)){n=e;break}return new F([B.outputOf(new Map([[eH.EVENT_RESULT_NAME,n]]))])}}class eW extends eM{constructor(){super("LastIndexOfArray",[eW.PARAMETER_ARRAY_SOURCE,eW.PARAMETER_ARRAY_SECOND_SOURCE,eW.PARAMETER_INT_FIND_FROM],eW.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eW.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eW.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),s=e?.getArguments()?.get(eW.PARAMETER_INT_FIND_FROM.getParameterName());if(0==t.length)return new F([B.outputOf(new Map([[eW.EVENT_RESULT_NAME,-1]]))]);if(s<0||s>t.length||r.length>t.length)throw new k("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==eP.compare(t[e],r[s])){for(;s<n&&0==eP.compare(t[e+s],r[s]);)s++;s==n&&(a=e)}}return new F([B.outputOf(new Map([[eW.EVENT_RESULT_NAME,a]]))])}}class ej extends eM{constructor(){super("Max",[ej.PARAMETER_ARRAY_SOURCE_PRIMITIVE],ej.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(ej.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==t.length)throw new k("Search source array cannot be empty");let r=t[0];for(let e=1;e<t.length;e++){let s=t[e];eP.comparePrimitive(r,s)>=0||(r=s)}return new F([B.outputOf(new Map([[ej.EVENT_RESULT_NAME,r]]))])}}class eX extends eM{constructor(){super("Min",[eX.PARAMETER_ARRAY_SOURCE_PRIMITIVE],eX.EVENT_RESULT_ANY)}async internalExecute(e){let t,r=e?.getArguments()?.get(eX.PARAMETER_ARRAY_SOURCE_PRIMITIVE.getParameterName());if(0==r.length)throw new k("Search source array cannot be empty");for(let e=0;e<r.length;e++)!l(r[e])&&(void 0===t||0>eP.comparePrimitive(r[e],t))&&(t=r[e]);return new F([B.outputOf(new Map([[eX.EVENT_RESULT_NAME,t]]))])}}class eJ extends eM{constructor(){super("MisMatch",[eJ.PARAMETER_ARRAY_SOURCE,eJ.PARAMETER_INT_FIND_FROM,eJ.PARAMETER_ARRAY_SECOND_SOURCE,eJ.PARAMETER_INT_SECOND_SOURCE_FROM,eJ.PARAMETER_INT_LENGTH],eJ.EVENT_RESULT_INTEGER)}async internalExecute(e){let t=e?.getArguments()?.get(eJ.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eJ.PARAMETER_INT_FIND_FROM.getParameterName()),s=e?.getArguments()?.get(eJ.PARAMETER_ARRAY_SECOND_SOURCE.getParameterName()),n=e?.getArguments()?.get(eJ.PARAMETER_INT_SECOND_SOURCE_FROM.getParameterName()),a=e?.getArguments()?.get(eJ.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 k("The size of the array for first and second which was being requested is more than size of the given array");let E=-1;for(let e=0;e<a;e++)if(t[i+e]!=s[o+e]){E=e;break}return new F([B.outputOf(new Map([[eJ.EVENT_RESULT_NAME,E]]))])}}class eq extends eM{constructor(){super("Reverse",[eq.PARAMETER_ARRAY_SOURCE,eq.PARAMETER_INT_SOURCE_FROM,eq.PARAMETER_INT_LENGTH],eq.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eq.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eq.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(eq.PARAMETER_INT_LENGTH.getParameterName());if(-1==s&&(s=t.length-r),s>=t.length||s<0||r<0)throw new k("Please provide start point between the start and end indexes or provide the length which was less than the source size ");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([B.outputOf(new Map([[eq.EVENT_RESULT_NAME,t]]))])}}class eK extends eM{constructor(){super("Rotate",[eK.PARAMETER_ARRAY_SOURCE,eK.PARAMETER_ROTATE_LENGTH],eK.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(eK.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(eK.PARAMETER_ROTATE_LENGTH.getParameterName());if(0==t.length)return new F([B.outputOf(new Map([[eM.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([B.outputOf(new Map([[eM.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 eM{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([B.outputOf(new Map([[eM.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([B.outputOf(new Map([[eM.EVENT_RESULT_NAME,t]]))])}}t({},"ObjectValueSetterExtractor",()=>e1),t({},"Operation",()=>ez);class ez{static{this.MULTIPLICATION=new ez("*")}static{this.DIVISION=new ez("/")}static{this.INTEGER_DIVISION=new ez("//")}static{this.MOD=new ez("%")}static{this.ADDITION=new ez("+")}static{this.SUBTRACTION=new ez("-")}static{this.NOT=new ez("not",void 0,!0)}static{this.AND=new ez("and",void 0,!0)}static{this.OR=new ez("or",void 0,!0)}static{this.LESS_THAN=new ez("<")}static{this.LESS_THAN_EQUAL=new ez("<=")}static{this.GREATER_THAN=new ez(">")}static{this.GREATER_THAN_EQUAL=new ez(">=")}static{this.EQUAL=new ez("=")}static{this.NOT_EQUAL=new ez("!=")}static{this.BITWISE_AND=new ez("&")}static{this.BITWISE_OR=new ez("|")}static{this.BITWISE_XOR=new ez("^")}static{this.BITWISE_COMPLEMENT=new ez("~")}static{this.BITWISE_LEFT_SHIFT=new ez("<<")}static{this.BITWISE_RIGHT_SHIFT=new ez(">>")}static{this.BITWISE_UNSIGNED_RIGHT_SHIFT=new ez(">>>")}static{this.UNARY_PLUS=new ez("UN: +","+")}static{this.UNARY_MINUS=new ez("UN: -","-")}static{this.UNARY_LOGICAL_NOT=new ez("UN: not","not")}static{this.UNARY_BITWISE_COMPLEMENT=new ez("UN: ~","~")}static{this.ARRAY_OPERATOR=new ez("[")}static{this.ARRAY_RANGE_INDEX_OPERATOR=new ez("..")}static{this.OBJECT_OPERATOR=new ez(".")}static{this.NULLISH_COALESCING_OPERATOR=new ez("??")}static{this.CONDITIONAL_TERNARY_OPERATOR=new ez("?")}static{this.VALUE_OF=new Map([["MULTIPLICATION",ez.MULTIPLICATION],["DIVISION",ez.DIVISION],["INTEGER_DIVISION",ez.INTEGER_DIVISION],["MOD",ez.MOD],["ADDITION",ez.ADDITION],["SUBTRACTION",ez.SUBTRACTION],["NOT",ez.NOT],["AND",ez.AND],["OR",ez.OR],["LESS_THAN",ez.LESS_THAN],["LESS_THAN_EQUAL",ez.LESS_THAN_EQUAL],["GREATER_THAN",ez.GREATER_THAN],["GREATER_THAN_EQUAL",ez.GREATER_THAN_EQUAL],["EQUAL",ez.EQUAL],["NOT_EQUAL",ez.NOT_EQUAL],["BITWISE_AND",ez.BITWISE_AND],["BITWISE_OR",ez.BITWISE_OR],["BITWISE_XOR",ez.BITWISE_XOR],["BITWISE_COMPLEMENT",ez.BITWISE_COMPLEMENT],["BITWISE_LEFT_SHIFT",ez.BITWISE_LEFT_SHIFT],["BITWISE_RIGHT_SHIFT",ez.BITWISE_RIGHT_SHIFT],["BITWISE_UNSIGNED_RIGHT_SHIFT",ez.BITWISE_UNSIGNED_RIGHT_SHIFT],["UNARY_PLUS",ez.UNARY_PLUS],["UNARY_MINUS",ez.UNARY_MINUS],["UNARY_LOGICAL_NOT",ez.UNARY_LOGICAL_NOT],["UNARY_BITWISE_COMPLEMENT",ez.UNARY_BITWISE_COMPLEMENT],["ARRAY_OPERATOR",ez.ARRAY_OPERATOR],["ARRAY_RANGE_INDEX_OPERATOR",ez.ARRAY_RANGE_INDEX_OPERATOR],["OBJECT_OPERATOR",ez.OBJECT_OPERATOR],["NULLISH_COALESCING_OPERATOR",ez.NULLISH_COALESCING_OPERATOR],["CONDITIONAL_TERNARY_OPERATOR",ez.CONDITIONAL_TERNARY_OPERATOR]])}static{this.UNARY_OPERATORS=new Set([ez.ADDITION,ez.SUBTRACTION,ez.NOT,ez.BITWISE_COMPLEMENT,ez.UNARY_PLUS,ez.UNARY_MINUS,ez.UNARY_LOGICAL_NOT,ez.UNARY_BITWISE_COMPLEMENT])}static{this.ARITHMETIC_OPERATORS=new Set([ez.MULTIPLICATION,ez.DIVISION,ez.INTEGER_DIVISION,ez.MOD,ez.ADDITION,ez.SUBTRACTION])}static{this.LOGICAL_OPERATORS=new Set([ez.NOT,ez.AND,ez.OR,ez.LESS_THAN,ez.LESS_THAN_EQUAL,ez.GREATER_THAN,ez.GREATER_THAN_EQUAL,ez.EQUAL,ez.NOT_EQUAL,ez.NULLISH_COALESCING_OPERATOR])}static{this.BITWISE_OPERATORS=new Set([ez.BITWISE_AND,ez.BITWISE_COMPLEMENT,ez.BITWISE_LEFT_SHIFT,ez.BITWISE_OR,ez.BITWISE_RIGHT_SHIFT,ez.BITWISE_UNSIGNED_RIGHT_SHIFT,ez.BITWISE_XOR])}static{this.CONDITIONAL_OPERATORS=new Set([ez.CONDITIONAL_TERNARY_OPERATOR])}static{this.OPERATOR_PRIORITY=new Map([[ez.UNARY_PLUS,1],[ez.UNARY_MINUS,1],[ez.UNARY_LOGICAL_NOT,1],[ez.UNARY_BITWISE_COMPLEMENT,1],[ez.ARRAY_OPERATOR,1],[ez.OBJECT_OPERATOR,1],[ez.ARRAY_RANGE_INDEX_OPERATOR,2],[ez.MULTIPLICATION,2],[ez.DIVISION,2],[ez.INTEGER_DIVISION,2],[ez.MOD,2],[ez.ADDITION,3],[ez.SUBTRACTION,3],[ez.BITWISE_LEFT_SHIFT,4],[ez.BITWISE_RIGHT_SHIFT,4],[ez.BITWISE_UNSIGNED_RIGHT_SHIFT,4],[ez.LESS_THAN,5],[ez.LESS_THAN_EQUAL,5],[ez.GREATER_THAN,5],[ez.GREATER_THAN_EQUAL,5],[ez.EQUAL,6],[ez.NOT_EQUAL,6],[ez.BITWISE_AND,7],[ez.BITWISE_XOR,8],[ez.BITWISE_OR,9],[ez.NOT,10],[ez.AND,10],[ez.OR,11],[ez.NULLISH_COALESCING_OPERATOR,11],[ez.CONDITIONAL_TERNARY_OPERATOR,12]])}static{this.OPERATORS=new Set([...Array.from(ez.ARITHMETIC_OPERATORS),...Array.from(ez.LOGICAL_OPERATORS),...Array.from(ez.BITWISE_OPERATORS),ez.ARRAY_OPERATOR,ez.ARRAY_RANGE_INDEX_OPERATOR,ez.OBJECT_OPERATOR,...Array.from(ez.CONDITIONAL_OPERATORS)].map(e=>e.getOperator()))}static{this.OPERATORS_WITHOUT_SPACE_WRAP=new Set([...Array.from(ez.ARITHMETIC_OPERATORS),...Array.from(ez.LOGICAL_OPERATORS),...Array.from(ez.BITWISE_OPERATORS),ez.ARRAY_OPERATOR,ez.ARRAY_RANGE_INDEX_OPERATOR,ez.OBJECT_OPERATOR,...Array.from(ez.CONDITIONAL_OPERATORS)].filter(e=>!e.shouldBeWrappedInSpace()).map(e=>e.getOperator()))}static{this.OPERATION_VALUE_OF=new Map(Array.from(ez.VALUE_OF.entries()).map(([e,t])=>[t.getOperator(),t]))}static{this.UNARY_MAP=new Map([[ez.ADDITION,ez.UNARY_PLUS],[ez.SUBTRACTION,ez.UNARY_MINUS],[ez.NOT,ez.UNARY_LOGICAL_NOT],[ez.BITWISE_COMPLEMENT,ez.UNARY_BITWISE_COMPLEMENT],[ez.UNARY_PLUS,ez.UNARY_PLUS],[ez.UNARY_MINUS,ez.UNARY_MINUS],[ez.UNARY_LOGICAL_NOT,ez.UNARY_LOGICAL_NOT],[ez.UNARY_BITWISE_COMPLEMENT,ez.UNARY_BITWISE_COMPLEMENT]])}static{this.BIGGEST_OPERATOR_SIZE=Array.from(ez.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 ez.VALUE_OF.get(e)}toString(){return this.operator}}t({},"TokenValueExtractor",()=>e0),t({},"ExpressionEvaluationException",()=>eZ);class eZ extends Error{constructor(e,t,r){super(H.format("$ : $",e,t)),this.cause=r}getCause(){return this.cause}}class e0{static{this.REGEX_SQUARE_BRACKETS=/[\[\]]/}static{this.REGEX_DOT=/(?<!\.)\.(?!\.)/}static{this.pathCache=new Map}static{this.bracketCache=new Map}static splitPath(e){let t=e0.pathCache.get(e);return t||(t=e0.splitPathInternal(e),e0.pathCache.set(e,t)),t}static splitPathInternal(e){let t=[],r=0,s=!1;for(let n=0;n<e.length;n++){let a=e.charAt(n);"["===a?s=!0:"]"===a?s=!1:"."!==a||s||e0.isDoubleDot(e,n)||(n>r&&t.push(e.substring(r,n)),r=n+1)}return r<e.length&&t.push(e.substring(r)),t}static isDoubleDot(e,t){return t>0&&"."===e.charAt(t-1)||t<e.length-1&&"."===e.charAt(t+1)}static parseBracketSegment(e){let t=e0.bracketCache.get(e);return t||(t=e.split(e0.REGEX_SQUARE_BRACKETS).map(e=>e.trim()).filter(e=>!J.isNullOrBlank(e)),e0.bracketCache.set(e,t)),t}getValue(e){let t=this.getPrefix();if(!e.startsWith(t))throw new k(H.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(!l(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=Number.parseInt(e);return isNaN(r)?e:r}}return this.getValueInternal(e)}retrieveElementFrom(e,t,r,s){let n=s;for(let s=r;s<t.length;s++){if(l(n))return;for(let r of e0.parseBracketSegment(t[s]))if(void 0===(n=this.resolveSegmentFast(e,t,s,r,n)))return}return n}resolveSegmentFast(e,t,r,s,n){if(null!=n){if(s.startsWith('"')||s.startsWith("'"))return this.resolveForEachPartOfTokenWithBrackets(e,t,r,s,n);if("object"==typeof n&&!Array.isArray(n)){if("length"===s){if("length"in n){let e=n.length;return"object"==typeof e&&null!==e?Object.keys(n).length:e}return Object.keys(n).length}return s in n,n[s]}if(Array.isArray(n)){if("length"===s)return n.length;if(/^-?\d+$/.test(s)){let e=Number.parseInt(s,10),t=e<0?n.length+e:e;return t>=0&&t<n.length?n[t]:void 0}}if("string"==typeof n){if("length"===s)return n.length;if(/^-?\d+$/.test(s)){let e=Number.parseInt(s,10),t=e<0?n.length+e:e;return t>=0&&t<n.length?n[t]:void 0}}return this.resolveForEachPartOfTokenWithBrackets(e,t,r,s,n)}}resolveForEachPartOfTokenWithBrackets(e,t,r,s,n){if(!l(n))return"length"===s||'"length"'===s||"'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){if("length"in t){let e=t.length;return"object"==typeof e&&null!==e?Object.keys(t).length:e}return Object.keys(t).length}throw new eZ(e,H.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,H.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('"')||s.startsWith("'")){let t=s[0];if(!s.endsWith(t)||1==s.length)throw new eZ(e,H.format("$ is missing a closing quote or empty key found",e));s=s.substring(1,s.length-1)}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,H.format("Unable to retrieve $ from $ in the path $",t[r],s.toString(),e))}}class e1 extends e0{constructor(e,t){super(),this.store=e,this.prefix=t}getValueInternal(e){let t=e0.splitPath(e);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=ev(this.store),this.modifyStore(e,t,r,s)}modifyStore(e,t,r,s){let n=e0.splitPath(e);if(n.length<2)throw new k(H.format("Invalid path: $",e));let a=this.store;for(let e=1;e<n.length-1;e++){let t=n[e],r=n[e+1],s=this.parseBracketSegments(t);for(let t=0;t<s.length;t++){let i=s[t],o=e===n.length-2&&t===s.length-1?this.getOpForSegment(n[n.length-1]):this.getOpForSegment(r);a=this.isArrayIndex(i)?this.getDataFromArray(a,i,o):this.getDataFromObject(a,this.stripQuotes(i),o)}}let i=n[n.length-1],o=this.parseBracketSegments(i);for(let e=0;e<o.length-1;e++){let t=o[e],r=this.isArrayIndex(o[e+1])?ez.ARRAY_OPERATOR:ez.OBJECT_OPERATOR;a=this.isArrayIndex(t)?this.getDataFromArray(a,t,r):this.getDataFromObject(a,this.stripQuotes(t),r)}let E=o[o.length-1];this.isArrayIndex(E)?this.putDataInArray(a,E,t,r,s):this.putDataInObject(a,this.stripQuotes(E),t,r,s)}parseBracketSegments(e){let t=[],r=0,s=0;for(;s<e.length;)if("["===e[s]){s>r&&t.push(e.substring(r,s));let n=s+1,a=!1,i="";for(;n<e.length;){if(a)e[n]===i&&"\\"!==e[n-1]&&(a=!1);else if('"'===e[n]||"'"===e[n])a=!0,i=e[n];else if("]"===e[n])break;n++}t.push(e.substring(s+1,n)),s=r=n+1}else s++;return r<e.length&&t.push(e.substring(r)),t.length>0?t:[e]}isArrayIndex(e){return/^-?\d+$/.test(e)}stripQuotes(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.substring(1,e.length-1):e}getOpForSegment(e){return this.isArrayIndex(e)||e.startsWith("[")?ez.ARRAY_OPERATOR:ez.OBJECT_OPERATOR}getDataFromArray(e,t,r){if(!Array.isArray(e))throw new k(H.format("Expected an array but found $",e));let s=parseInt(t);if(isNaN(s))throw new k(H.format("Expected an array index but found $",t));if(s<0)throw new k(H.format("Array index is out of bound - $",t));let n=e[s];return l(n)&&(n=r==ez.OBJECT_OPERATOR?{}:[],e[s]=n),n}getDataFromObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new k(H.format("Expected an object but found $",e));let s=e[t];return l(s)&&(s=r==ez.OBJECT_OPERATOR?{}:[],e[t]=s),s}putDataInArray(e,t,r,s,n){if(!Array.isArray(e))throw new k(H.format("Expected an array but found $",e));let a=parseInt(t);if(isNaN(a))throw new k(H.format("Expected an array index but found $",t));if(a<0)throw new k(H.format("Array index is out of bound - $",t));(s||l(e[a]))&&(n&&l(r)?e.splice(a,1):e[a]=r)}putDataInObject(e,t,r,s,n){if(Array.isArray(e)||"object"!=typeof e)throw new k(H.format("Expected an object but found $",e));(s||l(e[t]))&&(n&&l(r)?delete e[t]:e[t]=r)}getPrefix(){return this.prefix}}class e2 extends eM{constructor(){super("Sort",[e2.PARAMETER_ARRAY_SOURCE,e2.PARAMETER_INT_FIND_FROM,e2.PARAMETER_INT_LENGTH,e2.PARAMETER_BOOLEAN_ASCENDING,e2.PARAMETER_KEY_PATH],e2.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(e2.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e2.PARAMETER_INT_FIND_FROM.getParameterName()),s=e?.getArguments()?.get(e2.PARAMETER_INT_LENGTH.getParameterName()),n=e?.getArguments()?.get(e2.PARAMETER_BOOLEAN_ASCENDING.getParameterName()),a=e?.getArguments()?.get(e2.PARAMETER_KEY_PATH.getParameterName());if(0==t.length)return new F([B.outputOf(new Map([[eM.EVENT_RESULT_NAME,t]]))]);if(t=[...t],-1==s&&(s=t.length-r),r<0||r>=t.length||r+s>t.length)throw new k("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 e1({},"Data.");return i.sort((e,t)=>"object"==typeof e&&"object"==typeof t&&a.length?(o.setStore({a:e,b:t}),e5(o.getValue("Data.a."+a),o.getValue("Data.b."+a),n)):e5(e,t,n)),t.splice(r,s,...i),new F([B.outputOf(new Map([[eM.EVENT_RESULT_NAME,t]]))])}}function e5(e,t,r){return e===t?0:null===e?1:null===t?-1:r?e<t?-1:1:e<t?1:-1}class e7 extends eM{constructor(){super("SubArray",[e7.PARAMETER_ARRAY_SOURCE,e7.PARAMETER_INT_FIND_FROM,e7.PARAMETER_INT_LENGTH],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());if(-1==s&&(s=t.length-r),s<=0)return new F([B.outputOf(new Map([]))]);if(!(r>=0&&r<t.length)||r+s>t.length)throw new k("Given find from point is more than the source size array or the Requested length for the subarray was more than the source size");let n=t.slice(r,r+s);return new F([B.outputOf(new Map([[e7.EVENT_RESULT_NAME,n]]))])}}class e9 extends eM{constructor(){super("Insert",[e9.PARAMETER_ARRAY_SOURCE,e9.PARAMETER_INT_OFFSET,e9.PARAMETER_ANY],e9.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(e9.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e9.PARAMETER_INT_OFFSET.getParameterName());var s=e?.getArguments()?.get(e9.PARAMETER_ANY.getParameterName());if(l(s)||l(r)||r>t.length)throw new k("Please valid resouces to insert at the correct location");if(0==(t=[...t]).length)return 0==r&&t.push(s),new F([B.outputOf(new Map([[eM.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([B.outputOf(new Map([[eM.EVENT_RESULT_NAME,t]]))])}}class e4 extends eM{constructor(){super("InsertLast",[e4.PARAMETER_ARRAY_SOURCE,e4.PARAMETER_ANY],e4.EVENT_RESULT_ARRAY)}async internalExecute(e){let t=e?.getArguments()?.get(e4.PARAMETER_ARRAY_SOURCE.getParameterName());var r=e?.getArguments()?.get(e4.PARAMETER_ANY.getParameterName());return(t=[...t]).push(r),new F([B.outputOf(new Map([[eM.EVENT_RESULT_NAME,t]]))])}}class e6 extends eM{constructor(){super("RemoveDuplicates",[e6.PARAMETER_ARRAY_SOURCE,e6.PARAMETER_INT_SOURCE_FROM,e6.PARAMETER_INT_LENGTH],e6.EVENT_RESULT_ARRAY)}async internalExecute(e){var t=e?.getArguments()?.get(e6.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e6.PARAMETER_INT_SOURCE_FROM.getParameterName()),s=e?.getArguments()?.get(e6.PARAMETER_INT_LENGTH.getParameterName());if(-1==s&&(s=t.length-r),r+s>t.length)throw new k(H.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(X(n[e],n[t])){n.splice(e,1);break}return new F([B.outputOf(V.of(e6.EVENT_RESULT_NAME,n))])}}let e3="keyPath",e8="valuePath",te="ignoreNullValues",tt="ignoreNullKeys",tr="ignoreDuplicateKeys";class ts extends eM{constructor(){super("ArrayToObjects",[eM.PARAMETER_ARRAY_SOURCE,b.of(e3,y.ofString(e3)),b.of(e8,y.of(e8,c.STRING,c.NULL)),b.of(te,y.ofBoolean(te).setDefaultValue(!1)),b.of(tt,y.ofBoolean(tt).setDefaultValue(!0)),b.of(tr,y.ofBoolean(tr).setDefaultValue(!1))],eM.EVENT_RESULT_ANY)}async internalExecute(e){let t=e?.getArguments()?.get(eM.PARAMETER_ARRAY_SOURCE.getParameterName()),r=e?.getArguments()?.get(e3),s=e?.getArguments()?.get(e8)??"",n=e?.getArguments()?.get(te),a=e?.getArguments()?.get(tt),i=e?.getArguments()?.get(tr),o=new e1({},"Data."),E=t.filter(e=>!l(e)).reduce((e,t)=>{o.setStore(t);let E=o.getValue("Data."+r);if(a&&l(E))return e;let u=s?o.getValue("Data."+s):t;return n&&l(u)||i&&e.hasOwnProperty(E)||(e[E]=u),e},{});return new F([B.outputOf(new Map([[eM.EVENT_RESULT_NAME,E]]))])}}let tn="source",ta="delimiter",ti="result";class to extends e_{getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(tn),r=e?.getArguments()?.get(ta);return new F([B.outputOf(new Map([[ti,t.join(r)]]))])}constructor(...e){super(...e),this.signature=new Y("Join").setNamespace(h.SYSTEM_ARRAY).setParameters(new Map([[tn,new b(tn,y.ofArray(tn,y.of("each",c.STRING,c.INTEGER,c.LONG,c.DOUBLE,c.FLOAT,c.NULL)))],[ta,new b(ta,y.ofString(ta).setDefaultValue(""))]])).setEvents(new Map([$.outputEventMapEntry(new Map([[ti,y.ofString(ti)]]))]))}}class tE{async find(e,t){return e!=h.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=V.ofArrayEntries(G(new eS),G(new eO),G(new ey),G(new eL),G(new eb),G(new eU),G(new eV),G(new eC),G(new eD),G(new eG),G(new e$),G(new eB),G(new ek),G(new eF),G(new eY),G(new eH),G(new eW),G(new ej),G(new eX),G(new eJ),G(new eq),G(new eK),G(new eQ),G(new e2),G(new e7),G(new eI),G(new e9),G(new e4),G(new e6),G(new ts),G(new to)),this.filterableNames=Array.from(this.repoMap.values()).map(e=>e.getSignature().getFullName())}}t({},"ContextElement",()=>tu);class tu{static{this.NULL=new tu(y.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 tA="name",th="schema";class tl extends e_{getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(tA);if(e?.getContext()?.has(t))throw new k(H.format("Context already has an element for '$' ",t));let r=y.from(e?.getArguments()?.get(th));if(!r)throw new k("Schema is not supplied.");return e.getContext().set(t,new tu(r,l(r.getDefaultValue())?void 0:r.getDefaultValue())),new F([B.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new Y("Create").setNamespace(h.SYSTEM_CTX).setParameters(new Map([b.ofEntry(tA,new y().setName(tA).setType(m.of(c.STRING)).setMinLength(1).setFormat(eo.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,L.CONSTANT),b.ofEntry(th,y.SCHEMA,!1,L.CONSTANT)])).setEvents(new Map([$.outputEventMapEntry(new Map)]))}}let tT="name",tc="value";class tg extends e_{getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(tT);if(!e.getContext()?.has(t))throw new k(H.format("Context don't have an element for '$' ",t));return new F([B.outputOf(new Map([tc,e.getContext()?.get(t)?.getElement()]))])}constructor(...e){super(...e),this.signature=new Y("Get").setNamespace(h.SYSTEM_CTX).setParameters(new Map([b.ofEntry(tT,new y().setName(tT).setType(m.of(c.STRING)).setMinLength(1).setFormat(eo.REGEX).setPattern("^[a-zA-Z_$][a-zA-Z_$0-9]*$"),!1,L.CONSTANT)])).setEvents(new Map([$.outputEventMapEntry(new Map([[tc,y.ofAny(tc)]]))]))}}t({},"ExpressionEvaluator",()=>rP),t({},"Expression",()=>tS),t({},"StringBuilder",()=>tp);class tp{constructor(e){this.str=e??""}append(e){return this.str+=e,this}toString(){return""+this.str}trim(){return this.str=this.str.trim(),this}setLength(e){return this.str=this.str.substring(0,e),this}length(){return this.str.length}charAt(e){return this.str.charAt(e)}deleteCharAt(e){return this.checkIndex(e),this.str=this.str.substring(0,e)+this.str.substring(e+1),this}insert(e,t){return this.str=this.str.substring(0,e)+t+this.str.substring(e),this}checkIndex(e){if(e>=this.str.length)throw new k(`Index ${e} is greater than or equal to ${this.str.length}`)}substring(e,t){return this.str.substring(e,t)}}t({},"ExpressionToken",()=>tR);class tR{constructor(e){this.expression=e}getExpression(){return this.expression}toString(){return this.expression}}t({},"ExpressionTokenValue",()=>tm);class tm extends tR{constructor(e,t){super(e),this.element=t}getTokenValue(){return this.element}getElement(){return this.element}toString(){return H.format("$: $",this.expression,this.element)}}var tf=((o={}).IDENTIFIER="IDENTIFIER",o.NUMBER="NUMBER",o.STRING="STRING",o.OPERATOR="OPERATOR",o.LEFT_PAREN="LEFT_PAREN",o.RIGHT_PAREN="RIGHT_PAREN",o.LEFT_BRACKET="LEFT_BRACKET",o.RIGHT_BRACKET="RIGHT_BRACKET",o.DOT="DOT",o.QUESTION="QUESTION",o.COLON="COLON",o.WHITESPACE="WHITESPACE",o.EOF="EOF",o);class tN{constructor(e,t,r,s){this.type=e,this.value=t,this.startPos=r,this.endPos=s}toString(){return`Token(${this.type}, "${this.value}", ${this.startPos}-${this.endPos})`}}class t_{constructor(e){this.pos=0,this.input=e,this.length=e.length}getPosition(){return this.pos}peek(){let e=this.pos,t=this.nextToken();return this.pos=e,t}nextToken(){if(this.pos>=this.length)return new tN("EOF","",this.pos,this.pos);for(;this.pos<this.length&&this.isWhitespace(this.input[this.pos]);)this.pos++;if(this.pos>=this.length)return new tN("EOF","",this.pos,this.pos);let e=this.pos,t=this.input[this.pos];if('"'===t||"'"===t)return this.readStringLiteral(t,e);if(this.isDigit(t))return this.readNumber(e);switch(t){case"(":return this.pos++,new tN("LEFT_PAREN","(",e,this.pos);case")":return this.pos++,new tN("RIGHT_PAREN",")",e,this.pos);case"[":return this.pos++,new tN("LEFT_BRACKET","[",e,this.pos);case"]":return this.pos++,new tN("RIGHT_BRACKET","]",e,this.pos);case".":if(this.pos+1<this.length&&"."===this.input[this.pos+1])return this.pos+=2,new tN("OPERATOR","..",e,this.pos);return this.pos++,new tN("DOT",".",e,this.pos);case"?":return this.pos++,new tN("QUESTION","?",e,this.pos);case":":return this.pos++,new tN("COLON",":",e,this.pos)}let r=this.readOperator(e);return r||this.readIdentifier(e)}readStringLiteral(e,t){this.pos++;let r="",s=!1;for(;this.pos<this.length;){let n=this.input[this.pos];if(s){r+=n,s=!1,this.pos++;continue}if("\\"===n){s=!0,r+=n,this.pos++;continue}if(n===e)return this.pos++,new tN("STRING",e+r+e,t,this.pos);r+=n,this.pos++}throw new eZ(this.input,`Missing string ending marker ${e}`)}readNumber(e){let t="",r=!1;for(;this.pos<this.length;){let e=this.input[this.pos];if(this.isDigit(e))t+=e,this.pos++;else if("."===e&&!r&&this.pos+1<this.length&&this.isDigit(this.input[this.pos+1]))t+=e,r=!0,this.pos++;else break}return new tN("NUMBER",t,e,this.pos)}readOperator(e){for(let t of[">>>","<<",">>","<=",">=","!=","==","//","+","-","*","/","%","=","<",">","&","|","^","~"])if(this.pos+t.length<=this.length&&this.input.substring(this.pos,this.pos+t.length)===t)return this.pos+=t.length,new tN("OPERATOR",t,e,this.pos);return null}readIdentifier(e){let t="";for(;this.pos<this.length;){let e=this.input[this.pos];if("["===e)if(this.isStaticBracketContent()){t+=this.readStaticBracketContent();continue}else break;if(!this.isIdentifierChar(e))break;t+=e,this.pos++}if(0===t.length)throw new eZ(this.input,`Unexpected character: ${this.input[this.pos]}`);return["and","or","not"].includes(t.toLowerCase())?new tN("OPERATOR",t.toLowerCase(),e,this.pos):new tN("IDENTIFIER",t,e,this.pos)}isStaticBracketContent(){let e=this.pos+1;for(;e<this.length&&this.isWhitespace(this.input[e]);)e++;if(e>=this.length)return!1;let t=this.input[e];if('"'===t||"'"===t)return!0;if(this.isDigit(t)||"-"===t&&e+1<this.length&&this.isDigit(this.input[e+1])){let t=e;for("-"===this.input[t]&&t++;t<this.length&&(this.isDigit(this.input[t])||"."===this.input[t]);){if("."===this.input[t]&&t+1<this.length&&"."===this.input[t+1])return!0;t++}for(;t<this.length&&this.isWhitespace(this.input[t]);)t++;if(t<this.length&&("]"===this.input[t]||"."===this.input[t]&&t+1<this.length&&"."===this.input[t+1]))return!0}return!1}readStaticBracketContent(){let e="[";this.pos++;let t=1;for(;this.pos<this.length&&t>0;){let r=this.input[this.pos];if(e+=r,this.pos++,"["===r)t++;else if("]"===r)t--;else if('"'===r||"'"===r)for(;this.pos<this.length;){let t=this.input[this.pos];if(e+=t,this.pos++,t===r&&this.pos>1&&"\\"!==this.input[this.pos-2])break}}return e}isOperatorChar(e){return["+","-","*","/","%","=","!","<",">","&","|","?",":","(",")",";",","].includes(e)}isDigit(e){return e>="0"&&e<="9"}isWhitespace(e){return" "===e||" "===e||"\n"===e||"\r"===e}isIdentifierChar(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e>="0"&&e<="9"||"_"===e}}class tM{constructor(e){this.currentToken=null,this.previousTokenValue=null,this.lexer=new t_(e),this.currentToken=this.lexer.nextToken()}parse(){if(!this.currentToken)throw new eZ("","Empty expression");let e=this.parseExpression();if(this.currentToken&&this.currentToken.type!==tf.EOF)throw new eZ(this.lexer.getPosition().toString(),`Unexpected token: ${this.currentToken.value} at position ${this.currentToken.startPos}`);return e}parseExpression(){return this.parseTernary()}parseTernary(){let e=this.parseLogicalOr();if(this.matchToken(tf.QUESTION)){let t=this.parseTernary();this.expectToken(tf.COLON);let r=this.parseTernary();return tS.createTernary(e,t,r)}return e}parseLogicalOr(){let e=this.parseLogicalAnd();for(;this.matchOperator("or");)e=new tS("",e,this.parseLogicalAnd(),ez.OR);return e}parseLogicalAnd(){let e=this.parseLogicalNot();for(;this.matchOperator("and");)e=new tS("",e,this.parseLogicalNot(),ez.AND);return e}parseLogicalNot(){return this.matchOperator("not")?new tS("",this.parseLogicalNot(),void 0,ez.UNARY_LOGICAL_NOT):this.parseComparison()}parseComparison(){let e=this.parseBitwiseOr();for(;;){let t=null;if(this.matchOperator("<"))t=ez.LESS_THAN;else if(this.matchOperator("<="))t=ez.LESS_THAN_EQUAL;else if(this.matchOperator(">"))t=ez.GREATER_THAN;else if(this.matchOperator(">="))t=ez.GREATER_THAN_EQUAL;else if(this.matchOperator("="))t=ez.EQUAL;else if(this.matchOperator("!="))t=ez.NOT_EQUAL;else break;e=new tS("",e,this.parseBitwiseOr(),t)}return e}parseBitwiseOr(){let e=this.parseBitwiseXor();for(;this.matchOperator("|");)e=new tS("",e,this.parseBitwiseXor(),ez.BITWISE_OR);return e}parseBitwiseXor(){let e=this.parseBitwiseAnd();for(;this.matchOperator("^");)e=new tS("",e,this.parseBitwiseAnd(),ez.BITWISE_XOR);return e}parseBitwiseAnd(){let e=this.parseShift();for(;this.matchOperator("&");)e=new tS("",e,this.parseShift(),ez.BITWISE_AND);return e}parseShift(){let e=this.parseAdditive();for(;;){let t=null;if(this.matchOperator("<<"))t=ez.BITWISE_LEFT_SHIFT;else if(this.matchOperator(">>"))t=ez.BITWISE_RIGHT_SHIFT;else if(this.matchOperator(">>>"))t=ez.BITWISE_UNSIGNED_RIGHT_SHIFT;else break;e=new tS("",e,this.parseAdditive(),t)}return e}parseAdditive(){let e=this.parseMultiplicative();for(;;){let t=null;if(this.matchOperator("+"))t=ez.ADDITION;else if(this.matchOperator("-"))t=ez.SUBTRACTION;else break;e=new tS("",e,this.parseMultiplicative(),t)}return e}parseMultiplicative(){let e=this.parseUnary();return this.matchOperator("*")?new tS("",e,this.parseMultiplicative(),ez.MULTIPLICATION):this.matchOperator("/")?new tS("",e,this.parseMultiplicative(),ez.DIVISION):this.matchOperator("//")?new tS("",e,this.parseMultiplicative(),ez.INTEGER_DIVISION):this.matchOperator("%")?new tS("",e,this.parseMultiplicative(),ez.MOD):e}parseUnary(){return this.matchOperator("+")?new tS("",this.parseUnary(),void 0,ez.UNARY_PLUS):this.matchOperator("-")?new tS("",this.parseUnary(),void 0,ez.UNARY_MINUS):this.matchOperator("~")?new tS("",this.parseUnary(),void 0,ez.UNARY_BITWISE_COMPLEMENT):this.parsePostfix()}parsePostfix(){let e=this.parsePrimary();for(;;)if(this.matchToken(tf.DOT)){e=new tS("",e,this.parsePostfixRightSide(),ez.OBJECT_OPERATOR);continue}else if(this.matchToken(tf.LEFT_BRACKET)){let t=this.parseBracketContent();this.expectToken(tf.RIGHT_BRACKET),e=new tS("",e,t,ez.ARRAY_OPERATOR)}else if(this.matchOperator(".."))e=new tS("",e,this.parsePrimary(),ez.ARRAY_RANGE_INDEX_OPERATOR);else break;return e}parsePostfixRightSide(){let e;if(!this.currentToken||this.currentToken.type!==tf.IDENTIFIER)throw new eZ(this.lexer.getPosition().toString(),"Expected identifier after dot");let t=this.currentToken.value;for(this.advance(),e=-1===t.indexOf("[")?tS.createLeaf(t):this.parseStaticBracketIdentifier(t);this.matchToken(tf.LEFT_BRACKET);){let t=this.parseBracketContent();this.expectToken(tf.RIGHT_BRACKET),e=new tS("",e,t,ez.ARRAY_OPERATOR)}for(;this.matchToken(tf.DOT);)e=new tS("",e,this.parsePostfixRightSide(),ez.OBJECT_OPERATOR);return e}parseStaticBracketIdentifier(e){let t=e.indexOf("["),r=e.substring(0,t),s=tS.createLeaf(r),n=e.substring(t),a=0;for(;a<n.length&&"["===n[a];){let e,t=1,r=a+1,i=!1,o="";for(;r<n.length&&t>0;){let e=n[r];i?e===o&&(0===r||"\\"!==n[r-1])&&(i=!1):'"'===e||"'"===e?(i=!0,o=e):"["===e?t++:"]"===e&&t--,r++}let E=n.substring(a+1,r-1);if(E.startsWith('"')&&E.endsWith('"')||E.startsWith("'")&&E.endsWith("'")){let t=E[0],r=E.substring(1,E.length-1);e=new tS("",new tm(t+r+t,r),void 0,void 0)}else{let t=E.indexOf("..");if(-1!==t){let r=0===t?tS.createLeaf("0"):tS.createLeaf(E.substring(0,t)),s=t===E.length-2?tS.createLeaf(""):tS.createLeaf(E.substring(t+2));e=new tS("",r,s,ez.ARRAY_RANGE_INDEX_OPERATOR)}else e=tS.createLeaf(E)}s=new tS("",s,e,ez.ARRAY_OPERATOR),a=r}return s}parseIdentifierPath(){if(!this.currentToken||this.currentToken.type!==tf.IDENTIFIER)throw new eZ(this.lexer.getPosition().toString(),"Expected identifier");let e=this.currentToken.value;return this.advance(),tS.createLeaf(e)}parseBracketContent(){if(this.currentToken&&this.currentToken.type===tf.STRING){let e=this.currentToken;this.advance();let t=e.value.substring(1,e.value.length-1);return new tS("",new tm(e.value,t),void 0,void 0)}return this.parseExpression()}parsePrimary(){if(this.matchToken(tf.NUMBER))return new tS("",new tR(this.previousToken().value),void 0,void 0);if(this.matchToken(tf.STRING)){let e=this.previousToken(),t=e.value.substring(1,e.value.length-1);return new tS("",new tm(e.value,t),void 0,void 0)}if(this.currentToken&&this.currentToken.type===tf.IDENTIFIER)return this.parseIdentifierPath();if(this.matchToken(tf.LEFT_PAREN)){let e=this.parseExpression();return this.expectToken(tf.RIGHT_PAREN),e}if(this.matchOperator("??")){let e=this.parsePrimary();return new tS("",this.parsePrimary(),e,ez.NULLISH_COALESCING_OPERATOR)}throw new eZ(this.lexer.getPosition().toString(),`Unexpected token: ${this.currentToken?.value||"EOF"} at position ${this.currentToken?.startPos||this.lexer.getPosition()}`)}matchToken(e){return!!this.currentToken&&this.currentToken.type===e&&(this.advance(),!0)}matchOperator(e){return!!this.currentToken&&this.currentToken.type===tf.OPERATOR&&this.currentToken.value===e&&(this.advance(),!0)}expectToken(e){if(!this.currentToken||this.currentToken.type!==e)throw new eZ(this.lexer.getPosition().toString(),`Expected ${e}, got ${this.currentToken?.type||"EOF"}`);let t=this.currentToken;return this.advance(),t}advance(){this.previousTokenValue=this.currentToken,this.currentToken=this.lexer.nextToken()}previousToken(){return this.previousTokenValue}}class tS extends tR{static createTernary(e,t,r){let s=new tS("",void 0,void 0,void 0,!0);return s.tokens.push(e),s.tokens.push(t),s.tokens.push(r),s.ops.push(ez.CONDITIONAL_TERNARY_OPERATOR),s}static createLeaf(e){let t=new tS("",void 0,void 0,void 0,!0);return t.expression=e,t.tokens.push(new tR(e)),t}constructor(e,t,r,s,n){if(super(e||""),this.tokens=new W,this.ops=new W,n)return;if(void 0!==t||void 0!==r||void 0!==s){s?.getOperator()==".."&&(t?r||(r=new tm("","")):t=new tm("","")),t&&this.tokens.push(t),r&&this.tokens.push(r),s&&this.ops.push(s);return}if(e&&e.trim().length>0)try{let t=new tM(e).parse();this.tokens=t.getTokens(),this.ops=t.getOperations(),this.cachedTokensArray=void 0,this.cachedOpsArray=void 0}catch(e){this.evaluate(),this.ops.isEmpty()||".."!=this.ops.peekLast().getOperator()||1!=this.tokens.length||this.tokens.push(new tR(""))}}getTokens(){return this.tokens}getOperations(){return this.ops}getTokensArray(){return this.cachedTokensArray||(this.cachedTokensArray=this.tokens.toArray()),this.cachedTokensArray}getOperationsArray(){return this.cachedOpsArray||(this.cachedOpsArray=this.ops.toArray()),this.cachedOpsArray}evaluate(){let e,t=this.expression.length,r="",s=new tp(""),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'"':if(a&&this.ops.peek()==ez.ARRAY_OPERATOR){let e=this.process(t,s,n);n=e.getT1(),a=e.getT2()}else{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()==ez.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()==ez.ARRAY_OPERATOR&&(n=(i=this.process(t,s,n)).getT1(),a=i.getT2())}++n}if(e=s.toString(),!J.isNullOrBlank(e))if(ez.OPERATORS.has(e))throw new eZ(this.expression,"Expression is ending with an operator");else this.tokens.push(new tR(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 K(n,!1);return this.tokens.push(new tm(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 tS(t.toString())),t.setLength(0),new K(r,!1)}processOthers(e,t,r,s,n,a){let i=t-n;i=i<ez.BIGGEST_OPERATOR_SIZE?i:ez.BIGGEST_OPERATOR_SIZE;for(let e=i;e>0;e--){let t=this.expression.substring(n,n+e);if(ez.OPERATORS_WITHOUT_SPACE_WRAP.has(t))return J.isNullOrBlank(s)?".."==t&&this.tokens.isEmpty()&&(this.tokens.push(new tR("0")),a=!1):(this.tokens.push(new tR(s)),a=!1),this.checkUnaryOperator(this.tokens,this.ops,ez.OPERATION_VALUE_OF.get(t),a),a=!0,r.setLength(0),new K(n+e-1,a)}return r.append(e),new K(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 tS(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(ez.CONDITIONAL_TERNARY_OPERATOR,this.ops.peek());){let e=this.ops.pop();if(ez.UNARY_OPERATORS.has(e)){let t=this.tokens.pop();this.tokens.push(new tS("",t,void 0,e))}else{let t=this.tokens.pop(),r=this.tokens.pop();this.tokens.push(new tS("",r,t,e))}}this.ops.push(ez.CONDITIONAL_TERNARY_OPERATOR),this.tokens.push(new tS(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 tS(E)),e-1}processSubExpression(e,t,r,s,n){if(ez.OPERATORS.has(r))this.checkUnaryOperator(this.tokens,this.ops,ez.OPERATION_VALUE_OF.get(r),n),t.setLength(0);else if(!J.isNullOrBlank(r))throw new eZ(this.expression,H.format("Unkown token : $ found.",r));let a=1,i=new tp,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&&this.hasMatchingOuterParentheses(i.toString());)i.deleteCharAt(0),i.setLength(i.length()-1);return this.tokens.push(new tS(i.toString().trim())),s}processTokenSepearator(e,t,r){return J.isNullOrBlank(t)||(ez.OPERATORS.has(t)?(this.checkUnaryOperator(this.tokens,this.ops,ez.OPERATION_VALUE_OF.get(t),r),r=!0):(this.tokens.push(new tR(t)),r=!1)),e.setLength(0),r}checkUnaryOperator(e,t,r,s){if(r)if(s||e.isEmpty())if(ez.UNARY_OPERATORS.has(r)){let e=ez.UNARY_MAP.get(r);e&&t.push(e)}else throw new eZ(this.expression,H.format("Extra operator $ found.",r));else{for(;!t.isEmpty()&&this.hasPrecedence(r,t.peek());){let r=t.pop();if(ez.UNARY_OPERATORS.has(r)){let t=e.pop();e.push(new tS("",t,void 0,r))}else{let t=e.pop(),s=e.pop();e.push(new tS("",s,t,r))}}t.push(r)}}hasPrecedence(e,t){let r=ez.OPERATOR_PRIORITY.get(e),s=ez.OPERATOR_PRIORITY.get(t);if(!r||!s)throw Error("Unknown operators provided");return s===r?t!==ez.OBJECT_OPERATOR&&t!==ez.ARRAY_OPERATOR&&e!==ez.OBJECT_OPERATOR&&e!==ez.ARRAY_OPERATOR:s<r}hasMatchingOuterParentheses(e){if(e.length<2||"("!==e.charAt(0)||")"!==e.charAt(e.length-1))return!1;let t=0;for(let r=0;r<e.length-1;r++){let s=e.charAt(r);if("("===s?t++:")"===s&&t--,0===t)return!1}return 1===t}toString(){if(this.ops.isEmpty())return 1==this.tokens.size()?this.tokenToString(this.tokens.get(0)):this.expression&&this.expression.length>0?this.expression:"Error: No tokens";let e=this.ops.get(0);return e.getOperator().startsWith("UN: ")?this.formatUnaryOperation(e):e==ez.CONDITIONAL_TERNARY_OPERATOR?this.formatTernaryOperation():this.formatBinaryOperation(e)}formatUnaryOperation(e){let t=this.tokens.get(0),r=this.tokenToString(t);return"("+e.getOperator().substring(4)+r+")"}formatTernaryOperation(){let e=this.tokens.get(0),t=this.tokens.get(1),r=this.tokens.get(2),s=this.tokenToString(r);return"("+s+"?"+this.tokenToString(t)+":"+this.tokenToString(e)+")"}formatBinaryOperation(e){if(2>this.tokens.size())return this.expression&&this.expression.length>0?this.expression:1===this.tokens.size()?this.tokenToString(this.tokens.get(0)):"Error: Invalid binary expression";let t=this.tokens.get(0),r=this.tokens.get(1);if(e==ez.ARRAY_OPERATOR)return this.tokenToString(r)+"["+this.formatArrayIndex(t)+"]";if(e==ez.OBJECT_OPERATOR){let e=this.tokenToString(r),s=this.tokenToString(t);if(t instanceof tS){let r=t.getOperations();if(!r.isEmpty()&&r.get(0)==ez.ARRAY_OPERATOR)return"("+e+".("+s+"))"}return"("+e+"."+s+")"}if(e==ez.ARRAY_RANGE_INDEX_OPERATOR)return"("+this.tokenToString(r)+".."+this.tokenToString(t)+")";let s=this.tokenToString(r),n=this.tokenToString(t);return"("+s+e.getOperator()+n+")"}tokenToString(e){if(e instanceof tS)return e.toString();if(e&&"function"==typeof e.getExpression&&"function"==typeof e.getTokenValue){let t=e.getExpression();if(t&&(t.startsWith('"')||t.startsWith("'")))return t}return e.toString()}formatArrayIndex(e){if(e instanceof tS){if(e.getOperations().isEmpty()&&1==e.getTokens().size()){let t=e.getTokens().get(0);if(t&&"function"==typeof t.getExpression){let e=t.getExpression();if(e&&(e.startsWith('"')||e.startsWith("'")))return e}}return e.toString()}if(e&&"function"==typeof e.getExpression){let t=e.getExpression();if(t&&(t.startsWith('"')||t.startsWith("'")))return t}return e.toString()}tokenHasOperations(e){return e instanceof tS&&!e.getOperations().isEmpty()}equals(e){return this.expression==e.expression}}var tO={},td={};t(td,"ArithmeticAdditionOperator",()=>tP);var tI={};t(tI,"BinaryOperator",()=>tw);class tw{nullCheck(e,t,r){if(l(e)||l(t))throw new ew(H.format("$ cannot be applied to a null value",r.getOperatorName()))}}class tP extends tw{apply(e,t){return l(e)?t:l(t)?e:e+t}}var ty={};t(ty,"ArithmeticDivisionOperator",()=>tx);class tx extends tw{apply(e,t){return this.nullCheck(e,t,ez.DIVISION),e/t}}var tL={};t(tL,"ArithmeticIntegerDivisionOperator",()=>tv);class tv extends tw{apply(e,t){return this.nullCheck(e,t,ez.DIVISION),Math.floor(e/t)}}var tb={};t(tb,"ArithmeticModulusOperator",()=>tU);class tU extends tw{apply(e,t){return this.nullCheck(e,t,ez.MOD),e%t}}var tV={};t(tV,"ArithmeticMultiplicationOperator",()=>tC);class tC extends tw{apply(e,t){this.nullCheck(e,t,ez.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 tD={};t(tD,"ArithmeticSubtractionOperator",()=>tG);class tG extends tw{apply(e,t){return this.nullCheck(e,t,ez.SUBTRACTION),e-t}}var t$={};t(t$,"ArrayOperator",()=>tB);class tB extends tw{apply(e,t){if(!e)throw new ew("Cannot apply array operator on a null value");if(!t)throw new ew("Cannot retrive null index value");if(!Array.isArray(e)&&"string"!=typeof e)throw new ew(H.format("Cannot retrieve value from a primitive value $",e));if(t>=e.length)throw new ew(H.format("Cannot retrieve index $ from the array of length $",t,e.length));return e[t]}}var tk={};t(tk,"BitwiseAndOperator",()=>tF);class tF extends tw{apply(e,t){return this.nullCheck(e,t,ez.BITWISE_AND),e&t}}var tY={};t(tY,"BitwiseLeftShiftOperator",()=>tH);class tH extends tw{apply(e,t){return this.nullCheck(e,t,ez.BITWISE_LEFT_SHIFT),e<<t}}var tW={};t(tW,"BitwiseOrOperator",()=>tj);class tj extends tw{apply(e,t){return this.nullCheck(e,t,ez.BITWISE_OR),e|t}}var tX={};t(tX,"BitwiseRightShiftOperator",()=>tJ);class tJ extends tw{apply(e,t){return this.nullCheck(e,t,ez.BITWISE_RIGHT_SHIFT),e>>t}}var tq={};t(tq,"BitwiseUnsignedRightShiftOperator",()=>tK);class tK extends tw{apply(e,t){return this.nullCheck(e,t,ez.BITWISE_UNSIGNED_RIGHT_SHIFT),e>>>t}}var tQ={};t(tQ,"BitwiseXorOperator",()=>tz);class tz extends tw{apply(e,t){return this.nullCheck(e,t,ez.BITWISE_XOR),e^t}}var tZ={};t(tZ,"LogicalAndOperator",()=>t0);class t0 extends tw{apply(e,t){return!!e&&""!==e&&!!t&&""!==t}}var t1={};t(t1,"LogicalEqualOperator",()=>t2);class t2 extends tw{apply(e,t){return X(e,t)}}var t5={};t(t5,"LogicalGreaterThanEqualOperator",()=>t7);class t7 extends tw{apply(e,t){let r=eP.findPrimitiveNullAsBoolean(e),s=eP.findPrimitiveNullAsBoolean(t);if(r.getT1()==c.BOOLEAN||s.getT1()==c.BOOLEAN)throw new ew(H.format("Cannot compare >= with the values $ and $",r.getT2(),s.getT2()));return r.getT2()>=s.getT2()}}var t9={};t(t9,"LogicalGreaterThanOperator",()=>t4);class t4 extends tw{apply(e,t){let r=eP.findPrimitiveNullAsBoolean(e),s=eP.findPrimitiveNullAsBoolean(t);if(r.getT1()==c.BOOLEAN||s.getT1()==c.BOOLEAN)throw new ew(H.format("Cannot compare > with the values $ and $",r.getT2(),s.getT2()));return r.getT2()>s.getT2()}}var t6={};t(t6,"LogicalLessThanEqualOperator",()=>t3);class t3 extends tw{apply(e,t){let r=eP.findPrimitiveNullAsBoolean(e),s=eP.findPrimitiveNullAsBoolean(t);if(r.getT1()==c.BOOLEAN||s.getT1()==c.BOOLEAN)throw new ew(H.format("Cannot compare <= with the values $ and $",r.getT2(),s.getT2()));return r.getT2()<=s.getT2()}}var t8={};t(t8,"LogicalNotEqualOperator",()=>re);class re extends tw{apply(e,t){return!X(e,t)}}var rt={};t(rt,"LogicalLessThanOperator",()=>rr);class rr extends tw{apply(e,t){let r=eP.findPrimitiveNullAsBoolean(e),s=eP.findPrimitiveNullAsBoolean(t);if(r.getT1()==c.BOOLEAN||s.getT1()==c.BOOLEAN)throw new ew(H.format("Cannot compare < with the values $ and $",r.getT2(),s.getT2()));return r.getT2()<s.getT2()}}var rs={};t(rs,"LogicalOrOperator",()=>rn);class rn extends tw{apply(e,t){return!!e&&""!==e||!!t&&""!==t}}var ra={};t(ra,"ObjectOperator",()=>ri);class ri extends tw{apply(e,t){if(!e)throw new ew("Cannot apply array operator on a null value");if(!t)throw new ew("Cannot retrive null property value");let r=typeof e;if(!Array.isArray(e)&&"string"!=r&&"object"!=r)throw new ew(H.format("Cannot retrieve value from a primitive value $",e));return e[t]}}var ro={};t(ro,"LogicalNullishCoalescingOperator",()=>rE);class rE extends tw{apply(e,t){return l(e)?t:e}}var ru={};t(ru,"ArrayRangeOperator",()=>rA);class rA extends tw{apply(e,t){return`${e??""}..${t??""}`}}r(tO,td),r(tO,ty),r(tO,tL),r(tO,tb),r(tO,tV),r(tO,tD),r(tO,t$),r(tO,tI),r(tO,tk),r(tO,tY),r(tO,tW),r(tO,tX),r(tO,tq),r(tO,tQ),r(tO,tZ),r(tO,t1),r(tO,t5),r(tO,t9),r(tO,t6),r(tO,t8),r(tO,rt),r(tO,rs),r(tO,ra),r(tO,ro),r(tO,ru);var rh={},rl={};t(rl,"ArithmeticUnaryMinusOperator",()=>rg);var rT={};t(rT,"UnaryOperator",()=>rc);class rc{nullCheck(e,t){if(l(e))throw new ew(H.format("$ cannot be applied to a null value",t.getOperatorName()))}}class rg extends rc{apply(e){return this.nullCheck(e,ez.UNARY_MINUS),eP.findPrimitiveNumberType(e),-e}}var rp={};t(rp,"ArithmeticUnaryPlusOperator",()=>rR);class rR extends rc{apply(e){return this.nullCheck(e,ez.UNARY_PLUS),eP.findPrimitiveNumberType(e),e}}var rm={};t(rm,"BitwiseComplementOperator",()=>rf);class rf extends rc{apply(e){this.nullCheck(e,ez.UNARY_BITWISE_COMPLEMENT);let t=eP.findPrimitiveNumberType(e);if(t.getT1()!=c.INTEGER&&t.getT1()!=c.LONG)throw new ew(H.format("Unable to apply bitwise operator on $",e));return~e}}var rN={};t(rN,"LogicalNotOperator",()=>r_);class r_ extends rc{apply(e){return!e&&""!==e}}r(rh,rl),r(rh,rp),r(rh,rm),r(rh,rN),r(rh,rT),t({},"LiteralTokenValueExtractor",()=>rS);let rM=new Map([["true",!0],["false",!1],["null",void 0],["undefined",void 0]]);class rS extends e0{static{this.INSTANCE=new rS}getValueInternal(e){if(!J.isNullOrBlank(e))return(e=e.trim(),rM.has(e))?rM.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,H.format("Unable to parse the literal or expression $",e),t)}}processString(e){if(!e.endsWith('"'))throw new eZ(e,H.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 rO={};t(rO,"ConditionalTernaryOperator",()=>rI);class rd{nullCheck(e,t,r,s){if(l(e)||l(t)||l(r))throw new ew(H.format("$ cannot be applied to a null value",s.getOperatorName()))}}class rI extends rd{apply(e,t,r){return e?t:r}}r({},rO);class rw extends e0{static{this.PREFIX="_internal."}addValue(e,t){this.values.set(e,t)}getValueInternal(e){let t=e0.splitPath(e),r=t[1],s=r.indexOf("["),n=2;return -1!=s&&(r=t[1].substring(0,s),(t=[...t])[1]=t[1].substring(s),n=1),this.retrieveElementFrom(e,t,n,this.values.get(r))}getPrefix(){return rw.PREFIX}getStore(){}constructor(...e){super(...e),this.values=new Map}}class rP{static{this.expressionCache=new Map}static{this.keyCounter=0}static getCachedExpression(e){let t=rP.expressionCache.get(e);return t||(t=new tS(e),rP.expressionCache.set(e,t)),t}static{this.UNARY_OPERATORS_MAP=new Map([[ez.UNARY_BITWISE_COMPLEMENT,new rf],[ez.UNARY_LOGICAL_NOT,new r_],[ez.UNARY_MINUS,new rg],[ez.UNARY_PLUS,new rR]])}static{this.TERNARY_OPERATORS_MAP=new Map([[ez.CONDITIONAL_TERNARY_OPERATOR,new rI]])}static{this.BINARY_OPERATORS_MAP=new Map([[ez.ADDITION,new tP],[ez.DIVISION,new tx],[ez.INTEGER_DIVISION,new tv],[ez.MOD,new tU],[ez.MULTIPLICATION,new tC],[ez.SUBTRACTION,new tG],[ez.BITWISE_AND,new tF],[ez.BITWISE_LEFT_SHIFT,new tH],[ez.BITWISE_OR,new tj],[ez.BITWISE_RIGHT_SHIFT,new tJ],[ez.BITWISE_UNSIGNED_RIGHT_SHIFT,new tK],[ez.BITWISE_XOR,new tz],[ez.AND,new t0],[ez.EQUAL,new t2],[ez.GREATER_THAN,new t4],[ez.GREATER_THAN_EQUAL,new t7],[ez.LESS_THAN,new rr],[ez.LESS_THAN_EQUAL,new t3],[ez.OR,new rn],[ez.NOT_EQUAL,new re],[ez.NULLISH_COALESCING_OPERATOR,new rE],[ez.ARRAY_OPERATOR,new tB],[ez.ARRAY_RANGE_INDEX_OPERATOR,new rA],[ez.OBJECT_OPERATOR,new ri]])}static{this.UNARY_OPERATORS_MAP_KEY_SET=new Set(rP.UNARY_OPERATORS_MAP.keys())}static{this.PATTERN_UNKNOWN=0}static{this.PATTERN_LITERAL=1}static{this.PATTERN_SIMPLE_PATH=2}static{this.PATTERN_SIMPLE_ARRAY_ACCESS=3}static{this.PATTERN_SIMPLE_COMPARISON=4}static{this.PATTERN_SIMPLE_TERNARY=5}static{this.patternCache=new Map}static{this.LITERAL_TRUE="true"}static{this.LITERAL_FALSE="false"}static{this.LITERAL_NULL="null"}static{this.LITERAL_UNDEFINED="undefined"}static{this.NUMBER_REGEX=/^-?\d+(\.\d+)?$/}static{this.SINGLE_QUOTE_STRING_REGEX=/^'([^'\\]|\\.)*'$/}static{this.DOUBLE_QUOTE_STRING_REGEX=/^"([^"\\]|\\.)*"$/}static{this.SIMPLE_PATH_REGEX=/^[A-Za-z_][A-Za-z0-9_]*(\.[A-Za-z_][A-Za-z0-9_]*|\[\d+\])*$/}static detectPattern(e){let t=e.getExpression(),r=rP.patternCache.get(t);if(void 0!==r)return r;let s=rP.PATTERN_UNKNOWN;if(t===rP.LITERAL_TRUE||t===rP.LITERAL_FALSE||t===rP.LITERAL_NULL||t===rP.LITERAL_UNDEFINED||rP.NUMBER_REGEX.test(t)||rP.SINGLE_QUOTE_STRING_REGEX.test(t)||rP.DOUBLE_QUOTE_STRING_REGEX.test(t))s=rP.PATTERN_LITERAL;else if(!t.includes(".")||t.includes("{{")||t.includes("..")){if(t.includes(".."))s=rP.PATTERN_UNKNOWN;else if(!t.includes("{{")){let t=e.getOperationsArray();s=rP.detectTernaryOrComparison(e,t)}}else{let t=e.getOperationsArray(),r=e.getTokensArray(),n=t.length>0;for(let e of t)if(e!==ez.OBJECT_OPERATOR&&e!==ez.ARRAY_OPERATOR){n=!1;break}if(n){for(let e of r)if(e instanceof tS){n=!1;break}}s=n?rP.PATTERN_SIMPLE_PATH:rP.detectTernaryOrComparison(e,t)}return rP.patternCache.set(t,s),s}static detectTernaryOrComparison(e,t){for(let t of e.getTokensArray())if(t instanceof tS)return rP.PATTERN_UNKNOWN;return 1===t.length&&t[0]===ez.CONDITIONAL_TERNARY_OPERATOR?rP.PATTERN_SIMPLE_TERNARY:1===t.length&&(t[0]===ez.EQUAL||t[0]===ez.NOT_EQUAL)?rP.PATTERN_SIMPLE_COMPARISON:rP.PATTERN_UNKNOWN}static evaluateLiteral(e){if(e===rP.LITERAL_TRUE)return!0;if(e===rP.LITERAL_FALSE)return!1;if(e===rP.LITERAL_NULL)return null;if(e!==rP.LITERAL_UNDEFINED){if(rP.NUMBER_REGEX.test(e))return e.includes(".")?Number.parseFloat(e):Number.parseInt(e,10);if(rP.SINGLE_QUOTE_STRING_REGEX.test(e)||rP.DOUBLE_QUOTE_STRING_REGEX.test(e))return e.slice(1,-1)}}evaluateSimplePath(e,t){let r=e.getExpression(),s=r.indexOf(".");if(-1===s)return;let n=r.substring(0,s+1),a=t.get(n);if(a)return a.getValue(r)}evaluateSimpleComparison(e,t){let r=e.getOperationsArray(),s=e.getTokensArray();if(2!==s.length||1!==r.length)return;let n=this.getTokenValue(s[1],t),a=this.getTokenValue(s[0],t);return r[0]===ez.EQUAL?n==a:r[0]===ez.NOT_EQUAL?n!=a:void 0}evaluateSimpleTernary(e,t){let r=e.getTokensArray();if(3!==r.length)return;let s=this.getTokenValue(r[2],t),n=this.getTokenValue(r[1],t),a=this.getTokenValue(r[0],t);return s?n:a}getTokenValue(e,t){if(e instanceof tm)return e.getElement();let r=e.getExpression(),s=rP.evaluateLiteral(r);if(void 0!==s||"undefined"===r||"null"===r)return s;let n=r.indexOf(".");if(-1!==n){let e=r.substring(0,n+1),s=t.get(e);if(s)return s.getValue(r)}return rS.INSTANCE.getValue(r)}constructor(e){this.internalTokenValueExtractor=new rw,e instanceof tS?(this.exp=e,this.expression=this.exp.getExpression()):this.expression=e}evaluate(e){let t=this.processNestingExpression(this.expression,e);this.expression=t.getT1(),this.exp=t.getT2();let r=rP.detectPattern(this.exp);return r===rP.PATTERN_LITERAL?rP.evaluateLiteral(this.expression):r===rP.PATTERN_SIMPLE_PATH?this.evaluateSimplePath(this.exp,e):r===rP.PATTERN_SIMPLE_COMPARISON?this.evaluateSimpleComparison(this.exp,e):r===rP.PATTERN_SIMPLE_TERNARY?this.evaluateSimpleTernary(this.exp,e):((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 W;for(;s<e.length-1;){if("{"==e.charAt(s)&&"{"==e.charAt(s+1))0==r&&n.push(new K(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 K(a,rP.getCachedExpression(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 rP(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=rP.getCachedExpression(this.expression)),this.exp}getExpressionString(){return this.expression}evaluateExpression(e,t){let r=e.getOperationsArray(),s=e.getTokensArray(),n=[],a={opIdx:0,srcIdx:0},i=()=>{if(n.length>0)return n.pop();if(a.srcIdx>=s.length){if(a.opIdx<r.length)throw new eZ(e.getExpression(),"Not enough tokens to evaluate expression");throw new eZ(e.getExpression(),"Expression evaluation incomplete: missing token")}return s[a.srcIdx++]},o=()=>{if(!(a.opIdx>=r.length))return r[a.opIdx++]},E=()=>{if(!(a.opIdx>=r.length))return r[a.opIdx]},u=()=>n.length>0||a.srcIdx<s.length;for(;a.opIdx<r.length;){let e=o(),A=i();if(rP.UNARY_OPERATORS_MAP_KEY_SET.has(e))n.push(this.applyUnaryOperation(e,this.getValueFromToken(t,A)));else if(e==ez.OBJECT_OPERATOR||e==ez.ARRAY_OPERATOR)this.processObjectOrArrayOperatorIndexed(t,r,s,n,a,e,A,i,o,E,u);else if(e==ez.CONDITIONAL_TERNARY_OPERATOR){let r=i(),s=i(),a=this.getValueFromToken(t,s),o=this.getValueFromToken(t,r),E=this.getValueFromToken(t,A);n.push(this.applyTernaryOperation(e,a,o,E))}else{let r=i(),s=this.getValueFromToken(t,r),a=this.getValueFromToken(t,A);n.push(this.applyBinaryOperation(e,s,a))}}for(;a.srcIdx<s.length;)n.push(s[a.srcIdx++]);if(0===n.length)throw new ew(H.format("Expression : $ evaluated to null",e));if(1!==n.length)throw new ew(H.format("Expression : $ evaluated multiple values $",e,n));let A=n[0];return A instanceof tm?A.getElement():A instanceof tS?this.evaluateExpression(A,t):this.getValueFromToken(t,A)}processObjectOrArrayOperatorIndexed(e,t,r,s,n,a,i,o,E,u,A){let h,l=[],T=[];if(!a||!i)return;do{if(T.push(a),i instanceof tS)if(this.isPathExpression(i)){let e=this.buildPathString(i);l.push(new tR(e))}else l.push(new tm(i.toString(),this.evaluateExpression(i,e)));else i&&l.push(i);i=s.length>0?s.pop():n.srcIdx<r.length?r[n.srcIdx++]:void 0,a=E()}while(a==ez.OBJECT_OPERATOR||a==ez.ARRAY_OPERATOR)if(i)if(i instanceof tS)if(this.isPathExpression(i)){let e=this.buildPathString(i);l.push(new tR(e))}else l.push(new tm(i.toString(),this.evaluateExpression(i,e)));else l.push(i);void 0!==a&&n.opIdx--;let c=l.length-1,g=T.length-1,p=l[c--];if(p instanceof tm&&"object"==typeof p.getTokenValue()){let e="_k"+rP.keyCounter++;this.internalTokenValueExtractor.addValue(e,p.getTokenValue()),p=new tR(rw.PREFIX+e)}if(p instanceof tm){let e=p.getExpression(),t=p.getTokenValue();h=e&&e.length>0&&('"'==e.charAt(0)||"'"==e.charAt(0))&&"string"==typeof t&&t.includes(".")?e:"string"==typeof t?t:String(t)}else h=p.toString();for(;c>=0;){let e;if(p=l[c--],a=T[g--],p instanceof tm){let t=p.getExpression(),r=p.getTokenValue();e=a==ez.ARRAY_OPERATOR&&t&&t.length>0&&('"'==t.charAt(0)||"'"==t.charAt(0))&&"string"==typeof r&&r.includes(".")?t:"string"==typeof r?r:String(r)}else e=p.toString();h=h+a.getOperator()+e+(a==ez.ARRAY_OPERATOR?"]":"")}let R=h.substring(0,h.indexOf(".")+1);if(R.length>2&&e.has(R))s.push(new tm(h,this.getValue(h,e)));else{let e;try{e=rS.INSTANCE.getValue(h)}catch(t){e=this.evaluateLiteralPropertyAccess(h)}s.push(new tm(h,e))}}evaluateLiteralPropertyAccess(e){let t,r=e.indexOf(".");if(-1===r)return e;let s=e.substring(0,r),n=e.substring(r+1);try{t=rS.INSTANCE.getValue(s)}catch(t){return e}if(null==t)return;let a=this.splitPropertyPath(n),i=t;for(let e of a){if(null==i)return;i=e.includes("[")?this.accessPropertyWithBrackets(i,e):i[e]}return i}splitPropertyPath(e){let t=[],r="",s=!1;for(let n=0;n<e.length;n++){let a=e.charAt(n);"["===a?(r.length>0&&(t.push(r),r=""),s=!0,r+=a):"]"===a?(r+=a,s=!1,t.push(r),r=""):"."!==a||s?r+=a:r.length>0&&(t.push(r),r="")}return r.length>0&&t.push(r),t}accessPropertyWithBrackets(e,t){let r=t.match(/^\[(.+)\]$/);if(r){let t=r[1];(t.startsWith('"')&&t.endsWith('"')||t.startsWith("'")&&t.endsWith("'"))&&(t=t.substring(1,t.length-1));let s=parseInt(t);return isNaN(s)?e[t]:e[s]}return e[t]}applyTernaryOperation(e,t,r,s){let n=rP.TERNARY_OPERATORS_MAP.get(e);if(!n)throw new eZ(this.expression,H.format("No operator found to evaluate $",this.getExpression()));return new tm(e.toString(),n.apply(t,r,s))}applyBinaryOperation(e,t,r){let s=typeof t,n=typeof r,a=rP.BINARY_OPERATORS_MAP.get(e);if(("object"===s||"object"===n)&&e!==ez.EQUAL&&e!==ez.NOT_EQUAL&&e!==ez.NULLISH_COALESCING_OPERATOR&&e!==ez.AND&&e!==ez.OR)throw new eZ(this.expression,H.format("Cannot evaluate expression $ $ $",t,e.getOperator(),r));if(!a)throw new eZ(this.expression,H.format("No operator found to evaluate $ $ $",t,e.getOperator(),r));return new tm(e.toString(),a.apply(t,r))}applyUnaryOperation(e,t){let r=typeof t;if(e.getOperator()!=ez.NOT.getOperator()&&e.getOperator()!=ez.UNARY_LOGICAL_NOT.getOperator()&&("object"===r||Array.isArray(t)))throw new eZ(this.expression,H.format("The operator $ cannot be applied to $",e.getOperator(),t));let s=rP.UNARY_OPERATORS_MAP.get(e);if(!s)throw new eZ(this.expression,H.format("No Unary operator $ is found to apply on $",e.getOperator(),t));return new tm(e.toString(),s.apply(t))}getValueFromToken(e,t){return t instanceof tS?this.evaluateExpression(t,e):t instanceof tm?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):rS.INSTANCE.getValueFromExtractors(e,t)}buildPathString(e){let t=e.getOperationsArray(),r=e.getTokensArray();if(0===t.length){if(1===r.length){let e=r[0];return e instanceof tS?this.buildPathString(e):this.getTokenExpressionString(e)}return e.getExpression()||""}if(r.length>=2&&t.length>=1){let e=r[0],s=r[1],n=t[0],a=s instanceof tS?this.buildPathString(s):this.getTokenExpressionString(s),i=e instanceof tS?this.buildPathString(e):this.getTokenExpressionString(e);if(n===ez.OBJECT_OPERATOR)return a+"."+i;if(n===ez.ARRAY_OPERATOR)return a+"["+i+"]";if(n===ez.ARRAY_RANGE_INDEX_OPERATOR)return a+".."+i}return this.stripOuterParens(e.toString())}getTokenExpressionString(e){return e instanceof tm,e.getExpression()}stripOuterParens(e){if(e.length>=2&&"("===e.charAt(0)&&")"===e.charAt(e.length-1)){let t=0;for(let r=0;r<e.length;r++)if("("===e.charAt(r)?t++:")"===e.charAt(r)&&t--,0===t&&r<e.length-1)return e;return e.substring(1,e.length-1)}return e}isPathExpression(e){let t=e.getOperationsArray();if(0===t.length)return!0;for(let e of t)if(e!==ez.OBJECT_OPERATOR&&e!==ez.ARRAY_OPERATOR&&e!==ez.ARRAY_RANGE_INDEX_OPERATOR)return!1;for(let t of e.getTokensArray())if(t instanceof tS&&!this.isPathExpression(t))return!1;return!0}}let ry="name",rx="value";class rL extends e_{getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(ry);if(J.isNullOrBlank(t))throw new k("Empty string is not a valid name for the context element");let r=e?.getArguments()?.get(rx),s=e0.splitPath(t);if(s.length<1||"Context"!==s[0])throw new ew(H.format("The context path $ is not a valid path in context",t));let n=this.evaluateDynamicParts(s,e);return this.modifyContextWithParts(e,t,r,n)}evaluateDynamicParts(e,t){let r=[];for(let s of e){let e=this.evaluateBracketExpressions(s,t);r.push(e)}return r}evaluateBracketExpressions(e,t){let r="",s=0;for(;s<e.length;)if("["===e[s]){r+="[",s++;let n="",a=1,i=!1,o="";for(;s<e.length&&a>0;){let t=e[s];i?(t===o&&"\\"!==e[s-1]&&(i=!1),n+=t):'"'===t||"'"===t?(i=!0,o=t,n+=t):"["===t?(a++,n+=t):"]"===t?--a>0&&(n+=t):n+=t,s++}if(/^-?\d+$/.test(n)||n.startsWith('"')&&n.endsWith('"')||n.startsWith("'")&&n.endsWith("'"))r+=n+"]";else try{let e=new rP(n).evaluate(t.getValuesMap());r+=String(e)+"]"}catch(e){r+=n+"]"}}else r+=e[s],s++;return r}modifyContextWithParts(e,t,r,s){if(s.length<2)throw new k(H.format("Context path '$' is too short",t));let n=s[1],a=this.parseBracketSegments(n),i=a[0],o=e.getContext()?.get(i);if(l(o))throw new k(H.format("Context doesn't have any element with name '$' ",i));if(2===s.length&&1===a.length)return o.setElement(r),new F([B.outputOf(new Map)]);let E=o.getElement();l(E)&&(E=(a.length>1?this.isArrayIndex(a[1]):s.length>2&&this.isArrayAccess(s[2]))?[]:{},o.setElement(E));let u=[];for(let e=1;e<a.length;e++)u.push({value:this.stripQuotes(a[e]),isArray:this.isArrayIndex(a[e])});for(let e=2;e<s.length;e++)for(let t of this.parseBracketSegments(s[e]))u.push({value:this.stripQuotes(t),isArray:this.isArrayIndex(t)});for(let e=0;e<u.length-1;e++){let t=u[e],r=u[e+1];E=t.isArray?this.getDataFromArray(E,t.value,r.isArray):this.getDataFromObject(E,t.value,r.isArray)}let A=u[u.length-1];return A.isArray?this.putDataInArray(E,A.value,r):this.putDataInObject(E,A.value,r),new F([B.outputOf(new Map)])}parseBracketSegments(e){let t=[],r=0,s=0;for(;s<e.length;)if("["===e[s]){s>r&&t.push(e.substring(r,s));let n=s+1,a=!1,i="";for(;n<e.length;){if(a)e[n]===i&&"\\"!==e[n-1]&&(a=!1);else if('"'===e[n]||"'"===e[n])a=!0,i=e[n];else if("]"===e[n])break;n++}t.push(e.substring(s+1,n)),s=r=n+1}else s++;return r<e.length&&t.push(e.substring(r)),t.length>0?t:[e]}isArrayIndex(e){return/^-?\d+$/.test(e)}isArrayAccess(e){return e.startsWith("[")||this.isArrayIndex(e)}stripQuotes(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.substring(1,e.length-1):e}getDataFromArray(e,t,r){if(!Array.isArray(e))throw new k(H.format("Expected an array but found $",e));let s=parseInt(t);if(isNaN(s))throw new k(H.format("Expected an array index but found $",t));if(s<0)throw new k(H.format("Array index is out of bound - $",t));let n=e[s];return l(n)&&(n=r?[]:{},e[s]=n),n}getDataFromObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new k(H.format("Expected an object but found $",e));let s=e[t];return l(s)&&(s=r?[]:{},e[t]=s),s}putDataInArray(e,t,r){if(!Array.isArray(e))throw new k(H.format("Expected an array but found $",e));let s=parseInt(t);if(isNaN(s))throw new k(H.format("Expected an array index but found $",t));if(s<0)throw new k(H.format("Array index is out of bound - $",t));e[s]=r}putDataInObject(e,t,r){if(Array.isArray(e)||"object"!=typeof e)throw new k(H.format("Expected an object but found $",e));e[t]=r}constructor(...e){super(...e),this.signature=new Y("Set").setNamespace(h.SYSTEM_CTX).setParameters(new Map([b.ofEntry(ry,new y().setName(ry).setType(m.of(c.STRING)).setMinLength(1),!1),b.ofEntry(rx,y.ofAny(rx))])).setEvents(new Map([$.outputEventMapEntry(new Map)]))}}let rv="value",rb="eventName",rU="results";class rV extends e_{getSignature(){return this.signature}async internalExecute(e){let t=e.getEvents(),r=e.getArguments(),s=r?.get(rb),n=e?.getArguments()?.get(rU).map(t=>{let r=t[rv];if(l(r))throw new k("Expect a value object");let s=r.value;return r.isExpression&&(s=new rP(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([B.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new Y("GenerateEvent").setNamespace(h.SYSTEM).setParameters(new Map([b.ofEntry(rb,y.ofString(rb).setDefaultValue("output")),b.ofEntry(rU,y.ofObject(rU).setProperties(new Map([["name",y.ofString("name")],[rv,b.EXPRESSION]])),!0)])).setEvents(new Map([$.outputEventMapEntry(new Map)]))}}class rC extends e_{static{this.CONDITION="condition"}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rC.CONDITION);return new F([B.of(t||""===t?$.TRUE:$.FALSE,new Map),B.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new Y("If").setNamespace(h.SYSTEM).setParameters(new Map([b.ofEntry(rC.CONDITION,y.ofAny(rC.CONDITION))])).setEvents(new Map([$.eventMapEntry($.TRUE,new Map),$.eventMapEntry($.FALSE,new Map),$.outputEventMapEntry(new Map)]))}}let rD="stepName";class rG extends e_{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rD);return e.getExecutionContext().set(t,!0),new F([B.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new Y("Break").setNamespace(h.SYSTEM_LOOP).setParameters(new Map([b.ofEntry(rD,y.of(rD,c.STRING))])).setEvents(new Map([$.outputEventMapEntry(new Map([]))]))}}let r$="count",rB="value",rk="index";class rF extends e_{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(r$),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),B.outputOf(new Map([[rB,r]]));let n=B.of($.ITERATION,new Map([[rk,r]]));return++r,n}})}constructor(...e){super(...e),this.signature=new Y("CountLoop").setNamespace(h.SYSTEM_LOOP).setParameters(new Map([b.ofEntry(r$,y.of(r$,c.INTEGER))])).setEvents(new Map([$.eventMapEntry($.ITERATION,new Map([[rk,y.of(rk,c.INTEGER)]])),$.outputEventMapEntry(new Map([[rB,y.of(rB,c.INTEGER)]]))]))}}let rY="source",rH="each",rW="index",rj="value";class rX extends e_{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rY),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),B.outputOf(new Map([[rj,r]]));let n=B.of($.ITERATION,new Map([[rW,r],[rH,t[r]]]));return++r,n}})}constructor(...e){super(...e),this.signature=new Y("ForEachLoop").setNamespace(h.SYSTEM_LOOP).setParameters(new Map([b.ofEntry(rY,y.ofArray(rY,y.ofAny(rY)))])).setEvents(new Map([$.eventMapEntry($.ITERATION,new Map([[rW,y.of(rW,c.INTEGER)],[rH,y.ofAny(rH)]])),$.outputEventMapEntry(new Map([[rj,y.of(rj,c.INTEGER)]]))]))}}let rJ="from",rq="step",rK="value",rQ="index";class rz extends e_{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rJ),r=e.getArguments()?.get("to"),s=e.getArguments()?.get(rq),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),B.outputOf(new Map([[rK,a]]));let t=B.of($.ITERATION,new Map([[rQ,a]]));return a+=s,t}})}constructor(...e){super(...e),this.signature=new Y("RangeLoop").setNamespace(h.SYSTEM_LOOP).setParameters(new Map([b.ofEntry(rJ,y.of(rJ,c.INTEGER,c.LONG,c.FLOAT,c.DOUBLE).setDefaultValue(0)),b.ofEntry("to",y.of("to",c.INTEGER,c.LONG,c.FLOAT,c.DOUBLE).setDefaultValue(1)),b.ofEntry(rq,y.of(rq,c.INTEGER,c.LONG,c.FLOAT,c.DOUBLE).setDefaultValue(1).setNot(new y().setConstant(0)))])).setEvents(new Map([$.eventMapEntry($.ITERATION,new Map([[rQ,y.of(rQ,c.INTEGER,c.LONG,c.FLOAT,c.DOUBLE)]])),$.outputEventMapEntry(new Map([[rK,y.of(rK,c.INTEGER,c.LONG,c.FLOAT,c.DOUBLE)]]))]))}}let rZ="value";class r0 extends e_{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(rZ);return new F([B.outputOf(new Map([[rZ,t.reduce((e,t)=>e+=t,0)]]))])}constructor(...e){super(...e),this.signature=new Y("Add").setNamespace(h.MATH).setParameters(new Map([[rZ,new b(rZ,y.ofNumber(rZ)).setVariableArgument(!0)]])).setEvents(new Map([$.outputEventMapEntry(new Map([[rZ,y.ofNumber(rZ)]]))]))}}let r1="value",r2="value1",r5="value2";class r7 extends e_{constructor(e,t,r=1,...s){super(),this.paramFunctions=[()=>new Map([[r1,new b(r1,y.ofNumber(r1))]]),()=>new Map([[r2,new b(r2,y.ofNumber(r2))],[r5,new b(r5,y.ofNumber(r5))]])],s&&s.length||(s=[c.DOUBLE]),this.parametersNumber=r,this.mathFunction=t,this.signature=new Y(e).setNamespace(h.MATH).setParameters(this.paramFunctions[r-1]()).setEvents(new Map([$.outputEventMapEntry(new Map([[r1,new y().setType(m.of(...s)).setName(r1)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t,r=eP.findPrimitiveNumberType(e.getArguments()?.get(1==this.parametersNumber?r1:r2)).getT2();return 2==this.parametersNumber&&(t=eP.findPrimitiveNumberType(e.getArguments()?.get(r5)).getT2()),new F([B.outputOf(new Map([[r1,this.mathFunction.call(this,r,t)]]))])}}let r9="value";class r4 extends e_{constructor(){super(),this.signature=new Y("Hypotenuse").setNamespace(h.MATH).setParameters(new Map([[r9,new b(r9,y.ofNumber(r9)).setVariableArgument(!0)]])).setEvents(new Map([$.outputEventMapEntry(new Map([[r9,new y().setType(m.of(c.DOUBLE)).setName(r9)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(r9);return new F([B.outputOf(new Map([[r9,Math.sqrt(t.reduce((e,t)=>e+=t*t,0))]]))])}}let r6="value";class r3 extends e_{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(r6);return new F([B.outputOf(new Map([[r6,t.reduce((e,t)=>!e&&0!==e||t>e?t:e)]]))])}constructor(...e){super(...e),this.signature=new Y("Maximum").setNamespace(h.MATH).setParameters(new Map([[r6,new b(r6,y.ofNumber(r6)).setVariableArgument(!0)]])).setEvents(new Map([$.outputEventMapEntry(new Map([[r6,y.ofNumber(r6)]]))]))}}let r8="value";class se extends e_{getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(r8);return new F([B.outputOf(new Map([[r8,t.reduce((e,t)=>!e&&0!==e||t<e?t:e)]]))])}constructor(...e){super(...e),this.signature=new Y("Minimum").setNamespace(h.MATH).setParameters(new Map([[r8,new b(r8,y.ofNumber(r8)).setVariableArgument(!0)]])).setEvents(new Map([$.outputEventMapEntry(new Map([[r8,y.ofNumber(r8)]]))]))}}let st="value";class sr extends e_{getSignature(){return this.signature}async internalExecute(e){return new F([B.outputOf(new Map([[st,Math.random()]]))])}constructor(...e){super(...e),this.signature=new Y("Random").setNamespace(h.MATH).setEvents(new Map([$.outputEventMapEntry(V.of(st,y.ofDouble(st)))]))}}class ss extends e_{static{this.MIN_VALUE="minValue"}static{this.MAX_VALUE="maxValue"}static{this.VALUE="value"}constructor(e,t,r,s,n){super(),this.signature=new Y(e).setParameters(V.of(ss.MIN_VALUE,t,ss.MAX_VALUE,r)).setNamespace(h.MATH).setEvents(new Map([$.outputEventMapEntry(V.of(ss.VALUE,s))])),this.randomFunction=n}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(ss.MIN_VALUE),r=e.getArguments()?.get(ss.MAX_VALUE),s=this.randomFunction(t,r);return new F([B.outputOf(new Map([[ss.VALUE,s]]))])}}class sn{constructor(){this.functionObjectsIndex={Absolute:new r7("Absolute",e=>Math.abs(e),1,c.INTEGER,c.LONG,c.FLOAT,c.DOUBLE),ArcCosine:new r7("ArcCosine",e=>Math.acos(e)),ArcSine:new r7("ArcSine",e=>Math.asin(e)),ArcTangent:new r7("ArcTangent",e=>Math.atan(e)),Ceiling:new r7("Ceiling",e=>Math.ceil(e)),Cosine:new r7("Cosine",e=>Math.cos(e)),HyperbolicCosine:new r7("HyperbolicCosine",e=>Math.cosh(e)),CubeRoot:new r7("CubeRoot",e=>Math.cbrt(e)),Exponential:new r7("Exponential",e=>Math.exp(e)),ExponentialMinus1:new r7("ExponentialMinus1",e=>Math.expm1(e)),Floor:new r7("Floor",e=>Math.floor(e)),LogNatural:new r7("LogNatural",e=>Math.log(e)),Log10:new r7("Log10",e=>Math.log10(e)),Round:new r7("Round",e=>Math.round(e),1,c.INTEGER,c.LONG),Sine:new r7("Sine",e=>Math.sin(e)),HyperbolicSine:new r7("HyperbolicSine",e=>Math.sinh(e)),Tangent:new r7("Tangent",e=>Math.tan(e)),HyperbolicTangent:new r7("HyperbolicTangent",e=>Math.tanh(e)),ToDegrees:new r7("ToDegrees",e=>Math.PI/180*e),ToRadians:new r7("ToRadians",e=>180/Math.PI*e),SquareRoot:new r7("SquareRoot",e=>Math.sqrt(e)),ArcTangent2:new r7("ArcTangent2",(e,t)=>Math.atan2(e,t),2),Power:new r7("Power",(e,t)=>Math.pow(e,t),2),Add:new r0,Hypotenuse:new r4,Maximum:new r3,Minimum:new se,Random:new sr,RandomFloat:new ss("RandomFloat",b.of(ss.MIN_VALUE,y.ofFloat(ss.MIN_VALUE).setDefaultValue(0)),b.of(ss.MAX_VALUE,y.ofFloat(ss.MAX_VALUE).setDefaultValue(0x7fffffff)),y.ofFloat(ss.VALUE),(e,t)=>Math.random()*(t-e)+e),RandomInt:new ss("RandomInt",b.of(ss.MIN_VALUE,y.ofInteger(ss.MIN_VALUE).setDefaultValue(0)),b.of(ss.MAX_VALUE,y.ofInteger(ss.MAX_VALUE).setDefaultValue(0x7fffffff)),y.ofInteger(ss.VALUE),(e,t)=>Math.round(Math.random()*(t-e)+e)),RandomLong:new ss("RandomLong",b.of(ss.MIN_VALUE,y.ofLong(ss.MIN_VALUE).setDefaultValue(0)),b.of(ss.MAX_VALUE,y.ofLong(ss.MAX_VALUE).setDefaultValue(Number.MAX_SAFE_INTEGER)),y.ofLong(ss.VALUE),(e,t)=>Math.round(Math.random()*(t-e)+e)),RandomDouble:new ss("RandomDouble",b.of(ss.MIN_VALUE,y.ofDouble(ss.MIN_VALUE).setDefaultValue(0)),b.of(ss.MAX_VALUE,y.ofDouble(ss.MAX_VALUE).setDefaultValue(Number.MAX_VALUE)),y.ofDouble(ss.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!=h.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 sa extends e_{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(sa.SOURCE),r=y.from(e?.getArguments()?.get(sa.SCHEMA));if(!r)throw new k("Schema is not supplied.");let s=eA(e.getArguments()?.get(sa.CONVERSION_MODE))||eu.STRICT;return this.convertToSchema(r,e.getSchemaRepository(),t,s)}async convertToSchema(e,t,r,s){try{return new F([B.outputOf(V.of(sa.VALUE,eN.validate([],e,t,r,!0,s)))])}catch(e){throw new k(e?.message)}}constructor(...e){super(...e),this.signature=new Y("ObjectConvert").setNamespace(h.SYSTEM_OBJECT).setParameters(new Map([b.ofEntry(sa.SOURCE,y.ofAny(sa.SCHEMA)),b.ofEntry(sa.SCHEMA,y.SCHEMA,!1,L.CONSTANT),b.ofEntry(sa.CONVERSION_MODE,y.ofString(sa.CONVERSION_MODE).setEnums(eh()))])).setEvents(new Map([$.outputEventMapEntry(V.of(sa.VALUE,y.ofAny(sa.VALUE)))]))}}let si="value",so="source";class sE extends e_{constructor(){super(),this.signature=new Y("ObjectDeleteKey").setNamespace(h.SYSTEM_OBJECT).setParameters(new Map([b.ofEntry(so,y.ofAny(so)),b.ofEntry("key",y.ofString("key"))])).setEvents(new Map([$.outputEventMapEntry(new Map([[si,y.ofAny(si)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(so),r=e.getArguments()?.get("key");return l(t)?new F([B.outputOf(new Map([[si,void 0]]))]):(t=ev(t),delete t[r],new F([B.outputOf(new Map([[si,t]]))]))}}let su="source";class sA extends e_{constructor(e,t){super(),this.signature=new Y(e).setNamespace(h.SYSTEM_OBJECT).setParameters(new Map([b.ofEntry(su,y.ofAny(su))])).setEvents(new Map([$.outputEventMapEntry(new Map([["value",t]]))]))}getSignature(){return this.signature}}let sh="value";class sl extends sA{constructor(){super("ObjectEntries",y.ofArray(sh,y.ofArray("tuple",y.ofString("key"),y.ofAny("value"))))}async internalExecute(e){var t=e.getArguments()?.get("source");if(l(t))return new F([B.outputOf(new Map([[sh,[]]]))]);let r=Object.entries(ev(t)).sort((e,t)=>e[0].localeCompare(t[0]));return new F([B.outputOf(new Map([[sh,r]]))])}}let sT="value";class sc extends sA{constructor(){super("ObjectKeys",y.ofArray(sT,y.ofString(sT)))}async internalExecute(e){var t=e.getArguments()?.get("source");if(l(t))return new F([B.outputOf(new Map([[sT,[]]]))]);let r=Object.keys(ev(t)).sort((e,t)=>e.localeCompare(t));return new F([B.outputOf(new Map([[sT,r]]))])}}let sg="value",sp="source",sR="overwrite",sm="deleteKeyOnNull";class sf extends e_{constructor(){super(),this.signature=new Y("ObjectPutValue").setNamespace(h.SYSTEM_OBJECT).setParameters(new Map([b.ofEntry(sp,y.ofObject(sp)),b.ofEntry("key",y.ofString("key")),b.ofEntry(sg,y.ofAny(sg)),b.ofEntry(sR,y.ofBoolean(sR).setDefaultValue(!0)),b.ofEntry(sm,y.ofBoolean(sm).setDefaultValue(!1))])).setEvents(new Map([$.outputEventMapEntry(new Map([[sg,y.ofObject(sg)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(sp),r=e.getArguments()?.get("key"),s=e.getArguments()?.get(sg),n=e.getArguments()?.get(sR),a=e.getArguments()?.get(sm),i=new e1(t,"Data.");return i.setValue(r,s,n,a),new F([B.outputOf(new Map([[sg,i.getStore()]]))])}}let sN="value";class s_ extends sA{constructor(){super("ObjectValues",y.ofArray(sN,y.ofAny(sN)))}async internalExecute(e){var t=e.getArguments()?.get("source");if(l(t))return new F([B.outputOf(new Map([[sN,[]]]))]);let r=Object.entries(ev(t)).sort((e,t)=>e[0].localeCompare(t[0])).map(e=>e[1]);return new F([B.outputOf(new Map([[sN,r]]))])}}class sM{constructor(){this.functionObjectsIndex={ObjectValues:new s_,ObjectKeys:new sc,ObjectEntries:new sl,ObjectDeleteKey:new sE,ObjectPutValue:new sf,ObjectConvert:new sa},this.filterableNames=Object.values(this.functionObjectsIndex).map(e=>e.getSignature().getFullName())}async find(e,t){return e!=h.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 sS extends e_{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(sS.VALUES),r=e.getArguments()?.get(sS.STREAM);return(r===sS.LOG?console?.log:console?.error)?.(...t),new F([B.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new Y("Print").setNamespace(h.SYSTEM).setParameters(new Map([b.ofEntry(sS.VALUES,y.ofAny(sS.VALUES),!0),b.ofEntry(sS.STREAM,y.ofString(sS.STREAM).setEnums([sS.LOG,sS.ERROR]).setDefaultValue(sS.LOG))])).setEvents(new Map([$.outputEventMapEntry(new Map)]))}}class sO extends e_{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 b(sO.PARAMETER_STRING_NAME,y.ofString(sO.PARAMETER_STRING_NAME))}static{this.PARAMETER_SECOND_STRING=new b(sO.PARAMETER_SECOND_STRING_NAME,y.ofString(sO.PARAMETER_SECOND_STRING_NAME))}static{this.PARAMETER_THIRD_STRING=new b(sO.PARAMETER_THIRD_STRING_NAME,y.ofString(sO.PARAMETER_THIRD_STRING_NAME))}static{this.PARAMETER_INDEX=new b(sO.PARAMETER_INDEX_NAME,y.ofInteger(sO.PARAMETER_INDEX_NAME))}static{this.PARAMETER_SECOND_INDEX=new b(sO.PARAMETER_SECOND_INDEX_NAME,y.ofInteger(sO.PARAMETER_SECOND_INDEX_NAME))}static{this.PARAMETER_SEARCH_STRING=new b(sO.PARAMETER_SEARCH_STRING_NAME,y.ofString(sO.PARAMETER_STRING_NAME))}static{this.EVENT_STRING=new $($.OUTPUT,V.of(sO.EVENT_RESULT_NAME,y.ofString(sO.EVENT_RESULT_NAME)))}static{this.EVENT_BOOLEAN=new $($.OUTPUT,V.of(sO.EVENT_RESULT_NAME,y.ofBoolean(sO.EVENT_RESULT_NAME)))}static{this.EVENT_INT=new $($.OUTPUT,V.of(sO.EVENT_RESULT_NAME,y.ofInteger(sO.EVENT_RESULT_NAME)))}static{this.EVENT_ARRAY=new $($.OUTPUT,V.of(sO.EVENT_RESULT_NAME,y.ofArray(sO.EVENT_RESULT_NAME)))}constructor(e,t,r,...s){super();let n=new Map;s.forEach(e=>n.set(e.getParameterName(),e)),this.signature=new Y(t).setNamespace(e).setParameters(n).setEvents(V.of(r.getName(),r))}getSignature(){return this.signature}static ofEntryStringStringAndBooleanOutput(e,t){return[e,new class extends sO{async internalExecute(e){let r=e?.getArguments()?.get(sO.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sO.PARAMETER_SEARCH_STRING_NAME);return new F([B.outputOf(V.of(sO.EVENT_RESULT_NAME,t(r,s)))])}}(h.STRING,e,sO.EVENT_BOOLEAN,sO.PARAMETER_STRING,sO.PARAMETER_SEARCH_STRING)]}static ofEntryStringIntegerAndStringOutput(e,t){return[e,new class extends sO{async internalExecute(e){let r=e?.getArguments()?.get(sO.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sO.PARAMETER_INDEX_NAME);return new F([B.outputOf(V.of(sO.EVENT_RESULT_NAME,t(r,s)))])}}(h.STRING,e,sO.EVENT_STRING,sO.PARAMETER_STRING,sO.PARAMETER_INDEX)]}static ofEntryStringStringAndIntegerOutput(e,t){return[e,new class extends sO{async internalExecute(e){let r=e?.getArguments()?.get(sO.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sO.PARAMETER_SEARCH_STRING_NAME);return new F([B.outputOf(V.of(sO.EVENT_RESULT_NAME,t(r,s)))])}}(h.STRING,e,sO.EVENT_INT,sO.PARAMETER_STRING,sO.PARAMETER_SEARCH_STRING)]}static ofEntryStringAndStringOutput(e,t){return[e,new class extends sO{async internalExecute(e){let r=e?.getArguments()?.get(sO.PARAMETER_STRING_NAME);return new F([B.outputOf(V.of(sO.EVENT_RESULT_NAME,t(r)))])}}(h.STRING,e,sO.EVENT_STRING,sO.PARAMETER_STRING)]}static ofEntryStringAndBooleanOutput(e,t){return[e,new class extends sO{async internalExecute(e){let r=e?.getArguments()?.get(sO.PARAMETER_STRING_NAME);return new F([B.outputOf(V.of(sO.EVENT_RESULT_NAME,t(r)))])}}(h.STRING,e,sO.EVENT_BOOLEAN,sO.PARAMETER_STRING)]}static ofEntryStringStringIntegerAndIntegerOutput(e,t){return[e,new class extends sO{async internalExecute(e){let r=e?.getArguments()?.get(sO.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sO.PARAMETER_SEARCH_STRING_NAME),n=e?.getArguments()?.get(sO.PARAMETER_INDEX_NAME);return new F([B.outputOf(V.of(sO.EVENT_RESULT_NAME,t(r,s,n)))])}}(h.STRING,e,sO.EVENT_INT,sO.PARAMETER_STRING,sO.PARAMETER_SEARCH_STRING,sO.PARAMETER_INDEX)]}static ofEntryStringIntegerIntegerAndStringOutput(e,t){return[e,new class extends sO{async internalExecute(e){let r=e?.getArguments()?.get(sO.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sO.PARAMETER_INDEX_NAME),n=e?.getArguments()?.get(sO.PARAMETER_SECOND_INDEX_NAME);return new F([B.outputOf(V.of(sO.EVENT_RESULT_NAME,t(r,s,n)))])}}(h.STRING,e,sO.EVENT_STRING,sO.PARAMETER_STRING,sO.PARAMETER_INDEX,sO.PARAMETER_SECOND_INDEX)]}static ofEntryStringStringStringAndStringOutput(e,t){return[e,new class extends sO{async internalExecute(e){let r=e?.getArguments()?.get(sO.PARAMETER_STRING_NAME),s=e?.getArguments()?.get(sO.PARAMETER_SECOND_STRING_NAME),n=e?.getArguments()?.get(sO.PARAMETER_THIRD_STRING_NAME);return new F([B.outputOf(V.of(sO.EVENT_RESULT_NAME,t(r,s,n)))])}}(h.STRING,e,sO.EVENT_STRING,sO.PARAMETER_STRING,sO.PARAMETER_SECOND_STRING,sO.PARAMETER_THIRD_STRING)]}static ofEntryStringAndIntegerOutput(e,t){return[e,new class extends sO{async internalExecute(e){let r=e?.getArguments()?.get(sO.PARAMETER_STRING_NAME);return new F([B.outputOf(V.of(sO.EVENT_RESULT_NAME,t(r)))])}}(h.STRING,e,sO.EVENT_INT,sO.PARAMETER_STRING)]}}class sd extends e_{static{this.VALUE="value"}constructor(){super(),this.signature=new Y("Concatenate").setNamespace(h.STRING).setParameters(new Map([[sd.VALUE,new b(sd.VALUE,new y().setName(sd.VALUE).setType(new R(c.STRING))).setVariableArgument(!0)]])).setEvents(new Map([$.outputEventMapEntry(new Map([[sd.VALUE,y.ofString(sd.VALUE)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(sd.VALUE),r="";return t.reduce((e,t)=>r=e+t,r),new F([B.outputOf(new Map([[sd.VALUE,r]]))])}}class sI extends e_{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 b(sI.PARAMETER_STRING_NAME,y.ofString(sI.PARAMETER_STRING_NAME)),this.PARAMETER_AT_START=new b(sI.PARAMETER_AT_START_NAME,y.ofInteger(sI.PARAMETER_AT_START_NAME)),this.PARAMETER_AT_END=new b(sI.PARAMETER_AT_END_NAME,y.ofInteger(sI.PARAMETER_AT_END_NAME)),this.EVENT_STRING=new $($.OUTPUT,new Map([[sI.EVENT_RESULT_NAME,y.ofString(sI.EVENT_RESULT_NAME)]])),this.signature=new Y("DeleteForGivenLength").setNamespace(h.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(sI.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(sI.PARAMETER_AT_START_NAME),s=e?.getArguments()?.get(sI.PARAMETER_AT_END_NAME);if(s>=r){let e="";return e+=t.substring(0,r),e+=t.substring(s),new F([B.outputOf(new Map([[sI.EVENT_RESULT_NAME,e.toString()]]))])}return new F([B.outputOf(new Map([[sI.EVENT_RESULT_NAME,t]]))])}}class sw extends e_{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(sw.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(sw.PARAMETER_AT_POSITION_NAME),s=e?.getArguments()?.get(sw.PARAMETER_INSERT_STRING_NAME),n="";return n+=t.substring(0,r),n+=s,n+=t.substring(r),new F([B.outputOf(new Map([[this.EVENT_RESULT_NAME,n]]))])}constructor(...e){super(...e),this.EVENT_RESULT_NAME="result",this.PARAMETER_STRING=new b(sw.PARAMETER_STRING_NAME,y.ofString(sw.PARAMETER_STRING_NAME)),this.PARAMETER_AT_POSITION=new b(sw.PARAMETER_AT_POSITION_NAME,y.ofInteger(sw.PARAMETER_AT_POSITION_NAME)),this.PARAMETER_INSERT_STRING=new b(sw.PARAMETER_INSERT_STRING_NAME,y.ofString(sw.PARAMETER_INSERT_STRING_NAME)),this.EVENT_STRING=new $($.OUTPUT,new Map([[this.EVENT_RESULT_NAME,y.ofString(this.EVENT_RESULT_NAME)]])),this.signature=new Y("InsertAtGivenPosition").setNamespace(h.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([$.outputEventMapEntry(new Map([[this.EVENT_RESULT_NAME,y.ofString(this.EVENT_RESULT_NAME)]]))]))}}class sP extends e_{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(sP.PARAMETER_REGEX_NAME),r=e.getArguments()?.get(sP.PARAMETER_STRING_NAME);return new F([B.outputOf(new Map([[sP.EVENT_RESULT_NAME,!!r.match(t)?.length]]))])}constructor(...e){super(...e),this.signature=new Y("Matches").setNamespace(h.STRING).setParameters(V.ofEntries(V.entry(...b.ofEntry(sP.PARAMETER_REGEX_NAME,y.ofString(sP.PARAMETER_REGEX_NAME))),V.entry(...b.ofEntry(sP.PARAMETER_STRING_NAME,y.ofString(sP.PARAMETER_STRING_NAME))))).setEvents(V.ofEntries(V.entry(...$.outputEventMapEntry(new Map([[sP.EVENT_RESULT_NAME,y.ofBoolean(sP.EVENT_RESULT_NAME)]])))))}}class sy extends e_{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 b(sy.PARAMETER_STRING_NAME,y.ofString(sy.PARAMETER_STRING_NAME))}static{this.PARAMETER_POSTPAD_STRING=new b(sy.PARAMETER_POSTPAD_STRING_NAME,y.ofString(sy.PARAMETER_POSTPAD_STRING_NAME))}static{this.PARAMETER_LENGTH=new b(sy.PARAMETER_LENGTH_NAME,y.ofInteger(sy.PARAMETER_LENGTH_NAME))}static{this.EVENT_STRING=new $($.OUTPUT,new Map([[sy.EVENT_RESULT_NAME,y.ofString(sy.EVENT_RESULT_NAME)]]))}constructor(){super(),this.signature=new Y("PostPad").setNamespace(h.STRING).setParameters(new Map([[sy.PARAMETER_STRING.getParameterName(),sy.PARAMETER_STRING],[sy.PARAMETER_POSTPAD_STRING.getParameterName(),sy.PARAMETER_POSTPAD_STRING],[sy.PARAMETER_LENGTH.getParameterName(),sy.PARAMETER_LENGTH]])).setEvents(new Map([[sy.EVENT_STRING.getName(),sy.EVENT_STRING]]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(sy.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(sy.PARAMETER_POSTPAD_STRING_NAME),s=e.getArguments()?.get(sy.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([B.outputOf(new Map([[sy.EVENT_RESULT_NAME,n.toString()]]))])}}class sx extends e_{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 b(sx.PARAMETER_STRING_NAME,y.ofString(sx.PARAMETER_STRING_NAME))}static{this.PARAMETER_PREPAD_STRING=new b(sx.PARAMETER_PREPAD_STRING_NAME,y.ofString(sx.PARAMETER_PREPAD_STRING_NAME))}static{this.PARAMETER_LENGTH=new b(sx.PARAMETER_LENGTH_NAME,y.ofInteger(sx.PARAMETER_LENGTH_NAME))}static{this.EVENT_STRING=new $($.OUTPUT,new Map([[sx.EVENT_RESULT_NAME,y.ofString(sx.EVENT_RESULT_NAME)]]))}getSignature(){return this.signature}constructor(){super(),this.signature=new Y("PrePad").setNamespace(h.STRING).setParameters(new Map([[sx.PARAMETER_STRING.getParameterName(),sx.PARAMETER_STRING],[sx.PARAMETER_PREPAD_STRING.getParameterName(),sx.PARAMETER_PREPAD_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_PREPAD_STRING_NAME),s=e.getArguments()?.get(sx.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([B.outputOf(new Map([[sx.EVENT_RESULT_NAME,n]]))])}}class sL extends e_{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 b(sL.PARAMETER_STRING_NAME,y.ofString(sL.PARAMETER_STRING_NAME))}static{this.PARAMETER_OTHER_STRING=new b(sL.PARAMETER_OTHER_STRING_NAME,y.ofString(sL.PARAMETER_OTHER_STRING_NAME))}static{this.PARAMETER_FIRST_OFFSET=new b(sL.PARAMETER_FIRST_OFFSET_NAME,y.ofInteger(sL.PARAMETER_FIRST_OFFSET_NAME))}static{this.PARAMETER_SECOND_OFFSET=new b(sL.PARAMETER_SECOND_OFFSET_NAME,y.ofInteger(sL.PARAMETER_SECOND_OFFSET_NAME))}static{this.PARAMETER_INTEGER=new b(sL.PARAMETER_INTEGER_NAME,y.ofInteger(sL.PARAMETER_INTEGER_NAME))}static{this.PARAMETER_BOOLEAN=new b(sL.PARAMETER_BOOLEAN_NAME,y.ofBoolean(sL.PARAMETER_BOOLEAN_NAME))}static{this.EVENT_BOOLEAN=new $($.OUTPUT,new Map([[sL.EVENT_RESULT_NAME,y.ofBoolean(sL.EVENT_RESULT_NAME)]]))}getSignature(){return this.signature}constructor(){super(),this.signature=new Y("RegionMatches").setNamespace(h.STRING).setParameters(new Map([[sL.PARAMETER_STRING.getParameterName(),sL.PARAMETER_STRING],[sL.PARAMETER_BOOLEAN.getParameterName(),sL.PARAMETER_BOOLEAN],[sL.PARAMETER_FIRST_OFFSET.getParameterName(),sL.PARAMETER_FIRST_OFFSET],[sL.PARAMETER_OTHER_STRING.getParameterName(),sL.PARAMETER_OTHER_STRING],[sL.PARAMETER_SECOND_OFFSET.getParameterName(),sL.PARAMETER_SECOND_OFFSET],[sL.PARAMETER_INTEGER.getParameterName(),sL.PARAMETER_INTEGER]])).setEvents(new Map([[sL.EVENT_BOOLEAN.getName(),sL.EVENT_BOOLEAN]]))}async internalExecute(e){let t=e.getArguments()?.get(sL.PARAMETER_STRING_NAME),r=e.getArguments()?.get(sL.PARAMETER_BOOLEAN_NAME),s=e.getArguments()?.get(sL.PARAMETER_FIRST_OFFSET_NAME),n=e?.getArguments()?.get(sL.PARAMETER_OTHER_STRING_NAME),a=e?.getArguments()?.get(sL.PARAMETER_SECOND_OFFSET_NAME),i=e.getArguments()?.get(sL.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([B.outputOf(new Map([[sL.EVENT_RESULT_NAME,o]]))])}}class sv extends e_{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 b(sv.PARAMETER_STRING_NAME,y.ofString(sv.PARAMETER_STRING_NAME))}static{this.PARAMETER_AT_START=new b(sv.PARAMETER_AT_START_NAME,y.ofInteger(sv.PARAMETER_AT_START_NAME))}static{this.PARAMETER_AT_LENGTH=new b(sv.PARAMETER_AT_LENGTH_NAME,y.ofInteger(sv.PARAMETER_AT_LENGTH_NAME))}static{this.PARAMETER_REPLACE_STRING=new b(sv.PARAMETER_REPLACE_STRING_NAME,y.ofString(sv.PARAMETER_REPLACE_STRING_NAME))}static{this.EVENT_STRING=new $($.OUTPUT,new Map([[sv.EVENT_RESULT_NAME,y.ofString(sv.EVENT_RESULT_NAME)]]))}constructor(){super(),this.signature=new Y("ReplaceAtGivenPosition").setNamespace(h.STRING).setParameters(new Map([[sv.PARAMETER_STRING.getParameterName(),sv.PARAMETER_STRING],[sv.PARAMETER_AT_START.getParameterName(),sv.PARAMETER_AT_START],[sv.PARAMETER_AT_LENGTH.getParameterName(),sv.PARAMETER_AT_LENGTH],[sv.PARAMETER_REPLACE_STRING.getParameterName(),sv.PARAMETER_REPLACE_STRING]])).setEvents(new Map([[sv.EVENT_STRING.getName(),sv.EVENT_STRING]]))}getSignature(){return this.signature}async internalExecute(e){let t=e?.getArguments()?.get(sv.PARAMETER_STRING_NAME),r=e?.getArguments()?.get(sv.PARAMETER_AT_START_NAME),s=e?.getArguments()?.get(sv.PARAMETER_AT_LENGTH_NAME),n=e?.getArguments()?.get(sv.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([B.outputOf(new Map([[sv.EVENT_RESULT_NAME,t]]))])}}class sb extends e_{constructor(){super(),this.VALUE="value",this.signature=new Y("Reverse").setNamespace(h.STRING).setParameters(new Map([[this.VALUE,new b(this.VALUE,y.ofString(this.VALUE)).setVariableArgument(!1)]])).setEvents(new Map([$.outputEventMapEntry(new Map([[this.VALUE,new y().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([B.outputOf(V.of(this.VALUE,s))])}}class sU extends e_{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 b(this.PARAMETER_STRING_NAME,y.ofString(this.PARAMETER_STRING_NAME)),this.PARAMETER_SPLIT_STRING=new b(this.PARAMETER_SPLIT_STRING_NAME,y.ofString(this.PARAMETER_SPLIT_STRING_NAME)),this.EVENT_ARRAY=new $($.OUTPUT,V.of(this.EVENT_RESULT_NAME,y.ofArray(this.EVENT_RESULT_NAME))),this.signature=new Y("Split").setNamespace(h.STRING).setParameters(new Map([[this.PARAMETER_STRING_NAME,this.PARAMETER_STRING],[this.PARAMETER_SPLIT_STRING_NAME,this.PARAMETER_SPLIT_STRING]])).setEvents(new Map([$.outputEventMapEntry(new Map([[this.EVENT_RESULT_NAME,y.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([B.outputOf(V.of(this.EVENT_RESULT_NAME,t.split(r)))])}}class sV extends e_{getSignature(){return this.signature}constructor(){super(),this.PARAMETER_INPUT_ANYTYPE_NAME="anytype",this.EVENT_RESULT_NAME="result",this.PARAMETER_INPUT_ANYTYPE=new b(this.PARAMETER_INPUT_ANYTYPE_NAME,y.ofAny(this.PARAMETER_INPUT_ANYTYPE_NAME)),this.EVENT_STRING=new $($.OUTPUT,new Map([[this.EVENT_RESULT_NAME,y.ofString(this.EVENT_RESULT_NAME)]])),this.signature=new Y("ToString").setNamespace(h.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([B.outputOf(new Map([[this.EVENT_RESULT_NAME,r]]))])}}class sC extends e_{static{this.PARAMETER_STRING_NAME="string"}static{this.PARAMETER_LENGTH_NAME="length"}static{this.EVENT_RESULT_NAME="result"}static{this.PARAMETER_STRING=new b(sC.PARAMETER_STRING_NAME,y.ofString(sC.PARAMETER_STRING_NAME))}static{this.PARAMETER_LENGTH=new b(sC.PARAMETER_LENGTH_NAME,y.ofInteger(sC.PARAMETER_LENGTH_NAME))}static{this.EVENT_STRING=new $($.OUTPUT,new Map([[sC.EVENT_RESULT_NAME,y.ofString(sC.EVENT_RESULT_NAME)]]))}getSignature(){return this.signature}constructor(){super(),this.signature=new Y("TrimTo").setNamespace(h.STRING).setParameters(new Map([[sC.PARAMETER_STRING.getParameterName(),sC.PARAMETER_STRING],[sC.PARAMETER_LENGTH.getParameterName(),sC.PARAMETER_LENGTH]])).setEvents(new Map([[sC.EVENT_STRING.getName(),sC.EVENT_STRING]]))}async internalExecute(e){let t=e.getArguments()?.get(sC.PARAMETER_STRING_NAME),r=e.getArguments()?.get(sC.PARAMETER_LENGTH_NAME);return new F([B.outputOf(new Map([[sC.EVENT_RESULT_NAME,t.substring(0,r)]]))])}}class sD{async find(e,t){return e!=h.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=V.ofArrayEntries(sO.ofEntryStringAndStringOutput("Trim",e=>e.trim()),sO.ofEntryStringAndStringOutput("TrimStart",e=>e.trimStart()),sO.ofEntryStringAndStringOutput("TrimEnd",e=>e.trimEnd()),sO.ofEntryStringAndIntegerOutput("Length",e=>e.length),sO.ofEntryStringStringAndIntegerOutput("Frequency",(e,t)=>{let r=0,s=e.indexOf(t);for(;-1!=s;)r++,s=e.indexOf(t,s+1);return r}),sO.ofEntryStringAndStringOutput("LowerCase",e=>e.toLocaleLowerCase()),sO.ofEntryStringAndStringOutput("UpperCase",e=>e.toUpperCase()),sO.ofEntryStringAndBooleanOutput("IsBlank",e=>""===e.trim()),sO.ofEntryStringAndBooleanOutput("IsEmpty",e=>""===e),sO.ofEntryStringStringAndBooleanOutput("Contains",(e,t)=>-1!=e.indexOf(t)),sO.ofEntryStringStringAndBooleanOutput("EndsWith",(e,t)=>e.endsWith(t)),sO.ofEntryStringStringAndBooleanOutput("StartsWith",(e,t)=>e.startsWith(t)),sO.ofEntryStringStringAndBooleanOutput("EqualsIgnoreCase",(e,t)=>e.toUpperCase()==t.toUpperCase()),sO.ofEntryStringStringAndBooleanOutput("Matches",(e,t)=>new RegExp(t).test(e)),sO.ofEntryStringStringAndIntegerOutput("IndexOf",(e,t)=>e.indexOf(t)),sO.ofEntryStringStringAndIntegerOutput("LastIndexOf",(e,t)=>e.lastIndexOf(t)),sO.ofEntryStringIntegerAndStringOutput("Repeat",(e,t)=>e.repeat(t)),sO.ofEntryStringStringIntegerAndIntegerOutput("IndexOfWithStartPoint",(e,t,r)=>e.indexOf(t,r)),sO.ofEntryStringStringIntegerAndIntegerOutput("LastIndexOfWithStartPoint",(e,t,r)=>e.lastIndexOf(t,r)),sO.ofEntryStringStringStringAndStringOutput("Replace",(e,t,r)=>e.replaceAll(t,r)),sO.ofEntryStringStringStringAndStringOutput("ReplaceFirst",(e,t,r)=>e.replace(t,r)),sO.ofEntryStringIntegerIntegerAndStringOutput("SubString",(e,t,r)=>e.substring(t,r)),G(new sd),G(new sI),G(new sw),G(new sy),G(new sx),G(new sL),G(new sv),G(new sb),G(new sU),G(new sV),G(new sC),G(new sP)),this.filterableNames=Array.from(this.repoMap.values()).map(e=>e.getSignature().getFullName())}}class sG extends e_{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 b(sG.PARAMETER_TIMESTAMP_NAME,y.ofRef(h.DATE+".Timestamp"))}static{this.PARAMETER_TIMESTAMP_ONE=new b(sG.PARAMETER_TIMESTAMP_NAME_ONE,y.ofRef(h.DATE+".Timestamp"))}static{this.PARAMETER_TIMESTAMP_TWO=new b(sG.PARAMETER_TIMESTAMP_NAME_TWO,y.ofRef(h.DATE+".Timestamp"))}static{this.PARAMETER_VARIABLE_UNIT=new b(sG.PARAMETER_UNIT_NAME,y.ofRef(h.DATE+".Timeunit")).setVariableArgument(!0)}static{this.PARAMETER_UNIT=new b(sG.PARAMETER_UNIT_NAME,y.ofRef(h.DATE+".Timeunit"))}static{this.PARAMETER_NUMBER=new b(sG.PARAMETER_NUMBER_NAME,y.ofInteger(sG.PARAMETER_NUMBER_NAME))}static{this.EVENT_RESULT_NAME="result"}static{this.EVENT_TIMESTAMP_NAME="isoTimeStamp"}static{this.EVENT_INT=new $($.OUTPUT,V.of(sG.EVENT_RESULT_NAME,y.ofInteger(sG.EVENT_RESULT_NAME)))}static{this.EVENT_STRING=new $($.OUTPUT,V.of(sG.EVENT_RESULT_NAME,y.ofString(sG.EVENT_RESULT_NAME)))}static{this.EVENT_LONG=new $($.OUTPUT,V.of(sG.EVENT_RESULT_NAME,y.ofLong(sG.EVENT_RESULT_NAME)))}static{this.EVENT_BOOLEAN=new $($.OUTPUT,V.of(sG.EVENT_RESULT_NAME,y.ofBoolean(sG.EVENT_RESULT_NAME)))}static{this.EVENT_TIMESTAMP=new $($.OUTPUT,V.of(sG.EVENT_TIMESTAMP_NAME,y.ofRef(h.DATE+".Timestamp")))}getSignature(){return this.signature}constructor(e,t,...r){if(super(),this.signature=new Y(e).setNamespace(h.DATE).setEvents(V.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 sG{async internalExecute(e){return new F([B.outputOf(V.of(sG.EVENT_RESULT_NAME,t(e.getArguments()?.get(sG.PARAMETER_TIMESTAMP_NAME))))])}}(e,sG.EVENT_INT,sG.PARAMETER_TIMESTAMP)]}static ofEntryTimestampAndBooleanOutput(e,t){return[e,new class extends sG{async internalExecute(e){return new F([B.outputOf(V.of(sG.EVENT_RESULT_NAME,t(e.getArguments()?.get(sG.PARAMETER_TIMESTAMP_NAME))))])}}(e,sG.EVENT_BOOLEAN,sG.PARAMETER_TIMESTAMP)]}static ofEntryTimestampAndStringOutput(e,t){return[e,new class extends sG{async internalExecute(e){return new F([B.outputOf(V.of(sG.EVENT_RESULT_NAME,t(e.getArguments()?.get(sG.PARAMETER_TIMESTAMP_NAME))))])}}(e,sG.EVENT_STRING,sG.PARAMETER_TIMESTAMP)]}static ofEntryTimestampIntegerAndTimestampOutput(e,t){return[e,new class extends sG{async internalExecute(e){return new F([B.outputOf(V.of(sG.EVENT_RESULT_NAME,t(e.getArguments()?.get(sG.PARAMETER_TIMESTAMP_NAME),e.getArguments()?.get(sG.PARAMETER_NUMBER_NAME))))])}}(e,sG.EVENT_TIMESTAMP,sG.PARAMETER_TIMESTAMP,sG.PARAMETER_NUMBER)]}static ofEntryTimestampTimestampAndTOutput(e,t,r,...s){return[e,new class extends sG{async internalExecute(e){let t=[];return s?.length&&t.push(...s.map(t=>e.getArguments()?.get(t.getParameterName()))),new F([B.outputOf(V.of(sG.EVENT_RESULT_NAME,r(e.getArguments()?.get(sG.PARAMETER_TIMESTAMP_NAME_ONE),e.getArguments()?.get(sG.PARAMETER_TIMESTAMP_NAME_TWO),t)))])}}(e,t,sG.PARAMETER_TIMESTAMP_ONE,sG.PARAMETER_TIMESTAMP_TWO,...s)]}}function s$(t){let r=e.fromISO(t,{setZone:!0});if(!r?.isValid)throw Error("Invalid ISO timestamp");return r}class sB extends sG{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",sG.EVENT_TIMESTAMP,sG.PARAMETER_TIMESTAMP,b.of(sB.PARAMETER_YEARS_NAME,y.ofNumber(sB.PARAMETER_YEARS_NAME).setDefaultValue(0)),b.of(sB.PARAMETER_MONTHS_NAME,y.ofNumber(sB.PARAMETER_MONTHS_NAME).setDefaultValue(0)),b.of(sB.PARAMETER_DAYS_NAME,y.ofNumber(sB.PARAMETER_DAYS_NAME).setDefaultValue(0)),b.of(sB.PARAMETER_HOURS_NAME,y.ofNumber(sB.PARAMETER_HOURS_NAME).setDefaultValue(0)),b.of(sB.PARAMETER_MINUTES_NAME,y.ofNumber(sB.PARAMETER_MINUTES_NAME).setDefaultValue(0)),b.of(sB.PARAMETER_SECONDS_NAME,y.ofNumber(sB.PARAMETER_SECONDS_NAME).setDefaultValue(0)),b.of(sB.PARAMETER_MILLISECONDS_NAME,y.ofNumber(sB.PARAMETER_MILLISECONDS_NAME).setDefaultValue(0))),this.isAdd=e}async internalExecute(e){let t,r=s$(e.getArguments()?.get(sG.PARAMETER_TIMESTAMP_NAME)),s=e.getArguments()?.get(sB.PARAMETER_YEARS_NAME),n=e.getArguments()?.get(sB.PARAMETER_MONTHS_NAME),a=e.getArguments()?.get(sB.PARAMETER_DAYS_NAME),i=e.getArguments()?.get(sB.PARAMETER_HOURS_NAME),o=e.getArguments()?.get(sB.PARAMETER_MINUTES_NAME),E={years:s,months:n,days:a,hours:i,minutes:o,seconds:e.getArguments()?.get(sB.PARAMETER_SECONDS_NAME),milliseconds:e.getArguments()?.get(sB.PARAMETER_MILLISECONDS_NAME)};return t=this.isAdd?r.plus(E):r.minus(E),new F([B.outputOf(V.of(sG.EVENT_TIMESTAMP_NAME,t.toISO()))])}}class sk extends e_{constructor(e,t){super(),this.paramName=`epoch${t?"Seconds":"Milliseconds"}`,this.isSeconds=t,this.signature=new Y(e).setNamespace(h.DATE).setParameters(new Map([[this.paramName,b.of(this.paramName,new y().setName(this.paramName).setType(m.of(c.LONG,c.INTEGER,c.STRING)))]])).setEvents(new Map([[sG.EVENT_TIMESTAMP.getName(),sG.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([B.outputOf(V.of(sG.EVENT_TIMESTAMP_NAME,new Date(r).toISOString()))]))}}class sF extends e_{constructor(e,t){super(),this.isSeconds=t,this.signature=new Y(e).setNamespace(h.DATE).setParameters(new Map([[sG.PARAMETER_TIMESTAMP_NAME,sG.PARAMETER_TIMESTAMP]])).setEvents(new Map([[sG.EVENT_TIMESTAMP.getName(),sG.EVENT_LONG]]))}getSignature(){return this.signature}internalExecute(t){let r=t.getArguments()?.get(sG.PARAMETER_TIMESTAMP_NAME),s=this.isSeconds?e.fromISO(r).toSeconds():e.fromISO(r).toMillis();return Promise.resolve(new F([B.outputOf(V.of(sG.EVENT_RESULT_NAME,s))]))}}class sY extends sG{static{this.PARAMETER_FORMAT_NAME="format"}static{this.PARAMETER_LOCALE_NAME="locale"}constructor(){super("ToDateString",sG.EVENT_STRING,sG.PARAMETER_TIMESTAMP,b.of(sY.PARAMETER_FORMAT_NAME,y.ofString(sY.PARAMETER_FORMAT_NAME)),b.of(sY.PARAMETER_LOCALE_NAME,y.ofString(sY.PARAMETER_LOCALE_NAME).setDefaultValue("")))}async internalExecute(e){let t=s$(e.getArguments()?.get(sG.PARAMETER_TIMESTAMP_NAME)),r=e.getArguments()?.get(sY.PARAMETER_FORMAT_NAME),s=e.getArguments()?.get(sY.PARAMETER_LOCALE_NAME);return""===s&&(s="system"),new F([B.outputOf(V.of(sG.EVENT_RESULT_NAME,t.toFormat(r,{locale:s})))])}}class sH extends sG{static{this.PARAMETER_TIMEZONE_NAME="timezone"}constructor(){super("SetTimeZone",sG.EVENT_TIMESTAMP,sG.PARAMETER_TIMESTAMP,b.of(sH.PARAMETER_TIMEZONE_NAME,y.ofString(sH.PARAMETER_TIMEZONE_NAME)))}async internalExecute(e){let t=s$(e.getArguments()?.get(sG.PARAMETER_TIMESTAMP_NAME)),r=e.getArguments()?.get(sH.PARAMETER_TIMEZONE_NAME);return new F([B.outputOf(V.of(sG.EVENT_TIMESTAMP_NAME,t.setZone(r).toISO()))])}}class sW extends sG{static{this.PARAMETER_START_TIMESTAMP_NAME="startTimestamp"}static{this.PARAMETER_END_TIMESTAMP_NAME="endTimestamp"}static{this.PARAMETER_CHECK_TIMESTAMP_NAME="checkTimestamp"}constructor(){super("IsBetween",sW.EVENT_BOOLEAN,b.of(sW.PARAMETER_START_TIMESTAMP_NAME,y.ofRef(h.DATE+".Timestamp")),b.of(sW.PARAMETER_END_TIMESTAMP_NAME,y.ofRef(h.DATE+".Timestamp")),b.of(sW.PARAMETER_CHECK_TIMESTAMP_NAME,y.ofRef(h.DATE+".Timestamp")))}async internalExecute(e){let t=e.getArguments()?.get(sW.PARAMETER_START_TIMESTAMP_NAME),r=e.getArguments()?.get(sW.PARAMETER_END_TIMESTAMP_NAME),s=e.getArguments()?.get(sW.PARAMETER_CHECK_TIMESTAMP_NAME),n=s$(t),a=s$(r),i=s$(s);return n>a&&([n,a]=[a,n]),new F([B.outputOf(V.of(sW.EVENT_RESULT_NAME,n<=i&&i<=a))])}}class sj extends e_{constructor(e){super(),this.isLast=e,this.signature=new Y(e?"LastOf":"FirstOf").setNamespace(h.DATE).setParameters(new Map([[sG.PARAMETER_TIMESTAMP_NAME,new b(sG.PARAMETER_TIMESTAMP_NAME,y.ofRef(h.DATE+".Timestamp")).setVariableArgument(!0)]])).setEvents(new Map([[sG.EVENT_TIMESTAMP.getName(),sG.EVENT_TIMESTAMP]]))}getSignature(){return this.signature}internalExecute(e){let t=e.getArguments()?.get(sG.PARAMETER_TIMESTAMP_NAME);if(!t?.length)throw Error("No timestamps provided");let r=t.map(e=>s$(e));return r.sort((e,t)=>e.toMillis()-t.toMillis()),Promise.resolve(new F([B.outputOf(V.of(sG.EVENT_TIMESTAMP_NAME,r[this.isLast?r.length-1:0].toISO()))]))}}class sX extends sG{static{this.EVENT_TIME_OBJECT_NAME="object"}static{this.EVENT_TIME_ARRAY_NAME="array"}constructor(e){super(e?"TimeAsArray":"TimeAsObject",new $($.OUTPUT,V.of(e?sX.EVENT_TIME_ARRAY_NAME:sX.EVENT_TIME_OBJECT_NAME,e?y.ofArray(sX.EVENT_TIME_ARRAY_NAME,y.ofInteger("timeParts")):y.ofRef(h.DATE+".TimeObject"))),sG.PARAMETER_TIMESTAMP),this.isArray=e}async internalExecute(e){let t=s$(e.getArguments()?.get(sG.PARAMETER_TIMESTAMP_NAME)).toObject();return new F([B.outputOf(V.of(this.isArray?sX.EVENT_TIME_ARRAY_NAME:sX.EVENT_TIME_OBJECT_NAME,this.isArray?[t.year,t.month,t.day,t.hour,t.minute,t.second,t.millisecond]:t))])}}class sJ extends sG{constructor(e){super(e?"StartOf":"EndOf",sG.EVENT_TIMESTAMP,sG.PARAMETER_TIMESTAMP,sG.PARAMETER_UNIT),this.isStart=e}async internalExecute(e){let t=s$(e.getArguments()?.get(sG.PARAMETER_TIMESTAMP_NAME)),r=e.getArguments()?.get(sG.PARAMETER_UNIT_NAME)?.toLowerCase();r=r.substring(0,r.length-1);let s=this.isStart?t.startOf(r):t.endOf(r);return new F([B.outputOf(V.of(sG.EVENT_TIMESTAMP_NAME,s.toISO({includeOffset:!0})))])}}class sq extends sG{static{this.EVENT_NAMES_NAME="names"}static{this.PARAMETER_UNIT_NAME="unit"}static{this.PARAMETER_LOCALE_NAME="locale"}constructor(){super("GetNames",new $(sq.EVENT_NAMES_NAME,V.of(sq.EVENT_NAMES_NAME,y.ofArray(sq.EVENT_NAMES_NAME,y.ofString(sq.EVENT_NAMES_NAME)))),new b(sq.PARAMETER_UNIT_NAME,y.ofString(sq.PARAMETER_UNIT_NAME).setEnums(["TIMEZONES","MONTHS","WEEKDAYS"])),new b(sq.PARAMETER_LOCALE_NAME,y.ofString(sq.PARAMETER_LOCALE_NAME).setDefaultValue("system")))}async internalExecute(e){let t=e.getArguments()?.get(sq.PARAMETER_UNIT_NAME),r=e.getArguments()?.get(sq.PARAMETER_LOCALE_NAME);return new F([B.outputOf(V.of(sq.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 e_{internalExecute(t){let r=t.getArguments()?.get(sG.PARAMETER_TIMESTAMP_NAME),s=e.fromISO(r);return Promise.resolve(new F([B.outputOf(V.of(sG.EVENT_RESULT_NAME,s.isValid))]))}getSignature(){return this.signature}constructor(...e){super(...e),this.signature=new Y("IsValidISODate").setNamespace(h.DATE).setParameters(new Map([b.ofEntry(sG.PARAMETER_TIMESTAMP_NAME,y.ofString(sG.PARAMETER_TIMESTAMP_NAME))])).setEvents(new Map([$.outputEventMapEntry(V.of(sG.EVENT_RESULT_NAME,y.ofBoolean(sG.EVENT_RESULT_NAME)))]))}}class sQ extends sG{static{this.PARAMETER_BASE_NAME="base"}static{this.PARAMETER_BASE=new b(sQ.PARAMETER_BASE_NAME,y.ofRef(h.DATE+".Timestamp").setDefaultValue(""))}static{this.PARAMETER_LOCALE_NAME="locale"}static{this.PARAMETER_LOCALE=new b(sQ.PARAMETER_LOCALE_NAME,y.ofString(sQ.PARAMETER_LOCALE_NAME).setDefaultValue("system"))}static{this.PARAMETER_FORMAT_NAME="format"}static{this.PARAMETER_FORMAT=new b(sQ.PARAMETER_FORMAT_NAME,y.ofString(sQ.PARAMETER_FORMAT_NAME).setEnums(["LONG","SHORT","NARROW"]).setDefaultValue("LONG"))}static{this.PARAMETER_ROUND_NAME="round"}static{this.PARAMETER_ROUND=new b(sQ.PARAMETER_ROUND_NAME,y.ofBoolean(sQ.PARAMETER_ROUND_NAME).setDefaultValue(!0))}constructor(){super("FromNow",sG.EVENT_STRING,sG.PARAMETER_TIMESTAMP,sQ.PARAMETER_FORMAT,sQ.PARAMETER_BASE,sG.PARAMETER_VARIABLE_UNIT,sQ.PARAMETER_ROUND,sQ.PARAMETER_LOCALE)}internalExecute(t){let r=t.getArguments()?.get(sQ.PARAMETER_BASE_NAME),s=""===r?e.now():e.fromISO(r),n=t.getArguments()?.get(sG.PARAMETER_TIMESTAMP_NAME),a=e.fromISO(n),i=t.getArguments()?.get(sQ.PARAMETER_UNIT_NAME),o=t.getArguments()?.get(sQ.PARAMETER_FORMAT_NAME),E=t.getArguments()?.get(sQ.PARAMETER_ROUND_NAME),u=t.getArguments()?.get(sQ.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([B.outputOf(V.of(sG.EVENT_RESULT_NAME,a.toRelative(A)??"Unknown"))]))}}class sz extends sG{static{this.PARAMETER_FORMAT_NAME="format"}static{this.PARAMETER_TIMESTAMP_STRING_NAME="timestampString"}constructor(){super("FromDateString",sG.EVENT_TIMESTAMP,b.of(sz.PARAMETER_TIMESTAMP_STRING_NAME,y.ofString(sz.PARAMETER_TIMESTAMP_STRING_NAME)),b.of(sz.PARAMETER_FORMAT_NAME,y.ofString(sz.PARAMETER_FORMAT_NAME)))}async internalExecute(t){let r=t.getArguments()?.get(sz.PARAMETER_TIMESTAMP_STRING_NAME),s=t.getArguments()?.get(sz.PARAMETER_FORMAT_NAME),n=e.fromFormat(r,s);return new F([B.outputOf(V.of(sG.EVENT_RESULT_NAME,n.toISO()))])}}class sZ extends sG{constructor(){super("GetCurrentTimestamp",sG.EVENT_TIMESTAMP)}async internalExecute(t){return new F([B.outputOf(V.of(sG.EVENT_TIMESTAMP_NAME,e.now().toISO()))])}}class s0{find(e,t){return e!=h.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=V.ofArrayEntries(["EpochSecondsToTimestamp",new sk("EpochSecondsToTimestamp",!0)],["EpochMillisecondsToTimestamp",new sk("EpochMillisecondsToTimestamp",!1)],sG.ofEntryTimestampAndIntegerOutput("GetDay",e=>s$(e).day),sG.ofEntryTimestampAndIntegerOutput("GetDayOfWeek",e=>s$(e).weekday),sG.ofEntryTimestampAndIntegerOutput("GetMonth",e=>s$(e).month),sG.ofEntryTimestampAndIntegerOutput("GetYear",e=>s$(e).year),sG.ofEntryTimestampAndIntegerOutput("GetHours",e=>s$(e).hour),sG.ofEntryTimestampAndIntegerOutput("GetMinutes",e=>s$(e).minute),sG.ofEntryTimestampAndIntegerOutput("GetSeconds",e=>s$(e).second),sG.ofEntryTimestampAndIntegerOutput("GetMilliseconds",e=>s$(e).millisecond),sG.ofEntryTimestampAndIntegerOutput("GetDaysInMonth",e=>s$(e).daysInMonth),sG.ofEntryTimestampAndIntegerOutput("GetDaysInYear",e=>s$(e).daysInYear),["TimestampToEpochSeconds",new sF("TimestampToEpochSeconds",!0)],["TimestampToEpochMilliseconds",new sF("TimestampToEpochMilliseconds",!1)],sG.ofEntryTimestampAndStringOutput("GetTimeZoneName",e=>s$(e).zoneName),sG.ofEntryTimestampAndStringOutput("GetTimeZoneOffsetLong",e=>s$(e).offsetNameLong),sG.ofEntryTimestampAndStringOutput("GetTimeZoneOffsetShort",e=>s$(e).offsetNameShort),sG.ofEntryTimestampAndIntegerOutput("GetTimeZoneOffset",e=>s$(e).offset),["ToDateString",new sY],["AddTime",new sB(!0)],["SubtractTime",new sB(!1)],["GetCurrentTimestamp",new sZ],sG.ofEntryTimestampTimestampAndTOutput("Difference",new $($.OUTPUT,V.of(sG.EVENT_RESULT_NAME,y.ofRef(`${h.DATE}.Duration`))),(e,t,r)=>{let s,n=s$(e),a=s$(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()},sG.PARAMETER_VARIABLE_UNIT),sG.ofEntryTimestampIntegerAndTimestampOutput("SetDay",(e,t)=>s$(e).set({day:t}).toISO()),sG.ofEntryTimestampIntegerAndTimestampOutput("SetMonth",(e,t)=>s$(e).set({month:t}).toISO()),sG.ofEntryTimestampIntegerAndTimestampOutput("SetYear",(e,t)=>s$(e).set({year:t}).toISO()),sG.ofEntryTimestampIntegerAndTimestampOutput("SetHours",(e,t)=>s$(e).set({hour:t}).toISO()),sG.ofEntryTimestampIntegerAndTimestampOutput("SetMinutes",(e,t)=>s$(e).set({minute:t}).toISO()),sG.ofEntryTimestampIntegerAndTimestampOutput("SetSeconds",(e,t)=>s$(e).set({second:t}).toISO()),sG.ofEntryTimestampIntegerAndTimestampOutput("SetMilliseconds",(e,t)=>s$(e).set({millisecond:t}).toISO()),["SetTimeZone",new sH],sG.ofEntryTimestampTimestampAndTOutput("IsBefore",new $($.OUTPUT,V.of(sG.EVENT_RESULT_NAME,y.ofBoolean(sG.EVENT_RESULT_NAME))),(e,t)=>s$(e)<s$(t)),sG.ofEntryTimestampTimestampAndTOutput("IsAfter",new $($.OUTPUT,V.of(sG.EVENT_RESULT_NAME,y.ofBoolean(sG.EVENT_RESULT_NAME))),(e,t)=>s$(e)>s$(t)),sG.ofEntryTimestampTimestampAndTOutput("IsSame",new $($.OUTPUT,V.of(sG.EVENT_RESULT_NAME,y.ofBoolean(sG.EVENT_RESULT_NAME))),(e,t)=>s$(e)===s$(t)),sG.ofEntryTimestampTimestampAndTOutput("IsSameOrBefore",new $($.OUTPUT,V.of(sG.EVENT_RESULT_NAME,y.ofBoolean(sG.EVENT_RESULT_NAME))),(e,t)=>s$(e)<=s$(t)),sG.ofEntryTimestampTimestampAndTOutput("IsSameOrAfter",new $($.OUTPUT,V.of(sG.EVENT_RESULT_NAME,y.ofBoolean(sG.EVENT_RESULT_NAME))),(e,t)=>s$(e)>=s$(t)),sG.ofEntryTimestampAndBooleanOutput("IsInLeapYear",e=>s$(e).isInLeapYear),sG.ofEntryTimestampAndBooleanOutput("IsInDST",e=>s$(e).isInDST),["IsBetween",new sW],["LastOf",new sj(!0)],["FirstOf",new sj(!1)],["StartOf",new sJ(!0)],["EndOf",new sJ(!1)],["TimeAsObject",new sX(!1)],["TimeAsArray",new sX(!0)],["GetNames",new sq],["IsValidISODate",new sK],["FromNow",new sQ],["FromDateString",new sz]),this.filterableNames=Array.from(this.repoMap.values()).map(e=>e.getSignature().getFullName())}}class s1 extends e_{static{this.MILLIS="millis"}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get(s1.MILLIS);return await new Promise(e=>setTimeout(e,t)),new F([B.outputOf(new Map)])}constructor(...e){super(...e),this.signature=new Y("Wait").setNamespace(h.SYSTEM).setParameters(new Map([b.ofEntry(s1.MILLIS,y.ofNumber(s1.MILLIS).setMinimum(0).setDefaultValue(0))])).setEvents(new Map([$.outputEventMapEntry(new Map)]))}}let s2="resultShape",s5="value";class s7 extends e_{constructor(){super(),this.signature=new Y("Make").setNamespace(h.SYSTEM).setParameters(new Map([b.ofEntry(s2,y.ofAny(s2))])).setEvents(new Map([$.outputEventMapEntry(V.of(s5,y.ofAny(s5)))]))}getSignature(){return this.signature}async internalExecute(e){let t=(e.getArguments()??new Map).get(s2),r=e.getValuesMap(),s=this.processValue(t,r);return new F([B.outputOf(V.of(s5,s))])}processValue(e,t){if(null==e)return e;if("string"==typeof e)return this.evaluateExpression(e,t);if(Array.isArray(e))return e.map(e=>this.processValue(e,t));if("object"==typeof e){let r={};for(let[s,n]of Object.entries(e))r[s]=this.processValue(n,t);return r}return e}evaluateExpression(e,t){if(!e||!e.startsWith("{{")||!e.endsWith("}}"))return e;let r=new rP(e.substring(2,e.length-2)).evaluate(t);return void 0!==r?r:null}}t({},"HybridRepository",()=>s9);class s9{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 s4 extends e_{static{this.SOURCE="source"}static{this.SCHEMA="schema"}static{this.IS_VALID="isValid"}getSignature(){return this.signature}internalExecute(e){let t=e.getArguments()?.get(s4.SOURCE),r=y.from(e?.getArguments()?.get(s4.SCHEMA));if(!r)throw new k("Schema is not supplied.");return this.validateSchema(r,e.getSchemaRepository(),t)}async validateSchema(e,t,r){try{return await eN.validate([],e,t,r,!0),new F([B.outputOf(V.of(s4.IS_VALID,!0))])}catch(e){return new F([B.outputOf(V.of(s4.IS_VALID,!1))])}}constructor(...e){super(...e),this.signature=new Y("ValidateSchema").setNamespace(h.SYSTEM_OBJECT).setParameters(new Map([b.ofEntry(s4.SOURCE,y.ofAny(s4.SCHEMA)),b.ofEntry(s4.SCHEMA,y.SCHEMA,!1,L.CONSTANT)])).setEvents(new Map([$.outputEventMapEntry(V.of(s4.IS_VALID,y.ofBoolean(s4.IS_VALID)))]))}}let s6="value",s3="error",s8="errorMessage",ne="source";class nt extends e_{constructor(){super(),this.signature=new Y("JSONParse").setNamespace(h.SYSTEM_JSON).setParameters(new Map([b.ofEntry(ne,y.ofString(ne))])).setEvents(new Map([$.eventMapEntry(s3,new Map([[s8,y.ofString(s8)]])),$.outputEventMapEntry(new Map([[s6,y.ofAny(s6)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t,r=e.getArguments()?.get("source");try{t=r?JSON.parse(r):null}catch(e){return new F([B.of(s3,new Map([[s8,e?.message??"Unknown Error parsing JSON"]])),B.outputOf(new Map([[s6,null]]))])}return new F([B.outputOf(new Map([[s6,t]]))])}}let nr="value",ns="source";class nn extends e_{constructor(){super(),this.signature=new Y("JSONStringify").setNamespace(h.SYSTEM_JSON).setParameters(new Map([b.ofEntry(ns,y.ofAny(ns))])).setEvents(new Map([$.outputEventMapEntry(new Map([[nr,y.ofString(nr)]]))]))}getSignature(){return this.signature}async internalExecute(e){let t=e.getArguments()?.get("source");return new F([B.outputOf(new Map([[nr,JSON.stringify(t??null)]]))])}}class na{constructor(){this.map=new Map([[h.SYSTEM_JSON,new Map([G(new nt),G(new nn)])],[h.SYSTEM_CTX,new Map([G(new tl),G(new tg),G(new rL)])],[h.SYSTEM_LOOP,new Map([G(new rz),G(new rF),G(new rG),G(new rX)])],[h.SYSTEM,new Map([G(new rC),G(new rV),G(new sS),G(new s1),G(new to),G(new s4),G(new s7)])]]),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 ni extends s9{constructor(){super(new na,new sn,new sD,new tE,new sM,new s0)}}t({},"StatementExecution",()=>nE),t({},"StatementMessage",()=>no);class no{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 nE{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 no(e,t))}addDependency(e){this.dependencies.add(e)}getDepenedencies(){return this.dependencies}equals(e){return e instanceof nE&&e.statement.equals(this.statement)}}t({},"ContextTokenValueExtractor",()=>nu);class nu extends e0{static{this.PREFIX="Context."}constructor(e){super(),this.context=e}getValueInternal(e){let t=e0.splitPath(e),r=t[1],s=r.indexOf("["),n=2;return -1!=s&&(r=t[1].substring(0,s),(t=[...t])[1]=t[1].substring(s),n=1),this.retrieveElementFrom(e,t,n,this.context.get(r)?.getElement())}getPrefix(){return nu.PREFIX}getStore(){return l(this.context)?this.context:Array.from(this.context.entries()).reduce((e,[t,r])=>(l(r)||(e[t]=r.getElement()),e),{})}}t({},"OutputMapTokenValueExtractor",()=>nA);class nA extends e0{static{this.PREFIX="Steps."}constructor(e){super(),this.output=e}getValueInternal(e){let t=e0.splitPath(e),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 nA.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",()=>nh);class nh extends e0{static{this.PREFIX="Arguments."}constructor(e){super(),this.args=e}getValueInternal(e){let t=e0.splitPath(e),r=t[1],s=r.indexOf("["),n=2;return -1!=s&&(r=t[1].substring(0,s),(t=[...t])[1]=t[1].substring(s),n=1),this.retrieveElementFrom(e,t,n,this.args.get(r))}getPrefix(){return nh.PREFIX}getStore(){return l(this.args)?this.args:Array.from(this.args.entries()).reduce((e,[t,r])=>(e[t]=r,e),{})}}t({},"GraphVertex",()=>nT),t({},"ExecutionGraph",()=>nl);class nl{constructor(e=!1){this.nodeMap=new Map,this.edgesBuilt=!1,this.isSubGrph=e}areEdgesBuilt(){return this.edgesBuilt}setEdgesBuilt(e){this.edgesBuilt=e}getVerticesData(){return Array.from(this.nodeMap.values()).map(e=>e.getData())}addVertex(e){if(!this.nodeMap.has(e.getUniqueKey())){let t=new nT(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 W(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 nT{constructor(e,t){this.outVertices=new Map,this.inVertices=new Set,this.subGraphCache=new Map,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 K(this,e)),t}addInEdgeTo(e,t){return this.inVertices.add(new K(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=this.subGraphCache.get(e);if(t)return t;let r=new nl(!0);var s=new W(Array.from(this.outVertices.get(e)??[]));for(s.map(e=>e.getData()).forEach(e=>r.addVertex(e));!s.isEmpty();)Array.from(s.pop().outVertices.values()).flatMap(e=>Array.from(e)).forEach(e=>{r.addVertex(e.getData()),s.add(e)});return this.subGraphCache.set(e,r),r}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",()=>nf),t({},"JsonExpression",()=>nc);class nc{constructor(e){this.expression=e}getExpression(){return this.expression}}t({},"ParameterReferenceType",()=>ng);var ng=((E={}).VALUE="VALUE",E.EXPRESSION="EXPRESSION",E);function np(){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",()=>nR);class nR{constructor(e,t,r){this.count=0,this.executionContext=new Map,this.valueExtractors=new Map,this.functionRepository=e,this.schemaRepository=t,this.executionId=r??np()}getExecutionId(){return this.executionId}getContext(){return this.context}setContext(e){this.context=e;let t=new nu(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 nA(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",()=>nm);var nm=((u={}).ERROR="ERROR",u.WARNING="WARNING",u.MESSAGE="MESSAGE",u);class nf extends e_{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.functionCache=new Map,this.debugMode=t,this.fd=e,this.fd.getVersion()>nf.VERSION)throw new k("Runtime is at a lower version "+nf.VERSION+" and trying to run code from version "+this.fd.getVersion()+".")}getSignature(){return this.fd}async getCachedFunction(e,t,r){let s=`${t}.${r}`;if(this.functionCache.has(s))return this.functionCache.get(s);let n=await e.find(t,r);return n&&this.functionCache.set(s,n),n}async getExecutionPlan(e,t){let r=new nl,s=Array.from(this.fd.getSteps().values());for(let n of(await Promise.all(s.map(r=>this.prepareStatementExecution(r,e,t)))))r.addVertex(n);return Array.from(this.makeEdges(r).getT2().entries()).forEach(e=>{let t=r.getNodeMap().get(e[0])?.getData();t&&t.addMessage(nm.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 nh(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 k("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 W;r.addAll(e.getVerticesWithNoIncomingEdges());let s=new W;for(;(!r.isEmpty()||!s.isEmpty())&&!t.getEvents()?.has($.OUTPUT);){let e=r.length,n=s.length;if(await this.processBranchQue(t,r,s),await this.processExecutionQue(t,r,s),(e!==r.length||n!==s.length)&&(t.setCount(t.getCount()+1),t.getCount()==nf.MAX_EXECUTION_ITERATIONS))throw new k("Execution locked in an infinite loop")}if(!e.isSubGraph()&&!t.getEvents()?.size){let e=this.getSignature().getEvents();if(e.size&&e.get($.OUTPUT)?.getParameters()?.size)throw new k("No events raised")}let n=Array.from(t.getEvents()?.entries()??[]).flatMap(e=>e[1].map(t=>B.of(e[0],t)));return new F(n.length||e.isSubGraph()?n:[B.of($.OUTPUT,new Map)])}async processExecutionQue(e,t,r){if(t.isEmpty())return;let s=[];for(;!t.isEmpty();)s.push(t.pop());let n=[],a=[];for(let t of s)this.allDependenciesResolvedVertex(t,e.getSteps())?n.push(t):a.push(t);for(let e of a)t.add(e);n.length>0&&await Promise.all(n.map(s=>this.executeVertex(s,e,r,t,e.getFunctionRepository())))}async processBranchQue(e,t,r){if(!r.length)return;let s=[];for(;r.length;)s.push(r.pop());let n=[],a=[];for(let t of s)this.allDependenciesResolvedTuples(t.getT2(),e.getSteps())?n.push(t):a.push(t);for(let e of a)r.add(e);for(let r of n)await this.executeBranch(e,t,r)}async executeBranch(e,t,r){let s,n=r.getT4(),a=r.getT1().getVerticesData().map(e=>e.getStatement().getStatementName());do{let t=e.getSteps();if(t)for(let e of a)t.delete(e);if(await this.executeGraph(r.getT1(),e),(s=r.getT3().next())&&(e.getSteps()?.has(n.getData().getStatement().getStatementName())||e.getSteps()?.set(n.getData().getStatement().getStatementName(),new Map),e.getSteps()?.get(n.getData().getStatement().getStatementName())?.set(s.getName(),this.resolveInternalExpressions(s.getResult(),e)),this.debugMode)){let t=n.getData().getStatement();console.log(`EID: ${e.getExecutionId()} Step : ${t.getStatementName()} => ${t.getNamespace()}.${t.getName()}`),console.log(`EID: ${e.getExecutionId()} Event : ${s.getName()} : `,e.getSteps().get(t.getStatementName()).get(s.getName()))}}while(s&&s.getName()!=$.OUTPUT)if(s?.getName()==$.OUTPUT&&n.getOutVertices().has($.OUTPUT))for(let r of Array.from(n?.getOutVertices()?.get($.OUTPUT)??[]))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 rP(e).evaluate(t.getValuesMap())).every(e=>!l(e)&&!1!==e))return;let o=await this.getCachedFunction(n,i.getNamespace(),i.getName());if(!o)throw new k(H.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 nf?new nR(t.getFunctionRepository(),t.getSchemaRepository(),`${t.getExecutionId()}_${i.getStatementName()}`).setArguments(u).setValuesMap(new Map(Array.from(t.getValuesMap().values()).filter(e=>e.getPrefix()!==nh.PREFIX&&e.getPrefix()!==nA.PREFIX&&e.getPrefix()!==nu.PREFIX).map(e=>[e.getPrefix(),e]))):new nR(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 h=await o.execute(a),T=h.next();if(!T)throw new k(H.format("Executing $ returned no events",i.getStatementName()));let c=T.getName()==$.OUTPUT;if(t.getSteps()?.has(i.getStatementName())||t.getSteps().set(i.getStatementName(),new Map),t.getSteps().get(i.getStatementName()).set(T.getName(),this.resolveInternalExpressions(T.getResult(),t)),this.debugMode&&(console.log(`EID: ${t.getExecutionId()} Step : ${i.getStatementName()} => ${i.getNamespace()}.${i.getName()}`),console.log(`EID: ${t.getExecutionId()} Event : ${T.getName()} : `,t.getSteps().get(i.getStatementName()).get(T.getName()))),c){let r=e.getOutVertices().get($.OUTPUT);if(r)for(let e of Array.from(r))this.allDependenciesResolvedVertex(e,t.getSteps())&&s.add(e)}else{let t=e.getSubGraphOfType(T.getName()),s=[];t.areEdgesBuilt()||(s=this.makeEdges(t).getT1(),t.setEdgesBuilt(!0)),r.push(new z(t,s,h,e))}}resolveInternalExpressions(e,t){if(!e)return e;let r=new Map;for(let[s,n]of e.entries())r.set(s,this.resolveInternalExpression(n,t));return r}resolveInternalExpression(e,t){if(l(e)||"object"!=typeof e)return e;if(e instanceof nc)return new rP(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){let r=e.getInVertices();if(!r.size)return!0;for(let e of r){let r=e.getT1().getData().getStatement().getStatementName(),s=e.getT2();if(!(t.has(r)&&t.get(r)?.has(s)))return!1}return!0}getArgumentsFromParametersMap(e,t,r){let s=new Map;for(let[n,a]of t.getParameterMap().entries()){let t,i=Array.from(a?.values()??[]);if(!i?.length)continue;let o=r.get(n);o&&(t=o.isVariableArgument()?i.sort((e,t)=>(e.getOrder()??0)-(t.getOrder()??0)).filter(e=>!l(e)).map(t=>this.parameterReferenceEvaluation(e,t)).flatMap(e=>Array.isArray(e)?e:[e]):this.parameterReferenceEvaluation(e,i[0]),l(t)||s.set(n,t))}return s}parameterReferenceEvaluation(e,t){let r;return t.getType()==ng.VALUE?r=this.resolveInternalExpression(t.getValue(),e):t.getType()!=ng.EXPRESSION||J.isNullOrBlank(t.getExpression())||(r=new rP(t.getExpression()??"").evaluate(e.getValuesMap())),r}async prepareStatementExecution(e,t,r){let s=new nE(e),n=await this.getCachedFunction(t,e.getNamespace(),e.getName());if(!n)return s.addMessage(nm.ERROR,H.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 ee.hasDefaultValueOrNullSchemaType(e.getSchema(),r)||s.addMessage(nm.ERROR,H.format(nf.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(!l(s.getStatement().getDependentStatements()))for(let e of Array.from(s.getStatement().getDependentStatements().entries()))e[1]&&s.addDependency(e[0]);if(!l(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 ee.hasDefaultValueOrNullSchemaType(e.getSchema(),r)||s.addMessage(nm.ERROR,H.format(nf.PARAMETER_NEEDS_A_VALUE,e.getParameterName())));return Promise.resolve(s)}async parameterReferenceValidation(e,t,r,s){if(r){if(r.getType()==ng.VALUE){if(l(r.getValue())&&!await ee.hasDefaultValueOrNullSchemaType(t.getSchema(),s)&&e.addMessage(nm.ERROR,H.format(nf.PARAMETER_NEEDS_A_VALUE,t.getParameterName())),l(r.getValue()))return;let n=new W;for(n.push(new K(t.getSchema(),r.getValue()));!n.isEmpty();){let t=n.pop();if(t.getT2()instanceof nc)this.addDependencies(e,t.getT2().getExpression());else{if(l(t.getT1())||l(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 K(e.getSingleSchema(),r));else{let r=t.getT2();for(let t=0;t<r.length;t++)n.push(new K(e.getTupleSchema()[t],r[t]))}}else if(t.getT1().getType()?.contains(c.OBJECT)&&"object"==typeof t.getT2()){let r=t.getT1();if(r.getName()===b.EXPRESSION.getName()&&r.getNamespace()===b.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 K(r.getProperties().get(e[0]),e[1]))}}}}else if(r.getType()==ng.EXPRESSION)if(J.isNullOrBlank(r.getExpression()))l(ee.getDefaultValue(t.getSchema(),s))&&e.addMessage(nm.ERROR,H.format(nf.PARAMETER_NEEDS_A_VALUE,t.getParameterName()));else try{this.addDependencies(e,r.getExpression())}catch(t){e.addMessage(nm.ERROR,H.format("Error evaluating $ : $",r.getExpression(),t))}}else l(await ee.getDefaultValue(t.getSchema(),s))&&e.addMessage(nm.ERROR,H.format(nf.PARAMETER_NEEDS_A_VALUE,t.getParameterName()))}addDependencies(e,t){t&&Array.from(t.match(nf.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 K(i,E)),s.set(n.getData().getStatement().getStatementName(),H.format("Unable to find the step with name $",i)))}return new K(r,s)}}t({},"KIRunConstants",()=>nN);class nN{static{this.NAMESPACE="namespace"}static{this.NAME="name"}static{this.ID="id"}constructor(){}}t({},"Position",()=>n_);class n_{static{this.SCHEMA_NAME="Position"}static{this.SCHEMA=new y().setNamespace(h.SYSTEM).setName(n_.SCHEMA_NAME).setType(m.of(c.OBJECT)).setProperties(new Map([["left",y.ofFloat("left")],["top",y.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 n_(e.left,e.top)}}t({},"FunctionDefinition",()=>nw),t({},"Statement",()=>nO),t({},"AbstractStatement",()=>nM);class nM{constructor(e){if(this.override=!1,!e)return;this.comment=e.comment,this.description=e.description,this.position=e.position?new n_(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",()=>nS);class nS{static{this.SCHEMA_NAME="ParameterReference"}static{this.SCHEMA=new y().setNamespace(h.SYSTEM).setName(nS.SCHEMA_NAME).setType(m.of(c.OBJECT)).setProperties(new Map([["key",y.ofString("key")],["value",y.ofAny("value")],["expression",y.ofString("expression")],["type",y.ofString("type").setEnums(["EXPRESSION","VALUE"])],["order",y.ofInteger("order")]]))}constructor(e){e instanceof nS?(this.key=e.key,this.type=e.type,this.value=l(e.value)?void 0:JSON.parse(JSON.stringify(e.value)),this.expression=e.expression,this.order=e.order):(this.type=e,this.key=np())}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 nS(ng.EXPRESSION).setExpression(e);return[t.getKey(),t]}static ofValue(e){let t=new nS(ng.VALUE).setValue(e);return[t.getKey(),t]}static from(e){return new nS(e.type).setValue(e.value).setExpression(e.expression).setKey(e.key).setOrder(e.order)}}class nO extends nM{static{this.SCHEMA_NAME="Statement"}static{this.SCHEMA=new y().setNamespace(h.SYSTEM).setName(nO.SCHEMA_NAME).setType(m.of(c.OBJECT)).setProperties(new Map([["statementName",y.ofString("statementName")],["comment",y.ofString("comment")],["description",y.ofString("description")],["namespace",y.ofString("namespace")],["name",y.ofString("name")],["dependentStatements",y.ofObject("dependentstatement").setAdditionalProperties(new w().setSchemaValue(y.ofBoolean("exists"))).setDefaultValue({})],["executeIftrue",y.ofObject("executeIftrue").setAdditionalProperties(new w().setSchemaValue(y.ofBoolean("exists"))).setDefaultValue({})],["parameterMap",new y().setName("parameterMap").setAdditionalProperties(new w().setSchemaValue(y.ofObject("parameterReference").setAdditionalProperties(new w().setSchemaValue(nS.SCHEMA))))],["position",n_.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 nS(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])=>nS.from(t)).map(e=>[e.getKey(),e]))]))).setDependentStatements(new Map(Object.entries(e.dependentStatements??{}))).setExecuteIftrue(new Map(Object.entries(e.executeIftrue??{}))).setPosition(n_.from(e.position)).setComment(e.comment).setDescription(e.description)}}t({},"StatementGroup",()=>nd);class nd extends nM{static{this.SCHEMA_NAME="StatementGroup"}static{this.SCHEMA=new y().setNamespace(h.SYSTEM).setName(nd.SCHEMA_NAME).setType(m.of(c.OBJECT)).setProperties(new Map([["statementGroupName",y.ofString("statementGroupName")],["comment",y.ofString("comment")],["description",y.ofString("description")],["position",n_.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 nd(e.statementGroupName,new Map(Object.entries(e.statements||{}).map(([e,t])=>[e,(""+t)?.toLowerCase()=="true"]))).setPosition(n_.from(e.position)).setComment(e.comment).setDescription(e.description)}}let nI=new y().setNamespace(h.SYSTEM).setName("FunctionDefinition").setProperties(new Map([["name",y.ofString("name")],["namespace",y.ofString("namespace")],["parameters",y.ofArray("parameters",b.SCHEMA)],["events",y.ofObject("events").setAdditionalProperties(new w().setSchemaValue($.SCHEMA))],["steps",y.ofObject("steps").setAdditionalProperties(new w().setSchemaValue(nO.SCHEMA))]]));nI.getProperties()?.set("parts",y.ofArray("parts",nI));class nw extends Y{static{this.SCHEMA=nI}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 nw(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,nd.from(e)]))).setParts(Array.from(e.parts??[]).filter(e=>!!e).map(e=>nw.from(e))).setVersion(e.version??1).setEvents(new Map(Object.values(e.events??{}).filter(e=>!!e).map(e=>[e.name,$.from(e)]))).setParameters(new Map(Object.values(e.parameters??{}).filter(e=>!!e).map(e=>[e.parameterName,b.from(e)]))).setNamespace(e.namespace):new nw("unknown")}}t({},"Argument",()=>nP);class nP{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 nP(0,e,t)}}export{D as KIRunSchemaRepository,ni as KIRunFunctionRepository,eP as PrimitiveUtil,V as MapUtil,C as MapEntry,l as isNullValue,W as LinkedList,tp as StringBuilder,H as StringFormatter,J as StringUtil,K as Tuple2,Q as Tuple3,z as Tuple4,ex as ArrayUtil,X as deepEqual,ev as duplicate,nE as StatementExecution,no as StatementMessage,tu as ContextElement,nu as ContextTokenValueExtractor,nA as OutputMapTokenValueExtractor,nh as ArgumentsTokenValueExtractor,nT as GraphVertex,nl as ExecutionGraph,nf as KIRuntime,nm as StatementMessageType,nR as FunctionExecutionParameters,tS as Expression,e0 as TokenValueExtractor,rS as LiteralTokenValueExtractor,e1 as ObjectValueSetterExtractor,rP as ExpressionEvaluator,ez as Operation,tR as ExpressionToken,eZ as ExpressionEvaluationException,tm as ExpressionTokenValue,e_ as AbstractFunction,h as Namespaces,nc as JsonExpression,w as AdditionalType,y as Schema,P as SchemaDetails,ea as NumberValidator,es as BooleanValidator,en as NullValidator,er as ArrayValidator,et as AnyOfAllOfOneOfValidator,eE as StringValidator,ei as ObjectValidator,eN as SchemaValidator,Z as SchemaValidationException,x as SchemaReferenceException,ef as TypeValidator,T as ArraySchemaType,R as SingleType,m as TypeUtil,p as MultipleType,g as Type,c as SchemaType,ee as SchemaUtil,eo as StringFormat,s9 as HybridRepository,nN as KIRunConstants,b as Parameter,F as FunctionOutput,n_ as Position,nw as FunctionDefinition,ng as ParameterReferenceType,B as EventResult,nM as AbstractStatement,nO as Statement,nd as StatementGroup,Y as FunctionSignature,$ as Event,L as ParameterType,nP as Argument,nS as ParameterReference,ew as ExecutionException,k as KIRuntimeException,rg as ArithmeticUnaryMinusOperator,rR as ArithmeticUnaryPlusOperator,rf as BitwiseComplementOperator,r_ as LogicalNotOperator,rc as UnaryOperator,tP as ArithmeticAdditionOperator,tx as ArithmeticDivisionOperator,tv as ArithmeticIntegerDivisionOperator,tU as ArithmeticModulusOperator,tC as ArithmeticMultiplicationOperator,tG as ArithmeticSubtractionOperator,tB as ArrayOperator,tw as BinaryOperator,tF as BitwiseAndOperator,tH as BitwiseLeftShiftOperator,tj as BitwiseOrOperator,tJ as BitwiseRightShiftOperator,tK as BitwiseUnsignedRightShiftOperator,tz as BitwiseXorOperator,t0 as LogicalAndOperator,t2 as LogicalEqualOperator,t7 as LogicalGreaterThanEqualOperator,t4 as LogicalGreaterThanOperator,t3 as LogicalLessThanEqualOperator,re as LogicalNotEqualOperator,rr as LogicalLessThanOperator,rn as LogicalOrOperator,ri as ObjectOperator,rE as LogicalNullishCoalescingOperator,rA as ArrayRangeOperator,rI as ConditionalTernaryOperator};
|
|
2
2
|
//# sourceMappingURL=module.js.map
|