@meshflow/core 0.3.7 → 0.3.8

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/index.d.mts CHANGED
@@ -166,7 +166,7 @@ interface MeshFlowTaskNode<P extends MeshPath = MeshPath, V = any, NM = any> {
166
166
  state: V;
167
167
  nodeBucket: Record<keyof NM, SchemaBucket<P>>;
168
168
  notifyKeys: Set<keyof NM>;
169
- dirtySignal?: any;
169
+ dirtySignal: any;
170
170
  proxy: any;
171
171
  calledBy: TriggerCause;
172
172
  meta: NM;
@@ -178,7 +178,7 @@ interface MeshFlowGroupNode<P extends MeshPath = MeshPath> {
178
178
  uid: number;
179
179
  type: "group";
180
180
  children: Array<P>;
181
- dirtySignal?: any;
181
+ dirtySignal: any;
182
182
  meta: Record<string, any>;
183
183
  createView: (extraProps?: Record<string, any>) => any;
184
184
  }
@@ -295,8 +295,8 @@ declare function useEngineInstance<T, P extends MeshPath, S = any, M extends Rec
295
295
  path: P;
296
296
  }) => void) => () => void;
297
297
  scheduler: {
298
- registerNode: (nodeMeta: Omit<MeshFlowTaskNode<P, any, any>, "createView" | "proxy">) => MeshFlowTaskNode<P, any, NM>;
299
- registerGroupNode: (groupMeta: Omit<MeshFlowGroupNode<P>, "createView">) => MeshFlowGroupNode<P>;
298
+ registerNode: (nodeMeta: Omit<MeshFlowTaskNode<P, any, any>, "createView" | "proxy" | "dependOn" | "calledBy" | "uid" | "dirtySignal">) => MeshFlowTaskNode<P, any, NM>;
299
+ registerGroupNode: (groupMeta: Omit<MeshFlowGroupNode<P>, "createView" | "calledBy" | "uid" | "dirtySignal">) => MeshFlowGroupNode<P>;
300
300
  GetNodeByPath: (path: P) => MeshFlowTaskNode<P, any, NM>;
301
301
  GetGroupByPath: (path: MeshPath) => MeshFlowGroupNode<MeshPath> | undefined;
302
302
  notify: (path: P) => void;
@@ -333,8 +333,8 @@ B extends Record<string, any> = StandardUITrigger<T>, NM = any>(config: {
333
333
  callOnStart: any;
334
334
  emit: MeshEmit;
335
335
  }, UITrigger: B): {
336
- registerNode: (nodeMeta: Omit<MeshFlowTaskNode<P>, "createView" | "proxy">) => MeshFlowTaskNode<P, any, NM>;
337
- registerGroupNode: (groupMeta: Omit<MeshFlowGroupNode<P>, "createView">) => MeshFlowGroupNode<P>;
336
+ registerNode: (nodeMeta: Omit<MeshFlowTaskNode<P>, "createView" | "proxy" | "dependOn" | "calledBy" | "uid" | "dirtySignal">) => MeshFlowTaskNode<P, any, NM>;
337
+ registerGroupNode: (groupMeta: Omit<MeshFlowGroupNode<P>, "createView" | "calledBy" | "uid" | "dirtySignal">) => MeshFlowGroupNode<P>;
338
338
  GetNodeByPath: (path: P) => MeshFlowTaskNode<P, any, NM>;
339
339
  GetGroupByPath: (path: MeshPath) => MeshFlowGroupNode<MeshPath> | undefined;
340
340
  notify: (path: P) => void;
@@ -479,8 +479,8 @@ M extends Record<string, any>, NM extends Record<string, any> = InferLeafType<S>
479
479
  path: P;
480
480
  }) => void) => () => void;
481
481
  scheduler: {
482
- registerNode: (nodeMeta: Omit<MeshFlowTaskNode<P, any, any>, "createView" | "proxy">) => MeshFlowTaskNode<P, any, NM>;
483
- registerGroupNode: (groupMeta: Omit<MeshFlowGroupNode<P>, "createView">) => MeshFlowGroupNode<P>;
482
+ registerNode: (nodeMeta: Omit<MeshFlowTaskNode<P, any, any>, "createView" | "proxy" | "dependOn" | "calledBy" | "uid" | "dirtySignal">) => MeshFlowTaskNode<P, any, NM>;
483
+ registerGroupNode: (groupMeta: Omit<MeshFlowGroupNode<P>, "createView" | "calledBy" | "uid" | "dirtySignal">) => MeshFlowGroupNode<P>;
484
484
  GetNodeByPath: (path: P) => MeshFlowTaskNode<P, any, NM>;
485
485
  GetGroupByPath: (path: MeshPath) => MeshFlowGroupNode<MeshPath> | undefined;
486
486
  notify: (path: P) => void;
@@ -564,8 +564,8 @@ declare const useMeshFlow: <const S extends Record<string, any> | any[], T, M ex
564
564
  path: P;
565
565
  }) => void) => () => void;
566
566
  scheduler: {
567
- registerNode: (nodeMeta: Omit<MeshFlowTaskNode<P, any, any>, "createView" | "proxy">) => MeshFlowTaskNode<P, any, NM>;
568
- registerGroupNode: (groupMeta: Omit<MeshFlowGroupNode<P>, "createView">) => MeshFlowGroupNode<P>;
567
+ registerNode: (nodeMeta: Omit<MeshFlowTaskNode<P, any, any>, "createView" | "proxy" | "dependOn" | "calledBy" | "uid" | "dirtySignal">) => MeshFlowTaskNode<P, any, NM>;
568
+ registerGroupNode: (groupMeta: Omit<MeshFlowGroupNode<P>, "createView" | "calledBy" | "uid" | "dirtySignal">) => MeshFlowGroupNode<P>;
569
569
  GetNodeByPath: (path: P) => MeshFlowTaskNode<P, any, NM>;
570
570
  GetGroupByPath: (path: MeshPath) => MeshFlowGroupNode<MeshPath> | undefined;
571
571
  notify: (path: P) => void;
package/index.d.ts CHANGED
@@ -166,7 +166,7 @@ interface MeshFlowTaskNode<P extends MeshPath = MeshPath, V = any, NM = any> {
166
166
  state: V;
167
167
  nodeBucket: Record<keyof NM, SchemaBucket<P>>;
168
168
  notifyKeys: Set<keyof NM>;
169
- dirtySignal?: any;
169
+ dirtySignal: any;
170
170
  proxy: any;
171
171
  calledBy: TriggerCause;
172
172
  meta: NM;
@@ -178,7 +178,7 @@ interface MeshFlowGroupNode<P extends MeshPath = MeshPath> {
178
178
  uid: number;
179
179
  type: "group";
180
180
  children: Array<P>;
181
- dirtySignal?: any;
181
+ dirtySignal: any;
182
182
  meta: Record<string, any>;
183
183
  createView: (extraProps?: Record<string, any>) => any;
184
184
  }
@@ -295,8 +295,8 @@ declare function useEngineInstance<T, P extends MeshPath, S = any, M extends Rec
295
295
  path: P;
296
296
  }) => void) => () => void;
297
297
  scheduler: {
298
- registerNode: (nodeMeta: Omit<MeshFlowTaskNode<P, any, any>, "createView" | "proxy">) => MeshFlowTaskNode<P, any, NM>;
299
- registerGroupNode: (groupMeta: Omit<MeshFlowGroupNode<P>, "createView">) => MeshFlowGroupNode<P>;
298
+ registerNode: (nodeMeta: Omit<MeshFlowTaskNode<P, any, any>, "createView" | "proxy" | "dependOn" | "calledBy" | "uid" | "dirtySignal">) => MeshFlowTaskNode<P, any, NM>;
299
+ registerGroupNode: (groupMeta: Omit<MeshFlowGroupNode<P>, "createView" | "calledBy" | "uid" | "dirtySignal">) => MeshFlowGroupNode<P>;
300
300
  GetNodeByPath: (path: P) => MeshFlowTaskNode<P, any, NM>;
301
301
  GetGroupByPath: (path: MeshPath) => MeshFlowGroupNode<MeshPath> | undefined;
302
302
  notify: (path: P) => void;
@@ -333,8 +333,8 @@ B extends Record<string, any> = StandardUITrigger<T>, NM = any>(config: {
333
333
  callOnStart: any;
334
334
  emit: MeshEmit;
335
335
  }, UITrigger: B): {
336
- registerNode: (nodeMeta: Omit<MeshFlowTaskNode<P>, "createView" | "proxy">) => MeshFlowTaskNode<P, any, NM>;
337
- registerGroupNode: (groupMeta: Omit<MeshFlowGroupNode<P>, "createView">) => MeshFlowGroupNode<P>;
336
+ registerNode: (nodeMeta: Omit<MeshFlowTaskNode<P>, "createView" | "proxy" | "dependOn" | "calledBy" | "uid" | "dirtySignal">) => MeshFlowTaskNode<P, any, NM>;
337
+ registerGroupNode: (groupMeta: Omit<MeshFlowGroupNode<P>, "createView" | "calledBy" | "uid" | "dirtySignal">) => MeshFlowGroupNode<P>;
338
338
  GetNodeByPath: (path: P) => MeshFlowTaskNode<P, any, NM>;
339
339
  GetGroupByPath: (path: MeshPath) => MeshFlowGroupNode<MeshPath> | undefined;
340
340
  notify: (path: P) => void;
@@ -479,8 +479,8 @@ M extends Record<string, any>, NM extends Record<string, any> = InferLeafType<S>
479
479
  path: P;
480
480
  }) => void) => () => void;
481
481
  scheduler: {
482
- registerNode: (nodeMeta: Omit<MeshFlowTaskNode<P, any, any>, "createView" | "proxy">) => MeshFlowTaskNode<P, any, NM>;
483
- registerGroupNode: (groupMeta: Omit<MeshFlowGroupNode<P>, "createView">) => MeshFlowGroupNode<P>;
482
+ registerNode: (nodeMeta: Omit<MeshFlowTaskNode<P, any, any>, "createView" | "proxy" | "dependOn" | "calledBy" | "uid" | "dirtySignal">) => MeshFlowTaskNode<P, any, NM>;
483
+ registerGroupNode: (groupMeta: Omit<MeshFlowGroupNode<P>, "createView" | "calledBy" | "uid" | "dirtySignal">) => MeshFlowGroupNode<P>;
484
484
  GetNodeByPath: (path: P) => MeshFlowTaskNode<P, any, NM>;
485
485
  GetGroupByPath: (path: MeshPath) => MeshFlowGroupNode<MeshPath> | undefined;
486
486
  notify: (path: P) => void;
@@ -564,8 +564,8 @@ declare const useMeshFlow: <const S extends Record<string, any> | any[], T, M ex
564
564
  path: P;
565
565
  }) => void) => () => void;
566
566
  scheduler: {
567
- registerNode: (nodeMeta: Omit<MeshFlowTaskNode<P, any, any>, "createView" | "proxy">) => MeshFlowTaskNode<P, any, NM>;
568
- registerGroupNode: (groupMeta: Omit<MeshFlowGroupNode<P>, "createView">) => MeshFlowGroupNode<P>;
567
+ registerNode: (nodeMeta: Omit<MeshFlowTaskNode<P, any, any>, "createView" | "proxy" | "dependOn" | "calledBy" | "uid" | "dirtySignal">) => MeshFlowTaskNode<P, any, NM>;
568
+ registerGroupNode: (groupMeta: Omit<MeshFlowGroupNode<P>, "createView" | "calledBy" | "uid" | "dirtySignal">) => MeshFlowGroupNode<P>;
569
569
  GetNodeByPath: (path: P) => MeshFlowTaskNode<P, any, NM>;
570
570
  GetGroupByPath: (path: MeshPath) => MeshFlowGroupNode<MeshPath> | undefined;
571
571
  notify: (path: P) => void;
package/index.js CHANGED
@@ -1 +1 @@
1
- 'use strict';var Me=class{computedRules=[];store={OR:(e,n)=>{let t,c,r=this.computedRules;for(let s=0;s<r.length;s++){let a=r[s],o=a.logic(e);if(o instanceof Promise)return (async()=>{let i=await o;if(a.entityId==="__base__"?c=i:i&&(t=i),typeof t>"u")for(let y=s+1;y<r.length;y++){let m=r[y],g=m.logic(e),u=g instanceof Promise?await g:g;if(m.entityId==="__base__"){c=u;continue}if(u){t=m.value;break}}return typeof t>"u"&&(t=c),{res:t,version:n}})();let d=o;if(a.entityId==="__base__"){c=d;continue}if(d){t=a.value;break}}return typeof t>"u"&&(t=c),{res:t,version:n}},PRIORITY:(e,n)=>{let t,c=this.computedRules;for(let r=0;r<c.length;r++){let a=c[r].logic(e);if(a instanceof Promise)return (async()=>{let o=await a;if(o!==void 0)return {res:o,version:n};for(let d=r+1;d<c.length;d++){let i=c[d].logic(e),y=i instanceof Promise?await i:i;if(y!==void 0)return {res:y,version:n}}return {res:void 0,version:n}})();if(a!==void 0)return {res:a,version:n}}return {res:t,version:n}}};CurrentStrategy=()=>{};CurrentStrategyType="PRIORITY";getRules=()=>{};constructor(e){this.getRules=e,this.CurrentStrategy=this.store.PRIORITY,this.updateComputedRules();}updateComputedRules(){let e=this.getRules();this.CurrentStrategyType==="PRIORITY"?this.computedRules=Array.from(e.values()).map(n=>Array.from(n)).flat().sort((n,t)=>t.priority-n.priority):this.computedRules=Array.from(e.values()).map(n=>Array.from(n)).flat();}setStrategy(e){this.CurrentStrategy=this.store[e],this.updateComputedRules();}evaluate(e,n){return this.CurrentStrategy(e,n)}},ye=class{path;strategy;contract;rules=new Map;isValue=false;id=0;cache=void 0;pendingPromise=null;version=0;deps=new Map;_forceNotify=false;promiseToken=null;useCache=true;effectArray=[];constructor(e,n,t){let c=()=>this.rules;this.strategy=new Me(c),this.path=t,this.isValue=n==="value",this.contract=this.inferType(e),this.cache=e,this.setRule({priority:0,entityId:"__base__",logic:()=>e});}setUseCache(e){this.useCache=e;}forceNotify(){this._forceNotify=true;}isForceNotify(){return this._forceNotify}setStrategy(e){this.strategy.setStrategy(e);}setDefaultRule(e){let n=new Set;n.add(e),this.rules.set("defaultRules",n);}setRules(e,n){n&&this.updateDeps(n);let t=++this.id,c={...e,entityId:t};for(let r of e.triggerPaths)this.rules.has(r)||this.rules.set(r,new Set),this.rules.get(r).add(c);return this.strategy.updateComputedRules(),()=>{for(let r of e.triggerPaths){let s=this.rules.get(r);s&&(s.delete(c),s.size===0&&(this.rules.delete(r),this.deps.delete(r)));}this.strategy.updateComputedRules();}}updateDeps(e){for(let[n,t]of e)this.deps.set(n,t);}setRule(e,n){if(n&&this.updateDeps(n),typeof e.entityId=="string"){this.setDefaultRule(e);return}let t=++this.id,c={...e,entityId:t};if(e)for(let r of e.triggerPaths)this.rules.has(r)||this.rules.set(r,new Set),this.rules.get(r).add(c);return this.strategy.updateComputedRules(),()=>{for(let r of e.triggerPaths){let s=this.rules.get(r);s&&(s.delete(c),s.size===0&&(this.rules.delete(r),this.deps.delete(r)));}this.strategy.updateComputedRules();}}setSideEffect(e){this.effectArray.push(e);}getSideEffect(){return [...this.effectArray]}evaluate(e){let n=null;if(e.GetToken&&(n=e.GetToken()),this.pendingPromise&&this.promiseToken!==n&&(this.pendingPromise=null,this.promiseToken=null),this.pendingPromise)return this.pendingPromise;let t=false;if(typeof e.triggerPath=="string"){t=true;let s=this.deps.get(e.triggerPath),a=e.getStateByPath(e.triggerPath);if(typeof s=="object"||typeof a=="object")t=false;else {let o=Array.from(this.deps.keys());for(let d of o){let i=this.deps.get(d),y=e.getStateByPath(d);if(i!==y){t=false;break}}}}if(t&&this.useCache)return this.cache;this.promiseToken=n;let c=++this.version,r=this.strategy.evaluate(e,c);if(!(r instanceof Promise)){let{res:s,version:a}=r;return this.finalizeSync(s,a,e,n)}return this.pendingPromise=(async()=>{try{let{res:s,version:a}=await r;return this.finalizeSync(s,a,e,n)}catch(s){throw {path:this.path,error:s}}finally{this.promiseToken===n&&(this.pendingPromise=null,this.promiseToken=null);}})(),this.pendingPromise}finalizeSync(e,n,t,c){return c!==this.promiseToken||n<this.version?this.cache:(this.cache=e,this.deps.forEach((r,s)=>{this.deps.set(s,t.GetRenderSchemaByPath(s));}),e)}inferType(e){return Array.isArray(e)?"array":typeof e}};var xe=(l,e,n)=>{let c=r=>{let s=n.triggerPaths.map(d=>{let i=r.GetRenderSchemaByPath(d),y={};return n.triggerKeys.forEach(m=>{y[m]=i[m];}),y}),a=Object.create(null);return Object.defineProperty(a,"triggerTargets",{get:()=>s}),Object.defineProperty(a,"affectedTatget",{get:()=>r.GetRenderSchemaByPath(l)[e]}),n.logic({slot:a})};return {value:n.value,targetPath:l,triggerPaths:n.triggerPaths,priority:n.priority??10,logic:c}},Ne=(l,e,n)=>{if(!l)throw Error("");let t=l,c=(a,o)=>{e.has(a)||e.set(a,new Set),e.get(a).add(o),n.has(o)||n.set(o,new Set),n.get(o).add(a);};return {SetRule:(a,o,d,i)=>{let y=t(o),m=i.triggerKeys||[];m.length==0&&m.push("value");let g=xe(o,d,{...i,triggerPaths:[a],triggerKeys:m}),u=[a].map(f=>[f,t(f).state.value]);if(c(a,o),y.nodeBucket[d])y.nodeBucket[d].setRule(g,u),i.effect&&y.nodeBucket[d].setSideEffect({fn:i.effect,args:i.effectArgs?i.effectArgs:[d]});else {let f=y.meta[d],P=new ye(f,d,o);P.setRule(g,u),i.effect&&P.setSideEffect({fn:i.effect,args:i.effectArgs?i.effectArgs:[d]}),y.nodeBucket[d]=P;}y.state[d]=y.meta[d],i.forceNotify&&y.nodeBucket[d].forceNotify(),i.cacheStrategy=="none"&&y.nodeBucket[d].setUseCache(false);},SetRules:(a,o,d,i)=>{let y=t(o);for(let f of a)c(f,o);let m=i.triggerKeys||[];m.length==0&&m.push("value");let g=xe(o,d,{...i,triggerPaths:a,triggerKeys:m}),u=a.map(f=>[f,t(f).state.value]);if(y.nodeBucket[d])y.nodeBucket[d].setRules(g,u),i.effect&&y.nodeBucket[d].setSideEffect({fn:i.effect,args:i.effectArgs?i.effectArgs:[d]});else {let f=y.meta[d],P=new ye(f,d,o);P.setRules(g,u),i.effect&&P.setSideEffect({fn:i.effect,args:i.effectArgs?i.effectArgs:[d]}),y.nodeBucket[d]=P;}y.state[d]=y.meta[d],i.forceNotify&&y.nodeBucket[d].forceNotify(),i.cacheStrategy=="none"&&y.nodeBucket[d].setUseCache(false);}}};var Re=l=>{let e=l||void 0;if(!e)throw Error("");return {SetStrategy:(t,c,r)=>{e(t).nodeBucket[c].setStrategy(r);}}};function we(){let l=new Map,e=new Map,n=new Set,t=(s,a)=>{l.set(s,a);let o=e.get(s);o&&o(a);};return {SetTrace:(s,a)=>{e.set(s,a);let o=l.get(s)||"idle";return a(o),{cancel:()=>{e.delete(s);}}},useTrace:()=>({apply:a=>{a.on("flow:start",()=>{n.forEach(o=>t(o,"idle")),n.clear(),l.clear();}),a.on("node:release",({path:o,type:d})=>{(d==1||d==2)&&(n.add(o),t(o,"pending"));}),a.on("node:pending",({path:o})=>{n.add(o),(!l.has(o)||l.get(o)==="idle")&&t(o,"pending");}),a.on("node:start",({path:o})=>{n.add(o),t(o,"calculating");}),a.on("node:success",({path:o})=>{t(o,"calculated");}),a.on("node:intercept",({path:o,type:d})=>{d==3&&t(o,"calculating"),d==6&&t(o,"idle");}),a.on("node:stagnate",({path:o})=>{t(o,"pending");}),a.on("node:error",({path:o})=>t(o,"error"));}})}}function Ee(l,e,n,t){let c=i=>{let y=l(),m=e(),g=new Set;return y.get(i)?.forEach(u=>g.add(u)),g.size===0?[]:Array.from(g).filter(u=>{let f=m.get(u)||new Set;return !Array.from(f).some(T=>g.has(T))})};return {GetNextDependency:i=>{let y=t();return Array.from(y.get(i)||[])},GetPrevDependency:i=>{let y=n();return Array.from(y.get(i)||[])},GetAllPrevDependency:i=>{let y=e();return Array.from(y.get(i)||[])},GetAllNextDependency:i=>{let y=l();return Array.from(y.get(i)||[])},rebuildDirectDependencyMaps:i=>{let y=new Map,m=new Map;for(let g of i){let u=c(g);y.set(g,new Set(u));for(let f of u)m.has(f)||m.set(f,new Set),m.get(f).add(g);}return {directNextMap:y,directPrevMap:m}}}}function be(l){let e=t=>{let c=[],r=[],s=new Map,a=t.size,o=0,d=0;for(let[i,y]of t)y===0&&r.push(i);if(r.length===0&&a>0)throw Error("Circular dependency detected");for(;r.length>0;){c.push([...r]);let i=[];for(let y of r){o++,s.set(y,d);let m=l.get(y);if(m)for(let g of m){let u=t.get(g)-1;t.set(g,u),u===0&&i.push(g);}}r=i,d++;}if(o<a)throw Error("Circular dependency detected");return {steps:c,levelMap:s}};return ()=>{let t=new Map;for(let c of l.keys()){let r=Array.from(l.get(c)||[]);t.has(c)||t.set(c,0);for(let s of r){let a=t.get(s)||0;t.set(s,++a);}}return e(t)}}var ce=()=>{let l=[];return {on:e=>(l.push(e),()=>{let n=l.indexOf(e);n>-1&&l.splice(n,1);}),call:e=>l.forEach(n=>{n(e);})}};function Ae(){let{on:l,call:e}=ce();return {onError:l,callOnError:e}}function Ge(){let{on:l,call:e}=ce();return {onSuccess:l,callOnSuccess:e}}var Oe=()=>{let l=new Set,e=new Map,n=(r,s)=>{e.get(r)?.forEach(a=>a(s));},t=(r,s)=>(e.has(r)||e.set(r,new Set),e.get(r).add(s),()=>e.get(r).delete(s));return {usePlugin:r=>{let s=new Set,a=(o,d)=>{let i=t(o,d);return s.add(i),i};return r.apply({on:a}),l.add(r),()=>{s.forEach(o=>o()),s.clear(),l.delete(r);}},emit:n}};function Fe(){let{on:l,call:e}=ce();return {onStart:l,callOnStart:e}}var Se=(t=>(t[t.CAUSALITY=0]="CAUSALITY",t[t.INVERSION=1]="INVERSION",t[t.REPERCUSSION=2]="REPERCUSSION",t))(Se||{});function Ke(l,e,n,t,c,r){let s=new Map,a=l.useGreedy;return async(d,i)=>{let m=Symbol("token"),g=d||"__NOTIFY_ALL__";s.set(g,m);let u=false;r.reset();let f=new Set,P=new Set,D=new Set;i.forEach(G=>{D.add(G),e.GetAllNextDependency(G).forEach(v=>D.add(v));});let T=new Map,S=new Map,z=new Map,V=[],F=n.Turnstile,Z=F.volatileLevels.size>0,b=Z?F.hasObserver:()=>false,K=Z?F.receiveGhosts:()=>[],$=Z?F.resolveGhosts:()=>[],J=Z?F.getTriggerKeys:()=>[],h=F?.volatileLevels||new Set,N=-1,p=new Set,w=e.GetPathToLevelMap(),x=0,C=0,L=G=>{e.GetAllNextDependency(G).forEach(ne=>{let _=w.get(ne)||0;_>C&&(C=_);});},q=new Set;d&&(f.add(d),q.add(d),L(d),c.flushPathSet.add(d));let se=d?[d]:i;r.shouldYield()&&(c.requestUpdate(),await r.yieldToMain());let de=se.map(async G=>{if(b(G)){let v=n.GetNodeByPath(G),ne=J(G);if(ne.length>0){let _=K(v,ne);return _ instanceof Promise&&(_=await _),{seed:G,hitTargets:_}}}return {seed:G,hitTargets:[]}});if((await Promise.all(de)).forEach(({seed:G,hitTargets:v})=>{if(v&&v.length>0){V.push(...v);let ne=w.get(G)||0;N=Math.max(N,ne);}}),(V.length>0||se.length>1)&&(c.requestUpdate(),await r.yieldToMain(),s.get(g)!==m))return;let le=V.length>0;i.forEach(G=>{if(!q.has(G))if(le){let v=w.get(G)??0;S.has(v)||S.set(v,new Set),S.get(v).add(G),t.emit("node:stagnate",{path:G,type:2});}else p.add(G),L(G);}),d?x=w.get(d)??0:x=Math.min(...i.map(G=>w.get(G)??0));let ge=performance.now();t.emit("flow:start",{path:g}),t.callOnStart({path:g});let he=false,Pe=30,me=G=>{let{target:v,trigger:ne}=G,_=false,ee=false,k=n.GetNodeByPath(v),ae=k.calledBy,O=[],R=[],A=false;if(k.calledBy===1){A=true,_=true,c.flushPathSet.add(v);let M=z.get(v);M&&(O.push(...M),z.delete(v));}let E=(M,I)=>{let U=w.get(M)??0,Q=ae===1||ae===2;Q&&f.has(M)&&(f.delete(M),t.emit("node:revive",{path:M,triggerPath:v}));let H=0;if(!(f.has(M)||P.has(M)||p.has(M))){if(T.has(M))H=T.get(M)-1;else {if(U>x&&T.size>Pe){S.has(U)||S.set(U,new Set),S.get(U).add(M),t.emit("node:intercept",{path:M,type:7});return}let te=e.GetPrevDependency(M),X=0;for(let re of te){if(f.has(re))continue;(w.get(re)??0)>x&&X++;}H=X;}if(H<=0){let te=p.has(M),X=P.has(M);if(te||X){t.emit("node:intercept",{path:M,type:X?3:3.1});return}T.delete(M);let re=n.GetNodeByPath(M);Q?re.calledBy=2:re.calledBy!==2&&(re.calledBy=0),p.add(M),t.emit("node:release",{path:M,type:I,detail:{path:v}});}else T.set(M,H);}},B=(M=[])=>{if(s.get(g)!==m)return;if(M.length){let U={},Q=k.proxy;for(let H of M){let te=(H.args||[]).reduce((X,re)=>(X[re]=Q[re],X),{});try{let X=H.fn(te);X&&typeof X=="object"&&Object.assign(U,X);}catch(X){}}for(let H in U)if(H in k.state)Object.is(k.state[H],U[H])||(k.state[H]=U[H],O.push(H));else throw {error:`wrong effect in ${String(k.path)}`};_=true;}_&&c.flushPathSet.add(v);let I=(U=[])=>{if(s.get(g)!==m)return;U&&U.length>0&&(V.push(...U),N=Math.max(N,w.get(v)||0)),O.length=0,t.emit("node:success",{path:v,calledBy:k.calledBy}),f.add(v);let Q=e.GetNextDependency(v);(_||ee)&&e.GetAllNextDependency(v).forEach(oe=>D.add(oe));let H=n.GetNodeByPath(v),te=H.calledBy!==0,X=w.get(v)??0,re=h.has(X)||V.length>0;for(let Y of Q){let oe=w.get(Y)??0;if(re&&oe>=X){if(S.has(oe)||S.set(oe,new Set),S.get(oe).add(Y),t.emit("node:stagnate",{path:Y,type:2}),te){let fe=n.GetNodeByPath(Y);fe.calledBy=2,f.delete(Y);}continue}if(!te){if(f.has(Y)){t.emit("node:intercept",{path:Y,type:2});continue}if(P.has(Y)||p.has(Y)){t.emit("node:intercept",{path:Y,type:P.has(Y)?3:3.1});continue}}if(_||ee)E(Y,1);else if(T.has(Y))E(Y,2);else {let fe=w.get(Y);S.has(fe)||S.set(fe,new Set);let ve=S.get(fe);ve.has(Y)||(ve.add(Y),t.emit("node:stagnate",{path:Y,type:1}));}}P.delete(v),H.calledBy=0,(async()=>{if(!u){let Y=P.size,oe=p.size;t.emit("flow:fire",{path:v,type:1,detail:{active:Y,pending:oe,blocked:T.size}}),ue();}})();};if(b(v)&&O.length>0){let U=n.GetNodeByPath(v),Q=K(U,O);Q instanceof Promise||Q&&typeof Q.then=="function"?Q.then(I).catch(j):I(Q);}else I([]);},j=M=>{t.emit("node:error",{path:v,error:M});let I=Symbol("abort");s.set(g,I),p.clear(),T.clear(),P.clear(),t.callOnError(M);},W=(M,I)=>{let U=false;M!==k.state[I]&&(k.state[I]=M,_=true,O.push(String(I)),t.emit("node:bucket:success",{path:v,key:String(I),value:M,calledBy:k.calledBy}),k.notifyKeys.has(I)&&(U=true)),k.nodeBucket[I].isForceNotify()&&(ee=true),(U||ee)&&L(v);};t.emit("node:start",{path:v,calledBy:k.calledBy});try{let M=[];for(let I in k.nodeBucket){let U=k.nodeBucket[I];if(M.push(...U.getSideEffect()),A){t.emit("node:bucket:success",{path:v,key:String(I),value:k.state[I],calledBy:k.calledBy}),U.isForceNotify()&&(ee=!0),k.notifyKeys.has(I)&&L(v);continue}let Q=U.evaluate({affectKey:I,triggerPath:ne,GetRenderSchemaByPath:H=>n.GetNodeByPath(H).proxy,getStateByPath:H=>n.GetNodeByPath(H).state,GetToken:()=>m});if(Q instanceof Promise){let H=Q.then(te=>{s.get(g)===m&&W(te,I);});R.push(H);}else W(Q,I);}if(R.length>0)return Promise.all(R).then(()=>{B(M);}).catch(j);B(M);return}catch(M){j(M);}},ue=async()=>{if(s.get(g)!==m){u=false;return}u=true;let G=r.getIsFirstFrame(),v=0,ne=()=>a&&G?30:1/0,_=0,ee=ne();try{for(;s.get(g)===m;){let k=_>=ee,ae=r.shouldYield();if(k||ae){if(_>0&&(v++,(G||v%2===0)&&c.requestUpdate()),await r.yieldToMain(),s.get(g)!==m)break;_=0,G=r.getIsFirstFrame();}if(p.size>0&&P.size<10){for(let O of p){if(P.size>=10||_>=ee)break;let R=w.get(O)??0,A=e.GetPrevDependency(O),E=A.length>1;if((!a||E)&&R>x){p.delete(O);let W=A.filter(M=>D.has(M)&&!f.has(M)).length;T.set(O,W||0),t.emit("node:intercept",{path:O,type:W>0?4:5,detail:{targetLevel:R,currentLevel:x,pendingParentsCount:W}});continue}p.delete(O),P.add(O);let j=n.GetNodeByPath(O);if(t.emit("node:processing",{path:O,calledBy:j.calledBy}),me({target:O,trigger:d}),_++,_>=ee||r.shouldYield())break}if(p.size>0)continue}if(_<ee&&a&&T.size>0&&P.size<10){let O=!1,R=0;for(let[A,E]of T)if(E<=0){let B=w.get(A)??0,j=e.GetPrevDependency(A);if(B>x&&j.length>1)continue;if(T.delete(A),p.add(A),R++,O=!0,t.emit("node:release",{path:A,type:4}),R>=ee)break}if(R>0)continue;if(O){if(r.shouldYield()&&(await r.yieldToMain(),s.get(g)!==m))break;continue}}if(P.size===0&&p.size===0){if(V.length>0){let E=!1,B=x,j=Array.from(new Set(V));V.length=0;for(let W of j){let M=n.GetNodeByPath(W),I=$(M);if(I&&I.length>0){E=!0,M.calledBy=1,z.set(W,I),f.delete(W),T.delete(W),p.add(W);let U=w.get(W)??0;U<B&&(B=U),L(W),c.flushPathSet.add(W);}}if(E){if(B<x&&(x=B),c.requestUpdate(),r.shouldYield()&&(await r.yieldToMain(),s.get(g)!==m))break;continue}}let O=new Set;for(let E of S.keys())O.add(E);for(let[E]of T){let B=w.get(E)??0;B>x&&O.add(B);}let R=Array.from(O).sort((E,B)=>E-B),A=R[0];if(R.length>0&&A<=C){let E=R[0];if(E<=C){x=E;let B=S.get(E);B&&(B.forEach(j=>p.add(j)),S.delete(E));for(let[j]of T)(w.get(j)??0)===E&&(T.delete(j),p.add(j),t.emit("node:release",{path:j,type:3,detail:{level:E}}));continue}}else {S.forEach((E,B)=>{E.forEach(j=>{f.add(j),t.emit("node:intercept",{path:j,type:6});});}),S.clear();for(let[E]of T)f.add(E),t.emit("node:intercept",{path:E,type:6});T.clear();break}}p.size>0&&P.size>=10&&t.emit("flow:wait",{type:2});break}}finally{u=false;let k=P.size+T.size+p.size,ae=F.inFlightCount||0;if(c.requestUpdate(),k===0&&ae===0){if(s.get(g)===m&&!he){he=true,t.emit("flow:end",{type:1}),F.resetCounters();let O=performance.now();N=-1,t.emit("flow:success",{duration:(O-ge).toFixed(2.1)+"ms"}),Promise.resolve().then(()=>{t.callOnSuccess();});}}else {let O=k===0&&ae>0?3:1;t.emit("flow:wait",{type:O,detail:{nums:P.size,asyncNums:ae}});}}};ue();}}function Te(l){let{path:e,uid:n,type:t,meta:c,dirtySignal:r,state:s}=l,a=null,o=["path","uid","type","dependOn","nodeBucket"],i={path:e,uid:n,type:t,meta:c,dirtySignal:r,createView:(y={})=>{if(a&&Object.keys(y).length===0)return a;let m=new Proxy(y,{get(g,u){let f=u;return Reflect.has(g,u)?Reflect.get(g,u):f in l.state?l.state[f]:f in l?l[f]:c&&f in c?c[f]:Reflect.get(g,u)},set(g,u,f){let P=u;return P in l.state?(l.state[P]=f,true):Reflect.set(g,u,f)},ownKeys(g){let u=new Set([...Reflect.ownKeys(g),...Object.keys(s||{}),...Object.keys(c||{}),...o]);return Array.from(u)},getOwnPropertyDescriptor(g,u){let f=u;return Reflect.has(g,u)||s&&f in s||c&&f in c||o.includes(f)?{enumerable:true,configurable:true}:Reflect.getOwnPropertyDescriptor(g,u)}});return a=m,m}};return "children"in l?{...i,children:l.children}:{...i,state:l.state,nodeBucket:l.nodeBucket,notifyKeys:l.notifyKeys,dependOn:l.dependOn,calledBy:0,get proxy(){return a}}}var Ie=(l={frameQuota:12})=>{let e=performance.now(),n=0,t=false,c=()=>!!navigator?.scheduling?.isInputPending?.({includeContinuous:true});return {getIsFirstFrame:()=>t,reset(){e=performance.now(),n=0,t=true;},shouldYield(){let r=performance.now();return n++,!!((n>=5||t)&&(n=0,r-e>l.frameQuota||c()))},async yieldToMain(){return new Promise(r=>{De(()=>{e=performance.now(),n=0,t&&(t=false),r();});})}}},De=l=>{let{port1:e,port2:n}=new MessageChannel;e.onmessage=l,n.postMessage(null);};var Ce=(l,e,n,t,c)=>{let s=new Map,a=new Map,o=new Set,d=n,i=0;return {useEntangle:u=>{let{observer:f,target:P,triggerKeys:D,emit:T}=u;if(!D||D.length===0){t("entangle:warn",{path:f,type:"no_keys"});return}s.has(f)||s.set(f,new Map);let S=s.get(f);D.forEach(z=>{S.has(z)||S.set(z,[]),S.get(z).push({target:P,emit:T,count:0});});},updateEntangleLevel:()=>{let u=e();if(!(!u||u.size===0)){o.clear();for(let f of s.keys()){let P=u.get(f);P!==void 0?o.add(P):t("entangle:warn",{path:f,type:"no_level"});}}},Turnstile:{volatileLevels:o,get inFlightCount(){return i},get hasPendingGhosts(){for(let u of a.values())if(u.length>0)return true;return false},hasObserver:u=>s.has(u),getTriggerKeys:u=>{let f=s.get(u);return f?Array.from(f.keys()):[]},receiveGhosts:(u,f=[])=>{let P=u.path,D=[],T=s.get(P);if(!T||f.length===0)return D;let S=new Set;f.forEach(b=>{let K=T.get(b);K&&K.forEach($=>S.add($));});let z=[],V=b=>b instanceof Promise||b!==null&&typeof b=="object"&&typeof b.then=="function",F=b=>{let K=b.target;if(b.count>=100){t("entangle:blocked",{observer:P,target:K,count:b.count});return}let $=d(K),J=b.emit(u.proxy,$.proxy),h=N=>{N&&N.key!==void 0&&(b.count++,a.has(K)||a.set(K,[]),a.get(K).push({weight:1,...N}),D.push(K));};if(V(J)){i++;let N=(async()=>{try{let p=await J;h(p);}catch(p){t("node:error",{path:P,error:p}),c({path:P,error:p});}finally{i--;}})();z.push(N);}else h(J);},Z=Array.from(S);return (async()=>{for(let b=0;b<Z.length;b++)F(Z[b]),l.shouldYield()&&await l.yieldToMain();if(z.length>0)for(let K=0;K<z.length;K+=50){let $=z.slice(K,K+50);await Promise.all($),l.shouldYield()&&await l.yieldToMain();}return Array.from(new Set(D))})()},resolveGhosts:u=>{let f=u.path,P=a.get(f);if(!P||P.length===0)return [];let D=[],T=new Map;for(let S of P)T.has(S.key)||T.set(S.key,[]),T.get(S.key).push(S);for(let[S,z]of T.entries()){let V=u.state[S],F=z.filter(b=>b.delta!==void 0),Z=z.filter(b=>b.value!==void 0);if(Z.length>0&&(V=Z.reduce((K,$)=>($.weight??1)>=(K.weight??1)?$:K).value),F.length>0){let b=F.reduce(($,J)=>$+J.delta,0),K=(typeof V=="number"?V:0)+b;V=Math.max(0,parseFloat(K.toFixed(6)));}Object.is(u.state[S],V)||(u.state[S]=V,D.push(S));}return a.set(f,[]),D.length>0?D:[]},resetCounters:()=>{for(let u of s.values())for(let f of u.values())f.forEach(P=>P.count=0);}}}};function Be(l,e,n,t,c){let r=Ie(),s=0,a=new Map,o=new Map,d=new Map,i=false,y=new Set,g=async()=>{let h=Array.from(y);if(y.clear(),"signalTrigger"in c&&typeof c.signalTrigger=="function")for(let N of h){let p=F(N);c.signalTrigger(p.dirtySignal);}else "emit"in c&&c.emit(h);},u=()=>{i||(i=true,requestAnimationFrame(()=>{try{for(;y.size>0;)g();}finally{i=false;}}));},{useEntangle:f,updateEntangleLevel:P,Turnstile:D}=Ce(r,e.GetPathToLevelMap,F,t.emit,t.callOnError),T=Ke({useGreedy:l.useGreedy},e,{GetNodeByPath:F,Turnstile:D},t,{requestUpdate:u,flushPathSet:y},r),S=h=>{throw new Error(`[MeshFlow] Duplicate Path: ${h}`)},z=h=>{a.has(h.path)&&S(String(h.path));let N=++s,p={path:h.path,getNode:C=>F(C)},w=(C,L="value")=>{let q=C({...p}),se=F(h.path);if(n.createHistoryAction&&n.pushIntoHistory){let de=n.createHistoryAction([{path:h.path,value:se.state[L]},{path:h.path,value:q}],ie=>{let le=F(ie.path);le.state[L]=ie.value,b(ie.path);});n.pushIntoHistory(de);}se.state[L]=q,b(h.path);};h.notifyKeys.size==0&&h.notifyKeys.add("value");let x=Te({uid:N,type:h.type,path:h.path,state:h.state,meta:h.meta,nodeBucket:h.nodeBucket,dirtySignal:h.dirtySignal,notifyKeys:h.notifyKeys,dependOn:w});return a.set(x.path,N),o.set(N,x),x},V=h=>{a.has(h.path)&&S(String(h.path));let N=++s,p=Te({uid:N,type:h.type,path:h.path,state:{},meta:h,nodeBucket:{},children:h.children});return a.set(p.path,N),d.set(N,p),p};function F(h){let N=a.get(h),p=o.get(N);if(!p)throw Error("wrong ID");return p}function Z(h){let N=a.get(h);return d.get(N)}let b=h=>{if(!F(h))throw Error("Node undefined");y.add(h),u();let p=e.GetNextDependency(h);K(p,h);};function K(h,N){T(N,h);}return {registerNode:z,registerGroupNode:V,GetNodeByPath:F,GetGroupByPath:Z,notify:b,notifyAll:async()=>{Promise.resolve().then(async()=>{let h=e.GetDependencyOrder();if(!h||h.length===0)return;let N=h[0];try{T(null,N);}catch(p){throw t.callOnError(p),p}finally{u();}});},batchNotify:h=>{if(!h||h.length===0)return;if(n.createHistoryAction&&n.pushIntoHistory){let p=n.createHistoryAction([h.map(w=>({path:w.path,key:w.key,value:F(w.path).state[w.key]})),h.map(w=>({path:w.path,key:w.key,value:w.value}))],w=>{let x=new Set;w.forEach(C=>{let L=F(C.path);L.state[C.key]=C.value,y.add(C.path),x.add(C.path);}),u(),x.size>0&&T(null,Array.from(x));});n.pushIntoHistory(p);}let N=new Set;h.forEach(p=>{let w=F(p.path);w.state[p.key]=p.value,y.add(p.path),N.add(p.path);}),u(),N.size>0&&T(null,Array.from(N));},useEntangle:f,updateEntangleLevel:P,UITrigger:c,UidToNodeMap:o}}function ke(l,e){let n=false,t=false,c=new Map,r=new Map,s=new Map,a=new Map,o=[],d=new Map,{GetNextDependency:y,GetPrevDependency:m,GetAllPrevDependency:g,GetAllNextDependency:u,rebuildDirectDependencyMaps:f}=Ee(()=>c,()=>r,()=>a,()=>s),P={},D={};if(e.modules.useHistory){let R=e.modules.useHistory,A;R.isMeshModuleInited?A=R:A=R();let{Undo:E,Redo:B,PushIntoHistory:j,CreateHistoryAction:W,updateUndoSize:M,updateRedoSize:I}=A();P.pushIntoHistory=j,P.createHistoryAction=W,D={Undo:E,Redo:B,updateUndoSize:M,updateRedoSize:I};}let T=!!e.modules.useMeshRenderGate,S={};if(T){let R=e.modules.useMeshRenderGate.isMeshModuleInited,A=e.modules.useMeshRenderGate;S=(R?A:A())(()=>L);}let{onError:z,callOnError:V}=Ae(),{onSuccess:F,callOnSuccess:Z}=Ge(),{onStart:b,callOnStart:K}=Fe(),{emit:$,usePlugin:J}=Oe(),{SetTrace:h,useTrace:N}=we(),p=N();J(p);let w=T?{...S}:{...e.UITrigger},x=Be({useGreedy:e.config.useGreedy},{GetDependencyOrder:()=>o,GetAllNextDependency:u,GetNextDependency:y,GetPrevDependency:m,GetAllPrevDependency:g,GetPathToLevelMap:()=>d},P,{callOnError:V,callOnSuccess:Z,callOnStart:K,emit:$},w),{GetGroupByPath:C,GetNodeByPath:L,notifyAll:q,useEntangle:se,updateEntangleLevel:de}=x;T&&S.init();let ie={};if(e.modules.useInternalForm){let{uiSchema:R,GetFormData:A}=e.modules.useInternalForm(x,l);ie={uiSchema:R,GetFormData:A};}let le={};if(e.modules.useSchemaValidators){let{SetValidators:R}=e.modules.useSchemaValidators(L);le={SetValidators:R};}let{SetRule:ge,SetRules:he}=Ne(L,c,r),{SetStrategy:Pe}=Re(L),me=be(c),ue=()=>{let R=me();o=R.steps,d=R.levelMap,de();},G=()=>{t||(t=true,Promise.resolve().then(()=>{if(ue(),n){let{directNextMap:R,directPrevMap:A}=f(o.flat());s=R,a=A;}}).finally(()=>{t=false,n=false;}));};return {SetRule:(R,A,E,B)=>{ge(R,A,E,B),n=true,G();},SetRules:(R,A,E,B)=>{he(R,A,E,B),n=true,G();},SetStrategy:Pe,useEntangle:se,SetTrace:h,usePlugin:J,SetValue:(R,A,E)=>{L(R).dependOn(()=>E,A);},GetValue:(R,A="value")=>L(R)[A],SetValues:R=>{x.batchNotify(R);},GetGroupByPath:C,notifyAll:async()=>{ue(),await q();},GetAllDependency:()=>c,GetDependencyOrder:()=>o,historyExports:D,formExports:ie,validatorExports:le,batchRenderExport:S,hasRenderGate:()=>T,onError:z,onSuccess:F,onStart:b,scheduler:x}}var pe=new Map,Le=(l,e,n)=>{try{if(pe.has(l))throw Error("engineID repeated");let t=ke(e,{config:n.config||{useGreedy:!1},UITrigger:n.UITrigger,modules:n.modules??{},plugins:{}}),{SetRule:c,SetRules:r,SetValues:s,SetStrategy:a,SetValue:o,GetValue:d,usePlugin:i,useEntangle:y,GetGroupByPath:m,notifyAll:g,SetTrace:u,GetAllDependency:f,GetDependencyOrder:P,historyExports:D,formExports:T,validatorExports:S,batchRenderExport:z,hasRenderGate:V,onError:F,onSuccess:Z,onStart:b,scheduler:K}=t,$={config:{SetRule:c,SetRules:r,SetStrategy:a,notifyAll:g,SetTrace:u,usePlugin:i,hasRenderGate:V,useEntangle:y},data:{SetValue:o,GetValue:d,SetValues:s,GetGroupByPath:m},dependency:{GetAllDependency:f,GetDependencyOrder:P},hooks:{onError:F,onSuccess:Z,onStart:b}},J=(p,w,x)=>{!w||typeof w!="object"||Object.keys(w).forEach(C=>{let L=w[C];if(typeof L=="object"&&L!==null)p[C]=p[C]||{},J(p[C],L,x);else if(typeof L=="function"){let q=C;if(q==="useMeshRenderGate")q="render";else if(q.startsWith("use")){let se=q.slice(3);q=se.charAt(0).toLowerCase()+se.slice(1);}C==="useHistory"&&x.exports.history&&Object.keys(x.exports.history).length>0?p[q]=x.exports.history:C==="useInternalForm"&&x.exports.form&&Object.keys(x.exports.form).length>0?p[q]=x.exports.form:C==="useSchemaValidators"&&x.exports.validator&&Object.keys(x.exports.validator).length>0?p[q]=x.exports.validator:C==="useMeshRenderGate"&&x.exports.render?p[q]=x.exports.render:p[q]=L(x.scheduler,x.Schema);}});},h={...$,modules:{}},N=n.modules;return N&&J(h.modules,N,{scheduler:K,Schema:e,exports:{history:D,form:T,validator:S,render:z}}),pe.set(l,h),h}catch(t){throw Error(t)}},Gt=()=>(l,e,n)=>Ve(l,e,n),Ot=l=>{let e=pe.get(l);if(!e)throw Error(`[MeshFlow] Engine ID "${String(l)}" not found. Ensure it is initialized with useMeshFlow.`);return e},Ft=l=>{pe.delete(l);},Ve=Le;exports.TriggerCause=Se;exports.deleteEngine=Ft;exports.useEngine=Ot;exports.useEngineManager=Le;exports.useMeshFlow=Ve;exports.useMeshFlowDefiner=Gt;exports.useScheduler=Be;
1
+ 'use strict';var Me=class{computedRules=[];store={OR:(e,n)=>{let t,o,r=this.computedRules;for(let s=0;s<r.length;s++){let a=r[s],i=a.logic(e);if(i instanceof Promise)return (async()=>{let l=await i;if(a.entityId==="__base__"?o=l:l&&(t=l),typeof t>"u")for(let y=s+1;y<r.length;y++){let m=r[y],g=m.logic(e),u=g instanceof Promise?await g:g;if(m.entityId==="__base__"){o=u;continue}if(u){t=m.value;break}}return typeof t>"u"&&(t=o),{res:t,version:n}})();let d=i;if(a.entityId==="__base__"){o=d;continue}if(d){t=a.value;break}}return typeof t>"u"&&(t=o),{res:t,version:n}},PRIORITY:(e,n)=>{let t,o=this.computedRules;for(let r=0;r<o.length;r++){let a=o[r].logic(e);if(a instanceof Promise)return (async()=>{let i=await a;if(i!==void 0)return {res:i,version:n};for(let d=r+1;d<o.length;d++){let l=o[d].logic(e),y=l instanceof Promise?await l:l;if(y!==void 0)return {res:y,version:n}}return {res:void 0,version:n}})();if(a!==void 0)return {res:a,version:n}}return {res:t,version:n}}};CurrentStrategy=()=>{};CurrentStrategyType="PRIORITY";getRules=()=>{};constructor(e){this.getRules=e,this.CurrentStrategy=this.store.PRIORITY,this.updateComputedRules();}updateComputedRules(){let e=this.getRules();this.CurrentStrategyType==="PRIORITY"?this.computedRules=Array.from(e.values()).map(n=>Array.from(n)).flat().sort((n,t)=>t.priority-n.priority):this.computedRules=Array.from(e.values()).map(n=>Array.from(n)).flat();}setStrategy(e){this.CurrentStrategy=this.store[e],this.updateComputedRules();}evaluate(e,n){return this.CurrentStrategy(e,n)}},ye=class{path;strategy;contract;rules=new Map;isValue=false;id=0;cache=void 0;pendingPromise=null;version=0;deps=new Map;_forceNotify=false;promiseToken=null;useCache=true;effectArray=[];constructor(e,n,t){let o=()=>this.rules;this.strategy=new Me(o),this.path=t,this.isValue=n==="value",this.contract=this.inferType(e),this.cache=e,this.setRule({priority:0,entityId:"__base__",logic:()=>e});}setUseCache(e){this.useCache=e;}forceNotify(){this._forceNotify=true;}isForceNotify(){return this._forceNotify}setStrategy(e){this.strategy.setStrategy(e);}setDefaultRule(e){let n=new Set;n.add(e),this.rules.set("defaultRules",n);}setRules(e,n){n&&this.updateDeps(n);let t=++this.id,o={...e,entityId:t};for(let r of e.triggerPaths)this.rules.has(r)||this.rules.set(r,new Set),this.rules.get(r).add(o);return this.strategy.updateComputedRules(),()=>{for(let r of e.triggerPaths){let s=this.rules.get(r);s&&(s.delete(o),s.size===0&&(this.rules.delete(r),this.deps.delete(r)));}this.strategy.updateComputedRules();}}updateDeps(e){for(let[n,t]of e)this.deps.set(n,t);}setRule(e,n){if(n&&this.updateDeps(n),typeof e.entityId=="string"){this.setDefaultRule(e);return}let t=++this.id,o={...e,entityId:t};if(e)for(let r of e.triggerPaths)this.rules.has(r)||this.rules.set(r,new Set),this.rules.get(r).add(o);return this.strategy.updateComputedRules(),()=>{for(let r of e.triggerPaths){let s=this.rules.get(r);s&&(s.delete(o),s.size===0&&(this.rules.delete(r),this.deps.delete(r)));}this.strategy.updateComputedRules();}}setSideEffect(e){this.effectArray.push(e);}getSideEffect(){return [...this.effectArray]}evaluate(e){let n=null;if(e.GetToken&&(n=e.GetToken()),this.pendingPromise&&this.promiseToken!==n&&(this.pendingPromise=null,this.promiseToken=null),this.pendingPromise)return this.pendingPromise;let t=false;if(typeof e.triggerPath=="string"){t=true;let s=this.deps.get(e.triggerPath),a=e.getStateByPath(e.triggerPath);if(typeof s=="object"||typeof a=="object")t=false;else {let i=Array.from(this.deps.keys());for(let d of i){let l=this.deps.get(d),y=e.getStateByPath(d);if(l!==y){t=false;break}}}}if(t&&this.useCache)return this.cache;this.promiseToken=n;let o=++this.version,r=this.strategy.evaluate(e,o);if(!(r instanceof Promise)){let{res:s,version:a}=r;return this.finalizeSync(s,a,e,n)}return this.pendingPromise=(async()=>{try{let{res:s,version:a}=await r;return this.finalizeSync(s,a,e,n)}catch(s){throw {path:this.path,error:s}}finally{this.promiseToken===n&&(this.pendingPromise=null,this.promiseToken=null);}})(),this.pendingPromise}finalizeSync(e,n,t,o){return o!==this.promiseToken||n<this.version?this.cache:(this.cache=e,this.deps.forEach((r,s)=>{this.deps.set(s,t.GetRenderSchemaByPath(s));}),e)}inferType(e){return Array.isArray(e)?"array":typeof e}};var xe=(c,e,n)=>{let o=r=>{let s=n.triggerPaths.map(d=>{let l=r.GetRenderSchemaByPath(d),y={};return n.triggerKeys.forEach(m=>{y[m]=l[m];}),y}),a=Object.create(null);return Object.defineProperty(a,"triggerTargets",{get:()=>s}),Object.defineProperty(a,"affectedTatget",{get:()=>r.GetRenderSchemaByPath(c)[e]}),n.logic({slot:a})};return {value:n.value,targetPath:c,triggerPaths:n.triggerPaths,priority:n.priority??10,logic:o}},Ne=(c,e,n)=>{if(!c)throw Error("");let t=c,o=(a,i)=>{e.has(a)||e.set(a,new Set),e.get(a).add(i),n.has(i)||n.set(i,new Set),n.get(i).add(a);};return {SetRule:(a,i,d,l)=>{let y=t(i),m=l.triggerKeys||[];m.length==0&&m.push("value");let g=xe(i,d,{...l,triggerPaths:[a],triggerKeys:m}),u=[a].map(f=>[f,t(f).state.value]);if(o(a,i),y.nodeBucket[d])y.nodeBucket[d].setRule(g,u),l.effect&&y.nodeBucket[d].setSideEffect({fn:l.effect,args:l.effectArgs?l.effectArgs:[d]});else {let f=y.meta[d],P=new ye(f,d,i);P.setRule(g,u),l.effect&&P.setSideEffect({fn:l.effect,args:l.effectArgs?l.effectArgs:[d]}),y.nodeBucket[d]=P;}y.state[d]=y.meta[d],l.forceNotify&&y.nodeBucket[d].forceNotify(),l.cacheStrategy=="none"&&y.nodeBucket[d].setUseCache(false);},SetRules:(a,i,d,l)=>{let y=t(i);for(let f of a)o(f,i);let m=l.triggerKeys||[];m.length==0&&m.push("value");let g=xe(i,d,{...l,triggerPaths:a,triggerKeys:m}),u=a.map(f=>[f,t(f).state.value]);if(y.nodeBucket[d])y.nodeBucket[d].setRules(g,u),l.effect&&y.nodeBucket[d].setSideEffect({fn:l.effect,args:l.effectArgs?l.effectArgs:[d]});else {let f=y.meta[d],P=new ye(f,d,i);P.setRules(g,u),l.effect&&P.setSideEffect({fn:l.effect,args:l.effectArgs?l.effectArgs:[d]}),y.nodeBucket[d]=P;}y.state[d]=y.meta[d],l.forceNotify&&y.nodeBucket[d].forceNotify(),l.cacheStrategy=="none"&&y.nodeBucket[d].setUseCache(false);}}};var Re=c=>{let e=c||void 0;if(!e)throw Error("");return {SetStrategy:(t,o,r)=>{e(t).nodeBucket[o].setStrategy(r);}}};function we(){let c=new Map,e=new Map,n=new Set,t=(s,a)=>{c.set(s,a);let i=e.get(s);i&&i(a);};return {SetTrace:(s,a)=>{e.set(s,a);let i=c.get(s)||"idle";return a(i),{cancel:()=>{e.delete(s);}}},useTrace:()=>({apply:a=>{a.on("flow:start",()=>{n.forEach(i=>t(i,"idle")),n.clear(),c.clear();}),a.on("node:release",({path:i,type:d})=>{(d==1||d==2)&&(n.add(i),t(i,"pending"));}),a.on("node:pending",({path:i})=>{n.add(i),(!c.has(i)||c.get(i)==="idle")&&t(i,"pending");}),a.on("node:start",({path:i})=>{n.add(i),t(i,"calculating");}),a.on("node:success",({path:i})=>{t(i,"calculated");}),a.on("node:intercept",({path:i,type:d})=>{d==3&&t(i,"calculating"),d==6&&t(i,"idle");}),a.on("node:stagnate",({path:i})=>{t(i,"pending");}),a.on("node:error",({path:i})=>t(i,"error"));}})}}function Ee(c,e,n,t){let o=l=>{let y=c(),m=e(),g=new Set;return y.get(l)?.forEach(u=>g.add(u)),g.size===0?[]:Array.from(g).filter(u=>{let f=m.get(u)||new Set;return !Array.from(f).some(T=>g.has(T))})};return {GetNextDependency:l=>{let y=t();return Array.from(y.get(l)||[])},GetPrevDependency:l=>{let y=n();return Array.from(y.get(l)||[])},GetAllPrevDependency:l=>{let y=e();return Array.from(y.get(l)||[])},GetAllNextDependency:l=>{let y=c();return Array.from(y.get(l)||[])},rebuildDirectDependencyMaps:l=>{let y=new Map,m=new Map;for(let g of l){let u=o(g);y.set(g,new Set(u));for(let f of u)m.has(f)||m.set(f,new Set),m.get(f).add(g);}return {directNextMap:y,directPrevMap:m}}}}function be(c){let e=t=>{let o=[],r=[],s=new Map,a=t.size,i=0,d=0;for(let[l,y]of t)y===0&&r.push(l);if(r.length===0&&a>0)throw Error("Circular dependency detected");for(;r.length>0;){o.push([...r]);let l=[];for(let y of r){i++,s.set(y,d);let m=c.get(y);if(m)for(let g of m){let u=t.get(g)-1;t.set(g,u),u===0&&l.push(g);}}r=l,d++;}if(i<a)throw Error("Circular dependency detected");return {steps:o,levelMap:s}};return ()=>{let t=new Map;for(let o of c.keys()){let r=Array.from(c.get(o)||[]);t.has(o)||t.set(o,0);for(let s of r){let a=t.get(s)||0;t.set(s,++a);}}return e(t)}}var ce=()=>{let c=[];return {on:e=>(c.push(e),()=>{let n=c.indexOf(e);n>-1&&c.splice(n,1);}),call:e=>c.forEach(n=>{n(e);})}};function Ae(){let{on:c,call:e}=ce();return {onError:c,callOnError:e}}function Ge(){let{on:c,call:e}=ce();return {onSuccess:c,callOnSuccess:e}}var Oe=()=>{let c=new Set,e=new Map,n=(r,s)=>{e.get(r)?.forEach(a=>a(s));},t=(r,s)=>(e.has(r)||e.set(r,new Set),e.get(r).add(s),()=>e.get(r).delete(s));return {usePlugin:r=>{let s=new Set,a=(i,d)=>{let l=t(i,d);return s.add(l),l};return r.apply({on:a}),c.add(r),()=>{s.forEach(i=>i()),s.clear(),c.delete(r);}},emit:n}};function Fe(){let{on:c,call:e}=ce();return {onStart:c,callOnStart:e}}var Se=(t=>(t[t.CAUSALITY=0]="CAUSALITY",t[t.INVERSION=1]="INVERSION",t[t.REPERCUSSION=2]="REPERCUSSION",t))(Se||{});function Ke(c,e,n,t,o,r){let s=new Map,a=c.useGreedy;return async(d,l)=>{let m=Symbol("token"),g=d||"__NOTIFY_ALL__";s.set(g,m);let u=false;r.reset();let f=new Set,P=new Set,D=new Set;l.forEach(G=>{D.add(G),e.GetAllNextDependency(G).forEach(v=>D.add(v));});let T=new Map,S=new Map,z=new Map,V=[],F=n.Turnstile,Z=F.volatileLevels.size>0,b=Z?F.hasObserver:()=>false,K=Z?F.receiveGhosts:()=>[],$=Z?F.resolveGhosts:()=>[],J=Z?F.getTriggerKeys:()=>[],p=F?.volatileLevels||new Set,N=-1,h=new Set,w=e.GetPathToLevelMap(),x=0,C=0,L=G=>{e.GetAllNextDependency(G).forEach(ne=>{let _=w.get(ne)||0;_>C&&(C=_);});},q=new Set;d&&(f.add(d),q.add(d),L(d),o.flushPathSet.add(d));let se=d?[d]:l;r.shouldYield()&&(o.requestUpdate(),await r.yieldToMain());let de=se.map(async G=>{if(b(G)){let v=n.GetNodeByPath(G),ne=J(G);if(ne.length>0){let _=K(v,ne);return _ instanceof Promise&&(_=await _),{seed:G,hitTargets:_}}}return {seed:G,hitTargets:[]}});if((await Promise.all(de)).forEach(({seed:G,hitTargets:v})=>{if(v&&v.length>0){V.push(...v);let ne=w.get(G)||0;N=Math.max(N,ne);}}),(V.length>0||se.length>1)&&(o.requestUpdate(),await r.yieldToMain(),s.get(g)!==m))return;let le=V.length>0;l.forEach(G=>{if(!q.has(G))if(le){let v=w.get(G)??0;S.has(v)||S.set(v,new Set),S.get(v).add(G),t.emit("node:stagnate",{path:G,type:2});}else h.add(G),L(G);}),d?x=w.get(d)??0:x=Math.min(...l.map(G=>w.get(G)??0));let ge=performance.now();t.emit("flow:start",{path:g}),t.callOnStart({path:g});let he=false,Pe=30,me=G=>{let{target:v,trigger:ne}=G,_=false,ee=false,k=n.GetNodeByPath(v),ae=k.calledBy,O=[],R=[],A=false;if(k.calledBy===1){A=true,_=true,o.flushPathSet.add(v);let M=z.get(v);M&&(O.push(...M),z.delete(v));}let E=(M,I)=>{let U=w.get(M)??0,Q=ae===1||ae===2;Q&&f.has(M)&&(f.delete(M),t.emit("node:revive",{path:M,triggerPath:v}));let H=0;if(!(f.has(M)||P.has(M)||h.has(M))){if(T.has(M))H=T.get(M)-1;else {if(U>x&&T.size>Pe){S.has(U)||S.set(U,new Set),S.get(U).add(M),t.emit("node:intercept",{path:M,type:7});return}let te=e.GetPrevDependency(M),X=0;for(let re of te){if(f.has(re))continue;(w.get(re)??0)>x&&X++;}H=X;}if(H<=0){let te=h.has(M),X=P.has(M);if(te||X){t.emit("node:intercept",{path:M,type:X?3:3.1});return}T.delete(M);let re=n.GetNodeByPath(M);Q?re.calledBy=2:re.calledBy!==2&&(re.calledBy=0),h.add(M),t.emit("node:release",{path:M,type:I,detail:{path:v}});}else T.set(M,H);}},B=(M=[])=>{if(s.get(g)!==m)return;if(M.length){let U={},Q=k.proxy;for(let H of M){let te=(H.args||[]).reduce((X,re)=>(X[re]=Q[re],X),{});try{let X=H.fn(te);X&&typeof X=="object"&&Object.assign(U,X);}catch(X){}}for(let H in U)if(H in k.state)Object.is(k.state[H],U[H])||(k.state[H]=U[H],O.push(H));else throw {error:`wrong effect in ${String(k.path)}`};_=true;}_&&o.flushPathSet.add(v);let I=(U=[])=>{if(s.get(g)!==m)return;U&&U.length>0&&(V.push(...U),N=Math.max(N,w.get(v)||0)),O.length=0,t.emit("node:success",{path:v,calledBy:k.calledBy}),f.add(v);let Q=e.GetNextDependency(v);(_||ee)&&e.GetAllNextDependency(v).forEach(oe=>D.add(oe));let H=n.GetNodeByPath(v),te=H.calledBy!==0,X=w.get(v)??0,re=p.has(X)||V.length>0;for(let Y of Q){let oe=w.get(Y)??0;if(re&&oe>=X){if(S.has(oe)||S.set(oe,new Set),S.get(oe).add(Y),t.emit("node:stagnate",{path:Y,type:2}),te){let fe=n.GetNodeByPath(Y);fe.calledBy=2,f.delete(Y);}continue}if(!te){if(f.has(Y)){t.emit("node:intercept",{path:Y,type:2});continue}if(P.has(Y)||h.has(Y)){t.emit("node:intercept",{path:Y,type:P.has(Y)?3:3.1});continue}}if(_||ee)E(Y,1);else if(T.has(Y))E(Y,2);else {let fe=w.get(Y);S.has(fe)||S.set(fe,new Set);let ve=S.get(fe);ve.has(Y)||(ve.add(Y),t.emit("node:stagnate",{path:Y,type:1}));}}P.delete(v),H.calledBy=0,(async()=>{if(!u){let Y=P.size,oe=h.size;t.emit("flow:fire",{path:v,type:1,detail:{active:Y,pending:oe,blocked:T.size}}),ue();}})();};if(b(v)&&O.length>0){let U=n.GetNodeByPath(v),Q=K(U,O);Q instanceof Promise||Q&&typeof Q.then=="function"?Q.then(I).catch(j):I(Q);}else I([]);},j=M=>{t.emit("node:error",{path:v,error:M});let I=Symbol("abort");s.set(g,I),h.clear(),T.clear(),P.clear(),t.callOnError(M);},W=(M,I)=>{let U=false;M!==k.state[I]&&(k.state[I]=M,_=true,O.push(String(I)),t.emit("node:bucket:success",{path:v,key:String(I),value:M,calledBy:k.calledBy}),k.notifyKeys.has(I)&&(U=true)),k.nodeBucket[I].isForceNotify()&&(ee=true),(U||ee)&&L(v);};t.emit("node:start",{path:v,calledBy:k.calledBy});try{let M=[];for(let I in k.nodeBucket){let U=k.nodeBucket[I];if(M.push(...U.getSideEffect()),A){t.emit("node:bucket:success",{path:v,key:String(I),value:k.state[I],calledBy:k.calledBy}),U.isForceNotify()&&(ee=!0),k.notifyKeys.has(I)&&L(v);continue}let Q=U.evaluate({affectKey:I,triggerPath:ne,GetRenderSchemaByPath:H=>n.GetNodeByPath(H).proxy,getStateByPath:H=>n.GetNodeByPath(H).state,GetToken:()=>m});if(Q instanceof Promise){let H=Q.then(te=>{s.get(g)===m&&W(te,I);});R.push(H);}else W(Q,I);}if(R.length>0)return Promise.all(R).then(()=>{B(M);}).catch(j);B(M);return}catch(M){j(M);}},ue=async()=>{if(s.get(g)!==m){u=false;return}u=true;let G=r.getIsFirstFrame(),v=0,ne=()=>a&&G?30:1/0,_=0,ee=ne();try{for(;s.get(g)===m;){let k=_>=ee,ae=r.shouldYield();if(k||ae){if(_>0&&(v++,(G||v%2===0)&&o.requestUpdate()),await r.yieldToMain(),s.get(g)!==m)break;_=0,G=r.getIsFirstFrame();}if(h.size>0&&P.size<10){for(let O of h){if(P.size>=10||_>=ee)break;let R=w.get(O)??0,A=e.GetPrevDependency(O),E=A.length>1;if((!a||E)&&R>x){h.delete(O);let W=A.filter(M=>D.has(M)&&!f.has(M)).length;T.set(O,W||0),t.emit("node:intercept",{path:O,type:W>0?4:5,detail:{targetLevel:R,currentLevel:x,pendingParentsCount:W}});continue}h.delete(O),P.add(O);let j=n.GetNodeByPath(O);if(t.emit("node:processing",{path:O,calledBy:j.calledBy}),me({target:O,trigger:d}),_++,_>=ee||r.shouldYield())break}if(h.size>0)continue}if(_<ee&&a&&T.size>0&&P.size<10){let O=!1,R=0;for(let[A,E]of T)if(E<=0){let B=w.get(A)??0,j=e.GetPrevDependency(A);if(B>x&&j.length>1)continue;if(T.delete(A),h.add(A),R++,O=!0,t.emit("node:release",{path:A,type:4}),R>=ee)break}if(R>0)continue;if(O){if(r.shouldYield()&&(await r.yieldToMain(),s.get(g)!==m))break;continue}}if(P.size===0&&h.size===0){if(V.length>0){let E=!1,B=x,j=Array.from(new Set(V));V.length=0;for(let W of j){let M=n.GetNodeByPath(W),I=$(M);if(I&&I.length>0){E=!0,M.calledBy=1,z.set(W,I),f.delete(W),T.delete(W),h.add(W);let U=w.get(W)??0;U<B&&(B=U),L(W),o.flushPathSet.add(W);}}if(E){if(B<x&&(x=B),o.requestUpdate(),r.shouldYield()&&(await r.yieldToMain(),s.get(g)!==m))break;continue}}let O=new Set;for(let E of S.keys())O.add(E);for(let[E]of T){let B=w.get(E)??0;B>x&&O.add(B);}let R=Array.from(O).sort((E,B)=>E-B),A=R[0];if(R.length>0&&A<=C){let E=R[0];if(E<=C){x=E;let B=S.get(E);B&&(B.forEach(j=>h.add(j)),S.delete(E));for(let[j]of T)(w.get(j)??0)===E&&(T.delete(j),h.add(j),t.emit("node:release",{path:j,type:3,detail:{level:E}}));continue}}else {S.forEach((E,B)=>{E.forEach(j=>{f.add(j),t.emit("node:intercept",{path:j,type:6});});}),S.clear();for(let[E]of T)f.add(E),t.emit("node:intercept",{path:E,type:6});T.clear();break}}h.size>0&&P.size>=10&&t.emit("flow:wait",{type:2});break}}finally{u=false;let k=P.size+T.size+h.size,ae=F.inFlightCount||0;if(o.requestUpdate(),k===0&&ae===0){if(s.get(g)===m&&!he){he=true,t.emit("flow:end",{type:1}),F.resetCounters();let O=performance.now();N=-1,t.emit("flow:success",{duration:(O-ge).toFixed(2.1)+"ms"}),Promise.resolve().then(()=>{t.callOnSuccess();});}}else {let O=k===0&&ae>0?3:1;t.emit("flow:wait",{type:O,detail:{nums:P.size,asyncNums:ae}});}}};ue();}}function Te(c){let{path:e,uid:n,type:t,meta:o,dirtySignal:r,state:s}=c,a=null,i=["path","uid","type","dependOn","nodeBucket"],l={path:e,uid:n,type:t,meta:o,dirtySignal:r,createView:(y={})=>{if(a&&Object.keys(y).length===0)return a;let m=new Proxy(y,{get(g,u){let f=u;return Reflect.has(g,u)?Reflect.get(g,u):f in c.state?c.state[f]:f in c?c[f]:o&&f in o?o[f]:Reflect.get(g,u)},set(g,u,f){let P=u;return P in c.state?(c.state[P]=f,true):Reflect.set(g,u,f)},ownKeys(g){let u=new Set([...Reflect.ownKeys(g),...Object.keys(s||{}),...Object.keys(o||{}),...i]);return Array.from(u)},getOwnPropertyDescriptor(g,u){let f=u;return Reflect.has(g,u)||s&&f in s||o&&f in o||i.includes(f)?{enumerable:true,configurable:true}:Reflect.getOwnPropertyDescriptor(g,u)}});return a=m,m}};return "children"in c?{...l,children:c.children}:{...l,state:c.state,nodeBucket:c.nodeBucket,notifyKeys:c.notifyKeys,dependOn:c.dependOn,calledBy:0,get proxy(){return a}}}var Ie=(c={frameQuota:12})=>{let e=performance.now(),n=0,t=false,o=()=>!!navigator?.scheduling?.isInputPending?.({includeContinuous:true});return {getIsFirstFrame:()=>t,reset(){e=performance.now(),n=0,t=true;},shouldYield(){let r=performance.now();return n++,!!((n>=5||t)&&(n=0,r-e>c.frameQuota||o()))},async yieldToMain(){return new Promise(r=>{De(()=>{e=performance.now(),n=0,t&&(t=false),r();});})}}},De=c=>{let{port1:e,port2:n}=new MessageChannel;e.onmessage=c,n.postMessage(null);};var Ce=(c,e,n,t,o)=>{let s=new Map,a=new Map,i=new Set,d=n,l=0;return {useEntangle:u=>{let{observer:f,target:P,triggerKeys:D,emit:T}=u;if(!D||D.length===0){t("entangle:warn",{path:f,type:"no_keys"});return}s.has(f)||s.set(f,new Map);let S=s.get(f);D.forEach(z=>{S.has(z)||S.set(z,[]),S.get(z).push({target:P,emit:T,count:0});});},updateEntangleLevel:()=>{let u=e();if(!(!u||u.size===0)){i.clear();for(let f of s.keys()){let P=u.get(f);P!==void 0?i.add(P):t("entangle:warn",{path:f,type:"no_level"});}}},Turnstile:{volatileLevels:i,get inFlightCount(){return l},get hasPendingGhosts(){for(let u of a.values())if(u.length>0)return true;return false},hasObserver:u=>s.has(u),getTriggerKeys:u=>{let f=s.get(u);return f?Array.from(f.keys()):[]},receiveGhosts:(u,f=[])=>{let P=u.path,D=[],T=s.get(P);if(!T||f.length===0)return D;let S=new Set;f.forEach(b=>{let K=T.get(b);K&&K.forEach($=>S.add($));});let z=[],V=b=>b instanceof Promise||b!==null&&typeof b=="object"&&typeof b.then=="function",F=b=>{let K=b.target;if(b.count>=100){t("entangle:blocked",{observer:P,target:K,count:b.count});return}let $=d(K),J=b.emit(u.proxy,$.proxy),p=N=>{N&&N.key!==void 0&&(b.count++,a.has(K)||a.set(K,[]),a.get(K).push({weight:1,...N}),D.push(K));};if(V(J)){l++;let N=(async()=>{try{let h=await J;p(h);}catch(h){t("node:error",{path:P,error:h}),o({path:P,error:h});}finally{l--;}})();z.push(N);}else p(J);},Z=Array.from(S);return (async()=>{for(let b=0;b<Z.length;b++)F(Z[b]),c.shouldYield()&&await c.yieldToMain();if(z.length>0)for(let K=0;K<z.length;K+=50){let $=z.slice(K,K+50);await Promise.all($),c.shouldYield()&&await c.yieldToMain();}return Array.from(new Set(D))})()},resolveGhosts:u=>{let f=u.path,P=a.get(f);if(!P||P.length===0)return [];let D=[],T=new Map;for(let S of P)T.has(S.key)||T.set(S.key,[]),T.get(S.key).push(S);for(let[S,z]of T.entries()){let V=u.state[S],F=z.filter(b=>b.delta!==void 0),Z=z.filter(b=>b.value!==void 0);if(Z.length>0&&(V=Z.reduce((K,$)=>($.weight??1)>=(K.weight??1)?$:K).value),F.length>0){let b=F.reduce(($,J)=>$+J.delta,0),K=(typeof V=="number"?V:0)+b;V=Math.max(0,parseFloat(K.toFixed(6)));}Object.is(u.state[S],V)||(u.state[S]=V,D.push(S));}return a.set(f,[]),D.length>0?D:[]},resetCounters:()=>{for(let u of s.values())for(let f of u.values())f.forEach(P=>P.count=0);}}}};function Be(c,e,n,t,o){let r=Ie(),s=0,a=new Map,i=new Map,d=new Map,l=false,y=new Set,g=async()=>{let p=Array.from(y);if(y.clear(),"signalTrigger"in o&&typeof o.signalTrigger=="function")for(let N of p){let h=F(N);o.signalTrigger(h.dirtySignal);}else "emit"in o&&o.emit(p);},u=()=>{l||(l=true,requestAnimationFrame(()=>{try{for(;y.size>0;)g();}finally{l=false;}}));},{useEntangle:f,updateEntangleLevel:P,Turnstile:D}=Ce(r,e.GetPathToLevelMap,F,t.emit,t.callOnError),T=Ke({useGreedy:c.useGreedy},e,{GetNodeByPath:F,Turnstile:D},t,{requestUpdate:u,flushPathSet:y},r),S=p=>{throw new Error(`[MeshFlow] Duplicate Path: ${p}`)},z=p=>{a.has(p.path)&&S(String(p.path));let N=++s,h={path:p.path,getNode:C=>F(C)},w=(C,L="value")=>{let q=C({...h}),se=F(p.path);if(n.createHistoryAction&&n.pushIntoHistory){let de=n.createHistoryAction([{path:p.path,value:se.state[L]},{path:p.path,value:q}],ie=>{let le=F(ie.path);le.state[L]=ie.value,b(ie.path);});n.pushIntoHistory(de);}se.state[L]=q,b(p.path);};p.notifyKeys.size==0&&p.notifyKeys.add("value");let x=Te({uid:N,type:p.type,path:p.path,state:p.state,meta:p.meta,nodeBucket:p.nodeBucket,dirtySignal:"signalCreator"in o?o.signalCreator():void 0,notifyKeys:p.notifyKeys,dependOn:w});return a.set(x.path,N),i.set(N,x),x},V=p=>{a.has(p.path)&&S(String(p.path));let N=++s,h=Te({uid:N,type:p.type,path:p.path,state:{},meta:p,nodeBucket:{},children:p.children});return a.set(h.path,N),d.set(N,h),h};function F(p){let N=a.get(p),h=i.get(N);if(!h)throw Error("wrong ID");return h}function Z(p){let N=a.get(p);return d.get(N)}let b=p=>{if(!F(p))throw Error("Node undefined");y.add(p),u();let h=e.GetNextDependency(p);K(h,p);};function K(p,N){T(N,p);}return {registerNode:z,registerGroupNode:V,GetNodeByPath:F,GetGroupByPath:Z,notify:b,notifyAll:async()=>{Promise.resolve().then(async()=>{let p=e.GetDependencyOrder();if(!p||p.length===0)return;let N=p[0];try{T(null,N);}catch(h){throw t.callOnError(h),h}finally{u();}});},batchNotify:p=>{if(!p||p.length===0)return;if(n.createHistoryAction&&n.pushIntoHistory){let h=n.createHistoryAction([p.map(w=>({path:w.path,key:w.key,value:F(w.path).state[w.key]})),p.map(w=>({path:w.path,key:w.key,value:w.value}))],w=>{let x=new Set;w.forEach(C=>{let L=F(C.path);L.state[C.key]=C.value,y.add(C.path),x.add(C.path);}),u(),x.size>0&&T(null,Array.from(x));});n.pushIntoHistory(h);}let N=new Set;p.forEach(h=>{let w=F(h.path);w.state[h.key]=h.value,y.add(h.path),N.add(h.path);}),u(),N.size>0&&T(null,Array.from(N));},useEntangle:f,updateEntangleLevel:P,UITrigger:o,UidToNodeMap:i}}function ke(c,e){let n=false,t=false,o=new Map,r=new Map,s=new Map,a=new Map,i=[],d=new Map,{GetNextDependency:y,GetPrevDependency:m,GetAllPrevDependency:g,GetAllNextDependency:u,rebuildDirectDependencyMaps:f}=Ee(()=>o,()=>r,()=>a,()=>s),P={},D={};if(e.modules.useHistory){let R=e.modules.useHistory,A;R.isMeshModuleInited?A=R:A=R();let{Undo:E,Redo:B,PushIntoHistory:j,CreateHistoryAction:W,updateUndoSize:M,updateRedoSize:I}=A();P.pushIntoHistory=j,P.createHistoryAction=W,D={Undo:E,Redo:B,updateUndoSize:M,updateRedoSize:I};}let T=!!e.modules.useMeshRenderGate,S={};if(T){let R=e.modules.useMeshRenderGate.isMeshModuleInited,A=e.modules.useMeshRenderGate;S=(R?A:A())(()=>L);}let{onError:z,callOnError:V}=Ae(),{onSuccess:F,callOnSuccess:Z}=Ge(),{onStart:b,callOnStart:K}=Fe(),{emit:$,usePlugin:J}=Oe(),{SetTrace:p,useTrace:N}=we(),h=N();J(h);let w=T?{...S}:{...e.UITrigger},x=Be({useGreedy:e.config.useGreedy},{GetDependencyOrder:()=>i,GetAllNextDependency:u,GetNextDependency:y,GetPrevDependency:m,GetAllPrevDependency:g,GetPathToLevelMap:()=>d},P,{callOnError:V,callOnSuccess:Z,callOnStart:K,emit:$},w),{GetGroupByPath:C,GetNodeByPath:L,notifyAll:q,useEntangle:se,updateEntangleLevel:de}=x;T&&S.init();let ie={};if(e.modules.useInternalForm){let{uiSchema:R,GetFormData:A}=e.modules.useInternalForm(x,c);ie={uiSchema:R,GetFormData:A};}let le={};if(e.modules.useSchemaValidators){let{SetValidators:R}=e.modules.useSchemaValidators(L);le={SetValidators:R};}let{SetRule:ge,SetRules:he}=Ne(L,o,r),{SetStrategy:Pe}=Re(L),me=be(o),ue=()=>{let R=me();i=R.steps,d=R.levelMap,de();},G=()=>{t||(t=true,Promise.resolve().then(()=>{if(ue(),n){let{directNextMap:R,directPrevMap:A}=f(i.flat());s=R,a=A;}}).finally(()=>{t=false,n=false;}));};return {SetRule:(R,A,E,B)=>{ge(R,A,E,B),n=true,G();},SetRules:(R,A,E,B)=>{he(R,A,E,B),n=true,G();},SetStrategy:Pe,useEntangle:se,SetTrace:p,usePlugin:J,SetValue:(R,A,E)=>{L(R).dependOn(()=>E,A);},GetValue:(R,A="value")=>L(R)[A],SetValues:R=>{x.batchNotify(R);},GetGroupByPath:C,notifyAll:async()=>{ue(),await q();},GetAllDependency:()=>o,GetDependencyOrder:()=>i,historyExports:D,formExports:ie,validatorExports:le,batchRenderExport:S,hasRenderGate:()=>T,onError:z,onSuccess:F,onStart:b,scheduler:x}}var pe=new Map,Le=(c,e,n)=>{try{if(pe.has(c))throw Error("engineID repeated");let t=ke(e,{config:n.config||{useGreedy:!1},UITrigger:n.UITrigger,modules:n.modules??{},plugins:{}}),{SetRule:o,SetRules:r,SetValues:s,SetStrategy:a,SetValue:i,GetValue:d,usePlugin:l,useEntangle:y,GetGroupByPath:m,notifyAll:g,SetTrace:u,GetAllDependency:f,GetDependencyOrder:P,historyExports:D,formExports:T,validatorExports:S,batchRenderExport:z,hasRenderGate:V,onError:F,onSuccess:Z,onStart:b,scheduler:K}=t,$={config:{SetRule:o,SetRules:r,SetStrategy:a,notifyAll:g,SetTrace:u,usePlugin:l,hasRenderGate:V,useEntangle:y},data:{SetValue:i,GetValue:d,SetValues:s,GetGroupByPath:m},dependency:{GetAllDependency:f,GetDependencyOrder:P},hooks:{onError:F,onSuccess:Z,onStart:b}},J=(h,w,x)=>{!w||typeof w!="object"||Object.keys(w).forEach(C=>{let L=w[C];if(typeof L=="object"&&L!==null)h[C]=h[C]||{},J(h[C],L,x);else if(typeof L=="function"){let q=C;if(q==="useMeshRenderGate")q="render";else if(q.startsWith("use")){let se=q.slice(3);q=se.charAt(0).toLowerCase()+se.slice(1);}C==="useHistory"&&x.exports.history&&Object.keys(x.exports.history).length>0?h[q]=x.exports.history:C==="useInternalForm"&&x.exports.form&&Object.keys(x.exports.form).length>0?h[q]=x.exports.form:C==="useSchemaValidators"&&x.exports.validator&&Object.keys(x.exports.validator).length>0?h[q]=x.exports.validator:C==="useMeshRenderGate"&&x.exports.render?h[q]=x.exports.render:h[q]=L(x.scheduler,x.Schema);}});},p={...$,modules:{}},N=n.modules;return N&&J(p.modules,N,{scheduler:K,Schema:e,exports:{history:D,form:T,validator:S,render:z}}),pe.set(c,p),p}catch(t){throw Error(t)}},Gt=()=>(c,e,n)=>Ve(c,e,n),Ot=c=>{let e=pe.get(c);if(!e)throw Error(`[MeshFlow] Engine ID "${String(c)}" not found. Ensure it is initialized with useMeshFlow.`);return e},Ft=c=>{pe.delete(c);},Ve=Le;exports.TriggerCause=Se;exports.deleteEngine=Ft;exports.useEngine=Ot;exports.useEngineManager=Le;exports.useMeshFlow=Ve;exports.useMeshFlowDefiner=Gt;exports.useScheduler=Be;
package/index.mjs CHANGED
@@ -1 +1 @@
1
- var Me=class{computedRules=[];store={OR:(e,n)=>{let t,c,r=this.computedRules;for(let s=0;s<r.length;s++){let a=r[s],o=a.logic(e);if(o instanceof Promise)return (async()=>{let i=await o;if(a.entityId==="__base__"?c=i:i&&(t=i),typeof t>"u")for(let y=s+1;y<r.length;y++){let m=r[y],g=m.logic(e),u=g instanceof Promise?await g:g;if(m.entityId==="__base__"){c=u;continue}if(u){t=m.value;break}}return typeof t>"u"&&(t=c),{res:t,version:n}})();let d=o;if(a.entityId==="__base__"){c=d;continue}if(d){t=a.value;break}}return typeof t>"u"&&(t=c),{res:t,version:n}},PRIORITY:(e,n)=>{let t,c=this.computedRules;for(let r=0;r<c.length;r++){let a=c[r].logic(e);if(a instanceof Promise)return (async()=>{let o=await a;if(o!==void 0)return {res:o,version:n};for(let d=r+1;d<c.length;d++){let i=c[d].logic(e),y=i instanceof Promise?await i:i;if(y!==void 0)return {res:y,version:n}}return {res:void 0,version:n}})();if(a!==void 0)return {res:a,version:n}}return {res:t,version:n}}};CurrentStrategy=()=>{};CurrentStrategyType="PRIORITY";getRules=()=>{};constructor(e){this.getRules=e,this.CurrentStrategy=this.store.PRIORITY,this.updateComputedRules();}updateComputedRules(){let e=this.getRules();this.CurrentStrategyType==="PRIORITY"?this.computedRules=Array.from(e.values()).map(n=>Array.from(n)).flat().sort((n,t)=>t.priority-n.priority):this.computedRules=Array.from(e.values()).map(n=>Array.from(n)).flat();}setStrategy(e){this.CurrentStrategy=this.store[e],this.updateComputedRules();}evaluate(e,n){return this.CurrentStrategy(e,n)}},ye=class{path;strategy;contract;rules=new Map;isValue=false;id=0;cache=void 0;pendingPromise=null;version=0;deps=new Map;_forceNotify=false;promiseToken=null;useCache=true;effectArray=[];constructor(e,n,t){let c=()=>this.rules;this.strategy=new Me(c),this.path=t,this.isValue=n==="value",this.contract=this.inferType(e),this.cache=e,this.setRule({priority:0,entityId:"__base__",logic:()=>e});}setUseCache(e){this.useCache=e;}forceNotify(){this._forceNotify=true;}isForceNotify(){return this._forceNotify}setStrategy(e){this.strategy.setStrategy(e);}setDefaultRule(e){let n=new Set;n.add(e),this.rules.set("defaultRules",n);}setRules(e,n){n&&this.updateDeps(n);let t=++this.id,c={...e,entityId:t};for(let r of e.triggerPaths)this.rules.has(r)||this.rules.set(r,new Set),this.rules.get(r).add(c);return this.strategy.updateComputedRules(),()=>{for(let r of e.triggerPaths){let s=this.rules.get(r);s&&(s.delete(c),s.size===0&&(this.rules.delete(r),this.deps.delete(r)));}this.strategy.updateComputedRules();}}updateDeps(e){for(let[n,t]of e)this.deps.set(n,t);}setRule(e,n){if(n&&this.updateDeps(n),typeof e.entityId=="string"){this.setDefaultRule(e);return}let t=++this.id,c={...e,entityId:t};if(e)for(let r of e.triggerPaths)this.rules.has(r)||this.rules.set(r,new Set),this.rules.get(r).add(c);return this.strategy.updateComputedRules(),()=>{for(let r of e.triggerPaths){let s=this.rules.get(r);s&&(s.delete(c),s.size===0&&(this.rules.delete(r),this.deps.delete(r)));}this.strategy.updateComputedRules();}}setSideEffect(e){this.effectArray.push(e);}getSideEffect(){return [...this.effectArray]}evaluate(e){let n=null;if(e.GetToken&&(n=e.GetToken()),this.pendingPromise&&this.promiseToken!==n&&(this.pendingPromise=null,this.promiseToken=null),this.pendingPromise)return this.pendingPromise;let t=false;if(typeof e.triggerPath=="string"){t=true;let s=this.deps.get(e.triggerPath),a=e.getStateByPath(e.triggerPath);if(typeof s=="object"||typeof a=="object")t=false;else {let o=Array.from(this.deps.keys());for(let d of o){let i=this.deps.get(d),y=e.getStateByPath(d);if(i!==y){t=false;break}}}}if(t&&this.useCache)return this.cache;this.promiseToken=n;let c=++this.version,r=this.strategy.evaluate(e,c);if(!(r instanceof Promise)){let{res:s,version:a}=r;return this.finalizeSync(s,a,e,n)}return this.pendingPromise=(async()=>{try{let{res:s,version:a}=await r;return this.finalizeSync(s,a,e,n)}catch(s){throw {path:this.path,error:s}}finally{this.promiseToken===n&&(this.pendingPromise=null,this.promiseToken=null);}})(),this.pendingPromise}finalizeSync(e,n,t,c){return c!==this.promiseToken||n<this.version?this.cache:(this.cache=e,this.deps.forEach((r,s)=>{this.deps.set(s,t.GetRenderSchemaByPath(s));}),e)}inferType(e){return Array.isArray(e)?"array":typeof e}};var xe=(l,e,n)=>{let c=r=>{let s=n.triggerPaths.map(d=>{let i=r.GetRenderSchemaByPath(d),y={};return n.triggerKeys.forEach(m=>{y[m]=i[m];}),y}),a=Object.create(null);return Object.defineProperty(a,"triggerTargets",{get:()=>s}),Object.defineProperty(a,"affectedTatget",{get:()=>r.GetRenderSchemaByPath(l)[e]}),n.logic({slot:a})};return {value:n.value,targetPath:l,triggerPaths:n.triggerPaths,priority:n.priority??10,logic:c}},Ne=(l,e,n)=>{if(!l)throw Error("");let t=l,c=(a,o)=>{e.has(a)||e.set(a,new Set),e.get(a).add(o),n.has(o)||n.set(o,new Set),n.get(o).add(a);};return {SetRule:(a,o,d,i)=>{let y=t(o),m=i.triggerKeys||[];m.length==0&&m.push("value");let g=xe(o,d,{...i,triggerPaths:[a],triggerKeys:m}),u=[a].map(f=>[f,t(f).state.value]);if(c(a,o),y.nodeBucket[d])y.nodeBucket[d].setRule(g,u),i.effect&&y.nodeBucket[d].setSideEffect({fn:i.effect,args:i.effectArgs?i.effectArgs:[d]});else {let f=y.meta[d],P=new ye(f,d,o);P.setRule(g,u),i.effect&&P.setSideEffect({fn:i.effect,args:i.effectArgs?i.effectArgs:[d]}),y.nodeBucket[d]=P;}y.state[d]=y.meta[d],i.forceNotify&&y.nodeBucket[d].forceNotify(),i.cacheStrategy=="none"&&y.nodeBucket[d].setUseCache(false);},SetRules:(a,o,d,i)=>{let y=t(o);for(let f of a)c(f,o);let m=i.triggerKeys||[];m.length==0&&m.push("value");let g=xe(o,d,{...i,triggerPaths:a,triggerKeys:m}),u=a.map(f=>[f,t(f).state.value]);if(y.nodeBucket[d])y.nodeBucket[d].setRules(g,u),i.effect&&y.nodeBucket[d].setSideEffect({fn:i.effect,args:i.effectArgs?i.effectArgs:[d]});else {let f=y.meta[d],P=new ye(f,d,o);P.setRules(g,u),i.effect&&P.setSideEffect({fn:i.effect,args:i.effectArgs?i.effectArgs:[d]}),y.nodeBucket[d]=P;}y.state[d]=y.meta[d],i.forceNotify&&y.nodeBucket[d].forceNotify(),i.cacheStrategy=="none"&&y.nodeBucket[d].setUseCache(false);}}};var Re=l=>{let e=l||void 0;if(!e)throw Error("");return {SetStrategy:(t,c,r)=>{e(t).nodeBucket[c].setStrategy(r);}}};function we(){let l=new Map,e=new Map,n=new Set,t=(s,a)=>{l.set(s,a);let o=e.get(s);o&&o(a);};return {SetTrace:(s,a)=>{e.set(s,a);let o=l.get(s)||"idle";return a(o),{cancel:()=>{e.delete(s);}}},useTrace:()=>({apply:a=>{a.on("flow:start",()=>{n.forEach(o=>t(o,"idle")),n.clear(),l.clear();}),a.on("node:release",({path:o,type:d})=>{(d==1||d==2)&&(n.add(o),t(o,"pending"));}),a.on("node:pending",({path:o})=>{n.add(o),(!l.has(o)||l.get(o)==="idle")&&t(o,"pending");}),a.on("node:start",({path:o})=>{n.add(o),t(o,"calculating");}),a.on("node:success",({path:o})=>{t(o,"calculated");}),a.on("node:intercept",({path:o,type:d})=>{d==3&&t(o,"calculating"),d==6&&t(o,"idle");}),a.on("node:stagnate",({path:o})=>{t(o,"pending");}),a.on("node:error",({path:o})=>t(o,"error"));}})}}function Ee(l,e,n,t){let c=i=>{let y=l(),m=e(),g=new Set;return y.get(i)?.forEach(u=>g.add(u)),g.size===0?[]:Array.from(g).filter(u=>{let f=m.get(u)||new Set;return !Array.from(f).some(T=>g.has(T))})};return {GetNextDependency:i=>{let y=t();return Array.from(y.get(i)||[])},GetPrevDependency:i=>{let y=n();return Array.from(y.get(i)||[])},GetAllPrevDependency:i=>{let y=e();return Array.from(y.get(i)||[])},GetAllNextDependency:i=>{let y=l();return Array.from(y.get(i)||[])},rebuildDirectDependencyMaps:i=>{let y=new Map,m=new Map;for(let g of i){let u=c(g);y.set(g,new Set(u));for(let f of u)m.has(f)||m.set(f,new Set),m.get(f).add(g);}return {directNextMap:y,directPrevMap:m}}}}function be(l){let e=t=>{let c=[],r=[],s=new Map,a=t.size,o=0,d=0;for(let[i,y]of t)y===0&&r.push(i);if(r.length===0&&a>0)throw Error("Circular dependency detected");for(;r.length>0;){c.push([...r]);let i=[];for(let y of r){o++,s.set(y,d);let m=l.get(y);if(m)for(let g of m){let u=t.get(g)-1;t.set(g,u),u===0&&i.push(g);}}r=i,d++;}if(o<a)throw Error("Circular dependency detected");return {steps:c,levelMap:s}};return ()=>{let t=new Map;for(let c of l.keys()){let r=Array.from(l.get(c)||[]);t.has(c)||t.set(c,0);for(let s of r){let a=t.get(s)||0;t.set(s,++a);}}return e(t)}}var ce=()=>{let l=[];return {on:e=>(l.push(e),()=>{let n=l.indexOf(e);n>-1&&l.splice(n,1);}),call:e=>l.forEach(n=>{n(e);})}};function Ae(){let{on:l,call:e}=ce();return {onError:l,callOnError:e}}function Ge(){let{on:l,call:e}=ce();return {onSuccess:l,callOnSuccess:e}}var Oe=()=>{let l=new Set,e=new Map,n=(r,s)=>{e.get(r)?.forEach(a=>a(s));},t=(r,s)=>(e.has(r)||e.set(r,new Set),e.get(r).add(s),()=>e.get(r).delete(s));return {usePlugin:r=>{let s=new Set,a=(o,d)=>{let i=t(o,d);return s.add(i),i};return r.apply({on:a}),l.add(r),()=>{s.forEach(o=>o()),s.clear(),l.delete(r);}},emit:n}};function Fe(){let{on:l,call:e}=ce();return {onStart:l,callOnStart:e}}var Se=(t=>(t[t.CAUSALITY=0]="CAUSALITY",t[t.INVERSION=1]="INVERSION",t[t.REPERCUSSION=2]="REPERCUSSION",t))(Se||{});function Ke(l,e,n,t,c,r){let s=new Map,a=l.useGreedy;return async(d,i)=>{let m=Symbol("token"),g=d||"__NOTIFY_ALL__";s.set(g,m);let u=false;r.reset();let f=new Set,P=new Set,D=new Set;i.forEach(G=>{D.add(G),e.GetAllNextDependency(G).forEach(v=>D.add(v));});let T=new Map,S=new Map,z=new Map,V=[],F=n.Turnstile,Z=F.volatileLevels.size>0,b=Z?F.hasObserver:()=>false,K=Z?F.receiveGhosts:()=>[],$=Z?F.resolveGhosts:()=>[],J=Z?F.getTriggerKeys:()=>[],h=F?.volatileLevels||new Set,N=-1,p=new Set,w=e.GetPathToLevelMap(),x=0,C=0,L=G=>{e.GetAllNextDependency(G).forEach(ne=>{let _=w.get(ne)||0;_>C&&(C=_);});},q=new Set;d&&(f.add(d),q.add(d),L(d),c.flushPathSet.add(d));let se=d?[d]:i;r.shouldYield()&&(c.requestUpdate(),await r.yieldToMain());let de=se.map(async G=>{if(b(G)){let v=n.GetNodeByPath(G),ne=J(G);if(ne.length>0){let _=K(v,ne);return _ instanceof Promise&&(_=await _),{seed:G,hitTargets:_}}}return {seed:G,hitTargets:[]}});if((await Promise.all(de)).forEach(({seed:G,hitTargets:v})=>{if(v&&v.length>0){V.push(...v);let ne=w.get(G)||0;N=Math.max(N,ne);}}),(V.length>0||se.length>1)&&(c.requestUpdate(),await r.yieldToMain(),s.get(g)!==m))return;let le=V.length>0;i.forEach(G=>{if(!q.has(G))if(le){let v=w.get(G)??0;S.has(v)||S.set(v,new Set),S.get(v).add(G),t.emit("node:stagnate",{path:G,type:2});}else p.add(G),L(G);}),d?x=w.get(d)??0:x=Math.min(...i.map(G=>w.get(G)??0));let ge=performance.now();t.emit("flow:start",{path:g}),t.callOnStart({path:g});let he=false,Pe=30,me=G=>{let{target:v,trigger:ne}=G,_=false,ee=false,k=n.GetNodeByPath(v),ae=k.calledBy,O=[],R=[],A=false;if(k.calledBy===1){A=true,_=true,c.flushPathSet.add(v);let M=z.get(v);M&&(O.push(...M),z.delete(v));}let E=(M,I)=>{let U=w.get(M)??0,Q=ae===1||ae===2;Q&&f.has(M)&&(f.delete(M),t.emit("node:revive",{path:M,triggerPath:v}));let H=0;if(!(f.has(M)||P.has(M)||p.has(M))){if(T.has(M))H=T.get(M)-1;else {if(U>x&&T.size>Pe){S.has(U)||S.set(U,new Set),S.get(U).add(M),t.emit("node:intercept",{path:M,type:7});return}let te=e.GetPrevDependency(M),X=0;for(let re of te){if(f.has(re))continue;(w.get(re)??0)>x&&X++;}H=X;}if(H<=0){let te=p.has(M),X=P.has(M);if(te||X){t.emit("node:intercept",{path:M,type:X?3:3.1});return}T.delete(M);let re=n.GetNodeByPath(M);Q?re.calledBy=2:re.calledBy!==2&&(re.calledBy=0),p.add(M),t.emit("node:release",{path:M,type:I,detail:{path:v}});}else T.set(M,H);}},B=(M=[])=>{if(s.get(g)!==m)return;if(M.length){let U={},Q=k.proxy;for(let H of M){let te=(H.args||[]).reduce((X,re)=>(X[re]=Q[re],X),{});try{let X=H.fn(te);X&&typeof X=="object"&&Object.assign(U,X);}catch(X){}}for(let H in U)if(H in k.state)Object.is(k.state[H],U[H])||(k.state[H]=U[H],O.push(H));else throw {error:`wrong effect in ${String(k.path)}`};_=true;}_&&c.flushPathSet.add(v);let I=(U=[])=>{if(s.get(g)!==m)return;U&&U.length>0&&(V.push(...U),N=Math.max(N,w.get(v)||0)),O.length=0,t.emit("node:success",{path:v,calledBy:k.calledBy}),f.add(v);let Q=e.GetNextDependency(v);(_||ee)&&e.GetAllNextDependency(v).forEach(oe=>D.add(oe));let H=n.GetNodeByPath(v),te=H.calledBy!==0,X=w.get(v)??0,re=h.has(X)||V.length>0;for(let Y of Q){let oe=w.get(Y)??0;if(re&&oe>=X){if(S.has(oe)||S.set(oe,new Set),S.get(oe).add(Y),t.emit("node:stagnate",{path:Y,type:2}),te){let fe=n.GetNodeByPath(Y);fe.calledBy=2,f.delete(Y);}continue}if(!te){if(f.has(Y)){t.emit("node:intercept",{path:Y,type:2});continue}if(P.has(Y)||p.has(Y)){t.emit("node:intercept",{path:Y,type:P.has(Y)?3:3.1});continue}}if(_||ee)E(Y,1);else if(T.has(Y))E(Y,2);else {let fe=w.get(Y);S.has(fe)||S.set(fe,new Set);let ve=S.get(fe);ve.has(Y)||(ve.add(Y),t.emit("node:stagnate",{path:Y,type:1}));}}P.delete(v),H.calledBy=0,(async()=>{if(!u){let Y=P.size,oe=p.size;t.emit("flow:fire",{path:v,type:1,detail:{active:Y,pending:oe,blocked:T.size}}),ue();}})();};if(b(v)&&O.length>0){let U=n.GetNodeByPath(v),Q=K(U,O);Q instanceof Promise||Q&&typeof Q.then=="function"?Q.then(I).catch(j):I(Q);}else I([]);},j=M=>{t.emit("node:error",{path:v,error:M});let I=Symbol("abort");s.set(g,I),p.clear(),T.clear(),P.clear(),t.callOnError(M);},W=(M,I)=>{let U=false;M!==k.state[I]&&(k.state[I]=M,_=true,O.push(String(I)),t.emit("node:bucket:success",{path:v,key:String(I),value:M,calledBy:k.calledBy}),k.notifyKeys.has(I)&&(U=true)),k.nodeBucket[I].isForceNotify()&&(ee=true),(U||ee)&&L(v);};t.emit("node:start",{path:v,calledBy:k.calledBy});try{let M=[];for(let I in k.nodeBucket){let U=k.nodeBucket[I];if(M.push(...U.getSideEffect()),A){t.emit("node:bucket:success",{path:v,key:String(I),value:k.state[I],calledBy:k.calledBy}),U.isForceNotify()&&(ee=!0),k.notifyKeys.has(I)&&L(v);continue}let Q=U.evaluate({affectKey:I,triggerPath:ne,GetRenderSchemaByPath:H=>n.GetNodeByPath(H).proxy,getStateByPath:H=>n.GetNodeByPath(H).state,GetToken:()=>m});if(Q instanceof Promise){let H=Q.then(te=>{s.get(g)===m&&W(te,I);});R.push(H);}else W(Q,I);}if(R.length>0)return Promise.all(R).then(()=>{B(M);}).catch(j);B(M);return}catch(M){j(M);}},ue=async()=>{if(s.get(g)!==m){u=false;return}u=true;let G=r.getIsFirstFrame(),v=0,ne=()=>a&&G?30:1/0,_=0,ee=ne();try{for(;s.get(g)===m;){let k=_>=ee,ae=r.shouldYield();if(k||ae){if(_>0&&(v++,(G||v%2===0)&&c.requestUpdate()),await r.yieldToMain(),s.get(g)!==m)break;_=0,G=r.getIsFirstFrame();}if(p.size>0&&P.size<10){for(let O of p){if(P.size>=10||_>=ee)break;let R=w.get(O)??0,A=e.GetPrevDependency(O),E=A.length>1;if((!a||E)&&R>x){p.delete(O);let W=A.filter(M=>D.has(M)&&!f.has(M)).length;T.set(O,W||0),t.emit("node:intercept",{path:O,type:W>0?4:5,detail:{targetLevel:R,currentLevel:x,pendingParentsCount:W}});continue}p.delete(O),P.add(O);let j=n.GetNodeByPath(O);if(t.emit("node:processing",{path:O,calledBy:j.calledBy}),me({target:O,trigger:d}),_++,_>=ee||r.shouldYield())break}if(p.size>0)continue}if(_<ee&&a&&T.size>0&&P.size<10){let O=!1,R=0;for(let[A,E]of T)if(E<=0){let B=w.get(A)??0,j=e.GetPrevDependency(A);if(B>x&&j.length>1)continue;if(T.delete(A),p.add(A),R++,O=!0,t.emit("node:release",{path:A,type:4}),R>=ee)break}if(R>0)continue;if(O){if(r.shouldYield()&&(await r.yieldToMain(),s.get(g)!==m))break;continue}}if(P.size===0&&p.size===0){if(V.length>0){let E=!1,B=x,j=Array.from(new Set(V));V.length=0;for(let W of j){let M=n.GetNodeByPath(W),I=$(M);if(I&&I.length>0){E=!0,M.calledBy=1,z.set(W,I),f.delete(W),T.delete(W),p.add(W);let U=w.get(W)??0;U<B&&(B=U),L(W),c.flushPathSet.add(W);}}if(E){if(B<x&&(x=B),c.requestUpdate(),r.shouldYield()&&(await r.yieldToMain(),s.get(g)!==m))break;continue}}let O=new Set;for(let E of S.keys())O.add(E);for(let[E]of T){let B=w.get(E)??0;B>x&&O.add(B);}let R=Array.from(O).sort((E,B)=>E-B),A=R[0];if(R.length>0&&A<=C){let E=R[0];if(E<=C){x=E;let B=S.get(E);B&&(B.forEach(j=>p.add(j)),S.delete(E));for(let[j]of T)(w.get(j)??0)===E&&(T.delete(j),p.add(j),t.emit("node:release",{path:j,type:3,detail:{level:E}}));continue}}else {S.forEach((E,B)=>{E.forEach(j=>{f.add(j),t.emit("node:intercept",{path:j,type:6});});}),S.clear();for(let[E]of T)f.add(E),t.emit("node:intercept",{path:E,type:6});T.clear();break}}p.size>0&&P.size>=10&&t.emit("flow:wait",{type:2});break}}finally{u=false;let k=P.size+T.size+p.size,ae=F.inFlightCount||0;if(c.requestUpdate(),k===0&&ae===0){if(s.get(g)===m&&!he){he=true,t.emit("flow:end",{type:1}),F.resetCounters();let O=performance.now();N=-1,t.emit("flow:success",{duration:(O-ge).toFixed(2.1)+"ms"}),Promise.resolve().then(()=>{t.callOnSuccess();});}}else {let O=k===0&&ae>0?3:1;t.emit("flow:wait",{type:O,detail:{nums:P.size,asyncNums:ae}});}}};ue();}}function Te(l){let{path:e,uid:n,type:t,meta:c,dirtySignal:r,state:s}=l,a=null,o=["path","uid","type","dependOn","nodeBucket"],i={path:e,uid:n,type:t,meta:c,dirtySignal:r,createView:(y={})=>{if(a&&Object.keys(y).length===0)return a;let m=new Proxy(y,{get(g,u){let f=u;return Reflect.has(g,u)?Reflect.get(g,u):f in l.state?l.state[f]:f in l?l[f]:c&&f in c?c[f]:Reflect.get(g,u)},set(g,u,f){let P=u;return P in l.state?(l.state[P]=f,true):Reflect.set(g,u,f)},ownKeys(g){let u=new Set([...Reflect.ownKeys(g),...Object.keys(s||{}),...Object.keys(c||{}),...o]);return Array.from(u)},getOwnPropertyDescriptor(g,u){let f=u;return Reflect.has(g,u)||s&&f in s||c&&f in c||o.includes(f)?{enumerable:true,configurable:true}:Reflect.getOwnPropertyDescriptor(g,u)}});return a=m,m}};return "children"in l?{...i,children:l.children}:{...i,state:l.state,nodeBucket:l.nodeBucket,notifyKeys:l.notifyKeys,dependOn:l.dependOn,calledBy:0,get proxy(){return a}}}var Ie=(l={frameQuota:12})=>{let e=performance.now(),n=0,t=false,c=()=>!!navigator?.scheduling?.isInputPending?.({includeContinuous:true});return {getIsFirstFrame:()=>t,reset(){e=performance.now(),n=0,t=true;},shouldYield(){let r=performance.now();return n++,!!((n>=5||t)&&(n=0,r-e>l.frameQuota||c()))},async yieldToMain(){return new Promise(r=>{De(()=>{e=performance.now(),n=0,t&&(t=false),r();});})}}},De=l=>{let{port1:e,port2:n}=new MessageChannel;e.onmessage=l,n.postMessage(null);};var Ce=(l,e,n,t,c)=>{let s=new Map,a=new Map,o=new Set,d=n,i=0;return {useEntangle:u=>{let{observer:f,target:P,triggerKeys:D,emit:T}=u;if(!D||D.length===0){t("entangle:warn",{path:f,type:"no_keys"});return}s.has(f)||s.set(f,new Map);let S=s.get(f);D.forEach(z=>{S.has(z)||S.set(z,[]),S.get(z).push({target:P,emit:T,count:0});});},updateEntangleLevel:()=>{let u=e();if(!(!u||u.size===0)){o.clear();for(let f of s.keys()){let P=u.get(f);P!==void 0?o.add(P):t("entangle:warn",{path:f,type:"no_level"});}}},Turnstile:{volatileLevels:o,get inFlightCount(){return i},get hasPendingGhosts(){for(let u of a.values())if(u.length>0)return true;return false},hasObserver:u=>s.has(u),getTriggerKeys:u=>{let f=s.get(u);return f?Array.from(f.keys()):[]},receiveGhosts:(u,f=[])=>{let P=u.path,D=[],T=s.get(P);if(!T||f.length===0)return D;let S=new Set;f.forEach(b=>{let K=T.get(b);K&&K.forEach($=>S.add($));});let z=[],V=b=>b instanceof Promise||b!==null&&typeof b=="object"&&typeof b.then=="function",F=b=>{let K=b.target;if(b.count>=100){t("entangle:blocked",{observer:P,target:K,count:b.count});return}let $=d(K),J=b.emit(u.proxy,$.proxy),h=N=>{N&&N.key!==void 0&&(b.count++,a.has(K)||a.set(K,[]),a.get(K).push({weight:1,...N}),D.push(K));};if(V(J)){i++;let N=(async()=>{try{let p=await J;h(p);}catch(p){t("node:error",{path:P,error:p}),c({path:P,error:p});}finally{i--;}})();z.push(N);}else h(J);},Z=Array.from(S);return (async()=>{for(let b=0;b<Z.length;b++)F(Z[b]),l.shouldYield()&&await l.yieldToMain();if(z.length>0)for(let K=0;K<z.length;K+=50){let $=z.slice(K,K+50);await Promise.all($),l.shouldYield()&&await l.yieldToMain();}return Array.from(new Set(D))})()},resolveGhosts:u=>{let f=u.path,P=a.get(f);if(!P||P.length===0)return [];let D=[],T=new Map;for(let S of P)T.has(S.key)||T.set(S.key,[]),T.get(S.key).push(S);for(let[S,z]of T.entries()){let V=u.state[S],F=z.filter(b=>b.delta!==void 0),Z=z.filter(b=>b.value!==void 0);if(Z.length>0&&(V=Z.reduce((K,$)=>($.weight??1)>=(K.weight??1)?$:K).value),F.length>0){let b=F.reduce(($,J)=>$+J.delta,0),K=(typeof V=="number"?V:0)+b;V=Math.max(0,parseFloat(K.toFixed(6)));}Object.is(u.state[S],V)||(u.state[S]=V,D.push(S));}return a.set(f,[]),D.length>0?D:[]},resetCounters:()=>{for(let u of s.values())for(let f of u.values())f.forEach(P=>P.count=0);}}}};function Be(l,e,n,t,c){let r=Ie(),s=0,a=new Map,o=new Map,d=new Map,i=false,y=new Set,g=async()=>{let h=Array.from(y);if(y.clear(),"signalTrigger"in c&&typeof c.signalTrigger=="function")for(let N of h){let p=F(N);c.signalTrigger(p.dirtySignal);}else "emit"in c&&c.emit(h);},u=()=>{i||(i=true,requestAnimationFrame(()=>{try{for(;y.size>0;)g();}finally{i=false;}}));},{useEntangle:f,updateEntangleLevel:P,Turnstile:D}=Ce(r,e.GetPathToLevelMap,F,t.emit,t.callOnError),T=Ke({useGreedy:l.useGreedy},e,{GetNodeByPath:F,Turnstile:D},t,{requestUpdate:u,flushPathSet:y},r),S=h=>{throw new Error(`[MeshFlow] Duplicate Path: ${h}`)},z=h=>{a.has(h.path)&&S(String(h.path));let N=++s,p={path:h.path,getNode:C=>F(C)},w=(C,L="value")=>{let q=C({...p}),se=F(h.path);if(n.createHistoryAction&&n.pushIntoHistory){let de=n.createHistoryAction([{path:h.path,value:se.state[L]},{path:h.path,value:q}],ie=>{let le=F(ie.path);le.state[L]=ie.value,b(ie.path);});n.pushIntoHistory(de);}se.state[L]=q,b(h.path);};h.notifyKeys.size==0&&h.notifyKeys.add("value");let x=Te({uid:N,type:h.type,path:h.path,state:h.state,meta:h.meta,nodeBucket:h.nodeBucket,dirtySignal:h.dirtySignal,notifyKeys:h.notifyKeys,dependOn:w});return a.set(x.path,N),o.set(N,x),x},V=h=>{a.has(h.path)&&S(String(h.path));let N=++s,p=Te({uid:N,type:h.type,path:h.path,state:{},meta:h,nodeBucket:{},children:h.children});return a.set(p.path,N),d.set(N,p),p};function F(h){let N=a.get(h),p=o.get(N);if(!p)throw Error("wrong ID");return p}function Z(h){let N=a.get(h);return d.get(N)}let b=h=>{if(!F(h))throw Error("Node undefined");y.add(h),u();let p=e.GetNextDependency(h);K(p,h);};function K(h,N){T(N,h);}return {registerNode:z,registerGroupNode:V,GetNodeByPath:F,GetGroupByPath:Z,notify:b,notifyAll:async()=>{Promise.resolve().then(async()=>{let h=e.GetDependencyOrder();if(!h||h.length===0)return;let N=h[0];try{T(null,N);}catch(p){throw t.callOnError(p),p}finally{u();}});},batchNotify:h=>{if(!h||h.length===0)return;if(n.createHistoryAction&&n.pushIntoHistory){let p=n.createHistoryAction([h.map(w=>({path:w.path,key:w.key,value:F(w.path).state[w.key]})),h.map(w=>({path:w.path,key:w.key,value:w.value}))],w=>{let x=new Set;w.forEach(C=>{let L=F(C.path);L.state[C.key]=C.value,y.add(C.path),x.add(C.path);}),u(),x.size>0&&T(null,Array.from(x));});n.pushIntoHistory(p);}let N=new Set;h.forEach(p=>{let w=F(p.path);w.state[p.key]=p.value,y.add(p.path),N.add(p.path);}),u(),N.size>0&&T(null,Array.from(N));},useEntangle:f,updateEntangleLevel:P,UITrigger:c,UidToNodeMap:o}}function ke(l,e){let n=false,t=false,c=new Map,r=new Map,s=new Map,a=new Map,o=[],d=new Map,{GetNextDependency:y,GetPrevDependency:m,GetAllPrevDependency:g,GetAllNextDependency:u,rebuildDirectDependencyMaps:f}=Ee(()=>c,()=>r,()=>a,()=>s),P={},D={};if(e.modules.useHistory){let R=e.modules.useHistory,A;R.isMeshModuleInited?A=R:A=R();let{Undo:E,Redo:B,PushIntoHistory:j,CreateHistoryAction:W,updateUndoSize:M,updateRedoSize:I}=A();P.pushIntoHistory=j,P.createHistoryAction=W,D={Undo:E,Redo:B,updateUndoSize:M,updateRedoSize:I};}let T=!!e.modules.useMeshRenderGate,S={};if(T){let R=e.modules.useMeshRenderGate.isMeshModuleInited,A=e.modules.useMeshRenderGate;S=(R?A:A())(()=>L);}let{onError:z,callOnError:V}=Ae(),{onSuccess:F,callOnSuccess:Z}=Ge(),{onStart:b,callOnStart:K}=Fe(),{emit:$,usePlugin:J}=Oe(),{SetTrace:h,useTrace:N}=we(),p=N();J(p);let w=T?{...S}:{...e.UITrigger},x=Be({useGreedy:e.config.useGreedy},{GetDependencyOrder:()=>o,GetAllNextDependency:u,GetNextDependency:y,GetPrevDependency:m,GetAllPrevDependency:g,GetPathToLevelMap:()=>d},P,{callOnError:V,callOnSuccess:Z,callOnStart:K,emit:$},w),{GetGroupByPath:C,GetNodeByPath:L,notifyAll:q,useEntangle:se,updateEntangleLevel:de}=x;T&&S.init();let ie={};if(e.modules.useInternalForm){let{uiSchema:R,GetFormData:A}=e.modules.useInternalForm(x,l);ie={uiSchema:R,GetFormData:A};}let le={};if(e.modules.useSchemaValidators){let{SetValidators:R}=e.modules.useSchemaValidators(L);le={SetValidators:R};}let{SetRule:ge,SetRules:he}=Ne(L,c,r),{SetStrategy:Pe}=Re(L),me=be(c),ue=()=>{let R=me();o=R.steps,d=R.levelMap,de();},G=()=>{t||(t=true,Promise.resolve().then(()=>{if(ue(),n){let{directNextMap:R,directPrevMap:A}=f(o.flat());s=R,a=A;}}).finally(()=>{t=false,n=false;}));};return {SetRule:(R,A,E,B)=>{ge(R,A,E,B),n=true,G();},SetRules:(R,A,E,B)=>{he(R,A,E,B),n=true,G();},SetStrategy:Pe,useEntangle:se,SetTrace:h,usePlugin:J,SetValue:(R,A,E)=>{L(R).dependOn(()=>E,A);},GetValue:(R,A="value")=>L(R)[A],SetValues:R=>{x.batchNotify(R);},GetGroupByPath:C,notifyAll:async()=>{ue(),await q();},GetAllDependency:()=>c,GetDependencyOrder:()=>o,historyExports:D,formExports:ie,validatorExports:le,batchRenderExport:S,hasRenderGate:()=>T,onError:z,onSuccess:F,onStart:b,scheduler:x}}var pe=new Map,Le=(l,e,n)=>{try{if(pe.has(l))throw Error("engineID repeated");let t=ke(e,{config:n.config||{useGreedy:!1},UITrigger:n.UITrigger,modules:n.modules??{},plugins:{}}),{SetRule:c,SetRules:r,SetValues:s,SetStrategy:a,SetValue:o,GetValue:d,usePlugin:i,useEntangle:y,GetGroupByPath:m,notifyAll:g,SetTrace:u,GetAllDependency:f,GetDependencyOrder:P,historyExports:D,formExports:T,validatorExports:S,batchRenderExport:z,hasRenderGate:V,onError:F,onSuccess:Z,onStart:b,scheduler:K}=t,$={config:{SetRule:c,SetRules:r,SetStrategy:a,notifyAll:g,SetTrace:u,usePlugin:i,hasRenderGate:V,useEntangle:y},data:{SetValue:o,GetValue:d,SetValues:s,GetGroupByPath:m},dependency:{GetAllDependency:f,GetDependencyOrder:P},hooks:{onError:F,onSuccess:Z,onStart:b}},J=(p,w,x)=>{!w||typeof w!="object"||Object.keys(w).forEach(C=>{let L=w[C];if(typeof L=="object"&&L!==null)p[C]=p[C]||{},J(p[C],L,x);else if(typeof L=="function"){let q=C;if(q==="useMeshRenderGate")q="render";else if(q.startsWith("use")){let se=q.slice(3);q=se.charAt(0).toLowerCase()+se.slice(1);}C==="useHistory"&&x.exports.history&&Object.keys(x.exports.history).length>0?p[q]=x.exports.history:C==="useInternalForm"&&x.exports.form&&Object.keys(x.exports.form).length>0?p[q]=x.exports.form:C==="useSchemaValidators"&&x.exports.validator&&Object.keys(x.exports.validator).length>0?p[q]=x.exports.validator:C==="useMeshRenderGate"&&x.exports.render?p[q]=x.exports.render:p[q]=L(x.scheduler,x.Schema);}});},h={...$,modules:{}},N=n.modules;return N&&J(h.modules,N,{scheduler:K,Schema:e,exports:{history:D,form:T,validator:S,render:z}}),pe.set(l,h),h}catch(t){throw Error(t)}},Gt=()=>(l,e,n)=>Ve(l,e,n),Ot=l=>{let e=pe.get(l);if(!e)throw Error(`[MeshFlow] Engine ID "${String(l)}" not found. Ensure it is initialized with useMeshFlow.`);return e},Ft=l=>{pe.delete(l);},Ve=Le;export{Se as TriggerCause,Ft as deleteEngine,Ot as useEngine,Le as useEngineManager,Ve as useMeshFlow,Gt as useMeshFlowDefiner,Be as useScheduler};
1
+ var Me=class{computedRules=[];store={OR:(e,n)=>{let t,o,r=this.computedRules;for(let s=0;s<r.length;s++){let a=r[s],i=a.logic(e);if(i instanceof Promise)return (async()=>{let l=await i;if(a.entityId==="__base__"?o=l:l&&(t=l),typeof t>"u")for(let y=s+1;y<r.length;y++){let m=r[y],g=m.logic(e),u=g instanceof Promise?await g:g;if(m.entityId==="__base__"){o=u;continue}if(u){t=m.value;break}}return typeof t>"u"&&(t=o),{res:t,version:n}})();let d=i;if(a.entityId==="__base__"){o=d;continue}if(d){t=a.value;break}}return typeof t>"u"&&(t=o),{res:t,version:n}},PRIORITY:(e,n)=>{let t,o=this.computedRules;for(let r=0;r<o.length;r++){let a=o[r].logic(e);if(a instanceof Promise)return (async()=>{let i=await a;if(i!==void 0)return {res:i,version:n};for(let d=r+1;d<o.length;d++){let l=o[d].logic(e),y=l instanceof Promise?await l:l;if(y!==void 0)return {res:y,version:n}}return {res:void 0,version:n}})();if(a!==void 0)return {res:a,version:n}}return {res:t,version:n}}};CurrentStrategy=()=>{};CurrentStrategyType="PRIORITY";getRules=()=>{};constructor(e){this.getRules=e,this.CurrentStrategy=this.store.PRIORITY,this.updateComputedRules();}updateComputedRules(){let e=this.getRules();this.CurrentStrategyType==="PRIORITY"?this.computedRules=Array.from(e.values()).map(n=>Array.from(n)).flat().sort((n,t)=>t.priority-n.priority):this.computedRules=Array.from(e.values()).map(n=>Array.from(n)).flat();}setStrategy(e){this.CurrentStrategy=this.store[e],this.updateComputedRules();}evaluate(e,n){return this.CurrentStrategy(e,n)}},ye=class{path;strategy;contract;rules=new Map;isValue=false;id=0;cache=void 0;pendingPromise=null;version=0;deps=new Map;_forceNotify=false;promiseToken=null;useCache=true;effectArray=[];constructor(e,n,t){let o=()=>this.rules;this.strategy=new Me(o),this.path=t,this.isValue=n==="value",this.contract=this.inferType(e),this.cache=e,this.setRule({priority:0,entityId:"__base__",logic:()=>e});}setUseCache(e){this.useCache=e;}forceNotify(){this._forceNotify=true;}isForceNotify(){return this._forceNotify}setStrategy(e){this.strategy.setStrategy(e);}setDefaultRule(e){let n=new Set;n.add(e),this.rules.set("defaultRules",n);}setRules(e,n){n&&this.updateDeps(n);let t=++this.id,o={...e,entityId:t};for(let r of e.triggerPaths)this.rules.has(r)||this.rules.set(r,new Set),this.rules.get(r).add(o);return this.strategy.updateComputedRules(),()=>{for(let r of e.triggerPaths){let s=this.rules.get(r);s&&(s.delete(o),s.size===0&&(this.rules.delete(r),this.deps.delete(r)));}this.strategy.updateComputedRules();}}updateDeps(e){for(let[n,t]of e)this.deps.set(n,t);}setRule(e,n){if(n&&this.updateDeps(n),typeof e.entityId=="string"){this.setDefaultRule(e);return}let t=++this.id,o={...e,entityId:t};if(e)for(let r of e.triggerPaths)this.rules.has(r)||this.rules.set(r,new Set),this.rules.get(r).add(o);return this.strategy.updateComputedRules(),()=>{for(let r of e.triggerPaths){let s=this.rules.get(r);s&&(s.delete(o),s.size===0&&(this.rules.delete(r),this.deps.delete(r)));}this.strategy.updateComputedRules();}}setSideEffect(e){this.effectArray.push(e);}getSideEffect(){return [...this.effectArray]}evaluate(e){let n=null;if(e.GetToken&&(n=e.GetToken()),this.pendingPromise&&this.promiseToken!==n&&(this.pendingPromise=null,this.promiseToken=null),this.pendingPromise)return this.pendingPromise;let t=false;if(typeof e.triggerPath=="string"){t=true;let s=this.deps.get(e.triggerPath),a=e.getStateByPath(e.triggerPath);if(typeof s=="object"||typeof a=="object")t=false;else {let i=Array.from(this.deps.keys());for(let d of i){let l=this.deps.get(d),y=e.getStateByPath(d);if(l!==y){t=false;break}}}}if(t&&this.useCache)return this.cache;this.promiseToken=n;let o=++this.version,r=this.strategy.evaluate(e,o);if(!(r instanceof Promise)){let{res:s,version:a}=r;return this.finalizeSync(s,a,e,n)}return this.pendingPromise=(async()=>{try{let{res:s,version:a}=await r;return this.finalizeSync(s,a,e,n)}catch(s){throw {path:this.path,error:s}}finally{this.promiseToken===n&&(this.pendingPromise=null,this.promiseToken=null);}})(),this.pendingPromise}finalizeSync(e,n,t,o){return o!==this.promiseToken||n<this.version?this.cache:(this.cache=e,this.deps.forEach((r,s)=>{this.deps.set(s,t.GetRenderSchemaByPath(s));}),e)}inferType(e){return Array.isArray(e)?"array":typeof e}};var xe=(c,e,n)=>{let o=r=>{let s=n.triggerPaths.map(d=>{let l=r.GetRenderSchemaByPath(d),y={};return n.triggerKeys.forEach(m=>{y[m]=l[m];}),y}),a=Object.create(null);return Object.defineProperty(a,"triggerTargets",{get:()=>s}),Object.defineProperty(a,"affectedTatget",{get:()=>r.GetRenderSchemaByPath(c)[e]}),n.logic({slot:a})};return {value:n.value,targetPath:c,triggerPaths:n.triggerPaths,priority:n.priority??10,logic:o}},Ne=(c,e,n)=>{if(!c)throw Error("");let t=c,o=(a,i)=>{e.has(a)||e.set(a,new Set),e.get(a).add(i),n.has(i)||n.set(i,new Set),n.get(i).add(a);};return {SetRule:(a,i,d,l)=>{let y=t(i),m=l.triggerKeys||[];m.length==0&&m.push("value");let g=xe(i,d,{...l,triggerPaths:[a],triggerKeys:m}),u=[a].map(f=>[f,t(f).state.value]);if(o(a,i),y.nodeBucket[d])y.nodeBucket[d].setRule(g,u),l.effect&&y.nodeBucket[d].setSideEffect({fn:l.effect,args:l.effectArgs?l.effectArgs:[d]});else {let f=y.meta[d],P=new ye(f,d,i);P.setRule(g,u),l.effect&&P.setSideEffect({fn:l.effect,args:l.effectArgs?l.effectArgs:[d]}),y.nodeBucket[d]=P;}y.state[d]=y.meta[d],l.forceNotify&&y.nodeBucket[d].forceNotify(),l.cacheStrategy=="none"&&y.nodeBucket[d].setUseCache(false);},SetRules:(a,i,d,l)=>{let y=t(i);for(let f of a)o(f,i);let m=l.triggerKeys||[];m.length==0&&m.push("value");let g=xe(i,d,{...l,triggerPaths:a,triggerKeys:m}),u=a.map(f=>[f,t(f).state.value]);if(y.nodeBucket[d])y.nodeBucket[d].setRules(g,u),l.effect&&y.nodeBucket[d].setSideEffect({fn:l.effect,args:l.effectArgs?l.effectArgs:[d]});else {let f=y.meta[d],P=new ye(f,d,i);P.setRules(g,u),l.effect&&P.setSideEffect({fn:l.effect,args:l.effectArgs?l.effectArgs:[d]}),y.nodeBucket[d]=P;}y.state[d]=y.meta[d],l.forceNotify&&y.nodeBucket[d].forceNotify(),l.cacheStrategy=="none"&&y.nodeBucket[d].setUseCache(false);}}};var Re=c=>{let e=c||void 0;if(!e)throw Error("");return {SetStrategy:(t,o,r)=>{e(t).nodeBucket[o].setStrategy(r);}}};function we(){let c=new Map,e=new Map,n=new Set,t=(s,a)=>{c.set(s,a);let i=e.get(s);i&&i(a);};return {SetTrace:(s,a)=>{e.set(s,a);let i=c.get(s)||"idle";return a(i),{cancel:()=>{e.delete(s);}}},useTrace:()=>({apply:a=>{a.on("flow:start",()=>{n.forEach(i=>t(i,"idle")),n.clear(),c.clear();}),a.on("node:release",({path:i,type:d})=>{(d==1||d==2)&&(n.add(i),t(i,"pending"));}),a.on("node:pending",({path:i})=>{n.add(i),(!c.has(i)||c.get(i)==="idle")&&t(i,"pending");}),a.on("node:start",({path:i})=>{n.add(i),t(i,"calculating");}),a.on("node:success",({path:i})=>{t(i,"calculated");}),a.on("node:intercept",({path:i,type:d})=>{d==3&&t(i,"calculating"),d==6&&t(i,"idle");}),a.on("node:stagnate",({path:i})=>{t(i,"pending");}),a.on("node:error",({path:i})=>t(i,"error"));}})}}function Ee(c,e,n,t){let o=l=>{let y=c(),m=e(),g=new Set;return y.get(l)?.forEach(u=>g.add(u)),g.size===0?[]:Array.from(g).filter(u=>{let f=m.get(u)||new Set;return !Array.from(f).some(T=>g.has(T))})};return {GetNextDependency:l=>{let y=t();return Array.from(y.get(l)||[])},GetPrevDependency:l=>{let y=n();return Array.from(y.get(l)||[])},GetAllPrevDependency:l=>{let y=e();return Array.from(y.get(l)||[])},GetAllNextDependency:l=>{let y=c();return Array.from(y.get(l)||[])},rebuildDirectDependencyMaps:l=>{let y=new Map,m=new Map;for(let g of l){let u=o(g);y.set(g,new Set(u));for(let f of u)m.has(f)||m.set(f,new Set),m.get(f).add(g);}return {directNextMap:y,directPrevMap:m}}}}function be(c){let e=t=>{let o=[],r=[],s=new Map,a=t.size,i=0,d=0;for(let[l,y]of t)y===0&&r.push(l);if(r.length===0&&a>0)throw Error("Circular dependency detected");for(;r.length>0;){o.push([...r]);let l=[];for(let y of r){i++,s.set(y,d);let m=c.get(y);if(m)for(let g of m){let u=t.get(g)-1;t.set(g,u),u===0&&l.push(g);}}r=l,d++;}if(i<a)throw Error("Circular dependency detected");return {steps:o,levelMap:s}};return ()=>{let t=new Map;for(let o of c.keys()){let r=Array.from(c.get(o)||[]);t.has(o)||t.set(o,0);for(let s of r){let a=t.get(s)||0;t.set(s,++a);}}return e(t)}}var ce=()=>{let c=[];return {on:e=>(c.push(e),()=>{let n=c.indexOf(e);n>-1&&c.splice(n,1);}),call:e=>c.forEach(n=>{n(e);})}};function Ae(){let{on:c,call:e}=ce();return {onError:c,callOnError:e}}function Ge(){let{on:c,call:e}=ce();return {onSuccess:c,callOnSuccess:e}}var Oe=()=>{let c=new Set,e=new Map,n=(r,s)=>{e.get(r)?.forEach(a=>a(s));},t=(r,s)=>(e.has(r)||e.set(r,new Set),e.get(r).add(s),()=>e.get(r).delete(s));return {usePlugin:r=>{let s=new Set,a=(i,d)=>{let l=t(i,d);return s.add(l),l};return r.apply({on:a}),c.add(r),()=>{s.forEach(i=>i()),s.clear(),c.delete(r);}},emit:n}};function Fe(){let{on:c,call:e}=ce();return {onStart:c,callOnStart:e}}var Se=(t=>(t[t.CAUSALITY=0]="CAUSALITY",t[t.INVERSION=1]="INVERSION",t[t.REPERCUSSION=2]="REPERCUSSION",t))(Se||{});function Ke(c,e,n,t,o,r){let s=new Map,a=c.useGreedy;return async(d,l)=>{let m=Symbol("token"),g=d||"__NOTIFY_ALL__";s.set(g,m);let u=false;r.reset();let f=new Set,P=new Set,D=new Set;l.forEach(G=>{D.add(G),e.GetAllNextDependency(G).forEach(v=>D.add(v));});let T=new Map,S=new Map,z=new Map,V=[],F=n.Turnstile,Z=F.volatileLevels.size>0,b=Z?F.hasObserver:()=>false,K=Z?F.receiveGhosts:()=>[],$=Z?F.resolveGhosts:()=>[],J=Z?F.getTriggerKeys:()=>[],p=F?.volatileLevels||new Set,N=-1,h=new Set,w=e.GetPathToLevelMap(),x=0,C=0,L=G=>{e.GetAllNextDependency(G).forEach(ne=>{let _=w.get(ne)||0;_>C&&(C=_);});},q=new Set;d&&(f.add(d),q.add(d),L(d),o.flushPathSet.add(d));let se=d?[d]:l;r.shouldYield()&&(o.requestUpdate(),await r.yieldToMain());let de=se.map(async G=>{if(b(G)){let v=n.GetNodeByPath(G),ne=J(G);if(ne.length>0){let _=K(v,ne);return _ instanceof Promise&&(_=await _),{seed:G,hitTargets:_}}}return {seed:G,hitTargets:[]}});if((await Promise.all(de)).forEach(({seed:G,hitTargets:v})=>{if(v&&v.length>0){V.push(...v);let ne=w.get(G)||0;N=Math.max(N,ne);}}),(V.length>0||se.length>1)&&(o.requestUpdate(),await r.yieldToMain(),s.get(g)!==m))return;let le=V.length>0;l.forEach(G=>{if(!q.has(G))if(le){let v=w.get(G)??0;S.has(v)||S.set(v,new Set),S.get(v).add(G),t.emit("node:stagnate",{path:G,type:2});}else h.add(G),L(G);}),d?x=w.get(d)??0:x=Math.min(...l.map(G=>w.get(G)??0));let ge=performance.now();t.emit("flow:start",{path:g}),t.callOnStart({path:g});let he=false,Pe=30,me=G=>{let{target:v,trigger:ne}=G,_=false,ee=false,k=n.GetNodeByPath(v),ae=k.calledBy,O=[],R=[],A=false;if(k.calledBy===1){A=true,_=true,o.flushPathSet.add(v);let M=z.get(v);M&&(O.push(...M),z.delete(v));}let E=(M,I)=>{let U=w.get(M)??0,Q=ae===1||ae===2;Q&&f.has(M)&&(f.delete(M),t.emit("node:revive",{path:M,triggerPath:v}));let H=0;if(!(f.has(M)||P.has(M)||h.has(M))){if(T.has(M))H=T.get(M)-1;else {if(U>x&&T.size>Pe){S.has(U)||S.set(U,new Set),S.get(U).add(M),t.emit("node:intercept",{path:M,type:7});return}let te=e.GetPrevDependency(M),X=0;for(let re of te){if(f.has(re))continue;(w.get(re)??0)>x&&X++;}H=X;}if(H<=0){let te=h.has(M),X=P.has(M);if(te||X){t.emit("node:intercept",{path:M,type:X?3:3.1});return}T.delete(M);let re=n.GetNodeByPath(M);Q?re.calledBy=2:re.calledBy!==2&&(re.calledBy=0),h.add(M),t.emit("node:release",{path:M,type:I,detail:{path:v}});}else T.set(M,H);}},B=(M=[])=>{if(s.get(g)!==m)return;if(M.length){let U={},Q=k.proxy;for(let H of M){let te=(H.args||[]).reduce((X,re)=>(X[re]=Q[re],X),{});try{let X=H.fn(te);X&&typeof X=="object"&&Object.assign(U,X);}catch(X){}}for(let H in U)if(H in k.state)Object.is(k.state[H],U[H])||(k.state[H]=U[H],O.push(H));else throw {error:`wrong effect in ${String(k.path)}`};_=true;}_&&o.flushPathSet.add(v);let I=(U=[])=>{if(s.get(g)!==m)return;U&&U.length>0&&(V.push(...U),N=Math.max(N,w.get(v)||0)),O.length=0,t.emit("node:success",{path:v,calledBy:k.calledBy}),f.add(v);let Q=e.GetNextDependency(v);(_||ee)&&e.GetAllNextDependency(v).forEach(oe=>D.add(oe));let H=n.GetNodeByPath(v),te=H.calledBy!==0,X=w.get(v)??0,re=p.has(X)||V.length>0;for(let Y of Q){let oe=w.get(Y)??0;if(re&&oe>=X){if(S.has(oe)||S.set(oe,new Set),S.get(oe).add(Y),t.emit("node:stagnate",{path:Y,type:2}),te){let fe=n.GetNodeByPath(Y);fe.calledBy=2,f.delete(Y);}continue}if(!te){if(f.has(Y)){t.emit("node:intercept",{path:Y,type:2});continue}if(P.has(Y)||h.has(Y)){t.emit("node:intercept",{path:Y,type:P.has(Y)?3:3.1});continue}}if(_||ee)E(Y,1);else if(T.has(Y))E(Y,2);else {let fe=w.get(Y);S.has(fe)||S.set(fe,new Set);let ve=S.get(fe);ve.has(Y)||(ve.add(Y),t.emit("node:stagnate",{path:Y,type:1}));}}P.delete(v),H.calledBy=0,(async()=>{if(!u){let Y=P.size,oe=h.size;t.emit("flow:fire",{path:v,type:1,detail:{active:Y,pending:oe,blocked:T.size}}),ue();}})();};if(b(v)&&O.length>0){let U=n.GetNodeByPath(v),Q=K(U,O);Q instanceof Promise||Q&&typeof Q.then=="function"?Q.then(I).catch(j):I(Q);}else I([]);},j=M=>{t.emit("node:error",{path:v,error:M});let I=Symbol("abort");s.set(g,I),h.clear(),T.clear(),P.clear(),t.callOnError(M);},W=(M,I)=>{let U=false;M!==k.state[I]&&(k.state[I]=M,_=true,O.push(String(I)),t.emit("node:bucket:success",{path:v,key:String(I),value:M,calledBy:k.calledBy}),k.notifyKeys.has(I)&&(U=true)),k.nodeBucket[I].isForceNotify()&&(ee=true),(U||ee)&&L(v);};t.emit("node:start",{path:v,calledBy:k.calledBy});try{let M=[];for(let I in k.nodeBucket){let U=k.nodeBucket[I];if(M.push(...U.getSideEffect()),A){t.emit("node:bucket:success",{path:v,key:String(I),value:k.state[I],calledBy:k.calledBy}),U.isForceNotify()&&(ee=!0),k.notifyKeys.has(I)&&L(v);continue}let Q=U.evaluate({affectKey:I,triggerPath:ne,GetRenderSchemaByPath:H=>n.GetNodeByPath(H).proxy,getStateByPath:H=>n.GetNodeByPath(H).state,GetToken:()=>m});if(Q instanceof Promise){let H=Q.then(te=>{s.get(g)===m&&W(te,I);});R.push(H);}else W(Q,I);}if(R.length>0)return Promise.all(R).then(()=>{B(M);}).catch(j);B(M);return}catch(M){j(M);}},ue=async()=>{if(s.get(g)!==m){u=false;return}u=true;let G=r.getIsFirstFrame(),v=0,ne=()=>a&&G?30:1/0,_=0,ee=ne();try{for(;s.get(g)===m;){let k=_>=ee,ae=r.shouldYield();if(k||ae){if(_>0&&(v++,(G||v%2===0)&&o.requestUpdate()),await r.yieldToMain(),s.get(g)!==m)break;_=0,G=r.getIsFirstFrame();}if(h.size>0&&P.size<10){for(let O of h){if(P.size>=10||_>=ee)break;let R=w.get(O)??0,A=e.GetPrevDependency(O),E=A.length>1;if((!a||E)&&R>x){h.delete(O);let W=A.filter(M=>D.has(M)&&!f.has(M)).length;T.set(O,W||0),t.emit("node:intercept",{path:O,type:W>0?4:5,detail:{targetLevel:R,currentLevel:x,pendingParentsCount:W}});continue}h.delete(O),P.add(O);let j=n.GetNodeByPath(O);if(t.emit("node:processing",{path:O,calledBy:j.calledBy}),me({target:O,trigger:d}),_++,_>=ee||r.shouldYield())break}if(h.size>0)continue}if(_<ee&&a&&T.size>0&&P.size<10){let O=!1,R=0;for(let[A,E]of T)if(E<=0){let B=w.get(A)??0,j=e.GetPrevDependency(A);if(B>x&&j.length>1)continue;if(T.delete(A),h.add(A),R++,O=!0,t.emit("node:release",{path:A,type:4}),R>=ee)break}if(R>0)continue;if(O){if(r.shouldYield()&&(await r.yieldToMain(),s.get(g)!==m))break;continue}}if(P.size===0&&h.size===0){if(V.length>0){let E=!1,B=x,j=Array.from(new Set(V));V.length=0;for(let W of j){let M=n.GetNodeByPath(W),I=$(M);if(I&&I.length>0){E=!0,M.calledBy=1,z.set(W,I),f.delete(W),T.delete(W),h.add(W);let U=w.get(W)??0;U<B&&(B=U),L(W),o.flushPathSet.add(W);}}if(E){if(B<x&&(x=B),o.requestUpdate(),r.shouldYield()&&(await r.yieldToMain(),s.get(g)!==m))break;continue}}let O=new Set;for(let E of S.keys())O.add(E);for(let[E]of T){let B=w.get(E)??0;B>x&&O.add(B);}let R=Array.from(O).sort((E,B)=>E-B),A=R[0];if(R.length>0&&A<=C){let E=R[0];if(E<=C){x=E;let B=S.get(E);B&&(B.forEach(j=>h.add(j)),S.delete(E));for(let[j]of T)(w.get(j)??0)===E&&(T.delete(j),h.add(j),t.emit("node:release",{path:j,type:3,detail:{level:E}}));continue}}else {S.forEach((E,B)=>{E.forEach(j=>{f.add(j),t.emit("node:intercept",{path:j,type:6});});}),S.clear();for(let[E]of T)f.add(E),t.emit("node:intercept",{path:E,type:6});T.clear();break}}h.size>0&&P.size>=10&&t.emit("flow:wait",{type:2});break}}finally{u=false;let k=P.size+T.size+h.size,ae=F.inFlightCount||0;if(o.requestUpdate(),k===0&&ae===0){if(s.get(g)===m&&!he){he=true,t.emit("flow:end",{type:1}),F.resetCounters();let O=performance.now();N=-1,t.emit("flow:success",{duration:(O-ge).toFixed(2.1)+"ms"}),Promise.resolve().then(()=>{t.callOnSuccess();});}}else {let O=k===0&&ae>0?3:1;t.emit("flow:wait",{type:O,detail:{nums:P.size,asyncNums:ae}});}}};ue();}}function Te(c){let{path:e,uid:n,type:t,meta:o,dirtySignal:r,state:s}=c,a=null,i=["path","uid","type","dependOn","nodeBucket"],l={path:e,uid:n,type:t,meta:o,dirtySignal:r,createView:(y={})=>{if(a&&Object.keys(y).length===0)return a;let m=new Proxy(y,{get(g,u){let f=u;return Reflect.has(g,u)?Reflect.get(g,u):f in c.state?c.state[f]:f in c?c[f]:o&&f in o?o[f]:Reflect.get(g,u)},set(g,u,f){let P=u;return P in c.state?(c.state[P]=f,true):Reflect.set(g,u,f)},ownKeys(g){let u=new Set([...Reflect.ownKeys(g),...Object.keys(s||{}),...Object.keys(o||{}),...i]);return Array.from(u)},getOwnPropertyDescriptor(g,u){let f=u;return Reflect.has(g,u)||s&&f in s||o&&f in o||i.includes(f)?{enumerable:true,configurable:true}:Reflect.getOwnPropertyDescriptor(g,u)}});return a=m,m}};return "children"in c?{...l,children:c.children}:{...l,state:c.state,nodeBucket:c.nodeBucket,notifyKeys:c.notifyKeys,dependOn:c.dependOn,calledBy:0,get proxy(){return a}}}var Ie=(c={frameQuota:12})=>{let e=performance.now(),n=0,t=false,o=()=>!!navigator?.scheduling?.isInputPending?.({includeContinuous:true});return {getIsFirstFrame:()=>t,reset(){e=performance.now(),n=0,t=true;},shouldYield(){let r=performance.now();return n++,!!((n>=5||t)&&(n=0,r-e>c.frameQuota||o()))},async yieldToMain(){return new Promise(r=>{De(()=>{e=performance.now(),n=0,t&&(t=false),r();});})}}},De=c=>{let{port1:e,port2:n}=new MessageChannel;e.onmessage=c,n.postMessage(null);};var Ce=(c,e,n,t,o)=>{let s=new Map,a=new Map,i=new Set,d=n,l=0;return {useEntangle:u=>{let{observer:f,target:P,triggerKeys:D,emit:T}=u;if(!D||D.length===0){t("entangle:warn",{path:f,type:"no_keys"});return}s.has(f)||s.set(f,new Map);let S=s.get(f);D.forEach(z=>{S.has(z)||S.set(z,[]),S.get(z).push({target:P,emit:T,count:0});});},updateEntangleLevel:()=>{let u=e();if(!(!u||u.size===0)){i.clear();for(let f of s.keys()){let P=u.get(f);P!==void 0?i.add(P):t("entangle:warn",{path:f,type:"no_level"});}}},Turnstile:{volatileLevels:i,get inFlightCount(){return l},get hasPendingGhosts(){for(let u of a.values())if(u.length>0)return true;return false},hasObserver:u=>s.has(u),getTriggerKeys:u=>{let f=s.get(u);return f?Array.from(f.keys()):[]},receiveGhosts:(u,f=[])=>{let P=u.path,D=[],T=s.get(P);if(!T||f.length===0)return D;let S=new Set;f.forEach(b=>{let K=T.get(b);K&&K.forEach($=>S.add($));});let z=[],V=b=>b instanceof Promise||b!==null&&typeof b=="object"&&typeof b.then=="function",F=b=>{let K=b.target;if(b.count>=100){t("entangle:blocked",{observer:P,target:K,count:b.count});return}let $=d(K),J=b.emit(u.proxy,$.proxy),p=N=>{N&&N.key!==void 0&&(b.count++,a.has(K)||a.set(K,[]),a.get(K).push({weight:1,...N}),D.push(K));};if(V(J)){l++;let N=(async()=>{try{let h=await J;p(h);}catch(h){t("node:error",{path:P,error:h}),o({path:P,error:h});}finally{l--;}})();z.push(N);}else p(J);},Z=Array.from(S);return (async()=>{for(let b=0;b<Z.length;b++)F(Z[b]),c.shouldYield()&&await c.yieldToMain();if(z.length>0)for(let K=0;K<z.length;K+=50){let $=z.slice(K,K+50);await Promise.all($),c.shouldYield()&&await c.yieldToMain();}return Array.from(new Set(D))})()},resolveGhosts:u=>{let f=u.path,P=a.get(f);if(!P||P.length===0)return [];let D=[],T=new Map;for(let S of P)T.has(S.key)||T.set(S.key,[]),T.get(S.key).push(S);for(let[S,z]of T.entries()){let V=u.state[S],F=z.filter(b=>b.delta!==void 0),Z=z.filter(b=>b.value!==void 0);if(Z.length>0&&(V=Z.reduce((K,$)=>($.weight??1)>=(K.weight??1)?$:K).value),F.length>0){let b=F.reduce(($,J)=>$+J.delta,0),K=(typeof V=="number"?V:0)+b;V=Math.max(0,parseFloat(K.toFixed(6)));}Object.is(u.state[S],V)||(u.state[S]=V,D.push(S));}return a.set(f,[]),D.length>0?D:[]},resetCounters:()=>{for(let u of s.values())for(let f of u.values())f.forEach(P=>P.count=0);}}}};function Be(c,e,n,t,o){let r=Ie(),s=0,a=new Map,i=new Map,d=new Map,l=false,y=new Set,g=async()=>{let p=Array.from(y);if(y.clear(),"signalTrigger"in o&&typeof o.signalTrigger=="function")for(let N of p){let h=F(N);o.signalTrigger(h.dirtySignal);}else "emit"in o&&o.emit(p);},u=()=>{l||(l=true,requestAnimationFrame(()=>{try{for(;y.size>0;)g();}finally{l=false;}}));},{useEntangle:f,updateEntangleLevel:P,Turnstile:D}=Ce(r,e.GetPathToLevelMap,F,t.emit,t.callOnError),T=Ke({useGreedy:c.useGreedy},e,{GetNodeByPath:F,Turnstile:D},t,{requestUpdate:u,flushPathSet:y},r),S=p=>{throw new Error(`[MeshFlow] Duplicate Path: ${p}`)},z=p=>{a.has(p.path)&&S(String(p.path));let N=++s,h={path:p.path,getNode:C=>F(C)},w=(C,L="value")=>{let q=C({...h}),se=F(p.path);if(n.createHistoryAction&&n.pushIntoHistory){let de=n.createHistoryAction([{path:p.path,value:se.state[L]},{path:p.path,value:q}],ie=>{let le=F(ie.path);le.state[L]=ie.value,b(ie.path);});n.pushIntoHistory(de);}se.state[L]=q,b(p.path);};p.notifyKeys.size==0&&p.notifyKeys.add("value");let x=Te({uid:N,type:p.type,path:p.path,state:p.state,meta:p.meta,nodeBucket:p.nodeBucket,dirtySignal:"signalCreator"in o?o.signalCreator():void 0,notifyKeys:p.notifyKeys,dependOn:w});return a.set(x.path,N),i.set(N,x),x},V=p=>{a.has(p.path)&&S(String(p.path));let N=++s,h=Te({uid:N,type:p.type,path:p.path,state:{},meta:p,nodeBucket:{},children:p.children});return a.set(h.path,N),d.set(N,h),h};function F(p){let N=a.get(p),h=i.get(N);if(!h)throw Error("wrong ID");return h}function Z(p){let N=a.get(p);return d.get(N)}let b=p=>{if(!F(p))throw Error("Node undefined");y.add(p),u();let h=e.GetNextDependency(p);K(h,p);};function K(p,N){T(N,p);}return {registerNode:z,registerGroupNode:V,GetNodeByPath:F,GetGroupByPath:Z,notify:b,notifyAll:async()=>{Promise.resolve().then(async()=>{let p=e.GetDependencyOrder();if(!p||p.length===0)return;let N=p[0];try{T(null,N);}catch(h){throw t.callOnError(h),h}finally{u();}});},batchNotify:p=>{if(!p||p.length===0)return;if(n.createHistoryAction&&n.pushIntoHistory){let h=n.createHistoryAction([p.map(w=>({path:w.path,key:w.key,value:F(w.path).state[w.key]})),p.map(w=>({path:w.path,key:w.key,value:w.value}))],w=>{let x=new Set;w.forEach(C=>{let L=F(C.path);L.state[C.key]=C.value,y.add(C.path),x.add(C.path);}),u(),x.size>0&&T(null,Array.from(x));});n.pushIntoHistory(h);}let N=new Set;p.forEach(h=>{let w=F(h.path);w.state[h.key]=h.value,y.add(h.path),N.add(h.path);}),u(),N.size>0&&T(null,Array.from(N));},useEntangle:f,updateEntangleLevel:P,UITrigger:o,UidToNodeMap:i}}function ke(c,e){let n=false,t=false,o=new Map,r=new Map,s=new Map,a=new Map,i=[],d=new Map,{GetNextDependency:y,GetPrevDependency:m,GetAllPrevDependency:g,GetAllNextDependency:u,rebuildDirectDependencyMaps:f}=Ee(()=>o,()=>r,()=>a,()=>s),P={},D={};if(e.modules.useHistory){let R=e.modules.useHistory,A;R.isMeshModuleInited?A=R:A=R();let{Undo:E,Redo:B,PushIntoHistory:j,CreateHistoryAction:W,updateUndoSize:M,updateRedoSize:I}=A();P.pushIntoHistory=j,P.createHistoryAction=W,D={Undo:E,Redo:B,updateUndoSize:M,updateRedoSize:I};}let T=!!e.modules.useMeshRenderGate,S={};if(T){let R=e.modules.useMeshRenderGate.isMeshModuleInited,A=e.modules.useMeshRenderGate;S=(R?A:A())(()=>L);}let{onError:z,callOnError:V}=Ae(),{onSuccess:F,callOnSuccess:Z}=Ge(),{onStart:b,callOnStart:K}=Fe(),{emit:$,usePlugin:J}=Oe(),{SetTrace:p,useTrace:N}=we(),h=N();J(h);let w=T?{...S}:{...e.UITrigger},x=Be({useGreedy:e.config.useGreedy},{GetDependencyOrder:()=>i,GetAllNextDependency:u,GetNextDependency:y,GetPrevDependency:m,GetAllPrevDependency:g,GetPathToLevelMap:()=>d},P,{callOnError:V,callOnSuccess:Z,callOnStart:K,emit:$},w),{GetGroupByPath:C,GetNodeByPath:L,notifyAll:q,useEntangle:se,updateEntangleLevel:de}=x;T&&S.init();let ie={};if(e.modules.useInternalForm){let{uiSchema:R,GetFormData:A}=e.modules.useInternalForm(x,c);ie={uiSchema:R,GetFormData:A};}let le={};if(e.modules.useSchemaValidators){let{SetValidators:R}=e.modules.useSchemaValidators(L);le={SetValidators:R};}let{SetRule:ge,SetRules:he}=Ne(L,o,r),{SetStrategy:Pe}=Re(L),me=be(o),ue=()=>{let R=me();i=R.steps,d=R.levelMap,de();},G=()=>{t||(t=true,Promise.resolve().then(()=>{if(ue(),n){let{directNextMap:R,directPrevMap:A}=f(i.flat());s=R,a=A;}}).finally(()=>{t=false,n=false;}));};return {SetRule:(R,A,E,B)=>{ge(R,A,E,B),n=true,G();},SetRules:(R,A,E,B)=>{he(R,A,E,B),n=true,G();},SetStrategy:Pe,useEntangle:se,SetTrace:p,usePlugin:J,SetValue:(R,A,E)=>{L(R).dependOn(()=>E,A);},GetValue:(R,A="value")=>L(R)[A],SetValues:R=>{x.batchNotify(R);},GetGroupByPath:C,notifyAll:async()=>{ue(),await q();},GetAllDependency:()=>o,GetDependencyOrder:()=>i,historyExports:D,formExports:ie,validatorExports:le,batchRenderExport:S,hasRenderGate:()=>T,onError:z,onSuccess:F,onStart:b,scheduler:x}}var pe=new Map,Le=(c,e,n)=>{try{if(pe.has(c))throw Error("engineID repeated");let t=ke(e,{config:n.config||{useGreedy:!1},UITrigger:n.UITrigger,modules:n.modules??{},plugins:{}}),{SetRule:o,SetRules:r,SetValues:s,SetStrategy:a,SetValue:i,GetValue:d,usePlugin:l,useEntangle:y,GetGroupByPath:m,notifyAll:g,SetTrace:u,GetAllDependency:f,GetDependencyOrder:P,historyExports:D,formExports:T,validatorExports:S,batchRenderExport:z,hasRenderGate:V,onError:F,onSuccess:Z,onStart:b,scheduler:K}=t,$={config:{SetRule:o,SetRules:r,SetStrategy:a,notifyAll:g,SetTrace:u,usePlugin:l,hasRenderGate:V,useEntangle:y},data:{SetValue:i,GetValue:d,SetValues:s,GetGroupByPath:m},dependency:{GetAllDependency:f,GetDependencyOrder:P},hooks:{onError:F,onSuccess:Z,onStart:b}},J=(h,w,x)=>{!w||typeof w!="object"||Object.keys(w).forEach(C=>{let L=w[C];if(typeof L=="object"&&L!==null)h[C]=h[C]||{},J(h[C],L,x);else if(typeof L=="function"){let q=C;if(q==="useMeshRenderGate")q="render";else if(q.startsWith("use")){let se=q.slice(3);q=se.charAt(0).toLowerCase()+se.slice(1);}C==="useHistory"&&x.exports.history&&Object.keys(x.exports.history).length>0?h[q]=x.exports.history:C==="useInternalForm"&&x.exports.form&&Object.keys(x.exports.form).length>0?h[q]=x.exports.form:C==="useSchemaValidators"&&x.exports.validator&&Object.keys(x.exports.validator).length>0?h[q]=x.exports.validator:C==="useMeshRenderGate"&&x.exports.render?h[q]=x.exports.render:h[q]=L(x.scheduler,x.Schema);}});},p={...$,modules:{}},N=n.modules;return N&&J(p.modules,N,{scheduler:K,Schema:e,exports:{history:D,form:T,validator:S,render:z}}),pe.set(c,p),p}catch(t){throw Error(t)}},Gt=()=>(c,e,n)=>Ve(c,e,n),Ot=c=>{let e=pe.get(c);if(!e)throw Error(`[MeshFlow] Engine ID "${String(c)}" not found. Ensure it is initialized with useMeshFlow.`);return e},Ft=c=>{pe.delete(c);},Ve=Le;export{Se as TriggerCause,Ft as deleteEngine,Ot as useEngine,Le as useEngineManager,Ve as useMeshFlow,Gt as useMeshFlowDefiner,Be as useScheduler};
package/metafile-cjs.json CHANGED
@@ -1 +1 @@
1
- {"inputs":{"utils/core/engine/bucket.ts":{"bytes":17020,"imports":[],"format":"esm"},"utils/core/dependency/useSetRule.ts":{"bytes":8165,"imports":[{"path":"utils/core/engine/bucket.ts","kind":"import-statement","original":"../engine/bucket"},{"path":"../types/types","kind":"import-statement","external":true},{"path":"../utils/util","kind":"import-statement","external":true}],"format":"esm"},"utils/core/dependency/useStrategy.ts":{"bytes":526,"imports":[{"path":"../engine/bucket","kind":"import-statement","external":true},{"path":"../utils/util","kind":"import-statement","external":true}],"format":"esm"},"utils/core/plugins/useExecutionTrace.ts":{"bytes":3723,"imports":[{"path":"../types/types","kind":"import-statement","external":true}],"format":"esm"},"utils/core/dependency/useDepenency.ts":{"bytes":6099,"imports":[],"format":"esm"},"utils/core/hooks/useCreateHook.ts":{"bytes":437,"imports":[],"format":"esm"},"utils/core/hooks/useOnError.ts":{"bytes":481,"imports":[{"path":"utils/core/hooks/useCreateHook.ts","kind":"import-statement","original":"./useCreateHook"},{"path":"../types/types","kind":"import-statement","external":true}],"format":"esm"},"utils/core/hooks/useOnSuccess.ts":{"bytes":216,"imports":[{"path":"utils/core/hooks/useCreateHook.ts","kind":"import-statement","original":"./useCreateHook"}],"format":"esm"},"utils/core/plugins/usePlugin.ts":{"bytes":1793,"imports":[{"path":"../types/types","kind":"import-statement","external":true}],"format":"esm"},"utils/core/hooks/useOnStart.ts":{"bytes":210,"imports":[{"path":"utils/core/hooks/useCreateHook.ts","kind":"import-statement","original":"./useCreateHook"}],"format":"esm"},"utils/core/types/types.ts":{"bytes":5514,"imports":[{"path":"../engine/bucket","kind":"import-statement","external":true},{"path":"../utils/util","kind":"import-statement","external":true}],"format":"esm"},"utils/core/engine/useMeshTask.ts":{"bytes":55872,"imports":[{"path":"../utils/util","kind":"import-statement","external":true},{"path":"utils/core/types/types.ts","kind":"import-statement","original":"../types/types"}],"format":"esm"},"utils/core/engine/useMeshNode.ts":{"bytes":3856,"imports":[{"path":"../types/types","kind":"import-statement","external":true}],"format":"esm"},"utils/core/utils/util.ts":{"bytes":5758,"imports":[],"format":"esm"},"utils/core/dependency/useSetEntangle.ts":{"bytes":8443,"imports":[{"path":"../types/types","kind":"import-statement","external":true},{"path":"../utils/util","kind":"import-statement","external":true}],"format":"esm"},"utils/core/engine/useScheduler.ts":{"bytes":11971,"imports":[{"path":"../types/types","kind":"import-statement","external":true},{"path":"utils/core/engine/useMeshTask.ts","kind":"import-statement","original":"./useMeshTask"},{"path":"utils/core/engine/useMeshNode.ts","kind":"import-statement","original":"./useMeshNode"},{"path":"utils/core/utils/util.ts","kind":"import-statement","original":"../utils/util"},{"path":"utils/core/dependency/useSetEntangle.ts","kind":"import-statement","original":"../dependency/useSetEntangle"}],"format":"esm"},"utils/core/engine/useEngineInstance.ts":{"bytes":11270,"imports":[{"path":"utils/core/dependency/useSetRule.ts","kind":"import-statement","original":"../dependency/useSetRule"},{"path":"utils/core/dependency/useStrategy.ts","kind":"import-statement","original":"../dependency/useStrategy"},{"path":"utils/core/plugins/useExecutionTrace.ts","kind":"import-statement","original":"../plugins/useExecutionTrace"},{"path":"utils/core/dependency/useDepenency.ts","kind":"import-statement","original":"../dependency/useDepenency"},{"path":"utils/core/hooks/useOnError.ts","kind":"import-statement","original":"../hooks/useOnError"},{"path":"utils/core/hooks/useOnSuccess.ts","kind":"import-statement","original":"../hooks/useOnSuccess"},{"path":"utils/core/plugins/usePlugin.ts","kind":"import-statement","original":"../plugins/usePlugin"},{"path":"utils/core/hooks/useOnStart.ts","kind":"import-statement","original":"../hooks/useOnStart"},{"path":"../types/types","kind":"import-statement","external":true},{"path":"utils/core/engine/useScheduler.ts","kind":"import-statement","original":"./useScheduler"},{"path":"../utils/util","kind":"import-statement","external":true},{"path":"../dependency/useSetEntangle","kind":"import-statement","external":true}],"format":"esm"},"utils/core/engine/useEngineManager.ts":{"bytes":11003,"imports":[{"path":"../types/types","kind":"import-statement","external":true},{"path":"../utils/util","kind":"import-statement","external":true},{"path":"utils/core/engine/useEngineInstance.ts","kind":"import-statement","original":"./useEngineInstance"},{"path":"utils/core/types/types.ts","kind":"import-statement","original":"../types/types"},{"path":"utils/core/engine/useScheduler.ts","kind":"import-statement","original":"../engine/useScheduler"}],"format":"esm"}},"outputs":{"lib-dist/index.js":{"imports":[],"exports":["TriggerCause","deleteEngine","useEngine","useEngineManager","useMeshFlow","useMeshFlowDefiner","useScheduler"],"entryPoint":"utils/core/engine/useEngineManager.ts","inputs":{"utils/core/engine/bucket.ts":{"bytesInOutput":4236},"utils/core/dependency/useSetRule.ts":{"bytesInOutput":1754},"utils/core/dependency/useStrategy.ts":{"bytesInOutput":115},"utils/core/plugins/useExecutionTrace.ts":{"bytesInOutput":760},"utils/core/dependency/useDepenency.ts":{"bytesInOutput":1244},"utils/core/hooks/useCreateHook.ts":{"bytesInOutput":122},"utils/core/hooks/useOnError.ts":{"bytesInOutput":68},"utils/core/hooks/useOnSuccess.ts":{"bytesInOutput":72},"utils/core/plugins/usePlugin.ts":{"bytesInOutput":316},"utils/core/hooks/useOnStart.ts":{"bytesInOutput":68},"utils/core/types/types.ts":{"bytesInOutput":117},"utils/core/engine/useMeshTask.ts":{"bytesInOutput":7378},"utils/core/engine/useMeshNode.ts":{"bytesInOutput":932},"utils/core/utils/util.ts":{"bytesInOutput":472},"utils/core/dependency/useSetEntangle.ts":{"bytesInOutput":2273},"utils/core/engine/useScheduler.ts":{"bytesInOutput":2503},"utils/core/engine/useEngineInstance.ts":{"bytesInOutput":2207},"utils/core/engine/useEngineManager.ts":{"bytesInOutput":1821}},"bytes":26606}}}
1
+ {"inputs":{"utils/core/engine/bucket.ts":{"bytes":17020,"imports":[],"format":"esm"},"utils/core/dependency/useSetRule.ts":{"bytes":8165,"imports":[{"path":"utils/core/engine/bucket.ts","kind":"import-statement","original":"../engine/bucket"},{"path":"../types/types","kind":"import-statement","external":true},{"path":"../utils/util","kind":"import-statement","external":true}],"format":"esm"},"utils/core/dependency/useStrategy.ts":{"bytes":526,"imports":[{"path":"../engine/bucket","kind":"import-statement","external":true},{"path":"../utils/util","kind":"import-statement","external":true}],"format":"esm"},"utils/core/plugins/useExecutionTrace.ts":{"bytes":3723,"imports":[{"path":"../types/types","kind":"import-statement","external":true}],"format":"esm"},"utils/core/dependency/useDepenency.ts":{"bytes":6099,"imports":[],"format":"esm"},"utils/core/hooks/useCreateHook.ts":{"bytes":437,"imports":[],"format":"esm"},"utils/core/hooks/useOnError.ts":{"bytes":481,"imports":[{"path":"utils/core/hooks/useCreateHook.ts","kind":"import-statement","original":"./useCreateHook"},{"path":"../types/types","kind":"import-statement","external":true}],"format":"esm"},"utils/core/hooks/useOnSuccess.ts":{"bytes":216,"imports":[{"path":"utils/core/hooks/useCreateHook.ts","kind":"import-statement","original":"./useCreateHook"}],"format":"esm"},"utils/core/plugins/usePlugin.ts":{"bytes":1793,"imports":[{"path":"../types/types","kind":"import-statement","external":true}],"format":"esm"},"utils/core/hooks/useOnStart.ts":{"bytes":210,"imports":[{"path":"utils/core/hooks/useCreateHook.ts","kind":"import-statement","original":"./useCreateHook"}],"format":"esm"},"utils/core/types/types.ts":{"bytes":5512,"imports":[{"path":"../engine/bucket","kind":"import-statement","external":true},{"path":"../utils/util","kind":"import-statement","external":true}],"format":"esm"},"utils/core/engine/useMeshTask.ts":{"bytes":55872,"imports":[{"path":"../utils/util","kind":"import-statement","external":true},{"path":"utils/core/types/types.ts","kind":"import-statement","original":"../types/types"}],"format":"esm"},"utils/core/engine/useMeshNode.ts":{"bytes":3856,"imports":[{"path":"../types/types","kind":"import-statement","external":true}],"format":"esm"},"utils/core/utils/util.ts":{"bytes":5758,"imports":[],"format":"esm"},"utils/core/dependency/useSetEntangle.ts":{"bytes":8443,"imports":[{"path":"../types/types","kind":"import-statement","external":true},{"path":"../utils/util","kind":"import-statement","external":true}],"format":"esm"},"utils/core/engine/useScheduler.ts":{"bytes":12098,"imports":[{"path":"../types/types","kind":"import-statement","external":true},{"path":"utils/core/engine/useMeshTask.ts","kind":"import-statement","original":"./useMeshTask"},{"path":"utils/core/engine/useMeshNode.ts","kind":"import-statement","original":"./useMeshNode"},{"path":"utils/core/utils/util.ts","kind":"import-statement","original":"../utils/util"},{"path":"utils/core/dependency/useSetEntangle.ts","kind":"import-statement","original":"../dependency/useSetEntangle"}],"format":"esm"},"utils/core/engine/useEngineInstance.ts":{"bytes":11270,"imports":[{"path":"utils/core/dependency/useSetRule.ts","kind":"import-statement","original":"../dependency/useSetRule"},{"path":"utils/core/dependency/useStrategy.ts","kind":"import-statement","original":"../dependency/useStrategy"},{"path":"utils/core/plugins/useExecutionTrace.ts","kind":"import-statement","original":"../plugins/useExecutionTrace"},{"path":"utils/core/dependency/useDepenency.ts","kind":"import-statement","original":"../dependency/useDepenency"},{"path":"utils/core/hooks/useOnError.ts","kind":"import-statement","original":"../hooks/useOnError"},{"path":"utils/core/hooks/useOnSuccess.ts","kind":"import-statement","original":"../hooks/useOnSuccess"},{"path":"utils/core/plugins/usePlugin.ts","kind":"import-statement","original":"../plugins/usePlugin"},{"path":"utils/core/hooks/useOnStart.ts","kind":"import-statement","original":"../hooks/useOnStart"},{"path":"../types/types","kind":"import-statement","external":true},{"path":"utils/core/engine/useScheduler.ts","kind":"import-statement","original":"./useScheduler"},{"path":"../utils/util","kind":"import-statement","external":true},{"path":"../dependency/useSetEntangle","kind":"import-statement","external":true}],"format":"esm"},"utils/core/engine/useEngineManager.ts":{"bytes":11003,"imports":[{"path":"../types/types","kind":"import-statement","external":true},{"path":"../utils/util","kind":"import-statement","external":true},{"path":"utils/core/engine/useEngineInstance.ts","kind":"import-statement","original":"./useEngineInstance"},{"path":"utils/core/types/types.ts","kind":"import-statement","original":"../types/types"},{"path":"utils/core/engine/useScheduler.ts","kind":"import-statement","original":"../engine/useScheduler"}],"format":"esm"}},"outputs":{"lib-dist/index.js":{"imports":[],"exports":["TriggerCause","deleteEngine","useEngine","useEngineManager","useMeshFlow","useMeshFlowDefiner","useScheduler"],"entryPoint":"utils/core/engine/useEngineManager.ts","inputs":{"utils/core/engine/bucket.ts":{"bytesInOutput":4236},"utils/core/dependency/useSetRule.ts":{"bytesInOutput":1754},"utils/core/dependency/useStrategy.ts":{"bytesInOutput":115},"utils/core/plugins/useExecutionTrace.ts":{"bytesInOutput":760},"utils/core/dependency/useDepenency.ts":{"bytesInOutput":1244},"utils/core/hooks/useCreateHook.ts":{"bytesInOutput":122},"utils/core/hooks/useOnError.ts":{"bytesInOutput":68},"utils/core/hooks/useOnSuccess.ts":{"bytesInOutput":72},"utils/core/plugins/usePlugin.ts":{"bytesInOutput":316},"utils/core/hooks/useOnStart.ts":{"bytesInOutput":68},"utils/core/types/types.ts":{"bytesInOutput":117},"utils/core/engine/useMeshTask.ts":{"bytesInOutput":7378},"utils/core/engine/useMeshNode.ts":{"bytesInOutput":932},"utils/core/utils/util.ts":{"bytesInOutput":472},"utils/core/dependency/useSetEntangle.ts":{"bytesInOutput":2273},"utils/core/engine/useScheduler.ts":{"bytesInOutput":2534},"utils/core/engine/useEngineInstance.ts":{"bytesInOutput":2207},"utils/core/engine/useEngineManager.ts":{"bytesInOutput":1821}},"bytes":26637}}}
package/metafile-esm.json CHANGED
@@ -1 +1 @@
1
- {"inputs":{"utils/core/engine/bucket.ts":{"bytes":17020,"imports":[],"format":"esm"},"utils/core/dependency/useSetRule.ts":{"bytes":8165,"imports":[{"path":"utils/core/engine/bucket.ts","kind":"import-statement","original":"../engine/bucket"},{"path":"../types/types","kind":"import-statement","external":true},{"path":"../utils/util","kind":"import-statement","external":true}],"format":"esm"},"utils/core/dependency/useStrategy.ts":{"bytes":526,"imports":[{"path":"../engine/bucket","kind":"import-statement","external":true},{"path":"../utils/util","kind":"import-statement","external":true}],"format":"esm"},"utils/core/plugins/useExecutionTrace.ts":{"bytes":3723,"imports":[{"path":"../types/types","kind":"import-statement","external":true}],"format":"esm"},"utils/core/dependency/useDepenency.ts":{"bytes":6099,"imports":[],"format":"esm"},"utils/core/hooks/useCreateHook.ts":{"bytes":437,"imports":[],"format":"esm"},"utils/core/hooks/useOnError.ts":{"bytes":481,"imports":[{"path":"utils/core/hooks/useCreateHook.ts","kind":"import-statement","original":"./useCreateHook"},{"path":"../types/types","kind":"import-statement","external":true}],"format":"esm"},"utils/core/hooks/useOnSuccess.ts":{"bytes":216,"imports":[{"path":"utils/core/hooks/useCreateHook.ts","kind":"import-statement","original":"./useCreateHook"}],"format":"esm"},"utils/core/plugins/usePlugin.ts":{"bytes":1793,"imports":[{"path":"../types/types","kind":"import-statement","external":true}],"format":"esm"},"utils/core/hooks/useOnStart.ts":{"bytes":210,"imports":[{"path":"utils/core/hooks/useCreateHook.ts","kind":"import-statement","original":"./useCreateHook"}],"format":"esm"},"utils/core/types/types.ts":{"bytes":5514,"imports":[{"path":"../engine/bucket","kind":"import-statement","external":true},{"path":"../utils/util","kind":"import-statement","external":true}],"format":"esm"},"utils/core/engine/useMeshTask.ts":{"bytes":55872,"imports":[{"path":"../utils/util","kind":"import-statement","external":true},{"path":"utils/core/types/types.ts","kind":"import-statement","original":"../types/types"}],"format":"esm"},"utils/core/engine/useMeshNode.ts":{"bytes":3856,"imports":[{"path":"../types/types","kind":"import-statement","external":true}],"format":"esm"},"utils/core/utils/util.ts":{"bytes":5758,"imports":[],"format":"esm"},"utils/core/dependency/useSetEntangle.ts":{"bytes":8443,"imports":[{"path":"../types/types","kind":"import-statement","external":true},{"path":"../utils/util","kind":"import-statement","external":true}],"format":"esm"},"utils/core/engine/useScheduler.ts":{"bytes":11971,"imports":[{"path":"../types/types","kind":"import-statement","external":true},{"path":"utils/core/engine/useMeshTask.ts","kind":"import-statement","original":"./useMeshTask"},{"path":"utils/core/engine/useMeshNode.ts","kind":"import-statement","original":"./useMeshNode"},{"path":"utils/core/utils/util.ts","kind":"import-statement","original":"../utils/util"},{"path":"utils/core/dependency/useSetEntangle.ts","kind":"import-statement","original":"../dependency/useSetEntangle"}],"format":"esm"},"utils/core/engine/useEngineInstance.ts":{"bytes":11270,"imports":[{"path":"utils/core/dependency/useSetRule.ts","kind":"import-statement","original":"../dependency/useSetRule"},{"path":"utils/core/dependency/useStrategy.ts","kind":"import-statement","original":"../dependency/useStrategy"},{"path":"utils/core/plugins/useExecutionTrace.ts","kind":"import-statement","original":"../plugins/useExecutionTrace"},{"path":"utils/core/dependency/useDepenency.ts","kind":"import-statement","original":"../dependency/useDepenency"},{"path":"utils/core/hooks/useOnError.ts","kind":"import-statement","original":"../hooks/useOnError"},{"path":"utils/core/hooks/useOnSuccess.ts","kind":"import-statement","original":"../hooks/useOnSuccess"},{"path":"utils/core/plugins/usePlugin.ts","kind":"import-statement","original":"../plugins/usePlugin"},{"path":"utils/core/hooks/useOnStart.ts","kind":"import-statement","original":"../hooks/useOnStart"},{"path":"../types/types","kind":"import-statement","external":true},{"path":"utils/core/engine/useScheduler.ts","kind":"import-statement","original":"./useScheduler"},{"path":"../utils/util","kind":"import-statement","external":true},{"path":"../dependency/useSetEntangle","kind":"import-statement","external":true}],"format":"esm"},"utils/core/engine/useEngineManager.ts":{"bytes":11003,"imports":[{"path":"../types/types","kind":"import-statement","external":true},{"path":"../utils/util","kind":"import-statement","external":true},{"path":"utils/core/engine/useEngineInstance.ts","kind":"import-statement","original":"./useEngineInstance"},{"path":"utils/core/types/types.ts","kind":"import-statement","original":"../types/types"},{"path":"utils/core/engine/useScheduler.ts","kind":"import-statement","original":"../engine/useScheduler"}],"format":"esm"}},"outputs":{"lib-dist/index.mjs":{"imports":[],"exports":["TriggerCause","deleteEngine","useEngine","useEngineManager","useMeshFlow","useMeshFlowDefiner","useScheduler"],"entryPoint":"utils/core/engine/useEngineManager.ts","inputs":{"utils/core/engine/bucket.ts":{"bytesInOutput":4236},"utils/core/dependency/useSetRule.ts":{"bytesInOutput":1754},"utils/core/dependency/useStrategy.ts":{"bytesInOutput":115},"utils/core/plugins/useExecutionTrace.ts":{"bytesInOutput":760},"utils/core/dependency/useDepenency.ts":{"bytesInOutput":1244},"utils/core/hooks/useCreateHook.ts":{"bytesInOutput":122},"utils/core/hooks/useOnError.ts":{"bytesInOutput":68},"utils/core/hooks/useOnSuccess.ts":{"bytesInOutput":72},"utils/core/plugins/usePlugin.ts":{"bytesInOutput":316},"utils/core/hooks/useOnStart.ts":{"bytesInOutput":68},"utils/core/types/types.ts":{"bytesInOutput":117},"utils/core/engine/useMeshTask.ts":{"bytesInOutput":7378},"utils/core/engine/useMeshNode.ts":{"bytesInOutput":932},"utils/core/utils/util.ts":{"bytesInOutput":472},"utils/core/dependency/useSetEntangle.ts":{"bytesInOutput":2273},"utils/core/engine/useScheduler.ts":{"bytesInOutput":2503},"utils/core/engine/useEngineInstance.ts":{"bytesInOutput":2207},"utils/core/engine/useEngineManager.ts":{"bytesInOutput":1821}},"bytes":26606}}}
1
+ {"inputs":{"utils/core/engine/bucket.ts":{"bytes":17020,"imports":[],"format":"esm"},"utils/core/dependency/useSetRule.ts":{"bytes":8165,"imports":[{"path":"utils/core/engine/bucket.ts","kind":"import-statement","original":"../engine/bucket"},{"path":"../types/types","kind":"import-statement","external":true},{"path":"../utils/util","kind":"import-statement","external":true}],"format":"esm"},"utils/core/dependency/useStrategy.ts":{"bytes":526,"imports":[{"path":"../engine/bucket","kind":"import-statement","external":true},{"path":"../utils/util","kind":"import-statement","external":true}],"format":"esm"},"utils/core/plugins/useExecutionTrace.ts":{"bytes":3723,"imports":[{"path":"../types/types","kind":"import-statement","external":true}],"format":"esm"},"utils/core/dependency/useDepenency.ts":{"bytes":6099,"imports":[],"format":"esm"},"utils/core/hooks/useCreateHook.ts":{"bytes":437,"imports":[],"format":"esm"},"utils/core/hooks/useOnError.ts":{"bytes":481,"imports":[{"path":"utils/core/hooks/useCreateHook.ts","kind":"import-statement","original":"./useCreateHook"},{"path":"../types/types","kind":"import-statement","external":true}],"format":"esm"},"utils/core/hooks/useOnSuccess.ts":{"bytes":216,"imports":[{"path":"utils/core/hooks/useCreateHook.ts","kind":"import-statement","original":"./useCreateHook"}],"format":"esm"},"utils/core/plugins/usePlugin.ts":{"bytes":1793,"imports":[{"path":"../types/types","kind":"import-statement","external":true}],"format":"esm"},"utils/core/hooks/useOnStart.ts":{"bytes":210,"imports":[{"path":"utils/core/hooks/useCreateHook.ts","kind":"import-statement","original":"./useCreateHook"}],"format":"esm"},"utils/core/types/types.ts":{"bytes":5512,"imports":[{"path":"../engine/bucket","kind":"import-statement","external":true},{"path":"../utils/util","kind":"import-statement","external":true}],"format":"esm"},"utils/core/engine/useMeshTask.ts":{"bytes":55872,"imports":[{"path":"../utils/util","kind":"import-statement","external":true},{"path":"utils/core/types/types.ts","kind":"import-statement","original":"../types/types"}],"format":"esm"},"utils/core/engine/useMeshNode.ts":{"bytes":3856,"imports":[{"path":"../types/types","kind":"import-statement","external":true}],"format":"esm"},"utils/core/utils/util.ts":{"bytes":5758,"imports":[],"format":"esm"},"utils/core/dependency/useSetEntangle.ts":{"bytes":8443,"imports":[{"path":"../types/types","kind":"import-statement","external":true},{"path":"../utils/util","kind":"import-statement","external":true}],"format":"esm"},"utils/core/engine/useScheduler.ts":{"bytes":12098,"imports":[{"path":"../types/types","kind":"import-statement","external":true},{"path":"utils/core/engine/useMeshTask.ts","kind":"import-statement","original":"./useMeshTask"},{"path":"utils/core/engine/useMeshNode.ts","kind":"import-statement","original":"./useMeshNode"},{"path":"utils/core/utils/util.ts","kind":"import-statement","original":"../utils/util"},{"path":"utils/core/dependency/useSetEntangle.ts","kind":"import-statement","original":"../dependency/useSetEntangle"}],"format":"esm"},"utils/core/engine/useEngineInstance.ts":{"bytes":11270,"imports":[{"path":"utils/core/dependency/useSetRule.ts","kind":"import-statement","original":"../dependency/useSetRule"},{"path":"utils/core/dependency/useStrategy.ts","kind":"import-statement","original":"../dependency/useStrategy"},{"path":"utils/core/plugins/useExecutionTrace.ts","kind":"import-statement","original":"../plugins/useExecutionTrace"},{"path":"utils/core/dependency/useDepenency.ts","kind":"import-statement","original":"../dependency/useDepenency"},{"path":"utils/core/hooks/useOnError.ts","kind":"import-statement","original":"../hooks/useOnError"},{"path":"utils/core/hooks/useOnSuccess.ts","kind":"import-statement","original":"../hooks/useOnSuccess"},{"path":"utils/core/plugins/usePlugin.ts","kind":"import-statement","original":"../plugins/usePlugin"},{"path":"utils/core/hooks/useOnStart.ts","kind":"import-statement","original":"../hooks/useOnStart"},{"path":"../types/types","kind":"import-statement","external":true},{"path":"utils/core/engine/useScheduler.ts","kind":"import-statement","original":"./useScheduler"},{"path":"../utils/util","kind":"import-statement","external":true},{"path":"../dependency/useSetEntangle","kind":"import-statement","external":true}],"format":"esm"},"utils/core/engine/useEngineManager.ts":{"bytes":11003,"imports":[{"path":"../types/types","kind":"import-statement","external":true},{"path":"../utils/util","kind":"import-statement","external":true},{"path":"utils/core/engine/useEngineInstance.ts","kind":"import-statement","original":"./useEngineInstance"},{"path":"utils/core/types/types.ts","kind":"import-statement","original":"../types/types"},{"path":"utils/core/engine/useScheduler.ts","kind":"import-statement","original":"../engine/useScheduler"}],"format":"esm"}},"outputs":{"lib-dist/index.mjs":{"imports":[],"exports":["TriggerCause","deleteEngine","useEngine","useEngineManager","useMeshFlow","useMeshFlowDefiner","useScheduler"],"entryPoint":"utils/core/engine/useEngineManager.ts","inputs":{"utils/core/engine/bucket.ts":{"bytesInOutput":4236},"utils/core/dependency/useSetRule.ts":{"bytesInOutput":1754},"utils/core/dependency/useStrategy.ts":{"bytesInOutput":115},"utils/core/plugins/useExecutionTrace.ts":{"bytesInOutput":760},"utils/core/dependency/useDepenency.ts":{"bytesInOutput":1244},"utils/core/hooks/useCreateHook.ts":{"bytesInOutput":122},"utils/core/hooks/useOnError.ts":{"bytesInOutput":68},"utils/core/hooks/useOnSuccess.ts":{"bytesInOutput":72},"utils/core/plugins/usePlugin.ts":{"bytesInOutput":316},"utils/core/hooks/useOnStart.ts":{"bytesInOutput":68},"utils/core/types/types.ts":{"bytesInOutput":117},"utils/core/engine/useMeshTask.ts":{"bytesInOutput":7378},"utils/core/engine/useMeshNode.ts":{"bytesInOutput":932},"utils/core/utils/util.ts":{"bytesInOutput":472},"utils/core/dependency/useSetEntangle.ts":{"bytesInOutput":2273},"utils/core/engine/useScheduler.ts":{"bytesInOutput":2534},"utils/core/engine/useEngineInstance.ts":{"bytesInOutput":2207},"utils/core/engine/useEngineManager.ts":{"bytesInOutput":1821}},"bytes":26637}}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meshflow/core",
3
- "version": "0.3.7",
3
+ "version": "0.3.8",
4
4
  "description": "A logic orchestration engine utilizing topological scheduling and watermark control to resolve asynchronous race conditions in complex dependency linkages.”",
5
5
  "main": "./index.cjs",
6
6
  "module": "./index.js",