@elyx-code/project-logic-tree 0.0.6209 → 0.0.6210
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +13 -0
- package/dist/index.umd.cjs +1 -1
- package/dist/tree/state/project/project.d.ts +2 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -68780,6 +68780,19 @@ const se = class se extends nt {
|
|
|
68780
68780
|
...this.entities.flatMap((t) => t.methods)
|
|
68781
68781
|
];
|
|
68782
68782
|
}
|
|
68783
|
+
getTerminationStatements() {
|
|
68784
|
+
return [
|
|
68785
|
+
...this.getEntryPoints().reduce((t, r) => {
|
|
68786
|
+
const s = qe(r);
|
|
68787
|
+
return [
|
|
68788
|
+
...t,
|
|
68789
|
+
...s.filter(
|
|
68790
|
+
(l) => l.type === n.ReturnStatement || l.type === n.ContinueStatement || l.type === n.BreakStatement
|
|
68791
|
+
)
|
|
68792
|
+
];
|
|
68793
|
+
}, [])
|
|
68794
|
+
];
|
|
68795
|
+
}
|
|
68783
68796
|
getFunctionDeclaration(e) {
|
|
68784
68797
|
return this.functions.find((t) => t.id === e) || null;
|
|
68785
68798
|
}
|
package/dist/index.umd.cjs
CHANGED
|
@@ -405,4 +405,4 @@ If an entity is called by another, they must be in the same scope, which means t
|
|
|
405
405
|
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.`,issue:null})),{errors:t,modifiedData:e}}subscribeDependents(e){return e.forEach(t=>{this.detachedDependents[t.entity.id]||(this.detachedDependents[t.entity.id]=t)}),this}syncDependents(){const e=[],t=[],i=[],s=[];return Object.values(this.detachedDependents).forEach(l=>{const o=l.entity.afterAllChildrenInitialized();e.push(...o.updated),t.push(...o.added),i.push(...o.removed),s.push(...o.affected)}),{updated:p(e),added:p(t),removed:p(i),affected:p(s),self:this}}onDetachedDependencyRemoved(e,t,i){const s=[],l=[],o=[],d=[];if(t==="declaration"){const{updated:u,added:y,removed:c}=this.remove({ignoreUpstream:!1},i);s.push(...u),l.push(...y),o.push(...c)}if(t==="parent"){const{updated:u,added:y,removed:c}=this.remove({ignoreUpstream:!1},i);s.push(...u),l.push(...y),o.push(...c)}return{updated:p(s),added:p(l),removed:p(o),affected:p(d),self:this}}onDetachedDependencyRestored(e,t,i){const s=[],l=[],o=[],d=[];if(t==="declaration"){const{updated:u,added:y,removed:c}=this.restore({},i);s.push(...u),l.push(...y),o.push(...c)}if(t==="parent"){const{updated:u,added:y,removed:c}=this.restore({},i);s.push(...u),l.push(...y),o.push(...c)}return{updated:p(s),added:p(l),removed:p(o),affected:p(d),self:this}}subscribeToDependencies(){var e;return(e=this.parent)==null||e.subscribeDependents([{entity:this,field:"parent"}]),this.declaration.subscribeDependents([{entity:this,field:"declaration"}]),this}increaseVersion(e){if(e&&!T(e).isValid())throw new Error(`The shared timestamp '${e}' is not a valid ISO 8601 date string.`);return e&&T(e).isSame(T(this.createdAt))?this:(this.previousVersion=this.version,this.version=m.UUID.uuid(),this.createdAt=T(e).toISOString()||T().toISOString(),this)}captureVersion(){var t;const e=((t=this.knownVersions)==null?void 0:t.get(this.version))||new Ze(this,this.project);return e.metaSync(this.toMeta(),null),this.knownVersions=this.knownVersions?this.knownVersions.set(this.version,e):new Map([[this.version,e]]),e.inputs=this.inputs,e.outputs=this.outputs,e.error=this.error,e.successCalls=this.successCalls,e.errorCalls=this.errorCalls,e.process=this.process,e.declaration=this.declaration,e.calledBySuccess=this.calledBySuccess,e.calledByError=this.calledByError,e.calledByEntry=this.calledByEntry,e.parent=this.parent,this}recursiveCaptureUpstreamVersions(e){const t=[],i=[],s=[],l=[];if(this.parent){this.parent.increaseVersion(e);const o=this.parent.recursiveCaptureUpstreamVersions(e);t.push(this.parent,...o.updated),i.push(...o.added),s.push(...o.removed)}return{updated:p(t),added:p(i),removed:p(s),affected:p(l),self:this}}async restoreVersion(e){var d;const t=[],i=[],s=[],l=[];if(this.version===e)return{updated:p(t),added:p(i),removed:p(s),affected:p(l),self:this};if(!this.knownVersions){const u=new Map;for(const[y,c]of this.knownVersions||new Map){if(u.set(y,c),c.activeVersion=!1,c.knownVersions)for(const[I,E]of c.knownVersions)u.set(I,E);c.knownVersions=null}}let o=(d=this.knownVersions)==null?void 0:d.get(e);if(!o){const u=await this.APILoadVersion({},e);if(!u)throw new Error(`Version with id '${e}' for entity with id '${this.id}' not found.`);o=new Ze(u,this.project)}return this.metaSync(o.toShallowJSON(),null),this.inputs=o.inputs,this.outputs=o.outputs,this.error=o.error,this.successCalls=o.successCalls,this.errorCalls=o.errorCalls,this.process=o.process,this.declaration=o.declaration,this.calledBySuccess=o.calledBySuccess,this.calledByError=o.calledByError,this.calledByEntry=o.calledByEntry,this.parent=o.parent,{updated:p(t),added:p(i),removed:p(s),affected:p(l),self:this}}hydrateAncestors(){const e=[],t=[],i=[],s=[];if(this.initialData.parent){const l=_(this.initialData.parent),o=this.project.get(l);if(o)this.setParent(o,null),e.push(o);else throw new Error(`${this.type} with id '${this.id}' has a 'parent' reference '${l}' 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 l=_(this.initialData.declaration),o=this.project.get(l);o&&(this.setDeclaration(o),e.push(o))}return this.initialData.calledByEntry.forEach(l=>{const o=_(l),d=this.project.get(o);d&&(this.addEntryCaller(d,null),e.push(d))}),this.initialData.calledBySuccess.forEach(l=>{const o=_(l),d=this.project.get(o);d&&(this.addSuccessCaller(d,null),e.push(d))}),this.initialData.calledByError.forEach(l=>{const o=_(l),d=this.project.get(o);d&&(this.addErrorCaller(d,null),e.push(d))}),{updated:p(e),added:p(t),removed:p(i),affected:p(s),self:this}}afterAllChildrenInitialized(e=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"after-all-children-initialized"))){const t=[],i=[],s=[],l=[];this.initialized=!0,this.captureVersion();const{updated:o,added:d,removed:u}=this.syncMissingFixedInputs(e),{updated:y,added:c,removed:I}=this.syncMissingFixedOutputs(e);return t.push(...o,...y),i.push(...d,...c),s.push(...u,...I),e==null||e.attemptAutoclose("after-all-children-initialized",this.id),{updated:p(t),added:p(i),removed:p(s),affected:p(l),self:this}}addSelfToProject(e=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"add-self-to-project"))){var o;const t=[this],i=[],s=[],l=[];return this.parent===this.project&&this.project.addFunctionCall(this),(o=this.process)==null||o.writesValues.forEach(d=>{d.setValueWriter(this.process,e),t.push(d)}),this.successCalls.forEach(d=>{d.addSuccessCaller(this,e),t.push(d)}),this.errorCalls.forEach(d=>{d.addErrorCaller(this,e),t.push(d)}),this.calledBySuccess.forEach(d=>{d.addSuccessCall(this,e),t.push(d)}),this.calledByError.forEach(d=>{d.addErrorCall(this,e),t.push(d)}),this.calledByEntry.forEach(d=>{d.addCall(this,e),t.push(d)}),this.subscribe(),this.subscribeToDependencies(),e==null||e.attemptAutoclose("add-self-to-project",this.id),{updated:p(t),added:p(i),removed:p(s),affected:p(l),self:this}}get calledBy(){return[...this.calledByEntry,...this.calledBySuccess,...this.calledByError]}removeInput(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"remove-input"))){const i=this.inputs.findIndex(s=>s.id===e.id);return i>-1&&(this.inputs.splice(i,1),t&&(t==null||t.add(this,A.Affected))),t==null||t.attemptAutoclose("remove-input",this.id),this}addInput(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"add-input"))){return this.inputs.includes(e)?(t==null||t.attemptAutoclose("add-input",this.id),this):(this.inputs.push(e),t==null||t.add(this,A.Affected),t==null||t.attemptAutoclose("add-input",this.id),this)}addOutput(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"add-output"))){return this.outputs.includes(e)?(t==null||t.attemptAutoclose("add-output",this.id),this):(this.outputs.push(e),t==null||t.add(this,A.Affected),t==null||t.attemptAutoclose("add-output",this.id),this)}removeOutput(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"remove-output"))){const i=this.outputs.findIndex(s=>s.id===e.id);return i>-1&&(this.outputs.splice(i,1),t&&(t==null||t.add(this,A.Affected))),t==null||t.attemptAutoclose("remove-output",this.id),this}addValueReader(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"add-value-reader"))){var i;return this.process&&!this.process.writesValues.includes(e)&&((i=this.process)==null||i.addValueReader(e,t),t==null||t.add(this,A.Affected)),t==null||t.attemptAutoclose("add-value-reader",this.id),this}removeValueReader(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"remove-value-reader"))){var i;return this.process&&this.process.writesValues.includes(e)&&((i=this.process)==null||i.removeValueReader(e,t),t==null||t.add(this,A.Affected)),t==null||t.attemptAutoclose("remove-value-reader",this.id),this}addSuccessCaller(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"add-success-caller")),i=!1){return this.calledBySuccess.find(s=>s.id===e.id)||(this.calledBySuccess.push(e),t==null||t.add(this,A.Updated),i&&K(this,t)),t==null||t.attemptAutoclose("add-success-caller",this.id),this}addErrorCaller(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"add-error-caller")),i=!1){return this.calledByError.find(s=>s.id===e.id)||(this.calledByError.push(e),t==null||t.add(this,A.Updated),i&&K(this,t),t==null||t.attemptAutoclose("add-error-caller",this.id)),this}addEntryCaller(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"add-entry-caller")),i=!1){return this.calledByEntry.find(s=>s.id===e.id)||(this.calledByEntry.push(e),t==null||t.add(this,A.Updated),i&&K(this,t),t==null||t.attemptAutoclose("add-entry-caller",this.id)),this}addErrorCall(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"add-error-call")),i=!1){return this.errorCalls.find(s=>s.id===e.id)||(this.errorCalls.push(e),i&&K(this,t),t==null||t.add(this,A.Affected)),t==null||t.attemptAutoclose("add-error-call",this.id),this}addSuccessCall(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"add-success-call")),i=!1){return this.successCalls.find(s=>s.id===e.id)||(this.successCalls.push(e),i&&K(this,t),t==null||t.add(this,A.Affected)),t==null||t.attemptAutoclose("add-success-call",this.id),this}removeCall(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"remove-call")),i=!1){const s=this.successCalls.findIndex(o=>o.id===e.id);s>-1&&(this.successCalls.splice(s,1),t==null||t.add(this,A.Affected));const l=this.errorCalls.findIndex(o=>o.id===e.id);return l>-1&&(this.errorCalls.splice(l,1),t==null||t.add(this,A.Affected)),i&&K(this,t),t==null||t.attemptAutoclose("remove-call",this.id),this}removeCaller(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"remove-caller")),i=!1){return this.calledBySuccess=this.calledBySuccess.filter(s=>s.id!==e.id?(t&&(t==null||t.add(this,A.Updated),t==null||t.add(s,A.Affected)),!0):!1),this.calledByError=this.calledByError.filter(s=>s.id!==e.id?(t&&(t==null||t.add(this,A.Updated),t==null||t.add(s,A.Affected)),!0):!1),this.calledByEntry=this.calledByEntry.filter(s=>s.id!==e.id?(t&&(t==null||t.add(this,A.Updated),t==null||t.add(s,A.Affected)),!0):!1),i&&K(this,t),t==null||t.attemptAutoclose("remove-caller",this.id),this}setParent(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"set-parent"))){var i;return((i=this.parent)==null?void 0:i.id)!==(e==null?void 0:e.id)&&(this.parent=e,t&&(t==null||t.add(this,A.Updated),t==null||t.attemptAutoclose("set-parent",this.id))),this}setDeclaration(e){return this.declaration=e,this}initChildren(e=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"init-children"))){if(this.initialized||this.startedInitialization)return this;if(this.startedInitialization=!0,this.initialData.declaration.type===n.FunctionDeclaration){const t=C(this.initialData.declaration,this.project);this.declaration=t}else{const t=_(this.initialData.declaration),i=this.project.get(t);this.declaration=i}return this.successCalls=this.initialData.successCalls.map(t=>{const i=C(t,this.project);return i.addSuccessCaller(this),[n.BreakStatement,n.ContinueStatement].includes(i.type)?(i.setParent(this.parent.parent,null),i.initChildren(e)):i.type!==n.InternalCall&&(i.setParent(this.parent,null),i.initChildren(e)),i}),this.errorCalls=this.initialData.errorCalls.map(t=>{const i=C(t,this.project);return i.addErrorCaller(this),[n.BreakStatement,n.ContinueStatement].includes(i.type)?(i.setParent(this.parent.parent,null),i.initChildren(e)):i.type!==n.InternalCall&&(i.setParent(this.parent,null),i.initChildren(e)),i}),this.inputs=this.initialData.inputs.map(t=>{const i=C(t,this.project);return i.setParent(this,null),i.initChildren(e),i}),this.initialData.process&&(this.process=C(this.initialData.process,this.project),this.process.setParent(this,null),this.process.initChildren(e)),this.initialData.error&&(this.error=C(this.initialData.error,this.project),this.error.setParent(this,null),this.error.initChildren(e)),this.subscribeToDependencies(),this.afterAllChildrenInitialized(e),e==null||e.attemptAutoclose("init-children",this.id),this}subscribe(){return this.activeVersion=!0,this.project.subscribeInstance(this),this}unsubscribe(){return this.project.unsubscribeInstance(this),this}metaSync(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"meta-sync"))){const i=pt(this,e),s=this.toMeta();return this.x=e.x||s.x,this.y=e.y||s.y,super.metaSync(e),e.deleted===!0&&!s.deleted?t==null||t.add(this,A.Removed):e.deleted===!1&&s.deleted?t==null||t.add(this,A.Added):i&&(t==null||t.add(this,A.Updated)),t==null||t.attemptAutoclose("meta-sync",this.id),this}async APILoad(e=g,...t){return await Ze.repository.APILoad(this.id,...t),this}async APICreate(e=g,...t){return await Ze.repository.APICreate(this.toShallowJSON(),...t),this}async APIUpdate(e=g,...t){return await Ze.repository.APIUpdate(this.toShallowJSON(),...t),this}async APIDelete(e=g,...t){return await Ze.repository.APIDelete(this.toShallowJSON(),...t),this}async APIClone(e=g,...t){return await Ze.repository.APIClone(this.id,...t),this}async APILoadVersion(e=g,t,...i){return await Ze.repository.APILoadVersion(this.id,t,...i)}remove({ignoreUpstream:e}={ignoreUpstream:!1},t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"remove-entity"))){var d;const i=[],s=[],l=[],o=[];if(t!=null&&t.hasRemoved(this.id))return t==null||t.attemptAutoclose("remove-entity",this.id),{added:[],updated:[],removed:[],affected:[],self:this};if(s.push(this),this.unsubscribe(),this.project.subscribeDeletedInstance(this),this.metaSync({deleted:!0},t),Object.values(this.detachedDependents).forEach(u=>{const{updated:y,removed:c,added:I}=u.entity.onDetachedDependencyRemoved(this,u.field,t);i.push(...y),s.push(...c),l.push(...I)}),this.process){const{updated:u,removed:y}=(d=this.process)==null?void 0:d.remove({ignoreUpstream:!0},t);i.push(...u),s.push(...y)}if(this.inputs.forEach(u=>{const{updated:y,removed:c}=u.remove({ignoreUpstream:!0},t);i.push(...y),s.push(...c)}),this.outputs.forEach(u=>{const{updated:y,removed:c}=u.remove({ignoreUpstream:!0},t);i.push(...y),s.push(...c)}),this.error){const{updated:u,removed:y}=this.error.remove({ignoreUpstream:!0},t);i.push(...u),s.push(...y)}return this.successCalls.forEach(u=>{i.push(u),u.removeCaller(this,t)}),this.errorCalls.forEach(u=>{i.push(u),u.removeCaller(this,t)}),e||this.calledBy.forEach(u=>{i.push(u),u.removeCall(this,t)}),t==null||t.attemptAutoclose("remove-entity",this.id),{added:p(l),updated:p(i),removed:p(s),affected:p(o),self:this}}restore({}={},e=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"restore-entity"))){const t=[],i=[],s=[],l=[];if(e!=null&&e.hasAdded(this.id))return e==null||e.attemptAutoclose("restore-entity",this.id),{added:[],updated:[],removed:[],affected:[],self:this};if(this.subscribe(),this.project.unsubscribeDeletedInstance(this),this.metaSync({deleted:!1},e),this.process){const{updated:o}=this.process.restore({},e);i.push(...o)}return this.inputs.forEach(o=>{const{updated:d}=o.restore({},e);i.push(...d)}),this.outputs.forEach(o=>{const{updated:d}=o.restore({},e);i.push(...d)}),this.successCalls.forEach(o=>{i.push(o),o.addSuccessCaller(this,e)}),this.errorCalls.forEach(o=>{i.push(o),o.addErrorCaller(this,e)}),this.calledBySuccess.forEach(o=>{i.push(o),o.addSuccessCall(this,e)}),this.calledByError.forEach(o=>{i.push(o),o.addErrorCall(this,e)}),this.calledByEntry.forEach(o=>{i.push(o),o.addCall(this,e)}),e==null||e.attemptAutoclose("restore-entity",this.id),{added:p(t),updated:p(i),removed:p(s),affected:p(l),self:this}}toFlat(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[this,...this.successCalls.flatMap(i=>i.toFlat(e)),...this.errorCalls.flatMap(i=>i.toFlat(e)),...this.inputs.flatMap(i=>i.toFlat(e)),...this.outputs.flatMap(i=>i.toFlat(e)),...this.process?this.process.toFlat(e):[],...this.error?this.error.toFlat(e):[],...this.calledBy.flatMap(i=>i.toFlat(e))])}toFlatIds(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[this.id,...this.successCalls.flatMap(i=>i.toFlatIds(e)),...this.errorCalls.flatMap(i=>i.toFlatIds(e)),...this.inputs.flatMap(i=>i.toFlatIds(e)),...this.outputs.flatMap(i=>i.toFlatIds(e))])}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}}toJSON(e=new Set){var t,i;return e.has(this.id)?this.toReference():(e.add(this.id),{id:this.id,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,type:this.type,x:this.x,y:this.y,successCalls:this.successCalls.map(s=>s.toJSON(e)),errorCalls:this.errorCalls.map(s=>s.toJSON(e)),calledBySuccess:this.calledBySuccess.map(s=>s.toReference()),calledByError:this.calledByError.map(s=>s.toReference()),calledByEntry:this.calledByEntry.map(s=>s.toReference()),process:(t=this.process)==null?void 0:t.toJSON(e),declaration:this.declaration.toJSON(e),inputs:this.inputs.map(s=>s.toJSON(e)),outputs:this.outputs.map(s=>s.toJSON(e)),parent:this.parent.toReference(),error:(i=this.error)==null?void 0:i.toJSON(e)})}toJSONClone(e=q){var i,s,l,o,d,u,y;let t;return(i=e.seenEntityMaps)!=null&&i.has(this.id)?t=e.seenEntityMaps.get(this.id):(t=e.newId||ht(this,this.project,e.uuidStrategy),e.seenEntityMaps&&e.seenEntityMaps.set(this.id,t)),(s=e.seenEntities)!=null&&s.has(t)||(l=e.seenEntities)!=null&&l.has(this.id)?this.toReference({seenEntityMaps:e.seenEntityMaps}):((o=e.seenEntities)==null||o.add(t),(d=e.seenEntities)==null||d.add(this.id),{id:t,version:m.UUID.uuid(),createdAt:e.timestamp||T().toISOString(),previousVersion:null,author:this.author,deleted:this.deleted,type:this.type,x:this.x,y:this.y,successCalls:this.successCalls.map(c=>c.toJSONClone({...e,newId:null})),errorCalls:this.errorCalls.map(c=>c.toJSONClone({...e,newId:null})),calledBySuccess:this.calledBySuccess.map(c=>c.toReference({seenEntityMaps:e.seenEntityMaps})),calledByError:this.calledByError.map(c=>c.toReference({seenEntityMaps:e.seenEntityMaps})),calledByEntry:this.calledByEntry.map(c=>c.toReference({seenEntityMaps:e.seenEntityMaps})),process:(u=this.process)==null?void 0:u.toJSONClone({...e,newId:null}),declaration:this.declaration.toJSONClone({...e,newId:null}),inputs:this.inputs.map(c=>c.toJSONClone({...e,newId:null})),outputs:this.outputs.map(c=>c.toJSONClone({...e,newId:null})),error:(y=this.error)==null?void 0:y.toJSONClone({...e,newId:null}),parent:this.parent.toReference({seenEntityMaps:e.seenEntityMaps})})}toReference(e=q){var i;let t=this.id;return(i=e.seenEntityMaps)!=null&&i.has(this.id)&&(t=e.seenEntityMaps.get(this.id)),{id:t+"--"+m.UUID.uuid()+"--ref",type:n.GenericReference,entityId:t,version:this.version,entityType:this.type}}toShallowJSON(e=q){var i;let t=this.id;return(i=e.seenEntityMaps)!=null&&i.has(this.id)&&(t=e.seenEntityMaps.get(this.id)),{id:t,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,type:this.type,x:this.x,y:this.y,process:this.process?this.process.toReference(e):null,inputs:this.inputs.map(s=>s.toReference(e)),outputs:this.outputs.map(s=>s.toReference(e)),declaration:this.declaration.toReference(e),successCalls:this.successCalls.map(s=>s.toReference(e)),errorCalls:this.errorCalls.map(s=>s.toReference(e)),calledBySuccess:this.calledBySuccess.map(s=>s.toReference(e)),calledByError:this.calledByError.map(s=>s.toReference(e)),calledByEntry:this.calledByEntry.map(s=>s.toReference(e)),error:this.error?this.error.toReference(e):null,parent:this.parent.toReference(e)}}toFlatJSON(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[this.toShallowJSON(),...this.successCalls.flatMap(i=>i.toFlatJSON(e)),...this.errorCalls.flatMap(i=>i.toFlatJSON(e)),...this.inputs.flatMap(i=>i.toFlatJSON(e)),...this.outputs.flatMap(i=>i.toFlatJSON(e)),...this.process?this.process.toFlatJSON(e):[],...this.error?this.error.toFlatJSON(e):[]])}toGenerationTarget(){const e=this.parent.type===n.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(t=>t.id),calledBySuccess:this.calledBySuccess.map(t=>t.id),calledByError:this.calledByError.map(t=>t.id),declaration:this.declaration.id,parent:e}}toFlatGenerationTarget(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[this.toGenerationTarget(),...this.successCalls.flatMap(i=>i.toFlatGenerationTarget(e)),...this.errorCalls.flatMap(i=>i.toFlatGenerationTarget(e)),...this.inputs.flatMap(i=>i.toFlatGenerationTarget(e)),...this.outputs.flatMap(i=>i.toFlatGenerationTarget(e)),...this.process?this.process.toFlatGenerationTarget(e):[],...this.error?this.error.toFlatGenerationTarget(e):[]])}clearErrors(){var e,t;return this.errors=[],this.inputs.forEach(i=>i.clearErrors()),this.outputs.forEach(i=>i.clearErrors()),this.successCalls.forEach(i=>i.clearErrors()),this.errorCalls.forEach(i=>i.clearErrors()),(e=this.process)==null||e.clearErrors(),(t=this.error)==null||t.clearErrors(),this}validate(){const e=Y1(this);return this.errors=e,{success:!0,error:null,data:this.toJSON()}}getErrors(){return[...this.errors,...this.inputs.flatMap(t=>t.getErrors()),...this.outputs.flatMap(t=>t.getErrors()),...this.error?this.error.getErrors():[],...this.process?this.process.getErrors():[]]}getShallowErrors(){return this.errors}clone(e=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"clone-entity")),t=null,i=null,s=!0){var O,P;let l=mt(t,this);const o=this.toJSON(),d=i||m.UUID.uuid();o.inputs=[];const u=d.split("-id"),y=u[u.length-1||0]||d;o.id=d,o.version=m.UUID.uuid(),o.createdAt=(e==null?void 0:e.timestamp)||T().toISOString(),o.author=(e==null?void 0:e.author)||"1",o.previousVersion=null,o.deleted=!1;const c=ct(o,l);t?c.setParent(t,null):c.setParent(this.parent,null),s&&c.subscribe(),c.initChildren(e),e==null||e.add(c,A.Added);const I=(O=this.inputs)==null?void 0:O.map((V,M)=>V.clone(e,c,y+"-input-map-"+M+"-id",s));c.inputs=I;const E=(P=this.outputs)==null?void 0:P.map((V,M)=>V.clone(e,c,y+"-output-map-"+M+"-id",s));return c.outputs=E,this.error&&(c.error=this.error.clone(e,c,y+"-error-map-id",s)),this.process&&(c.process=this.process.clone(e,c,y+"-process-id",s)),e==null||e.attemptAutoclose("clone-entity",this.id),c}removeUnrecognizedInputs(e=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"remove-unrecognized-inputs"))){const t=[],i=[],s=[],l=[];return this.inputs.forEach(o=>{if(!this.declaration.inputs.find(u=>{var y;return u.id===((y=o.declaration)==null?void 0:y.id)})){const u=o.remove({ignoreUpstream:!1},e);s.push(...u.removed),t.push(...u.updated)}}),e==null||e.attemptAutoclose("remove-unrecognized-inputs",this.id),{updated:p(t),added:p(i),removed:p(s),affected:p(l),self:this}}removeUnrecognizedOutputs(e=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"remove-unrecognized-outputs"))){const t=[],i=[],s=[],l=[];return this.outputs.forEach(o=>{if(!this.declaration.getUniqueReturnDeclarations().find(u=>{var y;return u.id===((y=o.declaration)==null?void 0:y.id)})){const u=o.remove({ignoreUpstream:!1},e);s.push(...u.removed),t.push(...u.updated)}}),e==null||e.attemptAutoclose("remove-unrecognized-outputs",this.id),{updated:p(t),added:p(i),removed:p(s),affected:p(l),self:this}}syncMissingFixedInputs(e=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"sync-missing-fixed-inputs"))){const t=[],i=[],s=[],l=[],o=this.declaration.inputs.filter(c=>!this.inputs.find(I=>I.declaration.id===c.id));this.inputs.sort((c,I)=>c.index-I.index),o.forEach(c=>{this.inputs.forEach(O=>{O.index>=c.index&&O.metaSync({index:O.index+1},e)});const I={id:m.UUID.uuid(),version:m.UUID.uuid(),createdAt:(e==null?void 0:e.timestamp)||T().toISOString(),author:m.sessionAuthor,previousVersion:null,deleted:!1,type:n.InputMap,declaration:c.toJSON(),readsValue:null,defaultValue:null,index:c.index,name:null,description:null,parent:this.toReference()},E=C(I,this.project);E.setParent(this,e),E.initChildren(e),e==null||e.add(E,A.Added),E.addSelfToProject(e),i.push(E)}),this.inputs.sort((c,I)=>c.index-I.index);const{updated:d,added:u,removed:y}=this.removeUnrecognizedInputs(e);return t.push(...d),i.push(...u),s.push(...y),e==null||e.attemptAutoclose("sync-missing-fixed-inputs",this.id),{updated:p(t),added:p(i),removed:p(s),affected:p(l),self:this}}syncMissingFixedOutputs(e=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"sync-missing-fixed-outputs"))){const t=[],i=[],s=[],l=[],o=[];this.outputs=this.initialData.outputs.map(I=>{const E=C(I,this.project);return o.push(E.index),E.setParent(this,null),E.initChildren(e),E});const d=this.declaration.getUniqueReturnDeclarations().filter(I=>!this.outputs.find(E=>E.declaration.id===I.id));this.outputs.sort((I,E)=>I.index-E.index),d.forEach((I,E)=>{this.outputs.forEach(M=>{M.index>=I.index&&M.index++});const O=o.includes(I.index)?this.outputs.length-1+E:I.index,P={id:m.UUID.uuid(),version:m.UUID.uuid(),createdAt:(e==null?void 0:e.timestamp)||T().toISOString(),author:m.sessionAuthor,previousVersion:null,deleted:!1,type:n.OutputMap,declaration:I.toJSON(),defaultValue:null,writesValues:[],index:O,parent:this.toReference()},V=C(P,this.project);V.setParent(this,e),V.initChildren(e),e==null||e.add(V,A.Added),V.addSelfToProject(e)}),this.outputs.sort((I,E)=>I.index-E.index);const{updated:u,added:y,removed:c}=this.removeUnrecognizedOutputs(e);return t.push(...u),i.push(...y),s.push(...c),e==null||e.attemptAutoclose("sync-missing-fixed-outputs",this.id),{updated:p(t),added:p(i),removed:p(s),affected:p(l),self:this}}};f(Ze,"repository",{APICreate:async(e,...t)=>e,APIUpdate:async(e,...t)=>e,APIDelete:async(e,...t)=>e,APIClone:async(e,...t)=>{},APILoad:async(e,...t)=>null,APILoadVersion:async(e,t,...i)=>null}),f(Ze,"type",n.FunctionCall),f(Ze,"USER_MANAGED_PARENT_TYPES",[...dt,n.Project]),f(Ze,"PARENT_TYPES",[...Ze.USER_MANAGED_PARENT_TYPES]),f(Ze,"MUTABLE_BASE_PROPERTIES",[]),f(Ze,"INMUTABLE_BASE_PROPERTIES",["id","type","version","createdAt","author","previousVersion"]),f(Ze,"BASE_PROPERTIES",[...Ze.MUTABLE_BASE_PROPERTIES,...Ze.INMUTABLE_BASE_PROPERTIES]),f(Ze,"MUTABLE_META_PROPERTIES",["x","y"]),f(Ze,"INMUTABLE_META_PROPERTIES",[...Ze.INMUTABLE_BASE_PROPERTIES]),f(Ze,"META_PROPERTIES",[...Ze.MUTABLE_META_PROPERTIES,...Ze.INMUTABLE_META_PROPERTIES]),f(Ze,"MUTABLE_UPSTREAM_PROPERTIES",["calledBySuccess","calledByError","calledByEntry"]),f(Ze,"INMUTABLE_UPSTREAM_PROPERTIES",["declaration","parent"]),f(Ze,"UPSTREAM_PROPERTIES",[...Ze.MUTABLE_UPSTREAM_PROPERTIES,...Ze.INMUTABLE_UPSTREAM_PROPERTIES]),f(Ze,"MUTABLE_DOWNSTREAM_PROPERTIES",["successCalls","errorCalls","writesValues","inputs","outputs","error"]),f(Ze,"INMUTABLE_DOWNSTREAM_PROPERTIES",[]),f(Ze,"DOWNSTREAM_PROPERTIES",[...Ze.MUTABLE_DOWNSTREAM_PROPERTIES,...Ze.INMUTABLE_DOWNSTREAM_PROPERTIES]),f(Ze,"PROPERTIES",[...Ze.META_PROPERTIES,...Ze.UPSTREAM_PROPERTIES,...Ze.DOWNSTREAM_PROPERTIES]);let Yr=Ze;function kc(r){return r&&typeof r.then=="function"}class Zl{constructor(a){f(this,"order",[]);f(this,"flatRecord",{});f(this,"allBuiltInEntityIds",_i());f(this,"onGoingVisits",{});this.flatten(a),this.orderEntities()}flatten(a){const e=new Set(_i()),t=p(U(a,e,{ignoreBuiltInBaseEntities:!0})),i=new Set;for(const s of t)this.flatRecord[s.id]=s,i.add(s.id);this.order=Array.from(i)}moveEntityAfterDependencies(a){const{upstream:e}=Yl(a,this.flatRecord,{ignoreBuiltInBaseEntities:!0,allBuiltInEntityIds:this.allBuiltInEntityIds});for(const t of Object.keys(e)){const i=this.order.indexOf(t),s=this.order.indexOf(a.id);if(i>s)return this.order.splice(s,1),this.order.splice(i,0,a.id),!0}return!1}orderEntities(){let a=!1;for(let e=0;e<this.order.length;e++){const t=this.order[e],i=this.flatRecord[t];if(this.moveEntityAfterDependencies(i)){a=!0;break}}a&&this.orderEntities()}getUpstreamOngoingDependenciesVisits(a,e){const{upstream:t}=Yl(this.flatRecord[a],this.flatRecord,{ignoreBuiltInBaseEntities:!0,allBuiltInEntityIds:this.allBuiltInEntityIds}),i={};return Object.entries(this.onGoingVisits[e]||{}).forEach(([s,l])=>{Object.keys(t).includes(s)&&(i[s]=l)}),i}getDownstreamOngoingDependenciesVisits(a,e){const t=Object.keys(this.onGoingVisits[e]||{}),i=new Set(t.flatMap(l=>Object.keys(Yl(this.flatRecord[l],this.flatRecord,{ignoreBuiltInBaseEntities:!0,allBuiltInEntityIds:this.allBuiltInEntityIds}).downstream))),s={};return Array.from(i).forEach(l=>{l===a&&(s[l]=this.onGoingVisits[e][l])}),s}async settlePromises(a,e){const t=Object.values(a);t.length&&await Promise.all(t),Object.keys(a).forEach(i=>{delete this.onGoingVisits[e][i]})}visit(a){const e=this.order;for(const t of e)a(this.flatRecord[t],this.flatRecord);return this}reverseVisit(a){const e=this.order.slice().reverse();for(const t of e)a(this.flatRecord[t],this.flatRecord);return this}async visitAsync(a){const e=this.order,t=Math.random().toString(36).substring(7);this.onGoingVisits[t]={};for(const i of e){const s=this.getUpstreamOngoingDependenciesVisits(i,t);Object.keys(s).length&&await this.settlePromises(s,t);const l=a(this.flatRecord[i],this.flatRecord);kc(l)&&(this.onGoingVisits[t][i]=l)}return await this.settlePromises(this.onGoingVisits[t],t),this.onGoingVisits[t]={},this}async reverseVisitAsync(a){const e=this.order.slice().reverse(),t=Math.random().toString(36).substring(7);this.onGoingVisits[t]={};for(const i of e){const s=this.getDownstreamOngoingDependenciesVisits(i,t);Object.keys(s).length&&await this.settlePromises(s,t);const l=a(this.flatRecord[i],this.flatRecord);kc(l)&&(this.onGoingVisits[t][i]=l)}return await this.settlePromises(this.onGoingVisits[t],t),this.onGoingVisits[t]={},this}}function K1(r,a){switch(r.id){case k["built-in-base-entity"].BUILT_IN_PERSISTED_ENTITY_ENTITY.id:{const e=r.project.entities.filter(d=>!!d.implements.find(u=>u.id===k["built-in-base-entity"].BUILT_IN_RELATIONAL_DATABASE_ENTITY.id));if(e.find(d=>!!d.properties.find(u=>{var y;return u.implements&&u.implements.id===k["built-in-base-entity"].BUILT_IN_RELATIONAL_DATABASE_ENTITY.properties.default.id&&((y=u.getDefaultValue())==null?void 0:y.value)===!0}))){const u=e[0].properties.find(c=>c.implements&&c.implements.id===k["built-in-base-entity"].BUILT_IN_RELATIONAL_DATABASE_ENTITY.properties.default.id),y=u==null?void 0:u.defaultValue;if(y)y.value=!0;else if(u!=null&&u.dataType){const c={id:m.UUID.uuid(),version:m.UUID.uuid(),createdAt:(a==null?void 0:a.timestamp)||new Date().toISOString(),author:m.sessionAuthor,previousVersion:null,deleted:!1,type:n.LiteralValue,name:L.EntityTemplate,autogeneration:null,value:!0,valueAsTypeSingle:null,valueAsTypeList:null,parent:u==null?void 0:u.dataType.toReference()},I=C(c,r.project);return I.setParent(u==null?void 0:u.dataType,a),I.initChildren(a),a==null||a.add(I,A.Added),I.addSelfToProject(a),{newEntities:[I]}}return{newEntities:[]}}const i=r.project.get(k["built-in-base-entity"].BUILT_IN_RELATIONAL_DATABASE_ENTITY.id),s=ql(i,"Main database",a);if(s.errors.length>0)return{newEntities:[]};const l=s.properties.find(d=>d.implements&&d.implements.id===k["built-in-base-entity"].BUILT_IN_RELATIONAL_DATABASE_ENTITY.properties.default.id),o=l==null?void 0:l.defaultValue;if(o)o.value=!0;else if(l!=null&&l.dataType){const d={id:m.UUID.uuid(),version:m.UUID.uuid(),createdAt:(a==null?void 0:a.timestamp)||new Date().toISOString(),author:m.sessionAuthor,previousVersion:null,deleted:!1,type:n.LiteralValue,name:L.EntityTemplate,autogeneration:null,value:!0,valueAsTypeSingle:null,valueAsTypeList:null,parent:l==null?void 0:l.dataType.toReference()},u=C(d,r.project);u.setParent(l==null?void 0:l.dataType,a),u.initChildren(a),a==null||a.add(u,A.Added),u.addSelfToProject(a)}return{newEntities:[s]}}}return{newEntities:[]}}function X1(r,a){return r.implements.filter(t=>t.type===n.BuiltInBaseEntity).map(t=>{switch(t.id){case k["built-in-base-entity"].BUILT_IN_PERSISTED_ENTITY_ENTITY.id:{const s=r.project.entities.filter(d=>d.implements.find(u=>u.id===k["built-in-base-entity"].BUILT_IN_RELATIONAL_DATABASE_ENTITY.id)).find(d=>!!d.properties.find(u=>{var y;return u.implements&&u.implements.id===k["built-in-base-entity"].BUILT_IN_RELATIONAL_DATABASE_ENTITY.properties.default.id&&((y=u.getDefaultValue())==null?void 0:y.value)===!0}));if(!s)return{newEntities:[]};const l=r.properties.find(d=>d.implements&&d.implements.id===k["built-in-base-entity"].BUILT_IN_PERSISTED_ENTITY_ENTITY.properties.database.id),o=l==null?void 0:l.defaultValue;if(l&&(l!=null&&l.dataType)&&!o){const d={id:m.UUID.uuid(),version:m.UUID.uuid(),createdAt:(a==null?void 0:a.timestamp)||new Date().toISOString(),author:m.sessionAuthor,previousVersion:null,deleted:!1,type:n.LiteralValue,name:L.EntityTemplate,autogeneration:null,value:null,valueAsTypeSingle:s,valueAsTypeList:null,parent:l==null?void 0:l.dataType.toReference()},u=C(d,r.project);return u.setParent(l==null?void 0:l.dataType,a),u.initChildren(a),a==null||a.add(u,A.Added),u.addSelfToProject(a),{newEntities:[u]}}return{newEntities:[]}}}}),{newEntities:[]}}function ql(r,a,e,t){const i=t||m.UUID.uuid(),s=m.UUID.uuid(),l={id:i,version:s,createdAt:(e==null?void 0:e.timestamp)||new Date().toISOString(),author:m.sessionAuthor,previousVersion:null,deleted:!1,name:a,type:n.DefinitionEntity,description:null,static:r.static,abstract:!1,properties:[],methods:[],abstractMethods:[],extends:[],implements:[r],x:0,y:0,parent:r.project};K1(r,e);const o=C(l,r.project);return o.hydrateAncestors(),o.addImplementation(r),o.setParent(r.project,e),o.initChildren(e),e==null||e.add(o,A.Added),r.abstractMethods.map(d=>{const u=m.UUID.uuid(),y=d.implementAsFunctionDeclaration(e,o,u);return o.addMethod(y),e==null||e.add(y,A.Added),y}),o.afterAllChildrenInitialized(e),X1(o,e),o}function Sc(r,a){return a.entities.find(i=>{const s=i.properties,l=s.map(c=>c.name),o=r.every(c=>l.includes(c)),d=l.filter(c=>!r.includes(c)),u=s.every(c=>!d.includes(c.name)||!c.required);return o&&u})||null}function Q1(r,a,e,t=Dt.OrDataTypeGroup){const i=[],s=[],l=[],o=[],u={id:m.UUID.uuid(),version:m.UUID.uuid(),createdAt:(e==null?void 0:e.timestamp)||new Date().toISOString(),author:m.sessionAuthor,previousVersion:null,deleted:!1,type:n.DataType,options:null,implementationChooseOne:!1,entity:r.toJSON(),isList:!1,asType:null,andChildrenGroup:null,orChildrenGroup:null,like:!0,inferred:!1,parentRelationType:t,parent:a.toReference()},y=C(u,r.project);return s.push(y),y.setParent(a,e),y.initChildren(e),e==null||e.add(y,A.Added),y.setEntity(r),y.addSelfToProject(e),{updated:p(i),added:p(s),removed:p(l),affected:p(o),self:y}}function Zc(r,a,e,t,i){var u,y,c,I,E,O,P,V;const s=[],l=[],o=[],d=[];switch(typeof r){case"string":let M=!1;const G=new Date(r);if(G instanceof Date&&!isNaN(G.valueOf())&&(M=!0),M){const B=a.project.getBuiltIn(k[n.PrimitiveEntity][L.Date].id);a.setEntity(B);break}else{const B=a.project.getBuiltIn(k[n.PrimitiveEntity][L.String].id);a.setEntity(B);break}case"number":a.setEntity(a.project.getBuiltIn(k[n.PrimitiveEntity][L.Number].id));break;case"boolean":a.setEntity(a.project.getBuiltIn(k[n.PrimitiveEntity][L.Boolean].id));break;case"object":if(r===null){a.setEntity(a.project.getBuiltIn(k[n.PrimitiveEntity][L.Null].id));break}else if(Array.isArray(r))if(a.metaSync({isList:!0},t),r.length>0){const B=r.slice(0,5).filter(Z=>Z!==void 0);if(B.every(Z=>typeof Z==typeof B[0])&&(typeof B[0]!="object"||B[0]===null))switch(typeof B[0]){case"string":a.setEntity(a.project.getBuiltIn(k[n.PrimitiveEntity][L.String].id));break;case"number":a.setEntity(a.project.getBuiltIn(k[n.PrimitiveEntity][L.Number].id));break;case"boolean":a.setEntity(a.project.getBuiltIn(k[n.PrimitiveEntity][L.Boolean].id));break;case"object":a.setEntity(a.project.getBuiltIn(k[n.PrimitiveEntity][L.Null].id));break}else{const Z=[];let J=!1;B.forEach(fe=>{var Ie,X,le,Qt;if(Array.isArray(fe)&&(J=!0),typeof fe=="object"&&!Array.isArray(fe)&&fe!==null){const Xi=Jl(fe,a.project,{...e,id:m.UUID.uuid()},t,i);Xi.hasCreated&&Z.push((Ie=Xi.changeSet)==null?void 0:Ie.self),s.push(...(X=Xi.changeSet)==null?void 0:X.updated),l.push(...(le=Xi.changeSet)==null?void 0:le.added),o.push(...(Qt=Xi.changeSet)==null?void 0:Qt.removed)}});const te=p(Z);if(!te.length&&!J){B.forEach(fe=>{const Ie={id:m.UUID.uuid(),version:m.UUID.uuid(),createdAt:(t==null?void 0:t.timestamp)||new Date().toISOString(),author:m.sessionAuthor,previousVersion:null,deleted:!1,type:n.DataType,options:null,implementationChooseOne:!1,entity:null,isList:!1,asType:null,andChildrenGroup:null,orChildrenGroup:null,like:!0,inferred:!1,parentRelationType:Dt.OrDataTypeGroup,parent:a.toReference()},X=C(Ie,a.project);switch(X.setParent(a,t),X.initChildren(t),t==null||t.add(X,A.Added),X.addSelfToProject(t),typeof fe){case"string":X.setEntity(X.project.getBuiltIn(k[n.PrimitiveEntity][L.String].id));break;case"number":X.setEntity(X.project.getBuiltIn(k[n.PrimitiveEntity][L.Number].id));break;case"boolean":X.setEntity(X.project.getBuiltIn(k[n.PrimitiveEntity][L.Boolean].id));break;case"object":X.setEntity(X.project.getBuiltIn(k[n.PrimitiveEntity][L.Null].id));break}});break}else te.length===1&&!J?a.setEntity(te[0]):B.forEach(fe=>{if(typeof fe=="object"&&!Array.isArray(fe)&&fe!==null){const Ie=Sc(Object.keys(fe),a.project);if(Ie){const X=Q1(Ie||te[0],a,t,Dt.OrDataTypeGroup);s.push(...X.updated),l.push(...X.added),o.push(...X.removed)}}else{const Ie={id:m.UUID.uuid(),version:m.UUID.uuid(),createdAt:(t==null?void 0:t.timestamp)||new Date().toISOString(),author:m.sessionAuthor,previousVersion:null,deleted:!1,type:n.DataType,options:null,implementationChooseOne:!1,entity:null,isList:Array.isArray(fe),asType:null,andChildrenGroup:null,orChildrenGroup:null,like:!0,inferred:!1,parentRelationType:Dt.OrDataTypeGroup,parent:a.toReference()},X=C(Ie,a.project);X.setParent(a,t),X.initChildren(t),t==null||t.add(X,A.Added),X.addSelfToProject(t);const le=Zc(fe,X,{...e,id:m.UUID.uuid()},t,i);s.push(...le.updated),l.push(...le.added),o.push(...le.removed)}})}}else{const B=Jl(r[0],a.project,{...e},t,i);a.setEntity((u=B.changeSet)==null?void 0:u.self),s.push(...(y=B.changeSet)==null?void 0:y.updated),l.push(...(c=B.changeSet)==null?void 0:c.added),o.push(...(I=B.changeSet)==null?void 0:I.removed);break}else{const B=Jl(r,a.project,{...e},t,i);a.setEntity((E=B.changeSet)==null?void 0:E.self),s.push(...(O=B.changeSet)==null?void 0:O.updated),l.push(...(P=B.changeSet)==null?void 0:P.added),o.push(...(V=B.changeSet)==null?void 0:V.removed);break}}return{updated:p(s),added:p(l),removed:p(o),affected:p(d),self:a}}function Jl(r,a,e,t,i){const s=[],l=[],o=[],d=[],u=Object.keys(r),y=Sc(u,a);if(y)return{hasCreated:!1,changeSet:{updated:[],added:[],removed:[],affected:[],self:y}};const c=i?e.name+" of "+i.name:e.name,E={id:e.id||m.UUID.uuid(),version:m.UUID.uuid(),createdAt:(t==null?void 0:t.timestamp)||new Date().toISOString(),author:m.sessionAuthor,previousVersion:null,deleted:!1,name:c,type:n.DefinitionEntity,description:e.description||null,static:e.static||!1,abstract:e.abstract||!1,properties:[],methods:[],abstractMethods:[],extends:[],implements:[],x:0,y:0,parent:a.toReference()},O=C(E,a);return O.setParent(a,t),O.initChildren(t),t==null||t.add(O,A.Added),O.addSelfToProject(t),l.push(O),u.forEach((P,V)=>{const G={id:m.UUID.uuid(),version:m.UUID.uuid(),createdAt:(t==null?void 0:t.timestamp)||new Date().toISOString(),author:m.sessionAuthor,previousVersion:null,deleted:!1,name:P,type:n.Property,description:null,static:!1,abstract:!1,defaultValue:null,constant:!1,dataType:null,implements:null,index:V,hidden:!1,private:!1,required:!0,parent:O.toReference()},B=C(G,a);B.setParent(O,t),B.initChildren(t),t==null||t.add(B,A.Added),B.addSelfToProject(t),l.push(B);const $=r[P],J={id:m.UUID.uuid(),version:m.UUID.uuid(),createdAt:(t==null?void 0:t.timestamp)||new Date().toISOString(),author:m.sessionAuthor,previousVersion:null,deleted:!1,type:n.DataType,parentRelationType:null,options:null,implementationChooseOne:!1,entity:null,isList:!1,asType:null,andChildrenGroup:null,orChildrenGroup:null,like:!0,inferred:!1,parent:B.toReference()},te=C(J,a);te.setParent(B,t),te.initChildren(t),t==null||t.add(te,A.Added),te.addSelfToProject(t),l.push(te);const fe=Zc($,te,{...e,name:P,id:m.UUID.uuid()},t,i||O);s.push(...fe.updated),l.push(...fe.added),o.push(...fe.removed)}),{hasCreated:!0,changeSet:{updated:p(s),added:p(l),removed:p(o),affected:p(d),self:O}}}function vr(r,a,e,t){const i=[];return!r.length||!a.length?{errors:i,overlap:!1}:(r.length>a.length?r.forEach(s=>{const l=a.find(d=>d.name===s.name),o=a.find(d=>{var u,y;return!!s.implements&&((u=d.implements)==null?void 0:u.id)===((y=s.implements)==null?void 0:y.id)});if(l){const d=new it({id:s.id+"--"+l.id+"--"+t,message:`Entity of type ${s.type} named "${s.name}" with id "${s.id}" overrides a base ${l.type} ${l.name} with id "${l.id}" that has the same name`,issue:null,severity:D.Error,code:t,entity:s,firstRelationship:l});i.push(d)}if(o){const d=new it({id:s.id+"--"+o.id+"--"+e,message:`Entity of type ${s.type} named "${s.name}" with id "${s.id}" overrides a base ${o.type} ${o.name} with id "${o.id}" that implements the same base descriptor`,issue:null,severity:D.Error,code:e,entity:s,firstRelationship:o});i.push(d)}}):a.forEach(s=>{var d;const l=r.find(u=>u.name===s.name),o=r.find(u=>{var y,c;return!!u.implements&&((y=u.implements)==null?void 0:y.id)===((c=s.implements)==null?void 0:c.id)});if(l){const u=new it({id:l.id+"--"+s.id+"--"+t,message:`Entity of type ${l.type} named "${l.name}" with id "${l.id}" overrides a base entity ${s.name} with id "${s.id}" that has the same name`,issue:null,severity:D.Error,code:t,entity:l,firstRelationship:s});i.push(u)}if(o){const u=new it({id:o.id+"--"+s.id+"--"+e,message:`Entity of type ${o.type} named "${o.name}" with id "${o.id}" overrides a base entity ${s.name} with id "${s.id}" that implements the same base ${(d=o==null?void 0:o.implements)==null?void 0:d.type}`,issue:null,severity:D.Error,code:e,entity:o,firstRelationship:s});i.push(u)}}),{errors:i,overlap:!!i.length})}function sJ(r,a){return r.abstract||(r.properties.forEach(t=>{t.abstract||t.metaSync({abstract:!0},a)}),Object.values(r.detachedDependents).forEach(t=>{t.field===Cc.Entity&&t.entity.remove({ignoreUpstream:!1},a)}),r.metaSync({abstract:!0},a)),r}function aJ(r,a){return r.abstract&&(r.properties.forEach(t=>{t.abstract&&t.metaSync({abstract:!1},a)}),Object.values(r.detachedDependents).forEach(t=>{(t.field===rd.Implements||t.field===rd.Extends)&&t.entity.onDetachedDependencyRemoved(r,t.field,a)}),r.metaSync({abstract:!1},a)),r}function oJ(r,a){return r.static||(r.properties.forEach(t=>{t.static||t.metaSync({static:!0},a)}),r.metaSync({static:!0},a)),r}function lJ(r,a){return r.static&&(r.properties.forEach(t=>{t.static&&t.metaSync({static:!1},a)}),r.metaSync({static:!1},a)),r}function Ds(r,a){const e=Ln(r);if(e.length===0)return{list:[],last:null};let t=null;return{list:e.flatMap(s=>{if(s===a)return t=s,[s];const l=Ds(s,a);return l.last&&(t=l.last),[s,...l.list]}),last:t}}function qc(r){const a=r.calledBy;if(a.length===0)return r.project;const e=a.reduce((t,i)=>{const s=St(i,r.project);return!s||s.type===n.Project?t:t.type===n.Project||Ds(s,t).last?s:(Ds(t,s).last,t)},r.project);return e.type===n.FunctionDeclaration&&e.parent.type===n.Loop?e.parent:e}function K(r,a){var i,s;let e=qc(r);if(r.type===n.InternalCall)(i=r.parent)==null||i.setParent(e,a),(s=r.parent)==null||s.addSelfToProject(a);else if((r.type===n.ContinueStatement||r.type===n.BreakStatement)&&e.type!==n.Loop){r.remove({ignoreUpstream:!1},a);return}else if(r.type===n.ReturnStatement&&!dt.includes(e.type)){r.remove({ignoreUpstream:!1},a);return}else r.setParent(e,a),r.addSelfToProject(a);if(st.includes(r.type))return;qe(r).forEach(l=>{var d,u;const o=qc(l);if(l.type===n.InternalCall)(d=l.parent)==null||d.setParent(o,a),(u=l.parent)==null||u.addSelfToProject(a);else if((l.type===n.ContinueStatement||l.type===n.BreakStatement)&&o.type!==n.Loop){l.remove({ignoreUpstream:!1},a);return}else if(l.type===n.ReturnStatement&&!dt.includes(o.type)){l.remove({ignoreUpstream:!1},a);return}else l.setParent(o,a),l.addSelfToProject(a)})}function eP(r,a,e=new Set){const t=Hr(r),i=Hr(a),s=t.filter(d=>!i.includes(d)),l=t.filter(d=>i.includes(d)),o=s.reduce((d,u)=>e.has(u.id)?d:(e.add(u.id),p([...d,...eP(u,a,e)])),[]);return p([...l,...o])}function Ma(r,a){const e=Ds(r,a);return e.last===a&&e.list.length>0&&e.list[0]!==a}function dJ(r,a){return!!Ds(r,a).last}function uJ(r){if(lt.includes(r.type))return r;if([...Mi,n.VariableDeclaration].includes(r.type)){const a=r.parent;return lt.includes(a.type)?a:null}return null}function Jc(r,a){if(!r||!a)throw new Error("Both entities must be defined to find a common ancestor");if(r===a)return r;const e=r.parent;if(e){if(e===a)return a;if(e.type===n.Project)return null}else return null;const t=a.parent;if(t){if(t===r)return r;if(t.type===n.Project)return null}else return null;return Jc(e,t)}function wt(r){if(Sa.includes(r.type)){if(r.type===n.FunctionDeclaration){const a=r.parent;if(a.type===n.DefinitionEntity)return a;if(a.type===n.Loop)return a}return r}else{const a=r.parent;return a?wt(a):null}}function Wl(r,a){const e=Na(r,a);if(!e)return null;if(Sa.includes(e.type)){if(e.type===n.FunctionDeclaration){const t=Na(e.parent,a);if(t){if(t.type===n.DefinitionEntity)return t;if(t.type===n.Loop)return t}}return e}else{const t=e.parent?Na(e.parent,a):null;return t?Wl(t,a):null}}function tP(r){if(!r)return null;if(Mi.includes(r.type))return r;const a=r.parent;return a?tP(a):null}function iP(r){if(!r)return null;if(ot.includes(r.type))return r;const a=r.parent;return a?iP(a):null}function rP(r){if(!r)return null;if(Ni.includes(r.type))return r;const a=r.parent;return a?rP(a):null}function pJ(r){return r.type===n.VariableDeclaration?[r]:ot.includes(r.type)?[...r.inputs,...r.outputs||[]]:st.includes(r.type)?r.outputs:Gn.includes(r.type)||r.type===n.FunctionDeclaration?r.inputs:[]}function cJ(r){const a=Hr(r),e=[],t=[];lf.includes(r.type)&&e.push(...Wc(r));const i=a.filter(s=>{const l=e.includes(s);return l?!1:Mi.includes(s.type)&&!l?(t.push(s),!1):!0});return e.sort((s,l)=>Ma(l,s)?-1:0),t.sort((s,l)=>Ma(l,s)?-1:0),[...e,...t,...i]}function nP(r){return[...r].sort((a,e)=>Ma(e,a)?-1:0)}function fJ(r){const a=nP(r),e=[];return a.forEach(t=>{const i=e[e.length-1];if(i){const s=i[i.length-1];Ma(t,s)?e.push([t]):i.push(t)}else e.push([t])}),e}function Xt(r){const a=r.map(e=>wt(e));return p(a)}function Wc(r){return ot.includes(r.type)?[...Xt(r.successCalls),...Xt(r.errorCalls)]:lt.includes(r.type)?Xt(r.calls):[]}function yJ(r,a){return Wc(r).includes(a)}function zc(r){return r.writesValues||[]}function hJ(r,a){return zc(r).includes(a)}function sP(r){var a;return tt.includes((a=r==null?void 0:r.readsValue)==null?void 0:a.type)?r.readsValue:null}function mJ(r){return r.writesValues}function aP(r=[]){return r.map(sP).filter(a=>!!a)}function zl(r=[]){return r.map(a=>a.writesValues).flat().filter(a=>tt.includes(a.type))}function oP(r=[]){return r.map(a=>a.readsValue).filter(a=>!!a&&tt.includes(a.type))}function lP(r){return tt.includes(r.type)?r:null}function dP(r){return r.writesValues.map(lP).filter(a=>!!a)}function uP(r=[]){return r.reduce((a,e)=>e.type===n.OutputMap?[...a,...dP(e)]:a,[])}function qe(r){return ot.includes(r.type)?[...Hi(Xt(r.successCalls)),...Hi(Xt(r.errorCalls))]:lt.includes(r.type)?Hi(Xt(r.calls)):[]}function vJ(r){return ot.includes(r.type)?[...Hi(Xt(r.successCalls)),...Hi(Xt(r.errorCalls))]:lt.includes(r.type)?Hi(Xt(r.calls)):[]}function pP(r,a=new Set){return r.writesValues.filter(t=>tt.includes(t.type)&&!a.has(t.id)).reduce((t,i)=>a.has(i.id)?t:[...t,...Ye(i,a)],[])}function cP(r,a=new Set){var t;return(((t=r.readsValue)==null?void 0:t.writesValues)||[]).filter(i=>tt.includes(i.type)&&!a.has(i.id)).reduce((i,s)=>a.has(s.id)?i:[...i,...Ye(s,a)],[])}function Ye(r,a=new Set){if(a.has(r.id))return[];if(r.type===n.ReturnStatement)return oP(r.outputs).reduce((t,i)=>[...t,...Ye(i,a)],[]);if(r.type===n.FunctionCall||r.type===n.Operation||r.type===n.Condition)return[...qe(r).reduce((s,l)=>{const o=wt(l);return[...s,...Ye(o||l,a)]},[]),...aP(r.inputs),...uP(r.outputs)].reduce((s,l)=>[...s,...Ye(l,a)],[]);if(Gn.includes(r.type)){const e=zl(r.inputs),i=qe(r).reduce((s,l)=>{const o=wt(l);return[...s,...Ye(o||l,a)]},[]);return e.push(...i),e.reduce((s,l)=>[...s,...Ye(l,a)],[])}if(r.type===n.FunctionDeclaration){const e=[...zl(r.inputs)],i=qe(r).reduce((s,l)=>{const o=wt(l);return[...s,...Ye(o||l,a)]},[]);return e.push(...i),e.reduce((s,l)=>[...s,...Ye(l)],[])}if(tt.includes(r.type)){a.add(r.id);const t=qe(r).reduce((i,s)=>{const l=wt(s);return[...i,...Ye(l||s,a)]},[]);return[r,...t,...cP(r,a),...pP(r,a)]}return[]}function ai(r,a=new Set){return a.has(r.id)?[]:(a.add(r.id),[...Hr(r).reduce((i,s)=>[...i,s,...ai(s,a)],[])])}function Hi(r){return r.reduce((a,e)=>e.type===n.ReturnStatement||e.type===n.ContinueStatement||e.type===n.BreakStatement?[...a,e]:[...a,e,...qe(e)],[])}function fP(r){const a=r.entities||[],e=[...a,...r.functions||[],...r.events||[],...r.projects||[]],t=a.reduce((d,u)=>[...d,...u.properties],[]),i=a.reduce((d,u)=>[...d,...u.methods],[]),s=i.reduce((d,u)=>[...d,...zl(u.inputs),...Hi(Xt(u.calls)),...u.returnStatements],[]),l=r.functions.reduce((d,u)=>[...d,...Hi(Xt(u.calls)),...u.returnStatements],[]),o=r.events.reduce((d,u)=>[...d,...Hi(Xt(u.calls)),...u.returnStatements],[]);return[...e,...t,...i,...s,...l,...o]}function yP(r,a){return a.filter(t=>{if(!t)return!1;switch(t.type){case n.FunctionCall:return t.inputs.find(i=>i.id===r.id)!==void 0||t.outputs.find(i=>i.id===r.id)!==void 0;case n.Condition:return t.successCalls.find(i=>i.id===r.id)!==void 0||t.errorCalls.find(i=>i.id===r.id)!==void 0||t.inputs.find(i=>i.id===r.id)!==void 0;case n.Operation:return t.outputs.find(i=>i.id===r.id)!==void 0;case n.VariableDeclaration:return ot.includes(r.type)?kP(r).find(s=>{var l;return((l=s.readsValue)==null?void 0:l.id)===t.id})!==void 0:!1;case n.DefinitionEntity:return t.properties.find(i=>i.id===r.id)!==void 0||t.methods.find(i=>i.id===r.id)!==void 0;case n.FunctionDeclaration:return t.inputs.find(i=>i.id===r.id)!==void 0||(t.returnStatements.map(i=>i.outputs).flat()||[]).find(i=>i.id===r.id)!==void 0;default:return!1}})}function TJ(r){const a=fP(r.project);return yP(r,a)}function Na(r,a){return r?typeof r=="string"?a[r]:r.type===n.GenericReference?a[r.entityId]:a[r.id]?a[r.id]:null:null}function Yl(r,a={},e={ignoreBuiltInBaseEntities:!1,allBuiltInEntityIds:[]}){if(e.ignoreBuiltInBaseEntities&&(Ti.includes(r.type)||(e.allBuiltInEntityIds||[]).includes(r.id)))return{upstream:{},downstream:{}};const t=r,i=r,s=r,l=r,o=r,d=r,u=r,y=r,c=r,I=r,E=r,O=r,P=r,V=[...P.readsValue?[P.readsValue]:[],...P.declaration?[P.declaration]:[],...(O.calledByEntry||[]).flatMap($=>$),...(O.calledBySuccess||[]).flatMap($=>$),...(O.calledByError||[]).flatMap($=>$),...(s.extends||[]).flatMap($=>$),...I.parent?[I.parent]:[]];Array.isArray(s.implements)?V.push(...s.implements.flatMap($=>$)):c.implements&&V.push(c.implements),o.valueAsTypeList&&Array.isArray(o.valueAsTypeList)&&V.push(...o.valueAsTypeList.flatMap($=>$)),o.valueAsTypeSingle&&V.push(o.valueAsTypeSingle);const M=[...(t.inputs||[]).flatMap($=>$),...(E.inputsDeclarations||[]).flatMap($=>$),...(t.outputs||[]).flatMap($=>$),...(E.outputsDeclarations||[]).flatMap($=>$),...(P.internalCalls||[]).flatMap($=>$),...P.writesValues||[],...O.dataType?[O.dataType]:[],...d.body?[d.body]:[],...O.defaultValue?[O.defaultValue]:[],...(O.successCalls||[]).flatMap($=>$),...(O.errorCalls||[]).flatMap($=>$),...(s.properties||[]).flatMap($=>$),...(s.methods||[]).flatMap($=>$),...(s.abstractMethods||[]).flatMap($=>$),...u.error?[u.error]:[],...u.process?[u.process]:[],...I.throws?[I.throws]:[],...(i.andChildrenGroup||[]).flatMap($=>$),...(i.orChildrenGroup||[]).flatMap($=>$),...(y.entities||[]).flatMap($=>$),...(y.functions||[]).flatMap($=>$),...(y.functionCalls||[]).flatMap($=>$),...(y.events||[]).flatMap($=>$),...(y.conditions||[]).flatMap($=>$),...(y.operations||[]).flatMap($=>$),...(y.loops||[]).flatMap($=>$),...(y.variableDeclarations||[]).flatMap($=>$),...(y.variableInstances||[]).flatMap($=>$),...(y.searches||[]).flatMap($=>$),...(y.projects||[]).flatMap($=>$),...(l.calls||[]).flatMap($=>$)];r.type===n.DataType&&(i.entity&&a[_(i.entity)]&&a[_(i.entity)].parent&&_(a[_(i.entity)].parent)===r.id?M.push(i.entity):i.entity&&V.push(i.entity));const G={},B={};return V.forEach($=>{const Z=_($);if(Z&&e.ignoreBuiltInBaseEntities&&(Ti.includes($.type)||(e.allBuiltInEntityIds||[]).includes(Z)))return;const J=$.version;Z&&(G[Z]=J)}),M.forEach($=>{const Z=_($);if(Z&&e.ignoreBuiltInBaseEntities&&(Ti.includes($.type)||(e.allBuiltInEntityIds||[]).includes(Z)))return;const J=$.version;Z&&(B[Z]=J)}),{upstream:G,downstream:B}}function IJ(r,a){const e=[];if(Mi.includes(r.type)){hi(r).forEach(s=>{const l=Wl(s,a);l&&e.push(l)});const i=[...r.inputs||[],...r.outputs||[]].map(s=>{const l=Na(s,a);return l?ZP(l,a):null}).filter(s=>s!==null);e.push(...p(i))}if(tt.includes(r.type)){const t=Hl(r);t&&e.push(t)}return p(e)}function Ln(r){const a=[];if(Mi.includes(r.type)){r.calledBy.forEach(i=>{const s=wt(i);s&&a.push(s)});const t=[...r.inputs||[],...r.outputs||[]].map(i=>Hl(i)).filter(i=>i!==null);a.push(...p(t))}if(tt.includes(r.type)){const e=Hl(r);e&&a.push(e)}return p(a)}function hi(r){return[...r.calledByEntry||[],...r.calledByError||[],...r.calledBySuccess||[]].filter(a=>a.type!==n.GenericReference)}function hP(r,a=new Set,e={ignoreBuiltInBaseEntities:!1}){if(a.has(r.id))return[];if(a.add(r.id),r.type!==n.ActionDescriptor)throw new Error("Entity must be an action descriptor to be flattened");return[r,...r.inputs.flatMap(t=>U(t,a,e)),...r.outputs.flatMap(t=>U(t,a,e)),...r.error?U(r.error,a,e):[],...r.parent?U(r.parent,a,e):[]]}function mP(r,a=new Set,e={ignoreBuiltInBaseEntities:!1}){if(a.has(r.id))return[];if(a.add(r.id),r.type!==n.ArgumentDeclaration)throw new Error("Entity must be an argument declaration to be flattened");return[r,...r.defaultValue?U(r.defaultValue,a):[],...r.writesValues.flatMap(t=>U(t,a,e)),...r.dataType?U(r.dataType,a,e):[],...r.parent?U(r.parent,a,e):[]]}function vP(r,a=new Set,e={ignoreBuiltInBaseEntities:!1}){if(a.has(r.id))return[];if(a.add(r.id),r.type!==n.BreakStatement)throw new Error("Entity must be a break statement to be flattened");return[r,...r.outputs.flatMap(t=>U(t,a,e)),...r.throws?U(r.throws,a,e):[],...(hi(r)||[]).flatMap(t=>U(t,a,e)),...r.parent?U(r.parent,a,e):[]]}function TP(r,a=new Set,e={ignoreBuiltInBaseEntities:!1}){if(a.has(r.id))return[];if(a.add(r.id),r.type!==n.BuiltInBaseEntity)throw new Error("Entity must be a built-in base entity to be flattened");return[r,...(r.properties||[]).flatMap(t=>U(t,a,e)),...(r.methods||[]).flatMap(t=>U(t,a,e)),...(r.abstractMethods||[]).flatMap(t=>U(t,a,e)),...(r.extends||[]).flatMap(t=>U(t,a,e))]}function IP(r,a=new Set,e={ignoreBuiltInBaseEntities:!1}){if(a.has(r.id))return[];if(a.add(r.id),r.type!==n.Condition)throw new Error("Entity must be a condition to be flattened");return[r,...(r.inputs||[]).flatMap(t=>U(t,a,e)),...(r.successCalls||[]).flatMap(t=>U(t,a,e)),...(r.errorCalls||[]).flatMap(t=>U(t,a,e)),...(hi(r)||[]).flatMap(t=>U(t,a,e)),...r.parent?U(r.parent,a,e):[]]}function EP(r,a=new Set,e={ignoreBuiltInBaseEntities:!1}){if(a.has(r.id))return[];if(a.add(r.id),r.type!==n.ContinueStatement)throw new Error("Entity must be a continue statement to be flattened");return[r,...r.outputs.flatMap(t=>U(t,a,e)),...r.throws?U(r.throws,a,e):[],...(hi(r)||[]).flatMap(t=>U(t,a,e)),...r.parent?U(r.parent,a,e):[]]}function AP(r,a=new Set,e={ignoreBuiltInBaseEntities:!1}){if(a.has(r.id))return[];if(a.add(r.id),r.type!==n.DefinitionEntity)throw new Error("Entity must be a definition entity to be flattened");return[r,...(r.extends||[]).flatMap(t=>U(t,a,e)),...(r.implements||[]).flatMap(t=>U(t,a,e)),...(r.properties||[]).flatMap(t=>U(t,a,e)),...(r.methods||[]).flatMap(t=>U(t,a,e)),...(r.abstractMethods||[]).flatMap(t=>U(t,a,e)),...r.parent?U(r.parent,a,e):[]]}function bP(r,a=new Set,e={ignoreBuiltInBaseEntities:!1}){if(a.has(r.id))return[];if(a.add(r.id),r.type!==n.DataType)throw new Error("Entity must be a data type to be flattened");return[r,...(r.andChildrenGroup||[]).flatMap(t=>U(t,a,e)),...(r.orChildrenGroup||[]).flatMap(t=>U(t,a,e)),...r.entity?U(r.entity,a,e):[],...r.parent?U(r.parent,a,e):[]]}function RP(r,a=new Set,e={ignoreBuiltInBaseEntities:!1}){if(a.has(r.id))return[];if(a.add(r.id),r.type!==n.FunctionCall)throw new Error("Entity must be a function call to be flattened");return[r,...(r.inputs||[]).flatMap(t=>U(t,a,e)),...(r.outputs||[]).flatMap(t=>U(t,a,e)),...r.error?U(r.error,a,e):[],...r.process?U(r.process,a,e):[],...(hi(r)||[]).flatMap(t=>U(t,a,e)),...(r.successCalls||[]).flatMap(t=>U(t,a,e)),...(r.errorCalls||[]).flatMap(t=>U(t,a,e)),...r.parent?U(r.parent,a,e):[]]}function DP(r,a=new Set,e={ignoreBuiltInBaseEntities:!1}){if(a.has(r.id))return[];if(a.add(r.id),r.type!==n.FunctionDeclaration)throw new Error("Entity must be a function declaration to be flattened");return[r,...(r.inputs||[]).flatMap(t=>U(t,a,e)),...(r.calls||[]).flatMap(t=>U(t,a,e)),...r.implements?U(r.implements,a,e):[],...r.parent?U(r.parent,a,e):[]]}function OP(r,a=new Set,e={ignoreBuiltInBaseEntities:!1}){if(a.has(r.id))return[];if(a.add(r.id),r.type!==n.GlobalEvent)throw new Error("Entity must be a global event to be flattened");return[r,...(r.inputs||[]).flatMap(t=>U(t,a,e)),...(r.calls||[]).flatMap(t=>U(t,a,e)),...r.implements?U(r.implements,a,e):[],...r.parent?U(r.parent,a,e):[]]}function PP(r,a=new Set,e={ignoreBuiltInBaseEntities:!1}){if(a.has(r.id))return[];if(a.add(r.id),r.type!==n.InputMap)throw new Error("Entity must be an input map to be flattened");return[r,...r.readsValue?U(r.readsValue,a,e):[],...r.declaration?U(r.declaration,a,e):[],...r.defaultValue?U(r.defaultValue,a,e):[],...r.parent?U(r.parent,a,e):[]]}function wP(r,a=new Set,e={ignoreBuiltInBaseEntities:!1}){if(a.has(r.id))return[];if(a.add(r.id),r.type!==n.InstalledProject)throw new Error("Entity must be an installed project to be flattened");return[r,...(r.functions||[]).flatMap(t=>U(t,a,e)),...(r.events||[]).flatMap(t=>U(t,a,e)),...r.parent?U(r.parent,a,e):[]]}function CP(r,a=new Set,e={ignoreBuiltInBaseEntities:!1}){if(a.has(r.id))return[];if(a.add(r.id),r.type!==n.InternalCall)throw new Error("Entity must be an internal call to be flattened");return[r,...(r.successCalls||[]).flatMap(t=>U(t,a,e)),...(r.errorCalls||[]).flatMap(t=>U(t,a,e)),...(r.inputs||[]).flatMap(t=>U(t,a,e)),...(r.outputs||[]).flatMap(t=>U(t,a,e)),...(hi(r)||[]).flatMap(t=>U(t,a,e)),...r.error?U(r.error,a,e):[],...r.process?U(r.process,a,e):[],...r.parent?U(r.parent,a,e):[]]}function VP(r,a=new Set,e={ignoreBuiltInBaseEntities:!1}){if(a.has(r.id))return[];if(a.add(r.id),r.type!==n.LiteralValue)throw new Error("Entity must be a literal value to be flattened");return[r,...r.valueAsTypeSingle?U(r.valueAsTypeSingle,a,e):[],...r.valueAsTypeList&&Array.isArray(r.valueAsTypeList)?r.valueAsTypeList.flatMap(t=>U(t,a,e)):[],...r.parent?U(r.parent,a,e):[]]}function BP(r,a=new Set,e={ignoreBuiltInBaseEntities:!1}){if(a.has(r.id))return[];if(a.add(r.id),r.type!==n.Loop)throw new Error("Entity must be a loop to be flattened");return[r,...(r.inputs||[]).flatMap(t=>U(t,a,e)),...(r.outputs||[]).flatMap(t=>U(t,a,e)),...(r.successCalls||[]).flatMap(t=>U(t,a,e)),...(r.errorCalls||[]).flatMap(t=>U(t,a,e)),...r.error?U(r.error,a,e):[],...r.process?U(r.process,a,e):[],...r.body?U(r.body,a,e):[],...(hi(r)||[]).flatMap(t=>U(t,a,e)),...r.parent?U(r.parent,a,e):[]]}function _P(r,a=new Set,e={ignoreBuiltInBaseEntities:!1}){if(a.has(r.id))return[];if(a.add(r.id),r.type!==n.Operation)throw new Error("Entity must be an operation to be flattened");return[r,...(r.successCalls||[]).flatMap(t=>U(t,a,e)),...(r.errorCalls||[]).flatMap(t=>U(t,a,e)),...(r.inputs||[]).flatMap(t=>U(t,a,e)),...(r.outputs||[]).flatMap(t=>U(t,a,e)),...r.error?U(r.error,a,e):[],...r.process?U(r.process,a,e):[],...(hi(r)||[]).flatMap(t=>U(t,a,e)),...r.parent?U(r.parent,a,e):[]]}function MP(r,a=new Set,e={ignoreBuiltInBaseEntities:!1}){if(a.has(r.id))return[];if(a.add(r.id),r.type!==n.OutputMap)throw new Error("Entity must be an output map to be flattened");return[r,...(r.writesValues||[]).flatMap(t=>U(t,a,e)),...r.declaration?U(r.declaration,a,e):[],...r.defaultValue?U(r.defaultValue,a,e):[],...r.parent?U(r.parent,a,e):[]]}function NP(r,a=new Set,e={ignoreBuiltInBaseEntities:!1}){if(a.has(r.id))return[];if(a.add(r.id),r.type!==n.PrimitiveEntity)throw new Error("Entity must be a primitive entity to be flattened");return[r,...(r.properties||[]).flatMap(t=>U(t,a,e)),...(r.methods||[]).flatMap(t=>U(t,a,e)),...(r.abstractMethods||[]).flatMap(t=>U(t,a,e))]}function LP(r,a=new Set,e={ignoreBuiltInBaseEntities:!1}){if(a.has(r.id))return[];if(a.add(r.id),r.type!==n.Project)throw new Error("Entity must be a project to be flattened");return[r,...(r.entities||[]).flatMap(t=>U(t,a,e)),...(r.functions||[]).flatMap(t=>U(t,a,e)),...(r.events||[]).flatMap(t=>U(t,a,e)),...(r.projects||[]).flatMap(t=>U(t,a,e)),...(r.variableDeclarations||[]).flatMap(t=>U(t,a,e)),...(r.variableInstances||[]).flatMap(t=>U(t,a,e)),...(r.operations||[]).flatMap(t=>U(t,a,e)),...(r.conditions||[]).flatMap(t=>U(t,a,e)),...(r.functionCalls||[]).flatMap(t=>U(t,a,e)),...(r.projects||[]).flatMap(t=>U(t,a,e)),...(r.loops||[]).flatMap(t=>U(t,a,e)),...(r.searches||[]).flatMap(t=>U(t,a,e))]}function UP(r,a=new Set,e={ignoreBuiltInBaseEntities:!1}){if(a.has(r.id))return[];if(a.add(r.id),r.type!==n.Property)throw new Error("Entity must be a property to be flattened");return[r,...r.defaultValue?U(r.defaultValue,a,e):[],...r.dataType?U(r.dataType,a,e):[],...r.parent?U(r.parent,a,e):[]]}function gP(r,a=new Set,e={ignoreBuiltInBaseEntities:!1}){if(a.has(r.id))return[];if(a.add(r.id),r.type!==n.ReturnDeclaration)throw new Error("Entity must be a return declaration to be flattened");return[r,...r.readsValue?U(r.readsValue,a,e):[],...r.defaultValue?U(r.defaultValue,a,e):[],...r.dataType?U(r.dataType,a,e):[],...r.parent?U(r.parent,a,e):[]]}function jP(r,a=new Set,e={ignoreBuiltInBaseEntities:!1}){if(a.has(r.id))return[];if(a.add(r.id),r.type!==n.ReturnStatement)throw new Error("Entity must be a return statement to be flattened");return[r,...(r.outputs||[]).flatMap(t=>U(t,a,e)),...r.throws?U(r.throws,a,e):[],...(hi(r)||[]).flatMap(t=>U(t,a,e)),...r.parent?U(r.parent,a,e):[]]}function $P(r,a=new Set,e={ignoreBuiltInBaseEntities:!1}){if(a.has(r.id))return[];if(a.add(r.id),r.type!==n.Search)throw new Error("Entity must be a search to be flattened");return[r,...(r.successCalls||[]).flatMap(t=>U(t,a,e)),...(r.errorCalls||[]).flatMap(t=>U(t,a,e)),...(r.inputsDeclarations||[]).flatMap(t=>U(t,a,e)),...(r.inputs||[]).flatMap(t=>U(t,a,e)),...(r.outputsDeclarations||[]).flatMap(t=>U(t,a,e)),...(r.outputs||[]).flatMap(t=>U(t,a,e)),...r.error?U(r.error,a,e):[],...(hi(r)||[]).flatMap(t=>U(t,a,e)),...r.parent?U(r.parent,a,e):[]]}function GP(r,a=new Set,e={ignoreBuiltInBaseEntities:!1}){if(a.has(r.id))return[];if(a.add(r.id),r.type!==n.ValueDescriptor)throw new Error("Entity must be a value descriptor to be flattened");return[r,...r.defaultValue?U(r.defaultValue,a,e):[],...r.dataType?U(r.dataType,a,e):[],...r.parent?U(r.parent,a,e):[]]}function FP(r,a=new Set,e={ignoreBuiltInBaseEntities:!1}){if(a.has(r.id))return[];if(a.add(r.id),r.type!==n.VariableDeclaration)throw new Error("Entity must be a variable declaration to be flattened");return[r,...(r.successCalls||[]).flatMap(t=>U(t,a,e)),...(r.errorCalls||[]).flatMap(t=>U(t,a,e)),...(r.inputs||[]).flatMap(t=>U(t,a,e)),...(r.outputs||[]).flatMap(t=>U(t,a,e)),...(r.internalCalls||[]).flatMap(t=>U(t,a,e)),...(r.writesValues||[]).flatMap(t=>U(t,a,e)),...r.readsValue?U(r.readsValue,a,e):[],...r.defaultValue?U(r.defaultValue,a,e):[],...(hi(r)||[]).flatMap(t=>U(t,a,e)),...r.dataType?U(r.dataType,a,e):[],...r.parent?U(r.parent,a,e):[]]}function xP(r,a=new Set,e={ignoreBuiltInBaseEntities:!1}){if(a.has(r.id))return[];if(a.add(r.id),r.type!==n.VariableInstance)throw new Error("Entity must be a variable instance to be flattened");return[r,...(r.successCalls||[]).flatMap(t=>U(t,a,e)),...(r.errorCalls||[]).flatMap(t=>U(t,a,e)),...(r.inputs||[]).flatMap(t=>U(t,a,e)),...(r.outputs||[]).flatMap(t=>U(t,a,e)),...(r.internalCalls||[]).flatMap(t=>U(t,a,e)),...(r.writesValues||[]).flatMap(t=>U(t,a,e)),...r.readsValue?U(r.readsValue,a,e):[],...r.defaultValue?U(r.defaultValue,a,e):[],...(hi(r)||[]).flatMap(t=>U(t,a,e)),...r.declaration?U(r.declaration,a,e):[],...r.parent?U(r.parent,a,e):[]]}function _i(){const r=new Set,a=oE.flatMap(e=>U(e,r)).map(e=>e.id);if(!a.includes("http-request-error-return-delaration-id"))throw new Error("Built-in base entities must be included in the list");return a}function U(r,a=new Set,e={ignoreBuiltInBaseEntities:!1}){if(!r)throw new Error("Entity must be defined to be flattened");if(r.type===n.GenericReference)return[];if(e.ignoreBuiltInBaseEntities&&(Ti.includes(r.type)||_i().includes(r.id)))return[];if(a.has(r.id))return[];switch(r.type){case n.FunctionCall:return RP(r,a,e);case n.Operation:return _P(r,a,e);case n.Condition:return IP(r,a,e);case n.Loop:return BP(r,a,e);case n.Search:return $P(r,a,e);case n.GlobalEvent:return OP(r,a,e);case n.ReturnStatement:return jP(r,a,e);case n.ContinueStatement:return EP(r,a,e);case n.BreakStatement:return vP(r,a,e);case n.VariableDeclaration:return FP(r,a,e);case n.DefinitionEntity:return AP(r,a,e);case n.FunctionDeclaration:return DP(r,a,e);case n.Project:return LP(r,a,e);case n.ActionDescriptor:return hP(r,a,e);case n.ArgumentDeclaration:return mP(r,a,e);case n.ReturnDeclaration:return gP(r,a,e);case n.ValueDescriptor:return GP(r,a,e);case n.InputMap:return PP(r,a,e);case n.OutputMap:return MP(r,a,e);case n.DataType:return bP(r,a,e);case n.InstalledProject:return wP(r,a,e);case n.InternalCall:return CP(r,a,e);case n.LiteralValue:return VP(r,a,e);case n.Property:return UP(r,a,e);case n.VariableInstance:return xP(r,a,e);case n.BuiltInBaseEntity:return e.ignoreBuiltInBaseEntities?[]:TP(r,a,e);case n.PrimitiveEntity:return e.ignoreBuiltInBaseEntities?[]:NP(r,a,e)}return[]}function Yc(r){return r.type===n.FunctionCall||r.type===n.InternalCall||[n.Operation,n.Condition,n.Loop].includes(r.type)?r.declaration.inputs:r.type===n.FunctionDeclaration||Gn.includes(r.type)?r.inputs:r.type===n.Search?r.inputsDeclarations:[]}function EJ(r,a){return a.type===n.Condition?a.inputs.find(e=>e.declaration.id===r.id):a.type===n.FunctionCall||a.type===n.Operation?a.inputs.find(e=>e.declaration.id===r.id):null}function kP(r){return ot.includes(r.type)?r.inputs:[]}function SP(r){var a;return r.type===n.FunctionCall?((a=r.declaration.returnStatements[0])==null?void 0:a.outputs)||[]:[n.Operation,n.Condition,n.Loop].includes(r.type)?r.declaration.outputs:r.type===n.Search?r.outputsDeclarations:st.includes(r.type)?r.outputs:[]}function AJ(r,a){return a.type===n.Condition?null:a.type===n.FunctionCall||a.type===n.Operation?a.outputs.find(e=>e.declaration.id===r.id):null}function bJ(r){return r.type===n.Condition?[]:ot.includes(r.type)?r.outputs:[]}function Hl(r){const a=r.readsValue;return a?wt(a):null}function ZP(r,a){const e=r.readsValue;return e?Wl(e,a):null}function qP(r){const a=r.internalCalls||[];return p(Xt(p(a.flatMap(e=>[...e.successCalls,...e.errorCalls]))))}function Os(r){const a=zc(r),e=[];return a.forEach(t=>{if(tt.includes(t.type))e.push(t);else if(Ir.includes(t.type)){const i=t.parent;e.push(i)}}),e}function p(r){const a=new Set;return r.filter(e=>!e||a.has(e.id)?!1:(a.add(e.id),!0))}function Hr(r,a=!1){const e=[];if(r.type===n.Project&&e.push(...(r==null?void 0:r.entities)||[],...(r==null?void 0:r.functions)||[],...(r==null?void 0:r.variableDeclarations)||[],...(r==null?void 0:r.variableInstances)||[],...(r==null?void 0:r.searches)||[],...(r==null?void 0:r.loops)||[],...(r==null?void 0:r.operations)||[],...(r==null?void 0:r.conditions)||[],...(r==null?void 0:r.functionCalls)||[],...(r==null?void 0:r.events)||[],...(r==null?void 0:r.projects)||[]),dt.includes(r.type)&&e.push(...(r==null?void 0:r.detachedChildren)||[]),r.type===n.DefinitionEntity){const t=[...r.suggestedMethods,...r.methods].flatMap(i=>i.collapsed&&a?[]:Hr(i));e.push(...t)}if(r.type===n.Condition){const t=r.successCalls.map(s=>wt(s)),i=r.errorCalls.map(s=>wt(s));e.push(...t,...i)}if(Gn.includes(r.type)){if(r.collapsed&&a)return[];const t=r.inputs.map(s=>Os(s)).flat(),i=r.calls.map(s=>wt(s));e.push(...p(t),...i)}if(ot.includes(r.type)&&r.type!==n.Condition&&r.type!==n.Loop){const t=r==null?void 0:r.outputs.map(l=>Os(l)).flat(),i=r.successCalls.map(l=>wt(l)),s=r.errorCalls.map(l=>wt(l));e.push(...p(t),...i,...s)}if(tt.includes(r.type)){const t=Os(r),i=qP(r);e.push(...t,...i)}if(r.type===n.Loop){const t=r.outputs.map(l=>Os(l)).flat();if(r.body){const l=Hr(r.body,a);e.push(...l)}const i=r.errorCalls.map(l=>wt(l)),s=r.successCalls.map(l=>wt(l));e.push(...p(t),...s,...i)}if(r.type===n.FunctionDeclaration){if(r.collapsed&&a)return[];const t=r.inputs.map(s=>Os(s)).flat(),i=r.calls.map(s=>wt(s));e.push(...p(t),...i)}return p(e)}function JP(r,a=!1){const e=Hr(r,a),t=[...e,...e.reduce((i,s)=>[...i,...JP(s,a)],[])];return p(t)}function WP(r){const a=Ln(r),e=[...a,...a.reduce((t,i)=>[...t,...WP(i)],[])];return p(e)}function Kl(r){return r.implements.reduce((a,e)=>e.type===n.DefinitionEntity?[...a,n.DefinitionEntity,...Kl(e),...Xl(e)]:[...a,e.name],[])}function Xl(r){return r.extends.reduce((a,e)=>e.type===n.DefinitionEntity?[...a,n.DefinitionEntity,...Xl(e),...Kl(e)]:[...a,e.name],[])}function Hc(r){return r.extends.reduce((a,e)=>e.type===n.DefinitionEntity?[...a,e,...Hc(e),...Kc(e)]:[...a,e],[])}function Kc(r){return r.implements.reduce((a,e)=>e.type===n.DefinitionEntity?[...a,e,...Kc(e),...Hc(e)]:[...a,e],[])}function Xc(r){return[...Xl(r),...Kl(r)].filter((e,t,i)=>i.indexOf(e)===t)}function zP(r){return r.implements.length===0&&r.extends.length===0?null:r.implements.find(t=>t.type===n.BuiltInBaseEntity&&t.name===z.PERSISTED_ENTITY)?r:[...r.implements,...r.extends].reduce((t,i)=>{if(i.type===n.DefinitionEntity){const s=zP(i);if(s)return s}return t},null)}function RJ(r){const a=r.extends.find(e=>e.type===n.BuiltInBaseEntity);return a&&a.type===n.BuiltInBaseEntity?a:null}function DJ(r){const a=r.implements.find(e=>e.type===n.BuiltInBaseEntity);return a&&a.type===n.BuiltInBaseEntity?a:null}function Qc(r){const a=r.extends.find(e=>e.type===n.DefinitionEntity);return a&&a.type===n.DefinitionEntity?a:null}function kt(r){if(r.type===n.BuiltInBaseEntity)return[r];const a=[...r.implements,...r.extends].reduce((e,t)=>t.type===n.BuiltInBaseEntity?[...e,t]:t.type===n.DefinitionEntity?[...e,...kt(t)]:e,[]);return p(a)}function Ql(r){return r.type===n.PrimitiveEntity?!0:r.type===n.BuiltInBaseEntity?r.interactive:!kt(r).find(t=>!t.interactive)}function OJ(r){return r.parent===r.project&&r.project.variableDeclarations.includes(r)}function ef(r){return r.parent!==r.project?!1:n.VariableDeclaration===r.type?r.project.variableDeclarations.includes(r):n.VariableInstance===r.type?r.project.variableInstances.includes(r):n.FunctionCall===r.type?r.project.functionCalls.includes(r):n.Condition===r.type?r.project.conditions.includes(r):n.Operation===r.type?r.project.operations.includes(r):n.Loop===r.type?r.project.loops.includes(r):n.Search===r.type?r.project.searches.includes(r):!1}function YP(r){if([...lt,n.DefinitionEntity,n.InstalledProject,n.Project].includes(r.type)||ef(r))return!1;const a=Ln(r);return a.length===0?!0:a.some(e=>YP(e))}function tf(r){return[...lt,n.DefinitionEntity,n.InstalledProject,n.Project].includes(r.type)||ef(r)?!1:Ln(r).length===0}function HP(r,a=0){if(tf(r)){const e=Ln(r);return e.length===0?r:e.map(i=>HP(i,a+1)).reduce((i,s)=>i?s&&s.x<i.x?s:i:s,null)}return null}function KP(r){const a=[];if(tf(r))a.push(r);else return[];return Ln(r).forEach(t=>{a.push(...KP(t))}),a}function XP(r){return r.type===n.FunctionDeclaration&&r.parent!==r.project&&!![n.DefinitionEntity,n.Loop,n.InstalledProject].includes(r.parent.type)}function PJ(r,a){const e=new Map;return r.forEach(t=>{e.set(t.id,t)}),a.forEach(t=>{e.set(t.id,t)}),Array.from(e.values())}function La(r){switch(r){case n.DefinitionEntity:return Xr;case n.FunctionDeclaration:return gr;case n.VariableDeclaration:return xr;case n.VariableInstance:return Fr;case n.FunctionCall:return Yr;case n.Operation:return jr;case n.Condition:return Gr;case n.ReturnStatement:return Ur;case n.Loop:return $r;case n.Search:return kr;case n.InputMap:return Wi;case n.OutputMap:return zi;case n.ArgumentDeclaration:return Zr;case n.ReturnDeclaration:return si;case n.Property:return Lr;case n.InstalledProject:return Sr;case n.Project:return m;case n.BuiltInBaseEntity:return Ki;default:return null}}function St(r,a){if(dt.includes(r.type))return r;if(Ti.includes(r.type))return null;const e=r.parent;if(!e)return null;if(e.type===n.GenericReference){const t=_(e);if(!t)return null;const i=a.get(t);return i?St(i,a):null}else return e===a?a:St(e,a)}function rf(r,a){if(Ti.includes(r.type)||a.getBuiltIn(r.id))return null;const e=mi(r.parent,a);return e?e===a?dt.includes(r.type)?r:null:e.type===n.DefinitionEntity?r:rf(e,a):null}function ed(r,a,e){if(r===a||a===e||r===e)return!1;const t=St(a.parent,e);return t===r?!0:ed(t,a,e)}var td=(r=>(r.SameBothLocal="same-both-local",r.AInB="a-in-b",r.BInA="b-in-a",r.ParallelInCommonParent="parallel-in-common-parent",r.ParallelInProject="parallel-in-project",r.AIsGlobalBIsNot="a-is-global-b-is-not",r.BIsGlobalAIsNot="b-is-global-a-is-not",r.SameBothGlobal="same-both-global",r))(td||{});function Ua(r,a,e){const t=St(r,e),i=St(a,e);if(!t)throw new Error("Could not find scope owner for the entity: "+r.id);if(!i)throw new Error("Could not find scope owner for the entity: "+a.id);if(t===i&&t.type!==n.Project)return{compatible:!0,type:"same-both-local",commonAncestorScope:t};if(t===i&&t.type===n.Project)return{compatible:!0,type:"same-both-global",commonAncestorScope:t};if(t.type===n.Project&&i.type!==n.Project)return{compatible:!1,type:"a-is-global-b-is-not",commonAncestorScope:t};if(t.type!==n.Project&&i.type===n.Project)return{compatible:!1,type:"b-is-global-a-is-not",commonAncestorScope:i};if(ed(t,i,e))return{compatible:!0,type:"b-in-a",commonAncestorScope:t};if(ed(i,t,e))return{compatible:!0,type:"a-in-b",commonAncestorScope:i};const o=Jc(t,i);return o===e?{compatible:!1,type:"parallel-in-project",commonAncestorScope:o}:o?{compatible:!1,type:"parallel-in-common-parent",commonAncestorScope:St(o,e)}:{compatible:!1,type:"parallel-in-project",commonAncestorScope:e}}function QP(r,a,e){const t=Ua(r,a,e);if(!t.compatible||t.type!=="same-both-local")return null;if(r===a)return r;let i=St(r.parent,e);if(i){if(i===a)return a;if(i.type===n.Project)return r}else return r;for(;i;){if(i){if(i===a)return a;if(i.type===n.Project)return r}else return r;i=St(i.parent,e)}let s=St(a.parent,e);if(s){if(s===r)return r;if(s.type===n.Project)return a}else return a;for(;s;){if(s){if(s===r)return r;if(s.type===n.Project)return a}else return a;s=St(s.parent,e)}return null}function ew(r){return r.length===0?null:r.length===1?r[0]:r.reduce((e,t)=>{const i=QP(e,t,t.project);return!i||i===t?e:t},r[0])}function mi(r,a){if(!r)return null;let e;return typeof r=="string"?e=r:r.type===n.GenericReference?e=_(r):e=r.id,e===a.id?a:a.get(e)}function Kr(r){if(!r)return null;if(Ti.includes(r.type))return r;if(r.type===n.Project)return null;if(r.project.getBuiltIn(r.id))return r;const a=r.parent;return!a||a.type===n.Project?null:Kr(a)}function ga(r){const a=[];function e(s,l){return a.some(o=>o.blockedByCaller===s&&o.blockedByCalling===l)}function t(s,l){e(s,l)||a.push({blockedByCaller:s,blockedByCalling:l})}const i=rf(r,r.project);return r.calledBySuccess.forEach(s=>{[...s.successCalls||[]].forEach(d=>{st.includes(d.type)&&d!==r&&(qe(r).find(c=>c===d)||t(s,d))});let o;if(ot.includes(s.type)&&(o=s),o){const d=ga(o);d.reachable||qe(r).find(c=>c===s)||d.blocks.forEach(c=>{t(s,c.blockedByCalling)})}}),r.calledByError.forEach(s=>{[...s.errorCalls||[]].forEach(d=>{st.includes(d.type)&&d!==r&&(qe(r).find(c=>c===d)||t(s,d))});let o;if(ot.includes(s.type)&&(o=s),o){const d=ga(o);d.reachable||qe(r).find(c=>c===s)||d.blocks.forEach(c=>{t(s,c.blockedByCalling)})}}),r.calledByEntry.forEach(s=>{if([...s.calls||[]].forEach(d=>{st.includes(d.type)&&d!==r&&(qe(r).find(c=>c===d)||t(s,d))}),s===i)return;let o;if(s.type===n.FunctionDeclaration){const d=wt(s);if(d.type===n.DefinitionEntity)return;d.type===n.Loop&&(o=d)}if(o){const d=ga(o);d.reachable||d.blocks.forEach(u=>{t(s,u.blockedByCalling)})}}),{reachable:a.length===0,entryPoint:i,blocks:a}}function wJ(r){return Sa.includes(r.type)?r.type===n.FunctionDeclaration?!XP(r):!0:!1}function CJ(r){if(n.ActionDescriptor===r.type){if(r.project.operationDeclarations.find(s=>s.id===r.id))return n.Operation;if(r.project.globalEventActionDescriptors.find(s=>s.id===r.id))return n.GlobalEvent;if(r.project.loopDeclarations.find(s=>s.id===r.id))return n.Loop;if(r.project.conditionDeclarations.find(s=>s.id===r.id))return n.Condition}return r.type}function Ps(r,a){if(r.type!==n.DefinitionEntity||r.abstract)return!1;const e=Qc(r)||r;return!!Xc(e).includes(a)}function VJ(r){const a=[];return r.entities.forEach(e=>{if(Ps(e,z.PERSISTED_ENTITY)){a.push(e);return}}),p(a)}function BJ(r){const a=[];return r.entities.forEach(e=>{if(Ps(e,z.RELATIONAL_DATABASE)){a.push(e);return}}),p(a)}function _J(r){return r.type!==n.DefinitionEntity||r.abstract||!Ps(r,z.PERSISTED_ENTITY)?null:(r==null?void 0:r.properties.find(e=>{var t;return((t=e.implements)==null?void 0:t.id)===k[n.BuiltInBaseEntity][z.PERSISTED_ENTITY].properties.primaryKey.id&&!e.abstract}))||null}function MJ(r){if(r.type!==n.DefinitionEntity)return[];if(r.abstract)return[];if(!Ps(r,z.PERSISTED_ENTITY))return[];const a=[],e=r.properties.filter(t=>{var i;return((i=t.implements)==null?void 0:i.id)!==k[n.BuiltInBaseEntity][z.PERSISTED_ENTITY].properties.database.id&&!t.abstract});return a.push(...e),a}function NJ(r){var e;if(!r||r.type!==n.DefinitionEntity||!Ps(r,z.PERSISTED_ENTITY))return null;const a=r.properties.find(t=>{var i;return((i=t.implements)==null?void 0:i.id)===k[n.BuiltInBaseEntity][z.PERSISTED_ENTITY].properties.database.id});return(e=a==null?void 0:a.getDefaultValue())==null?void 0:e.valueAsTypeSingle}function mt(r,a){var t;if(!uf.includes(a.type)||!r)return a.project||null;let e=a.project;return r.type===n.Project?e=r:((t=a.project)==null?void 0:t.id)!==r.project.id&&(e=r.project),e}function LJ(r){switch(r){case n.Project:return m;case n.InstalledProject:return Sr;case n.DefinitionEntity:return Xr;case n.FunctionDeclaration:return gr;case n.GlobalEvent:return Bn;case n.VariableInstance:return Fr;case n.VariableDeclaration:return xr;case n.InputMap:return Wi;case n.OutputMap:return zi;case n.Condition:return Gr;case n.Operation:return jr;case n.FunctionCall:return Yr;case n.ReturnDeclaration:return si;case n.ArgumentDeclaration:return Zr;case n.PrimitiveEntity:return oi;case n.DataType:return Vn;case n.Property:return Lr;case n.ActionDescriptor:return We;case n.ReturnStatement:return Ur;case n.ContinueStatement:return xt;case n.BreakStatement:return _n;case n.Loop:return $r;case n.Search:return kr;case n.ValueDescriptor:return qr;case n.InternalCall:return Mn;case n.LiteralValue:return Nn}return null}function UJ(r){const a={added:{},updated:{},removed:{},affected:[],seenEntities:[],self:r==null?void 0:r.self};return r==null||r.added.forEach(e=>{a.added[e.id]=e}),r==null||r.updated.forEach(e=>{a.updated[e.id]=e}),r==null||r.removed.forEach(e=>{a.removed[e.id]=e}),a.affected=Array.from(new Set(r==null?void 0:r.affected.map(e=>e.id))),a}function pt(r,a){const e=La(r.type);return e?!e.MUTABLE_META_PROPERTIES.every(i=>{const s=r[i],l=a[i];return l===void 0||s===l?!0:Array.isArray(s)&&Array.isArray(l)?s.length!==l.length?!1:s.every((o,d)=>o===l[d]):!1}):!1}function id(r,a={}){if(r.type===n.Project)return[];if(!r.parent)return[];const e=_(r.parent);if(!e)return[];const t=a[e];return t?[t.id,...id(t,a)]:[]}function gJ(r){const a=[],e=new Set;return[...r.listAdded,...r.listUpdated,...r.listAffected].forEach(t=>{const i=wt(t);!i||e.has(i.id)||(e.add(i.id),a.push(i))}),p(a)}function tw(r){const a=fZ(),e=r.toJSON();a.safeParse(e).success;const i=r.implements.flatMap(y=>jJ(r,y)),s=r.extends.flatMap(y=>$J(r,y)),l=FJ(r),o=GJ(r);r.methods.flatMap(y=>y.validate());const d=[...i,...s,...l,...o];return He(r.errors,d)}function iw(r,a){const e=a.properties.filter(s=>s.abstract),t=[];let i=[...r.properties];return e.forEach(s=>{const l=i.find(o=>{var d;return((d=o.implements)==null?void 0:d.id)===s.id});l?i=i.filter(o=>o.id!==l.id):t.push(s)}),t}function rw(r,a){const e=a.abstractMethods,t=[];let i=[...r.methods];return e.forEach(s=>{const l=i.find(o=>{var d;return((d=o.implements)==null?void 0:d.id)===s.id});l?i=i.filter(o=>o.id!==l.id):t.push(s)}),t}function jJ(r,a){const e=[];if(!a.abstract){const y=de({id:r.id+"--"+F.ImplementingNonAbstractEntity,message:`Entity "${r.name}" with id "${r.id}" is implementing a non-abstract entity "${a.name}" with id "${a.id}"`,issue:null,severity:D.Error,code:F.ImplementingNonAbstractEntity,entity:r});return e.push(y.error),e}const t=a.properties.filter(y=>y.abstract),i=[];let s=[...r.properties];t.forEach(y=>{const c=s.find(I=>{var E;return((E=I.implements)==null?void 0:E.id)===y.id});c?s=s.filter(I=>I.id!==c.id):i.push(y)}),i.length&&i.forEach(y=>{const c=de({id:r.id+"--"+F.MissingPropertyImplementation+"--"+y.id,message:`Property "${y.name}" with id "${y.id}" of entity "${a.name}" with id "${a.id}" is not implemented when entity "${r.name}" with id "${r.id}" implements it`,issue:null,severity:D.Error,code:F.MissingPropertyImplementation,entity:r});e.push(c.error)});const l=[];let o=[...r.methods];a.abstractMethods.forEach(y=>{const c=o.find(I=>{var E;return((E=I.implements)==null?void 0:E.id)===y.id});c?o=o.filter(I=>I.id!==c.id):l.push(y)}),l.length&&l.forEach(y=>{const c=de({id:r.id+"--"+F.MissingMethodImplementation+"--"+y.id,message:`Method "${y.name}" with id "${y.id}" of entity "${a.name}" with id "${a.id}" is not implemented when entity "${r.name}" with id "${r.id}" implements it`,issue:null,severity:D.Error,code:F.MissingMethodImplementation,entity:r});e.push(c.error)});const d=[];a.properties.forEach(y=>{const c=s.find(I=>I.name===y.name);c&&d.push([c,y])}),d.length&&d.forEach(([y])=>{const c=de({id:r.id+"--"+j.PropertyOverwritesOtherSiblingWithSameName+"--"+y.id,message:`Property "${y.name}" with id "${y.id}" of entity "${r.name}" with id "${r.id}" overwrites the property with the same name from the base entity "${a.name}" with id "${a.id}"`,issue:null,severity:D.Error,code:j.PropertyOverwritesOtherSiblingWithSameName,entity:r});e.push(c.error)});const u=[];return a.methods.forEach(y=>{const c=o.find(I=>I.name===y.name);c&&u.push([c,y])}),u.length&&u.forEach(([y])=>{const c=de({id:r.id+"--"+j.MethodOverwritesOtherSiblingWithSameName+"--"+y.id,message:`Method "${y.name}" with id "${y.id}" of entity "${r.name}" with id "${r.id}" overwrites the method with the same name from the base entity "${a.name}" with id "${a.id}"`,issue:null,severity:D.Error,code:j.MethodOverwritesOtherSiblingWithSameName,entity:r});e.push(c.error)}),e}function $J(r,a){const e=[],t=[];if(!r.abstract&&a.abstract){const s=de({id:r.id+"--"+a.id+"--"+F.NonAbstractExtendingAbstractEntity,message:`Entity "${r.name}" with id "${r.id}" is not-abstract but is extending an abstract entity "${a.name}" with id "${a.id}"`,issue:null,severity:D.Error,code:F.NonAbstractExtendingAbstractEntity,entity:r,firstRelationship:a});return e.push(s.error),e}if(r.abstract&&!a.abstract){const s=de({id:r.id+"--"+a.id+"--"+F.AbstractExtendingNonAbstractEntity,message:`Entity "${r.name}" with id "${r.id}" is abstract but is extending an non-abstract entity "${a.name}" with id "${a.id}"`,issue:null,severity:D.Error,code:F.AbstractExtendingNonAbstractEntity,entity:r,firstRelationship:a});return e.push(s.error),e}r.properties.forEach(s=>{var o;const l=a.properties.find(d=>d.name===s.name);((o=s.implements)==null?void 0:o.id)!==(l==null?void 0:l.id)&&l&&t.push(s)}),t.length&&t.forEach(s=>{const l=de({id:r.id+"--"+j.PropertyOverwritesOtherSiblingWithSameName,message:`Property "${s.name}" with id "${s.id}" of entity "${r.name}" with id "${r.id}" overwrites the property with the same name from the extended entity "${a.name}" with id "${a.id}"`,issue:null,severity:D.Error,code:j.PropertyOverwritesOtherSiblingWithSameName,entity:r});e.push(l.error)});const i=[];return r.methods.forEach(s=>{var o;const l=a.methods.find(d=>d.name===s.name);((o=s.implements)==null?void 0:o.id)!==(l==null?void 0:l.id)&&l&&i.push(s)}),i.length&&i.forEach(s=>{const l=de({id:r.id+"--"+j.MethodOverwritesOtherSiblingWithSameName,message:`Method "${s.name}" with id "${s.id}" of entity "${r.name}" with id "${r.id}" overwrites the method with the same name from the extended entity "${a.name}" with id "${a.id}"`,issue:null,severity:D.Error,code:j.MethodOverwritesOtherSiblingWithSameName,entity:r});e.push(l.error)}),e}function GJ(r){const a=[];if(!r.properties.length){const e=de({id:r.id+"--"+F.NoProperties,message:"No properties implemented",issue:null,severity:D.Warning,code:F.NoProperties,entity:r});a.push(e.error)}return r.properties.forEach(e=>{e.validate()}),a}function FJ(r){const a=[];if(r.abstract){if(r.methods.length){const e=de({id:r.id+"--"+F.AbstractEntityWithNonAbstractMethods,message:`Entity "${r.name}" with id "${r.id}" is marked as abstract but has non-abstract methods`,issue:null,severity:D.Error,code:F.AbstractEntityWithNonAbstractMethods,entity:r});a.push(e.error)}if(r.properties.some(e=>!e.abstract)){const e=de({id:r.id+"--"+F.AbstractEntityWithNonAbstractProperties,message:`Entity "${r.name}" with id "${r.id}" is marked as abstract but has non-abstract properties`,issue:null,severity:D.Error,code:F.AbstractEntityWithNonAbstractProperties,entity:r});a.push(e.error),r.properties.forEach(t=>{if(!t.abstract){const i=de({id:r.id+"--"+F.StaticEntityWithNonStaticProperties+"--"+t.id,message:`Property "${t.name}" with id "${t.id}" of entity "${r.name}" with id "${r.id}" is not marked as abstract but the entity is marked as abstract`,issue:null,severity:D.Error,code:F.StaticEntityWithNonStaticProperties,entity:r});a.push(i.error)}})}}else{if(r.abstractMethods.length){const e=de({id:r.id+"--"+F.AbstractPropertyInNonAbstractEntity,message:`Entity "${r.name}" with id "${r.id}" is not marked as abstract but has abstract methods`,issue:null,severity:D.Error,code:F.AbstractPropertyInNonAbstractEntity,entity:r});a.push(e.error)}if(r.properties.some(e=>e.abstract)){const e=de({id:r.id+"--"+F.AbstractMethodInNonAbstractEntity,message:`Entity "${r.name}" with id "${r.id}" is not marked as abstract but has abstract properties`,issue:null,severity:D.Error,code:F.AbstractMethodInNonAbstractEntity,entity:r});a.push(e.error),r.properties.forEach(t=>{if(t.abstract){const i=de({id:r.id+"--"+F.AbstractMethodInNonAbstractEntity+"--"+t.id,message:`Property "${t.name}" with id "${t.id}" of entity "${r.name}" with id "${r.id}" is marked as abstract but the entity is not marked as abstract`,issue:null,severity:D.Error,code:F.AbstractMethodInNonAbstractEntity,entity:r});a.push(i.error)}})}}if(r.static&&r.properties.some(e=>!e.static)){const e=de({id:r.id+"--"+F.StaticEntityWithNonStaticProperties,message:`Entity "${r.name}" with id "${r.id}" is marked as static but has non-static properties`,issue:null,severity:D.Error,code:F.StaticEntityWithNonStaticProperties,entity:r});a.push(e.error),r.properties.forEach(t=>{if(!t.static){const i=de({id:r.id+"--"+F.NonStaticPropertyInStaticEntity+"--"+t.id,message:`Property "${t.name}" with id "${t.id}" of entity "${r.name}" with id "${r.id}" is not marked as static but the entity is marked as static`,issue:null,severity:D.Error,code:F.NonStaticPropertyInStaticEntity,entity:r});a.push(i.error)}})}return a}function xJ(r,a){const e=[],t=kt(a);if(!a.abstract){const l=new it({id:r.id+"--"+a.id+"--"+F.ImplementingNonAbstractEntity,message:`Entity "${r.name}" with id "${r.id}" is implementing a non-abstract built-in entity "${a.name}" with id "${a.id}"`,issue:null,severity:D.Error,code:F.ImplementingNonAbstractEntity,entity:r,firstRelationship:a});e.push(l)}const i=r.implements.filter(l=>l.id!==a.id);if(r.abstract){const l=new it({id:r.id+"--"+a.id+"--"+F.AbstractEntityImplements,message:`Entity "${r.name}" with id "${r.id}" is marked as abstract and cannot implement built-in entity "${a.name}" with id "${a.id}"`,issue:null,severity:D.Error,code:F.AbstractEntityImplements,entity:r,firstRelationship:a});e.push(l)}if(r.static&&!a.static){const l=new it({id:r.id+"--"+a.id+"--"+F.StaticImplementingNonStaticEntity,message:`Entity "${r.name}" with id "${r.id}" is marked as static and cannot implement non-static built-in entity "${a.name}" with id "${a.id}"`,issue:null,severity:D.Error,code:F.StaticImplementingNonStaticEntity,entity:r,firstRelationship:a});e.push(l)}if(!r.static&&a.static){const l=new it({id:r.id+"--"+a.id+"--"+F.NonStaticImplementingStaticEntity,message:`Entity "${r.name}" with id "${r.id}" is not marked as static and cannot implement static built-in entity "${a.name}" with id "${a.id}"`,issue:null,severity:D.Error,code:F.NonStaticImplementingStaticEntity,entity:r,firstRelationship:a});e.push(l)}return i.length&&i.forEach(l=>{if(l.type===n.BuiltInBaseEntity){const o=t.filter(d=>d.id!==l.id);o.length&&o.forEach(d=>{if(d.id!==l.id){const u=new it({id:r.id+"--"+d.id+"--"+l.id+"--"+F.ImplementsIncompatibleEntities,message:`Entity "${r.name}" with id "${r.id}" is implementing built-in entity "${d.name}" with id "${d.id}" but also implements entity "${l.name}" with id "${l.id}" which is incompatible`,issue:null,severity:D.Error,code:F.ImplementsIncompatibleEntities,entity:r,firstRelationship:d,secondRelationship:l});e.push(u)}})}else{kt(l).forEach(y=>{const c=t.filter(I=>I.id!==y.id);c.length&&c.forEach(I=>{if(I.id!==y.id){const E=new it({id:r.id+"--"+I.id+"--"+y.id+"--"+F.ImplementsIncompatibleEntities,message:`Entity "${r.name}" with id "${r.id}" is implementing built-in entity "${I.name}" with id "${I.id}" but also implements entity "${y.name}" with id "${y.id}" which is incompatible`,issue:null,severity:D.Error,code:F.ImplementsIncompatibleEntities,entity:r,firstRelationship:I,secondRelationship:y});e.push(E)}})});const d=vr(a.ownDeclaredProperties,l.ownDeclaredProperties,j.PropertyOverwritesOtherImplementedEntitysPropertyWithSameImplementation,j.PropertyOverwritesOtherImplementedEntitysPropertyWithSameName);e.push(...d.errors);const u=vr(a.abstractMethods,[...l.abstractMethods,...l.methods],j.MethodOverwritesOtherImplementedEntitysMethodWithSameImplementation,j.MethodOverwritesOtherImplementedEntitysMethodWithSameName);e.push(...u.errors)}}),p(r.extends.flatMap(l=>kt(l))).forEach(l=>{if(!t.find(o=>o.id===l.id)){const o=new it({id:r.id+"--"+a.id+"--"+l.id+"--"+F.ExtendsIncompatibleEntities,message:`Entity "${r.name}" with id "${r.id}" is implementing built-in entity "${a.name}" with id "${a.id}" but also extends entity "${l.name}" with id "${l.id}" which is incompatible`,issue:null,severity:D.Error,code:F.ExtendsIncompatibleEntities,entity:r,firstRelationship:a,secondRelationship:l});e.push(o)}}),e}function kJ(r,a,e=!1){const t=[],i=kt(a);if(!r.abstract&&a.abstract){const y=de({id:r.id+"--"+a.id+"--"+F.NonAbstractExtendingAbstractEntity,message:`Entity "${r.name}" with id "${r.id}" is not-abstract but is extending an abstract entity "${a.name}" with id "${a.id}"`,issue:null,severity:D.Error,code:F.NonAbstractExtendingAbstractEntity,entity:r,firstRelationship:a});t.push(y.error)}if(r.abstract&&!a.abstract){const y=de({id:r.id+"--"+a.id+"--"+F.AbstractExtendingNonAbstractEntity,message:`Entity "${r.name}" with id "${r.id}" is abstract but is extending an non-abstract entity "${a.name}" with id "${a.id}"`,issue:null,severity:D.Error,code:F.AbstractExtendingNonAbstractEntity,entity:r,firstRelationship:a});t.push(y.error)}if(!r.static&&a.static){const y=de({id:r.id+"--"+a.id+"--"+F.NonStaticExtendingStaticEntity,message:`Entity "${r.name}" with id "${r.id}" is not static but is extending a static entity "${a.name}" with id "${a.id}"`,issue:null,severity:D.Error,code:F.NonStaticExtendingStaticEntity,entity:r,firstRelationship:a});t.push(y.error)}if(r.static&&!a.static){const y=de({id:r.id+"--"+a.id+"--"+F.StaticExtendingNonStaticEntity,message:`Entity "${r.name}" with id "${r.id}" is static but is extending an non-static entity "${a.name}" with id "${a.id}"`,issue:null,severity:D.Error,code:F.StaticExtendingNonStaticEntity,entity:r,firstRelationship:a});t.push(y.error)}if(!Ql(a)){const y=de({id:r.id+"--"+a.id+"--"+F.ExtendingNonInteractiveEntity,message:`Entity "${r.name}" with id "${r.id}" is extending an non-interactive entity "${a.name}" with id "${a.id}"`,issue:null,severity:D.Error,code:F.ExtendingNonInteractiveEntity,entity:r,firstRelationship:a});t.push(y.error)}const l=r.extends.filter(y=>y.id!==a.id);l.length&&l.forEach(y=>{if(y.type===n.BuiltInBaseEntity){const c=i.filter(I=>I.id!==y.id);c.length&&c.forEach(I=>{if(I.id!==y.id){const E=de({id:r.id+"--"+I.id+"--"+y.id+"--"+F.ExtendsIncompatibleEntities,message:`Entity "${r.name}" with id "${r.id}" is extending built-in entity "${I.name}" with id "${I.id}" but also extends entity "${y.name}" with id "${y.id}" which is incompatible`,issue:null,severity:D.Error,code:F.ExtendsIncompatibleEntities,entity:r,firstRelationship:I,secondRelationship:y});t.push(E.error)}})}else{kt(y).forEach(M=>{const G=i.filter(B=>B.id!==M.id);G.length&&G.forEach(B=>{if(B.id!==M.id){const $=new it({id:r.id+"--"+B.id+"--"+M.id+"--"+F.ImplementsIncompatibleEntities,message:`Entity "${r.name}" with id "${r.id}" is extending built-in entity "${B.name}" with id "${B.id}" but also extends or implements entity "${M.name}" with id "${M.id}" which is incompatible`,issue:null,severity:D.Error,code:F.ImplementsIncompatibleEntities,entity:r,firstRelationship:B,secondRelationship:M});t.push($)}})});const I=!!kt(y).find(M=>M.id===a.id);let E=[...y.properties];I&&(E=E.filter(M=>!a.properties.find(G=>{var B;return G.id===M.id||G.name===M.name||G.id===((B=M.implements)==null?void 0:B.id)})));let O=[...y.methods];I&&(O=O.filter(M=>!a.methods.find(G=>{var B;return G.id===M.id||G.name===M.name||G.id===((B=M.implements)==null?void 0:B.id)})));const P=vr(a.ownDeclaredProperties,E,j.PropertyOverwritesOtherExtendedEntitysPropertyWithSameImplementation,j.PropertyOverwritesOtherExtendedEntitysPropertyWithSameName);t.push(...P.errors);const V=vr(a.abstractMethods,O,j.MethodOverwritesOtherExtendedEntitysMethodWithSameImplementation,j.MethodOverwritesOtherExtendedEntitysMethodWithSameName);t.push(...V.errors)}}),e&&console.log("self.implements.length",r.implements.length),r.implements.length&&r.implements.forEach(y=>{if(y.type===n.BuiltInBaseEntity){const c=i.filter(I=>I.id!==y.id);c.length&&c.forEach(I=>{if(I.id!==y.id){const E=new it({id:r.id+"--"+I.id+"--"+y.id+"--"+F.ImplementsIncompatibleEntities,message:`Entity "${r.name}" with id "${r.id}" is implementing built-in entity "${I.name}" with id "${I.id}" but also implements entity "${y.name}" with id "${y.id}" which is incompatible`,issue:null,severity:D.Error,code:F.ImplementsIncompatibleEntities,entity:r,firstRelationship:I,secondRelationship:y});t.push(E)}})}else{kt(y).forEach(O=>{const P=i.filter(V=>V.id!==O.id);P.length&&P.forEach(V=>{if(V.id!==O.id){const M=new it({id:r.id+"--"+V.id+"--"+O.id+"--"+F.ImplementsIncompatibleEntities,message:`Entity "${r.name}" with id "${r.id}" is implementing built-in entity "${V.name}" with id "${V.id}" but also implements entity "${O.name}" with id "${O.id}" which is incompatible`,issue:null,severity:D.Error,code:F.ImplementsIncompatibleEntities,entity:r,firstRelationship:V,secondRelationship:O});t.push(M)}})});const I=vr(a.ownDeclaredProperties,y.ownDeclaredProperties,j.PropertyOverwritesOtherImplementedEntitysPropertyWithSameImplementation,j.PropertyOverwritesOtherImplementedEntitysPropertyWithSameName);t.push(...I.errors);const E=vr(a.abstractMethods,[...y.abstractMethods,...y.methods],j.MethodOverwritesOtherImplementedEntitysMethodWithSameImplementation,j.MethodOverwritesOtherImplementedEntitysMethodWithSameName);t.push(...E.errors)}});const o=vr(r.ownDeclaredProperties,a.ownDeclaredProperties,j.PropertyOverwritesOtherSiblingWithSameImplementation,j.PropertyOverwritesOtherSiblingWithSameName);t.push(...o.errors);const d=vr(a.methods,a.abstractMethods,j.MethodOverwritesOtherSiblingWithSameImplementation,j.MethodOverwritesOtherSiblingWithSameName);return t.push(...d.errors),p(r.extends.flatMap(y=>kt(y))).forEach(y=>{if(!i.find(c=>c.id===y.id)){const c=new it({id:r.id+"--"+a.id+"--"+y.id+"--"+F.ImplementsIncompatibleEntities,message:`Entity "${r.name}" with id "${r.id}" is extending built-in entity "${a.name}" with id "${a.id}" but also extends entity "${y.name}" with id "${y.id}" which is incompatible`,issue:null,severity:D.Error,code:F.ImplementsIncompatibleEntities,entity:r,firstRelationship:a,secondRelationship:y});t.push(c)}}),t}function SJ(r){const a=[];return r.implements.forEach(e=>{if(!e.static){const t=new it({id:r.id+"--"+e.id+"--"+F.StaticImplementingNonStaticEntity,message:`Entity "${r.name}" with id "${r.id}" is static but implements entity "${e.name}" with id "${e.id}" which is non-static`,issue:null,severity:D.Error,code:F.StaticImplementingNonStaticEntity,entity:r,firstRelationship:e});a.push(t)}}),r.extends.forEach(e=>{if(!e.static){const t=new it({id:r.id+"--"+e.id+"--"+F.StaticExtendingNonStaticEntity,message:`Entity "${r.name}" with id "${r.id}" is static but extends entity "${e.name}" with id "${e.id}" which is non-static`,issue:null,severity:D.Error,code:F.StaticExtendingNonStaticEntity,entity:r,firstRelationship:e});a.push(t)}}),a}function ZJ(r){const a=[];if(r.implements.length){const e=new it({id:r.id+"--"+F.AbstractEntityImplements,message:`Entity "${r.name}" with id "${r.id}" cannot be marked as abstract because it implements other entities`,issue:null,severity:D.Error,code:F.AbstractEntityImplements,entity:r});a.push(e)}return r.extends.forEach(e=>{if(!e.abstract){const t=new it({id:r.id+"--"+e.id+"--"+F.AbstractExtendingNonAbstractEntity,message:`Entity "${r.name}" with id "${r.id}" is abstract but extends entity "${e.name}" with id "${e.id}" which is non-abstract`,issue:null,severity:D.Error,code:F.AbstractExtendingNonAbstractEntity,entity:r,firstRelationship:e});a.push(t)}}),a}function qJ(r){const a=[];return r.extends.forEach(e=>{if(e.static){const t=new it({id:r.id+"--"+e.id+"--"+F.NonStaticExtendingStaticEntity,message:`Entity "${r.name}" with id "${r.id}" is non-static but extends entity "${e.name}" with id "${e.id}" which is static`,issue:null,severity:D.Error,code:F.NonStaticExtendingStaticEntity,entity:r,firstRelationship:e});a.push(t)}}),a}function JJ(r){const a=[];return r.extends.forEach(e=>{if(e.abstract){const t=new it({id:r.id+"--"+e.id+"--"+F.NonAbstractExtendingAbstractEntity,message:`Entity "${r.name}" with id "${r.id}" is non-abstract but extends entity "${e.name}" with id "${e.id}" which is abstract`,issue:null,severity:D.Error,code:F.NonAbstractExtendingAbstractEntity,entity:r,firstRelationship:e});a.push(t)}}),a}const WJ=Object.freeze(Object.defineProperty({__proto__:null,getBaseMethodsNotImplemented:rw,getBasePropertiesNotImplemented:iw,validate:tw,validateCanBecomeAbstract:ZJ,validateCanBecomeNonAbstract:JJ,validateCanBecomeNonStatic:qJ,validateCanBecomeStatic:SJ,validateCanExtendEntity:kJ,validateCanImplementEntity:xJ},Symbol.toStringTag,{value:"Module"}));function zJ(r,a){const e=[];if(r.parent)if(r.id===r.parent)e.push(new w({id:`${r.id}--${r.parent}--${R.SelfReference}`,code:R.SelfReference,severity:D.Error,message:`Entity of type "${r.type}" with id "${r.id}", has a reference to itself at 'parent'. This is not allowed. Change the reference string or the 'entityId' property of the reference object.`,issue:null}));else{const t=a.get(r.parent);t?[n.Project,n.DataType].includes(t.type)||e.push(new w({id:`${r.id}--${r.parent}--${R.InvalidParentReference}`,code:R.InvalidParentReference,severity:D.Error,message:`Entity of type "${r.type}" with id "${r.id}", has a parent reference that isn't pointing to an entity of type 'project' or 'data-type'.`,issue:null})):e.push(new w({id:`${r.id}--${r.parent}--${R.ReferencedEntityNotFound}`,code:R.ReferencedEntityNotFound,severity:D.Error,message:`Entity of type "${r.type}" with id "${r.id}", is referencing an entity with id "${r.parent}" that isn't yet found in the project. Perhaps it should be created first. Or perhaps the ID is incorrect.`,issue:null}))}return r.implements&&Array.isArray(r.implements)?r.implements.forEach(t=>{if(r.id===t){e.push(new w({id:`${r.id}--${t}--${R.SelfReference}`,code:R.SelfReference,severity:D.Error,message:`Entity of type "${r.type}" with id "${r.id}", has a reference to itself at one of the 'implements' references. This is not allowed. Change the reference string or the 'entityId' property of the reference object.`,issue:null}));return}const i=a.get(t);i?[n.DefinitionEntity,n.BuiltInBaseEntity].includes(i.type)?i.abstract||e.push(new w({id:`${r.id}--${t}--${R.InvalidImplementsReference}`,code:R.InvalidImplementsReference,severity:D.Error,message:`Entity of type "${r.type}" with id "${r.id}", has an 'implements' reference that isn't pointing to an abstract entity.`,issue:null})):e.push(new w({id:`${r.id}--${t}--${R.InvalidImplementsReference}`,code:R.InvalidImplementsReference,severity:D.Error,message:`Entity of type "${r.type}" with id "${r.id}", has an 'implements' reference that isn't pointing to an entity of type 'definition-entity' or 'built-in-base-entity'.`,issue:null})):e.push(new w({id:`${r.id}--${t}--${R.ReferencedEntityNotFound}`,code:R.ReferencedEntityNotFound,severity:D.Error,message:`Entity of type "${r.type}" with id "${r.id}", is referencing an entity with id "${t}" that isn't yet found in the project. Perhaps it should be created first. Or perhaps the ID is incorrect.`,issue:null}))}):e.push(new w({id:`${r.id}--${j.InvalidObjectStructure}`,code:j.InvalidObjectStructure,severity:D.Error,message:`Entity of type "${r.type}" with id "${r.id}", has an 'implements' property that isn't an array.`,issue:null})),r.extends&&Array.isArray(r.extends)&&r.extends.forEach(t=>{const i=a.get(t);i?[n.DefinitionEntity,n.BuiltInBaseEntity].includes(i.type)?i.abstract&&e.push(new w({id:`${r.id}--${t}--${R.InvalidExtendsReference}`,code:R.InvalidExtendsReference,severity:D.Error,message:`Entity of type "${r.type}" with id "${r.id}", has an 'extends' reference that isn't pointing to a non-abstract entity. Did you want to use the property 'implements', which holds a list of references to absract entities, instead?`,issue:null})):e.push(new w({id:`${r.id}--${t}--${R.InvalidExtendsReference}`,code:R.InvalidExtendsReference,severity:D.Error,message:`Entity of type "${r.type}" with id "${r.id}", has an 'extends' reference that isn't pointing to an entity of type 'definition-entity' or 'built-in-base-entity'.`,issue:null})):e.push(new w({id:`${r.id}--${t}--${R.ReferencedEntityNotFound}`,code:R.ReferencedEntityNotFound,severity:D.Error,message:`Entity of type "${r.type}" with id "${r.id}", is referencing an entity with id "${t}" that isn't yet found in the project. Perhaps it should be created first. Or perhaps the ID is incorrect.`,issue:null}))}),e}var rd=(r=>(r.Extends="extends",r.Implements="implements",r))(rd||{});const ge=class ge extends at{constructor(e,t){super(e);f(this,"initialData");f(this,"id");f(this,"name");f(this,"description",null);f(this,"x");f(this,"y");f(this,"static");f(this,"abstract");f(this,"type",n.DefinitionEntity);f(this,"properties",[]);f(this,"methods",[]);f(this,"abstractMethods",[]);f(this,"extends",[]);f(this,"implements",[]);f(this,"project");f(this,"errors",[]);f(this,"parent");f(this,"detachedDependents",{});f(this,"knownVersions",null);f(this,"activeVersion",!1);f(this,"initialized",!1);f(this,"startedInitialization",!1);f(this,"suggestedProperties",[]);f(this,"suggestedMethods",[]);this.initialData=e,this.project=t,this.id=e.id,this.name=e.name,this.description=e.description,this.x=e.x,this.y=e.y,this.static=e.static,this.abstract=e.abstract}static new(){return{id:m.UUID.uuid(),version:m.UUID.uuid(),createdAt:T().toISOString(),author:m.sessionAuthor,previousVersion:null,deleted:!1,type:n.DefinitionEntity,name:"",description:"",static:!1,abstract:!1,properties:[],methods:[],abstractMethods:[],extends:[],implements:[],x:0,y:0,parent:null}}static fromGenerationTarget(e,t){let i=t;if(e.parent){const u=_(e.parent);i=t.get(u)}const s=[];e.implements&&e.implements.forEach(u=>{s.push(t.get(u)||t.getBuiltIn(u))});const l=[];e.extends&&e.extends.forEach(u=>{l.push(t.get(u)||t.getBuiltIn(u))});const o={id:e.id,version:m.UUID.uuid(),createdAt:T().toISOString(),author:m.sessionAuthor,previousVersion:null,deleted:!1,name:e.name,type:n.DefinitionEntity,description:e.description,static:e.static,abstract:e.abstract,properties:[],methods:[],abstractMethods:[],extends:l,implements:s,x:0,y:0,parent:i},d=C(o,t);return d.setParent(i,null),d.initChildren(null),d}static validateGenerationTarget(e,t){let i=JSON.parse(JSON.stringify(e));const s=[],l=zJ(i,t),o=Ic(i,t);s.push(...l,...o,...ut(i));const d=i.parent?t.get(i.parent):null;if(d&&d.type===n.DataType){const u=d;u.entity&&s.push(new w({id:`${e.id}--${R.NewEntityWouldOverriteExisting}`,code:R.NewEntityWouldOverriteExisting,severity:D.Error,message:`The entity of type '${e.type}' with id '${e.id}' can't be added to the 'parent' entity with id '${u.id}' because it already has an 'entity' child. Data type entities can only have one 'entity' as children.
|
|
406
406
|
You can inspect the existing 'entity' field with the 'describe_entity' action. Like so:
|
|
407
407
|
${Yi({describe_entity:u.entity.id})}
|
|
408
|
-
Alternatively you can update the parent data-type entity with 'update' action to remove the existing value of the field.`,issue:null}))}return{errors:s,modifiedData:i}}get interactive(){return this.implements.length?this.implements.every(e=>e.interactive):!0}get allBasePropertiesFromExtendedAndImplementedEntities(){return p([...this.extends.reduce((e,t)=>[...[...t.ownDeclaredProperties,...t.allBasePropertiesFromExtendedAndImplementedEntities].filter(s=>!s.abstract),...e],[]),...this.implements.reduce((e,t)=>[...[...t.ownDeclaredProperties,...t.allBasePropertiesFromExtendedAndImplementedEntities].filter(s=>!s.abstract),...e],[])])}get extendedPropertiesFromOriginalParents(){return p(this.extends.reduce((e,t)=>{const i=[...t.ownDeclaredProperties,...t.extendedPropertiesFromOriginalParents].filter(s=>!s.abstract);return[...e,...i]},[]))}get implementedPropertiesFromOriginalParents(){return p([...this.extends.reduce((e,t)=>{const i=t.implementedPropertiesFromOriginalParents,s=[...t.ownDeclaredProperties].filter(l=>!!l.abstract&&!i.find(o=>o.name===l.name));return[...i,...s,...e]},[]),...this.implements.reduce((e,t)=>{const i=t.implementedPropertiesFromOriginalParents,s=[...t.ownDeclaredProperties].filter(l=>!!l.abstract&&!i.find(o=>o.name===l.name));return[...i,...s,...e]},[])].filter(e=>!!e.abstract))}get extendedProperties(){return this.properties.filter(e=>e.isExtendedProperty)}get ownDeclaredProperties(){return this.properties.filter(e=>!e.isExtendedProperty)}validateGeneratedUpdate(e){const t=[];return e.parent&&t.push(new w({id:`${this.id}--${R.InvalidParentUpdate}`,code:R.InvalidParentUpdate,severity:D.Error,message:`Entity of type '${this.type}' with id '${this.id}' cannot have the 'parent' property updated. The 'parent' on an '${this.type}', must be the root project as it is a globally declared entity.`,issue:null})),{errors:t,modifiedData:e}}subscribeDependents(e){return e.forEach(t=>{this.detachedDependents[t.entity.id]||(this.detachedDependents[t.entity.id]=t)}),this}syncDependents(){const e=[],t=[],i=[],s=[];return Object.values(this.detachedDependents).forEach(l=>{const o=l.entity.afterAllChildrenInitialized();e.push(...o.updated),t.push(...o.added),i.push(...o.removed),s.push(...o.affected)}),{updated:p(e),added:p(t),removed:p(i),affected:p(s),self:this}}onDetachedDependencyRemoved(e,t,i){const s=[],l=[],o=[],d=[];return t==="implements"&&this.removeImplementation(e),t==="extends"&&this.removeExtension(e),{updated:p(s),added:p(l),removed:p(o),affected:p(d),self:this}}onDetachedDependencyRestored(e,t,i){const s=[],l=[],o=[],d=[];return t==="implements"&&this.addImplementation(e),t==="extends"&&this.addExtension(e),{updated:p(s),added:p(l),removed:p(o),affected:p(d),self:this}}subscribeToDependencies(){return this.implements.forEach(e=>{Ti.includes(e.type)||e.subscribeDependents([{entity:this,field:"implements"}])}),this.extends.forEach(e=>{Ti.includes(e.type)||e.subscribeDependents([{entity:this,field:"extends"}])}),this}increaseVersion(e){if(e&&!T(e).isValid())throw new Error(`The shared timestamp '${e}' is not a valid ISO 8601 date string.`);return e&&T(e).isSame(T(this.createdAt))?this:(this.previousVersion=this.version,this.version=m.UUID.uuid(),this.createdAt=T(e).toISOString()||T().toISOString(),this)}captureVersion(){var t;const e=((t=this.knownVersions)==null?void 0:t.get(this.version))||new ge(this,this.project);return e.metaSync(this.toMeta(),null),this.knownVersions=this.knownVersions?this.knownVersions.set(this.version,e):new Map([[this.version,e]]),e.properties=this.properties,e.methods=this.methods,e.abstractMethods=this.abstractMethods,e.extends=this.extends,e.implements=this.implements,e.parent=this.parent,this}recursiveCaptureUpstreamVersions(e){const t=[],i=[],s=[],l=[];if(this.parent){this.parent.increaseVersion(e);const o=this.parent.recursiveCaptureUpstreamVersions(e);t.push(this.parent,...o.updated),i.push(...o.added),s.push(...o.removed)}return{updated:p(t),added:p(i),removed:p(s),affected:p(l),self:this}}async restoreVersion(e){var d;const t=[],i=[],s=[],l=[];if(this.version===e)return{updated:p(t),added:p(i),removed:p(s),affected:p(l),self:this};if(!this.knownVersions){const u=new Map;for(const[y,c]of this.knownVersions||new Map){if(u.set(y,c),c.activeVersion=!1,c.knownVersions)for(const[I,E]of c.knownVersions)u.set(I,E);c.knownVersions=null}}let o=(d=this.knownVersions)==null?void 0:d.get(e);if(!o){const u=await this.APILoadVersion({},e);if(!u)throw new Error(`Version with id '${e}' for entity with id '${this.id}' not found.`);o=new ge(u,this.project)}return this.metaSync(o.toShallowJSON(),null),this.properties=o.properties,this.methods=o.methods,this.abstractMethods=o.abstractMethods,this.extends=o.extends,this.implements=o.implements,this.parent=o.parent,{updated:p(t),added:p(i),removed:p(s),affected:p(l),self:this}}hydrateAncestors(){const e=[],t=[],i=[],s=[];if(this.initialData.parent){const l=_(this.initialData.parent),o=this.project.get(l);if(o)this.setParent(o,null),e.push(o);else throw new Error(`${this.type} with id '${this.id}' has a 'parent' reference '${l}' that isn't found in the project`)}else throw new Error(`${this.type} with id '${this.id}' must have a 'parent'`);return this.initialData.extends.forEach(l=>{const o=_(l),d=this.project.get(o);d&&(this.addExtension(d),d.type!==n.BuiltInBaseEntity&&e.push(d))}),this.initialData.implements.forEach(l=>{const o=_(l),d=this.project.get(o);d&&(this.addImplementation(d),d.type!==n.BuiltInBaseEntity&&e.push(d))}),{updated:p(e),added:p(t),removed:p(i),affected:p(s),self:this}}afterAllChildrenInitialized(e=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"after-all-children-initialized"))){const t=[],i=[],s=[],l=[];this.initialized=!0,this.captureVersion();const{updated:o,added:d,removed:u,affected:y}=this.syncImplementationProperties(e);t.push(...o),i.push(...d),s.push(...u),l.push(...y);const{updated:c,added:I,removed:E,affected:O}=this.addExtendedProperties(e);return t.push(...c),i.push(...I),s.push(...E),l.push(...O),this.addSuggestions(),e==null||e.attemptAutoclose("after-all-children-initialized",this.id),{updated:p(t),added:p(i),removed:p(s),affected:p(l),self:this}}addSelfToProject(e=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"add-self-to-project"))){const t=[this],i=[],s=[],l=[];if(this.parent.type===n.DataType){const o=this.parent;o.entity=this,t.push(o)}else this.project.addDefinitionEntity(this);return this.subscribe(),this.subscribeToDependencies(),e==null||e.attemptAutoclose("add-self-to-project",this.id),{updated:p(t),added:p(i),removed:p(s),affected:p(l),self:this}}setParent(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"set-parent"))){var i;return((i=this.parent)==null?void 0:i.id)!==(e==null?void 0:e.id)&&(this.parent=e,t&&(t==null||t.add(this,A.Updated),t==null||t.attemptAutoclose("set-parent",this.id))),this}addExtension(e){return this.extends.includes(e)||this.extends.push(e),this}removeExtension(e){return this.extends=this.extends.filter(t=>t.id!==e.id),this}addImplementation(e){return this.implements.includes(e)||this.implements.push(e),this}removeImplementation(e){return this.implements=this.implements.filter(t=>t.id!==e.id),this}removeProperty(e){return this.properties=this.properties.filter(t=>t.id!==e.id),this}addMethod(e){return this.methods.includes(e)||(this.methods.push(e),this.suggestedMethods=this.suggestedMethods.filter(t=>t.name!==e.name)),this}removeMethod(e){return this.methods=this.methods.filter(t=>t.id!==e.id),this}addProperty(e){return this.properties.includes(e)||(this.properties.push(e),this.suggestedProperties=this.suggestedProperties.filter(t=>t.name!==e.name)),this}addSuggestedProperty(e){return this.suggestedProperties.includes(e)||this.suggestedProperties.push(e),this}addSuggestedMethod(e){return this.suggestedMethods.includes(e)||this.suggestedMethods.push(e),this}removeSuggestedProperty(e){return this.suggestedProperties=this.suggestedProperties.filter(t=>t.id!==e.id),this}removeSuggestedMethod(e){return this.suggestedMethods=this.suggestedMethods.filter(t=>t.id!==e.id),this}addAbstractMethod(e){return this.abstractMethods.includes(e)||this.abstractMethods.push(e),this}removeAbstractMethod(e){return this.abstractMethods=this.abstractMethods.filter(t=>t.id!==e.id),this}initChildren(e=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"init-children"))){return this.initialized||this.startedInitialization?this:(this.startedInitialization=!0,this.properties=this.initialData.properties.map(t=>{const i=C(t,this.project);return i.setParent(this,null),i.initChildren(e),i}),this.methods=this.initialData.methods.map(t=>{const i=C(t,this.project);return i.setParent(this,null),i.initChildren(e),i}),this.abstractMethods=this.initialData.abstractMethods.map(t=>{const i=C(t,this.project);return i.setParent(this,null),i.initChildren(e),i}),this.extends=this.initialData.extends.map(t=>C(t,this.project)),this.implements=this.initialData.implements.map(t=>C(t,this.project)),this.subscribeToDependencies(),this.afterAllChildrenInitialized(e),e==null||e.attemptAutoclose("init-children",this.id),this)}syncImplementationProperties(e=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"sync-implementation-properties"))){const t=[],i=[],s=[],l=[],o=this.properties,d=this.implementedPropertiesFromOriginalParents,u=[...this.allBasePropertiesFromExtendedAndImplementedEntities,...o];return d.filter(c=>!u.find(E=>{var O;return((O=E.implements)==null?void 0:O.id)===c.id})).forEach(c=>{if(this.properties.find(P=>{var V;return((V=P.implements)==null?void 0:V.id)===c.id}))return;const E=this.properties.find(P=>P.name===c.name&&!!P.abstract&&!P.implements);if(E){E.implements=c,E.abstract=!1;return}const O=c.clone(e,this,m.UUID.uuid());O.initChildren(e),i.push(O),e==null||e.add(O,A.Added),O.setImplements(c,e),O.metaSync({abstract:!1},e),this.addProperty(O)}),e==null||e.attemptAutoclose("sync-implementation-properties",this.id),{updated:p(t),added:p(i),removed:p(s),affected:p(l),self:this}}addExtendedProperties(e=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"add-extended-properties"))){const t=[],i=[],s=[],l=[],o=this.properties,d=this.extendedPropertiesFromOriginalParents,u=d.filter(c=>d.find(E=>{var O;return((O=E.implements)==null?void 0:O.id)===c.id})?!1:!c.abstract),y=new Set(o.map(c=>c.name));return u.forEach(c=>{if(y.has(c.name))return;y.add(c.name);const I=c.clone(e,this,m.UUID.uuid());I.initChildren(e),i.push(I),e==null||e.add(I,A.Added),this.addProperty(I)}),{updated:p(t),added:p(i),removed:p(s),affected:p(l),self:this}}addSuggestions(){return this.implements.forEach(e=>{iw(this,e).forEach(s=>{const l=s.toJSON();l.id=`_suggestion--parent--${this.id}--${s.id}`;const o=C(l,this.project);o.suggestion=!0,o.setParent(this,null),o.initChildren(null),this.addSuggestedProperty(o)}),rw(this,e).forEach(s=>{const l=`_suggestion--parent--${this.id}--${s.id}`,o=s.implementAsFunctionDeclaration(null,this,l),d=C(o,this.project);if(d.suggestion=!0,d.setParent(this,null),d.initChildren(null),this.methods=this.methods.filter(u=>u.id!==l),d.inputs.forEach(u=>{u.suggestion=!0}),d.returnStatements.length){const u=d.returnStatements[0];u.suggestion=!0,u.outputs.forEach(y=>{y.suggestion=!0})}this.addSuggestedMethod(d)})}),this}subscribe(){return this.activeVersion=!0,this.project.subscribeInstance(this),this}unsubscribe(){return this.project.unsubscribeInstance(this),this}metaSync(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"meta-sync"))){const i=pt(this,e),s=this.toMeta();return this.name=e.name||s.name,this.description=e.description||s.description,this.x=e.x||s.x,this.y=e.y||s.y,this.static=e.static!==void 0?e.static:this.static,this.abstract=e.abstract!==void 0?e.abstract:this.abstract,super.metaSync(e),e.deleted===!0&&!s.deleted?t==null||t.add(this,A.Removed):e.deleted===!1&&s.deleted?t==null||t.add(this,A.Added):i&&(t==null||t.add(this,A.Updated)),t==null||t.attemptAutoclose("meta-sync",this.id),this}async APILoad(e=g,...t){return await ge.repository.APILoad(this.id,...t),this}async APICreate(e=g,...t){return await ge.repository.APICreate(this.toShallowJSON(),...t),this}async APIUpdate(e=g,...t){return await ge.repository.APIUpdate(this.toShallowJSON(),...t),this}async APIDelete(e=g,...t){return await ge.repository.APIDelete(this.toShallowJSON(),...t),this}async APIClone(e=g,...t){return await ge.repository.APIClone(this.id,...t),this}async APILoadVersion(e=g,t,...i){return await ge.repository.APILoadVersion(this.id,t,...i)}remove({ignoreUpstream:e}={ignoreUpstream:!1},t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"remove-entity"))){const i=[],s=[],l=[],o=[];if(t!=null&&t.hasRemoved(this.id))return t==null||t.attemptAutoclose("remove-entity",this.id),{added:[],updated:[],removed:[],affected:[],self:this};if(s.push(this),this.unsubscribe(),this.project.subscribeDeletedInstance(this),this.metaSync({deleted:!0},t),Object.values(this.detachedDependents).forEach(d=>{const{updated:u,removed:y,added:c}=d.entity.onDetachedDependencyRemoved(this,d.field,t);i.push(...u),s.push(...y),l.push(...c)}),this.properties.forEach(d=>{const{updated:u,removed:y}=d.remove({ignoreUpstream:!0},t);i.push(...u),s.push(...y)}),this.methods.forEach(d=>{const{updated:u,removed:y}=d.remove({ignoreUpstream:!0},t);i.push(...u),s.push(...y)}),this.abstractMethods.forEach(d=>{const{updated:u,removed:y}=d.remove({ignoreUpstream:!0},t);i.push(...u),s.push(...y)}),this.suggestedProperties.forEach(d=>{const{updated:u,removed:y}=d.remove({ignoreUpstream:!0},t);i.push(...u),s.push(...y)}),this.suggestedMethods.forEach(d=>{const{updated:u,removed:y}=d.remove({ignoreUpstream:!0},t);i.push(...u),s.push(...y)}),!e){if(this.parent.type===n.Project)this.parent.removeDefinitionEntity(this);else if(this.parent.type===n.DataType){const d=this.parent.setEntity(null);i.push(d)}}return t==null||t.attemptAutoclose("remove-entity",this.id),{added:p(l),updated:p(i),removed:p(s),affected:p(o),self:this}}restore({}={},e=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"restore-entity"))){const t=[],i=[],s=[],l=[];return e!=null&&e.hasAdded(this.id)?(e==null||e.attemptAutoclose("restore-entity",this.id),{added:[],updated:[],removed:[],affected:[],self:this}):(this.subscribe(),this.project.unsubscribeDeletedInstance(this),this.metaSync({deleted:!1},e),this.properties.forEach(o=>{const{updated:d}=o.restore({},e);i.push(...d)}),this.methods.forEach(o=>{const{updated:d}=o.restore({},e);i.push(...d)}),this.abstractMethods.forEach(o=>{const{updated:d}=o.restore({},e);i.push(...d)}),this.suggestedProperties.forEach(o=>{const{updated:d}=o.restore({},e);i.push(...d)}),this.suggestedMethods.forEach(o=>{const{updated:d}=o.restore({},e);i.push(...d)}),e==null||e.attemptAutoclose("restore-entity",this.id),{added:p(t),updated:p(i),removed:p(s),affected:p(l),self:this})}toFlat(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[this,...this.extends.flatMap(i=>i.toFlat(e)),...this.implements.flatMap(i=>i.toFlat(e)),...this.properties.flatMap(i=>i.toFlat(e)),...this.methods.flatMap(i=>i.toFlat(e)),...this.abstractMethods.flatMap(i=>i.toFlat(e)),...this.parent.toFlat(e)])}toFlatIds(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[this.id,...this.extends.flatMap(i=>i.toFlatIds(e)),...this.implements.flatMap(i=>i.toFlatIds(e)),...this.properties.flatMap(i=>i.toFlatIds(e)),...this.methods.flatMap(i=>i.toFlatIds(e)),...this.abstractMethods.flatMap(i=>i.toFlatIds(e)),...this.parent.toFlatIds(e)])}toMeta(){return{id:this.id,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,description:this.description,static:this.static,abstract:this.abstract,x:this.x,y:this.y,type:this.type,name:this.name}}toJSON(e=new Set){return e.has(this.id)?this.toReference():(e.add(this.id),{id:this.id,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,type:this.type,name:this.name,description:this.description,x:this.x,y:this.y,static:this.static,abstract:this.abstract,properties:this.properties.map(t=>t.toJSON(e)),methods:this.methods.map(t=>t.toJSON(e)),abstractMethods:this.abstractMethods.map(t=>t.toJSON(e)),implements:this.implements.map(t=>t.toJSON(e)),extends:this.extends.map(t=>t.toJSON(e)),parent:this.parent.toReference()})}toJSONClone(e=q){var i,s,l,o,d;let t;return(i=e.seenEntityMaps)!=null&&i.has(this.id)?t=e.seenEntityMaps.get(this.id):(t=e.newId||ht(this,this.project,e.uuidStrategy),e.seenEntityMaps&&e.seenEntityMaps.set(this.id,t)),(s=e.seenEntities)!=null&&s.has(t)||(l=e.seenEntities)!=null&&l.has(this.id)?this.toReference({seenEntityMaps:e.seenEntityMaps}):((o=e.seenEntities)==null||o.add(t),(d=e.seenEntities)==null||d.add(this.id),{id:t,version:m.UUID.uuid(),createdAt:e.timestamp||T().toISOString(),author:m.sessionAuthor,previousVersion:null,deleted:!1,type:this.type,name:this.name,description:this.description,x:this.x,y:this.y,static:this.static,abstract:this.abstract,properties:this.properties.map(u=>u.toJSONClone({...e,newId:null})),methods:this.methods.map(u=>u.toJSONClone({...e,newId:null})),abstractMethods:this.abstractMethods.map(u=>u.toJSONClone({...e,newId:null})),implements:this.implements.map(u=>u.type===n.BuiltInBaseEntity?u.toJSON():u.toJSONClone({...e,newId:null})),extends:this.extends.map(u=>u.type===n.BuiltInBaseEntity?u.toJSON():u.toJSONClone({...e,newId:null})),parent:this.parent.toReference({seenEntityMaps:e.seenEntityMaps})})}toReference(e=q){var i;let t=this.id;return(i=e.seenEntityMaps)!=null&&i.has(this.id)&&(t=e.seenEntityMaps.get(this.id)),{id:t+"--"+m.UUID.uuid()+"--ref",type:n.GenericReference,entityId:t,version:this.version,entityType:this.type}}toShallowJSON(e=q){var i;let t=this.id;return(i=e.seenEntityMaps)!=null&&i.has(this.id)&&(t=e.seenEntityMaps.get(this.id)),{id:t,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,name:this.name,description:this.description,type:this.type,x:this.x,y:this.y,static:this.static,abstract:this.abstract,properties:this.properties.map(s=>s.toReference(e)),methods:this.methods.map(s=>s.toReference(e)),abstractMethods:this.abstractMethods.map(s=>s.toReference(e)),implements:this.implements.map(s=>s.toReference(e)),extends:this.extends.map(s=>s.toReference(e)),parent:this.parent.toReference(e)}}toFlatJSON(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[this.toShallowJSON(),...this.properties.flatMap(i=>i.toFlatJSON(e)),...this.methods.flatMap(i=>i.toFlatJSON(e)),...this.abstractMethods.flatMap(i=>i.toFlatJSON(e)),...this.implements.flatMap(i=>i.toFlatJSON(e)),...this.extends.flatMap(i=>i.toFlatJSON(e)),...this.parent.toFlatJSON(e)])}toGenerationTarget(){const e=this.parent.type===n.Project?void 0:this.parent.id;return{id:this.id,name:this.name,description:this.description,type:this.type,static:this.static,abstract:this.abstract,extends:this.extends.map(t=>t.id),implements:this.implements.map(t=>t.id),parent:e}}toFlatGenerationTarget(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[this.toGenerationTarget(),...this.properties.flatMap(i=>i.toFlatGenerationTarget(e)),...this.methods.flatMap(i=>i.toFlatGenerationTarget(e)),...this.abstractMethods.flatMap(i=>i.toFlatGenerationTarget(e)),...this.implements.filter(i=>i.type===n.DefinitionEntity).flatMap(i=>i.toFlatGenerationTarget(e)),...this.implements.filter(i=>i.type===n.DefinitionEntity).flatMap(i=>i.toFlatGenerationTarget(e)),...this.parent.toFlatGenerationTarget(e)])}clearErrors(){return this.errors=[],this.properties.forEach(e=>e.clearErrors()),this.methods.forEach(e=>e.clearErrors()),this.abstractMethods.forEach(e=>e.clearErrors()),this}validate(){return this.errors=tw(this),{success:!0,error:null,data:null}}getErrors(){return[...this.errors,...this.properties.flatMap(t=>t.getErrors()),...this.methods.flatMap(t=>t.getErrors()),...this.abstractMethods.flatMap(t=>t.getErrors())]}getShallowErrors(){return this.errors}clone(e=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"clone-entity")),t=null,i=null,s=!0){var P,V,M;let l=mt(t,this);const o=this.toJSON(),d=i||m.UUID.uuid();o.properties=[],o.methods=[],o.abstractMethods=[];const u=d.split("-id"),y=u[u.length-1||0]||d;o.id=d,o.version=m.UUID.uuid(),o.createdAt=(e==null?void 0:e.timestamp)||T().toISOString(),o.author=(e==null?void 0:e.author)||"1",o.previousVersion=null,o.deleted=!1;const c=ct(o,l);t&&c.setParent(t,null),s&&c.subscribe(),c.initChildren(e),e==null||e.add(c,A.Added);const I=(P=this.properties)==null?void 0:P.map(G=>G.clone(e,c,m.UUID.uuid(),s));c.properties=I;const E=(V=this.methods)==null?void 0:V.map((G,B)=>G.clone(e,c,y+"-method-"+B+"-id",s));c.methods=E;const O=(M=this.abstractMethods)==null?void 0:M.map((G,B)=>G.clone(e,c,y+"-abstract-method-"+B+"-id",s));return c.abstractMethods=O,e==null||e.attemptAutoclose("clone-entity",this.id),c}getFunctionDeclaration(e){return this.methods.find(t=>t.id===e)}implement(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"implement-definition-entity")),i){const s=ql(this,e,t,i);return t==null||t.attemptAutoclose("implement-definition-entity",this.id),s}getAllInteractiveMethods(){const e=this.implements.filter(i=>i.type===n.DefinitionEntity||i.type===n.BuiltInBaseEntity&&i.interactive);return p([...this.methods,...this.extends.flatMap(i=>i.getAllInteractiveMethods()),...e.flatMap(i=>i.getAllInteractiveMethods())])}inferFromInputs(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"infer-definition-entity-from-inputs"))){const i=[],s=[],l=[],o=[];if(this.parent.type!==n.DataType||!this.parent.inferred)return t==null||t.attemptAutoclose("infer-definition-entity-from-inputs",this.id),{added:[],updated:[],removed:[],affected:[],self:this};const d=[];e.forEach(c=>{d.find(E=>x(E,this.project)===x(c,this.project))||d.push(c)});const u=this.properties.filter(c=>!c.dataType);d.forEach(c=>{var M,G;const I=u.find(B=>x(B,this.project)===x(c,this.project));if(!I)return;const O=Cn(c.parent).getMasterInputWithValueWritterFromAllInstances(c),P=Ji(O,t),V=P==null?void 0:P.clone(t,I,m.UUID.uuid(),!0);if(V){const B=(M=I.dataType)==null?void 0:M.merge(V,t);I.dataType&&(B==null?void 0:B.self.id)!==I.dataType.id&&I.dataType.remove({ignoreUpstream:!1},t),V.id!==((G=B==null?void 0:B.self)==null?void 0:G.id)&&V.remove({ignoreUpstream:!1},t),B!=null&&B.self&&(B.self.metaSync({inferred:!0,like:!0},t),t==null||t.add(B.self,A.Added),I.setDataType(B.self),t==null||t.add(I,A.Updated))}c.setDeclaration(I),t==null||t.add(c,A.Updated)});const y=[];return d.forEach(c=>{if(!c.declaration){y.push(c);return}}),y.length===0?(t==null||t.attemptAutoclose("infer-definition-entity-from-inputs",this.id),{added:[],updated:[],removed:[],affected:[],self:this}):(y.forEach(c=>{var B,$,Z,J;const I=this.properties.find(te=>x(te,this.project)===x(c,this.project));if(I){if(c.setDeclaration(I),!I.getDataType(t)){const fe=Cn(c.parent).getMasterInputWithValueWritterFromAllInstances(c),Ie=Ji(fe),X=Ie==null?void 0:Ie.clone(t,I,m.UUID.uuid(),!0);if(X){const le=(B=I.dataType)==null?void 0:B.merge(X,t);I.dataType&&(le==null?void 0:le.self.id)!==I.dataType.id&&I.dataType.remove({ignoreUpstream:!1},t),X.id!==(($=le==null?void 0:le.self)==null?void 0:$.id)&&X.remove({ignoreUpstream:!1},t),le!=null&&le.self&&(le.self.metaSync({inferred:!0,like:!0},t),t==null||t.add(le.self,A.Added),I.setDataType(le.self),t==null||t.add(I,A.Updated))}}return}const E={id:m.UUID.uuid(),type:n.Property,version:m.UUID.uuid(),createdAt:(t==null?void 0:t.timestamp)||T().toISOString(),author:m.sessionAuthor,previousVersion:null,deleted:!1,name:x(c,this.project),description:c.description,defaultValue:null,static:!0,abstract:!1,private:!1,hidden:!1,required:!1,constant:!0,index:c.index,implements:null,dataType:null,parent:this.toReference()},O=C(E,this.project);O.setParent(this,t),O.initChildren(t),t==null||t.add(O,A.Added);const V=Cn(c.parent).getMasterInputWithValueWritterFromAllInstances(c),M=Ji(V),G=M==null?void 0:M.clone(t,O,m.UUID.uuid(),!0);if(G){const te=(Z=O.dataType)==null?void 0:Z.merge(G,t);O.dataType&&(te==null?void 0:te.self.id)!==O.dataType.id&&O.dataType.remove({ignoreUpstream:!1},t),G.id!==((J=te==null?void 0:te.self)==null?void 0:J.id)&&G.remove({ignoreUpstream:!1},t),te!=null&&te.self&&(te.self.metaSync({inferred:!0,like:!0},t),t==null||t.add(te.self,A.Added),O.setDataType(te.self),t==null||t.add(O,A.Updated))}return this.addProperty(O),c.setDeclaration(O),t==null||t.add(c,A.Updated),O}),t==null||t.attemptAutoclose("infer-definition-entity-from-inputs",this.id),{added:p(i),updated:p(s),removed:p(l),affected:p(o),self:this})}};f(ge,"repository",{APICreate:async(e,...t)=>e,APIUpdate:async(e,...t)=>e,APIDelete:async(e,...t)=>e,APIClone:async(e,...t)=>{},APILoad:async(e,...t)=>null,APILoadVersion:async(e,t,...i)=>null}),f(ge,"type",n.DefinitionEntity),f(ge,"USER_MANAGED_PARENT_TYPES",[n.Project,n.DataType]),f(ge,"PARENT_TYPES",[...ge.USER_MANAGED_PARENT_TYPES]),f(ge,"MUTABLE_BASE_PROPERTIES",["name","description","static","abstract"]),f(ge,"INMUTABLE_BASE_PROPERTIES",["id","type","version","createdAt","author","previousVersion"]),f(ge,"BASE_PROPERTIES",[...ge.MUTABLE_BASE_PROPERTIES,...ge.INMUTABLE_BASE_PROPERTIES]),f(ge,"MUTABLE_META_PROPERTIES",[...ge.MUTABLE_BASE_PROPERTIES,"x","y"]),f(ge,"INMUTABLE_META_PROPERTIES",[...ge.INMUTABLE_BASE_PROPERTIES]),f(ge,"META_PROPERTIES",[...ge.MUTABLE_META_PROPERTIES,...ge.INMUTABLE_META_PROPERTIES]),f(ge,"MUTABLE_UPSTREAM_PROPERTIES",["extends","implements"]),f(ge,"INMUTABLE_UPSTREAM_PROPERTIES",["parent"]),f(ge,"UPSTREAM_PROPERTIES",[...ge.MUTABLE_UPSTREAM_PROPERTIES,...ge.INMUTABLE_UPSTREAM_PROPERTIES]),f(ge,"MUTABLE_DOWNSTREAM_PROPERTIES",["properties","methods","abstractMethods"]),f(ge,"INMUTABLE_DOWNSTREAM_PROPERTIES",[]),f(ge,"DOWNSTREAM_PROPERTIES",[...ge.MUTABLE_DOWNSTREAM_PROPERTIES,...ge.INMUTABLE_DOWNSTREAM_PROPERTIES]),f(ge,"PROPERTIES",[...ge.META_PROPERTIES,...ge.UPSTREAM_PROPERTIES,...ge.DOWNSTREAM_PROPERTIES]);let Xr=ge;function YJ(r){const a=J3(),e=r.toJSON();a.safeParse(e).success;const i=[];return He(r.errors,i)}const Ga=class Ga extends at{constructor(e,t){super(e);f(this,"initialData");f(this,"id");f(this,"version");f(this,"name");f(this,"description",null);f(this,"type",n.BuiltInBaseEntity);f(this,"abstract",!1);f(this,"static");f(this,"properties",[]);f(this,"methods",[]);f(this,"abstractMethods",[]);f(this,"extends",[]);f(this,"interactive",!1);f(this,"errors",[]);f(this,"project");this.initialData=this.initialData||e,this.project=this.project||t,this.id=this.id||e.id,this.version=this.version||e.version,this.name=this.name||e.name,this.static=this.static||e.static,this.interactive=this.interactive||e.interactive,this.abstract=e.abstract,this.properties=this.initialData.properties.map(i=>{const s=C(i,this.project);return s.setParent(this,null),s.initChildren(null),s}),this.methods=this.initialData.methods.map(i=>{const s=C(i,this.project);return s.setParent(this,null),s.initChildren(null),s}),this.abstractMethods=this.initialData.abstractMethods.map(i=>{const s=C(i,this.project);return s.setParent(this,null),s.initChildren(null),s}),this.extends=this.initialData.extends.map(i=>C(i,this.project))}get allBasePropertiesFromExtendedAndImplementedEntities(){return p(this.extends.reduce((e,t)=>{const i=[...t.ownDeclaredProperties,...t.allBasePropertiesFromExtendedAndImplementedEntities].filter(s=>!s.abstract);return[...e,...i]},[]))}get extendedPropertiesFromOriginalParents(){return p(this.extends.reduce((e,t)=>{const i=[...t.ownDeclaredProperties,...t.extendedPropertiesFromOriginalParents].filter(s=>!s.abstract);return[...e,...i]},[]))}get implementedPropertiesFromOriginalParents(){return p([...this.extends.reduce((e,t)=>{const i=t.implementedPropertiesFromOriginalParents,s=[...t.ownDeclaredProperties].filter(l=>!!l.abstract&&!i.find(o=>o.name===l.name));return[...i,...s,...e]},[])])}get extendedProperties(){return this.properties.filter(e=>e.isExtendedProperty)}get ownDeclaredProperties(){return this.properties.filter(e=>!e.isExtendedProperty)}subscribe(){return this.project.subscribeInstance(this),this}unsubscribe(){return this.project.unsubscribeInstance(this),this}async APILoad(e=g,...t){return await Ga.repository.APILoad(this.id,...t),this}toFlat(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[this,...this.properties.flatMap(i=>i.toFlat(e)),...this.methods.flatMap(i=>i.toFlat(e)),...this.abstractMethods.flatMap(i=>i.toFlat(e)),...this.extends.flatMap(i=>i.toFlat(e))])}toFlatIds(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[this.id,...this.properties.flatMap(i=>i.toFlatIds(e)),...this.methods.flatMap(i=>i.toFlatIds(e)),...this.abstractMethods.flatMap(i=>i.toFlatIds(e)),...this.extends.flatMap(i=>i.toFlatIds(e))])}toMeta(){return{id:this.id,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,description:this.description,interactive:this.interactive,abstract:this.abstract,static:this.static,type:this.type,name:this.name}}toJSON(e=new Set){return e.has(this.id)?this.toReference():(e.add(this.id),{id:this.id,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,type:this.type,name:this.name,description:this.description,abstract:this.abstract,static:this.static,interactive:this.interactive,properties:this.properties.map(t=>t.toJSON(e)),methods:this.methods.map(t=>t.toJSON(e)),abstractMethods:this.abstractMethods.map(t=>t.toJSON(e)),extends:this.extends.map(t=>t.toJSON(e))})}toReference(e=q){return{id:this.id+"--"+m.UUID.uuid()+"--ref",type:n.GenericReference,entityId:this.id,version:this.version,entityType:this.type}}toShallowJSON(e=q){return{id:this.id,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,type:this.type,name:this.name,description:this.description,abstract:this.abstract,static:this.static,interactive:this.interactive,properties:this.properties.map(t=>t.toReference()),methods:this.methods.map(t=>t.toReference()),abstractMethods:this.abstractMethods.map(t=>t.toReference()),extends:this.extends.map(t=>t.toReference())}}toFlatJSON(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[this.toShallowJSON(),...this.properties.flatMap(i=>i.toFlatJSON(e)),...this.methods.flatMap(i=>i.toFlatJSON(e)),...this.abstractMethods.flatMap(i=>i.toFlatJSON(e))])}toGenerationTarget(){return{id:this.id,type:this.type,name:this.name,description:this.description,static:this.static,abstract:this.abstract,interactive:this.interactive,extends:this.extends.map(e=>e.id)}}toFlatGenerationTarget(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[this.toGenerationTarget(),...this.properties.flatMap(i=>i.toFlatGenerationTarget(e)),...this.methods.flatMap(i=>i.toFlatGenerationTarget(e)),...this.abstractMethods.flatMap(i=>i.toFlatGenerationTarget(e))])}clearErrors(){return this.errors=[],this.properties.forEach(e=>e.clearErrors()),this.methods.forEach(e=>e.clearErrors()),this.abstractMethods.forEach(e=>e.clearErrors()),this}validate(){const e=YJ(this);return this.errors=e,{success:!0,error:null,data:this.toJSON()}}getErrors(){return[...this.errors,...this.properties.flatMap(t=>t.getErrors()),...this.methods.flatMap(t=>t.getErrors()),...this.abstractMethods.flatMap(t=>t.getErrors())]}getShallowErrors(){return this.errors}implement(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),null,!0,"implement-built-in-base-entity")),i){const s=ql(this,e,t,i);return t==null||t.attemptAutoclose("implement-built-in-base-entity",this.id),s}getAllInteractiveMethods(){const e=[];return this.interactive&&(e.push(...this.methods),this.extends.filter(i=>i.type===n.BuiltInBaseEntity&&i.interactive||i.type===n.PrimitiveEntity).forEach(i=>{i instanceof Ga&&e.push(...i.getAllInteractiveMethods())})),p(e)}};f(Ga,"repository",{APILoad:async(e,...t)=>null});let Ki=Ga;function HJ(r){const a=j3(),e=r.toJSON();a.safeParse(e).success;const i=[];return He(r.errors,i)}const od=class od extends at{constructor(e,t){super(e);f(this,"initialData");f(this,"id");f(this,"name");f(this,"description",null);f(this,"type",n.PrimitiveEntity);f(this,"static");f(this,"abstract");f(this,"properties",[]);f(this,"methods",[]);f(this,"abstractMethods",[]);f(this,"extends",[]);f(this,"errors",[]);f(this,"project");this.initialData=e,this.project=t,this.id=e.id,this.name=e.name,this.static=e.static,this.abstract=e.abstract,this.properties=this.initialData.properties.map(i=>{const s=C(i,this.project);return s.setParent(this,null),s.initChildren(null),s}),this.methods=this.initialData.methods.map(i=>{const s=C(i,this.project);return s.parent=this,s}),this.abstractMethods=this.initialData.abstractMethods.map(i=>{const s=C(i,this.project);return s.parent=this,s})}get allBasePropertiesFromExtendedAndImplementedEntities(){return p(this.extends.reduce((e,t)=>{const i=[...t.ownDeclaredProperties,...t.allBasePropertiesFromExtendedAndImplementedEntities].filter(s=>!s.abstract);return[...e,...i]},[]))}get extendedPropertiesFromOriginalParents(){return p(this.extends.reduce((e,t)=>{const i=[...t.ownDeclaredProperties,...t.extendedPropertiesFromOriginalParents].filter(s=>!s.abstract);return[...e,...i]},[]))}get implementedPropertiesFromOriginalParents(){return p([...this.extends.reduce((e,t)=>{const i=t.implementedPropertiesFromOriginalParents,s=[...t.ownDeclaredProperties].filter(l=>!!l.abstract&&!i.find(o=>o.name===l.name));return[...i,...s,...e]},[])])}get extendedProperties(){return this.properties.filter(e=>e.isExtendedProperty)}get ownDeclaredProperties(){return this.properties.filter(e=>!e.isExtendedProperty)}subscribe(){return this.project.subscribeInstance(this),this}unsubscribe(){return this.project.unsubscribeInstance(this),this}async APILoad(e=g,...t){return await od.repository.APILoad(this.id,...t),this}toFlat(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[this,...this.properties.flatMap(i=>i.toFlat(e)),...this.methods.flatMap(i=>i.toFlat(e)),...this.abstractMethods.flatMap(i=>i.toFlat(e))])}toFlatIds(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[this.id,...this.properties.flatMap(i=>i.toFlatIds(e)),...this.methods.flatMap(i=>i.toFlatIds(e)),...this.abstractMethods.flatMap(i=>i.toFlatIds(e))])}toMeta(){return{id:this.id,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,description:this.description,static:this.static,abstract:this.abstract,type:this.type,name:this.name}}toJSON(e=new Set){return e.has(this.id)?this.toReference():(e.add(this.id),{id:this.id,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,type:this.type,name:this.name,description:this.description,static:this.static,abstract:this.abstract,properties:this.properties.map(t=>t.toJSON(e)),methods:this.methods.map(t=>t.toJSON(e)),abstractMethods:this.abstractMethods.map(t=>t.toJSON(e)),extends:this.extends.map(t=>t.toJSON(e))})}toReference(e=q){return{id:this.id+"--"+m.UUID.uuid()+"--ref",type:n.GenericReference,entityId:this.id,version:this.version,entityType:this.type}}toShallowJSON(e=q){return{id:this.id,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,type:this.type,name:this.name,description:this.description,abstract:this.abstract,static:this.static,properties:this.properties.map(t=>t.toReference()),methods:this.methods.map(t=>t.toReference()),abstractMethods:this.abstractMethods.map(t=>t.toReference()),extends:this.extends.map(t=>t.toReference())}}toFlatJSON(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[this.toShallowJSON(),...this.properties.flatMap(i=>i.toFlatJSON(e)),...this.methods.flatMap(i=>i.toFlatJSON(e)),...this.abstractMethods.flatMap(i=>i.toFlatJSON(e))])}toGenerationTarget(){return{id:this.id,type:this.type,name:this.name,description:this.description,static:this.static,abstract:this.abstract,extends:this.extends.map(e=>e.id)}}toFlatGenerationTarget(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[this.toGenerationTarget(),...this.properties.flatMap(i=>i.toFlatGenerationTarget(e)),...this.methods.flatMap(i=>i.toFlatGenerationTarget(e)),...this.abstractMethods.flatMap(i=>i.toFlatGenerationTarget(e))])}clearErrors(){return this.errors=[],this.properties.forEach(e=>e.clearErrors()),this.methods.forEach(e=>e.clearErrors()),this.abstractMethods.forEach(e=>e.clearErrors()),this}validate(){const e=HJ(this);return this.errors=e,{success:!0,error:null,data:this.toJSON()}}getErrors(){return[...this.errors,...this.properties.flatMap(t=>t.getErrors()),...this.methods.flatMap(t=>t.getErrors()),...this.abstractMethods.flatMap(t=>t.getErrors())]}getShallowErrors(){return this.errors}getAllInteractiveMethods(){const e=[];return e.push(...this.methods),this.extends.filter(i=>i.type===n.BuiltInBaseEntity&&i.interactive||i.type===n.PrimitiveEntity).forEach(i=>{i instanceof Ki&&e.push(...i.getAllInteractiveMethods())}),p(e)}};f(od,"repository",{APILoad:async(e,...t)=>null});let oi=od;function ct(r,a){if(!r)throw new Error("Entity is null");const e=a.get(r.id);switch(r.type){case n.LiteralValue:return e||new Nn(r,a);case n.DefinitionEntity:return e||new Xr(r,a);case n.PrimitiveEntity:return e||new oi(r,a);case n.FunctionDeclaration:return e||new gr(r,a);case n.GlobalEvent:return e||new Bn(r,a);case n.DataType:return e||new Vn(r,a);case n.Property:return e||new Lr(r,a);case n.FunctionCall:return e||new Yr(r,a);case n.Condition:return e||new Gr(r,a);case n.Operation:return e||new jr(r,a);case n.VariableDeclaration:return e||new xr(r,a);case n.VariableInstance:return e||new Fr(r,a);case n.OutputMap:return e||new zi(r,a);case n.ReturnDeclaration:return e||new si(r,a);case n.ArgumentDeclaration:return e||new Zr(r,a);case n.InputMap:return e||new Wi(r,a);case n.Project:return e||new m(r);case n.InstalledProject:return e||new Sr(r,a);case n.ActionDescriptor:return e||new We(r,a);case n.ReturnStatement:return e||new Ur(r,a);case n.Loop:return e||new $r(r,a);case n.Search:return e||new kr(r,a);case n.ValueDescriptor:return e||new qr(r,a);case n.BuiltInBaseEntity:return e||new Ki(r,a);case n.InternalCall:return e||new Mn(r,a);case n.ContinueStatement:return e||new xt(r,a);case n.BreakStatement:return e||new _n(r,a);case n.GenericReference:return a.get(r.entityId);default:throw new Error("Invalid entity type: "+r.type)}}function C(r,a){if(!r)throw new Error("Entity is null");const e=ct(r,a);return e.subscribe(),e}function KJ(r,a){if(!r)throw new Error("Entity is null");switch(r.type){case n.LiteralValue:return Nn.fromGenerationTarget(r,a);case n.DefinitionEntity:return Xr.fromGenerationTarget(r,a);case n.FunctionDeclaration:return gr.fromGenerationTarget(r,a);case n.GlobalEvent:return Bn.fromGenerationTarget(r,a);case n.DataType:return Vn.fromGenerationTarget(r,a);case n.Property:return Lr.fromGenerationTarget(r,a);case n.FunctionCall:return Yr.fromGenerationTarget(r,a);case n.Condition:return Gr.fromGenerationTarget(r,a);case n.Operation:return jr.fromGenerationTarget(r,a);case n.VariableDeclaration:return xr.fromGenerationTarget(r,a);case n.VariableInstance:return Fr.fromGenerationTarget(r,a);case n.OutputMap:return zi.fromGenerationTarget(r,a);case n.ReturnDeclaration:return si.fromGenerationTarget(r,a);case n.ArgumentDeclaration:return Zr.fromGenerationTarget(r,a);case n.InputMap:return Wi.fromGenerationTarget(r,a);case n.InstalledProject:return Sr.fromGenerationTarget(r,a);case n.ReturnStatement:return Ur.fromGenerationTarget(r,a);case n.Loop:return $r.fromGenerationTarget(r,a);case n.Search:return kr.fromGenerationTarget(r,a);case n.ActionDescriptor:return We.fromGenerationTarget(r,a);case n.ValueDescriptor:return qr.fromGenerationTarget(r,a);case n.InternalCall:return Mn.fromGenerationTarget(r,a);case n.ContinueStatement:return xt.fromGenerationTarget(r,a);case n.BreakStatement:return _n.fromGenerationTarget(r,a);default:throw new Error("Invalid entity type: "+r.type)}}const q={seenEntityMaps:new Map,seenEntities:new Set,timestamp:T().toISOString()};class nw{constructor(){f(this,"initialData")}}const g={cascade:!1},sw={APILoad:async(r,...a)=>null},XJ={APICreate:async(r,...a)=>r,APIUpdate:async(r,...a)=>r,APIDelete:async(r,...a)=>r,APIClone:async(r,...a)=>{},APILoadVersion:async(r,a,...e)=>null,...sw};class QJ{}class eW extends nw{}class tW{}class iW{}class rW{}class nf{}class nW extends nf{}class sW extends nf{}class aW{}class Tr{static initReadsValue(a){if(a.initialData.readsValue&&a.initialData.readsValue.type!==n.GenericReference)a.readsValue=C(a.initialData.readsValue,a.project);else if(a.initialData.readsValue&&a.initialData.readsValue.type===n.GenericReference){const e=mi(a.initialData.readsValue,a.project);e&&(a.readsValue=e)}if(a.readsValue){if(tt.includes(a.readsValue.type)){let e=a.parent;dt.includes(e.type)||(e=e.parent);const t=a.type===n.InputMap&&a.parent.type===n.Loop;t&&(e=a.parent.parent),a.readsValue.setParent(e,null),a.readsValue.initChildren(null),!t&&e.detachedChildren.includes(a)?e.replaceDetachedChild(a,a.readsValue):t||e.subscribeDetachedChild(a.readsValue)}a.readsValue.addValueReader(a,null)}return a.readsValue}static hydrateReadsValue(a){if(a.initialData.readsValue&&a.initialData.readsValue.type!==n.GenericReference)a.readsValue=C(a.initialData.readsValue,a.project);else if(a.initialData.readsValue&&a.initialData.readsValue.type===n.GenericReference){const e=mi(a.initialData.readsValue,a.project);e&&(a.readsValue=e)}if(a.readsValue){if(tt.includes(a.readsValue.type)){let e=a.parent;dt.includes(e.type)||(e=e.parent);const t=a.type===n.InputMap&&a.parent.type===n.Loop;t&&(e=a.parent.parent),a.readsValue.setParent(e,null),!t&&e.detachedChildren.includes(a)?e.replaceDetachedChild(a,a.readsValue):t||e.subscribeDetachedChild(a.readsValue)}a.readsValue.addValueReader(a,null)}return a.readsValue}}class ja{static initWritesValues(a,e){const t=a.initialData.writesValues.reduce((s,l)=>{if(l.type===n.GenericReference||a.writesValues.some(d=>d.id===l.id))return s;const o=C(l,a.project);return o.setValueWriter(a,null),tt.includes(o.type)&&(o.setParent(e,null),o.initChildren(null)),[...s,o]},[]),i=[...a.writesValues];return a.writesValues=p([...i,...t]),a.writesValues}}class oW{}const ae=class ae extends at{constructor(e){super(e);f(this,"initialData");f(this,"id");f(this,"type",n.Project);f(this,"name",null);f(this,"description",null);f(this,"x");f(this,"y");f(this,"entities",[]);f(this,"projects",[]);f(this,"functions",[]);f(this,"events",[]);f(this,"variableDeclarations",[]);f(this,"variableInstances",[]);f(this,"conditions",[]);f(this,"operations",[]);f(this,"functionCalls",[]);f(this,"loops",[]);f(this,"searches",[]);f(this,"primitives",[]);f(this,"builtInBaseEntities",[]);f(this,"operationDeclarations",[]);f(this,"globalEventActionDescriptors",[]);f(this,"loopDeclarations",[]);f(this,"loopDeclarationsBodies",[]);f(this,"conditionDeclarations",[]);f(this,"valueDescriptors",[]);f(this,"dataTypes",[]);f(this,"project");f(this,"instances",{});f(this,"builtInInstances",{});f(this,"deletedInstances",{});f(this,"errors",[]);f(this,"references",[]);f(this,"history",[]);f(this,"detachedDependents",{});f(this,"knownVersions",null);f(this,"activeVersion",!1);f(this,"initialized",!1);f(this,"startedInitialization",!1);f(this,"onCloseChangeSetCallback",null);this.initialData=e,this.id=e.id,this.name=e.name,this.description=e.description,this.x=0,this.y=0,this.instances[this.id]=this;try{(!ae.UUID||ae.UUID.isBackup)&&(ae.UUID=Fo==null?void 0:Fo()),ae.UUID||(ae.UUID={isBackup:!0,uuid:()=>Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15),fromUUID:t=>t})}catch(t){console.error("Error initializing UUID module",t),ae.UUID={isBackup:!0,uuid:()=>Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15),fromUUID:i=>i}}}static injectUUIDModule(e){ae.UUID=e}static validateGenerationTarget(e,t){let i=JSON.parse(JSON.stringify(e));const s=[];return s.push(...ut(i)),{errors:s,modifiedData:i}}async closePendingCallbacks(){for(let e=0;e<this.history.length;e++){const t=this.history[e];t.dirty&&await t.closeAsync()}}async onCloseChangeSet(e){this.onCloseChangeSetCallback=e,await this.closePendingCallbacks()}async closeChangeSet(e){if(this.onCloseChangeSetCallback){const t=await this.onCloseChangeSetCallback(e);return t.success&&(e.dirty=!1),t}return{success:!1}}toLatestChangeSet(e,t,i,s=!1,l="here-this"){if(!this.history.length)return new b(this,e,t,i,s,l);const o=this.history[this.history.length-1];return o.open?o:this.addChangeSet(new b(this,e,t,i,s,l))}addChangeSet(e){if(!this.history.length)return this.history.push(e),e;const t=this.history.find(l=>l.id===(e==null?void 0:e.id));if(t)return t;const i=this.history.find(l=>l.open);if(i)throw console.log("previouslyStillOpen: ",i),console.log("new change set: ",e),new Error(`There is already an open change-set with id '${i.id}'.`);const s=this.history.findIndex(l=>T(l.timestamp).isBefore(T(e==null?void 0:e.timestamp)));return s===-1?this.history.push(e):this.history.splice(s,0,e),e}discardChangeSet(e){const t=this.history.findIndex(i=>i.id===(e==null?void 0:e.id));return t!==-1&&this.history.splice(t,1),this}undo(){const e=[],t=[],i=[],s=[];return{updated:p(e),added:p(t),removed:p(i),affected:p(s),self:this}}redo(){const e=[],t=[],i=[],s=[];return{updated:p(e),added:p(t),removed:p(i),affected:p(s),self:this}}async inject(...e){return await Promise.all(e.map(t=>new Promise(async i=>{await t.init(this),i(null)}))),this}validateGeneratedUpdate(e){return{errors:[],modifiedData:e}}subscribeDependents(e){return e.forEach(t=>{this.detachedDependents[t.entity.id]||(this.detachedDependents[t.entity.id]=t)}),this}syncDependents(){const e=[],t=[],i=[],s=[];return Object.values(this.detachedDependents).forEach(l=>{const o=l.entity.afterAllChildrenInitialized();e.push(...o.updated),t.push(...o.added),i.push(...o.removed),s.push(...o.affected)}),{updated:p(e),added:p(t),removed:p(i),affected:p(s),self:this}}onDetachedDependencyRemoved(e,t,i){const s=[],l=[],o=[],d=[];return{updated:p(s),added:p(l),removed:p(o),affected:p(d),self:this}}onDetachedDependencyRestored(e,t,i){const s=[],l=[],o=[],d=[];return{updated:p(s),added:p(l),removed:p(o),affected:p(d),self:this}}subscribeToDependencies(){return this}increaseVersion(e){if(e&&!T(e).isValid())throw new Error(`The shared timestamp '${e}' is not a valid ISO 8601 date string.`);return e&&T(e).isSame(T(this.createdAt))?this:(this.previousVersion=this.version,this.version=ae.UUID.uuid(),this.createdAt=T(e).toISOString()||T().toISOString(),this)}captureVersion(){var t;const e=((t=this.knownVersions)==null?void 0:t.get(this.version))||new ae(this);return e.metaSync(this.toMeta(),null),this.knownVersions=this.knownVersions?this.knownVersions.set(this.version,e):new Map([[this.version,e]]),e.entities=this.entities,e.projects=this.projects,e.functions=this.functions,e.events=this.events,e.variableDeclarations=this.variableDeclarations,e.variableInstances=this.variableInstances,e.conditions=this.conditions,e.operations=this.operations,e.functionCalls=this.functionCalls,e.loops=this.loops,e.searches=this.searches,this}recursiveCaptureUpstreamVersions(e){const t=[],i=[],s=[],l=[];return{updated:p(t),added:p(i),removed:p(s),affected:p(l),self:this}}async restoreVersion(e){var d;const t=[],i=[],s=[],l=[];if(this.version===e)return{updated:p(t),added:p(i),removed:p(s),affected:p(l),self:this};if(!this.knownVersions){const u=new Map;for(const[y,c]of this.knownVersions||new Map){if(u.set(y,c),c.activeVersion=!1,c.knownVersions)for(const[I,E]of c.knownVersions)u.set(I,E);c.knownVersions=null}}let o=(d=this.knownVersions)==null?void 0:d.get(e);if(!o){const u=await this.APILoadVersion({},e);if(!u)throw new Error(`Version with id '${e}' for entity with id '${this.id}' not found.`);o=new ae(u)}return this.metaSync(o.toShallowJSON(),null),this.entities=o.entities,this.projects=o.projects,this.functions=o.functions,this.events=o.events,this.variableDeclarations=o.variableDeclarations,this.variableInstances=o.variableInstances,this.conditions=o.conditions,this.operations=o.operations,this.functionCalls=o.functionCalls,this.loops=o.loops,this.searches=o.searches,{updated:p(t),added:p(i),removed:p(s),affected:p(l),self:this}}hydrateAncestors(){const e=[],t=[],i=[],s=[];return{updated:p(e),added:p(t),removed:p(i),affected:p(s),self:this}}afterAllChildrenInitialized(e=null){const t=[],i=[],s=[],l=[];return this.initialized=!0,this.captureVersion(),this.validate(),{updated:p(t),added:p(i),removed:p(s),affected:p(l),self:this}}addSelfToProject(e){const t=[],i=[],s=[],l=[];return this.subscribe(),this.subscribeToDependencies(),{updated:p(t),added:p(i),removed:p(s),affected:p(l),self:this}}get instancesList(){return Object.values(this.instances)}isOperationDeclaration(e){return this.operationDeclarations.includes(e)}isGlobalEventActionDescriptor(e){return this.globalEventActionDescriptors.includes(e)}isLoopDeclaration(e){return this.loopDeclarations.includes(e)}isConditionDeclaration(e){return this.conditionDeclarations.includes(e)}initChildren(e=this.project.addChangeSet(new b(this.project,ae.sessionAuthor,T().toISOString(),this,!0,"init-children"))){return this.initialized||this.startedInitialization?this:(this.startedInitialization=!0,this.entities=this.initialData.entities.map(t=>{const i=C(t,this);return i.setParent(this,null),i.initChildren(e),i}),this.projects=this.initialData.projects.map(t=>{const i=C(t,this);return i.setParent(this,null),i.initChildren(e),i}),this.variableDeclarations=this.initialData.variableDeclarations.map(t=>{const i=C(t,this);return i.setParent(this,null),i.initChildren(e),i}),this.variableInstances=this.initialData.variableInstances.map(t=>{const i=C(t,this);return i.setParent(this,null),i.initChildren(e),i}),this.conditions=this.initialData.conditions.map(t=>{const i=C(t,this);return i.setParent(this,null),i.initChildren(e),i}),this.operations=this.initialData.operations.map(t=>{const i=C(t,this);return i.setParent(this,null),i.initChildren(e),i}),this.functions=this.initialData.functions.map(t=>{const i=C(t,this);return i.setParent(this,null),i.initChildren(e),i}),this.events=this.initialData.events.map(t=>{const i=C(t,this);return i.setParent(this,null),i.initChildren(e),i}),this.functionCalls=this.initialData.functionCalls.map(t=>{const i=C(t,this);return i.setParent(this,null),i.initChildren(e),i}),this.loops=this.initialData.loops.map(t=>{const i=C(t,this);return i.setParent(this,null),i.initChildren(e),i}),this.searches=this.initialData.searches.map(t=>{const i=C(t,this);return i.setParent(this,null),i.initChildren(e),i}),this.attachOrphanReferences(),this.subscribeToDependencies(),this.afterAllChildrenInitialized(e),e==null||e.attemptAutoclose("init-children",this.id),this)}subscribeInstance(e){return(!this.instances[e.id]||this.instances[e.id]!==e)&&(this.instances[e.id]=e),this}subscribeDeletedInstance(e){return(!this.deletedInstances[e.id]||this.deletedInstances[e.id]!==e)&&(this.deletedInstances[e.id]=e),this}subscribeBuiltInInstance(e){return(!this.builtInInstances[e.id]||this.builtInInstances[e.id]!==e)&&(this.builtInInstances[e.id]=e),this}subscribe(){return this}unsubscribe(){return this}unsubscribeInstance(e){return delete this.instances[e.id],this}unsubscribeDeletedInstance(e){return delete this.deletedInstances[e.id],this}findSubscribedBuiltInInstance(e){return this.builtInInstances[e.id]||null}get(e){return this.instances[e]||this.builtInInstances[e]||null}getDeleted(e){return this.deletedInstances[e]||null}getManaged(e){return this.getBuiltIn(e)?null:this.instances[e]||null}getBuiltIn(e){return this.builtInInstances[e]||null}findSubscribedInstanceFromReference(e){return this.instances[e.entityId]||null}findSubscribedBuiltInInstanceFromReference(e){return this.builtInInstances[e.entityId]||null}metaSync(e,t=this.project.addChangeSet(new b(this.project,ae.sessionAuthor,T().toISOString(),this,!0,"meta-sync"))){const i=pt(this,e),s=this.toMeta();return this.name=e.name||s.name,this.description=e.description||s.description,this.x=e.x||s.x,this.y=e.y||s.y,super.metaSync(e),e.deleted===!0&&!s.deleted?t==null||t.add(this,A.Removed):e.deleted===!1&&s.deleted?t==null||t.add(this,A.Added):i&&(t==null||t.add(this,A.Updated)),t==null||t.attemptAutoclose("meta-sync",this.id),this}async APILoad(e=g,...t){return await ae.repository.APILoad(this.id,...t),this}async APICreate(e=g,...t){return await ae.repository.APICreate(this.toShallowJSON(),...t),this}async APIUpdate(e=g,...t){return await ae.repository.APIUpdate(this.toShallowJSON(),...t),this}async APIDelete(e=g,...t){return await ae.repository.APIDelete(this.toShallowJSON(),...t),this}async APIClone(e=g,...t){return await ae.repository.APIClone(this.id,...t),this}async APILoadVersion(e=g,t,...i){return await ae.repository.APILoadVersion(this.id,t,...i)}remove({ignoreUpstream:e}={ignoreUpstream:!1},t=this.project.addChangeSet(new b(this.project,ae.sessionAuthor,T().toISOString(),this,!0,"remove-entity"))){return{added:[],updated:[],removed:[],affected:[],self:this}}restore({}={},e=this.project.addChangeSet(new b(this.project,ae.sessionAuthor,T().toISOString(),this,!0,"restore-entity"))){return{added:[],updated:[],removed:[],affected:[],self:this}}getAllBuiltInIds(){const e=new Set;return[...this.primitives.flatMap(t=>t.toFlatIds(e)),...this.builtInBaseEntities.flatMap(t=>t.toFlatIds(e)),...this.operationDeclarations.flatMap(t=>t.toFlatIds(e)),...this.globalEventActionDescriptors.flatMap(t=>t.toFlatIds(e)),...this.loopDeclarations.flatMap(t=>t.toFlatIds(e)),...this.conditionDeclarations.flatMap(t=>t.toFlatIds(e)),...this.valueDescriptors.flatMap(t=>t.toFlatIds(e)),...this.dataTypes.flatMap(t=>t.toFlatIds(e))]}getAllBuiltIn(){const e=new Set;return[...this.primitives.flatMap(t=>t.toFlat(e)),...this.builtInBaseEntities.flatMap(t=>t.toFlat(e)),...this.operationDeclarations.flatMap(t=>t.toFlat(e)),...this.globalEventActionDescriptors.flatMap(t=>t.toFlat(e)),...this.loopDeclarations.flatMap(t=>t.toFlat(e)),...this.conditionDeclarations.flatMap(t=>t.toFlat(e)),...this.valueDescriptors.flatMap(t=>t.toFlat(e)),...this.dataTypes.flatMap(t=>t.toFlat(e))]}toFlat(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[this,...this.entities.flatMap(i=>i.toFlat(e)),...this.functions.flatMap(i=>i.toFlat(e)),...this.events.flatMap(i=>i.toFlat(e)),...this.projects.flatMap(i=>i.toFlat(e)),...this.variableDeclarations.flatMap(i=>i.toFlat(e)),...this.variableInstances.flatMap(i=>i.toFlat(e)),...this.conditions.flatMap(i=>i.toFlat(e)),...this.operations.flatMap(i=>i.toFlat(e)),...this.functionCalls.flatMap(i=>i.toFlat(e)),...this.loops.flatMap(i=>i.toFlat(e)),...this.searches.flatMap(i=>i.toFlat(e))])}toFlatIds(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[this.id,...this.entities.flatMap(i=>i.toFlatIds(e)),...this.functions.flatMap(i=>i.toFlatIds(e)),...this.events.flatMap(i=>i.toFlatIds(e)),...this.projects.flatMap(i=>i.toFlatIds(e)),...this.variableDeclarations.flatMap(i=>i.toFlatIds(e)),...this.variableInstances.flatMap(i=>i.toFlatIds(e)),...this.conditions.flatMap(i=>i.toFlatIds(e)),...this.operations.flatMap(i=>i.toFlatIds(e)),...this.functionCalls.flatMap(i=>i.toFlatIds(e)),...this.loops.flatMap(i=>i.toFlatIds(e)),...this.searches.flatMap(i=>i.toFlatIds(e))])}toMeta(){return{id:this.id,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,description:this.description,type:this.type,name:this.name}}toJSON(e=new Set){return e.has(this.id)?this.toReference():(e.add(this.id),{id:this.id,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,type:this.type,name:this.name,description:this.description,entities:this.entities.map(t=>t.toJSON(e)),variableDeclarations:this.variableDeclarations.map(t=>t.toJSON(e)),variableInstances:this.variableInstances.map(t=>t.toJSON(e)),conditions:this.conditions.map(t=>t.toJSON(e)),operations:this.operations.map(t=>t.toJSON(e)),loops:this.loops.map(t=>t.toJSON(e)),searches:this.searches.map(t=>t.toJSON(e)),functions:this.functions.map(t=>t.toJSON(e)),events:this.events.map(t=>t.toJSON(e)),projects:this.projects.map(t=>t.toJSON(e)),functionCalls:this.functionCalls.map(t=>t.toJSON(e))})}toJSONClone(e={uuidStrategy:"uuid"}){const t=new Map,i=new Set,s=this.getAllBuiltInIds();return Object.keys(this.instances).forEach(l=>{if(s.includes(l)){t.set(l,l);return}t.set(l,ae.UUID.uuid())}),i.add(this.id),{id:t.get(this.id),version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,type:this.type,name:this.name,description:this.description,entities:this.entities.map(l=>l.toJSONClone({...e,seenEntityMaps:t,seenEntities:i,newId:null})),projects:this.projects.map(l=>l.toJSONClone({...e,seenEntityMaps:t,seenEntities:i,newId:null})),variableDeclarations:this.variableDeclarations.map(l=>l.toJSONClone({...e,seenEntityMaps:t,seenEntities:i,newId:null})),variableInstances:this.variableInstances.map(l=>l.toJSONClone({...e,seenEntityMaps:t,seenEntities:i,newId:null})),conditions:this.conditions.map(l=>l.toJSONClone({...e,seenEntityMaps:t,seenEntities:i,newId:null})),operations:this.operations.map(l=>l.toJSONClone({...e,seenEntityMaps:t,seenEntities:i,newId:null})),functions:this.functions.map(l=>l.toJSONClone({...e,seenEntityMaps:t,seenEntities:i,newId:null})),events:this.events.map(l=>l.toJSONClone({...e,seenEntityMaps:t,seenEntities:i,newId:null})),functionCalls:this.functionCalls.map(l=>l.toJSONClone({...e,seenEntityMaps:t,seenEntities:i,newId:null})),loops:this.loops.map(l=>l.toJSONClone({...e,seenEntityMaps:t,seenEntities:i,newId:null})),searches:this.searches.map(l=>l.toJSONClone({...e,seenEntityMaps:t,seenEntities:i,newId:null}))}}toReference(e=q){var i;let t=this.id;return(i=e.seenEntityMaps)!=null&&i.has(this.id)&&(t=e.seenEntityMaps.get(this.id)),{id:t+"--"+ae.UUID.uuid()+"--ref",type:n.GenericReference,entityId:t,version:this.version,entityType:this.type}}toShallowJSON(e=q){var i;let t=this.id;return(i=e.seenEntityMaps)!=null&&i.has(this.id)&&(t=e.seenEntityMaps.get(this.id)),{id:t,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,type:this.type,name:this.name,description:this.description,entities:this.entities.map(s=>s.toReference(e)),functions:this.functions.map(s=>s.toReference(e)),events:this.events.map(s=>s.toReference(e)),projects:this.projects.map(s=>s.toReference(e)),variableDeclarations:this.variableDeclarations.map(s=>s.toReference(e)),variableInstances:this.variableInstances.map(s=>s.toReference(e)),conditions:this.conditions.map(s=>s.toReference(e)),operations:this.operations.map(s=>s.toReference(e)),functionCalls:this.functionCalls.map(s=>s.toReference(e)),loops:this.loops.map(s=>s.toReference(e)),searches:this.searches.map(s=>s.toReference(e))}}toFlatJSON(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[this.toShallowJSON(),...this.entities.flatMap(i=>i.toFlatJSON(e)),...this.functions.flatMap(i=>i.toFlatJSON(e)),...this.events.flatMap(i=>i.toFlatJSON(e)),...this.projects.flatMap(i=>i.toFlatJSON(e)),...this.variableDeclarations.flatMap(i=>i.toFlatJSON(e)),...this.variableInstances.flatMap(i=>i.toFlatJSON(e)),...this.conditions.flatMap(i=>i.toFlatJSON(e)),...this.operations.flatMap(i=>i.toFlatJSON(e)),...this.functionCalls.flatMap(i=>i.toFlatJSON(e)),...this.loops.flatMap(i=>i.toFlatJSON(e)),...this.searches.flatMap(i=>i.toFlatJSON(e))])}toGenerationTarget(){return{id:this.id,type:this.type,name:this.name,description:this.description}}toFlatGenerationTarget(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[...this.entities.flatMap(i=>i.toFlatGenerationTarget(e)),...this.functions.flatMap(i=>i.toFlatGenerationTarget(e)),...this.events.flatMap(i=>i.toFlatGenerationTarget(e)),...this.projects.flatMap(i=>i.toFlatGenerationTarget(e)),...this.variableDeclarations.flatMap(i=>i.toFlatGenerationTarget(e)),...this.variableInstances.flatMap(i=>i.toFlatGenerationTarget(e)),...this.conditions.flatMap(i=>i.toFlatGenerationTarget(e)),...this.operations.flatMap(i=>i.toFlatGenerationTarget(e)),...this.functionCalls.flatMap(i=>i.toFlatGenerationTarget(e)),...this.loops.flatMap(i=>i.toFlatGenerationTarget(e)),...this.searches.flatMap(i=>i.toFlatGenerationTarget(e))])}clearErrors(){return this.errors=[],this.entities.forEach(e=>e.clearErrors()),this.projects.forEach(e=>e.clearErrors()),this.functions.forEach(e=>e.clearErrors()),this.events.forEach(e=>e.clearErrors()),this.variableDeclarations.forEach(e=>e.clearErrors()),this.variableInstances.forEach(e=>e.clearErrors()),this.conditions.forEach(e=>e.clearErrors()),this.operations.forEach(e=>e.clearErrors()),this.functionCalls.forEach(e=>e.clearErrors()),this.loops.forEach(e=>e.clearErrors()),this.searches.forEach(e=>e.clearErrors()),this}validate(){const e=lZ(),t=this.toJSON();return e.safeParse(t),this.validateChildren(),{success:!0,error:null,data:t}}validateChildren(){this.entities.forEach(e=>e.validate()),this.projects.forEach(e=>e.validate()),this.functions.forEach(e=>e.validate()),this.events.forEach(e=>e.validate()),this.variableDeclarations.forEach(e=>e.validate()),this.variableInstances.forEach(e=>e.validate()),this.conditions.forEach(e=>e.validate()),this.operations.forEach(e=>e.validate()),this.functionCalls.forEach(e=>e.validate()),this.loops.forEach(e=>e.validate()),this.searches.forEach(e=>e.validate())}getErrors(){return[...this.errors,...this.entities.flatMap(t=>t.getErrors()),...this.projects.flatMap(t=>t.getErrors()),...this.functions.flatMap(t=>t.getErrors()),...this.events.flatMap(t=>t.getErrors()),...this.variableDeclarations.flatMap(t=>t.getErrors()),...this.variableInstances.flatMap(t=>t.getErrors()),...this.conditions.flatMap(t=>t.getErrors()),...this.operations.flatMap(t=>t.getErrors()),...this.functionCalls.flatMap(t=>t.getErrors()),...this.loops.flatMap(t=>t.getErrors()),...this.searches.flatMap(t=>t.getErrors())]}getShallowErrors(){return this.errors}clone(){return this}getDefinitionEntity(e){return this.entities.find(t=>t.id===e)||null}addDefinitionEntityFromTransfer(e){const t=C(e,this);return this.addDefinitionEntity(t),t}addDefinitionEntity(e){return this.entities.includes(e)||this.entities.push(e),e}addFunctionDeclarationFromTransfer(e){const t=C(e,this);return this.addFunctionDeclaration(t),t}addFunctionDeclaration(e){return this.functions.includes(e)||this.functions.push(e),e}addFunctionCallFromTransfer(e){const t=C(e,this);return this.addFunctionCall(t),t}addFunctionCall(e){return this.functionCalls.includes(e)||this.functionCalls.push(e),e}addVariableDeclarationFromTransfer(e){const t=C(e,this);return this.addVariableDeclaration(t),t}addVariableDeclaration(e){return this.variableDeclarations.includes(e)||this.variableDeclarations.push(e),e}addVariableInstanceFromTransfer(e){const t=C(e,this);return this.addVariableInstance(t),t}addVariableInstance(e){return this.variableInstances.includes(e)||this.variableInstances.push(e),e}addInstalledProjectFromTransfer(e){const t=C(e,this);return this.addInstalledProject(t),this}addInstalledProject(e){return this.projects.includes(e)||this.projects.push(e),this}addGlobalEventFromTransfer(e){const t=C(e,this);return this.addGlobalEvent(t),this}addGlobalEvent(e){return this.events.includes(e)||this.events.push(e),this}addConditionFromTransfer(e){const t=C(e,this);return this.addCondition(t),this}addCondition(e){return this.conditions.includes(e)||this.conditions.push(e),this}addOperationFromTransfer(e){const t=C(e,this);return this.addOperation(t),this}addOperation(e){return this.operations.includes(e)||this.operations.push(e),this}addLoopFromTransfer(e){const t=C(e,this);return this.addLoop(t),this}addLoop(e){return this.loops.includes(e)||this.loops.push(e),this}addSearchFromTransfer(e){const t=C(e,this);return this.addSearch(t),this}addSearch(e){return this.searches.includes(e)||this.searches.push(e),this}removeDefinitionEntity(e){const t=this.entities.findIndex(i=>i.id===e.id);if(t>-1){const i=this.entities[t];return this.entities.splice(t,1),i}return null}removeFunctionDeclaration(e){const t=this.functions.findIndex(i=>i.id===e.id);if(t>-1){const i=this.functions[t];return this.functions.splice(t,1),i}return null}removeExternalProject(e){const t=this.projects.findIndex(i=>i.id===e.id);if(t>-1){const i=this.projects[t];return this.projects.splice(t,1),i}return null}removeGlobalEvent(e){const t=this.events.findIndex(i=>i.id===e.id);if(t>-1){const i=this.events[t];return this.events.splice(t,1),i}return null}removeTopLevelVariableDeclaration(e){if(e.type!==n.VariableDeclaration)return null;const t=this.variableDeclarations.findIndex(i=>i.id===e.id);if(t>-1){const i=this.variableDeclarations[t];return this.variableDeclarations.splice(t,1),i}return null}getEntryPoints(){return[...this.functions,...this.events,...this.entities.flatMap(t=>t.methods)]}getFunctionDeclaration(e){return this.functions.find(t=>t.id===e)||null}getConditions(){return[...this.conditions,...this.getEntryPoints().reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Condition)]},[]),...this.functionCalls.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Condition)]},[]),...this.operations.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Condition)]},[]),...this.loops.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Condition)]},[]),...this.searches.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Condition)]},[])]}getOperations(){return[...this.operations,...this.getEntryPoints().reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Operation)]},[]),...this.functionCalls.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Operation)]},[]),...this.conditions.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Operation)]},[]),...this.loops.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Operation)]},[]),...this.searches.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Operation)]},[])]}getFunctionCalls(){return[...this.functionCalls,...this.getEntryPoints().reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.FunctionCall)]},[]),...this.conditions.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.FunctionCall)]},[]),...this.operations.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.FunctionCall)]},[]),...this.loops.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.FunctionCall)]},[]),...this.searches.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.FunctionCall)]},[])]}getVariables(){return[...this.variableDeclarations,...this.getEntryPoints().reduce((t,i)=>{const s=Ye(i);return[...t,...s]},[]),...this.functionCalls.reduce((t,i)=>{const s=Ye(i);return[...t,...s]},[]),...this.conditions.reduce((t,i)=>{const s=Ye(i);return[...t,...s]},[]),...this.operations.reduce((t,i)=>{const s=Ye(i);return[...t,...s]},[]),...this.loops.reduce((t,i)=>{const s=Ye(i);return[...t,...s]},[]),...this.searches.reduce((t,i)=>{const s=Ye(i);return[...t,...s]},[])]}getVariableInstances(){return[...this.variableInstances,...this.getEntryPoints().reduce((t,i)=>{const l=Ye(i).filter(o=>o.type===n.VariableInstance);return[...t,...l]},[]),...this.functionCalls.reduce((t,i)=>{const l=Ye(i).filter(o=>o.type===n.VariableInstance);return[...t,...l]},[]),...this.conditions.reduce((t,i)=>{const l=Ye(i).filter(o=>o.type===n.VariableInstance);return[...t,...l]},[]),...this.operations.reduce((t,i)=>{const l=Ye(i).filter(o=>o.type===n.VariableInstance);return[...t,...l]},[]),...this.loops.reduce((t,i)=>{const l=Ye(i).filter(o=>o.type===n.VariableInstance);return[...t,...l]},[]),...this.searches.reduce((t,i)=>{const l=Ye(i).filter(o=>o.type===n.VariableInstance);return[...t,...l]},[])]}getVariableDeclarations(){return p([...this.variableDeclarations,...this.getEntryPoints().reduce((t,i)=>{const l=Ye(i).filter(o=>o.type===n.VariableDeclaration);return[...t,...l]},[]),...this.functionCalls.reduce((t,i)=>{const l=Ye(i).filter(o=>o.type===n.VariableDeclaration);return[...t,...l]},[]),...this.conditions.reduce((t,i)=>{const l=Ye(i).filter(o=>o.type===n.VariableDeclaration);return[...t,...l]},[]),...this.operations.reduce((t,i)=>{const l=Ye(i).filter(o=>o.type===n.VariableDeclaration);return[...t,...l]},[]),...this.loops.reduce((t,i)=>{const l=Ye(i).filter(o=>o.type===n.VariableDeclaration);return[...t,...l]},[]),...this.searches.reduce((t,i)=>{const l=Ye(i).filter(o=>o.type===n.VariableDeclaration);return[...t,...l]},[])])}getLoops(){return[...this.loops,...this.getEntryPoints().reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Loop)]},[]),...this.functionCalls.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Loop)]},[]),...this.conditions.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Loop)]},[]),...this.operations.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Loop)]},[]),...this.searches.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Loop)]},[])]}getSearches(){return[...this.searches,...this.getEntryPoints().reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Search)]},[]),...this.functionCalls.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Search)]},[]),...this.conditions.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Search)]},[]),...this.operations.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Search)]},[]),...this.loops.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Search)]},[])]}attachOrphanReferences(){const e=this.getVariableInstances(),t=this.getVariableDeclarations();return e.forEach(i=>{if(!i.declaration){const s=i.initialData,l=s.declaration.entityId||s.declaration.id,o=t.find(d=>d.id===l);o&&i.setDeclaration(o)}}),this}getBuiltInPersistedEntity(){return this.builtInBaseEntities.find(e=>e.name===z.PERSISTED_ENTITY)||null}};f(ae,"sessionAuthor","1"),f(ae,"UUID",{isBackup:!0,uuid:()=>Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15),fromUUID:e=>e}),f(ae,"repository",{APICreate:async(e,...t)=>e,APIUpdate:async(e,...t)=>e,APIDelete:async(e,...t)=>e,APIClone:async(e,...t)=>{},APILoad:async(e,...t)=>null,APILoadVersion:async(e,t,...i)=>null}),f(ae,"type",n.Project),f(ae,"USER_MANAGED_PARENT_TYPES",[]),f(ae,"PARENT_TYPES",[...ae.USER_MANAGED_PARENT_TYPES]),f(ae,"MUTABLE_BASE_PROPERTIES",["name","description"]),f(ae,"INMUTABLE_BASE_PROPERTIES",["id","type","version","createdAt","author","previousVersion"]),f(ae,"BASE_PROPERTIES",[...ae.MUTABLE_BASE_PROPERTIES,...ae.INMUTABLE_BASE_PROPERTIES]),f(ae,"MUTABLE_META_PROPERTIES",[...ae.MUTABLE_BASE_PROPERTIES,"x","y"]),f(ae,"INMUTABLE_META_PROPERTIES",[...ae.INMUTABLE_BASE_PROPERTIES]),f(ae,"META_PROPERTIES",[...ae.MUTABLE_META_PROPERTIES,...ae.INMUTABLE_META_PROPERTIES]),f(ae,"MUTABLE_UPSTREAM_PROPERTIES",[]),f(ae,"INMUTABLE_UPSTREAM_PROPERTIES",["primitives","builtInBaseEntities","operationDeclarations","globalEventActionDescriptors","loopDeclarations","builtInInstances"]),f(ae,"UPSTREAM_PROPERTIES",[...ae.MUTABLE_UPSTREAM_PROPERTIES,...ae.INMUTABLE_UPSTREAM_PROPERTIES]),f(ae,"MUTABLE_DOWNSTREAM_PROPERTIES",["entities","projects","functions","events","variableDeclarations","variableInstances","conditions","operations","functionCalls","loops","searches"]),f(ae,"INMUTABLE_DOWNSTREAM_PROPERTIES",[]),f(ae,"DOWNSTREAM_PROPERTIES",[...ae.MUTABLE_DOWNSTREAM_PROPERTIES,...ae.INMUTABLE_DOWNSTREAM_PROPERTIES]),f(ae,"PROPERTIES",[...ae.META_PROPERTIES,...ae.UPSTREAM_PROPERTIES,...ae.DOWNSTREAM_PROPERTIES]);let m=ae;var aw=(r=>(r.PersistChangeSet="persist-change-set",r.CreateSingle="create-single",r.CreateBulk="create-bulk",r.CreateSingleNested="create-single-nested",r.CreateBulkNested="create-bulk-nested",r.Update="update",r.Clone="clone",r.Delete="delete",r.Load="load",r.LoadNested="load-nested",r.LoadVersion="load-version",r))(aw||{});class ow extends We{constructor(e){super(Oi,e);f(this,"id",Xe.Parallel);f(this,"name",Xe.Parallel);f(this,"description","Execute a list of actions one after the other");f(this,"version","1");f(this,"autoexecutable",!0);f(this,"initialData",Oi);f(this,"type",n.ActionDescriptor);f(this,"inputs",[]);f(this,"outputs",[]);f(this,"error",null);f(this,"project");this.project=e,this.inputs=Oi.inputs.map(t=>{const i=C(t,this.project);return i.setParent(this,null),i.initChildren(null),i}),this.outputs=Oi.outputs.map(t=>{const i=C(t,this.project);return i.setParent(this,null),i.initChildren(null),i}),this.error=Oi.error?C(Oi.error,this.project):null}}class lw extends We{constructor(e){super(qt,e);f(this,"id",qt.id);f(this,"name",qt.name);f(this,"description",qt.description);f(this,"version",qt.version);f(this,"autoexecutable",!1);f(this,"initialData",qt);f(this,"type",n.ActionDescriptor);f(this,"inputs",[]);f(this,"outputs",[]);f(this,"error",null);f(this,"project");this.project=e,this.inputs=qt.inputs.map(t=>{const i=C(t,this.project);return i.setParent(this,null),i.initChildren(null),i}),this.outputs=qt.outputs.map(t=>{const i=C(t,this.project);return i.setParent(this,null),i.initChildren(null),i}),this.error=qt.error?C(qt.error,this.project):null}}class dw extends We{constructor(e){super(nr,e);f(this,"id",Xe.Sequential);f(this,"name",Xe.Sequential);f(this,"description","Execute a list of actions one after the other");f(this,"version","1");f(this,"autoexecutable",!0);f(this,"initialData",nr);f(this,"type",n.ActionDescriptor);f(this,"inputs",[]);f(this,"outputs",[]);f(this,"error",null);f(this,"project");this.project=e,this.inputs=nr.inputs.map(t=>{const i=C(t,this.project);return i.setParent(this,null),i.initChildren(null),i}),this.outputs=nr.outputs.map(t=>{const i=C(t,this.project);return i.setParent(this,null),i.initChildren(null),i}),this.error=nr.error?C(nr.error,this.project):null}}class lW extends We{constructor(a){super(Bs,a)}}class dW extends We{constructor(a){super(tn,a)}}class uW extends We{constructor(e){super(rn,e);f(this,"autoexecutable",!0)}getEntityToMatchInputMap(e){return e.inputs.find(t=>{var i;return((i=t.declaration)==null?void 0:i.id)===k.operation[Qe.Validate].inputs.entityToMatch.id})||null}getDataToValidateInputMap(e){return e.inputs.find(t=>{var i;return((i=t.declaration)==null?void 0:i.id)===k.operation[Qe.Validate].inputs.dataToValidate.id})||null}getOutputDataOutputMap(e){return e.outputs.find(t=>{var i;return((i=t.declaration)==null?void 0:i.id)===k.operation[Qe.Validate].outputs.outputEntity.id})||null}getEntityToMatch(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"get-entity-to-match-validate-data"))){let i=null;if(e.readsValue){const l=e.readsValue.getDataType(t);l&&l.entity&&l.entity.type===n.DefinitionEntity&&(i=l.entity)}const s=e.getDefaultValue();return!i&&s&&s.valueAsTypeSingle&&!Array.isArray(s.valueAsTypeSingle)&&s.valueAsTypeSingle.type===n.DefinitionEntity&&(i=s.valueAsTypeSingle),i}syncOperationInstance(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"sync-operation-instance-validate-data"))){const i=[],s=[],l=[],o=[],d=this.getEntityToMatchInputMap(e);if(d){const{added:c,updated:I,removed:E,affected:O}=this.syncEntityToMatchInputMapDataType(d,t);i.push(...I),s.push(...c),l.push(...E),o.push(...O)}const u=this.getDataToValidateInputMap(e);if(u){const{added:c,updated:I,removed:E,affected:O}=this.syncDataToValidateInputMapDataType(u,t);i.push(...I),s.push(...c),l.push(...E),o.push(...O)}const y=this.getOutputDataOutputMap(e);if(y){const{added:c,updated:I,removed:E,affected:O}=this.syncOutputDataOutputMapDataType(y,t);i.push(...I),s.push(...c),l.push(...E),o.push(...O)}return t==null||t.attemptAutoclose("sync-operation-instance-validate-data",this.id),{updated:p(i),added:p(s),removed:p(l),affected:p(o),self:e}}syncEntityToMatchInputMapDataType(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"sync-entity-to-match-input-map-data-type"))){var u,y,c;const i=[],s=[],l=[],o=[];if(((u=e.declaration)==null?void 0:u.id)!==k.operation[Qe.Validate].inputs.entityToMatch.id)return t==null||t.attemptAutoclose("sync-entity-to-match-input-map-data-type",this.id),{updated:[],added:[],removed:[],affected:[],self:null};if(!e.dataType){const I={id:m.UUID.uuid(),version:m.UUID.uuid(),createdAt:(t==null?void 0:t.timestamp)||new Date().toISOString(),author:"1",previousVersion:null,deleted:!1,type:n.DataType,parentRelationType:null,options:null,implementationChooseOne:!1,isList:!1,andChildrenGroup:null,orChildrenGroup:null,asType:!0,entity:null,like:!0,inferred:!0,parent:e.toReference()},E=C(I,e.project);E.setParent(e,t),E.initChildren(t),t==null||t.add(E,A.Added),i.push(E),e.setDataType(E)}(y=e.dataType)==null||y.metaSync({inferred:!0,like:!1,asType:!0},t);const d=this.getEntityToMatch(e,t);return(c=e.dataType)==null||c.setEntity(d),e.dataType&&s.push(e.dataType),t==null||t.attemptAutoclose("sync-entity-to-match-input-map-data-type",this.id),{updated:p(s),added:p(i),removed:p(l),affected:p(o),self:e.dataType}}syncDataToValidateInputMapDataType(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"sync-data-to-validate-input-map-data-type"))){var c,I,E;const i=[],s=[],l=[],o=[];if(((c=e.declaration)==null?void 0:c.id)!==k.operation[Qe.Validate].inputs.dataToValidate.id)return t==null||t.attemptAutoclose("sync-data-to-validate-input-map-data-type",this.id),{updated:[],added:[],removed:[],affected:[],self:null};const d=this.getEntityToMatchInputMap(e.parent);if(!d)return t==null||t.attemptAutoclose("sync-data-to-validate-input-map-data-type",this.id),{updated:[],added:[],removed:[],affected:[],self:null};if(!this.getEntityToMatch(d,t))return t==null||t.attemptAutoclose("sync-data-to-validate-input-map-data-type",this.id),{updated:[],added:[],removed:[],affected:[],self:null};if(!e.dataType){const O={id:m.UUID.uuid(),version:m.UUID.uuid(),createdAt:(t==null?void 0:t.timestamp)||new Date().toISOString(),author:"1",previousVersion:null,deleted:!1,type:n.DataType,parentRelationType:null,options:null,implementationChooseOne:!1,isList:!1,andChildrenGroup:null,orChildrenGroup:null,asType:!1,entity:null,like:!0,inferred:!0,parent:e.toReference()},P=C(O,e.project);P.setParent(e,t),P.initChildren(t),t==null||t.add(P,A.Added),i.push(P),e.setDataType(P)}(I=e.dataType)==null||I.metaSync({inferred:!0,like:!0,asType:!1},t);const y=this.getEntityToMatch(d,t);return(E=e.dataType)==null||E.setEntity(y),e.dataType&&s.push(e.dataType),t==null||t.attemptAutoclose("sync-data-to-validate-input-map-data-type",this.id),{updated:p(s),added:p(i),removed:p(l),affected:p(o),self:e.dataType}}syncOutputDataOutputMapDataType(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"sync-output-data-output-map-data-type"))){var c,I,E;const i=[],s=[],l=[],o=[];if(((c=e.declaration)==null?void 0:c.id)!==k.operation[Qe.Validate].outputs.outputEntity.id)return t==null||t.attemptAutoclose("sync-output-data-output-map-data-type",this.id),{updated:[],added:[],removed:[],affected:[],self:null};const d=this.getEntityToMatchInputMap(e.parent);if(!d)return t==null||t.attemptAutoclose("sync-output-data-output-map-data-type",this.id),{updated:[],added:[],removed:[],affected:[],self:null};if(!this.getEntityToMatch(d,t))return t==null||t.attemptAutoclose("sync-output-data-output-map-data-type",this.id),{updated:[],added:[],removed:[],affected:[],self:null};if(!e.dataType){const O={id:m.UUID.uuid(),version:m.UUID.uuid(),createdAt:(t==null?void 0:t.timestamp)||new Date().toISOString(),author:"1",previousVersion:null,deleted:!1,type:n.DataType,parentRelationType:null,options:null,implementationChooseOne:!1,isList:!1,andChildrenGroup:null,orChildrenGroup:null,asType:!1,entity:null,like:!0,inferred:!0,parent:e.toReference()},P=C(O,e.project);P.setParent(e,t),P.initChildren(t),t==null||t.add(P,A.Added),i.push(P),e.setDataType(P)}(I=e.dataType)==null||I.metaSync({inferred:!0,like:!0,asType:!1},t);const y=this.getEntityToMatch(d,t);return(E=e.dataType)==null||E.setEntity(y),e.dataType&&s.push(e.dataType),t==null||t.attemptAutoclose("sync-output-data-output-map-data-type",this.id),{updated:p(s),added:p(i),removed:p(l),affected:p(o),self:e.dataType}}inferInputMapDataType(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"infer-input-map-data-type-validate-data"))){var i,s;if(((i=e.declaration)==null?void 0:i.id)===k.operation[Qe.Validate].inputs.entityToMatch.id){const{added:l,updated:o,removed:d,affected:u}=this.syncEntityToMatchInputMapDataType(e,t);return t==null||t.attemptAutoclose("infer-input-map-data-type-validate-data",this.id),{updated:p(o),added:p(l),removed:p(d),affected:p(u),self:e.dataType}}else if(((s=e.declaration)==null?void 0:s.id)===k.operation[Qe.Validate].inputs.dataToValidate.id){const{added:l,updated:o,removed:d,affected:u}=this.syncDataToValidateInputMapDataType(e,t);return t==null||t.attemptAutoclose("infer-input-map-data-type",this.id),{updated:p(o),added:p(l),removed:p(d),affected:p(u),self:e.dataType}}return{updated:[],added:[],removed:[],affected:[],self:null}}inferOutputMapDataType(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"infer-output-map-data-type-validate-data"))){var i;if(((i=e.declaration)==null?void 0:i.id)===k.operation[Qe.Validate].outputs.outputEntity.id){const{added:s,updated:l,removed:o,affected:d}=this.syncOutputDataOutputMapDataType(e,t);return t==null||t.attemptAutoclose("infer-output-map-data-type-validate-data",this.id),{updated:p(l),added:p(s),removed:p(o),affected:p(d),self:e.dataType}}return{updated:[],added:[],removed:[],affected:[],self:null}}}class pW extends We{constructor(a){super(Id,a)}}class cW extends We{constructor(a){super(Ad,a)}}class fW extends We{constructor(a){super(bd,a)}}class yW extends We{constructor(a){super(za,a)}}class hW extends We{constructor(a){super(qa,a)}}class mW extends We{constructor(a){super(Vs,a)}}function vW(r){const a=[new dw(r),new ow(r),new lw(r),new lW(r),new dW(r),new uW(r),new yW(r),new pW(r),new fW(r),new cW(r),new hW(r),new mW(r),new We(Td,r),new We(vd,r)];return a.forEach(e=>{e.initChildren(null),r.subscribeBuiltInInstance(e)}),r.operationDeclarations=a,a}class uw extends Ki{constructor(e){super(Ct,e);f(this,"initialData");f(this,"id",z.PERSISTED_ENTITY);f(this,"version","1");f(this,"name",z.PERSISTED_ENTITY);f(this,"description",Ct.description);f(this,"type",n.BuiltInBaseEntity);f(this,"abstract",Ct.abstract);f(this,"static",Ct.static);f(this,"properties",[]);f(this,"methods",[]);f(this,"abstractMethods",[]);f(this,"extends",[]);f(this,"errors",[]);f(this,"project");this.initialData=Ct,this.project=e,this.id=Ct.id,this.version=Ct.version,this.name=Ct.name,this.static=Ct.static,this.abstract=Ct.abstract,this.properties=this.initialData.properties.map(t=>{const i=C(t,this.project);return i.setParent(this,null),i.initChildren(null),i}),this.methods=this.initialData.methods.map(t=>{const i=C(t,this.project);return i.parent=this,i}),this.abstractMethods=this.initialData.abstractMethods.map(t=>{const i=C(t,this.project);return i.parent=this,i}),this.extends=this.initialData.extends.map(t=>C(t,this.project))}}function TW(r){const a=[new uw(r),new Ki(js,r),new Ki(ji,r),new Ki(co,r)];return a.forEach(e=>{r.subscribeBuiltInInstance(e)}),r.builtInBaseEntities=a,a}function IW(r){const a=[new oi(se,r),new oi(er,r),new oi(ve,r),new oi(pd,r),new oi(Ot,r),new oi(tr,r),new oi(Li,r),new oi(ir,r),new oi(Fn,r)];return a.forEach(e=>{r.subscribeBuiltInInstance(e)}),r.primitives=a,a}function EW(r){const a=[new We(yo,r)];return a.forEach(e=>{e.initChildren(null),r.subscribeBuiltInInstance(e)}),r.globalEventActionDescriptors=a,a}function AW(r){const a=[new We(Ls,r),new We(Er,r),new We(Ms,r),new We(Sn,r),new We(Zn,r),new We(io,r)];a.forEach(t=>{t.initChildren(null),r.subscribeBuiltInInstance(t)}),r.loopDeclarations=a;const e=[new We(ao,r),new We(Ns,r),new We(no,r),new We(Ud,r),new We(jd,r),new We(ro,r)];return e.forEach(t=>{t.initChildren(null),r.subscribeBuiltInInstance(t)}),r.loopDeclarationsBodies=e,a}function bW(r){const a=[new qr(ho,r)];return a.forEach(e=>{e.initChildren(null),r.subscribeBuiltInInstance(e)}),r.valueDescriptors=a,a}function RW(r){const a=[new We(ln,r),new We(Yn,r)];return a.forEach(e=>{e.initChildren(null),r.subscribeBuiltInInstance(e)}),r.conditionDeclarations=a,a}const Un={},nd={},$a={empty:!1,enrich:!0,mock:!1,ignoreCache:!1,onFetch:async()=>null,manuallyInit:!1};function pw(r,{enrich:a}={enrich:!0}){const e=r.project,t=r.record,i=new Zl(e),s=new Set;t[e.id]=e,s.add(e.id);const l=T().toISOString();Object.values(t).forEach(u=>{!u||i.allBuiltInEntityIds.includes(u.id)||s.add(u.id)}),i.order=Array.from(s),i.flatRecord=t,i.orderEntities();const o=sd(r.project);o.instances[e.id]=o;const d=a?o.addChangeSet(new b(o,"",l,o)):null;return i.visit(u=>{if(u.id===o.id)return;const y=C(u,o);y.hydrateAncestors(),y.addSelfToProject(null)}),a?(i.visit(u=>{const y=o.get(u.id);y&&y.afterAllChildrenInitialized(d)}),o.afterAllChildrenInitialized(d)):ad(o,l).forEach(y=>{y.remove({ignoreUpstream:!0},null)}),o.instancesList.forEach(u=>{u.previousVersion=null}),d==null||d.close(),o}async function DW(r,a=$a){const e={...$a,...a};if(e.empty)return{data:{project:{id:r.id,type:n.Project,version:m.UUID.uuid(),createdAt:T().toISOString(),author:m.sessionAuthor,previousVersion:null,deleted:!1,name:null,description:null,projects:[],entities:[],operations:[],functions:[],variableDeclarations:[],variableInstances:[],functionCalls:[],conditions:[],loops:[],searches:[],events:[]},record:{}}};if(e.mock){const i={...lp};return i.id=r.id,{data:{project:i,record:{}}}}return console.log("Fetching project from external API"),new Promise(async i=>{if(e.onFetch){const s=await e.onFetch(r.id);if(s){i({data:s});return}}else i({data:null})})}function sd(r){const a=new m(r);return IW(a),TW(a),vW(a),EW(a),AW(a),bW(a),RW(a),Array.from(new Set([...a.getAllBuiltInIds(),..._i()])).forEach(t=>{if(!a.builtInInstances[t]&&a.instances[t])a.builtInInstances[t]=a.instances[t],delete a.instances[t];else if(!a.builtInInstances[t])throw new Error(`Built in entity was not properly initialized: ${t}`)}),a}function ad(r,a){return r.instancesList.filter(t=>T(t.createdAt).isAfter(T(a)||!!t.previousVersion))}function OW(r,{enrich:a}={enrich:!0}){const e=new Map,t=Array.from(new Set([...r.getAllBuiltInIds(),..._i()]));Object.keys(r.instances).forEach(u=>{if(t.includes(u)){e.set(u,u);return}const y=r.get(u);if(!id(y,{...r.instances,...r.builtInInstances}).every(E=>!t.includes(E))){e.set(u,u);return}e.set(u,m.UUID.uuid())});const i=T().toISOString(),s=r.toShallowJSON({seenEntityMaps:e});s.previousVersion=null,s.createdAt=i,s.version=m.UUID.uuid();const l=sd(s),o=a?l.addChangeSet(new b(l,"",i,l)):null,d=new Zl(r);return d.visit(u=>{const y=u.toShallowJSON({seenEntityMaps:e});u.type===n.ValueDescriptor&&u.name==="Iteration result"&&(console.log("Og entity shallow copy: ",y),console.log("Og entity full: ",u)),y.previousVersion=null,y.createdAt=i,y.version=m.UUID.uuid();const c=C(y,l);c.hydrateAncestors(),c.addSelfToProject(o),o==null||o.add(c,A.Added)}),a?(d.visit(u=>{const y=l.get(e.get(u.id));y&&y.afterAllChildrenInitialized(o)}),l.afterAllChildrenInitialized(o)):ad(l,i).forEach(y=>{y.remove({ignoreUpstream:!0},null)}),l.instancesList.forEach(u=>{u.previousVersion=null}),o==null||o.close(),l}function cw(r,{enrich:a}={enrich:!0}){const e=sd(r),t=T().toISOString(),i=a?e.addChangeSet(new b(e,"",t,e)):null;i&&(i.type=Pc.Automatic);const s=new Zl(r);return s.visit(l=>{const o=C(l,e);o.hydrateAncestors(),o.addSelfToProject(i)}),a?(s.visit(l=>{const o=e.get(l.id);o&&o.afterAllChildrenInitialized(i)}),e.afterAllChildrenInitialized(i)):ad(e,t).forEach(o=>{o.remove({ignoreUpstream:!0},null)}),i==null||i.close(),e}async function PW(r,a=$a){const e={...$a,...a};if(r.id&&Un[r.id]&&!e.ignoreCache)return Un[r.id];if(r.id&&nd[r.id]&&!e.ignoreCache)return await nd[r.id],Un[r.id];const t=DW(r,e);r.id&&(nd[r.id]=t);const i=await t;if(i.data){let s;return e.mock?s=cw(lp,{enrich:!!e.enrich}):i.data instanceof m?s=i.data:s=pw(i.data,{enrich:!!e.enrich}),Un[r.id]=s,r.id&&delete nd[r.id],s}return null}function wW(r){return Un[r.id]&&delete Un[r.id],null}const CW="test_primitive_entities_export";h.AI_VALUE_CONNECTION_GENERATION_ACTION_EXPLANATION=Gc,h.ALL_BUILT_IN_BASE_ENTITIES=xI,h.ALL_BUILT_IN_CONDITION_ENTITIES=tE,h.ALL_BUILT_IN_GLOBAL_EVENT_ENTITIES=rE,h.ALL_BUILT_IN_LOOP_BODY_ENTITIES=vT,h.ALL_BUILT_IN_LOOP_ENTITIES=mT,h.ALL_BUILT_IN_OPERATION_ENTITIES=C0,h.ALL_BUILT_IN_PRIMITIVE_ENTITIES=mf,h.ALL_BUILT_IN_TOP_LEVEL_ENTITIES=oE,h.ALL_BUILT_IN_VALUE_DESCRIPTORS=aE,h.ActionDescriptorState=We,h.ActionInputMapState=$7,h.ActionOutputMapState=x7,h.AppendToListOperationInputIds=Dh,h.AppendToListOperationOutputIds=Oh,h.ArgumentDeclarationDependencyField=M1,h.ArgumentDeclarationState=Zr,h.BREAK_AND_CONTINUE_STATEMENTS_RETURN_DECLARATIONS_EXPLANATION=Uc,h.BUILT_IN_BASE_ENTITY_IDS=k,h.BUILT_IN_ENTITY_TYPES=Ti,h.BaseCanvasDraggableState=tW,h.BaseEntityNames=z,h.BaseState=eW,h.BaseValueDescriptorIds=Za,h.BreakStatementDependencyField=Vc,h.BreakStatementState=_n,h.BuiltInBaseEntityState=Ki,h.CACHED_PROJECTS_BY_ID=Un,h.CALLABLE_ENTITIES_EXPLANATION=Y7,h.CALLABLE_TYPES=Mi,h.CALLER_ENTITIES_EXPLANATION=G1,h.CALLER_TYPES=Ni,h.CALLS_UPDATE_EXPLANATION=Wr,h.COMPARISON_CONDITIONS=QI,h.CONDITIONS=eE,h.CUSTOM_ENTITY_OPERATIONS=Jm,h.CallableEntityClass=rW,h.CallerEntityClass=nf,h.ChangeSet=b,h.ChangeSetChangeCaptureType=Pc,h.ChangeSetEntityChangeType=A,h.ChildEntityState=iW,h.ComparisonOperatorTypes=yt,h.ConditionDependencyField=v1,h.ConditionState=Gr,h.ContinueStatementDependencyField=wc,h.ContinueStatementState=xt,h.CreateNewInputIds=Em,h.CreateNewOutputIds=Am,h.DRAGGABLE_CALLABLE_TYPES=ud,h.DRAGGABLE_CALLER_TYPES=lf,h.DRAGGABLE_ELEMENT_TYPES=Sa,h.DRAGGABLE_EXECUTABLE_TYPES=vw,h.DRAGGABLE_PASS_THROUGH_CALLABLE_TYPES=ka,h.DRAGGABLE_PASS_THROUGH_CALLABLE_TYPES_WITH_OUTPUTS=dd,h.DataTypeCompatibilityTypes=bi,h.DataTypeDependencyField=Cc,h.DataTypeParentChildRelation=Dt,h.DataTypeState=Vn,h.DefinitionEntityDependencyField=rd,h.DefinitionEntityState=Xr,h.EDITABLE_PERSISTANCE_REPOSITORY_DEFAULTS=XJ,h.ENTITIES_WITH_VALLUES_EXPLANATION=Gl,h.ENTITY_PERSISTANCE_OPTIONS_DEFAULTS=g,h.ENTITY_RECUSION_OPTIONS_DEFAULTS=q,h.ENTITY_TYPES=Tw,h.ENTITY_WITH_DECLARATION_TYPES=hw,h.ENTITY_WITH_LOGIC_SCOPE_TYPES=dt,h.ENTITY_WITH_NAMES_TYPES=df,h.ENTITY_WITH_PARENT_TYPES=fw,h.ENTITY_WITH_USER_MANAGED_DECLARATION_TYPES=af,h.ENTITY_WITH_USER_MANAGED_SINGLE_IMPLEMENTS_TYPES=yw,h.ENTITY_WITH_VALUE_TYPES=sf,h.ENTRY_POINT_ENTITIES_EXPLANATION=Ba,h.ENTRY_POINT_TYPES=lt,h.EVENT_TYPES=Gn,h.EXECUTABLE_TYPES=mw,h.EXECUTION_OPERATIONS=Im,h.EntityAction=aw,h.EntityError=it,h.EntityErrorSeverity=D,h.EntityGenerationError=w,h.EntityGenerationErrorCode=R,h.EntityInstanceErrorCode=F,h.EntityOperations=Qe,h.EntityType=n,h.EntityWithLogicScopeClass=oW,h.EntityWithValueClass=aW,h.EntryPointEntityClass=nW,h.ExecutionOperations=Xe,h.ExecutionTerminationType=y1,h.FunctionCallDependencyField=H1,h.FunctionCallState=Yr,h.FunctionDeclarationDependencyField=o1,h.FunctionDeclarationState=gr,h.GET_PROJECT_OPTIONS_DEFAULTS=$a,h.GLOBAL_EVENT_DECLARATIONS=iE,h.GetLastInListOperationInputIds=ch,h.GetLastInListOperationOutputIds=fh,h.GlobalEventNames=Qi,h.GlobalEventState=Bn,h.HTTPOperations=_t,h.HTTP_OPERATIONS=P0,h.InputMapDependencyField=C1,h.InputMapState=Wi,h.InstalledProjectState=Sr,h.InternalCallDependencyField=P1,h.InternalCallState=Mn,h.JoinListOperationInputIds=My,h.JoinListOperationOutputIds=Ny,h.LIST_OPERATIONS=$h,h.ListOperations=he,h.LiteralValueDependencyField=L1,h.LiteralValueState=Nn,h.LoopDependencyField=h1,h.LoopState=$r,h.LoopTypes=Q,h.NON_INTERACTIVE_BASE_ENTITIES_EXPLANATION=zr,h.NUMBER_OPERATIONS=Jf,h.NumberOperations=et,h.OPERATION_DECLARATIONS=w0,h.OperationDependencyField=u1,h.OperationState=jr,h.OutputMapDependencyField=B1,h.OutputMapParentChildRelation=$n,h.OutputMapState=zi,h.PARENT_AUTO_CALCULATION_FROM_CALLER_EXPLANATION=Fl,h.PASS_THROUGH_CALLABLE_ENTITIES_EXPLANATION=Jr,h.PASS_THROUGH_CALLABLE_TYPES=ot,h.PASS_THROUGH_CALLABLE_TYPES_WITH_OUTPUTS=of,h.PROPERTY_NOT_VALUE_READER_WRITTER_EXPLANATION=$c,h.ParallelExecutionOperation=ow,h.PassThroughCallableEntityClass=sW,h.PersistedEntity=uw,h.PersistedEntityMethods=di,h.PrimitiveEntityState=oi,h.PrimitiveTypes=L,h.ProjectState=m,h.PropertyDependencyField=t1,h.PropertyState=Lr,h.READ_ONLY_ENTITY_PERSISTANCE_REPOSITORY=sw,h.RETURN_STATEMENT_RETURN_DECLARATIONS_EXPLANATION=H7,h.ReturnDeclarationDependencyField=r1,h.ReturnDeclarationState=si,h.ReturnStatementDependencyField=Ul,h.ReturnStatementState=Ur,h.STANDALONE_CONDITIONS=ZI,h.STRING_OPERATIONS=_y,h.ScopeCompatibilityType=td,h.SearchDependencyField=b1,h.SearchState=kr,h.SequentialExecutionOperation=dw,h.SequentialExecutionOperationInputIds=am,h.SequentialExecutionOperationOutputIds=om,h.SharedEntityErrorCode=j,h.SharedStateFunctionality=nw,h.SplitListOperationInputIds=zy,h.SplitListOperationOutputIds=Yy,h.StandaloneOperatorTypes=vi,h.StringOperations=Ee,h.TERMINATION_TYPES=st,h.Traverser=Zl,h.USER_MANAGED_ENTITY_TYPES=uf,h.UserManagedEntityStateTemplate=QJ,h.VALUE_READING_ENTITIES_EXPLANATION=jc,h.VALUE_READING_TYPES=Ir,h.VALUE_WRITING_ENTITIES_EXPLANATION=F1,h.VALUE_WRITING_TYPES=Tt,h.VARIABLE_DATA_TYPE_INFERRANCE_EXPLANATION=gc,h.VARIABLE_TYPES=tt,h.ValueAutogenerationType=vt,h.ValueDescriptorDependencyField=g1,h.ValueDescriptorParentChildRelation=N,h.ValueDescriptorState=qr,h.ValueReadingEntityClass=Tr,h.ValueWritingEntityClass=ja,h.VariableDeclarationDependencyField=E1,h.VariableDeclarationState=xr,h.VariableInputMapState=j7,h.VariableInstanceDependencyField=_c,h.VariableInstanceState=Fr,h.VariableOutputMapState=F7,h.WaitOperation=lw,h.WaitOperationInputIds=Qh,h.WaitOperationOutputIds=em,h.actionDescriptorValidation=V7,h.appendToListOperation=za,h.appendToListOperationElementToAppendArgument=Dd,h.appendToListOperationElementToAppendArgumentParentRef=Nh,h.appendToListOperationElementToAppendArgumentRef=Ch,h.appendToListOperationError=jh,h.appendToListOperationErrorParentRef=gh,h.appendToListOperationListArgument=Rd,h.appendToListOperationListArgumentParentRef=Mh,h.appendToListOperationListArgumentRef=Ph,h.appendToListOperationListDataType=wh,h.appendToListOperationResultListDataType=_h,h.appendToListOperationResultListReturn=Uh,h.appendToListOperationResultListReturnParentRef=Lh,h.appendToListOperationResultListReturnRef=Bh,h.appendToListOperationSecondListDataType=Vh,h.applyNewScope=K,h.argumentDeclarationValidation=k7,h.asGenerationActionExample=Yi,h.booleanPrototype=er,h.breakStatementValidation=P7,h.calculateNewParentBasedOnCallers=qc,h.capitalizeFirstLetter=Ft,h.changeSetJSONRecordToUniqueIds=y7,h.checkAreDataTypesCompatible=Ri,h.checkAreDefinitionEntitiesCompatibleAsDataType=FO,h.checkArePropertiesCompatibleAsDataType=GO,h.checkHasMetadataChanged=pt,h.checkImplementationsOverlap=vr,h.checkIsBranchDependentButNotDirectlyOnBranch=Ma,h.checkIsBranchDependentOnBranch=dJ,h.checkIsCallableEntityReachable=ga,h.checkIsCanvasEntity=wJ,h.checkIsDetachedBranch=YP,h.checkIsDetachedBranchShallow=tf,h.checkIsGlobalVariable=OJ,h.checkIsGloballyDeclared=ef,h.checkIsMethod=XP,h.checkIsNestedScope=ed,h.checkScopeCompatibility=Ua,h.cloneProject=OW,h.conditionValidation=B7,h.continueStatementValidation=v7,h.convertToAbstract=sJ,h.convertToNonAbstract=aJ,h.convertToNonStatic=lJ,h.convertToStatic=oJ,h.countedLoopActionDescriptor=Ls,h.countedLoopActionDescriptorDynamicReturnDeclaration=lT,h.countedLoopActionDescriptorDynamicReturnDeclarationParentRef=oT,h.countedLoopActionDescriptorStringArgumentDeclaration=aT,h.countedLoopActionDescriptorStringArgumentDeclarationDataType=nT,h.countedLoopActionDescriptorStringArgumentDeclarationDataTypeDefaultValue=iT,h.countedLoopActionDescriptorStringArgumentDeclarationDataTypeDefaultValueParentRef=tT,h.countedLoopActionDescriptorStringArgumentDeclarationDataTypeParentRef=rT,h.countedLoopActionDescriptorStringArgumentDeclarationParentRef=sT,h.countedLoopBodyActionDescriptor=ao,h.countedLoopBodyActionDescriptorAnyDynamicArgument=fT,h.countedLoopBodyActionDescriptorAnyDynamicArgumentParentRef=cT,h.countedLoopBodyActionDescriptorAnyDynamicReturn=hT,h.countedLoopBodyActionDescriptorAnyDynamicReturnParentRef=yT,h.countedLoopBodyActionDescriptorIterationNumberArgumentDeclaration=Gd,h.countedLoopBodyActionDescriptorIterationNumberArgumentDeclarationDataType=uT,h.countedLoopBodyActionDescriptorIterationNumberArgumentDeclarationDataTypeParentRef=dT,h.countedLoopBodyActionDescriptorIterationNumberArgumentDeclarationParentRef=pT,h.createDefinitionEntityFromJSONObject=Jl,h.createEntityError=de,h.createNestedDataTypeForEntity=Q1,h.createNewInstanceOperation=tn,h.createNewInstanceOperationEntityToInstanciateArgument=Vm,h.createNewInstanceOperationEntityToInstanciateArgumentRef=Pm,h.createNewInstanceOperationEntityToInstanciateDataType=wm,h.createNewInstanceOperationError=Nm,h.createNewInstanceOperationErrorParentRef=Mm,h.createNewInstanceOperationNewEntityDataArgument=Om,h.createNewInstanceOperationNewEntityDataArgumentDataType=Dm,h.createNewInstanceOperationNewEntityDataArgumentDataTypeParentRef=Rm,h.createNewInstanceOperationNewEntityDataArgumentParentRef=bm,h.createNewInstanceOperationOutputEntityDeclaration=_m,h.createNewInstanceOperationOutputEntityDeclarationParentRef=Bm,h.createNewInstanceOperationRef=Cm,h.createSemanticId=XO,h.createStateFromGenerationTargetType=KJ,h.createStateFromType=ct,h.createStateFromTypeAndSubscribe=C,h.cronJobBuiltInBaseEntity=co,h.cronJobBuiltInBaseEntityExpressionProperty=GI,h.cronJobBuiltInBaseEntityExpressionPropertyDataTypeRef=Ow,h.cronJobBuiltInBaseEntityExpressionPropertyRef=jI,h.cronJobBuiltInBaseEntityRef=$I,h.cronJobTriggeredFunctionDeclarationBlueprint=Qd,h.cronJobTriggeredFunctionDeclarationBlueprintParentRef=UI,h.dataTypeCompatibilityToErrorExplanation=z1,h.dataTypeValidation=A7,h.datePrototype=Li,h.dateValueAutogenerationSchema=fp,h.definitionEntityToZodSchema=RE,h.definitionEntityValidation=WJ,h.deletePersistedEntityMethod=Xd,h.deletePersistedEntityMethodParentRef=EI,h.deleteRootProject=wW,h.endpointBuiltInBaseEntity=js,h.endpointBuiltInBaseEntityRef=AT,h.endpointBuiltInBaseEntityRefFour=iI,h.endpointBuiltInBaseEntityRefThree=BT,h.endpointBuiltInBaseEntityRefTwo=PT,h.endpointBuiltInCorsProperty=bT,h.endpointBuiltInCorsPropertyDataType=ET,h.endpointBuiltInCorsPropertyDataTypeRef=TT,h.endpointBuiltInCorsPropertyRef=IT,h.endpointBuiltInMethodProperty=xd,h.endpointBuiltInMethodPropertyDataType=VT,h.endpointBuiltInMethodPropertyDataTypeRef=wT,h.endpointBuiltInMethodPropertyRef=CT,h.endpointBuiltInPathProperty=Fd,h.endpointBuiltInPathPropertyDataType=OT,h.endpointBuiltInPathPropertyDataTypeRef=RT,h.endpointBuiltInPathPropertyRef=DT,h.endpointPathParamsArgumentDeclaration=Sd,h.endpointPathParamsArgumentDeclarationRef=FT,h.endpointPathParamsVariableDataType=xT,h.endpointPathParamsVariableDataTypeRef=GT,h.endpointReachedTriggerActionDescriptor=Yd,h.endpointReachedTriggerActionDescriptorRef=kT,h.endpointReachedTriggerActionDescriptorRefFour=qT,h.endpointReachedTriggerActionDescriptorRefThree=ZT,h.endpointReachedTriggerActionDescriptorRefTwo=ST,h.endpointRequestBodyArgumentDeclaration=qd,h.endpointRequestBodyArgumentDeclarationRef=LT,h.endpointRequestBodyVariableDataType=UT,h.endpointRequestHeadersArgumentDeclaration=kd,h.endpointRequestHeadersArgumentDeclarationRef=MT,h.endpointRequestHeadersVariableDataType=NT,h.endpointRequestHeadersVariableDataTypeRef=_T,h.endpointRequestQueryParamsArgumentDeclaration=Zd,h.endpointRequestQueryParamsArgumentDeclarationRef=jT,h.endpointRequestQueryParamsVariableDataType=$T,h.endpointRequestQueryParamsVariableDataTypeRef=gT,h.endpointResponseBodyDataType=eI,h.endpointResponseBodyReturnDeclaration=zd,h.endpointResponseBodyReturnDeclarationRef=QT,h.endpointResponseCodeDataType=WT,h.endpointResponseCodeReturnDeclaration=Jd,h.endpointResponseCodeReturnDeclarationRef=JT,h.endpointResponseHeadersDataType=KT,h.endpointResponseHeadersDataTypeRef=YT,h.endpointResponseHeadersReturnDeclaration=Wd,h.endpointResponseHeadersReturnDeclarationRef=HT,h.endpointReturnStatementRef=zT,h.endpointReturnStatementRefThree=tI,h.endpointReturnStatementRefTwo=XT,h.enrichFromKnownEntities=Na,h.enumOptionsProperty=hf,h.enumOptionsPropertyDataType=ff,h.enumOptionsPropertyDataTypeRef=pf,h.enumOptionsPropertyRef=cf,h.enumPrototype=tr,h.enumPrototypeRef=yf,h.executionBuiltInBaseEntity=fo,h.executionBuiltInEntityAbortMethod=eu,h.executionBuiltInEntityAbortMethodParentRef=FI,h.filterOutDuplicateEntities=p,h.filterOutDuplicateErrors=C3,h.findEntityFromKeys=Sc,h.findReferenceToSelfInList=yP,h.findReferencesToSelfInProject=TJ,h.flattenActionDescriptor=hP,h.flattenArgumentDeclaration=mP,h.flattenBreakStatement=vP,h.flattenBuiltInBaseEntity=TP,h.flattenCalls=Hi,h.flattenCanvasAncestorsUntil=Ds,h.flattenCondition=IP,h.flattenContinueStatement=EP,h.flattenDataType=bP,h.flattenDefinitionEntity=AP,h.flattenDefinitionEntityExtensionAndImplementationTypes=Xc,h.flattenDefinitionEntityExtensionTypes=Xl,h.flattenDefinitionEntityExtensions=Hc,h.flattenDefinitionEntityImplementations=Kc,h.flattenDefinitionEntityImplementionTypes=Kl,h.flattenDerivedCanvasEntities=ai,h.flattenDetachedBranch=KP,h.flattenElementCalls=qe,h.flattenElementCallsOnTheSameScope=vJ,h.flattenEntity=U,h.flattenFunctionCall=RP,h.flattenFunctionDeclaration=DP,h.flattenGlobalEvent=OP,h.flattenInputMap=PP,h.flattenInstalledProject=wP,h.flattenInternalCall=CP,h.flattenLiteralValue=VP,h.flattenLoop=BP,h.flattenOperation=_P,h.flattenOutputMap=MP,h.flattenPrimitiveEntity=NP,h.flattenProject=LP,h.flattenProjectElements=fP,h.flattenProperty=UP,h.flattenRelatedCanvasElementsOnTheLeft=WP,h.flattenRelatedCanvasElementsOnTheRight=JP,h.flattenReturnDeclaration=gP,h.flattenReturnStatement=jP,h.flattenSearch=$P,h.flattenValueDescriptor=GP,h.flattenVariableDeclaration=FP,h.flattenVariableInstance=xP,h.flattenVariableReads=cP,h.flattenVariableWrites=pP,h.flattenVariables=Ye,h.fromChangeSetToRecordChangeSet=UJ,h.fromZodParseToEntityGenerationErrors=Mc,h.functionCallValidation=nJ,h.functionDeclarationValidation=E7,h.generate=VV,h.generateActionExample=K7,h.generateExecutionDataType=s7,h.generateIdFromStrategy=ht,h.generateMutablePropertiesExplanation=gl,h.generateRandomBoolean=HE,h.generateRandomDate=wE,h.generateRandomDateAfter=DE,h.generateRandomDateBefore=OE,h.generateRandomDateBetweenRange=PE,h.generateRandomNumber=qE,h.generateRandomNumberAfter=kE,h.generateRandomNumberBefore=SE,h.generateRandomNumberBetweenRange=ZE,h.generateRandomText=YE,h.generateRandomTextAfter=JE,h.generateRandomTextBefore=WE,h.generateRandomTextBetweenRange=zE,h.generateUniqueUUID=xE,h.getAllActionDescriptorsForConditions=Sl,h.getAllActionDescriptorsForGlobalEvents=xl,h.getAllActionDescriptorsForLoops=kl,h.getAllActionDescriptorsForOperations=tJ,h.getAllBuiltInEntityIds=_i,h.getAllGloballyDeclaredFunctionDeclarationsExplanation=q1,h.getBaseBuiltInEntities=kt,h.getBaseSchemaBasedOnType=j1,h.getBuiltInEntityOwner=Kr,h.getCallableEntityReferenceSchema=Pt,h.getCallableEntityTypeSchema=wD,h.getCalledBy=hi,h.getCallerEntityReferenceSchema=MS,h.getCallerEntityTypeSchema=_S,h.getCalls=Wc,h.getCanvasEntitiesDerivedFromInternalCalls=qP,h.getCanvasEntitiesDerivedFromWrites=Os,h.getCanvasEntityDerivedFromValueReadingEntity=Hl,h.getCanvasEntityDerivedFromValueReadingEntityFromTransfer=ZP,h.getCanvasEntityReferenceSchema=YS,h.getCanvasEntityTypeSchema=zS,h.getChildrenEntityWithValues=pJ,h.getColumnProperties=MJ,h.getCommonAncestor=Jc,h.getCommonChildren=eP,h.getDatabaseEntities=BJ,h.getDatabaseEntity=NJ,h.getDeclaration=Cn,h.getDeepestScope=ew,h.getDefinitionEntityExtends=Ps,h.getDraggableCallableEntityReferenceSchema=VD,h.getDraggableCallableEntityTypeSchema=CD,h.getDraggableCallerEntityReferenceSchema=LS,h.getDraggableCallerEntityTypeSchema=NS,h.getDraggableExecutableEntityReferenceSchema=$S,h.getDraggableExecutableEntityTypeSchema=jS,h.getDraggablePassThroughCallableEntityReferenceSchema=bl,h.getDraggablePassThroughCallableEntityTypeSchema=Al,h.getDraggablePlayableEntityReferenceSchema=SS,h.getDraggablePlayableEntityTypeSchema=kS,h.getEntitiesCreatedSinceInitialization=ad,h.getEntityArgumentDeclarations=Yc,h.getEntityInputMaps=kP,h.getEntityOutputMaps=bJ,h.getEntityReferenceSchema=WS,h.getEntityReturnDeclarations=SP,h.getEntityTypeSchema=JS,h.getEntityWithLogicScopeReferenceSchema=fr,h.getEntityWithLogicScopeTypeSchema=GS,h.getEntityWithValueReferenceSchema=PD,h.getEntityWithValueTypeSchema=BS,h.getEntryPointEntityReferenceSchema=Rt,h.getEntryPointEntityTypeSchema=_r,h.getEventEntityReferenceSchema=Il,h.getEventEntityTypeSchema=Tl,h.getExecutableEntityReferenceSchema=gS,h.getExecutableEntityTypeSchema=US,h.getExtendedBuiltInEntity=RJ,h.getExtendedDefinitionEntity=Qc,h.getGenerationTargetSchemaBasedOnType=$1,h.getHeadIfPartOfDetachedBranch=HP,h.getHighestScope=QP,h.getImplementedBuiltInEntity=DJ,h.getIsInteractive=Ql,h.getLastInListOperation=bd,h.getLastInListOperationError=Rh,h.getLastInListOperationErrorParentRef=bh,h.getLastInListOperationInputListArgument=Ih,h.getLastInListOperationInputListArgumentParentRef=Th,h.getLastInListOperationInputListArgumentRef=yh,h.getLastInListOperationInputListDataType=hh,h.getLastInListOperationOutputElementDataType=vh,h.getLastInListOperationOutputElementReturn=Ah,h.getLastInListOperationOutputElementReturnParentRef=Eh,h.getLastInListOperationOutputElementReturnRef=mh,h.getLinkedEntitiesFromArgumentDeclaration=mJ,h.getLowestPersistedEntityImplementation=zP,h.getParentCallableEntity=tP,h.getParentCallerEntity=rP,h.getParentCanvasEntities=Xt,h.getParentCanvasEntity=wt,h.getParentCanvasEntityFromTransfer=Wl,h.getParentEntryPoint=uJ,h.getParentPassthroughCallableEntity=iP,h.getPassThroughCallableEntityReferenceSchema=rt,h.getPassThroughCallableEntityTypeSchema=El,h.getPeristedEntities=VJ,h.getPlayableEntityReferenceSchema=xS,h.getPlayableEntityTypeSchema=FS,h.getProject=PW,h.getPrototypeByType=La,h.getRecusriveParentsIds=id,h.getReferenceEntityId=_,h.getReferencedEntitiesStateOrErrors=$l,h.getReferencedEntityStateOrErrors=Nc,h.getReferencedIds=Yl,h.getRelatedCanvasElementsOnTheLeft=Ln,h.getRelatedCanvasElementsOnTheLeftFromTransfer=IJ,h.getRelatedCanvasElementsOnTheRight=Hr,h.getRootEntryPointScopeOwner=rf,h.getScopeOwner=St,h.getStateClassFromType=LJ,h.getTerminationReferenceSchema=qS,h.getTerminationTypeSchema=ZS,h.getTouchedCanvasEntitiesFromChangeSet=gJ,h.getUsedArgFromDeclaration=EJ,h.getUsedReturnFromDeclaration=AJ,h.getValueReadingEntityReferenceSchema=OD,h.getValueReadingEntityTypeSchema=cr,h.getValueWritingEntityReferenceSchema=VS,h.getValueWritingEntityTypeSchema=Ea,h.getVariableFromInputMapping=sP,h.getVariableFromReturnVariablePointer=lP,h.getVariableReferenceSchema=Br,h.getVariableTypeSchema=bn,h.getVariablesFromArgumentDeclarations=zl,h.getVariablesFromInputMaps=aP,h.getVariablesFromOutputMapping=dP,h.getVariablesFromOutputMaps=uP,h.getVariablesFromReturnDeclarations=oP,h.getVariablesInSameOrHigherScope=Tc,h.getWrites=zc,h.globalEventValidation=O7,h.groupCallsBasedOnParallelizableExecution=fJ,h.handleAfterEntityImplementationSideEffects=X1,h.handleBeforeEntityImplementationSideEffects=K1,h.httpRequestBodyArgument=Xa,h.httpRequestBodyArgumentRef=s0,h.httpRequestBodyDataType=a0,h.httpRequestHeadersArgument=Ka,h.httpRequestHeadersArgumentRef=r0,h.httpRequestHeadersDataType=n0,h.httpRequestMethodArgument=Ya,h.httpRequestMethodArgumentRef=t0,h.httpRequestMethodDataType=i0,h.httpRequestMethodDataTypeRef=Qm,h.httpRequestOperation=Bs,h.httpRequestOperationErrorValueDescriptor=Bd,h.httpRequestOperationErrorValueDescriptorDatatype=O0,h.httpRequestOperationErrorValueDescriptorRef=D0,h.httpRequestOperationRef=E0,h.httpRequestOperationRefEight=b0,h.httpRequestOperationRefFive=T0,h.httpRequestOperationRefFour=v0,h.httpRequestOperationRefNine=R0,h.httpRequestOperationRefSeven=A0,h.httpRequestOperationRefSix=I0,h.httpRequestOperationRefThree=m0,h.httpRequestOperationRefTwo=h0,h.httpRequestQueryParamsArgument=Vd,h.httpRequestQueryParamsArgumentRef=Km,h.httpRequestQueryParamsDataType=Xm,h.httpRequestVariableURLArgument=Ha,h.httpRequestVariableURLArgumentRef=Ym,h.httpRequestVariableURLDataType=Hm,h.httpRequestVariableURLDataTypeRef=Wm,h.httpResponseBodyReturnDataType=y0,h.httpResponseBodyReturnDataTypeRef=c0,h.httpResponseBodyReturnReturn=to,h.httpResponseBodyReturnReturnRef=f0,h.httpResponseCodeDataType=l0,h.httpResponseCodeReturn=Qa,h.httpResponseCodeReturnRef=o0,h.httpResponseHeadersDataType=p0,h.httpResponseHeadersDataTypeRef=d0,h.httpResponseHeadersReturn=eo,h.httpResponseHeadersReturnRef=u0,h.implement=ql,h.inferArgumentDeclarationDataType=xO,h.inferDataType=Ji,h.inferInputMapDataType=hc,h.inferOutputMapDataType=vc,h.inferPropertyDataType=ZO,h.inferReturnDeclarationDataType=mc,h.inferValueDescriptorDataType=qO,h.inferVariableDeclarationDataType=SO,h.inferVariableInstanceDataType=kO,h.initBaseProjectEntity=sd,h.initProject=cw,h.initProjectFromFetchResult=pw,h.inputMapValidation=g7,h.installedProjectValidation=L7,h.internalCallValidation=U7,h.isPromise=kc,h.iterateOverListActionDescriptorListArgumentDeclaration=sv,h.iterateOverListActionDescriptorListArgumentDeclarationDataType=rv,h.iterateOverListActionDescriptorListArgumentDeclarationDataTypeParentRef=iv,h.iterateOverListActionDescriptorListArgumentDeclarationParentRef=nv,h.iterateOverListLoopActionDescriptor=Er,h.iterateOverListLoopActionDescriptorDynamicReturnDeclaration=ov,h.iterateOverListLoopActionDescriptorDynamicReturnDeclarationParentRef=av,h.iterateOverListLoopBodyActionDescriptor=Ns,h.iterateOverListLoopBodyActionDescriptorAnyDynamicArgument=mv,h.iterateOverListLoopBodyActionDescriptorAnyDynamicArgumentParentRef=hv,h.iterateOverListLoopBodyActionDescriptorAnyDynamicReturn=Tv,h.iterateOverListLoopBodyActionDescriptorAnyDynamicReturnParentRef=vv,h.iterateOverListLoopBodyActionDescriptorCurrentValueArgumentDeclaration=so,h.iterateOverListLoopBodyActionDescriptorCurrentValueArgumentDeclarationDataType=dv,h.iterateOverListLoopBodyActionDescriptorCurrentValueArgumentDeclarationDataTypeParentRef=lv,h.iterateOverListLoopBodyActionDescriptorCurrentValueArgumentDeclarationParentRef=uv,h.iterateOverListLoopBodyActionDescriptorIterationNumberArgumentDeclaration=yv,h.iterateOverListLoopBodyActionDescriptorIterationNumberArgumentDeclarationDataType=cv,h.iterateOverListLoopBodyActionDescriptorIterationNumberArgumentDeclarationDataTypeParentRef=pv,h.iterateOverListLoopBodyActionDescriptorIterationNumberArgumentDeclarationParentRef=fv,h.iterateOverObjectKeysActionDescriptorObjectArgumentDeclaration=Rv,h.iterateOverObjectKeysActionDescriptorObjectArgumentDeclarationDataType=Av,h.iterateOverObjectKeysActionDescriptorObjectArgumentDeclarationDataTypeParentRef=Ev,h.iterateOverObjectKeysActionDescriptorObjectArgumentDeclarationParentRef=bv,h.iterateOverObjectKeysLoopActionDescriptor=Sn,h.iterateOverObjectKeysLoopActionDescriptorDynamicReturnDeclaration=Ov,h.iterateOverObjectKeysLoopActionDescriptorDynamicReturnDeclarationParentRef=Dv,h.iterateOverObjectKeysLoopBodyActionDescriptor=Ud,h.iterateOverObjectKeysLoopBodyActionDescriptorAnyDynamicArgument=Lv,h.iterateOverObjectKeysLoopBodyActionDescriptorAnyDynamicArgumentParentRef=Nv,h.iterateOverObjectKeysLoopBodyActionDescriptorAnyDynamicReturn=gv,h.iterateOverObjectKeysLoopBodyActionDescriptorAnyDynamicReturnParentRef=Uv,h.iterateOverObjectKeysLoopBodyActionDescriptorCurrentValueArgumentDeclaration=Ld,h.iterateOverObjectKeysLoopBodyActionDescriptorCurrentValueArgumentDeclarationDataType=wv,h.iterateOverObjectKeysLoopBodyActionDescriptorCurrentValueArgumentDeclarationDataTypeParentRef=Pv,h.iterateOverObjectKeysLoopBodyActionDescriptorCurrentValueArgumentDeclarationParentRef=Cv,h.iterateOverObjectKeysLoopBodyActionDescriptorIterationNumberArgumentDeclaration=Mv,h.iterateOverObjectKeysLoopBodyActionDescriptorIterationNumberArgumentDeclarationDataType=Bv,h.iterateOverObjectKeysLoopBodyActionDescriptorIterationNumberArgumentDeclarationDataTypeParentRef=Vv,h.iterateOverObjectKeysLoopBodyActionDescriptorIterationNumberArgumentDeclarationParentRef=_v,h.iterateOverObjectValuesActionDescriptorObjectArgumentDeclaration=xv,h.iterateOverObjectValuesActionDescriptorObjectArgumentDeclarationDataType=Gv,h.iterateOverObjectValuesActionDescriptorObjectArgumentDeclarationDataTypeParentRef=$v,h.iterateOverObjectValuesActionDescriptorObjectArgumentDeclarationParentRef=Fv,h.iterateOverObjectValuesLoopActionDescriptor=Zn,h.iterateOverObjectValuesLoopActionDescriptorDynamicReturnDeclaration=Sv,h.iterateOverObjectValuesLoopActionDescriptorDynamicReturnDeclarationParentRef=kv,h.iterateOverObjectValuesLoopBodyActionDescriptor=jd,h.iterateOverObjectValuesLoopBodyActionDescriptorAnyDynamicArgument=Xv,h.iterateOverObjectValuesLoopBodyActionDescriptorAnyDynamicArgumentParentRef=Kv,h.iterateOverObjectValuesLoopBodyActionDescriptorAnyDynamicReturn=eT,h.iterateOverObjectValuesLoopBodyActionDescriptorAnyDynamicReturnParentRef=Qv,h.iterateOverObjectValuesLoopBodyActionDescriptorCurrentValueArgumentDeclaration=gd,h.iterateOverObjectValuesLoopBodyActionDescriptorCurrentValueArgumentDeclarationDataType=qv,h.iterateOverObjectValuesLoopBodyActionDescriptorCurrentValueArgumentDeclarationDataTypeParentRef=Zv,h.iterateOverObjectValuesLoopBodyActionDescriptorCurrentValueArgumentDeclarationParentRef=Jv,h.iterateOverObjectValuesLoopBodyActionDescriptorIterationNumberArgumentDeclaration=Hv,h.iterateOverObjectValuesLoopBodyActionDescriptorIterationNumberArgumentDeclarationDataType=zv,h.iterateOverObjectValuesLoopBodyActionDescriptorIterationNumberArgumentDeclarationDataTypeParentRef=Wv,h.iterateOverObjectValuesLoopBodyActionDescriptorIterationNumberArgumentDeclarationParentRef=Yv,h.iterateOverStringActionDescriptorDynamicReturnDeclaration=Z0,h.iterateOverStringActionDescriptorDynamicReturnDeclarationParentRef=S0,h.iterateOverStringActionDescriptorStringArgumentDeclaration=k0,h.iterateOverStringActionDescriptorStringArgumentDeclarationDataType=F0,h.iterateOverStringActionDescriptorStringArgumentDeclarationDataTypeParentRef=G0,h.iterateOverStringActionDescriptorStringArgumentDeclarationParentRef=x0,h.iterateOverStringLoopActionDescriptor=Ms,h.iterateOverStringLoopBodyActionDescriptor=no,h.iterateOverStringLoopBodyActionDescriptorAnyDynamicArgument=X0,h.iterateOverStringLoopBodyActionDescriptorAnyDynamicArgumentParentRef=K0,h.iterateOverStringLoopBodyActionDescriptorAnyDynamicReturn=ev,h.iterateOverStringLoopBodyActionDescriptorAnyDynamicReturnParentRef=Q0,h.iterateOverStringLoopBodyActionDescriptorCurrentValueArgumentDeclaration=Md,h.iterateOverStringLoopBodyActionDescriptorCurrentValueArgumentDeclarationDataType=J0,h.iterateOverStringLoopBodyActionDescriptorCurrentValueArgumentDeclarationDataTypeParentRef=q0,h.iterateOverStringLoopBodyActionDescriptorCurrentValueArgumentDeclarationParentRef=W0,h.iterateOverStringLoopBodyActionDescriptorIterationNumberArgumentDeclaration=Nd,h.iterateOverStringLoopBodyActionDescriptorIterationNumberArgumentDeclarationDataType=Y0,h.iterateOverStringLoopBodyActionDescriptorIterationNumberArgumentDeclarationDataTypeParentRef=z0,h.iterateOverStringLoopBodyActionDescriptorIterationNumberArgumentDeclarationParentRef=H0,h.joinListOperation=Id,h.joinListOperationError=Wy,h.joinListOperationErrorParentRef=Jy,h.joinListOperationFirstListArgument=xy,h.joinListOperationFirstListArgumentParentRef=Fy,h.joinListOperationFirstListArgumentRef=Ly,h.joinListOperationFirstListDataType=Uy,h.joinListOperationResultListDataType=Gy,h.joinListOperationResultListReturn=qy,h.joinListOperationResultListReturnParentRef=Zy,h.joinListOperationResultListReturnRef=$y,h.joinListOperationSecondListArgument=Sy,h.joinListOperationSecondListArgumentParentRef=ky,h.joinListOperationSecondListArgumentRef=gy,h.joinListOperationSecondListDataType=jy,h.joinListWithLastSeparator=ne,h.joinStringsOperation=Vs,h.joinStringsOperationDynamicStringArgument=fy,h.joinStringsOperationDynamicStringArgumentParentRef=cy,h.joinStringsOperationDynamicStringArgumentRef=uy,h.joinStringsOperationDynamicStringDataType=py,h.joinStringsOperationError=dy,h.joinStringsOperationErrorParentRef=ly,h.joinStringsOperationFirstStringArgument=Ja,h.joinStringsOperationFirstStringArgumentParentRef=Qf,h.joinStringsOperationFirstStringArgumentRef=Wf,h.joinStringsOperationFirstStringDataType=zf,h.joinStringsOperationResultStringDataType=Xf,h.joinStringsOperationResultStringReturn=Cs,h.joinStringsOperationResultStringReturnParentRef=oy,h.joinStringsOperationResultStringReturnRef=Kf,h.joinStringsOperationSecondStringArgument=Wa,h.joinStringsOperationSecondStringArgumentParentRef=ay,h.joinStringsOperationSecondStringArgumentRef=Yf,h.joinStringsOperationSecondStringDataType=Hf,h.joinStringsOperationSeparatorStringArgument=sy,h.joinStringsOperationSeparatorStringArgumentParentRef=ny,h.joinStringsOperationSeparatorStringArgumentRef=ey,h.joinStringsOperationSeparatorStringDataType=ry,h.joinStringsOperationSeparatorStringDataTypeDefaultValue=iy,h.joinStringsOperationSeparatorStringDataTypeDefaultValueParentRef=ty,h.keyValuePrototype=Fn,h.literalValudValidation=S7,h.loopValidation=C7,h.lowercaseFirstLetter=Bl,h.manualFlowActionDescriptorDeclarationArgumentDeclaration=_d,h.manualFlowActionDescriptorDeclarationArgumentDeclarationDataType=M0,h.manualFlowActionDescriptorDeclarationArgumentDeclarationDataTypeParentRef=_0,h.manualFlowActionDescriptorDeclarationArgumentDeclarationParentRef=N0,h.manualFlowLoopActionDescriptor=io,h.manualFlowLoopActionDescriptorDynamicReturnDeclaration=B0,h.manualFlowLoopActionDescriptorDynamicReturnDeclarationParentRef=V0,h.manualFlowLoopBodyActionDescriptor=ro,h.manualFlowLoopBodyActionDescriptorAnyDynamicArgument=U0,h.manualFlowLoopBodyActionDescriptorAnyDynamicArgumentParentRef=L0,h.manualFlowLoopBodyActionDescriptorAnyDynamicReturn=j0,h.manualFlowLoopBodyActionDescriptorAnyDynamicReturnParentRef=g0,h.mapActionDescriptorToTypeItRepresents=CJ,h.mergeEntityErrorsList=V3,h.mergeListOfEntities=PJ,h.methodDefaultValue=e0,h.mockClientProject=lp,h.moreThanOrEqualCondition=Yn,h.moreThanOrEqualConditionLeftHandArgument=zI,h.moreThanOrEqualConditionLeftHandArgumentDataType=JI,h.moreThanOrEqualConditionLeftHandArgumentDataTypeParentRef=qI,h.moreThanOrEqualConditionLeftHandArgumentParentRef=WI,h.moreThanOrEqualConditionRightHandArgument=XI,h.moreThanOrEqualConditionRightHandArgumentDataType=HI,h.moreThanOrEqualConditionRightHandArgumentDataTypeParentRef=YI,h.moreThanOrEqualConditionRightHandArgumentParentRef=KI,h.notEmptyCondition=ln,h.notEmptyConditionArgument=SI,h.notEmptyConditionRef=kI,h.nullPrototype=pd,h.numberAdditionOperation=qa,h.numberAdditionOperationDynamicSummandArgument=Vf,h.numberAdditionOperationDynamicSummandArgumentType=Cf,h.numberAdditionOperationDynamicSummandArgumentTypeParentRef=wf,h.numberAdditionOperationError=Pf,h.numberAdditionOperationErrorParentRef=Of,h.numberAdditionOperationFirstNumberArgument=cd,h.numberAdditionOperationFirstNumberArgumentRef=vf,h.numberAdditionOperationFirstNumberDataType=Tf,h.numberAdditionOperationRef=Rf,h.numberAdditionOperationRefThree=yd,h.numberAdditionOperationRefTwo=Df,h.numberAdditionOperationResultNumberDataType=bf,h.numberAdditionOperationResultNumberReturn=hd,h.numberAdditionOperationResultNumberReturnRef=Af,h.numberAdditionOperationSecondNumberArgument=fd,h.numberAdditionOperationSecondNumberArgumentRef=If,h.numberAdditionOperationSecondNumberDataType=Ef,h.numberPrototype=ve,h.numberSubtractionOperation=vd,h.numberSubtractionOperationDynamicSubtrahendArgument=qf,h.numberSubtractionOperationDynamicSubtrahendArgumentType=Zf,h.numberSubtractionOperationDynamicSubtrahendArgumentTypeParentRef=Sf,h.numberSubtractionOperationError=kf,h.numberSubtractionOperationErrorParentRef=xf,h.numberSubtractionOperationFirstNumberArgument=gf,h.numberSubtractionOperationFirstNumberArgumentRef=Bf,h.numberSubtractionOperationFirstNumberDataType=_f,h.numberSubtractionOperationRef=md,h.numberSubtractionOperationRefThree=Gf,h.numberSubtractionOperationRefTwo=jf,h.numberSubtractionOperationResultNumberDataType=Uf,h.numberSubtractionOperationResultNumberReturn=Ff,h.numberSubtractionOperationResultNumberReturnRef=Lf,h.numberSubtractionOperationSecondNumberArgument=$f,h.numberSubtractionOperationSecondNumberArgumentRef=Mf,h.numberSubtractionOperationSecondNumberDataType=Nf,h.numberValueAutogenerationSchema=cp,h.operationValidation=D7,h.outputMapValidation=G7,h.parallelExecutionOperation=Oi,h.parallelExecutionOperationError=Xh,h.parallelExecutionOperationErrorParentRef=Kh,h.parallelExecutionOperationListOfExecutionResultsDataType=zh,h.parallelExecutionOperationListOfExecutionResultsReturn=Pd,h.parallelExecutionOperationListOfExecutionResultsReturnRef=Wh,h.parallelExecutionOperationListOfFunctionsArgument=Od,h.parallelExecutionOperationListOfFunctionsArgumentDatatype=Jh,h.parallelExecutionOperationListOfFunctionsArgumentRef=qh,h.parallelExecutionOperationListOfFunctionsBlueprint=Zh,h.parallelExecutionOperationListOfFunctionsBlueprintDynamicInput=kh,h.parallelExecutionOperationListOfFunctionsBlueprintDynamicInputParentRef=xh,h.parallelExecutionOperationListOfFunctionsBlueprintDynamicOutput=Fh,h.parallelExecutionOperationListOfFunctionsBlueprintDynamicOutputParentRef=Gh,h.parallelExecutionOperationListOfFunctionsBlueprintParentRef=Sh,h.parallelExecutionOperationRef=Yh,h.parallelExecutionOperationRefThree=Hh,h.persistedBuiltInBaseEntity=Ct,h.persistedBuiltInBaseEntityDatabaseProperty=Jn,h.persistedBuiltInBaseEntityDatabasePropertyDataType=RI,h.persistedBuiltInBaseEntityDatabasePropertyDataTypeRef=Rw,h.persistedBuiltInBaseEntityDatabasePropertyParentRef=DI,h.persistedBuiltInBaseEntityDatabasePropertyRef=bI,h.persistedBuiltInBaseEntityPrimaryKeyProperty=Wn,h.persistedBuiltInBaseEntityPrimaryKeyPropertyDataType=MI,h.persistedBuiltInBaseEntityPrimaryKeyPropertyNumberDataTypeOption=PI,h.persistedBuiltInBaseEntityPrimaryKeyPropertyNumberDataTypeOptionParentRef=OI,h.persistedBuiltInBaseEntityPrimaryKeyPropertyParentRef=NI,h.persistedBuiltInBaseEntityPrimaryKeyPropertyRef=_I,h.persistedBuiltInBaseEntityPrimaryKeyPropertyStringDataTypeOption=CI,h.persistedBuiltInBaseEntityPrimaryKeyPropertyStringDataTypeOptionParentRef=wI,h.persistedBuiltInBaseEntityPrimaryKeyPropertyUUIDDataTypeOption=BI,h.persistedBuiltInBaseEntityPrimaryKeyPropertyUUIDDataTypeOptionParentRef=VI,h.processOutputGlobalValueDescriptorDataType=sE,h.processOutputGlobalValueDescriptorReturn=ho,h.processOutputGlobalValueDescriptorReturnRef=nE,h.projectPublicationCompletedGlobalEvent=yo,h.propertyToZodSchema=bE,h.propertyValidation=c7,h.relationalDatabaseBuiltInBaseEntity=ji,h.relationalDatabaseBuiltInBaseEntityAutoscalingProperty=Kd,h.relationalDatabaseBuiltInBaseEntityAutoscalingPropertyDataType=TI,h.relationalDatabaseBuiltInBaseEntityAutoscalingPropertyDataTypeRef=vI,h.relationalDatabaseBuiltInBaseEntityAutoscalingPropertyParentRef=II,h.relationalDatabaseBuiltInBaseEntityAutoscalingPropertyRef=mI,h.relationalDatabaseBuiltInBaseEntityDefaultProperty=Hd,h.relationalDatabaseBuiltInBaseEntityDefaultPropertyDataType=hI,h.relationalDatabaseBuiltInBaseEntityDefaultPropertyDataTypeRef=fI,h.relationalDatabaseBuiltInBaseEntityDefaultPropertyRef=yI,h.relationalDatabaseBuiltInBaseEntityIdentifierProperty=oo,h.relationalDatabaseBuiltInBaseEntityIdentifierPropertyDataType=sI,h.relationalDatabaseBuiltInBaseEntityIdentifierPropertyDataTypeRef=rI,h.relationalDatabaseBuiltInBaseEntityIdentifierPropertyRef=nI,h.relationalDatabaseBuiltInBaseEntityMinSizeProperty=po,h.relationalDatabaseBuiltInBaseEntityMinSizePropertyDataType=cI,h.relationalDatabaseBuiltInBaseEntityMinSizePropertyDataTypeRef=uI,h.relationalDatabaseBuiltInBaseEntityMinSizePropertyRef=pI,h.relationalDatabaseBuiltInBaseEntityPasswordProperty=uo,h.relationalDatabaseBuiltInBaseEntityPasswordPropertyDataType=dI,h.relationalDatabaseBuiltInBaseEntityPasswordPropertyDataTypeRef=bw,h.relationalDatabaseBuiltInBaseEntityPasswordPropertyRef=lI,h.relationalDatabaseBuiltInBaseEntityRef=qn,h.relationalDatabaseBuiltInBaseEntityUsernameProperty=lo,h.relationalDatabaseBuiltInBaseEntityUsernamePropertyDataType=oI,h.relationalDatabaseBuiltInBaseEntityUsernamePropertyDataTypeRef=Aw,h.relationalDatabaseBuiltInBaseEntityUsernamePropertyRef=aI,h.resolveActionDescriptorName=KO,h.resolveBaseEntityName=WO,h.resolveBuiltInBaseEntityDataTypeLabel=zO,h.resolveClonedEntityProject=mt,h.resolveConditionOperatorLabel=Ll,h.resolveDataType=_l,h.resolveDataTypeEntityOrNestedChildrenFromLiteralValue=Zc,h.resolveDataTypeLabel=Nl,h.resolveDefinitionEntityDataTypeLabel=u7,h.resolveEntityDataTypeLabel=d7,h.resolveEntityName=x,h.resolveFirstCallsSecond=yJ,h.resolveFirstWritesSecond=hJ,h.resolvePrimaryKeyProperty=_J,h.resolvePrimitiveEntityName=HO,h.resolveSearchName=YO,h.resolveVariableScope=a7,h.returnDeclarationValidation=h7,h.returnStatementValidation=m7,h.searchValidation=N7,h.sequentialExecutionOperation=nr,h.sequentialExecutionOperationError=Tm,h.sequentialExecutionOperationErrorParentRef=vm,h.sequentialExecutionOperationListOfExecutionResultsDataType=ym,h.sequentialExecutionOperationListOfExecutionResultsReturn=Cd,h.sequentialExecutionOperationListOfExecutionResultsReturnParentRef=mm,h.sequentialExecutionOperationListOfExecutionResultsReturnRef=fm,h.sequentialExecutionOperationListOfFunctionsArgument=wd,h.sequentialExecutionOperationListOfFunctionsArgumentDatatype=cm,h.sequentialExecutionOperationListOfFunctionsArgumentParentRef=hm,h.sequentialExecutionOperationListOfFunctionsArgumentRef=pm,h.sequentialExecutionOperationListOfFunctionsBlueprint=um,h.sequentialExecutionOperationListOfFunctionsBlueprintDynamicInput=dm,h.sequentialExecutionOperationListOfFunctionsBlueprintDynamicOutput=lm,h.softDeletePersistedEntityMethod=Dw,h.softDeletePersistedEntityMethodParentRef=LI,h.sortCallsBasedOnExecutionDependencies=nP,h.sortChildrenEntitiesBasedOnExecutionDependencies=cJ,h.splitListOperation=Ad,h.splitListOperationError=ph,h.splitListOperationErrorParentRef=uh,h.splitListOperationFirstOutputListDataType=eh,h.splitListOperationFirstOutputListReturn=ah,h.splitListOperationFirstOutputListReturnParentRef=sh,h.splitListOperationFirstOutputListReturnRef=Ed,h.splitListOperationInputListArgument=ih,h.splitListOperationInputListArgumentParentRef=th,h.splitListOperationInputListArgumentRef=Hy,h.splitListOperationInputListDataType=Ky,h.splitListOperationSecondOutputListDataType=oh,h.splitListOperationSecondOutputListReturn=dh,h.splitListOperationSecondOutputListReturnParentRef=lh,h.splitListOperationSplitIndexArgument=nh,h.splitListOperationSplitIndexArgumentParentRef=rh,h.splitListOperationSplitIndexArgumentRef=Xy,h.splitListOperationSplitIndexDataType=Qy,h.splitStringOperation=Td,h.splitStringOperationError=By,h.splitStringOperationErrorParentRef=Vy,h.splitStringOperationFirstPartResultStringDataType=Iy,h.splitStringOperationFirstPartResultStringReturn=Cy,h.splitStringOperationFirstPartResultStringReturnParentRef=wy,h.splitStringOperationFirstPartResultStringReturnRef=Ty,h.splitStringOperationIndexArgument=Oy,h.splitStringOperationIndexArgumentParentRef=Dy,h.splitStringOperationIndexArgumentRef=my,h.splitStringOperationIndexDataType=vy,h.splitStringOperationSecondPartResultStringDataType=Ay,h.splitStringOperationSecondPartResultStringReturn=Iw,h.splitStringOperationSecondPartResultStringReturnParentRef=Py,h.splitStringOperationSecondPartResultStringReturnRef=Ey,h.splitStringOperationStringArgument=Ry,h.splitStringOperationStringArgumentParentRef=by,h.splitStringOperationStringArgumentRef=yy,h.splitStringOperationStringDataType=hy,h.stringPrototype=se,h.stringValueAutogenerationSchema=pp,h.suggestNewIdForEntity=Oc,h.test_primitive_entities_export=CW,h.toCamelCase=o7,h.toEntityState=mi,h.toKebabCase=JO,h.toLowerCaseKebabCase=Ml,h.toPascalCase=l7,h.untypedDataPrototype=Ot,h.updateErrorsList=He,h.urlDefaultValue=zm,h.uuidPrototype=ir,h.validateArgumentDeclarationName=Rc,h.validateCalledByErrorIdInAction=Q7,h.validateCalledByIdInAction=X7,h.validateCallers=Z1,h.validateConditionEntityDeclaration=iJ,h.validateDataOperation=rn,h.validateDataOperationDataToValidateArgument=jm,h.validateDataOperationDataToValidateArgumentParentRef=gm,h.validateDataOperationDataToValidateArgumentRef=Lm,h.validateDataOperationDataToValidateDataType=Um,h.validateDataOperationEntityToMatchTypeArgument=xm,h.validateDataOperationEntityToMatchTypeArgumentParentRef=Fm,h.validateDataOperationEntityToMatchTypeArgumentRef=$m,h.validateDataOperationEntityToMatchTypeDataType=Gm,h.validateDataOperationError=qm,h.validateDataOperationErrorParentRef=Zm,h.validateDataOperationOutputEntityDeclaration=Sm,h.validateDataOperationOutputEntityDeclarationParentRef=km,h.validateDefinitionEntityName=Ic,h.validateEntryCaller=S1,h.validateErrorCaller=k1,h.validateFunctionCallDeclaration=J1,h.validateFunctionDeclarationName=Ec,h.validateGeneratedEntityParentIsNotBuiltInEntity=z7,h.validateGeneration=J7,h.validateGenerationTarget=ut,h.validateGenerationUpdate=W7,h.validateLoopEntityDeclaration=rJ,h.validateName=p7,h.validateOperationEntityDeclaration=W1,h.validatePropertyName=bc,h.validateReachability=mr,h.validateReadsValueInActionPayload=eJ,h.validateReferenceObject=jl,h.validateReferenceToOne=Lc,h.validateReferences=At,h.validateReturnDeclarationName=Dc,h.validateSuccessCaller=x1,h.validateValueReaderGenerationUpdate=_a,h.validateValueWritter=Fc,h.validateVariableDeclarationName=Ac,h.validateVariableInternalCallUse=xc,h.valueAutogenerationCurrentDateAndTimeSchema=nD,h.valueAutogenerationGenericSchema=rl,h.valueAutogenerationOptions=yp,h.valueAutogenerationOptionsSchema=rD,h.valueAutogenerationRandomBooleanSchema=up,h.valueAutogenerationRandomDateBetweenSchema=fD,h.valueAutogenerationRandomDateFromSchema=pD,h.valueAutogenerationRandomDateSchema=al,h.valueAutogenerationRandomDateUntilSchema=cD,h.valueAutogenerationRandomNumberBetweenSchema=oD,h.valueAutogenerationRandomNumberFromSchema=sD,h.valueAutogenerationRandomNumberSchema=nl,h.valueAutogenerationRandomNumberUntilSchema=aD,h.valueAutogenerationRandomSchema=fa,h.valueAutogenerationRandomTextBetweenSchema=uD,h.valueAutogenerationRandomTextFromSchema=lD,h.valueAutogenerationRandomTextSchema=sl,h.valueAutogenerationRandomTextUntilSchema=dD,h.valueAutogenerationRangeValueTypesSchema=ca,h.valueAutogenerationUniqueSchema=dp,h.valueDescriptorValidation=q7,h.variableDeclarationValidation=_7,h.variableInstanceValidation=M7,h.waitOperation=qt,h.waitOperationMillisecondsNumberArgument=en,h.waitOperationMillisecondsNumberArgumentRef=tm,h.waitOperationMillisecondsNumberDataType=im,h.waitOperationOperationError=sm,h.waitOperationOperationErrorParentRef=nm,h.waitOperationRef=rm,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})});
|
|
408
|
+
Alternatively you can update the parent data-type entity with 'update' action to remove the existing value of the field.`,issue:null}))}return{errors:s,modifiedData:i}}get interactive(){return this.implements.length?this.implements.every(e=>e.interactive):!0}get allBasePropertiesFromExtendedAndImplementedEntities(){return p([...this.extends.reduce((e,t)=>[...[...t.ownDeclaredProperties,...t.allBasePropertiesFromExtendedAndImplementedEntities].filter(s=>!s.abstract),...e],[]),...this.implements.reduce((e,t)=>[...[...t.ownDeclaredProperties,...t.allBasePropertiesFromExtendedAndImplementedEntities].filter(s=>!s.abstract),...e],[])])}get extendedPropertiesFromOriginalParents(){return p(this.extends.reduce((e,t)=>{const i=[...t.ownDeclaredProperties,...t.extendedPropertiesFromOriginalParents].filter(s=>!s.abstract);return[...e,...i]},[]))}get implementedPropertiesFromOriginalParents(){return p([...this.extends.reduce((e,t)=>{const i=t.implementedPropertiesFromOriginalParents,s=[...t.ownDeclaredProperties].filter(l=>!!l.abstract&&!i.find(o=>o.name===l.name));return[...i,...s,...e]},[]),...this.implements.reduce((e,t)=>{const i=t.implementedPropertiesFromOriginalParents,s=[...t.ownDeclaredProperties].filter(l=>!!l.abstract&&!i.find(o=>o.name===l.name));return[...i,...s,...e]},[])].filter(e=>!!e.abstract))}get extendedProperties(){return this.properties.filter(e=>e.isExtendedProperty)}get ownDeclaredProperties(){return this.properties.filter(e=>!e.isExtendedProperty)}validateGeneratedUpdate(e){const t=[];return e.parent&&t.push(new w({id:`${this.id}--${R.InvalidParentUpdate}`,code:R.InvalidParentUpdate,severity:D.Error,message:`Entity of type '${this.type}' with id '${this.id}' cannot have the 'parent' property updated. The 'parent' on an '${this.type}', must be the root project as it is a globally declared entity.`,issue:null})),{errors:t,modifiedData:e}}subscribeDependents(e){return e.forEach(t=>{this.detachedDependents[t.entity.id]||(this.detachedDependents[t.entity.id]=t)}),this}syncDependents(){const e=[],t=[],i=[],s=[];return Object.values(this.detachedDependents).forEach(l=>{const o=l.entity.afterAllChildrenInitialized();e.push(...o.updated),t.push(...o.added),i.push(...o.removed),s.push(...o.affected)}),{updated:p(e),added:p(t),removed:p(i),affected:p(s),self:this}}onDetachedDependencyRemoved(e,t,i){const s=[],l=[],o=[],d=[];return t==="implements"&&this.removeImplementation(e),t==="extends"&&this.removeExtension(e),{updated:p(s),added:p(l),removed:p(o),affected:p(d),self:this}}onDetachedDependencyRestored(e,t,i){const s=[],l=[],o=[],d=[];return t==="implements"&&this.addImplementation(e),t==="extends"&&this.addExtension(e),{updated:p(s),added:p(l),removed:p(o),affected:p(d),self:this}}subscribeToDependencies(){return this.implements.forEach(e=>{Ti.includes(e.type)||e.subscribeDependents([{entity:this,field:"implements"}])}),this.extends.forEach(e=>{Ti.includes(e.type)||e.subscribeDependents([{entity:this,field:"extends"}])}),this}increaseVersion(e){if(e&&!T(e).isValid())throw new Error(`The shared timestamp '${e}' is not a valid ISO 8601 date string.`);return e&&T(e).isSame(T(this.createdAt))?this:(this.previousVersion=this.version,this.version=m.UUID.uuid(),this.createdAt=T(e).toISOString()||T().toISOString(),this)}captureVersion(){var t;const e=((t=this.knownVersions)==null?void 0:t.get(this.version))||new ge(this,this.project);return e.metaSync(this.toMeta(),null),this.knownVersions=this.knownVersions?this.knownVersions.set(this.version,e):new Map([[this.version,e]]),e.properties=this.properties,e.methods=this.methods,e.abstractMethods=this.abstractMethods,e.extends=this.extends,e.implements=this.implements,e.parent=this.parent,this}recursiveCaptureUpstreamVersions(e){const t=[],i=[],s=[],l=[];if(this.parent){this.parent.increaseVersion(e);const o=this.parent.recursiveCaptureUpstreamVersions(e);t.push(this.parent,...o.updated),i.push(...o.added),s.push(...o.removed)}return{updated:p(t),added:p(i),removed:p(s),affected:p(l),self:this}}async restoreVersion(e){var d;const t=[],i=[],s=[],l=[];if(this.version===e)return{updated:p(t),added:p(i),removed:p(s),affected:p(l),self:this};if(!this.knownVersions){const u=new Map;for(const[y,c]of this.knownVersions||new Map){if(u.set(y,c),c.activeVersion=!1,c.knownVersions)for(const[I,E]of c.knownVersions)u.set(I,E);c.knownVersions=null}}let o=(d=this.knownVersions)==null?void 0:d.get(e);if(!o){const u=await this.APILoadVersion({},e);if(!u)throw new Error(`Version with id '${e}' for entity with id '${this.id}' not found.`);o=new ge(u,this.project)}return this.metaSync(o.toShallowJSON(),null),this.properties=o.properties,this.methods=o.methods,this.abstractMethods=o.abstractMethods,this.extends=o.extends,this.implements=o.implements,this.parent=o.parent,{updated:p(t),added:p(i),removed:p(s),affected:p(l),self:this}}hydrateAncestors(){const e=[],t=[],i=[],s=[];if(this.initialData.parent){const l=_(this.initialData.parent),o=this.project.get(l);if(o)this.setParent(o,null),e.push(o);else throw new Error(`${this.type} with id '${this.id}' has a 'parent' reference '${l}' that isn't found in the project`)}else throw new Error(`${this.type} with id '${this.id}' must have a 'parent'`);return this.initialData.extends.forEach(l=>{const o=_(l),d=this.project.get(o);d&&(this.addExtension(d),d.type!==n.BuiltInBaseEntity&&e.push(d))}),this.initialData.implements.forEach(l=>{const o=_(l),d=this.project.get(o);d&&(this.addImplementation(d),d.type!==n.BuiltInBaseEntity&&e.push(d))}),{updated:p(e),added:p(t),removed:p(i),affected:p(s),self:this}}afterAllChildrenInitialized(e=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"after-all-children-initialized"))){const t=[],i=[],s=[],l=[];this.initialized=!0,this.captureVersion();const{updated:o,added:d,removed:u,affected:y}=this.syncImplementationProperties(e);t.push(...o),i.push(...d),s.push(...u),l.push(...y);const{updated:c,added:I,removed:E,affected:O}=this.addExtendedProperties(e);return t.push(...c),i.push(...I),s.push(...E),l.push(...O),this.addSuggestions(),e==null||e.attemptAutoclose("after-all-children-initialized",this.id),{updated:p(t),added:p(i),removed:p(s),affected:p(l),self:this}}addSelfToProject(e=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"add-self-to-project"))){const t=[this],i=[],s=[],l=[];if(this.parent.type===n.DataType){const o=this.parent;o.entity=this,t.push(o)}else this.project.addDefinitionEntity(this);return this.subscribe(),this.subscribeToDependencies(),e==null||e.attemptAutoclose("add-self-to-project",this.id),{updated:p(t),added:p(i),removed:p(s),affected:p(l),self:this}}setParent(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"set-parent"))){var i;return((i=this.parent)==null?void 0:i.id)!==(e==null?void 0:e.id)&&(this.parent=e,t&&(t==null||t.add(this,A.Updated),t==null||t.attemptAutoclose("set-parent",this.id))),this}addExtension(e){return this.extends.includes(e)||this.extends.push(e),this}removeExtension(e){return this.extends=this.extends.filter(t=>t.id!==e.id),this}addImplementation(e){return this.implements.includes(e)||this.implements.push(e),this}removeImplementation(e){return this.implements=this.implements.filter(t=>t.id!==e.id),this}removeProperty(e){return this.properties=this.properties.filter(t=>t.id!==e.id),this}addMethod(e){return this.methods.includes(e)||(this.methods.push(e),this.suggestedMethods=this.suggestedMethods.filter(t=>t.name!==e.name)),this}removeMethod(e){return this.methods=this.methods.filter(t=>t.id!==e.id),this}addProperty(e){return this.properties.includes(e)||(this.properties.push(e),this.suggestedProperties=this.suggestedProperties.filter(t=>t.name!==e.name)),this}addSuggestedProperty(e){return this.suggestedProperties.includes(e)||this.suggestedProperties.push(e),this}addSuggestedMethod(e){return this.suggestedMethods.includes(e)||this.suggestedMethods.push(e),this}removeSuggestedProperty(e){return this.suggestedProperties=this.suggestedProperties.filter(t=>t.id!==e.id),this}removeSuggestedMethod(e){return this.suggestedMethods=this.suggestedMethods.filter(t=>t.id!==e.id),this}addAbstractMethod(e){return this.abstractMethods.includes(e)||this.abstractMethods.push(e),this}removeAbstractMethod(e){return this.abstractMethods=this.abstractMethods.filter(t=>t.id!==e.id),this}initChildren(e=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"init-children"))){return this.initialized||this.startedInitialization?this:(this.startedInitialization=!0,this.properties=this.initialData.properties.map(t=>{const i=C(t,this.project);return i.setParent(this,null),i.initChildren(e),i}),this.methods=this.initialData.methods.map(t=>{const i=C(t,this.project);return i.setParent(this,null),i.initChildren(e),i}),this.abstractMethods=this.initialData.abstractMethods.map(t=>{const i=C(t,this.project);return i.setParent(this,null),i.initChildren(e),i}),this.extends=this.initialData.extends.map(t=>C(t,this.project)),this.implements=this.initialData.implements.map(t=>C(t,this.project)),this.subscribeToDependencies(),this.afterAllChildrenInitialized(e),e==null||e.attemptAutoclose("init-children",this.id),this)}syncImplementationProperties(e=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"sync-implementation-properties"))){const t=[],i=[],s=[],l=[],o=this.properties,d=this.implementedPropertiesFromOriginalParents,u=[...this.allBasePropertiesFromExtendedAndImplementedEntities,...o];return d.filter(c=>!u.find(E=>{var O;return((O=E.implements)==null?void 0:O.id)===c.id})).forEach(c=>{if(this.properties.find(P=>{var V;return((V=P.implements)==null?void 0:V.id)===c.id}))return;const E=this.properties.find(P=>P.name===c.name&&!!P.abstract&&!P.implements);if(E){E.implements=c,E.abstract=!1;return}const O=c.clone(e,this,m.UUID.uuid());O.initChildren(e),i.push(O),e==null||e.add(O,A.Added),O.setImplements(c,e),O.metaSync({abstract:!1},e),this.addProperty(O)}),e==null||e.attemptAutoclose("sync-implementation-properties",this.id),{updated:p(t),added:p(i),removed:p(s),affected:p(l),self:this}}addExtendedProperties(e=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"add-extended-properties"))){const t=[],i=[],s=[],l=[],o=this.properties,d=this.extendedPropertiesFromOriginalParents,u=d.filter(c=>d.find(E=>{var O;return((O=E.implements)==null?void 0:O.id)===c.id})?!1:!c.abstract),y=new Set(o.map(c=>c.name));return u.forEach(c=>{if(y.has(c.name))return;y.add(c.name);const I=c.clone(e,this,m.UUID.uuid());I.initChildren(e),i.push(I),e==null||e.add(I,A.Added),this.addProperty(I)}),{updated:p(t),added:p(i),removed:p(s),affected:p(l),self:this}}addSuggestions(){return this.implements.forEach(e=>{iw(this,e).forEach(s=>{const l=s.toJSON();l.id=`_suggestion--parent--${this.id}--${s.id}`;const o=C(l,this.project);o.suggestion=!0,o.setParent(this,null),o.initChildren(null),this.addSuggestedProperty(o)}),rw(this,e).forEach(s=>{const l=`_suggestion--parent--${this.id}--${s.id}`,o=s.implementAsFunctionDeclaration(null,this,l),d=C(o,this.project);if(d.suggestion=!0,d.setParent(this,null),d.initChildren(null),this.methods=this.methods.filter(u=>u.id!==l),d.inputs.forEach(u=>{u.suggestion=!0}),d.returnStatements.length){const u=d.returnStatements[0];u.suggestion=!0,u.outputs.forEach(y=>{y.suggestion=!0})}this.addSuggestedMethod(d)})}),this}subscribe(){return this.activeVersion=!0,this.project.subscribeInstance(this),this}unsubscribe(){return this.project.unsubscribeInstance(this),this}metaSync(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"meta-sync"))){const i=pt(this,e),s=this.toMeta();return this.name=e.name||s.name,this.description=e.description||s.description,this.x=e.x||s.x,this.y=e.y||s.y,this.static=e.static!==void 0?e.static:this.static,this.abstract=e.abstract!==void 0?e.abstract:this.abstract,super.metaSync(e),e.deleted===!0&&!s.deleted?t==null||t.add(this,A.Removed):e.deleted===!1&&s.deleted?t==null||t.add(this,A.Added):i&&(t==null||t.add(this,A.Updated)),t==null||t.attemptAutoclose("meta-sync",this.id),this}async APILoad(e=g,...t){return await ge.repository.APILoad(this.id,...t),this}async APICreate(e=g,...t){return await ge.repository.APICreate(this.toShallowJSON(),...t),this}async APIUpdate(e=g,...t){return await ge.repository.APIUpdate(this.toShallowJSON(),...t),this}async APIDelete(e=g,...t){return await ge.repository.APIDelete(this.toShallowJSON(),...t),this}async APIClone(e=g,...t){return await ge.repository.APIClone(this.id,...t),this}async APILoadVersion(e=g,t,...i){return await ge.repository.APILoadVersion(this.id,t,...i)}remove({ignoreUpstream:e}={ignoreUpstream:!1},t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"remove-entity"))){const i=[],s=[],l=[],o=[];if(t!=null&&t.hasRemoved(this.id))return t==null||t.attemptAutoclose("remove-entity",this.id),{added:[],updated:[],removed:[],affected:[],self:this};if(s.push(this),this.unsubscribe(),this.project.subscribeDeletedInstance(this),this.metaSync({deleted:!0},t),Object.values(this.detachedDependents).forEach(d=>{const{updated:u,removed:y,added:c}=d.entity.onDetachedDependencyRemoved(this,d.field,t);i.push(...u),s.push(...y),l.push(...c)}),this.properties.forEach(d=>{const{updated:u,removed:y}=d.remove({ignoreUpstream:!0},t);i.push(...u),s.push(...y)}),this.methods.forEach(d=>{const{updated:u,removed:y}=d.remove({ignoreUpstream:!0},t);i.push(...u),s.push(...y)}),this.abstractMethods.forEach(d=>{const{updated:u,removed:y}=d.remove({ignoreUpstream:!0},t);i.push(...u),s.push(...y)}),this.suggestedProperties.forEach(d=>{const{updated:u,removed:y}=d.remove({ignoreUpstream:!0},t);i.push(...u),s.push(...y)}),this.suggestedMethods.forEach(d=>{const{updated:u,removed:y}=d.remove({ignoreUpstream:!0},t);i.push(...u),s.push(...y)}),!e){if(this.parent.type===n.Project)this.parent.removeDefinitionEntity(this);else if(this.parent.type===n.DataType){const d=this.parent.setEntity(null);i.push(d)}}return t==null||t.attemptAutoclose("remove-entity",this.id),{added:p(l),updated:p(i),removed:p(s),affected:p(o),self:this}}restore({}={},e=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"restore-entity"))){const t=[],i=[],s=[],l=[];return e!=null&&e.hasAdded(this.id)?(e==null||e.attemptAutoclose("restore-entity",this.id),{added:[],updated:[],removed:[],affected:[],self:this}):(this.subscribe(),this.project.unsubscribeDeletedInstance(this),this.metaSync({deleted:!1},e),this.properties.forEach(o=>{const{updated:d}=o.restore({},e);i.push(...d)}),this.methods.forEach(o=>{const{updated:d}=o.restore({},e);i.push(...d)}),this.abstractMethods.forEach(o=>{const{updated:d}=o.restore({},e);i.push(...d)}),this.suggestedProperties.forEach(o=>{const{updated:d}=o.restore({},e);i.push(...d)}),this.suggestedMethods.forEach(o=>{const{updated:d}=o.restore({},e);i.push(...d)}),e==null||e.attemptAutoclose("restore-entity",this.id),{added:p(t),updated:p(i),removed:p(s),affected:p(l),self:this})}toFlat(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[this,...this.extends.flatMap(i=>i.toFlat(e)),...this.implements.flatMap(i=>i.toFlat(e)),...this.properties.flatMap(i=>i.toFlat(e)),...this.methods.flatMap(i=>i.toFlat(e)),...this.abstractMethods.flatMap(i=>i.toFlat(e)),...this.parent.toFlat(e)])}toFlatIds(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[this.id,...this.extends.flatMap(i=>i.toFlatIds(e)),...this.implements.flatMap(i=>i.toFlatIds(e)),...this.properties.flatMap(i=>i.toFlatIds(e)),...this.methods.flatMap(i=>i.toFlatIds(e)),...this.abstractMethods.flatMap(i=>i.toFlatIds(e)),...this.parent.toFlatIds(e)])}toMeta(){return{id:this.id,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,description:this.description,static:this.static,abstract:this.abstract,x:this.x,y:this.y,type:this.type,name:this.name}}toJSON(e=new Set){return e.has(this.id)?this.toReference():(e.add(this.id),{id:this.id,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,type:this.type,name:this.name,description:this.description,x:this.x,y:this.y,static:this.static,abstract:this.abstract,properties:this.properties.map(t=>t.toJSON(e)),methods:this.methods.map(t=>t.toJSON(e)),abstractMethods:this.abstractMethods.map(t=>t.toJSON(e)),implements:this.implements.map(t=>t.toJSON(e)),extends:this.extends.map(t=>t.toJSON(e)),parent:this.parent.toReference()})}toJSONClone(e=q){var i,s,l,o,d;let t;return(i=e.seenEntityMaps)!=null&&i.has(this.id)?t=e.seenEntityMaps.get(this.id):(t=e.newId||ht(this,this.project,e.uuidStrategy),e.seenEntityMaps&&e.seenEntityMaps.set(this.id,t)),(s=e.seenEntities)!=null&&s.has(t)||(l=e.seenEntities)!=null&&l.has(this.id)?this.toReference({seenEntityMaps:e.seenEntityMaps}):((o=e.seenEntities)==null||o.add(t),(d=e.seenEntities)==null||d.add(this.id),{id:t,version:m.UUID.uuid(),createdAt:e.timestamp||T().toISOString(),author:m.sessionAuthor,previousVersion:null,deleted:!1,type:this.type,name:this.name,description:this.description,x:this.x,y:this.y,static:this.static,abstract:this.abstract,properties:this.properties.map(u=>u.toJSONClone({...e,newId:null})),methods:this.methods.map(u=>u.toJSONClone({...e,newId:null})),abstractMethods:this.abstractMethods.map(u=>u.toJSONClone({...e,newId:null})),implements:this.implements.map(u=>u.type===n.BuiltInBaseEntity?u.toJSON():u.toJSONClone({...e,newId:null})),extends:this.extends.map(u=>u.type===n.BuiltInBaseEntity?u.toJSON():u.toJSONClone({...e,newId:null})),parent:this.parent.toReference({seenEntityMaps:e.seenEntityMaps})})}toReference(e=q){var i;let t=this.id;return(i=e.seenEntityMaps)!=null&&i.has(this.id)&&(t=e.seenEntityMaps.get(this.id)),{id:t+"--"+m.UUID.uuid()+"--ref",type:n.GenericReference,entityId:t,version:this.version,entityType:this.type}}toShallowJSON(e=q){var i;let t=this.id;return(i=e.seenEntityMaps)!=null&&i.has(this.id)&&(t=e.seenEntityMaps.get(this.id)),{id:t,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,name:this.name,description:this.description,type:this.type,x:this.x,y:this.y,static:this.static,abstract:this.abstract,properties:this.properties.map(s=>s.toReference(e)),methods:this.methods.map(s=>s.toReference(e)),abstractMethods:this.abstractMethods.map(s=>s.toReference(e)),implements:this.implements.map(s=>s.toReference(e)),extends:this.extends.map(s=>s.toReference(e)),parent:this.parent.toReference(e)}}toFlatJSON(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[this.toShallowJSON(),...this.properties.flatMap(i=>i.toFlatJSON(e)),...this.methods.flatMap(i=>i.toFlatJSON(e)),...this.abstractMethods.flatMap(i=>i.toFlatJSON(e)),...this.implements.flatMap(i=>i.toFlatJSON(e)),...this.extends.flatMap(i=>i.toFlatJSON(e)),...this.parent.toFlatJSON(e)])}toGenerationTarget(){const e=this.parent.type===n.Project?void 0:this.parent.id;return{id:this.id,name:this.name,description:this.description,type:this.type,static:this.static,abstract:this.abstract,extends:this.extends.map(t=>t.id),implements:this.implements.map(t=>t.id),parent:e}}toFlatGenerationTarget(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[this.toGenerationTarget(),...this.properties.flatMap(i=>i.toFlatGenerationTarget(e)),...this.methods.flatMap(i=>i.toFlatGenerationTarget(e)),...this.abstractMethods.flatMap(i=>i.toFlatGenerationTarget(e)),...this.implements.filter(i=>i.type===n.DefinitionEntity).flatMap(i=>i.toFlatGenerationTarget(e)),...this.implements.filter(i=>i.type===n.DefinitionEntity).flatMap(i=>i.toFlatGenerationTarget(e)),...this.parent.toFlatGenerationTarget(e)])}clearErrors(){return this.errors=[],this.properties.forEach(e=>e.clearErrors()),this.methods.forEach(e=>e.clearErrors()),this.abstractMethods.forEach(e=>e.clearErrors()),this}validate(){return this.errors=tw(this),{success:!0,error:null,data:null}}getErrors(){return[...this.errors,...this.properties.flatMap(t=>t.getErrors()),...this.methods.flatMap(t=>t.getErrors()),...this.abstractMethods.flatMap(t=>t.getErrors())]}getShallowErrors(){return this.errors}clone(e=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"clone-entity")),t=null,i=null,s=!0){var P,V,M;let l=mt(t,this);const o=this.toJSON(),d=i||m.UUID.uuid();o.properties=[],o.methods=[],o.abstractMethods=[];const u=d.split("-id"),y=u[u.length-1||0]||d;o.id=d,o.version=m.UUID.uuid(),o.createdAt=(e==null?void 0:e.timestamp)||T().toISOString(),o.author=(e==null?void 0:e.author)||"1",o.previousVersion=null,o.deleted=!1;const c=ct(o,l);t&&c.setParent(t,null),s&&c.subscribe(),c.initChildren(e),e==null||e.add(c,A.Added);const I=(P=this.properties)==null?void 0:P.map(G=>G.clone(e,c,m.UUID.uuid(),s));c.properties=I;const E=(V=this.methods)==null?void 0:V.map((G,B)=>G.clone(e,c,y+"-method-"+B+"-id",s));c.methods=E;const O=(M=this.abstractMethods)==null?void 0:M.map((G,B)=>G.clone(e,c,y+"-abstract-method-"+B+"-id",s));return c.abstractMethods=O,e==null||e.attemptAutoclose("clone-entity",this.id),c}getFunctionDeclaration(e){return this.methods.find(t=>t.id===e)}implement(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"implement-definition-entity")),i){const s=ql(this,e,t,i);return t==null||t.attemptAutoclose("implement-definition-entity",this.id),s}getAllInteractiveMethods(){const e=this.implements.filter(i=>i.type===n.DefinitionEntity||i.type===n.BuiltInBaseEntity&&i.interactive);return p([...this.methods,...this.extends.flatMap(i=>i.getAllInteractiveMethods()),...e.flatMap(i=>i.getAllInteractiveMethods())])}inferFromInputs(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"infer-definition-entity-from-inputs"))){const i=[],s=[],l=[],o=[];if(this.parent.type!==n.DataType||!this.parent.inferred)return t==null||t.attemptAutoclose("infer-definition-entity-from-inputs",this.id),{added:[],updated:[],removed:[],affected:[],self:this};const d=[];e.forEach(c=>{d.find(E=>x(E,this.project)===x(c,this.project))||d.push(c)});const u=this.properties.filter(c=>!c.dataType);d.forEach(c=>{var M,G;const I=u.find(B=>x(B,this.project)===x(c,this.project));if(!I)return;const O=Cn(c.parent).getMasterInputWithValueWritterFromAllInstances(c),P=Ji(O,t),V=P==null?void 0:P.clone(t,I,m.UUID.uuid(),!0);if(V){const B=(M=I.dataType)==null?void 0:M.merge(V,t);I.dataType&&(B==null?void 0:B.self.id)!==I.dataType.id&&I.dataType.remove({ignoreUpstream:!1},t),V.id!==((G=B==null?void 0:B.self)==null?void 0:G.id)&&V.remove({ignoreUpstream:!1},t),B!=null&&B.self&&(B.self.metaSync({inferred:!0,like:!0},t),t==null||t.add(B.self,A.Added),I.setDataType(B.self),t==null||t.add(I,A.Updated))}c.setDeclaration(I),t==null||t.add(c,A.Updated)});const y=[];return d.forEach(c=>{if(!c.declaration){y.push(c);return}}),y.length===0?(t==null||t.attemptAutoclose("infer-definition-entity-from-inputs",this.id),{added:[],updated:[],removed:[],affected:[],self:this}):(y.forEach(c=>{var B,$,Z,J;const I=this.properties.find(te=>x(te,this.project)===x(c,this.project));if(I){if(c.setDeclaration(I),!I.getDataType(t)){const fe=Cn(c.parent).getMasterInputWithValueWritterFromAllInstances(c),Ie=Ji(fe),X=Ie==null?void 0:Ie.clone(t,I,m.UUID.uuid(),!0);if(X){const le=(B=I.dataType)==null?void 0:B.merge(X,t);I.dataType&&(le==null?void 0:le.self.id)!==I.dataType.id&&I.dataType.remove({ignoreUpstream:!1},t),X.id!==(($=le==null?void 0:le.self)==null?void 0:$.id)&&X.remove({ignoreUpstream:!1},t),le!=null&&le.self&&(le.self.metaSync({inferred:!0,like:!0},t),t==null||t.add(le.self,A.Added),I.setDataType(le.self),t==null||t.add(I,A.Updated))}}return}const E={id:m.UUID.uuid(),type:n.Property,version:m.UUID.uuid(),createdAt:(t==null?void 0:t.timestamp)||T().toISOString(),author:m.sessionAuthor,previousVersion:null,deleted:!1,name:x(c,this.project),description:c.description,defaultValue:null,static:!0,abstract:!1,private:!1,hidden:!1,required:!1,constant:!0,index:c.index,implements:null,dataType:null,parent:this.toReference()},O=C(E,this.project);O.setParent(this,t),O.initChildren(t),t==null||t.add(O,A.Added);const V=Cn(c.parent).getMasterInputWithValueWritterFromAllInstances(c),M=Ji(V),G=M==null?void 0:M.clone(t,O,m.UUID.uuid(),!0);if(G){const te=(Z=O.dataType)==null?void 0:Z.merge(G,t);O.dataType&&(te==null?void 0:te.self.id)!==O.dataType.id&&O.dataType.remove({ignoreUpstream:!1},t),G.id!==((J=te==null?void 0:te.self)==null?void 0:J.id)&&G.remove({ignoreUpstream:!1},t),te!=null&&te.self&&(te.self.metaSync({inferred:!0,like:!0},t),t==null||t.add(te.self,A.Added),O.setDataType(te.self),t==null||t.add(O,A.Updated))}return this.addProperty(O),c.setDeclaration(O),t==null||t.add(c,A.Updated),O}),t==null||t.attemptAutoclose("infer-definition-entity-from-inputs",this.id),{added:p(i),updated:p(s),removed:p(l),affected:p(o),self:this})}};f(ge,"repository",{APICreate:async(e,...t)=>e,APIUpdate:async(e,...t)=>e,APIDelete:async(e,...t)=>e,APIClone:async(e,...t)=>{},APILoad:async(e,...t)=>null,APILoadVersion:async(e,t,...i)=>null}),f(ge,"type",n.DefinitionEntity),f(ge,"USER_MANAGED_PARENT_TYPES",[n.Project,n.DataType]),f(ge,"PARENT_TYPES",[...ge.USER_MANAGED_PARENT_TYPES]),f(ge,"MUTABLE_BASE_PROPERTIES",["name","description","static","abstract"]),f(ge,"INMUTABLE_BASE_PROPERTIES",["id","type","version","createdAt","author","previousVersion"]),f(ge,"BASE_PROPERTIES",[...ge.MUTABLE_BASE_PROPERTIES,...ge.INMUTABLE_BASE_PROPERTIES]),f(ge,"MUTABLE_META_PROPERTIES",[...ge.MUTABLE_BASE_PROPERTIES,"x","y"]),f(ge,"INMUTABLE_META_PROPERTIES",[...ge.INMUTABLE_BASE_PROPERTIES]),f(ge,"META_PROPERTIES",[...ge.MUTABLE_META_PROPERTIES,...ge.INMUTABLE_META_PROPERTIES]),f(ge,"MUTABLE_UPSTREAM_PROPERTIES",["extends","implements"]),f(ge,"INMUTABLE_UPSTREAM_PROPERTIES",["parent"]),f(ge,"UPSTREAM_PROPERTIES",[...ge.MUTABLE_UPSTREAM_PROPERTIES,...ge.INMUTABLE_UPSTREAM_PROPERTIES]),f(ge,"MUTABLE_DOWNSTREAM_PROPERTIES",["properties","methods","abstractMethods"]),f(ge,"INMUTABLE_DOWNSTREAM_PROPERTIES",[]),f(ge,"DOWNSTREAM_PROPERTIES",[...ge.MUTABLE_DOWNSTREAM_PROPERTIES,...ge.INMUTABLE_DOWNSTREAM_PROPERTIES]),f(ge,"PROPERTIES",[...ge.META_PROPERTIES,...ge.UPSTREAM_PROPERTIES,...ge.DOWNSTREAM_PROPERTIES]);let Xr=ge;function YJ(r){const a=J3(),e=r.toJSON();a.safeParse(e).success;const i=[];return He(r.errors,i)}const Ga=class Ga extends at{constructor(e,t){super(e);f(this,"initialData");f(this,"id");f(this,"version");f(this,"name");f(this,"description",null);f(this,"type",n.BuiltInBaseEntity);f(this,"abstract",!1);f(this,"static");f(this,"properties",[]);f(this,"methods",[]);f(this,"abstractMethods",[]);f(this,"extends",[]);f(this,"interactive",!1);f(this,"errors",[]);f(this,"project");this.initialData=this.initialData||e,this.project=this.project||t,this.id=this.id||e.id,this.version=this.version||e.version,this.name=this.name||e.name,this.static=this.static||e.static,this.interactive=this.interactive||e.interactive,this.abstract=e.abstract,this.properties=this.initialData.properties.map(i=>{const s=C(i,this.project);return s.setParent(this,null),s.initChildren(null),s}),this.methods=this.initialData.methods.map(i=>{const s=C(i,this.project);return s.setParent(this,null),s.initChildren(null),s}),this.abstractMethods=this.initialData.abstractMethods.map(i=>{const s=C(i,this.project);return s.setParent(this,null),s.initChildren(null),s}),this.extends=this.initialData.extends.map(i=>C(i,this.project))}get allBasePropertiesFromExtendedAndImplementedEntities(){return p(this.extends.reduce((e,t)=>{const i=[...t.ownDeclaredProperties,...t.allBasePropertiesFromExtendedAndImplementedEntities].filter(s=>!s.abstract);return[...e,...i]},[]))}get extendedPropertiesFromOriginalParents(){return p(this.extends.reduce((e,t)=>{const i=[...t.ownDeclaredProperties,...t.extendedPropertiesFromOriginalParents].filter(s=>!s.abstract);return[...e,...i]},[]))}get implementedPropertiesFromOriginalParents(){return p([...this.extends.reduce((e,t)=>{const i=t.implementedPropertiesFromOriginalParents,s=[...t.ownDeclaredProperties].filter(l=>!!l.abstract&&!i.find(o=>o.name===l.name));return[...i,...s,...e]},[])])}get extendedProperties(){return this.properties.filter(e=>e.isExtendedProperty)}get ownDeclaredProperties(){return this.properties.filter(e=>!e.isExtendedProperty)}subscribe(){return this.project.subscribeInstance(this),this}unsubscribe(){return this.project.unsubscribeInstance(this),this}async APILoad(e=g,...t){return await Ga.repository.APILoad(this.id,...t),this}toFlat(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[this,...this.properties.flatMap(i=>i.toFlat(e)),...this.methods.flatMap(i=>i.toFlat(e)),...this.abstractMethods.flatMap(i=>i.toFlat(e)),...this.extends.flatMap(i=>i.toFlat(e))])}toFlatIds(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[this.id,...this.properties.flatMap(i=>i.toFlatIds(e)),...this.methods.flatMap(i=>i.toFlatIds(e)),...this.abstractMethods.flatMap(i=>i.toFlatIds(e)),...this.extends.flatMap(i=>i.toFlatIds(e))])}toMeta(){return{id:this.id,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,description:this.description,interactive:this.interactive,abstract:this.abstract,static:this.static,type:this.type,name:this.name}}toJSON(e=new Set){return e.has(this.id)?this.toReference():(e.add(this.id),{id:this.id,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,type:this.type,name:this.name,description:this.description,abstract:this.abstract,static:this.static,interactive:this.interactive,properties:this.properties.map(t=>t.toJSON(e)),methods:this.methods.map(t=>t.toJSON(e)),abstractMethods:this.abstractMethods.map(t=>t.toJSON(e)),extends:this.extends.map(t=>t.toJSON(e))})}toReference(e=q){return{id:this.id+"--"+m.UUID.uuid()+"--ref",type:n.GenericReference,entityId:this.id,version:this.version,entityType:this.type}}toShallowJSON(e=q){return{id:this.id,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,type:this.type,name:this.name,description:this.description,abstract:this.abstract,static:this.static,interactive:this.interactive,properties:this.properties.map(t=>t.toReference()),methods:this.methods.map(t=>t.toReference()),abstractMethods:this.abstractMethods.map(t=>t.toReference()),extends:this.extends.map(t=>t.toReference())}}toFlatJSON(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[this.toShallowJSON(),...this.properties.flatMap(i=>i.toFlatJSON(e)),...this.methods.flatMap(i=>i.toFlatJSON(e)),...this.abstractMethods.flatMap(i=>i.toFlatJSON(e))])}toGenerationTarget(){return{id:this.id,type:this.type,name:this.name,description:this.description,static:this.static,abstract:this.abstract,interactive:this.interactive,extends:this.extends.map(e=>e.id)}}toFlatGenerationTarget(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[this.toGenerationTarget(),...this.properties.flatMap(i=>i.toFlatGenerationTarget(e)),...this.methods.flatMap(i=>i.toFlatGenerationTarget(e)),...this.abstractMethods.flatMap(i=>i.toFlatGenerationTarget(e))])}clearErrors(){return this.errors=[],this.properties.forEach(e=>e.clearErrors()),this.methods.forEach(e=>e.clearErrors()),this.abstractMethods.forEach(e=>e.clearErrors()),this}validate(){const e=YJ(this);return this.errors=e,{success:!0,error:null,data:this.toJSON()}}getErrors(){return[...this.errors,...this.properties.flatMap(t=>t.getErrors()),...this.methods.flatMap(t=>t.getErrors()),...this.abstractMethods.flatMap(t=>t.getErrors())]}getShallowErrors(){return this.errors}implement(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),null,!0,"implement-built-in-base-entity")),i){const s=ql(this,e,t,i);return t==null||t.attemptAutoclose("implement-built-in-base-entity",this.id),s}getAllInteractiveMethods(){const e=[];return this.interactive&&(e.push(...this.methods),this.extends.filter(i=>i.type===n.BuiltInBaseEntity&&i.interactive||i.type===n.PrimitiveEntity).forEach(i=>{i instanceof Ga&&e.push(...i.getAllInteractiveMethods())})),p(e)}};f(Ga,"repository",{APILoad:async(e,...t)=>null});let Ki=Ga;function HJ(r){const a=j3(),e=r.toJSON();a.safeParse(e).success;const i=[];return He(r.errors,i)}const od=class od extends at{constructor(e,t){super(e);f(this,"initialData");f(this,"id");f(this,"name");f(this,"description",null);f(this,"type",n.PrimitiveEntity);f(this,"static");f(this,"abstract");f(this,"properties",[]);f(this,"methods",[]);f(this,"abstractMethods",[]);f(this,"extends",[]);f(this,"errors",[]);f(this,"project");this.initialData=e,this.project=t,this.id=e.id,this.name=e.name,this.static=e.static,this.abstract=e.abstract,this.properties=this.initialData.properties.map(i=>{const s=C(i,this.project);return s.setParent(this,null),s.initChildren(null),s}),this.methods=this.initialData.methods.map(i=>{const s=C(i,this.project);return s.parent=this,s}),this.abstractMethods=this.initialData.abstractMethods.map(i=>{const s=C(i,this.project);return s.parent=this,s})}get allBasePropertiesFromExtendedAndImplementedEntities(){return p(this.extends.reduce((e,t)=>{const i=[...t.ownDeclaredProperties,...t.allBasePropertiesFromExtendedAndImplementedEntities].filter(s=>!s.abstract);return[...e,...i]},[]))}get extendedPropertiesFromOriginalParents(){return p(this.extends.reduce((e,t)=>{const i=[...t.ownDeclaredProperties,...t.extendedPropertiesFromOriginalParents].filter(s=>!s.abstract);return[...e,...i]},[]))}get implementedPropertiesFromOriginalParents(){return p([...this.extends.reduce((e,t)=>{const i=t.implementedPropertiesFromOriginalParents,s=[...t.ownDeclaredProperties].filter(l=>!!l.abstract&&!i.find(o=>o.name===l.name));return[...i,...s,...e]},[])])}get extendedProperties(){return this.properties.filter(e=>e.isExtendedProperty)}get ownDeclaredProperties(){return this.properties.filter(e=>!e.isExtendedProperty)}subscribe(){return this.project.subscribeInstance(this),this}unsubscribe(){return this.project.unsubscribeInstance(this),this}async APILoad(e=g,...t){return await od.repository.APILoad(this.id,...t),this}toFlat(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[this,...this.properties.flatMap(i=>i.toFlat(e)),...this.methods.flatMap(i=>i.toFlat(e)),...this.abstractMethods.flatMap(i=>i.toFlat(e))])}toFlatIds(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[this.id,...this.properties.flatMap(i=>i.toFlatIds(e)),...this.methods.flatMap(i=>i.toFlatIds(e)),...this.abstractMethods.flatMap(i=>i.toFlatIds(e))])}toMeta(){return{id:this.id,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,description:this.description,static:this.static,abstract:this.abstract,type:this.type,name:this.name}}toJSON(e=new Set){return e.has(this.id)?this.toReference():(e.add(this.id),{id:this.id,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,type:this.type,name:this.name,description:this.description,static:this.static,abstract:this.abstract,properties:this.properties.map(t=>t.toJSON(e)),methods:this.methods.map(t=>t.toJSON(e)),abstractMethods:this.abstractMethods.map(t=>t.toJSON(e)),extends:this.extends.map(t=>t.toJSON(e))})}toReference(e=q){return{id:this.id+"--"+m.UUID.uuid()+"--ref",type:n.GenericReference,entityId:this.id,version:this.version,entityType:this.type}}toShallowJSON(e=q){return{id:this.id,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,type:this.type,name:this.name,description:this.description,abstract:this.abstract,static:this.static,properties:this.properties.map(t=>t.toReference()),methods:this.methods.map(t=>t.toReference()),abstractMethods:this.abstractMethods.map(t=>t.toReference()),extends:this.extends.map(t=>t.toReference())}}toFlatJSON(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[this.toShallowJSON(),...this.properties.flatMap(i=>i.toFlatJSON(e)),...this.methods.flatMap(i=>i.toFlatJSON(e)),...this.abstractMethods.flatMap(i=>i.toFlatJSON(e))])}toGenerationTarget(){return{id:this.id,type:this.type,name:this.name,description:this.description,static:this.static,abstract:this.abstract,extends:this.extends.map(e=>e.id)}}toFlatGenerationTarget(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[this.toGenerationTarget(),...this.properties.flatMap(i=>i.toFlatGenerationTarget(e)),...this.methods.flatMap(i=>i.toFlatGenerationTarget(e)),...this.abstractMethods.flatMap(i=>i.toFlatGenerationTarget(e))])}clearErrors(){return this.errors=[],this.properties.forEach(e=>e.clearErrors()),this.methods.forEach(e=>e.clearErrors()),this.abstractMethods.forEach(e=>e.clearErrors()),this}validate(){const e=HJ(this);return this.errors=e,{success:!0,error:null,data:this.toJSON()}}getErrors(){return[...this.errors,...this.properties.flatMap(t=>t.getErrors()),...this.methods.flatMap(t=>t.getErrors()),...this.abstractMethods.flatMap(t=>t.getErrors())]}getShallowErrors(){return this.errors}getAllInteractiveMethods(){const e=[];return e.push(...this.methods),this.extends.filter(i=>i.type===n.BuiltInBaseEntity&&i.interactive||i.type===n.PrimitiveEntity).forEach(i=>{i instanceof Ki&&e.push(...i.getAllInteractiveMethods())}),p(e)}};f(od,"repository",{APILoad:async(e,...t)=>null});let oi=od;function ct(r,a){if(!r)throw new Error("Entity is null");const e=a.get(r.id);switch(r.type){case n.LiteralValue:return e||new Nn(r,a);case n.DefinitionEntity:return e||new Xr(r,a);case n.PrimitiveEntity:return e||new oi(r,a);case n.FunctionDeclaration:return e||new gr(r,a);case n.GlobalEvent:return e||new Bn(r,a);case n.DataType:return e||new Vn(r,a);case n.Property:return e||new Lr(r,a);case n.FunctionCall:return e||new Yr(r,a);case n.Condition:return e||new Gr(r,a);case n.Operation:return e||new jr(r,a);case n.VariableDeclaration:return e||new xr(r,a);case n.VariableInstance:return e||new Fr(r,a);case n.OutputMap:return e||new zi(r,a);case n.ReturnDeclaration:return e||new si(r,a);case n.ArgumentDeclaration:return e||new Zr(r,a);case n.InputMap:return e||new Wi(r,a);case n.Project:return e||new m(r);case n.InstalledProject:return e||new Sr(r,a);case n.ActionDescriptor:return e||new We(r,a);case n.ReturnStatement:return e||new Ur(r,a);case n.Loop:return e||new $r(r,a);case n.Search:return e||new kr(r,a);case n.ValueDescriptor:return e||new qr(r,a);case n.BuiltInBaseEntity:return e||new Ki(r,a);case n.InternalCall:return e||new Mn(r,a);case n.ContinueStatement:return e||new xt(r,a);case n.BreakStatement:return e||new _n(r,a);case n.GenericReference:return a.get(r.entityId);default:throw new Error("Invalid entity type: "+r.type)}}function C(r,a){if(!r)throw new Error("Entity is null");const e=ct(r,a);return e.subscribe(),e}function KJ(r,a){if(!r)throw new Error("Entity is null");switch(r.type){case n.LiteralValue:return Nn.fromGenerationTarget(r,a);case n.DefinitionEntity:return Xr.fromGenerationTarget(r,a);case n.FunctionDeclaration:return gr.fromGenerationTarget(r,a);case n.GlobalEvent:return Bn.fromGenerationTarget(r,a);case n.DataType:return Vn.fromGenerationTarget(r,a);case n.Property:return Lr.fromGenerationTarget(r,a);case n.FunctionCall:return Yr.fromGenerationTarget(r,a);case n.Condition:return Gr.fromGenerationTarget(r,a);case n.Operation:return jr.fromGenerationTarget(r,a);case n.VariableDeclaration:return xr.fromGenerationTarget(r,a);case n.VariableInstance:return Fr.fromGenerationTarget(r,a);case n.OutputMap:return zi.fromGenerationTarget(r,a);case n.ReturnDeclaration:return si.fromGenerationTarget(r,a);case n.ArgumentDeclaration:return Zr.fromGenerationTarget(r,a);case n.InputMap:return Wi.fromGenerationTarget(r,a);case n.InstalledProject:return Sr.fromGenerationTarget(r,a);case n.ReturnStatement:return Ur.fromGenerationTarget(r,a);case n.Loop:return $r.fromGenerationTarget(r,a);case n.Search:return kr.fromGenerationTarget(r,a);case n.ActionDescriptor:return We.fromGenerationTarget(r,a);case n.ValueDescriptor:return qr.fromGenerationTarget(r,a);case n.InternalCall:return Mn.fromGenerationTarget(r,a);case n.ContinueStatement:return xt.fromGenerationTarget(r,a);case n.BreakStatement:return _n.fromGenerationTarget(r,a);default:throw new Error("Invalid entity type: "+r.type)}}const q={seenEntityMaps:new Map,seenEntities:new Set,timestamp:T().toISOString()};class nw{constructor(){f(this,"initialData")}}const g={cascade:!1},sw={APILoad:async(r,...a)=>null},XJ={APICreate:async(r,...a)=>r,APIUpdate:async(r,...a)=>r,APIDelete:async(r,...a)=>r,APIClone:async(r,...a)=>{},APILoadVersion:async(r,a,...e)=>null,...sw};class QJ{}class eW extends nw{}class tW{}class iW{}class rW{}class nf{}class nW extends nf{}class sW extends nf{}class aW{}class Tr{static initReadsValue(a){if(a.initialData.readsValue&&a.initialData.readsValue.type!==n.GenericReference)a.readsValue=C(a.initialData.readsValue,a.project);else if(a.initialData.readsValue&&a.initialData.readsValue.type===n.GenericReference){const e=mi(a.initialData.readsValue,a.project);e&&(a.readsValue=e)}if(a.readsValue){if(tt.includes(a.readsValue.type)){let e=a.parent;dt.includes(e.type)||(e=e.parent);const t=a.type===n.InputMap&&a.parent.type===n.Loop;t&&(e=a.parent.parent),a.readsValue.setParent(e,null),a.readsValue.initChildren(null),!t&&e.detachedChildren.includes(a)?e.replaceDetachedChild(a,a.readsValue):t||e.subscribeDetachedChild(a.readsValue)}a.readsValue.addValueReader(a,null)}return a.readsValue}static hydrateReadsValue(a){if(a.initialData.readsValue&&a.initialData.readsValue.type!==n.GenericReference)a.readsValue=C(a.initialData.readsValue,a.project);else if(a.initialData.readsValue&&a.initialData.readsValue.type===n.GenericReference){const e=mi(a.initialData.readsValue,a.project);e&&(a.readsValue=e)}if(a.readsValue){if(tt.includes(a.readsValue.type)){let e=a.parent;dt.includes(e.type)||(e=e.parent);const t=a.type===n.InputMap&&a.parent.type===n.Loop;t&&(e=a.parent.parent),a.readsValue.setParent(e,null),!t&&e.detachedChildren.includes(a)?e.replaceDetachedChild(a,a.readsValue):t||e.subscribeDetachedChild(a.readsValue)}a.readsValue.addValueReader(a,null)}return a.readsValue}}class ja{static initWritesValues(a,e){const t=a.initialData.writesValues.reduce((s,l)=>{if(l.type===n.GenericReference||a.writesValues.some(d=>d.id===l.id))return s;const o=C(l,a.project);return o.setValueWriter(a,null),tt.includes(o.type)&&(o.setParent(e,null),o.initChildren(null)),[...s,o]},[]),i=[...a.writesValues];return a.writesValues=p([...i,...t]),a.writesValues}}class oW{}const ae=class ae extends at{constructor(e){super(e);f(this,"initialData");f(this,"id");f(this,"type",n.Project);f(this,"name",null);f(this,"description",null);f(this,"x");f(this,"y");f(this,"entities",[]);f(this,"projects",[]);f(this,"functions",[]);f(this,"events",[]);f(this,"variableDeclarations",[]);f(this,"variableInstances",[]);f(this,"conditions",[]);f(this,"operations",[]);f(this,"functionCalls",[]);f(this,"loops",[]);f(this,"searches",[]);f(this,"primitives",[]);f(this,"builtInBaseEntities",[]);f(this,"operationDeclarations",[]);f(this,"globalEventActionDescriptors",[]);f(this,"loopDeclarations",[]);f(this,"loopDeclarationsBodies",[]);f(this,"conditionDeclarations",[]);f(this,"valueDescriptors",[]);f(this,"dataTypes",[]);f(this,"project");f(this,"instances",{});f(this,"builtInInstances",{});f(this,"deletedInstances",{});f(this,"errors",[]);f(this,"references",[]);f(this,"history",[]);f(this,"detachedDependents",{});f(this,"knownVersions",null);f(this,"activeVersion",!1);f(this,"initialized",!1);f(this,"startedInitialization",!1);f(this,"onCloseChangeSetCallback",null);this.initialData=e,this.id=e.id,this.name=e.name,this.description=e.description,this.x=0,this.y=0,this.instances[this.id]=this;try{(!ae.UUID||ae.UUID.isBackup)&&(ae.UUID=Fo==null?void 0:Fo()),ae.UUID||(ae.UUID={isBackup:!0,uuid:()=>Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15),fromUUID:t=>t})}catch(t){console.error("Error initializing UUID module",t),ae.UUID={isBackup:!0,uuid:()=>Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15),fromUUID:i=>i}}}static injectUUIDModule(e){ae.UUID=e}static validateGenerationTarget(e,t){let i=JSON.parse(JSON.stringify(e));const s=[];return s.push(...ut(i)),{errors:s,modifiedData:i}}async closePendingCallbacks(){for(let e=0;e<this.history.length;e++){const t=this.history[e];t.dirty&&await t.closeAsync()}}async onCloseChangeSet(e){this.onCloseChangeSetCallback=e,await this.closePendingCallbacks()}async closeChangeSet(e){if(this.onCloseChangeSetCallback){const t=await this.onCloseChangeSetCallback(e);return t.success&&(e.dirty=!1),t}return{success:!1}}toLatestChangeSet(e,t,i,s=!1,l="here-this"){if(!this.history.length)return new b(this,e,t,i,s,l);const o=this.history[this.history.length-1];return o.open?o:this.addChangeSet(new b(this,e,t,i,s,l))}addChangeSet(e){if(!this.history.length)return this.history.push(e),e;const t=this.history.find(l=>l.id===(e==null?void 0:e.id));if(t)return t;const i=this.history.find(l=>l.open);if(i)throw console.log("previouslyStillOpen: ",i),console.log("new change set: ",e),new Error(`There is already an open change-set with id '${i.id}'.`);const s=this.history.findIndex(l=>T(l.timestamp).isBefore(T(e==null?void 0:e.timestamp)));return s===-1?this.history.push(e):this.history.splice(s,0,e),e}discardChangeSet(e){const t=this.history.findIndex(i=>i.id===(e==null?void 0:e.id));return t!==-1&&this.history.splice(t,1),this}undo(){const e=[],t=[],i=[],s=[];return{updated:p(e),added:p(t),removed:p(i),affected:p(s),self:this}}redo(){const e=[],t=[],i=[],s=[];return{updated:p(e),added:p(t),removed:p(i),affected:p(s),self:this}}async inject(...e){return await Promise.all(e.map(t=>new Promise(async i=>{await t.init(this),i(null)}))),this}validateGeneratedUpdate(e){return{errors:[],modifiedData:e}}subscribeDependents(e){return e.forEach(t=>{this.detachedDependents[t.entity.id]||(this.detachedDependents[t.entity.id]=t)}),this}syncDependents(){const e=[],t=[],i=[],s=[];return Object.values(this.detachedDependents).forEach(l=>{const o=l.entity.afterAllChildrenInitialized();e.push(...o.updated),t.push(...o.added),i.push(...o.removed),s.push(...o.affected)}),{updated:p(e),added:p(t),removed:p(i),affected:p(s),self:this}}onDetachedDependencyRemoved(e,t,i){const s=[],l=[],o=[],d=[];return{updated:p(s),added:p(l),removed:p(o),affected:p(d),self:this}}onDetachedDependencyRestored(e,t,i){const s=[],l=[],o=[],d=[];return{updated:p(s),added:p(l),removed:p(o),affected:p(d),self:this}}subscribeToDependencies(){return this}increaseVersion(e){if(e&&!T(e).isValid())throw new Error(`The shared timestamp '${e}' is not a valid ISO 8601 date string.`);return e&&T(e).isSame(T(this.createdAt))?this:(this.previousVersion=this.version,this.version=ae.UUID.uuid(),this.createdAt=T(e).toISOString()||T().toISOString(),this)}captureVersion(){var t;const e=((t=this.knownVersions)==null?void 0:t.get(this.version))||new ae(this);return e.metaSync(this.toMeta(),null),this.knownVersions=this.knownVersions?this.knownVersions.set(this.version,e):new Map([[this.version,e]]),e.entities=this.entities,e.projects=this.projects,e.functions=this.functions,e.events=this.events,e.variableDeclarations=this.variableDeclarations,e.variableInstances=this.variableInstances,e.conditions=this.conditions,e.operations=this.operations,e.functionCalls=this.functionCalls,e.loops=this.loops,e.searches=this.searches,this}recursiveCaptureUpstreamVersions(e){const t=[],i=[],s=[],l=[];return{updated:p(t),added:p(i),removed:p(s),affected:p(l),self:this}}async restoreVersion(e){var d;const t=[],i=[],s=[],l=[];if(this.version===e)return{updated:p(t),added:p(i),removed:p(s),affected:p(l),self:this};if(!this.knownVersions){const u=new Map;for(const[y,c]of this.knownVersions||new Map){if(u.set(y,c),c.activeVersion=!1,c.knownVersions)for(const[I,E]of c.knownVersions)u.set(I,E);c.knownVersions=null}}let o=(d=this.knownVersions)==null?void 0:d.get(e);if(!o){const u=await this.APILoadVersion({},e);if(!u)throw new Error(`Version with id '${e}' for entity with id '${this.id}' not found.`);o=new ae(u)}return this.metaSync(o.toShallowJSON(),null),this.entities=o.entities,this.projects=o.projects,this.functions=o.functions,this.events=o.events,this.variableDeclarations=o.variableDeclarations,this.variableInstances=o.variableInstances,this.conditions=o.conditions,this.operations=o.operations,this.functionCalls=o.functionCalls,this.loops=o.loops,this.searches=o.searches,{updated:p(t),added:p(i),removed:p(s),affected:p(l),self:this}}hydrateAncestors(){const e=[],t=[],i=[],s=[];return{updated:p(e),added:p(t),removed:p(i),affected:p(s),self:this}}afterAllChildrenInitialized(e=null){const t=[],i=[],s=[],l=[];return this.initialized=!0,this.captureVersion(),this.validate(),{updated:p(t),added:p(i),removed:p(s),affected:p(l),self:this}}addSelfToProject(e){const t=[],i=[],s=[],l=[];return this.subscribe(),this.subscribeToDependencies(),{updated:p(t),added:p(i),removed:p(s),affected:p(l),self:this}}get instancesList(){return Object.values(this.instances)}isOperationDeclaration(e){return this.operationDeclarations.includes(e)}isGlobalEventActionDescriptor(e){return this.globalEventActionDescriptors.includes(e)}isLoopDeclaration(e){return this.loopDeclarations.includes(e)}isConditionDeclaration(e){return this.conditionDeclarations.includes(e)}initChildren(e=this.project.addChangeSet(new b(this.project,ae.sessionAuthor,T().toISOString(),this,!0,"init-children"))){return this.initialized||this.startedInitialization?this:(this.startedInitialization=!0,this.entities=this.initialData.entities.map(t=>{const i=C(t,this);return i.setParent(this,null),i.initChildren(e),i}),this.projects=this.initialData.projects.map(t=>{const i=C(t,this);return i.setParent(this,null),i.initChildren(e),i}),this.variableDeclarations=this.initialData.variableDeclarations.map(t=>{const i=C(t,this);return i.setParent(this,null),i.initChildren(e),i}),this.variableInstances=this.initialData.variableInstances.map(t=>{const i=C(t,this);return i.setParent(this,null),i.initChildren(e),i}),this.conditions=this.initialData.conditions.map(t=>{const i=C(t,this);return i.setParent(this,null),i.initChildren(e),i}),this.operations=this.initialData.operations.map(t=>{const i=C(t,this);return i.setParent(this,null),i.initChildren(e),i}),this.functions=this.initialData.functions.map(t=>{const i=C(t,this);return i.setParent(this,null),i.initChildren(e),i}),this.events=this.initialData.events.map(t=>{const i=C(t,this);return i.setParent(this,null),i.initChildren(e),i}),this.functionCalls=this.initialData.functionCalls.map(t=>{const i=C(t,this);return i.setParent(this,null),i.initChildren(e),i}),this.loops=this.initialData.loops.map(t=>{const i=C(t,this);return i.setParent(this,null),i.initChildren(e),i}),this.searches=this.initialData.searches.map(t=>{const i=C(t,this);return i.setParent(this,null),i.initChildren(e),i}),this.attachOrphanReferences(),this.subscribeToDependencies(),this.afterAllChildrenInitialized(e),e==null||e.attemptAutoclose("init-children",this.id),this)}subscribeInstance(e){return(!this.instances[e.id]||this.instances[e.id]!==e)&&(this.instances[e.id]=e),this}subscribeDeletedInstance(e){return(!this.deletedInstances[e.id]||this.deletedInstances[e.id]!==e)&&(this.deletedInstances[e.id]=e),this}subscribeBuiltInInstance(e){return(!this.builtInInstances[e.id]||this.builtInInstances[e.id]!==e)&&(this.builtInInstances[e.id]=e),this}subscribe(){return this}unsubscribe(){return this}unsubscribeInstance(e){return delete this.instances[e.id],this}unsubscribeDeletedInstance(e){return delete this.deletedInstances[e.id],this}findSubscribedBuiltInInstance(e){return this.builtInInstances[e.id]||null}get(e){return this.instances[e]||this.builtInInstances[e]||null}getDeleted(e){return this.deletedInstances[e]||null}getManaged(e){return this.getBuiltIn(e)?null:this.instances[e]||null}getBuiltIn(e){return this.builtInInstances[e]||null}findSubscribedInstanceFromReference(e){return this.instances[e.entityId]||null}findSubscribedBuiltInInstanceFromReference(e){return this.builtInInstances[e.entityId]||null}metaSync(e,t=this.project.addChangeSet(new b(this.project,ae.sessionAuthor,T().toISOString(),this,!0,"meta-sync"))){const i=pt(this,e),s=this.toMeta();return this.name=e.name||s.name,this.description=e.description||s.description,this.x=e.x||s.x,this.y=e.y||s.y,super.metaSync(e),e.deleted===!0&&!s.deleted?t==null||t.add(this,A.Removed):e.deleted===!1&&s.deleted?t==null||t.add(this,A.Added):i&&(t==null||t.add(this,A.Updated)),t==null||t.attemptAutoclose("meta-sync",this.id),this}async APILoad(e=g,...t){return await ae.repository.APILoad(this.id,...t),this}async APICreate(e=g,...t){return await ae.repository.APICreate(this.toShallowJSON(),...t),this}async APIUpdate(e=g,...t){return await ae.repository.APIUpdate(this.toShallowJSON(),...t),this}async APIDelete(e=g,...t){return await ae.repository.APIDelete(this.toShallowJSON(),...t),this}async APIClone(e=g,...t){return await ae.repository.APIClone(this.id,...t),this}async APILoadVersion(e=g,t,...i){return await ae.repository.APILoadVersion(this.id,t,...i)}remove({ignoreUpstream:e}={ignoreUpstream:!1},t=this.project.addChangeSet(new b(this.project,ae.sessionAuthor,T().toISOString(),this,!0,"remove-entity"))){return{added:[],updated:[],removed:[],affected:[],self:this}}restore({}={},e=this.project.addChangeSet(new b(this.project,ae.sessionAuthor,T().toISOString(),this,!0,"restore-entity"))){return{added:[],updated:[],removed:[],affected:[],self:this}}getAllBuiltInIds(){const e=new Set;return[...this.primitives.flatMap(t=>t.toFlatIds(e)),...this.builtInBaseEntities.flatMap(t=>t.toFlatIds(e)),...this.operationDeclarations.flatMap(t=>t.toFlatIds(e)),...this.globalEventActionDescriptors.flatMap(t=>t.toFlatIds(e)),...this.loopDeclarations.flatMap(t=>t.toFlatIds(e)),...this.conditionDeclarations.flatMap(t=>t.toFlatIds(e)),...this.valueDescriptors.flatMap(t=>t.toFlatIds(e)),...this.dataTypes.flatMap(t=>t.toFlatIds(e))]}getAllBuiltIn(){const e=new Set;return[...this.primitives.flatMap(t=>t.toFlat(e)),...this.builtInBaseEntities.flatMap(t=>t.toFlat(e)),...this.operationDeclarations.flatMap(t=>t.toFlat(e)),...this.globalEventActionDescriptors.flatMap(t=>t.toFlat(e)),...this.loopDeclarations.flatMap(t=>t.toFlat(e)),...this.conditionDeclarations.flatMap(t=>t.toFlat(e)),...this.valueDescriptors.flatMap(t=>t.toFlat(e)),...this.dataTypes.flatMap(t=>t.toFlat(e))]}toFlat(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[this,...this.entities.flatMap(i=>i.toFlat(e)),...this.functions.flatMap(i=>i.toFlat(e)),...this.events.flatMap(i=>i.toFlat(e)),...this.projects.flatMap(i=>i.toFlat(e)),...this.variableDeclarations.flatMap(i=>i.toFlat(e)),...this.variableInstances.flatMap(i=>i.toFlat(e)),...this.conditions.flatMap(i=>i.toFlat(e)),...this.operations.flatMap(i=>i.toFlat(e)),...this.functionCalls.flatMap(i=>i.toFlat(e)),...this.loops.flatMap(i=>i.toFlat(e)),...this.searches.flatMap(i=>i.toFlat(e))])}toFlatIds(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[this.id,...this.entities.flatMap(i=>i.toFlatIds(e)),...this.functions.flatMap(i=>i.toFlatIds(e)),...this.events.flatMap(i=>i.toFlatIds(e)),...this.projects.flatMap(i=>i.toFlatIds(e)),...this.variableDeclarations.flatMap(i=>i.toFlatIds(e)),...this.variableInstances.flatMap(i=>i.toFlatIds(e)),...this.conditions.flatMap(i=>i.toFlatIds(e)),...this.operations.flatMap(i=>i.toFlatIds(e)),...this.functionCalls.flatMap(i=>i.toFlatIds(e)),...this.loops.flatMap(i=>i.toFlatIds(e)),...this.searches.flatMap(i=>i.toFlatIds(e))])}toMeta(){return{id:this.id,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,description:this.description,type:this.type,name:this.name}}toJSON(e=new Set){return e.has(this.id)?this.toReference():(e.add(this.id),{id:this.id,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,type:this.type,name:this.name,description:this.description,entities:this.entities.map(t=>t.toJSON(e)),variableDeclarations:this.variableDeclarations.map(t=>t.toJSON(e)),variableInstances:this.variableInstances.map(t=>t.toJSON(e)),conditions:this.conditions.map(t=>t.toJSON(e)),operations:this.operations.map(t=>t.toJSON(e)),loops:this.loops.map(t=>t.toJSON(e)),searches:this.searches.map(t=>t.toJSON(e)),functions:this.functions.map(t=>t.toJSON(e)),events:this.events.map(t=>t.toJSON(e)),projects:this.projects.map(t=>t.toJSON(e)),functionCalls:this.functionCalls.map(t=>t.toJSON(e))})}toJSONClone(e={uuidStrategy:"uuid"}){const t=new Map,i=new Set,s=this.getAllBuiltInIds();return Object.keys(this.instances).forEach(l=>{if(s.includes(l)){t.set(l,l);return}t.set(l,ae.UUID.uuid())}),i.add(this.id),{id:t.get(this.id),version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,type:this.type,name:this.name,description:this.description,entities:this.entities.map(l=>l.toJSONClone({...e,seenEntityMaps:t,seenEntities:i,newId:null})),projects:this.projects.map(l=>l.toJSONClone({...e,seenEntityMaps:t,seenEntities:i,newId:null})),variableDeclarations:this.variableDeclarations.map(l=>l.toJSONClone({...e,seenEntityMaps:t,seenEntities:i,newId:null})),variableInstances:this.variableInstances.map(l=>l.toJSONClone({...e,seenEntityMaps:t,seenEntities:i,newId:null})),conditions:this.conditions.map(l=>l.toJSONClone({...e,seenEntityMaps:t,seenEntities:i,newId:null})),operations:this.operations.map(l=>l.toJSONClone({...e,seenEntityMaps:t,seenEntities:i,newId:null})),functions:this.functions.map(l=>l.toJSONClone({...e,seenEntityMaps:t,seenEntities:i,newId:null})),events:this.events.map(l=>l.toJSONClone({...e,seenEntityMaps:t,seenEntities:i,newId:null})),functionCalls:this.functionCalls.map(l=>l.toJSONClone({...e,seenEntityMaps:t,seenEntities:i,newId:null})),loops:this.loops.map(l=>l.toJSONClone({...e,seenEntityMaps:t,seenEntities:i,newId:null})),searches:this.searches.map(l=>l.toJSONClone({...e,seenEntityMaps:t,seenEntities:i,newId:null}))}}toReference(e=q){var i;let t=this.id;return(i=e.seenEntityMaps)!=null&&i.has(this.id)&&(t=e.seenEntityMaps.get(this.id)),{id:t+"--"+ae.UUID.uuid()+"--ref",type:n.GenericReference,entityId:t,version:this.version,entityType:this.type}}toShallowJSON(e=q){var i;let t=this.id;return(i=e.seenEntityMaps)!=null&&i.has(this.id)&&(t=e.seenEntityMaps.get(this.id)),{id:t,version:this.version,createdAt:this.createdAt,previousVersion:this.previousVersion,author:this.author,deleted:this.deleted,type:this.type,name:this.name,description:this.description,entities:this.entities.map(s=>s.toReference(e)),functions:this.functions.map(s=>s.toReference(e)),events:this.events.map(s=>s.toReference(e)),projects:this.projects.map(s=>s.toReference(e)),variableDeclarations:this.variableDeclarations.map(s=>s.toReference(e)),variableInstances:this.variableInstances.map(s=>s.toReference(e)),conditions:this.conditions.map(s=>s.toReference(e)),operations:this.operations.map(s=>s.toReference(e)),functionCalls:this.functionCalls.map(s=>s.toReference(e)),loops:this.loops.map(s=>s.toReference(e)),searches:this.searches.map(s=>s.toReference(e))}}toFlatJSON(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[this.toShallowJSON(),...this.entities.flatMap(i=>i.toFlatJSON(e)),...this.functions.flatMap(i=>i.toFlatJSON(e)),...this.events.flatMap(i=>i.toFlatJSON(e)),...this.projects.flatMap(i=>i.toFlatJSON(e)),...this.variableDeclarations.flatMap(i=>i.toFlatJSON(e)),...this.variableInstances.flatMap(i=>i.toFlatJSON(e)),...this.conditions.flatMap(i=>i.toFlatJSON(e)),...this.operations.flatMap(i=>i.toFlatJSON(e)),...this.functionCalls.flatMap(i=>i.toFlatJSON(e)),...this.loops.flatMap(i=>i.toFlatJSON(e)),...this.searches.flatMap(i=>i.toFlatJSON(e))])}toGenerationTarget(){return{id:this.id,type:this.type,name:this.name,description:this.description}}toFlatGenerationTarget(e=new Set){return e.has(this.id)?[]:(e.add(this.id),[...this.entities.flatMap(i=>i.toFlatGenerationTarget(e)),...this.functions.flatMap(i=>i.toFlatGenerationTarget(e)),...this.events.flatMap(i=>i.toFlatGenerationTarget(e)),...this.projects.flatMap(i=>i.toFlatGenerationTarget(e)),...this.variableDeclarations.flatMap(i=>i.toFlatGenerationTarget(e)),...this.variableInstances.flatMap(i=>i.toFlatGenerationTarget(e)),...this.conditions.flatMap(i=>i.toFlatGenerationTarget(e)),...this.operations.flatMap(i=>i.toFlatGenerationTarget(e)),...this.functionCalls.flatMap(i=>i.toFlatGenerationTarget(e)),...this.loops.flatMap(i=>i.toFlatGenerationTarget(e)),...this.searches.flatMap(i=>i.toFlatGenerationTarget(e))])}clearErrors(){return this.errors=[],this.entities.forEach(e=>e.clearErrors()),this.projects.forEach(e=>e.clearErrors()),this.functions.forEach(e=>e.clearErrors()),this.events.forEach(e=>e.clearErrors()),this.variableDeclarations.forEach(e=>e.clearErrors()),this.variableInstances.forEach(e=>e.clearErrors()),this.conditions.forEach(e=>e.clearErrors()),this.operations.forEach(e=>e.clearErrors()),this.functionCalls.forEach(e=>e.clearErrors()),this.loops.forEach(e=>e.clearErrors()),this.searches.forEach(e=>e.clearErrors()),this}validate(){const e=lZ(),t=this.toJSON();return e.safeParse(t),this.validateChildren(),{success:!0,error:null,data:t}}validateChildren(){this.entities.forEach(e=>e.validate()),this.projects.forEach(e=>e.validate()),this.functions.forEach(e=>e.validate()),this.events.forEach(e=>e.validate()),this.variableDeclarations.forEach(e=>e.validate()),this.variableInstances.forEach(e=>e.validate()),this.conditions.forEach(e=>e.validate()),this.operations.forEach(e=>e.validate()),this.functionCalls.forEach(e=>e.validate()),this.loops.forEach(e=>e.validate()),this.searches.forEach(e=>e.validate())}getErrors(){return[...this.errors,...this.entities.flatMap(t=>t.getErrors()),...this.projects.flatMap(t=>t.getErrors()),...this.functions.flatMap(t=>t.getErrors()),...this.events.flatMap(t=>t.getErrors()),...this.variableDeclarations.flatMap(t=>t.getErrors()),...this.variableInstances.flatMap(t=>t.getErrors()),...this.conditions.flatMap(t=>t.getErrors()),...this.operations.flatMap(t=>t.getErrors()),...this.functionCalls.flatMap(t=>t.getErrors()),...this.loops.flatMap(t=>t.getErrors()),...this.searches.flatMap(t=>t.getErrors())]}getShallowErrors(){return this.errors}clone(){return this}getDefinitionEntity(e){return this.entities.find(t=>t.id===e)||null}addDefinitionEntityFromTransfer(e){const t=C(e,this);return this.addDefinitionEntity(t),t}addDefinitionEntity(e){return this.entities.includes(e)||this.entities.push(e),e}addFunctionDeclarationFromTransfer(e){const t=C(e,this);return this.addFunctionDeclaration(t),t}addFunctionDeclaration(e){return this.functions.includes(e)||this.functions.push(e),e}addFunctionCallFromTransfer(e){const t=C(e,this);return this.addFunctionCall(t),t}addFunctionCall(e){return this.functionCalls.includes(e)||this.functionCalls.push(e),e}addVariableDeclarationFromTransfer(e){const t=C(e,this);return this.addVariableDeclaration(t),t}addVariableDeclaration(e){return this.variableDeclarations.includes(e)||this.variableDeclarations.push(e),e}addVariableInstanceFromTransfer(e){const t=C(e,this);return this.addVariableInstance(t),t}addVariableInstance(e){return this.variableInstances.includes(e)||this.variableInstances.push(e),e}addInstalledProjectFromTransfer(e){const t=C(e,this);return this.addInstalledProject(t),this}addInstalledProject(e){return this.projects.includes(e)||this.projects.push(e),this}addGlobalEventFromTransfer(e){const t=C(e,this);return this.addGlobalEvent(t),this}addGlobalEvent(e){return this.events.includes(e)||this.events.push(e),this}addConditionFromTransfer(e){const t=C(e,this);return this.addCondition(t),this}addCondition(e){return this.conditions.includes(e)||this.conditions.push(e),this}addOperationFromTransfer(e){const t=C(e,this);return this.addOperation(t),this}addOperation(e){return this.operations.includes(e)||this.operations.push(e),this}addLoopFromTransfer(e){const t=C(e,this);return this.addLoop(t),this}addLoop(e){return this.loops.includes(e)||this.loops.push(e),this}addSearchFromTransfer(e){const t=C(e,this);return this.addSearch(t),this}addSearch(e){return this.searches.includes(e)||this.searches.push(e),this}removeDefinitionEntity(e){const t=this.entities.findIndex(i=>i.id===e.id);if(t>-1){const i=this.entities[t];return this.entities.splice(t,1),i}return null}removeFunctionDeclaration(e){const t=this.functions.findIndex(i=>i.id===e.id);if(t>-1){const i=this.functions[t];return this.functions.splice(t,1),i}return null}removeExternalProject(e){const t=this.projects.findIndex(i=>i.id===e.id);if(t>-1){const i=this.projects[t];return this.projects.splice(t,1),i}return null}removeGlobalEvent(e){const t=this.events.findIndex(i=>i.id===e.id);if(t>-1){const i=this.events[t];return this.events.splice(t,1),i}return null}removeTopLevelVariableDeclaration(e){if(e.type!==n.VariableDeclaration)return null;const t=this.variableDeclarations.findIndex(i=>i.id===e.id);if(t>-1){const i=this.variableDeclarations[t];return this.variableDeclarations.splice(t,1),i}return null}getEntryPoints(){return[...this.functions,...this.events,...this.entities.flatMap(t=>t.methods)]}getTerminationStatements(){return[...this.getEntryPoints().reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.ReturnStatement||l.type===n.ContinueStatement||l.type===n.BreakStatement)]},[])]}getFunctionDeclaration(e){return this.functions.find(t=>t.id===e)||null}getConditions(){return[...this.conditions,...this.getEntryPoints().reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Condition)]},[]),...this.functionCalls.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Condition)]},[]),...this.operations.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Condition)]},[]),...this.loops.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Condition)]},[]),...this.searches.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Condition)]},[])]}getOperations(){return[...this.operations,...this.getEntryPoints().reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Operation)]},[]),...this.functionCalls.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Operation)]},[]),...this.conditions.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Operation)]},[]),...this.loops.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Operation)]},[]),...this.searches.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Operation)]},[])]}getFunctionCalls(){return[...this.functionCalls,...this.getEntryPoints().reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.FunctionCall)]},[]),...this.conditions.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.FunctionCall)]},[]),...this.operations.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.FunctionCall)]},[]),...this.loops.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.FunctionCall)]},[]),...this.searches.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.FunctionCall)]},[])]}getVariables(){return[...this.variableDeclarations,...this.getEntryPoints().reduce((t,i)=>{const s=Ye(i);return[...t,...s]},[]),...this.functionCalls.reduce((t,i)=>{const s=Ye(i);return[...t,...s]},[]),...this.conditions.reduce((t,i)=>{const s=Ye(i);return[...t,...s]},[]),...this.operations.reduce((t,i)=>{const s=Ye(i);return[...t,...s]},[]),...this.loops.reduce((t,i)=>{const s=Ye(i);return[...t,...s]},[]),...this.searches.reduce((t,i)=>{const s=Ye(i);return[...t,...s]},[])]}getVariableInstances(){return[...this.variableInstances,...this.getEntryPoints().reduce((t,i)=>{const l=Ye(i).filter(o=>o.type===n.VariableInstance);return[...t,...l]},[]),...this.functionCalls.reduce((t,i)=>{const l=Ye(i).filter(o=>o.type===n.VariableInstance);return[...t,...l]},[]),...this.conditions.reduce((t,i)=>{const l=Ye(i).filter(o=>o.type===n.VariableInstance);return[...t,...l]},[]),...this.operations.reduce((t,i)=>{const l=Ye(i).filter(o=>o.type===n.VariableInstance);return[...t,...l]},[]),...this.loops.reduce((t,i)=>{const l=Ye(i).filter(o=>o.type===n.VariableInstance);return[...t,...l]},[]),...this.searches.reduce((t,i)=>{const l=Ye(i).filter(o=>o.type===n.VariableInstance);return[...t,...l]},[])]}getVariableDeclarations(){return p([...this.variableDeclarations,...this.getEntryPoints().reduce((t,i)=>{const l=Ye(i).filter(o=>o.type===n.VariableDeclaration);return[...t,...l]},[]),...this.functionCalls.reduce((t,i)=>{const l=Ye(i).filter(o=>o.type===n.VariableDeclaration);return[...t,...l]},[]),...this.conditions.reduce((t,i)=>{const l=Ye(i).filter(o=>o.type===n.VariableDeclaration);return[...t,...l]},[]),...this.operations.reduce((t,i)=>{const l=Ye(i).filter(o=>o.type===n.VariableDeclaration);return[...t,...l]},[]),...this.loops.reduce((t,i)=>{const l=Ye(i).filter(o=>o.type===n.VariableDeclaration);return[...t,...l]},[]),...this.searches.reduce((t,i)=>{const l=Ye(i).filter(o=>o.type===n.VariableDeclaration);return[...t,...l]},[])])}getLoops(){return[...this.loops,...this.getEntryPoints().reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Loop)]},[]),...this.functionCalls.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Loop)]},[]),...this.conditions.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Loop)]},[]),...this.operations.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Loop)]},[]),...this.searches.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Loop)]},[])]}getSearches(){return[...this.searches,...this.getEntryPoints().reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Search)]},[]),...this.functionCalls.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Search)]},[]),...this.conditions.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Search)]},[]),...this.operations.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Search)]},[]),...this.loops.reduce((t,i)=>{const s=qe(i);return[...t,...s.filter(l=>l.type===n.Search)]},[])]}attachOrphanReferences(){const e=this.getVariableInstances(),t=this.getVariableDeclarations();return e.forEach(i=>{if(!i.declaration){const s=i.initialData,l=s.declaration.entityId||s.declaration.id,o=t.find(d=>d.id===l);o&&i.setDeclaration(o)}}),this}getBuiltInPersistedEntity(){return this.builtInBaseEntities.find(e=>e.name===z.PERSISTED_ENTITY)||null}};f(ae,"sessionAuthor","1"),f(ae,"UUID",{isBackup:!0,uuid:()=>Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15),fromUUID:e=>e}),f(ae,"repository",{APICreate:async(e,...t)=>e,APIUpdate:async(e,...t)=>e,APIDelete:async(e,...t)=>e,APIClone:async(e,...t)=>{},APILoad:async(e,...t)=>null,APILoadVersion:async(e,t,...i)=>null}),f(ae,"type",n.Project),f(ae,"USER_MANAGED_PARENT_TYPES",[]),f(ae,"PARENT_TYPES",[...ae.USER_MANAGED_PARENT_TYPES]),f(ae,"MUTABLE_BASE_PROPERTIES",["name","description"]),f(ae,"INMUTABLE_BASE_PROPERTIES",["id","type","version","createdAt","author","previousVersion"]),f(ae,"BASE_PROPERTIES",[...ae.MUTABLE_BASE_PROPERTIES,...ae.INMUTABLE_BASE_PROPERTIES]),f(ae,"MUTABLE_META_PROPERTIES",[...ae.MUTABLE_BASE_PROPERTIES,"x","y"]),f(ae,"INMUTABLE_META_PROPERTIES",[...ae.INMUTABLE_BASE_PROPERTIES]),f(ae,"META_PROPERTIES",[...ae.MUTABLE_META_PROPERTIES,...ae.INMUTABLE_META_PROPERTIES]),f(ae,"MUTABLE_UPSTREAM_PROPERTIES",[]),f(ae,"INMUTABLE_UPSTREAM_PROPERTIES",["primitives","builtInBaseEntities","operationDeclarations","globalEventActionDescriptors","loopDeclarations","builtInInstances"]),f(ae,"UPSTREAM_PROPERTIES",[...ae.MUTABLE_UPSTREAM_PROPERTIES,...ae.INMUTABLE_UPSTREAM_PROPERTIES]),f(ae,"MUTABLE_DOWNSTREAM_PROPERTIES",["entities","projects","functions","events","variableDeclarations","variableInstances","conditions","operations","functionCalls","loops","searches"]),f(ae,"INMUTABLE_DOWNSTREAM_PROPERTIES",[]),f(ae,"DOWNSTREAM_PROPERTIES",[...ae.MUTABLE_DOWNSTREAM_PROPERTIES,...ae.INMUTABLE_DOWNSTREAM_PROPERTIES]),f(ae,"PROPERTIES",[...ae.META_PROPERTIES,...ae.UPSTREAM_PROPERTIES,...ae.DOWNSTREAM_PROPERTIES]);let m=ae;var aw=(r=>(r.PersistChangeSet="persist-change-set",r.CreateSingle="create-single",r.CreateBulk="create-bulk",r.CreateSingleNested="create-single-nested",r.CreateBulkNested="create-bulk-nested",r.Update="update",r.Clone="clone",r.Delete="delete",r.Load="load",r.LoadNested="load-nested",r.LoadVersion="load-version",r))(aw||{});class ow extends We{constructor(e){super(Oi,e);f(this,"id",Xe.Parallel);f(this,"name",Xe.Parallel);f(this,"description","Execute a list of actions one after the other");f(this,"version","1");f(this,"autoexecutable",!0);f(this,"initialData",Oi);f(this,"type",n.ActionDescriptor);f(this,"inputs",[]);f(this,"outputs",[]);f(this,"error",null);f(this,"project");this.project=e,this.inputs=Oi.inputs.map(t=>{const i=C(t,this.project);return i.setParent(this,null),i.initChildren(null),i}),this.outputs=Oi.outputs.map(t=>{const i=C(t,this.project);return i.setParent(this,null),i.initChildren(null),i}),this.error=Oi.error?C(Oi.error,this.project):null}}class lw extends We{constructor(e){super(qt,e);f(this,"id",qt.id);f(this,"name",qt.name);f(this,"description",qt.description);f(this,"version",qt.version);f(this,"autoexecutable",!1);f(this,"initialData",qt);f(this,"type",n.ActionDescriptor);f(this,"inputs",[]);f(this,"outputs",[]);f(this,"error",null);f(this,"project");this.project=e,this.inputs=qt.inputs.map(t=>{const i=C(t,this.project);return i.setParent(this,null),i.initChildren(null),i}),this.outputs=qt.outputs.map(t=>{const i=C(t,this.project);return i.setParent(this,null),i.initChildren(null),i}),this.error=qt.error?C(qt.error,this.project):null}}class dw extends We{constructor(e){super(nr,e);f(this,"id",Xe.Sequential);f(this,"name",Xe.Sequential);f(this,"description","Execute a list of actions one after the other");f(this,"version","1");f(this,"autoexecutable",!0);f(this,"initialData",nr);f(this,"type",n.ActionDescriptor);f(this,"inputs",[]);f(this,"outputs",[]);f(this,"error",null);f(this,"project");this.project=e,this.inputs=nr.inputs.map(t=>{const i=C(t,this.project);return i.setParent(this,null),i.initChildren(null),i}),this.outputs=nr.outputs.map(t=>{const i=C(t,this.project);return i.setParent(this,null),i.initChildren(null),i}),this.error=nr.error?C(nr.error,this.project):null}}class lW extends We{constructor(a){super(Bs,a)}}class dW extends We{constructor(a){super(tn,a)}}class uW extends We{constructor(e){super(rn,e);f(this,"autoexecutable",!0)}getEntityToMatchInputMap(e){return e.inputs.find(t=>{var i;return((i=t.declaration)==null?void 0:i.id)===k.operation[Qe.Validate].inputs.entityToMatch.id})||null}getDataToValidateInputMap(e){return e.inputs.find(t=>{var i;return((i=t.declaration)==null?void 0:i.id)===k.operation[Qe.Validate].inputs.dataToValidate.id})||null}getOutputDataOutputMap(e){return e.outputs.find(t=>{var i;return((i=t.declaration)==null?void 0:i.id)===k.operation[Qe.Validate].outputs.outputEntity.id})||null}getEntityToMatch(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"get-entity-to-match-validate-data"))){let i=null;if(e.readsValue){const l=e.readsValue.getDataType(t);l&&l.entity&&l.entity.type===n.DefinitionEntity&&(i=l.entity)}const s=e.getDefaultValue();return!i&&s&&s.valueAsTypeSingle&&!Array.isArray(s.valueAsTypeSingle)&&s.valueAsTypeSingle.type===n.DefinitionEntity&&(i=s.valueAsTypeSingle),i}syncOperationInstance(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"sync-operation-instance-validate-data"))){const i=[],s=[],l=[],o=[],d=this.getEntityToMatchInputMap(e);if(d){const{added:c,updated:I,removed:E,affected:O}=this.syncEntityToMatchInputMapDataType(d,t);i.push(...I),s.push(...c),l.push(...E),o.push(...O)}const u=this.getDataToValidateInputMap(e);if(u){const{added:c,updated:I,removed:E,affected:O}=this.syncDataToValidateInputMapDataType(u,t);i.push(...I),s.push(...c),l.push(...E),o.push(...O)}const y=this.getOutputDataOutputMap(e);if(y){const{added:c,updated:I,removed:E,affected:O}=this.syncOutputDataOutputMapDataType(y,t);i.push(...I),s.push(...c),l.push(...E),o.push(...O)}return t==null||t.attemptAutoclose("sync-operation-instance-validate-data",this.id),{updated:p(i),added:p(s),removed:p(l),affected:p(o),self:e}}syncEntityToMatchInputMapDataType(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"sync-entity-to-match-input-map-data-type"))){var u,y,c;const i=[],s=[],l=[],o=[];if(((u=e.declaration)==null?void 0:u.id)!==k.operation[Qe.Validate].inputs.entityToMatch.id)return t==null||t.attemptAutoclose("sync-entity-to-match-input-map-data-type",this.id),{updated:[],added:[],removed:[],affected:[],self:null};if(!e.dataType){const I={id:m.UUID.uuid(),version:m.UUID.uuid(),createdAt:(t==null?void 0:t.timestamp)||new Date().toISOString(),author:"1",previousVersion:null,deleted:!1,type:n.DataType,parentRelationType:null,options:null,implementationChooseOne:!1,isList:!1,andChildrenGroup:null,orChildrenGroup:null,asType:!0,entity:null,like:!0,inferred:!0,parent:e.toReference()},E=C(I,e.project);E.setParent(e,t),E.initChildren(t),t==null||t.add(E,A.Added),i.push(E),e.setDataType(E)}(y=e.dataType)==null||y.metaSync({inferred:!0,like:!1,asType:!0},t);const d=this.getEntityToMatch(e,t);return(c=e.dataType)==null||c.setEntity(d),e.dataType&&s.push(e.dataType),t==null||t.attemptAutoclose("sync-entity-to-match-input-map-data-type",this.id),{updated:p(s),added:p(i),removed:p(l),affected:p(o),self:e.dataType}}syncDataToValidateInputMapDataType(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"sync-data-to-validate-input-map-data-type"))){var c,I,E;const i=[],s=[],l=[],o=[];if(((c=e.declaration)==null?void 0:c.id)!==k.operation[Qe.Validate].inputs.dataToValidate.id)return t==null||t.attemptAutoclose("sync-data-to-validate-input-map-data-type",this.id),{updated:[],added:[],removed:[],affected:[],self:null};const d=this.getEntityToMatchInputMap(e.parent);if(!d)return t==null||t.attemptAutoclose("sync-data-to-validate-input-map-data-type",this.id),{updated:[],added:[],removed:[],affected:[],self:null};if(!this.getEntityToMatch(d,t))return t==null||t.attemptAutoclose("sync-data-to-validate-input-map-data-type",this.id),{updated:[],added:[],removed:[],affected:[],self:null};if(!e.dataType){const O={id:m.UUID.uuid(),version:m.UUID.uuid(),createdAt:(t==null?void 0:t.timestamp)||new Date().toISOString(),author:"1",previousVersion:null,deleted:!1,type:n.DataType,parentRelationType:null,options:null,implementationChooseOne:!1,isList:!1,andChildrenGroup:null,orChildrenGroup:null,asType:!1,entity:null,like:!0,inferred:!0,parent:e.toReference()},P=C(O,e.project);P.setParent(e,t),P.initChildren(t),t==null||t.add(P,A.Added),i.push(P),e.setDataType(P)}(I=e.dataType)==null||I.metaSync({inferred:!0,like:!0,asType:!1},t);const y=this.getEntityToMatch(d,t);return(E=e.dataType)==null||E.setEntity(y),e.dataType&&s.push(e.dataType),t==null||t.attemptAutoclose("sync-data-to-validate-input-map-data-type",this.id),{updated:p(s),added:p(i),removed:p(l),affected:p(o),self:e.dataType}}syncOutputDataOutputMapDataType(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"sync-output-data-output-map-data-type"))){var c,I,E;const i=[],s=[],l=[],o=[];if(((c=e.declaration)==null?void 0:c.id)!==k.operation[Qe.Validate].outputs.outputEntity.id)return t==null||t.attemptAutoclose("sync-output-data-output-map-data-type",this.id),{updated:[],added:[],removed:[],affected:[],self:null};const d=this.getEntityToMatchInputMap(e.parent);if(!d)return t==null||t.attemptAutoclose("sync-output-data-output-map-data-type",this.id),{updated:[],added:[],removed:[],affected:[],self:null};if(!this.getEntityToMatch(d,t))return t==null||t.attemptAutoclose("sync-output-data-output-map-data-type",this.id),{updated:[],added:[],removed:[],affected:[],self:null};if(!e.dataType){const O={id:m.UUID.uuid(),version:m.UUID.uuid(),createdAt:(t==null?void 0:t.timestamp)||new Date().toISOString(),author:"1",previousVersion:null,deleted:!1,type:n.DataType,parentRelationType:null,options:null,implementationChooseOne:!1,isList:!1,andChildrenGroup:null,orChildrenGroup:null,asType:!1,entity:null,like:!0,inferred:!0,parent:e.toReference()},P=C(O,e.project);P.setParent(e,t),P.initChildren(t),t==null||t.add(P,A.Added),i.push(P),e.setDataType(P)}(I=e.dataType)==null||I.metaSync({inferred:!0,like:!0,asType:!1},t);const y=this.getEntityToMatch(d,t);return(E=e.dataType)==null||E.setEntity(y),e.dataType&&s.push(e.dataType),t==null||t.attemptAutoclose("sync-output-data-output-map-data-type",this.id),{updated:p(s),added:p(i),removed:p(l),affected:p(o),self:e.dataType}}inferInputMapDataType(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"infer-input-map-data-type-validate-data"))){var i,s;if(((i=e.declaration)==null?void 0:i.id)===k.operation[Qe.Validate].inputs.entityToMatch.id){const{added:l,updated:o,removed:d,affected:u}=this.syncEntityToMatchInputMapDataType(e,t);return t==null||t.attemptAutoclose("infer-input-map-data-type-validate-data",this.id),{updated:p(o),added:p(l),removed:p(d),affected:p(u),self:e.dataType}}else if(((s=e.declaration)==null?void 0:s.id)===k.operation[Qe.Validate].inputs.dataToValidate.id){const{added:l,updated:o,removed:d,affected:u}=this.syncDataToValidateInputMapDataType(e,t);return t==null||t.attemptAutoclose("infer-input-map-data-type",this.id),{updated:p(o),added:p(l),removed:p(d),affected:p(u),self:e.dataType}}return{updated:[],added:[],removed:[],affected:[],self:null}}inferOutputMapDataType(e,t=this.project.addChangeSet(new b(this.project,m.sessionAuthor,T().toISOString(),this,!0,"infer-output-map-data-type-validate-data"))){var i;if(((i=e.declaration)==null?void 0:i.id)===k.operation[Qe.Validate].outputs.outputEntity.id){const{added:s,updated:l,removed:o,affected:d}=this.syncOutputDataOutputMapDataType(e,t);return t==null||t.attemptAutoclose("infer-output-map-data-type-validate-data",this.id),{updated:p(l),added:p(s),removed:p(o),affected:p(d),self:e.dataType}}return{updated:[],added:[],removed:[],affected:[],self:null}}}class pW extends We{constructor(a){super(Id,a)}}class cW extends We{constructor(a){super(Ad,a)}}class fW extends We{constructor(a){super(bd,a)}}class yW extends We{constructor(a){super(za,a)}}class hW extends We{constructor(a){super(qa,a)}}class mW extends We{constructor(a){super(Vs,a)}}function vW(r){const a=[new dw(r),new ow(r),new lw(r),new lW(r),new dW(r),new uW(r),new yW(r),new pW(r),new fW(r),new cW(r),new hW(r),new mW(r),new We(Td,r),new We(vd,r)];return a.forEach(e=>{e.initChildren(null),r.subscribeBuiltInInstance(e)}),r.operationDeclarations=a,a}class uw extends Ki{constructor(e){super(Ct,e);f(this,"initialData");f(this,"id",z.PERSISTED_ENTITY);f(this,"version","1");f(this,"name",z.PERSISTED_ENTITY);f(this,"description",Ct.description);f(this,"type",n.BuiltInBaseEntity);f(this,"abstract",Ct.abstract);f(this,"static",Ct.static);f(this,"properties",[]);f(this,"methods",[]);f(this,"abstractMethods",[]);f(this,"extends",[]);f(this,"errors",[]);f(this,"project");this.initialData=Ct,this.project=e,this.id=Ct.id,this.version=Ct.version,this.name=Ct.name,this.static=Ct.static,this.abstract=Ct.abstract,this.properties=this.initialData.properties.map(t=>{const i=C(t,this.project);return i.setParent(this,null),i.initChildren(null),i}),this.methods=this.initialData.methods.map(t=>{const i=C(t,this.project);return i.parent=this,i}),this.abstractMethods=this.initialData.abstractMethods.map(t=>{const i=C(t,this.project);return i.parent=this,i}),this.extends=this.initialData.extends.map(t=>C(t,this.project))}}function TW(r){const a=[new uw(r),new Ki(js,r),new Ki(ji,r),new Ki(co,r)];return a.forEach(e=>{r.subscribeBuiltInInstance(e)}),r.builtInBaseEntities=a,a}function IW(r){const a=[new oi(se,r),new oi(er,r),new oi(ve,r),new oi(pd,r),new oi(Ot,r),new oi(tr,r),new oi(Li,r),new oi(ir,r),new oi(Fn,r)];return a.forEach(e=>{r.subscribeBuiltInInstance(e)}),r.primitives=a,a}function EW(r){const a=[new We(yo,r)];return a.forEach(e=>{e.initChildren(null),r.subscribeBuiltInInstance(e)}),r.globalEventActionDescriptors=a,a}function AW(r){const a=[new We(Ls,r),new We(Er,r),new We(Ms,r),new We(Sn,r),new We(Zn,r),new We(io,r)];a.forEach(t=>{t.initChildren(null),r.subscribeBuiltInInstance(t)}),r.loopDeclarations=a;const e=[new We(ao,r),new We(Ns,r),new We(no,r),new We(Ud,r),new We(jd,r),new We(ro,r)];return e.forEach(t=>{t.initChildren(null),r.subscribeBuiltInInstance(t)}),r.loopDeclarationsBodies=e,a}function bW(r){const a=[new qr(ho,r)];return a.forEach(e=>{e.initChildren(null),r.subscribeBuiltInInstance(e)}),r.valueDescriptors=a,a}function RW(r){const a=[new We(ln,r),new We(Yn,r)];return a.forEach(e=>{e.initChildren(null),r.subscribeBuiltInInstance(e)}),r.conditionDeclarations=a,a}const Un={},nd={},$a={empty:!1,enrich:!0,mock:!1,ignoreCache:!1,onFetch:async()=>null,manuallyInit:!1};function pw(r,{enrich:a}={enrich:!0}){const e=r.project,t=r.record,i=new Zl(e),s=new Set;t[e.id]=e,s.add(e.id);const l=T().toISOString();Object.values(t).forEach(u=>{!u||i.allBuiltInEntityIds.includes(u.id)||s.add(u.id)}),i.order=Array.from(s),i.flatRecord=t,i.orderEntities();const o=sd(r.project);o.instances[e.id]=o;const d=a?o.addChangeSet(new b(o,"",l,o)):null;return i.visit(u=>{if(u.id===o.id)return;const y=C(u,o);y.hydrateAncestors(),y.addSelfToProject(null)}),a?(i.visit(u=>{const y=o.get(u.id);y&&y.afterAllChildrenInitialized(d)}),o.afterAllChildrenInitialized(d)):ad(o,l).forEach(y=>{y.remove({ignoreUpstream:!0},null)}),o.instancesList.forEach(u=>{u.previousVersion=null}),d==null||d.close(),o}async function DW(r,a=$a){const e={...$a,...a};if(e.empty)return{data:{project:{id:r.id,type:n.Project,version:m.UUID.uuid(),createdAt:T().toISOString(),author:m.sessionAuthor,previousVersion:null,deleted:!1,name:null,description:null,projects:[],entities:[],operations:[],functions:[],variableDeclarations:[],variableInstances:[],functionCalls:[],conditions:[],loops:[],searches:[],events:[]},record:{}}};if(e.mock){const i={...lp};return i.id=r.id,{data:{project:i,record:{}}}}return console.log("Fetching project from external API"),new Promise(async i=>{if(e.onFetch){const s=await e.onFetch(r.id);if(s){i({data:s});return}}else i({data:null})})}function sd(r){const a=new m(r);return IW(a),TW(a),vW(a),EW(a),AW(a),bW(a),RW(a),Array.from(new Set([...a.getAllBuiltInIds(),..._i()])).forEach(t=>{if(!a.builtInInstances[t]&&a.instances[t])a.builtInInstances[t]=a.instances[t],delete a.instances[t];else if(!a.builtInInstances[t])throw new Error(`Built in entity was not properly initialized: ${t}`)}),a}function ad(r,a){return r.instancesList.filter(t=>T(t.createdAt).isAfter(T(a)||!!t.previousVersion))}function OW(r,{enrich:a}={enrich:!0}){const e=new Map,t=Array.from(new Set([...r.getAllBuiltInIds(),..._i()]));Object.keys(r.instances).forEach(u=>{if(t.includes(u)){e.set(u,u);return}const y=r.get(u);if(!id(y,{...r.instances,...r.builtInInstances}).every(E=>!t.includes(E))){e.set(u,u);return}e.set(u,m.UUID.uuid())});const i=T().toISOString(),s=r.toShallowJSON({seenEntityMaps:e});s.previousVersion=null,s.createdAt=i,s.version=m.UUID.uuid();const l=sd(s),o=a?l.addChangeSet(new b(l,"",i,l)):null,d=new Zl(r);return d.visit(u=>{const y=u.toShallowJSON({seenEntityMaps:e});u.type===n.ValueDescriptor&&u.name==="Iteration result"&&(console.log("Og entity shallow copy: ",y),console.log("Og entity full: ",u)),y.previousVersion=null,y.createdAt=i,y.version=m.UUID.uuid();const c=C(y,l);c.hydrateAncestors(),c.addSelfToProject(o),o==null||o.add(c,A.Added)}),a?(d.visit(u=>{const y=l.get(e.get(u.id));y&&y.afterAllChildrenInitialized(o)}),l.afterAllChildrenInitialized(o)):ad(l,i).forEach(y=>{y.remove({ignoreUpstream:!0},null)}),l.instancesList.forEach(u=>{u.previousVersion=null}),o==null||o.close(),l}function cw(r,{enrich:a}={enrich:!0}){const e=sd(r),t=T().toISOString(),i=a?e.addChangeSet(new b(e,"",t,e)):null;i&&(i.type=Pc.Automatic);const s=new Zl(r);return s.visit(l=>{const o=C(l,e);o.hydrateAncestors(),o.addSelfToProject(i)}),a?(s.visit(l=>{const o=e.get(l.id);o&&o.afterAllChildrenInitialized(i)}),e.afterAllChildrenInitialized(i)):ad(e,t).forEach(o=>{o.remove({ignoreUpstream:!0},null)}),i==null||i.close(),e}async function PW(r,a=$a){const e={...$a,...a};if(r.id&&Un[r.id]&&!e.ignoreCache)return Un[r.id];if(r.id&&nd[r.id]&&!e.ignoreCache)return await nd[r.id],Un[r.id];const t=DW(r,e);r.id&&(nd[r.id]=t);const i=await t;if(i.data){let s;return e.mock?s=cw(lp,{enrich:!!e.enrich}):i.data instanceof m?s=i.data:s=pw(i.data,{enrich:!!e.enrich}),Un[r.id]=s,r.id&&delete nd[r.id],s}return null}function wW(r){return Un[r.id]&&delete Un[r.id],null}const CW="test_primitive_entities_export";h.AI_VALUE_CONNECTION_GENERATION_ACTION_EXPLANATION=Gc,h.ALL_BUILT_IN_BASE_ENTITIES=xI,h.ALL_BUILT_IN_CONDITION_ENTITIES=tE,h.ALL_BUILT_IN_GLOBAL_EVENT_ENTITIES=rE,h.ALL_BUILT_IN_LOOP_BODY_ENTITIES=vT,h.ALL_BUILT_IN_LOOP_ENTITIES=mT,h.ALL_BUILT_IN_OPERATION_ENTITIES=C0,h.ALL_BUILT_IN_PRIMITIVE_ENTITIES=mf,h.ALL_BUILT_IN_TOP_LEVEL_ENTITIES=oE,h.ALL_BUILT_IN_VALUE_DESCRIPTORS=aE,h.ActionDescriptorState=We,h.ActionInputMapState=$7,h.ActionOutputMapState=x7,h.AppendToListOperationInputIds=Dh,h.AppendToListOperationOutputIds=Oh,h.ArgumentDeclarationDependencyField=M1,h.ArgumentDeclarationState=Zr,h.BREAK_AND_CONTINUE_STATEMENTS_RETURN_DECLARATIONS_EXPLANATION=Uc,h.BUILT_IN_BASE_ENTITY_IDS=k,h.BUILT_IN_ENTITY_TYPES=Ti,h.BaseCanvasDraggableState=tW,h.BaseEntityNames=z,h.BaseState=eW,h.BaseValueDescriptorIds=Za,h.BreakStatementDependencyField=Vc,h.BreakStatementState=_n,h.BuiltInBaseEntityState=Ki,h.CACHED_PROJECTS_BY_ID=Un,h.CALLABLE_ENTITIES_EXPLANATION=Y7,h.CALLABLE_TYPES=Mi,h.CALLER_ENTITIES_EXPLANATION=G1,h.CALLER_TYPES=Ni,h.CALLS_UPDATE_EXPLANATION=Wr,h.COMPARISON_CONDITIONS=QI,h.CONDITIONS=eE,h.CUSTOM_ENTITY_OPERATIONS=Jm,h.CallableEntityClass=rW,h.CallerEntityClass=nf,h.ChangeSet=b,h.ChangeSetChangeCaptureType=Pc,h.ChangeSetEntityChangeType=A,h.ChildEntityState=iW,h.ComparisonOperatorTypes=yt,h.ConditionDependencyField=v1,h.ConditionState=Gr,h.ContinueStatementDependencyField=wc,h.ContinueStatementState=xt,h.CreateNewInputIds=Em,h.CreateNewOutputIds=Am,h.DRAGGABLE_CALLABLE_TYPES=ud,h.DRAGGABLE_CALLER_TYPES=lf,h.DRAGGABLE_ELEMENT_TYPES=Sa,h.DRAGGABLE_EXECUTABLE_TYPES=vw,h.DRAGGABLE_PASS_THROUGH_CALLABLE_TYPES=ka,h.DRAGGABLE_PASS_THROUGH_CALLABLE_TYPES_WITH_OUTPUTS=dd,h.DataTypeCompatibilityTypes=bi,h.DataTypeDependencyField=Cc,h.DataTypeParentChildRelation=Dt,h.DataTypeState=Vn,h.DefinitionEntityDependencyField=rd,h.DefinitionEntityState=Xr,h.EDITABLE_PERSISTANCE_REPOSITORY_DEFAULTS=XJ,h.ENTITIES_WITH_VALLUES_EXPLANATION=Gl,h.ENTITY_PERSISTANCE_OPTIONS_DEFAULTS=g,h.ENTITY_RECUSION_OPTIONS_DEFAULTS=q,h.ENTITY_TYPES=Tw,h.ENTITY_WITH_DECLARATION_TYPES=hw,h.ENTITY_WITH_LOGIC_SCOPE_TYPES=dt,h.ENTITY_WITH_NAMES_TYPES=df,h.ENTITY_WITH_PARENT_TYPES=fw,h.ENTITY_WITH_USER_MANAGED_DECLARATION_TYPES=af,h.ENTITY_WITH_USER_MANAGED_SINGLE_IMPLEMENTS_TYPES=yw,h.ENTITY_WITH_VALUE_TYPES=sf,h.ENTRY_POINT_ENTITIES_EXPLANATION=Ba,h.ENTRY_POINT_TYPES=lt,h.EVENT_TYPES=Gn,h.EXECUTABLE_TYPES=mw,h.EXECUTION_OPERATIONS=Im,h.EntityAction=aw,h.EntityError=it,h.EntityErrorSeverity=D,h.EntityGenerationError=w,h.EntityGenerationErrorCode=R,h.EntityInstanceErrorCode=F,h.EntityOperations=Qe,h.EntityType=n,h.EntityWithLogicScopeClass=oW,h.EntityWithValueClass=aW,h.EntryPointEntityClass=nW,h.ExecutionOperations=Xe,h.ExecutionTerminationType=y1,h.FunctionCallDependencyField=H1,h.FunctionCallState=Yr,h.FunctionDeclarationDependencyField=o1,h.FunctionDeclarationState=gr,h.GET_PROJECT_OPTIONS_DEFAULTS=$a,h.GLOBAL_EVENT_DECLARATIONS=iE,h.GetLastInListOperationInputIds=ch,h.GetLastInListOperationOutputIds=fh,h.GlobalEventNames=Qi,h.GlobalEventState=Bn,h.HTTPOperations=_t,h.HTTP_OPERATIONS=P0,h.InputMapDependencyField=C1,h.InputMapState=Wi,h.InstalledProjectState=Sr,h.InternalCallDependencyField=P1,h.InternalCallState=Mn,h.JoinListOperationInputIds=My,h.JoinListOperationOutputIds=Ny,h.LIST_OPERATIONS=$h,h.ListOperations=he,h.LiteralValueDependencyField=L1,h.LiteralValueState=Nn,h.LoopDependencyField=h1,h.LoopState=$r,h.LoopTypes=Q,h.NON_INTERACTIVE_BASE_ENTITIES_EXPLANATION=zr,h.NUMBER_OPERATIONS=Jf,h.NumberOperations=et,h.OPERATION_DECLARATIONS=w0,h.OperationDependencyField=u1,h.OperationState=jr,h.OutputMapDependencyField=B1,h.OutputMapParentChildRelation=$n,h.OutputMapState=zi,h.PARENT_AUTO_CALCULATION_FROM_CALLER_EXPLANATION=Fl,h.PASS_THROUGH_CALLABLE_ENTITIES_EXPLANATION=Jr,h.PASS_THROUGH_CALLABLE_TYPES=ot,h.PASS_THROUGH_CALLABLE_TYPES_WITH_OUTPUTS=of,h.PROPERTY_NOT_VALUE_READER_WRITTER_EXPLANATION=$c,h.ParallelExecutionOperation=ow,h.PassThroughCallableEntityClass=sW,h.PersistedEntity=uw,h.PersistedEntityMethods=di,h.PrimitiveEntityState=oi,h.PrimitiveTypes=L,h.ProjectState=m,h.PropertyDependencyField=t1,h.PropertyState=Lr,h.READ_ONLY_ENTITY_PERSISTANCE_REPOSITORY=sw,h.RETURN_STATEMENT_RETURN_DECLARATIONS_EXPLANATION=H7,h.ReturnDeclarationDependencyField=r1,h.ReturnDeclarationState=si,h.ReturnStatementDependencyField=Ul,h.ReturnStatementState=Ur,h.STANDALONE_CONDITIONS=ZI,h.STRING_OPERATIONS=_y,h.ScopeCompatibilityType=td,h.SearchDependencyField=b1,h.SearchState=kr,h.SequentialExecutionOperation=dw,h.SequentialExecutionOperationInputIds=am,h.SequentialExecutionOperationOutputIds=om,h.SharedEntityErrorCode=j,h.SharedStateFunctionality=nw,h.SplitListOperationInputIds=zy,h.SplitListOperationOutputIds=Yy,h.StandaloneOperatorTypes=vi,h.StringOperations=Ee,h.TERMINATION_TYPES=st,h.Traverser=Zl,h.USER_MANAGED_ENTITY_TYPES=uf,h.UserManagedEntityStateTemplate=QJ,h.VALUE_READING_ENTITIES_EXPLANATION=jc,h.VALUE_READING_TYPES=Ir,h.VALUE_WRITING_ENTITIES_EXPLANATION=F1,h.VALUE_WRITING_TYPES=Tt,h.VARIABLE_DATA_TYPE_INFERRANCE_EXPLANATION=gc,h.VARIABLE_TYPES=tt,h.ValueAutogenerationType=vt,h.ValueDescriptorDependencyField=g1,h.ValueDescriptorParentChildRelation=N,h.ValueDescriptorState=qr,h.ValueReadingEntityClass=Tr,h.ValueWritingEntityClass=ja,h.VariableDeclarationDependencyField=E1,h.VariableDeclarationState=xr,h.VariableInputMapState=j7,h.VariableInstanceDependencyField=_c,h.VariableInstanceState=Fr,h.VariableOutputMapState=F7,h.WaitOperation=lw,h.WaitOperationInputIds=Qh,h.WaitOperationOutputIds=em,h.actionDescriptorValidation=V7,h.appendToListOperation=za,h.appendToListOperationElementToAppendArgument=Dd,h.appendToListOperationElementToAppendArgumentParentRef=Nh,h.appendToListOperationElementToAppendArgumentRef=Ch,h.appendToListOperationError=jh,h.appendToListOperationErrorParentRef=gh,h.appendToListOperationListArgument=Rd,h.appendToListOperationListArgumentParentRef=Mh,h.appendToListOperationListArgumentRef=Ph,h.appendToListOperationListDataType=wh,h.appendToListOperationResultListDataType=_h,h.appendToListOperationResultListReturn=Uh,h.appendToListOperationResultListReturnParentRef=Lh,h.appendToListOperationResultListReturnRef=Bh,h.appendToListOperationSecondListDataType=Vh,h.applyNewScope=K,h.argumentDeclarationValidation=k7,h.asGenerationActionExample=Yi,h.booleanPrototype=er,h.breakStatementValidation=P7,h.calculateNewParentBasedOnCallers=qc,h.capitalizeFirstLetter=Ft,h.changeSetJSONRecordToUniqueIds=y7,h.checkAreDataTypesCompatible=Ri,h.checkAreDefinitionEntitiesCompatibleAsDataType=FO,h.checkArePropertiesCompatibleAsDataType=GO,h.checkHasMetadataChanged=pt,h.checkImplementationsOverlap=vr,h.checkIsBranchDependentButNotDirectlyOnBranch=Ma,h.checkIsBranchDependentOnBranch=dJ,h.checkIsCallableEntityReachable=ga,h.checkIsCanvasEntity=wJ,h.checkIsDetachedBranch=YP,h.checkIsDetachedBranchShallow=tf,h.checkIsGlobalVariable=OJ,h.checkIsGloballyDeclared=ef,h.checkIsMethod=XP,h.checkIsNestedScope=ed,h.checkScopeCompatibility=Ua,h.cloneProject=OW,h.conditionValidation=B7,h.continueStatementValidation=v7,h.convertToAbstract=sJ,h.convertToNonAbstract=aJ,h.convertToNonStatic=lJ,h.convertToStatic=oJ,h.countedLoopActionDescriptor=Ls,h.countedLoopActionDescriptorDynamicReturnDeclaration=lT,h.countedLoopActionDescriptorDynamicReturnDeclarationParentRef=oT,h.countedLoopActionDescriptorStringArgumentDeclaration=aT,h.countedLoopActionDescriptorStringArgumentDeclarationDataType=nT,h.countedLoopActionDescriptorStringArgumentDeclarationDataTypeDefaultValue=iT,h.countedLoopActionDescriptorStringArgumentDeclarationDataTypeDefaultValueParentRef=tT,h.countedLoopActionDescriptorStringArgumentDeclarationDataTypeParentRef=rT,h.countedLoopActionDescriptorStringArgumentDeclarationParentRef=sT,h.countedLoopBodyActionDescriptor=ao,h.countedLoopBodyActionDescriptorAnyDynamicArgument=fT,h.countedLoopBodyActionDescriptorAnyDynamicArgumentParentRef=cT,h.countedLoopBodyActionDescriptorAnyDynamicReturn=hT,h.countedLoopBodyActionDescriptorAnyDynamicReturnParentRef=yT,h.countedLoopBodyActionDescriptorIterationNumberArgumentDeclaration=Gd,h.countedLoopBodyActionDescriptorIterationNumberArgumentDeclarationDataType=uT,h.countedLoopBodyActionDescriptorIterationNumberArgumentDeclarationDataTypeParentRef=dT,h.countedLoopBodyActionDescriptorIterationNumberArgumentDeclarationParentRef=pT,h.createDefinitionEntityFromJSONObject=Jl,h.createEntityError=de,h.createNestedDataTypeForEntity=Q1,h.createNewInstanceOperation=tn,h.createNewInstanceOperationEntityToInstanciateArgument=Vm,h.createNewInstanceOperationEntityToInstanciateArgumentRef=Pm,h.createNewInstanceOperationEntityToInstanciateDataType=wm,h.createNewInstanceOperationError=Nm,h.createNewInstanceOperationErrorParentRef=Mm,h.createNewInstanceOperationNewEntityDataArgument=Om,h.createNewInstanceOperationNewEntityDataArgumentDataType=Dm,h.createNewInstanceOperationNewEntityDataArgumentDataTypeParentRef=Rm,h.createNewInstanceOperationNewEntityDataArgumentParentRef=bm,h.createNewInstanceOperationOutputEntityDeclaration=_m,h.createNewInstanceOperationOutputEntityDeclarationParentRef=Bm,h.createNewInstanceOperationRef=Cm,h.createSemanticId=XO,h.createStateFromGenerationTargetType=KJ,h.createStateFromType=ct,h.createStateFromTypeAndSubscribe=C,h.cronJobBuiltInBaseEntity=co,h.cronJobBuiltInBaseEntityExpressionProperty=GI,h.cronJobBuiltInBaseEntityExpressionPropertyDataTypeRef=Ow,h.cronJobBuiltInBaseEntityExpressionPropertyRef=jI,h.cronJobBuiltInBaseEntityRef=$I,h.cronJobTriggeredFunctionDeclarationBlueprint=Qd,h.cronJobTriggeredFunctionDeclarationBlueprintParentRef=UI,h.dataTypeCompatibilityToErrorExplanation=z1,h.dataTypeValidation=A7,h.datePrototype=Li,h.dateValueAutogenerationSchema=fp,h.definitionEntityToZodSchema=RE,h.definitionEntityValidation=WJ,h.deletePersistedEntityMethod=Xd,h.deletePersistedEntityMethodParentRef=EI,h.deleteRootProject=wW,h.endpointBuiltInBaseEntity=js,h.endpointBuiltInBaseEntityRef=AT,h.endpointBuiltInBaseEntityRefFour=iI,h.endpointBuiltInBaseEntityRefThree=BT,h.endpointBuiltInBaseEntityRefTwo=PT,h.endpointBuiltInCorsProperty=bT,h.endpointBuiltInCorsPropertyDataType=ET,h.endpointBuiltInCorsPropertyDataTypeRef=TT,h.endpointBuiltInCorsPropertyRef=IT,h.endpointBuiltInMethodProperty=xd,h.endpointBuiltInMethodPropertyDataType=VT,h.endpointBuiltInMethodPropertyDataTypeRef=wT,h.endpointBuiltInMethodPropertyRef=CT,h.endpointBuiltInPathProperty=Fd,h.endpointBuiltInPathPropertyDataType=OT,h.endpointBuiltInPathPropertyDataTypeRef=RT,h.endpointBuiltInPathPropertyRef=DT,h.endpointPathParamsArgumentDeclaration=Sd,h.endpointPathParamsArgumentDeclarationRef=FT,h.endpointPathParamsVariableDataType=xT,h.endpointPathParamsVariableDataTypeRef=GT,h.endpointReachedTriggerActionDescriptor=Yd,h.endpointReachedTriggerActionDescriptorRef=kT,h.endpointReachedTriggerActionDescriptorRefFour=qT,h.endpointReachedTriggerActionDescriptorRefThree=ZT,h.endpointReachedTriggerActionDescriptorRefTwo=ST,h.endpointRequestBodyArgumentDeclaration=qd,h.endpointRequestBodyArgumentDeclarationRef=LT,h.endpointRequestBodyVariableDataType=UT,h.endpointRequestHeadersArgumentDeclaration=kd,h.endpointRequestHeadersArgumentDeclarationRef=MT,h.endpointRequestHeadersVariableDataType=NT,h.endpointRequestHeadersVariableDataTypeRef=_T,h.endpointRequestQueryParamsArgumentDeclaration=Zd,h.endpointRequestQueryParamsArgumentDeclarationRef=jT,h.endpointRequestQueryParamsVariableDataType=$T,h.endpointRequestQueryParamsVariableDataTypeRef=gT,h.endpointResponseBodyDataType=eI,h.endpointResponseBodyReturnDeclaration=zd,h.endpointResponseBodyReturnDeclarationRef=QT,h.endpointResponseCodeDataType=WT,h.endpointResponseCodeReturnDeclaration=Jd,h.endpointResponseCodeReturnDeclarationRef=JT,h.endpointResponseHeadersDataType=KT,h.endpointResponseHeadersDataTypeRef=YT,h.endpointResponseHeadersReturnDeclaration=Wd,h.endpointResponseHeadersReturnDeclarationRef=HT,h.endpointReturnStatementRef=zT,h.endpointReturnStatementRefThree=tI,h.endpointReturnStatementRefTwo=XT,h.enrichFromKnownEntities=Na,h.enumOptionsProperty=hf,h.enumOptionsPropertyDataType=ff,h.enumOptionsPropertyDataTypeRef=pf,h.enumOptionsPropertyRef=cf,h.enumPrototype=tr,h.enumPrototypeRef=yf,h.executionBuiltInBaseEntity=fo,h.executionBuiltInEntityAbortMethod=eu,h.executionBuiltInEntityAbortMethodParentRef=FI,h.filterOutDuplicateEntities=p,h.filterOutDuplicateErrors=C3,h.findEntityFromKeys=Sc,h.findReferenceToSelfInList=yP,h.findReferencesToSelfInProject=TJ,h.flattenActionDescriptor=hP,h.flattenArgumentDeclaration=mP,h.flattenBreakStatement=vP,h.flattenBuiltInBaseEntity=TP,h.flattenCalls=Hi,h.flattenCanvasAncestorsUntil=Ds,h.flattenCondition=IP,h.flattenContinueStatement=EP,h.flattenDataType=bP,h.flattenDefinitionEntity=AP,h.flattenDefinitionEntityExtensionAndImplementationTypes=Xc,h.flattenDefinitionEntityExtensionTypes=Xl,h.flattenDefinitionEntityExtensions=Hc,h.flattenDefinitionEntityImplementations=Kc,h.flattenDefinitionEntityImplementionTypes=Kl,h.flattenDerivedCanvasEntities=ai,h.flattenDetachedBranch=KP,h.flattenElementCalls=qe,h.flattenElementCallsOnTheSameScope=vJ,h.flattenEntity=U,h.flattenFunctionCall=RP,h.flattenFunctionDeclaration=DP,h.flattenGlobalEvent=OP,h.flattenInputMap=PP,h.flattenInstalledProject=wP,h.flattenInternalCall=CP,h.flattenLiteralValue=VP,h.flattenLoop=BP,h.flattenOperation=_P,h.flattenOutputMap=MP,h.flattenPrimitiveEntity=NP,h.flattenProject=LP,h.flattenProjectElements=fP,h.flattenProperty=UP,h.flattenRelatedCanvasElementsOnTheLeft=WP,h.flattenRelatedCanvasElementsOnTheRight=JP,h.flattenReturnDeclaration=gP,h.flattenReturnStatement=jP,h.flattenSearch=$P,h.flattenValueDescriptor=GP,h.flattenVariableDeclaration=FP,h.flattenVariableInstance=xP,h.flattenVariableReads=cP,h.flattenVariableWrites=pP,h.flattenVariables=Ye,h.fromChangeSetToRecordChangeSet=UJ,h.fromZodParseToEntityGenerationErrors=Mc,h.functionCallValidation=nJ,h.functionDeclarationValidation=E7,h.generate=VV,h.generateActionExample=K7,h.generateExecutionDataType=s7,h.generateIdFromStrategy=ht,h.generateMutablePropertiesExplanation=gl,h.generateRandomBoolean=HE,h.generateRandomDate=wE,h.generateRandomDateAfter=DE,h.generateRandomDateBefore=OE,h.generateRandomDateBetweenRange=PE,h.generateRandomNumber=qE,h.generateRandomNumberAfter=kE,h.generateRandomNumberBefore=SE,h.generateRandomNumberBetweenRange=ZE,h.generateRandomText=YE,h.generateRandomTextAfter=JE,h.generateRandomTextBefore=WE,h.generateRandomTextBetweenRange=zE,h.generateUniqueUUID=xE,h.getAllActionDescriptorsForConditions=Sl,h.getAllActionDescriptorsForGlobalEvents=xl,h.getAllActionDescriptorsForLoops=kl,h.getAllActionDescriptorsForOperations=tJ,h.getAllBuiltInEntityIds=_i,h.getAllGloballyDeclaredFunctionDeclarationsExplanation=q1,h.getBaseBuiltInEntities=kt,h.getBaseSchemaBasedOnType=j1,h.getBuiltInEntityOwner=Kr,h.getCallableEntityReferenceSchema=Pt,h.getCallableEntityTypeSchema=wD,h.getCalledBy=hi,h.getCallerEntityReferenceSchema=MS,h.getCallerEntityTypeSchema=_S,h.getCalls=Wc,h.getCanvasEntitiesDerivedFromInternalCalls=qP,h.getCanvasEntitiesDerivedFromWrites=Os,h.getCanvasEntityDerivedFromValueReadingEntity=Hl,h.getCanvasEntityDerivedFromValueReadingEntityFromTransfer=ZP,h.getCanvasEntityReferenceSchema=YS,h.getCanvasEntityTypeSchema=zS,h.getChildrenEntityWithValues=pJ,h.getColumnProperties=MJ,h.getCommonAncestor=Jc,h.getCommonChildren=eP,h.getDatabaseEntities=BJ,h.getDatabaseEntity=NJ,h.getDeclaration=Cn,h.getDeepestScope=ew,h.getDefinitionEntityExtends=Ps,h.getDraggableCallableEntityReferenceSchema=VD,h.getDraggableCallableEntityTypeSchema=CD,h.getDraggableCallerEntityReferenceSchema=LS,h.getDraggableCallerEntityTypeSchema=NS,h.getDraggableExecutableEntityReferenceSchema=$S,h.getDraggableExecutableEntityTypeSchema=jS,h.getDraggablePassThroughCallableEntityReferenceSchema=bl,h.getDraggablePassThroughCallableEntityTypeSchema=Al,h.getDraggablePlayableEntityReferenceSchema=SS,h.getDraggablePlayableEntityTypeSchema=kS,h.getEntitiesCreatedSinceInitialization=ad,h.getEntityArgumentDeclarations=Yc,h.getEntityInputMaps=kP,h.getEntityOutputMaps=bJ,h.getEntityReferenceSchema=WS,h.getEntityReturnDeclarations=SP,h.getEntityTypeSchema=JS,h.getEntityWithLogicScopeReferenceSchema=fr,h.getEntityWithLogicScopeTypeSchema=GS,h.getEntityWithValueReferenceSchema=PD,h.getEntityWithValueTypeSchema=BS,h.getEntryPointEntityReferenceSchema=Rt,h.getEntryPointEntityTypeSchema=_r,h.getEventEntityReferenceSchema=Il,h.getEventEntityTypeSchema=Tl,h.getExecutableEntityReferenceSchema=gS,h.getExecutableEntityTypeSchema=US,h.getExtendedBuiltInEntity=RJ,h.getExtendedDefinitionEntity=Qc,h.getGenerationTargetSchemaBasedOnType=$1,h.getHeadIfPartOfDetachedBranch=HP,h.getHighestScope=QP,h.getImplementedBuiltInEntity=DJ,h.getIsInteractive=Ql,h.getLastInListOperation=bd,h.getLastInListOperationError=Rh,h.getLastInListOperationErrorParentRef=bh,h.getLastInListOperationInputListArgument=Ih,h.getLastInListOperationInputListArgumentParentRef=Th,h.getLastInListOperationInputListArgumentRef=yh,h.getLastInListOperationInputListDataType=hh,h.getLastInListOperationOutputElementDataType=vh,h.getLastInListOperationOutputElementReturn=Ah,h.getLastInListOperationOutputElementReturnParentRef=Eh,h.getLastInListOperationOutputElementReturnRef=mh,h.getLinkedEntitiesFromArgumentDeclaration=mJ,h.getLowestPersistedEntityImplementation=zP,h.getParentCallableEntity=tP,h.getParentCallerEntity=rP,h.getParentCanvasEntities=Xt,h.getParentCanvasEntity=wt,h.getParentCanvasEntityFromTransfer=Wl,h.getParentEntryPoint=uJ,h.getParentPassthroughCallableEntity=iP,h.getPassThroughCallableEntityReferenceSchema=rt,h.getPassThroughCallableEntityTypeSchema=El,h.getPeristedEntities=VJ,h.getPlayableEntityReferenceSchema=xS,h.getPlayableEntityTypeSchema=FS,h.getProject=PW,h.getPrototypeByType=La,h.getRecusriveParentsIds=id,h.getReferenceEntityId=_,h.getReferencedEntitiesStateOrErrors=$l,h.getReferencedEntityStateOrErrors=Nc,h.getReferencedIds=Yl,h.getRelatedCanvasElementsOnTheLeft=Ln,h.getRelatedCanvasElementsOnTheLeftFromTransfer=IJ,h.getRelatedCanvasElementsOnTheRight=Hr,h.getRootEntryPointScopeOwner=rf,h.getScopeOwner=St,h.getStateClassFromType=LJ,h.getTerminationReferenceSchema=qS,h.getTerminationTypeSchema=ZS,h.getTouchedCanvasEntitiesFromChangeSet=gJ,h.getUsedArgFromDeclaration=EJ,h.getUsedReturnFromDeclaration=AJ,h.getValueReadingEntityReferenceSchema=OD,h.getValueReadingEntityTypeSchema=cr,h.getValueWritingEntityReferenceSchema=VS,h.getValueWritingEntityTypeSchema=Ea,h.getVariableFromInputMapping=sP,h.getVariableFromReturnVariablePointer=lP,h.getVariableReferenceSchema=Br,h.getVariableTypeSchema=bn,h.getVariablesFromArgumentDeclarations=zl,h.getVariablesFromInputMaps=aP,h.getVariablesFromOutputMapping=dP,h.getVariablesFromOutputMaps=uP,h.getVariablesFromReturnDeclarations=oP,h.getVariablesInSameOrHigherScope=Tc,h.getWrites=zc,h.globalEventValidation=O7,h.groupCallsBasedOnParallelizableExecution=fJ,h.handleAfterEntityImplementationSideEffects=X1,h.handleBeforeEntityImplementationSideEffects=K1,h.httpRequestBodyArgument=Xa,h.httpRequestBodyArgumentRef=s0,h.httpRequestBodyDataType=a0,h.httpRequestHeadersArgument=Ka,h.httpRequestHeadersArgumentRef=r0,h.httpRequestHeadersDataType=n0,h.httpRequestMethodArgument=Ya,h.httpRequestMethodArgumentRef=t0,h.httpRequestMethodDataType=i0,h.httpRequestMethodDataTypeRef=Qm,h.httpRequestOperation=Bs,h.httpRequestOperationErrorValueDescriptor=Bd,h.httpRequestOperationErrorValueDescriptorDatatype=O0,h.httpRequestOperationErrorValueDescriptorRef=D0,h.httpRequestOperationRef=E0,h.httpRequestOperationRefEight=b0,h.httpRequestOperationRefFive=T0,h.httpRequestOperationRefFour=v0,h.httpRequestOperationRefNine=R0,h.httpRequestOperationRefSeven=A0,h.httpRequestOperationRefSix=I0,h.httpRequestOperationRefThree=m0,h.httpRequestOperationRefTwo=h0,h.httpRequestQueryParamsArgument=Vd,h.httpRequestQueryParamsArgumentRef=Km,h.httpRequestQueryParamsDataType=Xm,h.httpRequestVariableURLArgument=Ha,h.httpRequestVariableURLArgumentRef=Ym,h.httpRequestVariableURLDataType=Hm,h.httpRequestVariableURLDataTypeRef=Wm,h.httpResponseBodyReturnDataType=y0,h.httpResponseBodyReturnDataTypeRef=c0,h.httpResponseBodyReturnReturn=to,h.httpResponseBodyReturnReturnRef=f0,h.httpResponseCodeDataType=l0,h.httpResponseCodeReturn=Qa,h.httpResponseCodeReturnRef=o0,h.httpResponseHeadersDataType=p0,h.httpResponseHeadersDataTypeRef=d0,h.httpResponseHeadersReturn=eo,h.httpResponseHeadersReturnRef=u0,h.implement=ql,h.inferArgumentDeclarationDataType=xO,h.inferDataType=Ji,h.inferInputMapDataType=hc,h.inferOutputMapDataType=vc,h.inferPropertyDataType=ZO,h.inferReturnDeclarationDataType=mc,h.inferValueDescriptorDataType=qO,h.inferVariableDeclarationDataType=SO,h.inferVariableInstanceDataType=kO,h.initBaseProjectEntity=sd,h.initProject=cw,h.initProjectFromFetchResult=pw,h.inputMapValidation=g7,h.installedProjectValidation=L7,h.internalCallValidation=U7,h.isPromise=kc,h.iterateOverListActionDescriptorListArgumentDeclaration=sv,h.iterateOverListActionDescriptorListArgumentDeclarationDataType=rv,h.iterateOverListActionDescriptorListArgumentDeclarationDataTypeParentRef=iv,h.iterateOverListActionDescriptorListArgumentDeclarationParentRef=nv,h.iterateOverListLoopActionDescriptor=Er,h.iterateOverListLoopActionDescriptorDynamicReturnDeclaration=ov,h.iterateOverListLoopActionDescriptorDynamicReturnDeclarationParentRef=av,h.iterateOverListLoopBodyActionDescriptor=Ns,h.iterateOverListLoopBodyActionDescriptorAnyDynamicArgument=mv,h.iterateOverListLoopBodyActionDescriptorAnyDynamicArgumentParentRef=hv,h.iterateOverListLoopBodyActionDescriptorAnyDynamicReturn=Tv,h.iterateOverListLoopBodyActionDescriptorAnyDynamicReturnParentRef=vv,h.iterateOverListLoopBodyActionDescriptorCurrentValueArgumentDeclaration=so,h.iterateOverListLoopBodyActionDescriptorCurrentValueArgumentDeclarationDataType=dv,h.iterateOverListLoopBodyActionDescriptorCurrentValueArgumentDeclarationDataTypeParentRef=lv,h.iterateOverListLoopBodyActionDescriptorCurrentValueArgumentDeclarationParentRef=uv,h.iterateOverListLoopBodyActionDescriptorIterationNumberArgumentDeclaration=yv,h.iterateOverListLoopBodyActionDescriptorIterationNumberArgumentDeclarationDataType=cv,h.iterateOverListLoopBodyActionDescriptorIterationNumberArgumentDeclarationDataTypeParentRef=pv,h.iterateOverListLoopBodyActionDescriptorIterationNumberArgumentDeclarationParentRef=fv,h.iterateOverObjectKeysActionDescriptorObjectArgumentDeclaration=Rv,h.iterateOverObjectKeysActionDescriptorObjectArgumentDeclarationDataType=Av,h.iterateOverObjectKeysActionDescriptorObjectArgumentDeclarationDataTypeParentRef=Ev,h.iterateOverObjectKeysActionDescriptorObjectArgumentDeclarationParentRef=bv,h.iterateOverObjectKeysLoopActionDescriptor=Sn,h.iterateOverObjectKeysLoopActionDescriptorDynamicReturnDeclaration=Ov,h.iterateOverObjectKeysLoopActionDescriptorDynamicReturnDeclarationParentRef=Dv,h.iterateOverObjectKeysLoopBodyActionDescriptor=Ud,h.iterateOverObjectKeysLoopBodyActionDescriptorAnyDynamicArgument=Lv,h.iterateOverObjectKeysLoopBodyActionDescriptorAnyDynamicArgumentParentRef=Nv,h.iterateOverObjectKeysLoopBodyActionDescriptorAnyDynamicReturn=gv,h.iterateOverObjectKeysLoopBodyActionDescriptorAnyDynamicReturnParentRef=Uv,h.iterateOverObjectKeysLoopBodyActionDescriptorCurrentValueArgumentDeclaration=Ld,h.iterateOverObjectKeysLoopBodyActionDescriptorCurrentValueArgumentDeclarationDataType=wv,h.iterateOverObjectKeysLoopBodyActionDescriptorCurrentValueArgumentDeclarationDataTypeParentRef=Pv,h.iterateOverObjectKeysLoopBodyActionDescriptorCurrentValueArgumentDeclarationParentRef=Cv,h.iterateOverObjectKeysLoopBodyActionDescriptorIterationNumberArgumentDeclaration=Mv,h.iterateOverObjectKeysLoopBodyActionDescriptorIterationNumberArgumentDeclarationDataType=Bv,h.iterateOverObjectKeysLoopBodyActionDescriptorIterationNumberArgumentDeclarationDataTypeParentRef=Vv,h.iterateOverObjectKeysLoopBodyActionDescriptorIterationNumberArgumentDeclarationParentRef=_v,h.iterateOverObjectValuesActionDescriptorObjectArgumentDeclaration=xv,h.iterateOverObjectValuesActionDescriptorObjectArgumentDeclarationDataType=Gv,h.iterateOverObjectValuesActionDescriptorObjectArgumentDeclarationDataTypeParentRef=$v,h.iterateOverObjectValuesActionDescriptorObjectArgumentDeclarationParentRef=Fv,h.iterateOverObjectValuesLoopActionDescriptor=Zn,h.iterateOverObjectValuesLoopActionDescriptorDynamicReturnDeclaration=Sv,h.iterateOverObjectValuesLoopActionDescriptorDynamicReturnDeclarationParentRef=kv,h.iterateOverObjectValuesLoopBodyActionDescriptor=jd,h.iterateOverObjectValuesLoopBodyActionDescriptorAnyDynamicArgument=Xv,h.iterateOverObjectValuesLoopBodyActionDescriptorAnyDynamicArgumentParentRef=Kv,h.iterateOverObjectValuesLoopBodyActionDescriptorAnyDynamicReturn=eT,h.iterateOverObjectValuesLoopBodyActionDescriptorAnyDynamicReturnParentRef=Qv,h.iterateOverObjectValuesLoopBodyActionDescriptorCurrentValueArgumentDeclaration=gd,h.iterateOverObjectValuesLoopBodyActionDescriptorCurrentValueArgumentDeclarationDataType=qv,h.iterateOverObjectValuesLoopBodyActionDescriptorCurrentValueArgumentDeclarationDataTypeParentRef=Zv,h.iterateOverObjectValuesLoopBodyActionDescriptorCurrentValueArgumentDeclarationParentRef=Jv,h.iterateOverObjectValuesLoopBodyActionDescriptorIterationNumberArgumentDeclaration=Hv,h.iterateOverObjectValuesLoopBodyActionDescriptorIterationNumberArgumentDeclarationDataType=zv,h.iterateOverObjectValuesLoopBodyActionDescriptorIterationNumberArgumentDeclarationDataTypeParentRef=Wv,h.iterateOverObjectValuesLoopBodyActionDescriptorIterationNumberArgumentDeclarationParentRef=Yv,h.iterateOverStringActionDescriptorDynamicReturnDeclaration=Z0,h.iterateOverStringActionDescriptorDynamicReturnDeclarationParentRef=S0,h.iterateOverStringActionDescriptorStringArgumentDeclaration=k0,h.iterateOverStringActionDescriptorStringArgumentDeclarationDataType=F0,h.iterateOverStringActionDescriptorStringArgumentDeclarationDataTypeParentRef=G0,h.iterateOverStringActionDescriptorStringArgumentDeclarationParentRef=x0,h.iterateOverStringLoopActionDescriptor=Ms,h.iterateOverStringLoopBodyActionDescriptor=no,h.iterateOverStringLoopBodyActionDescriptorAnyDynamicArgument=X0,h.iterateOverStringLoopBodyActionDescriptorAnyDynamicArgumentParentRef=K0,h.iterateOverStringLoopBodyActionDescriptorAnyDynamicReturn=ev,h.iterateOverStringLoopBodyActionDescriptorAnyDynamicReturnParentRef=Q0,h.iterateOverStringLoopBodyActionDescriptorCurrentValueArgumentDeclaration=Md,h.iterateOverStringLoopBodyActionDescriptorCurrentValueArgumentDeclarationDataType=J0,h.iterateOverStringLoopBodyActionDescriptorCurrentValueArgumentDeclarationDataTypeParentRef=q0,h.iterateOverStringLoopBodyActionDescriptorCurrentValueArgumentDeclarationParentRef=W0,h.iterateOverStringLoopBodyActionDescriptorIterationNumberArgumentDeclaration=Nd,h.iterateOverStringLoopBodyActionDescriptorIterationNumberArgumentDeclarationDataType=Y0,h.iterateOverStringLoopBodyActionDescriptorIterationNumberArgumentDeclarationDataTypeParentRef=z0,h.iterateOverStringLoopBodyActionDescriptorIterationNumberArgumentDeclarationParentRef=H0,h.joinListOperation=Id,h.joinListOperationError=Wy,h.joinListOperationErrorParentRef=Jy,h.joinListOperationFirstListArgument=xy,h.joinListOperationFirstListArgumentParentRef=Fy,h.joinListOperationFirstListArgumentRef=Ly,h.joinListOperationFirstListDataType=Uy,h.joinListOperationResultListDataType=Gy,h.joinListOperationResultListReturn=qy,h.joinListOperationResultListReturnParentRef=Zy,h.joinListOperationResultListReturnRef=$y,h.joinListOperationSecondListArgument=Sy,h.joinListOperationSecondListArgumentParentRef=ky,h.joinListOperationSecondListArgumentRef=gy,h.joinListOperationSecondListDataType=jy,h.joinListWithLastSeparator=ne,h.joinStringsOperation=Vs,h.joinStringsOperationDynamicStringArgument=fy,h.joinStringsOperationDynamicStringArgumentParentRef=cy,h.joinStringsOperationDynamicStringArgumentRef=uy,h.joinStringsOperationDynamicStringDataType=py,h.joinStringsOperationError=dy,h.joinStringsOperationErrorParentRef=ly,h.joinStringsOperationFirstStringArgument=Ja,h.joinStringsOperationFirstStringArgumentParentRef=Qf,h.joinStringsOperationFirstStringArgumentRef=Wf,h.joinStringsOperationFirstStringDataType=zf,h.joinStringsOperationResultStringDataType=Xf,h.joinStringsOperationResultStringReturn=Cs,h.joinStringsOperationResultStringReturnParentRef=oy,h.joinStringsOperationResultStringReturnRef=Kf,h.joinStringsOperationSecondStringArgument=Wa,h.joinStringsOperationSecondStringArgumentParentRef=ay,h.joinStringsOperationSecondStringArgumentRef=Yf,h.joinStringsOperationSecondStringDataType=Hf,h.joinStringsOperationSeparatorStringArgument=sy,h.joinStringsOperationSeparatorStringArgumentParentRef=ny,h.joinStringsOperationSeparatorStringArgumentRef=ey,h.joinStringsOperationSeparatorStringDataType=ry,h.joinStringsOperationSeparatorStringDataTypeDefaultValue=iy,h.joinStringsOperationSeparatorStringDataTypeDefaultValueParentRef=ty,h.keyValuePrototype=Fn,h.literalValudValidation=S7,h.loopValidation=C7,h.lowercaseFirstLetter=Bl,h.manualFlowActionDescriptorDeclarationArgumentDeclaration=_d,h.manualFlowActionDescriptorDeclarationArgumentDeclarationDataType=M0,h.manualFlowActionDescriptorDeclarationArgumentDeclarationDataTypeParentRef=_0,h.manualFlowActionDescriptorDeclarationArgumentDeclarationParentRef=N0,h.manualFlowLoopActionDescriptor=io,h.manualFlowLoopActionDescriptorDynamicReturnDeclaration=B0,h.manualFlowLoopActionDescriptorDynamicReturnDeclarationParentRef=V0,h.manualFlowLoopBodyActionDescriptor=ro,h.manualFlowLoopBodyActionDescriptorAnyDynamicArgument=U0,h.manualFlowLoopBodyActionDescriptorAnyDynamicArgumentParentRef=L0,h.manualFlowLoopBodyActionDescriptorAnyDynamicReturn=j0,h.manualFlowLoopBodyActionDescriptorAnyDynamicReturnParentRef=g0,h.mapActionDescriptorToTypeItRepresents=CJ,h.mergeEntityErrorsList=V3,h.mergeListOfEntities=PJ,h.methodDefaultValue=e0,h.mockClientProject=lp,h.moreThanOrEqualCondition=Yn,h.moreThanOrEqualConditionLeftHandArgument=zI,h.moreThanOrEqualConditionLeftHandArgumentDataType=JI,h.moreThanOrEqualConditionLeftHandArgumentDataTypeParentRef=qI,h.moreThanOrEqualConditionLeftHandArgumentParentRef=WI,h.moreThanOrEqualConditionRightHandArgument=XI,h.moreThanOrEqualConditionRightHandArgumentDataType=HI,h.moreThanOrEqualConditionRightHandArgumentDataTypeParentRef=YI,h.moreThanOrEqualConditionRightHandArgumentParentRef=KI,h.notEmptyCondition=ln,h.notEmptyConditionArgument=SI,h.notEmptyConditionRef=kI,h.nullPrototype=pd,h.numberAdditionOperation=qa,h.numberAdditionOperationDynamicSummandArgument=Vf,h.numberAdditionOperationDynamicSummandArgumentType=Cf,h.numberAdditionOperationDynamicSummandArgumentTypeParentRef=wf,h.numberAdditionOperationError=Pf,h.numberAdditionOperationErrorParentRef=Of,h.numberAdditionOperationFirstNumberArgument=cd,h.numberAdditionOperationFirstNumberArgumentRef=vf,h.numberAdditionOperationFirstNumberDataType=Tf,h.numberAdditionOperationRef=Rf,h.numberAdditionOperationRefThree=yd,h.numberAdditionOperationRefTwo=Df,h.numberAdditionOperationResultNumberDataType=bf,h.numberAdditionOperationResultNumberReturn=hd,h.numberAdditionOperationResultNumberReturnRef=Af,h.numberAdditionOperationSecondNumberArgument=fd,h.numberAdditionOperationSecondNumberArgumentRef=If,h.numberAdditionOperationSecondNumberDataType=Ef,h.numberPrototype=ve,h.numberSubtractionOperation=vd,h.numberSubtractionOperationDynamicSubtrahendArgument=qf,h.numberSubtractionOperationDynamicSubtrahendArgumentType=Zf,h.numberSubtractionOperationDynamicSubtrahendArgumentTypeParentRef=Sf,h.numberSubtractionOperationError=kf,h.numberSubtractionOperationErrorParentRef=xf,h.numberSubtractionOperationFirstNumberArgument=gf,h.numberSubtractionOperationFirstNumberArgumentRef=Bf,h.numberSubtractionOperationFirstNumberDataType=_f,h.numberSubtractionOperationRef=md,h.numberSubtractionOperationRefThree=Gf,h.numberSubtractionOperationRefTwo=jf,h.numberSubtractionOperationResultNumberDataType=Uf,h.numberSubtractionOperationResultNumberReturn=Ff,h.numberSubtractionOperationResultNumberReturnRef=Lf,h.numberSubtractionOperationSecondNumberArgument=$f,h.numberSubtractionOperationSecondNumberArgumentRef=Mf,h.numberSubtractionOperationSecondNumberDataType=Nf,h.numberValueAutogenerationSchema=cp,h.operationValidation=D7,h.outputMapValidation=G7,h.parallelExecutionOperation=Oi,h.parallelExecutionOperationError=Xh,h.parallelExecutionOperationErrorParentRef=Kh,h.parallelExecutionOperationListOfExecutionResultsDataType=zh,h.parallelExecutionOperationListOfExecutionResultsReturn=Pd,h.parallelExecutionOperationListOfExecutionResultsReturnRef=Wh,h.parallelExecutionOperationListOfFunctionsArgument=Od,h.parallelExecutionOperationListOfFunctionsArgumentDatatype=Jh,h.parallelExecutionOperationListOfFunctionsArgumentRef=qh,h.parallelExecutionOperationListOfFunctionsBlueprint=Zh,h.parallelExecutionOperationListOfFunctionsBlueprintDynamicInput=kh,h.parallelExecutionOperationListOfFunctionsBlueprintDynamicInputParentRef=xh,h.parallelExecutionOperationListOfFunctionsBlueprintDynamicOutput=Fh,h.parallelExecutionOperationListOfFunctionsBlueprintDynamicOutputParentRef=Gh,h.parallelExecutionOperationListOfFunctionsBlueprintParentRef=Sh,h.parallelExecutionOperationRef=Yh,h.parallelExecutionOperationRefThree=Hh,h.persistedBuiltInBaseEntity=Ct,h.persistedBuiltInBaseEntityDatabaseProperty=Jn,h.persistedBuiltInBaseEntityDatabasePropertyDataType=RI,h.persistedBuiltInBaseEntityDatabasePropertyDataTypeRef=Rw,h.persistedBuiltInBaseEntityDatabasePropertyParentRef=DI,h.persistedBuiltInBaseEntityDatabasePropertyRef=bI,h.persistedBuiltInBaseEntityPrimaryKeyProperty=Wn,h.persistedBuiltInBaseEntityPrimaryKeyPropertyDataType=MI,h.persistedBuiltInBaseEntityPrimaryKeyPropertyNumberDataTypeOption=PI,h.persistedBuiltInBaseEntityPrimaryKeyPropertyNumberDataTypeOptionParentRef=OI,h.persistedBuiltInBaseEntityPrimaryKeyPropertyParentRef=NI,h.persistedBuiltInBaseEntityPrimaryKeyPropertyRef=_I,h.persistedBuiltInBaseEntityPrimaryKeyPropertyStringDataTypeOption=CI,h.persistedBuiltInBaseEntityPrimaryKeyPropertyStringDataTypeOptionParentRef=wI,h.persistedBuiltInBaseEntityPrimaryKeyPropertyUUIDDataTypeOption=BI,h.persistedBuiltInBaseEntityPrimaryKeyPropertyUUIDDataTypeOptionParentRef=VI,h.processOutputGlobalValueDescriptorDataType=sE,h.processOutputGlobalValueDescriptorReturn=ho,h.processOutputGlobalValueDescriptorReturnRef=nE,h.projectPublicationCompletedGlobalEvent=yo,h.propertyToZodSchema=bE,h.propertyValidation=c7,h.relationalDatabaseBuiltInBaseEntity=ji,h.relationalDatabaseBuiltInBaseEntityAutoscalingProperty=Kd,h.relationalDatabaseBuiltInBaseEntityAutoscalingPropertyDataType=TI,h.relationalDatabaseBuiltInBaseEntityAutoscalingPropertyDataTypeRef=vI,h.relationalDatabaseBuiltInBaseEntityAutoscalingPropertyParentRef=II,h.relationalDatabaseBuiltInBaseEntityAutoscalingPropertyRef=mI,h.relationalDatabaseBuiltInBaseEntityDefaultProperty=Hd,h.relationalDatabaseBuiltInBaseEntityDefaultPropertyDataType=hI,h.relationalDatabaseBuiltInBaseEntityDefaultPropertyDataTypeRef=fI,h.relationalDatabaseBuiltInBaseEntityDefaultPropertyRef=yI,h.relationalDatabaseBuiltInBaseEntityIdentifierProperty=oo,h.relationalDatabaseBuiltInBaseEntityIdentifierPropertyDataType=sI,h.relationalDatabaseBuiltInBaseEntityIdentifierPropertyDataTypeRef=rI,h.relationalDatabaseBuiltInBaseEntityIdentifierPropertyRef=nI,h.relationalDatabaseBuiltInBaseEntityMinSizeProperty=po,h.relationalDatabaseBuiltInBaseEntityMinSizePropertyDataType=cI,h.relationalDatabaseBuiltInBaseEntityMinSizePropertyDataTypeRef=uI,h.relationalDatabaseBuiltInBaseEntityMinSizePropertyRef=pI,h.relationalDatabaseBuiltInBaseEntityPasswordProperty=uo,h.relationalDatabaseBuiltInBaseEntityPasswordPropertyDataType=dI,h.relationalDatabaseBuiltInBaseEntityPasswordPropertyDataTypeRef=bw,h.relationalDatabaseBuiltInBaseEntityPasswordPropertyRef=lI,h.relationalDatabaseBuiltInBaseEntityRef=qn,h.relationalDatabaseBuiltInBaseEntityUsernameProperty=lo,h.relationalDatabaseBuiltInBaseEntityUsernamePropertyDataType=oI,h.relationalDatabaseBuiltInBaseEntityUsernamePropertyDataTypeRef=Aw,h.relationalDatabaseBuiltInBaseEntityUsernamePropertyRef=aI,h.resolveActionDescriptorName=KO,h.resolveBaseEntityName=WO,h.resolveBuiltInBaseEntityDataTypeLabel=zO,h.resolveClonedEntityProject=mt,h.resolveConditionOperatorLabel=Ll,h.resolveDataType=_l,h.resolveDataTypeEntityOrNestedChildrenFromLiteralValue=Zc,h.resolveDataTypeLabel=Nl,h.resolveDefinitionEntityDataTypeLabel=u7,h.resolveEntityDataTypeLabel=d7,h.resolveEntityName=x,h.resolveFirstCallsSecond=yJ,h.resolveFirstWritesSecond=hJ,h.resolvePrimaryKeyProperty=_J,h.resolvePrimitiveEntityName=HO,h.resolveSearchName=YO,h.resolveVariableScope=a7,h.returnDeclarationValidation=h7,h.returnStatementValidation=m7,h.searchValidation=N7,h.sequentialExecutionOperation=nr,h.sequentialExecutionOperationError=Tm,h.sequentialExecutionOperationErrorParentRef=vm,h.sequentialExecutionOperationListOfExecutionResultsDataType=ym,h.sequentialExecutionOperationListOfExecutionResultsReturn=Cd,h.sequentialExecutionOperationListOfExecutionResultsReturnParentRef=mm,h.sequentialExecutionOperationListOfExecutionResultsReturnRef=fm,h.sequentialExecutionOperationListOfFunctionsArgument=wd,h.sequentialExecutionOperationListOfFunctionsArgumentDatatype=cm,h.sequentialExecutionOperationListOfFunctionsArgumentParentRef=hm,h.sequentialExecutionOperationListOfFunctionsArgumentRef=pm,h.sequentialExecutionOperationListOfFunctionsBlueprint=um,h.sequentialExecutionOperationListOfFunctionsBlueprintDynamicInput=dm,h.sequentialExecutionOperationListOfFunctionsBlueprintDynamicOutput=lm,h.softDeletePersistedEntityMethod=Dw,h.softDeletePersistedEntityMethodParentRef=LI,h.sortCallsBasedOnExecutionDependencies=nP,h.sortChildrenEntitiesBasedOnExecutionDependencies=cJ,h.splitListOperation=Ad,h.splitListOperationError=ph,h.splitListOperationErrorParentRef=uh,h.splitListOperationFirstOutputListDataType=eh,h.splitListOperationFirstOutputListReturn=ah,h.splitListOperationFirstOutputListReturnParentRef=sh,h.splitListOperationFirstOutputListReturnRef=Ed,h.splitListOperationInputListArgument=ih,h.splitListOperationInputListArgumentParentRef=th,h.splitListOperationInputListArgumentRef=Hy,h.splitListOperationInputListDataType=Ky,h.splitListOperationSecondOutputListDataType=oh,h.splitListOperationSecondOutputListReturn=dh,h.splitListOperationSecondOutputListReturnParentRef=lh,h.splitListOperationSplitIndexArgument=nh,h.splitListOperationSplitIndexArgumentParentRef=rh,h.splitListOperationSplitIndexArgumentRef=Xy,h.splitListOperationSplitIndexDataType=Qy,h.splitStringOperation=Td,h.splitStringOperationError=By,h.splitStringOperationErrorParentRef=Vy,h.splitStringOperationFirstPartResultStringDataType=Iy,h.splitStringOperationFirstPartResultStringReturn=Cy,h.splitStringOperationFirstPartResultStringReturnParentRef=wy,h.splitStringOperationFirstPartResultStringReturnRef=Ty,h.splitStringOperationIndexArgument=Oy,h.splitStringOperationIndexArgumentParentRef=Dy,h.splitStringOperationIndexArgumentRef=my,h.splitStringOperationIndexDataType=vy,h.splitStringOperationSecondPartResultStringDataType=Ay,h.splitStringOperationSecondPartResultStringReturn=Iw,h.splitStringOperationSecondPartResultStringReturnParentRef=Py,h.splitStringOperationSecondPartResultStringReturnRef=Ey,h.splitStringOperationStringArgument=Ry,h.splitStringOperationStringArgumentParentRef=by,h.splitStringOperationStringArgumentRef=yy,h.splitStringOperationStringDataType=hy,h.stringPrototype=se,h.stringValueAutogenerationSchema=pp,h.suggestNewIdForEntity=Oc,h.test_primitive_entities_export=CW,h.toCamelCase=o7,h.toEntityState=mi,h.toKebabCase=JO,h.toLowerCaseKebabCase=Ml,h.toPascalCase=l7,h.untypedDataPrototype=Ot,h.updateErrorsList=He,h.urlDefaultValue=zm,h.uuidPrototype=ir,h.validateArgumentDeclarationName=Rc,h.validateCalledByErrorIdInAction=Q7,h.validateCalledByIdInAction=X7,h.validateCallers=Z1,h.validateConditionEntityDeclaration=iJ,h.validateDataOperation=rn,h.validateDataOperationDataToValidateArgument=jm,h.validateDataOperationDataToValidateArgumentParentRef=gm,h.validateDataOperationDataToValidateArgumentRef=Lm,h.validateDataOperationDataToValidateDataType=Um,h.validateDataOperationEntityToMatchTypeArgument=xm,h.validateDataOperationEntityToMatchTypeArgumentParentRef=Fm,h.validateDataOperationEntityToMatchTypeArgumentRef=$m,h.validateDataOperationEntityToMatchTypeDataType=Gm,h.validateDataOperationError=qm,h.validateDataOperationErrorParentRef=Zm,h.validateDataOperationOutputEntityDeclaration=Sm,h.validateDataOperationOutputEntityDeclarationParentRef=km,h.validateDefinitionEntityName=Ic,h.validateEntryCaller=S1,h.validateErrorCaller=k1,h.validateFunctionCallDeclaration=J1,h.validateFunctionDeclarationName=Ec,h.validateGeneratedEntityParentIsNotBuiltInEntity=z7,h.validateGeneration=J7,h.validateGenerationTarget=ut,h.validateGenerationUpdate=W7,h.validateLoopEntityDeclaration=rJ,h.validateName=p7,h.validateOperationEntityDeclaration=W1,h.validatePropertyName=bc,h.validateReachability=mr,h.validateReadsValueInActionPayload=eJ,h.validateReferenceObject=jl,h.validateReferenceToOne=Lc,h.validateReferences=At,h.validateReturnDeclarationName=Dc,h.validateSuccessCaller=x1,h.validateValueReaderGenerationUpdate=_a,h.validateValueWritter=Fc,h.validateVariableDeclarationName=Ac,h.validateVariableInternalCallUse=xc,h.valueAutogenerationCurrentDateAndTimeSchema=nD,h.valueAutogenerationGenericSchema=rl,h.valueAutogenerationOptions=yp,h.valueAutogenerationOptionsSchema=rD,h.valueAutogenerationRandomBooleanSchema=up,h.valueAutogenerationRandomDateBetweenSchema=fD,h.valueAutogenerationRandomDateFromSchema=pD,h.valueAutogenerationRandomDateSchema=al,h.valueAutogenerationRandomDateUntilSchema=cD,h.valueAutogenerationRandomNumberBetweenSchema=oD,h.valueAutogenerationRandomNumberFromSchema=sD,h.valueAutogenerationRandomNumberSchema=nl,h.valueAutogenerationRandomNumberUntilSchema=aD,h.valueAutogenerationRandomSchema=fa,h.valueAutogenerationRandomTextBetweenSchema=uD,h.valueAutogenerationRandomTextFromSchema=lD,h.valueAutogenerationRandomTextSchema=sl,h.valueAutogenerationRandomTextUntilSchema=dD,h.valueAutogenerationRangeValueTypesSchema=ca,h.valueAutogenerationUniqueSchema=dp,h.valueDescriptorValidation=q7,h.variableDeclarationValidation=_7,h.variableInstanceValidation=M7,h.waitOperation=qt,h.waitOperationMillisecondsNumberArgument=en,h.waitOperationMillisecondsNumberArgumentRef=tm,h.waitOperationMillisecondsNumberDataType=im,h.waitOperationOperationError=sm,h.waitOperationOperationErrorParentRef=nm,h.waitOperationRef=rm,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})});
|
|
@@ -17,7 +17,7 @@ import { BuiltInBaseEntityState } from '../built-in-base-entity';
|
|
|
17
17
|
import { EntityError, EntityGenerationError } from '../error';
|
|
18
18
|
import { ActionDescriptorState } from '../action-descriptor';
|
|
19
19
|
import { ValueDescriptorState } from '../value-descriptor';
|
|
20
|
-
import { IModuleInjection, UserManagedEntityState } from '../types';
|
|
20
|
+
import { IModuleInjection, TerminationState, UserManagedEntityState } from '../types';
|
|
21
21
|
import { VersionedState } from '../version';
|
|
22
22
|
|
|
23
23
|
export interface UUIDModule {
|
|
@@ -229,6 +229,7 @@ export declare class ProjectState extends VersionedState implements IProject, Us
|
|
|
229
229
|
removeGlobalEvent(event: IGlobalEvent): GlobalEventState | null;
|
|
230
230
|
removeTopLevelVariableDeclaration(variable: VariableDeclarationState): VariableDeclarationState | null;
|
|
231
231
|
getEntryPoints(): EntryPointEntityState[];
|
|
232
|
+
getTerminationStatements(): TerminationState[];
|
|
232
233
|
getFunctionDeclaration(id: EntityId): FunctionDeclarationState | null;
|
|
233
234
|
getConditions(): ConditionState[];
|
|
234
235
|
getOperations(): OperationState[];
|
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.6210",
|
|
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",
|