@directive-run/core 1.3.0 → 1.4.0

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.
Files changed (43) hide show
  1. package/dist/adapter-utils.d.cts +1 -1
  2. package/dist/adapter-utils.d.ts +1 -1
  3. package/dist/chunk-E2WETPLH.js +3 -0
  4. package/dist/chunk-E2WETPLH.js.map +1 -0
  5. package/dist/{chunk-JYGG4RIL.js → chunk-LFMRWCIG.js} +3 -3
  6. package/dist/{chunk-JYGG4RIL.js.map → chunk-LFMRWCIG.js.map} +1 -1
  7. package/dist/chunk-TUS5WDVE.cjs +3 -0
  8. package/dist/chunk-TUS5WDVE.cjs.map +1 -0
  9. package/dist/{chunk-U3DN2WML.cjs → chunk-VSHSYVSY.cjs} +3 -3
  10. package/dist/{chunk-U3DN2WML.cjs.map → chunk-VSHSYVSY.cjs.map} +1 -1
  11. package/dist/{helpers-CCljEIsG.d.cts → helpers-BUY1lYCX.d.cts} +1 -1
  12. package/dist/{helpers-CfZCxxkR.d.ts → helpers-D6LcRum7.d.ts} +1 -1
  13. package/dist/index.cjs +1 -1
  14. package/dist/index.d.cts +3 -3
  15. package/dist/index.d.ts +3 -3
  16. package/dist/index.js +1 -1
  17. package/dist/internals.cjs +1 -1
  18. package/dist/internals.d.cts +35 -4
  19. package/dist/internals.d.ts +35 -4
  20. package/dist/internals.js +1 -1
  21. package/dist/plugins/index.d.cts +1 -1
  22. package/dist/plugins/index.d.ts +1 -1
  23. package/dist/{plugins-CLZ3xci0.d.ts → plugins-Dy1C8GtT.d.cts} +60 -1
  24. package/dist/{plugins-CLZ3xci0.d.cts → plugins-Dy1C8GtT.d.ts} +60 -1
  25. package/dist/system-2THXJBFM.cjs +2 -0
  26. package/dist/{system-LZMEZBOA.cjs.map → system-2THXJBFM.cjs.map} +1 -1
  27. package/dist/system-JIO36ALC.js +2 -0
  28. package/dist/{system-F2QGHEG7.js.map → system-JIO36ALC.js.map} +1 -1
  29. package/dist/testing.cjs +1 -1
  30. package/dist/testing.d.cts +1 -1
  31. package/dist/testing.d.ts +1 -1
  32. package/dist/testing.js +1 -1
  33. package/dist/worker.cjs +1 -1
  34. package/dist/worker.d.cts +1 -1
  35. package/dist/worker.d.ts +1 -1
  36. package/dist/worker.js +1 -1
  37. package/package.json +1 -1
  38. package/dist/chunk-GVVNFVEX.js +0 -3
  39. package/dist/chunk-GVVNFVEX.js.map +0 -1
  40. package/dist/chunk-RCCTZCZZ.cjs +0 -3
  41. package/dist/chunk-RCCTZCZZ.cjs.map +0 -1
  42. package/dist/system-F2QGHEG7.js +0 -2
  43. package/dist/system-LZMEZBOA.cjs +0 -2
@@ -1,4 +1,4 @@
1
- import {z as z$1,a}from'./chunk-GVVNFVEX.js';import {f,l,m,n}from'./chunk-FK7BD7XT.js';import {c}from'./chunk-4CMO5OVZ.js';var y="::",ie=Symbol.for("nodejs.util.inspect.custom");function ae(n){if(!n.ownKeys)return {};let e={};for(let t of n.ownKeys())e[t]=n.get(t);return e}function x(n){return new Proxy({},{get(e,t){if(typeof t=="symbol")return t===ie?()=>ae(n):void 0;if(!l.has(t))return n.get(t)},set(e,t,o){return typeof t=="symbol"||l.has(t)?false:n.set?n.set(t,o):false},has(e,t){return typeof t=="symbol"||l.has(t)?false:n.has?n.has(t):false},deleteProperty(e,t){return typeof t=="symbol"||l.has(t)?false:n.delete?n.delete(t):false},ownKeys(){return n.ownKeys?n.ownKeys():[]},getOwnPropertyDescriptor(e,t){if(typeof t!="symbol"&&n.has&&typeof t=="string"&&n.has(t))return {configurable:true,enumerable:true}},defineProperty(){return false},getPrototypeOf(){return null},setPrototypeOf(){return false}})}var z=new WeakMap,V=new WeakMap,U=new WeakMap,J=new WeakMap,G=new WeakMap,L=new WeakMap;function D(n$1,e){let t=z.get(n$1);if(t){let r=t.get(e);if(r)return r}else t=new Map,z.set(n$1,t);let o=x({get:r=>r==="$store"||r==="$snapshot"?n$1[r]:n$1[`${e}${y}${r}`],set:(r,a)=>{if(f){let c=m(a);c&&n(`${e}.${r}`,c);}return n$1[`${e}${y}${r}`]=a,true},has:r=>`${e}${y}${r}`in n$1,delete:r=>(delete n$1[`${e}${y}${r}`],true)});return t.set(e,o),o}function Z(n,e,t){let o=V.get(n);if(o)return o;let r=x({get:a=>{if(Object.hasOwn(e,a))return D(n,a)},has:a=>Object.hasOwn(e,a),ownKeys:()=>t()});return V.set(n,r),r}function Q(n,e,t){let o=`${e}|${t.join(",")}`,r=G.get(n);if(r){let i=r.get(o);if(i)return i}else r=new Map,G.set(n,r);let a=new Set(t),c=["self",...t],f$1=x({get:i=>{if(i==="self")return D(n,e);if(a.has(i))return D(n,i);f&&console.warn(`[Directive] Module "${e}" accessed undeclared cross-module property "${i}". Add it to crossModuleDeps or use "facts.self.${i}" for own module facts.`);},has:i=>i==="self"||a.has(i),ownKeys:()=>c});return r.set(o,f$1),f$1}function A(n,e){let t=J.get(n);if(t){let r=t.get(e);if(r)return r}else t=new Map,J.set(n,t);let o=x({get:r=>n[`${e}${y}${r}`],has:r=>`${e}${y}${r}`in n});return t.set(e,o),o}function X(n,e,t){let o=U.get(n);if(o)return o;let r=x({get:a=>{if(Object.hasOwn(e,a))return A(n,a)},has:a=>Object.hasOwn(e,a),ownKeys:()=>t()});return U.set(n,r),r}function Y(n,e,t){let o=L.get(n);return o||(o=new Map,L.set(n,o)),x({get:r=>{if(!Object.hasOwn(e,r))return;let a=o.get(r);if(a)return a;let c=x({get:f=>i=>{n.dispatch({type:`${r}${y}${f}`,...i});}});return o.set(r,c),c},has:r=>Object.hasOwn(e,r),ownKeys:()=>t()})}function b(n){if(n.includes(".")){let[e,...t]=n.split(".");return `${e}${y}${t.join(y)}`}return n}function N(n){let e={};for(let[t,o]of Object.entries(n)){let r=t.indexOf(y);if(r>0){let a=t.slice(0,r),c=t.slice(r+y.length);e[a]||(e[a]={}),e[a][c]=o;}else e._root||(e._root={}),e._root[t]=o;}return e}function O(n,e,t,o){return t?Q(n,e,o):D(n,e)}function M(n,e){return `${n}${y}${e}`}function P(n){return Object.keys(n).length>0?n:void 0}function ce(n,e){let t={};for(let[o,r]of Object.entries(n.schema.facts))t[M(e,o)]=r;return t}function ue(n,e){if(n.init)return t=>{let o=D(t,e);n.init(o);}}function de(n,e,t,o){if(!n.derive)return;let r={};for(let[a$1,c]of Object.entries(n.derive)){let f=a(c),i=f?c.compute:c,w=f?c.meta:void 0,g=(d,m)=>{let R=O(d,e,t,o),h=A(m,e);return i(R,h)};r[M(e,a$1)]=w?{compute:g,meta:w}:g;}return P(r)}function le(n,e){if(!n.events)return;let t={};for(let[o,r]of Object.entries(n.events)){let a=typeof r=="object"&&r!==null&&Object.hasOwn(r,"handler"),c=a?r.handler:r,f=a?r.meta:void 0,i=(w,g)=>{let d=D(w,e);c(d,g);};t[M(e,o)]=f?{handler:i,meta:f}:i;}return P(t)}function fe(n,e,t,o){if(!n.constraints)return;let r={};for(let[a,c]of Object.entries(n.constraints)){let f=c;r[M(e,a)]={...f,deps:f.deps?.map(i=>M(e,i)),after:f.after?.map(i=>i.includes(y)?i:M(e,i)),when:i=>{let w=O(i,e,t,o);return f.when(w)},require:typeof f.require=="function"?i=>{let w=O(i,e,t,o);return f.require(w)}:f.require};}return P(r)}function ye(n,e,t,o){if(!n.resolvers)return;let r={};for(let[c,f]of Object.entries(n.resolvers)){let w=function(g){return {facts:O(g.facts,e,t,o),signal:g.signal}};let i=f;r[M(e,c)]={...i,...i.resolve&&{resolve:async(g,d)=>{await i.resolve(g,w(d));}},...i.resolveBatch&&{resolveBatch:async(g,d)=>{await i.resolveBatch(g,w(d));}},...i.resolveBatchWithResults&&{resolveBatchWithResults:async(g,d)=>i.resolveBatchWithResults(g,w(d))}};}return P(r)}function ge(n,e,t,o){if(!n.effects)return;let r={};for(let[a,c]of Object.entries(n.effects)){let f=c;r[M(e,a)]={...f,run:(i,w)=>{let g=O(i,e,t,o),d=w?O(w,e,t,o):void 0;return f.run(g,d)},deps:f.deps?.map(i=>M(e,i))};}return P(r)}function he(n,e,t){return {snapshotEvents:t&&!t.has(e)?[]:n.history?.snapshotEvents?.map(o=>M(e,o))}}function _(n){let{mod:e,namespace:t,snapshotModulesSet:o}=n,r=!!(e.crossModuleDeps&&Object.keys(e.crossModuleDeps).length>0),a=r?Object.keys(e.crossModuleDeps):[];return {id:e.id,schema:ce(e,t),requirements:e.schema.requirements??{},init:ue(e,t),derive:de(e,t,r,a),events:le(e,t),effects:ge(e,t,r,a),constraints:fe(e,t,r,a),resolvers:ye(e,t,r,a),hooks:e.hooks,meta:e.meta,history:he(e,t,o)}}function me(n){let e=Object.keys(n),t=new Set(e),o=new Set,r=new Set,a=[],c=[];function f(i){if(o.has(i))return;if(r.has(i)){let g=c.indexOf(i),d=[...c.slice(g),i].join(" \u2192 ");throw new Error(`[Directive] Circular dependency detected: ${d}. Modules cannot have circular crossModuleDeps. Break the cycle by removing one of the cross-module references.`)}r.add(i),c.push(i);let w=n[i];if(w?.crossModuleDeps)for(let g of Object.keys(w.crossModuleDeps))t.has(g)&&f(g);c.pop(),r.delete(i),o.add(i),a.push(i);}for(let i of e)f(i);return a}function ee(n,e){let t=[];for(let o of Object.keys(e.schema.facts))t.push(`${n}${y}${o}`);if(e.schema.derivations)for(let o of Object.keys(e.schema.derivations))t.push(`${n}${y}${o}`);return t}function Ee(n){if("module"in n){if(!n.module)throw new Error("[Directive] createSystem requires a module. Got: "+typeof n.module);return ke(n)}let e=n;if(Array.isArray(e.modules))throw new Error(`[Directive] createSystem expects modules as an object, not an array.
1
+ import {z as z$1,a}from'./chunk-E2WETPLH.js';import {f,l,m,n}from'./chunk-FK7BD7XT.js';import {c}from'./chunk-4CMO5OVZ.js';var y="::",ie=Symbol.for("nodejs.util.inspect.custom");function ae(n){if(!n.ownKeys)return {};let e={};for(let t of n.ownKeys())e[t]=n.get(t);return e}function x(n){return new Proxy({},{get(e,t){if(typeof t=="symbol")return t===ie?()=>ae(n):void 0;if(!l.has(t))return n.get(t)},set(e,t,o){return typeof t=="symbol"||l.has(t)?false:n.set?n.set(t,o):false},has(e,t){return typeof t=="symbol"||l.has(t)?false:n.has?n.has(t):false},deleteProperty(e,t){return typeof t=="symbol"||l.has(t)?false:n.delete?n.delete(t):false},ownKeys(){return n.ownKeys?n.ownKeys():[]},getOwnPropertyDescriptor(e,t){if(typeof t!="symbol"&&n.has&&typeof t=="string"&&n.has(t))return {configurable:true,enumerable:true}},defineProperty(){return false},getPrototypeOf(){return null},setPrototypeOf(){return false}})}var z=new WeakMap,V=new WeakMap,U=new WeakMap,J=new WeakMap,G=new WeakMap,L=new WeakMap;function D(n$1,e){let t=z.get(n$1);if(t){let r=t.get(e);if(r)return r}else t=new Map,z.set(n$1,t);let o=x({get:r=>r==="$store"||r==="$snapshot"?n$1[r]:n$1[`${e}${y}${r}`],set:(r,a)=>{if(f){let c=m(a);c&&n(`${e}.${r}`,c);}return n$1[`${e}${y}${r}`]=a,true},has:r=>`${e}${y}${r}`in n$1,delete:r=>(delete n$1[`${e}${y}${r}`],true)});return t.set(e,o),o}function Z(n,e,t){let o=V.get(n);if(o)return o;let r=x({get:a=>{if(Object.hasOwn(e,a))return D(n,a)},has:a=>Object.hasOwn(e,a),ownKeys:()=>t()});return V.set(n,r),r}function Q(n,e,t){let o=`${e}|${t.join(",")}`,r=G.get(n);if(r){let i=r.get(o);if(i)return i}else r=new Map,G.set(n,r);let a=new Set(t),c=["self",...t],f$1=x({get:i=>{if(i==="self")return D(n,e);if(a.has(i))return D(n,i);f&&console.warn(`[Directive] Module "${e}" accessed undeclared cross-module property "${i}". Add it to crossModuleDeps or use "facts.self.${i}" for own module facts.`);},has:i=>i==="self"||a.has(i),ownKeys:()=>c});return r.set(o,f$1),f$1}function A(n,e){let t=J.get(n);if(t){let r=t.get(e);if(r)return r}else t=new Map,J.set(n,t);let o=x({get:r=>n[`${e}${y}${r}`],has:r=>`${e}${y}${r}`in n});return t.set(e,o),o}function X(n,e,t){let o=U.get(n);if(o)return o;let r=x({get:a=>{if(Object.hasOwn(e,a))return A(n,a)},has:a=>Object.hasOwn(e,a),ownKeys:()=>t()});return U.set(n,r),r}function Y(n,e,t){let o=L.get(n);return o||(o=new Map,L.set(n,o)),x({get:r=>{if(!Object.hasOwn(e,r))return;let a=o.get(r);if(a)return a;let c=x({get:f=>i=>{n.dispatch({type:`${r}${y}${f}`,...i});}});return o.set(r,c),c},has:r=>Object.hasOwn(e,r),ownKeys:()=>t()})}function b(n){if(n.includes(".")){let[e,...t]=n.split(".");return `${e}${y}${t.join(y)}`}return n}function N(n){let e={};for(let[t,o]of Object.entries(n)){let r=t.indexOf(y);if(r>0){let a=t.slice(0,r),c=t.slice(r+y.length);e[a]||(e[a]={}),e[a][c]=o;}else e._root||(e._root={}),e._root[t]=o;}return e}function O(n,e,t,o){return t?Q(n,e,o):D(n,e)}function M(n,e){return `${n}${y}${e}`}function P(n){return Object.keys(n).length>0?n:void 0}function ce(n,e){let t={};for(let[o,r]of Object.entries(n.schema.facts))t[M(e,o)]=r;return t}function ue(n,e){if(n.init)return t=>{let o=D(t,e);n.init(o);}}function de(n,e,t,o){if(!n.derive)return;let r={};for(let[a$1,c]of Object.entries(n.derive)){let f=a(c),i=f?c.compute:c,w=f?c.meta:void 0,g=(d,m)=>{let R=O(d,e,t,o),h=A(m,e);return i(R,h)};r[M(e,a$1)]=w?{compute:g,meta:w}:g;}return P(r)}function le(n,e){if(!n.events)return;let t={};for(let[o,r]of Object.entries(n.events)){let a=typeof r=="object"&&r!==null&&Object.hasOwn(r,"handler"),c=a?r.handler:r,f=a?r.meta:void 0,i=(w,g)=>{let d=D(w,e);c(d,g);};t[M(e,o)]=f?{handler:i,meta:f}:i;}return P(t)}function fe(n,e,t,o){if(!n.constraints)return;let r={};for(let[a,c]of Object.entries(n.constraints)){let f=c;r[M(e,a)]={...f,deps:f.deps?.map(i=>M(e,i)),after:f.after?.map(i=>i.includes(y)?i:M(e,i)),when:i=>{let w=O(i,e,t,o);return f.when(w)},require:typeof f.require=="function"?i=>{let w=O(i,e,t,o);return f.require(w)}:f.require};}return P(r)}function ye(n,e,t,o){if(!n.resolvers)return;let r={};for(let[c,f]of Object.entries(n.resolvers)){let w=function(g){return {facts:O(g.facts,e,t,o),signal:g.signal}};let i=f;r[M(e,c)]={...i,...i.resolve&&{resolve:async(g,d)=>{await i.resolve(g,w(d));}},...i.resolveBatch&&{resolveBatch:async(g,d)=>{await i.resolveBatch(g,w(d));}},...i.resolveBatchWithResults&&{resolveBatchWithResults:async(g,d)=>i.resolveBatchWithResults(g,w(d))}};}return P(r)}function ge(n,e,t,o){if(!n.effects)return;let r={};for(let[a,c]of Object.entries(n.effects)){let f=c;r[M(e,a)]={...f,run:(i,w)=>{let g=O(i,e,t,o),d=w?O(w,e,t,o):void 0;return f.run(g,d)},deps:f.deps?.map(i=>M(e,i))};}return P(r)}function he(n,e,t){return {snapshotEvents:t&&!t.has(e)?[]:n.history?.snapshotEvents?.map(o=>M(e,o))}}function _(n){let{mod:e,namespace:t,snapshotModulesSet:o}=n,r=!!(e.crossModuleDeps&&Object.keys(e.crossModuleDeps).length>0),a=r?Object.keys(e.crossModuleDeps):[];return {id:e.id,schema:ce(e,t),requirements:e.schema.requirements??{},init:ue(e,t),derive:de(e,t,r,a),events:le(e,t),effects:ge(e,t,r,a),constraints:fe(e,t,r,a),resolvers:ye(e,t,r,a),hooks:e.hooks,meta:e.meta,history:he(e,t,o)}}function me(n){let e=Object.keys(n),t=new Set(e),o=new Set,r=new Set,a=[],c=[];function f(i){if(o.has(i))return;if(r.has(i)){let g=c.indexOf(i),d=[...c.slice(g),i].join(" \u2192 ");throw new Error(`[Directive] Circular dependency detected: ${d}. Modules cannot have circular crossModuleDeps. Break the cycle by removing one of the cross-module references.`)}r.add(i),c.push(i);let w=n[i];if(w?.crossModuleDeps)for(let g of Object.keys(w.crossModuleDeps))t.has(g)&&f(g);c.pop(),r.delete(i),o.add(i),a.push(i);}for(let i of e)f(i);return a}function ee(n,e){let t=[];for(let o of Object.keys(e.schema.facts))t.push(`${n}${y}${o}`);if(e.schema.derivations)for(let o of Object.keys(e.schema.derivations))t.push(`${n}${y}${o}`);return t}function Ee(n){if("module"in n){if(!n.module)throw new Error("[Directive] createSystem requires a module. Got: "+typeof n.module);return ke(n)}let e=n;if(Array.isArray(e.modules))throw new Error(`[Directive] createSystem expects modules as an object, not an array.
2
2
 
3
3
  Instead of:
4
4
  createSystem({ modules: [authModule, dataModule] })
@@ -12,5 +12,5 @@ Or for a single module:
12
12
  createSystem({ module: myModule })
13
13
 
14
14
  For multiple modules, wrap in an object:
15
- createSystem({ modules: { myName: myModule } })`);return we(e)}function we(n){let e=n.modules,t=new Set(Object.keys(e)),o=typeof n.history=="object"?n.history:null,r=o?.snapshotModules?new Set(o.snapshotModules):null;if(n.tickMs!==void 0&&n.tickMs<=0)throw new Error("[Directive] tickMs must be a positive number");if(f){for(let[s,u]of Object.entries(e))if(u.crossModuleDeps)for(let l of Object.keys(u.crossModuleDeps))l===s?console.warn(`[Directive] Module "${s}" references itself in crossModuleDeps. Use "facts.self" to access own module's facts instead.`):t.has(l)||console.warn(`[Directive] Module "${s}" declares crossModuleDeps.${l}, but no module with namespace "${l}" exists in the system. Available modules: ${[...t].join(", ")}`);}if(f&&o?.snapshotModules)for(let s of o.snapshotModules)t.has(s)||console.warn(`[Directive] history.snapshotModules entry "${s}" doesn't match any module. Available modules: ${[...t].join(", ")}`);let a,c$1=n.initOrder??"auto";if(Array.isArray(c$1)){let s=c$1,u=Object.keys(e).filter(l=>!s.includes(l));if(u.length>0)throw new Error(`[Directive] initOrder is missing modules: ${u.join(", ")}. All modules must be included in the explicit order.`);a=s;}else c$1==="declaration"?a=Object.keys(e):a=me(e);let{history:f$1,trace:i,errorBoundary:w}=ne(n);for(let s of Object.keys(e)){if(s.includes(y))throw new Error(`[Directive] Module name "${s}" contains the reserved separator "${y}". Module names cannot contain "${y}".`);let u=e[s];if(u){for(let l of Object.keys(u.schema.facts))if(l.includes(y))throw new Error(`[Directive] Schema key "${l}" in module "${s}" contains the reserved separator "${y}". Schema keys cannot contain "${y}".`)}}let g={names:null};function d(){return g.names===null&&(g.names=Object.keys(e)),g.names}let m=a.map(s=>{let u=e[s];return u?_({mod:u,namespace:s,snapshotModulesSet:r}):null}).filter(s=>s!==null);f&&n.tickMs&&n.tickMs>0&&(m.some(u=>u.events&&Object.keys(u.events).some(l=>l.endsWith(`${y}tick`)))||console.warn(`[Directive] tickMs is set to ${n.tickMs}ms but no module defines a "tick" event handler.`));let R=null,h=null;function K(s){for(let[u,l$1]of Object.entries(s)){if(l.has(u)){f&&console.warn(`[Directive] initialFacts/hydrate contains blocked namespace "${u}". Skipping.`);continue}if(!t.has(u)){f&&console.warn(`[Directive] initialFacts/hydrate contains unknown namespace "${u}". Available modules: ${[...t].join(", ")}`);continue}if(l$1&&typeof l$1=="object"&&!c(l$1))throw new Error(`[Directive] initialFacts/hydrate for namespace "${u}" contains potentially dangerous keys (__proto__, constructor, or prototype). This may indicate a prototype pollution attack.`);for(let[v,S]of Object.entries(l$1))l.has(v)||(h.facts[`${u}${y}${v}`]=S);}}h=z$1({modules:m,plugins:n.plugins,history:f$1,trace:i,errorBoundary:w,tickMs:n.tickMs,cloud:n.cloud,onAfterModuleInit:()=>{n.initialFacts&&K(n.initialFacts),R&&(K(R),R=null);}});let $=new Map;for(let s of Object.keys(e)){let u=e[s];u&&$.set(s,ee(s,u));}let B=Z(h.facts,e,d),se=X(h.derive,e,d),oe=Y(h,e,d),j=null,C=n.tickMs,T={_mode:"namespaced",facts:B,history:h.history,derive:se,events:oe,constraints:h.constraints,effects:h.effects,resolvers:h.resolvers,async hydrate(s){if(h.isRunning)throw new Error("[Directive] hydrate() must be called before start(). The system is already running.");let u=await s();u&&typeof u=="object"&&(R=u);},initialize(){h.initialize();},start(){if(h.start(),C&&C>0){let s;for(let u of m)if(u?.events&&(s=Object.keys(u.events).find(l=>l.endsWith(`${y}tick`)),s))break;if(s){let u=s;j=setInterval(()=>{h.dispatch({type:u});},C);}}},stop(){j&&(clearInterval(j),j=null),h.stop();},destroy(){this.stop(),h.destroy();},dispatch(s){h.dispatch(s);},read(s){return h.read(b(s))},subscribe(s,u){let l=[];for(let v of s)if(v.endsWith(".*")){let S=v.slice(0,-2),H=$.get(S);H?l.push(...H):f&&console.warn(`[Directive] subscribe wildcard "${v}" \u2014 namespace "${S}" not found.`);}else l.push(b(v));return h.subscribe(l,u)},subscribeModule(s,u){let l=$.get(s);return !l||l.length===0?(f&&console.warn(`[Directive] subscribeModule("${s}") \u2014 namespace not found. Available: ${[...$.keys()].join(", ")}`),()=>{}):h.subscribe(l,u)},watch(s,u,l){return h.watch(b(s),u,l)},when(s,u){return h.when(()=>s(B),u)},getDistributableSnapshot(s){let u={...s,includeDerivations:s?.includeDerivations?.map(b),excludeDerivations:s?.excludeDerivations?.map(b),includeFacts:s?.includeFacts?.map(b)},l=h.getDistributableSnapshot(u);return {...l,data:N(l.data)}},watchDistributableSnapshot(s,u){let l={...s,includeDerivations:s?.includeDerivations?.map(b),excludeDerivations:s?.excludeDerivations?.map(b),includeFacts:s?.includeFacts?.map(b)};return h.watchDistributableSnapshot(l,v=>{u({...v,data:N(v.data)});})},registerModule(s,u){if(t.has(s))throw new Error(`[Directive] Module namespace "${s}" already exists. Cannot register a duplicate namespace.`);if(s.includes(y))throw new Error(`[Directive] Module name "${s}" contains the reserved separator "${y}".`);if(l.has(s))throw new Error(`[Directive] Module name "${s}" is a blocked property.`);for(let S of Object.keys(u.schema.facts))if(S.includes(y))throw new Error(`[Directive] Schema key "${S}" in module "${s}" contains the reserved separator "${y}".`);let l$1=u,v=_({mod:l$1,namespace:s,snapshotModulesSet:r});t.add(s),e[s]=l$1,g.names=null,$.set(s,ee(s,l$1)),h.registerModule(v);}};return te(T,h),re(T),T}function ne(n){let e=n.history,t=n.trace,o=n.errorBoundary;return n.zeroConfig&&(e=e??f,o={onConstraintError:"skip",onResolverError:"skip",onEffectError:"skip",onDerivationError:"skip",...n.errorBoundary}),{history:e,trace:t,errorBoundary:o}}function te(n,e){Object.defineProperties(n,{trace:{get(){return e.trace},enumerable:true,configurable:true},meta:{value:e.meta,enumerable:true,configurable:true},isRunning:{get(){return e.isRunning},enumerable:true,configurable:true},isSettled:{get(){return e.isSettled},enumerable:true,configurable:true},isInitialized:{get(){return e.isInitialized},enumerable:true,configurable:true},isReady:{get(){return e.isReady},enumerable:true,configurable:true}}),n.whenReady=e.whenReady.bind(e),n.batch=e.batch.bind(e),n.onSettledChange=e.onSettledChange.bind(e),n.onHistoryChange=e.onHistoryChange.bind(e),n.inspect=e.inspect.bind(e),n.settle=e.settle.bind(e),n.explain=e.explain.bind(e),n.getSnapshot=e.getSnapshot.bind(e),n.restore=e.restore.bind(e),n.observe=e.observe.bind(e);let t=["dispatch","read","subscribe","watch","when","getDistributableSnapshot","watchDistributableSnapshot"];for(let o of t)o in n||(n[o]=e[o].bind(e));}function re(n){f&&process.env.NODE_ENV!=="test"&&setTimeout(()=>{!n.isRunning&&!n.isInitialized&&console.warn("[Directive] System created but start() was never called. Constraints, resolvers, and effects will not run until you call system.start().");},0);}function ke(n){let e=n.module;if(!e)throw new Error("[Directive] createSystem requires a module. Got: "+typeof e);if(n.tickMs!==void 0&&n.tickMs<=0)throw new Error("[Directive] tickMs must be a positive number");if(n.initialFacts&&!c(n.initialFacts))throw new Error("[Directive] initialFacts contains potentially dangerous keys (__proto__, constructor, or prototype). This may indicate a prototype pollution attack.");f&&(e.crossModuleDeps&&Object.keys(e.crossModuleDeps).length>0&&console.warn("[Directive] Single module mode ignores crossModuleDeps. Use multiple modules if cross-module access is needed: createSystem({ modules: { ... } })"),n.tickMs&&n.tickMs>0&&(e.events&&"tick"in e.events||console.warn(`[Directive] tickMs is set to ${n.tickMs}ms but module has no "tick" event handler.`)),(typeof n.history=="object"?n.history:null)?.snapshotModules&&console.warn("[Directive] history.snapshotModules has no effect in single-module mode. Use history.snapshotEvents on the module definition instead, or switch to createSystem({ modules: { ... } }) for multi-module filtering."));let{history:t,trace:o,errorBoundary:r}=ne(n),a=null,c$1=null;c$1=z$1({modules:[{id:e.id,schema:e.schema.facts,requirements:e.schema.requirements,init:e.init,derive:e.derive,events:e.events,effects:e.effects,constraints:e.constraints,resolvers:e.resolvers,hooks:e.hooks,meta:e.meta,history:e.history}],plugins:n.plugins,history:t,trace:o,errorBoundary:r,tickMs:n.tickMs,cloud:n.cloud,onAfterModuleInit:()=>{if(n.initialFacts)for(let[d,m]of Object.entries(n.initialFacts))l.has(d)||(c$1.facts[d]=m);if(a){if(!c(a))f&&console.warn("[Directive] hydrate() data contains potentially dangerous keys. Skipping.");else for(let[d,m]of Object.entries(a))l.has(d)||(c$1.facts[d]=m);a=null;}}});let f$1=new Proxy({},{get(d,m){if(typeof m!="symbol"&&!l.has(m))return R=>{c$1.dispatch({type:m,...R});}},has(d,m){return typeof m=="symbol"||l.has(m)?false:e.events?m in e.events:false},ownKeys(){return e.events?Object.keys(e.events):[]},getOwnPropertyDescriptor(d,m){if(typeof m!="symbol"&&!l.has(m)&&e.events&&m in e.events)return {configurable:true,enumerable:true}},set(){return false},deleteProperty(){return false},defineProperty(){return false},getPrototypeOf(){return null},setPrototypeOf(){return false}}),i=null,w=n.tickMs,g={_mode:"single",facts:c$1.facts,history:c$1.history,derive:c$1.derive,events:f$1,constraints:c$1.constraints,effects:c$1.effects,resolvers:c$1.resolvers,async hydrate(d){if(c$1.isRunning)throw new Error("[Directive] hydrate() must be called before start(). The system is already running.");let m=await d();m&&typeof m=="object"&&(a=m);},initialize(){c$1.initialize();},start(){c$1.start(),w&&w>0&&e.events&&"tick"in e.events&&(i=setInterval(()=>{c$1.dispatch({type:"tick"});},w));},stop(){i&&(clearInterval(i),i=null),c$1.stop();},destroy(){this.stop(),c$1.destroy();},registerModule(d){c$1.registerModule({id:d.id,schema:d.schema.facts,requirements:d.schema.requirements,init:d.init,derive:d.derive,events:d.events,effects:d.effects,constraints:d.constraints,resolvers:d.resolvers,hooks:d.hooks,history:d.history});}};return te(g,c$1),re(g),g}export{Ee as a};//# sourceMappingURL=chunk-JYGG4RIL.js.map
16
- //# sourceMappingURL=chunk-JYGG4RIL.js.map
15
+ createSystem({ modules: { myName: myModule } })`);return we(e)}function we(n){let e=n.modules,t=new Set(Object.keys(e)),o=typeof n.history=="object"?n.history:null,r=o?.snapshotModules?new Set(o.snapshotModules):null;if(n.tickMs!==void 0&&n.tickMs<=0)throw new Error("[Directive] tickMs must be a positive number");if(f){for(let[s,u]of Object.entries(e))if(u.crossModuleDeps)for(let l of Object.keys(u.crossModuleDeps))l===s?console.warn(`[Directive] Module "${s}" references itself in crossModuleDeps. Use "facts.self" to access own module's facts instead.`):t.has(l)||console.warn(`[Directive] Module "${s}" declares crossModuleDeps.${l}, but no module with namespace "${l}" exists in the system. Available modules: ${[...t].join(", ")}`);}if(f&&o?.snapshotModules)for(let s of o.snapshotModules)t.has(s)||console.warn(`[Directive] history.snapshotModules entry "${s}" doesn't match any module. Available modules: ${[...t].join(", ")}`);let a,c$1=n.initOrder??"auto";if(Array.isArray(c$1)){let s=c$1,u=Object.keys(e).filter(l=>!s.includes(l));if(u.length>0)throw new Error(`[Directive] initOrder is missing modules: ${u.join(", ")}. All modules must be included in the explicit order.`);a=s;}else c$1==="declaration"?a=Object.keys(e):a=me(e);let{history:f$1,trace:i,errorBoundary:w}=ne(n);for(let s of Object.keys(e)){if(s.includes(y))throw new Error(`[Directive] Module name "${s}" contains the reserved separator "${y}". Module names cannot contain "${y}".`);let u=e[s];if(u){for(let l of Object.keys(u.schema.facts))if(l.includes(y))throw new Error(`[Directive] Schema key "${l}" in module "${s}" contains the reserved separator "${y}". Schema keys cannot contain "${y}".`)}}let g={names:null};function d(){return g.names===null&&(g.names=Object.keys(e)),g.names}let m=a.map(s=>{let u=e[s];return u?_({mod:u,namespace:s,snapshotModulesSet:r}):null}).filter(s=>s!==null);f&&n.tickMs&&n.tickMs>0&&(m.some(u=>u.events&&Object.keys(u.events).some(l=>l.endsWith(`${y}tick`)))||console.warn(`[Directive] tickMs is set to ${n.tickMs}ms but no module defines a "tick" event handler.`));let R=null,h=null;function K(s){for(let[u,l$1]of Object.entries(s)){if(l.has(u)){f&&console.warn(`[Directive] initialFacts/hydrate contains blocked namespace "${u}". Skipping.`);continue}if(!t.has(u)){f&&console.warn(`[Directive] initialFacts/hydrate contains unknown namespace "${u}". Available modules: ${[...t].join(", ")}`);continue}if(l$1&&typeof l$1=="object"&&!c(l$1))throw new Error(`[Directive] initialFacts/hydrate for namespace "${u}" contains potentially dangerous keys (__proto__, constructor, or prototype). This may indicate a prototype pollution attack.`);for(let[v,S]of Object.entries(l$1))l.has(v)||(h.facts[`${u}${y}${v}`]=S);}}h=z$1({modules:m,plugins:n.plugins,history:f$1,trace:i,errorBoundary:w,tickMs:n.tickMs,cloud:n.cloud,onAfterModuleInit:()=>{n.initialFacts&&K(n.initialFacts),R&&(K(R),R=null);}});let $=new Map;for(let s of Object.keys(e)){let u=e[s];u&&$.set(s,ee(s,u));}let B=Z(h.facts,e,d),se=X(h.derive,e,d),oe=Y(h,e,d),j=null,C=n.tickMs,T={_mode:"namespaced",facts:B,history:h.history,derive:se,events:oe,constraints:h.constraints,effects:h.effects,resolvers:h.resolvers,async hydrate(s){if(h.isRunning)throw new Error("[Directive] hydrate() must be called before start(). The system is already running.");let u=await s();u&&typeof u=="object"&&(R=u);},initialize(){h.initialize();},start(){if(h.start(),C&&C>0){let s;for(let u of m)if(u?.events&&(s=Object.keys(u.events).find(l=>l.endsWith(`${y}tick`)),s))break;if(s){let u=s;j=setInterval(()=>{h.dispatch({type:u});},C);}}},stop(){j&&(clearInterval(j),j=null),h.stop();},destroy(){this.stop(),h.destroy();},dispatch(s){h.dispatch(s);},read(s){return h.read(b(s))},subscribe(s,u){let l=[];for(let v of s)if(v.endsWith(".*")){let S=v.slice(0,-2),H=$.get(S);H?l.push(...H):f&&console.warn(`[Directive] subscribe wildcard "${v}" \u2014 namespace "${S}" not found.`);}else l.push(b(v));return h.subscribe(l,u)},subscribeModule(s,u){let l=$.get(s);return !l||l.length===0?(f&&console.warn(`[Directive] subscribeModule("${s}") \u2014 namespace not found. Available: ${[...$.keys()].join(", ")}`),()=>{}):h.subscribe(l,u)},watch(s,u,l){return h.watch(b(s),u,l)},when(s,u){return h.when(()=>s(B),u)},getDistributableSnapshot(s){let u={...s,includeDerivations:s?.includeDerivations?.map(b),excludeDerivations:s?.excludeDerivations?.map(b),includeFacts:s?.includeFacts?.map(b)},l=h.getDistributableSnapshot(u);return {...l,data:N(l.data)}},watchDistributableSnapshot(s,u){let l={...s,includeDerivations:s?.includeDerivations?.map(b),excludeDerivations:s?.excludeDerivations?.map(b),includeFacts:s?.includeFacts?.map(b)};return h.watchDistributableSnapshot(l,v=>{u({...v,data:N(v.data)});})},registerModule(s,u){if(t.has(s))throw new Error(`[Directive] Module namespace "${s}" already exists. Cannot register a duplicate namespace.`);if(s.includes(y))throw new Error(`[Directive] Module name "${s}" contains the reserved separator "${y}".`);if(l.has(s))throw new Error(`[Directive] Module name "${s}" is a blocked property.`);for(let S of Object.keys(u.schema.facts))if(S.includes(y))throw new Error(`[Directive] Schema key "${S}" in module "${s}" contains the reserved separator "${y}".`);let l$1=u,v=_({mod:l$1,namespace:s,snapshotModulesSet:r});t.add(s),e[s]=l$1,g.names=null,$.set(s,ee(s,l$1)),h.registerModule(v);}};return te(T,h),re(T),T}function ne(n){let e=n.history,t=n.trace,o=n.errorBoundary;return n.zeroConfig&&(e=e??f,o={onConstraintError:"skip",onResolverError:"skip",onEffectError:"skip",onDerivationError:"skip",...n.errorBoundary}),{history:e,trace:t,errorBoundary:o}}function te(n,e){Object.defineProperties(n,{trace:{get(){return e.trace},enumerable:true,configurable:true},meta:{value:e.meta,enumerable:true,configurable:true},isRunning:{get(){return e.isRunning},enumerable:true,configurable:true},isSettled:{get(){return e.isSettled},enumerable:true,configurable:true},isInitialized:{get(){return e.isInitialized},enumerable:true,configurable:true},isReady:{get(){return e.isReady},enumerable:true,configurable:true}}),n.whenReady=e.whenReady.bind(e),n.batch=e.batch.bind(e),n.onSettledChange=e.onSettledChange.bind(e),n.onHistoryChange=e.onHistoryChange.bind(e),n.inspect=e.inspect.bind(e),n.settle=e.settle.bind(e),n.explain=e.explain.bind(e),n.getSnapshot=e.getSnapshot.bind(e),n.restore=e.restore.bind(e),n.observe=e.observe.bind(e);let t=["dispatch","read","subscribe","watch","when","getDistributableSnapshot","watchDistributableSnapshot"];for(let o of t)o in n||(n[o]=e[o].bind(e));}function re(n){f&&process.env.NODE_ENV!=="test"&&setTimeout(()=>{!n.isRunning&&!n.isInitialized&&console.warn("[Directive] System created but start() was never called. Constraints, resolvers, and effects will not run until you call system.start().");},0);}function ke(n){let e=n.module;if(!e)throw new Error("[Directive] createSystem requires a module. Got: "+typeof e);if(n.tickMs!==void 0&&n.tickMs<=0)throw new Error("[Directive] tickMs must be a positive number");if(n.initialFacts&&!c(n.initialFacts))throw new Error("[Directive] initialFacts contains potentially dangerous keys (__proto__, constructor, or prototype). This may indicate a prototype pollution attack.");f&&(e.crossModuleDeps&&Object.keys(e.crossModuleDeps).length>0&&console.warn("[Directive] Single module mode ignores crossModuleDeps. Use multiple modules if cross-module access is needed: createSystem({ modules: { ... } })"),n.tickMs&&n.tickMs>0&&(e.events&&"tick"in e.events||console.warn(`[Directive] tickMs is set to ${n.tickMs}ms but module has no "tick" event handler.`)),(typeof n.history=="object"?n.history:null)?.snapshotModules&&console.warn("[Directive] history.snapshotModules has no effect in single-module mode. Use history.snapshotEvents on the module definition instead, or switch to createSystem({ modules: { ... } }) for multi-module filtering."));let{history:t,trace:o,errorBoundary:r}=ne(n),a=null,c$1=null;c$1=z$1({modules:[{id:e.id,schema:e.schema.facts,requirements:e.schema.requirements,init:e.init,derive:e.derive,events:e.events,effects:e.effects,constraints:e.constraints,resolvers:e.resolvers,hooks:e.hooks,meta:e.meta,history:e.history}],plugins:n.plugins,history:t,trace:o,errorBoundary:r,tickMs:n.tickMs,cloud:n.cloud,onAfterModuleInit:()=>{if(n.initialFacts)for(let[d,m]of Object.entries(n.initialFacts))l.has(d)||(c$1.facts[d]=m);if(a){if(!c(a))f&&console.warn("[Directive] hydrate() data contains potentially dangerous keys. Skipping.");else for(let[d,m]of Object.entries(a))l.has(d)||(c$1.facts[d]=m);a=null;}}});let f$1=new Proxy({},{get(d,m){if(typeof m!="symbol"&&!l.has(m))return R=>{c$1.dispatch({type:m,...R});}},has(d,m){return typeof m=="symbol"||l.has(m)?false:e.events?m in e.events:false},ownKeys(){return e.events?Object.keys(e.events):[]},getOwnPropertyDescriptor(d,m){if(typeof m!="symbol"&&!l.has(m)&&e.events&&m in e.events)return {configurable:true,enumerable:true}},set(){return false},deleteProperty(){return false},defineProperty(){return false},getPrototypeOf(){return null},setPrototypeOf(){return false}}),i=null,w=n.tickMs,g={_mode:"single",facts:c$1.facts,history:c$1.history,derive:c$1.derive,events:f$1,constraints:c$1.constraints,effects:c$1.effects,resolvers:c$1.resolvers,async hydrate(d){if(c$1.isRunning)throw new Error("[Directive] hydrate() must be called before start(). The system is already running.");let m=await d();m&&typeof m=="object"&&(a=m);},initialize(){c$1.initialize();},start(){c$1.start(),w&&w>0&&e.events&&"tick"in e.events&&(i=setInterval(()=>{c$1.dispatch({type:"tick"});},w));},stop(){i&&(clearInterval(i),i=null),c$1.stop();},destroy(){this.stop(),c$1.destroy();},registerModule(d){c$1.registerModule({id:d.id,schema:d.schema.facts,requirements:d.schema.requirements,init:d.init,derive:d.derive,events:d.events,effects:d.effects,constraints:d.constraints,resolvers:d.resolvers,hooks:d.hooks,history:d.history});}};return te(g,c$1),re(g),g}export{Ee as a};//# sourceMappingURL=chunk-LFMRWCIG.js.map
16
+ //# sourceMappingURL=chunk-LFMRWCIG.js.map