@meshflow/core 0.3.1 → 0.3.3

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
@@ -188,6 +188,14 @@ interface SetRuleOptions<NM, TKeys extends KeysOfUnion<NM>> {
188
188
  triggerKeys?: Array<KeysOfUnion<NM> | TKeys | (string & {})>;
189
189
  }
190
190
 
191
+ type HistoryFactory = {
192
+ (maxStep?: number): () => MeshFlowHistory;
193
+ isMeshModuleInited: boolean;
194
+ };
195
+ type HistoryTool = {
196
+ (maxStep?: number): MeshFlowHistory;
197
+ isMeshModuleInited: boolean;
198
+ };
191
199
  /**
192
200
  * 🌟 入口函数
193
201
  * @template T - UI 信号类型 (Signal)
@@ -203,7 +211,7 @@ declare function useEngineInstance<T, P extends MeshPath, S = any, M extends Rec
203
211
  signalTrigger: (signal: T) => void;
204
212
  };
205
213
  modules: {
206
- useHistory?: () => MeshFlowHistory;
214
+ useHistory?: HistoryFactory | HistoryTool;
207
215
  useInternalForm?: <T, P>(scheduler: any, data: any) => any;
208
216
  useSchemaValidators?: <P>(Finder: (path: P) => any) => {
209
217
  SetValidators: (path: P, options: {
@@ -370,7 +378,7 @@ type MapModuleToReturn<K, F, P extends MeshPath> = K extends "useSchemaValidator
370
378
  logic: (val: any, GetByPath: (path: P) => any) => any;
371
379
  condition: (data: any) => boolean;
372
380
  }) => void;
373
- } : K extends "useMeshRenderGate" ? F extends (...args: any) => infer R ? R extends (...args: any) => infer R2 ? R2 : R : any : F extends (...args: any) => infer R ? R : any;
381
+ } : K extends "useHistory" | "history" | "useMeshRenderGate" | "meshRenderGate" ? F extends (...args: any) => infer R ? R extends (...args: any) => infer R2 ? R2 : R : any : F extends (...args: any) => infer R ? R : any;
374
382
  type EngineModules<M extends Record<string, any>, P extends MeshPath> = {
375
383
  [K in keyof M as TransformModuleKey<string & K>]: M[K] extends (...args: any) => any ? MapModuleToReturn<K, M[K], P> : M[K] extends Record<string, any> ? EngineModules<M[K], P> : M[K];
376
384
  };
package/index.d.ts CHANGED
@@ -188,6 +188,14 @@ interface SetRuleOptions<NM, TKeys extends KeysOfUnion<NM>> {
188
188
  triggerKeys?: Array<KeysOfUnion<NM> | TKeys | (string & {})>;
189
189
  }
190
190
 
191
+ type HistoryFactory = {
192
+ (maxStep?: number): () => MeshFlowHistory;
193
+ isMeshModuleInited: boolean;
194
+ };
195
+ type HistoryTool = {
196
+ (maxStep?: number): MeshFlowHistory;
197
+ isMeshModuleInited: boolean;
198
+ };
191
199
  /**
192
200
  * 🌟 入口函数
193
201
  * @template T - UI 信号类型 (Signal)
@@ -203,7 +211,7 @@ declare function useEngineInstance<T, P extends MeshPath, S = any, M extends Rec
203
211
  signalTrigger: (signal: T) => void;
204
212
  };
205
213
  modules: {
206
- useHistory?: () => MeshFlowHistory;
214
+ useHistory?: HistoryFactory | HistoryTool;
207
215
  useInternalForm?: <T, P>(scheduler: any, data: any) => any;
208
216
  useSchemaValidators?: <P>(Finder: (path: P) => any) => {
209
217
  SetValidators: (path: P, options: {
@@ -370,7 +378,7 @@ type MapModuleToReturn<K, F, P extends MeshPath> = K extends "useSchemaValidator
370
378
  logic: (val: any, GetByPath: (path: P) => any) => any;
371
379
  condition: (data: any) => boolean;
372
380
  }) => void;
373
- } : K extends "useMeshRenderGate" ? F extends (...args: any) => infer R ? R extends (...args: any) => infer R2 ? R2 : R : any : F extends (...args: any) => infer R ? R : any;
381
+ } : K extends "useHistory" | "history" | "useMeshRenderGate" | "meshRenderGate" ? F extends (...args: any) => infer R ? R extends (...args: any) => infer R2 ? R2 : R : any : F extends (...args: any) => infer R ? R : any;
374
382
  type EngineModules<M extends Record<string, any>, P extends MeshPath> = {
375
383
  [K in keyof M as TransformModuleKey<string & K>]: M[K] extends (...args: any) => any ? MapModuleToReturn<K, M[K], P> : M[K] extends Record<string, any> ? EngineModules<M[K], P> : M[K];
376
384
  };
package/index.js CHANGED
@@ -1 +1 @@
1
- 'use strict';var re=class{computedRules=[];store={OR:(e,n)=>{let t,c,r=this.computedRules;for(let o=0;o<r.length;o++){let s=r[o],i=s.logic(e);if(i instanceof Promise)return (async()=>{let a=await i;if(s.entityId==="__base__"?c=a:a&&(t=a),typeof t>"u")for(let d=o+1;d<r.length;d++){let P=r[d],y=P.logic(e),h=y instanceof Promise?await y:y;if(P.entityId==="__base__"){c=h;continue}if(h){t=P.value;break}}return typeof t>"u"&&(t=c),{res:t,version:n}})();let u=i;if(s.entityId==="__base__"){c=u;continue}if(u){t=s.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 s=c[r].logic(e);if(s instanceof Promise)return (async()=>{let i=await s;if(i!==void 0)return {res:i,version:n};for(let u=r+1;u<c.length;u++){let a=c[u].logic(e),d=a instanceof Promise?await a:a;if(d!==void 0)return {res:d,version:n}}return {res:void 0,version:n}})();if(s!==void 0)return {res:s,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)}},ee=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 re(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 o=this.rules.get(r);o&&(o.delete(c),o.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 o=this.rules.get(r);o&&(o.delete(c),o.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 o=this.deps.get(e.triggerPath),s=e.GetValueByPath(e.triggerPath);if(typeof o=="object"||typeof s=="object")t=false;else {let i=Array.from(this.deps.keys());for(let u of i){let a=this.deps.get(u),d=e.GetValueByPath(u);if(a!==d){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:o,version:s}=r;return this.finalizeSync(o,s,e,n)}return this.pendingPromise=(async()=>{try{let{res:o,version:s}=await r;return this.finalizeSync(o,s,e,n)}catch(o){throw {path:this.path,error:o}}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,o)=>{this.deps.set(o,t.GetValueByPath(o));}),e)}inferType(e){return Array.isArray(e)?"array":typeof e}};var ae=(l,e,n)=>{let c=r=>{let o=n.triggerPaths.map(u=>{let a=r.GetValueByPath(u),d={};return n.triggerKeys.forEach(P=>{d[P]=a[P];}),d}),s=Object.create(null);return Object.defineProperty(s,"triggerTargets",{get:()=>o}),Object.defineProperty(s,"affectedTatget",{get:()=>r.GetRenderSchemaByPath(l)[e]}),n.logic({slot:s})};return {value:n.value,targetPath:l,triggerPaths:n.triggerPaths,priority:n.priority??10,logic:c}},oe=(l,e,n)=>{if(!l)throw Error("");let t=l,c=(s,i)=>{e.has(s)||e.set(s,new Set),e.get(s).add(i),n.has(i)||n.set(i,new Set),n.get(i).add(s);};return {SetRule:(s,i,u,a)=>{let d=t(i),P=a.triggerKeys||[];P.length==0&&P.push("value");let y=ae(i,u,{...a,triggerPaths:[s],triggerKeys:P}),h=[s].map(p=>[p,t(p).state.value]);if(c(s,i),d.nodeBucket[u])d.nodeBucket[u].setRule(y,h),a.effect&&d.nodeBucket[u].setSideEffect({fn:a.effect,args:a.effectArgs?a.effectArgs:[u]});else {let p=d.meta[u],S=new ee(p,u,i);S.setRule(y,h),a.effect&&S.setSideEffect({fn:a.effect,args:a.effectArgs?a.effectArgs:[u]}),d.nodeBucket[u]=S;}d.state[u]=d.meta[u],a.forceNotify&&d.nodeBucket[u].forceNotify(),a.cacheStrategy=="none"&&d.nodeBucket[u].setUseCache(false);},SetRules:(s,i,u,a)=>{let d=t(i);for(let p of s)c(p,i);let P=a.triggerKeys||[];P.length==0&&P.push("value");let y=ae(i,u,{...a,triggerPaths:s,triggerKeys:P}),h=s.map(p=>[p,t(p).state.value]);if(d.nodeBucket[u])d.nodeBucket[u].setRules(y,h),a.effect&&d.nodeBucket[u].setSideEffect({fn:a.effect,args:a.effectArgs?a.effectArgs:[u]});else {let p=d.meta[u],S=new ee(p,u,i);S.setRules(y,h),a.effect&&S.setSideEffect({fn:a.effect,args:a.effectArgs?a.effectArgs:[u]}),d.nodeBucket[u]=S;}d.state[u]=d.meta[u],a.forceNotify&&d.nodeBucket[u].forceNotify(),a.cacheStrategy=="none"&&d.nodeBucket[u].setUseCache(false);}}};var ie=l=>{let e=l||void 0;if(!e)throw Error("");return {SetStrategy:(t,c,r)=>{e(t).nodeBucket[c].setStrategy(r);}}};function le(){let l=new Map,e=new Map,n=new Set,t=(o,s)=>{l.set(o,s);let i=e.get(o);i&&i(s);};return {SetTrace:(o,s)=>{e.set(o,s);let i=l.get(o)||"idle";return s(i),{cancel:()=>{e.delete(o);}}},useTrace:()=>({apply:s=>{s.on("flow:start",()=>{n.forEach(i=>t(i,"idle")),n.clear(),l.clear();}),s.on("node:release",({path:i,type:u})=>{(u==1||u==2)&&(n.add(i),t(i,"pending"));}),s.on("node:pending",({path:i})=>{n.add(i),(!l.has(i)||l.get(i)==="idle")&&t(i,"pending");}),s.on("node:start",({path:i})=>{n.add(i),t(i,"calculating");}),s.on("node:success",({path:i})=>{t(i,"calculated");}),s.on("node:intercept",({path:i,type:u})=>{u==3&&t(i,"calculating"),u==6&&t(i,"idle");}),s.on("node:stagnate",({path:i})=>{t(i,"pending");}),s.on("node:error",({path:i})=>t(i,"error"));}})}}function ce(l,e,n,t){let c=a=>{let d=l(),P=e(),y=new Set;return d.get(a)?.forEach(h=>y.add(h)),y.size===0?[]:Array.from(y).filter(h=>{let p=P.get(h)||new Set;return !Array.from(p).some(M=>y.has(M))})};return {GetNextDependency:a=>{let d=t();return Array.from(d.get(a)||[])},GetPrevDependency:a=>{let d=n();return Array.from(d.get(a)||[])},GetAllPrevDependency:a=>{let d=e();return Array.from(d.get(a)||[])},GetAllNextDependency:a=>{let d=l();return Array.from(d.get(a)||[])},rebuildDirectDependencyMaps:a=>{let d=new Map,P=new Map;for(let y of a){let h=c(y);d.set(y,new Set(h));for(let p of h)P.has(p)||P.set(p,new Set),P.get(p).add(y);}return {directNextMap:d,directPrevMap:P}}}}function ue(l){let e=t=>{let c=[],r=[],o=new Map,s=t.size,i=0,u=0;for(let[a,d]of t)d===0&&r.push(a);if(r.length===0&&s>0)throw Error("Circular dependency detected");for(;r.length>0;){c.push([...r]);let a=[];for(let d of r){i++,o.set(d,u);let P=l.get(d);if(P)for(let y of P){let h=t.get(y)-1;t.set(y,h),h===0&&a.push(y);}}r=a,u++;}if(i<s)throw Error("Circular dependency detected");return {steps:c,levelMap:o}};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 o of r){let s=t.get(o)||0;t.set(o,++s);}}return e(t)}}var Z=()=>{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 de(){let{on:l,call:e}=Z();return {onError:l,callOnError:e}}function fe(){let{on:l,call:e}=Z();return {onSuccess:l,callOnSuccess:e}}var ye=()=>{let l=new Set,e=new Map,n=(r,o)=>{e.get(r)?.forEach(s=>s(o));},t=(r,o)=>(e.has(r)||e.set(r,new Set),e.get(r).add(o),()=>e.get(r).delete(o));return {usePlugin:r=>{let o=new Set,s=(i,u)=>{let a=t(i,u);return o.add(a),a};return r.apply({on:s}),l.add(r),()=>{o.forEach(i=>i()),o.clear(),l.delete(r);}},emit:n}};function pe(){let{on:l,call:e}=Z();return {onStart:l,callOnStart:e}}var he=(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=>{Te(()=>{e=performance.now(),n=0,t&&(t=false),r();});})}}},Te=l=>{let{port1:e,port2:n}=new MessageChannel;e.onmessage=l,n.postMessage(null);};function ge(l,e,n,t,c){let r=new Map,o=l.useGreedy,s=he();return async(u,a)=>{let P=Symbol("token"),y=u||"__NOTIFY_ALL__";r.set(y,P);let h=false;s.reset();let p=new Set,S=new Set,Y=new Set;a.forEach(w=>{Y.add(w),e.GetAllNextDependency(w).forEach(m=>Y.add(m));});let M=new Map,C=new Map,E=new Set,L=e.GetPathToLevelMap(),j=0,q=0,f=w=>{e.GetAllNextDependency(w).forEach(F=>{let G=L.get(F)||0;G>q&&(q=G);});};u?(j=L.get(u)??0,f(u),p.add(u)):a.forEach(w=>f(w)),a.forEach(w=>{E.add(w);});let N=performance.now();t.emit("flow:start",{path:y}),t.callOnStart({path:y});let x=false,b=30,z=w=>{let{target:m,trigger:F}=w,G=false,R=false,D=n.GetNodeByPath(m),$=[],I=(g,T)=>{if(p.has(g)||S.has(g)||E.has(g))return;let B=0,v=L.get(g)??0;if(M.has(g))B=M.get(g)-1;else {if(v>j&&M.size>b){C.has(v)||C.set(v,new Set),C.get(v).add(g),t.emit("node:intercept",{path:g,type:7});return}let U=e.GetPrevDependency(g),k=0;for(let Q of U){if(p.has(Q))continue;(L.get(Q)??0)>j&&k++;}B=k;}if(B<=0){let U=E.has(g),k=S.has(g);if(U||k){t.emit("node:intercept",{path:g,type:k?3:3.1});return}M.delete(g),E.add(g),t.emit("node:release",{path:g,type:T,detail:{path:m}});}else M.set(g,B);},_=(g=[])=>{if(r.get(y)!==P)return;if(g.length){let v={},U=D.proxy;for(let k of g){let Q=(k.args||[]).reduce((W,ne)=>(W[ne]=U[ne],W),{});try{let W=k.fn(Q);W&&typeof W=="object"&&Object.assign(v,W);}catch(W){}}for(let k in v)if(k in D.state)D.state[k]=v[k];else throw {error:`wrong effect in ${String(D.path)}`};G=true;}G&&c.flushPathSet.add(m),t.emit("node:success",{path:m}),p.add(m);let T=e.GetNextDependency(m);(G||R)&&e.GetAllNextDependency(m).forEach(U=>Y.add(U));for(let v of T){if(p.has(v)){t.emit("node:intercept",{path:v,type:2});continue}if(S.has(v)||E.has(v)){t.emit("node:intercept",{path:v,type:S.has(v)?3:3.1});continue}if(G||R)I(v,1);else if(M.has(v))I(v,2);else {let k=L.get(v);C.has(k)||C.set(k,new Set);let Q=C.get(k);Q.has(v)||(Q.add(v),t.emit("node:stagnate",{path:v,type:1}));}}S.delete(m),(async()=>{if(!h){let v=S.size,U=E.size;t.emit("flow:fire",{path:m,type:1,detail:{active:v,pending:U,blocked:M.size}}),A();}})();},H=g=>{t.emit("node:error",{path:m,error:g});let T=Symbol("abort");r.set(y,T),E.clear(),M.clear(),S.clear(),t.callOnError(g);},O=(g,T)=>{let B=false;g!==D.state[T]&&(D.state[T]=g,G=true,t.emit("node:bucket:success",{path:m,key:String(T),value:g}),D.notifyKeys.has(T)&&(B=true)),D.nodeBucket[T].isForceNotify()&&(R=true),(B||R)&&f(m);};t.emit("node:start",{path:m});try{let g=[];for(let T in D.nodeBucket){let B=D.nodeBucket[T];g.push(...B.getSideEffect());let v=B.evaluate({affectKey:T,triggerPath:F,GetRenderSchemaByPath:U=>n.GetNodeByPath(U).proxy,GetValueByPath:U=>n.GetNodeByPath(U).state,GetToken:()=>P});if(v instanceof Promise){let U=v.then(k=>{r.get(y)===P&&O(k,T);});$.push(U);}else O(v,T);}if($.length>0)return Promise.all($).then(()=>{_(g);}).catch(H);_(g);return}catch(g){H(g);}},A=async()=>{if(r.get(y)!==P){h=false;return}h=true;let w=s.getIsFirstFrame(),m=0,F=()=>o&&w?30:1/0,G=0,R=F();try{for(;r.get(y)===P;){let D=G>=R,$=s.shouldYield();if(D||$){if(G>0&&(m++,(w||m%2===0)&&c.requestUpdate()),await s.yieldToMain(),r.get(y)!==P)break;G=0,w=s.getIsFirstFrame();}if(E.size>0&&S.size<5){for(let I of E){if(S.size>=5||G>=R)break;let _=L.get(I)??0,H=e.GetPrevDependency(I),O=H.length>1;if((!o||O)&&_>j){E.delete(I);let T=H.filter(B=>Y.has(B)&&!p.has(B)).length;M.set(I,T||0),t.emit("node:intercept",{path:I,type:T>0?4:5,detail:{targetLevel:_,currentLevel:j,pendingParentsCount:T}});continue}if(E.delete(I),S.add(I),t.emit("node:processing",{path:I}),z({target:I,trigger:u}),G++,G>=R||s.shouldYield())break}if(E.size>0)continue}if(G<R&&o&&M.size>0&&S.size<5){let I=!1,_=0;for(let[H,O]of M)if(O<=0){let g=L.get(H)??0,T=e.GetPrevDependency(H);if(g>j&&T.length>1)continue;if(M.delete(H),E.add(H),_++,I=!0,t.emit("node:release",{path:H,type:4}),_>=R)break}if(_>0)continue;if(I){if(s.shouldYield()&&(await s.yieldToMain(),r.get(y)!==P))break;continue}}if(S.size===0&&E.size===0){let I=new Set;for(let O of C.keys())I.add(O);for(let[O]of M){let g=L.get(O)??0;g>j&&I.add(g);}let _=Array.from(I).sort((O,g)=>O-g),H=_[0];if(_.length>0&&H<=q){let O=_[0];if(O<=q){j=O;let g=C.get(O);g&&(g.forEach(T=>E.add(T)),C.delete(O));for(let[T]of M)(L.get(T)??0)===O&&(M.delete(T),E.add(T),t.emit("node:release",{path:T,type:3,detail:{level:O}}));continue}}else {C.forEach((O,g)=>{O.forEach(T=>{p.add(T),t.emit("node:intercept",{path:T,type:6});});}),C.clear();for(let[O]of M)p.add(O),t.emit("node:intercept",{path:O,type:6});M.clear();break}}E.size>0&&S.size>=5&&t.emit("flow:wait",{type:2});break}}finally{if(h=false,S.size+M.size+E.size===0){if(r.get(y)===P&&!x){x=true,t.emit("flow:end",{type:1}),c.requestUpdate();let $=performance.now();t.emit("flow:success",{duration:($-N).toFixed(2.1)+"ms"}),Promise.resolve().then(()=>{t.callOnSuccess();});}}else t.emit("flow:wait",{type:1,detail:{nums:S.size}});}};A();}}function se(l){let{path:e,uid:n,type:t,meta:c,dirtySignal:r,state:o}=l,s=null,i=["path","uid","type","dependOn","nodeBucket"],a={path:e,uid:n,type:t,meta:c,dirtySignal:r,createView:(d={})=>{if(s&&Object.keys(d).length===0)return s;let P=new Proxy(d,{get(y,h){let p=h;return Reflect.has(y,h)?Reflect.get(y,h):p in l.state?l.state[p]:p in l?l[p]:c&&p in c?c[p]:Reflect.get(y,h)},set(y,h,p){let S=h;return S in l.state?(l.state[S]=p,true):Reflect.set(y,h,p)},ownKeys(y){let h=new Set([...Reflect.ownKeys(y),...Object.keys(o||{}),...Object.keys(c||{}),...i]);return Array.from(h)},getOwnPropertyDescriptor(y,h){let p=h;return Reflect.has(y,h)||o&&p in o||c&&p in c||i.includes(p)?{enumerable:true,configurable:true}:Reflect.getOwnPropertyDescriptor(y,h)}});return s=P,P}};return "children"in l?{...a,children:l.children}:{...a,state:l.state,nodeBucket:l.nodeBucket,notifyKeys:l.notifyKeys,dependOn:l.dependOn,get proxy(){return s}}}function Pe(l,e,n,t,c){let r=0,o=new Map,s=new Map,i=new Map,u=false,a=new Set,P=async()=>{let f=Array.from(a);if(a.clear(),"signalTrigger"in c&&typeof c.signalTrigger=="function")for(let N of f){let x=M(N);c.signalTrigger(x.dirtySignal);}else "emit"in c&&c.emit(f);},y=()=>{u||(u=true,requestAnimationFrame(()=>{try{for(;a.size>0;)P();}finally{u=false;}}));},h=ge({useGreedy:l.useGreedy},e,{GetNodeByPath:M},t,{requestUpdate:y,flushPathSet:a}),p=f=>{throw new Error(`[MeshFlow] Duplicate Path: ${f}`)},S=f=>{o.has(f.path)&&p(String(f.path));let N=++r,x={path:f.path,getNode:A=>M(A)},b=(A,w="value")=>{let m=A({...x}),F=M(f.path);if(n.createHistoryAction&&n.pushIntoHistory){let G=n.createHistoryAction([{path:f.path,value:F.state[w]},{path:f.path,value:m}],R=>{let D=M(R.path);D.state[w]=R.value,E(R.path);});n.pushIntoHistory(G);}F.state[w]=m,E(f.path);};f.notifyKeys.size==0&&f.notifyKeys.add("value");let z=se({uid:N,type:f.type,path:f.path,state:f.state,meta:f.meta,nodeBucket:f.nodeBucket,dirtySignal:f.dirtySignal,notifyKeys:f.notifyKeys,dependOn:b});return o.set(z.path,N),s.set(N,z),z},Y=f=>{o.has(f.path)&&p(String(f.path));let N=++r,x=se({uid:N,type:f.type,path:f.path,state:{},meta:f,nodeBucket:{},children:f.children});return o.set(x.path,N),i.set(N,x),x};function M(f){let N=o.get(f),x=s.get(N);if(!x)throw Error("wrong ID");return x}function C(f){let N=o.get(f);return i.get(N)}let E=f=>{if(!M(f))throw Error("Node undefined");a.add(f),y();let x=e.GetNextDependency(f);L(x,f);};function L(f,N){h(N,f);}return {registerNode:S,registerGroupNode:Y,GetNodeByPath:M,GetGroupByPath:C,notify:E,notifyAll:async()=>{Promise.resolve().then(async()=>{let f=e.GetDependencyOrder();if(!f||f.length===0)return;let N=f[0];try{h(null,N);}catch(x){throw t.callOnError(x),x}finally{y();}});},batchNotify:f=>{if(!f||f.length===0)return;if(n.createHistoryAction&&n.pushIntoHistory){let x=n.createHistoryAction([f.map(b=>({path:b.path,key:b.key,value:M(b.path).state[b.key]})),f.map(b=>({path:b.path,key:b.key,value:b.value}))],b=>{let z=new Set;b.forEach(A=>{let w=M(A.path);w.state[A.key]=A.value,a.add(A.path),z.add(A.path);}),y(),z.size>0&&h(null,Array.from(z));});n.pushIntoHistory(x);}let N=new Set;f.forEach(x=>{let b=M(x.path);b.state[x.key]=x.value,a.add(x.path),N.add(x.path);}),y(),N.size>0&&h(null,Array.from(N));},UITrigger:c,UidToNodeMap:s}}function me(l,e){let n=false,t=false,c=new Map,r=new Map,o=new Map,s=new Map,i=[],u=new Map,{GetNextDependency:d,GetPrevDependency:P,GetAllPrevDependency:y,GetAllNextDependency:h,rebuildDirectDependencyMaps:p}=ce(()=>c,()=>r,()=>s,()=>o),S={},Y={};if(e.modules.useHistory){let{Undo:K,Redo:V,PushIntoHistory:X,CreateHistoryAction:J,initCanUndo:Me,initCanRedo:Se}=e.modules.useHistory();S.pushIntoHistory=X,S.createHistoryAction=J,Y={Undo:K,Redo:V,initCanUndo:Me,initCanRedo:Se};}let M=!!e.modules.useMeshRenderGate,C={};if(M){let K=e.modules.useMeshRenderGate.isMeshModuleInited,V=e.modules.useMeshRenderGate;C=(K?V:V())(()=>R);}let{onError:E,callOnError:L}=de(),{onSuccess:j,callOnSuccess:q}=fe(),{onStart:f,callOnStart:N}=pe(),{emit:x,usePlugin:b}=ye(),{SetTrace:z,useTrace:A}=le(),w=A();b(w);let m=M?{...C}:{...e.UITrigger},F=Pe({useGreedy:e.config.useGreedy},{GetDependencyOrder:()=>i,GetAllNextDependency:h,GetNextDependency:d,GetPrevDependency:P,GetAllPrevDependency:y,GetPathToLevelMap:()=>u},S,{callOnError:L,callOnSuccess:q,callOnStart:N,emit:x},m),{GetGroupByPath:G,GetNodeByPath:R,notifyAll:D}=F;M&&C.init();let $={};if(e.modules.useInternalForm){let{uiSchema:K,GetFormData:V}=e.modules.useInternalForm(F,l);$={uiSchema:K,GetFormData:V};}let I={};if(e.modules.useSchemaValidators){let{SetValidators:K}=e.modules.useSchemaValidators(R);I={SetValidators:K};}let{SetRule:_,SetRules:H}=oe(R,c,r),{SetStrategy:O}=ie(R),g=ue(c),T=()=>{let K=g();i=K.steps,u=K.levelMap;},B=()=>{t||(t=true,Promise.resolve().then(()=>{if(T(),n){let{directNextMap:K,directPrevMap:V}=p(i.flat());o=K,s=V;}}).finally(()=>{t=false,n=false;}));};return {SetRule:(K,V,X,J)=>{_(K,V,X,J),n=true,B();},SetRules:(K,V,X,J)=>{H(K,V,X,J),n=true,B();},SetStrategy:O,SetTrace:z,usePlugin:b,SetValue:(K,V,X)=>{R(K).dependOn(()=>X,V);},GetValue:(K,V="value")=>R(K)[V],SetValues:K=>{F.batchNotify(K);},GetGroupByPath:G,notifyAll:async()=>{T(),await D();},GetAllDependency:()=>c,GetDependencyOrder:()=>i,historyExports:Y,formExports:$,validatorExports:I,batchRenderExport:C,hasRenderGate:()=>M,onError:E,onSuccess:j,onStart:f,scheduler:F}}var te=new Map,xe=(l,e,n)=>{try{if(te.has(l))throw Error("engineID repeated");let t=me(e,{config:n.config||{useGreedy:!1},UITrigger:n.UITrigger,modules:n.modules??{},plugins:{}}),{SetRule:c,SetRules:r,SetValues:o,SetStrategy:s,SetValue:i,GetValue:u,usePlugin:a,GetGroupByPath:d,notifyAll:P,SetTrace:y,GetAllDependency:h,GetDependencyOrder:p,historyExports:S,formExports:Y,validatorExports:M,batchRenderExport:C,hasRenderGate:E,onError:L,onSuccess:j,onStart:q,scheduler:f}=t,N={config:{SetRule:c,SetRules:r,SetStrategy:s,notifyAll:P,SetTrace:y,usePlugin:a,hasRenderGate:E},data:{SetValue:i,GetValue:u,SetValues:o,GetGroupByPath:d},dependency:{GetAllDependency:h,GetDependencyOrder:p},hooks:{onError:L,onSuccess:j,onStart:q}},x=(A,w,m)=>{!w||typeof w!="object"||Object.keys(w).forEach(F=>{let G=w[F];if(typeof G=="object"&&G!==null)A[F]=A[F]||{},x(A[F],G,m);else if(typeof G=="function"){let R=F;if(R==="useMeshRenderGate")R="render";else if(R.startsWith("use")){let D=R.slice(3);R=D.charAt(0).toLowerCase()+D.slice(1);}F==="useHistory"&&m.exports.history&&Object.keys(m.exports.history).length>0?A[R]=m.exports.history:F==="useInternalForm"&&m.exports.form&&Object.keys(m.exports.form).length>0?A[R]=m.exports.form:F==="useSchemaValidators"&&m.exports.validator&&Object.keys(m.exports.validator).length>0?A[R]=m.exports.validator:F==="useMeshRenderGate"&&m.exports.render?A[R]=m.exports.render:A[R]=G(m.scheduler,m.Schema);}});},b={...N,modules:{}},z=n.modules;return z&&x(b.modules,z,{scheduler:f,Schema:e,exports:{history:S,form:Y,validator:M,render:C}}),te.set(l,b),b}catch(t){throw Error(t)}},rt=()=>(l,e,n)=>Re(l,e,n),st=l=>{let e=te.get(l);if(e)return e;throw Error("[MeshFlow] Engine ID not found.")},at=l=>{te.delete(l);},Re=xe;exports.deleteEngine=at;exports.useEngine=st;exports.useEngineManager=xe;exports.useMeshFlow=Re;exports.useMeshFlowDefiner=rt;exports.useScheduler=Pe;
1
+ 'use strict';var re=class{computedRules=[];store={OR:(e,n)=>{let t,c,r=this.computedRules;for(let o=0;o<r.length;o++){let s=r[o],i=s.logic(e);if(i instanceof Promise)return (async()=>{let a=await i;if(s.entityId==="__base__"?c=a:a&&(t=a),typeof t>"u")for(let d=o+1;d<r.length;d++){let P=r[d],y=P.logic(e),p=y instanceof Promise?await y:y;if(P.entityId==="__base__"){c=p;continue}if(p){t=P.value;break}}return typeof t>"u"&&(t=c),{res:t,version:n}})();let u=i;if(s.entityId==="__base__"){c=u;continue}if(u){t=s.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 s=c[r].logic(e);if(s instanceof Promise)return (async()=>{let i=await s;if(i!==void 0)return {res:i,version:n};for(let u=r+1;u<c.length;u++){let a=c[u].logic(e),d=a instanceof Promise?await a:a;if(d!==void 0)return {res:d,version:n}}return {res:void 0,version:n}})();if(s!==void 0)return {res:s,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)}},ee=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 re(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 o=this.rules.get(r);o&&(o.delete(c),o.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 o=this.rules.get(r);o&&(o.delete(c),o.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 o=this.deps.get(e.triggerPath),s=e.GetValueByPath(e.triggerPath);if(typeof o=="object"||typeof s=="object")t=false;else {let i=Array.from(this.deps.keys());for(let u of i){let a=this.deps.get(u),d=e.GetValueByPath(u);if(a!==d){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:o,version:s}=r;return this.finalizeSync(o,s,e,n)}return this.pendingPromise=(async()=>{try{let{res:o,version:s}=await r;return this.finalizeSync(o,s,e,n)}catch(o){throw {path:this.path,error:o}}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,o)=>{this.deps.set(o,t.GetValueByPath(o));}),e)}inferType(e){return Array.isArray(e)?"array":typeof e}};var ae=(l,e,n)=>{let c=r=>{let o=n.triggerPaths.map(u=>{let a=r.GetValueByPath(u),d={};return n.triggerKeys.forEach(P=>{d[P]=a[P];}),d}),s=Object.create(null);return Object.defineProperty(s,"triggerTargets",{get:()=>o}),Object.defineProperty(s,"affectedTatget",{get:()=>r.GetRenderSchemaByPath(l)[e]}),n.logic({slot:s})};return {value:n.value,targetPath:l,triggerPaths:n.triggerPaths,priority:n.priority??10,logic:c}},oe=(l,e,n)=>{if(!l)throw Error("");let t=l,c=(s,i)=>{e.has(s)||e.set(s,new Set),e.get(s).add(i),n.has(i)||n.set(i,new Set),n.get(i).add(s);};return {SetRule:(s,i,u,a)=>{let d=t(i),P=a.triggerKeys||[];P.length==0&&P.push("value");let y=ae(i,u,{...a,triggerPaths:[s],triggerKeys:P}),p=[s].map(h=>[h,t(h).state.value]);if(c(s,i),d.nodeBucket[u])d.nodeBucket[u].setRule(y,p),a.effect&&d.nodeBucket[u].setSideEffect({fn:a.effect,args:a.effectArgs?a.effectArgs:[u]});else {let h=d.meta[u],S=new ee(h,u,i);S.setRule(y,p),a.effect&&S.setSideEffect({fn:a.effect,args:a.effectArgs?a.effectArgs:[u]}),d.nodeBucket[u]=S;}d.state[u]=d.meta[u],a.forceNotify&&d.nodeBucket[u].forceNotify(),a.cacheStrategy=="none"&&d.nodeBucket[u].setUseCache(false);},SetRules:(s,i,u,a)=>{let d=t(i);for(let h of s)c(h,i);let P=a.triggerKeys||[];P.length==0&&P.push("value");let y=ae(i,u,{...a,triggerPaths:s,triggerKeys:P}),p=s.map(h=>[h,t(h).state.value]);if(d.nodeBucket[u])d.nodeBucket[u].setRules(y,p),a.effect&&d.nodeBucket[u].setSideEffect({fn:a.effect,args:a.effectArgs?a.effectArgs:[u]});else {let h=d.meta[u],S=new ee(h,u,i);S.setRules(y,p),a.effect&&S.setSideEffect({fn:a.effect,args:a.effectArgs?a.effectArgs:[u]}),d.nodeBucket[u]=S;}d.state[u]=d.meta[u],a.forceNotify&&d.nodeBucket[u].forceNotify(),a.cacheStrategy=="none"&&d.nodeBucket[u].setUseCache(false);}}};var ie=l=>{let e=l||void 0;if(!e)throw Error("");return {SetStrategy:(t,c,r)=>{e(t).nodeBucket[c].setStrategy(r);}}};function le(){let l=new Map,e=new Map,n=new Set,t=(o,s)=>{l.set(o,s);let i=e.get(o);i&&i(s);};return {SetTrace:(o,s)=>{e.set(o,s);let i=l.get(o)||"idle";return s(i),{cancel:()=>{e.delete(o);}}},useTrace:()=>({apply:s=>{s.on("flow:start",()=>{n.forEach(i=>t(i,"idle")),n.clear(),l.clear();}),s.on("node:release",({path:i,type:u})=>{(u==1||u==2)&&(n.add(i),t(i,"pending"));}),s.on("node:pending",({path:i})=>{n.add(i),(!l.has(i)||l.get(i)==="idle")&&t(i,"pending");}),s.on("node:start",({path:i})=>{n.add(i),t(i,"calculating");}),s.on("node:success",({path:i})=>{t(i,"calculated");}),s.on("node:intercept",({path:i,type:u})=>{u==3&&t(i,"calculating"),u==6&&t(i,"idle");}),s.on("node:stagnate",({path:i})=>{t(i,"pending");}),s.on("node:error",({path:i})=>t(i,"error"));}})}}function ce(l,e,n,t){let c=a=>{let d=l(),P=e(),y=new Set;return d.get(a)?.forEach(p=>y.add(p)),y.size===0?[]:Array.from(y).filter(p=>{let h=P.get(p)||new Set;return !Array.from(h).some(M=>y.has(M))})};return {GetNextDependency:a=>{let d=t();return Array.from(d.get(a)||[])},GetPrevDependency:a=>{let d=n();return Array.from(d.get(a)||[])},GetAllPrevDependency:a=>{let d=e();return Array.from(d.get(a)||[])},GetAllNextDependency:a=>{let d=l();return Array.from(d.get(a)||[])},rebuildDirectDependencyMaps:a=>{let d=new Map,P=new Map;for(let y of a){let p=c(y);d.set(y,new Set(p));for(let h of p)P.has(h)||P.set(h,new Set),P.get(h).add(y);}return {directNextMap:d,directPrevMap:P}}}}function ue(l){let e=t=>{let c=[],r=[],o=new Map,s=t.size,i=0,u=0;for(let[a,d]of t)d===0&&r.push(a);if(r.length===0&&s>0)throw Error("Circular dependency detected");for(;r.length>0;){c.push([...r]);let a=[];for(let d of r){i++,o.set(d,u);let P=l.get(d);if(P)for(let y of P){let p=t.get(y)-1;t.set(y,p),p===0&&a.push(y);}}r=a,u++;}if(i<s)throw Error("Circular dependency detected");return {steps:c,levelMap:o}};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 o of r){let s=t.get(o)||0;t.set(o,++s);}}return e(t)}}var Z=()=>{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 de(){let{on:l,call:e}=Z();return {onError:l,callOnError:e}}function fe(){let{on:l,call:e}=Z();return {onSuccess:l,callOnSuccess:e}}var ye=()=>{let l=new Set,e=new Map,n=(r,o)=>{e.get(r)?.forEach(s=>s(o));},t=(r,o)=>(e.has(r)||e.set(r,new Set),e.get(r).add(o),()=>e.get(r).delete(o));return {usePlugin:r=>{let o=new Set,s=(i,u)=>{let a=t(i,u);return o.add(a),a};return r.apply({on:s}),l.add(r),()=>{o.forEach(i=>i()),o.clear(),l.delete(r);}},emit:n}};function he(){let{on:l,call:e}=Z();return {onStart:l,callOnStart:e}}var pe=(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=>{Re(()=>{e=performance.now(),n=0,t&&(t=false),r();});})}}},Re=l=>{let{port1:e,port2:n}=new MessageChannel;e.onmessage=l,n.postMessage(null);};function ge(l,e,n,t,c){let r=new Map,o=l.useGreedy,s=pe();return async(u,a)=>{let P=Symbol("token"),y=u||"__NOTIFY_ALL__";r.set(y,P);let p=false;s.reset();let h=new Set,S=new Set,Y=new Set;a.forEach(w=>{Y.add(w),e.GetAllNextDependency(w).forEach(m=>Y.add(m));});let M=new Map,C=new Map,G=new Set,H=e.GetPathToLevelMap(),j=0,q=0,f=w=>{e.GetAllNextDependency(w).forEach(I=>{let E=H.get(I)||0;E>q&&(q=E);});};u?(j=H.get(u)??0,f(u),h.add(u)):a.forEach(w=>f(w)),a.forEach(w=>{G.add(w);});let N=performance.now();t.emit("flow:start",{path:y}),t.callOnStart({path:y});let x=false,F=30,z=w=>{let{target:m,trigger:I}=w,E=false,R=false,D=n.GetNodeByPath(m),$=[],K=(g,T)=>{if(h.has(g)||S.has(g)||G.has(g))return;let V=0,v=H.get(g)??0;if(M.has(g))V=M.get(g)-1;else {if(v>j&&M.size>F){C.has(v)||C.set(v,new Set),C.get(v).add(g),t.emit("node:intercept",{path:g,type:7});return}let U=e.GetPrevDependency(g),k=0;for(let Q of U){if(h.has(Q))continue;(H.get(Q)??0)>j&&k++;}V=k;}if(V<=0){let U=G.has(g),k=S.has(g);if(U||k){t.emit("node:intercept",{path:g,type:k?3:3.1});return}M.delete(g),G.add(g),t.emit("node:release",{path:g,type:T,detail:{path:m}});}else M.set(g,V);},L=(g=[])=>{if(r.get(y)!==P)return;if(g.length){let v={},U=D.proxy;for(let k of g){let Q=(k.args||[]).reduce((W,ne)=>(W[ne]=U[ne],W),{});try{let W=k.fn(Q);W&&typeof W=="object"&&Object.assign(v,W);}catch(W){}}for(let k in v)if(k in D.state)D.state[k]=v[k];else throw {error:`wrong effect in ${String(D.path)}`};E=true;}E&&c.flushPathSet.add(m),t.emit("node:success",{path:m}),h.add(m);let T=e.GetNextDependency(m);(E||R)&&e.GetAllNextDependency(m).forEach(U=>Y.add(U));for(let v of T){if(h.has(v)){t.emit("node:intercept",{path:v,type:2});continue}if(S.has(v)||G.has(v)){t.emit("node:intercept",{path:v,type:S.has(v)?3:3.1});continue}if(E||R)K(v,1);else if(M.has(v))K(v,2);else {let k=H.get(v);C.has(k)||C.set(k,new Set);let Q=C.get(k);Q.has(v)||(Q.add(v),t.emit("node:stagnate",{path:v,type:1}));}}S.delete(m),(async()=>{if(!p){let v=S.size,U=G.size;t.emit("flow:fire",{path:m,type:1,detail:{active:v,pending:U,blocked:M.size}}),A();}})();},_=g=>{t.emit("node:error",{path:m,error:g});let T=Symbol("abort");r.set(y,T),G.clear(),M.clear(),S.clear(),t.callOnError(g);},b=(g,T)=>{let V=false;g!==D.state[T]&&(D.state[T]=g,E=true,t.emit("node:bucket:success",{path:m,key:String(T),value:g}),D.notifyKeys.has(T)&&(V=true)),D.nodeBucket[T].isForceNotify()&&(R=true),(V||R)&&f(m);};t.emit("node:start",{path:m});try{let g=[];for(let T in D.nodeBucket){let V=D.nodeBucket[T];g.push(...V.getSideEffect());let v=V.evaluate({affectKey:T,triggerPath:I,GetRenderSchemaByPath:U=>n.GetNodeByPath(U).proxy,GetValueByPath:U=>n.GetNodeByPath(U).state,GetToken:()=>P});if(v instanceof Promise){let U=v.then(k=>{r.get(y)===P&&b(k,T);});$.push(U);}else b(v,T);}if($.length>0)return Promise.all($).then(()=>{L(g);}).catch(_);L(g);return}catch(g){_(g);}},A=async()=>{if(r.get(y)!==P){p=false;return}p=true;let w=s.getIsFirstFrame(),m=0,I=()=>o&&w?30:1/0,E=0,R=I();try{for(;r.get(y)===P;){let D=E>=R,$=s.shouldYield();if(D||$){if(E>0&&(m++,(w||m%2===0)&&c.requestUpdate()),await s.yieldToMain(),r.get(y)!==P)break;E=0,w=s.getIsFirstFrame();}if(G.size>0&&S.size<5){for(let K of G){if(S.size>=5||E>=R)break;let L=H.get(K)??0,_=e.GetPrevDependency(K),b=_.length>1;if((!o||b)&&L>j){G.delete(K);let T=_.filter(V=>Y.has(V)&&!h.has(V)).length;M.set(K,T||0),t.emit("node:intercept",{path:K,type:T>0?4:5,detail:{targetLevel:L,currentLevel:j,pendingParentsCount:T}});continue}if(G.delete(K),S.add(K),t.emit("node:processing",{path:K}),z({target:K,trigger:u}),E++,E>=R||s.shouldYield())break}if(G.size>0)continue}if(E<R&&o&&M.size>0&&S.size<5){let K=!1,L=0;for(let[_,b]of M)if(b<=0){let g=H.get(_)??0,T=e.GetPrevDependency(_);if(g>j&&T.length>1)continue;if(M.delete(_),G.add(_),L++,K=!0,t.emit("node:release",{path:_,type:4}),L>=R)break}if(L>0)continue;if(K){if(s.shouldYield()&&(await s.yieldToMain(),r.get(y)!==P))break;continue}}if(S.size===0&&G.size===0){let K=new Set;for(let b of C.keys())K.add(b);for(let[b]of M){let g=H.get(b)??0;g>j&&K.add(g);}let L=Array.from(K).sort((b,g)=>b-g),_=L[0];if(L.length>0&&_<=q){let b=L[0];if(b<=q){j=b;let g=C.get(b);g&&(g.forEach(T=>G.add(T)),C.delete(b));for(let[T]of M)(H.get(T)??0)===b&&(M.delete(T),G.add(T),t.emit("node:release",{path:T,type:3,detail:{level:b}}));continue}}else {C.forEach((b,g)=>{b.forEach(T=>{h.add(T),t.emit("node:intercept",{path:T,type:6});});}),C.clear();for(let[b]of M)h.add(b),t.emit("node:intercept",{path:b,type:6});M.clear();break}}G.size>0&&S.size>=5&&t.emit("flow:wait",{type:2});break}}finally{if(p=false,S.size+M.size+G.size===0){if(r.get(y)===P&&!x){x=true,t.emit("flow:end",{type:1}),c.requestUpdate();let $=performance.now();t.emit("flow:success",{duration:($-N).toFixed(2.1)+"ms"}),Promise.resolve().then(()=>{t.callOnSuccess();});}}else t.emit("flow:wait",{type:1,detail:{nums:S.size}});}};A();}}function se(l){let{path:e,uid:n,type:t,meta:c,dirtySignal:r,state:o}=l,s=null,i=["path","uid","type","dependOn","nodeBucket"],a={path:e,uid:n,type:t,meta:c,dirtySignal:r,createView:(d={})=>{if(s&&Object.keys(d).length===0)return s;let P=new Proxy(d,{get(y,p){let h=p;return Reflect.has(y,p)?Reflect.get(y,p):h in l.state?l.state[h]:h in l?l[h]:c&&h in c?c[h]:Reflect.get(y,p)},set(y,p,h){let S=p;return S in l.state?(l.state[S]=h,true):Reflect.set(y,p,h)},ownKeys(y){let p=new Set([...Reflect.ownKeys(y),...Object.keys(o||{}),...Object.keys(c||{}),...i]);return Array.from(p)},getOwnPropertyDescriptor(y,p){let h=p;return Reflect.has(y,p)||o&&h in o||c&&h in c||i.includes(h)?{enumerable:true,configurable:true}:Reflect.getOwnPropertyDescriptor(y,p)}});return s=P,P}};return "children"in l?{...a,children:l.children}:{...a,state:l.state,nodeBucket:l.nodeBucket,notifyKeys:l.notifyKeys,dependOn:l.dependOn,get proxy(){return s}}}function Pe(l,e,n,t,c){let r=0,o=new Map,s=new Map,i=new Map,u=false,a=new Set,P=async()=>{let f=Array.from(a);if(a.clear(),"signalTrigger"in c&&typeof c.signalTrigger=="function")for(let N of f){let x=M(N);c.signalTrigger(x.dirtySignal);}else "emit"in c&&c.emit(f);},y=()=>{u||(u=true,requestAnimationFrame(()=>{try{for(;a.size>0;)P();}finally{u=false;}}));},p=ge({useGreedy:l.useGreedy},e,{GetNodeByPath:M},t,{requestUpdate:y,flushPathSet:a}),h=f=>{throw new Error(`[MeshFlow] Duplicate Path: ${f}`)},S=f=>{o.has(f.path)&&h(String(f.path));let N=++r,x={path:f.path,getNode:A=>M(A)},F=(A,w="value")=>{let m=A({...x}),I=M(f.path);if(n.createHistoryAction&&n.pushIntoHistory){let E=n.createHistoryAction([{path:f.path,value:I.state[w]},{path:f.path,value:m}],R=>{let D=M(R.path);D.state[w]=R.value,G(R.path);});n.pushIntoHistory(E);}I.state[w]=m,G(f.path);};f.notifyKeys.size==0&&f.notifyKeys.add("value");let z=se({uid:N,type:f.type,path:f.path,state:f.state,meta:f.meta,nodeBucket:f.nodeBucket,dirtySignal:f.dirtySignal,notifyKeys:f.notifyKeys,dependOn:F});return o.set(z.path,N),s.set(N,z),z},Y=f=>{o.has(f.path)&&h(String(f.path));let N=++r,x=se({uid:N,type:f.type,path:f.path,state:{},meta:f,nodeBucket:{},children:f.children});return o.set(x.path,N),i.set(N,x),x};function M(f){let N=o.get(f),x=s.get(N);if(!x)throw Error("wrong ID");return x}function C(f){let N=o.get(f);return i.get(N)}let G=f=>{if(!M(f))throw Error("Node undefined");a.add(f),y();let x=e.GetNextDependency(f);H(x,f);};function H(f,N){p(N,f);}return {registerNode:S,registerGroupNode:Y,GetNodeByPath:M,GetGroupByPath:C,notify:G,notifyAll:async()=>{Promise.resolve().then(async()=>{let f=e.GetDependencyOrder();if(!f||f.length===0)return;let N=f[0];try{p(null,N);}catch(x){throw t.callOnError(x),x}finally{y();}});},batchNotify:f=>{if(!f||f.length===0)return;if(n.createHistoryAction&&n.pushIntoHistory){let x=n.createHistoryAction([f.map(F=>({path:F.path,key:F.key,value:M(F.path).state[F.key]})),f.map(F=>({path:F.path,key:F.key,value:F.value}))],F=>{let z=new Set;F.forEach(A=>{let w=M(A.path);w.state[A.key]=A.value,a.add(A.path),z.add(A.path);}),y(),z.size>0&&p(null,Array.from(z));});n.pushIntoHistory(x);}let N=new Set;f.forEach(x=>{let F=M(x.path);F.state[x.key]=x.value,a.add(x.path),N.add(x.path);}),y(),N.size>0&&p(null,Array.from(N));},UITrigger:c,UidToNodeMap:s}}function me(l,e){let n=false,t=false,c=new Map,r=new Map,o=new Map,s=new Map,i=[],u=new Map,{GetNextDependency:d,GetPrevDependency:P,GetAllPrevDependency:y,GetAllNextDependency:p,rebuildDirectDependencyMaps:h}=ce(()=>c,()=>r,()=>s,()=>o),S={},Y={};if(e.modules.useHistory){let O=e.modules.useHistory,B;O.isMeshModuleInited?B=O:B=O();let{Undo:X,Redo:J,PushIntoHistory:Me,CreateHistoryAction:Se,initCanUndo:Te,initCanRedo:xe}=B();S.pushIntoHistory=Me,S.createHistoryAction=Se,Y={Undo:X,Redo:J,initCanUndo:Te,initCanRedo:xe};}let M=!!e.modules.useMeshRenderGate,C={};if(M){let O=e.modules.useMeshRenderGate.isMeshModuleInited,B=e.modules.useMeshRenderGate;C=(O?B:B())(()=>R);}let{onError:G,callOnError:H}=de(),{onSuccess:j,callOnSuccess:q}=fe(),{onStart:f,callOnStart:N}=he(),{emit:x,usePlugin:F}=ye(),{SetTrace:z,useTrace:A}=le(),w=A();F(w);let m=M?{...C}:{...e.UITrigger},I=Pe({useGreedy:e.config.useGreedy},{GetDependencyOrder:()=>i,GetAllNextDependency:p,GetNextDependency:d,GetPrevDependency:P,GetAllPrevDependency:y,GetPathToLevelMap:()=>u},S,{callOnError:H,callOnSuccess:q,callOnStart:N,emit:x},m),{GetGroupByPath:E,GetNodeByPath:R,notifyAll:D}=I;M&&C.init();let $={};if(e.modules.useInternalForm){let{uiSchema:O,GetFormData:B}=e.modules.useInternalForm(I,l);$={uiSchema:O,GetFormData:B};}let K={};if(e.modules.useSchemaValidators){let{SetValidators:O}=e.modules.useSchemaValidators(R);K={SetValidators:O};}let{SetRule:L,SetRules:_}=oe(R,c,r),{SetStrategy:b}=ie(R),g=ue(c),T=()=>{let O=g();i=O.steps,u=O.levelMap;},V=()=>{t||(t=true,Promise.resolve().then(()=>{if(T(),n){let{directNextMap:O,directPrevMap:B}=h(i.flat());o=O,s=B;}}).finally(()=>{t=false,n=false;}));};return {SetRule:(O,B,X,J)=>{L(O,B,X,J),n=true,V();},SetRules:(O,B,X,J)=>{_(O,B,X,J),n=true,V();},SetStrategy:b,SetTrace:z,usePlugin:F,SetValue:(O,B,X)=>{R(O).dependOn(()=>X,B);},GetValue:(O,B="value")=>R(O)[B],SetValues:O=>{I.batchNotify(O);},GetGroupByPath:E,notifyAll:async()=>{T(),await D();},GetAllDependency:()=>c,GetDependencyOrder:()=>i,historyExports:Y,formExports:$,validatorExports:K,batchRenderExport:C,hasRenderGate:()=>M,onError:G,onSuccess:j,onStart:f,scheduler:I}}var te=new Map,ve=(l,e,n)=>{try{if(te.has(l))throw Error("engineID repeated");let t=me(e,{config:n.config||{useGreedy:!1},UITrigger:n.UITrigger,modules:n.modules??{},plugins:{}}),{SetRule:c,SetRules:r,SetValues:o,SetStrategy:s,SetValue:i,GetValue:u,usePlugin:a,GetGroupByPath:d,notifyAll:P,SetTrace:y,GetAllDependency:p,GetDependencyOrder:h,historyExports:S,formExports:Y,validatorExports:M,batchRenderExport:C,hasRenderGate:G,onError:H,onSuccess:j,onStart:q,scheduler:f}=t,N={config:{SetRule:c,SetRules:r,SetStrategy:s,notifyAll:P,SetTrace:y,usePlugin:a,hasRenderGate:G},data:{SetValue:i,GetValue:u,SetValues:o,GetGroupByPath:d},dependency:{GetAllDependency:p,GetDependencyOrder:h},hooks:{onError:H,onSuccess:j,onStart:q}},x=(A,w,m)=>{!w||typeof w!="object"||Object.keys(w).forEach(I=>{let E=w[I];if(typeof E=="object"&&E!==null)A[I]=A[I]||{},x(A[I],E,m);else if(typeof E=="function"){let R=I;if(R==="useMeshRenderGate")R="render";else if(R.startsWith("use")){let D=R.slice(3);R=D.charAt(0).toLowerCase()+D.slice(1);}I==="useHistory"&&m.exports.history&&Object.keys(m.exports.history).length>0?A[R]=m.exports.history:I==="useInternalForm"&&m.exports.form&&Object.keys(m.exports.form).length>0?A[R]=m.exports.form:I==="useSchemaValidators"&&m.exports.validator&&Object.keys(m.exports.validator).length>0?A[R]=m.exports.validator:I==="useMeshRenderGate"&&m.exports.render?A[R]=m.exports.render:A[R]=E(m.scheduler,m.Schema);}});},F={...N,modules:{}},z=n.modules;return z&&x(F.modules,z,{scheduler:f,Schema:e,exports:{history:S,form:Y,validator:M,render:C}}),te.set(l,F),F}catch(t){throw Error(t)}},at=()=>(l,e,n)=>Ne(l,e,n),ot=l=>{let e=te.get(l);if(e)return e;throw Error("[MeshFlow] Engine ID not found.")},it=l=>{te.delete(l);},Ne=ve;exports.deleteEngine=it;exports.useEngine=ot;exports.useEngineManager=ve;exports.useMeshFlow=Ne;exports.useMeshFlowDefiner=at;exports.useScheduler=Pe;
package/index.mjs CHANGED
@@ -1 +1 @@
1
- var re=class{computedRules=[];store={OR:(e,n)=>{let t,c,r=this.computedRules;for(let o=0;o<r.length;o++){let s=r[o],i=s.logic(e);if(i instanceof Promise)return (async()=>{let a=await i;if(s.entityId==="__base__"?c=a:a&&(t=a),typeof t>"u")for(let d=o+1;d<r.length;d++){let P=r[d],y=P.logic(e),h=y instanceof Promise?await y:y;if(P.entityId==="__base__"){c=h;continue}if(h){t=P.value;break}}return typeof t>"u"&&(t=c),{res:t,version:n}})();let u=i;if(s.entityId==="__base__"){c=u;continue}if(u){t=s.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 s=c[r].logic(e);if(s instanceof Promise)return (async()=>{let i=await s;if(i!==void 0)return {res:i,version:n};for(let u=r+1;u<c.length;u++){let a=c[u].logic(e),d=a instanceof Promise?await a:a;if(d!==void 0)return {res:d,version:n}}return {res:void 0,version:n}})();if(s!==void 0)return {res:s,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)}},ee=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 re(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 o=this.rules.get(r);o&&(o.delete(c),o.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 o=this.rules.get(r);o&&(o.delete(c),o.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 o=this.deps.get(e.triggerPath),s=e.GetValueByPath(e.triggerPath);if(typeof o=="object"||typeof s=="object")t=false;else {let i=Array.from(this.deps.keys());for(let u of i){let a=this.deps.get(u),d=e.GetValueByPath(u);if(a!==d){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:o,version:s}=r;return this.finalizeSync(o,s,e,n)}return this.pendingPromise=(async()=>{try{let{res:o,version:s}=await r;return this.finalizeSync(o,s,e,n)}catch(o){throw {path:this.path,error:o}}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,o)=>{this.deps.set(o,t.GetValueByPath(o));}),e)}inferType(e){return Array.isArray(e)?"array":typeof e}};var ae=(l,e,n)=>{let c=r=>{let o=n.triggerPaths.map(u=>{let a=r.GetValueByPath(u),d={};return n.triggerKeys.forEach(P=>{d[P]=a[P];}),d}),s=Object.create(null);return Object.defineProperty(s,"triggerTargets",{get:()=>o}),Object.defineProperty(s,"affectedTatget",{get:()=>r.GetRenderSchemaByPath(l)[e]}),n.logic({slot:s})};return {value:n.value,targetPath:l,triggerPaths:n.triggerPaths,priority:n.priority??10,logic:c}},oe=(l,e,n)=>{if(!l)throw Error("");let t=l,c=(s,i)=>{e.has(s)||e.set(s,new Set),e.get(s).add(i),n.has(i)||n.set(i,new Set),n.get(i).add(s);};return {SetRule:(s,i,u,a)=>{let d=t(i),P=a.triggerKeys||[];P.length==0&&P.push("value");let y=ae(i,u,{...a,triggerPaths:[s],triggerKeys:P}),h=[s].map(p=>[p,t(p).state.value]);if(c(s,i),d.nodeBucket[u])d.nodeBucket[u].setRule(y,h),a.effect&&d.nodeBucket[u].setSideEffect({fn:a.effect,args:a.effectArgs?a.effectArgs:[u]});else {let p=d.meta[u],S=new ee(p,u,i);S.setRule(y,h),a.effect&&S.setSideEffect({fn:a.effect,args:a.effectArgs?a.effectArgs:[u]}),d.nodeBucket[u]=S;}d.state[u]=d.meta[u],a.forceNotify&&d.nodeBucket[u].forceNotify(),a.cacheStrategy=="none"&&d.nodeBucket[u].setUseCache(false);},SetRules:(s,i,u,a)=>{let d=t(i);for(let p of s)c(p,i);let P=a.triggerKeys||[];P.length==0&&P.push("value");let y=ae(i,u,{...a,triggerPaths:s,triggerKeys:P}),h=s.map(p=>[p,t(p).state.value]);if(d.nodeBucket[u])d.nodeBucket[u].setRules(y,h),a.effect&&d.nodeBucket[u].setSideEffect({fn:a.effect,args:a.effectArgs?a.effectArgs:[u]});else {let p=d.meta[u],S=new ee(p,u,i);S.setRules(y,h),a.effect&&S.setSideEffect({fn:a.effect,args:a.effectArgs?a.effectArgs:[u]}),d.nodeBucket[u]=S;}d.state[u]=d.meta[u],a.forceNotify&&d.nodeBucket[u].forceNotify(),a.cacheStrategy=="none"&&d.nodeBucket[u].setUseCache(false);}}};var ie=l=>{let e=l||void 0;if(!e)throw Error("");return {SetStrategy:(t,c,r)=>{e(t).nodeBucket[c].setStrategy(r);}}};function le(){let l=new Map,e=new Map,n=new Set,t=(o,s)=>{l.set(o,s);let i=e.get(o);i&&i(s);};return {SetTrace:(o,s)=>{e.set(o,s);let i=l.get(o)||"idle";return s(i),{cancel:()=>{e.delete(o);}}},useTrace:()=>({apply:s=>{s.on("flow:start",()=>{n.forEach(i=>t(i,"idle")),n.clear(),l.clear();}),s.on("node:release",({path:i,type:u})=>{(u==1||u==2)&&(n.add(i),t(i,"pending"));}),s.on("node:pending",({path:i})=>{n.add(i),(!l.has(i)||l.get(i)==="idle")&&t(i,"pending");}),s.on("node:start",({path:i})=>{n.add(i),t(i,"calculating");}),s.on("node:success",({path:i})=>{t(i,"calculated");}),s.on("node:intercept",({path:i,type:u})=>{u==3&&t(i,"calculating"),u==6&&t(i,"idle");}),s.on("node:stagnate",({path:i})=>{t(i,"pending");}),s.on("node:error",({path:i})=>t(i,"error"));}})}}function ce(l,e,n,t){let c=a=>{let d=l(),P=e(),y=new Set;return d.get(a)?.forEach(h=>y.add(h)),y.size===0?[]:Array.from(y).filter(h=>{let p=P.get(h)||new Set;return !Array.from(p).some(M=>y.has(M))})};return {GetNextDependency:a=>{let d=t();return Array.from(d.get(a)||[])},GetPrevDependency:a=>{let d=n();return Array.from(d.get(a)||[])},GetAllPrevDependency:a=>{let d=e();return Array.from(d.get(a)||[])},GetAllNextDependency:a=>{let d=l();return Array.from(d.get(a)||[])},rebuildDirectDependencyMaps:a=>{let d=new Map,P=new Map;for(let y of a){let h=c(y);d.set(y,new Set(h));for(let p of h)P.has(p)||P.set(p,new Set),P.get(p).add(y);}return {directNextMap:d,directPrevMap:P}}}}function ue(l){let e=t=>{let c=[],r=[],o=new Map,s=t.size,i=0,u=0;for(let[a,d]of t)d===0&&r.push(a);if(r.length===0&&s>0)throw Error("Circular dependency detected");for(;r.length>0;){c.push([...r]);let a=[];for(let d of r){i++,o.set(d,u);let P=l.get(d);if(P)for(let y of P){let h=t.get(y)-1;t.set(y,h),h===0&&a.push(y);}}r=a,u++;}if(i<s)throw Error("Circular dependency detected");return {steps:c,levelMap:o}};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 o of r){let s=t.get(o)||0;t.set(o,++s);}}return e(t)}}var Z=()=>{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 de(){let{on:l,call:e}=Z();return {onError:l,callOnError:e}}function fe(){let{on:l,call:e}=Z();return {onSuccess:l,callOnSuccess:e}}var ye=()=>{let l=new Set,e=new Map,n=(r,o)=>{e.get(r)?.forEach(s=>s(o));},t=(r,o)=>(e.has(r)||e.set(r,new Set),e.get(r).add(o),()=>e.get(r).delete(o));return {usePlugin:r=>{let o=new Set,s=(i,u)=>{let a=t(i,u);return o.add(a),a};return r.apply({on:s}),l.add(r),()=>{o.forEach(i=>i()),o.clear(),l.delete(r);}},emit:n}};function pe(){let{on:l,call:e}=Z();return {onStart:l,callOnStart:e}}var he=(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=>{Te(()=>{e=performance.now(),n=0,t&&(t=false),r();});})}}},Te=l=>{let{port1:e,port2:n}=new MessageChannel;e.onmessage=l,n.postMessage(null);};function ge(l,e,n,t,c){let r=new Map,o=l.useGreedy,s=he();return async(u,a)=>{let P=Symbol("token"),y=u||"__NOTIFY_ALL__";r.set(y,P);let h=false;s.reset();let p=new Set,S=new Set,Y=new Set;a.forEach(w=>{Y.add(w),e.GetAllNextDependency(w).forEach(m=>Y.add(m));});let M=new Map,C=new Map,E=new Set,L=e.GetPathToLevelMap(),j=0,q=0,f=w=>{e.GetAllNextDependency(w).forEach(F=>{let G=L.get(F)||0;G>q&&(q=G);});};u?(j=L.get(u)??0,f(u),p.add(u)):a.forEach(w=>f(w)),a.forEach(w=>{E.add(w);});let N=performance.now();t.emit("flow:start",{path:y}),t.callOnStart({path:y});let x=false,b=30,z=w=>{let{target:m,trigger:F}=w,G=false,R=false,D=n.GetNodeByPath(m),$=[],I=(g,T)=>{if(p.has(g)||S.has(g)||E.has(g))return;let B=0,v=L.get(g)??0;if(M.has(g))B=M.get(g)-1;else {if(v>j&&M.size>b){C.has(v)||C.set(v,new Set),C.get(v).add(g),t.emit("node:intercept",{path:g,type:7});return}let U=e.GetPrevDependency(g),k=0;for(let Q of U){if(p.has(Q))continue;(L.get(Q)??0)>j&&k++;}B=k;}if(B<=0){let U=E.has(g),k=S.has(g);if(U||k){t.emit("node:intercept",{path:g,type:k?3:3.1});return}M.delete(g),E.add(g),t.emit("node:release",{path:g,type:T,detail:{path:m}});}else M.set(g,B);},_=(g=[])=>{if(r.get(y)!==P)return;if(g.length){let v={},U=D.proxy;for(let k of g){let Q=(k.args||[]).reduce((W,ne)=>(W[ne]=U[ne],W),{});try{let W=k.fn(Q);W&&typeof W=="object"&&Object.assign(v,W);}catch(W){}}for(let k in v)if(k in D.state)D.state[k]=v[k];else throw {error:`wrong effect in ${String(D.path)}`};G=true;}G&&c.flushPathSet.add(m),t.emit("node:success",{path:m}),p.add(m);let T=e.GetNextDependency(m);(G||R)&&e.GetAllNextDependency(m).forEach(U=>Y.add(U));for(let v of T){if(p.has(v)){t.emit("node:intercept",{path:v,type:2});continue}if(S.has(v)||E.has(v)){t.emit("node:intercept",{path:v,type:S.has(v)?3:3.1});continue}if(G||R)I(v,1);else if(M.has(v))I(v,2);else {let k=L.get(v);C.has(k)||C.set(k,new Set);let Q=C.get(k);Q.has(v)||(Q.add(v),t.emit("node:stagnate",{path:v,type:1}));}}S.delete(m),(async()=>{if(!h){let v=S.size,U=E.size;t.emit("flow:fire",{path:m,type:1,detail:{active:v,pending:U,blocked:M.size}}),A();}})();},H=g=>{t.emit("node:error",{path:m,error:g});let T=Symbol("abort");r.set(y,T),E.clear(),M.clear(),S.clear(),t.callOnError(g);},O=(g,T)=>{let B=false;g!==D.state[T]&&(D.state[T]=g,G=true,t.emit("node:bucket:success",{path:m,key:String(T),value:g}),D.notifyKeys.has(T)&&(B=true)),D.nodeBucket[T].isForceNotify()&&(R=true),(B||R)&&f(m);};t.emit("node:start",{path:m});try{let g=[];for(let T in D.nodeBucket){let B=D.nodeBucket[T];g.push(...B.getSideEffect());let v=B.evaluate({affectKey:T,triggerPath:F,GetRenderSchemaByPath:U=>n.GetNodeByPath(U).proxy,GetValueByPath:U=>n.GetNodeByPath(U).state,GetToken:()=>P});if(v instanceof Promise){let U=v.then(k=>{r.get(y)===P&&O(k,T);});$.push(U);}else O(v,T);}if($.length>0)return Promise.all($).then(()=>{_(g);}).catch(H);_(g);return}catch(g){H(g);}},A=async()=>{if(r.get(y)!==P){h=false;return}h=true;let w=s.getIsFirstFrame(),m=0,F=()=>o&&w?30:1/0,G=0,R=F();try{for(;r.get(y)===P;){let D=G>=R,$=s.shouldYield();if(D||$){if(G>0&&(m++,(w||m%2===0)&&c.requestUpdate()),await s.yieldToMain(),r.get(y)!==P)break;G=0,w=s.getIsFirstFrame();}if(E.size>0&&S.size<5){for(let I of E){if(S.size>=5||G>=R)break;let _=L.get(I)??0,H=e.GetPrevDependency(I),O=H.length>1;if((!o||O)&&_>j){E.delete(I);let T=H.filter(B=>Y.has(B)&&!p.has(B)).length;M.set(I,T||0),t.emit("node:intercept",{path:I,type:T>0?4:5,detail:{targetLevel:_,currentLevel:j,pendingParentsCount:T}});continue}if(E.delete(I),S.add(I),t.emit("node:processing",{path:I}),z({target:I,trigger:u}),G++,G>=R||s.shouldYield())break}if(E.size>0)continue}if(G<R&&o&&M.size>0&&S.size<5){let I=!1,_=0;for(let[H,O]of M)if(O<=0){let g=L.get(H)??0,T=e.GetPrevDependency(H);if(g>j&&T.length>1)continue;if(M.delete(H),E.add(H),_++,I=!0,t.emit("node:release",{path:H,type:4}),_>=R)break}if(_>0)continue;if(I){if(s.shouldYield()&&(await s.yieldToMain(),r.get(y)!==P))break;continue}}if(S.size===0&&E.size===0){let I=new Set;for(let O of C.keys())I.add(O);for(let[O]of M){let g=L.get(O)??0;g>j&&I.add(g);}let _=Array.from(I).sort((O,g)=>O-g),H=_[0];if(_.length>0&&H<=q){let O=_[0];if(O<=q){j=O;let g=C.get(O);g&&(g.forEach(T=>E.add(T)),C.delete(O));for(let[T]of M)(L.get(T)??0)===O&&(M.delete(T),E.add(T),t.emit("node:release",{path:T,type:3,detail:{level:O}}));continue}}else {C.forEach((O,g)=>{O.forEach(T=>{p.add(T),t.emit("node:intercept",{path:T,type:6});});}),C.clear();for(let[O]of M)p.add(O),t.emit("node:intercept",{path:O,type:6});M.clear();break}}E.size>0&&S.size>=5&&t.emit("flow:wait",{type:2});break}}finally{if(h=false,S.size+M.size+E.size===0){if(r.get(y)===P&&!x){x=true,t.emit("flow:end",{type:1}),c.requestUpdate();let $=performance.now();t.emit("flow:success",{duration:($-N).toFixed(2.1)+"ms"}),Promise.resolve().then(()=>{t.callOnSuccess();});}}else t.emit("flow:wait",{type:1,detail:{nums:S.size}});}};A();}}function se(l){let{path:e,uid:n,type:t,meta:c,dirtySignal:r,state:o}=l,s=null,i=["path","uid","type","dependOn","nodeBucket"],a={path:e,uid:n,type:t,meta:c,dirtySignal:r,createView:(d={})=>{if(s&&Object.keys(d).length===0)return s;let P=new Proxy(d,{get(y,h){let p=h;return Reflect.has(y,h)?Reflect.get(y,h):p in l.state?l.state[p]:p in l?l[p]:c&&p in c?c[p]:Reflect.get(y,h)},set(y,h,p){let S=h;return S in l.state?(l.state[S]=p,true):Reflect.set(y,h,p)},ownKeys(y){let h=new Set([...Reflect.ownKeys(y),...Object.keys(o||{}),...Object.keys(c||{}),...i]);return Array.from(h)},getOwnPropertyDescriptor(y,h){let p=h;return Reflect.has(y,h)||o&&p in o||c&&p in c||i.includes(p)?{enumerable:true,configurable:true}:Reflect.getOwnPropertyDescriptor(y,h)}});return s=P,P}};return "children"in l?{...a,children:l.children}:{...a,state:l.state,nodeBucket:l.nodeBucket,notifyKeys:l.notifyKeys,dependOn:l.dependOn,get proxy(){return s}}}function Pe(l,e,n,t,c){let r=0,o=new Map,s=new Map,i=new Map,u=false,a=new Set,P=async()=>{let f=Array.from(a);if(a.clear(),"signalTrigger"in c&&typeof c.signalTrigger=="function")for(let N of f){let x=M(N);c.signalTrigger(x.dirtySignal);}else "emit"in c&&c.emit(f);},y=()=>{u||(u=true,requestAnimationFrame(()=>{try{for(;a.size>0;)P();}finally{u=false;}}));},h=ge({useGreedy:l.useGreedy},e,{GetNodeByPath:M},t,{requestUpdate:y,flushPathSet:a}),p=f=>{throw new Error(`[MeshFlow] Duplicate Path: ${f}`)},S=f=>{o.has(f.path)&&p(String(f.path));let N=++r,x={path:f.path,getNode:A=>M(A)},b=(A,w="value")=>{let m=A({...x}),F=M(f.path);if(n.createHistoryAction&&n.pushIntoHistory){let G=n.createHistoryAction([{path:f.path,value:F.state[w]},{path:f.path,value:m}],R=>{let D=M(R.path);D.state[w]=R.value,E(R.path);});n.pushIntoHistory(G);}F.state[w]=m,E(f.path);};f.notifyKeys.size==0&&f.notifyKeys.add("value");let z=se({uid:N,type:f.type,path:f.path,state:f.state,meta:f.meta,nodeBucket:f.nodeBucket,dirtySignal:f.dirtySignal,notifyKeys:f.notifyKeys,dependOn:b});return o.set(z.path,N),s.set(N,z),z},Y=f=>{o.has(f.path)&&p(String(f.path));let N=++r,x=se({uid:N,type:f.type,path:f.path,state:{},meta:f,nodeBucket:{},children:f.children});return o.set(x.path,N),i.set(N,x),x};function M(f){let N=o.get(f),x=s.get(N);if(!x)throw Error("wrong ID");return x}function C(f){let N=o.get(f);return i.get(N)}let E=f=>{if(!M(f))throw Error("Node undefined");a.add(f),y();let x=e.GetNextDependency(f);L(x,f);};function L(f,N){h(N,f);}return {registerNode:S,registerGroupNode:Y,GetNodeByPath:M,GetGroupByPath:C,notify:E,notifyAll:async()=>{Promise.resolve().then(async()=>{let f=e.GetDependencyOrder();if(!f||f.length===0)return;let N=f[0];try{h(null,N);}catch(x){throw t.callOnError(x),x}finally{y();}});},batchNotify:f=>{if(!f||f.length===0)return;if(n.createHistoryAction&&n.pushIntoHistory){let x=n.createHistoryAction([f.map(b=>({path:b.path,key:b.key,value:M(b.path).state[b.key]})),f.map(b=>({path:b.path,key:b.key,value:b.value}))],b=>{let z=new Set;b.forEach(A=>{let w=M(A.path);w.state[A.key]=A.value,a.add(A.path),z.add(A.path);}),y(),z.size>0&&h(null,Array.from(z));});n.pushIntoHistory(x);}let N=new Set;f.forEach(x=>{let b=M(x.path);b.state[x.key]=x.value,a.add(x.path),N.add(x.path);}),y(),N.size>0&&h(null,Array.from(N));},UITrigger:c,UidToNodeMap:s}}function me(l,e){let n=false,t=false,c=new Map,r=new Map,o=new Map,s=new Map,i=[],u=new Map,{GetNextDependency:d,GetPrevDependency:P,GetAllPrevDependency:y,GetAllNextDependency:h,rebuildDirectDependencyMaps:p}=ce(()=>c,()=>r,()=>s,()=>o),S={},Y={};if(e.modules.useHistory){let{Undo:K,Redo:V,PushIntoHistory:X,CreateHistoryAction:J,initCanUndo:Me,initCanRedo:Se}=e.modules.useHistory();S.pushIntoHistory=X,S.createHistoryAction=J,Y={Undo:K,Redo:V,initCanUndo:Me,initCanRedo:Se};}let M=!!e.modules.useMeshRenderGate,C={};if(M){let K=e.modules.useMeshRenderGate.isMeshModuleInited,V=e.modules.useMeshRenderGate;C=(K?V:V())(()=>R);}let{onError:E,callOnError:L}=de(),{onSuccess:j,callOnSuccess:q}=fe(),{onStart:f,callOnStart:N}=pe(),{emit:x,usePlugin:b}=ye(),{SetTrace:z,useTrace:A}=le(),w=A();b(w);let m=M?{...C}:{...e.UITrigger},F=Pe({useGreedy:e.config.useGreedy},{GetDependencyOrder:()=>i,GetAllNextDependency:h,GetNextDependency:d,GetPrevDependency:P,GetAllPrevDependency:y,GetPathToLevelMap:()=>u},S,{callOnError:L,callOnSuccess:q,callOnStart:N,emit:x},m),{GetGroupByPath:G,GetNodeByPath:R,notifyAll:D}=F;M&&C.init();let $={};if(e.modules.useInternalForm){let{uiSchema:K,GetFormData:V}=e.modules.useInternalForm(F,l);$={uiSchema:K,GetFormData:V};}let I={};if(e.modules.useSchemaValidators){let{SetValidators:K}=e.modules.useSchemaValidators(R);I={SetValidators:K};}let{SetRule:_,SetRules:H}=oe(R,c,r),{SetStrategy:O}=ie(R),g=ue(c),T=()=>{let K=g();i=K.steps,u=K.levelMap;},B=()=>{t||(t=true,Promise.resolve().then(()=>{if(T(),n){let{directNextMap:K,directPrevMap:V}=p(i.flat());o=K,s=V;}}).finally(()=>{t=false,n=false;}));};return {SetRule:(K,V,X,J)=>{_(K,V,X,J),n=true,B();},SetRules:(K,V,X,J)=>{H(K,V,X,J),n=true,B();},SetStrategy:O,SetTrace:z,usePlugin:b,SetValue:(K,V,X)=>{R(K).dependOn(()=>X,V);},GetValue:(K,V="value")=>R(K)[V],SetValues:K=>{F.batchNotify(K);},GetGroupByPath:G,notifyAll:async()=>{T(),await D();},GetAllDependency:()=>c,GetDependencyOrder:()=>i,historyExports:Y,formExports:$,validatorExports:I,batchRenderExport:C,hasRenderGate:()=>M,onError:E,onSuccess:j,onStart:f,scheduler:F}}var te=new Map,xe=(l,e,n)=>{try{if(te.has(l))throw Error("engineID repeated");let t=me(e,{config:n.config||{useGreedy:!1},UITrigger:n.UITrigger,modules:n.modules??{},plugins:{}}),{SetRule:c,SetRules:r,SetValues:o,SetStrategy:s,SetValue:i,GetValue:u,usePlugin:a,GetGroupByPath:d,notifyAll:P,SetTrace:y,GetAllDependency:h,GetDependencyOrder:p,historyExports:S,formExports:Y,validatorExports:M,batchRenderExport:C,hasRenderGate:E,onError:L,onSuccess:j,onStart:q,scheduler:f}=t,N={config:{SetRule:c,SetRules:r,SetStrategy:s,notifyAll:P,SetTrace:y,usePlugin:a,hasRenderGate:E},data:{SetValue:i,GetValue:u,SetValues:o,GetGroupByPath:d},dependency:{GetAllDependency:h,GetDependencyOrder:p},hooks:{onError:L,onSuccess:j,onStart:q}},x=(A,w,m)=>{!w||typeof w!="object"||Object.keys(w).forEach(F=>{let G=w[F];if(typeof G=="object"&&G!==null)A[F]=A[F]||{},x(A[F],G,m);else if(typeof G=="function"){let R=F;if(R==="useMeshRenderGate")R="render";else if(R.startsWith("use")){let D=R.slice(3);R=D.charAt(0).toLowerCase()+D.slice(1);}F==="useHistory"&&m.exports.history&&Object.keys(m.exports.history).length>0?A[R]=m.exports.history:F==="useInternalForm"&&m.exports.form&&Object.keys(m.exports.form).length>0?A[R]=m.exports.form:F==="useSchemaValidators"&&m.exports.validator&&Object.keys(m.exports.validator).length>0?A[R]=m.exports.validator:F==="useMeshRenderGate"&&m.exports.render?A[R]=m.exports.render:A[R]=G(m.scheduler,m.Schema);}});},b={...N,modules:{}},z=n.modules;return z&&x(b.modules,z,{scheduler:f,Schema:e,exports:{history:S,form:Y,validator:M,render:C}}),te.set(l,b),b}catch(t){throw Error(t)}},rt=()=>(l,e,n)=>Re(l,e,n),st=l=>{let e=te.get(l);if(e)return e;throw Error("[MeshFlow] Engine ID not found.")},at=l=>{te.delete(l);},Re=xe;export{at as deleteEngine,st as useEngine,xe as useEngineManager,Re as useMeshFlow,rt as useMeshFlowDefiner,Pe as useScheduler};
1
+ var re=class{computedRules=[];store={OR:(e,n)=>{let t,c,r=this.computedRules;for(let o=0;o<r.length;o++){let s=r[o],i=s.logic(e);if(i instanceof Promise)return (async()=>{let a=await i;if(s.entityId==="__base__"?c=a:a&&(t=a),typeof t>"u")for(let d=o+1;d<r.length;d++){let P=r[d],y=P.logic(e),p=y instanceof Promise?await y:y;if(P.entityId==="__base__"){c=p;continue}if(p){t=P.value;break}}return typeof t>"u"&&(t=c),{res:t,version:n}})();let u=i;if(s.entityId==="__base__"){c=u;continue}if(u){t=s.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 s=c[r].logic(e);if(s instanceof Promise)return (async()=>{let i=await s;if(i!==void 0)return {res:i,version:n};for(let u=r+1;u<c.length;u++){let a=c[u].logic(e),d=a instanceof Promise?await a:a;if(d!==void 0)return {res:d,version:n}}return {res:void 0,version:n}})();if(s!==void 0)return {res:s,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)}},ee=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 re(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 o=this.rules.get(r);o&&(o.delete(c),o.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 o=this.rules.get(r);o&&(o.delete(c),o.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 o=this.deps.get(e.triggerPath),s=e.GetValueByPath(e.triggerPath);if(typeof o=="object"||typeof s=="object")t=false;else {let i=Array.from(this.deps.keys());for(let u of i){let a=this.deps.get(u),d=e.GetValueByPath(u);if(a!==d){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:o,version:s}=r;return this.finalizeSync(o,s,e,n)}return this.pendingPromise=(async()=>{try{let{res:o,version:s}=await r;return this.finalizeSync(o,s,e,n)}catch(o){throw {path:this.path,error:o}}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,o)=>{this.deps.set(o,t.GetValueByPath(o));}),e)}inferType(e){return Array.isArray(e)?"array":typeof e}};var ae=(l,e,n)=>{let c=r=>{let o=n.triggerPaths.map(u=>{let a=r.GetValueByPath(u),d={};return n.triggerKeys.forEach(P=>{d[P]=a[P];}),d}),s=Object.create(null);return Object.defineProperty(s,"triggerTargets",{get:()=>o}),Object.defineProperty(s,"affectedTatget",{get:()=>r.GetRenderSchemaByPath(l)[e]}),n.logic({slot:s})};return {value:n.value,targetPath:l,triggerPaths:n.triggerPaths,priority:n.priority??10,logic:c}},oe=(l,e,n)=>{if(!l)throw Error("");let t=l,c=(s,i)=>{e.has(s)||e.set(s,new Set),e.get(s).add(i),n.has(i)||n.set(i,new Set),n.get(i).add(s);};return {SetRule:(s,i,u,a)=>{let d=t(i),P=a.triggerKeys||[];P.length==0&&P.push("value");let y=ae(i,u,{...a,triggerPaths:[s],triggerKeys:P}),p=[s].map(h=>[h,t(h).state.value]);if(c(s,i),d.nodeBucket[u])d.nodeBucket[u].setRule(y,p),a.effect&&d.nodeBucket[u].setSideEffect({fn:a.effect,args:a.effectArgs?a.effectArgs:[u]});else {let h=d.meta[u],S=new ee(h,u,i);S.setRule(y,p),a.effect&&S.setSideEffect({fn:a.effect,args:a.effectArgs?a.effectArgs:[u]}),d.nodeBucket[u]=S;}d.state[u]=d.meta[u],a.forceNotify&&d.nodeBucket[u].forceNotify(),a.cacheStrategy=="none"&&d.nodeBucket[u].setUseCache(false);},SetRules:(s,i,u,a)=>{let d=t(i);for(let h of s)c(h,i);let P=a.triggerKeys||[];P.length==0&&P.push("value");let y=ae(i,u,{...a,triggerPaths:s,triggerKeys:P}),p=s.map(h=>[h,t(h).state.value]);if(d.nodeBucket[u])d.nodeBucket[u].setRules(y,p),a.effect&&d.nodeBucket[u].setSideEffect({fn:a.effect,args:a.effectArgs?a.effectArgs:[u]});else {let h=d.meta[u],S=new ee(h,u,i);S.setRules(y,p),a.effect&&S.setSideEffect({fn:a.effect,args:a.effectArgs?a.effectArgs:[u]}),d.nodeBucket[u]=S;}d.state[u]=d.meta[u],a.forceNotify&&d.nodeBucket[u].forceNotify(),a.cacheStrategy=="none"&&d.nodeBucket[u].setUseCache(false);}}};var ie=l=>{let e=l||void 0;if(!e)throw Error("");return {SetStrategy:(t,c,r)=>{e(t).nodeBucket[c].setStrategy(r);}}};function le(){let l=new Map,e=new Map,n=new Set,t=(o,s)=>{l.set(o,s);let i=e.get(o);i&&i(s);};return {SetTrace:(o,s)=>{e.set(o,s);let i=l.get(o)||"idle";return s(i),{cancel:()=>{e.delete(o);}}},useTrace:()=>({apply:s=>{s.on("flow:start",()=>{n.forEach(i=>t(i,"idle")),n.clear(),l.clear();}),s.on("node:release",({path:i,type:u})=>{(u==1||u==2)&&(n.add(i),t(i,"pending"));}),s.on("node:pending",({path:i})=>{n.add(i),(!l.has(i)||l.get(i)==="idle")&&t(i,"pending");}),s.on("node:start",({path:i})=>{n.add(i),t(i,"calculating");}),s.on("node:success",({path:i})=>{t(i,"calculated");}),s.on("node:intercept",({path:i,type:u})=>{u==3&&t(i,"calculating"),u==6&&t(i,"idle");}),s.on("node:stagnate",({path:i})=>{t(i,"pending");}),s.on("node:error",({path:i})=>t(i,"error"));}})}}function ce(l,e,n,t){let c=a=>{let d=l(),P=e(),y=new Set;return d.get(a)?.forEach(p=>y.add(p)),y.size===0?[]:Array.from(y).filter(p=>{let h=P.get(p)||new Set;return !Array.from(h).some(M=>y.has(M))})};return {GetNextDependency:a=>{let d=t();return Array.from(d.get(a)||[])},GetPrevDependency:a=>{let d=n();return Array.from(d.get(a)||[])},GetAllPrevDependency:a=>{let d=e();return Array.from(d.get(a)||[])},GetAllNextDependency:a=>{let d=l();return Array.from(d.get(a)||[])},rebuildDirectDependencyMaps:a=>{let d=new Map,P=new Map;for(let y of a){let p=c(y);d.set(y,new Set(p));for(let h of p)P.has(h)||P.set(h,new Set),P.get(h).add(y);}return {directNextMap:d,directPrevMap:P}}}}function ue(l){let e=t=>{let c=[],r=[],o=new Map,s=t.size,i=0,u=0;for(let[a,d]of t)d===0&&r.push(a);if(r.length===0&&s>0)throw Error("Circular dependency detected");for(;r.length>0;){c.push([...r]);let a=[];for(let d of r){i++,o.set(d,u);let P=l.get(d);if(P)for(let y of P){let p=t.get(y)-1;t.set(y,p),p===0&&a.push(y);}}r=a,u++;}if(i<s)throw Error("Circular dependency detected");return {steps:c,levelMap:o}};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 o of r){let s=t.get(o)||0;t.set(o,++s);}}return e(t)}}var Z=()=>{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 de(){let{on:l,call:e}=Z();return {onError:l,callOnError:e}}function fe(){let{on:l,call:e}=Z();return {onSuccess:l,callOnSuccess:e}}var ye=()=>{let l=new Set,e=new Map,n=(r,o)=>{e.get(r)?.forEach(s=>s(o));},t=(r,o)=>(e.has(r)||e.set(r,new Set),e.get(r).add(o),()=>e.get(r).delete(o));return {usePlugin:r=>{let o=new Set,s=(i,u)=>{let a=t(i,u);return o.add(a),a};return r.apply({on:s}),l.add(r),()=>{o.forEach(i=>i()),o.clear(),l.delete(r);}},emit:n}};function he(){let{on:l,call:e}=Z();return {onStart:l,callOnStart:e}}var pe=(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=>{Re(()=>{e=performance.now(),n=0,t&&(t=false),r();});})}}},Re=l=>{let{port1:e,port2:n}=new MessageChannel;e.onmessage=l,n.postMessage(null);};function ge(l,e,n,t,c){let r=new Map,o=l.useGreedy,s=pe();return async(u,a)=>{let P=Symbol("token"),y=u||"__NOTIFY_ALL__";r.set(y,P);let p=false;s.reset();let h=new Set,S=new Set,Y=new Set;a.forEach(w=>{Y.add(w),e.GetAllNextDependency(w).forEach(m=>Y.add(m));});let M=new Map,C=new Map,G=new Set,H=e.GetPathToLevelMap(),j=0,q=0,f=w=>{e.GetAllNextDependency(w).forEach(I=>{let E=H.get(I)||0;E>q&&(q=E);});};u?(j=H.get(u)??0,f(u),h.add(u)):a.forEach(w=>f(w)),a.forEach(w=>{G.add(w);});let N=performance.now();t.emit("flow:start",{path:y}),t.callOnStart({path:y});let x=false,F=30,z=w=>{let{target:m,trigger:I}=w,E=false,R=false,D=n.GetNodeByPath(m),$=[],K=(g,T)=>{if(h.has(g)||S.has(g)||G.has(g))return;let V=0,v=H.get(g)??0;if(M.has(g))V=M.get(g)-1;else {if(v>j&&M.size>F){C.has(v)||C.set(v,new Set),C.get(v).add(g),t.emit("node:intercept",{path:g,type:7});return}let U=e.GetPrevDependency(g),k=0;for(let Q of U){if(h.has(Q))continue;(H.get(Q)??0)>j&&k++;}V=k;}if(V<=0){let U=G.has(g),k=S.has(g);if(U||k){t.emit("node:intercept",{path:g,type:k?3:3.1});return}M.delete(g),G.add(g),t.emit("node:release",{path:g,type:T,detail:{path:m}});}else M.set(g,V);},L=(g=[])=>{if(r.get(y)!==P)return;if(g.length){let v={},U=D.proxy;for(let k of g){let Q=(k.args||[]).reduce((W,ne)=>(W[ne]=U[ne],W),{});try{let W=k.fn(Q);W&&typeof W=="object"&&Object.assign(v,W);}catch(W){}}for(let k in v)if(k in D.state)D.state[k]=v[k];else throw {error:`wrong effect in ${String(D.path)}`};E=true;}E&&c.flushPathSet.add(m),t.emit("node:success",{path:m}),h.add(m);let T=e.GetNextDependency(m);(E||R)&&e.GetAllNextDependency(m).forEach(U=>Y.add(U));for(let v of T){if(h.has(v)){t.emit("node:intercept",{path:v,type:2});continue}if(S.has(v)||G.has(v)){t.emit("node:intercept",{path:v,type:S.has(v)?3:3.1});continue}if(E||R)K(v,1);else if(M.has(v))K(v,2);else {let k=H.get(v);C.has(k)||C.set(k,new Set);let Q=C.get(k);Q.has(v)||(Q.add(v),t.emit("node:stagnate",{path:v,type:1}));}}S.delete(m),(async()=>{if(!p){let v=S.size,U=G.size;t.emit("flow:fire",{path:m,type:1,detail:{active:v,pending:U,blocked:M.size}}),A();}})();},_=g=>{t.emit("node:error",{path:m,error:g});let T=Symbol("abort");r.set(y,T),G.clear(),M.clear(),S.clear(),t.callOnError(g);},b=(g,T)=>{let V=false;g!==D.state[T]&&(D.state[T]=g,E=true,t.emit("node:bucket:success",{path:m,key:String(T),value:g}),D.notifyKeys.has(T)&&(V=true)),D.nodeBucket[T].isForceNotify()&&(R=true),(V||R)&&f(m);};t.emit("node:start",{path:m});try{let g=[];for(let T in D.nodeBucket){let V=D.nodeBucket[T];g.push(...V.getSideEffect());let v=V.evaluate({affectKey:T,triggerPath:I,GetRenderSchemaByPath:U=>n.GetNodeByPath(U).proxy,GetValueByPath:U=>n.GetNodeByPath(U).state,GetToken:()=>P});if(v instanceof Promise){let U=v.then(k=>{r.get(y)===P&&b(k,T);});$.push(U);}else b(v,T);}if($.length>0)return Promise.all($).then(()=>{L(g);}).catch(_);L(g);return}catch(g){_(g);}},A=async()=>{if(r.get(y)!==P){p=false;return}p=true;let w=s.getIsFirstFrame(),m=0,I=()=>o&&w?30:1/0,E=0,R=I();try{for(;r.get(y)===P;){let D=E>=R,$=s.shouldYield();if(D||$){if(E>0&&(m++,(w||m%2===0)&&c.requestUpdate()),await s.yieldToMain(),r.get(y)!==P)break;E=0,w=s.getIsFirstFrame();}if(G.size>0&&S.size<5){for(let K of G){if(S.size>=5||E>=R)break;let L=H.get(K)??0,_=e.GetPrevDependency(K),b=_.length>1;if((!o||b)&&L>j){G.delete(K);let T=_.filter(V=>Y.has(V)&&!h.has(V)).length;M.set(K,T||0),t.emit("node:intercept",{path:K,type:T>0?4:5,detail:{targetLevel:L,currentLevel:j,pendingParentsCount:T}});continue}if(G.delete(K),S.add(K),t.emit("node:processing",{path:K}),z({target:K,trigger:u}),E++,E>=R||s.shouldYield())break}if(G.size>0)continue}if(E<R&&o&&M.size>0&&S.size<5){let K=!1,L=0;for(let[_,b]of M)if(b<=0){let g=H.get(_)??0,T=e.GetPrevDependency(_);if(g>j&&T.length>1)continue;if(M.delete(_),G.add(_),L++,K=!0,t.emit("node:release",{path:_,type:4}),L>=R)break}if(L>0)continue;if(K){if(s.shouldYield()&&(await s.yieldToMain(),r.get(y)!==P))break;continue}}if(S.size===0&&G.size===0){let K=new Set;for(let b of C.keys())K.add(b);for(let[b]of M){let g=H.get(b)??0;g>j&&K.add(g);}let L=Array.from(K).sort((b,g)=>b-g),_=L[0];if(L.length>0&&_<=q){let b=L[0];if(b<=q){j=b;let g=C.get(b);g&&(g.forEach(T=>G.add(T)),C.delete(b));for(let[T]of M)(H.get(T)??0)===b&&(M.delete(T),G.add(T),t.emit("node:release",{path:T,type:3,detail:{level:b}}));continue}}else {C.forEach((b,g)=>{b.forEach(T=>{h.add(T),t.emit("node:intercept",{path:T,type:6});});}),C.clear();for(let[b]of M)h.add(b),t.emit("node:intercept",{path:b,type:6});M.clear();break}}G.size>0&&S.size>=5&&t.emit("flow:wait",{type:2});break}}finally{if(p=false,S.size+M.size+G.size===0){if(r.get(y)===P&&!x){x=true,t.emit("flow:end",{type:1}),c.requestUpdate();let $=performance.now();t.emit("flow:success",{duration:($-N).toFixed(2.1)+"ms"}),Promise.resolve().then(()=>{t.callOnSuccess();});}}else t.emit("flow:wait",{type:1,detail:{nums:S.size}});}};A();}}function se(l){let{path:e,uid:n,type:t,meta:c,dirtySignal:r,state:o}=l,s=null,i=["path","uid","type","dependOn","nodeBucket"],a={path:e,uid:n,type:t,meta:c,dirtySignal:r,createView:(d={})=>{if(s&&Object.keys(d).length===0)return s;let P=new Proxy(d,{get(y,p){let h=p;return Reflect.has(y,p)?Reflect.get(y,p):h in l.state?l.state[h]:h in l?l[h]:c&&h in c?c[h]:Reflect.get(y,p)},set(y,p,h){let S=p;return S in l.state?(l.state[S]=h,true):Reflect.set(y,p,h)},ownKeys(y){let p=new Set([...Reflect.ownKeys(y),...Object.keys(o||{}),...Object.keys(c||{}),...i]);return Array.from(p)},getOwnPropertyDescriptor(y,p){let h=p;return Reflect.has(y,p)||o&&h in o||c&&h in c||i.includes(h)?{enumerable:true,configurable:true}:Reflect.getOwnPropertyDescriptor(y,p)}});return s=P,P}};return "children"in l?{...a,children:l.children}:{...a,state:l.state,nodeBucket:l.nodeBucket,notifyKeys:l.notifyKeys,dependOn:l.dependOn,get proxy(){return s}}}function Pe(l,e,n,t,c){let r=0,o=new Map,s=new Map,i=new Map,u=false,a=new Set,P=async()=>{let f=Array.from(a);if(a.clear(),"signalTrigger"in c&&typeof c.signalTrigger=="function")for(let N of f){let x=M(N);c.signalTrigger(x.dirtySignal);}else "emit"in c&&c.emit(f);},y=()=>{u||(u=true,requestAnimationFrame(()=>{try{for(;a.size>0;)P();}finally{u=false;}}));},p=ge({useGreedy:l.useGreedy},e,{GetNodeByPath:M},t,{requestUpdate:y,flushPathSet:a}),h=f=>{throw new Error(`[MeshFlow] Duplicate Path: ${f}`)},S=f=>{o.has(f.path)&&h(String(f.path));let N=++r,x={path:f.path,getNode:A=>M(A)},F=(A,w="value")=>{let m=A({...x}),I=M(f.path);if(n.createHistoryAction&&n.pushIntoHistory){let E=n.createHistoryAction([{path:f.path,value:I.state[w]},{path:f.path,value:m}],R=>{let D=M(R.path);D.state[w]=R.value,G(R.path);});n.pushIntoHistory(E);}I.state[w]=m,G(f.path);};f.notifyKeys.size==0&&f.notifyKeys.add("value");let z=se({uid:N,type:f.type,path:f.path,state:f.state,meta:f.meta,nodeBucket:f.nodeBucket,dirtySignal:f.dirtySignal,notifyKeys:f.notifyKeys,dependOn:F});return o.set(z.path,N),s.set(N,z),z},Y=f=>{o.has(f.path)&&h(String(f.path));let N=++r,x=se({uid:N,type:f.type,path:f.path,state:{},meta:f,nodeBucket:{},children:f.children});return o.set(x.path,N),i.set(N,x),x};function M(f){let N=o.get(f),x=s.get(N);if(!x)throw Error("wrong ID");return x}function C(f){let N=o.get(f);return i.get(N)}let G=f=>{if(!M(f))throw Error("Node undefined");a.add(f),y();let x=e.GetNextDependency(f);H(x,f);};function H(f,N){p(N,f);}return {registerNode:S,registerGroupNode:Y,GetNodeByPath:M,GetGroupByPath:C,notify:G,notifyAll:async()=>{Promise.resolve().then(async()=>{let f=e.GetDependencyOrder();if(!f||f.length===0)return;let N=f[0];try{p(null,N);}catch(x){throw t.callOnError(x),x}finally{y();}});},batchNotify:f=>{if(!f||f.length===0)return;if(n.createHistoryAction&&n.pushIntoHistory){let x=n.createHistoryAction([f.map(F=>({path:F.path,key:F.key,value:M(F.path).state[F.key]})),f.map(F=>({path:F.path,key:F.key,value:F.value}))],F=>{let z=new Set;F.forEach(A=>{let w=M(A.path);w.state[A.key]=A.value,a.add(A.path),z.add(A.path);}),y(),z.size>0&&p(null,Array.from(z));});n.pushIntoHistory(x);}let N=new Set;f.forEach(x=>{let F=M(x.path);F.state[x.key]=x.value,a.add(x.path),N.add(x.path);}),y(),N.size>0&&p(null,Array.from(N));},UITrigger:c,UidToNodeMap:s}}function me(l,e){let n=false,t=false,c=new Map,r=new Map,o=new Map,s=new Map,i=[],u=new Map,{GetNextDependency:d,GetPrevDependency:P,GetAllPrevDependency:y,GetAllNextDependency:p,rebuildDirectDependencyMaps:h}=ce(()=>c,()=>r,()=>s,()=>o),S={},Y={};if(e.modules.useHistory){let O=e.modules.useHistory,B;O.isMeshModuleInited?B=O:B=O();let{Undo:X,Redo:J,PushIntoHistory:Me,CreateHistoryAction:Se,initCanUndo:Te,initCanRedo:xe}=B();S.pushIntoHistory=Me,S.createHistoryAction=Se,Y={Undo:X,Redo:J,initCanUndo:Te,initCanRedo:xe};}let M=!!e.modules.useMeshRenderGate,C={};if(M){let O=e.modules.useMeshRenderGate.isMeshModuleInited,B=e.modules.useMeshRenderGate;C=(O?B:B())(()=>R);}let{onError:G,callOnError:H}=de(),{onSuccess:j,callOnSuccess:q}=fe(),{onStart:f,callOnStart:N}=he(),{emit:x,usePlugin:F}=ye(),{SetTrace:z,useTrace:A}=le(),w=A();F(w);let m=M?{...C}:{...e.UITrigger},I=Pe({useGreedy:e.config.useGreedy},{GetDependencyOrder:()=>i,GetAllNextDependency:p,GetNextDependency:d,GetPrevDependency:P,GetAllPrevDependency:y,GetPathToLevelMap:()=>u},S,{callOnError:H,callOnSuccess:q,callOnStart:N,emit:x},m),{GetGroupByPath:E,GetNodeByPath:R,notifyAll:D}=I;M&&C.init();let $={};if(e.modules.useInternalForm){let{uiSchema:O,GetFormData:B}=e.modules.useInternalForm(I,l);$={uiSchema:O,GetFormData:B};}let K={};if(e.modules.useSchemaValidators){let{SetValidators:O}=e.modules.useSchemaValidators(R);K={SetValidators:O};}let{SetRule:L,SetRules:_}=oe(R,c,r),{SetStrategy:b}=ie(R),g=ue(c),T=()=>{let O=g();i=O.steps,u=O.levelMap;},V=()=>{t||(t=true,Promise.resolve().then(()=>{if(T(),n){let{directNextMap:O,directPrevMap:B}=h(i.flat());o=O,s=B;}}).finally(()=>{t=false,n=false;}));};return {SetRule:(O,B,X,J)=>{L(O,B,X,J),n=true,V();},SetRules:(O,B,X,J)=>{_(O,B,X,J),n=true,V();},SetStrategy:b,SetTrace:z,usePlugin:F,SetValue:(O,B,X)=>{R(O).dependOn(()=>X,B);},GetValue:(O,B="value")=>R(O)[B],SetValues:O=>{I.batchNotify(O);},GetGroupByPath:E,notifyAll:async()=>{T(),await D();},GetAllDependency:()=>c,GetDependencyOrder:()=>i,historyExports:Y,formExports:$,validatorExports:K,batchRenderExport:C,hasRenderGate:()=>M,onError:G,onSuccess:j,onStart:f,scheduler:I}}var te=new Map,ve=(l,e,n)=>{try{if(te.has(l))throw Error("engineID repeated");let t=me(e,{config:n.config||{useGreedy:!1},UITrigger:n.UITrigger,modules:n.modules??{},plugins:{}}),{SetRule:c,SetRules:r,SetValues:o,SetStrategy:s,SetValue:i,GetValue:u,usePlugin:a,GetGroupByPath:d,notifyAll:P,SetTrace:y,GetAllDependency:p,GetDependencyOrder:h,historyExports:S,formExports:Y,validatorExports:M,batchRenderExport:C,hasRenderGate:G,onError:H,onSuccess:j,onStart:q,scheduler:f}=t,N={config:{SetRule:c,SetRules:r,SetStrategy:s,notifyAll:P,SetTrace:y,usePlugin:a,hasRenderGate:G},data:{SetValue:i,GetValue:u,SetValues:o,GetGroupByPath:d},dependency:{GetAllDependency:p,GetDependencyOrder:h},hooks:{onError:H,onSuccess:j,onStart:q}},x=(A,w,m)=>{!w||typeof w!="object"||Object.keys(w).forEach(I=>{let E=w[I];if(typeof E=="object"&&E!==null)A[I]=A[I]||{},x(A[I],E,m);else if(typeof E=="function"){let R=I;if(R==="useMeshRenderGate")R="render";else if(R.startsWith("use")){let D=R.slice(3);R=D.charAt(0).toLowerCase()+D.slice(1);}I==="useHistory"&&m.exports.history&&Object.keys(m.exports.history).length>0?A[R]=m.exports.history:I==="useInternalForm"&&m.exports.form&&Object.keys(m.exports.form).length>0?A[R]=m.exports.form:I==="useSchemaValidators"&&m.exports.validator&&Object.keys(m.exports.validator).length>0?A[R]=m.exports.validator:I==="useMeshRenderGate"&&m.exports.render?A[R]=m.exports.render:A[R]=E(m.scheduler,m.Schema);}});},F={...N,modules:{}},z=n.modules;return z&&x(F.modules,z,{scheduler:f,Schema:e,exports:{history:S,form:Y,validator:M,render:C}}),te.set(l,F),F}catch(t){throw Error(t)}},at=()=>(l,e,n)=>Ne(l,e,n),ot=l=>{let e=te.get(l);if(e)return e;throw Error("[MeshFlow] Engine ID not found.")},it=l=>{te.delete(l);},Ne=ve;export{it as deleteEngine,ot as useEngine,ve as useEngineManager,Ne as useMeshFlow,at as useMeshFlowDefiner,Pe as useScheduler};
package/metafile-cjs.json CHANGED
@@ -1 +1 @@
1
- {"inputs":{"utils/core/engine/bucket.ts":{"bytes":16822,"imports":[],"format":"esm"},"utils/core/dependency/useSetRule.ts":{"bytes":8109,"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":507,"imports":[{"path":"utils/core/hooks/useCreateHook.ts","kind":"import-statement","original":"./useCreateHook"}],"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/utils/util.ts":{"bytes":5758,"imports":[],"format":"esm"},"utils/core/engine/useMeshTask.ts":{"bytes":35496,"imports":[{"path":"utils/core/utils/util.ts","kind":"import-statement","original":"../utils/util"},{"path":"../types/types","kind":"import-statement","external":true}],"format":"esm"},"utils/core/engine/useMeshNode.ts":{"bytes":3831,"imports":[{"path":"../types/types","kind":"import-statement","external":true}],"format":"esm"},"utils/core/engine/useScheduler.ts":{"bytes":13676,"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/util","kind":"import-statement","external":true}],"format":"esm"},"utils/core/engine/useEngineInstance.ts":{"bytes":10119,"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}],"format":"esm"},"utils/core/engine/useEngineManager.ts":{"bytes":12628,"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/engine/useScheduler.ts","kind":"import-statement","original":"../engine/useScheduler"}],"format":"esm"}},"outputs":{"lib-dist/index.js":{"imports":[],"exports":["deleteEngine","useEngine","useEngineManager","useMeshFlow","useMeshFlowDefiner","useScheduler"],"entryPoint":"utils/core/engine/useEngineManager.ts","inputs":{"utils/core/engine/bucket.ts":{"bytesInOutput":4229},"utils/core/dependency/useSetRule.ts":{"bytesInOutput":1747},"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":121},"utils/core/hooks/useOnError.ts":{"bytesInOutput":67},"utils/core/hooks/useOnSuccess.ts":{"bytesInOutput":71},"utils/core/plugins/usePlugin.ts":{"bytesInOutput":316},"utils/core/hooks/useOnStart.ts":{"bytesInOutput":67},"utils/core/utils/util.ts":{"bytesInOutput":472},"utils/core/engine/useMeshTask.ts":{"bytesInOutput":4832},"utils/core/engine/useMeshNode.ts":{"bytesInOutput":921},"utils/core/engine/useScheduler.ts":{"bytesInOutput":2336},"utils/core/engine/useEngineInstance.ts":{"bytesInOutput":2083},"utils/core/engine/useEngineManager.ts":{"bytesInOutput":1731}},"bytes":21241}}}
1
+ {"inputs":{"utils/core/engine/bucket.ts":{"bytes":16822,"imports":[],"format":"esm"},"utils/core/dependency/useSetRule.ts":{"bytes":8109,"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":507,"imports":[{"path":"utils/core/hooks/useCreateHook.ts","kind":"import-statement","original":"./useCreateHook"}],"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/utils/util.ts":{"bytes":5758,"imports":[],"format":"esm"},"utils/core/engine/useMeshTask.ts":{"bytes":35496,"imports":[{"path":"utils/core/utils/util.ts","kind":"import-statement","original":"../utils/util"},{"path":"../types/types","kind":"import-statement","external":true}],"format":"esm"},"utils/core/engine/useMeshNode.ts":{"bytes":3831,"imports":[{"path":"../types/types","kind":"import-statement","external":true}],"format":"esm"},"utils/core/engine/useScheduler.ts":{"bytes":13676,"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/util","kind":"import-statement","external":true}],"format":"esm"},"utils/core/engine/useEngineInstance.ts":{"bytes":10907,"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}],"format":"esm"},"utils/core/engine/useEngineManager.ts":{"bytes":12674,"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/engine/useScheduler.ts","kind":"import-statement","original":"../engine/useScheduler"}],"format":"esm"}},"outputs":{"lib-dist/index.js":{"imports":[],"exports":["deleteEngine","useEngine","useEngineManager","useMeshFlow","useMeshFlowDefiner","useScheduler"],"entryPoint":"utils/core/engine/useEngineManager.ts","inputs":{"utils/core/engine/bucket.ts":{"bytesInOutput":4229},"utils/core/dependency/useSetRule.ts":{"bytesInOutput":1747},"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":121},"utils/core/hooks/useOnError.ts":{"bytesInOutput":67},"utils/core/hooks/useOnSuccess.ts":{"bytesInOutput":71},"utils/core/plugins/usePlugin.ts":{"bytesInOutput":316},"utils/core/hooks/useOnStart.ts":{"bytesInOutput":67},"utils/core/utils/util.ts":{"bytesInOutput":472},"utils/core/engine/useMeshTask.ts":{"bytesInOutput":4832},"utils/core/engine/useMeshNode.ts":{"bytesInOutput":921},"utils/core/engine/useScheduler.ts":{"bytesInOutput":2336},"utils/core/engine/useEngineInstance.ts":{"bytesInOutput":2128},"utils/core/engine/useEngineManager.ts":{"bytesInOutput":1731}},"bytes":21286}}}
package/metafile-esm.json CHANGED
@@ -1 +1 @@
1
- {"inputs":{"utils/core/engine/bucket.ts":{"bytes":16822,"imports":[],"format":"esm"},"utils/core/dependency/useSetRule.ts":{"bytes":8109,"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":507,"imports":[{"path":"utils/core/hooks/useCreateHook.ts","kind":"import-statement","original":"./useCreateHook"}],"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/utils/util.ts":{"bytes":5758,"imports":[],"format":"esm"},"utils/core/engine/useMeshTask.ts":{"bytes":35496,"imports":[{"path":"utils/core/utils/util.ts","kind":"import-statement","original":"../utils/util"},{"path":"../types/types","kind":"import-statement","external":true}],"format":"esm"},"utils/core/engine/useMeshNode.ts":{"bytes":3831,"imports":[{"path":"../types/types","kind":"import-statement","external":true}],"format":"esm"},"utils/core/engine/useScheduler.ts":{"bytes":13676,"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/util","kind":"import-statement","external":true}],"format":"esm"},"utils/core/engine/useEngineInstance.ts":{"bytes":10119,"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}],"format":"esm"},"utils/core/engine/useEngineManager.ts":{"bytes":12628,"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/engine/useScheduler.ts","kind":"import-statement","original":"../engine/useScheduler"}],"format":"esm"}},"outputs":{"lib-dist/index.mjs":{"imports":[],"exports":["deleteEngine","useEngine","useEngineManager","useMeshFlow","useMeshFlowDefiner","useScheduler"],"entryPoint":"utils/core/engine/useEngineManager.ts","inputs":{"utils/core/engine/bucket.ts":{"bytesInOutput":4229},"utils/core/dependency/useSetRule.ts":{"bytesInOutput":1747},"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":121},"utils/core/hooks/useOnError.ts":{"bytesInOutput":67},"utils/core/hooks/useOnSuccess.ts":{"bytesInOutput":71},"utils/core/plugins/usePlugin.ts":{"bytesInOutput":316},"utils/core/hooks/useOnStart.ts":{"bytesInOutput":67},"utils/core/utils/util.ts":{"bytesInOutput":472},"utils/core/engine/useMeshTask.ts":{"bytesInOutput":4832},"utils/core/engine/useMeshNode.ts":{"bytesInOutput":921},"utils/core/engine/useScheduler.ts":{"bytesInOutput":2336},"utils/core/engine/useEngineInstance.ts":{"bytesInOutput":2083},"utils/core/engine/useEngineManager.ts":{"bytesInOutput":1731}},"bytes":21241}}}
1
+ {"inputs":{"utils/core/engine/bucket.ts":{"bytes":16822,"imports":[],"format":"esm"},"utils/core/dependency/useSetRule.ts":{"bytes":8109,"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":507,"imports":[{"path":"utils/core/hooks/useCreateHook.ts","kind":"import-statement","original":"./useCreateHook"}],"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/utils/util.ts":{"bytes":5758,"imports":[],"format":"esm"},"utils/core/engine/useMeshTask.ts":{"bytes":35496,"imports":[{"path":"utils/core/utils/util.ts","kind":"import-statement","original":"../utils/util"},{"path":"../types/types","kind":"import-statement","external":true}],"format":"esm"},"utils/core/engine/useMeshNode.ts":{"bytes":3831,"imports":[{"path":"../types/types","kind":"import-statement","external":true}],"format":"esm"},"utils/core/engine/useScheduler.ts":{"bytes":13676,"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/util","kind":"import-statement","external":true}],"format":"esm"},"utils/core/engine/useEngineInstance.ts":{"bytes":10907,"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}],"format":"esm"},"utils/core/engine/useEngineManager.ts":{"bytes":12674,"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/engine/useScheduler.ts","kind":"import-statement","original":"../engine/useScheduler"}],"format":"esm"}},"outputs":{"lib-dist/index.mjs":{"imports":[],"exports":["deleteEngine","useEngine","useEngineManager","useMeshFlow","useMeshFlowDefiner","useScheduler"],"entryPoint":"utils/core/engine/useEngineManager.ts","inputs":{"utils/core/engine/bucket.ts":{"bytesInOutput":4229},"utils/core/dependency/useSetRule.ts":{"bytesInOutput":1747},"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":121},"utils/core/hooks/useOnError.ts":{"bytesInOutput":67},"utils/core/hooks/useOnSuccess.ts":{"bytesInOutput":71},"utils/core/plugins/usePlugin.ts":{"bytesInOutput":316},"utils/core/hooks/useOnStart.ts":{"bytesInOutput":67},"utils/core/utils/util.ts":{"bytesInOutput":472},"utils/core/engine/useMeshTask.ts":{"bytesInOutput":4832},"utils/core/engine/useMeshNode.ts":{"bytesInOutput":921},"utils/core/engine/useScheduler.ts":{"bytesInOutput":2336},"utils/core/engine/useEngineInstance.ts":{"bytesInOutput":2128},"utils/core/engine/useEngineManager.ts":{"bytesInOutput":1731}},"bytes":21286}}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meshflow/core",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
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",