@elyx-code/project-logic-tree 0.0.6382 → 0.0.6383
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/dist/index.js +13 -9
- package/dist/index.umd.cjs +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -86197,7 +86197,7 @@ function SE(d, u, i) {
|
|
|
86197
86197
|
const y = ly(t, i);
|
|
86198
86198
|
if (y && y.value) {
|
|
86199
86199
|
const v = te(t, i.project), T = Or(v);
|
|
86200
|
-
a[T] = (p = y == null ? void 0 : y.value) == null ? void 0 : p.value;
|
|
86200
|
+
a[T] = ((p = y == null ? void 0 : y.value) == null ? void 0 : p.value) || a[T];
|
|
86201
86201
|
}
|
|
86202
86202
|
}
|
|
86203
86203
|
return a;
|
|
@@ -86354,12 +86354,14 @@ function CEt(d, u) {
|
|
|
86354
86354
|
const I = {
|
|
86355
86355
|
...i,
|
|
86356
86356
|
...T.value
|
|
86357
|
-
}
|
|
86357
|
+
}, O = SE(
|
|
86358
|
+
I,
|
|
86359
|
+
d,
|
|
86360
|
+
u
|
|
86361
|
+
);
|
|
86358
86362
|
T == null || T.metaSync(
|
|
86359
86363
|
{
|
|
86360
|
-
value:
|
|
86361
|
-
...SE(I, d, u)
|
|
86362
|
-
}
|
|
86364
|
+
value: O
|
|
86363
86365
|
},
|
|
86364
86366
|
null
|
|
86365
86367
|
);
|
|
@@ -86378,12 +86380,14 @@ function CEt(d, u) {
|
|
|
86378
86380
|
const w = {
|
|
86379
86381
|
...i,
|
|
86380
86382
|
...a.value
|
|
86381
|
-
}
|
|
86383
|
+
}, I = SE(
|
|
86384
|
+
w,
|
|
86385
|
+
d,
|
|
86386
|
+
u
|
|
86387
|
+
);
|
|
86382
86388
|
a.metaSync(
|
|
86383
86389
|
{
|
|
86384
|
-
value:
|
|
86385
|
-
...SE(w, d, u)
|
|
86386
|
-
}
|
|
86390
|
+
value: I
|
|
86387
86391
|
},
|
|
86388
86392
|
null
|
|
86389
86393
|
);
|
package/dist/index.umd.cjs
CHANGED
|
@@ -200,7 +200,7 @@ You can't modify system entities that are built-in.`,issue:null})),y&&y.type===f
|
|
|
200
200
|
An action descriptor can only have one error value descriptor child.
|
|
201
201
|
Either remove the existing error value descriptor or update it with the 'update' action.
|
|
202
202
|
You can use the 'describe_entity' action to get more information about the existing error value descriptor like so:
|
|
203
|
-
${Mn({describe_entity:y.error.id})}`,issue:null}))),{errors:p,modifiedData:l}}validateGeneratedUpdate(i){return{errors:[],modifiedData:i}}subscribeDependents(i){return i.forEach(a=>{this.detachedDependents[a.entity.id]||(this.detachedDependents[a.entity.id]=a)}),this}unsubscribeDependents(i){return i.forEach(a=>{this.detachedDependents[a.entity.id]&&delete this.detachedDependents[a.entity.id]}),this}syncDependents(i=this.project.addChangeSet(new F(this.project,V.sessionAuthor,L().toISOString(),this,!0,"sync-dependents"))){const a=[],l=[],p=[],t=[];return Object.values(this.detachedDependents).forEach(y=>{const v=y.entity.afterAllChildrenInitialized(i);a.push(...v.updated),l.push(...v.added),p.push(...v.removed),t.push(...v.affected)}),i==null||i.attemptAutoclose("sync-dependents",this.id),{updated:R(a),added:R(l),removed:R(p),affected:R(t),self:this}}onDetachedDependencyRemoved(i,a,l){const p=[],t=[],y=[],v=[];return{updated:R(p),added:R(t),removed:R(y),affected:R(v),self:this}}onDetachedDependencyRestored(i,a,l){const p=[],t=[],y=[],v=[];return{updated:R(p),added:R(t),removed:R(y),affected:R(v),self:this}}unsubscribeFromDependencies(){var i,a,l;return(l=(a=(i=this.dataType)==null?void 0:i.entity)==null?void 0:a.unsubscribeDependents)==null||l.call(a,[{entity:this,field:"data-type-entity"}]),this}subscribeToDependencies(){var i,a,l;return(l=(a=(i=this.dataType)==null?void 0:i.entity)==null?void 0:a.subscribeDependents)==null||l.call(a,[{entity:this,field:"data-type-entity"}]),this}increaseVersion(i){if(i&&!L(i).isValid())throw new Error(`The shared timestamp '${i}' is not a valid ISO 8601 date string.`);return i&&L(i).isSame(L(this.createdAt))?this:(this.previousVersion=this.version,this.version=V.UUID.uuid(),this.createdAt=L(i).toISOString()||L().toISOString(),this)}captureVersion(){var a;const i=((a=this.knownVersions)==null?void 0:a.get(this.version))||new Mt(this,this.project);return i.metaSync(this.toMeta(),null),this.knownVersions=this.knownVersions?this.knownVersions.set(this.version,i):new Map([[this.version,i]]),i.defaultValue=this.defaultValue,i.dataType=this.dataType,i.parent=this.parent,this}recursiveCaptureUpstreamVersions(i){const a=[],l=[],p=[],t=[];if(this.parent){this.parent.increaseVersion(i);const y=this.parent.recursiveCaptureUpstreamVersions(i);a.push(this.parent,...y.updated),l.push(...y.added),p.push(...y.removed)}return{updated:R(a),added:R(l),removed:R(p),affected:R(t),self:this}}async restoreVersion(i){var v;const a=[],l=[],p=[],t=[];if(this.version===i)return{updated:R(a),added:R(l),removed:R(p),affected:R(t),self:this};if(!this.knownVersions){const T=new Map;for(const[w,A]of this.knownVersions||new Map){if(T.set(w,A),A.activeVersion=!1,A.knownVersions)for(const[P,N]of A.knownVersions)T.set(P,N);A.knownVersions=null}}let y=(v=this.knownVersions)==null?void 0:v.get(i);if(!y){const T=await this.APILoadVersion({},i);if(!T)throw new Error(`Version with id '${i}' for entity with id '${this.id}' not found.`);y=new Mt(T,this.project)}return this.metaSync(y.toShallowJSON(),null),this.previousVersion=y.previousVersion,this.version=y.version,this.createdAt=y.createdAt,this.author=y.author,this.deleted=y.deleted,this.defaultValue=y.defaultValue,this.dataType=y.dataType,this.parent=y.parent,{updated:R(a),added:R(l),removed:R(p),affected:R(t),self:this}}updateWithShallowTransfer(i,a=this.project.addChangeSet(new F(this.project,V.sessionAuthor,L().toISOString(),this,!0,"update-with-shallow-transfer"))){if(this.metaSync(i,a),this.version=i.version,this.createdAt=i.createdAt,this.author=i.author,this.deleted=i.deleted,this.previousVersion=i.previousVersion,this.unsubscribeFromDependencies(),i.parent){const l=Z(i.parent),p=this.project.get(l),t=this.parent;if(t&&t.id!==(p==null?void 0:p.id)&&(this.removeFromParent(a),this.parent=null),p)this.setParent(p,a);else throw a==null||a.attemptAutoclose("update-with-shallow-transfer",this.id),new Error(`${this.type} with id '${this.id}' has a 'parent' reference '${l}' that isn't found in the project`)}else throw a==null||a.attemptAutoclose("update-with-shallow-transfer",this.id),new Error(`${this.type} with id '${this.id}' must have a 'parent'`);return this.captureVersion(),this.subscribeToDependencies(),a==null||a.attemptAutoclose("update-with-shallow-transfer",this.id),this}hydrateAncestors(){const i=[],a=[],l=[],p=[];if(this.initialData.parent){const t=Z(this.initialData.parent),y=this.project.get(t);if(y)this.setParent(y,null),i.push(y);else throw new Error(`${this.type} with id '${this.id}' has a 'parent' reference '${t}' that isn't found in the project`)}else throw new Error(`${this.type} with id '${this.id}' must have a 'parent'`);return{updated:R(i),added:R(a),removed:R(l),affected:R(p),self:this}}afterAllChildrenInitialized(i=this.project.addChangeSet(new F(this.project,V.sessionAuthor,L().toISOString(),this,!0,"after-all-children-initialized"))){const a=[],l=[],p=[],t=[];return this.initialized=!0,this.captureVersion(),i==null||i.attemptAutoclose("after-all-children-initialized",this.id),{updated:R(a),added:R(l),removed:R(p),affected:R(t),self:this}}addSelfToProject(i=this.project.addChangeSet(new F(this.project,V.sessionAuthor,L().toISOString(),this,!0,"add-self-to-project"))){var y,v,T,w,A,P,N,U;const a=[this],l=[],p=[],t=[];return this.parentRelationType===le.FixedArguments||this.parentRelationType===le.DynamicArgument?((y=this.parent)==null?void 0:y.type)===f.Search||((v=this.parent)==null?void 0:v.type)===f.Loop?(this.parent.addInputDeclaration(this,i),t.push(this.parent)):((w=(T=this.parent)==null?void 0:T.addInput)==null||w.call(T,this,i),a.push(this.parent)):this.parentRelationType===le.FixedReturns||this.parentRelationType===le.DynamicReturn?((A=this.parent)==null?void 0:A.type)===f.Search||((P=this.parent)==null?void 0:P.type)===f.Loop?(this.parent.addOutputDeclaration(this,i),t.push(this.parent)):((U=(N=this.parent)==null?void 0:N.addOutput)==null||U.call(N,this,i),a.push(this.parent)):this.parentRelationType===le.ReturnedError&&this.parent&&(this.parent.error=this,t.push(this.parent)),this.subscribe(),this.subscribeToDependencies(),i==null||i.attemptAutoclose("add-self-to-project",this.id),{updated:R(a),added:R(l),removed:R(p),affected:R(t),self:this}}setParent(i,a=this.project.addChangeSet(new F(this.project,V.sessionAuthor,L().toISOString(),this,!0,"set-parent"))){var l;return((l=this.parent)==null?void 0:l.id)!==(i==null?void 0:i.id)&&(this.parent=i,a&&(a==null||a.add(this,G.Updated))),a==null||a.attemptAutoclose("set-parent",this.id),this}initChildren(i=this.project.addChangeSet(new F(this.project,V.sessionAuthor,L().toISOString(),this,!0,"init-children"))){return this.initialized||this.startedInitialization?this:(this.startedInitialization=!0,this.initialData.defaultValue&&(this.defaultValue=ee(this.initialData.defaultValue,this.project),this.defaultValue.setParent(this,null),this.defaultValue.initChildren(i)),this.initialData.dataType&&(this.dataType=ee(this.initialData.dataType,this.project),this.dataType.setParent(this,null),this.dataType.initChildren(i)),this.subscribeToDependencies(),this.afterAllChildrenInitialized(i),i==null||i.attemptAutoclose("init-children",this.id),this)}subscribe(){return this.activeVersion=!0,this.project.subscribeInstance(this),this}unsubscribe(){return this.project.unsubscribeInstance(this),this}metaSync(i,a=this.project.addChangeSet(new F(this.project,V.sessionAuthor,L().toISOString(),this,!0,"meta-sync"))){const l=$r(this,i),p=this.toMeta();return this.name=i.name!==void 0?i.name:p.name,this.codeName=i.codeName!==void 0?i.codeName:p.codeName,this.description=i.description!==void 0?i.description:p.description,this.index=i.index||(i.index!==0?p.index:0),this.required=i.required!==void 0?i.required:this.required,this.parentRelationType=i.parentRelationType!==void 0?i.parentRelationType:this.parentRelationType,super.metaSync(i),i.deleted===!0&&!p.deleted?a==null||a.add(this,G.Removed):i.deleted===!1&&p.deleted?a==null||a.add(this,G.Added):l&&(a==null||a.add(this,G.Updated)),a==null||a.attemptAutoclose("meta-sync",this.id),this}async APILoad(i=me,...a){return await Mt.repository.APILoad(this.id,...a),this}async APICreate(i=me,...a){return await Mt.repository.APICreate(this.toShallowJSON(),...a),this}async APIUpdate(i=me,...a){return await Mt.repository.APIUpdate(this.toShallowJSON(),...a),this}async APIDelete(i=me,...a){return await Mt.repository.APIDelete(this.toShallowJSON(),...a),this}async APIClone(i=me,...a){return await Mt.repository.APIClone(this.id,...a),this}async APILoadVersion(i=me,a,...l){return await Mt.repository.APILoadVersion(this.id,a,...l)}removeFromParent(i=this.project.addChangeSet(new F(this.project,V.sessionAuthor,L().toISOString(),this,!0,"remove-from-parent"))){var y,v,T,w,A,P,N;const a=[],l=[],p=[],t=[];return this.parent&&(((y=this.parent)==null?void 0:y.type)===f.Search?this.parentRelationType===le.FixedReturns||this.parentRelationType===le.DynamicReturn?((v=this.parent)==null||v.removeOutputDeclaration(this,i),t.push(this.parent)):this.parentRelationType===le.FixedArguments||this.parentRelationType===le.DynamicArgument?((T=this.parent)==null||T.removeInputDeclaration(this,i),t.push(this.parent)):this.parentRelationType===le.ReturnedError&&(this.parent.error=null,t.push(this.parent)):((w=this.parent)==null?void 0:w.type)===f.Loop?this.parentRelationType===le.FixedReturns||this.parentRelationType===le.DynamicReturn?((A=this.parent)==null||A.removeOutputDeclaration(this,i),t.push(this.parent)):this.parentRelationType===le.ReturnedError&&(this.parent.error=null,t.push(this.parent)):this.parentRelationType===le.FixedReturns||this.parentRelationType===le.DynamicReturn?((P=this.parent)==null||P.removeOutput(this,i),t.push(this.parent)):(this.parentRelationType===le.FixedArguments||this.parentRelationType===le.DynamicArgument)&&((N=this.parent)==null||N.removeInput(this,i),t.push(this.parent))),i==null||i.attemptAutoclose("remove-from-parent",this.id),{added:R(p),updated:R(a),removed:R(l),affected:R(t),self:this}}remove({ignoreUpstream:i}={ignoreUpstream:!1},a=this.project.addChangeSet(new F(this.project,V.sessionAuthor,L().toISOString(),this,!0,"remove-entity"))){const l=[],p=[],t=[],y=[];if(Array.from(new Set([...Fs(),...this.project.getAllBuiltInIds()])).includes(this.id))return a==null||a.attemptAutoclose("remove-entity",this.id),{added:[],updated:[],removed:[],affected:[],self:this};if(a!=null&&a.hasRemoved(this.id))return a==null||a.attemptAutoclose("remove-entity",this.id),{added:[],updated:[],removed:[],affected:[],self:this};if(p.push(this),this.unsubscribe(),this.unsubscribeFromDependencies(),this.project.subscribeDeletedInstance(this),this.metaSync({deleted:!0},a),Object.values(this.detachedDependents).forEach(T=>{const{updated:w,removed:A,added:P}=T.entity.onDetachedDependencyRemoved(this,T.field,a);l.push(...w),p.push(...A),t.push(...P)}),this.defaultValue){const{updated:T,removed:w}=this.defaultValue.remove({ignoreUpstream:!0},a);l.push(...T),p.push(...w)}if(this.dataType){const{updated:T,removed:w}=this.dataType.remove({ignoreUpstream:!0},a);l.push(...T),p.push(...w)}if(!i){const T=this.removeFromParent(a);t.push(...T.added),l.push(...T.updated),p.push(...T.removed),y.push(...T.affected)}return a==null||a.attemptAutoclose("remove-entity",this.id),{added:R(t),updated:R(l),removed:R(p),affected:R(y),self:this}}restore({}={},i=this.project.addChangeSet(new F(this.project,V.sessionAuthor,L().toISOString(),this,!0,"restore-entity"))){var y,v,T,w,A,P,N;const a=[],l=[],p=[],t=[];if(i!=null&&i.hasAdded(this.id))return i==null||i.attemptAutoclose("restore-entity",this.id),{added:[],updated:[],removed:[],affected:[],self:this};if(this.subscribe(),this.project.unsubscribeDeletedInstance(this),this.metaSync({deleted:!1},i),Object.values(this.detachedDependents).forEach(U=>{const{updated:K,removed:k,added:J}=U.entity.onDetachedDependencyRestored(this,U.field,i);l.push(...K),p.push(...k),a.push(...J)}),this.defaultValue){const{updated:U}=this.defaultValue.restore({},i);l.push(...U)}if(this.dataType){const{updated:U}=this.dataType.restore({},i);l.push(...U)}return((y=this.parent)==null?void 0:y.type)===f.Search?this.parentRelationType===le.FixedReturns||this.parentRelationType===le.DynamicReturn?(v=this.parent)==null||v.addOutputDeclaration(this,i):(this.parentRelationType===le.FixedArguments||this.parentRelationType===le.DynamicArgument)&&((T=this.parent)==null||T.addInputDeclaration(this,i)):((w=this.parent)==null?void 0:w.type)===f.Loop?(this.parentRelationType===le.FixedReturns||this.parentRelationType===le.DynamicReturn)&&((A=this.parent)==null||A.addOutputDeclaration(this,i)):this.parentRelationType===le.FixedReturns||this.parentRelationType===le.DynamicReturn?(P=this.parent)==null||P.addOutput(this,i):(this.parentRelationType===le.FixedArguments||this.parentRelationType===le.DynamicArgument)&&((N=this.parent)==null||N.addInput(this,i)),i==null||i.attemptAutoclose("restore-entity",this.id),{added:R(a),updated:R(l),removed:R(p),affected:R(t),self:this}}toFlat(i=new Set){var l;return i.has(this.id)?[]:(i.add(this.id),[this,...((l=this.defaultValue)==null?void 0:l.toFlat(i))||[],...this.dataType?this.dataType.toFlat(i):[]])}toFlatIds(i=new Set){var l;return i.has(this.id)?[]:(i.add(this.id),[this.id,...((l=this.defaultValue)==null?void 0:l.toFlatIds(i))||[],...this.dataType?this.dataType.toFlatIds(i):[]])}toMeta(){return{id:this.id,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,codeName:this.codeName,description:this.description,index:this.index,required:this.required,parentRelationType:this.parentRelationType,type:this.type,name:this.name}}toJSON(i=new Set){var a,l,p;return i.has(this.id)?this.toReference():(i.add(this.id),{id:this.id,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,type:this.type,name:this.name,codeName:this.codeName,description:this.description,index:this.index,required:this.required,defaultValue:((a=this.defaultValue)==null?void 0:a.toJSON(i))||null,parentRelationType:this.parentRelationType,dataType:((l=this.dataType)==null?void 0:l.toJSON(i))||null,parent:((p=this.parent)==null?void 0:p.toReference())||null})}toJSONClone(i=Fe){var l,p,t,y,v,T,w,A;let a;return(l=i.seenEntityMaps)!=null&&l.has(this.id)?a=i.seenEntityMaps.get(this.id):(a=i.newId||Vr(this,this.project,i.uuidStrategy),i.seenEntityMaps&&i.seenEntityMaps.set(this.id,a)),(p=i.seenEntities)!=null&&p.has(a)||(t=i.seenEntities)!=null&&t.has(this.id)?this.toReference({seenEntityMaps:i.seenEntityMaps}):((y=i.seenEntities)==null||y.add(a),(v=i.seenEntities)==null||v.add(this.id),{id:a,version:V.UUID.uuid(),createdAt:i.timestamp||L().toISOString(),author:V.sessionAuthor,previousVersion:null,deleted:!1,type:this.type,name:this.name,codeName:this.codeName,description:this.description,index:this.index,required:this.required,defaultValue:((T=this.defaultValue)==null?void 0:T.toJSONClone({...i,newId:null}))||null,parentRelationType:this.parentRelationType,dataType:((w=this.dataType)==null?void 0:w.toJSONClone({...i,newId:null}))||null,parent:((A=this.parent)==null?void 0:A.toReference({seenEntityMaps:i.seenEntityMaps}))||null})}toReference(i=Fe){var l;let a=this.id;return(l=i.seenEntityMaps)!=null&&l.has(this.id)&&(a=i.seenEntityMaps.get(this.id)),{id:a+"--"+V.UUID.uuid()+"--ref",type:f.GenericReference,entityId:a,version:this.version,entityType:this.type}}toShallowJSON(i=Fe){var l,p,t,y;let a=this.id;return(l=i.seenEntityMaps)!=null&&l.has(this.id)&&(a=i.seenEntityMaps.get(this.id)),{id:a,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,type:this.type,name:this.name,codeName:this.codeName,description:this.description,index:this.index,required:this.required,parentRelationType:this.parentRelationType,defaultValue:((p=this.defaultValue)==null?void 0:p.toReference(i))||null,dataType:((t=this.dataType)==null?void 0:t.toReference(i))||null,parent:((y=this.parent)==null?void 0:y.toReference(i))||null}}toFlatJSON(i=new Set){var l;return i.has(this.id)?[]:(i.add(this.id),[this.toShallowJSON(),...((l=this.defaultValue)==null?void 0:l.toFlatJSON(i))||[],...this.dataType?this.dataType.toFlatJSON(i):[]])}toGenerationTarget(){var i;return{id:this.id,name:this.name,codeName:this.codeName,description:this.description,type:this.type,required:this.required,parentRelationType:this.parentRelationType,parent:(i=this.parent)==null?void 0:i.id}}toFlatGenerationTarget(i=new Set){return i.has(this.id)?[]:(i.add(this.id),[this.toGenerationTarget(),...this.defaultValue?this.defaultValue.toFlatGenerationTarget(i):[],...this.dataType?this.dataType.toFlatGenerationTarget(i):[]])}clearErrors(){var i,a;return this.errors=[],(i=this.defaultValue)==null||i.clearErrors(),(a=this.dataType)==null||a.clearErrors(),this}validate(){const i=$x(this);return this.errors=i,{success:!0,error:null,data:this.toJSON()}}getErrors(){return[...this.errors,...this.dataType?this.dataType.getErrors():[]]}getShallowErrors(){return this.errors}clone(i=this.project.addChangeSet(new F(this.project,V.sessionAuthor,L().toISOString(),this,!0,"clone-entity")),a=null,l=null,p=!0){var N,U;if(Array.from(new Set([...Fs(),...this.project.getAllBuiltInIds()])).includes(this.id))return this;let y=Nr(a,this);const v=l||V.UUID.uuid(),T=this.toJSON();T.id=v,T.version=V.UUID.uuid(),T.createdAt=(i==null?void 0:i.timestamp)||L().toISOString(),T.author=(i==null?void 0:i.author)||"1",T.previousVersion=null,T.deleted=!1;const w=zt(T,y);a&&w.setParent(a,null),i==null||i.add(w,G.Added),p&&w.subscribe();const A=((N=this.dataType)==null?void 0:N.clone(i,w,V.UUID.uuid(),p))||null;A&&w.setDataType(A,i);const P=(U=this.defaultValue)==null?void 0:U.clone(i,w,V.UUID.uuid(),p);return w.defaultValue=P||null,i==null||i.attemptAutoclose("clone-entity",this.id),w}getDataType(i=this.project.addChangeSet(new F(this.project,V.sessionAuthor,L().toISOString(),this,!0,"get-data-type"))){return i==null||i.attemptAutoclose("get-data-type",this.id),this.dataType||null}setDataType(i,a=this.project.addChangeSet(new F(this.project,V.sessionAuthor,L().toISOString(),this,!0,"set-data-type"))){const l=this.dataType;return(l==null?void 0:l.id)!==(i==null?void 0:i.id)&&(l==null||l.remove({ignoreUpstream:!0},a),this.dataType=i,this.subscribeToDependencies(),a==null||a.add(this,G.Affected)),a==null||a.attemptAutoclose("set-data-type",this.id),this}getDefaultValue(){return this.defaultValue||null}setDefaultValue(i,a=this.project.addChangeSet(new F(this.project,V.sessionAuthor,L().toISOString(),this,!0,"set-default-value"))){const l=this.defaultValue;return(l==null?void 0:l.id)!==(i==null?void 0:i.id)&&(l==null||l.remove({ignoreUpstream:!0},a),this.defaultValue=i,a==null||a.add(this,G.Affected)),a==null||a.attemptAutoclose("set-default-value",this.id),this}removeDataType(){return this.dataType=null,this}implementAsReturnDeclaration(i=this.project.addChangeSet(new F(this.project,V.sessionAuthor,L().toISOString(),this,!0,"implement-as-return-declaration")),a,l){const p=Ki.new(i);p.id=l||p.id,p.name=this.name,p.description=this.description,p.parent=a.toReference(),p.implements=this.toJSON(),p.isError=this.parentRelationType===le.ReturnedError;const t=zt(p,this.project);if(t.hydrateAncestors(),t.addSelfToProject(i),i==null||i.add(t,G.Added),t.initChildren(i),this.dataType){const y=this.dataType.clone(i,t);t.setDataType(y,i)}if(this.defaultValue){const y=this.defaultValue.clone(i,t);t.setDefaultValue(y,i)}return i==null||i.attemptAutoclose("implement-as-return-declaration",this.id),t}implementAsArgumentDeclaration(i=this.project.addChangeSet(new F(this.project,V.sessionAuthor,L().toISOString(),this,!0,"implement-as-return-declaration")),a,l){const p=Ea.new(i);p.id=l||p.id,p.name=this.name,p.description=this.description,p.parent=a.toReference(),p.implements=this.toJSON();const t=zt(p,this.project);if(t.hydrateAncestors(),t.addSelfToProject(i),i==null||i.add(t,G.Added),t.initChildren(i),this.dataType){const y=this.dataType.clone(i,t);t.setDataType(y,i)}if(this.defaultValue){const y=this.defaultValue.clone(i,t);t.setDefaultValue(y,i)}return i==null||i.attemptAutoclose("implement-as-return-declaration",this.id),t}};D(Mt,"repository",{APICreate:async(i,...a)=>i,APIUpdate:async(i,...a)=>i,APIDelete:async(i,...a)=>i,APIClone:async(i,...a)=>{},APILoad:async(i,...a)=>null,APILoadVersion:async(i,a,...l)=>null}),D(Mt,"type",f.ValueDescriptor),D(Mt,"USER_MANAGED_PARENT_TYPES",[f.ActionDescriptor,f.Loop,f.Search]),D(Mt,"PARENT_TYPES",[...Mt.USER_MANAGED_PARENT_TYPES]),D(Mt,"MUTABLE_BASE_PROPERTIES",["name","codeName","description","required"]),D(Mt,"INMUTABLE_BASE_PROPERTIES",["id","version","type","parentRelationType","createdAt","author","previousVersion"]),D(Mt,"BASE_PROPERTIES",[...Mt.MUTABLE_BASE_PROPERTIES,...Mt.INMUTABLE_BASE_PROPERTIES]),D(Mt,"MUTABLE_META_PROPERTIES",[...Mt.MUTABLE_BASE_PROPERTIES,"index"]),D(Mt,"INMUTABLE_META_PROPERTIES",[...Mt.INMUTABLE_BASE_PROPERTIES]),D(Mt,"META_PROPERTIES",[...Mt.MUTABLE_META_PROPERTIES,...Mt.INMUTABLE_META_PROPERTIES]),D(Mt,"MUTABLE_UPSTREAM_PROPERTIES",[]),D(Mt,"INMUTABLE_UPSTREAM_PROPERTIES",["parent"]),D(Mt,"UPSTREAM_PROPERTIES",[...Mt.MUTABLE_UPSTREAM_PROPERTIES,...Mt.INMUTABLE_UPSTREAM_PROPERTIES]),D(Mt,"MUTABLE_DOWNSTREAM_PROPERTIES",["dataType","defaultValue"]),D(Mt,"INMUTABLE_DOWNSTREAM_PROPERTIES",[]),D(Mt,"DOWNSTREAM_PROPERTIES",[...Mt.MUTABLE_DOWNSTREAM_PROPERTIES,...Mt.INMUTABLE_DOWNSTREAM_PROPERTIES]),D(Mt,"PROPERTIES",[...Mt.META_PROPERTIES,...Mt.UPSTREAM_PROPERTIES,...Mt.DOWNSTREAM_PROPERTIES]);let nn=Mt;var Te=(d=>(d.Inherited="inherited",d.DefaultValue="default-value",d.Missing="missing",d.Empty="empty",d.AutoCalculated="auto-calculated",d.QueuedAutocalculation="queued-autocalculation",d.External="external",d.Testing="testing",d.ExecutionResult="execution-result",d))(Te||{});const Vx={initialized:!1,id:"",project:null,values:{},onWriteCallback:()=>{},onRemoveCallback:()=>{},onWrite:()=>{},onRemove:()=>{},init:()=>{},toJSON:()=>({}),writeValue:()=>{},readValue:()=>null,removeValue:()=>{},clear:()=>{}};function ome(d,u){return{...Vx,id:d,project:u}}class yp{constructor(u,i){D(this,"initialized",!1);D(this,"id");D(this,"project");D(this,"values",{});D(this,"onWriteCallback",()=>{});D(this,"onRemoveCallback",()=>{});this.id=u,this.project=i,this.init()}onWrite(u){this.onWriteCallback=u}onRemove(u){this.onRemoveCallback=u}init(){if(!this.project.id||this.initialized)return;const u={},i={};Object.keys(u).forEach(a=>{const l=u[a],p=new Oi(l,this.project);try{if(l.parent){const v=this.project.findSubscribedInstanceFromReference(l.parent);if(!v)return;p.setParent(v,null),p.hydrateAncestors(),p.initChildren(null)}else if(l.standaloneParent){const v=this.project.findSubscribedInstanceFromReference(l.standaloneParent);if(!v)return;p.standalone=!0,p.setStandaloneParent(v),p.hydrateAncestors(),p.initChildren(null)}i[a]=p;const t=p.parent||p.standaloneParent,y=Nx(p,t,this.project);y?i[a]=y:delete u[a]}catch(t){Re.error("Error hydrating ancestors: ",t),delete u[a]}}),this.values={...this.values,...i},this.initialized=!0}toJSON(){const u={};return Object.keys(this.values).forEach(i=>{u[i]=this.values[i].toJSON()}),u}writeValue(u,i){if(!u)throw new Error("The value owner entity is required when writing a value to a value store");let l=this.values[u.id];if(!l)if(i instanceof Oi)l=i;else if(i)l=zt(i,this.project);else{const p={id:V.UUID.uuid(),version:V.UUID.uuid(),createdAt:new Date().toISOString(),author:V.sessionAuthor,deleted:!1,previousVersion:null,value:null,type:f.LiteralValue,standaloneParent:u.toReference(),parent:null,valueAsTypeSingle:null,valueAsTypeList:null,autogeneration:null,name:el(u.getDataType(null))};l=zt(p,this.project)}l.standalone=!0,l.initialData.standaloneParent||Re.warn("instance.initialData: ",l.initialData),l.setStandaloneParent(u),l.hydrateAncestors(),l.initChildren(null),i&&(l.metaSync({...i},null),l.setValueAsType(i.valueAsType,null)),this.values[u.id]=l,this.onWriteCallback(u,l)}readValue(u){return this.values[u]||null}removeValue(u){if(!this.values[u])return;delete this.values[u];const i=this.project.get(u);i&&this.onRemoveCallback(i)}clear(){this.values={}}}function Ta(d){var u;return!!(d.required||(u=d.declaration)!=null&&u.required)}function my(d){return EM(d)||d===void 0||d===""}function zb(d){return d?d.valueAsType?!1:my(d.value):!0}function an(d,u,i,a){var y;let l;if(((y=d==null?void 0:d.entity)==null?void 0:y.type)===f.PrimitiveEntity)switch(d.entity.name){case X.EntityTemplate:l=X.EntityTemplate;break;case X.String:l=X.String;break;case X.Number:l=X.Number;break;case X.Boolean:l=X.Boolean;break;case X.Null:l=X.Null;break;case X.Enum:l=X.Enum;break;case X.KeyValue:l=X.KeyValue;break;case X.Untyped:l=X.Untyped;break;case X.KeyValue:l=X.KeyValue;break;case X.Date:l=X.Date;break;case X.UUID:l=X.UUID;break;case X.File:l=X.File;break;default:throw new Error(`Primitive type ${re(d.entity,i)} is not supported`)}else l=X.Untyped;const p=Oi.new();p.name=l,p.parent=u.toReference();const t=ee(p,i);return t.hydrateAncestors(),a==null||a.add(t,G.Added),t.addSelfToProject(a),t.initChildren(a),t}function on(d,u,i=new Set){var a,l;if(i.has(d.id))return[];if(i.add(d.id),d.type===f.ReturnDeclaration){const p=[d,...d.getCounterparts()];return Re.log("Resolved counterparts for return declaration: ",`${d.name} ${d.id}`),Re.log("equivalentReturnDeclarations: ",p.map(t=>`${t.name} ${t.id}`)),R([...p,...p.flatMap(t=>on(t,u,i))])}else if(ot.includes(d.type)){const p=Ti(d);return R([p,...[p].flatMap(t=>on(t,u,i))])}else if(d.type===f.OutputMap){if(ot.includes(d.parent.type)&&d.declaration.type===f.Property&&d.declaration.static)return R([d,d.declaration,...[d,d.declaration].flatMap(p=>on(p,u,i))])}else if(d.type===f.InputMap&&ot.includes(d.parent.type)&&((a=d.declaration)==null?void 0:a.type)===f.Property&&(l=d.declaration)!=null&&l.static)return R([d.declaration,...[d.declaration].flatMap(p=>on(p,u,i))]);return[d]}function Nx(d,u,i){return d}function Vd(d,u){const i=d.readsValue;let a=null;if((i==null?void 0:i.type)===f.VariableDeclaration){const p=vp(i,u);if(p&&p.value){const t={sources:[p],target:d};a={value:p.value,valueOwner:d,type:Te.Inherited,inheritanceLink:t}}}else if((i==null?void 0:i.type)===f.VariableInstance){const p=Ey(i,u);if(p&&p.value){const t={sources:[p],target:d};a={value:p.value,valueOwner:d,type:Te.Inherited,inheritanceLink:t}}}else if((i==null?void 0:i.type)===f.OutputMap){const p=tA(i,u);if(p&&p.value){const t={sources:[p],target:d};a={value:p.value,valueOwner:d,type:Te.Inherited,inheritanceLink:t}}}else if((i==null?void 0:i.type)===f.ArgumentDeclaration){const p=Qb(i,u);if(p){const t={sources:[p],target:d};a={value:p.value,valueOwner:d,type:Te.Inherited,inheritanceLink:t}}}return a}function et(d,u,i){var y;if(!u)return null;let a;if(((y=d==null?void 0:d.entity)==null?void 0:y.type)===f.PrimitiveEntity)switch(d.entity.name){case X.EntityTemplate:a=X.EntityTemplate;break;case X.String:a=X.String;break;case X.Number:a=X.Number;break;case X.Boolean:a=X.Boolean;break;case X.Null:a=X.Null;break;case X.Enum:a=X.Enum;break;case X.KeyValue:a=X.KeyValue;break;case X.Untyped:a=X.Untyped;break;case X.KeyValue:a=X.KeyValue;break;case X.Date:a=X.Date;break;case X.UUID:a=X.UUID;break;case X.File:a=X.File;break;default:throw new Error(`Primitive type ${re(d.entity,i)} is not supported`)}else a=X.Untyped;if(!i.get(u.id))return null;const p=Oi.new();p.name=a,p.standaloneParent=u.toReference();let t=new Oi(p,i);return t.hydrateAncestors(),t.standalone=!0,t.setStandaloneParent(u),t.initChildren(null),t}function vy(d,u,i){var p;const a={...d},l=u.inputs;if(!l)return a;for(const t of l){if(!Lp(t))continue;const y=Tp(t,i);if(y&&y.value){const v=re(t,i.project),T=Or(v);a[T]=(p=y==null?void 0:y.value)==null?void 0:p.value}}return a}function mp(d,u,i){var p;const a={...d},l=u.inputs;if(!l)return a;for(const t of l){if(!Lp(t))continue;const y=Ep(t,i);if(y&&y.value){const v=re(t,i.project),T=Or(v);a[T]=(p=y==null?void 0:y.value)==null?void 0:p.value}}return a}function Lx(d,u){var y,v,T,w,A,P,N;let i={};if(((v=(y=d.dataType)==null?void 0:y.entity)==null?void 0:v.type)===f.DefinitionEntity&&(i={...i,...d.dataType.entity.getActiveRawDefaultValue()}),u.execution&&u.execution.hasEntity(d)){const U=(T=u.lastExecutionResults)==null?void 0:T.readValue(d.id);if(U){if(lr(U.value)){const k={...i,...U.value},J={...mp(k,d,u)};U.metaSync({value:J},null)}return{value:U,valueOwner:d,type:Te.ExecutionResult,inheritanceLink:null}}}const a=!!((w=u.execution)!=null&&w.entities.length),l=(A=u.execution)==null?void 0:A.hasEntity(d),p=d.readsValue;let t=null;if(p){const U=(P=u.execution)==null?void 0:P.hasEntity(p);if((!a||a&&U&&l||a&&!U&&!l)&&(t=Vd(d,u),t&&t.value&&lr(t.value.value))){const k={...i,...t.value.value},J={...mp(k,d,u)};t.value.metaSync({value:J},null)}}if(!t&&d.defaultValue){const U=d.defaultValue;if(U.value===null&&U.autogeneration){const K=uh(U);if(U.metaSync({value:K},null),lr(K)){const k={...mp(K,d,u)};U.metaSync({value:k},null)}}t={value:U,valueOwner:d,type:U.value===null?Te.Empty:Te.DefaultValue,inheritanceLink:null}}if(!t||t.type===Te.DefaultValue){const U=(N=u.localTestValues)==null?void 0:N.readValue(d.id);if(U){if(lr(U.value)){const K={...i,...U.value},k={...mp(K,d,u)};U.metaSync({value:k},null)}return{value:U,valueOwner:d,type:Te.Testing,inheritanceLink:null}}}return t||{value:null,valueOwner:d,type:Te.Empty,inheritanceLink:null}}function Bx(d,u){var l,p,t,y,v;let i={};if(((p=(l=d.dataType)==null?void 0:l.entity)==null?void 0:p.type)===f.DefinitionEntity&&(i={...i,...d.dataType.entity.getActiveRawDefaultValue()}),u.execution&&u.execution.hasEntity(d)){const T=(t=u.lastExecutionResults)==null?void 0:t.readValue(d.id);if(T){if(lr(T.value)){const A={...i,...T.value};T==null||T.metaSync({value:{...vy(A,d,u)}},null)}return{value:T,valueOwner:d,type:Te.ExecutionResult,inheritanceLink:null}}}const a=(y=u.localTestValues)==null?void 0:y.readValue(d.id);if(a){if(lr(a.value)){const w={...i,...a.value};a.metaSync({value:{...vy(w,d,u)}},null)}return{value:a,valueOwner:d,type:Te.Testing,inheritanceLink:null}}if((v=d.dataType)!=null&&v.entity&&d.dataType.entity.type===f.DefinitionEntity&&d.dataType.isObject()){const T=et(d.dataType,d,u.project);return T==null||T.metaSync({value:vy(i,d,u)},null),{value:T,valueOwner:d,type:Te.DefaultValue,inheritanceLink:null}}return null}function vp(d,u){var y,v,T,w,A;if((y=d.dataType)!=null&&y.isObject())return Lx(d,u);const i=or(d),a=!!((v=u.execution)!=null&&v.entities.length),l=(T=u.execution)==null?void 0:T.hasEntity(i),p=d.readsValue;let t=null;if(p){const P=(w=u.execution)==null?void 0:w.hasEntity(p);(!a||a&&P&&l||a&&!P&&!l)&&(t=Vd(d,u))}if(!t&&d.defaultValue){const P=d.defaultValue;if(P.value===null&&P.autogeneration){const N=uh(P);P.metaSync({value:N},null)}t={value:P,valueOwner:d,type:P.value===null?Te.Empty:Te.DefaultValue,inheritanceLink:null}}if(!t||t.type===Te.DefaultValue){const P=(A=u.localTestValues)==null?void 0:A.readValue(d.id);if(P)return{value:P,valueOwner:d,type:Te.Testing,inheritanceLink:null}}return t||{value:null,valueOwner:d,type:Te.Empty,inheritanceLink:null}}function Xb(d,u){var a,l,p,t;if((a=d.dataType)!=null&&a.isObject())return Bx(d,u);if(u.execution&&u.execution.hasEntity(d)){const y=(l=u.lastExecutionResults)==null?void 0:l.readValue(d.id);if(y)return{value:y,valueOwner:d,type:Te.ExecutionResult,inheritanceLink:null}}const i=(p=u.localTestValues)==null?void 0:p.readValue(d.id);if(i)return{value:i,valueOwner:d,type:Te.Testing,inheritanceLink:null};if((t=d.dataType)!=null&&t.entity&&d.dataType.entity.type===f.DefinitionEntity&&d.dataType.isObject()){const y=et(d.dataType,d,u.project),v=d.dataType.entity.getActiveRawDefaultValue();return y==null||y.metaSync({value:v},null),{value:y,valueOwner:d,type:Te.DefaultValue,inheritanceLink:null}}return null}function Ey(d,u){var T,w,A,P;const i=!!((T=u.execution)!=null&&T.entities.length),a=(w=u.execution)==null?void 0:w.hasEntity(d);let l=null;const p=d.readsValue;if(p){const N=(A=u.execution)==null?void 0:A.hasEntity(p);(!i||i&&N&&a||i&&!N&&!a)&&(l=Vd(d,u))}const t=d.declaration;if(!l&&t){const N=vp(t,u);N&&N.value&&(l=N)}if(!l||l.type===Te.DefaultValue){const N=(P=u.localTestValues)==null?void 0:P.readValue(d.id);if(N)return{value:N,valueOwner:d,type:Te.Testing,inheritanceLink:null}}const y=Ta(d);return y&&a&&!l?{value:null,valueOwner:d,type:Te.Missing,inheritanceLink:null}:a&&!y&&!l?{value:null,valueOwner:d,type:Te.Empty,inheritanceLink:null}:l||{value:null,valueOwner:d,type:Te.External,inheritanceLink:null}}function Mx(d,u){return Xb(d.declaration,u)}function Qb(d,u){var v,T,w,A;if(u.execution&&u.execution.hasEntity(d)){const P=(v=u.lastExecutionResults)==null?void 0:v.readValue(d.id);if(P)return{value:P,valueOwner:d,type:Te.ExecutionResult,inheritanceLink:null}}const i=or(d),a=d.parent.type===f.FunctionDeclaration&&d.parent.parent.type===f.Loop?d.parent:null,l=!!((T=u.execution)!=null&&T.hasEntity(i))||!!a&&!!((w=u.execution)!=null&&w.hasEntity(a));let p=null;if(d.defaultValue){const P=d.defaultValue;if(P.value===null&&P.autogeneration){const N=uh(P);P.metaSync({value:N},null)}p={value:P,valueOwner:d,type:P.value===null?Te.Empty:Te.DefaultValue,inheritanceLink:null}}if(!p||p.type===Te.DefaultValue){const P=(A=u.localTestValues)==null?void 0:A.readValue(d.id);if(P)return{value:P,valueOwner:d,type:Te.Testing,inheritanceLink:null}}const t=Ta(d);let y=t&&l&&!p;return i.type===f.Loop&&l&&(y=!1),y?{value:null,valueOwner:d,type:Te.Missing,inheritanceLink:null}:l&&!t&&!p?{value:null,valueOwner:d,type:Te.Empty,inheritanceLink:null}:p||{value:null,valueOwner:d,type:Te.External,inheritanceLink:null}}function eA(d,u){var T,w,A,P,N;if(u.execution&&u.execution.hasEntity(d)){const U=(T=u.lastExecutionResults)==null?void 0:T.readValue(d.id);if(U)return{value:U,valueOwner:d,type:Te.ExecutionResult,inheritanceLink:null}}const i=or(d),a=!!((w=u.execution)!=null&&w.entities.length),l=(A=u.execution)==null?void 0:A.hasEntity(i),p=d.readsValue;let t=null;if(p){const U=(P=u.execution)==null?void 0:P.hasEntity(p);(!a||a&&U&&l||a&&!U&&!l)&&(t=Vd(d,u))}if(!t&&d.defaultValue&&(t={value:d.defaultValue,valueOwner:d,type:Te.DefaultValue,inheritanceLink:null}),!t||t.type===Te.DefaultValue){const U=(N=u.localTestValues)==null?void 0:N.readValue(d.id);if(U)return{value:U,valueOwner:d,type:Te.Testing,inheritanceLink:null}}const y=Ta(d);return y&&!t?{value:null,valueOwner:d,type:Te.Missing,inheritanceLink:null}:!y&&!t?{value:null,valueOwner:d,type:Te.Empty,inheritanceLink:null}:t}function tA(d,u){var y,v,T,w,A;if(u.execution&&u.execution.hasEntity(d)){const P=(y=u.lastExecutionResults)==null?void 0:y.readValue(d.id);if(P)return{value:P,valueOwner:d,type:Te.ExecutionResult,inheritanceLink:null}}const i=or(d);if(ot.includes(i.type)){const P=il(i,u),N=Or(re(d,u.project));if(P!=null&&P.value&&lr(P.value.value)){const U=P.value.value[N],K=et(d.getDataType(null),d,u.project);return K==null||K.metaSync({value:U},null),{value:K,valueOwner:d,type:P.type,inheritanceLink:{sources:[P],target:d}}}return null}const a=(v=u.execution)==null?void 0:v.hasEntity(i),l=((T=u.execution)==null?void 0:T.state)===iA.Running;if((w=u.persistedExecutionResults)!=null&&w.values[d.id]&&!a&&!l){const P=(A=u.persistedExecutionResults)==null?void 0:A.readValue(d.id);if((P==null?void 0:P.value)!==null||(P==null?void 0:P.valueAsType)!==null)return{value:P,valueOwner:d,type:Te.ExecutionResult,inheritanceLink:null}}const p=d.getDefaultValue();if(p&&(p.value!==null||p.valueAsType!==null))return{value:p,valueOwner:d,type:Te.DefaultValue,inheritanceLink:null};const t=d.parent;if(!t)throw new Error(`Couldn't find the parent that generates the output ${d.id}`);switch(t.type){case f.VariableInstance:{const N=Ey(t,u);if(N&&N.value){const K=d.declaration;if(lr(N.value.value)){const k=N.value.value[K.name],J=et(d.declaration.dataType,d,u.project);return J==null||J.metaSync({value:k},null),{value:J,valueOwner:d,type:Te.Inherited,inheritanceLink:{sources:[N],target:d}}}}const U=et(d.declaration.dataType,d,u.project);return U==null||U.metaSync({value:null},null),{value:U,valueOwner:d,type:Te.Inherited,inheritanceLink:{sources:N?[N]:[],target:d}}}case f.VariableDeclaration:{const N=vp(t,u);if(N&&N.value){const K=d.declaration;if(lr(N.value.value)){const k=N.value.value[K.name],J=et(d.declaration.dataType,d,u.project);return J==null||J.metaSync({value:k},null),{value:J,valueOwner:d,type:Te.Inherited,inheritanceLink:{sources:[N],target:d}}}}const U=et(d.declaration.dataType,d,u.project);return U==null||U.metaSync({value:null},null),{value:U,valueOwner:d,type:Te.Inherited,inheritanceLink:{sources:N?[N]:[],target:d}}}case f.Operation:{const P=t.outputs.map(U=>{var k,J;if((k=u.persistedExecutionResults)!=null&&k.values[U.id]){const se=(J=u.persistedExecutionResults)==null?void 0:J.values[U.id];if(se.value!==null||se.valueAsType!==null)return{value:se,valueOwner:U,type:Te.ExecutionResult,inheritanceLink:null}}const K=U.getDefaultValue();if(K&&(K.value!==null||K.valueAsType!==null))return{value:K,valueOwner:U,type:Te.DefaultValue,inheritanceLink:null}}).filter(U=>!!U),N=et(d.declaration.dataType,d,u.project);return N==null||N.metaSync({value:null},null),{value:N,valueOwner:d,type:Te.QueuedAutocalculation,inheritanceLink:P.length?{sources:P,target:d}:null}}case f.FunctionCall:{const P=t.inputs.map(U=>Ty(U,u)).filter(U=>!!U),N=et(d.declaration.dataType,d,u.project);return N==null||N.metaSync({value:null},null),{value:N,valueOwner:d,type:Te.QueuedAutocalculation,inheritanceLink:P.length?{sources:P,target:d}:null}}case f.Loop:{const P=t.inputs.map(U=>Ty(U,u)).filter(U=>!!U),N=et(d.declaration.dataType,d,u.project);return N==null||N.metaSync({value:null},null),{value:N,valueOwner:d,type:Te.QueuedAutocalculation,inheritanceLink:P.length?{sources:P,target:d}:null}}case f.Search:return{value:null,valueOwner:d,type:Te.QueuedAutocalculation,inheritanceLink:null}}return null}function Ux(d,u){var w,A;if(!ot.includes(d.parent.type)||!Lp(d))return null;if(((w=d.declaration)==null?void 0:w.type)===f.Property&&d.declaration.static)return il(d.declaration,u);const i=Ep(d,u);if(i&&i.type!==Te.Empty&&i.type!==Te.Missing)return i;const a=Ti(d.parent),l=by(a,u),p=Or(re(d,u.project)),t=et(d.getDataType(null),d,u.project),y=Ta(d),v=(A=l==null?void 0:l.value)==null?void 0:A.value;if(v&&lr(v)){let P=v[p];return v[p]===void 0&&(P=null),t==null||t.metaSync({value:P},null),y&&my(P)?{value:null,valueOwner:d,type:Te.Missing,inheritanceLink:null}:{value:t,valueOwner:d,type:l.type,inheritanceLink:{sources:l?[l]:[],target:d}}}return y?{value:null,valueOwner:d,type:Te.Missing,inheritanceLink:null}:{value:null,valueOwner:d,type:Te.Empty,inheritanceLink:null}}function jx(d,u){var w,A,P,N,U;if(!ot.includes(d.parent.type)||!Lp(d))return null;if(((w=d.declaration)==null?void 0:w.type)===f.Property&&d.declaration.static)return il(d.declaration,u);const i=Ti(d.parent),a=il(i,u),l=d.parent===i?d:i.inputs.find(K=>{var k,J;return((k=K.declaration)==null?void 0:k.id)===((J=d.declaration)==null?void 0:J.id)}),p=Tp(l,u),t=Or(re(d,u.project)),y=et(d.getDataType(null),d,u.project),v=Ta(d),T=(A=a==null?void 0:a.value)==null?void 0:A.value;if(((a==null?void 0:a.type)===Te.ExecutionResult||(a==null?void 0:a.type)===Te.Testing)&&T&&lr(T)){let K=T[t];return T[t]===void 0&&(K=null),y==null||y.metaSync({value:K},null),{value:y,valueOwner:d,type:a.type,inheritanceLink:{sources:a?[a]:[],target:d}}}if(p&&p.type!==Te.Empty&&p.type!==Te.Missing)return p;if(T&&lr(T)){let K=T[t];T[t]===void 0&&(K=null),y==null||y.metaSync({value:K},null);const k=v&&my(K),J=!!((P=u.execution)!=null&&P.entities.length),se=(N=u.execution)==null?void 0:N.hasEntity(i),te=i.readsValue;if(te){const ce=(U=u.execution)==null?void 0:U.hasEntity(te);if(k&&(!J||J&&ce&&se||J&&!ce&&!se))return{value:null,valueOwner:d,type:Te.Inherited,inheritanceLink:null}}return k?{value:null,valueOwner:d,type:Te.Missing,inheritanceLink:null}:{value:y,valueOwner:d,type:a.type,inheritanceLink:{sources:a?[a]:[],target:d}}}return Tp(d,u)}function Ep(d,u){var T,w,A,P,N;const i=or(d),a=!!((T=u.execution)!=null&&T.entities.length),l=(w=u.execution)==null?void 0:w.hasEntity(i),p=d.readsValue;let t=null;if(p){const U=(A=u.execution)==null?void 0:A.hasEntity(p);(!a||a&&U&&l||a&&!U&&!l)&&(t=Vd(d,u))}if(!t&&d.defaultValue){const U=d.defaultValue;U&&(t={value:U,valueOwner:d,type:Te.DefaultValue,inheritanceLink:null})}if(!t&&d.declaration){const U=il(d.declaration,u);U&&U.value&&(t={...U,valueOwner:d,type:Te.DefaultValue})}if(!t||t.type===Te.DefaultValue||(t==null?void 0:t.type)===Te.Empty){const U=(P=u.persistedExecutionResults)==null?void 0:P.readValue(d.id);if(U)return{value:U,valueOwner:d,type:Te.Testing,inheritanceLink:null};const K=(N=u.localTestValues)==null?void 0:N.readValue(d.id);if(K)return{value:K,valueOwner:d,type:Te.Testing,inheritanceLink:null}}const y=Ta(d);return y&&!t||(t==null?void 0:t.type)===Te.Empty?{value:null,valueOwner:d,type:Te.Missing,inheritanceLink:(t==null?void 0:t.inheritanceLink)||null}:!y&&(!t||t.type===Te.Inherited)&&!(t!=null&&t.inheritanceLink)?{value:null,valueOwner:d,type:Te.Empty,inheritanceLink:null}:t}function Tp(d,u){var l,p;if(u.execution&&u.execution.hasEntity(d)){const t=(l=u.lastExecutionResults)==null?void 0:l.readValue(d.id);if(t)return{value:t,valueOwner:d,type:Te.ExecutionResult,inheritanceLink:null}}const i=(p=u.localTestValues)==null?void 0:p.readValue(d.id);return i?{value:i,valueOwner:d,type:Te.Testing,inheritanceLink:null}:Ep(d,u)}function Ty(d,u){var i;return ot.includes(d.parent.type)&&(i=Ti(d.parent).dataType)!=null&&i.isObject()?Ux(d,u):Ep(d,u)}function xx(d,u){var i;return ot.includes(d.parent.type)&&(i=Ti(d.parent).dataType)!=null&&i.isObject()?jx(d,u):Tp(d,u)}function Fx(d,u){var y,v;if(!d.static)return null;if(u.execution){const T=(y=u.lastExecutionResults)==null?void 0:y.readValue(d.id);if(T)return{value:T,valueOwner:d,type:Te.ExecutionResult,inheritanceLink:null}}const i=(v=u.localTestValues)==null?void 0:v.readValue(d.id);if(i)return{value:i,valueOwner:d,type:Te.Testing,inheritanceLink:null};const a=d.getDefaultValue();let l=null;return a&&(l={value:a,valueOwner:d,type:Te.DefaultValue,inheritanceLink:null}),Ta(d)&&zb(l==null?void 0:l.value)?{value:null,valueOwner:d,type:Te.Missing,inheritanceLink:null}:zb(l==null?void 0:l.value)?{value:null,valueOwner:d,type:Te.Empty,inheritanceLink:null}:l}function Gx(d,u){var y,v,T,w,A,P;if(u.execution&&u.execution.hasEntity(d)){const N=(y=u.lastExecutionResults)==null?void 0:y.readValue(d.id);if(N)return{value:N,valueOwner:d,type:Te.ExecutionResult,inheritanceLink:null}}const i=(v=u.localTestValues)==null?void 0:v.readValue(d.id);if(i)return{value:i,valueOwner:d,type:Te.Testing,inheritanceLink:null};const a=d.getDefaultValue();let l=null;return a&&(l={value:a,valueOwner:d,type:Te.DefaultValue,inheritanceLink:null}),Ta(d)&&!((T=l==null?void 0:l.value)!=null&&T.value)&&!((w=l==null?void 0:l.value)!=null&&w.valueAsType)?{value:null,valueOwner:d,type:Te.Missing,inheritanceLink:null}:!((A=l==null?void 0:l.value)!=null&&A.value)&&!((P=l==null?void 0:l.value)!=null&&P.valueAsType)?{value:null,valueOwner:d,type:Te.Empty,inheritanceLink:null}:l}function il(d,u){switch(d.type){case f.ArgumentDeclaration:return Qb(d,u);case f.InputMap:return xx(d,u);case f.VariableDeclaration:return Xb(d,u);case f.VariableInstance:return Mx(d,u);case f.OutputMap:return tA(d,u);case f.ReturnDeclaration:return eA(d,u);case f.Property:return Fx(d,u);case f.ValueDescriptor:return Gx(d,u);default:return null}}function by(d,u){switch(d.type){case f.InputMap:return Ty(d,u);case f.VariableDeclaration:return vp(d,u);case f.VariableInstance:return Ey(d,u);case f.ReturnDeclaration:return eA(d,u);default:return null}}function lme(d){var u;if(d&&d.type===Te.DefaultValue&&d.value&&d.valueOwner&&((u=d.valueOwner.defaultValue)==null?void 0:u.id)===d.value.id){const i=et(d.valueOwner.getDataType(null),d.valueOwner,d.valueOwner.project);return{type:Te.DefaultValue,value:i,valueOwner:d.valueOwner,inheritanceLink:null}}return d}function sl(d,u,i,a){let l=!1,p=null,t=null;a instanceof F?(l=!0,p=a,t=null):(p=null,t=a);const y=d.parent;return u.getVariableDeclarations().forEach(T=>{var A,P,N,U;const w=T.getDataType(null);if(((A=w==null?void 0:w.entity)==null?void 0:A.id)===y.id){let K=l?T.defaultValue:t==null?void 0:t.readValue(T.id);K?!l&&K&&K.id===((P=T.defaultValue)==null?void 0:P.id)&&(K=et(T.getDataType(null),T,u)):l?K=an(T.getDataType(null),T,u,p):K=et(T.getDataType(null),T,u);const k=re(d,u),J=Or(k);let se={};((U=(N=T.dataType)==null?void 0:N.entity)==null?void 0:U.type)===f.DefinitionEntity&&(se={...se,...T.dataType.entity.getActiveRawDefaultValue()}),lr(K==null?void 0:K.value)&&(se={...se,...K.value}),se[J]=i,K==null||K.metaSync({value:se},p),l||t==null||t.writeValue(T,K);return}}),p}function bp(d,u,i,a){var N,U,K;let l=!1,p=null,t=null;a instanceof F?(l=!0,p=a,t=null):(p=null,t=a);const y=Ti(d.parent),v=y.getDataType(null);if(!(v!=null&&v.isObject()))return p;let T=l?y.defaultValue:t==null?void 0:t.readValue(y.id);T?!l&&T&&T.id===((N=y.defaultValue)==null?void 0:N.id)&&(T=et(y.getDataType(null),y,u)):l?T=an(y.getDataType(null),y,u,p):T=et(y.getDataType(null),y,u);const w=re(d,u),A=Or(w);let P={};if(((K=(U=y.dataType)==null?void 0:U.entity)==null?void 0:K.type)===f.DefinitionEntity&&(P={...P,...y.dataType.entity.getActiveRawDefaultValue()}),lr(T==null?void 0:T.value)&&(P={...P,...T.value}),P[A]=i,T==null||T.metaSync({value:P},p),l||t==null||t.writeValue(y,T),(i===""||i===null||i===void 0)&&d.type===f.OutputMap){const k=y.inputs.find(J=>{var se;return((se=J.declaration)==null?void 0:se.id)===d.declaration.id||re(J,u)===w});if(k){let J=l?k.defaultValue:t==null?void 0:t.readValue(k.id);J&&J.metaSync({value:null},p),l||t==null||t.removeValue(k.id)}}return p}function Kx(d,u,i){var t,y,v,T;let a=!1,l=null,p=null;if(i instanceof F?(a=!0,l=i,p=null):(l=null,p=i),ot.includes(d.type)){const w=Ti(d);(t=w.dataType)!=null&&t.isObject()&&w.inputs.forEach(A=>{var P,N,U,K;if(((P=A.declaration)==null?void 0:P.type)===f.Property&&A.declaration.static){let k=a?d.defaultValue:p==null?void 0:p.readValue(A.declaration.id);k?!a&&k&&k.id===((N=A.declaration.defaultValue)==null?void 0:N.id)&&(k=et(A.declaration.getDataType(null),A.declaration,u)):a?k=an(A.declaration.getDataType(null),A.declaration,u,l):k=et(A.declaration.getDataType(null),A.declaration,u),k==null||k.metaSync({value:null},l),a||p==null||p.removeValue((U=A.declaration)==null?void 0:U.id)}else if(((K=A.declaration)==null?void 0:K.type)===f.Property){let k=a?d.defaultValue:p==null?void 0:p.readValue(A.id);k&&k.metaSync({value:null},l),a||p==null||p.removeValue(A.id)}})}else d.type===f.InputMap?((y=d.declaration)==null?void 0:y.type)===f.Property&&d.declaration.static?sl(d.declaration,u,null,i):ot.includes(d.parent.type)&&((v=d.declaration)==null?void 0:v.type)===f.Property&&bp(d,u,null,i):d.type===f.OutputMap?((T=d.declaration)==null?void 0:T.type)===f.Property&&d.declaration.static?sl(d.declaration,u,null,i):ot.includes(d.parent.type)&&d.declaration.type===f.Property&&bp(d,u,null,i):d.type===f.Property&&d.static&&sl(d,u,null,i);return l}function kx(d,u,i,a){var y,v,T,w,A,P;let l=!1,p=null,t=null;if(a instanceof F?(l=!0,p=a,t=null):(p=null,t=a),ot.includes(u.type)){const N=Ti(u);if((y=N.dataType)!=null&&y.isObject()){let U={};((T=(v=N.dataType)==null?void 0:v.entity)==null?void 0:T.type)===f.DefinitionEntity&&(U={...U,...N.dataType.entity.getActiveRawDefaultValue()});const K=lr(d)?d:U;N.inputs.forEach(k=>{var J,se,te;if(((J=k.declaration)==null?void 0:J.type)===f.Property&&k.declaration.static){let ce=l?u.defaultValue:t==null?void 0:t.readValue(k.declaration.id);ce?!l&&ce&&ce.id===((se=k.declaration.defaultValue)==null?void 0:se.id)&&(ce=et(k.declaration.getDataType(null),k.declaration,i)):l?ce=an(k.declaration.getDataType(null),k.declaration,i,p):ce=et(k.declaration.getDataType(null),k.declaration,i);const ie=re(k,i),he=Or(ie),z=K[he];ce==null||ce.metaSync({value:z},p),l||t==null||t.writeValue(k.declaration,ce)}else if(((te=k.declaration)==null?void 0:te.type)===f.Property){let ce=l?u.defaultValue:t==null?void 0:t.readValue(k.id);ce&&ce.metaSync({value:null},p),l||t==null||t.removeValue(k.id)}})}}else u.type===f.InputMap?((w=u.declaration)==null?void 0:w.type)===f.Property&&u.declaration.static?sl(u.declaration,i,d,a):ot.includes(u.parent.type)&&((A=u.declaration)==null?void 0:A.type)===f.Property&&bp(u,i,d,a):u.type===f.OutputMap?((P=u.declaration)==null?void 0:P.type)===f.Property&&u.declaration.static?sl(u.declaration,i,null,a):ot.includes(u.parent.type)&&u.declaration.type===f.Property&&bp(u,i,null,a):u.type===f.Property&&u.static&&sl(u,i,d,a);return p}function Sx(d,u,i){const a=on(d,u);let l=!1,p=null,t=null;return i instanceof F?(l=!0,p=i,t=null):(p=null,t=i),a.forEach(y=>{var T;let v=l?y.defaultValue:t==null?void 0:t.readValue(y.id);v?!l&&v&&v.id===((T=y.defaultValue)==null?void 0:T.id)&&(v=et(d.getDataType(null),d,d.project)):l?v=an(y.getDataType(null),y,u,p):v=et(y.getDataType(null),y,u),v==null||v.metaSync({value:null},p),l||t==null||t.removeValue(y.id),Kx(y,u,i)}),p}function dme(d,u,i,a){if(d===""||d===null||d===void 0)return Sx(u,i,a);const l=on(u,i);let p=!1,t=null,y=null;return a instanceof F?(p=!0,t=a,y=null):(t=null,y=a),l.forEach(v=>{var w;let T=p?u.defaultValue:y==null?void 0:y.readValue(u.id);T?!p&&T&&T.id===((w=v.defaultValue)==null?void 0:w.id)&&(T=et(v.getDataType(null),v,i)):p?T=an(v.getDataType(null),v,i,t):T=et(v.getDataType(null),v,i),T==null||T.metaSync({value:d},t),p||y==null||y.writeValue(v,T),kx(d,v,i,a)}),t}function nl(d,u,i,a){let l=!1,p=null,t=null;a instanceof F?(l=!0,p=a,t=null):(p=null,t=a);const y=d.parent;return u.getVariableDeclarations().forEach(T=>{var A,P,N,U;const w=T.getDataType(null);if(((A=w==null?void 0:w.entity)==null?void 0:A.id)===y.id){let K=l?T.defaultValue:t==null?void 0:t.readValue(T.id);K?!l&&K&&K.id===((P=T.defaultValue)==null?void 0:P.id)&&(K=et(T.getDataType(null),T,u)):l?K=an(T.getDataType(null),T,u,p):K=et(T.getDataType(null),T,u);const k=re(d,u),J=Or(k);let se={};((U=(N=T.dataType)==null?void 0:N.entity)==null?void 0:U.type)===f.DefinitionEntity&&(se={...se,...T.dataType.entity.getActiveRawDefaultValue()}),lr(K==null?void 0:K.value)&&(se={...se,...K.value}),Array.isArray(i)?se[J]=(i==null?void 0:i.map(te=>te.toShallowJSON()))||null:se[J]=(i==null?void 0:i.toShallowJSON())||null,K==null||K.metaSync({value:se},p),l||t==null||t.writeValue(T,K);return}}),p}function Ap(d,u,i,a){var N,U,K;let l=!1,p=null,t=null;a instanceof F?(l=!0,p=a,t=null):(p=null,t=a);const y=Ti(d.parent),v=y.getDataType(null);if(!(v!=null&&v.isObject()))return p;let T=l?y.defaultValue:t==null?void 0:t.readValue(y.id);T?!l&&T&&T.id===((N=y.defaultValue)==null?void 0:N.id)&&(T=et(y.getDataType(null),y,u)):l?T=an(y.getDataType(null),y,u,p):T=et(y.getDataType(null),y,u);const w=re(d,u),A=Or(w);let P={};if(((K=(U=y.dataType)==null?void 0:U.entity)==null?void 0:K.type)===f.DefinitionEntity&&(P={...P,...y.dataType.entity.getActiveRawDefaultValue()}),lr(T==null?void 0:T.value)&&(P={...P,...T.value}),Array.isArray(i)?P[A]=(i==null?void 0:i.map(k=>k.toShallowJSON()))||null:P[A]=(i==null?void 0:i.toShallowJSON())||null,T==null||T.metaSync({value:P},p),l||t==null||t.writeValue(y,T),i==null&&d.type===f.OutputMap){const k=y.inputs.find(J=>{var se;return((se=J.declaration)==null?void 0:se.id)===d.declaration.id||re(J,u)===w});if(k){let J=l?k.defaultValue:t==null?void 0:t.readValue(k.id);J&&(Array.isArray(i)?J==null||J.setValueAsTypeList(i,p):J==null||J.setValueAsTypeSingle(i,p)),l||t==null||t.removeValue(k.id)}}return p}function qx(d,u,i){var a,l,p;return d.type===f.InputMap?((a=d.declaration)==null?void 0:a.type)===f.Property&&d.declaration.static?nl(d.declaration,u,null,i):ot.includes(d.parent.type)&&((l=d.declaration)==null?void 0:l.type)===f.Property&&Ap(d,u,null,i):d.type===f.OutputMap?((p=d.declaration)==null?void 0:p.type)===f.Property&&d.declaration.static?nl(d.declaration,u,null,i):ot.includes(d.parent.type)&&d.declaration.type===f.Property&&Ap(d,u,null,i):d.type===f.Property&&d.static&&nl(d,u,null,i),i}function Zx(d,u,i,a){var l,p,t;return u.type===f.InputMap?((l=u.declaration)==null?void 0:l.type)===f.Property&&u.declaration.static?nl(u.declaration,i,d,a):ot.includes(u.parent.type)&&((p=u.declaration)==null?void 0:p.type)===f.Property&&Ap(u,i,d,a):u.type===f.OutputMap?((t=u.declaration)==null?void 0:t.type)===f.Property&&u.declaration.static?nl(u.declaration,i,null,a):ot.includes(u.parent.type)&&u.declaration.type===f.Property&&Ap(u,i,null,a):u.type===f.Property&&u.static&&nl(u,i,d,a),a}function Jx(d,u,i){const a=on(d,u);let l=!1,p=null,t=null;return i instanceof F?(l=!0,p=i,t=null):(p=null,t=i),a.forEach(y=>{var T;let v=l?y.defaultValue:t==null?void 0:t.readValue(y.id);v?!l&&v&&v.id===((T=y.defaultValue)==null?void 0:T.id)&&(v=et(y.getDataType(null),y,y.project)):l?v=an(y.getDataType(null),y,u,p):v=et(y.getDataType(null),y,u),v==null||v.setValueAsTypeSingle(null,p),v==null||v.setValueAsTypeList(null,p),l||t==null||t.removeValue(y.id),qx(y,u,i)}),p}function ume(d,u,i,a){if(d==null)return Jx(u,i,a);const l=on(u,i);let p=!1,t=null,y=null;return a instanceof F?(p=!0,t=a,y=null):(t=null,y=a),l.forEach(v=>{var w;let T=p?v.defaultValue:y==null?void 0:y.readValue(v.id);T?!p&&T&&T.id===((w=v.defaultValue)==null?void 0:w.id)&&(T=et(v.getDataType(null),v,v.project)):p?T=an(v.getDataType(null),v,i,t):T=et(v.getDataType(null),v,i),Array.isArray(d)?T==null||T.setValueAsTypeList(d,t):T==null||T.setValueAsTypeSingle(d,t),p||y==null||y.writeValue(v,T),Zx(d,v,i,a)}),t}var cme=Object.defineProperty,pme=(d,u,i)=>u in d?cme(d,u,{enumerable:!0,configurable:!0,writable:!0,value:i}):d[u]=i,al=(d,u,i)=>(pme(d,typeof u!="symbol"?u+"":u,i),i);let fme=class{constructor(u){al(this,"eventName"),al(this,"callbacks",[]),this.eventName=u,this.on=this.on.bind(this),this.off=this.off.bind(this),this.destroy=this.destroy.bind(this)}on(u){if(typeof u!="function")throw new Error("Event callback must be a function");this.callbacks.includes(u)||this.callbacks.push(u)}off(u){if(typeof u!="function")throw new Error("Event callback must be a function");this.callbacks=this.callbacks.filter(i=>i!==u)}destroy(){this.callbacks=[]}},rA=class{constructor(){al(this,"subscribedEvents",{}),al(this,"on",this._on),al(this,"emit",this._emit),al(this,"off",this._off),al(this,"destroy",this._destroy),this.getEvent=this.getEvent.bind(this),this._on=this._on.bind(this),this._emit=this._emit.bind(this),this._off=this._off.bind(this),this._destroy=this._destroy.bind(this),this.on=this.on.bind(this),this.emit=this.emit.bind(this),this.off=this.off.bind(this),this.destroy=this.destroy.bind(this)}getEvent(u){return this.subscribedEvents[u]||(this.subscribedEvents[u]=new fme(u)),this.subscribedEvents[u]}_on(u,i){this.getEvent(u).on(i)}_emit(u,...i){const a=this.getEvent(u);a&&a.callbacks.forEach(l=>{l.apply(null,i)})}_off(u,i){const a=this.getEvent(u);a&&(i?a.off(i):(a.destroy(),delete this.subscribedEvents[u]))}_destroy(){Object.keys(this.subscribedEvents).forEach(u=>{this._off(u)}),this.subscribedEvents={}}};const Qa={onBeforeEntityExecution:async()=>{},onEntityExecuted:async()=>{}};var iA=(d=>(d.FinishedSuccess="finished-success",d.FinishedError="finished-error",d.Running="running",d.Paused="paused",d.Stopped="stopped",d.NotStarted="not-started",d))(iA||{});const Si=class Si extends rA{constructor(i,a,l,p=null){super();D(this,"project");D(this,"entryPoint");D(this,"state","not-started");D(this,"events",new rA);D(this,"entities",[]);D(this,"parentExecution",null);D(this,"executing",[]);D(this,"executed",[]);D(this,"skipped",[]);D(this,"scheduled",[]);D(this,"localTestValues");D(this,"resolvedValues");D(this,"persistedExecutionResults");D(this,"lastExecutionResults");D(this,"onAddToSkippedListCallback",null);D(this,"onRemoveFromSkippedListCallback",null);D(this,"onAddEntityCallback",null);D(this,"onRemoveEntityCallback",null);this.entities=a,this.entryPoint=l,this.project=i,this.parentExecution=p,this.localTestValues=new yp(V.UUID.uuid(),this.project),this.resolvedValues=new yp(V.UUID.uuid(),this.project),this.persistedExecutionResults=new yp(V.UUID.uuid(),this.project),this.lastExecutionResults=new yp(V.UUID.uuid(),this.project)}get valueResolutionContext(){return{execution:this,project:this.project,localTestValues:this.localTestValues,resolvedValues:this.resolvedValues,persistedExecutionResults:this.persistedExecutionResults,lastExecutionResults:this.lastExecutionResults}}static injectSearchImplementation(i){Si.searchImplementation=i}skip(i){this.hasEntity(i)&&(this.skipped.includes(i)||(this.skipped.push(i),this.onAddToSkippedListCallback&&this.onAddToSkippedListCallback(i),Vs.includes(i.type)&&[...i.successCalls||[],...i.errorCalls||[],...i.calls||[]].forEach(a=>this.skip(a))))}async schedule(i,a,l){if(this.hasExecuted(i))return null;if(tr.includes(i.type))return this.executeBranch(i,l,a);if(Ps.includes(i.type)){if(i.calledBy.every(t=>this.hasExecuted(t)||!this.hasEntity(t)))return this.executeBranch(i,l,a);this.scheduled.includes(i)||this.scheduled.push(i)}return null}mergeExernalValuesWithInternalInputs(i,a){const l=[];return[...nr,...tr].includes(a.type)?l.push(...a.inputs):pr.includes(a.type)&&l.push(...a.outputs),l.map(t=>{var v;let y=i.find(T=>T.valueOwner.id===t.id);if(y)return y;if(!y&&tr.includes(a.type)&&(y=i.find(T=>{var w;return((w=T.valueOwner.declaration)==null?void 0:w.id)===t.id})),y){const T=(v=y.value)==null?void 0:v.clone(null);return T==null||T.setStandaloneParent(t),{...y,valueOwner:t,value:T||null,inheritanceLink:{sources:[y],target:t}}}return bn.includes(t.type)?by(t,this.valueResolutionContext):il(t,this.valueResolutionContext)}).reduce((t,y)=>{const v=on(y==null?void 0:y.valueOwner,this.project),T=y?[y]:[];return v.forEach(w=>{var N,U,K;if(w.id===(y==null?void 0:y.valueOwner.id))return;const A=et(w.getDataType(null),w,this.project);A==null||A.metaSync({value:(N=y==null?void 0:y.value)==null?void 0:N.value},null),A==null||A.setValueAsTypeList(((U=y==null?void 0:y.value)==null?void 0:U.valueAsTypeList)||null),A==null||A.setValueAsTypeSingle(((K=y==null?void 0:y.value)==null?void 0:K.valueAsTypeSingle)||null);const P={...y,valueOwner:w,value:A};T.push(P)}),[...t,...T]},[]).sort((t,y)=>t.valueOwner.index-y.valueOwner.index)}inheritValuesFromContext(i){this.localTestValues=i.localTestValues,this.resolvedValues=i.resolvedValues,this.persistedExecutionResults=i.persistedExecutionResults}async executeInternalCall(i,a,l,p={}){var y,v;const t={...Qa,...p};try{let T={value:Je.Success,error:null,results:[]};if(a.sort((w,A)=>w.valueOwner.index-A.valueOwner.index),Object.values(Li).includes(i.declaration.id)){const w=Si.builtInFunctionImplementations[i.declaration.id];w?T=await w(i,a):Re.warn(`No implementation found for built-in function: ${i.declaration.id}`)}else{Re.log("executeFunctionCall",a),T=await this.executeDetachedFullFunctionDeclarationLogic(i.declaration,a,l,t);const w=i.outputs.map(P=>{var J,se,te,ce;const N=[...P.declaration.getCounterparts(),P.declaration];Re.log("declarations",N);const U=T.results.find(ie=>N.some(z=>ie.valueOwner.id===z.id));Re.log("resultValue",U);const K=P==null?void 0:P.getDataType(null),k=et(K,P,l);return K!=null&&K.asType?Array.isArray((J=U==null?void 0:U.value)==null?void 0:J.valueAsType)?k==null||k.setValueAsTypeList((se=U==null?void 0:U.value)==null?void 0:se.valueAsTypeList):k==null||k.setValueAsTypeSingle(((te=U==null?void 0:U.value)==null?void 0:te.valueAsType)||null):k==null||k.metaSync({value:(ce=U==null?void 0:U.value)==null?void 0:ce.value},null),{valueOwner:P,type:Te.ExecutionResult,inheritanceLink:null,value:k}});let A=null;if(T.error){Re.warn("Raw error executing entity: ",T.error);const P=(y=i.error)==null?void 0:y.getDataType(null),N=et(P||null,i.error,l);P!=null&&P.asType?N==null||N.setValueAsTypeSingle(T.error):N==null||N.metaSync({value:T.error},null),A={valueOwner:i.error,type:Te.ExecutionResult,inheritanceLink:null,value:N}}return{value:T.value,entity:i,error:A,results:w}}return{value:Je.Error,entity:i,error:null,results:[]}}catch(T){Re.warn("Operation execution error: ",T);let w=null;if(i.error){const A=(v=i.error)==null?void 0:v.getDataType(null),P=et(A,i.error,l);A!=null&&A.asType?P==null||P.setValueAsTypeSingle(T):P==null||P.metaSync({value:T},null),w={valueOwner:i.error,type:Te.ExecutionResult,inheritanceLink:null,value:P}}return{value:Je.Error,entity:i,error:w,results:[]}}}static async executeOperation(i,a,l){var p,t;try{let y={value:Je.Success,error:null,results:[]};a.sort((w,A)=>w.valueOwner.index-A.valueOwner.index),i.declaration.implementation&&(y=await i.declaration.implementation(i,a));const v=i.outputs.map((w,A)=>{const P=w==null?void 0:w.getDataType(null),N=et(P,w,l);return P!=null&&P.asType?N==null||N.setValueAsTypeSingle(y.results[A]):N==null||N.metaSync({value:y.results[A]},null),{valueOwner:w,type:Te.ExecutionResult,inheritanceLink:null,value:N}});let T=null;if(y.error&&i.error){Re.warn("Raw error executing entity: ",y.error);const w=((p=i.error)==null?void 0:p.getDataType(null))||null,A=et(w,i.error,l);w!=null&&w.asType?A==null||A.setValueAsTypeSingle(y.error):A==null||A.metaSync({value:y.error},null),T={valueOwner:i.error,type:Te.ExecutionResult,inheritanceLink:null,value:A}}return{value:y.value,entity:i,error:T,results:v}}catch(y){Re.warn("Operation execution error: ",y);let v=null;if(i.error){const T=(t=i.error)==null?void 0:t.getDataType(null),w=et(T,i.error,l);T!=null&&T.asType?w==null||w.setValueAsTypeSingle(y):w==null||w.metaSync({value:y},null),v={valueOwner:i.error,type:Te.ExecutionResult,inheritanceLink:null,value:w}}return{value:Je.Error,entity:i,error:v,results:[]}}}async executeSearch(i,a,l){var p;Re.log("executeSearch");try{let t={value:Je.Success,error:null,results:[]};const y=i.outputs[0];if(!y)return{value:Je.Success,entity:i,error:null,results:[]};let v={value:null,valueOwner:y,type:Te.ExecutionResult,inheritanceLink:null};const T=await Si.searchImplementation(i,a),w=y==null?void 0:y.getDataType(null),A=et(w,y,l);return A==null||A.metaSync({value:T.data},null),v.value=A,{value:t.value,entity:i,error:null,results:[v]}}catch(t){if(Re.warn(`Search node execution error: ${t}`),!i.error)return{value:Je.Error,entity:i,error:null,results:[]};const y=(p=i.error)==null?void 0:p.getDataType(null),v=et(y,i.error,l);return v==null||v.metaSync({value:t},null),{value:Je.Error,entity:i,error:{valueOwner:i.error,type:Te.ExecutionResult,inheritanceLink:null,value:v},results:[]}}}async executeLoop(i,a,l,p={}){var y,v;const t={...Qa,...p};try{let T={value:Je.Success,error:null,results:[]};const w=a.map(k=>{var J,se;return((J=k==null?void 0:k.value)==null?void 0:J.valueAsType)||((se=k==null?void 0:k.value)==null?void 0:se.value)});Re.log("Loops' resolved raw input-map values: ",w);let A={};i.getUniqueReturnDeclarations().forEach(k=>{const J=i.body.inputs.find(ie=>re(ie,l)===Ci.fromReturnDeclarationToBodyArgumentDeclarationName(k)),se=k==null?void 0:k.getDataType(null),te=et(se,J,l);se!=null&&se.asType?te==null||te.setValueAsTypeList([]):te==null||te.metaSync({value:[]},null),this.lastExecutionResults.writeValue(J,te);const ce={value:te,valueOwner:J,type:Te.ExecutionResult,inheritanceLink:null};A[J.id]=ce});let N={value:Je.Success,entity:i.body,error:null,results:[]};switch(Re.log("aggregateListResults: ",A),i.declaration.id){case ve.loop["counted-loop"].id:{const k=w[0];Re.log("maxCount",k);let J=1;for(Re.log("currentIteration",J);J<=k&&J<=50;){Re.log("iterating",J);const se=i.body.inputs.map(ce=>{if(ce===i.currentIterationNumberArgumentDeclaration){Re.log("Argument is body iteration number");const ie=i.currentIterationNumberArgumentDeclaration.getDataType(null),he=el(ie),z=this.lastExecutionResults.readValue(ce.id);if(z){z.metaSync({value:J},null),Re.log("existingValue",J),this.lastExecutionResults.writeValue(ce,z);const oe={value:z,valueOwner:i.currentIterationNumberArgumentDeclaration,type:Te.ExecutionResult,inheritanceLink:null};return A[ce.id]=oe,oe}const Y={id:V.UUID.uuid(),type:f.LiteralValue,autogeneration:null,version:V.UUID.uuid(),createdAt:new Date().toISOString(),author:V.sessionAuthor,deleted:!1,previousVersion:null,value:J,valueAsTypeSingle:null,valueAsTypeList:null,parent:null,name:he,standaloneParent:ce.toReference()},ue=zt(Y,l);this.lastExecutionResults.writeValue(ce,ue);const H={value:ue,valueOwner:i.currentIterationNumberArgumentDeclaration,type:Te.ExecutionResult,inheritanceLink:null};return Re.log("newDynamicValue",J),A[ce.id]=H,H}else return A[ce.id]}).filter(ce=>!!ce);Re.log("Loop executes body with inputs: ",se);const te=await this.executeFullFunctionDeclarationLogic(i.body,se,t);if(N=te,N.results.forEach(ce=>{var Y,ue,H,oe;if(ce.valueOwner.type!==f.ReturnDeclaration)return;const ie=i.body.inputs.find(be=>re(be,l)===Ci.fromReturnDeclarationToBodyArgumentDeclarationName(ce.valueOwner)),z=[...((ue=(Y=A==null?void 0:A[ie.id])==null?void 0:Y.value)==null?void 0:ue.value)||[],((H=ce==null?void 0:ce.value)==null?void 0:H.value)||null];(oe=A[ie.id].value)==null||oe.metaSync({value:z},null),this.lastExecutionResults.writeValue(ie,A[ie.id].value)}),[Je.Error,Je.Break,Je.Return].includes(te.value))break;Re.log("Loop iteration finished"),J++}break}case ve.loop["manual-flow-loop"].id:{let k=1;for(;k<=50;){const J=i.body.inputs.map(te=>{if(te===i.currentIterationNumberArgumentDeclaration){const ce=this.lastExecutionResults.readValue(te.id);if(ce){ce.metaSync({value:k},null),this.lastExecutionResults.writeValue(te,ce);const Y={value:ce,valueOwner:te,type:Te.ExecutionResult,inheritanceLink:null};return A[te.id]=Y,Y}const ie=i.currentIterationNumberArgumentDeclaration.getDataType(null),he=et(ie,te,l);he==null||he.metaSync({value:k},null),this.lastExecutionResults.writeValue(te,he);const z={value:he,valueOwner:te,type:Te.ExecutionResult,inheritanceLink:null};return Re.log("newDynamicValue",k),z}else return A[te.id]}).filter(te=>!!te);Re.log("Loop executes body");const se=await this.executeFullFunctionDeclarationLogic(i.body,J,t);if(N=se,N.results.forEach(te=>{var z,Y,ue;if(te.valueOwner.type!==f.ReturnDeclaration)return;const ce=i.body.inputs.find(H=>re(H,l)===Ci.fromReturnDeclarationToBodyArgumentDeclarationName(te.valueOwner)),he=[...(z=A[ce.id].value)==null?void 0:z.value,((Y=te.value)==null?void 0:Y.value)||null];(ue=A[ce.id].value)==null||ue.metaSync({value:he},null),this.lastExecutionResults.writeValue(ce,A[ce.id].value)}),[Je.Error,Je.Break,Je.Return].includes(se.value))break;k++}break}case ve.loop["list-loop"].id:{const k=w[0];let J=1;const se=k;for(let te=0;te<se.length;te++){const ce=se[te],ie=i.body.inputs.map(z=>{if(z===i.currentIterationNumberArgumentDeclaration){const Y=this.lastExecutionResults.readValue(z.id);if(Y)return Y.metaSync({value:J},null),this.lastExecutionResults.writeValue(z,Y),{value:Y,valueOwner:z,type:Te.ExecutionResult,inheritanceLink:null};const ue=i.currentIterationNumberArgumentDeclaration.getDataType(null),H=et(ue,z,l);return H==null||H.metaSync({value:J},null),this.lastExecutionResults.writeValue(z,H),{value:H,valueOwner:i.currentIterationNumberArgumentDeclaration,type:Te.ExecutionResult,inheritanceLink:null}}else if(z===i.currentValueArgumentDeclaration){const Y=i.currentValueArgumentDeclaration.getDataType(null),ue=el(Y),H=this.lastExecutionResults.readValue(z.id);if(H)return H.metaSync({value:ce},null),this.lastExecutionResults.writeValue(z,H),{value:H,valueOwner:z,type:Te.ExecutionResult,inheritanceLink:null};const oe={id:V.UUID.uuid(),type:f.LiteralValue,autogeneration:null,version:V.UUID.uuid(),createdAt:new Date().toISOString(),author:V.sessionAuthor,deleted:!1,previousVersion:null,value:ce,valueAsTypeSingle:null,valueAsTypeList:null,parent:null,name:ue,standaloneParent:z.toReference()},be=zt(oe,l);return this.lastExecutionResults.writeValue(z,be),{value:be,valueOwner:i.currentValueArgumentDeclaration,type:Te.ExecutionResult,inheritanceLink:null}}else return A[z.id]}).filter(z=>!!z);Re.log("Loop executes body");const he=await this.executeFullFunctionDeclarationLogic(i.body,ie,t);if(N=he,N.results.forEach(z=>{var oe,be,Me;if(z.valueOwner.type!==f.ReturnDeclaration)return;const Y=i.body.inputs.find(De=>re(De,l)===Ci.fromReturnDeclarationToBodyArgumentDeclarationName(z.valueOwner)),H=[...(oe=A[Y.id].value)==null?void 0:oe.value,((be=z.value)==null?void 0:be.value)||null];(Me=A[Y.id].value)==null||Me.metaSync({value:H},null),this.lastExecutionResults.writeValue(Y,A[Y.id].value)}),[Je.Error,Je.Break,Je.Return].includes(he.value))break;J++}break}case ve.loop["object-keys-loop"].id:{const k=w[0];let J=1;const se=k?Object.keys(k):[];Re.log("iterableListOfValues: ",se);for(let te=0;te<se.length;te++){const ce=se[te],ie=i.body.inputs.map(z=>{if(z===i.currentIterationNumberArgumentDeclaration){const Y=this.lastExecutionResults.readValue(z.id);if(Y)return Y.metaSync({value:J},null),this.lastExecutionResults.writeValue(z,Y),{value:Y,valueOwner:z,type:Te.ExecutionResult,inheritanceLink:null};const ue=i.currentIterationNumberArgumentDeclaration.getDataType(null),H=et(ue,z,l);return H==null||H.metaSync({value:J},null),this.lastExecutionResults.writeValue(z,H),{value:H,valueOwner:i.currentIterationNumberArgumentDeclaration,type:Te.ExecutionResult,inheritanceLink:null}}else if(z===i.currentValueArgumentDeclaration){const Y=i.currentValueArgumentDeclaration.getDataType(null),ue=el(Y),H=this.lastExecutionResults.readValue(z.id);if(H)return H.metaSync({value:ce},null),this.lastExecutionResults.writeValue(z,H),{value:H,valueOwner:z,type:Te.ExecutionResult,inheritanceLink:null};const oe={id:V.UUID.uuid(),type:f.LiteralValue,autogeneration:null,version:V.UUID.uuid(),createdAt:new Date().toISOString(),author:V.sessionAuthor,deleted:!1,previousVersion:null,value:ce,valueAsTypeSingle:null,valueAsTypeList:null,parent:null,name:ue,standaloneParent:z.toReference()},be=zt(oe,l);return this.lastExecutionResults.writeValue(z,be),{value:be,valueOwner:i.currentValueArgumentDeclaration,type:Te.ExecutionResult,inheritanceLink:null}}else return A[z.id]}).filter(z=>!!z);Re.log("Loop executes body");const he=await this.executeFullFunctionDeclarationLogic(i.body,ie,t);if(N=he,N.results.forEach(z=>{var oe,be,Me;if(z.valueOwner.type!==f.ReturnDeclaration)return;const Y=i.body.inputs.find(De=>re(De,l)===Ci.fromReturnDeclarationToBodyArgumentDeclarationName(z.valueOwner)),H=[...(oe=A[Y.id].value)==null?void 0:oe.value,((be=z.value)==null?void 0:be.value)||null];(Me=A[Y.id].value)==null||Me.metaSync({value:H},null),this.lastExecutionResults.writeValue(Y,A[Y.id].value)}),[Je.Error,Je.Break,Je.Return].includes(he.value))break;J++}break}case ve.loop["object-values-loop"].id:{const k=w[0];let J=1;const se=k?Object.values(k):[];for(let te=0;te<se.length;te++){const ce=se[te],ie=i.body.inputs.map(z=>{if(z===i.currentIterationNumberArgumentDeclaration){const Y=this.lastExecutionResults.readValue(z.id);if(Y)return Y.metaSync({value:J},null),this.lastExecutionResults.writeValue(z,Y),{value:Y,valueOwner:z,type:Te.ExecutionResult,inheritanceLink:null};const ue=i.currentIterationNumberArgumentDeclaration.getDataType(null),H=et(ue,z,l);return H==null||H.metaSync({value:J},null),this.lastExecutionResults.writeValue(z,H),{value:H,valueOwner:i.currentIterationNumberArgumentDeclaration,type:Te.ExecutionResult,inheritanceLink:null}}else if(z===i.currentValueArgumentDeclaration){const Y=i.currentValueArgumentDeclaration.getDataType(null),ue=el(Y),H=this.lastExecutionResults.readValue(z.id);if(H)return H.metaSync({value:ce},null),this.lastExecutionResults.writeValue(z,H),{value:H,valueOwner:z,type:Te.ExecutionResult,inheritanceLink:null};const oe={id:V.UUID.uuid(),type:f.LiteralValue,autogeneration:null,version:V.UUID.uuid(),createdAt:new Date().toISOString(),author:V.sessionAuthor,deleted:!1,previousVersion:null,value:ce,valueAsTypeSingle:null,valueAsTypeList:null,parent:null,name:ue,standaloneParent:z.toReference()},be=zt(oe,l);return this.lastExecutionResults.writeValue(z,be),{value:be,valueOwner:i.currentValueArgumentDeclaration,type:Te.ExecutionResult,inheritanceLink:null}}else return A[z.id]}).filter(z=>!!z);Re.log("Loop executes body"),Re.log("HEREEE Object.values() resolvedBodyInputsForCurrentIteration",ie);const he=await this.executeFullFunctionDeclarationLogic(i.body,ie,t);if(N=he,N.results.forEach(z=>{var oe,be,Me;if(z.valueOwner.type!==f.ReturnDeclaration)return;const Y=i.body.inputs.find(De=>re(De,l)===Ci.fromReturnDeclarationToBodyArgumentDeclarationName(z.valueOwner)),H=[...(oe=A[Y.id].value)==null?void 0:oe.value,((be=z.value)==null?void 0:be.value)||null];(Me=A[Y.id].value)==null||Me.metaSync({value:H},null),this.lastExecutionResults.writeValue(Y,A[Y.id].value)}),[Je.Error,Je.Break,Je.Return].includes(he.value))break;J++}break}case ve.loop["string-loop"].id:{const k=w[0];let J=1;const se=k.split("");for(let te=0;te<se.length;te++){const ce=se[te],ie=i.body.inputs.map(z=>{if(z===i.currentIterationNumberArgumentDeclaration){const Y=this.lastExecutionResults.readValue(z.id);if(Y)return Y.metaSync({value:J},null),this.lastExecutionResults.writeValue(z,Y),{value:Y,valueOwner:z,type:Te.ExecutionResult,inheritanceLink:null};const ue=i.currentIterationNumberArgumentDeclaration.getDataType(null),H=et(ue,z,l);return H==null||H.metaSync({value:J},null),this.lastExecutionResults.writeValue(z,H),{value:H,valueOwner:i.currentIterationNumberArgumentDeclaration,type:Te.ExecutionResult,inheritanceLink:null}}else if(z===i.currentValueArgumentDeclaration){const Y=i.currentValueArgumentDeclaration.getDataType(null),ue=el(Y),H=this.lastExecutionResults.readValue(z.id);if(H)return H.metaSync({value:ce},null),this.lastExecutionResults.writeValue(z,H),{value:H,valueOwner:z,type:Te.ExecutionResult,inheritanceLink:null};const oe={id:V.UUID.uuid(),type:f.LiteralValue,autogeneration:null,version:V.UUID.uuid(),createdAt:new Date().toISOString(),author:V.sessionAuthor,deleted:!1,previousVersion:null,value:ce,valueAsTypeSingle:null,valueAsTypeList:null,parent:null,name:ue,standaloneParent:z.toReference()},be=zt(oe,l);return this.lastExecutionResults.writeValue(z,be),{value:be,valueOwner:i.currentValueArgumentDeclaration,type:Te.ExecutionResult,inheritanceLink:null}}else return A[z.id]}).filter(z=>!!z);Re.log("Loop executes body");const he=await this.executeFullFunctionDeclarationLogic(i.body,ie,t);if(N=he,N.results.forEach(z=>{var oe,be,Me;if(z.valueOwner.type!==f.ReturnDeclaration)return;const Y=i.body.inputs.find(De=>re(De,l)===Ci.fromReturnDeclarationToBodyArgumentDeclarationName(z.valueOwner)),H=[...(oe=A[Y.id].value)==null?void 0:oe.value,((be=z.value)==null?void 0:be.value)||null];(Me=A[Y.id].value)==null||Me.metaSync({value:H},null),this.lastExecutionResults.writeValue(Y,A[Y.id].value)}),[Je.Error,Je.Break,Je.Return].includes(he.value))break;J++}break}}let U=[];i.body.inputs.forEach(k=>{var se;const J=A[k.id];if(J){const te=(se=J.value)==null?void 0:se.clone(null),ce=i.outputs.find(ie=>ie.declaration&&Ci.fromLoopOutputDeclarationToBodyArgumentDeclarationName(ie.declaration)===re(k,l));if(!ce)return;U.push({valueOwner:ce,type:Te.ExecutionResult,inheritanceLink:null,value:te})}}),T={value:[Je.Error,Je.Return].includes(N.value)?N.value:Je.Success,error:null,results:U};let K=null;if(T.error&&i.error){Re.warn("Raw error executing entity: ",T.error);const k=(y=i.error)==null?void 0:y.getDataType(null),J=et(k||null,i.error,l);k!=null&&k.asType?J==null||J.setValueAsTypeSingle(T.error):J==null||J.metaSync({value:T.error},null),K={valueOwner:i.error,type:Te.ExecutionResult,inheritanceLink:null,value:J}}return{value:T.value,entity:i,error:K,results:T.results}}catch(T){if(Re.warn("Error executing loop: ",T),i.error){const w=(v=i.error)==null?void 0:v.getDataType(null),A=et(w,i.error,l);return w!=null&&w.asType?A==null||A.setValueAsTypeSingle(T):A==null||A.metaSync({value:T},null),{value:Je.Error,entity:i,error:{valueOwner:i.error,type:Te.ExecutionResult,inheritanceLink:null,value:A},results:[]}}else return{value:Je.Error,entity:i,error:null,results:[]}}}async executeFunctionCall(i,a,l,p={}){var y,v;const t={...Qa,...p};try{let T={value:Je.Success,error:null,results:[]};Re.log("executeFunctionCall",a),T=await this.executeDetachedFullFunctionDeclarationLogic(i.declaration,a,l,t);const w=i.outputs.map(P=>{var J,se,te,ce;const N=[...P.declaration.getCounterparts(),P.declaration];Re.log("declarations",N);const U=T.results.find(ie=>N.some(z=>ie.valueOwner.id===z.id));Re.log("resultValue",U);const K=P==null?void 0:P.getDataType(null),k=et(K,P,l);return K!=null&&K.asType?Array.isArray((J=U==null?void 0:U.value)==null?void 0:J.valueAsType)?k==null||k.setValueAsTypeList((se=U==null?void 0:U.value)==null?void 0:se.valueAsTypeList):k==null||k.setValueAsTypeSingle(((te=U==null?void 0:U.value)==null?void 0:te.valueAsType)||null):k==null||k.metaSync({value:(ce=U==null?void 0:U.value)==null?void 0:ce.value},null),{valueOwner:P,type:Te.ExecutionResult,inheritanceLink:null,value:k}});let A=null;if(T.error&&i.error){Re.warn("Raw error executing entity: ",T.error);const P=(y=i.error)==null?void 0:y.getDataType(null),N=et(P||null,i.error,l);P!=null&&P.asType?N==null||N.setValueAsTypeSingle(T.error):N==null||N.metaSync({value:T.error},null),A={valueOwner:i.error,type:Te.ExecutionResult,inheritanceLink:null,value:N}}return{value:T.value,entity:i,error:A,results:w}}catch(T){if(Re.log("error: ",T),!i.error)return{value:Je.Error,entity:i,error:null,results:[]};const w=(v=i.error)==null?void 0:v.getDataType(null),A=et(w,i.error,l);return w!=null&&w.asType?A==null||A.setValueAsTypeSingle(T):A==null||A.metaSync({value:T},null),{value:Je.Error,entity:i,error:{valueOwner:i.error,type:Te.ExecutionResult,inheritanceLink:null,value:A},results:[]}}}static async executeCondition(i,a){var p,t,y,v,T,w,A,P,N,U,K,k,J,se,te,ce,ie,he,z,Y,ue,H,oe,be,Me,De,Oe,Ce,Ke,Ue,Qe,yt,Qt,fr,Pr,Zr;let l=!1;switch(i.declaration.id){case kr.Empty:{l=!((t=(p=a[0])==null?void 0:p.value)!=null&&t.value);break}case kr.NotEmpty:{l=!!((v=(y=a[0])==null?void 0:y.value)!=null&&v.value);break}case vr.Equal:{if([X.String,X.Number,X.Boolean,X.Null,X.Enum,X.Date,X.UUID].includes((w=(T=a[0])==null?void 0:T.value)==null?void 0:w.name)){l=((P=(A=a[0])==null?void 0:A.value)==null?void 0:P.value)===((U=(N=a[1])==null?void 0:N.value)==null?void 0:U.value);break}if(((k=(K=a[0])==null?void 0:K.value)==null?void 0:k.name)===X.KeyValue||((se=(J=a[0])==null?void 0:J.value)==null?void 0:se.name)===X.Untyped){const Xr=(ce=(te=a[0])==null?void 0:te.value)==null?void 0:ce.value,qi=(he=(ie=a[1])==null?void 0:ie.value)==null?void 0:he.value;l=JSON.stringify(Xr)===JSON.stringify(qi);break}break}case vr.NotEqual:{if([X.String,X.Number,X.Boolean,X.Null,X.Enum,X.Date,X.UUID].includes((Y=(z=a[0])==null?void 0:z.value)==null?void 0:Y.name)){l=((H=(ue=a[0])==null?void 0:ue.value)==null?void 0:H.value)!==((be=(oe=a[1])==null?void 0:oe.value)==null?void 0:be.value);break}if(((De=(Me=a[0])==null?void 0:Me.value)==null?void 0:De.name)===X.Untyped||((Ce=(Oe=a[0])==null?void 0:Oe.value)==null?void 0:Ce.name)===X.KeyValue){const Xr=(Ue=(Ke=a[0])==null?void 0:Ke.value)==null?void 0:Ue.value,qi=(yt=(Qe=a[1])==null?void 0:Qe.value)==null?void 0:yt.value;l=JSON.stringify(Xr)!==JSON.stringify(qi);break}break}case vr.MoreThanOrEqual:{l=((fr=(Qt=a[0])==null?void 0:Qt.value)==null?void 0:fr.value)>=((Zr=(Pr=a[1])==null?void 0:Pr.value)==null?void 0:Zr.value);break}}return{value:l?Je.Success:Je.Error,entity:i,error:null,results:[]}}async executeDetachedFullFunctionDeclarationLogic(i,a,l,p={}){const t={...Qa,...p,onBeforeEntityExecution:(T,w,A)=>{var P;return((P=p==null?void 0:p.onBeforeEntityExecution)==null?void 0:P.call(p,T,w,{...A,detached:!0}))||Promise.resolve()},onEntityExecuted:(T,w,A)=>{var P;return((P=p==null?void 0:p.onEntityExecuted)==null?void 0:P.call(p,T,w,{...A,detached:!0}))||Promise.resolve()}},y=new Si(l,[i,...ky(i)],i,this);y.inheritValuesFromContext(this),Re.log("functionBodyExecution",a);const v=await y.execute(t,a);return Re.log("executeDetachedFullFunctionDeclarationLogic result: ",v),v}async executeFullFunctionDeclarationLogic(i,a,l={}){const p={...Qa,...l},t=ky(i);t.forEach(A=>{this.addEntity(A)}),t.reduce((A,P)=>pr.includes(P.type)?[...A,...P.outputs]:nr.includes(P.type)&&P.type!==f.Condition?[...A,...P.outputs,...P.inputs]:P.type===f.Condition?[...A,...P.inputs]:A,[]).forEach(A=>{this.lastExecutionResults.removeValue(A.id)});const v=await this.executeBranch(i,p,a),w=i.getUniqueReturnDeclarations().reduce((A,P)=>{const N=v==null?void 0:v.results.find(U=>U.valueOwner.id===P.id);return N?[...A,N]:A},[]);return{...v||{},value:(v==null?void 0:v.value)||Je.Success,entity:i,error:(v==null?void 0:v.error)||null,results:w}}static async executeEntryPointEntity(i,a){return{value:Je.Success,entity:i,error:null,results:a}}static async executeVariable(i,a){return{value:Je.Success,entity:i,error:null,results:[a]}}static async executeReturnStatement(i,a){return{value:i.throws?Je.Error:Je.Return,entity:i,error:null,results:a}}static async executeContinueStatement(i,a){return{value:Je.Continue,entity:i,error:null,results:a}}static async executeBreakStatement(i,a){return{value:Je.Break,entity:i,error:null,results:a}}mergeValues(i,a){const l=[];for(let p=0;p<a.length;p++)i!=null&&i[p]?l.push(i[p]):l.push(a[p]);return l}async executeEntity(i,a=[],l={}){var y,v,T,w,A,P,N,U,K,k,J,se,te,ce,ie,he,z;const p={...Qa,...l},t={detached:!1};switch(Re.log("Executing entity: ",i),Re.log("Exec ent with inputs: ",a),i.type){case f.Condition:{const Y=this.mergeExernalValuesWithInternalInputs(a,i);return await((y=p.onBeforeEntityExecution)==null?void 0:y.call(p,i,Y,t)),Si.executeCondition(i,Y)}case f.InternalCall:{const Y=this.mergeExernalValuesWithInternalInputs(a,i);return await((v=p.onBeforeEntityExecution)==null?void 0:v.call(p,i,Y,t)),this.executeInternalCall(i,Y,this.project)}case f.Operation:{const Y=this.mergeExernalValuesWithInternalInputs(a,i);return await((T=p.onBeforeEntityExecution)==null?void 0:T.call(p,i,Y,t)),Si.executeOperation(i,Y,this.project)}case f.VariableInstance:case f.VariableDeclaration:{i.id==="ad7eae6d-c691-40a5-943b-f72008cdc3b0"&&Re.log("Execute variable declaration resolveNextValue");let Y=by(i,this.valueResolutionContext);const ue=Ti(i),H=ue.getDataType(null);if(H!=null&&H.isObject()){let Me={};if(((w=H==null?void 0:H.entity)==null?void 0:w.type)===f.DefinitionEntity&&(Me={...Me,...H.entity.getActiveRawDefaultValue()}),Y!=null&&Y.value)lr((A=Y==null?void 0:Y.value)==null?void 0:A.value)&&(Me={...Me,...(P=Y==null?void 0:Y.value)==null?void 0:P.value}),Y==null||Y.value.metaSync({value:Me},null);else{const De=et(H,i,this.project);De==null||De.metaSync({value:Me},null),Y={valueOwner:ue,type:Te.ExecutionResult,inheritanceLink:null,value:De}}this.lastExecutionResults.writeValue(ue,Y.value),Re.log("Propagating value to inputs: ",ue.inputs.map(De=>re(De,this.project))),ue.inputs.forEach(De=>{var Oe;if(((Oe=De.declaration)==null?void 0:Oe.type)===f.Property&&De.declaration.static){const Ce=this.lastExecutionResults.readValue(De.declaration.id),Ke=re(De,this.project),Ue=Or(Ke);if(Ce)Ce.metaSync({value:Me[Ue]},null),this.lastExecutionResults.writeValue(De.declaration,Ce);else{const Qe=et(De.getDataType(null),De,this.project);Qe==null||Qe.metaSync({value:Me[Ue]},null),Re.log(`Created new value for static property ${Ke}: `,Me[Ue]),this.lastExecutionResults.writeValue(De.declaration,Qe)}}})}else this.lastExecutionResults.writeValue(ue,Y==null?void 0:Y.value);const oe=[],be=(N=Y==null?void 0:Y.value)!=null&&N.value&&lr((U=Y.value)==null?void 0:U.value)?((K=Y.value)==null?void 0:K.value)||{}:{};return i.outputs.map(Me=>{const De=Or(re(Me,this.project)),Oe=be[De],Ce=et(Me.getDataType(null),Me,this.project);Ce==null||Ce.metaSync({value:Oe},null);const Ke={value:Ce,valueOwner:Me,type:Te.ExecutionResult,inheritanceLink:Y?{sources:[Y],target:i}:null};oe.push(Ke)}),Y.type=Te.ExecutionResult,{value:Je.Success,entity:i,error:null,results:[Y,...oe]}}case f.FunctionCall:{const Y=this.mergeExernalValuesWithInternalInputs(a,i);return await((k=p.onBeforeEntityExecution)==null?void 0:k.call(p,i,Y,t)),this.executeFunctionCall(i,Y,this.project)}case f.FunctionDeclaration:{const Y=this.mergeExernalValuesWithInternalInputs(a,i);return await((J=p.onBeforeEntityExecution)==null?void 0:J.call(p,i,Y,t)),Si.executeEntryPointEntity(i,Y)}case f.Search:{const Y=this.mergeExernalValuesWithInternalInputs(a,i);return await((se=p.onBeforeEntityExecution)==null?void 0:se.call(p,i,Y,t)),this.executeSearch(i,Y,this.project)}case f.Loop:{const Y=this.mergeExernalValuesWithInternalInputs(a,i);return await((te=p.onBeforeEntityExecution)==null?void 0:te.call(p,i,Y,t)),this.executeLoop(i,Y,this.project,p)}case f.ReturnStatement:{const Y=this.mergeExernalValuesWithInternalInputs(a,i);return await((ce=p.onBeforeEntityExecution)==null?void 0:ce.call(p,i,Y,t)),Si.executeReturnStatement(i,Y)}case f.ContinueStatement:{const Y=this.mergeExernalValuesWithInternalInputs(a,i);return await((ie=p.onBeforeEntityExecution)==null?void 0:ie.call(p,i,Y,t)),Si.executeContinueStatement(i,Y)}case f.BreakStatement:{const Y=this.mergeExernalValuesWithInternalInputs(a,i);return await((he=p.onBeforeEntityExecution)==null?void 0:he.call(p,i,Y,t)),Si.executeBreakStatement(i,Y)}case f.GlobalEvent:{const Y=this.mergeExernalValuesWithInternalInputs(a,i);return await((z=p.onBeforeEntityExecution)==null?void 0:z.call(p,i,Y,t)),Si.executeEntryPointEntity(i,Y)}default:return{value:Je.Error,entity:i,error:null,results:[]}}}storeLastExecutionValues(i){i.error&&i.error.valueOwner&&this.lastExecutionResults.writeValue(i.error.valueOwner,i.error.value),Re.log("result.results: ",i.results),i.results.forEach(a=>{const l=on(a.valueOwner,this.project);a.value?l.forEach(p=>{this.lastExecutionResults.writeValue(p,a.value)}):l.forEach(p=>{this.lastExecutionResults.removeValue(p.id)})})}async executeBranch(i,a={},l=[]){var T;const p={...Qa,...a},t={detached:!1};if(Re.log("executeBranch: ",l),!this.hasEntity(i))return Re.log("Skipping entity (not part of test): ",i),null;if(this.hasSkipped(i))return Re.log("Skipping entity (already skipped): ",i),null;this.addToExecutingList(i),this.hasScheduled(i)&&this.removeScheduled(i),Re.log("Executing branch: ",i),Re.log("values: ",l);const v=await this.executeEntity(i,l,p);if(this.removeFromExecutingList(i),this.addToAlreadyExecutedList(i),this.storeLastExecutionValues(v),await((T=p.onEntityExecuted)==null?void 0:T.call(p,i,v,t)),v.value===Je.Success){const w=(i.successCalls||i.calls||[]).filter(K=>this.hasEntity(K));(i.errorCalls||[]).forEach(K=>{this.skip(K)});let P=[];const N=(await Promise.all(w.map(K=>this.schedule(K,v.results,p)))).filter(K=>!!K),U=N.filter(K=>!!K).find(K=>K.value===Je.Error||K.value===Je.Return||K.value===Je.Break||K.value===Je.Continue);return U||(P=[...P,...N],v)}else if(v.value===Je.Error){const w=(i.errorCalls||[]).filter(K=>this.hasEntity(K));(i.successCalls||i.calls||[]).forEach(K=>{this.skip(K)});let P=[];const N=(await Promise.all(w.map(K=>this.schedule(K,v.results,p)))).filter(K=>!!K),U=N.filter(K=>!!K).find(K=>K.value===Je.Error||K.value===Je.Return||K.value===Je.Break||K.value===Je.Continue);return U||(P=[...P,...N],v)}else{if(v.value===Je.Return)return v;if(v.value===Je.Break)return v;if(v.value===Je.Continue)return v}return v}async execute(i={},a=[]){const l={...Qa,...i};this.state="running";const p=await this.executeBranch(this.entryPoint,l,a);return this.state="finished-success",p}addEntity(i){var a;this.entities.includes(i)||(this.entities.push(i),(a=this.onAddEntityCallback)==null||a.call(this,i))}addEntities(i){i.forEach(a=>this.addEntity(a))}removeEntity(i){var a;if(i!==this.entryPoint){const l=this.entities.indexOf(i);l>-1&&(this.entities.splice(l,1),(a=this.onRemoveEntityCallback)==null||a.call(this,i))}}hasEntity(i){var p,t,y;if(this.entities.includes(i))return!0;if(((p=i.parent)==null?void 0:p.type)===f.FunctionDeclaration&&((y=(t=i.parent)==null?void 0:t.parent)==null?void 0:y.type)===f.DefinitionEntity)return this.entities.includes(i.parent);const a=or(i);if(!a)return!1;const l=a.type===f.Loop&&i.parent===a.body?a.body:null;return l?this.entities.includes(l)||this.entities.includes(a):this.entities.includes(a)}removeScheduled(i){const a=this.scheduled.indexOf(i);a>-1&&this.scheduled.splice(a,1)}hasScheduled(i){return!!this.scheduled.includes(i)}hasSkipped(i){return!!this.skipped.includes(i)}hasExecuted(i){return!!this.executed.includes(i)}hasEntityWithId(i){const a=this.project.get(i);return a?this.hasEntity(a):!1}onAddToSkippedList(i){this.onAddToSkippedListCallback=i}onAddEntity(i){this.onAddEntityCallback=i}onRemoveFromSkippedList(i){this.onRemoveFromSkippedListCallback=i}onRemoveEntity(i){this.onRemoveEntityCallback=i}addToExecutingList(i){this.executing.includes(i)||this.executing.push(i)}removeFromExecutingList(i){const a=this.executing.indexOf(i);a>-1&&this.executing.splice(a,1)}removeFromAlreadyExecutedList(i){const a=this.executed.indexOf(i);a>-1&&this.executed.splice(a,1)}removeFromSkippedList(i){var l;const a=this.skipped.indexOf(i);a>-1&&(this.skipped.splice(a,1),(l=this.onRemoveFromSkippedListCallback)==null||l.call(this,i))}addToAlreadyExecutedList(i){this.executed.includes(i)||this.executed.push(i)}addToSkippedList(i){var a;this.skipped.includes(i)||(this.skipped.push(i),(a=this.onAddToSkippedListCallback)==null||a.call(this,i))}};D(Si,"searchImplementation",async()=>({data:null,error:"Search module not implemented"})),D(Si,"builtInFunctionImplementations",{[Li.AbortExecution]:async(i,a)=>({value:Je.Error,entity:i,error:null,results:[]}),[Li.SavePersistedEntity]:async(i,a)=>({value:Je.Error,entity:i,error:null,results:[]}),[Li.DeletePersistedEntity]:async(i,a)=>({value:Je.Error,entity:i,error:null,results:[]})});let sA=Si;function hme(d){var u,i;if(d.isList)return"list";if(((u=d.entity)==null?void 0:u.type)===f.DefinitionEntity)return"definition-entity";switch((i=d.entity)==null?void 0:i.name){case X.Number:return"number";case X.String:return"text";case X.Boolean:return"boolean";case X.UUID:return"uuid";case X.Date:return"date-time";default:return"definition-entity"}}const nA={[f.PrimitiveEntity]:{singular:"Primitive",plural:"Primitives",shortSingular:"Primitive",shortPlural:"Primitives"},[f.DefinitionEntity]:{singular:"Definition",plural:"Definitions",shortSingular:"Definition",shortPlural:"Definitions"},[f.BuiltInBaseEntity]:{singular:"Base",plural:"Bases",shortSingular:"Base definition",shortPlural:"Base definitions"},[f.Property]:{singular:"Property",plural:"Properties",shortSingular:"Property",shortPlural:"Properties"},[f.FunctionDeclaration]:{singular:"Custom trigger",plural:"Custom triggers",shortSingular:"Trigger",shortPlural:"Triggers"},[f.FunctionCall]:{singular:"Execute trigger",plural:"Execute trigger",shortSingular:"Execute",shortPlural:"Execute"},[f.GlobalEvent]:{singular:"System trigger",plural:"System triggers",shortSingular:"Trigger",shortPlural:"Triggers"},[f.Project]:{singular:"Project",plural:"Projects",shortSingular:"Project",shortPlural:"Projects"},[f.VariableDeclaration]:{singular:"Variable",plural:"Variables",shortSingular:"Variable",shortPlural:"Variables"},[f.VariableInstance]:{singular:"Variable",plural:"Variables",shortSingular:"Variable",shortPlural:"Variables"},[f.Condition]:{singular:"Condition",plural:"Conditions",shortSingular:"Condition",shortPlural:"Conditions"},[f.Operation]:{singular:"Operation",plural:"Operations",shortSingular:"Operation",shortPlural:"Operations"},[f.ReturnStatement]:{singular:"Termination",plural:"Terminations",shortSingular:"Termination",shortPlural:"Terminations"},[f.InstalledProject]:{singular:"Installed project",plural:"Installed projects",shortSingular:"Project",shortPlural:"Projects"},[f.Search]:{singular:"Search",plural:"Searches",shortSingular:"Search",shortPlural:"Searches"},[f.Loop]:{singular:"Loop",plural:"Loops",shortSingular:"Loop",shortPlural:"Loops"},[f.ActionDescriptor]:{singular:"Action descriptor",plural:"Action descriptors",shortSingular:"Action descriptor",shortPlural:"Action descriptors"},[f.InternalCall]:{singular:"Internal call",plural:"Internal calls",shortSingular:"Internal call",shortPlural:"Internal calls"},[f.BreakStatement]:{singular:"Loop exit",plural:"Loop exists",shortSingular:"Exit",shortPlural:"Exits"},[f.ContinueStatement]:{singular:"Next iteration",plural:"Next iterations",shortSingular:"Next",shortPlural:"Nexts"},[f.ArgumentDeclaration]:{singular:"Input definition",plural:"Input definitions",shortSingular:"Input",shortPlural:"Inputs"},[f.InputMap]:{singular:"Input",plural:"Inputs",shortSingular:"Input",shortPlural:"Inputs"},[f.OutputMap]:{singular:"Output",plural:"Outputs",shortSingular:"Output",shortPlural:"Outputs"},[f.ReturnDeclaration]:{singular:"Output definition",plural:"Output definitions",shortSingular:"Output",shortPlural:"Outputs"},[f.ValueDescriptor]:{singular:"Value descriptor",plural:"Value descriptors",shortSingular:"Value descriptor",shortPlural:"Value descriptors"}};function aA(d){const u=Sy(d);if(!u){const a=jd(d);if(a.includes(Ne.HTTP_ENDPOINT))return"HTTP endpoint";if(a.includes(Ne.PERSISTED_ENTITY))return"Persisted entity";if(a.includes(Ne.CRON_JOB))return"Scheduled execution";if(a.includes(Ne.RELATIONAL_DATABASE))return"Relational database"}if(u){let a="Extension of "+re(u,u.project)+" entity",l=Id(a);const p=jd(d);return p.includes(Ne.HTTP_ENDPOINT)?"HTTP endpoint"+(l?", "+l:""):p.includes(Ne.PERSISTED_ENTITY)?"Persisted entity"+(l?", "+l:""):p.includes(Ne.CRON_JOB)?"Scheduled execution"+(l?", "+l:""):p.includes(Ne.RELATIONAL_DATABASE)?"Relational database"+(l?", "+l:""):a}let i="";return d.abstract&&(i="Template "),d.static&&(i+=i?" single copy ":"Single copy "),i?i+"definition":"Definition"}function Wx(d){return d.parent.type===f.DefinitionEntity||d.parent.type===f.InstalledProject?"Internal action of "+re(d.parent,d.project):d.parent.type===f.Loop?"Action repeated on every iteration":"Internal action of entity"}function oA(d){return KA(d)?Wx(d):"Custom trigger"}function yme(d){var u;switch(d.type){case f.DefinitionEntity:return aA(d);case f.FunctionDeclaration:return oA(d)}return(u=nA[d.type])==null?void 0:u.singular}function mme(d){var u;switch(d.type){case f.DefinitionEntity:return aA(d);case f.FunctionDeclaration:return oA(d)}return(u=nA[d.type])==null?void 0:u.singular}const lA=4e4,Hx=280,vme=300,dA=65,Nd=32,Ay=39,Yx=26,zx=49,Iy=44,Eme=35,wy=52,uA=10,ba=uA*2,Ry=38,gy=90,cA=270,Xx=lA/2+120,Qx=lA/2+180;function eF(d){let i=Nd+Iy+Ry+uA;const a=[...d.inputs];return a.length&&(i+=ba,a.forEach(()=>{i+=Yx})),{height:i,width:280}}function tF(d){let i=dA;const a=[];if([f.DefinitionEntity].includes(d.type)){const v=[...d.suggestedProperties||[],...d.properties||[]];v.length&&(i+=ba,v.forEach(T=>{i+=T.static?zx:Ay}))}if([f.DefinitionEntity,f.InstalledProject,f.Loop].includes(d.type)){const v=[...(d==null?void 0:d.suggestedMethods)||[],...d.methods||[],...d.functions||[],...d.body?[d.body]:[]];v.length&&(i+=ba,v.forEach(T=>{const w=eF(T);i+=w.height}))}nr.includes(d.type)?(ot.includes(d.type)?a.push(...(d.usedInputs||[]).flatMap(v=>[v])||[]):a.push(...(d.inputs||[]).flatMap(v=>[v])||[]),d.error&&(i+=wy)):[f.ReturnStatement,f.BreakStatement,f.ContinueStatement].includes(d.type)?(a.push(...d.outputs||[]),d.throws&&(i+=wy)):d.type===f.Condition&&(a.push(d.inputs[0]),d.inputs[1]&&a.push(d.inputs[1]));const l=a.length;l&&(i+=l*Ay,i+=ba);const p=[];if(d.type===f.FunctionDeclaration||d.type===f.GlobalEvent?p.push(...d.inputs||[]):nr.includes(d.type)&&(ot.includes(d.type)?p.push(...d.usedOutputs||[]):p.push(...d.outputs||[])),ot.includes(d.type)){d.readsValue&&(i+=ba,i+=Iy),d.writesValues.length&&(i+=ba,i+=Iy),d.internalCalls.length&&d.usedInternalCalls.forEach(()=>i+=wy+ba);const v=d.getDataType(null);(!v||v.inferred)&&(i+=Ry)}const t=p.length;return t&&(i+=t*Ay,i+=ba),[f.DefinitionEntity,f.FunctionDeclaration,f.ReturnStatement,f.BreakStatement,f.ContinueStatement].includes(d.type)&&(i+=Ry),{height:i,width:280}}function Ip(d){return`${d.split("-").map((a,l)=>l===0?a.charAt(0).toUpperCase()+a.slice(1):a.toLowerCase()).join(" ")}.`}function Tme(d){switch(d.code){case ae.AbstractEntityWithNonAbstractMethods:return"This template entity has non-template actions";case ae.AbstractEntityWithNonAbstractProperties:return"This template entity has non-template properties";case ae.IncorrectEntityImplementation:return"This entity incorrectly implements a template entity";case ae.IncorrectMethodImplementation:return"This action incorrectly implements the template action it's based on";case ae.IncorrectPropertyImplementation:return"This property incorrectly implements the template property it's based on";case ae.AbstractMethodInNonAbstractEntity:return"This action is a template action in a non-template entity";case ae.AbstractPropertyInNonAbstractEntity:return"This property is a template property in a non-template entity";case ne.MethodOverwritesOtherSiblingWithSameName:return"An action in this entity overwrites an action in the template entity with the same name";case ne.PropertyOverwritesOtherSiblingWithSameName:return"A property in this entity overwrites a property in the template entity with the same name";case ae.MissingMethodImplementation:return"This entity is missing an action implementation from the template entity";case ae.MissingPropertyImplementation:return"This entity is missing a property implementation from the template entity";case ne.NameNotUniqueInScope:return"Invalid name. There is another entity with the same name in the same scope";case ae.NoProperties:return"This entity has no properties, so it doesn't do anything";case ae.NonStaticPropertyInStaticEntity:return"This property is not static in a static entity";case ae.StaticEntityWithNonStaticProperties:return"This static entity has non-static properties";case ae.ReadingFromIncompatibleType:return"This entity reads data from a value of a different data type";case ae.WritingToIncompatibleType:return"This entity writes data to a value of a different data type";case ae.ScopeWithoutLogic:return"This action has no logic, so it doesn't do anything";case ae.NonStaticPropertyImplementsStatic:return"This property is static in a non-static entity";case ae.PropertyImplementsIncompatibleType:return"This property implements a property of a different data type";case ae.PropertyImplementsNonAbstact:return"This property implements a non-template property";case ae.StaticPropertyImplementsNonStatic:return"This static property implements a non-static property";case ae.VariableCallsOthersAndHasInternalCall:return"This variable calls other entities while being used to execute internal logic";case ae.VariableHasInputsAndInternalCall:return"This variable has inputs while being used to execute internal logic";case ae.VariableHasOutputsAndInternalCall:return"This variable has outputs while being used to execute internal logic";case ae.VariableIsCalledAndHasInternalCall:return"This variable is called while being used to execute internal logic";case ne.InternalCallDeclarationIsNotFunctionDeclaration:return"This internal call is not an action";case ne.InternalCallDeclarationNotFoundInParentDatatypeEntity:return"This internal call is not found in the parent entity";case ne.InternalCallParentDeclarationEntityInvalidType:return"This internal call parent entity is not a data type";case ne.InternalCallParentMissingDataType:return"This internal call parent entity has no data type";case ne.UnreachableEntity:return"This entity is unreachable";case ae.DisconnectedCallableEntity:return"This entity is disconnected and won't be executed by anything after publishing";default:return Ip(d.code)}}function bme(d){switch(d.code){case ae.AbstractEntityWithNonAbstractMethods:return"Non-template actions";case ae.AbstractEntityWithNonAbstractProperties:return"Non-template properties";case ae.IncorrectEntityImplementation:return"Incorrect implementation";case ae.IncorrectMethodImplementation:return"Incorrect action implementation";case ae.IncorrectPropertyImplementation:return"Incorrect property implementation";case ae.AbstractMethodInNonAbstractEntity:return"Template action in non-template entity";case ae.AbstractPropertyInNonAbstractEntity:return"Template property in non-template entity";case ne.MethodOverwritesOtherSiblingWithSameName:return"Action overwrite";case ne.PropertyOverwritesOtherSiblingWithSameName:return"Property overwrite";case ae.MissingMethodImplementation:return"Missing action";case ae.MissingPropertyImplementation:return"Missing property";case ne.NameNotUniqueInScope:return"Duplicate name";case ae.NoProperties:return"No properties";case ae.NonStaticPropertyInStaticEntity:return"Non-static property";case ae.StaticEntityWithNonStaticProperties:return"Non-static properties";case ae.ReadingFromIncompatibleType:return"Read from different type";case ae.WritingToIncompatibleType:return"Write to different type";case ae.ScopeWithoutLogic:return"No logic";case ae.NonStaticPropertyImplementsStatic:return"Invalid static property";case ae.PropertyImplementsIncompatibleType:return"Incompatible data type";case ae.PropertyImplementsNonAbstact:return"Non-template property";case ae.StaticPropertyImplementsNonStatic:return"Non-static property";case ae.VariableCallsOthersAndHasInternalCall:return"Bad internal call";case ae.VariableHasInputsAndInternalCall:return"Bad internal call";case ae.VariableHasOutputsAndInternalCall:return"Bad internal call";case ae.VariableIsCalledAndHasInternalCall:return"Bad internal call";case ne.InternalCallDeclarationIsNotFunctionDeclaration:return"Declaration not an action";case ne.InternalCallDeclarationNotFoundInParentDatatypeEntity:return"Declaration not found in parent";case ne.InternalCallParentDeclarationEntityInvalidType:return"Invalid parent declaration type";case ne.InternalCallParentMissingDataType:return"Parent has no data type";case ne.InternalCallDeclarationNotInParentDatatypeEntity:return"Declaration not in parent";case ne.UnreachableEntity:return"Unreachable entity";case ae.DisconnectedCallableEntity:return"Disconnected entity";default:return Ip(d.code)}}function Ame(d){switch(d.code){case ae.AbstractEntityWithNonAbstractMethods:return`${re(d.entity,d.entity.project)} has non-template actions`;case ae.AbstractEntityWithNonAbstractProperties:return`${re(d.entity,d.entity.project)} has non-template properties`;case ae.IncorrectEntityImplementation:return`${re(d.entity,d.entity.project)} incorrectly implements template`;case ae.IncorrectMethodImplementation:return`${re(d.entity,d.entity.project)} incorrectly implements the template`;case ae.IncorrectPropertyImplementation:return`${re(d.entity,d.entity.project)} incorrectly implements the template`;case ae.AbstractMethodInNonAbstractEntity:return`${re(d.entity,d.entity.project)} can't be a template`;case ae.AbstractPropertyInNonAbstractEntity:return`${re(d.entity,d.entity.project)} can't be a template`;case ne.MethodOverwritesOtherSiblingWithSameName:return`${re(d.entity,d.entity.project)} overwrites action`;case ne.PropertyOverwritesOtherSiblingWithSameName:return`${re(d.entity,d.entity.project)} overwrites property`;case ae.MissingMethodImplementation:return`${re(d.entity,d.entity.project)} is missing action`;case ae.MissingPropertyImplementation:return`${re(d.entity,d.entity.project)} is missing property`;case ne.NameNotUniqueInScope:return`${re(d.entity,d.entity.project)} name is not unique`;case ae.NoProperties:return`${re(d.entity,d.entity.project)} has no properties`;case ae.NonStaticPropertyInStaticEntity:return`${re(d.entity,d.entity.project)} has non-static property`;case ae.StaticEntityWithNonStaticProperties:return`${re(d.entity,d.entity.project)} has non-static properties`;case ae.ReadingFromIncompatibleType:return`${re(d.entity,d.entity.project)} reads from different type`;case ae.WritingToIncompatibleType:return`${re(d.entity,d.entity.project)} writes to different type`;case ae.ScopeWithoutLogic:return`${re(d.entity,d.entity.project)} has no logic`;case ae.NonStaticPropertyImplementsStatic:return`${re(d.entity,d.entity.project)} has invalid static property`;case ae.PropertyImplementsIncompatibleType:return`${re(d.entity,d.entity.project)} has incompatible data type`;case ae.PropertyImplementsNonAbstact:return`${re(d.entity,d.entity.project)} has non-template property`;case ae.StaticPropertyImplementsNonStatic:return`${re(d.entity,d.entity.project)} has non-static property`;case ae.VariableCallsOthersAndHasInternalCall:return`${re(d.entity,d.entity.project)} has bad internal call`;case ae.VariableHasInputsAndInternalCall:return`${re(d.entity,d.entity.project)} has bad internal call`;case ae.VariableHasOutputsAndInternalCall:return`${re(d.entity,d.entity.project)} has bad internal call`;case ae.VariableIsCalledAndHasInternalCall:return`${re(d.entity,d.entity.project)} has bad internal call`;case ne.InternalCallDeclarationIsNotFunctionDeclaration:return`${re(d.entity,d.entity.project)} has declaration that is not an action`;case ne.InternalCallDeclarationNotFoundInParentDatatypeEntity:return`${re(d.entity,d.entity.project)} has declaration that is not found in parent`;case ne.InternalCallParentDeclarationEntityInvalidType:return`${re(d.entity,d.entity.project)} has invalid parent declaration type`;case ne.InternalCallParentMissingDataType:return`${re(d.entity,d.entity.project)}'s parent has no data type`;case ne.InternalCallDeclarationNotInParentDatatypeEntity:return`${re(d.entity,d.entity.project)} has declaration that is not in parent`;case ne.UnreachableEntity:return`${re(d.entity,d.entity.project)} is unreachable`;case ae.DisconnectedCallableEntity:return`${re(d.entity,d.entity.project)} is not executed by any entity`;default:return`${re(d.entity,d.entity.project)} Error: ${Ip(d.code)}`}}function Ime(d){var u,i,a,l;switch(d.code){case ae.AbstractEntityWithNonAbstractMethods:return`${re(d.entity,d.entity.project)} has non-template actions`;case ae.AbstractEntityWithNonAbstractProperties:return`${re(d.entity,d.entity.project)} has non-template properties`;case ae.IncorrectEntityImplementation:return`${re(d.entity,d.entity.project)} incorrectly implements the template entity`;case ae.IncorrectMethodImplementation:return`${re(d.entity,d.entity.project)} incorrectly implements the template action it's based on`;case ae.IncorrectPropertyImplementation:return`${re(d.entity,d.entity.project)} incorrectly implements the template property it's based on`;case ae.AbstractMethodInNonAbstractEntity:return`${re(d.entity,d.entity.project)} is a template action in a non-template entity`;case ae.AbstractPropertyInNonAbstractEntity:return`${re(d.entity,d.entity.project)} is a template property in a non-template entity`;case ne.MethodOverwritesOtherSiblingWithSameName:return`${re(d.entity,d.entity.project)} overwrites an action in the template entity`;case ne.PropertyOverwritesOtherSiblingWithSameName:return`${re(d.entity,d.entity.project)} overwrites a property in the template entity`;case ae.MissingMethodImplementation:return`${re(d.entity,d.entity.project)} is missing an action implementation from the template entity`;case ae.MissingPropertyImplementation:return`${re(d.entity,d.entity.project)} is missing a property implementation from the template entity`;case ne.NameNotUniqueInScope:return`${re(d.entity,d.entity.project)} has a duplicate name in the same scope`;case ae.NoProperties:return`${re(d.entity,d.entity.project)} has no properties, so it doesn't do anything`;case ae.NonStaticPropertyInStaticEntity:return`${re(d.entity,d.entity.project)} has a non-static property in a static entity`;case ae.StaticEntityWithNonStaticProperties:return`${re(d.entity,d.entity.project)} has non-static properties in a static entity`;case ae.ReadingFromIncompatibleType:return`${re(d.entity,d.entity.project)} reads data from a value of a different data type`;case ae.WritingToIncompatibleType:return`${re(d.entity,d.entity.project)} writes data to a value of a different data type`;case ae.ScopeWithoutLogic:return`${re(d.entity,d.entity.project)} has no logic`;case ae.NonStaticPropertyImplementsStatic:return`${re(d.entity,d.entity.project)} has a static property in a non-static entity`;case ae.PropertyImplementsIncompatibleType:return`${re(d.entity,d.entity.project)} implements a property of a different data type`;case ae.PropertyImplementsNonAbstact:return`${re(d.entity,d.entity.project)} implements a non-template property`;case ae.StaticPropertyImplementsNonStatic:return`${re(d.entity,d.entity.project)} has a static property in a non-static entity`;case ae.VariableCallsOthersAndHasInternalCall:return`${re(d.entity,d.entity.project)} calls other entities while being used to execute internal logic`;case ae.VariableHasInputsAndInternalCall:return`${re(d.entity,d.entity.project)} has inputs while being used to execute internal logic`;case ae.VariableHasOutputsAndInternalCall:return`${re(d.entity,d.entity.project)} has outputs while being used to execute internal logic`;case ae.VariableIsCalledAndHasInternalCall:return`${re(d.entity,d.entity.project)} is called while being used to execute internal logic`;case ne.InternalCallDeclarationIsNotFunctionDeclaration:return`${re(d.entity,d.entity.project)} has a declaration that is not an action`;case ne.InternalCallDeclarationNotFoundInParentDatatypeEntity:return`${re(d.entity,d.entity.project)} has a declaration that is not found in ${(u=d.entity.parent.getDataType(null))!=null&&u.entity?re((i=d.entity.parent.getDataType(null))==null?void 0:i.entity,d.entity.project):"the variable's data-type entity"}`;case ne.InternalCallParentDeclarationEntityInvalidType:return`${re(d.entity,d.entity.project)} is part of a variable whos data-type entity can't have actions`;case ne.InternalCallParentMissingDataType:return`${re(d.entity,d.entity.project)} is part of a variable with no data-type entity`;case ne.InternalCallDeclarationNotInParentDatatypeEntity:return`${re(d.entity,d.entity.project)} has a declaration doesn't belong to ${(a=d.entity.parent.getDataType(null))!=null&&a.entity?re((l=d.entity.parent.getDataType(null))==null?void 0:l.entity,d.entity.project):"the variable's data-type entity"}`;case ne.UnreachableEntity:return`${re(d.entity,d.entity.project)} is unreachable`;case ae.DisconnectedCallableEntity:return`${re(d.entity,d.entity.project)} is disconnected and won't be executed by anything after publishing`;default:return`${re(d.entity,d.entity.project)} Error: ${Ip(d.code)}`}}var pA=(d=>(d.ValuesAlreadyConnected="values-already-connected",d.CannotReadMoreThanOneValue="cannot-read-more-than-one-value",d.CannotReadValueFromChildren="cannot-read-value-from-children",d.CannotWriteValueToChildren="cannot-write-value-to-children",d.CannotBeCalledByChildren="cannot-be-called-by-children",d.ExecutionsAlreadyConnected="executions-already-connected",d.DataTypesNotCompatible="data-types-not-compatible",d.CannotCallAncestor="cannot-call-ancestor",d.CannotConnectToItself="cannot-connect-to-itself",d.CannotWriteValueToAncestor="cannot-write-value-to-ancestor",d.NotInScope="not-in-scope",d.IsNotValueWrittingEntity="is-not-value-writting-entity",d.IsNotValueReadingEntity="is-not-value-reading-entity",d.ContinueOrBreakStatementCalledFromOutsideLoop="continue-or-break-statement-called-from-outside-loop",d.ElementInLoopBodyCallingOutsideLoop="element-in-loop-body-calling-outside-loop",d.CallerIsInHigherScope="caller-is-in-higher-scope",d.CallerIsInLowerScope="caller-is-in-lower-scope",d.CallIsInHigherScope="call-is-in-higher-scope",d.CallIsInLowerScope="call-is-in-lower-scope",d.OtherIncompatibleScopeReason="other-incompatible-scope-reason",d.SiblingInternalCallAlreadyUsedInParentVariable="sibling-internal-call-already-used-in-parent-variable",d))(pA||{});const wme=Object.values(pA);var fA=(d=>(d.NotPartOfOngoingTest="not-part-of-ongoing-test",d.CannotBeAddedToTest="cannot-be-added-to-test",d))(fA||{});const Rme=Object.values(fA);var hA=(d=>(d.Suggestion="suggestion",d.CanvasGloballyDisabled="canvas-globally-disabled",d.CannotInteractWithInputInVariableWithInternalCalls="cannot-interact-with-input-in-variable-with-internal-calls",d.CannotInteractWithOutputInVariableWithInternalCalls="cannot-interact-with-output-in-variable-with-internal-calls",d))(hA||{});const gme=Object.values(hA);function _me(d,u){const i=[...d,...u];return Array.from(new Set(i))}function Dme(d,u){const i=[...d,...u],a=Array.from(new Set(i));return{hasChanged:a.length!==d.length,reasons:a}}function Ome(d,u){const i=d.filter(l=>!u.includes(l));return{hasChanged:i.length!==d.length,reasons:i}}function Cme(d,u){return d.find(i=>i.entity.id===u)||null}function rF(d){return d.filter((u,i)=>d.indexOf(u)===i)}class ci{constructor(u,i,a=null,l){D(this,"ids",[]);D(this,"entity");D(this,"entityCardHeight");D(this,"entityCardWidth");D(this,"index");D(this,"childEntities",[]);D(this,"children",[]);D(this,"parents",[]);D(this,"calculationEntryPoint");D(this,"_onlyEntities",null);D(this,"_changeSet",null);if(this.index=i,this.entity=u,this.calculationEntryPoint=a||this,this===this.calculationEntryPoint&&!l)throw new Error("Change set must be provided for the calculation entry point");this.calculateCardSize(),this.getSortedChildren()}static autoGenerateLayout(u,i,a){const l=Xx-cA-Hx,p=Qx-gy-dA;u.metaSync({x:u.x||l,y:u.y||p},i);const t=new ci(u,0,null,i);t._onlyEntities=a||[],t.ids=["0"];const y=[];t.next(T=>{y.push(...T)}),ci.recursivelyAssembleChildrenAreas(y),t.resolveChildrenOverlaps();const v=t.flattenChildEntities();return t._onlyEntities?v.filter(T=>(t._onlyEntities||[]).includes(T)):v}static recursivelyAssembleChildrenAreas(u){const i=[];u.forEach(a=>{a.next(l=>{i.push(...l)})}),i.length>0&&ci.recursivelyAssembleChildrenAreas(i)}get onlyEntities(){return this.calculationEntryPoint._onlyEntities}get changeSet(){return this.calculationEntryPoint._changeSet}set changeSet(u){this.calculationEntryPoint._changeSet=u}findAreaInChildrenFromEntity(u){if(this.entity===u)return this;const i=this.children.find(l=>l.entity===u);return i||this.children.reduce((l,p)=>l||p.findAreaInChildrenFromEntity(u),null)}findAreaFromEntity(u){if(this.entity===u)return this;const i=this.calculationEntryPoint.children,a=i.find(p=>p.entity===u);return a||i.reduce((p,t)=>p||t.findAreaInChildrenFromEntity(u),null)}addParent(u){if(!this.parents.includes(u)){const i=ci.resolveIds(u,this.index);this.ids.push(...i),this.parents.push(u)}}static resolveIds(u,i){return u?u.ids.map(a=>`${a}-${i}`):[`${i}`]}getSortedChildren(){if(this.entity.collapsed){this.childEntities=[];return}const u=dn(this.entity,!0);if(this.entity.type===f.Project){const i=[],a=[],l=[];u.forEach(t=>{if(f.DefinitionEntity===t.type){a.push(t);return}else if(tr.includes(t.type)){l.push(t);return}i.push(t)});const p=i.sort((t,y)=>{const v=!!My(t,y).length,T=dn(t),w=dn(y);return v?0:T.length&&!w.length?-1:!T.length&&w.length?1:0}).filter(t=>!no(t).length);this.childEntities=[...a,...l,...p]}else{const i=[],a=[],l=[],p=[],t=[];Vs.includes(this.entity.type)&&jy(this.entity).forEach(T=>{if(ot.includes(T.type)){l.push(T);return}const w=or(T);i.push(w)}),Dr.includes(this.entity.type)&&a.push(...this.entity.detachedChildren);const y=u.filter(v=>{const T=i.includes(v);return T||l.includes(v)||a.includes(v)?!1:ot.includes(v.type)?(l.push(v),!1):Ps.includes(v.type)&&!T?(p.push(v),!1):v.type===f.DefinitionEntity?(t.push(v),!1):!0});i.sort((v,T)=>ll(v,T)?-1:0),p.sort((v,T)=>ll(v,T)?-1:0),l.sort((v,T)=>LA(v,T)?1:LA(T,v)?-1:0),this.childEntities=[...t,...i,...p,...y,...l,...a]}}calculateCardSize(){const u=tF(this.entity);this.entityCardWidth=u.width,this.entityCardHeight=u.height}static getBoundriesOfTwoAreas(u,i){return{top:Math.min(u.top,i.top),left:Math.min(u.left,i.left),bottom:Math.max(u.bottom,i.bottom),right:Math.max(u.right,i.right)}}static getBoundriedOfCombinedAreas(u,i){const a=u.filter(p=>!i.includes(p));return a.reduce((p,t)=>i.includes(t)?p:ci.getBoundriesOfTwoAreas(p,t.fullBranchArea),a[0].fullBranchArea)}getFullAreaUntilAny(u){const i=this.ownEntityPlusBufferArea;return this.children.filter(t=>!u.includes(t)).map(t=>t.getFullAreaUntilAny(u)).reduce((t,y)=>ci.getBoundriesOfTwoAreas(t,y),i)}getFullAreaUntilAreaOrAnyChildren(u){const i=[u,...u.flattenChildren()],a=this.ownEntityPlusBufferArea;return this.children.filter(t=>i.includes(t)).map(t=>t.getFullAreaUntil(u)).reduce((t,y)=>ci.getBoundriesOfTwoAreas(t,y),a)}getFullAreaUntil(u){const i=this.ownEntityPlusBufferArea;return this.children.filter(p=>p!==u).map(p=>p.getFullAreaUntil(u)).reduce((p,t)=>ci.getBoundriesOfTwoAreas(p,t),i)}get fullBranchArea(){const u=this.ownEntityPlusBufferArea;return this.children.map(l=>l.fullBranchArea).reduce((l,p)=>ci.getBoundriesOfTwoAreas(l,p),u)}get ownEntityArea(){return{top:this.entity.y,left:this.entity.x,bottom:this.entity.y+this.entityCardHeight,right:this.entity.x+this.entityCardWidth}}get ownEntityPlusBufferArea(){const u=this.ownEntityArea;return{top:u.top,left:u.left,bottom:u.bottom+gy,right:u.right+cA}}static filterOutRepeatedAreas(u){return u.filter((i,a)=>u.indexOf(i)===a)}getEarliestId(u,i){const a=u.split("-"),l=i.split("-");return a.length<l.length?u:a.length>l.length?i:a.reduce((t,y,v)=>y<l[v]?u:i,u)}getEarliestLevel(){return this.ids.reduce((a,l)=>this.getEarliestId(a,l),this.ids[0]).split("-").length}countColumns(){let u=0;if(this!==this.calculationEntryPoint)u++;else return u;if(!this.parents.length)return u;const a=this.parents.reduce((l,p)=>p.getEarliestLevel()>l.getEarliestLevel()?p:l,this.parents[0]).countColumns();return u+=a,u}getLatestId(u,i){if(u===i)return u;const a=u.split("-"),l=i.split("-");return a.length<l.length?i:a.length>l.length?u:a.reduce((t,y,v)=>y>l[v]?u:i,u)}getLatestLevel(){return this.ids.length===1?this.ids[0].split("-").length:this.ids.reduce((a,l)=>this.getLatestId(a,l),this.ids[0]).split("-").length}smoothPosition(){const u=this.flattenSiblings();if(!u.length&&this.parents.length<=1&&this.children.length){const i=this.centerHeaderVerticallyOverCombinedAllChildrenHeaderHeight();this.parents.forEach(a=>{a!==this.calculationEntryPoint&&a.shiftDownAlone(i)})}else if([...tr].includes(this.entity.type)&&this.children.length)this.centerHeaderVerticallyOverCombinedAllChildrenHeaderHeight();else if(!this.children.length&&this.parents.length>1){const i=u.filter(a=>!this.parents.includes(a));i.length?i.every(l=>{const p=this.countColumns(),t=l.countColumns();return p>t})&&this.centerHeaderVerticallyOverCombinedAllParentsHeaderHeight():i.length||this.centerHeaderVerticallyOverCombinedAllParentsHeaderHeight()}}shiftDownUntilAny(u,i){if(u.includes(this))return u;this.move(this.entity,{y:this.entity.y+i});let a=[...u,this];return this.children.forEach(l=>{if(ci.getEarliestParentInChain(l)!==this)return;const t=Cme(a,l.entity.id);a=ci.filterOutRepeatedAreas([...a]),t||(a=a.filter(v=>v!==l));const y=l.shiftDownUntilAny(a,i);a.push(...y)}),a}shiftRightUntilAny(u,i){u.includes(this)||(this.move(this.entity,{x:this.entity.x+i}),this.children.forEach(a=>{const l=ci.filterOutRepeatedAreas([...this.flattenSiblings(),...u]);ci.getEarliestParentInChain(a)===this&&a.shiftRightUntilAny(l,i)}))}shiftRight(u){this.move(this.entity,{x:this.entity.x+u}),this.children.forEach(i=>{const l=i.flattenSiblings().filter(p=>p!==i);i.shiftRightUntilAny(l,u)})}shiftDownAlone(u){this.move(this.entity,{y:this.entity.y+u})}centerHeaderVerticallyOverCombinedAllParentsHeaderHeight(){const u=this.parents.reduce((l,p)=>{const t=p.ownEntityArea,y=t.top+Nd,v={top:y,left:t.left,bottom:y,right:t.right};return ci.getBoundriesOfTwoAreas(l,v)},{top:1/0,left:1/0,bottom:-1/0,right:-1/0}),a=(u.bottom-u.top)/2-Nd;this.shiftDownAlone(a)}centerHeaderVerticallyOverCombinedAllChildrenHeaderHeight(){const u=this.children.reduce((l,p)=>{const t=p.ownEntityArea,y=t.top+Nd,v={top:y,left:t.left,bottom:y,right:t.right};return ci.getBoundriesOfTwoAreas(l,v)},{top:1/0,left:1/0,bottom:-1/0,right:-1/0}),a=(u.bottom-u.top)/2-Nd;return this.shiftDownAlone(a),a}resolveChildrenOverlaps(){const u=this.flattenChildren();let i=[];u.forEach(a=>{const l=a.adjustVerticallyToAvoidOverlaps();i.push(...l)}),u.forEach(a=>{a.smoothPosition()})}static getEarliestParentInChain(u){let i=u.parents[0];return u.parents.length&&(i=u.parents.sort((a,l)=>{if(!a.ids.length)return-1;if(!l.ids.length)return 1;const p=a.ids.sort((y,v)=>y.length<v.length?-1:0),t=l.ids.sort((y,v)=>y.length<v.length?-1:0);return p[0].length-t[0].length})[0]),i}flattenEarlierSiblings(u=new Set){return u.add(this.entity.id),this.parents.reduce((a,l)=>{if(u.has(l.entity.id))return a;u.add(l.entity.id);const t=l.children.slice(0,l.children.indexOf(this)).reduce((y,v)=>[...y,v,...v.flattenChildren(u)],[]);return[...a,...t]},[])}flattenSiblings(u=new Set){return u.add(this.entity.id),this.parents.reduce((a,l)=>{if(u.has(l.entity.id))return a;u.add(l.entity.id);const t=l.children.filter(y=>y!==this).reduce((y,v)=>[...y,v,...v.flattenChildren(u)],[]);return[...a,...t]},[])}flattenChildren(u=new Set){return this.children.reduce((i,a)=>u.has(a.entity.id)?i:(u.add(a.entity.id),[...i,a,...a.flattenChildren(u)]),[])}flattenParents(u=new Set){return this.parents.reduce((a,l)=>u.has(l.entity.id)?a:(u.add(l.entity.id),[...a,l,...l.flattenParents(u)]),[])}getAreaIfRendered(u){return this.calculationEntryPoint.flattenChildren().find(l=>l.entity.id===u.id)||null}getLowerSiblings(){const u=this.parents.reduce((i,a)=>{const l=a.children.indexOf(this),p=a.children.slice(l+1);return[...i,...p]},[]);return rF(u)}getLowerAreas(){const u=this.getLowerSiblings(),i=this.parents.reduce((a,l)=>[...a,...l.getLowerAreas()],[]);return rF([...u,...i])}adjustVerticallyToAvoidOverlaps(u=[]){const a=ci.getEarliestParentInChain(this).children[this.index-1];if(!a)return u;const l=this.flattenEarlierSiblings(),p=this.flattenParents(),t=[...l,...p,a],T=R(t.flatMap(N=>My(this.entity,N.entity))).filter(N=>N.id!==this.entity.id).map(N=>this.findAreaFromEntity(N)).filter(N=>!!N),w=this.getFullAreaUntilAny(T),A=a.getFullAreaUntilAny(T),P=t.reduce((N,U)=>U===this||U.fullBranchArea.left!==w.left?N:Math.max(N,U.fullBranchArea.bottom),A.bottom);if(w.top<P){const N=P-w.top+gy;return this.shiftDownUntilAny(u,N)}return u}move(u,i){(this.onlyEntities||[]).includes(u)&&u.metaSync(i,this.changeSet)}addChild(u){const i=this.childEntities[u];let a=null;i.x&&i.y?a=this.getAreaIfRendered(i):!i.x&&!i.y&&this.move(i,{x:this.entity.x,y:this.entity.y}),a||(a=new ci(i,u,this.calculationEntryPoint));const l=this.ownEntityPlusBufferArea;this.children.includes(a)||(this.children.push(a),a.addParent(this));const p=a.fullBranchArea;if(p.left<l.right){const t=l.right-p.left;a.shiftRight(t)}return a}flattenChildEntities(u=new Set){return this.children.reduce((i,a)=>u.has(a.entity.id)?i:(u.add(a.entity.id),[...i,a.entity,...a.flattenChildEntities(u)]),[])}next(u){const i=[];this.childEntities.forEach((a,l)=>{const p=this.addChild(l);p&&i.push(p)}),u(i)}}var wp=(d=>(d.Amazon="amazon",d.Google="google",d.Microsoft="microsoft",d))(wp||{}),jr=(d=>(d.RelationalDatabase="relational-database",d.CompiledLocalCodebase="compiled-local-codebase",d.CloudHostedCodebase="cloud-hosted-codebase",d.HttpApi="http-api",d.HttpEndpoint="http-endpoint",d.ServerlessFunction="serverless-function",d))(jr||{}),yA=(d=>(d.Post="post",d.Get="get",d.Acknowledgement="acknowledgment",d.Progress="progress",d.Error="error",d.Complete="complete",d))(yA||{}),ol=(d=>(d.Queued="queued",d.Running="running",d.Success="success",d.Failed="failed",d.CleanedUp="cleaned-up",d.Skipped="skipped",d.AbortedByUser="aborted-by-user",d.UnrecoverableFailure="unrecoverable-failure",d.Reverted="reverted",d.UnpublishingStarted="unpublishing-started",d.Unpublished="unpublished",d))(ol||{}),mA=(d=>(d.Queued="queued",d.Running="running",d.Success="success",d.Failed="failed",d.CleanedUp="cleaned-up",d.UnrecoverableFailure="unrecoverable-failure",d.Reverted="reverted",d.UnpublishingStarted="unpublishing-started",d.Unpublished="unpublished",d))(mA||{}),nt=(d=>(d.ProjectNotFound="project-not-found",d.ProjectPublishRequestAcknowledged="project-publish-request-acknowledged",d.PublicationStepFailedReasonUnknown="publication-step-failed-reason-unknown",d.DeploymentCompleted="deployment-completed",d.DeploymentStarted="deployment-started",d.DeploymentFailed="deployment-failed",d.AllInfrastructureSuccessfullyProvisioned="all-infrastucture-successfully-provisioned",d.RequestPayloadValidationFailed="request-payload-validation-failed",d.ProjectStateValidationFailedMissingName="project-state-validation-failed-missing-name",d.ProjectStateValidationFailedMissingAnyFunctionality="project-state-validation-failed-missing-any-functionality",d.ProjectAlreadyBeingPublished="project-already-being-published",d.BillingSubscriptionUpdateFailed="billing-subscription-update-failed",d.RelationalDatabaseDeploymentStarted="relational-database-deployment-started",d.RelationalDatabaseDeploymentCompleted="relational-database-deployment-completed",d.RelationalDatabaseDeploymentFailed="relational-database-deployment-failed",d.CreatingNewRelationalDatabase="creating-new-relational-database",d.WaitingForPreviousRelationalDatabaseDeployment="waiting-for-previous-relationa-database-deployment",d.RelationalDatabaseAlreadyExists="relational-database-already-exists",d.RelationalDatabaseDeletionStarted="relational-database-deletion-started",d.RelationalDatabaseDeletionCompleted="relational-database-deletion-completed",d.RelationalDatabaseDeletionFailed="relational-database-deletion-failed",d.WaitingForPreviousRelationalDatabaseDeletion="waiting-for-previous-relationa-database-deletion",d.HttpApiDeploymentStarted="http-api-deployment-started",d.HttpApiDeploymentCompleted="http-api-deployment-completed",d.HttpApiDeploymentFailed="http-api-deployment-failed",d.CreatingNewHttpApi="creating-new-http-api",d.HttpApiAlreadyExists="http-api-already-exists",d.HttpApiDeletionStarted="http-api-deletion-started",d.HttpApiDeletionCompleted="http-api-deletion-completed",d.HttpApiDeletionFailed="http-api-deletion-failed",d.WaitingForPreviousHttpApiDeletion="waiting-for-previous-http-api-deletion",d.BusinessLogicCodebaseDeploymentStarted="business-logic-codebase-deployment-started",d.BusinessLogicCodebaseDeploymentCompleted="business-logic-codebase-deployment-completed",d.BusinessLogicCodebaseDeploymentFailed="business-logic-codebase-deployment-failed",d.BundlingCodebaseForDownload="bundling-codebase-for-download",d.UploadingCodebaseToCloudStorage="uploading-codebase-to-cloud-storage",d.UploadingCodebaseToCloudStorageCompleted="uploading-codebase-to-cloud-storage-completed",d.UploadingCodebaseToCloudStorageFailed="uploading-codebase-to-cloud-storage-failed",d.InfrastructureValuesCodebaseInterpolationStarted="infrastructure-values-codebase-interpolation-started",d.InfrastructureValuesCodebaseInterpolationCompleted="infrastructure-values-codebase-interpolation-completed",d.InfrastructureValuesCodebaseInterpolationFailed="infrastructure-values-codebase-interpolation-failed",d.CodeCompilationStarted="code-compilation-started",d.CodeCompilationCompleted="code-compilation-completed",d.CodeCompilationFailed="code-compilation-failed",d.BundleCodebaseStarted="bundle-codebase-started",d.BundleCodebaseCompleted="bundle-codebase-completed",d.BundleCodebaseFailed="bundle-codebase-failed",d.InstallingCodebaseDependenciesStarted="installing-codebase-dependencies-started",d.InstallingCodebaseDependenciesCompleted="installing-codebase-dependencies-completed",d.InstallingCodebaseDependenciesFailed="installing-codebase-dependencies-failed",d.MigrateRelationalDatabaseStarted="migrate-relational-database-started",d.MigrateRelationalDatabaseCompleted="migrate-relational-database-completed",d.MigrateRelationalDatabaseFailed="migrate-relational-database-failed",d))(nt||{}),ln=(d=>(d.CodeCompilation="code-compilation",d.RelationalDatabaseDeployment="relational-database-deployment",d.RelationalDatabaseDeletion="relational-database-deletion",d.HttpApiDeployment="http-api-deployment",d.HttpApiDeletion="http-api-deletion",d.InfrastructureValuesCodebaseInterpolation="infrastructure-values-codebase-interpolation",d.BundleCodebase="bundle-codebase",d.MigrateRelationalDatabase="migrate-relational-database",d.BusinessLogicCodebaseDeployment="business-logic-codebase-deployment",d.CodebaseCleanup="codebase-cleanup",d))(ln||{});jr.CloudHostedCodebase,jr.HttpApi,jr.RelationalDatabase,jr.CloudHostedCodebase,jr.CloudHostedCodebase,jr.RelationalDatabase,jr.CloudHostedCodebase,jr.CloudHostedCodebase;function iF(d){return`project-${d}-http-api`}function sF(d){return`entity-${d}-database`}class nF{constructor(u,i,a,l,p,t,y,v,T){D(this,"stepType");D(this,"id");D(this,"resourceType");D(this,"index");D(this,"dependency",[]);D(this,"lastEvent",null);D(this,"lasEventTimestamp",null);D(this,"status",ol.Queued);D(this,"publicationRun");D(this,"resource");this.stepType=u,this.id=i,this.resourceType=a,this.status=l,this.dependency=p,this.index=t,this.lasEventTimestamp=y,this.publicationRun=v,this.resource=T}toJSON(){return{stepType:this.stepType,id:this.id,resourceType:this.resourceType,index:this.index,status:this.status,dependency:this.dependency,lastEvent:this.lastEvent,resource:{resourceId:this.resource.resourceId,resourceType:this.resource.resourceType,provider:this.resource.provider,details:this.resource.details,status:this.resource.status,name:this.resource.name}}}async update(u){var i,a;this.status=u.status,this.dependency=u.dependency,this.index=u.index,this.stepType=u.stepType,this.resourceType=u.resourceType,this.lastEvent=u.lastEvent,this.id=u.id,(a=this.resource)==null||a.setDetails((i=u.resource)==null?void 0:i.details)}}var aF=(d=>(d.Ready="ready",d.Provisioning="provisioning",d.Queued="queued",d.ProvisioningFailed="provisioning-failed",d.Deleting="deleting",d.DeletingFailed="deleting-failed",d.Deleted="deleted",d))(aF||{});class vA{constructor(u,i,a){D(this,"provisionedBy");D(this,"publicationRun");D(this,"resourceType");D(this,"provider");D(this,"resourceId");D(this,"details",null);D(this,"name",null);D(this,"status","queued");this.publicationRun=u,this.resourceType=i,this.provider=a}setDetails(u){this.details=u}setStatus(u){this.status=u}setProvisionedBy(u){this.provisionedBy=u}}class EA extends vA{constructor(i,a,l,p){super(i,l,p);D(this,"resourceType");D(this,"owners",new Map);D(this,"details",null);D(this,"status","queued");a.forEach(t=>{this.owners.set(t.id,t)}),this.resolveDeterministicResourceId()}resolveDeterministicResourceId(){var i,a;return this.resourceType===jr.HttpApi?this.resourceId=iF(this.publicationRun.project.id):this.resourceType===jr.RelationalDatabase&&(this.resourceId=sF((a=(i=Array.from(this.owners.values()))==null?void 0:i[0])==null?void 0:a.id)),this.resourceId}}class TA extends vA{constructor(i,a,l){super(i,a,l);D(this,"resourceType");D(this,"details",null);D(this,"status","queued");this.resolveDeterministicResourceId()}resolveDeterministicResourceId(){return this.resourceType===jr.CompiledLocalCodebase?this.resourceId=`compiled-codebase--${this.publicationRun.project.id}--${this.publicationRun.project.version}--${this.publicationRun.id}`:this.resourceType===jr.CloudHostedCodebase&&(this.resourceId=`cloud-hosted-codebase--${this.publicationRun.project.id}--${this.publicationRun.project.version}`),this.resourceId}}class $me{constructor(u,i){D(this,"id");D(this,"projectAutoIncrementPublicationCount");D(this,"projectPublishedSemanticVersion");D(this,"projectVersion");D(this,"projectId");D(this,"cloudProvider");D(this,"triggeredBy");D(this,"createdAt");D(this,"updatedAt");D(this,"status");D(this,"steps",[]);D(this,"editor");D(this,"explicitResources",new Map);D(this,"implicitGlobalResources",new Map);D(this,"finalGlobalEvent",null);D(this,"finalStatus",null);this.id=u.id,this.projectAutoIncrementPublicationCount=u.projectAutoIncrementPublicationCount,this.projectPublishedSemanticVersion=u.projectPublishedSemanticVersion,this.projectVersion=u.projectVersion,this.projectId=u.projectId,this.cloudProvider=u.cloudProvider,this.triggeredBy=u.triggeredBy,this.createdAt=u.createdAt,this.updatedAt=u.updatedAt,this.status=u.status,this.editor=i}get project(){return this.editor.project}getInfraTypes(u){return this.steps.filter(i=>u.includes(i.resourceType))}getStepsTypes(u){return this.steps.filter(i=>u.includes(i.stepType))}toIds(u){return u.map(i=>i.id)}getResourceForEntity(u){const i=Array.from(this.explicitResources.values()).find(a=>a.owners.has(u.id));return i||null}async init(){await this.initResources()}async initResources(){this.implicitGlobalResources.set(jr.CompiledLocalCodebase,new TA(this,jr.CompiledLocalCodebase,wp.Amazon)),this.implicitGlobalResources.set(jr.CloudHostedCodebase,new TA(this,jr.CloudHostedCodebase,wp.Amazon));const u=this.project.entities.filter(a=>os(a,Ne.HTTP_ENDPOINT)),i=this.project.entities.filter(a=>os(a,Ne.RELATIONAL_DATABASE));if(i.length&&i.forEach(a=>{const l=new EA(this,[a],jr.RelationalDatabase,wp.Amazon);this.explicitResources.set(l.resourceId,l)}),u.length){const a=new EA(this,u,jr.HttpApi,wp.Amazon);this.explicitResources.set(a.resourceId,a)}}setSteps(u,i){u.forEach(a=>{this.addStep(a,i)}),this.editor.events.emit(nt.ProjectPublishRequestAcknowledged,{})}addStep(u,i){const a=u.dependency||[];if(a.length){const p=a.filter(t=>!this.steps.find(y=>y.id===t));if(p.length)throw new Error(`Missing dependencies: ${p.join(", ")}`)}if(!u.resource)throw new Error(`Resource not found for step ${u.stepType} (${u.id})`);if(!this.steps.find(p=>p.id===u.id)){const p=this.implicitGlobalResources.get(u.resourceType)||this.explicitResources.get(u.resource.resourceId),t=new nF(u.stepType,u.id,u.resourceType,u.status,a,u.index,i,this,p);this.steps.push(t)}}onUpdate(u){var i;if(Re.log("onUpdate",u),(i=u.payload)!=null&&i.stepType){const a=this.steps.find(l=>{var p;return l.id===((p=u.payload)==null?void 0:p.id)});a&&L(u.emittedAt).isAfter(L(a.lasEventTimestamp))&&a.update(u.payload)}this.editor.events.emit("publication-updated",{}),u.type===yA.Error?(this.finalStatus=mA.Failed,this.finalGlobalEvent=u.event,this.editor.events.emit("project-publication-error",u)):u.type===yA.Complete&&(this.finalStatus=mA.Success,this.finalGlobalEvent=u.event,this.editor.events.emit("project-publication-completed",u))}}function Pme(d){switch(d){case ln.CodeCompilation:return"Code generation";case ln.RelationalDatabaseDeployment:return"Database creation";case ln.HttpApiDeployment:return"HTTP gateway creation";case ln.InfrastructureValuesCodebaseInterpolation:return"Link code with resources";case ln.BundleCodebase:return"Bundle code";case ln.MigrateRelationalDatabase:return"Database structure migration";case ln.BusinessLogicCodebaseDeployment:return"Update servers with new code";case ln.CodebaseCleanup:return"Code cleanup";case ln.HttpApiDeletion:return"HTTP gateway deletion";case ln.RelationalDatabaseDeletion:return"Database deletion";default:return"Publication finished"}}function Vme(d){switch(d){case nt.DeploymentCompleted:return"Successfully published";case nt.DeploymentStarted:return"Publication started";case nt.DeploymentFailed:return"Publication failed";case nt.AllInfrastructureSuccessfullyProvisioned:return"All infrastructure successfully provisioned";case nt.RequestPayloadValidationFailed:return"Request payload validation failed";case nt.ProjectStateValidationFailedMissingName:return"Project state validation failed: missing name";case nt.ProjectStateValidationFailedMissingAnyFunctionality:return"Project state validation failed: missing any functionality";case nt.RelationalDatabaseDeploymentStarted:return"Database creation started";case nt.RelationalDatabaseDeploymentCompleted:return"Database creation completed";case nt.RelationalDatabaseDeploymentFailed:return"Database creation failed";case nt.CreatingNewRelationalDatabase:return"Creating new database (up to 5 mins)";case nt.WaitingForPreviousRelationalDatabaseDeployment:return"Waiting for previous database creation";case nt.RelationalDatabaseAlreadyExists:return"Database already exists";case nt.HttpApiDeploymentStarted:return"HTTP gateway creation started";case nt.HttpApiDeploymentCompleted:return"HTTP gateway creation completed";case nt.HttpApiDeploymentFailed:return"HTTP gateway creation failed";case nt.CreatingNewHttpApi:return"Creating new HTTP gateway";case nt.HttpApiAlreadyExists:return"HTTP gateway already exists";case nt.BusinessLogicCodebaseDeploymentStarted:return"Update servers with new code started";case nt.BusinessLogicCodebaseDeploymentCompleted:return"Update servers with new code completed";case nt.BusinessLogicCodebaseDeploymentFailed:return"Update servers with new code failed";case nt.BundlingCodebaseForDownload:return"Bundling code for download";case nt.UploadingCodebaseToCloudStorage:return"Uploading code to cloud storage";case nt.InfrastructureValuesCodebaseInterpolationStarted:return"Linking code with resources started";case nt.InfrastructureValuesCodebaseInterpolationCompleted:return"Linking code with resources completed";case nt.InfrastructureValuesCodebaseInterpolationFailed:return"Linking code with resources failed";case nt.CodeCompilationStarted:return"Code generation started";case nt.CodeCompilationCompleted:return"Code generation completed";case nt.CodeCompilationFailed:return"Code generation failed";case nt.BundleCodebaseStarted:return"Code bundling started";case nt.BundleCodebaseCompleted:return"Code bundling completed";case nt.BundleCodebaseFailed:return"Code bundling failed";case nt.InstallingCodebaseDependenciesStarted:return"Installing code dependencies";case nt.InstallingCodebaseDependenciesCompleted:return"Installing code dependencies completed";case nt.InstallingCodebaseDependenciesFailed:return"Installing code dependencies failed";case nt.MigrateRelationalDatabaseStarted:return"Database structure migration started";case nt.MigrateRelationalDatabaseCompleted:return"Database structure migration completed";case nt.MigrateRelationalDatabaseFailed:return"Database structure migration failed";case nt.ProjectAlreadyBeingPublished:return"Project already being published. You need to wait for the previous publication to complete";case nt.ProjectPublishRequestAcknowledged:return"Project publish request acknowledged";case nt.UploadingCodebaseToCloudStorageCompleted:return"Uploading code to cloud storage completed";case nt.UploadingCodebaseToCloudStorageFailed:return"Uploading code to cloud storage failed";case nt.BillingSubscriptionUpdateFailed:return"Billing subscription update failed";case nt.ProjectNotFound:return"Project not found";case nt.HttpApiDeletionCompleted:return"HTTP gateway deletion completed";case nt.HttpApiDeletionFailed:return"HTTP gateway deletion failed";case nt.HttpApiDeletionStarted:return"HTTP gateway deletion started";case nt.PublicationStepFailedReasonUnknown:return"Publication step failed: reason unknown";case nt.WaitingForPreviousHttpApiDeletion:return"Waiting for previous HTTP gateway deletion";case nt.RelationalDatabaseDeletionStarted:return"Database deletion started";case nt.RelationalDatabaseDeletionCompleted:return"Database deletion completed";case nt.RelationalDatabaseDeletionFailed:return"Database deletion failed";case nt.WaitingForPreviousRelationalDatabaseDeletion:return"Waiting for previous database deletion"}return"Unknown event"}var oF=(d=>(d.NO_LOGIC="NO_LOGIC",d.NO_NAME="NO_NAME",d.NO_CHANGES="NO_CHANGES",d.PROJECT_PUBLICATION_ALREADY_ONGOING="PROJECT_PUBLICATION_ALREADY_ONGOING",d))(oF||{});function Nme(d){switch(d){case"NO_LOGIC":return"This project has no logic";case"NO_NAME":return"This project has no name";case"NO_CHANGES":return"This version has already been published";case"PROJECT_PUBLICATION_ALREADY_ONGOING":return"This project is already being published";default:return"Publishing is currently not available. Try again later"}}function Lme(d){switch(d){case jr.RelationalDatabase:return"Relational database";case jr.HttpEndpoint:case jr.HttpApi:return"HTTP endpoints";case jr.ServerlessFunction:case jr.CloudHostedCodebase:return"Server code functions";default:return"Resources"}}function Bme(d){switch(d){case ol.Running:return"In progress";case ol.Failed:return"Failed";case ol.Success:return"Succeeded";case ol.Skipped:return"Skipped";case ol.Queued:default:return"Queued"}}function Mme(d,u){let i=null;const a=[];if(!d.id)i={...d,id:V.UUID.uuid()};else if(!VU(d.id)){const y=V.UUID.uuid();i={...d,id:y},a.push(new Q({id:`${d.id}--${S.InvalidUUIDStringFormat}`,message:`Entity with id "${d.id}" has an invalid UUID string format. The 'id' property must be a valid UUID string.
|
|
203
|
+
${Mn({describe_entity:y.error.id})}`,issue:null}))),{errors:p,modifiedData:l}}validateGeneratedUpdate(i){return{errors:[],modifiedData:i}}subscribeDependents(i){return i.forEach(a=>{this.detachedDependents[a.entity.id]||(this.detachedDependents[a.entity.id]=a)}),this}unsubscribeDependents(i){return i.forEach(a=>{this.detachedDependents[a.entity.id]&&delete this.detachedDependents[a.entity.id]}),this}syncDependents(i=this.project.addChangeSet(new F(this.project,V.sessionAuthor,L().toISOString(),this,!0,"sync-dependents"))){const a=[],l=[],p=[],t=[];return Object.values(this.detachedDependents).forEach(y=>{const v=y.entity.afterAllChildrenInitialized(i);a.push(...v.updated),l.push(...v.added),p.push(...v.removed),t.push(...v.affected)}),i==null||i.attemptAutoclose("sync-dependents",this.id),{updated:R(a),added:R(l),removed:R(p),affected:R(t),self:this}}onDetachedDependencyRemoved(i,a,l){const p=[],t=[],y=[],v=[];return{updated:R(p),added:R(t),removed:R(y),affected:R(v),self:this}}onDetachedDependencyRestored(i,a,l){const p=[],t=[],y=[],v=[];return{updated:R(p),added:R(t),removed:R(y),affected:R(v),self:this}}unsubscribeFromDependencies(){var i,a,l;return(l=(a=(i=this.dataType)==null?void 0:i.entity)==null?void 0:a.unsubscribeDependents)==null||l.call(a,[{entity:this,field:"data-type-entity"}]),this}subscribeToDependencies(){var i,a,l;return(l=(a=(i=this.dataType)==null?void 0:i.entity)==null?void 0:a.subscribeDependents)==null||l.call(a,[{entity:this,field:"data-type-entity"}]),this}increaseVersion(i){if(i&&!L(i).isValid())throw new Error(`The shared timestamp '${i}' is not a valid ISO 8601 date string.`);return i&&L(i).isSame(L(this.createdAt))?this:(this.previousVersion=this.version,this.version=V.UUID.uuid(),this.createdAt=L(i).toISOString()||L().toISOString(),this)}captureVersion(){var a;const i=((a=this.knownVersions)==null?void 0:a.get(this.version))||new Mt(this,this.project);return i.metaSync(this.toMeta(),null),this.knownVersions=this.knownVersions?this.knownVersions.set(this.version,i):new Map([[this.version,i]]),i.defaultValue=this.defaultValue,i.dataType=this.dataType,i.parent=this.parent,this}recursiveCaptureUpstreamVersions(i){const a=[],l=[],p=[],t=[];if(this.parent){this.parent.increaseVersion(i);const y=this.parent.recursiveCaptureUpstreamVersions(i);a.push(this.parent,...y.updated),l.push(...y.added),p.push(...y.removed)}return{updated:R(a),added:R(l),removed:R(p),affected:R(t),self:this}}async restoreVersion(i){var v;const a=[],l=[],p=[],t=[];if(this.version===i)return{updated:R(a),added:R(l),removed:R(p),affected:R(t),self:this};if(!this.knownVersions){const T=new Map;for(const[w,A]of this.knownVersions||new Map){if(T.set(w,A),A.activeVersion=!1,A.knownVersions)for(const[P,N]of A.knownVersions)T.set(P,N);A.knownVersions=null}}let y=(v=this.knownVersions)==null?void 0:v.get(i);if(!y){const T=await this.APILoadVersion({},i);if(!T)throw new Error(`Version with id '${i}' for entity with id '${this.id}' not found.`);y=new Mt(T,this.project)}return this.metaSync(y.toShallowJSON(),null),this.previousVersion=y.previousVersion,this.version=y.version,this.createdAt=y.createdAt,this.author=y.author,this.deleted=y.deleted,this.defaultValue=y.defaultValue,this.dataType=y.dataType,this.parent=y.parent,{updated:R(a),added:R(l),removed:R(p),affected:R(t),self:this}}updateWithShallowTransfer(i,a=this.project.addChangeSet(new F(this.project,V.sessionAuthor,L().toISOString(),this,!0,"update-with-shallow-transfer"))){if(this.metaSync(i,a),this.version=i.version,this.createdAt=i.createdAt,this.author=i.author,this.deleted=i.deleted,this.previousVersion=i.previousVersion,this.unsubscribeFromDependencies(),i.parent){const l=Z(i.parent),p=this.project.get(l),t=this.parent;if(t&&t.id!==(p==null?void 0:p.id)&&(this.removeFromParent(a),this.parent=null),p)this.setParent(p,a);else throw a==null||a.attemptAutoclose("update-with-shallow-transfer",this.id),new Error(`${this.type} with id '${this.id}' has a 'parent' reference '${l}' that isn't found in the project`)}else throw a==null||a.attemptAutoclose("update-with-shallow-transfer",this.id),new Error(`${this.type} with id '${this.id}' must have a 'parent'`);return this.captureVersion(),this.subscribeToDependencies(),a==null||a.attemptAutoclose("update-with-shallow-transfer",this.id),this}hydrateAncestors(){const i=[],a=[],l=[],p=[];if(this.initialData.parent){const t=Z(this.initialData.parent),y=this.project.get(t);if(y)this.setParent(y,null),i.push(y);else throw new Error(`${this.type} with id '${this.id}' has a 'parent' reference '${t}' that isn't found in the project`)}else throw new Error(`${this.type} with id '${this.id}' must have a 'parent'`);return{updated:R(i),added:R(a),removed:R(l),affected:R(p),self:this}}afterAllChildrenInitialized(i=this.project.addChangeSet(new F(this.project,V.sessionAuthor,L().toISOString(),this,!0,"after-all-children-initialized"))){const a=[],l=[],p=[],t=[];return this.initialized=!0,this.captureVersion(),i==null||i.attemptAutoclose("after-all-children-initialized",this.id),{updated:R(a),added:R(l),removed:R(p),affected:R(t),self:this}}addSelfToProject(i=this.project.addChangeSet(new F(this.project,V.sessionAuthor,L().toISOString(),this,!0,"add-self-to-project"))){var y,v,T,w,A,P,N,U;const a=[this],l=[],p=[],t=[];return this.parentRelationType===le.FixedArguments||this.parentRelationType===le.DynamicArgument?((y=this.parent)==null?void 0:y.type)===f.Search||((v=this.parent)==null?void 0:v.type)===f.Loop?(this.parent.addInputDeclaration(this,i),t.push(this.parent)):((w=(T=this.parent)==null?void 0:T.addInput)==null||w.call(T,this,i),a.push(this.parent)):this.parentRelationType===le.FixedReturns||this.parentRelationType===le.DynamicReturn?((A=this.parent)==null?void 0:A.type)===f.Search||((P=this.parent)==null?void 0:P.type)===f.Loop?(this.parent.addOutputDeclaration(this,i),t.push(this.parent)):((U=(N=this.parent)==null?void 0:N.addOutput)==null||U.call(N,this,i),a.push(this.parent)):this.parentRelationType===le.ReturnedError&&this.parent&&(this.parent.error=this,t.push(this.parent)),this.subscribe(),this.subscribeToDependencies(),i==null||i.attemptAutoclose("add-self-to-project",this.id),{updated:R(a),added:R(l),removed:R(p),affected:R(t),self:this}}setParent(i,a=this.project.addChangeSet(new F(this.project,V.sessionAuthor,L().toISOString(),this,!0,"set-parent"))){var l;return((l=this.parent)==null?void 0:l.id)!==(i==null?void 0:i.id)&&(this.parent=i,a&&(a==null||a.add(this,G.Updated))),a==null||a.attemptAutoclose("set-parent",this.id),this}initChildren(i=this.project.addChangeSet(new F(this.project,V.sessionAuthor,L().toISOString(),this,!0,"init-children"))){return this.initialized||this.startedInitialization?this:(this.startedInitialization=!0,this.initialData.defaultValue&&(this.defaultValue=ee(this.initialData.defaultValue,this.project),this.defaultValue.setParent(this,null),this.defaultValue.initChildren(i)),this.initialData.dataType&&(this.dataType=ee(this.initialData.dataType,this.project),this.dataType.setParent(this,null),this.dataType.initChildren(i)),this.subscribeToDependencies(),this.afterAllChildrenInitialized(i),i==null||i.attemptAutoclose("init-children",this.id),this)}subscribe(){return this.activeVersion=!0,this.project.subscribeInstance(this),this}unsubscribe(){return this.project.unsubscribeInstance(this),this}metaSync(i,a=this.project.addChangeSet(new F(this.project,V.sessionAuthor,L().toISOString(),this,!0,"meta-sync"))){const l=$r(this,i),p=this.toMeta();return this.name=i.name!==void 0?i.name:p.name,this.codeName=i.codeName!==void 0?i.codeName:p.codeName,this.description=i.description!==void 0?i.description:p.description,this.index=i.index||(i.index!==0?p.index:0),this.required=i.required!==void 0?i.required:this.required,this.parentRelationType=i.parentRelationType!==void 0?i.parentRelationType:this.parentRelationType,super.metaSync(i),i.deleted===!0&&!p.deleted?a==null||a.add(this,G.Removed):i.deleted===!1&&p.deleted?a==null||a.add(this,G.Added):l&&(a==null||a.add(this,G.Updated)),a==null||a.attemptAutoclose("meta-sync",this.id),this}async APILoad(i=me,...a){return await Mt.repository.APILoad(this.id,...a),this}async APICreate(i=me,...a){return await Mt.repository.APICreate(this.toShallowJSON(),...a),this}async APIUpdate(i=me,...a){return await Mt.repository.APIUpdate(this.toShallowJSON(),...a),this}async APIDelete(i=me,...a){return await Mt.repository.APIDelete(this.toShallowJSON(),...a),this}async APIClone(i=me,...a){return await Mt.repository.APIClone(this.id,...a),this}async APILoadVersion(i=me,a,...l){return await Mt.repository.APILoadVersion(this.id,a,...l)}removeFromParent(i=this.project.addChangeSet(new F(this.project,V.sessionAuthor,L().toISOString(),this,!0,"remove-from-parent"))){var y,v,T,w,A,P,N;const a=[],l=[],p=[],t=[];return this.parent&&(((y=this.parent)==null?void 0:y.type)===f.Search?this.parentRelationType===le.FixedReturns||this.parentRelationType===le.DynamicReturn?((v=this.parent)==null||v.removeOutputDeclaration(this,i),t.push(this.parent)):this.parentRelationType===le.FixedArguments||this.parentRelationType===le.DynamicArgument?((T=this.parent)==null||T.removeInputDeclaration(this,i),t.push(this.parent)):this.parentRelationType===le.ReturnedError&&(this.parent.error=null,t.push(this.parent)):((w=this.parent)==null?void 0:w.type)===f.Loop?this.parentRelationType===le.FixedReturns||this.parentRelationType===le.DynamicReturn?((A=this.parent)==null||A.removeOutputDeclaration(this,i),t.push(this.parent)):this.parentRelationType===le.ReturnedError&&(this.parent.error=null,t.push(this.parent)):this.parentRelationType===le.FixedReturns||this.parentRelationType===le.DynamicReturn?((P=this.parent)==null||P.removeOutput(this,i),t.push(this.parent)):(this.parentRelationType===le.FixedArguments||this.parentRelationType===le.DynamicArgument)&&((N=this.parent)==null||N.removeInput(this,i),t.push(this.parent))),i==null||i.attemptAutoclose("remove-from-parent",this.id),{added:R(p),updated:R(a),removed:R(l),affected:R(t),self:this}}remove({ignoreUpstream:i}={ignoreUpstream:!1},a=this.project.addChangeSet(new F(this.project,V.sessionAuthor,L().toISOString(),this,!0,"remove-entity"))){const l=[],p=[],t=[],y=[];if(Array.from(new Set([...Fs(),...this.project.getAllBuiltInIds()])).includes(this.id))return a==null||a.attemptAutoclose("remove-entity",this.id),{added:[],updated:[],removed:[],affected:[],self:this};if(a!=null&&a.hasRemoved(this.id))return a==null||a.attemptAutoclose("remove-entity",this.id),{added:[],updated:[],removed:[],affected:[],self:this};if(p.push(this),this.unsubscribe(),this.unsubscribeFromDependencies(),this.project.subscribeDeletedInstance(this),this.metaSync({deleted:!0},a),Object.values(this.detachedDependents).forEach(T=>{const{updated:w,removed:A,added:P}=T.entity.onDetachedDependencyRemoved(this,T.field,a);l.push(...w),p.push(...A),t.push(...P)}),this.defaultValue){const{updated:T,removed:w}=this.defaultValue.remove({ignoreUpstream:!0},a);l.push(...T),p.push(...w)}if(this.dataType){const{updated:T,removed:w}=this.dataType.remove({ignoreUpstream:!0},a);l.push(...T),p.push(...w)}if(!i){const T=this.removeFromParent(a);t.push(...T.added),l.push(...T.updated),p.push(...T.removed),y.push(...T.affected)}return a==null||a.attemptAutoclose("remove-entity",this.id),{added:R(t),updated:R(l),removed:R(p),affected:R(y),self:this}}restore({}={},i=this.project.addChangeSet(new F(this.project,V.sessionAuthor,L().toISOString(),this,!0,"restore-entity"))){var y,v,T,w,A,P,N;const a=[],l=[],p=[],t=[];if(i!=null&&i.hasAdded(this.id))return i==null||i.attemptAutoclose("restore-entity",this.id),{added:[],updated:[],removed:[],affected:[],self:this};if(this.subscribe(),this.project.unsubscribeDeletedInstance(this),this.metaSync({deleted:!1},i),Object.values(this.detachedDependents).forEach(U=>{const{updated:K,removed:k,added:J}=U.entity.onDetachedDependencyRestored(this,U.field,i);l.push(...K),p.push(...k),a.push(...J)}),this.defaultValue){const{updated:U}=this.defaultValue.restore({},i);l.push(...U)}if(this.dataType){const{updated:U}=this.dataType.restore({},i);l.push(...U)}return((y=this.parent)==null?void 0:y.type)===f.Search?this.parentRelationType===le.FixedReturns||this.parentRelationType===le.DynamicReturn?(v=this.parent)==null||v.addOutputDeclaration(this,i):(this.parentRelationType===le.FixedArguments||this.parentRelationType===le.DynamicArgument)&&((T=this.parent)==null||T.addInputDeclaration(this,i)):((w=this.parent)==null?void 0:w.type)===f.Loop?(this.parentRelationType===le.FixedReturns||this.parentRelationType===le.DynamicReturn)&&((A=this.parent)==null||A.addOutputDeclaration(this,i)):this.parentRelationType===le.FixedReturns||this.parentRelationType===le.DynamicReturn?(P=this.parent)==null||P.addOutput(this,i):(this.parentRelationType===le.FixedArguments||this.parentRelationType===le.DynamicArgument)&&((N=this.parent)==null||N.addInput(this,i)),i==null||i.attemptAutoclose("restore-entity",this.id),{added:R(a),updated:R(l),removed:R(p),affected:R(t),self:this}}toFlat(i=new Set){var l;return i.has(this.id)?[]:(i.add(this.id),[this,...((l=this.defaultValue)==null?void 0:l.toFlat(i))||[],...this.dataType?this.dataType.toFlat(i):[]])}toFlatIds(i=new Set){var l;return i.has(this.id)?[]:(i.add(this.id),[this.id,...((l=this.defaultValue)==null?void 0:l.toFlatIds(i))||[],...this.dataType?this.dataType.toFlatIds(i):[]])}toMeta(){return{id:this.id,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,codeName:this.codeName,description:this.description,index:this.index,required:this.required,parentRelationType:this.parentRelationType,type:this.type,name:this.name}}toJSON(i=new Set){var a,l,p;return i.has(this.id)?this.toReference():(i.add(this.id),{id:this.id,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,type:this.type,name:this.name,codeName:this.codeName,description:this.description,index:this.index,required:this.required,defaultValue:((a=this.defaultValue)==null?void 0:a.toJSON(i))||null,parentRelationType:this.parentRelationType,dataType:((l=this.dataType)==null?void 0:l.toJSON(i))||null,parent:((p=this.parent)==null?void 0:p.toReference())||null})}toJSONClone(i=Fe){var l,p,t,y,v,T,w,A;let a;return(l=i.seenEntityMaps)!=null&&l.has(this.id)?a=i.seenEntityMaps.get(this.id):(a=i.newId||Vr(this,this.project,i.uuidStrategy),i.seenEntityMaps&&i.seenEntityMaps.set(this.id,a)),(p=i.seenEntities)!=null&&p.has(a)||(t=i.seenEntities)!=null&&t.has(this.id)?this.toReference({seenEntityMaps:i.seenEntityMaps}):((y=i.seenEntities)==null||y.add(a),(v=i.seenEntities)==null||v.add(this.id),{id:a,version:V.UUID.uuid(),createdAt:i.timestamp||L().toISOString(),author:V.sessionAuthor,previousVersion:null,deleted:!1,type:this.type,name:this.name,codeName:this.codeName,description:this.description,index:this.index,required:this.required,defaultValue:((T=this.defaultValue)==null?void 0:T.toJSONClone({...i,newId:null}))||null,parentRelationType:this.parentRelationType,dataType:((w=this.dataType)==null?void 0:w.toJSONClone({...i,newId:null}))||null,parent:((A=this.parent)==null?void 0:A.toReference({seenEntityMaps:i.seenEntityMaps}))||null})}toReference(i=Fe){var l;let a=this.id;return(l=i.seenEntityMaps)!=null&&l.has(this.id)&&(a=i.seenEntityMaps.get(this.id)),{id:a+"--"+V.UUID.uuid()+"--ref",type:f.GenericReference,entityId:a,version:this.version,entityType:this.type}}toShallowJSON(i=Fe){var l,p,t,y;let a=this.id;return(l=i.seenEntityMaps)!=null&&l.has(this.id)&&(a=i.seenEntityMaps.get(this.id)),{id:a,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,type:this.type,name:this.name,codeName:this.codeName,description:this.description,index:this.index,required:this.required,parentRelationType:this.parentRelationType,defaultValue:((p=this.defaultValue)==null?void 0:p.toReference(i))||null,dataType:((t=this.dataType)==null?void 0:t.toReference(i))||null,parent:((y=this.parent)==null?void 0:y.toReference(i))||null}}toFlatJSON(i=new Set){var l;return i.has(this.id)?[]:(i.add(this.id),[this.toShallowJSON(),...((l=this.defaultValue)==null?void 0:l.toFlatJSON(i))||[],...this.dataType?this.dataType.toFlatJSON(i):[]])}toGenerationTarget(){var i;return{id:this.id,name:this.name,codeName:this.codeName,description:this.description,type:this.type,required:this.required,parentRelationType:this.parentRelationType,parent:(i=this.parent)==null?void 0:i.id}}toFlatGenerationTarget(i=new Set){return i.has(this.id)?[]:(i.add(this.id),[this.toGenerationTarget(),...this.defaultValue?this.defaultValue.toFlatGenerationTarget(i):[],...this.dataType?this.dataType.toFlatGenerationTarget(i):[]])}clearErrors(){var i,a;return this.errors=[],(i=this.defaultValue)==null||i.clearErrors(),(a=this.dataType)==null||a.clearErrors(),this}validate(){const i=$x(this);return this.errors=i,{success:!0,error:null,data:this.toJSON()}}getErrors(){return[...this.errors,...this.dataType?this.dataType.getErrors():[]]}getShallowErrors(){return this.errors}clone(i=this.project.addChangeSet(new F(this.project,V.sessionAuthor,L().toISOString(),this,!0,"clone-entity")),a=null,l=null,p=!0){var N,U;if(Array.from(new Set([...Fs(),...this.project.getAllBuiltInIds()])).includes(this.id))return this;let y=Nr(a,this);const v=l||V.UUID.uuid(),T=this.toJSON();T.id=v,T.version=V.UUID.uuid(),T.createdAt=(i==null?void 0:i.timestamp)||L().toISOString(),T.author=(i==null?void 0:i.author)||"1",T.previousVersion=null,T.deleted=!1;const w=zt(T,y);a&&w.setParent(a,null),i==null||i.add(w,G.Added),p&&w.subscribe();const A=((N=this.dataType)==null?void 0:N.clone(i,w,V.UUID.uuid(),p))||null;A&&w.setDataType(A,i);const P=(U=this.defaultValue)==null?void 0:U.clone(i,w,V.UUID.uuid(),p);return w.defaultValue=P||null,i==null||i.attemptAutoclose("clone-entity",this.id),w}getDataType(i=this.project.addChangeSet(new F(this.project,V.sessionAuthor,L().toISOString(),this,!0,"get-data-type"))){return i==null||i.attemptAutoclose("get-data-type",this.id),this.dataType||null}setDataType(i,a=this.project.addChangeSet(new F(this.project,V.sessionAuthor,L().toISOString(),this,!0,"set-data-type"))){const l=this.dataType;return(l==null?void 0:l.id)!==(i==null?void 0:i.id)&&(l==null||l.remove({ignoreUpstream:!0},a),this.dataType=i,this.subscribeToDependencies(),a==null||a.add(this,G.Affected)),a==null||a.attemptAutoclose("set-data-type",this.id),this}getDefaultValue(){return this.defaultValue||null}setDefaultValue(i,a=this.project.addChangeSet(new F(this.project,V.sessionAuthor,L().toISOString(),this,!0,"set-default-value"))){const l=this.defaultValue;return(l==null?void 0:l.id)!==(i==null?void 0:i.id)&&(l==null||l.remove({ignoreUpstream:!0},a),this.defaultValue=i,a==null||a.add(this,G.Affected)),a==null||a.attemptAutoclose("set-default-value",this.id),this}removeDataType(){return this.dataType=null,this}implementAsReturnDeclaration(i=this.project.addChangeSet(new F(this.project,V.sessionAuthor,L().toISOString(),this,!0,"implement-as-return-declaration")),a,l){const p=Ki.new(i);p.id=l||p.id,p.name=this.name,p.description=this.description,p.parent=a.toReference(),p.implements=this.toJSON(),p.isError=this.parentRelationType===le.ReturnedError;const t=zt(p,this.project);if(t.hydrateAncestors(),t.addSelfToProject(i),i==null||i.add(t,G.Added),t.initChildren(i),this.dataType){const y=this.dataType.clone(i,t);t.setDataType(y,i)}if(this.defaultValue){const y=this.defaultValue.clone(i,t);t.setDefaultValue(y,i)}return i==null||i.attemptAutoclose("implement-as-return-declaration",this.id),t}implementAsArgumentDeclaration(i=this.project.addChangeSet(new F(this.project,V.sessionAuthor,L().toISOString(),this,!0,"implement-as-return-declaration")),a,l){const p=Ea.new(i);p.id=l||p.id,p.name=this.name,p.description=this.description,p.parent=a.toReference(),p.implements=this.toJSON();const t=zt(p,this.project);if(t.hydrateAncestors(),t.addSelfToProject(i),i==null||i.add(t,G.Added),t.initChildren(i),this.dataType){const y=this.dataType.clone(i,t);t.setDataType(y,i)}if(this.defaultValue){const y=this.defaultValue.clone(i,t);t.setDefaultValue(y,i)}return i==null||i.attemptAutoclose("implement-as-return-declaration",this.id),t}};D(Mt,"repository",{APICreate:async(i,...a)=>i,APIUpdate:async(i,...a)=>i,APIDelete:async(i,...a)=>i,APIClone:async(i,...a)=>{},APILoad:async(i,...a)=>null,APILoadVersion:async(i,a,...l)=>null}),D(Mt,"type",f.ValueDescriptor),D(Mt,"USER_MANAGED_PARENT_TYPES",[f.ActionDescriptor,f.Loop,f.Search]),D(Mt,"PARENT_TYPES",[...Mt.USER_MANAGED_PARENT_TYPES]),D(Mt,"MUTABLE_BASE_PROPERTIES",["name","codeName","description","required"]),D(Mt,"INMUTABLE_BASE_PROPERTIES",["id","version","type","parentRelationType","createdAt","author","previousVersion"]),D(Mt,"BASE_PROPERTIES",[...Mt.MUTABLE_BASE_PROPERTIES,...Mt.INMUTABLE_BASE_PROPERTIES]),D(Mt,"MUTABLE_META_PROPERTIES",[...Mt.MUTABLE_BASE_PROPERTIES,"index"]),D(Mt,"INMUTABLE_META_PROPERTIES",[...Mt.INMUTABLE_BASE_PROPERTIES]),D(Mt,"META_PROPERTIES",[...Mt.MUTABLE_META_PROPERTIES,...Mt.INMUTABLE_META_PROPERTIES]),D(Mt,"MUTABLE_UPSTREAM_PROPERTIES",[]),D(Mt,"INMUTABLE_UPSTREAM_PROPERTIES",["parent"]),D(Mt,"UPSTREAM_PROPERTIES",[...Mt.MUTABLE_UPSTREAM_PROPERTIES,...Mt.INMUTABLE_UPSTREAM_PROPERTIES]),D(Mt,"MUTABLE_DOWNSTREAM_PROPERTIES",["dataType","defaultValue"]),D(Mt,"INMUTABLE_DOWNSTREAM_PROPERTIES",[]),D(Mt,"DOWNSTREAM_PROPERTIES",[...Mt.MUTABLE_DOWNSTREAM_PROPERTIES,...Mt.INMUTABLE_DOWNSTREAM_PROPERTIES]),D(Mt,"PROPERTIES",[...Mt.META_PROPERTIES,...Mt.UPSTREAM_PROPERTIES,...Mt.DOWNSTREAM_PROPERTIES]);let nn=Mt;var Te=(d=>(d.Inherited="inherited",d.DefaultValue="default-value",d.Missing="missing",d.Empty="empty",d.AutoCalculated="auto-calculated",d.QueuedAutocalculation="queued-autocalculation",d.External="external",d.Testing="testing",d.ExecutionResult="execution-result",d))(Te||{});const Vx={initialized:!1,id:"",project:null,values:{},onWriteCallback:()=>{},onRemoveCallback:()=>{},onWrite:()=>{},onRemove:()=>{},init:()=>{},toJSON:()=>({}),writeValue:()=>{},readValue:()=>null,removeValue:()=>{},clear:()=>{}};function ome(d,u){return{...Vx,id:d,project:u}}class yp{constructor(u,i){D(this,"initialized",!1);D(this,"id");D(this,"project");D(this,"values",{});D(this,"onWriteCallback",()=>{});D(this,"onRemoveCallback",()=>{});this.id=u,this.project=i,this.init()}onWrite(u){this.onWriteCallback=u}onRemove(u){this.onRemoveCallback=u}init(){if(!this.project.id||this.initialized)return;const u={},i={};Object.keys(u).forEach(a=>{const l=u[a],p=new Oi(l,this.project);try{if(l.parent){const v=this.project.findSubscribedInstanceFromReference(l.parent);if(!v)return;p.setParent(v,null),p.hydrateAncestors(),p.initChildren(null)}else if(l.standaloneParent){const v=this.project.findSubscribedInstanceFromReference(l.standaloneParent);if(!v)return;p.standalone=!0,p.setStandaloneParent(v),p.hydrateAncestors(),p.initChildren(null)}i[a]=p;const t=p.parent||p.standaloneParent,y=Nx(p,t,this.project);y?i[a]=y:delete u[a]}catch(t){Re.error("Error hydrating ancestors: ",t),delete u[a]}}),this.values={...this.values,...i},this.initialized=!0}toJSON(){const u={};return Object.keys(this.values).forEach(i=>{u[i]=this.values[i].toJSON()}),u}writeValue(u,i){if(!u)throw new Error("The value owner entity is required when writing a value to a value store");let l=this.values[u.id];if(!l)if(i instanceof Oi)l=i;else if(i)l=zt(i,this.project);else{const p={id:V.UUID.uuid(),version:V.UUID.uuid(),createdAt:new Date().toISOString(),author:V.sessionAuthor,deleted:!1,previousVersion:null,value:null,type:f.LiteralValue,standaloneParent:u.toReference(),parent:null,valueAsTypeSingle:null,valueAsTypeList:null,autogeneration:null,name:el(u.getDataType(null))};l=zt(p,this.project)}l.standalone=!0,l.initialData.standaloneParent||Re.warn("instance.initialData: ",l.initialData),l.setStandaloneParent(u),l.hydrateAncestors(),l.initChildren(null),i&&(l.metaSync({...i},null),l.setValueAsType(i.valueAsType,null)),this.values[u.id]=l,this.onWriteCallback(u,l)}readValue(u){return this.values[u]||null}removeValue(u){if(!this.values[u])return;delete this.values[u];const i=this.project.get(u);i&&this.onRemoveCallback(i)}clear(){this.values={}}}function Ta(d){var u;return!!(d.required||(u=d.declaration)!=null&&u.required)}function my(d){return EM(d)||d===void 0||d===""}function zb(d){return d?d.valueAsType?!1:my(d.value):!0}function an(d,u,i,a){var y;let l;if(((y=d==null?void 0:d.entity)==null?void 0:y.type)===f.PrimitiveEntity)switch(d.entity.name){case X.EntityTemplate:l=X.EntityTemplate;break;case X.String:l=X.String;break;case X.Number:l=X.Number;break;case X.Boolean:l=X.Boolean;break;case X.Null:l=X.Null;break;case X.Enum:l=X.Enum;break;case X.KeyValue:l=X.KeyValue;break;case X.Untyped:l=X.Untyped;break;case X.KeyValue:l=X.KeyValue;break;case X.Date:l=X.Date;break;case X.UUID:l=X.UUID;break;case X.File:l=X.File;break;default:throw new Error(`Primitive type ${re(d.entity,i)} is not supported`)}else l=X.Untyped;const p=Oi.new();p.name=l,p.parent=u.toReference();const t=ee(p,i);return t.hydrateAncestors(),a==null||a.add(t,G.Added),t.addSelfToProject(a),t.initChildren(a),t}function on(d,u,i=new Set){var a,l;if(i.has(d.id))return[];if(i.add(d.id),d.type===f.ReturnDeclaration){const p=[d,...d.getCounterparts()];return Re.log("Resolved counterparts for return declaration: ",`${d.name} ${d.id}`),Re.log("equivalentReturnDeclarations: ",p.map(t=>`${t.name} ${t.id}`)),R([...p,...p.flatMap(t=>on(t,u,i))])}else if(ot.includes(d.type)){const p=Ti(d);return R([p,...[p].flatMap(t=>on(t,u,i))])}else if(d.type===f.OutputMap){if(ot.includes(d.parent.type)&&d.declaration.type===f.Property&&d.declaration.static)return R([d,d.declaration,...[d,d.declaration].flatMap(p=>on(p,u,i))])}else if(d.type===f.InputMap&&ot.includes(d.parent.type)&&((a=d.declaration)==null?void 0:a.type)===f.Property&&(l=d.declaration)!=null&&l.static)return R([d.declaration,...[d.declaration].flatMap(p=>on(p,u,i))]);return[d]}function Nx(d,u,i){return d}function Vd(d,u){const i=d.readsValue;let a=null;if((i==null?void 0:i.type)===f.VariableDeclaration){const p=vp(i,u);if(p&&p.value){const t={sources:[p],target:d};a={value:p.value,valueOwner:d,type:Te.Inherited,inheritanceLink:t}}}else if((i==null?void 0:i.type)===f.VariableInstance){const p=Ey(i,u);if(p&&p.value){const t={sources:[p],target:d};a={value:p.value,valueOwner:d,type:Te.Inherited,inheritanceLink:t}}}else if((i==null?void 0:i.type)===f.OutputMap){const p=tA(i,u);if(p&&p.value){const t={sources:[p],target:d};a={value:p.value,valueOwner:d,type:Te.Inherited,inheritanceLink:t}}}else if((i==null?void 0:i.type)===f.ArgumentDeclaration){const p=Qb(i,u);if(p){const t={sources:[p],target:d};a={value:p.value,valueOwner:d,type:Te.Inherited,inheritanceLink:t}}}return a}function et(d,u,i){var y;if(!u)return null;let a;if(((y=d==null?void 0:d.entity)==null?void 0:y.type)===f.PrimitiveEntity)switch(d.entity.name){case X.EntityTemplate:a=X.EntityTemplate;break;case X.String:a=X.String;break;case X.Number:a=X.Number;break;case X.Boolean:a=X.Boolean;break;case X.Null:a=X.Null;break;case X.Enum:a=X.Enum;break;case X.KeyValue:a=X.KeyValue;break;case X.Untyped:a=X.Untyped;break;case X.KeyValue:a=X.KeyValue;break;case X.Date:a=X.Date;break;case X.UUID:a=X.UUID;break;case X.File:a=X.File;break;default:throw new Error(`Primitive type ${re(d.entity,i)} is not supported`)}else a=X.Untyped;if(!i.get(u.id))return null;const p=Oi.new();p.name=a,p.standaloneParent=u.toReference();let t=new Oi(p,i);return t.hydrateAncestors(),t.standalone=!0,t.setStandaloneParent(u),t.initChildren(null),t}function vy(d,u,i){var p;const a={...d},l=u.inputs;if(!l)return a;for(const t of l){if(!Lp(t))continue;const y=Tp(t,i);if(y&&y.value){const v=re(t,i.project),T=Or(v);a[T]=((p=y==null?void 0:y.value)==null?void 0:p.value)||a[T]}}return a}function mp(d,u,i){var p;const a={...d},l=u.inputs;if(!l)return a;for(const t of l){if(!Lp(t))continue;const y=Ep(t,i);if(y&&y.value){const v=re(t,i.project),T=Or(v);a[T]=(p=y==null?void 0:y.value)==null?void 0:p.value}}return a}function Lx(d,u){var y,v,T,w,A,P,N;let i={};if(((v=(y=d.dataType)==null?void 0:y.entity)==null?void 0:v.type)===f.DefinitionEntity&&(i={...i,...d.dataType.entity.getActiveRawDefaultValue()}),u.execution&&u.execution.hasEntity(d)){const U=(T=u.lastExecutionResults)==null?void 0:T.readValue(d.id);if(U){if(lr(U.value)){const k={...i,...U.value},J={...mp(k,d,u)};U.metaSync({value:J},null)}return{value:U,valueOwner:d,type:Te.ExecutionResult,inheritanceLink:null}}}const a=!!((w=u.execution)!=null&&w.entities.length),l=(A=u.execution)==null?void 0:A.hasEntity(d),p=d.readsValue;let t=null;if(p){const U=(P=u.execution)==null?void 0:P.hasEntity(p);if((!a||a&&U&&l||a&&!U&&!l)&&(t=Vd(d,u),t&&t.value&&lr(t.value.value))){const k={...i,...t.value.value},J={...mp(k,d,u)};t.value.metaSync({value:J},null)}}if(!t&&d.defaultValue){const U=d.defaultValue;if(U.value===null&&U.autogeneration){const K=uh(U);if(U.metaSync({value:K},null),lr(K)){const k={...mp(K,d,u)};U.metaSync({value:k},null)}}t={value:U,valueOwner:d,type:U.value===null?Te.Empty:Te.DefaultValue,inheritanceLink:null}}if(!t||t.type===Te.DefaultValue){const U=(N=u.localTestValues)==null?void 0:N.readValue(d.id);if(U){if(lr(U.value)){const K={...i,...U.value},k={...mp(K,d,u)};U.metaSync({value:k},null)}return{value:U,valueOwner:d,type:Te.Testing,inheritanceLink:null}}}return t||{value:null,valueOwner:d,type:Te.Empty,inheritanceLink:null}}function Bx(d,u){var l,p,t,y,v;let i={};if(((p=(l=d.dataType)==null?void 0:l.entity)==null?void 0:p.type)===f.DefinitionEntity&&(i={...i,...d.dataType.entity.getActiveRawDefaultValue()}),u.execution&&u.execution.hasEntity(d)){const T=(t=u.lastExecutionResults)==null?void 0:t.readValue(d.id);if(T){if(lr(T.value)){const A={...i,...T.value},P=vy(A,d,u);T==null||T.metaSync({value:P},null)}return{value:T,valueOwner:d,type:Te.ExecutionResult,inheritanceLink:null}}}const a=(y=u.localTestValues)==null?void 0:y.readValue(d.id);if(a){if(lr(a.value)){const w={...i,...a.value},A=vy(w,d,u);a.metaSync({value:A},null)}return{value:a,valueOwner:d,type:Te.Testing,inheritanceLink:null}}if((v=d.dataType)!=null&&v.entity&&d.dataType.entity.type===f.DefinitionEntity&&d.dataType.isObject()){const T=et(d.dataType,d,u.project);return T==null||T.metaSync({value:vy(i,d,u)},null),{value:T,valueOwner:d,type:Te.DefaultValue,inheritanceLink:null}}return null}function vp(d,u){var y,v,T,w,A;if((y=d.dataType)!=null&&y.isObject())return Lx(d,u);const i=or(d),a=!!((v=u.execution)!=null&&v.entities.length),l=(T=u.execution)==null?void 0:T.hasEntity(i),p=d.readsValue;let t=null;if(p){const P=(w=u.execution)==null?void 0:w.hasEntity(p);(!a||a&&P&&l||a&&!P&&!l)&&(t=Vd(d,u))}if(!t&&d.defaultValue){const P=d.defaultValue;if(P.value===null&&P.autogeneration){const N=uh(P);P.metaSync({value:N},null)}t={value:P,valueOwner:d,type:P.value===null?Te.Empty:Te.DefaultValue,inheritanceLink:null}}if(!t||t.type===Te.DefaultValue){const P=(A=u.localTestValues)==null?void 0:A.readValue(d.id);if(P)return{value:P,valueOwner:d,type:Te.Testing,inheritanceLink:null}}return t||{value:null,valueOwner:d,type:Te.Empty,inheritanceLink:null}}function Xb(d,u){var a,l,p,t;if((a=d.dataType)!=null&&a.isObject())return Bx(d,u);if(u.execution&&u.execution.hasEntity(d)){const y=(l=u.lastExecutionResults)==null?void 0:l.readValue(d.id);if(y)return{value:y,valueOwner:d,type:Te.ExecutionResult,inheritanceLink:null}}const i=(p=u.localTestValues)==null?void 0:p.readValue(d.id);if(i)return{value:i,valueOwner:d,type:Te.Testing,inheritanceLink:null};if((t=d.dataType)!=null&&t.entity&&d.dataType.entity.type===f.DefinitionEntity&&d.dataType.isObject()){const y=et(d.dataType,d,u.project),v=d.dataType.entity.getActiveRawDefaultValue();return y==null||y.metaSync({value:v},null),{value:y,valueOwner:d,type:Te.DefaultValue,inheritanceLink:null}}return null}function Ey(d,u){var T,w,A,P;const i=!!((T=u.execution)!=null&&T.entities.length),a=(w=u.execution)==null?void 0:w.hasEntity(d);let l=null;const p=d.readsValue;if(p){const N=(A=u.execution)==null?void 0:A.hasEntity(p);(!i||i&&N&&a||i&&!N&&!a)&&(l=Vd(d,u))}const t=d.declaration;if(!l&&t){const N=vp(t,u);N&&N.value&&(l=N)}if(!l||l.type===Te.DefaultValue){const N=(P=u.localTestValues)==null?void 0:P.readValue(d.id);if(N)return{value:N,valueOwner:d,type:Te.Testing,inheritanceLink:null}}const y=Ta(d);return y&&a&&!l?{value:null,valueOwner:d,type:Te.Missing,inheritanceLink:null}:a&&!y&&!l?{value:null,valueOwner:d,type:Te.Empty,inheritanceLink:null}:l||{value:null,valueOwner:d,type:Te.External,inheritanceLink:null}}function Mx(d,u){return Xb(d.declaration,u)}function Qb(d,u){var v,T,w,A;if(u.execution&&u.execution.hasEntity(d)){const P=(v=u.lastExecutionResults)==null?void 0:v.readValue(d.id);if(P)return{value:P,valueOwner:d,type:Te.ExecutionResult,inheritanceLink:null}}const i=or(d),a=d.parent.type===f.FunctionDeclaration&&d.parent.parent.type===f.Loop?d.parent:null,l=!!((T=u.execution)!=null&&T.hasEntity(i))||!!a&&!!((w=u.execution)!=null&&w.hasEntity(a));let p=null;if(d.defaultValue){const P=d.defaultValue;if(P.value===null&&P.autogeneration){const N=uh(P);P.metaSync({value:N},null)}p={value:P,valueOwner:d,type:P.value===null?Te.Empty:Te.DefaultValue,inheritanceLink:null}}if(!p||p.type===Te.DefaultValue){const P=(A=u.localTestValues)==null?void 0:A.readValue(d.id);if(P)return{value:P,valueOwner:d,type:Te.Testing,inheritanceLink:null}}const t=Ta(d);let y=t&&l&&!p;return i.type===f.Loop&&l&&(y=!1),y?{value:null,valueOwner:d,type:Te.Missing,inheritanceLink:null}:l&&!t&&!p?{value:null,valueOwner:d,type:Te.Empty,inheritanceLink:null}:p||{value:null,valueOwner:d,type:Te.External,inheritanceLink:null}}function eA(d,u){var T,w,A,P,N;if(u.execution&&u.execution.hasEntity(d)){const U=(T=u.lastExecutionResults)==null?void 0:T.readValue(d.id);if(U)return{value:U,valueOwner:d,type:Te.ExecutionResult,inheritanceLink:null}}const i=or(d),a=!!((w=u.execution)!=null&&w.entities.length),l=(A=u.execution)==null?void 0:A.hasEntity(i),p=d.readsValue;let t=null;if(p){const U=(P=u.execution)==null?void 0:P.hasEntity(p);(!a||a&&U&&l||a&&!U&&!l)&&(t=Vd(d,u))}if(!t&&d.defaultValue&&(t={value:d.defaultValue,valueOwner:d,type:Te.DefaultValue,inheritanceLink:null}),!t||t.type===Te.DefaultValue){const U=(N=u.localTestValues)==null?void 0:N.readValue(d.id);if(U)return{value:U,valueOwner:d,type:Te.Testing,inheritanceLink:null}}const y=Ta(d);return y&&!t?{value:null,valueOwner:d,type:Te.Missing,inheritanceLink:null}:!y&&!t?{value:null,valueOwner:d,type:Te.Empty,inheritanceLink:null}:t}function tA(d,u){var y,v,T,w,A;if(u.execution&&u.execution.hasEntity(d)){const P=(y=u.lastExecutionResults)==null?void 0:y.readValue(d.id);if(P)return{value:P,valueOwner:d,type:Te.ExecutionResult,inheritanceLink:null}}const i=or(d);if(ot.includes(i.type)){const P=il(i,u),N=Or(re(d,u.project));if(P!=null&&P.value&&lr(P.value.value)){const U=P.value.value[N],K=et(d.getDataType(null),d,u.project);return K==null||K.metaSync({value:U},null),{value:K,valueOwner:d,type:P.type,inheritanceLink:{sources:[P],target:d}}}return null}const a=(v=u.execution)==null?void 0:v.hasEntity(i),l=((T=u.execution)==null?void 0:T.state)===iA.Running;if((w=u.persistedExecutionResults)!=null&&w.values[d.id]&&!a&&!l){const P=(A=u.persistedExecutionResults)==null?void 0:A.readValue(d.id);if((P==null?void 0:P.value)!==null||(P==null?void 0:P.valueAsType)!==null)return{value:P,valueOwner:d,type:Te.ExecutionResult,inheritanceLink:null}}const p=d.getDefaultValue();if(p&&(p.value!==null||p.valueAsType!==null))return{value:p,valueOwner:d,type:Te.DefaultValue,inheritanceLink:null};const t=d.parent;if(!t)throw new Error(`Couldn't find the parent that generates the output ${d.id}`);switch(t.type){case f.VariableInstance:{const N=Ey(t,u);if(N&&N.value){const K=d.declaration;if(lr(N.value.value)){const k=N.value.value[K.name],J=et(d.declaration.dataType,d,u.project);return J==null||J.metaSync({value:k},null),{value:J,valueOwner:d,type:Te.Inherited,inheritanceLink:{sources:[N],target:d}}}}const U=et(d.declaration.dataType,d,u.project);return U==null||U.metaSync({value:null},null),{value:U,valueOwner:d,type:Te.Inherited,inheritanceLink:{sources:N?[N]:[],target:d}}}case f.VariableDeclaration:{const N=vp(t,u);if(N&&N.value){const K=d.declaration;if(lr(N.value.value)){const k=N.value.value[K.name],J=et(d.declaration.dataType,d,u.project);return J==null||J.metaSync({value:k},null),{value:J,valueOwner:d,type:Te.Inherited,inheritanceLink:{sources:[N],target:d}}}}const U=et(d.declaration.dataType,d,u.project);return U==null||U.metaSync({value:null},null),{value:U,valueOwner:d,type:Te.Inherited,inheritanceLink:{sources:N?[N]:[],target:d}}}case f.Operation:{const P=t.outputs.map(U=>{var k,J;if((k=u.persistedExecutionResults)!=null&&k.values[U.id]){const se=(J=u.persistedExecutionResults)==null?void 0:J.values[U.id];if(se.value!==null||se.valueAsType!==null)return{value:se,valueOwner:U,type:Te.ExecutionResult,inheritanceLink:null}}const K=U.getDefaultValue();if(K&&(K.value!==null||K.valueAsType!==null))return{value:K,valueOwner:U,type:Te.DefaultValue,inheritanceLink:null}}).filter(U=>!!U),N=et(d.declaration.dataType,d,u.project);return N==null||N.metaSync({value:null},null),{value:N,valueOwner:d,type:Te.QueuedAutocalculation,inheritanceLink:P.length?{sources:P,target:d}:null}}case f.FunctionCall:{const P=t.inputs.map(U=>Ty(U,u)).filter(U=>!!U),N=et(d.declaration.dataType,d,u.project);return N==null||N.metaSync({value:null},null),{value:N,valueOwner:d,type:Te.QueuedAutocalculation,inheritanceLink:P.length?{sources:P,target:d}:null}}case f.Loop:{const P=t.inputs.map(U=>Ty(U,u)).filter(U=>!!U),N=et(d.declaration.dataType,d,u.project);return N==null||N.metaSync({value:null},null),{value:N,valueOwner:d,type:Te.QueuedAutocalculation,inheritanceLink:P.length?{sources:P,target:d}:null}}case f.Search:return{value:null,valueOwner:d,type:Te.QueuedAutocalculation,inheritanceLink:null}}return null}function Ux(d,u){var w,A;if(!ot.includes(d.parent.type)||!Lp(d))return null;if(((w=d.declaration)==null?void 0:w.type)===f.Property&&d.declaration.static)return il(d.declaration,u);const i=Ep(d,u);if(i&&i.type!==Te.Empty&&i.type!==Te.Missing)return i;const a=Ti(d.parent),l=by(a,u),p=Or(re(d,u.project)),t=et(d.getDataType(null),d,u.project),y=Ta(d),v=(A=l==null?void 0:l.value)==null?void 0:A.value;if(v&&lr(v)){let P=v[p];return v[p]===void 0&&(P=null),t==null||t.metaSync({value:P},null),y&&my(P)?{value:null,valueOwner:d,type:Te.Missing,inheritanceLink:null}:{value:t,valueOwner:d,type:l.type,inheritanceLink:{sources:l?[l]:[],target:d}}}return y?{value:null,valueOwner:d,type:Te.Missing,inheritanceLink:null}:{value:null,valueOwner:d,type:Te.Empty,inheritanceLink:null}}function jx(d,u){var w,A,P,N,U;if(!ot.includes(d.parent.type)||!Lp(d))return null;if(((w=d.declaration)==null?void 0:w.type)===f.Property&&d.declaration.static)return il(d.declaration,u);const i=Ti(d.parent),a=il(i,u),l=d.parent===i?d:i.inputs.find(K=>{var k,J;return((k=K.declaration)==null?void 0:k.id)===((J=d.declaration)==null?void 0:J.id)}),p=Tp(l,u),t=Or(re(d,u.project)),y=et(d.getDataType(null),d,u.project),v=Ta(d),T=(A=a==null?void 0:a.value)==null?void 0:A.value;if(((a==null?void 0:a.type)===Te.ExecutionResult||(a==null?void 0:a.type)===Te.Testing)&&T&&lr(T)){let K=T[t];return T[t]===void 0&&(K=null),y==null||y.metaSync({value:K},null),{value:y,valueOwner:d,type:a.type,inheritanceLink:{sources:a?[a]:[],target:d}}}if(p&&p.type!==Te.Empty&&p.type!==Te.Missing)return p;if(T&&lr(T)){let K=T[t];T[t]===void 0&&(K=null),y==null||y.metaSync({value:K},null);const k=v&&my(K),J=!!((P=u.execution)!=null&&P.entities.length),se=(N=u.execution)==null?void 0:N.hasEntity(i),te=i.readsValue;if(te){const ce=(U=u.execution)==null?void 0:U.hasEntity(te);if(k&&(!J||J&&ce&&se||J&&!ce&&!se))return{value:null,valueOwner:d,type:Te.Inherited,inheritanceLink:null}}return k?{value:null,valueOwner:d,type:Te.Missing,inheritanceLink:null}:{value:y,valueOwner:d,type:a.type,inheritanceLink:{sources:a?[a]:[],target:d}}}return Tp(d,u)}function Ep(d,u){var T,w,A,P,N;const i=or(d),a=!!((T=u.execution)!=null&&T.entities.length),l=(w=u.execution)==null?void 0:w.hasEntity(i),p=d.readsValue;let t=null;if(p){const U=(A=u.execution)==null?void 0:A.hasEntity(p);(!a||a&&U&&l||a&&!U&&!l)&&(t=Vd(d,u))}if(!t&&d.defaultValue){const U=d.defaultValue;U&&(t={value:U,valueOwner:d,type:Te.DefaultValue,inheritanceLink:null})}if(!t&&d.declaration){const U=il(d.declaration,u);U&&U.value&&(t={...U,valueOwner:d,type:Te.DefaultValue})}if(!t||t.type===Te.DefaultValue||(t==null?void 0:t.type)===Te.Empty){const U=(P=u.persistedExecutionResults)==null?void 0:P.readValue(d.id);if(U)return{value:U,valueOwner:d,type:Te.Testing,inheritanceLink:null};const K=(N=u.localTestValues)==null?void 0:N.readValue(d.id);if(K)return{value:K,valueOwner:d,type:Te.Testing,inheritanceLink:null}}const y=Ta(d);return y&&!t||(t==null?void 0:t.type)===Te.Empty?{value:null,valueOwner:d,type:Te.Missing,inheritanceLink:(t==null?void 0:t.inheritanceLink)||null}:!y&&(!t||t.type===Te.Inherited)&&!(t!=null&&t.inheritanceLink)?{value:null,valueOwner:d,type:Te.Empty,inheritanceLink:null}:t}function Tp(d,u){var l,p;if(u.execution&&u.execution.hasEntity(d)){const t=(l=u.lastExecutionResults)==null?void 0:l.readValue(d.id);if(t)return{value:t,valueOwner:d,type:Te.ExecutionResult,inheritanceLink:null}}const i=(p=u.localTestValues)==null?void 0:p.readValue(d.id);return i?{value:i,valueOwner:d,type:Te.Testing,inheritanceLink:null}:Ep(d,u)}function Ty(d,u){var i;return ot.includes(d.parent.type)&&(i=Ti(d.parent).dataType)!=null&&i.isObject()?Ux(d,u):Ep(d,u)}function xx(d,u){var i;return ot.includes(d.parent.type)&&(i=Ti(d.parent).dataType)!=null&&i.isObject()?jx(d,u):Tp(d,u)}function Fx(d,u){var y,v;if(!d.static)return null;if(u.execution){const T=(y=u.lastExecutionResults)==null?void 0:y.readValue(d.id);if(T)return{value:T,valueOwner:d,type:Te.ExecutionResult,inheritanceLink:null}}const i=(v=u.localTestValues)==null?void 0:v.readValue(d.id);if(i)return{value:i,valueOwner:d,type:Te.Testing,inheritanceLink:null};const a=d.getDefaultValue();let l=null;return a&&(l={value:a,valueOwner:d,type:Te.DefaultValue,inheritanceLink:null}),Ta(d)&&zb(l==null?void 0:l.value)?{value:null,valueOwner:d,type:Te.Missing,inheritanceLink:null}:zb(l==null?void 0:l.value)?{value:null,valueOwner:d,type:Te.Empty,inheritanceLink:null}:l}function Gx(d,u){var y,v,T,w,A,P;if(u.execution&&u.execution.hasEntity(d)){const N=(y=u.lastExecutionResults)==null?void 0:y.readValue(d.id);if(N)return{value:N,valueOwner:d,type:Te.ExecutionResult,inheritanceLink:null}}const i=(v=u.localTestValues)==null?void 0:v.readValue(d.id);if(i)return{value:i,valueOwner:d,type:Te.Testing,inheritanceLink:null};const a=d.getDefaultValue();let l=null;return a&&(l={value:a,valueOwner:d,type:Te.DefaultValue,inheritanceLink:null}),Ta(d)&&!((T=l==null?void 0:l.value)!=null&&T.value)&&!((w=l==null?void 0:l.value)!=null&&w.valueAsType)?{value:null,valueOwner:d,type:Te.Missing,inheritanceLink:null}:!((A=l==null?void 0:l.value)!=null&&A.value)&&!((P=l==null?void 0:l.value)!=null&&P.valueAsType)?{value:null,valueOwner:d,type:Te.Empty,inheritanceLink:null}:l}function il(d,u){switch(d.type){case f.ArgumentDeclaration:return Qb(d,u);case f.InputMap:return xx(d,u);case f.VariableDeclaration:return Xb(d,u);case f.VariableInstance:return Mx(d,u);case f.OutputMap:return tA(d,u);case f.ReturnDeclaration:return eA(d,u);case f.Property:return Fx(d,u);case f.ValueDescriptor:return Gx(d,u);default:return null}}function by(d,u){switch(d.type){case f.InputMap:return Ty(d,u);case f.VariableDeclaration:return vp(d,u);case f.VariableInstance:return Ey(d,u);case f.ReturnDeclaration:return eA(d,u);default:return null}}function lme(d){var u;if(d&&d.type===Te.DefaultValue&&d.value&&d.valueOwner&&((u=d.valueOwner.defaultValue)==null?void 0:u.id)===d.value.id){const i=et(d.valueOwner.getDataType(null),d.valueOwner,d.valueOwner.project);return{type:Te.DefaultValue,value:i,valueOwner:d.valueOwner,inheritanceLink:null}}return d}function sl(d,u,i,a){let l=!1,p=null,t=null;a instanceof F?(l=!0,p=a,t=null):(p=null,t=a);const y=d.parent;return u.getVariableDeclarations().forEach(T=>{var A,P,N,U;const w=T.getDataType(null);if(((A=w==null?void 0:w.entity)==null?void 0:A.id)===y.id){let K=l?T.defaultValue:t==null?void 0:t.readValue(T.id);K?!l&&K&&K.id===((P=T.defaultValue)==null?void 0:P.id)&&(K=et(T.getDataType(null),T,u)):l?K=an(T.getDataType(null),T,u,p):K=et(T.getDataType(null),T,u);const k=re(d,u),J=Or(k);let se={};((U=(N=T.dataType)==null?void 0:N.entity)==null?void 0:U.type)===f.DefinitionEntity&&(se={...se,...T.dataType.entity.getActiveRawDefaultValue()}),lr(K==null?void 0:K.value)&&(se={...se,...K.value}),se[J]=i,K==null||K.metaSync({value:se},p),l||t==null||t.writeValue(T,K);return}}),p}function bp(d,u,i,a){var N,U,K;let l=!1,p=null,t=null;a instanceof F?(l=!0,p=a,t=null):(p=null,t=a);const y=Ti(d.parent),v=y.getDataType(null);if(!(v!=null&&v.isObject()))return p;let T=l?y.defaultValue:t==null?void 0:t.readValue(y.id);T?!l&&T&&T.id===((N=y.defaultValue)==null?void 0:N.id)&&(T=et(y.getDataType(null),y,u)):l?T=an(y.getDataType(null),y,u,p):T=et(y.getDataType(null),y,u);const w=re(d,u),A=Or(w);let P={};if(((K=(U=y.dataType)==null?void 0:U.entity)==null?void 0:K.type)===f.DefinitionEntity&&(P={...P,...y.dataType.entity.getActiveRawDefaultValue()}),lr(T==null?void 0:T.value)&&(P={...P,...T.value}),P[A]=i,T==null||T.metaSync({value:P},p),l||t==null||t.writeValue(y,T),(i===""||i===null||i===void 0)&&d.type===f.OutputMap){const k=y.inputs.find(J=>{var se;return((se=J.declaration)==null?void 0:se.id)===d.declaration.id||re(J,u)===w});if(k){let J=l?k.defaultValue:t==null?void 0:t.readValue(k.id);J&&J.metaSync({value:null},p),l||t==null||t.removeValue(k.id)}}return p}function Kx(d,u,i){var t,y,v,T;let a=!1,l=null,p=null;if(i instanceof F?(a=!0,l=i,p=null):(l=null,p=i),ot.includes(d.type)){const w=Ti(d);(t=w.dataType)!=null&&t.isObject()&&w.inputs.forEach(A=>{var P,N,U,K;if(((P=A.declaration)==null?void 0:P.type)===f.Property&&A.declaration.static){let k=a?d.defaultValue:p==null?void 0:p.readValue(A.declaration.id);k?!a&&k&&k.id===((N=A.declaration.defaultValue)==null?void 0:N.id)&&(k=et(A.declaration.getDataType(null),A.declaration,u)):a?k=an(A.declaration.getDataType(null),A.declaration,u,l):k=et(A.declaration.getDataType(null),A.declaration,u),k==null||k.metaSync({value:null},l),a||p==null||p.removeValue((U=A.declaration)==null?void 0:U.id)}else if(((K=A.declaration)==null?void 0:K.type)===f.Property){let k=a?d.defaultValue:p==null?void 0:p.readValue(A.id);k&&k.metaSync({value:null},l),a||p==null||p.removeValue(A.id)}})}else d.type===f.InputMap?((y=d.declaration)==null?void 0:y.type)===f.Property&&d.declaration.static?sl(d.declaration,u,null,i):ot.includes(d.parent.type)&&((v=d.declaration)==null?void 0:v.type)===f.Property&&bp(d,u,null,i):d.type===f.OutputMap?((T=d.declaration)==null?void 0:T.type)===f.Property&&d.declaration.static?sl(d.declaration,u,null,i):ot.includes(d.parent.type)&&d.declaration.type===f.Property&&bp(d,u,null,i):d.type===f.Property&&d.static&&sl(d,u,null,i);return l}function kx(d,u,i,a){var y,v,T,w,A,P;let l=!1,p=null,t=null;if(a instanceof F?(l=!0,p=a,t=null):(p=null,t=a),ot.includes(u.type)){const N=Ti(u);if((y=N.dataType)!=null&&y.isObject()){let U={};((T=(v=N.dataType)==null?void 0:v.entity)==null?void 0:T.type)===f.DefinitionEntity&&(U={...U,...N.dataType.entity.getActiveRawDefaultValue()});const K=lr(d)?d:U;N.inputs.forEach(k=>{var J,se,te;if(((J=k.declaration)==null?void 0:J.type)===f.Property&&k.declaration.static){let ce=l?u.defaultValue:t==null?void 0:t.readValue(k.declaration.id);ce?!l&&ce&&ce.id===((se=k.declaration.defaultValue)==null?void 0:se.id)&&(ce=et(k.declaration.getDataType(null),k.declaration,i)):l?ce=an(k.declaration.getDataType(null),k.declaration,i,p):ce=et(k.declaration.getDataType(null),k.declaration,i);const ie=re(k,i),he=Or(ie),z=K[he];ce==null||ce.metaSync({value:z},p),l||t==null||t.writeValue(k.declaration,ce)}else if(((te=k.declaration)==null?void 0:te.type)===f.Property){let ce=l?u.defaultValue:t==null?void 0:t.readValue(k.id);ce&&ce.metaSync({value:null},p),l||t==null||t.removeValue(k.id)}})}}else u.type===f.InputMap?((w=u.declaration)==null?void 0:w.type)===f.Property&&u.declaration.static?sl(u.declaration,i,d,a):ot.includes(u.parent.type)&&((A=u.declaration)==null?void 0:A.type)===f.Property&&bp(u,i,d,a):u.type===f.OutputMap?((P=u.declaration)==null?void 0:P.type)===f.Property&&u.declaration.static?sl(u.declaration,i,null,a):ot.includes(u.parent.type)&&u.declaration.type===f.Property&&bp(u,i,null,a):u.type===f.Property&&u.static&&sl(u,i,d,a);return p}function Sx(d,u,i){const a=on(d,u);let l=!1,p=null,t=null;return i instanceof F?(l=!0,p=i,t=null):(p=null,t=i),a.forEach(y=>{var T;let v=l?y.defaultValue:t==null?void 0:t.readValue(y.id);v?!l&&v&&v.id===((T=y.defaultValue)==null?void 0:T.id)&&(v=et(d.getDataType(null),d,d.project)):l?v=an(y.getDataType(null),y,u,p):v=et(y.getDataType(null),y,u),v==null||v.metaSync({value:null},p),l||t==null||t.removeValue(y.id),Kx(y,u,i)}),p}function dme(d,u,i,a){if(d===""||d===null||d===void 0)return Sx(u,i,a);const l=on(u,i);let p=!1,t=null,y=null;return a instanceof F?(p=!0,t=a,y=null):(t=null,y=a),l.forEach(v=>{var w;let T=p?u.defaultValue:y==null?void 0:y.readValue(u.id);T?!p&&T&&T.id===((w=v.defaultValue)==null?void 0:w.id)&&(T=et(v.getDataType(null),v,i)):p?T=an(v.getDataType(null),v,i,t):T=et(v.getDataType(null),v,i),T==null||T.metaSync({value:d},t),p||y==null||y.writeValue(v,T),kx(d,v,i,a)}),t}function nl(d,u,i,a){let l=!1,p=null,t=null;a instanceof F?(l=!0,p=a,t=null):(p=null,t=a);const y=d.parent;return u.getVariableDeclarations().forEach(T=>{var A,P,N,U;const w=T.getDataType(null);if(((A=w==null?void 0:w.entity)==null?void 0:A.id)===y.id){let K=l?T.defaultValue:t==null?void 0:t.readValue(T.id);K?!l&&K&&K.id===((P=T.defaultValue)==null?void 0:P.id)&&(K=et(T.getDataType(null),T,u)):l?K=an(T.getDataType(null),T,u,p):K=et(T.getDataType(null),T,u);const k=re(d,u),J=Or(k);let se={};((U=(N=T.dataType)==null?void 0:N.entity)==null?void 0:U.type)===f.DefinitionEntity&&(se={...se,...T.dataType.entity.getActiveRawDefaultValue()}),lr(K==null?void 0:K.value)&&(se={...se,...K.value}),Array.isArray(i)?se[J]=(i==null?void 0:i.map(te=>te.toShallowJSON()))||null:se[J]=(i==null?void 0:i.toShallowJSON())||null,K==null||K.metaSync({value:se},p),l||t==null||t.writeValue(T,K);return}}),p}function Ap(d,u,i,a){var N,U,K;let l=!1,p=null,t=null;a instanceof F?(l=!0,p=a,t=null):(p=null,t=a);const y=Ti(d.parent),v=y.getDataType(null);if(!(v!=null&&v.isObject()))return p;let T=l?y.defaultValue:t==null?void 0:t.readValue(y.id);T?!l&&T&&T.id===((N=y.defaultValue)==null?void 0:N.id)&&(T=et(y.getDataType(null),y,u)):l?T=an(y.getDataType(null),y,u,p):T=et(y.getDataType(null),y,u);const w=re(d,u),A=Or(w);let P={};if(((K=(U=y.dataType)==null?void 0:U.entity)==null?void 0:K.type)===f.DefinitionEntity&&(P={...P,...y.dataType.entity.getActiveRawDefaultValue()}),lr(T==null?void 0:T.value)&&(P={...P,...T.value}),Array.isArray(i)?P[A]=(i==null?void 0:i.map(k=>k.toShallowJSON()))||null:P[A]=(i==null?void 0:i.toShallowJSON())||null,T==null||T.metaSync({value:P},p),l||t==null||t.writeValue(y,T),i==null&&d.type===f.OutputMap){const k=y.inputs.find(J=>{var se;return((se=J.declaration)==null?void 0:se.id)===d.declaration.id||re(J,u)===w});if(k){let J=l?k.defaultValue:t==null?void 0:t.readValue(k.id);J&&(Array.isArray(i)?J==null||J.setValueAsTypeList(i,p):J==null||J.setValueAsTypeSingle(i,p)),l||t==null||t.removeValue(k.id)}}return p}function qx(d,u,i){var a,l,p;return d.type===f.InputMap?((a=d.declaration)==null?void 0:a.type)===f.Property&&d.declaration.static?nl(d.declaration,u,null,i):ot.includes(d.parent.type)&&((l=d.declaration)==null?void 0:l.type)===f.Property&&Ap(d,u,null,i):d.type===f.OutputMap?((p=d.declaration)==null?void 0:p.type)===f.Property&&d.declaration.static?nl(d.declaration,u,null,i):ot.includes(d.parent.type)&&d.declaration.type===f.Property&&Ap(d,u,null,i):d.type===f.Property&&d.static&&nl(d,u,null,i),i}function Zx(d,u,i,a){var l,p,t;return u.type===f.InputMap?((l=u.declaration)==null?void 0:l.type)===f.Property&&u.declaration.static?nl(u.declaration,i,d,a):ot.includes(u.parent.type)&&((p=u.declaration)==null?void 0:p.type)===f.Property&&Ap(u,i,d,a):u.type===f.OutputMap?((t=u.declaration)==null?void 0:t.type)===f.Property&&u.declaration.static?nl(u.declaration,i,null,a):ot.includes(u.parent.type)&&u.declaration.type===f.Property&&Ap(u,i,null,a):u.type===f.Property&&u.static&&nl(u,i,d,a),a}function Jx(d,u,i){const a=on(d,u);let l=!1,p=null,t=null;return i instanceof F?(l=!0,p=i,t=null):(p=null,t=i),a.forEach(y=>{var T;let v=l?y.defaultValue:t==null?void 0:t.readValue(y.id);v?!l&&v&&v.id===((T=y.defaultValue)==null?void 0:T.id)&&(v=et(y.getDataType(null),y,y.project)):l?v=an(y.getDataType(null),y,u,p):v=et(y.getDataType(null),y,u),v==null||v.setValueAsTypeSingle(null,p),v==null||v.setValueAsTypeList(null,p),l||t==null||t.removeValue(y.id),qx(y,u,i)}),p}function ume(d,u,i,a){if(d==null)return Jx(u,i,a);const l=on(u,i);let p=!1,t=null,y=null;return a instanceof F?(p=!0,t=a,y=null):(t=null,y=a),l.forEach(v=>{var w;let T=p?v.defaultValue:y==null?void 0:y.readValue(v.id);T?!p&&T&&T.id===((w=v.defaultValue)==null?void 0:w.id)&&(T=et(v.getDataType(null),v,v.project)):p?T=an(v.getDataType(null),v,i,t):T=et(v.getDataType(null),v,i),Array.isArray(d)?T==null||T.setValueAsTypeList(d,t):T==null||T.setValueAsTypeSingle(d,t),p||y==null||y.writeValue(v,T),Zx(d,v,i,a)}),t}var cme=Object.defineProperty,pme=(d,u,i)=>u in d?cme(d,u,{enumerable:!0,configurable:!0,writable:!0,value:i}):d[u]=i,al=(d,u,i)=>(pme(d,typeof u!="symbol"?u+"":u,i),i);let fme=class{constructor(u){al(this,"eventName"),al(this,"callbacks",[]),this.eventName=u,this.on=this.on.bind(this),this.off=this.off.bind(this),this.destroy=this.destroy.bind(this)}on(u){if(typeof u!="function")throw new Error("Event callback must be a function");this.callbacks.includes(u)||this.callbacks.push(u)}off(u){if(typeof u!="function")throw new Error("Event callback must be a function");this.callbacks=this.callbacks.filter(i=>i!==u)}destroy(){this.callbacks=[]}},rA=class{constructor(){al(this,"subscribedEvents",{}),al(this,"on",this._on),al(this,"emit",this._emit),al(this,"off",this._off),al(this,"destroy",this._destroy),this.getEvent=this.getEvent.bind(this),this._on=this._on.bind(this),this._emit=this._emit.bind(this),this._off=this._off.bind(this),this._destroy=this._destroy.bind(this),this.on=this.on.bind(this),this.emit=this.emit.bind(this),this.off=this.off.bind(this),this.destroy=this.destroy.bind(this)}getEvent(u){return this.subscribedEvents[u]||(this.subscribedEvents[u]=new fme(u)),this.subscribedEvents[u]}_on(u,i){this.getEvent(u).on(i)}_emit(u,...i){const a=this.getEvent(u);a&&a.callbacks.forEach(l=>{l.apply(null,i)})}_off(u,i){const a=this.getEvent(u);a&&(i?a.off(i):(a.destroy(),delete this.subscribedEvents[u]))}_destroy(){Object.keys(this.subscribedEvents).forEach(u=>{this._off(u)}),this.subscribedEvents={}}};const Qa={onBeforeEntityExecution:async()=>{},onEntityExecuted:async()=>{}};var iA=(d=>(d.FinishedSuccess="finished-success",d.FinishedError="finished-error",d.Running="running",d.Paused="paused",d.Stopped="stopped",d.NotStarted="not-started",d))(iA||{});const Si=class Si extends rA{constructor(i,a,l,p=null){super();D(this,"project");D(this,"entryPoint");D(this,"state","not-started");D(this,"events",new rA);D(this,"entities",[]);D(this,"parentExecution",null);D(this,"executing",[]);D(this,"executed",[]);D(this,"skipped",[]);D(this,"scheduled",[]);D(this,"localTestValues");D(this,"resolvedValues");D(this,"persistedExecutionResults");D(this,"lastExecutionResults");D(this,"onAddToSkippedListCallback",null);D(this,"onRemoveFromSkippedListCallback",null);D(this,"onAddEntityCallback",null);D(this,"onRemoveEntityCallback",null);this.entities=a,this.entryPoint=l,this.project=i,this.parentExecution=p,this.localTestValues=new yp(V.UUID.uuid(),this.project),this.resolvedValues=new yp(V.UUID.uuid(),this.project),this.persistedExecutionResults=new yp(V.UUID.uuid(),this.project),this.lastExecutionResults=new yp(V.UUID.uuid(),this.project)}get valueResolutionContext(){return{execution:this,project:this.project,localTestValues:this.localTestValues,resolvedValues:this.resolvedValues,persistedExecutionResults:this.persistedExecutionResults,lastExecutionResults:this.lastExecutionResults}}static injectSearchImplementation(i){Si.searchImplementation=i}skip(i){this.hasEntity(i)&&(this.skipped.includes(i)||(this.skipped.push(i),this.onAddToSkippedListCallback&&this.onAddToSkippedListCallback(i),Vs.includes(i.type)&&[...i.successCalls||[],...i.errorCalls||[],...i.calls||[]].forEach(a=>this.skip(a))))}async schedule(i,a,l){if(this.hasExecuted(i))return null;if(tr.includes(i.type))return this.executeBranch(i,l,a);if(Ps.includes(i.type)){if(i.calledBy.every(t=>this.hasExecuted(t)||!this.hasEntity(t)))return this.executeBranch(i,l,a);this.scheduled.includes(i)||this.scheduled.push(i)}return null}mergeExernalValuesWithInternalInputs(i,a){const l=[];return[...nr,...tr].includes(a.type)?l.push(...a.inputs):pr.includes(a.type)&&l.push(...a.outputs),l.map(t=>{var v;let y=i.find(T=>T.valueOwner.id===t.id);if(y)return y;if(!y&&tr.includes(a.type)&&(y=i.find(T=>{var w;return((w=T.valueOwner.declaration)==null?void 0:w.id)===t.id})),y){const T=(v=y.value)==null?void 0:v.clone(null);return T==null||T.setStandaloneParent(t),{...y,valueOwner:t,value:T||null,inheritanceLink:{sources:[y],target:t}}}return bn.includes(t.type)?by(t,this.valueResolutionContext):il(t,this.valueResolutionContext)}).reduce((t,y)=>{const v=on(y==null?void 0:y.valueOwner,this.project),T=y?[y]:[];return v.forEach(w=>{var N,U,K;if(w.id===(y==null?void 0:y.valueOwner.id))return;const A=et(w.getDataType(null),w,this.project);A==null||A.metaSync({value:(N=y==null?void 0:y.value)==null?void 0:N.value},null),A==null||A.setValueAsTypeList(((U=y==null?void 0:y.value)==null?void 0:U.valueAsTypeList)||null),A==null||A.setValueAsTypeSingle(((K=y==null?void 0:y.value)==null?void 0:K.valueAsTypeSingle)||null);const P={...y,valueOwner:w,value:A};T.push(P)}),[...t,...T]},[]).sort((t,y)=>t.valueOwner.index-y.valueOwner.index)}inheritValuesFromContext(i){this.localTestValues=i.localTestValues,this.resolvedValues=i.resolvedValues,this.persistedExecutionResults=i.persistedExecutionResults}async executeInternalCall(i,a,l,p={}){var y,v;const t={...Qa,...p};try{let T={value:Je.Success,error:null,results:[]};if(a.sort((w,A)=>w.valueOwner.index-A.valueOwner.index),Object.values(Li).includes(i.declaration.id)){const w=Si.builtInFunctionImplementations[i.declaration.id];w?T=await w(i,a):Re.warn(`No implementation found for built-in function: ${i.declaration.id}`)}else{Re.log("executeFunctionCall",a),T=await this.executeDetachedFullFunctionDeclarationLogic(i.declaration,a,l,t);const w=i.outputs.map(P=>{var J,se,te,ce;const N=[...P.declaration.getCounterparts(),P.declaration];Re.log("declarations",N);const U=T.results.find(ie=>N.some(z=>ie.valueOwner.id===z.id));Re.log("resultValue",U);const K=P==null?void 0:P.getDataType(null),k=et(K,P,l);return K!=null&&K.asType?Array.isArray((J=U==null?void 0:U.value)==null?void 0:J.valueAsType)?k==null||k.setValueAsTypeList((se=U==null?void 0:U.value)==null?void 0:se.valueAsTypeList):k==null||k.setValueAsTypeSingle(((te=U==null?void 0:U.value)==null?void 0:te.valueAsType)||null):k==null||k.metaSync({value:(ce=U==null?void 0:U.value)==null?void 0:ce.value},null),{valueOwner:P,type:Te.ExecutionResult,inheritanceLink:null,value:k}});let A=null;if(T.error){Re.warn("Raw error executing entity: ",T.error);const P=(y=i.error)==null?void 0:y.getDataType(null),N=et(P||null,i.error,l);P!=null&&P.asType?N==null||N.setValueAsTypeSingle(T.error):N==null||N.metaSync({value:T.error},null),A={valueOwner:i.error,type:Te.ExecutionResult,inheritanceLink:null,value:N}}return{value:T.value,entity:i,error:A,results:w}}return{value:Je.Error,entity:i,error:null,results:[]}}catch(T){Re.warn("Operation execution error: ",T);let w=null;if(i.error){const A=(v=i.error)==null?void 0:v.getDataType(null),P=et(A,i.error,l);A!=null&&A.asType?P==null||P.setValueAsTypeSingle(T):P==null||P.metaSync({value:T},null),w={valueOwner:i.error,type:Te.ExecutionResult,inheritanceLink:null,value:P}}return{value:Je.Error,entity:i,error:w,results:[]}}}static async executeOperation(i,a,l){var p,t;try{let y={value:Je.Success,error:null,results:[]};a.sort((w,A)=>w.valueOwner.index-A.valueOwner.index),i.declaration.implementation&&(y=await i.declaration.implementation(i,a));const v=i.outputs.map((w,A)=>{const P=w==null?void 0:w.getDataType(null),N=et(P,w,l);return P!=null&&P.asType?N==null||N.setValueAsTypeSingle(y.results[A]):N==null||N.metaSync({value:y.results[A]},null),{valueOwner:w,type:Te.ExecutionResult,inheritanceLink:null,value:N}});let T=null;if(y.error&&i.error){Re.warn("Raw error executing entity: ",y.error);const w=((p=i.error)==null?void 0:p.getDataType(null))||null,A=et(w,i.error,l);w!=null&&w.asType?A==null||A.setValueAsTypeSingle(y.error):A==null||A.metaSync({value:y.error},null),T={valueOwner:i.error,type:Te.ExecutionResult,inheritanceLink:null,value:A}}return{value:y.value,entity:i,error:T,results:v}}catch(y){Re.warn("Operation execution error: ",y);let v=null;if(i.error){const T=(t=i.error)==null?void 0:t.getDataType(null),w=et(T,i.error,l);T!=null&&T.asType?w==null||w.setValueAsTypeSingle(y):w==null||w.metaSync({value:y},null),v={valueOwner:i.error,type:Te.ExecutionResult,inheritanceLink:null,value:w}}return{value:Je.Error,entity:i,error:v,results:[]}}}async executeSearch(i,a,l){var p;Re.log("executeSearch");try{let t={value:Je.Success,error:null,results:[]};const y=i.outputs[0];if(!y)return{value:Je.Success,entity:i,error:null,results:[]};let v={value:null,valueOwner:y,type:Te.ExecutionResult,inheritanceLink:null};const T=await Si.searchImplementation(i,a),w=y==null?void 0:y.getDataType(null),A=et(w,y,l);return A==null||A.metaSync({value:T.data},null),v.value=A,{value:t.value,entity:i,error:null,results:[v]}}catch(t){if(Re.warn(`Search node execution error: ${t}`),!i.error)return{value:Je.Error,entity:i,error:null,results:[]};const y=(p=i.error)==null?void 0:p.getDataType(null),v=et(y,i.error,l);return v==null||v.metaSync({value:t},null),{value:Je.Error,entity:i,error:{valueOwner:i.error,type:Te.ExecutionResult,inheritanceLink:null,value:v},results:[]}}}async executeLoop(i,a,l,p={}){var y,v;const t={...Qa,...p};try{let T={value:Je.Success,error:null,results:[]};const w=a.map(k=>{var J,se;return((J=k==null?void 0:k.value)==null?void 0:J.valueAsType)||((se=k==null?void 0:k.value)==null?void 0:se.value)});Re.log("Loops' resolved raw input-map values: ",w);let A={};i.getUniqueReturnDeclarations().forEach(k=>{const J=i.body.inputs.find(ie=>re(ie,l)===Ci.fromReturnDeclarationToBodyArgumentDeclarationName(k)),se=k==null?void 0:k.getDataType(null),te=et(se,J,l);se!=null&&se.asType?te==null||te.setValueAsTypeList([]):te==null||te.metaSync({value:[]},null),this.lastExecutionResults.writeValue(J,te);const ce={value:te,valueOwner:J,type:Te.ExecutionResult,inheritanceLink:null};A[J.id]=ce});let N={value:Je.Success,entity:i.body,error:null,results:[]};switch(Re.log("aggregateListResults: ",A),i.declaration.id){case ve.loop["counted-loop"].id:{const k=w[0];Re.log("maxCount",k);let J=1;for(Re.log("currentIteration",J);J<=k&&J<=50;){Re.log("iterating",J);const se=i.body.inputs.map(ce=>{if(ce===i.currentIterationNumberArgumentDeclaration){Re.log("Argument is body iteration number");const ie=i.currentIterationNumberArgumentDeclaration.getDataType(null),he=el(ie),z=this.lastExecutionResults.readValue(ce.id);if(z){z.metaSync({value:J},null),Re.log("existingValue",J),this.lastExecutionResults.writeValue(ce,z);const oe={value:z,valueOwner:i.currentIterationNumberArgumentDeclaration,type:Te.ExecutionResult,inheritanceLink:null};return A[ce.id]=oe,oe}const Y={id:V.UUID.uuid(),type:f.LiteralValue,autogeneration:null,version:V.UUID.uuid(),createdAt:new Date().toISOString(),author:V.sessionAuthor,deleted:!1,previousVersion:null,value:J,valueAsTypeSingle:null,valueAsTypeList:null,parent:null,name:he,standaloneParent:ce.toReference()},ue=zt(Y,l);this.lastExecutionResults.writeValue(ce,ue);const H={value:ue,valueOwner:i.currentIterationNumberArgumentDeclaration,type:Te.ExecutionResult,inheritanceLink:null};return Re.log("newDynamicValue",J),A[ce.id]=H,H}else return A[ce.id]}).filter(ce=>!!ce);Re.log("Loop executes body with inputs: ",se);const te=await this.executeFullFunctionDeclarationLogic(i.body,se,t);if(N=te,N.results.forEach(ce=>{var Y,ue,H,oe;if(ce.valueOwner.type!==f.ReturnDeclaration)return;const ie=i.body.inputs.find(be=>re(be,l)===Ci.fromReturnDeclarationToBodyArgumentDeclarationName(ce.valueOwner)),z=[...((ue=(Y=A==null?void 0:A[ie.id])==null?void 0:Y.value)==null?void 0:ue.value)||[],((H=ce==null?void 0:ce.value)==null?void 0:H.value)||null];(oe=A[ie.id].value)==null||oe.metaSync({value:z},null),this.lastExecutionResults.writeValue(ie,A[ie.id].value)}),[Je.Error,Je.Break,Je.Return].includes(te.value))break;Re.log("Loop iteration finished"),J++}break}case ve.loop["manual-flow-loop"].id:{let k=1;for(;k<=50;){const J=i.body.inputs.map(te=>{if(te===i.currentIterationNumberArgumentDeclaration){const ce=this.lastExecutionResults.readValue(te.id);if(ce){ce.metaSync({value:k},null),this.lastExecutionResults.writeValue(te,ce);const Y={value:ce,valueOwner:te,type:Te.ExecutionResult,inheritanceLink:null};return A[te.id]=Y,Y}const ie=i.currentIterationNumberArgumentDeclaration.getDataType(null),he=et(ie,te,l);he==null||he.metaSync({value:k},null),this.lastExecutionResults.writeValue(te,he);const z={value:he,valueOwner:te,type:Te.ExecutionResult,inheritanceLink:null};return Re.log("newDynamicValue",k),z}else return A[te.id]}).filter(te=>!!te);Re.log("Loop executes body");const se=await this.executeFullFunctionDeclarationLogic(i.body,J,t);if(N=se,N.results.forEach(te=>{var z,Y,ue;if(te.valueOwner.type!==f.ReturnDeclaration)return;const ce=i.body.inputs.find(H=>re(H,l)===Ci.fromReturnDeclarationToBodyArgumentDeclarationName(te.valueOwner)),he=[...(z=A[ce.id].value)==null?void 0:z.value,((Y=te.value)==null?void 0:Y.value)||null];(ue=A[ce.id].value)==null||ue.metaSync({value:he},null),this.lastExecutionResults.writeValue(ce,A[ce.id].value)}),[Je.Error,Je.Break,Je.Return].includes(se.value))break;k++}break}case ve.loop["list-loop"].id:{const k=w[0];let J=1;const se=k;for(let te=0;te<se.length;te++){const ce=se[te],ie=i.body.inputs.map(z=>{if(z===i.currentIterationNumberArgumentDeclaration){const Y=this.lastExecutionResults.readValue(z.id);if(Y)return Y.metaSync({value:J},null),this.lastExecutionResults.writeValue(z,Y),{value:Y,valueOwner:z,type:Te.ExecutionResult,inheritanceLink:null};const ue=i.currentIterationNumberArgumentDeclaration.getDataType(null),H=et(ue,z,l);return H==null||H.metaSync({value:J},null),this.lastExecutionResults.writeValue(z,H),{value:H,valueOwner:i.currentIterationNumberArgumentDeclaration,type:Te.ExecutionResult,inheritanceLink:null}}else if(z===i.currentValueArgumentDeclaration){const Y=i.currentValueArgumentDeclaration.getDataType(null),ue=el(Y),H=this.lastExecutionResults.readValue(z.id);if(H)return H.metaSync({value:ce},null),this.lastExecutionResults.writeValue(z,H),{value:H,valueOwner:z,type:Te.ExecutionResult,inheritanceLink:null};const oe={id:V.UUID.uuid(),type:f.LiteralValue,autogeneration:null,version:V.UUID.uuid(),createdAt:new Date().toISOString(),author:V.sessionAuthor,deleted:!1,previousVersion:null,value:ce,valueAsTypeSingle:null,valueAsTypeList:null,parent:null,name:ue,standaloneParent:z.toReference()},be=zt(oe,l);return this.lastExecutionResults.writeValue(z,be),{value:be,valueOwner:i.currentValueArgumentDeclaration,type:Te.ExecutionResult,inheritanceLink:null}}else return A[z.id]}).filter(z=>!!z);Re.log("Loop executes body");const he=await this.executeFullFunctionDeclarationLogic(i.body,ie,t);if(N=he,N.results.forEach(z=>{var oe,be,Me;if(z.valueOwner.type!==f.ReturnDeclaration)return;const Y=i.body.inputs.find(De=>re(De,l)===Ci.fromReturnDeclarationToBodyArgumentDeclarationName(z.valueOwner)),H=[...(oe=A[Y.id].value)==null?void 0:oe.value,((be=z.value)==null?void 0:be.value)||null];(Me=A[Y.id].value)==null||Me.metaSync({value:H},null),this.lastExecutionResults.writeValue(Y,A[Y.id].value)}),[Je.Error,Je.Break,Je.Return].includes(he.value))break;J++}break}case ve.loop["object-keys-loop"].id:{const k=w[0];let J=1;const se=k?Object.keys(k):[];Re.log("iterableListOfValues: ",se);for(let te=0;te<se.length;te++){const ce=se[te],ie=i.body.inputs.map(z=>{if(z===i.currentIterationNumberArgumentDeclaration){const Y=this.lastExecutionResults.readValue(z.id);if(Y)return Y.metaSync({value:J},null),this.lastExecutionResults.writeValue(z,Y),{value:Y,valueOwner:z,type:Te.ExecutionResult,inheritanceLink:null};const ue=i.currentIterationNumberArgumentDeclaration.getDataType(null),H=et(ue,z,l);return H==null||H.metaSync({value:J},null),this.lastExecutionResults.writeValue(z,H),{value:H,valueOwner:i.currentIterationNumberArgumentDeclaration,type:Te.ExecutionResult,inheritanceLink:null}}else if(z===i.currentValueArgumentDeclaration){const Y=i.currentValueArgumentDeclaration.getDataType(null),ue=el(Y),H=this.lastExecutionResults.readValue(z.id);if(H)return H.metaSync({value:ce},null),this.lastExecutionResults.writeValue(z,H),{value:H,valueOwner:z,type:Te.ExecutionResult,inheritanceLink:null};const oe={id:V.UUID.uuid(),type:f.LiteralValue,autogeneration:null,version:V.UUID.uuid(),createdAt:new Date().toISOString(),author:V.sessionAuthor,deleted:!1,previousVersion:null,value:ce,valueAsTypeSingle:null,valueAsTypeList:null,parent:null,name:ue,standaloneParent:z.toReference()},be=zt(oe,l);return this.lastExecutionResults.writeValue(z,be),{value:be,valueOwner:i.currentValueArgumentDeclaration,type:Te.ExecutionResult,inheritanceLink:null}}else return A[z.id]}).filter(z=>!!z);Re.log("Loop executes body");const he=await this.executeFullFunctionDeclarationLogic(i.body,ie,t);if(N=he,N.results.forEach(z=>{var oe,be,Me;if(z.valueOwner.type!==f.ReturnDeclaration)return;const Y=i.body.inputs.find(De=>re(De,l)===Ci.fromReturnDeclarationToBodyArgumentDeclarationName(z.valueOwner)),H=[...(oe=A[Y.id].value)==null?void 0:oe.value,((be=z.value)==null?void 0:be.value)||null];(Me=A[Y.id].value)==null||Me.metaSync({value:H},null),this.lastExecutionResults.writeValue(Y,A[Y.id].value)}),[Je.Error,Je.Break,Je.Return].includes(he.value))break;J++}break}case ve.loop["object-values-loop"].id:{const k=w[0];let J=1;const se=k?Object.values(k):[];for(let te=0;te<se.length;te++){const ce=se[te],ie=i.body.inputs.map(z=>{if(z===i.currentIterationNumberArgumentDeclaration){const Y=this.lastExecutionResults.readValue(z.id);if(Y)return Y.metaSync({value:J},null),this.lastExecutionResults.writeValue(z,Y),{value:Y,valueOwner:z,type:Te.ExecutionResult,inheritanceLink:null};const ue=i.currentIterationNumberArgumentDeclaration.getDataType(null),H=et(ue,z,l);return H==null||H.metaSync({value:J},null),this.lastExecutionResults.writeValue(z,H),{value:H,valueOwner:i.currentIterationNumberArgumentDeclaration,type:Te.ExecutionResult,inheritanceLink:null}}else if(z===i.currentValueArgumentDeclaration){const Y=i.currentValueArgumentDeclaration.getDataType(null),ue=el(Y),H=this.lastExecutionResults.readValue(z.id);if(H)return H.metaSync({value:ce},null),this.lastExecutionResults.writeValue(z,H),{value:H,valueOwner:z,type:Te.ExecutionResult,inheritanceLink:null};const oe={id:V.UUID.uuid(),type:f.LiteralValue,autogeneration:null,version:V.UUID.uuid(),createdAt:new Date().toISOString(),author:V.sessionAuthor,deleted:!1,previousVersion:null,value:ce,valueAsTypeSingle:null,valueAsTypeList:null,parent:null,name:ue,standaloneParent:z.toReference()},be=zt(oe,l);return this.lastExecutionResults.writeValue(z,be),{value:be,valueOwner:i.currentValueArgumentDeclaration,type:Te.ExecutionResult,inheritanceLink:null}}else return A[z.id]}).filter(z=>!!z);Re.log("Loop executes body"),Re.log("HEREEE Object.values() resolvedBodyInputsForCurrentIteration",ie);const he=await this.executeFullFunctionDeclarationLogic(i.body,ie,t);if(N=he,N.results.forEach(z=>{var oe,be,Me;if(z.valueOwner.type!==f.ReturnDeclaration)return;const Y=i.body.inputs.find(De=>re(De,l)===Ci.fromReturnDeclarationToBodyArgumentDeclarationName(z.valueOwner)),H=[...(oe=A[Y.id].value)==null?void 0:oe.value,((be=z.value)==null?void 0:be.value)||null];(Me=A[Y.id].value)==null||Me.metaSync({value:H},null),this.lastExecutionResults.writeValue(Y,A[Y.id].value)}),[Je.Error,Je.Break,Je.Return].includes(he.value))break;J++}break}case ve.loop["string-loop"].id:{const k=w[0];let J=1;const se=k.split("");for(let te=0;te<se.length;te++){const ce=se[te],ie=i.body.inputs.map(z=>{if(z===i.currentIterationNumberArgumentDeclaration){const Y=this.lastExecutionResults.readValue(z.id);if(Y)return Y.metaSync({value:J},null),this.lastExecutionResults.writeValue(z,Y),{value:Y,valueOwner:z,type:Te.ExecutionResult,inheritanceLink:null};const ue=i.currentIterationNumberArgumentDeclaration.getDataType(null),H=et(ue,z,l);return H==null||H.metaSync({value:J},null),this.lastExecutionResults.writeValue(z,H),{value:H,valueOwner:i.currentIterationNumberArgumentDeclaration,type:Te.ExecutionResult,inheritanceLink:null}}else if(z===i.currentValueArgumentDeclaration){const Y=i.currentValueArgumentDeclaration.getDataType(null),ue=el(Y),H=this.lastExecutionResults.readValue(z.id);if(H)return H.metaSync({value:ce},null),this.lastExecutionResults.writeValue(z,H),{value:H,valueOwner:z,type:Te.ExecutionResult,inheritanceLink:null};const oe={id:V.UUID.uuid(),type:f.LiteralValue,autogeneration:null,version:V.UUID.uuid(),createdAt:new Date().toISOString(),author:V.sessionAuthor,deleted:!1,previousVersion:null,value:ce,valueAsTypeSingle:null,valueAsTypeList:null,parent:null,name:ue,standaloneParent:z.toReference()},be=zt(oe,l);return this.lastExecutionResults.writeValue(z,be),{value:be,valueOwner:i.currentValueArgumentDeclaration,type:Te.ExecutionResult,inheritanceLink:null}}else return A[z.id]}).filter(z=>!!z);Re.log("Loop executes body");const he=await this.executeFullFunctionDeclarationLogic(i.body,ie,t);if(N=he,N.results.forEach(z=>{var oe,be,Me;if(z.valueOwner.type!==f.ReturnDeclaration)return;const Y=i.body.inputs.find(De=>re(De,l)===Ci.fromReturnDeclarationToBodyArgumentDeclarationName(z.valueOwner)),H=[...(oe=A[Y.id].value)==null?void 0:oe.value,((be=z.value)==null?void 0:be.value)||null];(Me=A[Y.id].value)==null||Me.metaSync({value:H},null),this.lastExecutionResults.writeValue(Y,A[Y.id].value)}),[Je.Error,Je.Break,Je.Return].includes(he.value))break;J++}break}}let U=[];i.body.inputs.forEach(k=>{var se;const J=A[k.id];if(J){const te=(se=J.value)==null?void 0:se.clone(null),ce=i.outputs.find(ie=>ie.declaration&&Ci.fromLoopOutputDeclarationToBodyArgumentDeclarationName(ie.declaration)===re(k,l));if(!ce)return;U.push({valueOwner:ce,type:Te.ExecutionResult,inheritanceLink:null,value:te})}}),T={value:[Je.Error,Je.Return].includes(N.value)?N.value:Je.Success,error:null,results:U};let K=null;if(T.error&&i.error){Re.warn("Raw error executing entity: ",T.error);const k=(y=i.error)==null?void 0:y.getDataType(null),J=et(k||null,i.error,l);k!=null&&k.asType?J==null||J.setValueAsTypeSingle(T.error):J==null||J.metaSync({value:T.error},null),K={valueOwner:i.error,type:Te.ExecutionResult,inheritanceLink:null,value:J}}return{value:T.value,entity:i,error:K,results:T.results}}catch(T){if(Re.warn("Error executing loop: ",T),i.error){const w=(v=i.error)==null?void 0:v.getDataType(null),A=et(w,i.error,l);return w!=null&&w.asType?A==null||A.setValueAsTypeSingle(T):A==null||A.metaSync({value:T},null),{value:Je.Error,entity:i,error:{valueOwner:i.error,type:Te.ExecutionResult,inheritanceLink:null,value:A},results:[]}}else return{value:Je.Error,entity:i,error:null,results:[]}}}async executeFunctionCall(i,a,l,p={}){var y,v;const t={...Qa,...p};try{let T={value:Je.Success,error:null,results:[]};Re.log("executeFunctionCall",a),T=await this.executeDetachedFullFunctionDeclarationLogic(i.declaration,a,l,t);const w=i.outputs.map(P=>{var J,se,te,ce;const N=[...P.declaration.getCounterparts(),P.declaration];Re.log("declarations",N);const U=T.results.find(ie=>N.some(z=>ie.valueOwner.id===z.id));Re.log("resultValue",U);const K=P==null?void 0:P.getDataType(null),k=et(K,P,l);return K!=null&&K.asType?Array.isArray((J=U==null?void 0:U.value)==null?void 0:J.valueAsType)?k==null||k.setValueAsTypeList((se=U==null?void 0:U.value)==null?void 0:se.valueAsTypeList):k==null||k.setValueAsTypeSingle(((te=U==null?void 0:U.value)==null?void 0:te.valueAsType)||null):k==null||k.metaSync({value:(ce=U==null?void 0:U.value)==null?void 0:ce.value},null),{valueOwner:P,type:Te.ExecutionResult,inheritanceLink:null,value:k}});let A=null;if(T.error&&i.error){Re.warn("Raw error executing entity: ",T.error);const P=(y=i.error)==null?void 0:y.getDataType(null),N=et(P||null,i.error,l);P!=null&&P.asType?N==null||N.setValueAsTypeSingle(T.error):N==null||N.metaSync({value:T.error},null),A={valueOwner:i.error,type:Te.ExecutionResult,inheritanceLink:null,value:N}}return{value:T.value,entity:i,error:A,results:w}}catch(T){if(Re.log("error: ",T),!i.error)return{value:Je.Error,entity:i,error:null,results:[]};const w=(v=i.error)==null?void 0:v.getDataType(null),A=et(w,i.error,l);return w!=null&&w.asType?A==null||A.setValueAsTypeSingle(T):A==null||A.metaSync({value:T},null),{value:Je.Error,entity:i,error:{valueOwner:i.error,type:Te.ExecutionResult,inheritanceLink:null,value:A},results:[]}}}static async executeCondition(i,a){var p,t,y,v,T,w,A,P,N,U,K,k,J,se,te,ce,ie,he,z,Y,ue,H,oe,be,Me,De,Oe,Ce,Ke,Ue,Qe,yt,Qt,fr,Pr,Zr;let l=!1;switch(i.declaration.id){case kr.Empty:{l=!((t=(p=a[0])==null?void 0:p.value)!=null&&t.value);break}case kr.NotEmpty:{l=!!((v=(y=a[0])==null?void 0:y.value)!=null&&v.value);break}case vr.Equal:{if([X.String,X.Number,X.Boolean,X.Null,X.Enum,X.Date,X.UUID].includes((w=(T=a[0])==null?void 0:T.value)==null?void 0:w.name)){l=((P=(A=a[0])==null?void 0:A.value)==null?void 0:P.value)===((U=(N=a[1])==null?void 0:N.value)==null?void 0:U.value);break}if(((k=(K=a[0])==null?void 0:K.value)==null?void 0:k.name)===X.KeyValue||((se=(J=a[0])==null?void 0:J.value)==null?void 0:se.name)===X.Untyped){const Xr=(ce=(te=a[0])==null?void 0:te.value)==null?void 0:ce.value,qi=(he=(ie=a[1])==null?void 0:ie.value)==null?void 0:he.value;l=JSON.stringify(Xr)===JSON.stringify(qi);break}break}case vr.NotEqual:{if([X.String,X.Number,X.Boolean,X.Null,X.Enum,X.Date,X.UUID].includes((Y=(z=a[0])==null?void 0:z.value)==null?void 0:Y.name)){l=((H=(ue=a[0])==null?void 0:ue.value)==null?void 0:H.value)!==((be=(oe=a[1])==null?void 0:oe.value)==null?void 0:be.value);break}if(((De=(Me=a[0])==null?void 0:Me.value)==null?void 0:De.name)===X.Untyped||((Ce=(Oe=a[0])==null?void 0:Oe.value)==null?void 0:Ce.name)===X.KeyValue){const Xr=(Ue=(Ke=a[0])==null?void 0:Ke.value)==null?void 0:Ue.value,qi=(yt=(Qe=a[1])==null?void 0:Qe.value)==null?void 0:yt.value;l=JSON.stringify(Xr)!==JSON.stringify(qi);break}break}case vr.MoreThanOrEqual:{l=((fr=(Qt=a[0])==null?void 0:Qt.value)==null?void 0:fr.value)>=((Zr=(Pr=a[1])==null?void 0:Pr.value)==null?void 0:Zr.value);break}}return{value:l?Je.Success:Je.Error,entity:i,error:null,results:[]}}async executeDetachedFullFunctionDeclarationLogic(i,a,l,p={}){const t={...Qa,...p,onBeforeEntityExecution:(T,w,A)=>{var P;return((P=p==null?void 0:p.onBeforeEntityExecution)==null?void 0:P.call(p,T,w,{...A,detached:!0}))||Promise.resolve()},onEntityExecuted:(T,w,A)=>{var P;return((P=p==null?void 0:p.onEntityExecuted)==null?void 0:P.call(p,T,w,{...A,detached:!0}))||Promise.resolve()}},y=new Si(l,[i,...ky(i)],i,this);y.inheritValuesFromContext(this),Re.log("functionBodyExecution",a);const v=await y.execute(t,a);return Re.log("executeDetachedFullFunctionDeclarationLogic result: ",v),v}async executeFullFunctionDeclarationLogic(i,a,l={}){const p={...Qa,...l},t=ky(i);t.forEach(A=>{this.addEntity(A)}),t.reduce((A,P)=>pr.includes(P.type)?[...A,...P.outputs]:nr.includes(P.type)&&P.type!==f.Condition?[...A,...P.outputs,...P.inputs]:P.type===f.Condition?[...A,...P.inputs]:A,[]).forEach(A=>{this.lastExecutionResults.removeValue(A.id)});const v=await this.executeBranch(i,p,a),w=i.getUniqueReturnDeclarations().reduce((A,P)=>{const N=v==null?void 0:v.results.find(U=>U.valueOwner.id===P.id);return N?[...A,N]:A},[]);return{...v||{},value:(v==null?void 0:v.value)||Je.Success,entity:i,error:(v==null?void 0:v.error)||null,results:w}}static async executeEntryPointEntity(i,a){return{value:Je.Success,entity:i,error:null,results:a}}static async executeVariable(i,a){return{value:Je.Success,entity:i,error:null,results:[a]}}static async executeReturnStatement(i,a){return{value:i.throws?Je.Error:Je.Return,entity:i,error:null,results:a}}static async executeContinueStatement(i,a){return{value:Je.Continue,entity:i,error:null,results:a}}static async executeBreakStatement(i,a){return{value:Je.Break,entity:i,error:null,results:a}}mergeValues(i,a){const l=[];for(let p=0;p<a.length;p++)i!=null&&i[p]?l.push(i[p]):l.push(a[p]);return l}async executeEntity(i,a=[],l={}){var y,v,T,w,A,P,N,U,K,k,J,se,te,ce,ie,he,z;const p={...Qa,...l},t={detached:!1};switch(Re.log("Executing entity: ",i),Re.log("Exec ent with inputs: ",a),i.type){case f.Condition:{const Y=this.mergeExernalValuesWithInternalInputs(a,i);return await((y=p.onBeforeEntityExecution)==null?void 0:y.call(p,i,Y,t)),Si.executeCondition(i,Y)}case f.InternalCall:{const Y=this.mergeExernalValuesWithInternalInputs(a,i);return await((v=p.onBeforeEntityExecution)==null?void 0:v.call(p,i,Y,t)),this.executeInternalCall(i,Y,this.project)}case f.Operation:{const Y=this.mergeExernalValuesWithInternalInputs(a,i);return await((T=p.onBeforeEntityExecution)==null?void 0:T.call(p,i,Y,t)),Si.executeOperation(i,Y,this.project)}case f.VariableInstance:case f.VariableDeclaration:{i.id==="ad7eae6d-c691-40a5-943b-f72008cdc3b0"&&Re.log("Execute variable declaration resolveNextValue");let Y=by(i,this.valueResolutionContext);const ue=Ti(i),H=ue.getDataType(null);if(H!=null&&H.isObject()){let Me={};if(((w=H==null?void 0:H.entity)==null?void 0:w.type)===f.DefinitionEntity&&(Me={...Me,...H.entity.getActiveRawDefaultValue()}),Y!=null&&Y.value)lr((A=Y==null?void 0:Y.value)==null?void 0:A.value)&&(Me={...Me,...(P=Y==null?void 0:Y.value)==null?void 0:P.value}),Y==null||Y.value.metaSync({value:Me},null);else{const De=et(H,i,this.project);De==null||De.metaSync({value:Me},null),Y={valueOwner:ue,type:Te.ExecutionResult,inheritanceLink:null,value:De}}this.lastExecutionResults.writeValue(ue,Y.value),Re.log("Propagating value to inputs: ",ue.inputs.map(De=>re(De,this.project))),ue.inputs.forEach(De=>{var Oe;if(((Oe=De.declaration)==null?void 0:Oe.type)===f.Property&&De.declaration.static){const Ce=this.lastExecutionResults.readValue(De.declaration.id),Ke=re(De,this.project),Ue=Or(Ke);if(Ce)Ce.metaSync({value:Me[Ue]},null),this.lastExecutionResults.writeValue(De.declaration,Ce);else{const Qe=et(De.getDataType(null),De,this.project);Qe==null||Qe.metaSync({value:Me[Ue]},null),Re.log(`Created new value for static property ${Ke}: `,Me[Ue]),this.lastExecutionResults.writeValue(De.declaration,Qe)}}})}else this.lastExecutionResults.writeValue(ue,Y==null?void 0:Y.value);const oe=[],be=(N=Y==null?void 0:Y.value)!=null&&N.value&&lr((U=Y.value)==null?void 0:U.value)?((K=Y.value)==null?void 0:K.value)||{}:{};return i.outputs.map(Me=>{const De=Or(re(Me,this.project)),Oe=be[De],Ce=et(Me.getDataType(null),Me,this.project);Ce==null||Ce.metaSync({value:Oe},null);const Ke={value:Ce,valueOwner:Me,type:Te.ExecutionResult,inheritanceLink:Y?{sources:[Y],target:i}:null};oe.push(Ke)}),Y.type=Te.ExecutionResult,{value:Je.Success,entity:i,error:null,results:[Y,...oe]}}case f.FunctionCall:{const Y=this.mergeExernalValuesWithInternalInputs(a,i);return await((k=p.onBeforeEntityExecution)==null?void 0:k.call(p,i,Y,t)),this.executeFunctionCall(i,Y,this.project)}case f.FunctionDeclaration:{const Y=this.mergeExernalValuesWithInternalInputs(a,i);return await((J=p.onBeforeEntityExecution)==null?void 0:J.call(p,i,Y,t)),Si.executeEntryPointEntity(i,Y)}case f.Search:{const Y=this.mergeExernalValuesWithInternalInputs(a,i);return await((se=p.onBeforeEntityExecution)==null?void 0:se.call(p,i,Y,t)),this.executeSearch(i,Y,this.project)}case f.Loop:{const Y=this.mergeExernalValuesWithInternalInputs(a,i);return await((te=p.onBeforeEntityExecution)==null?void 0:te.call(p,i,Y,t)),this.executeLoop(i,Y,this.project,p)}case f.ReturnStatement:{const Y=this.mergeExernalValuesWithInternalInputs(a,i);return await((ce=p.onBeforeEntityExecution)==null?void 0:ce.call(p,i,Y,t)),Si.executeReturnStatement(i,Y)}case f.ContinueStatement:{const Y=this.mergeExernalValuesWithInternalInputs(a,i);return await((ie=p.onBeforeEntityExecution)==null?void 0:ie.call(p,i,Y,t)),Si.executeContinueStatement(i,Y)}case f.BreakStatement:{const Y=this.mergeExernalValuesWithInternalInputs(a,i);return await((he=p.onBeforeEntityExecution)==null?void 0:he.call(p,i,Y,t)),Si.executeBreakStatement(i,Y)}case f.GlobalEvent:{const Y=this.mergeExernalValuesWithInternalInputs(a,i);return await((z=p.onBeforeEntityExecution)==null?void 0:z.call(p,i,Y,t)),Si.executeEntryPointEntity(i,Y)}default:return{value:Je.Error,entity:i,error:null,results:[]}}}storeLastExecutionValues(i){i.error&&i.error.valueOwner&&this.lastExecutionResults.writeValue(i.error.valueOwner,i.error.value),Re.log("result.results: ",i.results),i.results.forEach(a=>{const l=on(a.valueOwner,this.project);a.value?l.forEach(p=>{this.lastExecutionResults.writeValue(p,a.value)}):l.forEach(p=>{this.lastExecutionResults.removeValue(p.id)})})}async executeBranch(i,a={},l=[]){var T;const p={...Qa,...a},t={detached:!1};if(Re.log("executeBranch: ",l),!this.hasEntity(i))return Re.log("Skipping entity (not part of test): ",i),null;if(this.hasSkipped(i))return Re.log("Skipping entity (already skipped): ",i),null;this.addToExecutingList(i),this.hasScheduled(i)&&this.removeScheduled(i),Re.log("Executing branch: ",i),Re.log("values: ",l);const v=await this.executeEntity(i,l,p);if(this.removeFromExecutingList(i),this.addToAlreadyExecutedList(i),this.storeLastExecutionValues(v),await((T=p.onEntityExecuted)==null?void 0:T.call(p,i,v,t)),v.value===Je.Success){const w=(i.successCalls||i.calls||[]).filter(K=>this.hasEntity(K));(i.errorCalls||[]).forEach(K=>{this.skip(K)});let P=[];const N=(await Promise.all(w.map(K=>this.schedule(K,v.results,p)))).filter(K=>!!K),U=N.filter(K=>!!K).find(K=>K.value===Je.Error||K.value===Je.Return||K.value===Je.Break||K.value===Je.Continue);return U||(P=[...P,...N],v)}else if(v.value===Je.Error){const w=(i.errorCalls||[]).filter(K=>this.hasEntity(K));(i.successCalls||i.calls||[]).forEach(K=>{this.skip(K)});let P=[];const N=(await Promise.all(w.map(K=>this.schedule(K,v.results,p)))).filter(K=>!!K),U=N.filter(K=>!!K).find(K=>K.value===Je.Error||K.value===Je.Return||K.value===Je.Break||K.value===Je.Continue);return U||(P=[...P,...N],v)}else{if(v.value===Je.Return)return v;if(v.value===Je.Break)return v;if(v.value===Je.Continue)return v}return v}async execute(i={},a=[]){const l={...Qa,...i};this.state="running";const p=await this.executeBranch(this.entryPoint,l,a);return this.state="finished-success",p}addEntity(i){var a;this.entities.includes(i)||(this.entities.push(i),(a=this.onAddEntityCallback)==null||a.call(this,i))}addEntities(i){i.forEach(a=>this.addEntity(a))}removeEntity(i){var a;if(i!==this.entryPoint){const l=this.entities.indexOf(i);l>-1&&(this.entities.splice(l,1),(a=this.onRemoveEntityCallback)==null||a.call(this,i))}}hasEntity(i){var p,t,y;if(this.entities.includes(i))return!0;if(((p=i.parent)==null?void 0:p.type)===f.FunctionDeclaration&&((y=(t=i.parent)==null?void 0:t.parent)==null?void 0:y.type)===f.DefinitionEntity)return this.entities.includes(i.parent);const a=or(i);if(!a)return!1;const l=a.type===f.Loop&&i.parent===a.body?a.body:null;return l?this.entities.includes(l)||this.entities.includes(a):this.entities.includes(a)}removeScheduled(i){const a=this.scheduled.indexOf(i);a>-1&&this.scheduled.splice(a,1)}hasScheduled(i){return!!this.scheduled.includes(i)}hasSkipped(i){return!!this.skipped.includes(i)}hasExecuted(i){return!!this.executed.includes(i)}hasEntityWithId(i){const a=this.project.get(i);return a?this.hasEntity(a):!1}onAddToSkippedList(i){this.onAddToSkippedListCallback=i}onAddEntity(i){this.onAddEntityCallback=i}onRemoveFromSkippedList(i){this.onRemoveFromSkippedListCallback=i}onRemoveEntity(i){this.onRemoveEntityCallback=i}addToExecutingList(i){this.executing.includes(i)||this.executing.push(i)}removeFromExecutingList(i){const a=this.executing.indexOf(i);a>-1&&this.executing.splice(a,1)}removeFromAlreadyExecutedList(i){const a=this.executed.indexOf(i);a>-1&&this.executed.splice(a,1)}removeFromSkippedList(i){var l;const a=this.skipped.indexOf(i);a>-1&&(this.skipped.splice(a,1),(l=this.onRemoveFromSkippedListCallback)==null||l.call(this,i))}addToAlreadyExecutedList(i){this.executed.includes(i)||this.executed.push(i)}addToSkippedList(i){var a;this.skipped.includes(i)||(this.skipped.push(i),(a=this.onAddToSkippedListCallback)==null||a.call(this,i))}};D(Si,"searchImplementation",async()=>({data:null,error:"Search module not implemented"})),D(Si,"builtInFunctionImplementations",{[Li.AbortExecution]:async(i,a)=>({value:Je.Error,entity:i,error:null,results:[]}),[Li.SavePersistedEntity]:async(i,a)=>({value:Je.Error,entity:i,error:null,results:[]}),[Li.DeletePersistedEntity]:async(i,a)=>({value:Je.Error,entity:i,error:null,results:[]})});let sA=Si;function hme(d){var u,i;if(d.isList)return"list";if(((u=d.entity)==null?void 0:u.type)===f.DefinitionEntity)return"definition-entity";switch((i=d.entity)==null?void 0:i.name){case X.Number:return"number";case X.String:return"text";case X.Boolean:return"boolean";case X.UUID:return"uuid";case X.Date:return"date-time";default:return"definition-entity"}}const nA={[f.PrimitiveEntity]:{singular:"Primitive",plural:"Primitives",shortSingular:"Primitive",shortPlural:"Primitives"},[f.DefinitionEntity]:{singular:"Definition",plural:"Definitions",shortSingular:"Definition",shortPlural:"Definitions"},[f.BuiltInBaseEntity]:{singular:"Base",plural:"Bases",shortSingular:"Base definition",shortPlural:"Base definitions"},[f.Property]:{singular:"Property",plural:"Properties",shortSingular:"Property",shortPlural:"Properties"},[f.FunctionDeclaration]:{singular:"Custom trigger",plural:"Custom triggers",shortSingular:"Trigger",shortPlural:"Triggers"},[f.FunctionCall]:{singular:"Execute trigger",plural:"Execute trigger",shortSingular:"Execute",shortPlural:"Execute"},[f.GlobalEvent]:{singular:"System trigger",plural:"System triggers",shortSingular:"Trigger",shortPlural:"Triggers"},[f.Project]:{singular:"Project",plural:"Projects",shortSingular:"Project",shortPlural:"Projects"},[f.VariableDeclaration]:{singular:"Variable",plural:"Variables",shortSingular:"Variable",shortPlural:"Variables"},[f.VariableInstance]:{singular:"Variable",plural:"Variables",shortSingular:"Variable",shortPlural:"Variables"},[f.Condition]:{singular:"Condition",plural:"Conditions",shortSingular:"Condition",shortPlural:"Conditions"},[f.Operation]:{singular:"Operation",plural:"Operations",shortSingular:"Operation",shortPlural:"Operations"},[f.ReturnStatement]:{singular:"Termination",plural:"Terminations",shortSingular:"Termination",shortPlural:"Terminations"},[f.InstalledProject]:{singular:"Installed project",plural:"Installed projects",shortSingular:"Project",shortPlural:"Projects"},[f.Search]:{singular:"Search",plural:"Searches",shortSingular:"Search",shortPlural:"Searches"},[f.Loop]:{singular:"Loop",plural:"Loops",shortSingular:"Loop",shortPlural:"Loops"},[f.ActionDescriptor]:{singular:"Action descriptor",plural:"Action descriptors",shortSingular:"Action descriptor",shortPlural:"Action descriptors"},[f.InternalCall]:{singular:"Internal call",plural:"Internal calls",shortSingular:"Internal call",shortPlural:"Internal calls"},[f.BreakStatement]:{singular:"Loop exit",plural:"Loop exists",shortSingular:"Exit",shortPlural:"Exits"},[f.ContinueStatement]:{singular:"Next iteration",plural:"Next iterations",shortSingular:"Next",shortPlural:"Nexts"},[f.ArgumentDeclaration]:{singular:"Input definition",plural:"Input definitions",shortSingular:"Input",shortPlural:"Inputs"},[f.InputMap]:{singular:"Input",plural:"Inputs",shortSingular:"Input",shortPlural:"Inputs"},[f.OutputMap]:{singular:"Output",plural:"Outputs",shortSingular:"Output",shortPlural:"Outputs"},[f.ReturnDeclaration]:{singular:"Output definition",plural:"Output definitions",shortSingular:"Output",shortPlural:"Outputs"},[f.ValueDescriptor]:{singular:"Value descriptor",plural:"Value descriptors",shortSingular:"Value descriptor",shortPlural:"Value descriptors"}};function aA(d){const u=Sy(d);if(!u){const a=jd(d);if(a.includes(Ne.HTTP_ENDPOINT))return"HTTP endpoint";if(a.includes(Ne.PERSISTED_ENTITY))return"Persisted entity";if(a.includes(Ne.CRON_JOB))return"Scheduled execution";if(a.includes(Ne.RELATIONAL_DATABASE))return"Relational database"}if(u){let a="Extension of "+re(u,u.project)+" entity",l=Id(a);const p=jd(d);return p.includes(Ne.HTTP_ENDPOINT)?"HTTP endpoint"+(l?", "+l:""):p.includes(Ne.PERSISTED_ENTITY)?"Persisted entity"+(l?", "+l:""):p.includes(Ne.CRON_JOB)?"Scheduled execution"+(l?", "+l:""):p.includes(Ne.RELATIONAL_DATABASE)?"Relational database"+(l?", "+l:""):a}let i="";return d.abstract&&(i="Template "),d.static&&(i+=i?" single copy ":"Single copy "),i?i+"definition":"Definition"}function Wx(d){return d.parent.type===f.DefinitionEntity||d.parent.type===f.InstalledProject?"Internal action of "+re(d.parent,d.project):d.parent.type===f.Loop?"Action repeated on every iteration":"Internal action of entity"}function oA(d){return KA(d)?Wx(d):"Custom trigger"}function yme(d){var u;switch(d.type){case f.DefinitionEntity:return aA(d);case f.FunctionDeclaration:return oA(d)}return(u=nA[d.type])==null?void 0:u.singular}function mme(d){var u;switch(d.type){case f.DefinitionEntity:return aA(d);case f.FunctionDeclaration:return oA(d)}return(u=nA[d.type])==null?void 0:u.singular}const lA=4e4,Hx=280,vme=300,dA=65,Nd=32,Ay=39,Yx=26,zx=49,Iy=44,Eme=35,wy=52,uA=10,ba=uA*2,Ry=38,gy=90,cA=270,Xx=lA/2+120,Qx=lA/2+180;function eF(d){let i=Nd+Iy+Ry+uA;const a=[...d.inputs];return a.length&&(i+=ba,a.forEach(()=>{i+=Yx})),{height:i,width:280}}function tF(d){let i=dA;const a=[];if([f.DefinitionEntity].includes(d.type)){const v=[...d.suggestedProperties||[],...d.properties||[]];v.length&&(i+=ba,v.forEach(T=>{i+=T.static?zx:Ay}))}if([f.DefinitionEntity,f.InstalledProject,f.Loop].includes(d.type)){const v=[...(d==null?void 0:d.suggestedMethods)||[],...d.methods||[],...d.functions||[],...d.body?[d.body]:[]];v.length&&(i+=ba,v.forEach(T=>{const w=eF(T);i+=w.height}))}nr.includes(d.type)?(ot.includes(d.type)?a.push(...(d.usedInputs||[]).flatMap(v=>[v])||[]):a.push(...(d.inputs||[]).flatMap(v=>[v])||[]),d.error&&(i+=wy)):[f.ReturnStatement,f.BreakStatement,f.ContinueStatement].includes(d.type)?(a.push(...d.outputs||[]),d.throws&&(i+=wy)):d.type===f.Condition&&(a.push(d.inputs[0]),d.inputs[1]&&a.push(d.inputs[1]));const l=a.length;l&&(i+=l*Ay,i+=ba);const p=[];if(d.type===f.FunctionDeclaration||d.type===f.GlobalEvent?p.push(...d.inputs||[]):nr.includes(d.type)&&(ot.includes(d.type)?p.push(...d.usedOutputs||[]):p.push(...d.outputs||[])),ot.includes(d.type)){d.readsValue&&(i+=ba,i+=Iy),d.writesValues.length&&(i+=ba,i+=Iy),d.internalCalls.length&&d.usedInternalCalls.forEach(()=>i+=wy+ba);const v=d.getDataType(null);(!v||v.inferred)&&(i+=Ry)}const t=p.length;return t&&(i+=t*Ay,i+=ba),[f.DefinitionEntity,f.FunctionDeclaration,f.ReturnStatement,f.BreakStatement,f.ContinueStatement].includes(d.type)&&(i+=Ry),{height:i,width:280}}function Ip(d){return`${d.split("-").map((a,l)=>l===0?a.charAt(0).toUpperCase()+a.slice(1):a.toLowerCase()).join(" ")}.`}function Tme(d){switch(d.code){case ae.AbstractEntityWithNonAbstractMethods:return"This template entity has non-template actions";case ae.AbstractEntityWithNonAbstractProperties:return"This template entity has non-template properties";case ae.IncorrectEntityImplementation:return"This entity incorrectly implements a template entity";case ae.IncorrectMethodImplementation:return"This action incorrectly implements the template action it's based on";case ae.IncorrectPropertyImplementation:return"This property incorrectly implements the template property it's based on";case ae.AbstractMethodInNonAbstractEntity:return"This action is a template action in a non-template entity";case ae.AbstractPropertyInNonAbstractEntity:return"This property is a template property in a non-template entity";case ne.MethodOverwritesOtherSiblingWithSameName:return"An action in this entity overwrites an action in the template entity with the same name";case ne.PropertyOverwritesOtherSiblingWithSameName:return"A property in this entity overwrites a property in the template entity with the same name";case ae.MissingMethodImplementation:return"This entity is missing an action implementation from the template entity";case ae.MissingPropertyImplementation:return"This entity is missing a property implementation from the template entity";case ne.NameNotUniqueInScope:return"Invalid name. There is another entity with the same name in the same scope";case ae.NoProperties:return"This entity has no properties, so it doesn't do anything";case ae.NonStaticPropertyInStaticEntity:return"This property is not static in a static entity";case ae.StaticEntityWithNonStaticProperties:return"This static entity has non-static properties";case ae.ReadingFromIncompatibleType:return"This entity reads data from a value of a different data type";case ae.WritingToIncompatibleType:return"This entity writes data to a value of a different data type";case ae.ScopeWithoutLogic:return"This action has no logic, so it doesn't do anything";case ae.NonStaticPropertyImplementsStatic:return"This property is static in a non-static entity";case ae.PropertyImplementsIncompatibleType:return"This property implements a property of a different data type";case ae.PropertyImplementsNonAbstact:return"This property implements a non-template property";case ae.StaticPropertyImplementsNonStatic:return"This static property implements a non-static property";case ae.VariableCallsOthersAndHasInternalCall:return"This variable calls other entities while being used to execute internal logic";case ae.VariableHasInputsAndInternalCall:return"This variable has inputs while being used to execute internal logic";case ae.VariableHasOutputsAndInternalCall:return"This variable has outputs while being used to execute internal logic";case ae.VariableIsCalledAndHasInternalCall:return"This variable is called while being used to execute internal logic";case ne.InternalCallDeclarationIsNotFunctionDeclaration:return"This internal call is not an action";case ne.InternalCallDeclarationNotFoundInParentDatatypeEntity:return"This internal call is not found in the parent entity";case ne.InternalCallParentDeclarationEntityInvalidType:return"This internal call parent entity is not a data type";case ne.InternalCallParentMissingDataType:return"This internal call parent entity has no data type";case ne.UnreachableEntity:return"This entity is unreachable";case ae.DisconnectedCallableEntity:return"This entity is disconnected and won't be executed by anything after publishing";default:return Ip(d.code)}}function bme(d){switch(d.code){case ae.AbstractEntityWithNonAbstractMethods:return"Non-template actions";case ae.AbstractEntityWithNonAbstractProperties:return"Non-template properties";case ae.IncorrectEntityImplementation:return"Incorrect implementation";case ae.IncorrectMethodImplementation:return"Incorrect action implementation";case ae.IncorrectPropertyImplementation:return"Incorrect property implementation";case ae.AbstractMethodInNonAbstractEntity:return"Template action in non-template entity";case ae.AbstractPropertyInNonAbstractEntity:return"Template property in non-template entity";case ne.MethodOverwritesOtherSiblingWithSameName:return"Action overwrite";case ne.PropertyOverwritesOtherSiblingWithSameName:return"Property overwrite";case ae.MissingMethodImplementation:return"Missing action";case ae.MissingPropertyImplementation:return"Missing property";case ne.NameNotUniqueInScope:return"Duplicate name";case ae.NoProperties:return"No properties";case ae.NonStaticPropertyInStaticEntity:return"Non-static property";case ae.StaticEntityWithNonStaticProperties:return"Non-static properties";case ae.ReadingFromIncompatibleType:return"Read from different type";case ae.WritingToIncompatibleType:return"Write to different type";case ae.ScopeWithoutLogic:return"No logic";case ae.NonStaticPropertyImplementsStatic:return"Invalid static property";case ae.PropertyImplementsIncompatibleType:return"Incompatible data type";case ae.PropertyImplementsNonAbstact:return"Non-template property";case ae.StaticPropertyImplementsNonStatic:return"Non-static property";case ae.VariableCallsOthersAndHasInternalCall:return"Bad internal call";case ae.VariableHasInputsAndInternalCall:return"Bad internal call";case ae.VariableHasOutputsAndInternalCall:return"Bad internal call";case ae.VariableIsCalledAndHasInternalCall:return"Bad internal call";case ne.InternalCallDeclarationIsNotFunctionDeclaration:return"Declaration not an action";case ne.InternalCallDeclarationNotFoundInParentDatatypeEntity:return"Declaration not found in parent";case ne.InternalCallParentDeclarationEntityInvalidType:return"Invalid parent declaration type";case ne.InternalCallParentMissingDataType:return"Parent has no data type";case ne.InternalCallDeclarationNotInParentDatatypeEntity:return"Declaration not in parent";case ne.UnreachableEntity:return"Unreachable entity";case ae.DisconnectedCallableEntity:return"Disconnected entity";default:return Ip(d.code)}}function Ame(d){switch(d.code){case ae.AbstractEntityWithNonAbstractMethods:return`${re(d.entity,d.entity.project)} has non-template actions`;case ae.AbstractEntityWithNonAbstractProperties:return`${re(d.entity,d.entity.project)} has non-template properties`;case ae.IncorrectEntityImplementation:return`${re(d.entity,d.entity.project)} incorrectly implements template`;case ae.IncorrectMethodImplementation:return`${re(d.entity,d.entity.project)} incorrectly implements the template`;case ae.IncorrectPropertyImplementation:return`${re(d.entity,d.entity.project)} incorrectly implements the template`;case ae.AbstractMethodInNonAbstractEntity:return`${re(d.entity,d.entity.project)} can't be a template`;case ae.AbstractPropertyInNonAbstractEntity:return`${re(d.entity,d.entity.project)} can't be a template`;case ne.MethodOverwritesOtherSiblingWithSameName:return`${re(d.entity,d.entity.project)} overwrites action`;case ne.PropertyOverwritesOtherSiblingWithSameName:return`${re(d.entity,d.entity.project)} overwrites property`;case ae.MissingMethodImplementation:return`${re(d.entity,d.entity.project)} is missing action`;case ae.MissingPropertyImplementation:return`${re(d.entity,d.entity.project)} is missing property`;case ne.NameNotUniqueInScope:return`${re(d.entity,d.entity.project)} name is not unique`;case ae.NoProperties:return`${re(d.entity,d.entity.project)} has no properties`;case ae.NonStaticPropertyInStaticEntity:return`${re(d.entity,d.entity.project)} has non-static property`;case ae.StaticEntityWithNonStaticProperties:return`${re(d.entity,d.entity.project)} has non-static properties`;case ae.ReadingFromIncompatibleType:return`${re(d.entity,d.entity.project)} reads from different type`;case ae.WritingToIncompatibleType:return`${re(d.entity,d.entity.project)} writes to different type`;case ae.ScopeWithoutLogic:return`${re(d.entity,d.entity.project)} has no logic`;case ae.NonStaticPropertyImplementsStatic:return`${re(d.entity,d.entity.project)} has invalid static property`;case ae.PropertyImplementsIncompatibleType:return`${re(d.entity,d.entity.project)} has incompatible data type`;case ae.PropertyImplementsNonAbstact:return`${re(d.entity,d.entity.project)} has non-template property`;case ae.StaticPropertyImplementsNonStatic:return`${re(d.entity,d.entity.project)} has non-static property`;case ae.VariableCallsOthersAndHasInternalCall:return`${re(d.entity,d.entity.project)} has bad internal call`;case ae.VariableHasInputsAndInternalCall:return`${re(d.entity,d.entity.project)} has bad internal call`;case ae.VariableHasOutputsAndInternalCall:return`${re(d.entity,d.entity.project)} has bad internal call`;case ae.VariableIsCalledAndHasInternalCall:return`${re(d.entity,d.entity.project)} has bad internal call`;case ne.InternalCallDeclarationIsNotFunctionDeclaration:return`${re(d.entity,d.entity.project)} has declaration that is not an action`;case ne.InternalCallDeclarationNotFoundInParentDatatypeEntity:return`${re(d.entity,d.entity.project)} has declaration that is not found in parent`;case ne.InternalCallParentDeclarationEntityInvalidType:return`${re(d.entity,d.entity.project)} has invalid parent declaration type`;case ne.InternalCallParentMissingDataType:return`${re(d.entity,d.entity.project)}'s parent has no data type`;case ne.InternalCallDeclarationNotInParentDatatypeEntity:return`${re(d.entity,d.entity.project)} has declaration that is not in parent`;case ne.UnreachableEntity:return`${re(d.entity,d.entity.project)} is unreachable`;case ae.DisconnectedCallableEntity:return`${re(d.entity,d.entity.project)} is not executed by any entity`;default:return`${re(d.entity,d.entity.project)} Error: ${Ip(d.code)}`}}function Ime(d){var u,i,a,l;switch(d.code){case ae.AbstractEntityWithNonAbstractMethods:return`${re(d.entity,d.entity.project)} has non-template actions`;case ae.AbstractEntityWithNonAbstractProperties:return`${re(d.entity,d.entity.project)} has non-template properties`;case ae.IncorrectEntityImplementation:return`${re(d.entity,d.entity.project)} incorrectly implements the template entity`;case ae.IncorrectMethodImplementation:return`${re(d.entity,d.entity.project)} incorrectly implements the template action it's based on`;case ae.IncorrectPropertyImplementation:return`${re(d.entity,d.entity.project)} incorrectly implements the template property it's based on`;case ae.AbstractMethodInNonAbstractEntity:return`${re(d.entity,d.entity.project)} is a template action in a non-template entity`;case ae.AbstractPropertyInNonAbstractEntity:return`${re(d.entity,d.entity.project)} is a template property in a non-template entity`;case ne.MethodOverwritesOtherSiblingWithSameName:return`${re(d.entity,d.entity.project)} overwrites an action in the template entity`;case ne.PropertyOverwritesOtherSiblingWithSameName:return`${re(d.entity,d.entity.project)} overwrites a property in the template entity`;case ae.MissingMethodImplementation:return`${re(d.entity,d.entity.project)} is missing an action implementation from the template entity`;case ae.MissingPropertyImplementation:return`${re(d.entity,d.entity.project)} is missing a property implementation from the template entity`;case ne.NameNotUniqueInScope:return`${re(d.entity,d.entity.project)} has a duplicate name in the same scope`;case ae.NoProperties:return`${re(d.entity,d.entity.project)} has no properties, so it doesn't do anything`;case ae.NonStaticPropertyInStaticEntity:return`${re(d.entity,d.entity.project)} has a non-static property in a static entity`;case ae.StaticEntityWithNonStaticProperties:return`${re(d.entity,d.entity.project)} has non-static properties in a static entity`;case ae.ReadingFromIncompatibleType:return`${re(d.entity,d.entity.project)} reads data from a value of a different data type`;case ae.WritingToIncompatibleType:return`${re(d.entity,d.entity.project)} writes data to a value of a different data type`;case ae.ScopeWithoutLogic:return`${re(d.entity,d.entity.project)} has no logic`;case ae.NonStaticPropertyImplementsStatic:return`${re(d.entity,d.entity.project)} has a static property in a non-static entity`;case ae.PropertyImplementsIncompatibleType:return`${re(d.entity,d.entity.project)} implements a property of a different data type`;case ae.PropertyImplementsNonAbstact:return`${re(d.entity,d.entity.project)} implements a non-template property`;case ae.StaticPropertyImplementsNonStatic:return`${re(d.entity,d.entity.project)} has a static property in a non-static entity`;case ae.VariableCallsOthersAndHasInternalCall:return`${re(d.entity,d.entity.project)} calls other entities while being used to execute internal logic`;case ae.VariableHasInputsAndInternalCall:return`${re(d.entity,d.entity.project)} has inputs while being used to execute internal logic`;case ae.VariableHasOutputsAndInternalCall:return`${re(d.entity,d.entity.project)} has outputs while being used to execute internal logic`;case ae.VariableIsCalledAndHasInternalCall:return`${re(d.entity,d.entity.project)} is called while being used to execute internal logic`;case ne.InternalCallDeclarationIsNotFunctionDeclaration:return`${re(d.entity,d.entity.project)} has a declaration that is not an action`;case ne.InternalCallDeclarationNotFoundInParentDatatypeEntity:return`${re(d.entity,d.entity.project)} has a declaration that is not found in ${(u=d.entity.parent.getDataType(null))!=null&&u.entity?re((i=d.entity.parent.getDataType(null))==null?void 0:i.entity,d.entity.project):"the variable's data-type entity"}`;case ne.InternalCallParentDeclarationEntityInvalidType:return`${re(d.entity,d.entity.project)} is part of a variable whos data-type entity can't have actions`;case ne.InternalCallParentMissingDataType:return`${re(d.entity,d.entity.project)} is part of a variable with no data-type entity`;case ne.InternalCallDeclarationNotInParentDatatypeEntity:return`${re(d.entity,d.entity.project)} has a declaration doesn't belong to ${(a=d.entity.parent.getDataType(null))!=null&&a.entity?re((l=d.entity.parent.getDataType(null))==null?void 0:l.entity,d.entity.project):"the variable's data-type entity"}`;case ne.UnreachableEntity:return`${re(d.entity,d.entity.project)} is unreachable`;case ae.DisconnectedCallableEntity:return`${re(d.entity,d.entity.project)} is disconnected and won't be executed by anything after publishing`;default:return`${re(d.entity,d.entity.project)} Error: ${Ip(d.code)}`}}var pA=(d=>(d.ValuesAlreadyConnected="values-already-connected",d.CannotReadMoreThanOneValue="cannot-read-more-than-one-value",d.CannotReadValueFromChildren="cannot-read-value-from-children",d.CannotWriteValueToChildren="cannot-write-value-to-children",d.CannotBeCalledByChildren="cannot-be-called-by-children",d.ExecutionsAlreadyConnected="executions-already-connected",d.DataTypesNotCompatible="data-types-not-compatible",d.CannotCallAncestor="cannot-call-ancestor",d.CannotConnectToItself="cannot-connect-to-itself",d.CannotWriteValueToAncestor="cannot-write-value-to-ancestor",d.NotInScope="not-in-scope",d.IsNotValueWrittingEntity="is-not-value-writting-entity",d.IsNotValueReadingEntity="is-not-value-reading-entity",d.ContinueOrBreakStatementCalledFromOutsideLoop="continue-or-break-statement-called-from-outside-loop",d.ElementInLoopBodyCallingOutsideLoop="element-in-loop-body-calling-outside-loop",d.CallerIsInHigherScope="caller-is-in-higher-scope",d.CallerIsInLowerScope="caller-is-in-lower-scope",d.CallIsInHigherScope="call-is-in-higher-scope",d.CallIsInLowerScope="call-is-in-lower-scope",d.OtherIncompatibleScopeReason="other-incompatible-scope-reason",d.SiblingInternalCallAlreadyUsedInParentVariable="sibling-internal-call-already-used-in-parent-variable",d))(pA||{});const wme=Object.values(pA);var fA=(d=>(d.NotPartOfOngoingTest="not-part-of-ongoing-test",d.CannotBeAddedToTest="cannot-be-added-to-test",d))(fA||{});const Rme=Object.values(fA);var hA=(d=>(d.Suggestion="suggestion",d.CanvasGloballyDisabled="canvas-globally-disabled",d.CannotInteractWithInputInVariableWithInternalCalls="cannot-interact-with-input-in-variable-with-internal-calls",d.CannotInteractWithOutputInVariableWithInternalCalls="cannot-interact-with-output-in-variable-with-internal-calls",d))(hA||{});const gme=Object.values(hA);function _me(d,u){const i=[...d,...u];return Array.from(new Set(i))}function Dme(d,u){const i=[...d,...u],a=Array.from(new Set(i));return{hasChanged:a.length!==d.length,reasons:a}}function Ome(d,u){const i=d.filter(l=>!u.includes(l));return{hasChanged:i.length!==d.length,reasons:i}}function Cme(d,u){return d.find(i=>i.entity.id===u)||null}function rF(d){return d.filter((u,i)=>d.indexOf(u)===i)}class ci{constructor(u,i,a=null,l){D(this,"ids",[]);D(this,"entity");D(this,"entityCardHeight");D(this,"entityCardWidth");D(this,"index");D(this,"childEntities",[]);D(this,"children",[]);D(this,"parents",[]);D(this,"calculationEntryPoint");D(this,"_onlyEntities",null);D(this,"_changeSet",null);if(this.index=i,this.entity=u,this.calculationEntryPoint=a||this,this===this.calculationEntryPoint&&!l)throw new Error("Change set must be provided for the calculation entry point");this.calculateCardSize(),this.getSortedChildren()}static autoGenerateLayout(u,i,a){const l=Xx-cA-Hx,p=Qx-gy-dA;u.metaSync({x:u.x||l,y:u.y||p},i);const t=new ci(u,0,null,i);t._onlyEntities=a||[],t.ids=["0"];const y=[];t.next(T=>{y.push(...T)}),ci.recursivelyAssembleChildrenAreas(y),t.resolveChildrenOverlaps();const v=t.flattenChildEntities();return t._onlyEntities?v.filter(T=>(t._onlyEntities||[]).includes(T)):v}static recursivelyAssembleChildrenAreas(u){const i=[];u.forEach(a=>{a.next(l=>{i.push(...l)})}),i.length>0&&ci.recursivelyAssembleChildrenAreas(i)}get onlyEntities(){return this.calculationEntryPoint._onlyEntities}get changeSet(){return this.calculationEntryPoint._changeSet}set changeSet(u){this.calculationEntryPoint._changeSet=u}findAreaInChildrenFromEntity(u){if(this.entity===u)return this;const i=this.children.find(l=>l.entity===u);return i||this.children.reduce((l,p)=>l||p.findAreaInChildrenFromEntity(u),null)}findAreaFromEntity(u){if(this.entity===u)return this;const i=this.calculationEntryPoint.children,a=i.find(p=>p.entity===u);return a||i.reduce((p,t)=>p||t.findAreaInChildrenFromEntity(u),null)}addParent(u){if(!this.parents.includes(u)){const i=ci.resolveIds(u,this.index);this.ids.push(...i),this.parents.push(u)}}static resolveIds(u,i){return u?u.ids.map(a=>`${a}-${i}`):[`${i}`]}getSortedChildren(){if(this.entity.collapsed){this.childEntities=[];return}const u=dn(this.entity,!0);if(this.entity.type===f.Project){const i=[],a=[],l=[];u.forEach(t=>{if(f.DefinitionEntity===t.type){a.push(t);return}else if(tr.includes(t.type)){l.push(t);return}i.push(t)});const p=i.sort((t,y)=>{const v=!!My(t,y).length,T=dn(t),w=dn(y);return v?0:T.length&&!w.length?-1:!T.length&&w.length?1:0}).filter(t=>!no(t).length);this.childEntities=[...a,...l,...p]}else{const i=[],a=[],l=[],p=[],t=[];Vs.includes(this.entity.type)&&jy(this.entity).forEach(T=>{if(ot.includes(T.type)){l.push(T);return}const w=or(T);i.push(w)}),Dr.includes(this.entity.type)&&a.push(...this.entity.detachedChildren);const y=u.filter(v=>{const T=i.includes(v);return T||l.includes(v)||a.includes(v)?!1:ot.includes(v.type)?(l.push(v),!1):Ps.includes(v.type)&&!T?(p.push(v),!1):v.type===f.DefinitionEntity?(t.push(v),!1):!0});i.sort((v,T)=>ll(v,T)?-1:0),p.sort((v,T)=>ll(v,T)?-1:0),l.sort((v,T)=>LA(v,T)?1:LA(T,v)?-1:0),this.childEntities=[...t,...i,...p,...y,...l,...a]}}calculateCardSize(){const u=tF(this.entity);this.entityCardWidth=u.width,this.entityCardHeight=u.height}static getBoundriesOfTwoAreas(u,i){return{top:Math.min(u.top,i.top),left:Math.min(u.left,i.left),bottom:Math.max(u.bottom,i.bottom),right:Math.max(u.right,i.right)}}static getBoundriedOfCombinedAreas(u,i){const a=u.filter(p=>!i.includes(p));return a.reduce((p,t)=>i.includes(t)?p:ci.getBoundriesOfTwoAreas(p,t.fullBranchArea),a[0].fullBranchArea)}getFullAreaUntilAny(u){const i=this.ownEntityPlusBufferArea;return this.children.filter(t=>!u.includes(t)).map(t=>t.getFullAreaUntilAny(u)).reduce((t,y)=>ci.getBoundriesOfTwoAreas(t,y),i)}getFullAreaUntilAreaOrAnyChildren(u){const i=[u,...u.flattenChildren()],a=this.ownEntityPlusBufferArea;return this.children.filter(t=>i.includes(t)).map(t=>t.getFullAreaUntil(u)).reduce((t,y)=>ci.getBoundriesOfTwoAreas(t,y),a)}getFullAreaUntil(u){const i=this.ownEntityPlusBufferArea;return this.children.filter(p=>p!==u).map(p=>p.getFullAreaUntil(u)).reduce((p,t)=>ci.getBoundriesOfTwoAreas(p,t),i)}get fullBranchArea(){const u=this.ownEntityPlusBufferArea;return this.children.map(l=>l.fullBranchArea).reduce((l,p)=>ci.getBoundriesOfTwoAreas(l,p),u)}get ownEntityArea(){return{top:this.entity.y,left:this.entity.x,bottom:this.entity.y+this.entityCardHeight,right:this.entity.x+this.entityCardWidth}}get ownEntityPlusBufferArea(){const u=this.ownEntityArea;return{top:u.top,left:u.left,bottom:u.bottom+gy,right:u.right+cA}}static filterOutRepeatedAreas(u){return u.filter((i,a)=>u.indexOf(i)===a)}getEarliestId(u,i){const a=u.split("-"),l=i.split("-");return a.length<l.length?u:a.length>l.length?i:a.reduce((t,y,v)=>y<l[v]?u:i,u)}getEarliestLevel(){return this.ids.reduce((a,l)=>this.getEarliestId(a,l),this.ids[0]).split("-").length}countColumns(){let u=0;if(this!==this.calculationEntryPoint)u++;else return u;if(!this.parents.length)return u;const a=this.parents.reduce((l,p)=>p.getEarliestLevel()>l.getEarliestLevel()?p:l,this.parents[0]).countColumns();return u+=a,u}getLatestId(u,i){if(u===i)return u;const a=u.split("-"),l=i.split("-");return a.length<l.length?i:a.length>l.length?u:a.reduce((t,y,v)=>y>l[v]?u:i,u)}getLatestLevel(){return this.ids.length===1?this.ids[0].split("-").length:this.ids.reduce((a,l)=>this.getLatestId(a,l),this.ids[0]).split("-").length}smoothPosition(){const u=this.flattenSiblings();if(!u.length&&this.parents.length<=1&&this.children.length){const i=this.centerHeaderVerticallyOverCombinedAllChildrenHeaderHeight();this.parents.forEach(a=>{a!==this.calculationEntryPoint&&a.shiftDownAlone(i)})}else if([...tr].includes(this.entity.type)&&this.children.length)this.centerHeaderVerticallyOverCombinedAllChildrenHeaderHeight();else if(!this.children.length&&this.parents.length>1){const i=u.filter(a=>!this.parents.includes(a));i.length?i.every(l=>{const p=this.countColumns(),t=l.countColumns();return p>t})&&this.centerHeaderVerticallyOverCombinedAllParentsHeaderHeight():i.length||this.centerHeaderVerticallyOverCombinedAllParentsHeaderHeight()}}shiftDownUntilAny(u,i){if(u.includes(this))return u;this.move(this.entity,{y:this.entity.y+i});let a=[...u,this];return this.children.forEach(l=>{if(ci.getEarliestParentInChain(l)!==this)return;const t=Cme(a,l.entity.id);a=ci.filterOutRepeatedAreas([...a]),t||(a=a.filter(v=>v!==l));const y=l.shiftDownUntilAny(a,i);a.push(...y)}),a}shiftRightUntilAny(u,i){u.includes(this)||(this.move(this.entity,{x:this.entity.x+i}),this.children.forEach(a=>{const l=ci.filterOutRepeatedAreas([...this.flattenSiblings(),...u]);ci.getEarliestParentInChain(a)===this&&a.shiftRightUntilAny(l,i)}))}shiftRight(u){this.move(this.entity,{x:this.entity.x+u}),this.children.forEach(i=>{const l=i.flattenSiblings().filter(p=>p!==i);i.shiftRightUntilAny(l,u)})}shiftDownAlone(u){this.move(this.entity,{y:this.entity.y+u})}centerHeaderVerticallyOverCombinedAllParentsHeaderHeight(){const u=this.parents.reduce((l,p)=>{const t=p.ownEntityArea,y=t.top+Nd,v={top:y,left:t.left,bottom:y,right:t.right};return ci.getBoundriesOfTwoAreas(l,v)},{top:1/0,left:1/0,bottom:-1/0,right:-1/0}),a=(u.bottom-u.top)/2-Nd;this.shiftDownAlone(a)}centerHeaderVerticallyOverCombinedAllChildrenHeaderHeight(){const u=this.children.reduce((l,p)=>{const t=p.ownEntityArea,y=t.top+Nd,v={top:y,left:t.left,bottom:y,right:t.right};return ci.getBoundriesOfTwoAreas(l,v)},{top:1/0,left:1/0,bottom:-1/0,right:-1/0}),a=(u.bottom-u.top)/2-Nd;return this.shiftDownAlone(a),a}resolveChildrenOverlaps(){const u=this.flattenChildren();let i=[];u.forEach(a=>{const l=a.adjustVerticallyToAvoidOverlaps();i.push(...l)}),u.forEach(a=>{a.smoothPosition()})}static getEarliestParentInChain(u){let i=u.parents[0];return u.parents.length&&(i=u.parents.sort((a,l)=>{if(!a.ids.length)return-1;if(!l.ids.length)return 1;const p=a.ids.sort((y,v)=>y.length<v.length?-1:0),t=l.ids.sort((y,v)=>y.length<v.length?-1:0);return p[0].length-t[0].length})[0]),i}flattenEarlierSiblings(u=new Set){return u.add(this.entity.id),this.parents.reduce((a,l)=>{if(u.has(l.entity.id))return a;u.add(l.entity.id);const t=l.children.slice(0,l.children.indexOf(this)).reduce((y,v)=>[...y,v,...v.flattenChildren(u)],[]);return[...a,...t]},[])}flattenSiblings(u=new Set){return u.add(this.entity.id),this.parents.reduce((a,l)=>{if(u.has(l.entity.id))return a;u.add(l.entity.id);const t=l.children.filter(y=>y!==this).reduce((y,v)=>[...y,v,...v.flattenChildren(u)],[]);return[...a,...t]},[])}flattenChildren(u=new Set){return this.children.reduce((i,a)=>u.has(a.entity.id)?i:(u.add(a.entity.id),[...i,a,...a.flattenChildren(u)]),[])}flattenParents(u=new Set){return this.parents.reduce((a,l)=>u.has(l.entity.id)?a:(u.add(l.entity.id),[...a,l,...l.flattenParents(u)]),[])}getAreaIfRendered(u){return this.calculationEntryPoint.flattenChildren().find(l=>l.entity.id===u.id)||null}getLowerSiblings(){const u=this.parents.reduce((i,a)=>{const l=a.children.indexOf(this),p=a.children.slice(l+1);return[...i,...p]},[]);return rF(u)}getLowerAreas(){const u=this.getLowerSiblings(),i=this.parents.reduce((a,l)=>[...a,...l.getLowerAreas()],[]);return rF([...u,...i])}adjustVerticallyToAvoidOverlaps(u=[]){const a=ci.getEarliestParentInChain(this).children[this.index-1];if(!a)return u;const l=this.flattenEarlierSiblings(),p=this.flattenParents(),t=[...l,...p,a],T=R(t.flatMap(N=>My(this.entity,N.entity))).filter(N=>N.id!==this.entity.id).map(N=>this.findAreaFromEntity(N)).filter(N=>!!N),w=this.getFullAreaUntilAny(T),A=a.getFullAreaUntilAny(T),P=t.reduce((N,U)=>U===this||U.fullBranchArea.left!==w.left?N:Math.max(N,U.fullBranchArea.bottom),A.bottom);if(w.top<P){const N=P-w.top+gy;return this.shiftDownUntilAny(u,N)}return u}move(u,i){(this.onlyEntities||[]).includes(u)&&u.metaSync(i,this.changeSet)}addChild(u){const i=this.childEntities[u];let a=null;i.x&&i.y?a=this.getAreaIfRendered(i):!i.x&&!i.y&&this.move(i,{x:this.entity.x,y:this.entity.y}),a||(a=new ci(i,u,this.calculationEntryPoint));const l=this.ownEntityPlusBufferArea;this.children.includes(a)||(this.children.push(a),a.addParent(this));const p=a.fullBranchArea;if(p.left<l.right){const t=l.right-p.left;a.shiftRight(t)}return a}flattenChildEntities(u=new Set){return this.children.reduce((i,a)=>u.has(a.entity.id)?i:(u.add(a.entity.id),[...i,a.entity,...a.flattenChildEntities(u)]),[])}next(u){const i=[];this.childEntities.forEach((a,l)=>{const p=this.addChild(l);p&&i.push(p)}),u(i)}}var wp=(d=>(d.Amazon="amazon",d.Google="google",d.Microsoft="microsoft",d))(wp||{}),jr=(d=>(d.RelationalDatabase="relational-database",d.CompiledLocalCodebase="compiled-local-codebase",d.CloudHostedCodebase="cloud-hosted-codebase",d.HttpApi="http-api",d.HttpEndpoint="http-endpoint",d.ServerlessFunction="serverless-function",d))(jr||{}),yA=(d=>(d.Post="post",d.Get="get",d.Acknowledgement="acknowledgment",d.Progress="progress",d.Error="error",d.Complete="complete",d))(yA||{}),ol=(d=>(d.Queued="queued",d.Running="running",d.Success="success",d.Failed="failed",d.CleanedUp="cleaned-up",d.Skipped="skipped",d.AbortedByUser="aborted-by-user",d.UnrecoverableFailure="unrecoverable-failure",d.Reverted="reverted",d.UnpublishingStarted="unpublishing-started",d.Unpublished="unpublished",d))(ol||{}),mA=(d=>(d.Queued="queued",d.Running="running",d.Success="success",d.Failed="failed",d.CleanedUp="cleaned-up",d.UnrecoverableFailure="unrecoverable-failure",d.Reverted="reverted",d.UnpublishingStarted="unpublishing-started",d.Unpublished="unpublished",d))(mA||{}),nt=(d=>(d.ProjectNotFound="project-not-found",d.ProjectPublishRequestAcknowledged="project-publish-request-acknowledged",d.PublicationStepFailedReasonUnknown="publication-step-failed-reason-unknown",d.DeploymentCompleted="deployment-completed",d.DeploymentStarted="deployment-started",d.DeploymentFailed="deployment-failed",d.AllInfrastructureSuccessfullyProvisioned="all-infrastucture-successfully-provisioned",d.RequestPayloadValidationFailed="request-payload-validation-failed",d.ProjectStateValidationFailedMissingName="project-state-validation-failed-missing-name",d.ProjectStateValidationFailedMissingAnyFunctionality="project-state-validation-failed-missing-any-functionality",d.ProjectAlreadyBeingPublished="project-already-being-published",d.BillingSubscriptionUpdateFailed="billing-subscription-update-failed",d.RelationalDatabaseDeploymentStarted="relational-database-deployment-started",d.RelationalDatabaseDeploymentCompleted="relational-database-deployment-completed",d.RelationalDatabaseDeploymentFailed="relational-database-deployment-failed",d.CreatingNewRelationalDatabase="creating-new-relational-database",d.WaitingForPreviousRelationalDatabaseDeployment="waiting-for-previous-relationa-database-deployment",d.RelationalDatabaseAlreadyExists="relational-database-already-exists",d.RelationalDatabaseDeletionStarted="relational-database-deletion-started",d.RelationalDatabaseDeletionCompleted="relational-database-deletion-completed",d.RelationalDatabaseDeletionFailed="relational-database-deletion-failed",d.WaitingForPreviousRelationalDatabaseDeletion="waiting-for-previous-relationa-database-deletion",d.HttpApiDeploymentStarted="http-api-deployment-started",d.HttpApiDeploymentCompleted="http-api-deployment-completed",d.HttpApiDeploymentFailed="http-api-deployment-failed",d.CreatingNewHttpApi="creating-new-http-api",d.HttpApiAlreadyExists="http-api-already-exists",d.HttpApiDeletionStarted="http-api-deletion-started",d.HttpApiDeletionCompleted="http-api-deletion-completed",d.HttpApiDeletionFailed="http-api-deletion-failed",d.WaitingForPreviousHttpApiDeletion="waiting-for-previous-http-api-deletion",d.BusinessLogicCodebaseDeploymentStarted="business-logic-codebase-deployment-started",d.BusinessLogicCodebaseDeploymentCompleted="business-logic-codebase-deployment-completed",d.BusinessLogicCodebaseDeploymentFailed="business-logic-codebase-deployment-failed",d.BundlingCodebaseForDownload="bundling-codebase-for-download",d.UploadingCodebaseToCloudStorage="uploading-codebase-to-cloud-storage",d.UploadingCodebaseToCloudStorageCompleted="uploading-codebase-to-cloud-storage-completed",d.UploadingCodebaseToCloudStorageFailed="uploading-codebase-to-cloud-storage-failed",d.InfrastructureValuesCodebaseInterpolationStarted="infrastructure-values-codebase-interpolation-started",d.InfrastructureValuesCodebaseInterpolationCompleted="infrastructure-values-codebase-interpolation-completed",d.InfrastructureValuesCodebaseInterpolationFailed="infrastructure-values-codebase-interpolation-failed",d.CodeCompilationStarted="code-compilation-started",d.CodeCompilationCompleted="code-compilation-completed",d.CodeCompilationFailed="code-compilation-failed",d.BundleCodebaseStarted="bundle-codebase-started",d.BundleCodebaseCompleted="bundle-codebase-completed",d.BundleCodebaseFailed="bundle-codebase-failed",d.InstallingCodebaseDependenciesStarted="installing-codebase-dependencies-started",d.InstallingCodebaseDependenciesCompleted="installing-codebase-dependencies-completed",d.InstallingCodebaseDependenciesFailed="installing-codebase-dependencies-failed",d.MigrateRelationalDatabaseStarted="migrate-relational-database-started",d.MigrateRelationalDatabaseCompleted="migrate-relational-database-completed",d.MigrateRelationalDatabaseFailed="migrate-relational-database-failed",d))(nt||{}),ln=(d=>(d.CodeCompilation="code-compilation",d.RelationalDatabaseDeployment="relational-database-deployment",d.RelationalDatabaseDeletion="relational-database-deletion",d.HttpApiDeployment="http-api-deployment",d.HttpApiDeletion="http-api-deletion",d.InfrastructureValuesCodebaseInterpolation="infrastructure-values-codebase-interpolation",d.BundleCodebase="bundle-codebase",d.MigrateRelationalDatabase="migrate-relational-database",d.BusinessLogicCodebaseDeployment="business-logic-codebase-deployment",d.CodebaseCleanup="codebase-cleanup",d))(ln||{});jr.CloudHostedCodebase,jr.HttpApi,jr.RelationalDatabase,jr.CloudHostedCodebase,jr.CloudHostedCodebase,jr.RelationalDatabase,jr.CloudHostedCodebase,jr.CloudHostedCodebase;function iF(d){return`project-${d}-http-api`}function sF(d){return`entity-${d}-database`}class nF{constructor(u,i,a,l,p,t,y,v,T){D(this,"stepType");D(this,"id");D(this,"resourceType");D(this,"index");D(this,"dependency",[]);D(this,"lastEvent",null);D(this,"lasEventTimestamp",null);D(this,"status",ol.Queued);D(this,"publicationRun");D(this,"resource");this.stepType=u,this.id=i,this.resourceType=a,this.status=l,this.dependency=p,this.index=t,this.lasEventTimestamp=y,this.publicationRun=v,this.resource=T}toJSON(){return{stepType:this.stepType,id:this.id,resourceType:this.resourceType,index:this.index,status:this.status,dependency:this.dependency,lastEvent:this.lastEvent,resource:{resourceId:this.resource.resourceId,resourceType:this.resource.resourceType,provider:this.resource.provider,details:this.resource.details,status:this.resource.status,name:this.resource.name}}}async update(u){var i,a;this.status=u.status,this.dependency=u.dependency,this.index=u.index,this.stepType=u.stepType,this.resourceType=u.resourceType,this.lastEvent=u.lastEvent,this.id=u.id,(a=this.resource)==null||a.setDetails((i=u.resource)==null?void 0:i.details)}}var aF=(d=>(d.Ready="ready",d.Provisioning="provisioning",d.Queued="queued",d.ProvisioningFailed="provisioning-failed",d.Deleting="deleting",d.DeletingFailed="deleting-failed",d.Deleted="deleted",d))(aF||{});class vA{constructor(u,i,a){D(this,"provisionedBy");D(this,"publicationRun");D(this,"resourceType");D(this,"provider");D(this,"resourceId");D(this,"details",null);D(this,"name",null);D(this,"status","queued");this.publicationRun=u,this.resourceType=i,this.provider=a}setDetails(u){this.details=u}setStatus(u){this.status=u}setProvisionedBy(u){this.provisionedBy=u}}class EA extends vA{constructor(i,a,l,p){super(i,l,p);D(this,"resourceType");D(this,"owners",new Map);D(this,"details",null);D(this,"status","queued");a.forEach(t=>{this.owners.set(t.id,t)}),this.resolveDeterministicResourceId()}resolveDeterministicResourceId(){var i,a;return this.resourceType===jr.HttpApi?this.resourceId=iF(this.publicationRun.project.id):this.resourceType===jr.RelationalDatabase&&(this.resourceId=sF((a=(i=Array.from(this.owners.values()))==null?void 0:i[0])==null?void 0:a.id)),this.resourceId}}class TA extends vA{constructor(i,a,l){super(i,a,l);D(this,"resourceType");D(this,"details",null);D(this,"status","queued");this.resolveDeterministicResourceId()}resolveDeterministicResourceId(){return this.resourceType===jr.CompiledLocalCodebase?this.resourceId=`compiled-codebase--${this.publicationRun.project.id}--${this.publicationRun.project.version}--${this.publicationRun.id}`:this.resourceType===jr.CloudHostedCodebase&&(this.resourceId=`cloud-hosted-codebase--${this.publicationRun.project.id}--${this.publicationRun.project.version}`),this.resourceId}}class $me{constructor(u,i){D(this,"id");D(this,"projectAutoIncrementPublicationCount");D(this,"projectPublishedSemanticVersion");D(this,"projectVersion");D(this,"projectId");D(this,"cloudProvider");D(this,"triggeredBy");D(this,"createdAt");D(this,"updatedAt");D(this,"status");D(this,"steps",[]);D(this,"editor");D(this,"explicitResources",new Map);D(this,"implicitGlobalResources",new Map);D(this,"finalGlobalEvent",null);D(this,"finalStatus",null);this.id=u.id,this.projectAutoIncrementPublicationCount=u.projectAutoIncrementPublicationCount,this.projectPublishedSemanticVersion=u.projectPublishedSemanticVersion,this.projectVersion=u.projectVersion,this.projectId=u.projectId,this.cloudProvider=u.cloudProvider,this.triggeredBy=u.triggeredBy,this.createdAt=u.createdAt,this.updatedAt=u.updatedAt,this.status=u.status,this.editor=i}get project(){return this.editor.project}getInfraTypes(u){return this.steps.filter(i=>u.includes(i.resourceType))}getStepsTypes(u){return this.steps.filter(i=>u.includes(i.stepType))}toIds(u){return u.map(i=>i.id)}getResourceForEntity(u){const i=Array.from(this.explicitResources.values()).find(a=>a.owners.has(u.id));return i||null}async init(){await this.initResources()}async initResources(){this.implicitGlobalResources.set(jr.CompiledLocalCodebase,new TA(this,jr.CompiledLocalCodebase,wp.Amazon)),this.implicitGlobalResources.set(jr.CloudHostedCodebase,new TA(this,jr.CloudHostedCodebase,wp.Amazon));const u=this.project.entities.filter(a=>os(a,Ne.HTTP_ENDPOINT)),i=this.project.entities.filter(a=>os(a,Ne.RELATIONAL_DATABASE));if(i.length&&i.forEach(a=>{const l=new EA(this,[a],jr.RelationalDatabase,wp.Amazon);this.explicitResources.set(l.resourceId,l)}),u.length){const a=new EA(this,u,jr.HttpApi,wp.Amazon);this.explicitResources.set(a.resourceId,a)}}setSteps(u,i){u.forEach(a=>{this.addStep(a,i)}),this.editor.events.emit(nt.ProjectPublishRequestAcknowledged,{})}addStep(u,i){const a=u.dependency||[];if(a.length){const p=a.filter(t=>!this.steps.find(y=>y.id===t));if(p.length)throw new Error(`Missing dependencies: ${p.join(", ")}`)}if(!u.resource)throw new Error(`Resource not found for step ${u.stepType} (${u.id})`);if(!this.steps.find(p=>p.id===u.id)){const p=this.implicitGlobalResources.get(u.resourceType)||this.explicitResources.get(u.resource.resourceId),t=new nF(u.stepType,u.id,u.resourceType,u.status,a,u.index,i,this,p);this.steps.push(t)}}onUpdate(u){var i;if(Re.log("onUpdate",u),(i=u.payload)!=null&&i.stepType){const a=this.steps.find(l=>{var p;return l.id===((p=u.payload)==null?void 0:p.id)});a&&L(u.emittedAt).isAfter(L(a.lasEventTimestamp))&&a.update(u.payload)}this.editor.events.emit("publication-updated",{}),u.type===yA.Error?(this.finalStatus=mA.Failed,this.finalGlobalEvent=u.event,this.editor.events.emit("project-publication-error",u)):u.type===yA.Complete&&(this.finalStatus=mA.Success,this.finalGlobalEvent=u.event,this.editor.events.emit("project-publication-completed",u))}}function Pme(d){switch(d){case ln.CodeCompilation:return"Code generation";case ln.RelationalDatabaseDeployment:return"Database creation";case ln.HttpApiDeployment:return"HTTP gateway creation";case ln.InfrastructureValuesCodebaseInterpolation:return"Link code with resources";case ln.BundleCodebase:return"Bundle code";case ln.MigrateRelationalDatabase:return"Database structure migration";case ln.BusinessLogicCodebaseDeployment:return"Update servers with new code";case ln.CodebaseCleanup:return"Code cleanup";case ln.HttpApiDeletion:return"HTTP gateway deletion";case ln.RelationalDatabaseDeletion:return"Database deletion";default:return"Publication finished"}}function Vme(d){switch(d){case nt.DeploymentCompleted:return"Successfully published";case nt.DeploymentStarted:return"Publication started";case nt.DeploymentFailed:return"Publication failed";case nt.AllInfrastructureSuccessfullyProvisioned:return"All infrastructure successfully provisioned";case nt.RequestPayloadValidationFailed:return"Request payload validation failed";case nt.ProjectStateValidationFailedMissingName:return"Project state validation failed: missing name";case nt.ProjectStateValidationFailedMissingAnyFunctionality:return"Project state validation failed: missing any functionality";case nt.RelationalDatabaseDeploymentStarted:return"Database creation started";case nt.RelationalDatabaseDeploymentCompleted:return"Database creation completed";case nt.RelationalDatabaseDeploymentFailed:return"Database creation failed";case nt.CreatingNewRelationalDatabase:return"Creating new database (up to 5 mins)";case nt.WaitingForPreviousRelationalDatabaseDeployment:return"Waiting for previous database creation";case nt.RelationalDatabaseAlreadyExists:return"Database already exists";case nt.HttpApiDeploymentStarted:return"HTTP gateway creation started";case nt.HttpApiDeploymentCompleted:return"HTTP gateway creation completed";case nt.HttpApiDeploymentFailed:return"HTTP gateway creation failed";case nt.CreatingNewHttpApi:return"Creating new HTTP gateway";case nt.HttpApiAlreadyExists:return"HTTP gateway already exists";case nt.BusinessLogicCodebaseDeploymentStarted:return"Update servers with new code started";case nt.BusinessLogicCodebaseDeploymentCompleted:return"Update servers with new code completed";case nt.BusinessLogicCodebaseDeploymentFailed:return"Update servers with new code failed";case nt.BundlingCodebaseForDownload:return"Bundling code for download";case nt.UploadingCodebaseToCloudStorage:return"Uploading code to cloud storage";case nt.InfrastructureValuesCodebaseInterpolationStarted:return"Linking code with resources started";case nt.InfrastructureValuesCodebaseInterpolationCompleted:return"Linking code with resources completed";case nt.InfrastructureValuesCodebaseInterpolationFailed:return"Linking code with resources failed";case nt.CodeCompilationStarted:return"Code generation started";case nt.CodeCompilationCompleted:return"Code generation completed";case nt.CodeCompilationFailed:return"Code generation failed";case nt.BundleCodebaseStarted:return"Code bundling started";case nt.BundleCodebaseCompleted:return"Code bundling completed";case nt.BundleCodebaseFailed:return"Code bundling failed";case nt.InstallingCodebaseDependenciesStarted:return"Installing code dependencies";case nt.InstallingCodebaseDependenciesCompleted:return"Installing code dependencies completed";case nt.InstallingCodebaseDependenciesFailed:return"Installing code dependencies failed";case nt.MigrateRelationalDatabaseStarted:return"Database structure migration started";case nt.MigrateRelationalDatabaseCompleted:return"Database structure migration completed";case nt.MigrateRelationalDatabaseFailed:return"Database structure migration failed";case nt.ProjectAlreadyBeingPublished:return"Project already being published. You need to wait for the previous publication to complete";case nt.ProjectPublishRequestAcknowledged:return"Project publish request acknowledged";case nt.UploadingCodebaseToCloudStorageCompleted:return"Uploading code to cloud storage completed";case nt.UploadingCodebaseToCloudStorageFailed:return"Uploading code to cloud storage failed";case nt.BillingSubscriptionUpdateFailed:return"Billing subscription update failed";case nt.ProjectNotFound:return"Project not found";case nt.HttpApiDeletionCompleted:return"HTTP gateway deletion completed";case nt.HttpApiDeletionFailed:return"HTTP gateway deletion failed";case nt.HttpApiDeletionStarted:return"HTTP gateway deletion started";case nt.PublicationStepFailedReasonUnknown:return"Publication step failed: reason unknown";case nt.WaitingForPreviousHttpApiDeletion:return"Waiting for previous HTTP gateway deletion";case nt.RelationalDatabaseDeletionStarted:return"Database deletion started";case nt.RelationalDatabaseDeletionCompleted:return"Database deletion completed";case nt.RelationalDatabaseDeletionFailed:return"Database deletion failed";case nt.WaitingForPreviousRelationalDatabaseDeletion:return"Waiting for previous database deletion"}return"Unknown event"}var oF=(d=>(d.NO_LOGIC="NO_LOGIC",d.NO_NAME="NO_NAME",d.NO_CHANGES="NO_CHANGES",d.PROJECT_PUBLICATION_ALREADY_ONGOING="PROJECT_PUBLICATION_ALREADY_ONGOING",d))(oF||{});function Nme(d){switch(d){case"NO_LOGIC":return"This project has no logic";case"NO_NAME":return"This project has no name";case"NO_CHANGES":return"This version has already been published";case"PROJECT_PUBLICATION_ALREADY_ONGOING":return"This project is already being published";default:return"Publishing is currently not available. Try again later"}}function Lme(d){switch(d){case jr.RelationalDatabase:return"Relational database";case jr.HttpEndpoint:case jr.HttpApi:return"HTTP endpoints";case jr.ServerlessFunction:case jr.CloudHostedCodebase:return"Server code functions";default:return"Resources"}}function Bme(d){switch(d){case ol.Running:return"In progress";case ol.Failed:return"Failed";case ol.Success:return"Succeeded";case ol.Skipped:return"Skipped";case ol.Queued:default:return"Queued"}}function Mme(d,u){let i=null;const a=[];if(!d.id)i={...d,id:V.UUID.uuid()};else if(!VU(d.id)){const y=V.UUID.uuid();i={...d,id:y},a.push(new Q({id:`${d.id}--${S.InvalidUUIDStringFormat}`,message:`Entity with id "${d.id}" has an invalid UUID string format. The 'id' property must be a valid UUID string.
|
|
204
204
|
The 'id' has been changed to "${y}".`,severity:q.Warning,code:S.InvalidUUIDStringFormat,issue:null}))}if(i={...d,id:(i==null?void 0:i.id)||d.id||""},!d.type)return{errors:[...a,new Q({id:`${i.id}--${S.MissingTypeProperty}`,message:`Entity with id "${i.id}" is missing a 'type' property.`,severity:q.Error,code:S.MissingTypeProperty,issue:null})],modifiedData:i};if(d.type===f.GenericReference)return{errors:[...a,new Q({id:`${i.id}--${S.RootReference}`,message:`Generic reference entity with id "${i.id}". A generic reference cannot be generated as a standalone entity. Only in the body of another entity.`,severity:q.Error,code:S.RootReference,issue:null})],modifiedData:i};const l=i,p=u.instances[l.id],t=u.builtInInstances[l.id];if(p&&!t&&l.type!==f.GenericReference){let y=`A previously generated entity with id "${l.id}" already exists in the project state.
|
|
205
205
|
Are you trying to update that entity?
|
|
206
206
|
If so, you should use the 'update' action for core mutable metadata properties, or 'delete' and then 'post' again to replace it.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elyx-code/project-logic-tree",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.6383",
|
|
4
4
|
"author": "Sergio Herrero",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"description": "An installable module which contains the type definitions and ephemeral state management for a projects' logic tree data structure",
|