@elyx-code/project-logic-tree 0.0.6476 → 0.0.6477
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 +2 -0
- package/dist/index.umd.cjs +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -101967,6 +101967,8 @@ function ko(d, u) {
|
|
|
101967
101967
|
list: i.flatMap((e) => {
|
|
101968
101968
|
if (e === u)
|
|
101969
101969
|
return a = e, gt.includes(e.type) ? e.parent.type === f.Loop ? o = "loop-body" : o = "entry" : e.successCalls.includes(d) ? o = "success" : e.errorCalls.includes(d) && (o = "error"), [e];
|
|
101970
|
+
if (e.type === f.FunctionDeclaration && e.parent.type === f.Loop && e.parent === u)
|
|
101971
|
+
return a = e.parent, o = "loop-body", [e];
|
|
101970
101972
|
if (!Hi.includes(e.type))
|
|
101971
101973
|
return [e];
|
|
101972
101974
|
const y = ko(
|
package/dist/index.umd.cjs
CHANGED
|
@@ -393,7 +393,7 @@ All global 'function-declaration' entity ids are:
|
|
|
393
393
|
The project currently has no global 'function-declaration' entities that can be called as 'function-call' entities.`;p.push(new se({id:`${o.id}--${k.InvalidReference}`,code:k.InvalidReference,severity:Z.Error,message:`Entity of type "${f.FunctionCall}" with id "${o.id}", has an invalid reference at the 'declaration' property. The 'declaration' property must be a valid reference to an 'function-declaration' entity.
|
|
394
394
|
References can either be an ID string or an object with exacly four properties: 'id', 'entityId', 'entityType', 'type'.${v}`}))}return{errors:p,modifiedData:o}}validateGeneratedUpdate(i){const a=[];return i.parent&&a.push(new se({id:`${this.id}--${k.InvalidParentUpdate}`,code:k.InvalidParentUpdate,severity:Z.Error,message:`Entity of type '${this.type}' with id '${this.id}' cannot have the 'parent' property updated. The 'parent' on a callable entity, is its scope. It scope is auto-calculated implicitly by the its caller.
|
|
395
395
|
If an entity is called by another, they must be in the same scope, which means they have the same parent.
|
|
396
|
-
You shouldn't have to manually update a 'parent' property. The equivalent result is to change its callers, the value writters of its inputs, or the value readers of its outputs.`})),{errors:a,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 G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"sync-dependents"))){const a=[],o=[],p=[],e=[];return Object.values(this.detachedDependents).forEach(y=>{const v=y.entity.afterAllChildrenInitialized(i);a.push(...v.updated),o.push(...v.added),p.push(...v.removed),e.push(...v.affected)}),i==null||i.attemptAutoclose("sync-dependents",this.id),{updated:R(a),added:R(o),removed:R(p),affected:R(e),self:this}}onDetachedDependencyRemoved(i,a,o){const p=[],e=[],y=[],v=[];if(a==="declaration"){const{updated:E,added:w,removed:A}=this.remove({ignoreUpstream:!1},o);p.push(...E),e.push(...w),y.push(...A)}if(a==="parent"){const{updated:E,added:w,removed:A}=this.remove({ignoreUpstream:!1},o);p.push(...E),e.push(...w),y.push(...A)}return{updated:R(p),added:R(e),removed:R(y),affected:R(v),self:this}}onDetachedDependencyRestored(i,a,o){const p=[],e=[],y=[],v=[];if(a==="declaration"){const{updated:E,added:w,removed:A}=this.restore({},o);p.push(...E),e.push(...w),y.push(...A)}if(a==="parent"){const{updated:E,added:w,removed:A}=this.restore({},o);p.push(...E),e.push(...w),y.push(...A)}return{updated:R(p),added:R(e),removed:R(y),affected:R(v),self:this}}unsubscribeFromDependencies(){var i;return(i=this.parent)==null||i.unsubscribeDependents([{entity:this,field:"parent"}]),this.declaration.unsubscribeDependents([{entity:this,field:"declaration"}]),this}subscribeToDependencies(){var i;return(i=this.parent)==null||i.subscribeDependents([{entity:this,field:"parent"}]),this.declaration.subscribeDependents([{entity:this,field:"declaration"}]),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=N.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 Qt(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.inputs=[...this.inputs],i.outputs=[...this.outputs],i.error=this.error,i.successCalls=[...this.successCalls],i.errorCalls=[...this.errorCalls],i.process=this.process,i.declaration=this.declaration,i.calledBySuccess=[...this.calledBySuccess],i.calledByError=[...this.calledByError],i.calledByEntry=[...this.calledByEntry],i.parent=this.parent,this}recursiveCaptureUpstreamVersions(i){const a=[],o=[],p=[],e=[];if(this.parent){this.parent.increaseVersion(i);const y=this.parent.recursiveCaptureUpstreamVersions(i);a.push(this.parent,...y.updated),o.push(...y.added),p.push(...y.removed)}return{updated:R(a),added:R(o),removed:R(p),affected:R(e),self:this}}async restoreVersion(i){var v;const a=[],o=[],p=[],e=[];if(this.version===i)return{updated:R(a),added:R(o),removed:R(p),affected:R(e),self:this};if(!this.knownVersions){const E=new Map;for(const[w,A]of this.knownVersions||new Map){if(E.set(w,A),A.activeVersion=!1,A.knownVersions)for(const[C,V]of A.knownVersions)E.set(C,V);A.knownVersions=null}}let y=(v=this.knownVersions)==null?void 0:v.get(i);if(!y){const E=await this.APILoadVersion({},i);if(!E)throw new Error(`Version with id '${i}' for entity with id '${this.id}' not found.`);y=new Qt(E,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.inputs=y.inputs,this.outputs=y.outputs,this.error=y.error,this.successCalls=y.successCalls,this.errorCalls=y.errorCalls,this.process=y.process,this.declaration=y.declaration,this.calledBySuccess=y.calledBySuccess,this.calledByError=y.calledByError,this.calledByEntry=y.calledByEntry,this.parent=y.parent,{updated:R(a),added:R(o),removed:R(p),affected:R(e),self:this}}updateWithShallowTransfer(i,a=this.project.addChangeSet(new G(this.project,N.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 o=H(i.parent),p=this.project.get(o),e=this.parent;if(e&&e.id!==(p==null?void 0:p.id)&&this.removeFromParent(a),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 '${o}' 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'`);if(i.declaration){const o=H(i.declaration),p=this.project.get(o);p&&this.setDeclaration(p)}return i.calledByEntry.forEach(o=>{const p=H(o),e=this.project.get(p);e&&(this.addEntryCaller(e,a),e.addCall(this,a))}),[...this.calledByEntry].forEach(o=>{i.calledByEntry.find(e=>H(e)===o.id)||(this.removeCaller(o,a),o.removeCall(this,a))}),i.calledBySuccess.forEach(o=>{const p=H(o),e=this.project.get(p);e&&(this.addSuccessCaller(e,a),e.addSuccessCall(this,a))}),[...this.calledBySuccess].forEach(o=>{i.calledBySuccess.find(e=>H(e)===o.id)||(this.removeCaller(o,a),o.removeCall(this,a))}),i.calledByError.forEach(o=>{const p=H(o),e=this.project.get(p);e&&(this.addErrorCaller(e,a),e.addErrorCall(this,a))}),[...this.calledBySuccess].forEach(o=>{i.calledBySuccess.find(e=>H(e)===o.id)||(this.removeCaller(o,a),o.removeCall(this,a))}),this.captureVersion(),this.subscribeToDependencies(),a==null||a.attemptAutoclose("update-with-shallow-transfer",this.id),this}hydrateAncestors(){const i=[],a=[],o=[],p=[];if(this.initialData.parent){const e=H(this.initialData.parent),y=this.project.get(e);if(y)this.setParent(y,null),i.push(y);else throw new Error(`${this.type} with id '${this.id}' has a 'parent' reference '${e}' that isn't found in the project`)}else throw new Error(`${this.type} with id '${this.id}' must have a 'parent'`);if(this.initialData.declaration){const e=H(this.initialData.declaration),y=this.project.get(e);y&&(this.setDeclaration(y),i.push(y))}return this.initialData.calledByEntry.forEach(e=>{const y=H(e),v=this.project.get(y);v&&this.addEntryCaller(v,null)}),this.initialData.calledBySuccess.forEach(e=>{const y=H(e),v=this.project.get(y);v&&this.addSuccessCaller(v,null)}),this.initialData.calledByError.forEach(e=>{const y=H(e),v=this.project.get(y);v&&this.addErrorCaller(v,null)}),{updated:R(i),added:R(a),removed:R(o),affected:R(p),self:this}}afterAllChildrenInitialized(i=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"after-all-children-initialized"))){const a=[],o=[],p=[],e=[];this.initialized=!0;const{updated:y,added:v,removed:E}=this.syncInputs(i),{updated:w,added:A,removed:C}=this.syncOutputs(i);return a.push(...y,...w),o.push(...v,...A),p.push(...E,...C),this.captureVersion(),i==null||i.attemptAutoclose("after-all-children-initialized",this.id),{updated:R(a),added:R(o),removed:R(p),affected:R(e),self:this}}addSelfToProject(i=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"add-self-to-project"))){var y;const a=[this],o=[],p=[],e=[];return this.parent===this.project&&this.project.addFunctionCall(this),(y=this.process)==null||y.writesValues.forEach(v=>{v.setValueWriter(this.process,i),a.push(v)}),this.successCalls.forEach(v=>{v.addSuccessCaller(this,i),a.push(v)}),this.errorCalls.forEach(v=>{v.addErrorCaller(this,i),a.push(v)}),this.calledBySuccess.forEach(v=>{v.addSuccessCall(this,i),a.push(v)}),this.calledByError.forEach(v=>{v.addErrorCall(this,i),a.push(v)}),this.calledByEntry.forEach(v=>{v.addCall(this,i),a.push(v)}),this.subscribe(),this.subscribeToDependencies(),i==null||i.attemptAutoclose("add-self-to-project",this.id),{updated:R(a),added:R(o),removed:R(p),affected:R(e),self:this}}get calledBy(){return[...this.calledByEntry,...this.calledBySuccess,...this.calledByError]}removeInput(i,a=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"remove-input"))){const o=this.inputs.findIndex(p=>p.id===i.id);return o>-1&&(this.inputs.splice(o,1),a&&(a==null||a.add(this,S.Affected))),a==null||a.attemptAutoclose("remove-input",this.id),this}addInput(i,a=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"add-input"))){return this.inputs.includes(i)?(a==null||a.attemptAutoclose("add-input",this.id),this):(this.inputs.push(i),a==null||a.add(this,S.Affected),a==null||a.attemptAutoclose("add-input",this.id),this)}addOutput(i,a=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"add-output"))){return this.outputs.includes(i)?(a==null||a.attemptAutoclose("add-output",this.id),this):(this.outputs.push(i),a==null||a.add(this,S.Affected),a==null||a.attemptAutoclose("add-output",this.id),this)}removeOutput(i,a=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"remove-output"))){const o=this.outputs.findIndex(p=>p.id===i.id);return o>-1&&(this.outputs.splice(o,1),a&&(a==null||a.add(this,S.Affected))),a==null||a.attemptAutoclose("remove-output",this.id),this}addValueReader(i,a=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"add-value-reader"))){var o;return this.process&&!this.process.writesValues.includes(i)&&((o=this.process)==null||o.addValueReader(i,a),a==null||a.add(this,S.Affected)),a==null||a.attemptAutoclose("add-value-reader",this.id),this}removeValueReader(i,a=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"remove-value-reader"))){var o;return this.process&&this.process.writesValues.includes(i)&&((o=this.process)==null||o.removeValueReader(i,a),a==null||a.add(this,S.Affected)),a==null||a.attemptAutoclose("remove-value-reader",this.id),this}addSuccessCaller(i,a=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"add-success-caller")),o=!1){return this.calledBySuccess.find(p=>p.id===i.id)||(this.calledBySuccess.push(i),a==null||a.add(this,S.Updated),o&&He(this,a)),a==null||a.attemptAutoclose("add-success-caller",this.id),this}addErrorCaller(i,a=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"add-error-caller")),o=!1){return this.calledByError.find(p=>p.id===i.id)||(this.calledByError.push(i),a==null||a.add(this,S.Updated),o&&He(this,a)),a==null||a.attemptAutoclose("add-error-caller",this.id),this}addEntryCaller(i,a=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"add-entry-caller")),o=!1){return this.calledByEntry.find(p=>p.id===i.id)||(this.calledByEntry.push(i),a==null||a.add(this,S.Updated),o&&He(this,a)),a==null||a.attemptAutoclose("add-entry-caller",this.id),this}addErrorCall(i,a=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"add-error-call")),o=!1){return this.errorCalls.find(p=>p.id===i.id)||(this.errorCalls.push(i),o&&He(this,a),a==null||a.add(this,S.Affected)),a==null||a.attemptAutoclose("add-error-call",this.id),this}addSuccessCall(i,a=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"add-success-call")),o=!1){return this.successCalls.find(p=>p.id===i.id)||(this.successCalls.push(i),o&&He(this,a),a==null||a.add(this,S.Affected)),a==null||a.attemptAutoclose("add-success-call",this.id),this}removeCall(i,a=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"remove-call")),o=!1){const p=this.successCalls.findIndex(y=>y.id===i.id);p>-1&&(this.successCalls.splice(p,1),a==null||a.add(this,S.Affected));const e=this.errorCalls.findIndex(y=>y.id===i.id);return e>-1&&(this.errorCalls.splice(e,1),a==null||a.add(this,S.Affected)),o&&He(this,a),a==null||a.attemptAutoclose("remove-call",this.id),this}removeCaller(i,a=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"remove-caller")),o=!1){return this.calledBySuccess=this.calledBySuccess.filter(p=>p.id!==i.id?!0:(a==null||a.add(this,S.Updated),a==null||a.add(p,S.Affected),!1)),this.calledByError=this.calledByError.filter(p=>p.id!==i.id?!0:(a==null||a.add(this,S.Updated),a==null||a.add(p,S.Affected),!1)),this.calledByEntry=this.calledByEntry.filter(p=>p.id!==i.id?!0:(a==null||a.add(this,S.Updated),a==null||a.add(p,S.Affected),!1)),o&&He(this,a),a==null||a.attemptAutoclose("remove-caller",this.id),this}setParent(i,a=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"set-parent"))){var o;return((o=this.parent)==null?void 0:o.id)!==(i==null?void 0:i.id)&&(this.parent=i,a&&(a==null||a.add(this,S.Updated))),a==null||a.attemptAutoclose("set-parent",this.id),this}setDeclaration(i){return this.declaration=i,this}initChildren(i=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"init-children"))){if(this.initialized||this.startedInitialization)return this;if(this.startedInitialization=!0,this.initialData.declaration.type===f.FunctionDeclaration){const a=ie(this.initialData.declaration,this.project);this.declaration=a}else{const a=H(this.initialData.declaration),o=this.project.get(a);this.declaration=o}return this.successCalls=this.initialData.successCalls.map(a=>{const o=ie(a,this.project);if(o.addSuccessCaller(this),[f.BreakStatement,f.ContinueStatement].includes(o.type))o.setParent(this.parent.parent,null),o.initChildren(i);else if(o.type===f.ReturnStatement){const p=Hr(this,this.project);o.setParent(p,null),o.initChildren(i)}else o.type!==f.InternalCall&&(o.setParent(this.parent,null),o.initChildren(i));return o}),this.errorCalls=this.initialData.errorCalls.map(a=>{const o=ie(a,this.project);if(o.addErrorCaller(this),[f.BreakStatement,f.ContinueStatement].includes(o.type))o.setParent(this.parent.parent,null),o.initChildren(i);else if(o.type===f.ReturnStatement){const p=Hr(this,this.project);o.setParent(p,null),o.initChildren(i)}else o.type!==f.InternalCall&&(o.setParent(this.parent,null),o.initChildren(i));return o}),this.inputs=this.initialData.inputs.map(a=>{const o=ie(a,this.project);return o.setParent(this,null),o.initChildren(i),o}),this.initialData.process&&(this.process=ie(this.initialData.process,this.project),this.process.setParent(this,null),this.process.initChildren(i)),this.initialData.error&&(this.error=ie(this.initialData.error,this.project),this.error.setParent(this,null),this.error.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 G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"meta-sync"))){const o=Lr(this,i),p=this.toMeta();return this.x=i.x||p.x,this.y=i.y||p.y,this.catchesError=i.catchesError!==void 0?i.catchesError:this.catchesError,super.metaSync(i),i.deleted===!0&&!p.deleted?a==null||a.add(this,S.Removed):i.deleted===!1&&p.deleted?a==null||a.add(this,S.Added):o&&(a==null||a.add(this,S.Updated)),a==null||a.attemptAutoclose("meta-sync",this.id),this}async APILoad(i=ve,...a){return await Qt.repository.APILoad(this.id,...a),this}async APICreate(i=ve,...a){return await Qt.repository.APICreate(this.toShallowJSON(),...a),this}async APIUpdate(i=ve,...a){return await Qt.repository.APIUpdate(this.toShallowJSON(),...a),this}async APIDelete(i=ve,...a){return await Qt.repository.APIDelete(this.toShallowJSON(),...a),this}async APIClone(i=ve,...a){return await Qt.repository.APIClone(this.id,...a),this}async APILoadVersion(i=ve,a,...o){return await Qt.repository.APILoadVersion(this.id,a,...o)}removeFromParent(i=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"remove-from-parent"))){const a=[],o=[],p=[],e=[];return this.parent.type===f.Project?(this.parent.removeFunctionCall(this),e.push(this.parent)):this.parent.detachedChildren.includes(this)&&this.parent.unsubscribeDetachedChild(this),i==null||i.attemptAutoclose("remove-from-parent",this.id),{added:R(p),updated:R(a),removed:R(o),affected:R(e),self:this}}remove({ignoreUpstream:i}={ignoreUpstream:!1},a=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"remove-entity"))){var v;const o=[],p=[],e=[],y=[];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(E=>{const{updated:w,removed:A,added:C}=E.entity.onDetachedDependencyRemoved(this,E.field,a);o.push(...w),p.push(...A),e.push(...C)}),this.process){const{updated:E,removed:w}=(v=this.process)==null?void 0:v.remove({ignoreUpstream:!0},a);o.push(...E),p.push(...w)}if(this.inputs.forEach(E=>{const{updated:w,removed:A}=E.remove({ignoreUpstream:!0},a);o.push(...w),p.push(...A)}),this.outputs.forEach(E=>{const{updated:w,removed:A}=E.remove({ignoreUpstream:!0},a);o.push(...w),p.push(...A)}),this.error){const{updated:E,removed:w}=this.error.remove({ignoreUpstream:!0},a);o.push(...E),p.push(...w)}if(this.successCalls.forEach(E=>{o.push(E),E.removeCaller(this,a)}),this.errorCalls.forEach(E=>{o.push(E),E.removeCaller(this,a)}),!i){const E=this.removeFromParent(a);e.push(...E.added),o.push(...E.updated),p.push(...E.removed),y.push(...E.affected),this.calledBy.forEach(w=>{o.push(w),w.removeCall(this,a)})}return a==null||a.attemptAutoclose("remove-entity",this.id),{added:R(e),updated:R(o),removed:R(p),affected:R(y),self:this}}restore({}={},i=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"restore-entity"))){const a=[],o=[],p=[],e=[];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(y=>{const{updated:v,removed:E,added:w}=y.entity.onDetachedDependencyRestored(this,y.field,i);o.push(...v),p.push(...E),a.push(...w)}),this.process){const{updated:y}=this.process.restore({},i);o.push(...y)}return this.inputs.forEach(y=>{const{updated:v}=y.restore({},i);o.push(...v)}),this.outputs.forEach(y=>{const{updated:v}=y.restore({},i);o.push(...v)}),this.successCalls.forEach(y=>{o.push(y),y.addSuccessCaller(this,i)}),this.errorCalls.forEach(y=>{o.push(y),y.addErrorCaller(this,i)}),this.calledBySuccess.forEach(y=>{o.push(y),y.addSuccessCall(this,i)}),this.calledByError.forEach(y=>{o.push(y),y.addErrorCall(this,i)}),this.calledByEntry.forEach(y=>{o.push(y),y.addCall(this,i)}),i==null||i.attemptAutoclose("restore-entity",this.id),{added:R(a),updated:R(o),removed:R(p),affected:R(e),self:this}}toFlat(i=new Set){return i.has(this.id)?[]:(i.add(this.id),[this,...this.successCalls.flatMap(o=>o.toFlat(i)),...this.errorCalls.flatMap(o=>o.toFlat(i)),...this.inputs.flatMap(o=>o.toFlat(i)),...this.outputs.flatMap(o=>o.toFlat(i)),...this.process?this.process.toFlat(i):[],...this.error?this.error.toFlat(i):[],...this.calledBy.flatMap(o=>o.toFlat(i))])}toFlatIds(i=new Set){return i.has(this.id)?[]:(i.add(this.id),[this.id,...this.successCalls.flatMap(o=>o.toFlatIds(i)),...this.errorCalls.flatMap(o=>o.toFlatIds(i)),...this.inputs.flatMap(o=>o.toFlatIds(i)),...this.outputs.flatMap(o=>o.toFlatIds(i))])}toMeta(){return{id:this.id,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,x:this.x,y:this.y,type:this.type,catchesError:this.catchesError}}toJSON(i=new Set){var a,o;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,catchesError:this.catchesError,x:this.x,y:this.y,successCalls:this.successCalls.map(p=>p.toJSON(i)),errorCalls:this.errorCalls.map(p=>p.toJSON(i)),calledBySuccess:this.calledBySuccess.map(p=>p.toReference()),calledByError:this.calledByError.map(p=>p.toReference()),calledByEntry:this.calledByEntry.map(p=>p.toReference()),process:(a=this.process)==null?void 0:a.toJSON(i),declaration:this.declaration.toJSON(i),inputs:this.inputs.map(p=>p.toJSON(i)),outputs:this.outputs.map(p=>p.toJSON(i)),parent:this.parent.toReference(),error:(o=this.error)==null?void 0:o.toJSON(i)})}toJSONClone(i=Se){var o,p,e,y,v,E,w;let a;return(o=i.seenEntityMaps)!=null&&o.has(this.id)?a=i.seenEntityMaps.get(this.id):(a=i.newId||jr(this,this.project,i.uuidStrategy),i.seenEntityMaps&&i.seenEntityMaps.set(this.id,a)),(p=i.seenEntities)!=null&&p.has(a)||(e=i.seenEntities)!=null&&e.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:N.UUID.uuid(),createdAt:i.timestamp||L().toISOString(),previousVersion:null,author:this.author,deleted:this.deleted,catchesError:this.catchesError,type:this.type,x:this.x,y:this.y,successCalls:this.successCalls.map(A=>A.toJSONClone({...i,newId:null})),errorCalls:this.errorCalls.map(A=>A.toJSONClone({...i,newId:null})),calledBySuccess:this.calledBySuccess.map(A=>A.toReference({seenEntityMaps:i.seenEntityMaps})),calledByError:this.calledByError.map(A=>A.toReference({seenEntityMaps:i.seenEntityMaps})),calledByEntry:this.calledByEntry.map(A=>A.toReference({seenEntityMaps:i.seenEntityMaps})),process:(E=this.process)==null?void 0:E.toJSONClone({...i,newId:null}),declaration:this.declaration.toJSONClone({...i,newId:null}),inputs:this.inputs.map(A=>A.toJSONClone({...i,newId:null})),outputs:this.outputs.map(A=>A.toJSONClone({...i,newId:null})),error:(w=this.error)==null?void 0:w.toJSONClone({...i,newId:null}),parent:this.parent.toReference({seenEntityMaps:i.seenEntityMaps})})}toReference(i=Se){var o;let a=this.id;return(o=i.seenEntityMaps)!=null&&o.has(this.id)&&(a=i.seenEntityMaps.get(this.id)),{id:a+"--"+N.UUID.uuid()+"--ref",type:f.GenericReference,entityId:a,version:this.version,entityType:this.type}}toShallowJSON(i=Se){var o;let a=this.id;return(o=i.seenEntityMaps)!=null&&o.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,catchesError:this.catchesError,x:this.x,y:this.y,process:this.process?this.process.toReference(i):null,inputs:this.inputs.map(p=>p.toReference(i)),outputs:this.outputs.map(p=>p.toReference(i)),declaration:this.declaration.toReference(i),successCalls:this.successCalls.map(p=>p.toReference(i)),errorCalls:this.errorCalls.map(p=>p.toReference(i)),calledBySuccess:this.calledBySuccess.map(p=>p.toReference(i)),calledByError:this.calledByError.map(p=>p.toReference(i)),calledByEntry:this.calledByEntry.map(p=>p.toReference(i)),error:this.error?this.error.toReference(i):null,parent:this.parent.toReference(i)}}toFlatJSON(i=new Set){return i.has(this.id)?[]:(i.add(this.id),[this.toShallowJSON(),...this.successCalls.flatMap(o=>o.toFlatJSON(i)),...this.errorCalls.flatMap(o=>o.toFlatJSON(i)),...this.inputs.flatMap(o=>o.toFlatJSON(i)),...this.outputs.flatMap(o=>o.toFlatJSON(i)),...this.process?this.process.toFlatJSON(i):[],...this.error?this.error.toFlatJSON(i):[]])}toGenerationTarget(){const i=this.parent.type===f.Project?void 0:this.parent.id;return{id:this.id,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,type:this.type,calledByEntry:this.calledByEntry.map(a=>a.id),calledBySuccess:this.calledBySuccess.map(a=>a.id),calledByError:this.calledByError.map(a=>a.id),declaration:this.declaration.id,parent:i}}toFlatGenerationTarget(i=new Set){return i.has(this.id)?[]:(i.add(this.id),[this.toGenerationTarget(),...this.successCalls.flatMap(o=>o.toFlatGenerationTarget(i)),...this.errorCalls.flatMap(o=>o.toFlatGenerationTarget(i)),...this.inputs.flatMap(o=>o.toFlatGenerationTarget(i)),...this.outputs.flatMap(o=>o.toFlatGenerationTarget(i)),...this.process?this.process.toFlatGenerationTarget(i):[],...this.error?this.error.toFlatGenerationTarget(i):[]])}clearErrors(){var i,a;return this.errors=[],this.inputs.forEach(o=>o.clearErrors()),this.outputs.forEach(o=>o.clearErrors()),this.successCalls.forEach(o=>o.clearErrors()),this.errorCalls.forEach(o=>o.clearErrors()),(i=this.process)==null||i.clearErrors(),(a=this.error)==null||a.clearErrors(),this}validate(){const i=m5(this);return this.errors=i,{success:!0}}getErrors(){return[...this.errors,...this.inputs.flatMap(a=>a.getErrors()),...this.outputs.flatMap(a=>a.getErrors()),...this.error?this.error.getErrors():[],...this.process?this.process.getErrors():[]]}getShallowErrors(){return this.errors}clone(i=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"clone-entity")),a=null,o=null,p=!0){var U,F;let e=xr(a,this);const y=this.toJSON(),v=o||N.UUID.uuid();y.inputs=[];const E=v.split("-id"),w=E[E.length-1||0]||v;y.id=v,y.version=N.UUID.uuid(),y.createdAt=(i==null?void 0:i.timestamp)||L().toISOString(),y.author=(i==null?void 0:i.author)||"1",y.previousVersion=null,y.deleted=!1;const A=dr(y,e);a?A.setParent(a,null):A.setParent(this.parent,null),p&&A.subscribe(),A.initChildren(i),i==null||i.add(A,S.Added);const C=(U=this.inputs)==null?void 0:U.map((K,q)=>K.clone(i,A,w+"-input-map-"+q+"-id",p));A.inputs=C;const V=(F=this.outputs)==null?void 0:F.map((K,q)=>K.clone(i,A,w+"-output-map-"+q+"-id",p));return A.outputs=V,this.error&&(A.error=this.error.clone(i,A,w+"-error-map-id",p)),this.process&&(A.process=this.process.clone(i,A,w+"-process-id",p)),i==null||i.attemptAutoclose("clone-entity",this.id),A}removeUnrecognizedInputs(i=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"remove-unrecognized-inputs"))){const a=[],o=[],p=[],e=[];return this.inputs.forEach(v=>{if(!this.declaration.inputs.find(w=>{var A;return w.id===((A=v.declaration)==null?void 0:A.id)})){const w=v.remove({ignoreUpstream:!1},i);p.push(...w.removed),a.push(...w.updated)}}),this.inputs.filter((v,E)=>{const w=this.inputs.findIndex(C=>C.declaration===v.declaration&&C!==v);if(w===-1)return!1;const A=this.inputs[w];return L(A==null?void 0:A.createdAt).isSame(L(v.createdAt))?E>w:!!L(A==null?void 0:A.createdAt).isAfter(v.createdAt)}).forEach(v=>{const E=v.remove({ignoreUpstream:!1},i);p.push(...E.removed),a.push(...E.updated)}),i==null||i.attemptAutoclose("remove-unrecognized-inputs",this.id),{updated:R(a),added:R(o),removed:R(p),affected:R(e),self:this}}removeUnrecognizedOutputs(i=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"remove-unrecognized-outputs"))){const a=[],o=[],p=[],e=[];return this.outputs.forEach(v=>{if(!this.declaration.getUniqueReturnDeclarations().find(w=>{var A;return w.id===((A=v.declaration)==null?void 0:A.id)})){const w=v.remove({ignoreUpstream:!1},i);p.push(...w.removed),a.push(...w.updated)}}),this.outputs.filter((v,E)=>{const w=this.outputs.findIndex(C=>C.declaration===v.declaration&&C!==v);if(w===-1)return!1;const A=this.outputs[w];return L(A==null?void 0:A.createdAt).isSame(L(v.createdAt))?E>w:!!L(A==null?void 0:A.createdAt).isAfter(v.createdAt)}).forEach(v=>{const E=v.remove({ignoreUpstream:!1},i);p.push(...E.removed),a.push(...E.updated)}),i==null||i.attemptAutoclose("remove-unrecognized-outputs",this.id),{updated:R(a),added:R(o),removed:R(p),affected:R(e),self:this}}syncInputs(i=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"sync-missing-fixed-inputs"))){const a=[],o=[],p=[],e=[],y=this.declaration.inputs.filter(A=>!this.inputs.find(C=>C.declaration.id===A.id));this.inputs.sort((A,C)=>A.index-C.index),y.forEach(A=>{this.inputs.forEach(U=>{U.index>=A.index&&U.metaSync({index:U.index+1},i)});const C={id:N.UUID.uuid(),version:N.UUID.uuid(),createdAt:(i==null?void 0:i.timestamp)||L().toISOString(),author:N.sessionAuthor,previousVersion:null,deleted:!1,type:f.InputMap,declaration:A.toJSON(),readsValue:null,defaultValue:null,index:A.index,name:null,codeName:null,description:null,parent:this.toReference()},V=ie(C,this.project);V.setParent(this,i),V.initChildren(i),i==null||i.add(V,S.Added),V.addSelfToProject(i),o.push(V)}),this.inputs.sort((A,C)=>A.index-C.index);const{updated:v,added:E,removed:w}=this.removeUnrecognizedInputs(i);return a.push(...v),o.push(...E),p.push(...w),i==null||i.attemptAutoclose("sync-missing-fixed-inputs",this.id),{updated:R(a),added:R(o),removed:R(p),affected:R(e),self:this}}syncOutputs(i=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"sync-missing-fixed-outputs"))){const a=[],o=[],p=[],e=[],y=[];this.outputs=this.initialData.outputs.reduce((C,V)=>{if(V.type===f.GenericReference){const F=qi(V,this.project);return F?[...C,F]:C}const U=ie(V,this.project);return y.push(U.index),U.setParent(this,null),U.initChildren(i),[...C,U]},[]);const v=this.declaration.getUniqueReturnDeclarations().filter(C=>!this.outputs.find(V=>{var U;return((U=V.declaration)==null?void 0:U.id)===C.id}));this.outputs.sort((C,V)=>C.index-V.index),v.forEach((C,V)=>{this.outputs.forEach(q=>{q.index>=C.index&&q.index++});const U=y.includes(C.index)?this.outputs.length-1+V:C.index,F={id:N.UUID.uuid(),version:N.UUID.uuid(),createdAt:(i==null?void 0:i.timestamp)||L().toISOString(),author:N.sessionAuthor,previousVersion:null,deleted:!1,type:f.OutputMap,declaration:C.toJSON(),defaultValue:null,writesValues:[],index:U,parent:this.toReference()},K=ie(F,this.project);K.setParent(this,i),K.initChildren(i),i==null||i.add(K,S.Added),K.addSelfToProject(i)}),this.outputs.sort((C,V)=>C.index-V.index);const{updated:E,added:w,removed:A}=this.removeUnrecognizedOutputs(i);return a.push(...E),o.push(...w),p.push(...A),i==null||i.attemptAutoclose("sync-missing-fixed-outputs",this.id),{updated:R(a),added:R(o),removed:R(p),affected:R(e),self:this}}getUnusedInputs(){return this.inputs.filter(i=>i.suggestion||!i.readsValue&&!i.defaultValue)}getUnusedOutputs(){return this.outputs.filter(i=>i.suggestion||!i.writesValues.length)}getUsedInputs(){return this.inputs.filter(i=>!i.suggestion&&(i.readsValue||i.defaultValue))}getUsedOutputs(){return this.outputs.filter(i=>!i.suggestion&&i.writesValues.length)}};g(Qt,"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,...o)=>null}),g(Qt,"type",f.FunctionCall),g(Qt,"USER_MANAGED_PARENT_TYPES",[...Nr,f.Project]),g(Qt,"PARENT_TYPES",[...Qt.USER_MANAGED_PARENT_TYPES]),g(Qt,"MUTABLE_BASE_PROPERTIES",["catchesError"]),g(Qt,"INMUTABLE_BASE_PROPERTIES",["id","type","version","createdAt","author","previousVersion"]),g(Qt,"BASE_PROPERTIES",[...Qt.MUTABLE_BASE_PROPERTIES,...Qt.INMUTABLE_BASE_PROPERTIES]),g(Qt,"MUTABLE_META_PROPERTIES",["x","y"]),g(Qt,"INMUTABLE_META_PROPERTIES",[...Qt.INMUTABLE_BASE_PROPERTIES]),g(Qt,"META_PROPERTIES",[...Qt.MUTABLE_META_PROPERTIES,...Qt.INMUTABLE_META_PROPERTIES]),g(Qt,"MUTABLE_UPSTREAM_PROPERTIES",["calledBySuccess","calledByError","calledByEntry"]),g(Qt,"INMUTABLE_UPSTREAM_PROPERTIES",["declaration","parent"]),g(Qt,"UPSTREAM_PROPERTIES",[...Qt.MUTABLE_UPSTREAM_PROPERTIES,...Qt.INMUTABLE_UPSTREAM_PROPERTIES]),g(Qt,"MUTABLE_DOWNSTREAM_PROPERTIES",["successCalls","errorCalls","writesValues","inputs","outputs","error"]),g(Qt,"INMUTABLE_DOWNSTREAM_PROPERTIES",[]),g(Qt,"DOWNSTREAM_PROPERTIES",[...Qt.MUTABLE_DOWNSTREAM_PROPERTIES,...Qt.INMUTABLE_DOWNSTREAM_PROPERTIES]),g(Qt,"PROPERTIES",[...Qt.META_PROPERTIES,...Qt.UPSTREAM_PROPERTIES,...Qt.DOWNSTREAM_PROPERTIES]);let Eo=Qt;function sb(d){return d&&typeof d.then=="function"}function zTe(d){const u=new Yn(d[0]),i=d.map(o=>o.id),a={};return d.forEach(o=>{a[o.id]=o}),u.order=i,u.flatRecord=a,u.orderEntities(),u.order.map(o=>u.flatRecord[o])}function XTe(d){const u=new Yn(Object.values(d)[0]),i=Object.keys(d);return u.order=i,u.flatRecord=d,u.orderEntities(),u.order}class Yn{constructor(u){g(this,"order",[]);g(this,"flatRecord",{});g(this,"allBuiltInEntityIds",Ys());g(this,"onGoingVisits",{});u&&(this.flatten(u),this.orderEntities())}flatten(u){const i=new Set(Ys()),a=R(me(u,i,{ignoreBuiltInBaseEntities:!0})),o=new Set;for(const p of a)this.flatRecord[p.id]=p,o.add(p.id);this.order=Array.from(o)}moveEntityAfterDependencies(u){const{upstream:i}=Sd(u,this.flatRecord,{ignoreBuiltInBaseEntities:!0,allBuiltInEntityIds:this.allBuiltInEntityIds});for(const a of Object.keys(i)){const o=this.order.indexOf(a),p=this.order.indexOf(u.id);if(o>p)return this.order.splice(p,1),this.order.splice(o,0,u.id),!0}return!1}orderEntities(){let u=!1;for(let i=0;i<this.order.length;i++){const a=this.order[i],o=this.flatRecord[a];if(o||Me.warn(`Entity with id ${a} not found in flatRecord. Skipping...`),this.moveEntityAfterDependencies(o)){u=!0;break}}u&&this.orderEntities()}getUpstreamOngoingDependenciesVisits(u,i){const{upstream:a}=Sd(this.flatRecord[u],this.flatRecord,{ignoreBuiltInBaseEntities:!0,allBuiltInEntityIds:this.allBuiltInEntityIds}),o={};return Object.entries(this.onGoingVisits[i]||{}).forEach(([p,e])=>{Object.keys(a).includes(p)&&(o[p]=e)}),o}getDownstreamOngoingDependenciesVisits(u,i){const a=Object.keys(this.onGoingVisits[i]||{}),o=new Set(a.flatMap(e=>Object.keys(Sd(this.flatRecord[e],this.flatRecord,{ignoreBuiltInBaseEntities:!0,allBuiltInEntityIds:this.allBuiltInEntityIds}).downstream))),p={};return Array.from(o).forEach(e=>{e===u&&(p[e]=this.onGoingVisits[i][e])}),p}async settlePromises(u,i){const a=Object.values(u);a.length&&await Promise.all(a),Object.keys(u).forEach(o=>{delete this.onGoingVisits[i][o]})}visit(u){const i=this.order;for(const a of i)u(this.flatRecord[a],this.flatRecord);return this}reverseVisit(u){const i=this.order.slice().reverse();for(const a of i)u(this.flatRecord[a],this.flatRecord);return this}async visitAsync(u){const i=this.order,a=Math.random().toString(36).substring(7);this.onGoingVisits[a]={};for(const o of i){const p=this.getUpstreamOngoingDependenciesVisits(o,a);Object.keys(p).length&&await this.settlePromises(p,a);const e=u(this.flatRecord[o],this.flatRecord);sb(e)&&(this.onGoingVisits[a][o]=e)}return await this.settlePromises(this.onGoingVisits[a],a),this.onGoingVisits[a]={},this}async reverseVisitAsync(u){const i=this.order.slice().reverse(),a=Math.random().toString(36).substring(7);this.onGoingVisits[a]={};for(const o of i){const p=this.getDownstreamOngoingDependenciesVisits(o,a);Object.keys(p).length&&await this.settlePromises(p,a);const e=u(this.flatRecord[o],this.flatRecord);sb(e)&&(this.onGoingVisits[a][o]=e)}return await this.settlePromises(this.onGoingVisits[a],a),this.onGoingVisits[a]={},this}}function E5(d,u){switch(d.id){case he["built-in-base-entity"].BUILT_IN_PERSISTED_ENTITY_ENTITY.id:{const i=d.project.entities.filter(v=>!!v.implements.find(E=>E.id===he["built-in-base-entity"].BUILT_IN_RELATIONAL_DATABASE_ENTITY.id)),a=i.find(v=>{const E=v.properties.find(C=>C.implements&&C.implements.id===he["built-in-base-entity"].BUILT_IN_RELATIONAL_DATABASE_ENTITY.properties.default.id),w=E==null?void 0:E.getDefaultValue();return(w==null?void 0:w.value)===!0});if(!a&&i.length){const E=i[0].properties.find(A=>A.implements&&A.implements.id===he["built-in-base-entity"].BUILT_IN_RELATIONAL_DATABASE_ENTITY.properties.default.id),w=E==null?void 0:E.defaultValue;if(w)w.metaSync({value:!0},u);else if(E!=null&&E.dataType){const A={id:N.UUID.uuid(),version:N.UUID.uuid(),createdAt:(u==null?void 0:u.timestamp)||new Date().toISOString(),author:N.sessionAuthor,previousVersion:null,deleted:!1,type:f.LiteralValue,standaloneParent:null,name:ae.EntityTemplate,autogeneration:null,value:!0,valueAsTypeSingle:null,valueAsTypeList:null,parent:E==null?void 0:E.toReference()},C=ie(A,d.project);return C.setParent(E,u),C.initChildren(u),u==null||u.add(C,S.Added),C.addSelfToProject(u),{newEntities:[C]}}return{newEntities:[]}}else if(a)return{newEntities:[]};const o=d.project.get(he["built-in-base-entity"].BUILT_IN_RELATIONAL_DATABASE_ENTITY.id),p=mm(o,"Main database",u);if(p.errors.length>0)return{newEntities:[]};const e=p.properties.find(v=>v.implements&&v.implements.id===he["built-in-base-entity"].BUILT_IN_RELATIONAL_DATABASE_ENTITY.properties.default.id),y=e==null?void 0:e.defaultValue;if(y)y.metaSync({value:!0},u);else if(e!=null&&e.dataType){const v={id:N.UUID.uuid(),version:N.UUID.uuid(),createdAt:(u==null?void 0:u.timestamp)||new Date().toISOString(),author:N.sessionAuthor,previousVersion:null,deleted:!1,type:f.LiteralValue,standaloneParent:null,name:ae.EntityTemplate,autogeneration:null,value:!0,valueAsTypeSingle:null,valueAsTypeList:null,parent:e==null?void 0:e.toReference()},E=ie(v,d.project);E.setParent(e,u),E.initChildren(u),u==null||u.add(E,S.Added),E.addSelfToProject(u)}return{newEntities:[p]}}}return{newEntities:[]}}function T5(d,u){const i=[],a=[],o=[],p=[];return d.implements.filter(y=>y.type===f.BuiltInBaseEntity).forEach(y=>{var v;switch(y.id){case he["built-in-base-entity"].BUILT_IN_PERSISTED_ENTITY_ENTITY.id:{const E=d.project.entities.filter(V=>V.implements.find(U=>U.id===he["built-in-base-entity"].BUILT_IN_RELATIONAL_DATABASE_ENTITY.id));let w=E.find(V=>!!V.properties.find(U=>{var F;return U.implements&&U.implements.id===he["built-in-base-entity"].BUILT_IN_RELATIONAL_DATABASE_ENTITY.properties.default.id&&((F=U.getDefaultValue())==null?void 0:F.value)===!0}));if(!w&&E.length)w=E[0];else if(!w&&!E.length){w=d.project.getBuiltIn(he["built-in-base-entity"].BUILT_IN_RELATIONAL_DATABASE_ENTITY.id).implement("Relational database",u);const U=w.properties.find(F=>{var K;return((K=F.implements)==null?void 0:K.id)===he["built-in-base-entity"].BUILT_IN_RELATIONAL_DATABASE_ENTITY.properties.default.id});(v=U==null?void 0:U.defaultValue)==null||v.metaSync({value:!0},u),a.push(w)}const A=d.properties.find(V=>V.implements&&V.implements.id===he["built-in-base-entity"].BUILT_IN_PERSISTED_ENTITY_ENTITY.properties.database.id),C=A==null?void 0:A.defaultValue;if(A&&!C){const V={id:N.UUID.uuid(),version:N.UUID.uuid(),createdAt:(u==null?void 0:u.timestamp)||new Date().toISOString(),author:N.sessionAuthor,previousVersion:null,deleted:!1,type:f.LiteralValue,standaloneParent:null,name:ae.EntityTemplate,autogeneration:null,value:null,valueAsTypeSingle:(w==null?void 0:w.toJSON())||null,valueAsTypeList:null,parent:A==null?void 0:A.toReference()},U=ie(V,d.project);U.hydrateAncestors(),U.setParent(A,u),U.addSelfToProject(u),U.initChildren(u),u==null||u.add(U,S.Added),a.push(U);return}else C&&!C.valueAsTypeSingle&&C.setValueAsTypeSingle(w||null,u);return}}}),{self:d,updated:R(i),added:R(a),removed:R(o),affected:R(p)}}function mm(d,u,i,a){const o=a||N.UUID.uuid(),p=N.UUID.uuid(),e={id:o,version:p,createdAt:(i==null?void 0:i.timestamp)||new Date().toISOString(),author:N.sessionAuthor,previousVersion:null,deleted:!1,name:u,type:f.DefinitionEntity,codeName:null,description:null,static:d.static,abstract:!1,properties:[],methods:[],abstractMethods:[],extends:null,implements:[d.toJSON()],x:0,y:0,parent:d.project.toReference()};E5(d,i);const y=ie(e,d.project);return y.hydrateAncestors(),i==null||i.add(y,S.Added),y.addSelfToProject(i),y.addImplementation(d),y.setParent(d.project,i),y.initChildren(i),T5(y,i),y}function nb(d,u){return u.entities.find(o=>{const p=o.properties,e=p.map(A=>A.name),y=d.every(A=>e.includes(A)),v=e.filter(A=>!d.includes(A)),E=p.every(A=>!v.includes(A.name)||!A.required);return y&&E})||null}function I5(d,u,i,a=yi.OrDataTypeGroup){const o=[],p=[],e=[],y=[],E={id:N.UUID.uuid(),version:N.UUID.uuid(),createdAt:(i==null?void 0:i.timestamp)||new Date().toISOString(),author:N.sessionAuthor,previousVersion:null,deleted:!1,type:f.DataType,options:null,implementationChooseOne:!1,entity:d.toJSON(),isList:!1,asType:!1,andChildrenGroup:null,index:null,orChildrenGroup:null,staticEntities:null,interactiveEntities:null,actionEntities:null,like:!0,inferred:!1,parentRelationType:a,parent:u.toReference()},w=ie(E,d.project);return p.push(w),w.setParent(u,i),w.initChildren(i),i==null||i.add(w,S.Added),w.setEntity(d,i),w.addSelfToProject(i),{updated:R(o),added:R(p),removed:R(e),affected:R(y),self:w}}function ab(d,u,i,a,o){var E,w,A,C,V,U,F,K;const p=[],e=[],y=[],v=[];switch(typeof d){case"string":let q=!1;const ne=new Date(d);if(ne instanceof Date&&!isNaN(ne.valueOf())&&(q=!0),q){const J=u.project.getBuiltIn(he[f.PrimitiveEntity][ae.Date].id);u.setEntity(J,a);break}else{const J=u.project.getBuiltIn(he[f.PrimitiveEntity][ae.String].id);u.setEntity(J,a);break}case"number":u.setEntity(u.project.getBuiltIn(he[f.PrimitiveEntity][ae.Number].id),a);break;case"boolean":u.setEntity(u.project.getBuiltIn(he[f.PrimitiveEntity][ae.Boolean].id),a);break;case"object":if(d===null){u.setEntity(u.project.getBuiltIn(he[f.PrimitiveEntity][ae.Null].id),a);break}else if(Array.isArray(d))if(u.metaSync({isList:!0},a),d.length>0){const J=d.slice(0,5).filter(X=>X!==void 0);if(J.every(X=>typeof X==typeof J[0])&&(typeof J[0]!="object"||J[0]===null))switch(typeof J[0]){case"string":u.setEntity(u.project.getBuiltIn(he[f.PrimitiveEntity][ae.String].id),a);break;case"number":u.setEntity(u.project.getBuiltIn(he[f.PrimitiveEntity][ae.Number].id),a);break;case"boolean":u.setEntity(u.project.getBuiltIn(he[f.PrimitiveEntity][ae.Boolean].id),a);break;case"object":u.setEntity(u.project.getBuiltIn(he[f.PrimitiveEntity][ae.Null].id),a);break}else{const X=[];let ce=!1;J.forEach(Y=>{var pe,ee,ue,Ie;if(Array.isArray(Y)&&(ce=!0),typeof Y=="object"&&!Array.isArray(Y)&&Y!==null){const Ue=vm(Y,u.project,{...i,id:N.UUID.uuid()},a,o);Ue.hasCreated&&X.push((pe=Ue.changeSet)==null?void 0:pe.self),p.push(...(ee=Ue.changeSet)==null?void 0:ee.updated),e.push(...(ue=Ue.changeSet)==null?void 0:ue.added),y.push(...(Ie=Ue.changeSet)==null?void 0:Ie.removed)}});const z=R(X);if(!z.length&&!ce){J.forEach(Y=>{const pe={id:N.UUID.uuid(),version:N.UUID.uuid(),createdAt:(a==null?void 0:a.timestamp)||new Date().toISOString(),author:N.sessionAuthor,previousVersion:null,deleted:!1,type:f.DataType,options:null,implementationChooseOne:!1,entity:null,isList:!1,asType:!1,andChildrenGroup:null,index:null,orChildrenGroup:null,staticEntities:!1,interactiveEntities:!0,actionEntities:!1,like:!0,inferred:!1,parentRelationType:yi.OrDataTypeGroup,parent:u.toReference()},ee=ie(pe,u.project);switch(ee.setParent(u,a),ee.initChildren(a),a==null||a.add(ee,S.Added),ee.addSelfToProject(a),typeof Y){case"string":ee.setEntity(ee.project.getBuiltIn(he[f.PrimitiveEntity][ae.String].id),a);break;case"number":ee.setEntity(ee.project.getBuiltIn(he[f.PrimitiveEntity][ae.Number].id),a);break;case"boolean":ee.setEntity(ee.project.getBuiltIn(he[f.PrimitiveEntity][ae.Boolean].id),a);break;case"object":ee.setEntity(ee.project.getBuiltIn(he[f.PrimitiveEntity][ae.Null].id),a);break}});break}else z.length===1&&!ce?u.setEntity(z[0],a):J.forEach(Y=>{if(typeof Y=="object"&&!Array.isArray(Y)&&Y!==null){const pe=nb(Object.keys(Y),u.project);if(pe){const ee=I5(pe||z[0],u,a,yi.OrDataTypeGroup);p.push(...ee.updated),e.push(...ee.added),y.push(...ee.removed)}}else{const pe={id:N.UUID.uuid(),version:N.UUID.uuid(),createdAt:(a==null?void 0:a.timestamp)||new Date().toISOString(),author:N.sessionAuthor,previousVersion:null,deleted:!1,type:f.DataType,options:null,implementationChooseOne:!1,entity:null,isList:Array.isArray(Y),asType:!1,andChildrenGroup:null,index:null,orChildrenGroup:null,staticEntities:!1,interactiveEntities:!0,actionEntities:!1,like:!0,inferred:!1,parentRelationType:yi.OrDataTypeGroup,parent:u.toReference()},ee=ie(pe,u.project);ee.setParent(u,a),ee.initChildren(a),a==null||a.add(ee,S.Added),ee.addSelfToProject(a);const ue=ab(Y,ee,{...i,id:N.UUID.uuid()},a,o);p.push(...ue.updated),e.push(...ue.added),y.push(...ue.removed)}})}}else{const J=vm(d[0],u.project,{...i},a,o);u.setEntity((E=J.changeSet)==null?void 0:E.self,a),p.push(...(w=J.changeSet)==null?void 0:w.updated),e.push(...(A=J.changeSet)==null?void 0:A.added),y.push(...(C=J.changeSet)==null?void 0:C.removed);break}else{const J=vm(d,u.project,{...i},a,o);u.setEntity((V=J.changeSet)==null?void 0:V.self,a),p.push(...(U=J.changeSet)==null?void 0:U.updated),e.push(...(F=J.changeSet)==null?void 0:F.added),y.push(...(K=J.changeSet)==null?void 0:K.removed);break}}return{updated:R(p),added:R(e),removed:R(y),affected:R(v),self:u}}function vm(d,u,i,a,o){const p=[],e=[],y=[],v=[],E=Object.keys(d),w=nb(E,u);if(w)return{hasCreated:!1,changeSet:{updated:[],added:[],removed:[],affected:[],self:w}};const A=o?i.name+" of "+o.name:i.name,V={id:i.id||N.UUID.uuid(),version:N.UUID.uuid(),createdAt:(a==null?void 0:a.timestamp)||new Date().toISOString(),author:N.sessionAuthor,previousVersion:null,deleted:!1,name:A,codeName:null,type:f.DefinitionEntity,description:i.description||null,static:i.static||!1,abstract:i.abstract||!1,properties:[],methods:[],abstractMethods:[],extends:null,implements:[],x:0,y:0,parent:u.toReference()},U=ie(V,u);return U.setParent(u,a),U.initChildren(a),a==null||a.add(U,S.Added),U.addSelfToProject(a),e.push(U),E.forEach((F,K)=>{const ne={id:N.UUID.uuid(),version:N.UUID.uuid(),createdAt:(a==null?void 0:a.timestamp)||new Date().toISOString(),author:N.sessionAuthor,previousVersion:null,deleted:!1,name:F,type:f.Property,codeName:F,description:null,static:!1,abstract:!1,defaultValue:null,constant:!1,interactive:!0,dataType:null,implements:null,extends:null,index:K,hidden:!1,private:!1,required:!0,parent:U.toReference()},J=ie(ne,u);J.setParent(U,a),J.initChildren(a),a==null||a.add(J,S.Added),J.addSelfToProject(a),e.push(J);const de=d[F],ce={id:N.UUID.uuid(),version:N.UUID.uuid(),createdAt:(a==null?void 0:a.timestamp)||new Date().toISOString(),author:N.sessionAuthor,previousVersion:null,deleted:!1,type:f.DataType,parentRelationType:null,options:null,implementationChooseOne:!1,entity:null,isList:!1,asType:!1,andChildrenGroup:null,index:null,orChildrenGroup:null,staticEntities:!1,interactiveEntities:!0,actionEntities:!1,like:!0,inferred:!1,parent:J.toReference()},z=ie(ce,u);z.setParent(J,a),z.initChildren(a),a==null||a.add(z,S.Added),z.addSelfToProject(a),e.push(z);const Y=ab(de,z,{...i,name:F,id:N.UUID.uuid()},a,o||U);p.push(...Y.updated),e.push(...Y.added),y.push(...Y.removed)}),{hasCreated:!0,changeSet:{updated:R(p),added:R(e),removed:R(y),affected:R(v),self:U}}}function Na(d,u,i,a){const o=[];return!d.length||!u.length?{errors:o,overlap:!1}:(d.length>u.length?d.forEach(p=>{const e=u.find(v=>v.name===p.name),y=u.find(v=>{var E,w;return!!p.implements&&((E=v.implements)==null?void 0:E.id)===((w=p.implements)==null?void 0:w.id)});if(e){const v=new ir({id:p.id+"--"+e.id+"--"+a,message:`Entity of type ${p.type} named "${p.name}" with id "${p.id}" overrides a base ${e.type} ${e.name} with id "${e.id}" that has the same name`,severity:Z.Error,code:a,entity:p,firstRelationship:e});o.push(v)}if(y){const v=new ir({id:p.id+"--"+y.id+"--"+i,message:`Entity of type ${p.type} named "${p.name}" with id "${p.id}" overrides a base ${y.type} ${y.name} with id "${y.id}" that implements the same base descriptor`,severity:Z.Error,code:i,entity:p,firstRelationship:y});o.push(v)}}):u.forEach(p=>{var v;const e=d.find(E=>E.name===p.name),y=d.find(E=>{var w,A;return!!E.implements&&((w=E.implements)==null?void 0:w.id)===((A=p.implements)==null?void 0:A.id)});if(e){const E=new ir({id:e.id+"--"+p.id+"--"+a,message:`Entity of type ${e.type} named "${e.name}" with id "${e.id}" overrides a base entity ${p.name} with id "${p.id}" that has the same name`,severity:Z.Error,code:a,entity:e,firstRelationship:p});o.push(E)}if(y){const E=new ir({id:y.id+"--"+p.id+"--"+i,message:`Entity of type ${y.type} named "${y.name}" with id "${y.id}" overrides a base entity ${p.name} with id "${p.id}" that implements the same base ${(v=y==null?void 0:y.implements)==null?void 0:v.type}`,severity:Z.Error,code:i,entity:y,firstRelationship:p});o.push(E)}}),{errors:o,overlap:!!o.length})}function QTe(d,u){return d.abstract||(d.properties.forEach(a=>{a.abstract||a.metaSync({abstract:!0},u)}),Object.values(d.detachedDependents).forEach(a=>{a.field===RI.Entity&&a.entity.remove({ignoreUpstream:!1},u)}),d.metaSync({abstract:!0},u)),d}function eIe(d,u){return d.abstract&&(d.properties.forEach(a=>{a.abstract&&a.metaSync({abstract:!1},u)}),Object.values(d.detachedDependents).forEach(a=>{(a.field===Mm.Implements||a.field===Mm.Extends)&&a.entity.onDetachedDependencyRemoved(d,a.field,u)}),d.metaSync({abstract:!1},u)),d}function tIe(d,u){return d.static||(d.properties.forEach(a=>{a.static||a.metaSync({static:!0},u)}),d.metaSync({static:!0},u)),d}function rIe(d,u){return d.static&&d.metaSync({static:!1},u),d}var ki=(d=>(d.StringValueMustNotHaveSpaces="string-value-must-not-have-spaces",d.StringValueMustNotHaveDashes="string-value-must-not-have-dashes",d.MustBeUniqueAmongSameEntities="must-be-unique-among-same-entities",d))(ki||{});function ob(d,u){const i=[],a=u;if(!a)return{errors:i,override:u};if(typeof a!="string")return{errors:[],override:u};if(a.includes(" ")){const o=new ir({id:d.id+"--string-value-must-not-have-spaces",message:`Entity of type ${d.type} with id "${d.id}" has an invalid value "${u}". The value cannot contain spaces.`,severity:Z.Error,code:"string-value-must-not-have-spaces",entity:d});i.push(o)}return{errors:i,override:a.replace(/\s/g,"-")}}function A5(d,u){const i=[],a=u;if(!a)return{errors:i,override:u};if(typeof a!="string")return{errors:[],override:u};if(a.includes(" ")){const o=new ir({id:d.id+"--string-value-must-not-have-spaces",message:`Entity of type ${d.type} with id "${d.id}" has an invalid value "${u}". The value cannot contain spaces or dashes.`,severity:Z.Error,code:"string-value-must-not-have-spaces",entity:d});i.push(o)}if(a.includes("-")){const o=new ir({id:d.id+"--string-value-must-not-have-dashes",message:`Entity of type ${d.type} with id "${d.id}" has an invalid value "${u}". The value cannot contain spaces or dashes.`,severity:Z.Error,code:"string-value-must-not-have-dashes",entity:d});i.push(o)}return{errors:i,override:a.replace(/\s|-/g,"_")}}function lb(d,u){var i;if(d.type===f.LiteralValue){let a=(i=d.value)==null?void 0:i.toString();try{a=JSON.stringify(d.value,null,2)}catch{}return`${d.type}: ${d.id} (${W(d,u)}) = ${a}`}if(d.type===f.DataType){if(d instanceof fs||d.increaseVersion)return`${d.type}: ${d.id} (${Jd(d)})`;try{const a=Jd(d);return`${d.type}: ${d.id} (${a})`}catch{}}return`${d.type}: ${d.id} (${W(d,u)})`}function jd(d,u){const i=Io(d);if(i.length===0)return{list:[],last:null};let a=null;return{list:i.flatMap(p=>{if(p===u)return a=p,[p];const e=jd(p,u);return e.last&&(a=e.last),[p,...e.list]}),last:a}}function To(d,u){const i=d.calledBy;if(i.length===0)return{list:[],last:null,callType:null};let a=null,o=null;return{list:i.flatMap(e=>{if(e===u)return a=e,Dt.includes(e.type)?e.parent.type===f.Loop?o="loop-body":o="entry":e.successCalls.includes(d)?o="success":e.errorCalls.includes(d)&&(o="error"),[e];if(!xi.includes(e.type))return[e];const y=To(e,u);return y.last&&(a=y.last,o=y.callType),[e,...y.list]}),last:a,callType:o}}function iIe(d,u){if(d===u)return"same-entity";if(!Oi.includes(d.type)||!Jp(d).find(o=>o.callee===u))return null;if(Dt.includes(d.type)){if(d.calls.includes(u))return d.type===f.Loop?"loop-body":"entry"}else if(ar.includes(d.type)&&d.type!==f.InternalCall){if(d.successCalls.includes(u))return"success";if(d.errorCalls.includes(u))return"error"}return null}function Hp(d){const u=_i(d,d.project);return u?Dt.includes(u.type)?u:u.type===f.Loop?u.body:null:null}function b5(d,u){const i=d.calledBy;return!i||!i.length?!1:i.every(a=>a===u?!0:xi.includes(a.type)?!!To(a,u).last:!1)}function w5(d){return d.filter(u=>{const i=Hp(u);return!d.filter(p=>p!==u).some(p=>p===i?!1:Tm(p,u))})}function R5(d,u){if(!d)throw new Error("findNextSingleCallerAncestor: Target is not defined, cannot find ancestor.");let i=d;(d.type===f.VariableDeclaration||d.type===f.VariableInstance)&&!d.calledBy.length&&!d.successCalls.length&&!d.errorCalls.length&&d.internalCalls.some(C=>!!C.calledBy.length)&&(i=d.internalCalls.find(V=>!!V.calledBy.length));const a=u||_i(i,d.project);if(!a)return{ancestor:null,callType:null};if(a.type===f.Project)return{ancestor:null,callType:null};const o=Jp(a);if(!o.find(C=>C.callee===i))return{ancestor:null,callType:null};if(a.type===f.Loop){if(a.body.calls.includes(i))return{ancestor:a,callType:"loop-body"}}else if(Dt.includes(a.type)){if(a.calls.includes(i))return a.type===f.FunctionDeclaration&&a.parent.type===f.Loop?{ancestor:a,callType:"loop-body"}:{ancestor:a,callType:"entry"}}else if(ar.includes(a.type)){if(a.successCalls.includes(i))return{ancestor:a,callType:"success"};if(a.errorCalls.includes(i))return{ancestor:a,callType:"error"}}const e=o.filter(C=>!(C.callee===i||!Oi.includes(C.callee.type)||!vt(C.callee).find(F=>F===i)));if(e.length===0)return{ancestor:null,callType:null};if(e.length===1){const C=e[0];if(Dt.includes(C.callee.type))return C.callee.type===f.Loop?{ancestor:C.callee,callType:"loop-body"}:{ancestor:C.callee,callType:"entry"};if(ar.includes(C.callee.type)){if(C.callType==="success"&&C.callee.type===f.InternalCall)return{ancestor:C.callee,callType:"success"};if(C.callType==="error"&&C.callee.type===f.InternalCall)return{ancestor:C.callee,callType:"error"}}}const y=e.filter(C=>b5(i,C.callee)),v=y.filter(C=>{const V=vt(C.callee),U=y.filter(K=>K.callee!==C.callee).map(K=>K.callee);return!V.some(K=>!!U.find(ne=>ne===K))});if(v.length===0)return{ancestor:a,callType:Dt.includes(a.type)?a.type===f.Loop?"loop-body":"entry":"success"};if(v.length>1)throw new Error(`findNextSingleCallerAncestor: Could not be resolved, multiple candidates found: ${v.map(C=>W(C.callee,i.project)).join(", ")}`);const E=v[0].callee,A=Jp(E).find(C=>C.callee===i);return{ancestor:E,callType:A.callType}}function sIe(d){if(![f.VariableDeclaration,f.OutputMap].includes(d.type))throw new Error("getEarliestSingleCallerAncestorOfValueWriterAndItsValueReaders can only be used with a value writer entity");let u;if(d.type===f.VariableDeclaration?u=d:d.type===f.OutputMap&&(u=d.parent),!u)throw new Error("getEarliestSingleCallerAncestorOfValueWriterAndItsValueReaders can only be used with a value writer entity that has a caller");const i=R([d,...ub(d)]),a=R(i.map(y=>db(y)).flatMap(y=>hr.includes(y==null?void 0:y.type)?y.calledBy:[y]));if(a.length===1){if(Dt.includes(a[0].type))return a[0].parent.type===f.Loop?{ancestor:a[0],callType:"loop-body"}:{ancestor:a[0],callType:"entry"};if(a[0].successCalls.includes(u))return{ancestor:a[0],callType:"success"};if(a[0].errorCalls.includes(u))return{ancestor:a[0],callType:"error"}}const o=a.map(y=>{if(Dt.includes(y.type))return y.parent.type===f.Loop?{ancestor:y,callType:"loop-body"}:{ancestor:y,callType:"entry"};const v=R5(y);if(!v.ancestor)throw new Error(`getEarliestSingleCallerAncestorOfValueWriterAndItsValueReaders: Could not be resolved, no ancestor found for ${W(y,u.project)}`);return v}).filter((y,v,E)=>v===E.findIndex(w=>{var A,C;return((A=w.ancestor)==null?void 0:A.id)===((C=y.ancestor)==null?void 0:C.id)})),p=Hp(u),e=o.filter(y=>y!=null&&y.ancestor?p===y.ancestor?!0:!o.filter(w=>w.ancestor!==y.ancestor).map(w=>w.ancestor).some(w=>{const A=To(y.ancestor,w);return!!(A!=null&&A.last)}):!1);if(e.length===0)return{ancestor:p,callType:(p==null?void 0:p.parent.type)===f.Loop?"loop-body":"entry"};if(e.length>1)throw new Error(`getEarliestSingleCallerAncestorOfValueWriterAndItsValueReaders: Could not be resolved, multiple candidates found: ${e.map(y=>W(y.ancestor,u.project)).join(", ")}`);return{ancestor:e[0].ancestor,callType:e[0].callType}}function _5(d,u){if(d===u)return!0;if(vt(d).includes(u)||!vt(u).includes(d))return!1;const o=d.calledBy;return o.length===0?!1:o.length===1?o[0]===u:w5(o).length>1&&o.includes(u)?!1:o.every(e=>d===u?!0:Dt.includes(e.type)?!1:_5(e,u))}function g5(d){const u=[];let i=d.calledBySuccess;i=i.filter(o=>!i.filter(y=>y!==o).some(y=>Tm(y,o)));let a=d.calledByError;a=a.filter(o=>!a.filter(y=>y!==o).some(y=>Tm(y,o)));for(const o of i)u.push({ancestor:o,callType:"success"});for(const o of a)u.push({ancestor:o,callType:"error"});return u}function D5(d){const u=[];return g5(d).forEach(a=>{a.ancestor.type===f.Condition&&u.push({condition:a.ancestor,call:d,callType:a.callType});const p=D5(a.ancestor).filter(e=>!u.some(y=>y.condition.id===e.condition.id));u.push(...p)}),u}function db(d){if(!d)return null;if(d.type===f.Condition&&d.parent.type===f.Condition)return Im(d.parent);if(Cv.includes(d.type))return d;const u=d.parent;return u?db(u):null}function ub(d,u=new Set){return d.writesValues.reduce((i,a)=>u.has(a.id)?i:(u.add(a.id),dn.includes(a.type)?[...i,a]:Ur.includes(a.type)?[...i,a,...ub(a,u)]:i),[])}function Wp(d){const u=d.calledBy;if(u.length===0)return d.project;const i=u.reduce((a,o)=>{const p=_i(o,d.project);return!p||p.type===f.Project?a:a.type===f.Project||jd(p,a).last?p:(jd(a,p).last,a)},d.project);return i.type===f.FunctionDeclaration&&i.parent.type===f.Loop?i.parent:i}function He(d,u){let i=Wp(d);if(d.type===f.InternalCall)if(d.parent.type===f.VariableInstance){const o=zs(i,d.parent.declaration,d.project);!o.compatible&&o.type!=="b-is-global-a-is-not"?d.parent.remove({ignoreUpstream:!1},u):(d.parent.setParent(i,u),d.parent.addSelfToProject(u))}else d.parent.setParent(i,u),d.parent.addSelfToProject(u);else if((d.type===f.ContinueStatement||d.type===f.BreakStatement)&&i.type!==f.Loop){d.remove({ignoreUpstream:!1},u);return}else if(d.type===f.ReturnStatement&&!Nr.includes(i.type)){d.remove({ignoreUpstream:!1},u);return}else if(It.includes(d.type)){const o=d.usedInternalCalls[0];if(o)if(i=Wp(o),d.type===f.VariableInstance){const p=zs(i,d.declaration,d.project);!p.compatible&&p.type!=="b-is-global-a-is-not"?d.remove({ignoreUpstream:!1},u):(d.setParent(i,u),d.addSelfToProject(u))}else d.setParent(i,u),d.addSelfToProject(u);else if(d.type===f.VariableInstance){const p=zs(i,d.declaration,d.project);!p.compatible&&p.type!=="b-is-global-a-is-not"?d.remove({ignoreUpstream:!1},u):(d.setParent(i,u),d.addSelfToProject(u))}else d.setParent(i,u),d.addSelfToProject(u)}else d.setParent(i,u),d.addSelfToProject(u);if(hr.includes(d.type))return;vt(d).forEach(o=>{let p=Wp(o);if(o.type===f.InternalCall)if(o.parent.type===f.VariableInstance){const e=zs(p,o.parent.declaration,d.project);!e.compatible&&e.type!=="b-is-global-a-is-not"?o.parent.remove({ignoreUpstream:!1},u):(o.parent.setParent(p,u),o.parent.addSelfToProject(u))}else o.parent.setParent(p,u),o.parent.addSelfToProject(u);else if((o.type===f.ContinueStatement||o.type===f.BreakStatement)&&p.type!==f.Loop){o.remove({ignoreUpstream:!1},u);return}else if(o.type===f.ReturnStatement&&!Nr.includes(p.type)){o.remove({ignoreUpstream:!1},u);return}else if(It.includes(o.type)){const e=o.usedInternalCalls[0];if(e)if(p=Wp(e),o.type===f.VariableInstance){const y=zs(p,o.declaration,d.project);!y.compatible&&y.type!=="b-is-global-a-is-not"?o.remove({ignoreUpstream:!1},u):(o.setParent(p,u),o.addSelfToProject(u))}else o.setParent(p,u),o.addSelfToProject(u);else if(o.type===f.VariableInstance){const y=zs(p,o.declaration,d.project);!y.compatible&&y.type!=="b-is-global-a-is-not"?o.remove({ignoreUpstream:!1},u):(o.setParent(p,u),o.addSelfToProject(u))}else o.setParent(p,u),o.addSelfToProject(u)}else o.setParent(p,u),o.addSelfToProject(u)})}function Em(d,u,i=new Set){const a=An(d),o=An(u),p=a.filter(v=>!o.includes(v)),e=a.filter(v=>o.includes(v)),y=p.reduce((v,E)=>i.has(E.id)?v:(i.add(E.id),R([...v,...Em(E,u,i)])),[]);return R([...e,...y])}function Tl(d,u){const i=jd(d,u);return i.last===u&&i.list.length>0&&i.list[0]!==u}function cb(d,u){return!!jd(d,u).last}function Tm(d,u){return!!To(d,u).last}function pb(d,u){if(!d||!u)throw new Error("Both entities must be defined to find a common ancestor");if(d===u)return d;const i=d.parent;if(i){if(i===u)return u;if(i.type===f.Project)return null}else return null;const a=u.parent;if(a){if(a===d)return d;if(a.type===f.Project)return null}else return null;return pb(i,a)}function nIe(d,u,i=!0){if(!d||!u)throw new Error("Both entities must be defined to find a common ancestor");if(d===u)return{ancestor:d,callType:"same-entity"};if(xi.includes(d.type)&&Oi.includes(u.type)){const y=To(d,u),v=y.last;if(v){if(v===u)return{ancestor:u,callType:y.callType}}else return{ancestor:null,callType:null}}if(xi.includes(u.type)&&Oi.includes(d.type)){const y=To(u,d),v=y.last;if(v){if(v===d)return{ancestor:d,callType:y.callType}}else return{ancestor:null,callType:null}}const a=Hp(d),o=Hp(u);if(!a||!o)return{ancestor:null,callType:null};if(a!==o)return{ancestor:null,callType:null};if(a.calls.includes(d)||a.calls.includes(u))return{ancestor:a,callType:"entry"};const p=a.calls.reduce((y,v)=>{if(!Oi.includes(v.type))return y;const E=Jp(v),w=E.find(C=>C.callee===d),A=E.find(C=>C.callee===u);return w&&A&&(!i||w.callType===A.callType)?[...y,{ancestor:v,callType:w.callType}]:y},[]);if(p.length===0)return{ancestor:null,callType:null};if(p.length===1)return{ancestor:p[0].ancestor,callType:p[0].callType};const e=p.filter(y=>!p.some(v=>v.ancestor!==y.ancestor&&To(y.ancestor,v.ancestor).last===v.ancestor));return e.length===1?{ancestor:e[0].ancestor,callType:e[0].callType}:{ancestor:a,callType:"entry"}}function fr(d){if(eh.includes(d.type)){if(d.type===f.FunctionDeclaration){const u=d.parent;if(u.type===f.DefinitionEntity)return fr(u);if(u.type===f.Loop)return u}return d.type===f.DefinitionEntity&&d.parent.type===f.DataType||d.type===f.Condition&&d.parent.type===f.Condition?fr(d.parent):d}else{const u=d.parent;return u?fr(u):null}}function Gd(d,u){const i=Fd(d,u);if(!i)return null;if(eh.includes(i.type)){if(i.type===f.FunctionDeclaration){const a=Fd(i.parent,u);if(a){if(a.type===f.DefinitionEntity)return a;if(a.type===f.Loop)return a}}if(i.parent){const a=Fd(i.parent,u);if(a&&(i.type===f.DefinitionEntity&&a.type===f.DataType||i.type===f.Condition&&a.type===f.Condition))return Gd(a,u)}return i}else{const a=i.parent?Fd(i.parent,u):null;return a?Gd(a,u):null}}function Jp(d){if(d.type===f.Loop){const u=[...Ni(d.successCalls).map(o=>({callee:o,callType:"success"})),...Ni(d.errorCalls).map(o=>({callee:o,callType:"error"})),...(d.body?vt(d.body):[]).map(o=>({callee:o,callType:"loop-body"}))];return R(u.map(o=>o.callee)).map(o=>{var e;const p=(e=u.find(y=>y.callee===o))==null?void 0:e.callType;return{callee:o,callType:p}})}if(ar.includes(d.type)){const u=[...Ni(d.successCalls).map(o=>({callee:o,callType:"success"})),...Ni(d.errorCalls).map(o=>({callee:o,callType:"error"}))];return R(u.map(o=>o.callee)).map(o=>{var e;const p=(e=u.find(y=>y.callee===o))==null?void 0:e.callType;return{callee:o,callType:p}})}if(Dt.includes(d.type)){const u=[...Ni(d.calls).map(o=>d.parent.type===f.Loop?{callee:o,callType:"loop-body"}:{callee:o,callType:"entry"})];return R(u.map(o=>o.callee)).map(o=>{var e;const p=(e=u.find(y=>y.callee===o))==null?void 0:e.callType;return{callee:o,callType:p}})}return[]}function Im(d){if(!d)return null;if(d.type===f.Condition&&d.parent.type===f.Condition)return Im(d.parent);if(xi.includes(d.type))return d;const u=d.parent;return u?Im(u):null}function O5(d){if(!d)return null;if(ar.includes(d.type))return d;const u=d.parent;return u?O5(u):null}function C5(d){if(!d)return null;if(Oi.includes(d.type))return d;const u=d.parent;return u?C5(u):null}function aIe(d){return d.type===f.VariableDeclaration?[d]:ar.includes(d.type)?[...d.inputs,...d.outputs||[]]:hr.includes(d.type)?d.outputs:xo.includes(d.type)||d.type===f.FunctionDeclaration?d.inputs:[]}function oIe(d){const u=An(d),i=[],a=[];z_.includes(d.type)&&i.push(...Am(d));const o=u.filter(p=>{const e=i.includes(p);return e?!1:xi.includes(p.type)&&!e?(a.push(p),!1):!0});return i.sort((p,e)=>Tl(e,p)?-1:0),a.sort((p,e)=>Tl(e,p)?-1:0),[...i,...a,...o]}function $5(d){return[...d].sort((u,i)=>Tl(i,u)?-1:0)}function lIe(d){const u=$5(d),i=[];return u.forEach(a=>{const o=i[i.length-1];if(o){const p=o[o.length-1];Tl(a,p)?i.push([a]):o.push(a)}else i.push([a])}),i}function Va(d){const u=d.map(i=>fr(i));return R(u)}function Am(d){return ar.includes(d.type)?[...Va(d.successCalls),...Va(d.errorCalls)]:Dt.includes(d.type)?Va(d.calls):[]}function dIe(d,u){return Am(d).includes(u)}function bm(d){return d.writesValues||[]}function uIe(d,u){return bm(d).includes(u)}function P5(d){var u;return It.includes((u=d==null?void 0:d.readsValue)==null?void 0:u.type)?d.readsValue:null}function cIe(d){return d.writesValues}function N5(d=[]){return d.map(P5).filter(u=>!!u)}function wm(d=[]){return d.map(u=>u.writesValues).flat().filter(u=>It.includes(u.type))}function V5(d=[]){return d.map(u=>u.readsValue).filter(u=>!!u&&It.includes(u.type))}function L5(d){return It.includes(d.type)?d:null}function M5(d){return d.writesValues.map(L5).filter(u=>!!u)}function B5(d=[]){return d.reduce((u,i)=>i.type===f.OutputMap?[...u,...M5(i)]:u,[])}function vt(d){return d.type===f.Loop?R([...Ni(d.successCalls),...Ni(d.errorCalls),...d.body?vt(d.body):[]]):ar.includes(d.type)?R([...Ni(d.successCalls),...Ni(d.errorCalls)]):Dt.includes(d.type)?R(Ni(d.calls)):[]}function pIe(d){return ar.includes(d.type)?[...Ni(d.successCalls),...Ni(d.errorCalls)]:Dt.includes(d.type)?Ni(d.calls):[]}function U5(d,u=new Set){return d.writesValues.filter(a=>It.includes(a.type)&&!u.has(a.id)).reduce((a,o)=>u.has(o.id)?a:[...a,...vr(o,u)],[])}function x5(d,u=new Set){var a;return(((a=d.readsValue)==null?void 0:a.writesValues)||[]).filter(o=>It.includes(o.type)&&!u.has(o.id)).reduce((o,p)=>u.has(p.id)?o:[...o,...vr(p,u)],[])}function vr(d,u=new Set){if(u.has(d.id))return[];if(d.type===f.ReturnStatement)return V5(d.outputs).reduce((a,o)=>[...a,...vr(o,u)],[]);if(d.type===f.FunctionCall||d.type===f.Operation||d.type===f.Condition)return[...vt(d).reduce((p,e)=>{const y=fr(e);return[...p,...vr(y||e,u)]},[]),...N5(d.inputs),...B5(d.outputs)].reduce((p,e)=>[...p,...vr(e,u)],[]);if(xo.includes(d.type)){const i=wm(d.inputs),o=vt(d).reduce((p,e)=>{const y=fr(e);return[...p,...vr(y||e,u)]},[]);return i.push(...o),i.reduce((p,e)=>[...p,...vr(e,u)],[])}if(d.type===f.FunctionDeclaration){const i=[...wm(d.inputs)],o=vt(d).reduce((p,e)=>{const y=fr(e);return[...p,...vr(y||e,u)]},[]);return i.push(...o),i.reduce((p,e)=>[...p,...vr(e)],[])}if(It.includes(d.type)){u.add(d.id);const a=vt(d).reduce((o,p)=>{const e=fr(p);return[...o,...vr(e||p,u)]},[]);return[d,...a,...x5(d,u),...U5(d,u)]}return[]}function ms(d,u=new Set){return u.has(d.id)?[]:(u.add(d.id),[...An(d).reduce((o,p)=>[...o,p,...ms(p,u)],[])])}function Ni(d){return d.reduce((u,i)=>i.type===f.ReturnStatement||i.type===f.ContinueStatement||i.type===f.BreakStatement?[...u,i]:[...u,i,...vt(i)],[])}function j5(d){const u=d.entities||[],i=[...u,...d.functions||[],...d.events||[],...d.projects||[]],a=u.reduce((v,E)=>[...v,...E.properties],[]),o=u.reduce((v,E)=>[...v,...E.methods],[]),p=o.reduce((v,E)=>[...v,...wm(E.inputs),...Ni(Va(E.calls)),...E.returnStatements],[]),e=d.functions.reduce((v,E)=>[...v,...Ni(Va(E.calls)),...E.returnStatements],[]),y=d.events.reduce((v,E)=>[...v,...Ni(Va(E.calls)),...E.returnStatements],[]);return[...i,...a,...o,...p,...e,...y]}function G5(d,u){return u.filter(a=>{if(!a)return!1;switch(a.type){case f.FunctionCall:return a.inputs.find(o=>o.id===d.id)!==void 0||a.outputs.find(o=>o.id===d.id)!==void 0;case f.Condition:return a.successCalls.find(o=>o.id===d.id)!==void 0||a.errorCalls.find(o=>o.id===d.id)!==void 0||a.inputs.find(o=>o.id===d.id)!==void 0;case f.Operation:return a.outputs.find(o=>o.id===d.id)!==void 0;case f.VariableDeclaration:return ar.includes(d.type)?yS(d).find(p=>{var e;return((e=p.readsValue)==null?void 0:e.id)===a.id})!==void 0:!1;case f.DefinitionEntity:return a.properties.find(o=>o.id===d.id)!==void 0||a.methods.find(o=>o.id===d.id)!==void 0;case f.FunctionDeclaration:return a.inputs.find(o=>o.id===d.id)!==void 0||(a.returnStatements.map(o=>o.outputs).flat()||[]).find(o=>o.id===d.id)!==void 0;default:return!1}})}function fIe(d){const u=j5(d.project);return G5(d,u)}function Fd(d,u){return d?typeof d=="string"?u[d]:d.type===f.GenericReference?u[d.entityId]:u[d.id]?u[d.id]:null:null}function F5(d={},u){const i={};return Object.keys(d).forEach(a=>{const o=u.get(a)||a,p=d[a];i[o]=p}),i}function Sd(d,u={},i={}){const a={ignoreBuiltInBaseEntities:!1,allBuiltInEntityIds:[],entityMaps:new Map,...i};if(a.ignoreBuiltInBaseEntities&&(Zi.includes(d.type)||(a.allBuiltInEntityIds||[]).includes(d.id)))return{upstream:{},downstream:{}};const o=d,p=d,e=d,y=d,v=d,E=d,w=d,A=d,C=d,V=d,U=d,F=d,K=d,q=[...K.readsValue?[K.readsValue]:[],...K.declaration?[K.declaration]:[],...(F.calledByEntry||[]).flatMap(X=>X),...(F.calledBySuccess||[]).flatMap(X=>X),...(F.calledByError||[]).flatMap(X=>X),...V.parent?[V.parent]:[]];Array.isArray(e.implements)?q.push(...e.implements.flatMap(X=>X)):C.implements&&q.push(C.implements),Array.isArray(e.extends)?q.push(...e.extends.flatMap(X=>X)):C.extends&&q.push(C.extends),v.valueAsTypeList&&Array.isArray(v.valueAsTypeList)&&q.push(...v.valueAsTypeList.flatMap(X=>X)),v.valueAsTypeSingle&&q.push(v.valueAsTypeSingle),(K.internalCalls||[]).forEach(X=>{const ce=H(X);if(ce&&u[ce]){const z=u[ce];[...z.calledByEntry||[],...z.calledBySuccess||[],...z.calledByError||[]].forEach(Y=>{const pe=H(Y);pe&&u[pe]&&q.push(u[pe])})}});const ne=[...(o.inputs||[]).flatMap(X=>X),...(U.inputsDeclarations||[]).flatMap(X=>X),...(o.outputs||[]).flatMap(X=>X),...(U.outputsDeclarations||[]).flatMap(X=>X),...(K.internalCalls||[]).flatMap(X=>X),...K.writesValues||[],...F.dataType?[F.dataType]:[],...E.body?[E.body]:[],...F.defaultValue?[F.defaultValue]:[],...(F.successCalls||[]).flatMap(X=>X),...(F.errorCalls||[]).flatMap(X=>X),...(e.properties||[]).flatMap(X=>X),...(e.methods||[]).flatMap(X=>X),...(e.abstractMethods||[]).flatMap(X=>X),...w.error?[w.error]:[],...w.process?[w.process]:[],...V.throws?[V.throws]:[],...(p.andChildrenGroup||[]).flatMap(X=>X),...(p.orChildrenGroup||[]).flatMap(X=>X),...(A.entities||[]).flatMap(X=>X),...(A.functions||[]).flatMap(X=>X),...(A.functionCalls||[]).flatMap(X=>X),...(A.events||[]).flatMap(X=>X),...(A.conditions||[]).flatMap(X=>X),...(A.operations||[]).flatMap(X=>X),...(A.loops||[]).flatMap(X=>X),...(A.variableDeclarations||[]).flatMap(X=>X),...(A.variableInstances||[]).flatMap(X=>X),...(A.searches||[]).flatMap(X=>X),...(A.projects||[]).flatMap(X=>X),...(y.calls||[]).flatMap(X=>X)];d.type===f.DataType&&(p.entity&&u[H(p.entity)]&&u[H(p.entity)].parent&&H(u[H(p.entity)].parent)===d.id?ne.push(p.entity):p.entity&&q.push(p.entity)),(K.internalCalls||[]).forEach(X=>{const ce=H(X);if(ce&&u[ce]){const z=u[ce];[...z.successCalls||[],...z.errorCalls||[]].forEach(Y=>{const pe=H(Y);pe&&u[pe]&&ne.push(u[pe])})}});const J={},de={};return q.forEach(X=>{var Y;const ce=H(X);if(ce&&a.ignoreBuiltInBaseEntities&&(Zi.includes(X.type)||(a.allBuiltInEntityIds||[]).includes(ce)))return;const z=X.version;if(ce){const pe=((Y=a.entityMaps)==null?void 0:Y.get(ce))||ce;J[pe]=z}}),ne.forEach(X=>{var Y;const ce=H(X);if(ce&&a.ignoreBuiltInBaseEntities&&(Zi.includes(X.type)||(a.allBuiltInEntityIds||[]).includes(ce)))return;const z=X.version;if(ce){const pe=((Y=a.entityMaps)==null?void 0:Y.get(ce))||ce;de[pe]=z}}),{upstream:J,downstream:de}}function hIe(d,u){const i=[];if(xi.includes(d.type)){Ls(d).forEach(p=>{const e=Gd(p,u);e&&i.push(e)});const o=[...d.inputs||[],...d.outputs||[]].map(p=>{const e=Fd(p,u);return e?vS(e,u):null}).filter(p=>p!==null);i.push(...R(o))}if(It.includes(d.type)){const a=Rm(d);a&&i.push(a)}return R(i)}function Io(d){const u=[];if(xi.includes(d.type)){d.calledBy.forEach(o=>{const p=fr(o);p&&u.push(p)});const a=[...d.inputs||[],...d.outputs||[]].map(o=>Rm(o)).filter(o=>o!==null);u.push(...R(a))}if(It.includes(d.type)){const i=Rm(d);i&&u.push(i)}return R(u)}function Ls(d){return[...d.calledByEntry||[],...d.calledByError||[],...d.calledBySuccess||[]].filter(u=>u.type!==f.GenericReference)}function S5(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.ActionDescriptor)throw new Error("Entity must be an action descriptor to be flattened");return[d,...d.inputs.flatMap(a=>me(a,u,i)),...d.outputs.flatMap(a=>me(a,u,i)),...d.error?me(d.error,u,i):[],...d.parent?me(d.parent,u,i):[]]}function K5(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.ArgumentDeclaration)throw new Error("Entity must be an argument declaration to be flattened");return[d,...d.defaultValue?me(d.defaultValue,u):[],...d.writesValues.flatMap(a=>me(a,u,i)),...d.dataType?me(d.dataType,u,i):[],...d.parent?me(d.parent,u,i):[]]}function k5(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.BreakStatement)throw new Error("Entity must be a break statement to be flattened");return[d,...d.outputs.flatMap(a=>me(a,u,i)),...d.throws?me(d.throws,u,i):[],...(Ls(d)||[]).flatMap(a=>me(a,u,i)),...d.parent?me(d.parent,u,i):[]]}function q5(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.BuiltInBaseEntity)throw new Error("Entity must be a built-in base entity to be flattened");return[d,...(d.properties||[]).flatMap(a=>me(a,u,i)),...(d.methods||[]).flatMap(a=>me(a,u,i)),...(d.abstractMethods||[]).flatMap(a=>me(a,u,i)),...d.extends?me(d.extends,u,i):[]]}function Z5(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.Condition)throw new Error("Entity must be a condition to be flattened");return[d,...(d.andChildrenGroup||[]).flatMap(a=>me(a,u,i)),...(d.orChildrenGroup||[]).flatMap(a=>me(a,u,i)),...(d.inputs||[]).flatMap(a=>me(a,u,i)),...(d.successCalls||[]).flatMap(a=>me(a,u,i)),...(d.errorCalls||[]).flatMap(a=>me(a,u,i)),...(Ls(d)||[]).flatMap(a=>me(a,u,i)),...d.parent?me(d.parent,u,i):[]]}function H5(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.ContinueStatement)throw new Error("Entity must be a continue statement to be flattened");return[d,...d.outputs.flatMap(a=>me(a,u,i)),...d.throws?me(d.throws,u,i):[],...(Ls(d)||[]).flatMap(a=>me(a,u,i)),...d.parent?me(d.parent,u,i):[]]}function W5(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.DefinitionEntity)throw new Error("Entity must be a definition entity to be flattened");return[d,...d.extends?me(d.extends,u,i):[],...(d.implements||[]).flatMap(a=>me(a,u,i)),...(d.properties||[]).flatMap(a=>me(a,u,i)),...(d.methods||[]).flatMap(a=>me(a,u,i)),...(d.abstractMethods||[]).flatMap(a=>me(a,u,i)),...d.parent?me(d.parent,u,i):[]]}function J5(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.DataType)throw new Error("Entity must be a data type to be flattened");return[d,...(d.andChildrenGroup||[]).flatMap(a=>me(a,u,i)),...(d.orChildrenGroup||[]).flatMap(a=>me(a,u,i)),...d.entity?me(d.entity,u,i):[],...d.parent?me(d.parent,u,i):[]]}function Y5(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.FunctionCall)throw new Error("Entity must be a function call to be flattened");return[d,...(d.inputs||[]).flatMap(a=>me(a,u,i)),...(d.outputs||[]).flatMap(a=>me(a,u,i)),...d.error?me(d.error,u,i):[],...d.process?me(d.process,u,i):[],...(Ls(d)||[]).flatMap(a=>me(a,u,i)),...(d.successCalls||[]).flatMap(a=>me(a,u,i)),...(d.errorCalls||[]).flatMap(a=>me(a,u,i)),...d.parent?me(d.parent,u,i):[]]}function z5(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.FunctionDeclaration)throw new Error("Entity must be a function declaration to be flattened");return[d,...(d.inputs||[]).flatMap(a=>me(a,u,i)),...(d.calls||[]).flatMap(a=>me(a,u,i)),...d.implements?me(d.implements,u,i):[],...d.parent?me(d.parent,u,i):[]]}function X5(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.GlobalEvent)throw new Error("Entity must be a global event to be flattened");return[d,...(d.inputs||[]).flatMap(a=>me(a,u,i)),...(d.calls||[]).flatMap(a=>me(a,u,i)),...d.implements?me(d.implements,u,i):[],...d.parent?me(d.parent,u,i):[]]}function Q5(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.InputMap)throw new Error("Entity must be an input map to be flattened");return[d,...d.readsValue?me(d.readsValue,u,i):[],...d.declaration?me(d.declaration,u,i):[],...d.defaultValue?me(d.defaultValue,u,i):[],...d.parent?me(d.parent,u,i):[]]}function eS(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.InstalledProject)throw new Error("Entity must be an installed project to be flattened");return[d,...(d.functions||[]).flatMap(a=>me(a,u,i)),...(d.events||[]).flatMap(a=>me(a,u,i)),...d.parent?me(d.parent,u,i):[]]}function tS(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.InternalCall)throw new Error("Entity must be an internal call to be flattened");return[d,...(d.successCalls||[]).flatMap(a=>me(a,u,i)),...(d.errorCalls||[]).flatMap(a=>me(a,u,i)),...(d.inputs||[]).flatMap(a=>me(a,u,i)),...(d.outputs||[]).flatMap(a=>me(a,u,i)),...(Ls(d)||[]).flatMap(a=>me(a,u,i)),...d.error?me(d.error,u,i):[],...d.process?me(d.process,u,i):[],...d.parent?me(d.parent,u,i):[]]}function rS(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.LiteralValue)throw new Error("Entity must be a literal value to be flattened");return[d,...d.valueAsTypeSingle?me(d.valueAsTypeSingle,u,i):[],...d.valueAsTypeList&&Array.isArray(d.valueAsTypeList)?d.valueAsTypeList.flatMap(a=>me(a,u,i)):[],...d.parent?me(d.parent,u,i):[]]}function iS(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.Loop)throw new Error("Entity must be a loop to be flattened");return[d,...(d.inputs||[]).flatMap(a=>me(a,u,i)),...(d.outputs||[]).flatMap(a=>me(a,u,i)),...(d.successCalls||[]).flatMap(a=>me(a,u,i)),...(d.errorCalls||[]).flatMap(a=>me(a,u,i)),...d.error?me(d.error,u,i):[],...d.process?me(d.process,u,i):[],...d.body?me(d.body,u,i):[],...(Ls(d)||[]).flatMap(a=>me(a,u,i)),...d.parent?me(d.parent,u,i):[]]}function sS(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.Operation)throw new Error("Entity must be an operation to be flattened");return[d,...(d.successCalls||[]).flatMap(a=>me(a,u,i)),...(d.errorCalls||[]).flatMap(a=>me(a,u,i)),...(d.inputs||[]).flatMap(a=>me(a,u,i)),...(d.outputs||[]).flatMap(a=>me(a,u,i)),...d.error?me(d.error,u,i):[],...d.process?me(d.process,u,i):[],...(Ls(d)||[]).flatMap(a=>me(a,u,i)),...d.parent?me(d.parent,u,i):[]]}function nS(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.OutputMap)throw new Error("Entity must be an output map to be flattened");return[d,...(d.writesValues||[]).flatMap(a=>me(a,u,i)),...d.declaration?me(d.declaration,u,i):[],...d.defaultValue?me(d.defaultValue,u,i):[],...d.parent?me(d.parent,u,i):[]]}function aS(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.PrimitiveEntity)throw new Error("Entity must be a primitive entity to be flattened");return[d,...(d.properties||[]).flatMap(a=>me(a,u,i)),...(d.methods||[]).flatMap(a=>me(a,u,i)),...(d.abstractMethods||[]).flatMap(a=>me(a,u,i))]}function oS(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.Project)throw new Error("Entity must be a project to be flattened");return[d,...(d.entities||[]).flatMap(a=>me(a,u,i)),...(d.functions||[]).flatMap(a=>me(a,u,i)),...(d.events||[]).flatMap(a=>me(a,u,i)),...(d.projects||[]).flatMap(a=>me(a,u,i)),...(d.variableDeclarations||[]).flatMap(a=>me(a,u,i)),...(d.variableInstances||[]).flatMap(a=>me(a,u,i)),...(d.operations||[]).flatMap(a=>me(a,u,i)),...(d.conditions||[]).flatMap(a=>me(a,u,i)),...(d.functionCalls||[]).flatMap(a=>me(a,u,i)),...(d.projects||[]).flatMap(a=>me(a,u,i)),...(d.loops||[]).flatMap(a=>me(a,u,i)),...(d.searches||[]).flatMap(a=>me(a,u,i))]}function lS(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.Property)throw new Error("Entity must be a property to be flattened");return[d,...d.defaultValue?me(d.defaultValue,u,i):[],...d.dataType?me(d.dataType,u,i):[],...d.parent?me(d.parent,u,i):[]]}function dS(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.ReturnDeclaration)throw new Error("Entity must be a return declaration to be flattened");return[d,...d.readsValue?me(d.readsValue,u,i):[],...d.defaultValue?me(d.defaultValue,u,i):[],...d.dataType?me(d.dataType,u,i):[],...d.parent?me(d.parent,u,i):[]]}function uS(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.ReturnStatement)throw new Error("Entity must be a return statement to be flattened");return[d,...(d.outputs||[]).flatMap(a=>me(a,u,i)),...d.throws?me(d.throws,u,i):[],...(Ls(d)||[]).flatMap(a=>me(a,u,i)),...d.parent?me(d.parent,u,i):[]]}function cS(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.Search)throw new Error("Entity must be a search to be flattened");return[d,...(d.successCalls||[]).flatMap(a=>me(a,u,i)),...(d.errorCalls||[]).flatMap(a=>me(a,u,i)),...(d.inputsDeclarations||[]).flatMap(a=>me(a,u,i)),...(d.inputs||[]).flatMap(a=>me(a,u,i)),...(d.outputsDeclarations||[]).flatMap(a=>me(a,u,i)),...(d.outputs||[]).flatMap(a=>me(a,u,i)),...d.error?me(d.error,u,i):[],...(Ls(d)||[]).flatMap(a=>me(a,u,i)),...d.parent?me(d.parent,u,i):[]]}function pS(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.ValueDescriptor)throw new Error("Entity must be a value descriptor to be flattened");return[d,...d.defaultValue?me(d.defaultValue,u,i):[],...d.dataType?me(d.dataType,u,i):[],...d.parent?me(d.parent,u,i):[]]}function fS(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.VariableDeclaration)throw new Error("Entity must be a variable declaration to be flattened");return[d,...(d.successCalls||[]).flatMap(a=>me(a,u,i)),...(d.errorCalls||[]).flatMap(a=>me(a,u,i)),...(d.inputs||[]).flatMap(a=>me(a,u,i)),...(d.outputs||[]).flatMap(a=>me(a,u,i)),...(d.internalCalls||[]).flatMap(a=>me(a,u,i)),...(d.writesValues||[]).flatMap(a=>me(a,u,i)),...d.readsValue?me(d.readsValue,u,i):[],...d.defaultValue?me(d.defaultValue,u,i):[],...(Ls(d)||[]).flatMap(a=>me(a,u,i)),...d.dataType?me(d.dataType,u,i):[],...d.parent?me(d.parent,u,i):[]]}function hS(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.VariableInstance)throw new Error("Entity must be a variable instance to be flattened");return[d,...(d.successCalls||[]).flatMap(a=>me(a,u,i)),...(d.errorCalls||[]).flatMap(a=>me(a,u,i)),...(d.inputs||[]).flatMap(a=>me(a,u,i)),...(d.outputs||[]).flatMap(a=>me(a,u,i)),...(d.internalCalls||[]).flatMap(a=>me(a,u,i)),...(d.writesValues||[]).flatMap(a=>me(a,u,i)),...d.readsValue?me(d.readsValue,u,i):[],...d.defaultValue?me(d.defaultValue,u,i):[],...(Ls(d)||[]).flatMap(a=>me(a,u,i)),...d.declaration?me(d.declaration,u,i):[],...d.parent?me(d.parent,u,i):[]]}function Ys(){const d=new Set,u=SL.flatMap(i=>me(i,d)).map(i=>i.id);if(!u.includes("http-request-error-return-delaration-id"))throw new Error("Built-in base entities must be included in the list");return u}function me(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(!d)throw new Error("Entity must be defined to be flattened");if(d.type===f.GenericReference)return[];if(i.ignoreBuiltInBaseEntities&&(Zi.includes(d.type)||Ys().includes(d.id)))return[];if(u.has(d.id))return[];switch(d.type){case f.FunctionCall:return Y5(d,u,i);case f.Operation:return sS(d,u,i);case f.Condition:return Z5(d,u,i);case f.Loop:return iS(d,u,i);case f.Search:return cS(d,u,i);case f.GlobalEvent:return X5(d,u,i);case f.ReturnStatement:return uS(d,u,i);case f.ContinueStatement:return H5(d,u,i);case f.BreakStatement:return k5(d,u,i);case f.VariableDeclaration:return fS(d,u,i);case f.DefinitionEntity:return W5(d,u,i);case f.FunctionDeclaration:return z5(d,u,i);case f.Project:return oS(d,u,i);case f.ActionDescriptor:return S5(d,u,i);case f.ArgumentDeclaration:return K5(d,u,i);case f.ReturnDeclaration:return dS(d,u,i);case f.ValueDescriptor:return pS(d,u,i);case f.InputMap:return Q5(d,u,i);case f.OutputMap:return nS(d,u,i);case f.DataType:return J5(d,u,i);case f.InstalledProject:return eS(d,u,i);case f.InternalCall:return tS(d,u,i);case f.LiteralValue:return rS(d,u,i);case f.Property:return lS(d,u,i);case f.VariableInstance:return hS(d,u,i);case f.BuiltInBaseEntity:return i.ignoreBuiltInBaseEntities?[]:q5(d,u,i);case f.PrimitiveEntity:return i.ignoreBuiltInBaseEntities?[]:aS(d,u,i)}return[]}function fb(d){return d.type===f.FunctionCall||d.type===f.InternalCall||[f.Operation,f.Condition,f.Loop].includes(d.type)?d.declaration.inputs:d.type===f.FunctionDeclaration||xo.includes(d.type)?d.inputs:d.type===f.Search?d.inputsDeclarations:[]}function yIe(d,u){return u.type===f.Condition?u.inputs.find(i=>i.declaration.id===d.id):u.type===f.FunctionCall||u.type===f.Operation?u.inputs.find(i=>i.declaration.id===d.id):null}function yS(d){return ar.includes(d.type)?d.inputs:[]}function mS(d){var u;return d.type===f.FunctionCall?((u=d.declaration.returnStatements[0])==null?void 0:u.outputs)||[]:[f.Operation,f.Condition,f.Loop].includes(d.type)?d.declaration.outputs:d.type===f.Search?d.outputsDeclarations:hr.includes(d.type)?d.outputs:[]}function mIe(d,u){return u.type===f.Condition?null:(u.type===f.FunctionCall||u.type===f.Operation)&&u.outputs.find(i=>{var a;return((a=i.declaration)==null?void 0:a.id)===d.id})||null}function vIe(d){return d.type===f.Condition?[]:ar.includes(d.type)?d.outputs:[]}function Rm(d){const u=d.readsValue;return u?fr(u):null}function vS(d,u){const i=d.readsValue;return i?Gd(i,u):null}function ES(d){const u=d.internalCalls||[];return R(Va(R(u.flatMap(i=>[...i.successCalls,...i.errorCalls]))))}function TS(d){const u=d.internalCalls||[];return R(R(u.flatMap(i=>[...i.successCalls,...i.errorCalls])))}function Kd(d){const u=bm(d),i=[];return u.forEach(a=>{if(It.includes(a.type))i.push(a);else if(dn.includes(a.type)){const o=fr(a.parent);i.push(o)}}),i}function kd(d){const u=bm(d),i=[];return u.forEach(a=>{if(It.includes(a.type))i.push(a);else if(dn.includes(a.type)){const o=a.parent;i.push(o)}}),i}function R(d){const u=new Set;return d.filter(i=>!i||u.has(i.id)?!1:(u.add(i.id),!0))}function IS(d){return d.type===f.Project?null:Cv.includes(d.type)?d:Zi.includes(d.type)?null:d.parent?IS(d.parent):null}function An(d,u=!1){const i=[];if(d.type===f.Project&&i.push(...(d==null?void 0:d.entities)||[],...(d==null?void 0:d.functions)||[],...(d==null?void 0:d.variableDeclarations)||[],...(d==null?void 0:d.variableInstances)||[],...(d==null?void 0:d.searches)||[],...(d==null?void 0:d.loops)||[],...(d==null?void 0:d.operations)||[],...(d==null?void 0:d.conditions)||[],...(d==null?void 0:d.functionCalls)||[],...(d==null?void 0:d.events)||[],...(d==null?void 0:d.projects)||[]),Nr.includes(d.type)&&i.push(...(d==null?void 0:d.detachedChildren)||[]),d.type===f.DefinitionEntity){const a=[...d.suggestedMethods,...d.methods].flatMap(o=>o.collapsed&&u?[]:An(o));i.push(...a)}if(d.type===f.Condition){const a=d.successCalls.map(p=>fr(p)),o=d.errorCalls.map(p=>fr(p));i.push(...a,...o)}if(xo.includes(d.type)){if(d.collapsed&&u)return[];const a=d.inputs.map(p=>Kd(p)).flat(),o=d.calls.map(p=>fr(p));i.push(...R(a),...o)}if(ar.includes(d.type)&&d.type!==f.Condition&&d.type!==f.Loop){const a=d==null?void 0:d.outputs.map(e=>Kd(e)).flat(),o=d.successCalls.map(e=>fr(e)),p=d.errorCalls.map(e=>fr(e));i.push(...R(a),...o,...p)}if(It.includes(d.type)){const a=Kd(d),o=ES(d);i.push(...a,...o)}if(d.type===f.Loop){const a=d.outputs.map(e=>Kd(e)).flat();if(d.body){const e=An(d.body,u);i.push(...e)}const o=d.errorCalls.map(e=>fr(e)),p=d.successCalls.map(e=>fr(e));i.push(...R(a),...p,...o)}if(d.type===f.FunctionDeclaration){if(d.collapsed&&u)return[];const a=d.inputs.map(p=>Kd(p)).flat(),o=d.calls.map(p=>fr(p));i.push(...R(a),...o)}return R(i)}function _m(d,u=!1){const i=[];if(d.type===f.Project&&i.push(...(d==null?void 0:d.variableDeclarations)||[],...(d==null?void 0:d.variableInstances)||[],...(d==null?void 0:d.searches)||[],...(d==null?void 0:d.loops)||[],...(d==null?void 0:d.operations)||[],...(d==null?void 0:d.conditions)||[],...(d==null?void 0:d.functionCalls)||[]),Nr.includes(d.type)&&i.push(...(d==null?void 0:d.detachedChildren)||[]),d.type===f.DefinitionEntity){const a=[...d.suggestedMethods,...d.methods].flatMap(o=>o.collapsed&&u?[]:_m(o));i.push(...a)}if(d.type===f.Condition){const a=d.successCalls,o=d.errorCalls;i.push(...a,...o)}if(xo.includes(d.type)){if(d.collapsed&&u)return[];const a=d.inputs.map(p=>kd(p)).flat(),o=d.calls;i.push(...R(a),...o)}if(ar.includes(d.type)&&d.type!==f.Condition&&d.type!==f.Loop){const a=d==null?void 0:d.outputs.map(e=>kd(e)).flat(),o=d.successCalls,p=d.errorCalls;i.push(...R(a),...o,...p)}if(It.includes(d.type)){const a=kd(d),o=TS(d);i.push(...a,...o)}if(d.type===f.Loop){const a=d.outputs.map(e=>kd(e)).flat();if(d.body){const e=_m(d.body,u);i.push(...e)}const o=d.errorCalls,p=d.successCalls;i.push(...R(a),...p,...o)}if(d.type===f.FunctionDeclaration){if(d.collapsed&&u)return[];const a=d.inputs.map(p=>kd(p)).flat(),o=d.calls;i.push(...R(a),...o)}return R(i)}function gm(d,u=!1){const i=An(d,u),a=[...i,...i.reduce((o,p)=>[...o,...gm(p,u)],[])];return R(a)}function AS(d,u=!1){const i=_m(d,u),a=[...i,...i.reduce((o,p)=>[...o,...AS(p,u)],[])];return R(a)}function bS(d){const u=Io(d),i=[...u,...u.reduce((a,o)=>[...a,...bS(o)],[])];return R(i)}function Yp(d){return d.implements.reduce((u,i)=>i.type===f.DefinitionEntity?[...u,f.DefinitionEntity,...Yp(i),...zp(i)]:[...u,i.name],[])}function zp(d){return d.extends?d.extends.type===f.DefinitionEntity?[f.DefinitionEntity,...zp(d.extends),...Yp(d.extends)]:[d.extends.name]:[]}function hb(d){return d.extends?d.extends.type===f.DefinitionEntity?[d.extends,...hb(d.extends),...yb(d.extends)]:[d.extends]:[]}function yb(d){return d.implements.reduce((u,i)=>i.type===f.DefinitionEntity?[...u,i,...yb(i),...hb(i)]:[...u,i],[])}function qd(d){return[...zp(d),...Yp(d)].filter((i,a,o)=>o.indexOf(i)===a)}function mb(d){return d.implements.length===0&&!d.extends?null:d.implements.find(a=>a.type===f.BuiltInBaseEntity&&a.name===Le.PERSISTED_ENTITY)?d:[...d.implements,...d.extends?[d.extends]:[]].reduce((a,o)=>{if(o.type===f.DefinitionEntity){const p=mb(o);if(p)return p}return a},null)}function EIe(d){return d.extends&&d.extends.type===f.BuiltInBaseEntity?d.extends:null}function TIe(d){const u=d.implements.find(i=>i.type===f.BuiltInBaseEntity);return u&&u.type===f.BuiltInBaseEntity?u:null}function Dm(d){return d.extends&&d.extends.type===f.DefinitionEntity?d.extends:null}function Vi(d){if(d.type===f.BuiltInBaseEntity)return[d];const u=[...d.implements,...d.extends?[d.extends]:[]].reduce((i,a)=>a.type===f.BuiltInBaseEntity?[...i,a]:a.type===f.DefinitionEntity?[...i,...Vi(a)]:i,[]);return R(u)}function Xp(d){return d.type===f.PrimitiveEntity?!0:d.type===f.BuiltInBaseEntity?d.interactive:!Vi(d).find(a=>!a.interactive)}function IIe(d){return d.parent===d.project&&d.project.variableDeclarations.includes(d)}function vb(d){return d.parent!==d.project?!1:f.VariableDeclaration===d.type?d.project.variableDeclarations.includes(d):f.VariableInstance===d.type?d.project.variableInstances.includes(d):f.FunctionCall===d.type?d.project.functionCalls.includes(d):f.Condition===d.type?d.project.conditions.includes(d):f.Operation===d.type?d.project.operations.includes(d):f.Loop===d.type?d.project.loops.includes(d):f.Search===d.type?d.project.searches.includes(d):!1}function wS(d){if([...Dt,f.DefinitionEntity,f.InstalledProject,f.Project].includes(d.type)||vb(d))return!1;const u=Io(d);return u.length===0?!0:u.some(i=>wS(i))}function Eb(d){return[...Dt,f.DefinitionEntity,f.InstalledProject,f.Project].includes(d.type)||vb(d)?!1:Io(d).length===0}function RS(d,u=0){if(Eb(d)){const i=Io(d);return i.length===0?d:i.map(o=>RS(o,u+1)).reduce((o,p)=>o?p&&p.x<o.x?p:o:p,null)}return null}function _S(d){const u=[];if(Eb(d))u.push(d);else return[];return Io(d).forEach(a=>{u.push(..._S(a))}),u}function Tb(d){return d.type===f.FunctionDeclaration&&d.parent!==d.project&&!![f.DefinitionEntity,f.Loop,f.InstalledProject].includes(d.parent.type)}function AIe(d,u){const i=new Map;return d.forEach(a=>{i.set(a.id,a)}),u.forEach(a=>{i.set(a.id,a)}),Array.from(i.values())}function Qp(d){switch(d){case f.DefinitionEntity:return Xn;case f.FunctionDeclaration:return Xa;case f.VariableDeclaration:return so;case f.VariableInstance:return io;case f.FunctionCall:return Eo;case f.Operation:return Qa;case f.Condition:return ro;case f.ReturnStatement:return eo;case f.Loop:return Gi;case f.Search:return no;case f.InputMap:return Zn;case f.OutputMap:return fn;case f.ArgumentDeclaration:return Kn;case f.ReturnDeclaration:return Qi;case f.Property:return zn;case f.InstalledProject:return ao;case f.Project:return N;case f.DataType:return fs;case f.GlobalEvent:return to;case f.InternalCall:return oo;case f.ValueDescriptor:return hn;case f.BuiltInBaseEntity:return Qn;case f.PrimitiveEntity:return ts;case f.ActionDescriptor:return ct;case f.LiteralValue:return Si;case f.ContinueStatement:return $i;case f.BreakStatement:return lo;default:return null}}function _i(d,u,i=null){const a=d!=null&&d.parent?H(d==null?void 0:d.parent):null;let o=a?u.get(a):null,p=i||d;if((d==null?void 0:d.id)===(u==null?void 0:u.id))return u;if(d.type===f.ReturnStatement)return Hr(d,u,p);if(d.type===f.FunctionDeclaration&&(o==null?void 0:o.type)===f.Loop)return o;if(Dt.includes(d.type))return d;if(d.type===f.Loop)return p.id===d.id?o:d;if(Zi.includes(d.type))return null;const e=d.parent;if(!e)return null;if(e.type===f.GenericReference){const y=H(e);if(!y)return null;const v=u.get(y);return v?_i(v,u,p):null}else return e===u?u:_i(e,u,p)}function Hr(d,u,i=null){const a=d!=null&&d.parent?H(d==null?void 0:d.parent):null;let o=a?u.get(a):null,p=i||d;if(d.type===f.FunctionDeclaration&&(o==null?void 0:o.type)===f.Loop)return Hr(o.parent,u,p);if(Dt.includes(d.type))return d;if(Zi.includes(d.type))return null;const e=d.parent;if(!e)return null;if(e.type===f.GenericReference){const y=H(e);if(!y)return null;const v=u.get(y);return v?Hr(v,u,p):null}else return e===u?u:Hr(e,u,p)}function Zd(d,u){if(Zi.includes(d.type))return Me.warn(`getRootEntryPointScopeOwner is \`null\` because it was called with a built-in entity type: ${d.type}`),null;if(u.getBuiltIn(d.id))return Me.warn(`getRootEntryPointScopeOwner is \`null\` because it was called with a built-in entity: ${d.id}`),null;const i=qi(d.parent,u);return i?i===u?Nr.includes(d.type)?d:(Me.warn(`getRootEntryPointScopeOwner is \`null\` because it was called with an entity that has the project as parent: ${d.id}`),null):i.type===f.DefinitionEntity?d:Zd(i,u):(Me.warn(`getRootEntryPointScopeOwner is \`null\` because it was called with an entity that has no parent: ${d.id}`),null)}function Om(d,u,i){if(d===u||u===i||d===i||!d||!u)return!1;const a=_i(u.parent,i);return a===i?!1:a===d?!0:Om(a,u,i)}var Cm=(d=>(d.SameBothLocal="same-both-local",d.AInB="a-in-b",d.BInA="b-in-a",d.ParallelInCommonParent="parallel-in-common-parent",d.ParallelInProject="parallel-in-project",d.AIsGlobalBIsNot="a-is-global-b-is-not",d.BIsGlobalAIsNot="b-is-global-a-is-not",d.SameBothGlobal="same-both-global",d))(Cm||{});function zs(d,u,i){const a=_i(d,i),o=_i(u,i);if(!a)throw new Error("Could not find scope owner for the entity: "+d.id);if(!o)throw new Error("Could not find scope owner for the entity: "+u.id);if(a===o&&a.type!==f.Project)return{compatible:!0,type:"same-both-local",commonAncestorScope:a};if(a===o&&a.type===f.Project)return{compatible:!0,type:"same-both-global",commonAncestorScope:a};if(a.type===f.Project&&o.type!==f.Project)return{compatible:!1,type:"a-is-global-b-is-not",commonAncestorScope:a};if(a.type!==f.Project&&o.type===f.Project)return{compatible:!1,type:"b-is-global-a-is-not",commonAncestorScope:o};if(Om(a,o,i))return{compatible:!0,type:"b-in-a",commonAncestorScope:a};if(Om(o,a,i))return{compatible:!0,type:"a-in-b",commonAncestorScope:o};const y=pb(a,o);return y===i?{compatible:!1,type:"parallel-in-project",commonAncestorScope:y}:y?{compatible:!1,type:"parallel-in-common-parent",commonAncestorScope:_i(y,i)}:{compatible:!1,type:"parallel-in-project",commonAncestorScope:i}}function gS(d,u,i){const a=zs(d,u,i);if(!a.compatible||a.type!=="same-both-local")return null;if(d===u)return d;let o=_i(d.parent,i);if(o){if(o===u)return u;if(o.type===f.Project)return d}else return d;for(;o;){if(o){if(o===u)return u;if(o.type===f.Project)return d}else return d;o=_i(o.parent,i)}let p=_i(u.parent,i);if(p){if(p===d)return d;if(p.type===f.Project)return u}else return u;for(;p;){if(p){if(p===d)return d;if(p.type===f.Project)return u}else return u;p=_i(p.parent,i)}return null}function DS(d){return d.length===0?null:d.length===1?d[0]:d.reduce((i,a)=>{const o=gS(i,a,a.project);return!o||o===a?i:a},d[0])}function qi(d,u){if(!d)return null;let i;return typeof d=="string"?i=d:d.type===f.GenericReference?i=H(d):i=d.id,i===u.id?u:u.get(i)}function Ao(d){if(!d)return null;if(Zi.includes(d.type))return d;if(d.type===f.Project)return null;if(d.project.getBuiltIn(d.id))return d;const u=d.parent;return!u||u.type===f.Project?null:Ao(u)}function ef(d){const u=[];function i(p,e){return u.some(y=>y.blockedByCaller===p&&y.blockedByCalling===e)}function a(p,e){i(p,e)||u.push({blockedByCaller:p,blockedByCalling:e})}const o=Zd(d,d.project);return o?(d.calledBySuccess.forEach(p=>{[...p.successCalls||[]].forEach(v=>{hr.includes(v.type)&&v!==d&&(vt(d).find(A=>A===v)||a(p,v))});let y;if(ar.includes(p.type)&&(y=p),y){const v=ef(y);v.reachable||vt(d).find(A=>A===p)||v.blocks.forEach(A=>{a(p,A.blockedByCalling)})}}),d.calledByError.forEach(p=>{[...p.errorCalls||[]].forEach(v=>{hr.includes(v.type)&&v!==d&&(vt(d).find(A=>A===v)||a(p,v))});let y;if(ar.includes(p.type)&&(y=p),y){const v=ef(y);v.reachable||vt(d).find(A=>A===p)||v.blocks.forEach(A=>{a(p,A.blockedByCalling)})}}),d.calledByEntry.forEach(p=>{if([...p.calls||[]].forEach(v=>{hr.includes(v.type)&&v!==d&&(vt(d).find(A=>A===v)||a(p,v))}),p===o)return;let y;if(p.type===f.FunctionDeclaration){const v=fr(p);if(v.type===f.DefinitionEntity)return;v.type===f.Loop&&(y=v)}if(y){const v=ef(y);v.reachable||v.blocks.forEach(E=>{a(p,E.blockedByCalling)})}}),{reachable:u.length===0,entryPoint:o,blocks:u}):{reachable:!0,entryPoint:null,blocks:[]}}function bIe(d){return eh.includes(d.type)?d.type===f.FunctionDeclaration?!Tb(d):!0:!1}function wIe(d){if(f.ActionDescriptor===d.type){if(d.project.operationDeclarations.find(p=>p.id===d.id))return f.Operation;if(d.project.globalEventActionDescriptors.find(p=>p.id===d.id))return f.GlobalEvent;if(d.project.loopDeclarations.find(p=>p.id===d.id))return f.Loop;if(d.project.conditionDeclarations.find(p=>p.id===d.id))return f.Condition}return d.type}function $m(d,u){return d.type===f.BuiltInBaseEntity?d.name===u:!!zp(d).includes(u)}function RIe(d,u){return d.type===f.BuiltInBaseEntity?d.name===u:!!Yp(d).includes(u)}function es(d,u){return d.type===f.BuiltInBaseEntity?d.name===u:!!qd(d).includes(u)}function _Ie(d){const u=[];return d.entities.forEach(i=>{if($m(i,Le.PERSISTED_ENTITY)){u.push(i);return}}),R(u)}function gIe(d){const u=[];return d.entities.forEach(i=>{if($m(i,Le.RELATIONAL_DATABASE)){u.push(i);return}}),R(u)}function DIe(d){return d.type!==f.DefinitionEntity||d.abstract||!$m(d,Le.PERSISTED_ENTITY)?null:(d==null?void 0:d.properties.find(i=>{var a;return((a=i.implements)==null?void 0:a.id)===he[f.BuiltInBaseEntity][Le.PERSISTED_ENTITY].properties.primaryKey.id&&!i.abstract}))||null}function OS(d){var a;const u=mb(d);if(!u)return null;const i=u.properties.find(o=>{var p;return((p=o.implements)==null?void 0:p.id)===he[f.BuiltInBaseEntity][Le.PERSISTED_ENTITY].properties.database.id});return i?(a=i.getDefaultValue())==null?void 0:a.valueAsType:null}function Hd(d){if(d.type!==f.DefinitionEntity)return[];if(d.abstract)return[];if(!es(d,Le.PERSISTED_ENTITY))return[];const u=[],i=d.properties.filter(a=>{var o;return((o=a.implements)==null?void 0:o.id)!==he[f.BuiltInBaseEntity][Le.PERSISTED_ENTITY].properties.database.id&&!a.abstract});return u.push(...i),u}function OIe(d){var i;if(!d||d.type!==f.DefinitionEntity||!es(d,Le.PERSISTED_ENTITY))return null;const u=d.properties.find(a=>{var o;return((o=a.implements)==null?void 0:o.id)===he[f.BuiltInBaseEntity][Le.PERSISTED_ENTITY].properties.database.id});return(i=u==null?void 0:u.getDefaultValue())==null?void 0:i.valueAsTypeSingle}function xr(d,u){var a;if(!eg.includes(u.type)||!d)return u.project||null;let i=u.project;return d.type===f.Project?i=d:((a=u.project)==null?void 0:a.id)!==d.project.id&&(i=d.project),i}function CIe(d){switch(d){case f.Project:return N;case f.InstalledProject:return ao;case f.DefinitionEntity:return Xn;case f.FunctionDeclaration:return Xa;case f.GlobalEvent:return to;case f.VariableInstance:return io;case f.VariableDeclaration:return so;case f.InputMap:return Zn;case f.OutputMap:return fn;case f.Condition:return ro;case f.Operation:return Qa;case f.FunctionCall:return Eo;case f.ReturnDeclaration:return Qi;case f.ArgumentDeclaration:return Kn;case f.PrimitiveEntity:return ts;case f.DataType:return fs;case f.Property:return zn;case f.ActionDescriptor:return ct;case f.ReturnStatement:return eo;case f.ContinueStatement:return $i;case f.BreakStatement:return lo;case f.Loop:return Gi;case f.Search:return no;case f.ValueDescriptor:return hn;case f.InternalCall:return oo;case f.LiteralValue:return Si}return null}function $Ie(d){const u={added:{},updated:{},removed:{},affected:[],seenEntities:[],self:d==null?void 0:d.self};return d==null||d.added.forEach(i=>{u.added[i.id]=i}),d==null||d.updated.forEach(i=>{u.updated[i.id]=i}),d==null||d.removed.forEach(i=>{u.removed[i.id]=i}),u.affected=Array.from(new Set(d==null?void 0:d.affected.map(i=>i.id))),u}function Lr(d,u){const i=Qp(d.type);return i?!i.MUTABLE_META_PROPERTIES.every(o=>{const p=d[o],e=u[o];return e===void 0||p===e?!0:Array.isArray(p)&&Array.isArray(e)?p.length!==e.length?!1:p.every((y,v)=>y===e[v]):!1}):!1}function Pm(d,u={}){if(d.type===f.Project)return[];if(!d.parent)return[];const i=H(d.parent);if(!i)return[];const a=u[i];return a?[a.id,...Pm(a,u)]:[]}function PIe(d){const u=[],i=new Set;return[...d.listAdded,...d.listUpdated,...d.listAffected].forEach(a=>{const o=fr(a);!o||i.has(o.id)||(i.add(o.id),u.push(o))}),R(u)}function NIe(d){if(d.type===f.Condition)return null;if(d.type===f.Search)return d.project.getBuiltIn(he["value-descriptor"][Zl.SearchErrorOutputDescriptor].id)||null;if(d.type===f.Operation)return d.declaration.error;if(d.type===f.FunctionCall){const i=d.declaration.returnStatements.find(a=>!!a.throws);return(i==null?void 0:i.throws)||null}return null}function CS(d){const u=d.entities.filter(o=>!!o.implements.find(p=>p.id===he["built-in-base-entity"].BUILT_IN_RELATIONAL_DATABASE_ENTITY.id)),i=u.find(o=>{const p=o.properties.find(v=>v.implements&&v.implements.id===he["built-in-base-entity"].BUILT_IN_RELATIONAL_DATABASE_ENTITY.properties.default.id),e=p==null?void 0:p.getDefaultValue();return(e==null?void 0:e.value)===!0});return i||u[0]||null}function Ib(d,u){const i=Array.from(new Set([...u.getAllBuiltInIds(),...Ys()]));return!!(i.includes(d.id)||!Pm(d,{...u.instances,...u.builtInInstances}).every(p=>!i.includes(p)))}function $S(d){if(!d)return null;if(d.type===f.Project)return d.id;const u=d.parent;return u?$S(u):d.id}function tf(d){if(d.declaration&&d.declaration.type===f.Property){if(d.declaration.interactive){if(d.declaration.implements&&!d.declaration.implements.interactive)return!1;if(d.declaration.extends&&!d.declaration.extends.interactive)return!1}else return!1;if(d.declaration.private){const u=fr(d),i=Zd(u,d.project);if((i==null?void 0:i.type)===f.FunctionDeclaration&&(i==null?void 0:i.parent.type)===f.DefinitionEntity&&(i==null?void 0:i.parent.id)!==d.declaration.parent.id)return!1}}return!0}function Ab(d){if(d.interactive){if(d.implements&&!d.implements.interactive)return!1;if(d.extends&&!d.extends.interactive)return!1}else return!1;if(d.private){const u=fr(d),i=Zd(u,d.project);if((i==null?void 0:i.type)===f.FunctionDeclaration&&(i==null?void 0:i.parent.type)===f.DefinitionEntity&&(i==null?void 0:i.parent.id)!==d.parent.id)return!1}return!0}function VIe(d,u,i){const a=u,o=i,p=!!i,e=[];return a.forEach(y=>{var v;if(p){const E=zs(o,y,d);if(!E.compatible&&E.type!=="b-is-global-a-is-not")return;e.push(y)}else{if(((v=y.parent)==null?void 0:v.type)!==f.Project)return;e.push(y)}}),R(e)}function Nm(d){return d.replace(/["'`]/g,"")}function Mr(d){const i=Nm(d).split(/[\s-]+/).filter(e=>e.length>0);if(i.length===0)return"";const a=i[0],o=a[0].toLowerCase()+a.slice(1),p=i.slice(1).map(e=>e[0].toUpperCase()+e.slice(1));return[o,...p].join("")}function Wd(d){return Nm(d).split(/[\s-]+/).filter(a=>a.length>0).map(a=>a[0].toUpperCase()+a.slice(1)).join("")}function PS(d){const u=Nm(d).trim();if(!u)return"";const i=u.replace(/[\s_-]+/g," ").split(" ").filter(Boolean),a=[];for(const o of i){let p=o;p=p.replace(/([A-Z]+)([A-Z][a-z]+)/g,"$1-$2"),p=p.replace(/([a-z0-9])([A-Z][a-z0-9]*)/g,"$1-$2"),p=p.replace(/([0-9])([a-zA-Z]+)/g,"$1-$2"),p=p.replace(/([a-zA-Z])([0-9])/g,"$1-$2");for(const e of p.split("-"))e&&a.push(e)}return a.join("-")}function LIe(d){const u=Nm(d).trim();if(!u)return"";const i=u.replace(/[\s_-]+/g," ").split(" ").filter(Boolean),a=[];for(const o of i){let p=o;p=p.replace(/([A-Z]+)([A-Z][a-z]+)/g,"$1_$2"),p=p.replace(/([a-z0-9])([A-Z][a-z0-9]*)/g,"$1_$2"),p=p.replace(/([0-9])([a-zA-Z]+)/g,"$1_$2"),p=p.replace(/([a-zA-Z])([0-9])/g,"$1_$2");for(const e of p.split("_"))e&&a.push(e)}return a.join("_")}function Vm(d){return PS(d).toLowerCase()}function Jd(d){var i,a,o,p;if(!d)return"Any data type";let u="";if(d.interactiveEntities===!1?u+=` but only definition nodes ${d.asType?"as template ":""}that don't include non-interactive built-in functionality`:d.interactiveEntities===!0&&(u+=` but only definition nodes ${d.asType?"as template ":""}that extend or implement interactive built-in functionality`),d.staticEntities===!1?u?u+=" and that aren't a single global copy instance":u+=` but only definition nodes ${d.asType?"as template ":""}that aren't a single global copy instance`:d.staticEntities===!0&&(u?u+=" and that are a single global copy instance":u+=` but only definition nodes ${d.asType?"as template ":""}that are a single global copy instance`),d.actionEntities===!1?u?u+=" excluding executable/action nodes":u+=` excluding executable/action nodes ${d.asType?"templates ":""}`:d.actionEntities===!0&&(u?u+=" and not executable/action nodes":u+=" but not executable/action nodes"),d.entity&&(u=""),d.asType&&!u&&!((i=d.andChildrenGroup)!=null&&i.length)&&!((a=d.orChildrenGroup)!=null&&a.length)&&(u=" as template"),!d.entity){const e=d.isList;if(!((o=d.andChildrenGroup)!=null&&o.length)&&!((p=d.orChildrenGroup)!=null&&p.length))return e?`List of an any data type${u}`:`Any data type${u}`;let y="",v=!1,E=!1;return(d.andChildrenGroup||[]).forEach(w=>{const A=Jd(w),C=bd(A);v&&(y+=" and "),w.isGroup?y+="("+C+")":v?y+=C:y+=A,v=!0,E=!0}),(d.orChildrenGroup||[]).forEach(w=>{const A=Jd(w),C=bd(A);v&&(E&&(y+=","),y+=" or "),w.isGroup?y+="("+C+")":v?y+=C:y+=A,v=!0}),e?`List of ${bd(y)}`:y}if(d.entity.type===f.PrimitiveEntity){let e=d.entity.name;switch(d.entity.name){case ae.String:e="Text";break;case ae.KeyValue:e="Data structure";break}return d.isList?`List of ${e}s${u}`:`${e.slice(0,1).toUpperCase()}${e.slice(1)}${u}`}else if(d.entity.type===f.DefinitionEntity){const e=W(d.entity,d.project);return d.isList?`List of ${e} values${u}`:e.slice(0,1).toUpperCase()+e.slice(1)+u}else if(d.entity.type===f.BuiltInBaseEntity){const e=VS(d.entity);return d.isList?`List of ${e} values${u}`:e.slice(0,1).toUpperCase()+e.slice(1)+u}else if(d.entity.type===f.LiteralValue){if(d.entity.name===ae.Null)return"Empty value";if(d.entity.name===ae.Untyped)return"Untyped value";if(d.entity.name===ae.File)return"File";if(d.entity.name===ae.String)return`"${d.entity.value}" text`;if(d.entity.name===ae.Number)return`Number '${d.entity.value}'`;if(d.entity.name===ae.Boolean)return`${d.entity.value} value`;if(d.entity.name===ae.UUID)return`"${d.entity.value}" unique identifier`;if(d.entity.name===ae.Date)return`"${d.entity.value}" date`}return d.isList?`List of ${W(d.entity,d.project)} values${u}`:`${W(d.entity,d.project).slice(0,1).toUpperCase()+W(d.entity,d.project).slice(1)} value${u}`}function MIe(d){if(!d)return"Any data type";const u=d.getDataType(null);return Jd(u)}function Lm(d){switch(d.declaration.id){case ut.Equal:return"is equal to";case ut.NotEqual:return"is not equal to";case ut.MoreThan:return"is greater than";case ut.MoreThanOrEqual:return"is greater than or equal to";case ut.LessThan:return"is less than";case ut.LessThanOrEqual:return"is less than or equal to";case Kr.And:return"and";case Kr.Or:return"or";case ai.Empty:return"is empty";case ai.NotEmpty:return"is present"}}function NS(d){return d.includes(Le.HTTP_ENDPOINT)?"HTTP endpoint":d.includes(Le.PERSISTED_ENTITY)?"Persisted entity":d.includes(Le.CRON_JOB)?"Scheduled execution":d.includes(Le.RELATIONAL_DATABASE)?"Relational database":"Entity"}function VS(d){switch(d.name){case Le.HTTP_ENDPOINT:return"HTTP endpoint";case Le.PERSISTED_ENTITY:return"Persisted entity";case Le.CRON_JOB:return"Scheduled execution";case Le.RELATIONAL_DATABASE:return"Relational database"}return"Entity"}function BIe(d){const u=Dm(d);if(!u){const i=qd(d);return i.includes(Le.HTTP_ENDPOINT)?"HTTP endpoint":i.includes(Le.PERSISTED_ENTITY)?"Persisted entity":i.includes(Le.CRON_JOB)?"Scheduled execution":i.includes(Le.RELATIONAL_DATABASE)?"Relational database":W(d,d.project)+" entity"}return W(u,d.project)+" entity"}function LS(d){let u="Find ";return d.outputsDeclarations.forEach((i,a)=>{const o=Iy(i,null),p=bd(o&&o.entity?W(o.entity,d.project):"unstructured data");a===0?u+=`${p} `:a===d.outputsDeclarations.length-1?u+=`and ${p} `:u+=`, ${p} `}),u}function MS(d){switch(d.name){case ae.String:return"Text";case ae.Number:return"Number";case ae.Boolean:return"Boolean";case ae.KeyValue:return"Data structure";case ae.UUID:return"Unique identifier";case ae.Date:return"Date";case ae.EntityTemplate:return"Entity as template";case ae.Enum:return"Enumeration";case ae.File:return"File";case ae.Null:return"Empty";case ae.ActionDescriptor:return"Action descriptor";case ae.Untyped:return"Untyped";default:return d.name}}function BS(d){switch(d.id){case We.List:return"Loop over list items";case We.ManualFlow:return"Manual flow control loop";case We.ObjectKeys:return"Loop over object keys";case We.ObjectValues:return"Loop over object values";case We.Counted:return"Loop given number of times";case We.String:return"Loop over text characters";case Zt.Addition:return"Sum numbers";case Zt.Subtraction:return"Subtract numbers";case Zt.Multiplication:return"Multiply numbers";case Zt.Division:return"Divide numbers";case Zt.Remainder:return"Get remainder of numbers";case Zt.Exponentiation:return"Get exponent of numbers";case Ge.AddIndex:return"Add at index position";case Ge.DeleteFirst:return"Delete first character";case Ge.DeleteLast:return"Delete last character";case Ge.DeleteIndex:return"Delete at index position";case Ge.Join:return"Join texts";case Ge.ReplaceAllMatches:return"Replace all matches";case Ge.ReplaceFirst:return"Replace first match";case Ge.ReplaceLast:return"Replace last match";case Ge.Split:return"Split text";case Ge.ReplaceIndex:return"Replace at index position";case Ge.ReplaceSingleMatch:return"Replace single match";case Ge.GetFirst:return"Get first character";case Ge.GetLast:return"Get last character";case Ge.GetIndexItem:return"Get at index position";case Ge.GetIndexOf:return"Get the index number of the character";case Ge.Append:return"Add at the end";case Ge.Prepend:return"Add at the start";case tr.Wait:return"Wait";case tr.Parallel:return"Run in parallel";case tr.Sequential:return"Run in sequence";case hi.HttpRequest:return"HTTP request";case pr.CreateNewInstance:return"Create new copy of entity";case Fe.AddIndex:return"Add item at index position";case Fe.DeleteFirst:return"Delete first item";case Fe.DeleteLast:return"Delete last item";case Fe.DeleteIndex:return"Delete item at index position";case Fe.Join:return"Join lists";case Fe.ReplaceFirst:return"Replace first match";case Fe.ReplaceLast:return"Replace last match";case Fe.Split:return"Split list";case Fe.ReplaceIndex:return"Replace at index position";case Fe.GetFirst:return"Get first item";case Fe.GetLast:return"Get last item";case Fe.GetIndexItem:return"Get item at index position";case Fe.Append:return"Add item at the end";case Fe.Prepend:return"Add item at the start";case va.PROJECT_PUBLICATION_COMPLETED:return"Project publication completed";default:return(d.name.slice(0,1).toUpperCase()+d.name.slice(1)).replaceAll("-"," ")}}function W(d,u){var i;if(f.FunctionDeclaration===d.type){const a=d.name;if(Object.values(Jr).includes(a))switch(a){case Jr.AbortExecution:return"Abort ongoing execution";case Jr.DeletePersistedEntity:return"Delete entry from database";case Jr.CreatePersistedEntity:return"Save new data entry in database";case Jr.UpdatePersistedEntity:return"Update entity data to database";default:return Ti(d.type).replaceAll("-"," ")}return a}if(f.BuiltInBaseEntity===d.type)return NS([d.name]);if(X_.includes(d.type)&&d.type!==f.ActionDescriptor)return d.name;switch(d.type){case f.Search:return LS(d);case f.GlobalEvent:return d.implements?W(d.implements,u):Ti(d.type).replaceAll("-"," ");case f.Operation:case f.InternalCall:case f.Loop:const a=qi(d.declaration,u);return W(a,u);case f.ActionDescriptor:return BS(d);case f.BreakStatement:const o=qi(d.parent,u);return`Stop loop ${W(o,u)}`;case f.ContinueStatement:const p=qi(d.parent,u);return`Execute next iteration of ${W(p,u)}`;case f.FunctionCall:return qi(d.declaration,u).name;case f.Condition:{const y=d;if(y.declaration.id===Kr.And)return"If all conditions are met";if(y.declaration.id===Kr.Or)return"If any condition is met";if((i=d.inputs)!=null&&i.length){const v=W(y.inputs[0],y.project);if(y.inputs[1]){const E=y.inputs[1].declaration.name;return`If ${v} ${Lm(y)} ${E}`}return`If ${v} ${Lm(y)}`}else return`If ${Lm(y)}`}case f.ReturnStatement:{const y=qi(d.parent,u);return y?`Output of ${W(y,u)}`:"Return statement"}case f.InputMap:if(d.declaration){const y=qi(d.declaration,u);return W(y,u)||""}else{if(!d.name)throw new Error(`Input map entity with id "${d.id}" has no name and no declaration.`);return d.name||""}case f.VariableInstance:{const y=qi(d.declaration,u);return W(y,u)||""}case f.OutputMap:if(d.declaration){const y=qi(d.declaration,u);return(y==null?void 0:y.name)||""}else return d.parentRelationType===Ga.Error?"Undeclared error":"";case f.PrimitiveEntity:case f.LiteralValue:return MS(d);default:return Ti(d.type).replaceAll("-"," ")}}function bb(d,u){const i=[];d.name||i.push(new se({id:`${d.id}--${re.EmptyName}`,message:`Entity with id "${d.id}" and type "${d.type}" has an empty name. Please provide a 'name' string.`,severity:Z.Error,code:re.EmptyName}));const a=u.entities.filter(o=>o.name===d.name);return a.length&&i.push(new se({id:`${d.id}--${re.NameNotUniqueInScope}`,message:`Entity with id "${d.id}" and type "${d.type}" has a name "${d.name}" that is not unique in the project. Entity with id "${a[0].id}" has the same name.
|
|
396
|
+
You shouldn't have to manually update a 'parent' property. The equivalent result is to change its callers, the value writters of its inputs, or the value readers of its outputs.`})),{errors:a,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 G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"sync-dependents"))){const a=[],o=[],p=[],e=[];return Object.values(this.detachedDependents).forEach(y=>{const v=y.entity.afterAllChildrenInitialized(i);a.push(...v.updated),o.push(...v.added),p.push(...v.removed),e.push(...v.affected)}),i==null||i.attemptAutoclose("sync-dependents",this.id),{updated:R(a),added:R(o),removed:R(p),affected:R(e),self:this}}onDetachedDependencyRemoved(i,a,o){const p=[],e=[],y=[],v=[];if(a==="declaration"){const{updated:E,added:w,removed:A}=this.remove({ignoreUpstream:!1},o);p.push(...E),e.push(...w),y.push(...A)}if(a==="parent"){const{updated:E,added:w,removed:A}=this.remove({ignoreUpstream:!1},o);p.push(...E),e.push(...w),y.push(...A)}return{updated:R(p),added:R(e),removed:R(y),affected:R(v),self:this}}onDetachedDependencyRestored(i,a,o){const p=[],e=[],y=[],v=[];if(a==="declaration"){const{updated:E,added:w,removed:A}=this.restore({},o);p.push(...E),e.push(...w),y.push(...A)}if(a==="parent"){const{updated:E,added:w,removed:A}=this.restore({},o);p.push(...E),e.push(...w),y.push(...A)}return{updated:R(p),added:R(e),removed:R(y),affected:R(v),self:this}}unsubscribeFromDependencies(){var i;return(i=this.parent)==null||i.unsubscribeDependents([{entity:this,field:"parent"}]),this.declaration.unsubscribeDependents([{entity:this,field:"declaration"}]),this}subscribeToDependencies(){var i;return(i=this.parent)==null||i.subscribeDependents([{entity:this,field:"parent"}]),this.declaration.subscribeDependents([{entity:this,field:"declaration"}]),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=N.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 Qt(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.inputs=[...this.inputs],i.outputs=[...this.outputs],i.error=this.error,i.successCalls=[...this.successCalls],i.errorCalls=[...this.errorCalls],i.process=this.process,i.declaration=this.declaration,i.calledBySuccess=[...this.calledBySuccess],i.calledByError=[...this.calledByError],i.calledByEntry=[...this.calledByEntry],i.parent=this.parent,this}recursiveCaptureUpstreamVersions(i){const a=[],o=[],p=[],e=[];if(this.parent){this.parent.increaseVersion(i);const y=this.parent.recursiveCaptureUpstreamVersions(i);a.push(this.parent,...y.updated),o.push(...y.added),p.push(...y.removed)}return{updated:R(a),added:R(o),removed:R(p),affected:R(e),self:this}}async restoreVersion(i){var v;const a=[],o=[],p=[],e=[];if(this.version===i)return{updated:R(a),added:R(o),removed:R(p),affected:R(e),self:this};if(!this.knownVersions){const E=new Map;for(const[w,A]of this.knownVersions||new Map){if(E.set(w,A),A.activeVersion=!1,A.knownVersions)for(const[C,V]of A.knownVersions)E.set(C,V);A.knownVersions=null}}let y=(v=this.knownVersions)==null?void 0:v.get(i);if(!y){const E=await this.APILoadVersion({},i);if(!E)throw new Error(`Version with id '${i}' for entity with id '${this.id}' not found.`);y=new Qt(E,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.inputs=y.inputs,this.outputs=y.outputs,this.error=y.error,this.successCalls=y.successCalls,this.errorCalls=y.errorCalls,this.process=y.process,this.declaration=y.declaration,this.calledBySuccess=y.calledBySuccess,this.calledByError=y.calledByError,this.calledByEntry=y.calledByEntry,this.parent=y.parent,{updated:R(a),added:R(o),removed:R(p),affected:R(e),self:this}}updateWithShallowTransfer(i,a=this.project.addChangeSet(new G(this.project,N.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 o=H(i.parent),p=this.project.get(o),e=this.parent;if(e&&e.id!==(p==null?void 0:p.id)&&this.removeFromParent(a),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 '${o}' 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'`);if(i.declaration){const o=H(i.declaration),p=this.project.get(o);p&&this.setDeclaration(p)}return i.calledByEntry.forEach(o=>{const p=H(o),e=this.project.get(p);e&&(this.addEntryCaller(e,a),e.addCall(this,a))}),[...this.calledByEntry].forEach(o=>{i.calledByEntry.find(e=>H(e)===o.id)||(this.removeCaller(o,a),o.removeCall(this,a))}),i.calledBySuccess.forEach(o=>{const p=H(o),e=this.project.get(p);e&&(this.addSuccessCaller(e,a),e.addSuccessCall(this,a))}),[...this.calledBySuccess].forEach(o=>{i.calledBySuccess.find(e=>H(e)===o.id)||(this.removeCaller(o,a),o.removeCall(this,a))}),i.calledByError.forEach(o=>{const p=H(o),e=this.project.get(p);e&&(this.addErrorCaller(e,a),e.addErrorCall(this,a))}),[...this.calledBySuccess].forEach(o=>{i.calledBySuccess.find(e=>H(e)===o.id)||(this.removeCaller(o,a),o.removeCall(this,a))}),this.captureVersion(),this.subscribeToDependencies(),a==null||a.attemptAutoclose("update-with-shallow-transfer",this.id),this}hydrateAncestors(){const i=[],a=[],o=[],p=[];if(this.initialData.parent){const e=H(this.initialData.parent),y=this.project.get(e);if(y)this.setParent(y,null),i.push(y);else throw new Error(`${this.type} with id '${this.id}' has a 'parent' reference '${e}' that isn't found in the project`)}else throw new Error(`${this.type} with id '${this.id}' must have a 'parent'`);if(this.initialData.declaration){const e=H(this.initialData.declaration),y=this.project.get(e);y&&(this.setDeclaration(y),i.push(y))}return this.initialData.calledByEntry.forEach(e=>{const y=H(e),v=this.project.get(y);v&&this.addEntryCaller(v,null)}),this.initialData.calledBySuccess.forEach(e=>{const y=H(e),v=this.project.get(y);v&&this.addSuccessCaller(v,null)}),this.initialData.calledByError.forEach(e=>{const y=H(e),v=this.project.get(y);v&&this.addErrorCaller(v,null)}),{updated:R(i),added:R(a),removed:R(o),affected:R(p),self:this}}afterAllChildrenInitialized(i=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"after-all-children-initialized"))){const a=[],o=[],p=[],e=[];this.initialized=!0;const{updated:y,added:v,removed:E}=this.syncInputs(i),{updated:w,added:A,removed:C}=this.syncOutputs(i);return a.push(...y,...w),o.push(...v,...A),p.push(...E,...C),this.captureVersion(),i==null||i.attemptAutoclose("after-all-children-initialized",this.id),{updated:R(a),added:R(o),removed:R(p),affected:R(e),self:this}}addSelfToProject(i=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"add-self-to-project"))){var y;const a=[this],o=[],p=[],e=[];return this.parent===this.project&&this.project.addFunctionCall(this),(y=this.process)==null||y.writesValues.forEach(v=>{v.setValueWriter(this.process,i),a.push(v)}),this.successCalls.forEach(v=>{v.addSuccessCaller(this,i),a.push(v)}),this.errorCalls.forEach(v=>{v.addErrorCaller(this,i),a.push(v)}),this.calledBySuccess.forEach(v=>{v.addSuccessCall(this,i),a.push(v)}),this.calledByError.forEach(v=>{v.addErrorCall(this,i),a.push(v)}),this.calledByEntry.forEach(v=>{v.addCall(this,i),a.push(v)}),this.subscribe(),this.subscribeToDependencies(),i==null||i.attemptAutoclose("add-self-to-project",this.id),{updated:R(a),added:R(o),removed:R(p),affected:R(e),self:this}}get calledBy(){return[...this.calledByEntry,...this.calledBySuccess,...this.calledByError]}removeInput(i,a=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"remove-input"))){const o=this.inputs.findIndex(p=>p.id===i.id);return o>-1&&(this.inputs.splice(o,1),a&&(a==null||a.add(this,S.Affected))),a==null||a.attemptAutoclose("remove-input",this.id),this}addInput(i,a=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"add-input"))){return this.inputs.includes(i)?(a==null||a.attemptAutoclose("add-input",this.id),this):(this.inputs.push(i),a==null||a.add(this,S.Affected),a==null||a.attemptAutoclose("add-input",this.id),this)}addOutput(i,a=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"add-output"))){return this.outputs.includes(i)?(a==null||a.attemptAutoclose("add-output",this.id),this):(this.outputs.push(i),a==null||a.add(this,S.Affected),a==null||a.attemptAutoclose("add-output",this.id),this)}removeOutput(i,a=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"remove-output"))){const o=this.outputs.findIndex(p=>p.id===i.id);return o>-1&&(this.outputs.splice(o,1),a&&(a==null||a.add(this,S.Affected))),a==null||a.attemptAutoclose("remove-output",this.id),this}addValueReader(i,a=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"add-value-reader"))){var o;return this.process&&!this.process.writesValues.includes(i)&&((o=this.process)==null||o.addValueReader(i,a),a==null||a.add(this,S.Affected)),a==null||a.attemptAutoclose("add-value-reader",this.id),this}removeValueReader(i,a=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"remove-value-reader"))){var o;return this.process&&this.process.writesValues.includes(i)&&((o=this.process)==null||o.removeValueReader(i,a),a==null||a.add(this,S.Affected)),a==null||a.attemptAutoclose("remove-value-reader",this.id),this}addSuccessCaller(i,a=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"add-success-caller")),o=!1){return this.calledBySuccess.find(p=>p.id===i.id)||(this.calledBySuccess.push(i),a==null||a.add(this,S.Updated),o&&He(this,a)),a==null||a.attemptAutoclose("add-success-caller",this.id),this}addErrorCaller(i,a=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"add-error-caller")),o=!1){return this.calledByError.find(p=>p.id===i.id)||(this.calledByError.push(i),a==null||a.add(this,S.Updated),o&&He(this,a)),a==null||a.attemptAutoclose("add-error-caller",this.id),this}addEntryCaller(i,a=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"add-entry-caller")),o=!1){return this.calledByEntry.find(p=>p.id===i.id)||(this.calledByEntry.push(i),a==null||a.add(this,S.Updated),o&&He(this,a)),a==null||a.attemptAutoclose("add-entry-caller",this.id),this}addErrorCall(i,a=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"add-error-call")),o=!1){return this.errorCalls.find(p=>p.id===i.id)||(this.errorCalls.push(i),o&&He(this,a),a==null||a.add(this,S.Affected)),a==null||a.attemptAutoclose("add-error-call",this.id),this}addSuccessCall(i,a=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"add-success-call")),o=!1){return this.successCalls.find(p=>p.id===i.id)||(this.successCalls.push(i),o&&He(this,a),a==null||a.add(this,S.Affected)),a==null||a.attemptAutoclose("add-success-call",this.id),this}removeCall(i,a=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"remove-call")),o=!1){const p=this.successCalls.findIndex(y=>y.id===i.id);p>-1&&(this.successCalls.splice(p,1),a==null||a.add(this,S.Affected));const e=this.errorCalls.findIndex(y=>y.id===i.id);return e>-1&&(this.errorCalls.splice(e,1),a==null||a.add(this,S.Affected)),o&&He(this,a),a==null||a.attemptAutoclose("remove-call",this.id),this}removeCaller(i,a=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"remove-caller")),o=!1){return this.calledBySuccess=this.calledBySuccess.filter(p=>p.id!==i.id?!0:(a==null||a.add(this,S.Updated),a==null||a.add(p,S.Affected),!1)),this.calledByError=this.calledByError.filter(p=>p.id!==i.id?!0:(a==null||a.add(this,S.Updated),a==null||a.add(p,S.Affected),!1)),this.calledByEntry=this.calledByEntry.filter(p=>p.id!==i.id?!0:(a==null||a.add(this,S.Updated),a==null||a.add(p,S.Affected),!1)),o&&He(this,a),a==null||a.attemptAutoclose("remove-caller",this.id),this}setParent(i,a=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"set-parent"))){var o;return((o=this.parent)==null?void 0:o.id)!==(i==null?void 0:i.id)&&(this.parent=i,a&&(a==null||a.add(this,S.Updated))),a==null||a.attemptAutoclose("set-parent",this.id),this}setDeclaration(i){return this.declaration=i,this}initChildren(i=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"init-children"))){if(this.initialized||this.startedInitialization)return this;if(this.startedInitialization=!0,this.initialData.declaration.type===f.FunctionDeclaration){const a=ie(this.initialData.declaration,this.project);this.declaration=a}else{const a=H(this.initialData.declaration),o=this.project.get(a);this.declaration=o}return this.successCalls=this.initialData.successCalls.map(a=>{const o=ie(a,this.project);if(o.addSuccessCaller(this),[f.BreakStatement,f.ContinueStatement].includes(o.type))o.setParent(this.parent.parent,null),o.initChildren(i);else if(o.type===f.ReturnStatement){const p=Hr(this,this.project);o.setParent(p,null),o.initChildren(i)}else o.type!==f.InternalCall&&(o.setParent(this.parent,null),o.initChildren(i));return o}),this.errorCalls=this.initialData.errorCalls.map(a=>{const o=ie(a,this.project);if(o.addErrorCaller(this),[f.BreakStatement,f.ContinueStatement].includes(o.type))o.setParent(this.parent.parent,null),o.initChildren(i);else if(o.type===f.ReturnStatement){const p=Hr(this,this.project);o.setParent(p,null),o.initChildren(i)}else o.type!==f.InternalCall&&(o.setParent(this.parent,null),o.initChildren(i));return o}),this.inputs=this.initialData.inputs.map(a=>{const o=ie(a,this.project);return o.setParent(this,null),o.initChildren(i),o}),this.initialData.process&&(this.process=ie(this.initialData.process,this.project),this.process.setParent(this,null),this.process.initChildren(i)),this.initialData.error&&(this.error=ie(this.initialData.error,this.project),this.error.setParent(this,null),this.error.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 G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"meta-sync"))){const o=Lr(this,i),p=this.toMeta();return this.x=i.x||p.x,this.y=i.y||p.y,this.catchesError=i.catchesError!==void 0?i.catchesError:this.catchesError,super.metaSync(i),i.deleted===!0&&!p.deleted?a==null||a.add(this,S.Removed):i.deleted===!1&&p.deleted?a==null||a.add(this,S.Added):o&&(a==null||a.add(this,S.Updated)),a==null||a.attemptAutoclose("meta-sync",this.id),this}async APILoad(i=ve,...a){return await Qt.repository.APILoad(this.id,...a),this}async APICreate(i=ve,...a){return await Qt.repository.APICreate(this.toShallowJSON(),...a),this}async APIUpdate(i=ve,...a){return await Qt.repository.APIUpdate(this.toShallowJSON(),...a),this}async APIDelete(i=ve,...a){return await Qt.repository.APIDelete(this.toShallowJSON(),...a),this}async APIClone(i=ve,...a){return await Qt.repository.APIClone(this.id,...a),this}async APILoadVersion(i=ve,a,...o){return await Qt.repository.APILoadVersion(this.id,a,...o)}removeFromParent(i=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"remove-from-parent"))){const a=[],o=[],p=[],e=[];return this.parent.type===f.Project?(this.parent.removeFunctionCall(this),e.push(this.parent)):this.parent.detachedChildren.includes(this)&&this.parent.unsubscribeDetachedChild(this),i==null||i.attemptAutoclose("remove-from-parent",this.id),{added:R(p),updated:R(a),removed:R(o),affected:R(e),self:this}}remove({ignoreUpstream:i}={ignoreUpstream:!1},a=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"remove-entity"))){var v;const o=[],p=[],e=[],y=[];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(E=>{const{updated:w,removed:A,added:C}=E.entity.onDetachedDependencyRemoved(this,E.field,a);o.push(...w),p.push(...A),e.push(...C)}),this.process){const{updated:E,removed:w}=(v=this.process)==null?void 0:v.remove({ignoreUpstream:!0},a);o.push(...E),p.push(...w)}if(this.inputs.forEach(E=>{const{updated:w,removed:A}=E.remove({ignoreUpstream:!0},a);o.push(...w),p.push(...A)}),this.outputs.forEach(E=>{const{updated:w,removed:A}=E.remove({ignoreUpstream:!0},a);o.push(...w),p.push(...A)}),this.error){const{updated:E,removed:w}=this.error.remove({ignoreUpstream:!0},a);o.push(...E),p.push(...w)}if(this.successCalls.forEach(E=>{o.push(E),E.removeCaller(this,a)}),this.errorCalls.forEach(E=>{o.push(E),E.removeCaller(this,a)}),!i){const E=this.removeFromParent(a);e.push(...E.added),o.push(...E.updated),p.push(...E.removed),y.push(...E.affected),this.calledBy.forEach(w=>{o.push(w),w.removeCall(this,a)})}return a==null||a.attemptAutoclose("remove-entity",this.id),{added:R(e),updated:R(o),removed:R(p),affected:R(y),self:this}}restore({}={},i=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"restore-entity"))){const a=[],o=[],p=[],e=[];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(y=>{const{updated:v,removed:E,added:w}=y.entity.onDetachedDependencyRestored(this,y.field,i);o.push(...v),p.push(...E),a.push(...w)}),this.process){const{updated:y}=this.process.restore({},i);o.push(...y)}return this.inputs.forEach(y=>{const{updated:v}=y.restore({},i);o.push(...v)}),this.outputs.forEach(y=>{const{updated:v}=y.restore({},i);o.push(...v)}),this.successCalls.forEach(y=>{o.push(y),y.addSuccessCaller(this,i)}),this.errorCalls.forEach(y=>{o.push(y),y.addErrorCaller(this,i)}),this.calledBySuccess.forEach(y=>{o.push(y),y.addSuccessCall(this,i)}),this.calledByError.forEach(y=>{o.push(y),y.addErrorCall(this,i)}),this.calledByEntry.forEach(y=>{o.push(y),y.addCall(this,i)}),i==null||i.attemptAutoclose("restore-entity",this.id),{added:R(a),updated:R(o),removed:R(p),affected:R(e),self:this}}toFlat(i=new Set){return i.has(this.id)?[]:(i.add(this.id),[this,...this.successCalls.flatMap(o=>o.toFlat(i)),...this.errorCalls.flatMap(o=>o.toFlat(i)),...this.inputs.flatMap(o=>o.toFlat(i)),...this.outputs.flatMap(o=>o.toFlat(i)),...this.process?this.process.toFlat(i):[],...this.error?this.error.toFlat(i):[],...this.calledBy.flatMap(o=>o.toFlat(i))])}toFlatIds(i=new Set){return i.has(this.id)?[]:(i.add(this.id),[this.id,...this.successCalls.flatMap(o=>o.toFlatIds(i)),...this.errorCalls.flatMap(o=>o.toFlatIds(i)),...this.inputs.flatMap(o=>o.toFlatIds(i)),...this.outputs.flatMap(o=>o.toFlatIds(i))])}toMeta(){return{id:this.id,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,x:this.x,y:this.y,type:this.type,catchesError:this.catchesError}}toJSON(i=new Set){var a,o;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,catchesError:this.catchesError,x:this.x,y:this.y,successCalls:this.successCalls.map(p=>p.toJSON(i)),errorCalls:this.errorCalls.map(p=>p.toJSON(i)),calledBySuccess:this.calledBySuccess.map(p=>p.toReference()),calledByError:this.calledByError.map(p=>p.toReference()),calledByEntry:this.calledByEntry.map(p=>p.toReference()),process:(a=this.process)==null?void 0:a.toJSON(i),declaration:this.declaration.toJSON(i),inputs:this.inputs.map(p=>p.toJSON(i)),outputs:this.outputs.map(p=>p.toJSON(i)),parent:this.parent.toReference(),error:(o=this.error)==null?void 0:o.toJSON(i)})}toJSONClone(i=Se){var o,p,e,y,v,E,w;let a;return(o=i.seenEntityMaps)!=null&&o.has(this.id)?a=i.seenEntityMaps.get(this.id):(a=i.newId||jr(this,this.project,i.uuidStrategy),i.seenEntityMaps&&i.seenEntityMaps.set(this.id,a)),(p=i.seenEntities)!=null&&p.has(a)||(e=i.seenEntities)!=null&&e.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:N.UUID.uuid(),createdAt:i.timestamp||L().toISOString(),previousVersion:null,author:this.author,deleted:this.deleted,catchesError:this.catchesError,type:this.type,x:this.x,y:this.y,successCalls:this.successCalls.map(A=>A.toJSONClone({...i,newId:null})),errorCalls:this.errorCalls.map(A=>A.toJSONClone({...i,newId:null})),calledBySuccess:this.calledBySuccess.map(A=>A.toReference({seenEntityMaps:i.seenEntityMaps})),calledByError:this.calledByError.map(A=>A.toReference({seenEntityMaps:i.seenEntityMaps})),calledByEntry:this.calledByEntry.map(A=>A.toReference({seenEntityMaps:i.seenEntityMaps})),process:(E=this.process)==null?void 0:E.toJSONClone({...i,newId:null}),declaration:this.declaration.toJSONClone({...i,newId:null}),inputs:this.inputs.map(A=>A.toJSONClone({...i,newId:null})),outputs:this.outputs.map(A=>A.toJSONClone({...i,newId:null})),error:(w=this.error)==null?void 0:w.toJSONClone({...i,newId:null}),parent:this.parent.toReference({seenEntityMaps:i.seenEntityMaps})})}toReference(i=Se){var o;let a=this.id;return(o=i.seenEntityMaps)!=null&&o.has(this.id)&&(a=i.seenEntityMaps.get(this.id)),{id:a+"--"+N.UUID.uuid()+"--ref",type:f.GenericReference,entityId:a,version:this.version,entityType:this.type}}toShallowJSON(i=Se){var o;let a=this.id;return(o=i.seenEntityMaps)!=null&&o.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,catchesError:this.catchesError,x:this.x,y:this.y,process:this.process?this.process.toReference(i):null,inputs:this.inputs.map(p=>p.toReference(i)),outputs:this.outputs.map(p=>p.toReference(i)),declaration:this.declaration.toReference(i),successCalls:this.successCalls.map(p=>p.toReference(i)),errorCalls:this.errorCalls.map(p=>p.toReference(i)),calledBySuccess:this.calledBySuccess.map(p=>p.toReference(i)),calledByError:this.calledByError.map(p=>p.toReference(i)),calledByEntry:this.calledByEntry.map(p=>p.toReference(i)),error:this.error?this.error.toReference(i):null,parent:this.parent.toReference(i)}}toFlatJSON(i=new Set){return i.has(this.id)?[]:(i.add(this.id),[this.toShallowJSON(),...this.successCalls.flatMap(o=>o.toFlatJSON(i)),...this.errorCalls.flatMap(o=>o.toFlatJSON(i)),...this.inputs.flatMap(o=>o.toFlatJSON(i)),...this.outputs.flatMap(o=>o.toFlatJSON(i)),...this.process?this.process.toFlatJSON(i):[],...this.error?this.error.toFlatJSON(i):[]])}toGenerationTarget(){const i=this.parent.type===f.Project?void 0:this.parent.id;return{id:this.id,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,type:this.type,calledByEntry:this.calledByEntry.map(a=>a.id),calledBySuccess:this.calledBySuccess.map(a=>a.id),calledByError:this.calledByError.map(a=>a.id),declaration:this.declaration.id,parent:i}}toFlatGenerationTarget(i=new Set){return i.has(this.id)?[]:(i.add(this.id),[this.toGenerationTarget(),...this.successCalls.flatMap(o=>o.toFlatGenerationTarget(i)),...this.errorCalls.flatMap(o=>o.toFlatGenerationTarget(i)),...this.inputs.flatMap(o=>o.toFlatGenerationTarget(i)),...this.outputs.flatMap(o=>o.toFlatGenerationTarget(i)),...this.process?this.process.toFlatGenerationTarget(i):[],...this.error?this.error.toFlatGenerationTarget(i):[]])}clearErrors(){var i,a;return this.errors=[],this.inputs.forEach(o=>o.clearErrors()),this.outputs.forEach(o=>o.clearErrors()),this.successCalls.forEach(o=>o.clearErrors()),this.errorCalls.forEach(o=>o.clearErrors()),(i=this.process)==null||i.clearErrors(),(a=this.error)==null||a.clearErrors(),this}validate(){const i=m5(this);return this.errors=i,{success:!0}}getErrors(){return[...this.errors,...this.inputs.flatMap(a=>a.getErrors()),...this.outputs.flatMap(a=>a.getErrors()),...this.error?this.error.getErrors():[],...this.process?this.process.getErrors():[]]}getShallowErrors(){return this.errors}clone(i=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"clone-entity")),a=null,o=null,p=!0){var U,F;let e=xr(a,this);const y=this.toJSON(),v=o||N.UUID.uuid();y.inputs=[];const E=v.split("-id"),w=E[E.length-1||0]||v;y.id=v,y.version=N.UUID.uuid(),y.createdAt=(i==null?void 0:i.timestamp)||L().toISOString(),y.author=(i==null?void 0:i.author)||"1",y.previousVersion=null,y.deleted=!1;const A=dr(y,e);a?A.setParent(a,null):A.setParent(this.parent,null),p&&A.subscribe(),A.initChildren(i),i==null||i.add(A,S.Added);const C=(U=this.inputs)==null?void 0:U.map((K,q)=>K.clone(i,A,w+"-input-map-"+q+"-id",p));A.inputs=C;const V=(F=this.outputs)==null?void 0:F.map((K,q)=>K.clone(i,A,w+"-output-map-"+q+"-id",p));return A.outputs=V,this.error&&(A.error=this.error.clone(i,A,w+"-error-map-id",p)),this.process&&(A.process=this.process.clone(i,A,w+"-process-id",p)),i==null||i.attemptAutoclose("clone-entity",this.id),A}removeUnrecognizedInputs(i=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"remove-unrecognized-inputs"))){const a=[],o=[],p=[],e=[];return this.inputs.forEach(v=>{if(!this.declaration.inputs.find(w=>{var A;return w.id===((A=v.declaration)==null?void 0:A.id)})){const w=v.remove({ignoreUpstream:!1},i);p.push(...w.removed),a.push(...w.updated)}}),this.inputs.filter((v,E)=>{const w=this.inputs.findIndex(C=>C.declaration===v.declaration&&C!==v);if(w===-1)return!1;const A=this.inputs[w];return L(A==null?void 0:A.createdAt).isSame(L(v.createdAt))?E>w:!!L(A==null?void 0:A.createdAt).isAfter(v.createdAt)}).forEach(v=>{const E=v.remove({ignoreUpstream:!1},i);p.push(...E.removed),a.push(...E.updated)}),i==null||i.attemptAutoclose("remove-unrecognized-inputs",this.id),{updated:R(a),added:R(o),removed:R(p),affected:R(e),self:this}}removeUnrecognizedOutputs(i=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"remove-unrecognized-outputs"))){const a=[],o=[],p=[],e=[];return this.outputs.forEach(v=>{if(!this.declaration.getUniqueReturnDeclarations().find(w=>{var A;return w.id===((A=v.declaration)==null?void 0:A.id)})){const w=v.remove({ignoreUpstream:!1},i);p.push(...w.removed),a.push(...w.updated)}}),this.outputs.filter((v,E)=>{const w=this.outputs.findIndex(C=>C.declaration===v.declaration&&C!==v);if(w===-1)return!1;const A=this.outputs[w];return L(A==null?void 0:A.createdAt).isSame(L(v.createdAt))?E>w:!!L(A==null?void 0:A.createdAt).isAfter(v.createdAt)}).forEach(v=>{const E=v.remove({ignoreUpstream:!1},i);p.push(...E.removed),a.push(...E.updated)}),i==null||i.attemptAutoclose("remove-unrecognized-outputs",this.id),{updated:R(a),added:R(o),removed:R(p),affected:R(e),self:this}}syncInputs(i=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"sync-missing-fixed-inputs"))){const a=[],o=[],p=[],e=[],y=this.declaration.inputs.filter(A=>!this.inputs.find(C=>C.declaration.id===A.id));this.inputs.sort((A,C)=>A.index-C.index),y.forEach(A=>{this.inputs.forEach(U=>{U.index>=A.index&&U.metaSync({index:U.index+1},i)});const C={id:N.UUID.uuid(),version:N.UUID.uuid(),createdAt:(i==null?void 0:i.timestamp)||L().toISOString(),author:N.sessionAuthor,previousVersion:null,deleted:!1,type:f.InputMap,declaration:A.toJSON(),readsValue:null,defaultValue:null,index:A.index,name:null,codeName:null,description:null,parent:this.toReference()},V=ie(C,this.project);V.setParent(this,i),V.initChildren(i),i==null||i.add(V,S.Added),V.addSelfToProject(i),o.push(V)}),this.inputs.sort((A,C)=>A.index-C.index);const{updated:v,added:E,removed:w}=this.removeUnrecognizedInputs(i);return a.push(...v),o.push(...E),p.push(...w),i==null||i.attemptAutoclose("sync-missing-fixed-inputs",this.id),{updated:R(a),added:R(o),removed:R(p),affected:R(e),self:this}}syncOutputs(i=this.project.addChangeSet(new G(this.project,N.sessionAuthor,L().toISOString(),this,!0,"sync-missing-fixed-outputs"))){const a=[],o=[],p=[],e=[],y=[];this.outputs=this.initialData.outputs.reduce((C,V)=>{if(V.type===f.GenericReference){const F=qi(V,this.project);return F?[...C,F]:C}const U=ie(V,this.project);return y.push(U.index),U.setParent(this,null),U.initChildren(i),[...C,U]},[]);const v=this.declaration.getUniqueReturnDeclarations().filter(C=>!this.outputs.find(V=>{var U;return((U=V.declaration)==null?void 0:U.id)===C.id}));this.outputs.sort((C,V)=>C.index-V.index),v.forEach((C,V)=>{this.outputs.forEach(q=>{q.index>=C.index&&q.index++});const U=y.includes(C.index)?this.outputs.length-1+V:C.index,F={id:N.UUID.uuid(),version:N.UUID.uuid(),createdAt:(i==null?void 0:i.timestamp)||L().toISOString(),author:N.sessionAuthor,previousVersion:null,deleted:!1,type:f.OutputMap,declaration:C.toJSON(),defaultValue:null,writesValues:[],index:U,parent:this.toReference()},K=ie(F,this.project);K.setParent(this,i),K.initChildren(i),i==null||i.add(K,S.Added),K.addSelfToProject(i)}),this.outputs.sort((C,V)=>C.index-V.index);const{updated:E,added:w,removed:A}=this.removeUnrecognizedOutputs(i);return a.push(...E),o.push(...w),p.push(...A),i==null||i.attemptAutoclose("sync-missing-fixed-outputs",this.id),{updated:R(a),added:R(o),removed:R(p),affected:R(e),self:this}}getUnusedInputs(){return this.inputs.filter(i=>i.suggestion||!i.readsValue&&!i.defaultValue)}getUnusedOutputs(){return this.outputs.filter(i=>i.suggestion||!i.writesValues.length)}getUsedInputs(){return this.inputs.filter(i=>!i.suggestion&&(i.readsValue||i.defaultValue))}getUsedOutputs(){return this.outputs.filter(i=>!i.suggestion&&i.writesValues.length)}};g(Qt,"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,...o)=>null}),g(Qt,"type",f.FunctionCall),g(Qt,"USER_MANAGED_PARENT_TYPES",[...Nr,f.Project]),g(Qt,"PARENT_TYPES",[...Qt.USER_MANAGED_PARENT_TYPES]),g(Qt,"MUTABLE_BASE_PROPERTIES",["catchesError"]),g(Qt,"INMUTABLE_BASE_PROPERTIES",["id","type","version","createdAt","author","previousVersion"]),g(Qt,"BASE_PROPERTIES",[...Qt.MUTABLE_BASE_PROPERTIES,...Qt.INMUTABLE_BASE_PROPERTIES]),g(Qt,"MUTABLE_META_PROPERTIES",["x","y"]),g(Qt,"INMUTABLE_META_PROPERTIES",[...Qt.INMUTABLE_BASE_PROPERTIES]),g(Qt,"META_PROPERTIES",[...Qt.MUTABLE_META_PROPERTIES,...Qt.INMUTABLE_META_PROPERTIES]),g(Qt,"MUTABLE_UPSTREAM_PROPERTIES",["calledBySuccess","calledByError","calledByEntry"]),g(Qt,"INMUTABLE_UPSTREAM_PROPERTIES",["declaration","parent"]),g(Qt,"UPSTREAM_PROPERTIES",[...Qt.MUTABLE_UPSTREAM_PROPERTIES,...Qt.INMUTABLE_UPSTREAM_PROPERTIES]),g(Qt,"MUTABLE_DOWNSTREAM_PROPERTIES",["successCalls","errorCalls","writesValues","inputs","outputs","error"]),g(Qt,"INMUTABLE_DOWNSTREAM_PROPERTIES",[]),g(Qt,"DOWNSTREAM_PROPERTIES",[...Qt.MUTABLE_DOWNSTREAM_PROPERTIES,...Qt.INMUTABLE_DOWNSTREAM_PROPERTIES]),g(Qt,"PROPERTIES",[...Qt.META_PROPERTIES,...Qt.UPSTREAM_PROPERTIES,...Qt.DOWNSTREAM_PROPERTIES]);let Eo=Qt;function sb(d){return d&&typeof d.then=="function"}function zTe(d){const u=new Yn(d[0]),i=d.map(o=>o.id),a={};return d.forEach(o=>{a[o.id]=o}),u.order=i,u.flatRecord=a,u.orderEntities(),u.order.map(o=>u.flatRecord[o])}function XTe(d){const u=new Yn(Object.values(d)[0]),i=Object.keys(d);return u.order=i,u.flatRecord=d,u.orderEntities(),u.order}class Yn{constructor(u){g(this,"order",[]);g(this,"flatRecord",{});g(this,"allBuiltInEntityIds",Ys());g(this,"onGoingVisits",{});u&&(this.flatten(u),this.orderEntities())}flatten(u){const i=new Set(Ys()),a=R(me(u,i,{ignoreBuiltInBaseEntities:!0})),o=new Set;for(const p of a)this.flatRecord[p.id]=p,o.add(p.id);this.order=Array.from(o)}moveEntityAfterDependencies(u){const{upstream:i}=Sd(u,this.flatRecord,{ignoreBuiltInBaseEntities:!0,allBuiltInEntityIds:this.allBuiltInEntityIds});for(const a of Object.keys(i)){const o=this.order.indexOf(a),p=this.order.indexOf(u.id);if(o>p)return this.order.splice(p,1),this.order.splice(o,0,u.id),!0}return!1}orderEntities(){let u=!1;for(let i=0;i<this.order.length;i++){const a=this.order[i],o=this.flatRecord[a];if(o||Me.warn(`Entity with id ${a} not found in flatRecord. Skipping...`),this.moveEntityAfterDependencies(o)){u=!0;break}}u&&this.orderEntities()}getUpstreamOngoingDependenciesVisits(u,i){const{upstream:a}=Sd(this.flatRecord[u],this.flatRecord,{ignoreBuiltInBaseEntities:!0,allBuiltInEntityIds:this.allBuiltInEntityIds}),o={};return Object.entries(this.onGoingVisits[i]||{}).forEach(([p,e])=>{Object.keys(a).includes(p)&&(o[p]=e)}),o}getDownstreamOngoingDependenciesVisits(u,i){const a=Object.keys(this.onGoingVisits[i]||{}),o=new Set(a.flatMap(e=>Object.keys(Sd(this.flatRecord[e],this.flatRecord,{ignoreBuiltInBaseEntities:!0,allBuiltInEntityIds:this.allBuiltInEntityIds}).downstream))),p={};return Array.from(o).forEach(e=>{e===u&&(p[e]=this.onGoingVisits[i][e])}),p}async settlePromises(u,i){const a=Object.values(u);a.length&&await Promise.all(a),Object.keys(u).forEach(o=>{delete this.onGoingVisits[i][o]})}visit(u){const i=this.order;for(const a of i)u(this.flatRecord[a],this.flatRecord);return this}reverseVisit(u){const i=this.order.slice().reverse();for(const a of i)u(this.flatRecord[a],this.flatRecord);return this}async visitAsync(u){const i=this.order,a=Math.random().toString(36).substring(7);this.onGoingVisits[a]={};for(const o of i){const p=this.getUpstreamOngoingDependenciesVisits(o,a);Object.keys(p).length&&await this.settlePromises(p,a);const e=u(this.flatRecord[o],this.flatRecord);sb(e)&&(this.onGoingVisits[a][o]=e)}return await this.settlePromises(this.onGoingVisits[a],a),this.onGoingVisits[a]={},this}async reverseVisitAsync(u){const i=this.order.slice().reverse(),a=Math.random().toString(36).substring(7);this.onGoingVisits[a]={};for(const o of i){const p=this.getDownstreamOngoingDependenciesVisits(o,a);Object.keys(p).length&&await this.settlePromises(p,a);const e=u(this.flatRecord[o],this.flatRecord);sb(e)&&(this.onGoingVisits[a][o]=e)}return await this.settlePromises(this.onGoingVisits[a],a),this.onGoingVisits[a]={},this}}function E5(d,u){switch(d.id){case he["built-in-base-entity"].BUILT_IN_PERSISTED_ENTITY_ENTITY.id:{const i=d.project.entities.filter(v=>!!v.implements.find(E=>E.id===he["built-in-base-entity"].BUILT_IN_RELATIONAL_DATABASE_ENTITY.id)),a=i.find(v=>{const E=v.properties.find(C=>C.implements&&C.implements.id===he["built-in-base-entity"].BUILT_IN_RELATIONAL_DATABASE_ENTITY.properties.default.id),w=E==null?void 0:E.getDefaultValue();return(w==null?void 0:w.value)===!0});if(!a&&i.length){const E=i[0].properties.find(A=>A.implements&&A.implements.id===he["built-in-base-entity"].BUILT_IN_RELATIONAL_DATABASE_ENTITY.properties.default.id),w=E==null?void 0:E.defaultValue;if(w)w.metaSync({value:!0},u);else if(E!=null&&E.dataType){const A={id:N.UUID.uuid(),version:N.UUID.uuid(),createdAt:(u==null?void 0:u.timestamp)||new Date().toISOString(),author:N.sessionAuthor,previousVersion:null,deleted:!1,type:f.LiteralValue,standaloneParent:null,name:ae.EntityTemplate,autogeneration:null,value:!0,valueAsTypeSingle:null,valueAsTypeList:null,parent:E==null?void 0:E.toReference()},C=ie(A,d.project);return C.setParent(E,u),C.initChildren(u),u==null||u.add(C,S.Added),C.addSelfToProject(u),{newEntities:[C]}}return{newEntities:[]}}else if(a)return{newEntities:[]};const o=d.project.get(he["built-in-base-entity"].BUILT_IN_RELATIONAL_DATABASE_ENTITY.id),p=mm(o,"Main database",u);if(p.errors.length>0)return{newEntities:[]};const e=p.properties.find(v=>v.implements&&v.implements.id===he["built-in-base-entity"].BUILT_IN_RELATIONAL_DATABASE_ENTITY.properties.default.id),y=e==null?void 0:e.defaultValue;if(y)y.metaSync({value:!0},u);else if(e!=null&&e.dataType){const v={id:N.UUID.uuid(),version:N.UUID.uuid(),createdAt:(u==null?void 0:u.timestamp)||new Date().toISOString(),author:N.sessionAuthor,previousVersion:null,deleted:!1,type:f.LiteralValue,standaloneParent:null,name:ae.EntityTemplate,autogeneration:null,value:!0,valueAsTypeSingle:null,valueAsTypeList:null,parent:e==null?void 0:e.toReference()},E=ie(v,d.project);E.setParent(e,u),E.initChildren(u),u==null||u.add(E,S.Added),E.addSelfToProject(u)}return{newEntities:[p]}}}return{newEntities:[]}}function T5(d,u){const i=[],a=[],o=[],p=[];return d.implements.filter(y=>y.type===f.BuiltInBaseEntity).forEach(y=>{var v;switch(y.id){case he["built-in-base-entity"].BUILT_IN_PERSISTED_ENTITY_ENTITY.id:{const E=d.project.entities.filter(V=>V.implements.find(U=>U.id===he["built-in-base-entity"].BUILT_IN_RELATIONAL_DATABASE_ENTITY.id));let w=E.find(V=>!!V.properties.find(U=>{var F;return U.implements&&U.implements.id===he["built-in-base-entity"].BUILT_IN_RELATIONAL_DATABASE_ENTITY.properties.default.id&&((F=U.getDefaultValue())==null?void 0:F.value)===!0}));if(!w&&E.length)w=E[0];else if(!w&&!E.length){w=d.project.getBuiltIn(he["built-in-base-entity"].BUILT_IN_RELATIONAL_DATABASE_ENTITY.id).implement("Relational database",u);const U=w.properties.find(F=>{var K;return((K=F.implements)==null?void 0:K.id)===he["built-in-base-entity"].BUILT_IN_RELATIONAL_DATABASE_ENTITY.properties.default.id});(v=U==null?void 0:U.defaultValue)==null||v.metaSync({value:!0},u),a.push(w)}const A=d.properties.find(V=>V.implements&&V.implements.id===he["built-in-base-entity"].BUILT_IN_PERSISTED_ENTITY_ENTITY.properties.database.id),C=A==null?void 0:A.defaultValue;if(A&&!C){const V={id:N.UUID.uuid(),version:N.UUID.uuid(),createdAt:(u==null?void 0:u.timestamp)||new Date().toISOString(),author:N.sessionAuthor,previousVersion:null,deleted:!1,type:f.LiteralValue,standaloneParent:null,name:ae.EntityTemplate,autogeneration:null,value:null,valueAsTypeSingle:(w==null?void 0:w.toJSON())||null,valueAsTypeList:null,parent:A==null?void 0:A.toReference()},U=ie(V,d.project);U.hydrateAncestors(),U.setParent(A,u),U.addSelfToProject(u),U.initChildren(u),u==null||u.add(U,S.Added),a.push(U);return}else C&&!C.valueAsTypeSingle&&C.setValueAsTypeSingle(w||null,u);return}}}),{self:d,updated:R(i),added:R(a),removed:R(o),affected:R(p)}}function mm(d,u,i,a){const o=a||N.UUID.uuid(),p=N.UUID.uuid(),e={id:o,version:p,createdAt:(i==null?void 0:i.timestamp)||new Date().toISOString(),author:N.sessionAuthor,previousVersion:null,deleted:!1,name:u,type:f.DefinitionEntity,codeName:null,description:null,static:d.static,abstract:!1,properties:[],methods:[],abstractMethods:[],extends:null,implements:[d.toJSON()],x:0,y:0,parent:d.project.toReference()};E5(d,i);const y=ie(e,d.project);return y.hydrateAncestors(),i==null||i.add(y,S.Added),y.addSelfToProject(i),y.addImplementation(d),y.setParent(d.project,i),y.initChildren(i),T5(y,i),y}function nb(d,u){return u.entities.find(o=>{const p=o.properties,e=p.map(A=>A.name),y=d.every(A=>e.includes(A)),v=e.filter(A=>!d.includes(A)),E=p.every(A=>!v.includes(A.name)||!A.required);return y&&E})||null}function I5(d,u,i,a=yi.OrDataTypeGroup){const o=[],p=[],e=[],y=[],E={id:N.UUID.uuid(),version:N.UUID.uuid(),createdAt:(i==null?void 0:i.timestamp)||new Date().toISOString(),author:N.sessionAuthor,previousVersion:null,deleted:!1,type:f.DataType,options:null,implementationChooseOne:!1,entity:d.toJSON(),isList:!1,asType:!1,andChildrenGroup:null,index:null,orChildrenGroup:null,staticEntities:null,interactiveEntities:null,actionEntities:null,like:!0,inferred:!1,parentRelationType:a,parent:u.toReference()},w=ie(E,d.project);return p.push(w),w.setParent(u,i),w.initChildren(i),i==null||i.add(w,S.Added),w.setEntity(d,i),w.addSelfToProject(i),{updated:R(o),added:R(p),removed:R(e),affected:R(y),self:w}}function ab(d,u,i,a,o){var E,w,A,C,V,U,F,K;const p=[],e=[],y=[],v=[];switch(typeof d){case"string":let q=!1;const ne=new Date(d);if(ne instanceof Date&&!isNaN(ne.valueOf())&&(q=!0),q){const J=u.project.getBuiltIn(he[f.PrimitiveEntity][ae.Date].id);u.setEntity(J,a);break}else{const J=u.project.getBuiltIn(he[f.PrimitiveEntity][ae.String].id);u.setEntity(J,a);break}case"number":u.setEntity(u.project.getBuiltIn(he[f.PrimitiveEntity][ae.Number].id),a);break;case"boolean":u.setEntity(u.project.getBuiltIn(he[f.PrimitiveEntity][ae.Boolean].id),a);break;case"object":if(d===null){u.setEntity(u.project.getBuiltIn(he[f.PrimitiveEntity][ae.Null].id),a);break}else if(Array.isArray(d))if(u.metaSync({isList:!0},a),d.length>0){const J=d.slice(0,5).filter(X=>X!==void 0);if(J.every(X=>typeof X==typeof J[0])&&(typeof J[0]!="object"||J[0]===null))switch(typeof J[0]){case"string":u.setEntity(u.project.getBuiltIn(he[f.PrimitiveEntity][ae.String].id),a);break;case"number":u.setEntity(u.project.getBuiltIn(he[f.PrimitiveEntity][ae.Number].id),a);break;case"boolean":u.setEntity(u.project.getBuiltIn(he[f.PrimitiveEntity][ae.Boolean].id),a);break;case"object":u.setEntity(u.project.getBuiltIn(he[f.PrimitiveEntity][ae.Null].id),a);break}else{const X=[];let ce=!1;J.forEach(Y=>{var pe,ee,ue,Ie;if(Array.isArray(Y)&&(ce=!0),typeof Y=="object"&&!Array.isArray(Y)&&Y!==null){const Ue=vm(Y,u.project,{...i,id:N.UUID.uuid()},a,o);Ue.hasCreated&&X.push((pe=Ue.changeSet)==null?void 0:pe.self),p.push(...(ee=Ue.changeSet)==null?void 0:ee.updated),e.push(...(ue=Ue.changeSet)==null?void 0:ue.added),y.push(...(Ie=Ue.changeSet)==null?void 0:Ie.removed)}});const z=R(X);if(!z.length&&!ce){J.forEach(Y=>{const pe={id:N.UUID.uuid(),version:N.UUID.uuid(),createdAt:(a==null?void 0:a.timestamp)||new Date().toISOString(),author:N.sessionAuthor,previousVersion:null,deleted:!1,type:f.DataType,options:null,implementationChooseOne:!1,entity:null,isList:!1,asType:!1,andChildrenGroup:null,index:null,orChildrenGroup:null,staticEntities:!1,interactiveEntities:!0,actionEntities:!1,like:!0,inferred:!1,parentRelationType:yi.OrDataTypeGroup,parent:u.toReference()},ee=ie(pe,u.project);switch(ee.setParent(u,a),ee.initChildren(a),a==null||a.add(ee,S.Added),ee.addSelfToProject(a),typeof Y){case"string":ee.setEntity(ee.project.getBuiltIn(he[f.PrimitiveEntity][ae.String].id),a);break;case"number":ee.setEntity(ee.project.getBuiltIn(he[f.PrimitiveEntity][ae.Number].id),a);break;case"boolean":ee.setEntity(ee.project.getBuiltIn(he[f.PrimitiveEntity][ae.Boolean].id),a);break;case"object":ee.setEntity(ee.project.getBuiltIn(he[f.PrimitiveEntity][ae.Null].id),a);break}});break}else z.length===1&&!ce?u.setEntity(z[0],a):J.forEach(Y=>{if(typeof Y=="object"&&!Array.isArray(Y)&&Y!==null){const pe=nb(Object.keys(Y),u.project);if(pe){const ee=I5(pe||z[0],u,a,yi.OrDataTypeGroup);p.push(...ee.updated),e.push(...ee.added),y.push(...ee.removed)}}else{const pe={id:N.UUID.uuid(),version:N.UUID.uuid(),createdAt:(a==null?void 0:a.timestamp)||new Date().toISOString(),author:N.sessionAuthor,previousVersion:null,deleted:!1,type:f.DataType,options:null,implementationChooseOne:!1,entity:null,isList:Array.isArray(Y),asType:!1,andChildrenGroup:null,index:null,orChildrenGroup:null,staticEntities:!1,interactiveEntities:!0,actionEntities:!1,like:!0,inferred:!1,parentRelationType:yi.OrDataTypeGroup,parent:u.toReference()},ee=ie(pe,u.project);ee.setParent(u,a),ee.initChildren(a),a==null||a.add(ee,S.Added),ee.addSelfToProject(a);const ue=ab(Y,ee,{...i,id:N.UUID.uuid()},a,o);p.push(...ue.updated),e.push(...ue.added),y.push(...ue.removed)}})}}else{const J=vm(d[0],u.project,{...i},a,o);u.setEntity((E=J.changeSet)==null?void 0:E.self,a),p.push(...(w=J.changeSet)==null?void 0:w.updated),e.push(...(A=J.changeSet)==null?void 0:A.added),y.push(...(C=J.changeSet)==null?void 0:C.removed);break}else{const J=vm(d,u.project,{...i},a,o);u.setEntity((V=J.changeSet)==null?void 0:V.self,a),p.push(...(U=J.changeSet)==null?void 0:U.updated),e.push(...(F=J.changeSet)==null?void 0:F.added),y.push(...(K=J.changeSet)==null?void 0:K.removed);break}}return{updated:R(p),added:R(e),removed:R(y),affected:R(v),self:u}}function vm(d,u,i,a,o){const p=[],e=[],y=[],v=[],E=Object.keys(d),w=nb(E,u);if(w)return{hasCreated:!1,changeSet:{updated:[],added:[],removed:[],affected:[],self:w}};const A=o?i.name+" of "+o.name:i.name,V={id:i.id||N.UUID.uuid(),version:N.UUID.uuid(),createdAt:(a==null?void 0:a.timestamp)||new Date().toISOString(),author:N.sessionAuthor,previousVersion:null,deleted:!1,name:A,codeName:null,type:f.DefinitionEntity,description:i.description||null,static:i.static||!1,abstract:i.abstract||!1,properties:[],methods:[],abstractMethods:[],extends:null,implements:[],x:0,y:0,parent:u.toReference()},U=ie(V,u);return U.setParent(u,a),U.initChildren(a),a==null||a.add(U,S.Added),U.addSelfToProject(a),e.push(U),E.forEach((F,K)=>{const ne={id:N.UUID.uuid(),version:N.UUID.uuid(),createdAt:(a==null?void 0:a.timestamp)||new Date().toISOString(),author:N.sessionAuthor,previousVersion:null,deleted:!1,name:F,type:f.Property,codeName:F,description:null,static:!1,abstract:!1,defaultValue:null,constant:!1,interactive:!0,dataType:null,implements:null,extends:null,index:K,hidden:!1,private:!1,required:!0,parent:U.toReference()},J=ie(ne,u);J.setParent(U,a),J.initChildren(a),a==null||a.add(J,S.Added),J.addSelfToProject(a),e.push(J);const de=d[F],ce={id:N.UUID.uuid(),version:N.UUID.uuid(),createdAt:(a==null?void 0:a.timestamp)||new Date().toISOString(),author:N.sessionAuthor,previousVersion:null,deleted:!1,type:f.DataType,parentRelationType:null,options:null,implementationChooseOne:!1,entity:null,isList:!1,asType:!1,andChildrenGroup:null,index:null,orChildrenGroup:null,staticEntities:!1,interactiveEntities:!0,actionEntities:!1,like:!0,inferred:!1,parent:J.toReference()},z=ie(ce,u);z.setParent(J,a),z.initChildren(a),a==null||a.add(z,S.Added),z.addSelfToProject(a),e.push(z);const Y=ab(de,z,{...i,name:F,id:N.UUID.uuid()},a,o||U);p.push(...Y.updated),e.push(...Y.added),y.push(...Y.removed)}),{hasCreated:!0,changeSet:{updated:R(p),added:R(e),removed:R(y),affected:R(v),self:U}}}function Na(d,u,i,a){const o=[];return!d.length||!u.length?{errors:o,overlap:!1}:(d.length>u.length?d.forEach(p=>{const e=u.find(v=>v.name===p.name),y=u.find(v=>{var E,w;return!!p.implements&&((E=v.implements)==null?void 0:E.id)===((w=p.implements)==null?void 0:w.id)});if(e){const v=new ir({id:p.id+"--"+e.id+"--"+a,message:`Entity of type ${p.type} named "${p.name}" with id "${p.id}" overrides a base ${e.type} ${e.name} with id "${e.id}" that has the same name`,severity:Z.Error,code:a,entity:p,firstRelationship:e});o.push(v)}if(y){const v=new ir({id:p.id+"--"+y.id+"--"+i,message:`Entity of type ${p.type} named "${p.name}" with id "${p.id}" overrides a base ${y.type} ${y.name} with id "${y.id}" that implements the same base descriptor`,severity:Z.Error,code:i,entity:p,firstRelationship:y});o.push(v)}}):u.forEach(p=>{var v;const e=d.find(E=>E.name===p.name),y=d.find(E=>{var w,A;return!!E.implements&&((w=E.implements)==null?void 0:w.id)===((A=p.implements)==null?void 0:A.id)});if(e){const E=new ir({id:e.id+"--"+p.id+"--"+a,message:`Entity of type ${e.type} named "${e.name}" with id "${e.id}" overrides a base entity ${p.name} with id "${p.id}" that has the same name`,severity:Z.Error,code:a,entity:e,firstRelationship:p});o.push(E)}if(y){const E=new ir({id:y.id+"--"+p.id+"--"+i,message:`Entity of type ${y.type} named "${y.name}" with id "${y.id}" overrides a base entity ${p.name} with id "${p.id}" that implements the same base ${(v=y==null?void 0:y.implements)==null?void 0:v.type}`,severity:Z.Error,code:i,entity:y,firstRelationship:p});o.push(E)}}),{errors:o,overlap:!!o.length})}function QTe(d,u){return d.abstract||(d.properties.forEach(a=>{a.abstract||a.metaSync({abstract:!0},u)}),Object.values(d.detachedDependents).forEach(a=>{a.field===RI.Entity&&a.entity.remove({ignoreUpstream:!1},u)}),d.metaSync({abstract:!0},u)),d}function eIe(d,u){return d.abstract&&(d.properties.forEach(a=>{a.abstract&&a.metaSync({abstract:!1},u)}),Object.values(d.detachedDependents).forEach(a=>{(a.field===Mm.Implements||a.field===Mm.Extends)&&a.entity.onDetachedDependencyRemoved(d,a.field,u)}),d.metaSync({abstract:!1},u)),d}function tIe(d,u){return d.static||(d.properties.forEach(a=>{a.static||a.metaSync({static:!0},u)}),d.metaSync({static:!0},u)),d}function rIe(d,u){return d.static&&d.metaSync({static:!1},u),d}var ki=(d=>(d.StringValueMustNotHaveSpaces="string-value-must-not-have-spaces",d.StringValueMustNotHaveDashes="string-value-must-not-have-dashes",d.MustBeUniqueAmongSameEntities="must-be-unique-among-same-entities",d))(ki||{});function ob(d,u){const i=[],a=u;if(!a)return{errors:i,override:u};if(typeof a!="string")return{errors:[],override:u};if(a.includes(" ")){const o=new ir({id:d.id+"--string-value-must-not-have-spaces",message:`Entity of type ${d.type} with id "${d.id}" has an invalid value "${u}". The value cannot contain spaces.`,severity:Z.Error,code:"string-value-must-not-have-spaces",entity:d});i.push(o)}return{errors:i,override:a.replace(/\s/g,"-")}}function A5(d,u){const i=[],a=u;if(!a)return{errors:i,override:u};if(typeof a!="string")return{errors:[],override:u};if(a.includes(" ")){const o=new ir({id:d.id+"--string-value-must-not-have-spaces",message:`Entity of type ${d.type} with id "${d.id}" has an invalid value "${u}". The value cannot contain spaces or dashes.`,severity:Z.Error,code:"string-value-must-not-have-spaces",entity:d});i.push(o)}if(a.includes("-")){const o=new ir({id:d.id+"--string-value-must-not-have-dashes",message:`Entity of type ${d.type} with id "${d.id}" has an invalid value "${u}". The value cannot contain spaces or dashes.`,severity:Z.Error,code:"string-value-must-not-have-dashes",entity:d});i.push(o)}return{errors:i,override:a.replace(/\s|-/g,"_")}}function lb(d,u){var i;if(d.type===f.LiteralValue){let a=(i=d.value)==null?void 0:i.toString();try{a=JSON.stringify(d.value,null,2)}catch{}return`${d.type}: ${d.id} (${W(d,u)}) = ${a}`}if(d.type===f.DataType){if(d instanceof fs||d.increaseVersion)return`${d.type}: ${d.id} (${Jd(d)})`;try{const a=Jd(d);return`${d.type}: ${d.id} (${a})`}catch{}}return`${d.type}: ${d.id} (${W(d,u)})`}function jd(d,u){const i=Io(d);if(i.length===0)return{list:[],last:null};let a=null;return{list:i.flatMap(p=>{if(p===u)return a=p,[p];const e=jd(p,u);return e.last&&(a=e.last),[p,...e.list]}),last:a}}function To(d,u){const i=d.calledBy;if(i.length===0)return{list:[],last:null,callType:null};let a=null,o=null;return{list:i.flatMap(e=>{if(e===u)return a=e,Dt.includes(e.type)?e.parent.type===f.Loop?o="loop-body":o="entry":e.successCalls.includes(d)?o="success":e.errorCalls.includes(d)&&(o="error"),[e];if(e.type===f.FunctionDeclaration&&e.parent.type===f.Loop&&e.parent===u)return a=e.parent,o="loop-body",[e];if(!xi.includes(e.type))return[e];const y=To(e,u);return y.last&&(a=y.last,o=y.callType),[e,...y.list]}),last:a,callType:o}}function iIe(d,u){if(d===u)return"same-entity";if(!Oi.includes(d.type)||!Jp(d).find(o=>o.callee===u))return null;if(Dt.includes(d.type)){if(d.calls.includes(u))return d.type===f.Loop?"loop-body":"entry"}else if(ar.includes(d.type)&&d.type!==f.InternalCall){if(d.successCalls.includes(u))return"success";if(d.errorCalls.includes(u))return"error"}return null}function Hp(d){const u=_i(d,d.project);return u?Dt.includes(u.type)?u:u.type===f.Loop?u.body:null:null}function b5(d,u){const i=d.calledBy;return!i||!i.length?!1:i.every(a=>a===u?!0:xi.includes(a.type)?!!To(a,u).last:!1)}function w5(d){return d.filter(u=>{const i=Hp(u);return!d.filter(p=>p!==u).some(p=>p===i?!1:Tm(p,u))})}function R5(d,u){if(!d)throw new Error("findNextSingleCallerAncestor: Target is not defined, cannot find ancestor.");let i=d;(d.type===f.VariableDeclaration||d.type===f.VariableInstance)&&!d.calledBy.length&&!d.successCalls.length&&!d.errorCalls.length&&d.internalCalls.some(C=>!!C.calledBy.length)&&(i=d.internalCalls.find(V=>!!V.calledBy.length));const a=u||_i(i,d.project);if(!a)return{ancestor:null,callType:null};if(a.type===f.Project)return{ancestor:null,callType:null};const o=Jp(a);if(!o.find(C=>C.callee===i))return{ancestor:null,callType:null};if(a.type===f.Loop){if(a.body.calls.includes(i))return{ancestor:a,callType:"loop-body"}}else if(Dt.includes(a.type)){if(a.calls.includes(i))return a.type===f.FunctionDeclaration&&a.parent.type===f.Loop?{ancestor:a,callType:"loop-body"}:{ancestor:a,callType:"entry"}}else if(ar.includes(a.type)){if(a.successCalls.includes(i))return{ancestor:a,callType:"success"};if(a.errorCalls.includes(i))return{ancestor:a,callType:"error"}}const e=o.filter(C=>!(C.callee===i||!Oi.includes(C.callee.type)||!vt(C.callee).find(F=>F===i)));if(e.length===0)return{ancestor:null,callType:null};if(e.length===1){const C=e[0];if(Dt.includes(C.callee.type))return C.callee.type===f.Loop?{ancestor:C.callee,callType:"loop-body"}:{ancestor:C.callee,callType:"entry"};if(ar.includes(C.callee.type)){if(C.callType==="success"&&C.callee.type===f.InternalCall)return{ancestor:C.callee,callType:"success"};if(C.callType==="error"&&C.callee.type===f.InternalCall)return{ancestor:C.callee,callType:"error"}}}const y=e.filter(C=>b5(i,C.callee)),v=y.filter(C=>{const V=vt(C.callee),U=y.filter(K=>K.callee!==C.callee).map(K=>K.callee);return!V.some(K=>!!U.find(ne=>ne===K))});if(v.length===0)return{ancestor:a,callType:Dt.includes(a.type)?a.type===f.Loop?"loop-body":"entry":"success"};if(v.length>1)throw new Error(`findNextSingleCallerAncestor: Could not be resolved, multiple candidates found: ${v.map(C=>W(C.callee,i.project)).join(", ")}`);const E=v[0].callee,A=Jp(E).find(C=>C.callee===i);return{ancestor:E,callType:A.callType}}function sIe(d){if(![f.VariableDeclaration,f.OutputMap].includes(d.type))throw new Error("getEarliestSingleCallerAncestorOfValueWriterAndItsValueReaders can only be used with a value writer entity");let u;if(d.type===f.VariableDeclaration?u=d:d.type===f.OutputMap&&(u=d.parent),!u)throw new Error("getEarliestSingleCallerAncestorOfValueWriterAndItsValueReaders can only be used with a value writer entity that has a caller");const i=R([d,...ub(d)]),a=R(i.map(y=>db(y)).flatMap(y=>hr.includes(y==null?void 0:y.type)?y.calledBy:[y]));if(a.length===1){if(Dt.includes(a[0].type))return a[0].parent.type===f.Loop?{ancestor:a[0],callType:"loop-body"}:{ancestor:a[0],callType:"entry"};if(a[0].successCalls.includes(u))return{ancestor:a[0],callType:"success"};if(a[0].errorCalls.includes(u))return{ancestor:a[0],callType:"error"}}const o=a.map(y=>{if(Dt.includes(y.type))return y.parent.type===f.Loop?{ancestor:y,callType:"loop-body"}:{ancestor:y,callType:"entry"};const v=R5(y);if(!v.ancestor)throw new Error(`getEarliestSingleCallerAncestorOfValueWriterAndItsValueReaders: Could not be resolved, no ancestor found for ${W(y,u.project)}`);return v}).filter((y,v,E)=>v===E.findIndex(w=>{var A,C;return((A=w.ancestor)==null?void 0:A.id)===((C=y.ancestor)==null?void 0:C.id)})),p=Hp(u),e=o.filter(y=>y!=null&&y.ancestor?p===y.ancestor?!0:!o.filter(w=>w.ancestor!==y.ancestor).map(w=>w.ancestor).some(w=>{const A=To(y.ancestor,w);return!!(A!=null&&A.last)}):!1);if(e.length===0)return{ancestor:p,callType:(p==null?void 0:p.parent.type)===f.Loop?"loop-body":"entry"};if(e.length>1)throw new Error(`getEarliestSingleCallerAncestorOfValueWriterAndItsValueReaders: Could not be resolved, multiple candidates found: ${e.map(y=>W(y.ancestor,u.project)).join(", ")}`);return{ancestor:e[0].ancestor,callType:e[0].callType}}function _5(d,u){if(d===u)return!0;if(vt(d).includes(u)||!vt(u).includes(d))return!1;const o=d.calledBy;return o.length===0?!1:o.length===1?o[0]===u:w5(o).length>1&&o.includes(u)?!1:o.every(e=>d===u?!0:Dt.includes(e.type)?!1:_5(e,u))}function g5(d){const u=[];let i=d.calledBySuccess;i=i.filter(o=>!i.filter(y=>y!==o).some(y=>Tm(y,o)));let a=d.calledByError;a=a.filter(o=>!a.filter(y=>y!==o).some(y=>Tm(y,o)));for(const o of i)u.push({ancestor:o,callType:"success"});for(const o of a)u.push({ancestor:o,callType:"error"});return u}function D5(d){const u=[];return g5(d).forEach(a=>{a.ancestor.type===f.Condition&&u.push({condition:a.ancestor,call:d,callType:a.callType});const p=D5(a.ancestor).filter(e=>!u.some(y=>y.condition.id===e.condition.id));u.push(...p)}),u}function db(d){if(!d)return null;if(d.type===f.Condition&&d.parent.type===f.Condition)return Im(d.parent);if(Cv.includes(d.type))return d;const u=d.parent;return u?db(u):null}function ub(d,u=new Set){return d.writesValues.reduce((i,a)=>u.has(a.id)?i:(u.add(a.id),dn.includes(a.type)?[...i,a]:Ur.includes(a.type)?[...i,a,...ub(a,u)]:i),[])}function Wp(d){const u=d.calledBy;if(u.length===0)return d.project;const i=u.reduce((a,o)=>{const p=_i(o,d.project);return!p||p.type===f.Project?a:a.type===f.Project||jd(p,a).last?p:(jd(a,p).last,a)},d.project);return i.type===f.FunctionDeclaration&&i.parent.type===f.Loop?i.parent:i}function He(d,u){let i=Wp(d);if(d.type===f.InternalCall)if(d.parent.type===f.VariableInstance){const o=zs(i,d.parent.declaration,d.project);!o.compatible&&o.type!=="b-is-global-a-is-not"?d.parent.remove({ignoreUpstream:!1},u):(d.parent.setParent(i,u),d.parent.addSelfToProject(u))}else d.parent.setParent(i,u),d.parent.addSelfToProject(u);else if((d.type===f.ContinueStatement||d.type===f.BreakStatement)&&i.type!==f.Loop){d.remove({ignoreUpstream:!1},u);return}else if(d.type===f.ReturnStatement&&!Nr.includes(i.type)){d.remove({ignoreUpstream:!1},u);return}else if(It.includes(d.type)){const o=d.usedInternalCalls[0];if(o)if(i=Wp(o),d.type===f.VariableInstance){const p=zs(i,d.declaration,d.project);!p.compatible&&p.type!=="b-is-global-a-is-not"?d.remove({ignoreUpstream:!1},u):(d.setParent(i,u),d.addSelfToProject(u))}else d.setParent(i,u),d.addSelfToProject(u);else if(d.type===f.VariableInstance){const p=zs(i,d.declaration,d.project);!p.compatible&&p.type!=="b-is-global-a-is-not"?d.remove({ignoreUpstream:!1},u):(d.setParent(i,u),d.addSelfToProject(u))}else d.setParent(i,u),d.addSelfToProject(u)}else d.setParent(i,u),d.addSelfToProject(u);if(hr.includes(d.type))return;vt(d).forEach(o=>{let p=Wp(o);if(o.type===f.InternalCall)if(o.parent.type===f.VariableInstance){const e=zs(p,o.parent.declaration,d.project);!e.compatible&&e.type!=="b-is-global-a-is-not"?o.parent.remove({ignoreUpstream:!1},u):(o.parent.setParent(p,u),o.parent.addSelfToProject(u))}else o.parent.setParent(p,u),o.parent.addSelfToProject(u);else if((o.type===f.ContinueStatement||o.type===f.BreakStatement)&&p.type!==f.Loop){o.remove({ignoreUpstream:!1},u);return}else if(o.type===f.ReturnStatement&&!Nr.includes(p.type)){o.remove({ignoreUpstream:!1},u);return}else if(It.includes(o.type)){const e=o.usedInternalCalls[0];if(e)if(p=Wp(e),o.type===f.VariableInstance){const y=zs(p,o.declaration,d.project);!y.compatible&&y.type!=="b-is-global-a-is-not"?o.remove({ignoreUpstream:!1},u):(o.setParent(p,u),o.addSelfToProject(u))}else o.setParent(p,u),o.addSelfToProject(u);else if(o.type===f.VariableInstance){const y=zs(p,o.declaration,d.project);!y.compatible&&y.type!=="b-is-global-a-is-not"?o.remove({ignoreUpstream:!1},u):(o.setParent(p,u),o.addSelfToProject(u))}else o.setParent(p,u),o.addSelfToProject(u)}else o.setParent(p,u),o.addSelfToProject(u)})}function Em(d,u,i=new Set){const a=An(d),o=An(u),p=a.filter(v=>!o.includes(v)),e=a.filter(v=>o.includes(v)),y=p.reduce((v,E)=>i.has(E.id)?v:(i.add(E.id),R([...v,...Em(E,u,i)])),[]);return R([...e,...y])}function Tl(d,u){const i=jd(d,u);return i.last===u&&i.list.length>0&&i.list[0]!==u}function cb(d,u){return!!jd(d,u).last}function Tm(d,u){return!!To(d,u).last}function pb(d,u){if(!d||!u)throw new Error("Both entities must be defined to find a common ancestor");if(d===u)return d;const i=d.parent;if(i){if(i===u)return u;if(i.type===f.Project)return null}else return null;const a=u.parent;if(a){if(a===d)return d;if(a.type===f.Project)return null}else return null;return pb(i,a)}function nIe(d,u,i=!0){if(!d||!u)throw new Error("Both entities must be defined to find a common ancestor");if(d===u)return{ancestor:d,callType:"same-entity"};if(xi.includes(d.type)&&Oi.includes(u.type)){const y=To(d,u),v=y.last;if(v){if(v===u)return{ancestor:u,callType:y.callType}}else return{ancestor:null,callType:null}}if(xi.includes(u.type)&&Oi.includes(d.type)){const y=To(u,d),v=y.last;if(v){if(v===d)return{ancestor:d,callType:y.callType}}else return{ancestor:null,callType:null}}const a=Hp(d),o=Hp(u);if(!a||!o)return{ancestor:null,callType:null};if(a!==o)return{ancestor:null,callType:null};if(a.calls.includes(d)||a.calls.includes(u))return{ancestor:a,callType:"entry"};const p=a.calls.reduce((y,v)=>{if(!Oi.includes(v.type))return y;const E=Jp(v),w=E.find(C=>C.callee===d),A=E.find(C=>C.callee===u);return w&&A&&(!i||w.callType===A.callType)?[...y,{ancestor:v,callType:w.callType}]:y},[]);if(p.length===0)return{ancestor:null,callType:null};if(p.length===1)return{ancestor:p[0].ancestor,callType:p[0].callType};const e=p.filter(y=>!p.some(v=>v.ancestor!==y.ancestor&&To(y.ancestor,v.ancestor).last===v.ancestor));return e.length===1?{ancestor:e[0].ancestor,callType:e[0].callType}:{ancestor:a,callType:"entry"}}function fr(d){if(eh.includes(d.type)){if(d.type===f.FunctionDeclaration){const u=d.parent;if(u.type===f.DefinitionEntity)return fr(u);if(u.type===f.Loop)return u}return d.type===f.DefinitionEntity&&d.parent.type===f.DataType||d.type===f.Condition&&d.parent.type===f.Condition?fr(d.parent):d}else{const u=d.parent;return u?fr(u):null}}function Gd(d,u){const i=Fd(d,u);if(!i)return null;if(eh.includes(i.type)){if(i.type===f.FunctionDeclaration){const a=Fd(i.parent,u);if(a){if(a.type===f.DefinitionEntity)return a;if(a.type===f.Loop)return a}}if(i.parent){const a=Fd(i.parent,u);if(a&&(i.type===f.DefinitionEntity&&a.type===f.DataType||i.type===f.Condition&&a.type===f.Condition))return Gd(a,u)}return i}else{const a=i.parent?Fd(i.parent,u):null;return a?Gd(a,u):null}}function Jp(d){if(d.type===f.Loop){const u=[...Ni(d.successCalls).map(o=>({callee:o,callType:"success"})),...Ni(d.errorCalls).map(o=>({callee:o,callType:"error"})),...(d.body?vt(d.body):[]).map(o=>({callee:o,callType:"loop-body"}))];return R(u.map(o=>o.callee)).map(o=>{var e;const p=(e=u.find(y=>y.callee===o))==null?void 0:e.callType;return{callee:o,callType:p}})}if(ar.includes(d.type)){const u=[...Ni(d.successCalls).map(o=>({callee:o,callType:"success"})),...Ni(d.errorCalls).map(o=>({callee:o,callType:"error"}))];return R(u.map(o=>o.callee)).map(o=>{var e;const p=(e=u.find(y=>y.callee===o))==null?void 0:e.callType;return{callee:o,callType:p}})}if(Dt.includes(d.type)){const u=[...Ni(d.calls).map(o=>d.parent.type===f.Loop?{callee:o,callType:"loop-body"}:{callee:o,callType:"entry"})];return R(u.map(o=>o.callee)).map(o=>{var e;const p=(e=u.find(y=>y.callee===o))==null?void 0:e.callType;return{callee:o,callType:p}})}return[]}function Im(d){if(!d)return null;if(d.type===f.Condition&&d.parent.type===f.Condition)return Im(d.parent);if(xi.includes(d.type))return d;const u=d.parent;return u?Im(u):null}function O5(d){if(!d)return null;if(ar.includes(d.type))return d;const u=d.parent;return u?O5(u):null}function C5(d){if(!d)return null;if(Oi.includes(d.type))return d;const u=d.parent;return u?C5(u):null}function aIe(d){return d.type===f.VariableDeclaration?[d]:ar.includes(d.type)?[...d.inputs,...d.outputs||[]]:hr.includes(d.type)?d.outputs:xo.includes(d.type)||d.type===f.FunctionDeclaration?d.inputs:[]}function oIe(d){const u=An(d),i=[],a=[];z_.includes(d.type)&&i.push(...Am(d));const o=u.filter(p=>{const e=i.includes(p);return e?!1:xi.includes(p.type)&&!e?(a.push(p),!1):!0});return i.sort((p,e)=>Tl(e,p)?-1:0),a.sort((p,e)=>Tl(e,p)?-1:0),[...i,...a,...o]}function $5(d){return[...d].sort((u,i)=>Tl(i,u)?-1:0)}function lIe(d){const u=$5(d),i=[];return u.forEach(a=>{const o=i[i.length-1];if(o){const p=o[o.length-1];Tl(a,p)?i.push([a]):o.push(a)}else i.push([a])}),i}function Va(d){const u=d.map(i=>fr(i));return R(u)}function Am(d){return ar.includes(d.type)?[...Va(d.successCalls),...Va(d.errorCalls)]:Dt.includes(d.type)?Va(d.calls):[]}function dIe(d,u){return Am(d).includes(u)}function bm(d){return d.writesValues||[]}function uIe(d,u){return bm(d).includes(u)}function P5(d){var u;return It.includes((u=d==null?void 0:d.readsValue)==null?void 0:u.type)?d.readsValue:null}function cIe(d){return d.writesValues}function N5(d=[]){return d.map(P5).filter(u=>!!u)}function wm(d=[]){return d.map(u=>u.writesValues).flat().filter(u=>It.includes(u.type))}function V5(d=[]){return d.map(u=>u.readsValue).filter(u=>!!u&&It.includes(u.type))}function L5(d){return It.includes(d.type)?d:null}function M5(d){return d.writesValues.map(L5).filter(u=>!!u)}function B5(d=[]){return d.reduce((u,i)=>i.type===f.OutputMap?[...u,...M5(i)]:u,[])}function vt(d){return d.type===f.Loop?R([...Ni(d.successCalls),...Ni(d.errorCalls),...d.body?vt(d.body):[]]):ar.includes(d.type)?R([...Ni(d.successCalls),...Ni(d.errorCalls)]):Dt.includes(d.type)?R(Ni(d.calls)):[]}function pIe(d){return ar.includes(d.type)?[...Ni(d.successCalls),...Ni(d.errorCalls)]:Dt.includes(d.type)?Ni(d.calls):[]}function U5(d,u=new Set){return d.writesValues.filter(a=>It.includes(a.type)&&!u.has(a.id)).reduce((a,o)=>u.has(o.id)?a:[...a,...vr(o,u)],[])}function x5(d,u=new Set){var a;return(((a=d.readsValue)==null?void 0:a.writesValues)||[]).filter(o=>It.includes(o.type)&&!u.has(o.id)).reduce((o,p)=>u.has(p.id)?o:[...o,...vr(p,u)],[])}function vr(d,u=new Set){if(u.has(d.id))return[];if(d.type===f.ReturnStatement)return V5(d.outputs).reduce((a,o)=>[...a,...vr(o,u)],[]);if(d.type===f.FunctionCall||d.type===f.Operation||d.type===f.Condition)return[...vt(d).reduce((p,e)=>{const y=fr(e);return[...p,...vr(y||e,u)]},[]),...N5(d.inputs),...B5(d.outputs)].reduce((p,e)=>[...p,...vr(e,u)],[]);if(xo.includes(d.type)){const i=wm(d.inputs),o=vt(d).reduce((p,e)=>{const y=fr(e);return[...p,...vr(y||e,u)]},[]);return i.push(...o),i.reduce((p,e)=>[...p,...vr(e,u)],[])}if(d.type===f.FunctionDeclaration){const i=[...wm(d.inputs)],o=vt(d).reduce((p,e)=>{const y=fr(e);return[...p,...vr(y||e,u)]},[]);return i.push(...o),i.reduce((p,e)=>[...p,...vr(e)],[])}if(It.includes(d.type)){u.add(d.id);const a=vt(d).reduce((o,p)=>{const e=fr(p);return[...o,...vr(e||p,u)]},[]);return[d,...a,...x5(d,u),...U5(d,u)]}return[]}function ms(d,u=new Set){return u.has(d.id)?[]:(u.add(d.id),[...An(d).reduce((o,p)=>[...o,p,...ms(p,u)],[])])}function Ni(d){return d.reduce((u,i)=>i.type===f.ReturnStatement||i.type===f.ContinueStatement||i.type===f.BreakStatement?[...u,i]:[...u,i,...vt(i)],[])}function j5(d){const u=d.entities||[],i=[...u,...d.functions||[],...d.events||[],...d.projects||[]],a=u.reduce((v,E)=>[...v,...E.properties],[]),o=u.reduce((v,E)=>[...v,...E.methods],[]),p=o.reduce((v,E)=>[...v,...wm(E.inputs),...Ni(Va(E.calls)),...E.returnStatements],[]),e=d.functions.reduce((v,E)=>[...v,...Ni(Va(E.calls)),...E.returnStatements],[]),y=d.events.reduce((v,E)=>[...v,...Ni(Va(E.calls)),...E.returnStatements],[]);return[...i,...a,...o,...p,...e,...y]}function G5(d,u){return u.filter(a=>{if(!a)return!1;switch(a.type){case f.FunctionCall:return a.inputs.find(o=>o.id===d.id)!==void 0||a.outputs.find(o=>o.id===d.id)!==void 0;case f.Condition:return a.successCalls.find(o=>o.id===d.id)!==void 0||a.errorCalls.find(o=>o.id===d.id)!==void 0||a.inputs.find(o=>o.id===d.id)!==void 0;case f.Operation:return a.outputs.find(o=>o.id===d.id)!==void 0;case f.VariableDeclaration:return ar.includes(d.type)?yS(d).find(p=>{var e;return((e=p.readsValue)==null?void 0:e.id)===a.id})!==void 0:!1;case f.DefinitionEntity:return a.properties.find(o=>o.id===d.id)!==void 0||a.methods.find(o=>o.id===d.id)!==void 0;case f.FunctionDeclaration:return a.inputs.find(o=>o.id===d.id)!==void 0||(a.returnStatements.map(o=>o.outputs).flat()||[]).find(o=>o.id===d.id)!==void 0;default:return!1}})}function fIe(d){const u=j5(d.project);return G5(d,u)}function Fd(d,u){return d?typeof d=="string"?u[d]:d.type===f.GenericReference?u[d.entityId]:u[d.id]?u[d.id]:null:null}function F5(d={},u){const i={};return Object.keys(d).forEach(a=>{const o=u.get(a)||a,p=d[a];i[o]=p}),i}function Sd(d,u={},i={}){const a={ignoreBuiltInBaseEntities:!1,allBuiltInEntityIds:[],entityMaps:new Map,...i};if(a.ignoreBuiltInBaseEntities&&(Zi.includes(d.type)||(a.allBuiltInEntityIds||[]).includes(d.id)))return{upstream:{},downstream:{}};const o=d,p=d,e=d,y=d,v=d,E=d,w=d,A=d,C=d,V=d,U=d,F=d,K=d,q=[...K.readsValue?[K.readsValue]:[],...K.declaration?[K.declaration]:[],...(F.calledByEntry||[]).flatMap(X=>X),...(F.calledBySuccess||[]).flatMap(X=>X),...(F.calledByError||[]).flatMap(X=>X),...V.parent?[V.parent]:[]];Array.isArray(e.implements)?q.push(...e.implements.flatMap(X=>X)):C.implements&&q.push(C.implements),Array.isArray(e.extends)?q.push(...e.extends.flatMap(X=>X)):C.extends&&q.push(C.extends),v.valueAsTypeList&&Array.isArray(v.valueAsTypeList)&&q.push(...v.valueAsTypeList.flatMap(X=>X)),v.valueAsTypeSingle&&q.push(v.valueAsTypeSingle),(K.internalCalls||[]).forEach(X=>{const ce=H(X);if(ce&&u[ce]){const z=u[ce];[...z.calledByEntry||[],...z.calledBySuccess||[],...z.calledByError||[]].forEach(Y=>{const pe=H(Y);pe&&u[pe]&&q.push(u[pe])})}});const ne=[...(o.inputs||[]).flatMap(X=>X),...(U.inputsDeclarations||[]).flatMap(X=>X),...(o.outputs||[]).flatMap(X=>X),...(U.outputsDeclarations||[]).flatMap(X=>X),...(K.internalCalls||[]).flatMap(X=>X),...K.writesValues||[],...F.dataType?[F.dataType]:[],...E.body?[E.body]:[],...F.defaultValue?[F.defaultValue]:[],...(F.successCalls||[]).flatMap(X=>X),...(F.errorCalls||[]).flatMap(X=>X),...(e.properties||[]).flatMap(X=>X),...(e.methods||[]).flatMap(X=>X),...(e.abstractMethods||[]).flatMap(X=>X),...w.error?[w.error]:[],...w.process?[w.process]:[],...V.throws?[V.throws]:[],...(p.andChildrenGroup||[]).flatMap(X=>X),...(p.orChildrenGroup||[]).flatMap(X=>X),...(A.entities||[]).flatMap(X=>X),...(A.functions||[]).flatMap(X=>X),...(A.functionCalls||[]).flatMap(X=>X),...(A.events||[]).flatMap(X=>X),...(A.conditions||[]).flatMap(X=>X),...(A.operations||[]).flatMap(X=>X),...(A.loops||[]).flatMap(X=>X),...(A.variableDeclarations||[]).flatMap(X=>X),...(A.variableInstances||[]).flatMap(X=>X),...(A.searches||[]).flatMap(X=>X),...(A.projects||[]).flatMap(X=>X),...(y.calls||[]).flatMap(X=>X)];d.type===f.DataType&&(p.entity&&u[H(p.entity)]&&u[H(p.entity)].parent&&H(u[H(p.entity)].parent)===d.id?ne.push(p.entity):p.entity&&q.push(p.entity)),(K.internalCalls||[]).forEach(X=>{const ce=H(X);if(ce&&u[ce]){const z=u[ce];[...z.successCalls||[],...z.errorCalls||[]].forEach(Y=>{const pe=H(Y);pe&&u[pe]&&ne.push(u[pe])})}});const J={},de={};return q.forEach(X=>{var Y;const ce=H(X);if(ce&&a.ignoreBuiltInBaseEntities&&(Zi.includes(X.type)||(a.allBuiltInEntityIds||[]).includes(ce)))return;const z=X.version;if(ce){const pe=((Y=a.entityMaps)==null?void 0:Y.get(ce))||ce;J[pe]=z}}),ne.forEach(X=>{var Y;const ce=H(X);if(ce&&a.ignoreBuiltInBaseEntities&&(Zi.includes(X.type)||(a.allBuiltInEntityIds||[]).includes(ce)))return;const z=X.version;if(ce){const pe=((Y=a.entityMaps)==null?void 0:Y.get(ce))||ce;de[pe]=z}}),{upstream:J,downstream:de}}function hIe(d,u){const i=[];if(xi.includes(d.type)){Ls(d).forEach(p=>{const e=Gd(p,u);e&&i.push(e)});const o=[...d.inputs||[],...d.outputs||[]].map(p=>{const e=Fd(p,u);return e?vS(e,u):null}).filter(p=>p!==null);i.push(...R(o))}if(It.includes(d.type)){const a=Rm(d);a&&i.push(a)}return R(i)}function Io(d){const u=[];if(xi.includes(d.type)){d.calledBy.forEach(o=>{const p=fr(o);p&&u.push(p)});const a=[...d.inputs||[],...d.outputs||[]].map(o=>Rm(o)).filter(o=>o!==null);u.push(...R(a))}if(It.includes(d.type)){const i=Rm(d);i&&u.push(i)}return R(u)}function Ls(d){return[...d.calledByEntry||[],...d.calledByError||[],...d.calledBySuccess||[]].filter(u=>u.type!==f.GenericReference)}function S5(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.ActionDescriptor)throw new Error("Entity must be an action descriptor to be flattened");return[d,...d.inputs.flatMap(a=>me(a,u,i)),...d.outputs.flatMap(a=>me(a,u,i)),...d.error?me(d.error,u,i):[],...d.parent?me(d.parent,u,i):[]]}function K5(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.ArgumentDeclaration)throw new Error("Entity must be an argument declaration to be flattened");return[d,...d.defaultValue?me(d.defaultValue,u):[],...d.writesValues.flatMap(a=>me(a,u,i)),...d.dataType?me(d.dataType,u,i):[],...d.parent?me(d.parent,u,i):[]]}function k5(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.BreakStatement)throw new Error("Entity must be a break statement to be flattened");return[d,...d.outputs.flatMap(a=>me(a,u,i)),...d.throws?me(d.throws,u,i):[],...(Ls(d)||[]).flatMap(a=>me(a,u,i)),...d.parent?me(d.parent,u,i):[]]}function q5(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.BuiltInBaseEntity)throw new Error("Entity must be a built-in base entity to be flattened");return[d,...(d.properties||[]).flatMap(a=>me(a,u,i)),...(d.methods||[]).flatMap(a=>me(a,u,i)),...(d.abstractMethods||[]).flatMap(a=>me(a,u,i)),...d.extends?me(d.extends,u,i):[]]}function Z5(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.Condition)throw new Error("Entity must be a condition to be flattened");return[d,...(d.andChildrenGroup||[]).flatMap(a=>me(a,u,i)),...(d.orChildrenGroup||[]).flatMap(a=>me(a,u,i)),...(d.inputs||[]).flatMap(a=>me(a,u,i)),...(d.successCalls||[]).flatMap(a=>me(a,u,i)),...(d.errorCalls||[]).flatMap(a=>me(a,u,i)),...(Ls(d)||[]).flatMap(a=>me(a,u,i)),...d.parent?me(d.parent,u,i):[]]}function H5(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.ContinueStatement)throw new Error("Entity must be a continue statement to be flattened");return[d,...d.outputs.flatMap(a=>me(a,u,i)),...d.throws?me(d.throws,u,i):[],...(Ls(d)||[]).flatMap(a=>me(a,u,i)),...d.parent?me(d.parent,u,i):[]]}function W5(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.DefinitionEntity)throw new Error("Entity must be a definition entity to be flattened");return[d,...d.extends?me(d.extends,u,i):[],...(d.implements||[]).flatMap(a=>me(a,u,i)),...(d.properties||[]).flatMap(a=>me(a,u,i)),...(d.methods||[]).flatMap(a=>me(a,u,i)),...(d.abstractMethods||[]).flatMap(a=>me(a,u,i)),...d.parent?me(d.parent,u,i):[]]}function J5(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.DataType)throw new Error("Entity must be a data type to be flattened");return[d,...(d.andChildrenGroup||[]).flatMap(a=>me(a,u,i)),...(d.orChildrenGroup||[]).flatMap(a=>me(a,u,i)),...d.entity?me(d.entity,u,i):[],...d.parent?me(d.parent,u,i):[]]}function Y5(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.FunctionCall)throw new Error("Entity must be a function call to be flattened");return[d,...(d.inputs||[]).flatMap(a=>me(a,u,i)),...(d.outputs||[]).flatMap(a=>me(a,u,i)),...d.error?me(d.error,u,i):[],...d.process?me(d.process,u,i):[],...(Ls(d)||[]).flatMap(a=>me(a,u,i)),...(d.successCalls||[]).flatMap(a=>me(a,u,i)),...(d.errorCalls||[]).flatMap(a=>me(a,u,i)),...d.parent?me(d.parent,u,i):[]]}function z5(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.FunctionDeclaration)throw new Error("Entity must be a function declaration to be flattened");return[d,...(d.inputs||[]).flatMap(a=>me(a,u,i)),...(d.calls||[]).flatMap(a=>me(a,u,i)),...d.implements?me(d.implements,u,i):[],...d.parent?me(d.parent,u,i):[]]}function X5(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.GlobalEvent)throw new Error("Entity must be a global event to be flattened");return[d,...(d.inputs||[]).flatMap(a=>me(a,u,i)),...(d.calls||[]).flatMap(a=>me(a,u,i)),...d.implements?me(d.implements,u,i):[],...d.parent?me(d.parent,u,i):[]]}function Q5(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.InputMap)throw new Error("Entity must be an input map to be flattened");return[d,...d.readsValue?me(d.readsValue,u,i):[],...d.declaration?me(d.declaration,u,i):[],...d.defaultValue?me(d.defaultValue,u,i):[],...d.parent?me(d.parent,u,i):[]]}function eS(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.InstalledProject)throw new Error("Entity must be an installed project to be flattened");return[d,...(d.functions||[]).flatMap(a=>me(a,u,i)),...(d.events||[]).flatMap(a=>me(a,u,i)),...d.parent?me(d.parent,u,i):[]]}function tS(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.InternalCall)throw new Error("Entity must be an internal call to be flattened");return[d,...(d.successCalls||[]).flatMap(a=>me(a,u,i)),...(d.errorCalls||[]).flatMap(a=>me(a,u,i)),...(d.inputs||[]).flatMap(a=>me(a,u,i)),...(d.outputs||[]).flatMap(a=>me(a,u,i)),...(Ls(d)||[]).flatMap(a=>me(a,u,i)),...d.error?me(d.error,u,i):[],...d.process?me(d.process,u,i):[],...d.parent?me(d.parent,u,i):[]]}function rS(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.LiteralValue)throw new Error("Entity must be a literal value to be flattened");return[d,...d.valueAsTypeSingle?me(d.valueAsTypeSingle,u,i):[],...d.valueAsTypeList&&Array.isArray(d.valueAsTypeList)?d.valueAsTypeList.flatMap(a=>me(a,u,i)):[],...d.parent?me(d.parent,u,i):[]]}function iS(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.Loop)throw new Error("Entity must be a loop to be flattened");return[d,...(d.inputs||[]).flatMap(a=>me(a,u,i)),...(d.outputs||[]).flatMap(a=>me(a,u,i)),...(d.successCalls||[]).flatMap(a=>me(a,u,i)),...(d.errorCalls||[]).flatMap(a=>me(a,u,i)),...d.error?me(d.error,u,i):[],...d.process?me(d.process,u,i):[],...d.body?me(d.body,u,i):[],...(Ls(d)||[]).flatMap(a=>me(a,u,i)),...d.parent?me(d.parent,u,i):[]]}function sS(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.Operation)throw new Error("Entity must be an operation to be flattened");return[d,...(d.successCalls||[]).flatMap(a=>me(a,u,i)),...(d.errorCalls||[]).flatMap(a=>me(a,u,i)),...(d.inputs||[]).flatMap(a=>me(a,u,i)),...(d.outputs||[]).flatMap(a=>me(a,u,i)),...d.error?me(d.error,u,i):[],...d.process?me(d.process,u,i):[],...(Ls(d)||[]).flatMap(a=>me(a,u,i)),...d.parent?me(d.parent,u,i):[]]}function nS(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.OutputMap)throw new Error("Entity must be an output map to be flattened");return[d,...(d.writesValues||[]).flatMap(a=>me(a,u,i)),...d.declaration?me(d.declaration,u,i):[],...d.defaultValue?me(d.defaultValue,u,i):[],...d.parent?me(d.parent,u,i):[]]}function aS(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.PrimitiveEntity)throw new Error("Entity must be a primitive entity to be flattened");return[d,...(d.properties||[]).flatMap(a=>me(a,u,i)),...(d.methods||[]).flatMap(a=>me(a,u,i)),...(d.abstractMethods||[]).flatMap(a=>me(a,u,i))]}function oS(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.Project)throw new Error("Entity must be a project to be flattened");return[d,...(d.entities||[]).flatMap(a=>me(a,u,i)),...(d.functions||[]).flatMap(a=>me(a,u,i)),...(d.events||[]).flatMap(a=>me(a,u,i)),...(d.projects||[]).flatMap(a=>me(a,u,i)),...(d.variableDeclarations||[]).flatMap(a=>me(a,u,i)),...(d.variableInstances||[]).flatMap(a=>me(a,u,i)),...(d.operations||[]).flatMap(a=>me(a,u,i)),...(d.conditions||[]).flatMap(a=>me(a,u,i)),...(d.functionCalls||[]).flatMap(a=>me(a,u,i)),...(d.projects||[]).flatMap(a=>me(a,u,i)),...(d.loops||[]).flatMap(a=>me(a,u,i)),...(d.searches||[]).flatMap(a=>me(a,u,i))]}function lS(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.Property)throw new Error("Entity must be a property to be flattened");return[d,...d.defaultValue?me(d.defaultValue,u,i):[],...d.dataType?me(d.dataType,u,i):[],...d.parent?me(d.parent,u,i):[]]}function dS(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.ReturnDeclaration)throw new Error("Entity must be a return declaration to be flattened");return[d,...d.readsValue?me(d.readsValue,u,i):[],...d.defaultValue?me(d.defaultValue,u,i):[],...d.dataType?me(d.dataType,u,i):[],...d.parent?me(d.parent,u,i):[]]}function uS(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.ReturnStatement)throw new Error("Entity must be a return statement to be flattened");return[d,...(d.outputs||[]).flatMap(a=>me(a,u,i)),...d.throws?me(d.throws,u,i):[],...(Ls(d)||[]).flatMap(a=>me(a,u,i)),...d.parent?me(d.parent,u,i):[]]}function cS(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.Search)throw new Error("Entity must be a search to be flattened");return[d,...(d.successCalls||[]).flatMap(a=>me(a,u,i)),...(d.errorCalls||[]).flatMap(a=>me(a,u,i)),...(d.inputsDeclarations||[]).flatMap(a=>me(a,u,i)),...(d.inputs||[]).flatMap(a=>me(a,u,i)),...(d.outputsDeclarations||[]).flatMap(a=>me(a,u,i)),...(d.outputs||[]).flatMap(a=>me(a,u,i)),...d.error?me(d.error,u,i):[],...(Ls(d)||[]).flatMap(a=>me(a,u,i)),...d.parent?me(d.parent,u,i):[]]}function pS(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.ValueDescriptor)throw new Error("Entity must be a value descriptor to be flattened");return[d,...d.defaultValue?me(d.defaultValue,u,i):[],...d.dataType?me(d.dataType,u,i):[],...d.parent?me(d.parent,u,i):[]]}function fS(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.VariableDeclaration)throw new Error("Entity must be a variable declaration to be flattened");return[d,...(d.successCalls||[]).flatMap(a=>me(a,u,i)),...(d.errorCalls||[]).flatMap(a=>me(a,u,i)),...(d.inputs||[]).flatMap(a=>me(a,u,i)),...(d.outputs||[]).flatMap(a=>me(a,u,i)),...(d.internalCalls||[]).flatMap(a=>me(a,u,i)),...(d.writesValues||[]).flatMap(a=>me(a,u,i)),...d.readsValue?me(d.readsValue,u,i):[],...d.defaultValue?me(d.defaultValue,u,i):[],...(Ls(d)||[]).flatMap(a=>me(a,u,i)),...d.dataType?me(d.dataType,u,i):[],...d.parent?me(d.parent,u,i):[]]}function hS(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(u.has(d.id))return[];if(u.add(d.id),d.type!==f.VariableInstance)throw new Error("Entity must be a variable instance to be flattened");return[d,...(d.successCalls||[]).flatMap(a=>me(a,u,i)),...(d.errorCalls||[]).flatMap(a=>me(a,u,i)),...(d.inputs||[]).flatMap(a=>me(a,u,i)),...(d.outputs||[]).flatMap(a=>me(a,u,i)),...(d.internalCalls||[]).flatMap(a=>me(a,u,i)),...(d.writesValues||[]).flatMap(a=>me(a,u,i)),...d.readsValue?me(d.readsValue,u,i):[],...d.defaultValue?me(d.defaultValue,u,i):[],...(Ls(d)||[]).flatMap(a=>me(a,u,i)),...d.declaration?me(d.declaration,u,i):[],...d.parent?me(d.parent,u,i):[]]}function Ys(){const d=new Set,u=SL.flatMap(i=>me(i,d)).map(i=>i.id);if(!u.includes("http-request-error-return-delaration-id"))throw new Error("Built-in base entities must be included in the list");return u}function me(d,u=new Set,i={ignoreBuiltInBaseEntities:!1}){if(!d)throw new Error("Entity must be defined to be flattened");if(d.type===f.GenericReference)return[];if(i.ignoreBuiltInBaseEntities&&(Zi.includes(d.type)||Ys().includes(d.id)))return[];if(u.has(d.id))return[];switch(d.type){case f.FunctionCall:return Y5(d,u,i);case f.Operation:return sS(d,u,i);case f.Condition:return Z5(d,u,i);case f.Loop:return iS(d,u,i);case f.Search:return cS(d,u,i);case f.GlobalEvent:return X5(d,u,i);case f.ReturnStatement:return uS(d,u,i);case f.ContinueStatement:return H5(d,u,i);case f.BreakStatement:return k5(d,u,i);case f.VariableDeclaration:return fS(d,u,i);case f.DefinitionEntity:return W5(d,u,i);case f.FunctionDeclaration:return z5(d,u,i);case f.Project:return oS(d,u,i);case f.ActionDescriptor:return S5(d,u,i);case f.ArgumentDeclaration:return K5(d,u,i);case f.ReturnDeclaration:return dS(d,u,i);case f.ValueDescriptor:return pS(d,u,i);case f.InputMap:return Q5(d,u,i);case f.OutputMap:return nS(d,u,i);case f.DataType:return J5(d,u,i);case f.InstalledProject:return eS(d,u,i);case f.InternalCall:return tS(d,u,i);case f.LiteralValue:return rS(d,u,i);case f.Property:return lS(d,u,i);case f.VariableInstance:return hS(d,u,i);case f.BuiltInBaseEntity:return i.ignoreBuiltInBaseEntities?[]:q5(d,u,i);case f.PrimitiveEntity:return i.ignoreBuiltInBaseEntities?[]:aS(d,u,i)}return[]}function fb(d){return d.type===f.FunctionCall||d.type===f.InternalCall||[f.Operation,f.Condition,f.Loop].includes(d.type)?d.declaration.inputs:d.type===f.FunctionDeclaration||xo.includes(d.type)?d.inputs:d.type===f.Search?d.inputsDeclarations:[]}function yIe(d,u){return u.type===f.Condition?u.inputs.find(i=>i.declaration.id===d.id):u.type===f.FunctionCall||u.type===f.Operation?u.inputs.find(i=>i.declaration.id===d.id):null}function yS(d){return ar.includes(d.type)?d.inputs:[]}function mS(d){var u;return d.type===f.FunctionCall?((u=d.declaration.returnStatements[0])==null?void 0:u.outputs)||[]:[f.Operation,f.Condition,f.Loop].includes(d.type)?d.declaration.outputs:d.type===f.Search?d.outputsDeclarations:hr.includes(d.type)?d.outputs:[]}function mIe(d,u){return u.type===f.Condition?null:(u.type===f.FunctionCall||u.type===f.Operation)&&u.outputs.find(i=>{var a;return((a=i.declaration)==null?void 0:a.id)===d.id})||null}function vIe(d){return d.type===f.Condition?[]:ar.includes(d.type)?d.outputs:[]}function Rm(d){const u=d.readsValue;return u?fr(u):null}function vS(d,u){const i=d.readsValue;return i?Gd(i,u):null}function ES(d){const u=d.internalCalls||[];return R(Va(R(u.flatMap(i=>[...i.successCalls,...i.errorCalls]))))}function TS(d){const u=d.internalCalls||[];return R(R(u.flatMap(i=>[...i.successCalls,...i.errorCalls])))}function Kd(d){const u=bm(d),i=[];return u.forEach(a=>{if(It.includes(a.type))i.push(a);else if(dn.includes(a.type)){const o=fr(a.parent);i.push(o)}}),i}function kd(d){const u=bm(d),i=[];return u.forEach(a=>{if(It.includes(a.type))i.push(a);else if(dn.includes(a.type)){const o=a.parent;i.push(o)}}),i}function R(d){const u=new Set;return d.filter(i=>!i||u.has(i.id)?!1:(u.add(i.id),!0))}function IS(d){return d.type===f.Project?null:Cv.includes(d.type)?d:Zi.includes(d.type)?null:d.parent?IS(d.parent):null}function An(d,u=!1){const i=[];if(d.type===f.Project&&i.push(...(d==null?void 0:d.entities)||[],...(d==null?void 0:d.functions)||[],...(d==null?void 0:d.variableDeclarations)||[],...(d==null?void 0:d.variableInstances)||[],...(d==null?void 0:d.searches)||[],...(d==null?void 0:d.loops)||[],...(d==null?void 0:d.operations)||[],...(d==null?void 0:d.conditions)||[],...(d==null?void 0:d.functionCalls)||[],...(d==null?void 0:d.events)||[],...(d==null?void 0:d.projects)||[]),Nr.includes(d.type)&&i.push(...(d==null?void 0:d.detachedChildren)||[]),d.type===f.DefinitionEntity){const a=[...d.suggestedMethods,...d.methods].flatMap(o=>o.collapsed&&u?[]:An(o));i.push(...a)}if(d.type===f.Condition){const a=d.successCalls.map(p=>fr(p)),o=d.errorCalls.map(p=>fr(p));i.push(...a,...o)}if(xo.includes(d.type)){if(d.collapsed&&u)return[];const a=d.inputs.map(p=>Kd(p)).flat(),o=d.calls.map(p=>fr(p));i.push(...R(a),...o)}if(ar.includes(d.type)&&d.type!==f.Condition&&d.type!==f.Loop){const a=d==null?void 0:d.outputs.map(e=>Kd(e)).flat(),o=d.successCalls.map(e=>fr(e)),p=d.errorCalls.map(e=>fr(e));i.push(...R(a),...o,...p)}if(It.includes(d.type)){const a=Kd(d),o=ES(d);i.push(...a,...o)}if(d.type===f.Loop){const a=d.outputs.map(e=>Kd(e)).flat();if(d.body){const e=An(d.body,u);i.push(...e)}const o=d.errorCalls.map(e=>fr(e)),p=d.successCalls.map(e=>fr(e));i.push(...R(a),...p,...o)}if(d.type===f.FunctionDeclaration){if(d.collapsed&&u)return[];const a=d.inputs.map(p=>Kd(p)).flat(),o=d.calls.map(p=>fr(p));i.push(...R(a),...o)}return R(i)}function _m(d,u=!1){const i=[];if(d.type===f.Project&&i.push(...(d==null?void 0:d.variableDeclarations)||[],...(d==null?void 0:d.variableInstances)||[],...(d==null?void 0:d.searches)||[],...(d==null?void 0:d.loops)||[],...(d==null?void 0:d.operations)||[],...(d==null?void 0:d.conditions)||[],...(d==null?void 0:d.functionCalls)||[]),Nr.includes(d.type)&&i.push(...(d==null?void 0:d.detachedChildren)||[]),d.type===f.DefinitionEntity){const a=[...d.suggestedMethods,...d.methods].flatMap(o=>o.collapsed&&u?[]:_m(o));i.push(...a)}if(d.type===f.Condition){const a=d.successCalls,o=d.errorCalls;i.push(...a,...o)}if(xo.includes(d.type)){if(d.collapsed&&u)return[];const a=d.inputs.map(p=>kd(p)).flat(),o=d.calls;i.push(...R(a),...o)}if(ar.includes(d.type)&&d.type!==f.Condition&&d.type!==f.Loop){const a=d==null?void 0:d.outputs.map(e=>kd(e)).flat(),o=d.successCalls,p=d.errorCalls;i.push(...R(a),...o,...p)}if(It.includes(d.type)){const a=kd(d),o=TS(d);i.push(...a,...o)}if(d.type===f.Loop){const a=d.outputs.map(e=>kd(e)).flat();if(d.body){const e=_m(d.body,u);i.push(...e)}const o=d.errorCalls,p=d.successCalls;i.push(...R(a),...p,...o)}if(d.type===f.FunctionDeclaration){if(d.collapsed&&u)return[];const a=d.inputs.map(p=>kd(p)).flat(),o=d.calls;i.push(...R(a),...o)}return R(i)}function gm(d,u=!1){const i=An(d,u),a=[...i,...i.reduce((o,p)=>[...o,...gm(p,u)],[])];return R(a)}function AS(d,u=!1){const i=_m(d,u),a=[...i,...i.reduce((o,p)=>[...o,...AS(p,u)],[])];return R(a)}function bS(d){const u=Io(d),i=[...u,...u.reduce((a,o)=>[...a,...bS(o)],[])];return R(i)}function Yp(d){return d.implements.reduce((u,i)=>i.type===f.DefinitionEntity?[...u,f.DefinitionEntity,...Yp(i),...zp(i)]:[...u,i.name],[])}function zp(d){return d.extends?d.extends.type===f.DefinitionEntity?[f.DefinitionEntity,...zp(d.extends),...Yp(d.extends)]:[d.extends.name]:[]}function hb(d){return d.extends?d.extends.type===f.DefinitionEntity?[d.extends,...hb(d.extends),...yb(d.extends)]:[d.extends]:[]}function yb(d){return d.implements.reduce((u,i)=>i.type===f.DefinitionEntity?[...u,i,...yb(i),...hb(i)]:[...u,i],[])}function qd(d){return[...zp(d),...Yp(d)].filter((i,a,o)=>o.indexOf(i)===a)}function mb(d){return d.implements.length===0&&!d.extends?null:d.implements.find(a=>a.type===f.BuiltInBaseEntity&&a.name===Le.PERSISTED_ENTITY)?d:[...d.implements,...d.extends?[d.extends]:[]].reduce((a,o)=>{if(o.type===f.DefinitionEntity){const p=mb(o);if(p)return p}return a},null)}function EIe(d){return d.extends&&d.extends.type===f.BuiltInBaseEntity?d.extends:null}function TIe(d){const u=d.implements.find(i=>i.type===f.BuiltInBaseEntity);return u&&u.type===f.BuiltInBaseEntity?u:null}function Dm(d){return d.extends&&d.extends.type===f.DefinitionEntity?d.extends:null}function Vi(d){if(d.type===f.BuiltInBaseEntity)return[d];const u=[...d.implements,...d.extends?[d.extends]:[]].reduce((i,a)=>a.type===f.BuiltInBaseEntity?[...i,a]:a.type===f.DefinitionEntity?[...i,...Vi(a)]:i,[]);return R(u)}function Xp(d){return d.type===f.PrimitiveEntity?!0:d.type===f.BuiltInBaseEntity?d.interactive:!Vi(d).find(a=>!a.interactive)}function IIe(d){return d.parent===d.project&&d.project.variableDeclarations.includes(d)}function vb(d){return d.parent!==d.project?!1:f.VariableDeclaration===d.type?d.project.variableDeclarations.includes(d):f.VariableInstance===d.type?d.project.variableInstances.includes(d):f.FunctionCall===d.type?d.project.functionCalls.includes(d):f.Condition===d.type?d.project.conditions.includes(d):f.Operation===d.type?d.project.operations.includes(d):f.Loop===d.type?d.project.loops.includes(d):f.Search===d.type?d.project.searches.includes(d):!1}function wS(d){if([...Dt,f.DefinitionEntity,f.InstalledProject,f.Project].includes(d.type)||vb(d))return!1;const u=Io(d);return u.length===0?!0:u.some(i=>wS(i))}function Eb(d){return[...Dt,f.DefinitionEntity,f.InstalledProject,f.Project].includes(d.type)||vb(d)?!1:Io(d).length===0}function RS(d,u=0){if(Eb(d)){const i=Io(d);return i.length===0?d:i.map(o=>RS(o,u+1)).reduce((o,p)=>o?p&&p.x<o.x?p:o:p,null)}return null}function _S(d){const u=[];if(Eb(d))u.push(d);else return[];return Io(d).forEach(a=>{u.push(..._S(a))}),u}function Tb(d){return d.type===f.FunctionDeclaration&&d.parent!==d.project&&!![f.DefinitionEntity,f.Loop,f.InstalledProject].includes(d.parent.type)}function AIe(d,u){const i=new Map;return d.forEach(a=>{i.set(a.id,a)}),u.forEach(a=>{i.set(a.id,a)}),Array.from(i.values())}function Qp(d){switch(d){case f.DefinitionEntity:return Xn;case f.FunctionDeclaration:return Xa;case f.VariableDeclaration:return so;case f.VariableInstance:return io;case f.FunctionCall:return Eo;case f.Operation:return Qa;case f.Condition:return ro;case f.ReturnStatement:return eo;case f.Loop:return Gi;case f.Search:return no;case f.InputMap:return Zn;case f.OutputMap:return fn;case f.ArgumentDeclaration:return Kn;case f.ReturnDeclaration:return Qi;case f.Property:return zn;case f.InstalledProject:return ao;case f.Project:return N;case f.DataType:return fs;case f.GlobalEvent:return to;case f.InternalCall:return oo;case f.ValueDescriptor:return hn;case f.BuiltInBaseEntity:return Qn;case f.PrimitiveEntity:return ts;case f.ActionDescriptor:return ct;case f.LiteralValue:return Si;case f.ContinueStatement:return $i;case f.BreakStatement:return lo;default:return null}}function _i(d,u,i=null){const a=d!=null&&d.parent?H(d==null?void 0:d.parent):null;let o=a?u.get(a):null,p=i||d;if((d==null?void 0:d.id)===(u==null?void 0:u.id))return u;if(d.type===f.ReturnStatement)return Hr(d,u,p);if(d.type===f.FunctionDeclaration&&(o==null?void 0:o.type)===f.Loop)return o;if(Dt.includes(d.type))return d;if(d.type===f.Loop)return p.id===d.id?o:d;if(Zi.includes(d.type))return null;const e=d.parent;if(!e)return null;if(e.type===f.GenericReference){const y=H(e);if(!y)return null;const v=u.get(y);return v?_i(v,u,p):null}else return e===u?u:_i(e,u,p)}function Hr(d,u,i=null){const a=d!=null&&d.parent?H(d==null?void 0:d.parent):null;let o=a?u.get(a):null,p=i||d;if(d.type===f.FunctionDeclaration&&(o==null?void 0:o.type)===f.Loop)return Hr(o.parent,u,p);if(Dt.includes(d.type))return d;if(Zi.includes(d.type))return null;const e=d.parent;if(!e)return null;if(e.type===f.GenericReference){const y=H(e);if(!y)return null;const v=u.get(y);return v?Hr(v,u,p):null}else return e===u?u:Hr(e,u,p)}function Zd(d,u){if(Zi.includes(d.type))return Me.warn(`getRootEntryPointScopeOwner is \`null\` because it was called with a built-in entity type: ${d.type}`),null;if(u.getBuiltIn(d.id))return Me.warn(`getRootEntryPointScopeOwner is \`null\` because it was called with a built-in entity: ${d.id}`),null;const i=qi(d.parent,u);return i?i===u?Nr.includes(d.type)?d:(Me.warn(`getRootEntryPointScopeOwner is \`null\` because it was called with an entity that has the project as parent: ${d.id}`),null):i.type===f.DefinitionEntity?d:Zd(i,u):(Me.warn(`getRootEntryPointScopeOwner is \`null\` because it was called with an entity that has no parent: ${d.id}`),null)}function Om(d,u,i){if(d===u||u===i||d===i||!d||!u)return!1;const a=_i(u.parent,i);return a===i?!1:a===d?!0:Om(a,u,i)}var Cm=(d=>(d.SameBothLocal="same-both-local",d.AInB="a-in-b",d.BInA="b-in-a",d.ParallelInCommonParent="parallel-in-common-parent",d.ParallelInProject="parallel-in-project",d.AIsGlobalBIsNot="a-is-global-b-is-not",d.BIsGlobalAIsNot="b-is-global-a-is-not",d.SameBothGlobal="same-both-global",d))(Cm||{});function zs(d,u,i){const a=_i(d,i),o=_i(u,i);if(!a)throw new Error("Could not find scope owner for the entity: "+d.id);if(!o)throw new Error("Could not find scope owner for the entity: "+u.id);if(a===o&&a.type!==f.Project)return{compatible:!0,type:"same-both-local",commonAncestorScope:a};if(a===o&&a.type===f.Project)return{compatible:!0,type:"same-both-global",commonAncestorScope:a};if(a.type===f.Project&&o.type!==f.Project)return{compatible:!1,type:"a-is-global-b-is-not",commonAncestorScope:a};if(a.type!==f.Project&&o.type===f.Project)return{compatible:!1,type:"b-is-global-a-is-not",commonAncestorScope:o};if(Om(a,o,i))return{compatible:!0,type:"b-in-a",commonAncestorScope:a};if(Om(o,a,i))return{compatible:!0,type:"a-in-b",commonAncestorScope:o};const y=pb(a,o);return y===i?{compatible:!1,type:"parallel-in-project",commonAncestorScope:y}:y?{compatible:!1,type:"parallel-in-common-parent",commonAncestorScope:_i(y,i)}:{compatible:!1,type:"parallel-in-project",commonAncestorScope:i}}function gS(d,u,i){const a=zs(d,u,i);if(!a.compatible||a.type!=="same-both-local")return null;if(d===u)return d;let o=_i(d.parent,i);if(o){if(o===u)return u;if(o.type===f.Project)return d}else return d;for(;o;){if(o){if(o===u)return u;if(o.type===f.Project)return d}else return d;o=_i(o.parent,i)}let p=_i(u.parent,i);if(p){if(p===d)return d;if(p.type===f.Project)return u}else return u;for(;p;){if(p){if(p===d)return d;if(p.type===f.Project)return u}else return u;p=_i(p.parent,i)}return null}function DS(d){return d.length===0?null:d.length===1?d[0]:d.reduce((i,a)=>{const o=gS(i,a,a.project);return!o||o===a?i:a},d[0])}function qi(d,u){if(!d)return null;let i;return typeof d=="string"?i=d:d.type===f.GenericReference?i=H(d):i=d.id,i===u.id?u:u.get(i)}function Ao(d){if(!d)return null;if(Zi.includes(d.type))return d;if(d.type===f.Project)return null;if(d.project.getBuiltIn(d.id))return d;const u=d.parent;return!u||u.type===f.Project?null:Ao(u)}function ef(d){const u=[];function i(p,e){return u.some(y=>y.blockedByCaller===p&&y.blockedByCalling===e)}function a(p,e){i(p,e)||u.push({blockedByCaller:p,blockedByCalling:e})}const o=Zd(d,d.project);return o?(d.calledBySuccess.forEach(p=>{[...p.successCalls||[]].forEach(v=>{hr.includes(v.type)&&v!==d&&(vt(d).find(A=>A===v)||a(p,v))});let y;if(ar.includes(p.type)&&(y=p),y){const v=ef(y);v.reachable||vt(d).find(A=>A===p)||v.blocks.forEach(A=>{a(p,A.blockedByCalling)})}}),d.calledByError.forEach(p=>{[...p.errorCalls||[]].forEach(v=>{hr.includes(v.type)&&v!==d&&(vt(d).find(A=>A===v)||a(p,v))});let y;if(ar.includes(p.type)&&(y=p),y){const v=ef(y);v.reachable||vt(d).find(A=>A===p)||v.blocks.forEach(A=>{a(p,A.blockedByCalling)})}}),d.calledByEntry.forEach(p=>{if([...p.calls||[]].forEach(v=>{hr.includes(v.type)&&v!==d&&(vt(d).find(A=>A===v)||a(p,v))}),p===o)return;let y;if(p.type===f.FunctionDeclaration){const v=fr(p);if(v.type===f.DefinitionEntity)return;v.type===f.Loop&&(y=v)}if(y){const v=ef(y);v.reachable||v.blocks.forEach(E=>{a(p,E.blockedByCalling)})}}),{reachable:u.length===0,entryPoint:o,blocks:u}):{reachable:!0,entryPoint:null,blocks:[]}}function bIe(d){return eh.includes(d.type)?d.type===f.FunctionDeclaration?!Tb(d):!0:!1}function wIe(d){if(f.ActionDescriptor===d.type){if(d.project.operationDeclarations.find(p=>p.id===d.id))return f.Operation;if(d.project.globalEventActionDescriptors.find(p=>p.id===d.id))return f.GlobalEvent;if(d.project.loopDeclarations.find(p=>p.id===d.id))return f.Loop;if(d.project.conditionDeclarations.find(p=>p.id===d.id))return f.Condition}return d.type}function $m(d,u){return d.type===f.BuiltInBaseEntity?d.name===u:!!zp(d).includes(u)}function RIe(d,u){return d.type===f.BuiltInBaseEntity?d.name===u:!!Yp(d).includes(u)}function es(d,u){return d.type===f.BuiltInBaseEntity?d.name===u:!!qd(d).includes(u)}function _Ie(d){const u=[];return d.entities.forEach(i=>{if($m(i,Le.PERSISTED_ENTITY)){u.push(i);return}}),R(u)}function gIe(d){const u=[];return d.entities.forEach(i=>{if($m(i,Le.RELATIONAL_DATABASE)){u.push(i);return}}),R(u)}function DIe(d){return d.type!==f.DefinitionEntity||d.abstract||!$m(d,Le.PERSISTED_ENTITY)?null:(d==null?void 0:d.properties.find(i=>{var a;return((a=i.implements)==null?void 0:a.id)===he[f.BuiltInBaseEntity][Le.PERSISTED_ENTITY].properties.primaryKey.id&&!i.abstract}))||null}function OS(d){var a;const u=mb(d);if(!u)return null;const i=u.properties.find(o=>{var p;return((p=o.implements)==null?void 0:p.id)===he[f.BuiltInBaseEntity][Le.PERSISTED_ENTITY].properties.database.id});return i?(a=i.getDefaultValue())==null?void 0:a.valueAsType:null}function Hd(d){if(d.type!==f.DefinitionEntity)return[];if(d.abstract)return[];if(!es(d,Le.PERSISTED_ENTITY))return[];const u=[],i=d.properties.filter(a=>{var o;return((o=a.implements)==null?void 0:o.id)!==he[f.BuiltInBaseEntity][Le.PERSISTED_ENTITY].properties.database.id&&!a.abstract});return u.push(...i),u}function OIe(d){var i;if(!d||d.type!==f.DefinitionEntity||!es(d,Le.PERSISTED_ENTITY))return null;const u=d.properties.find(a=>{var o;return((o=a.implements)==null?void 0:o.id)===he[f.BuiltInBaseEntity][Le.PERSISTED_ENTITY].properties.database.id});return(i=u==null?void 0:u.getDefaultValue())==null?void 0:i.valueAsTypeSingle}function xr(d,u){var a;if(!eg.includes(u.type)||!d)return u.project||null;let i=u.project;return d.type===f.Project?i=d:((a=u.project)==null?void 0:a.id)!==d.project.id&&(i=d.project),i}function CIe(d){switch(d){case f.Project:return N;case f.InstalledProject:return ao;case f.DefinitionEntity:return Xn;case f.FunctionDeclaration:return Xa;case f.GlobalEvent:return to;case f.VariableInstance:return io;case f.VariableDeclaration:return so;case f.InputMap:return Zn;case f.OutputMap:return fn;case f.Condition:return ro;case f.Operation:return Qa;case f.FunctionCall:return Eo;case f.ReturnDeclaration:return Qi;case f.ArgumentDeclaration:return Kn;case f.PrimitiveEntity:return ts;case f.DataType:return fs;case f.Property:return zn;case f.ActionDescriptor:return ct;case f.ReturnStatement:return eo;case f.ContinueStatement:return $i;case f.BreakStatement:return lo;case f.Loop:return Gi;case f.Search:return no;case f.ValueDescriptor:return hn;case f.InternalCall:return oo;case f.LiteralValue:return Si}return null}function $Ie(d){const u={added:{},updated:{},removed:{},affected:[],seenEntities:[],self:d==null?void 0:d.self};return d==null||d.added.forEach(i=>{u.added[i.id]=i}),d==null||d.updated.forEach(i=>{u.updated[i.id]=i}),d==null||d.removed.forEach(i=>{u.removed[i.id]=i}),u.affected=Array.from(new Set(d==null?void 0:d.affected.map(i=>i.id))),u}function Lr(d,u){const i=Qp(d.type);return i?!i.MUTABLE_META_PROPERTIES.every(o=>{const p=d[o],e=u[o];return e===void 0||p===e?!0:Array.isArray(p)&&Array.isArray(e)?p.length!==e.length?!1:p.every((y,v)=>y===e[v]):!1}):!1}function Pm(d,u={}){if(d.type===f.Project)return[];if(!d.parent)return[];const i=H(d.parent);if(!i)return[];const a=u[i];return a?[a.id,...Pm(a,u)]:[]}function PIe(d){const u=[],i=new Set;return[...d.listAdded,...d.listUpdated,...d.listAffected].forEach(a=>{const o=fr(a);!o||i.has(o.id)||(i.add(o.id),u.push(o))}),R(u)}function NIe(d){if(d.type===f.Condition)return null;if(d.type===f.Search)return d.project.getBuiltIn(he["value-descriptor"][Zl.SearchErrorOutputDescriptor].id)||null;if(d.type===f.Operation)return d.declaration.error;if(d.type===f.FunctionCall){const i=d.declaration.returnStatements.find(a=>!!a.throws);return(i==null?void 0:i.throws)||null}return null}function CS(d){const u=d.entities.filter(o=>!!o.implements.find(p=>p.id===he["built-in-base-entity"].BUILT_IN_RELATIONAL_DATABASE_ENTITY.id)),i=u.find(o=>{const p=o.properties.find(v=>v.implements&&v.implements.id===he["built-in-base-entity"].BUILT_IN_RELATIONAL_DATABASE_ENTITY.properties.default.id),e=p==null?void 0:p.getDefaultValue();return(e==null?void 0:e.value)===!0});return i||u[0]||null}function Ib(d,u){const i=Array.from(new Set([...u.getAllBuiltInIds(),...Ys()]));return!!(i.includes(d.id)||!Pm(d,{...u.instances,...u.builtInInstances}).every(p=>!i.includes(p)))}function $S(d){if(!d)return null;if(d.type===f.Project)return d.id;const u=d.parent;return u?$S(u):d.id}function tf(d){if(d.declaration&&d.declaration.type===f.Property){if(d.declaration.interactive){if(d.declaration.implements&&!d.declaration.implements.interactive)return!1;if(d.declaration.extends&&!d.declaration.extends.interactive)return!1}else return!1;if(d.declaration.private){const u=fr(d),i=Zd(u,d.project);if((i==null?void 0:i.type)===f.FunctionDeclaration&&(i==null?void 0:i.parent.type)===f.DefinitionEntity&&(i==null?void 0:i.parent.id)!==d.declaration.parent.id)return!1}}return!0}function Ab(d){if(d.interactive){if(d.implements&&!d.implements.interactive)return!1;if(d.extends&&!d.extends.interactive)return!1}else return!1;if(d.private){const u=fr(d),i=Zd(u,d.project);if((i==null?void 0:i.type)===f.FunctionDeclaration&&(i==null?void 0:i.parent.type)===f.DefinitionEntity&&(i==null?void 0:i.parent.id)!==d.parent.id)return!1}return!0}function VIe(d,u,i){const a=u,o=i,p=!!i,e=[];return a.forEach(y=>{var v;if(p){const E=zs(o,y,d);if(!E.compatible&&E.type!=="b-is-global-a-is-not")return;e.push(y)}else{if(((v=y.parent)==null?void 0:v.type)!==f.Project)return;e.push(y)}}),R(e)}function Nm(d){return d.replace(/["'`]/g,"")}function Mr(d){const i=Nm(d).split(/[\s-]+/).filter(e=>e.length>0);if(i.length===0)return"";const a=i[0],o=a[0].toLowerCase()+a.slice(1),p=i.slice(1).map(e=>e[0].toUpperCase()+e.slice(1));return[o,...p].join("")}function Wd(d){return Nm(d).split(/[\s-]+/).filter(a=>a.length>0).map(a=>a[0].toUpperCase()+a.slice(1)).join("")}function PS(d){const u=Nm(d).trim();if(!u)return"";const i=u.replace(/[\s_-]+/g," ").split(" ").filter(Boolean),a=[];for(const o of i){let p=o;p=p.replace(/([A-Z]+)([A-Z][a-z]+)/g,"$1-$2"),p=p.replace(/([a-z0-9])([A-Z][a-z0-9]*)/g,"$1-$2"),p=p.replace(/([0-9])([a-zA-Z]+)/g,"$1-$2"),p=p.replace(/([a-zA-Z])([0-9])/g,"$1-$2");for(const e of p.split("-"))e&&a.push(e)}return a.join("-")}function LIe(d){const u=Nm(d).trim();if(!u)return"";const i=u.replace(/[\s_-]+/g," ").split(" ").filter(Boolean),a=[];for(const o of i){let p=o;p=p.replace(/([A-Z]+)([A-Z][a-z]+)/g,"$1_$2"),p=p.replace(/([a-z0-9])([A-Z][a-z0-9]*)/g,"$1_$2"),p=p.replace(/([0-9])([a-zA-Z]+)/g,"$1_$2"),p=p.replace(/([a-zA-Z])([0-9])/g,"$1_$2");for(const e of p.split("_"))e&&a.push(e)}return a.join("_")}function Vm(d){return PS(d).toLowerCase()}function Jd(d){var i,a,o,p;if(!d)return"Any data type";let u="";if(d.interactiveEntities===!1?u+=` but only definition nodes ${d.asType?"as template ":""}that don't include non-interactive built-in functionality`:d.interactiveEntities===!0&&(u+=` but only definition nodes ${d.asType?"as template ":""}that extend or implement interactive built-in functionality`),d.staticEntities===!1?u?u+=" and that aren't a single global copy instance":u+=` but only definition nodes ${d.asType?"as template ":""}that aren't a single global copy instance`:d.staticEntities===!0&&(u?u+=" and that are a single global copy instance":u+=` but only definition nodes ${d.asType?"as template ":""}that are a single global copy instance`),d.actionEntities===!1?u?u+=" excluding executable/action nodes":u+=` excluding executable/action nodes ${d.asType?"templates ":""}`:d.actionEntities===!0&&(u?u+=" and not executable/action nodes":u+=" but not executable/action nodes"),d.entity&&(u=""),d.asType&&!u&&!((i=d.andChildrenGroup)!=null&&i.length)&&!((a=d.orChildrenGroup)!=null&&a.length)&&(u=" as template"),!d.entity){const e=d.isList;if(!((o=d.andChildrenGroup)!=null&&o.length)&&!((p=d.orChildrenGroup)!=null&&p.length))return e?`List of an any data type${u}`:`Any data type${u}`;let y="",v=!1,E=!1;return(d.andChildrenGroup||[]).forEach(w=>{const A=Jd(w),C=bd(A);v&&(y+=" and "),w.isGroup?y+="("+C+")":v?y+=C:y+=A,v=!0,E=!0}),(d.orChildrenGroup||[]).forEach(w=>{const A=Jd(w),C=bd(A);v&&(E&&(y+=","),y+=" or "),w.isGroup?y+="("+C+")":v?y+=C:y+=A,v=!0}),e?`List of ${bd(y)}`:y}if(d.entity.type===f.PrimitiveEntity){let e=d.entity.name;switch(d.entity.name){case ae.String:e="Text";break;case ae.KeyValue:e="Data structure";break}return d.isList?`List of ${e}s${u}`:`${e.slice(0,1).toUpperCase()}${e.slice(1)}${u}`}else if(d.entity.type===f.DefinitionEntity){const e=W(d.entity,d.project);return d.isList?`List of ${e} values${u}`:e.slice(0,1).toUpperCase()+e.slice(1)+u}else if(d.entity.type===f.BuiltInBaseEntity){const e=VS(d.entity);return d.isList?`List of ${e} values${u}`:e.slice(0,1).toUpperCase()+e.slice(1)+u}else if(d.entity.type===f.LiteralValue){if(d.entity.name===ae.Null)return"Empty value";if(d.entity.name===ae.Untyped)return"Untyped value";if(d.entity.name===ae.File)return"File";if(d.entity.name===ae.String)return`"${d.entity.value}" text`;if(d.entity.name===ae.Number)return`Number '${d.entity.value}'`;if(d.entity.name===ae.Boolean)return`${d.entity.value} value`;if(d.entity.name===ae.UUID)return`"${d.entity.value}" unique identifier`;if(d.entity.name===ae.Date)return`"${d.entity.value}" date`}return d.isList?`List of ${W(d.entity,d.project)} values${u}`:`${W(d.entity,d.project).slice(0,1).toUpperCase()+W(d.entity,d.project).slice(1)} value${u}`}function MIe(d){if(!d)return"Any data type";const u=d.getDataType(null);return Jd(u)}function Lm(d){switch(d.declaration.id){case ut.Equal:return"is equal to";case ut.NotEqual:return"is not equal to";case ut.MoreThan:return"is greater than";case ut.MoreThanOrEqual:return"is greater than or equal to";case ut.LessThan:return"is less than";case ut.LessThanOrEqual:return"is less than or equal to";case Kr.And:return"and";case Kr.Or:return"or";case ai.Empty:return"is empty";case ai.NotEmpty:return"is present"}}function NS(d){return d.includes(Le.HTTP_ENDPOINT)?"HTTP endpoint":d.includes(Le.PERSISTED_ENTITY)?"Persisted entity":d.includes(Le.CRON_JOB)?"Scheduled execution":d.includes(Le.RELATIONAL_DATABASE)?"Relational database":"Entity"}function VS(d){switch(d.name){case Le.HTTP_ENDPOINT:return"HTTP endpoint";case Le.PERSISTED_ENTITY:return"Persisted entity";case Le.CRON_JOB:return"Scheduled execution";case Le.RELATIONAL_DATABASE:return"Relational database"}return"Entity"}function BIe(d){const u=Dm(d);if(!u){const i=qd(d);return i.includes(Le.HTTP_ENDPOINT)?"HTTP endpoint":i.includes(Le.PERSISTED_ENTITY)?"Persisted entity":i.includes(Le.CRON_JOB)?"Scheduled execution":i.includes(Le.RELATIONAL_DATABASE)?"Relational database":W(d,d.project)+" entity"}return W(u,d.project)+" entity"}function LS(d){let u="Find ";return d.outputsDeclarations.forEach((i,a)=>{const o=Iy(i,null),p=bd(o&&o.entity?W(o.entity,d.project):"unstructured data");a===0?u+=`${p} `:a===d.outputsDeclarations.length-1?u+=`and ${p} `:u+=`, ${p} `}),u}function MS(d){switch(d.name){case ae.String:return"Text";case ae.Number:return"Number";case ae.Boolean:return"Boolean";case ae.KeyValue:return"Data structure";case ae.UUID:return"Unique identifier";case ae.Date:return"Date";case ae.EntityTemplate:return"Entity as template";case ae.Enum:return"Enumeration";case ae.File:return"File";case ae.Null:return"Empty";case ae.ActionDescriptor:return"Action descriptor";case ae.Untyped:return"Untyped";default:return d.name}}function BS(d){switch(d.id){case We.List:return"Loop over list items";case We.ManualFlow:return"Manual flow control loop";case We.ObjectKeys:return"Loop over object keys";case We.ObjectValues:return"Loop over object values";case We.Counted:return"Loop given number of times";case We.String:return"Loop over text characters";case Zt.Addition:return"Sum numbers";case Zt.Subtraction:return"Subtract numbers";case Zt.Multiplication:return"Multiply numbers";case Zt.Division:return"Divide numbers";case Zt.Remainder:return"Get remainder of numbers";case Zt.Exponentiation:return"Get exponent of numbers";case Ge.AddIndex:return"Add at index position";case Ge.DeleteFirst:return"Delete first character";case Ge.DeleteLast:return"Delete last character";case Ge.DeleteIndex:return"Delete at index position";case Ge.Join:return"Join texts";case Ge.ReplaceAllMatches:return"Replace all matches";case Ge.ReplaceFirst:return"Replace first match";case Ge.ReplaceLast:return"Replace last match";case Ge.Split:return"Split text";case Ge.ReplaceIndex:return"Replace at index position";case Ge.ReplaceSingleMatch:return"Replace single match";case Ge.GetFirst:return"Get first character";case Ge.GetLast:return"Get last character";case Ge.GetIndexItem:return"Get at index position";case Ge.GetIndexOf:return"Get the index number of the character";case Ge.Append:return"Add at the end";case Ge.Prepend:return"Add at the start";case tr.Wait:return"Wait";case tr.Parallel:return"Run in parallel";case tr.Sequential:return"Run in sequence";case hi.HttpRequest:return"HTTP request";case pr.CreateNewInstance:return"Create new copy of entity";case Fe.AddIndex:return"Add item at index position";case Fe.DeleteFirst:return"Delete first item";case Fe.DeleteLast:return"Delete last item";case Fe.DeleteIndex:return"Delete item at index position";case Fe.Join:return"Join lists";case Fe.ReplaceFirst:return"Replace first match";case Fe.ReplaceLast:return"Replace last match";case Fe.Split:return"Split list";case Fe.ReplaceIndex:return"Replace at index position";case Fe.GetFirst:return"Get first item";case Fe.GetLast:return"Get last item";case Fe.GetIndexItem:return"Get item at index position";case Fe.Append:return"Add item at the end";case Fe.Prepend:return"Add item at the start";case va.PROJECT_PUBLICATION_COMPLETED:return"Project publication completed";default:return(d.name.slice(0,1).toUpperCase()+d.name.slice(1)).replaceAll("-"," ")}}function W(d,u){var i;if(f.FunctionDeclaration===d.type){const a=d.name;if(Object.values(Jr).includes(a))switch(a){case Jr.AbortExecution:return"Abort ongoing execution";case Jr.DeletePersistedEntity:return"Delete entry from database";case Jr.CreatePersistedEntity:return"Save new data entry in database";case Jr.UpdatePersistedEntity:return"Update entity data to database";default:return Ti(d.type).replaceAll("-"," ")}return a}if(f.BuiltInBaseEntity===d.type)return NS([d.name]);if(X_.includes(d.type)&&d.type!==f.ActionDescriptor)return d.name;switch(d.type){case f.Search:return LS(d);case f.GlobalEvent:return d.implements?W(d.implements,u):Ti(d.type).replaceAll("-"," ");case f.Operation:case f.InternalCall:case f.Loop:const a=qi(d.declaration,u);return W(a,u);case f.ActionDescriptor:return BS(d);case f.BreakStatement:const o=qi(d.parent,u);return`Stop loop ${W(o,u)}`;case f.ContinueStatement:const p=qi(d.parent,u);return`Execute next iteration of ${W(p,u)}`;case f.FunctionCall:return qi(d.declaration,u).name;case f.Condition:{const y=d;if(y.declaration.id===Kr.And)return"If all conditions are met";if(y.declaration.id===Kr.Or)return"If any condition is met";if((i=d.inputs)!=null&&i.length){const v=W(y.inputs[0],y.project);if(y.inputs[1]){const E=y.inputs[1].declaration.name;return`If ${v} ${Lm(y)} ${E}`}return`If ${v} ${Lm(y)}`}else return`If ${Lm(y)}`}case f.ReturnStatement:{const y=qi(d.parent,u);return y?`Output of ${W(y,u)}`:"Return statement"}case f.InputMap:if(d.declaration){const y=qi(d.declaration,u);return W(y,u)||""}else{if(!d.name)throw new Error(`Input map entity with id "${d.id}" has no name and no declaration.`);return d.name||""}case f.VariableInstance:{const y=qi(d.declaration,u);return W(y,u)||""}case f.OutputMap:if(d.declaration){const y=qi(d.declaration,u);return(y==null?void 0:y.name)||""}else return d.parentRelationType===Ga.Error?"Undeclared error":"";case f.PrimitiveEntity:case f.LiteralValue:return MS(d);default:return Ti(d.type).replaceAll("-"," ")}}function bb(d,u){const i=[];d.name||i.push(new se({id:`${d.id}--${re.EmptyName}`,message:`Entity with id "${d.id}" and type "${d.type}" has an empty name. Please provide a 'name' string.`,severity:Z.Error,code:re.EmptyName}));const a=u.entities.filter(o=>o.name===d.name);return a.length&&i.push(new se({id:`${d.id}--${re.NameNotUniqueInScope}`,message:`Entity with id "${d.id}" and type "${d.type}" has a name "${d.name}" that is not unique in the project. Entity with id "${a[0].id}" has the same name.
|
|
397
397
|
Please provide a unique 'name' string.`,severity:Z.Error,code:re.NameNotUniqueInScope})),i}function wb(d,u){const i=[];d.name||i.push(new se({id:`${d.id}--${re.EmptyName}`,message:`Entity with id "${d.id}" and type "${d.type}" has an empty name. Please provide a 'name' string.`,severity:Z.Error,code:re.EmptyName}));const a=d.parent?H(d.parent):null;let o=u;a&&(o=u.get(a));const p=[];o.type===f.DefinitionEntity?p.push(...o.methods.map(y=>y)):o.type===f.Project?p.push(...o.functions.map(y=>y)):o.type===f.Loop?o.body&&p.push(o.body):o.type===f.InstalledProject&&p.push(...o.functions.map(y=>y));const e=p.filter(y=>y.name===d.name);return e.length&&i.push(new se({id:`${d.id}--${re.NameNotUniqueInScope}`,message:`Entity with id "${d.id}" and type "${d.type}" has a name "${d.name}" that is not unique in ${o.type===f.Project?"the globally declared project scope":"its parent entity"}. Entity with id "${e[0].id}" has the same name.
|
|
398
398
|
Please provide a unique 'name' string.`,severity:Z.Error,code:re.NameNotUniqueInScope})),i}function Rb(d,u){const i=[];d.name||i.push(new se({id:`${d.id}--${re.EmptyName}`,message:`Entity with id "${d.id}" and type "${d.type}" has an empty name. Please provide a 'name' string.`,severity:Z.Error,code:re.EmptyName}));const a=d.parent&&qi(d.parent,u)||u;if(!a)i.push(new se({id:`${d.id}--parent-reference--${k.ReferencedEntityNotFound}`,message:`The entity with id '${d.parent}' that isn't yet found in the project. Perhaps it should be created first. Or perhaps the ID is incorrect.`,severity:Z.Error,code:k.ReferencedEntityNotFound}));else{const p=JI(a).filter(e=>e.name===d.name);p.length&&i.push(new se({id:`${d.id}--${re.NameNotUniqueInScope}`,message:`Entity with id "${d.id}" and type "${d.type}" has a name "${d.name}" that is not unique in its scope or higher scopes. Entity with id "${p[0].id}" has the same name.
|
|
399
399
|
Please provide a unique 'name' string.`,severity:Z.Error,code:re.NameNotUniqueInScope}))}return i}function _b(d,u){const i=[];d.name||i.push(new se({id:`${d.id}--${re.EmptyName}`,message:`Entity with id "${d.id}" and type "${d.type}" has an empty name. Please provide a 'name' string.`,severity:Z.Error,code:re.EmptyName}));const a=H(d.parent);if(!a)i.push(new se({id:`${d.id}--parent-reference--${k.InvalidReferenceObjectStructure}`,message:`Reference object at 'parent' property for entity with id "${d.id}" and type "${d.type}" is not a valid reference. A reference needs to be a 'id' string of an existing entity in the project.`,severity:Z.Error,code:k.InvalidReferenceObjectStructure}));else{const o=u.get(a);if(!o)i.push(new se({id:`${d.id}--parent-reference--${k.ReferencedEntityNotFound}`,message:`The entity with id '${a}' that isn't yet found in the project. Perhaps it should be created first. Or perhaps the ID is incorrect.`,severity:Z.Error,code:k.ReferencedEntityNotFound}));else{const e=o.properties.filter(y=>y.name===d.name);e.length&&i.push(new se({id:`${d.id}--${re.NameNotUniqueInScope}`,message:`Entity with id "${d.id}" and type "${d.type}" has a name "${d.name}" that is not unique among all properties in the parent entity. Entity with id "${e[0].id}" has the same name.
|
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.6477",
|
|
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",
|