@raphy-js/raph 1.0.0-dev.18
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/LICENSE +202 -0
- package/dist/api/Raph.d.ts +97 -0
- package/dist/api/RaphFacadeSession.d.ts +90 -0
- package/dist/api/RaphReactivityInstance.d.ts +72 -0
- package/dist/api/errors.d.ts +25 -0
- package/dist/api/types.d.ts +170 -0
- package/dist/core-CyilRD7s.js +1055 -0
- package/dist/core-ugchZNqC.cjs +1 -0
- package/dist/debug/api/Raph.cjs +1 -0
- package/dist/debug/api/Raph.js +421 -0
- package/dist/debug/api/RaphFacadeSession.cjs +1 -0
- package/dist/debug/api/RaphFacadeSession.js +306 -0
- package/dist/debug/api/RaphReactivityInstance.cjs +1 -0
- package/dist/debug/api/RaphReactivityInstance.js +149 -0
- package/dist/debug/api/errors.cjs +1 -0
- package/dist/debug/api/errors.js +17 -0
- package/dist/debug/api/types.cjs +1 -0
- package/dist/debug/api/types.js +1 -0
- package/dist/debug/path/DataPath.cjs +1 -0
- package/dist/debug/path/DataPath.js +394 -0
- package/dist/debug/path/PathRouter.cjs +1 -0
- package/dist/debug/path/PathRouter.js +86 -0
- package/dist/debug/path/RaphKernel.cjs +1 -0
- package/dist/debug/path/RaphKernel.js +687 -0
- package/dist/debug/path/data-path.types.cjs +1 -0
- package/dist/debug/path/data-path.types.js +1 -0
- package/dist/debug/path/data-path.utils.cjs +1 -0
- package/dist/debug/path/data-path.utils.js +56 -0
- package/dist/debug/path/derived/DerivedRegistry.cjs +1 -0
- package/dist/debug/path/derived/DerivedRegistry.js +157 -0
- package/dist/debug/path/derived/RaphDerivedHandle.cjs +1 -0
- package/dist/debug/path/derived/RaphDerivedHandle.js +125 -0
- package/dist/debug/path/derived/derived-collection.types.cjs +1 -0
- package/dist/debug/path/derived/derived-collection.types.js +1 -0
- package/dist/debug/path/derived/derived-collection.utils.cjs +1 -0
- package/dist/debug/path/derived/derived-collection.utils.js +179 -0
- package/dist/debug/path/derived/derived-strategy.types.cjs +1 -0
- package/dist/debug/path/derived/derived-strategy.types.js +1 -0
- package/dist/debug/path/derived/derived-strategy.utils.cjs +1 -0
- package/dist/debug/path/derived/derived-strategy.utils.js +20 -0
- package/dist/debug/path/meta/MetaController.cjs +1 -0
- package/dist/debug/path/meta/MetaController.js +214 -0
- package/dist/debug/path/meta/RaphMeta.cjs +1 -0
- package/dist/debug/path/meta/RaphMeta.js +68 -0
- package/dist/debug/path/meta/RaphMetaStore.cjs +1 -0
- package/dist/debug/path/meta/RaphMetaStore.js +184 -0
- package/dist/debug/path/meta/meta.types.cjs +1 -0
- package/dist/debug/path/meta/meta.types.js +1 -0
- package/dist/debug/path/path.types.cjs +1 -0
- package/dist/debug/path/path.types.js +1 -0
- package/dist/debug/path/pathSegmentKey.cjs +1 -0
- package/dist/debug/path/pathSegmentKey.js +12 -0
- package/dist/debug/path/storage/AdapterPathStore.cjs +1 -0
- package/dist/debug/path/storage/AdapterPathStore.js +133 -0
- package/dist/debug/path/storage/DefaultDataAdapter.cjs +1 -0
- package/dist/debug/path/storage/DefaultDataAdapter.js +356 -0
- package/dist/debug/path/storage/PathEventHub.cjs +1 -0
- package/dist/debug/path/storage/PathEventHub.js +148 -0
- package/dist/debug/path/storage/PathStore.cjs +1 -0
- package/dist/debug/path/storage/PathStore.js +326 -0
- package/dist/debug/path/storage/createDataDraft.cjs +1 -0
- package/dist/debug/path/storage/createDataDraft.js +71 -0
- package/dist/debug/path/storage/data-adapter.types.cjs +1 -0
- package/dist/debug/path/storage/data-adapter.types.js +1 -0
- package/dist/debug/reactivity/engine.cjs +1 -0
- package/dist/debug/reactivity/engine.js +1305 -0
- package/dist/debug/reactivity/reactive-object.cjs +1 -0
- package/dist/debug/reactivity/reactive-object.js +280 -0
- package/dist/debug/reactivity/scope.cjs +1 -0
- package/dist/debug/reactivity/scope.js +274 -0
- package/dist/debug/reactivity/types.cjs +1 -0
- package/dist/debug/reactivity/types.js +1 -0
- package/dist/debug/reactivity/watch.cjs +1 -0
- package/dist/debug/reactivity/watch.js +64 -0
- package/dist/debug/runtime/RaphRuntime.cjs +1 -0
- package/dist/debug/runtime/RaphRuntime.js +979 -0
- package/dist/debug/runtime/diagnostics/RaphDebug.cjs +1 -0
- package/dist/debug/runtime/diagnostics/RaphDebug.js +297 -0
- package/dist/debug/runtime/errors.cjs +1 -0
- package/dist/debug/runtime/errors.js +15 -0
- package/dist/debug/runtime/ownership/RaphEffectScope.cjs +1 -0
- package/dist/debug/runtime/ownership/RaphEffectScope.js +171 -0
- package/dist/debug/runtime/ownership/RaphNode.cjs +1 -0
- package/dist/debug/runtime/ownership/RaphNode.js +206 -0
- package/dist/debug/runtime/ownership/RaphScope.cjs +1 -0
- package/dist/debug/runtime/ownership/RaphScope.js +101 -0
- package/dist/debug/runtime/ownership/parent-graph.types.cjs +1 -0
- package/dist/debug/runtime/ownership/parent-graph.types.js +1 -0
- package/dist/debug/runtime/ownership/parentGraph.cjs +1 -0
- package/dist/debug/runtime/ownership/parentGraph.js +10 -0
- package/dist/debug/runtime/ownership/throwDisposalErrors.cjs +1 -0
- package/dist/debug/runtime/ownership/throwDisposalErrors.js +9 -0
- package/dist/debug/runtime/phases/RaphFrameLoop.cjs +1 -0
- package/dist/debug/runtime/phases/RaphFrameLoop.js +106 -0
- package/dist/debug/runtime/phases/RaphPhasePipeline.cjs +1 -0
- package/dist/debug/runtime/phases/RaphPhasePipeline.js +587 -0
- package/dist/debug/runtime/phases/orderPhaseTasks.cjs +1 -0
- package/dist/debug/runtime/phases/orderPhaseTasks.js +59 -0
- package/dist/debug/runtime/phases/phase.types.cjs +1 -0
- package/dist/debug/runtime/phases/phase.types.js +8 -0
- package/dist/debug/runtime/reactivity/PathHandle.cjs +1 -0
- package/dist/debug/runtime/reactivity/PathHandle.js +175 -0
- package/dist/debug/runtime/reactivity/RaphMetaSource.cjs +1 -0
- package/dist/debug/runtime/reactivity/RaphMetaSource.js +112 -0
- package/dist/debug/runtime/reactivity/RaphWorkGraph.cjs +1 -0
- package/dist/debug/runtime/reactivity/RaphWorkGraph.js +995 -0
- package/dist/debug/runtime/reactivity/RuntimeReactivity.cjs +1 -0
- package/dist/debug/runtime/reactivity/RuntimeReactivity.js +156 -0
- package/dist/debug/runtime/reactivity/RuntimeWatch.cjs +1 -0
- package/dist/debug/runtime/reactivity/RuntimeWatch.js +88 -0
- package/dist/debug/runtime/reactivity/runtime-reactivity.types.cjs +1 -0
- package/dist/debug/runtime/reactivity/runtime-reactivity.types.js +1 -0
- package/dist/entrypoints/machine-testing.d.ts +2 -0
- package/dist/entrypoints/machine.d.ts +5 -0
- package/dist/entrypoints/path.d.ts +14 -0
- package/dist/entrypoints/reactivity.d.ts +1 -0
- package/dist/entrypoints/runtime.d.ts +17 -0
- package/dist/index.cjs +1 -0
- package/dist/index.js +48 -0
- package/dist/machine/compiler.d.ts +71 -0
- package/dist/machine/core.d.ts +50 -0
- package/dist/machine/persistence.d.ts +5 -0
- package/dist/machine/runtime.d.ts +4 -0
- package/dist/machine/testing.d.ts +43 -0
- package/dist/machine/types.d.ts +155 -0
- package/dist/machine-testing.cjs +1 -0
- package/dist/machine-testing.js +188 -0
- package/dist/machine.cjs +1 -0
- package/dist/machine.js +837 -0
- package/dist/main.d.ts +20 -0
- package/dist/path/DataPath.d.ts +73 -0
- package/dist/path/PathRouter.d.ts +21 -0
- package/dist/path/RaphKernel.d.ts +169 -0
- package/dist/path/data-path.types.d.ts +34 -0
- package/dist/path/data-path.utils.d.ts +9 -0
- package/dist/path/derived/DerivedRegistry.d.ts +67 -0
- package/dist/path/derived/RaphDerivedHandle.d.ts +97 -0
- package/dist/path/derived/derived-collection.types.d.ts +12 -0
- package/dist/path/derived/derived-collection.utils.d.ts +20 -0
- package/dist/path/derived/derived-strategy.types.d.ts +12 -0
- package/dist/path/derived/derived-strategy.utils.d.ts +4 -0
- package/dist/path/meta/MetaController.d.ts +85 -0
- package/dist/path/meta/RaphMeta.d.ts +45 -0
- package/dist/path/meta/RaphMetaStore.d.ts +45 -0
- package/dist/path/meta/meta.types.d.ts +31 -0
- package/dist/path/path.types.d.ts +27 -0
- package/dist/path/pathSegmentKey.d.ts +2 -0
- package/dist/path/storage/AdapterPathStore.d.ts +45 -0
- package/dist/path/storage/DefaultDataAdapter.d.ts +63 -0
- package/dist/path/storage/PathEventHub.d.ts +48 -0
- package/dist/path/storage/PathStore.d.ts +51 -0
- package/dist/path/storage/createDataDraft.d.ts +4 -0
- package/dist/path/storage/data-adapter.types.d.ts +17 -0
- package/dist/path.cjs +1 -0
- package/dist/path.js +18 -0
- package/dist/raph.cjs +1 -0
- package/dist/raph.js +48 -0
- package/dist/reactivity/engine.d.ts +393 -0
- package/dist/reactivity/reactive-object.d.ts +36 -0
- package/dist/reactivity/scope.d.ts +146 -0
- package/dist/reactivity/types.d.ts +175 -0
- package/dist/reactivity/watch.d.ts +15 -0
- package/dist/reactivity.cjs +1 -0
- package/dist/reactivity.js +14 -0
- package/dist/runtime/RaphRuntime.d.ts +225 -0
- package/dist/runtime/diagnostics/RaphDebug.d.ts +239 -0
- package/dist/runtime/errors.d.ts +21 -0
- package/dist/runtime/ownership/RaphEffectScope.d.ts +29 -0
- package/dist/runtime/ownership/RaphNode.d.ts +40 -0
- package/dist/runtime/ownership/RaphScope.d.ts +38 -0
- package/dist/runtime/ownership/parent-graph.types.d.ts +4 -0
- package/dist/runtime/ownership/parentGraph.d.ts +3 -0
- package/dist/runtime/ownership/throwDisposalErrors.d.ts +1 -0
- package/dist/runtime/phases/RaphFrameLoop.d.ts +51 -0
- package/dist/runtime/phases/RaphPhasePipeline.d.ts +79 -0
- package/dist/runtime/phases/orderPhaseTasks.d.ts +6 -0
- package/dist/runtime/phases/phase.types.d.ts +92 -0
- package/dist/runtime/reactivity/PathHandle.d.ts +80 -0
- package/dist/runtime/reactivity/RaphMetaSource.d.ts +32 -0
- package/dist/runtime/reactivity/RaphWorkGraph.d.ts +171 -0
- package/dist/runtime/reactivity/RuntimeReactivity.d.ts +45 -0
- package/dist/runtime/reactivity/RuntimeWatch.d.ts +34 -0
- package/dist/runtime/reactivity/runtime-reactivity.types.d.ts +11 -0
- package/dist/runtime.cjs +1 -0
- package/dist/runtime.js +23 -0
- package/package.json +141 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var C=Object.defineProperty;var E=(p,e,t)=>e in p?C(p,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):p[e]=t;var d=(p,e,t)=>E(p,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const T=require("../path/data-path.utils.cjs"),P=require("../path/DataPath.cjs"),W=require("../path/meta/RaphMeta.cjs"),q=require("../path/RaphKernel.cjs"),S=require("../reactivity/reactive-object.cjs"),g=require("./diagnostics/RaphDebug.cjs"),w=require("./errors.cjs"),G=require("./ownership/parentGraph.cjs"),v=require("./ownership/RaphNode.cjs"),k=require("./ownership/RaphScope.cjs"),R=require("./ownership/throwDisposalErrors.cjs"),m=require("./phases/phase.types.cjs"),x=require("./phases/RaphFrameLoop.cjs"),O=require("./phases/RaphPhasePipeline.cjs"),M=require("./reactivity/PathHandle.cjs"),L=require("./reactivity/RaphMetaSource.cjs"),F=require("./reactivity/RaphWorkGraph.cjs"),B=require("./reactivity/RuntimeReactivity.cjs"),N=require("./reactivity/RuntimeWatch.cjs"),b=class b{constructor(e={}){d(this,"mode","runtime");d(this,"configuration");d(this,"rootScope");d(this,"root");d(this,"frameTick");d(this,"_reactivity");d(this,"_signalLifecycle");d(this,"_workGraph");d(this,"_frameTickWritable");d(this,"_setFrameTick");d(this,"_pathHandles");d(this,"_meta");d(this,"_phases");d(this,"_frameLoop");d(this,"_debug");d(this,"_debugController");d(this,"_parentGraph");d(this,"_owners",new Set);d(this,"_batchDepth",0);d(this,"_mutationDepth",0);d(this,"_kernelBatchDepth",0);d(this,"_ownerDisposalDepth",0);d(this,"_actionDepth",0);d(this,"_actionCounter",0);d(this,"_traceCauseStack",[]);d(this,"_phaseTraceOperations");d(this,"_executionRequested",!1);d(this,"_disposed",!1);d(this,"_disposedListeners",new Set);const t=e.id??`runtime-${b._runtimeCounter++}`,r=e.adaptiveDependencyIndex??!1,s=e.enforceActions??!1,i=e.scheduler??m.RaphSchedulerType.Sync;if(!H(i))throw new Error(`[Raph] Unsupported scheduler "${String(i)}".`);const o=e.kernel??new q.RaphKernel({id:`${t}-kernel`});this.configuration=Object.freeze({adaptiveDependencyIndex:r,...e.debug===void 0?{}:{debug:e.debug},id:t,kernel:o,enforceActions:s,scheduler:i}),this._debugController=new g.RaphDebugController(e.debug);const c=`[Raph] Runtime "${t}" is disposed.`;this._signalLifecycle={owner:this,runWrite:u=>this._runWrite(u),assertDependencyAllowed:(u,l)=>{this._assertImplicitDependency(u,l)},...s?{assertWriteAllowed:()=>this._assertWriteAllowed()}:{},throwDisposed:()=>{throw new w.RaphDisposedError(c)},throwCrossRuntime:u=>this._throwCrossRuntime(u)},this._reactivity=new B.RuntimeReactivity(this._signalLifecycle,{adaptiveDependencyIndex:r}),this._workGraph=new F.RaphWorkGraph(this),o._attachRuntime(this),this.rootScope=new k.RaphScope(`${t}:root-scope`,this),this.root=new v.RaphNode(null,{id:`${t}:root`},this),S.configureReactiveObjectPolicy(this._reactivity,{owner:this,assertRead:()=>{this._assertAlive();const u=this._reactivity.getActiveOwner();u!==void 0&&u!==this&&this._throwCrossRuntime(u);const l=this._reactivity.getActiveConsumerOwner();l!==void 0&&this._assertImplicitDependency(this.rootScope,l)},assertWrite:()=>this._assertWriteAllowed(),runWrite:u=>this._runWrite(u),throwForeign:u=>{throw u instanceof b&&this._throwCrossRuntime(u),new w.RaphCrossRuntimeError("[Raph] Reactive object belongs to another reactivity engine.")}});const n=this._workGraph.createProducer(this.rootScope,"frame",{includeRuntime:!1});let a;const h=this._reactivity.signalForOwner(0,this.rootScope,this._workGraph.producerHooks(n),u=>{a=u});this._setFrameTick=u=>this._runWrite(()=>a(u)),this._frameTickWritable=h,this.frameTick=this._workGraph.attachProducer(n,{get:h.get,peek:h.peek})}_getReactivity(){return this._reactivity}_getWorkGraph(){return this._workGraph}get id(){return this.configuration.id}get kernel(){return this.configuration.kernel}get disposed(){return this._disposed}get graph(){return this._parentGraph??(this._parentGraph=G.parentGraph())}get loopEnabled(){var e;return((e=this._frameLoop)==null?void 0:e.running)??!1}get frame(){var e;return((e=this._phases)==null?void 0:e.frame)??{now:0,delta:0,elapsed:0,frame:0}}get phases(){var e;return((e=this._phases)==null?void 0:e.phases)??[]}get meta(){if(this._assertAlive(),this._meta!==void 0)return this._meta;const e=new W.RaphMeta(this.kernel,{assertReadable:()=>this._assertAlive(),assertWritable:()=>this._assertWriteAllowed(),runWrite:(t,r)=>this._runWrite(t,r)});return this._meta=Object.freeze({delete:e.delete.bind(e),get:e.get.bind(e),has:e.has.bind(e),merge:e.merge.bind(e),set:e.set.bind(e)})}getDerivedSnapshot(){return this.kernel.getDerivedSnapshot()}get debug(){return this._debug??(this._debug=Object.freeze({snapshot:()=>this._createDebugSnapshot(),getTree:()=>this._createDebugTree(),stats:()=>this._createDebugStats(),trace:this._debugController.trace,machines:this._debugController.machines}))}signal(e,t=this.rootScope){this._assertOwnerRuntime(t);const r=this._workGraph.createProducer(t),s=this._reactivity.signalForOwner(e,t,this._workGraph.producerHooks(r));return this._workGraph.attachProducer(r,s)}reactive(e){return this._assertAlive(),this._reactivity.reactive(e)}computed(e,t=this.rootScope){this._assertOwnerRuntime(t);const r=this._workGraph.createProducer(t),s=typeof e=="function"?e:e.get,i=this._reactivity.computedForOwner(()=>this._runTracked(t,s),t,this._workGraph.producerHooks(r));if(this._workGraph.setProducerActivation(r,()=>{i.peek()}),typeof e=="function")return this._workGraph.attachProducer(r,i);const o=this._attachWritableComputed(i,e.set,t);return this._workGraph.attachProducer(r,o)}effect(e,t,r,s={}){return this._effectRegistration(e,t,r,s).dispose}_effectRegistration(e,t,r,s={},i=!1){this._assertOwnerRuntime(e);const o=this._validatePhaseBinding(t,r,s),c=this._execution,n=s.initial??"scheduled";let a,h,u=!1;const l=this._reactivity.withEffectBinding(f=>{const _=c.bindTask(o,e,r,s.priority??0,f);return i&&_.pause(),a=_},()=>this._reactivity.effect(()=>this._runTracked(e,()=>{const f=r(a.task);return typeof f=="function"?()=>this._runUntracked(f):f}),()=>{h===void 0?u=!0:h()}));h=this._own(l,e),u&&h(),a.abort=()=>h==null?void 0:h();try{n==="sync"?this.flush():this._requestExecution()}catch(f){try{h()}catch(_){throw new AggregateError([f,_],"[Raph] Phase effect registration and rollback failed.")}throw f}return{dispose:()=>h==null?void 0:h(),pause:()=>a==null?void 0:a.pause(),resume:()=>a==null?void 0:a.resume()}}watch(e,t,r,s,i={}){return this._watchRegistration(e,t,r,s,i).dispose}_watchRegistration(e,t,r,s,i={},o=!1){this._assertOwnerRuntime(e);const c=this._validatePhaseBinding(r,s,i,!0);this._workGraph.assertSubscriptionAllowed(e,t);let n;const a=new N.RuntimeWatch(_=>this._runUntracked(_),()=>s(n.task));n=this._execution.bindTask(c,e,s,i.priority??0,a.deliver),o&&n.pause();let h;try{h=this._workGraph.subscribe(t,i.include,n.enqueue)}catch(_){throw n.dispose(),_}const u=()=>a.stop(()=>{const _=[];try{h()}catch(y){_.push(y)}try{n.dispose()}catch(y){_.push(y)}R.throwDisposalErrors(_,"[Raph] Phase watch disposal failed.")}),l=this._own(u,e),f=i.initial??"scheduled";try{f!=="none"&&n.schedule(),f==="sync"&&this.flush()}catch(_){try{l()}catch(y){throw new AggregateError([_,y],"[Raph] Phase watch registration and rollback failed.")}throw _}return{dispose:l,pause:n.pause,resume:n.resume}}aggregate(e,t){return this._assertOwnerRuntime(e),this._workGraph.createAggregate(e,t)}metaSource(e,t={}){this._assertAlive(),I(e,t);const r=this._workGraph.createProducer(this.rootScope,"path"),s=this._workGraph.producerHooks(r).onDispose,i=L.RaphMetaSource._create(this.rootScope,e,t,()=>this.kernel._watchMeta(i.masks,({events:o})=>this._workGraph.notifyProducerEvents(r,o,!1),i.options,o=>{o&&this._execution.request()}),()=>s(!1));i._bindOwner(this.rootScope._adoptResource(()=>i._disposeOwned()));try{return this._workGraph.setProducerActivation(r,()=>i._activate(),!0),this._workGraph.attachProducer(r,i),i}catch(o){try{i.dispose()}catch(c){throw new AggregateError([o,c],"[Raph] Meta source activation and rollback failed.")}throw o}}path(e,t={}){this._assertAlive();const r=T.parseDataPath(e,t),s=this._pathHandles??(this._pathHandles=new Map),i=s.get(r.canonical);if(i!==void 0)return i;const o=this._workGraph.createProducer(this.rootScope,"path"),c=this._workGraph.producerHooks(o),n=new M.PathHandle(this.kernel,r,t,a=>this._releasePathHandle(a),this._reactivity,()=>this._assertAlive(),()=>this._assertTrackedRead(),this.configuration.enforceActions?()=>this._assertWriteAllowed():void 0,a=>this._runWrite(a),{token:o,onDispose:c.onDispose},({events:a},h)=>this._workGraph.notifyProducerEvents(o,a,!0,h));try{return this._workGraph.setProducerActivation(o,()=>n._activate(),!0),this._workGraph.attachProducer(o,n),s.set(r.canonical,n),n}catch(a){let h,u=!1;try{n.dispose()}catch(l){u=!0,h=l}throw s.size===0&&this._pathHandles===s&&(this._pathHandles=void 0),u?new AggregateError([a,h],"[Raph] Path source activation and rollback failed."):a}}get(e,t){this._assertTrackedRead();const r=e??"";return this._reactivity._isTracking()?this.path(r,t)._getTracked():this.kernel.get(r,t)}peek(e,t){return this._assertAlive(),this.kernel.peek(e??"",t)}has(e,t){return this._assertAlive(),this.kernel.has(e,t)}set(e,t,r){this._assertWriteAllowed(),this._runWrite(()=>this.kernel.set(e,t,r))}merge(e,t,r){this._assertWriteAllowed(),this._runWrite(()=>this.kernel.merge(e,t,r))}delete(e,t){this._assertWriteAllowed(),this._runWrite(()=>this.kernel.delete(e,t))}batch(e){return this._batch(e,!0)}_batchReactive(e){return this._batch(e,!1)}_batch(e,t){this._assertAlive(),this._batchDepth++;let r,s,i=!1;try{r=this._reactivity.batch(()=>t?this.kernel.batch(e):e())}catch(c){i=!0,s=c}this._batchDepth--;const o=this._finishExecutionBoundary();if(i)throw o.length!==0?new AggregateError([s,...o],"[Raph] Batch and scheduled phase execution failed."):s;return R.throwDisposalErrors(o,"[Raph] Batch phase execution failed."),r}action(e,t,r){const s=typeof e=="function"?e:t,i=typeof e=="function"?t instanceof k.RaphScope?t:this.rootScope:r??this.rootScope,o=typeof e=="string"?e:`action#${++this._actionCounter}`;if(this._assertOwnerRuntime(i),typeof s!="function")throw new TypeError("[Raph] Action operation must be a function.");if(!o.trim())throw new Error("[Raph] Action name must not be empty.");return(...c)=>{i._assertAlive();const n=this._debugController.nextOperationId("action"),h=this._traceCauseStack.at(-1)??n;this._debugController.record({...h===void 0?{}:{causeId:h},kind:"action",name:o,...n===void 0?{}:{operationId:n},status:"start"}),h!==void 0&&this._traceCauseStack.push(h),this._actionDepth++;try{const u=this.batch(()=>this._runUntracked(()=>s(...c)));return this._debugController.record({...h===void 0?{}:{causeId:h},kind:"action",name:o,...n===void 0?{}:{operationId:n},status:"end"}),u}catch(u){throw this._debugController.record({...h===void 0?{}:{causeId:h},details:{message:D(u)},kind:"action",name:o,...n===void 0?{}:{operationId:n},status:"error"}),this._debugController.record({...h===void 0?{}:{causeId:h},details:{message:D(u)},kind:"error",name:`action:${o}`,...n===void 0?{}:{operationId:n},status:"error"}),u}finally{this._actionDepth--,h!==void 0&&this._traceCauseStack.pop()}}}untracked(e){return this._assertAlive(),this._runUntracked(e)}scope(e){return this._assertAlive(),new k.RaphScope(e,this)}node(e,t){this._assertAlive();const r=this._runNodeMutation(()=>{const s=e.parent??this.root,i=v.createProvisionalNode(s,e,this);try{const o=t==null?void 0:t(i);return i._assertAlive(),s._assertAlive(),i._setApi(o),i._publishCreation(),i}catch(o){try{i.dispose()}catch(c){throw new AggregateError([o,c],`[Raph] Node "${i.id}" setup and cleanup failed.`)}throw o}});return r._assertAlive(),r}getNode(e){this._assertAlive();const t=[this.root];for(;t.length!==0;){const r=t.pop();if(r.id===e)return r;t.push(...r.children)}}definePhases(e){this._execution.definePhases(e)}addPhase(e){this._execution.addPhase(e)}clearPhases(){var e;this._assertAlive(),(e=this._phases)==null||e.clearPhases()}requestExecution(){var e;this._assertAlive(),(e=this._phases)==null||e.request()}flush(){var e;this._assertAlive(),this._executionRequested=!1,(e=this._phases)==null||e.flush()}afterFlush(){var e;return this._assertAlive(),((e=this._phases)==null?void 0:e.afterFlush())??Promise.resolve()}acquireLoop(e){return this._assertAlive(),this._clock.acquire(e)}startLoop(){this._assertAlive(),this._clock.start()}stopLoop(){var e;(e=this._frameLoop)==null||e.stop()}derive(e){this._assertAlive();const t=e.compute,r=this.kernel.derive({...e,compute:s=>this._runUntracked(()=>t(s))});return this._own(()=>r.dispose(),this.rootScope),r}dispose(){var c,n;if(this._disposed)return;this._disposed=!0,this._executionRequested=!1,this._signalLifecycle.owner=void 0;const e=[],t=[...this._owners];try{(c=this._frameLoop)==null||c.dispose()}catch(a){e.push(a)}this._frameLoop=void 0;try{(n=this._phases)==null||n.dispose()}catch(a){e.push(a)}this._phases=void 0;try{this.root.dispose()}catch(a){e.push(a)}for(const a of t.reverse())if(!(a===this.root||a===this.rootScope||a.disposed))try{a.dispose()}catch(h){e.push(h)}try{this.rootScope.dispose()}catch(a){e.push(a)}const r=`[Raph] Runtime "${this.id}" is disposed.`,s=()=>{throw new w.RaphDisposedError(r)};try{S.disposeReactiveObjectContext(this._reactivity,{assertRead:s,assertWrite:s,throwForeign:s})}catch(a){e.push(a)}this._owners.clear(),this._meta=void 0;const i=this._pathHandles;if(this._pathHandles=void 0,i!==void 0){for(const a of i.values())try{a.dispose()}catch(h){e.push(h)}i.clear()}try{this._workGraph.dispose()}catch(a){e.push(a)}try{this.kernel._detachRuntime(this)}catch(a){e.push(a)}const o=[...this._disposedListeners];this._disposedListeners.clear();for(const a of o)try{a()}catch(h){e.push(h)}R.throwDisposalErrors(e,`[Raph] Runtime "${this.id}" disposal failed.`)}_onDisposed(e){return this._disposed?(e(),()=>{}):(this._disposedListeners.add(e),()=>{this._disposedListeners.delete(e)})}_notifyNodeStructure(e,t,r,s){this._runNodeMutation(()=>{this._workGraph.notifyNode(e,"structure",{structure:t,oldAncestors:r,newAncestors:s})})}_notifyNodeTouch(e,t){this._runNodeMutation(()=>this._workGraph.notifyNode(e,"touch",{metadata:t}))}_assertNodeReparentAllowed(e,t){this._workGraph.assertReparentAllowed(e,t)}_releaseNode(e){this._workGraph.releaseNode(e)}_runNodeMutation(e){return this._runWrite(e)}_runPhaseTransition(e){return this._runWrite(e,!1)}_beginOwnerDisposal(){this._ownerDisposalDepth++}_endOwnerDisposal(){this._ownerDisposalDepth!==0&&(this._ownerDisposalDepth--,this._clearTransientCausesIfSettled(),this._disposed||this._requestExecution())}_ownerDisposalActive(){return this._ownerDisposalDepth!==0}_registerOwner(e){this._assertAlive(),this._owners.add(e)}_unregisterOwner(e){this._owners.delete(e)}_assertOwnerRuntime(e){if(this._assertAlive(),e.runtime!==this)throw new w.RaphCrossRuntimeError("[Raph] Owner belongs to another runtime.");e._assertAlive()}_beginKernelBatch(){this._disposed||this._kernelBatchDepth++}_endKernelBatch(){this._kernelBatchDepth!==0&&(this._kernelBatchDepth--,this._clearTransientCausesIfSettled(),this._disposed||this._requestExecution())}_registerMachineDebug(e){return this._assertAlive(),this._debugController.registerMachine(e)}_hasMachineDebug(e){return this._debugController.hasMachine(e)}_traces(e){return this._debugController.traces(e)}_currentTraceCauseId(){return this._traceCauseStack.at(-1)}_nextTraceOperation(e){return this._debugController.nextOperationId(e)}_hasActiveReactiveContext(){return this._assertAlive(),this._reactivity.hasActiveContext()}_recordTrace(e){this._debugController.record(e)}_runWithTraceCause(e,t){if(e===void 0)return t();this._traceCauseStack.push(e);try{return t()}finally{this._traceCauseStack.pop()}}_validatePhaseBinding(e,t,r,s=!1){if(typeof t!="function")throw new TypeError("[Raph] Phase callback must be a function.");const i=e.trim();this._execution.requirePhase(i);const o=r.priority??0;if(!Number.isFinite(o))throw new TypeError("[Raph] Effect priority must be finite.");const c=r.initial??"scheduled";if(c!=="scheduled"&&c!=="sync"&&!(s&&c==="none"))throw new TypeError(`[Raph] Unsupported effect initial mode "${String(c)}".`);return i}_createDebugSnapshot(){var r,s,i;const e=((r=this._frameLoop)==null?void 0:r._debugState())??{running:!1,manual:!1,leases:0},t=[...this._owners].filter(o=>o!==this.rootScope&&!(o instanceof v.RaphNode)).map(g.createOwnerSnapshot);return Object.freeze({id:this.id,disposed:this._disposed,pending:!this._disposed&&(this._executionRequested||(((s=this._phases)==null?void 0:s._debugPending())??!1)),batchDepth:this._batchDepth,kernelBatchDepth:this._kernelBatchDepth,owners:this._owners.size,pathHandles:((i=this._pathHandles)==null?void 0:i.size)??0,rootScope:g.createOwnerSnapshot(this.rootScope),scopes:Object.freeze(t),root:g.createOwnerSnapshot(this.root),frameLoop:Object.freeze(e),actionDepth:this._actionDepth,machines:this._debugController.machineCount,traceEvents:this._debugController.traceSize})}_createDebugTree(){const e=this._debugController.machineTreeNodesByOwner(),t=[g.createOwnerTree(this.rootScope,e),g.createOwnerTree(this.root,e),...[...this._owners].filter(r=>r!==this.rootScope&&r!==this.root&&!(r instanceof v.RaphNode)).map(r=>g.createOwnerTree(r,e))];return Object.freeze({children:Object.freeze(t),disposed:this._disposed,id:this.id,kind:"runtime"})}_createDebugStats(){var i,o;let e=0,t=0,r=0,s=0;for(const c of this._owners)c instanceof v.RaphNode?e++:t++,r+=c._debugResourceCount(),s+=c._debugSourceCount();return Object.freeze({actors:this._debugController.actorCount,machines:this._debugController.machineCount,nodes:e,owners:this._owners.size,pathHandles:((i=this._pathHandles)==null?void 0:i.size)??0,pending:!this._disposed&&(this._executionRequested||(((o=this._phases)==null?void 0:o._debugPending())??!1)),resources:r,scopes:t,sources:s,traceEvents:this._debugController.traceSize})}_releasePathHandle(e){const t=this._pathHandles;(t==null?void 0:t.get(e.path))===e&&(t.delete(e.path),t.size===0&&(this._pathHandles=void 0))}get _execution(){return this._assertAlive(),this._phases??(this._phases=new O.RaphPhasePipeline(this.configuration.scheduler,e=>this._runUntracked(e),e=>this._workGraph.causeForToken(e),()=>{const e=this._mutationDepth!==0||this._batchDepth!==0||this._kernelBatchDepth!==0||this._ownerDisposalDepth!==0||this._reactivity._isFlushingEffects();return e&&this.configuration.scheduler===m.RaphSchedulerType.Sync&&(this._executionRequested=!0),e},(e,t,r)=>{var i,o,c;let s;t==="start"?(s=this._debugController.nextOperationId("phase"),s!==void 0&&(this._phaseTraceOperations??(this._phaseTraceOperations=new Map)).set(e,s)):(s=(i=this._phaseTraceOperations)==null?void 0:i.get(e),(o=this._phaseTraceOperations)==null||o.delete(e),((c=this._phaseTraceOperations)==null?void 0:c.size)===0&&(this._phaseTraceOperations=void 0)),this._debugController.record({...s===void 0?{}:{causeId:s},...r===void 0?{}:{details:{message:D(r)}},kind:"phase",name:e,...s===void 0?{}:{operationId:s},status:t})}))}get _clock(){return this._frameLoop??(this._frameLoop=new x.RaphFrameLoop(()=>this._tickFrameLoop()))}_tickFrameLoop(){this._disposed||this._setFrameTick(this._frameTickWritable.peek()+1)}_attachWritableComputed(e,t,r){let s=t;this._own(()=>{s=void 0},r);const i=e;return i.set=o=>{r._assertAlive(),this._assertWriteAllowed(),this._runWrite(()=>s(o))},i}_own(e,t){try{return t._adoptResource(e)}catch(r){try{e()}catch(s){throw new AggregateError([r,s],"[Raph] Resource registration and cleanup failed.")}throw r}}_runTracked(e,t){return this._reactivity.runWithOwner(this._signalLifecycle,e,t)}_runUntracked(e){return this._reactivity.untrackedWithOwner(e)}_runWrite(e,t=!0){t&&this.configuration.scheduler===m.RaphSchedulerType.Sync&&(this._executionRequested=!0),this._mutationDepth++;let r,s,i=!1;try{r=e()}catch(c){i=!0,s=c}this._mutationDepth--;const o=this._finishExecutionBoundary();if(i)throw o.length!==0?new AggregateError([s,...o],"[Raph] Mutation and scheduled phase execution failed."):s;return R.throwDisposalErrors(o,"[Raph] Mutation phase execution failed."),r}_finishExecutionBoundary(){const e=[];try{this._clearTransientCausesIfSettled()}catch(t){e.push(t)}try{this._requestExecution()}catch(t){e.push(t)}return e}_clearTransientCausesIfSettled(){this._mutationDepth===0&&this._batchDepth===0&&this._kernelBatchDepth===0&&this._ownerDisposalDepth===0&&!this._reactivity._isFlushingEffects()&&this._workGraph.clearTransientCauses()}_requestExecution(){var e;this._disposed||this.configuration.scheduler!==m.RaphSchedulerType.Sync||this._mutationDepth!==0||this._batchDepth!==0||this._kernelBatchDepth!==0||this._ownerDisposalDepth!==0||this._reactivity._isFlushingEffects()||this._executionRequested&&(this._executionRequested=!1,(e=this._phases)==null||e.flush())}_assertTrackedRead(){this._assertAlive();const e=this._reactivity.getActiveOwner();e!==void 0&&e!==this&&this._throwCrossRuntime(e);const t=this._reactivity.getActiveConsumerOwner();t!==void 0&&this._assertImplicitDependency(this.rootScope,t)}_assertSourceReadable(e){this._assertAlive();const t=this._reactivity.getActiveOwner();t!==void 0&&t!==this&&this._throwCrossRuntime(t);const r=this._reactivity.getActiveConsumerOwner();r!==void 0&&this._assertImplicitDependency(e,r),e._assertAlive()}_assertImplicitDependency(e,t){if(e.runtime!==this||t.runtime!==this)throw new w.RaphCrossRuntimeError("[Raph] Implicit dependency crosses runtime boundaries.");if(!(e===this.rootScope||e===t)){if(e instanceof v.RaphNode&&t instanceof v.RaphNode){for(let r=t.parent;r!==null;r=r.parent)if(r===e)return}throw new Error(`[Raph] Implicit dependency from "${t.id}" to "${e.id}" is not allowed; use watch().`)}}_assertWriteAllowed(){if(this._assertAlive(),this.configuration.enforceActions&&this._batchDepth===0)throw new w.RaphActionError("[Raph] Writes are allowed only inside action() or batch().")}_throwCrossRuntime(e){throw new w.RaphCrossRuntimeError(`[Raph] Runtime "${this.id}" cannot be tracked by runtime "${e.id}".`)}_assertAlive(){if(this._disposed)throw new w.RaphDisposedError(`[Raph] Runtime "${this.id}" is disposed.`)}};d(b,"_runtimeCounter",0);let A=b;function H(p){return p===m.RaphSchedulerType.Sync||p===m.RaphSchedulerType.Microtask||p===m.RaphSchedulerType.AnimationFrame}function I(p,e){const t=Array.isArray(p)?p:[p];if(t.length===0)throw new TypeError("[RaphMeta] watch requires at least one mask.");if(e.namespace!==void 0&&!e.namespace.trim())throw new Error("[RaphMeta] namespace must not be empty.");for(const r of t)P.DataPath.from(r,e)._asMask()}function D(p){return p instanceof Error?p.message:String(p)}exports.RaphRuntime=A;
|