@directive-run/core 1.0.0 → 1.0.1

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.cjs +1 -1
  2. package/dist/adapter-utils.js +1 -1
  3. package/dist/chunk-4AN3P4W5.cjs +3 -0
  4. package/dist/chunk-4AN3P4W5.cjs.map +1 -0
  5. package/dist/chunk-GSXCAMNZ.js +2 -0
  6. package/dist/chunk-GSXCAMNZ.js.map +1 -0
  7. package/dist/{chunk-MPOV2REO.js → chunk-MXIBBD7Z.js} +3 -3
  8. package/dist/{chunk-MPOV2REO.js.map → chunk-MXIBBD7Z.js.map} +1 -1
  9. package/dist/chunk-PUZVNO5U.js +3 -0
  10. package/dist/chunk-PUZVNO5U.js.map +1 -0
  11. package/dist/{chunk-3H24Z7WM.cjs → chunk-SLHKLDQR.cjs} +3 -3
  12. package/dist/{chunk-3H24Z7WM.cjs.map → chunk-SLHKLDQR.cjs.map} +1 -1
  13. package/dist/chunk-WFIJ6OST.cjs +2 -0
  14. package/dist/chunk-WFIJ6OST.cjs.map +1 -0
  15. package/dist/{helpers-CU3Il0tz.d.cts → helpers-Akay-GZq.d.cts} +1 -7
  16. package/dist/{helpers-Bd_P3ZTY.d.ts → helpers-CDNl3Rd2.d.ts} +1 -7
  17. package/dist/index.cjs +1 -1
  18. package/dist/index.d.cts +1 -2
  19. package/dist/index.d.ts +1 -2
  20. package/dist/index.js +1 -1
  21. package/dist/internals.cjs +1 -1
  22. package/dist/internals.d.cts +9 -11
  23. package/dist/internals.d.ts +9 -11
  24. package/dist/internals.js +1 -1
  25. package/dist/system-CWUYJT43.cjs +2 -0
  26. package/dist/{system-QQYBNE7A.cjs.map → system-CWUYJT43.cjs.map} +1 -1
  27. package/dist/system-TM7ZQZYW.js +2 -0
  28. package/dist/{system-AGVKMAYF.js.map → system-TM7ZQZYW.js.map} +1 -1
  29. package/dist/testing.cjs +1 -1
  30. package/dist/testing.js +1 -1
  31. package/dist/worker.cjs +1 -1
  32. package/dist/worker.js +1 -1
  33. package/package.json +1 -1
  34. package/dist/chunk-AUSBUCOL.cjs +0 -3
  35. package/dist/chunk-AUSBUCOL.cjs.map +0 -1
  36. package/dist/chunk-EFBBEXDA.js +0 -2
  37. package/dist/chunk-EFBBEXDA.js.map +0 -1
  38. package/dist/chunk-ER6QUYTL.cjs +0 -2
  39. package/dist/chunk-ER6QUYTL.cjs.map +0 -1
  40. package/dist/chunk-YWKFNZQV.js +0 -3
  41. package/dist/chunk-YWKFNZQV.js.map +0 -1
  42. package/dist/system-AGVKMAYF.js +0 -2
  43. package/dist/system-QQYBNE7A.cjs +0 -2
@@ -4,12 +4,6 @@ import { W as Schema, F as Facts, D as DefinitionMeta, o as Requirement, aX as R
4
4
  * Derivation Types - Type definitions for derivations
5
5
  */
6
6
 
7
- /** Tracking context for auto-dependency detection */
8
- interface TrackingContext {
9
- readonly isTracking: boolean;
10
- track(key: string): void;
11
- getDependencies(): Set<string>;
12
- }
13
7
  /** Derivation definition function signature. */
14
8
  interface DerivationDef<S extends Schema, T, D extends DerivationsDef<S>> {
15
9
  (facts: Facts<S>, derived: DerivedValues<S, D>): T;
@@ -228,4 +222,4 @@ declare function typedConstraint<S extends Schema, R extends Requirement = Requi
228
222
  */
229
223
  declare function typedResolver<S extends Schema, R extends Requirement = Requirement>(resolver: TypedResolver<S, R>): TypedResolver<S, R>;
230
224
 
231
- export { type DerivationDefWithMeta as D, type TrackingContext as T, typedResolver as a, type DerivationsDef as b, type DerivedValues as c, type DerivationState as d, type TypedConstraint as e, type TypedResolver as f, createConstraintFactory as g, createResolverFactory as h, typedConstraint as t };
225
+ export { type DerivationDefWithMeta as D, type TypedConstraint as T, typedResolver as a, type DerivationsDef as b, type DerivedValues as c, type DerivationState as d, type TypedResolver as e, createConstraintFactory as f, createResolverFactory as g, typedConstraint as t };
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- 'use strict';var chunk3H24Z7WM_cjs=require('./chunk-3H24Z7WM.cjs'),chunkAUSBUCOL_cjs=require('./chunk-AUSBUCOL.cjs');require('./chunk-ER6QUYTL.cjs');var chunkBEJ6ICA7_cjs=require('./chunk-BEJ6ICA7.cjs');function g(e=[],n,r,s,i,l,u){return {_type:void 0,_validators:e,_typeName:n,_default:r,_transform:s,_description:i,_refinements:l,_meta:u,validate(p){return g([...e,p],n,r,s,i,l,u)}}}function c(e,n,r,s,i,l,u){return {...g(e,n,r,s,i,l,u),default(t){return c(e,n,t,s,i,l,u)},transform(t){return c([],n,void 0,o=>{let d=s?s(o):o;return t(d)},i,void 0,u)},brand(){return c(e,`Branded<${n}>`,r,s,i,l,u)},describe(t){return c(e,n,r,s,t,l,u)},refine(t,a){let o=[...l??[],{predicate:t,message:a}];return c([...e,t],n,r,s,i,o,u)},nullable(){return c([t=>t===null||e.every(a=>a(t))],`${n} | null`,r,s,i,void 0,u)},optional(){return c([t=>t===void 0||e.every(a=>a(t))],`${n} | undefined`,r,s,i,void 0,u)},meta(t){return c(e,n,r,s,i,l,t)}}}var $={string(){let e=(n,r,s,i,l,u)=>({...c(n,"string",r,s,i,l,u),minLength(t){return e([...n,a=>a.length>=t],r,s,i,l,u)},maxLength(t){return e([...n,a=>a.length<=t],r,s,i,l,u)},pattern(t){return e([...n,a=>t.test(a)],r,s,i,l,u)},default(t){return e(n,t,s,i,l,u)},describe(t){return e(n,r,s,t,l,u)},refine(t,a){let o=[...l??[],{predicate:t,message:a}];return e([...n,t],r,s,i,o,u)},meta(t){return e(n,r,s,i,l,t)}});return e([n=>typeof n=="string"])},number(){let e=(n,r,s,i,l,u)=>({...c(n,"number",r,s,i,l,u),min(t){return e([...n,a=>a>=t],r,s,i,l,u)},max(t){return e([...n,a=>a<=t],r,s,i,l,u)},default(t){return e(n,t,s,i,l,u)},describe(t){return e(n,r,s,t,l,u)},refine(t,a){let o=[...l??[],{predicate:t,message:a}];return e([...n,t],r,s,i,o,u)},meta(t){return e(n,r,s,i,l,t)}});return e([n=>typeof n=="number"])},boolean(){return c([e=>typeof e=="boolean"],"boolean")},array(){let e=(n,r,s,i,l,u)=>{let p=c(n,"array",s,void 0,i,void 0,u),t=l??{value:-1};return {...p,get _lastFailedIndex(){return t.value},set _lastFailedIndex(o){t.value=o;},of(o){let d={value:-1};return e([...n,y=>{for(let m=0;m<y.length;m++)if(!o._validators.every(S=>S(y[m])))return d.value=m,false;return true}],o,s,i,d,u)},nonEmpty(){return e([...n,o=>o.length>0],r,s,i,t,u)},maxLength(o){return e([...n,d=>d.length<=o],r,s,i,t,u)},minLength(o){return e([...n,d=>d.length>=o],r,s,i,t,u)},default(o){return e(n,r,o,i,t,u)},describe(o){return e(n,r,s,o,t,u)},meta(o){return e(n,r,s,i,t,o)}}};return e([n=>Array.isArray(n)])},object(){let e=(n,r,s,i)=>({...c(n,"object",r,void 0,s,void 0,i),shape(u){return e([...n,p=>{for(let[t,a]of Object.entries(u)){let o=p[t],d=a;if(d&&!d._validators.every(y=>y(o)))return false}return true}],r,s,i)},nonNull(){return e([...n,u=>u!=null],r,s,i)},hasKeys(...u){return e([...n,p=>u.every(t=>t in p)],r,s,i)},default(u){return e(n,u,s,i)},describe(u){return e(n,r,u,i)},meta(u){return e(n,r,s,u)}});return e([n=>typeof n=="object"&&n!==null&&!Array.isArray(n)])},enum(...e){process.env.NODE_ENV!=="production"&&e.length===0&&console.warn("[Directive] t.enum() called with no values - this will reject all strings");let n=new Set(e);return c([r=>typeof r=="string"&&n.has(r)],`enum(${e.join("|")})`)},literal(e){return c([n=>n===e],`literal(${String(e)})`)},nullable(e){let n=e._typeName??"unknown";return g([r=>r===null?true:e._validators.every(s=>s(r))],`${n} | null`)},optional(e){let n=e._typeName??"unknown";return g([r=>r===void 0?true:e._validators.every(s=>s(r))],`${n} | undefined`)},union(...e){process.env.NODE_ENV!=="production"&&e.length===0&&console.warn("[Directive] t.union() called with no types - this will reject all values");let n=e.map(r=>r._typeName??"unknown");return c([r=>e.some(s=>s._validators.every(i=>i(r)))],n.join(" | "))},record(e){let n=e._typeName??"unknown";return c([r=>typeof r!="object"||r===null||Array.isArray(r)?false:Object.values(r).every(s=>e._validators.every(i=>i(s)))],`Record<string, ${n}>`)},tuple(...e){process.env.NODE_ENV!=="production"&&e.length===0&&console.warn("[Directive] t.tuple() called with no types - this will only accept empty arrays");let n=e.map(r=>r._typeName??"unknown");return c([r=>!Array.isArray(r)||r.length!==e.length?false:e.every((s,i)=>s._validators.every(l=>l(r[i])))],`[${n.join(", ")}]`)},date(){return c([e=>e instanceof Date&&!Number.isNaN(e.getTime())],"Date")},uuid(){let e=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;return c([n=>typeof n=="string"&&e.test(n)],"uuid")},email(){let e=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;return c([n=>typeof n=="string"&&e.test(n)],"email")},url(){return c([e=>{if(typeof e!="string")return false;try{return new URL(e),!0}catch{return false}}],"url")},bigint(){return c([e=>typeof e=="bigint"],"bigint")},any(){return c([],"any")},unknown(){return c([],"unknown")}};function W(e){if(!e||typeof e!="string"){console.warn("[Directive] Module ID must be a non-empty string");return}/^(__[a-z][a-z0-9_-]*|[a-z][a-z0-9-]*)$/i.test(e)||console.warn(`[Directive] Module ID "${e}" should follow kebab-case convention (e.g., "my-module")`);}function f(e,n,r,s,i){for(let l of e)n.has(l)||console.warn(`[Directive] ${r} "${l}" not declared in ${s}`);for(let l of n)e.has(l)||console.warn(`[Directive] ${s}["${l}"] ${i}`);}function P(e,n){e.length===0&&console.warn("[Directive] history.snapshotEvents is an empty array \u2014 no events will create history snapshots. Omit history.snapshotEvents entirely to snapshot all events, or list specific events.");let r=new Set(Object.keys(n));for(let s of e)r.has(s)||console.warn(`[Directive] history.snapshotEvents entry "${s}" not declared in schema.events. Available events: ${[...r].join(", ")||"(none)"}`);}function F(e,n){let r=new Set(Object.keys(n));for(let[s,i]of Object.entries(e)){let l=i;typeof l.requirement=="string"&&!r.has(l.requirement)&&console.warn(`[Directive] Resolver "${s}" references unknown requirement type "${l.requirement}". Available types: ${[...r].join(", ")||"(none)"}`);}}function U(e,n){W(e),n.schema?n.schema.facts||console.warn("[Directive] Module schema.facts is required"):console.warn("[Directive] Module schema is required"),f(new Set(Object.keys(n.derive??{})),new Set(Object.keys(n.schema?.derivations??{})),"Derivation","schema.derivations","has no matching implementation in derive"),f(new Set(Object.keys(n.events??{})),new Set(Object.keys(n.schema?.events??{})),"Event","schema.events","has no matching handler in events"),n.history?.snapshotEvents&&P(n.history.snapshotEvents,n.schema?.events??{}),n.resolvers&&n.schema?.requirements&&F(n.resolvers,n.schema.requirements);}function M(e,n){process.env.NODE_ENV!=="production"&&U(e,n);let r="crossModuleDeps"in n?n.crossModuleDeps:void 0;return {id:e,schema:n.schema,init:n.init,derive:n.derive??{},events:n.events??{},effects:n.effects,constraints:n.constraints,resolvers:n.resolvers,hooks:n.hooks,meta:n.meta,history:n.history,crossModuleDeps:r}}function z(e){return n=>M(n,e)}function T(){let e={pending:new Map,inflight:new Map,failed:new Map,errors:new Map,listeners:new Set};function n(){for(let t of e.listeners)t();}function r(t,a){let o=t.get(a);return o||(o=new Set,t.set(a,o)),o}function s(t){let a=e.pending.get(t)??new Set,o=e.inflight.get(t)??new Set,d=e.failed.get(t)??new Set,y=e.errors.get(t)??null;return {pending:a.size,inflight:o.size,failed:d.size,isLoading:a.size>0||o.size>0,hasError:d.size>0,lastError:y}}function i(){let t=new Set([...e.pending.keys(),...e.inflight.keys(),...e.failed.keys()]),a=new Map;for(let o of t)a.set(o,s(o));return a}function l(t){return e.listeners.add(t),()=>e.listeners.delete(t)}function u(){e.pending.clear(),e.inflight.clear(),e.failed.clear(),e.errors.clear(),n();}return {plugin:{name:"requirement-status",onRequirementCreated(t){let a=t.requirement.type;r(e.pending,a).add(t.id),e.failed.get(a)?.delete(t.id),n();},onResolverStart(t,a){let o=a.requirement.type;e.pending.get(o)?.delete(a.id),r(e.inflight,o).add(a.id),n();},onResolverComplete(t,a){let o=a.requirement.type;e.inflight.get(o)?.delete(a.id),e.pending.get(o)?.delete(a.id),n();},onResolverError(t,a,o){let d=a.requirement.type;e.inflight.get(d)?.delete(a.id),r(e.failed,d).add(a.id),e.errors.set(d,o instanceof Error?o:new Error(String(o))),n();},onResolverCancel(t,a){let o=a.requirement.type;e.pending.get(o)?.delete(a.id),e.inflight.get(o)?.delete(a.id),n();},onRequirementMet(t){let a=t.requirement.type;e.pending.get(a)?.delete(t.id),e.inflight.get(a)?.delete(t.id),n();}},getStatus:s,getAllStatus:i,subscribe:l,reset:u}}function L(e){return n=>e.getStatus(n)}function H(e){let n=T(),s=[...e.plugins??[],n.plugin];return {system:chunk3H24Z7WM_cjs.a({module:e.module,plugins:s,trace:e.trace,errorBoundary:e.errorBoundary,tickMs:e.tickMs,zeroConfig:e.zeroConfig,initialFacts:e.initialFacts}),statusPlugin:n}}var Z={None:"none",Linear:"linear",Exponential:"exponential"};Object.defineProperty(exports,"createSystem",{enumerable:true,get:function(){return chunk3H24Z7WM_cjs.a}});Object.defineProperty(exports,"DirectiveError",{enumerable:true,get:function(){return chunkAUSBUCOL_cjs.b}});Object.defineProperty(exports,"RequirementSet",{enumerable:true,get:function(){return chunkAUSBUCOL_cjs.o}});Object.defineProperty(exports,"forType",{enumerable:true,get:function(){return chunkAUSBUCOL_cjs.n}});Object.defineProperty(exports,"generateRequirementId",{enumerable:true,get:function(){return chunkAUSBUCOL_cjs.k}});Object.defineProperty(exports,"isNamespacedSystem",{enumerable:true,get:function(){return chunkAUSBUCOL_cjs.h}});Object.defineProperty(exports,"isRequirementType",{enumerable:true,get:function(){return chunkAUSBUCOL_cjs.m}});Object.defineProperty(exports,"isSingleModuleSystem",{enumerable:true,get:function(){return chunkAUSBUCOL_cjs.g}});Object.defineProperty(exports,"req",{enumerable:true,get:function(){return chunkAUSBUCOL_cjs.l}});Object.defineProperty(exports,"typedConstraint",{enumerable:true,get:function(){return chunkAUSBUCOL_cjs.e}});Object.defineProperty(exports,"typedResolver",{enumerable:true,get:function(){return chunkAUSBUCOL_cjs.f}});Object.defineProperty(exports,"diffSnapshots",{enumerable:true,get:function(){return chunkBEJ6ICA7_cjs.h}});Object.defineProperty(exports,"isSignedSnapshot",{enumerable:true,get:function(){return chunkBEJ6ICA7_cjs.i}});Object.defineProperty(exports,"isSnapshotExpired",{enumerable:true,get:function(){return chunkBEJ6ICA7_cjs.f}});Object.defineProperty(exports,"shallowEqual",{enumerable:true,get:function(){return chunkBEJ6ICA7_cjs.d}});Object.defineProperty(exports,"signSnapshot",{enumerable:true,get:function(){return chunkBEJ6ICA7_cjs.j}});Object.defineProperty(exports,"validateSnapshot",{enumerable:true,get:function(){return chunkBEJ6ICA7_cjs.g}});Object.defineProperty(exports,"verifySnapshotSignature",{enumerable:true,get:function(){return chunkBEJ6ICA7_cjs.k}});exports.Backoff=Z;exports.createModule=M;exports.createModuleFactory=z;exports.createRequirementStatusPlugin=T;exports.createStatusHook=L;exports.createSystemWithStatus=H;exports.t=$;//# sourceMappingURL=index.cjs.map
1
+ 'use strict';var chunkSLHKLDQR_cjs=require('./chunk-SLHKLDQR.cjs'),chunk4AN3P4W5_cjs=require('./chunk-4AN3P4W5.cjs');require('./chunk-WFIJ6OST.cjs');var chunkBEJ6ICA7_cjs=require('./chunk-BEJ6ICA7.cjs');function g(e=[],n,r,s,i,l,u){return {_type:void 0,_validators:e,_typeName:n,_default:r,_transform:s,_description:i,_refinements:l,_meta:u,validate(p){return g([...e,p],n,r,s,i,l,u)}}}function c(e,n,r,s,i,l,u){return {...g(e,n,r,s,i,l,u),default(t){return c(e,n,t,s,i,l,u)},transform(t){return c([],n,void 0,o=>{let d=s?s(o):o;return t(d)},i,void 0,u)},brand(){return c(e,`Branded<${n}>`,r,s,i,l,u)},describe(t){return c(e,n,r,s,t,l,u)},refine(t,a){let o=[...l??[],{predicate:t,message:a}];return c([...e,t],n,r,s,i,o,u)},nullable(){return c([t=>t===null||e.every(a=>a(t))],`${n} | null`,r,s,i,void 0,u)},optional(){return c([t=>t===void 0||e.every(a=>a(t))],`${n} | undefined`,r,s,i,void 0,u)},meta(t){return c(e,n,r,s,i,l,t)}}}var $={string(){let e=(n,r,s,i,l,u)=>({...c(n,"string",r,s,i,l,u),minLength(t){return e([...n,a=>a.length>=t],r,s,i,l,u)},maxLength(t){return e([...n,a=>a.length<=t],r,s,i,l,u)},pattern(t){return e([...n,a=>t.test(a)],r,s,i,l,u)},default(t){return e(n,t,s,i,l,u)},describe(t){return e(n,r,s,t,l,u)},refine(t,a){let o=[...l??[],{predicate:t,message:a}];return e([...n,t],r,s,i,o,u)},meta(t){return e(n,r,s,i,l,t)}});return e([n=>typeof n=="string"])},number(){let e=(n,r,s,i,l,u)=>({...c(n,"number",r,s,i,l,u),min(t){return e([...n,a=>a>=t],r,s,i,l,u)},max(t){return e([...n,a=>a<=t],r,s,i,l,u)},default(t){return e(n,t,s,i,l,u)},describe(t){return e(n,r,s,t,l,u)},refine(t,a){let o=[...l??[],{predicate:t,message:a}];return e([...n,t],r,s,i,o,u)},meta(t){return e(n,r,s,i,l,t)}});return e([n=>typeof n=="number"])},boolean(){return c([e=>typeof e=="boolean"],"boolean")},array(){let e=(n,r,s,i,l,u)=>{let p=c(n,"array",s,void 0,i,void 0,u),t=l??{value:-1};return {...p,get _lastFailedIndex(){return t.value},set _lastFailedIndex(o){t.value=o;},of(o){let d={value:-1};return e([...n,y=>{for(let m=0;m<y.length;m++)if(!o._validators.every(S=>S(y[m])))return d.value=m,false;return true}],o,s,i,d,u)},nonEmpty(){return e([...n,o=>o.length>0],r,s,i,t,u)},maxLength(o){return e([...n,d=>d.length<=o],r,s,i,t,u)},minLength(o){return e([...n,d=>d.length>=o],r,s,i,t,u)},default(o){return e(n,r,o,i,t,u)},describe(o){return e(n,r,s,o,t,u)},meta(o){return e(n,r,s,i,t,o)}}};return e([n=>Array.isArray(n)])},object(){let e=(n,r,s,i)=>({...c(n,"object",r,void 0,s,void 0,i),shape(u){return e([...n,p=>{for(let[t,a]of Object.entries(u)){let o=p[t],d=a;if(d&&!d._validators.every(y=>y(o)))return false}return true}],r,s,i)},nonNull(){return e([...n,u=>u!=null],r,s,i)},hasKeys(...u){return e([...n,p=>u.every(t=>t in p)],r,s,i)},default(u){return e(n,u,s,i)},describe(u){return e(n,r,u,i)},meta(u){return e(n,r,s,u)}});return e([n=>typeof n=="object"&&n!==null&&!Array.isArray(n)])},enum(...e){process.env.NODE_ENV!=="production"&&e.length===0&&console.warn("[Directive] t.enum() called with no values - this will reject all strings");let n=new Set(e);return c([r=>typeof r=="string"&&n.has(r)],`enum(${e.join("|")})`)},literal(e){return c([n=>n===e],`literal(${String(e)})`)},nullable(e){let n=e._typeName??"unknown";return g([r=>r===null?true:e._validators.every(s=>s(r))],`${n} | null`)},optional(e){let n=e._typeName??"unknown";return g([r=>r===void 0?true:e._validators.every(s=>s(r))],`${n} | undefined`)},union(...e){process.env.NODE_ENV!=="production"&&e.length===0&&console.warn("[Directive] t.union() called with no types - this will reject all values");let n=e.map(r=>r._typeName??"unknown");return c([r=>e.some(s=>s._validators.every(i=>i(r)))],n.join(" | "))},record(e){let n=e._typeName??"unknown";return c([r=>typeof r!="object"||r===null||Array.isArray(r)?false:Object.values(r).every(s=>e._validators.every(i=>i(s)))],`Record<string, ${n}>`)},tuple(...e){process.env.NODE_ENV!=="production"&&e.length===0&&console.warn("[Directive] t.tuple() called with no types - this will only accept empty arrays");let n=e.map(r=>r._typeName??"unknown");return c([r=>!Array.isArray(r)||r.length!==e.length?false:e.every((s,i)=>s._validators.every(l=>l(r[i])))],`[${n.join(", ")}]`)},date(){return c([e=>e instanceof Date&&!Number.isNaN(e.getTime())],"Date")},uuid(){let e=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;return c([n=>typeof n=="string"&&e.test(n)],"uuid")},email(){let e=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;return c([n=>typeof n=="string"&&e.test(n)],"email")},url(){return c([e=>{if(typeof e!="string")return false;try{return new URL(e),!0}catch{return false}}],"url")},bigint(){return c([e=>typeof e=="bigint"],"bigint")},any(){return c([],"any")},unknown(){return c([],"unknown")}};function W(e){if(!e||typeof e!="string"){console.warn("[Directive] Module ID must be a non-empty string");return}/^(__[a-z][a-z0-9_-]*|[a-z][a-z0-9-]*)$/i.test(e)||console.warn(`[Directive] Module ID "${e}" should follow kebab-case convention (e.g., "my-module")`);}function f(e,n,r,s,i){for(let l of e)n.has(l)||console.warn(`[Directive] ${r} "${l}" not declared in ${s}`);for(let l of n)e.has(l)||console.warn(`[Directive] ${s}["${l}"] ${i}`);}function P(e,n){e.length===0&&console.warn("[Directive] history.snapshotEvents is an empty array \u2014 no events will create history snapshots. Omit history.snapshotEvents entirely to snapshot all events, or list specific events.");let r=new Set(Object.keys(n));for(let s of e)r.has(s)||console.warn(`[Directive] history.snapshotEvents entry "${s}" not declared in schema.events. Available events: ${[...r].join(", ")||"(none)"}`);}function F(e,n){let r=new Set(Object.keys(n));for(let[s,i]of Object.entries(e)){let l=i;typeof l.requirement=="string"&&!r.has(l.requirement)&&console.warn(`[Directive] Resolver "${s}" references unknown requirement type "${l.requirement}". Available types: ${[...r].join(", ")||"(none)"}`);}}function U(e,n){W(e),n.schema?n.schema.facts||console.warn("[Directive] Module schema.facts is required"):console.warn("[Directive] Module schema is required"),f(new Set(Object.keys(n.derive??{})),new Set(Object.keys(n.schema?.derivations??{})),"Derivation","schema.derivations","has no matching implementation in derive"),f(new Set(Object.keys(n.events??{})),new Set(Object.keys(n.schema?.events??{})),"Event","schema.events","has no matching handler in events"),n.history?.snapshotEvents&&P(n.history.snapshotEvents,n.schema?.events??{}),n.resolvers&&n.schema?.requirements&&F(n.resolvers,n.schema.requirements);}function M(e,n){process.env.NODE_ENV!=="production"&&U(e,n);let r="crossModuleDeps"in n?n.crossModuleDeps:void 0;return {id:e,schema:n.schema,init:n.init,derive:n.derive??{},events:n.events??{},effects:n.effects,constraints:n.constraints,resolvers:n.resolvers,hooks:n.hooks,meta:n.meta,history:n.history,crossModuleDeps:r}}function z(e){return n=>M(n,e)}function T(){let e={pending:new Map,inflight:new Map,failed:new Map,errors:new Map,listeners:new Set};function n(){for(let t of e.listeners)t();}function r(t,a){let o=t.get(a);return o||(o=new Set,t.set(a,o)),o}function s(t){let a=e.pending.get(t)??new Set,o=e.inflight.get(t)??new Set,d=e.failed.get(t)??new Set,y=e.errors.get(t)??null;return {pending:a.size,inflight:o.size,failed:d.size,isLoading:a.size>0||o.size>0,hasError:d.size>0,lastError:y}}function i(){let t=new Set([...e.pending.keys(),...e.inflight.keys(),...e.failed.keys()]),a=new Map;for(let o of t)a.set(o,s(o));return a}function l(t){return e.listeners.add(t),()=>e.listeners.delete(t)}function u(){e.pending.clear(),e.inflight.clear(),e.failed.clear(),e.errors.clear(),n();}return {plugin:{name:"requirement-status",onRequirementCreated(t){let a=t.requirement.type;r(e.pending,a).add(t.id),e.failed.get(a)?.delete(t.id),n();},onResolverStart(t,a){let o=a.requirement.type;e.pending.get(o)?.delete(a.id),r(e.inflight,o).add(a.id),n();},onResolverComplete(t,a){let o=a.requirement.type;e.inflight.get(o)?.delete(a.id),e.pending.get(o)?.delete(a.id),n();},onResolverError(t,a,o){let d=a.requirement.type;e.inflight.get(d)?.delete(a.id),r(e.failed,d).add(a.id),e.errors.set(d,o instanceof Error?o:new Error(String(o))),n();},onResolverCancel(t,a){let o=a.requirement.type;e.pending.get(o)?.delete(a.id),e.inflight.get(o)?.delete(a.id),n();},onRequirementMet(t){let a=t.requirement.type;e.pending.get(a)?.delete(t.id),e.inflight.get(a)?.delete(t.id),n();}},getStatus:s,getAllStatus:i,subscribe:l,reset:u}}function L(e){return n=>e.getStatus(n)}function H(e){let n=T(),s=[...e.plugins??[],n.plugin];return {system:chunkSLHKLDQR_cjs.a({module:e.module,plugins:s,trace:e.trace,errorBoundary:e.errorBoundary,tickMs:e.tickMs,zeroConfig:e.zeroConfig,initialFacts:e.initialFacts}),statusPlugin:n}}var Z={None:"none",Linear:"linear",Exponential:"exponential"};Object.defineProperty(exports,"createSystem",{enumerable:true,get:function(){return chunkSLHKLDQR_cjs.a}});Object.defineProperty(exports,"DirectiveError",{enumerable:true,get:function(){return chunk4AN3P4W5_cjs.b}});Object.defineProperty(exports,"RequirementSet",{enumerable:true,get:function(){return chunk4AN3P4W5_cjs.o}});Object.defineProperty(exports,"forType",{enumerable:true,get:function(){return chunk4AN3P4W5_cjs.n}});Object.defineProperty(exports,"generateRequirementId",{enumerable:true,get:function(){return chunk4AN3P4W5_cjs.k}});Object.defineProperty(exports,"isNamespacedSystem",{enumerable:true,get:function(){return chunk4AN3P4W5_cjs.h}});Object.defineProperty(exports,"isRequirementType",{enumerable:true,get:function(){return chunk4AN3P4W5_cjs.m}});Object.defineProperty(exports,"isSingleModuleSystem",{enumerable:true,get:function(){return chunk4AN3P4W5_cjs.g}});Object.defineProperty(exports,"req",{enumerable:true,get:function(){return chunk4AN3P4W5_cjs.l}});Object.defineProperty(exports,"typedConstraint",{enumerable:true,get:function(){return chunk4AN3P4W5_cjs.e}});Object.defineProperty(exports,"typedResolver",{enumerable:true,get:function(){return chunk4AN3P4W5_cjs.f}});Object.defineProperty(exports,"diffSnapshots",{enumerable:true,get:function(){return chunkBEJ6ICA7_cjs.h}});Object.defineProperty(exports,"isSignedSnapshot",{enumerable:true,get:function(){return chunkBEJ6ICA7_cjs.i}});Object.defineProperty(exports,"isSnapshotExpired",{enumerable:true,get:function(){return chunkBEJ6ICA7_cjs.f}});Object.defineProperty(exports,"shallowEqual",{enumerable:true,get:function(){return chunkBEJ6ICA7_cjs.d}});Object.defineProperty(exports,"signSnapshot",{enumerable:true,get:function(){return chunkBEJ6ICA7_cjs.j}});Object.defineProperty(exports,"validateSnapshot",{enumerable:true,get:function(){return chunkBEJ6ICA7_cjs.g}});Object.defineProperty(exports,"verifySnapshotSignature",{enumerable:true,get:function(){return chunkBEJ6ICA7_cjs.k}});exports.Backoff=Z;exports.createModule=M;exports.createModuleFactory=z;exports.createRequirementStatusPlugin=T;exports.createStatusHook=L;exports.createSystemWithStatus=H;exports.t=$;//# sourceMappingURL=index.cjs.map
2
2
  //# sourceMappingURL=index.cjs.map
package/dist/index.d.cts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { S as SchemaType, D as DefinitionMeta, M as ModuleSchema, F as Facts, T as TypedDerivationsDef, a as TypedEventsDef, E as EffectsDef, b as TypedConstraintsDef, c as TypedResolversDef, d as ModuleHooks, C as CrossModuleDeps, e as CrossModuleDerivationsDef, f as CrossModuleEffectsDef, g as CrossModuleConstraintsDef, h as ModuleDef, i as CreateSystemOptionsSingle, j as SingleModuleSystem, k as ModulesMap, l as CreateSystemOptionsNamed, N as NamespacedSystem, P as Plugin, m as TraceOption, n as ErrorBoundaryConfig, R as RequirementWithId, o as Requirement, p as RequirementKeyFn } from './plugins-O-3VHejK.cjs';
2
2
  export { A as AnySystem, B as BatchConfig, q as DirectiveError, r as DistributableSnapshot, s as DistributableSnapshotOptions, t as DynamicConstraintDef, u as DynamicEffectDef, v as DynamicResolverDef, w as FactsSnapshot, H as HistoryAPI, x as HistoryOption, y as HistoryState, I as InferDerivations, z as InferEvents, G as InferFacts, J as InferRequirementTypes, K as InferRequirements, L as InferSchemaType, O as InferSelectorState, Q as MetaAccessor, U as MetaMatch, V as RetryPolicy, W as Schema, X as Snapshot, Y as System, Z as SystemConfig, _ as SystemInspection, $ as SystemMode, a0 as SystemSnapshot, a1 as TraceEntry, a2 as isNamespacedSystem, a3 as isSingleModuleSystem } from './plugins-O-3VHejK.cjs';
3
- export { D as DerivationDefWithMeta, t as typedConstraint, a as typedResolver } from './helpers-CU3Il0tz.cjs';
3
+ export { D as DerivationDefWithMeta, t as typedConstraint, a as typedResolver } from './helpers-Akay-GZq.cjs';
4
4
  export { D as DistributableSnapshotLike, S as SignedSnapshot, a as SnapshotDiff, b as SnapshotDiffEntry, d as diffSnapshots, i as isSignedSnapshot, c as isSnapshotExpired, s as shallowEqual, e as signSnapshot, v as validateSnapshot, f as verifySnapshotSignature } from './utils-BnQajqPu.cjs';
5
5
 
6
6
  /** Brand symbol for branded types */
@@ -918,7 +918,6 @@ declare class RequirementSet {
918
918
  diff(other: RequirementSet): {
919
919
  added: RequirementWithId[];
920
920
  removed: RequirementWithId[];
921
- unchanged: RequirementWithId[];
922
921
  };
923
922
  }
924
923
 
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { S as SchemaType, D as DefinitionMeta, M as ModuleSchema, F as Facts, T as TypedDerivationsDef, a as TypedEventsDef, E as EffectsDef, b as TypedConstraintsDef, c as TypedResolversDef, d as ModuleHooks, C as CrossModuleDeps, e as CrossModuleDerivationsDef, f as CrossModuleEffectsDef, g as CrossModuleConstraintsDef, h as ModuleDef, i as CreateSystemOptionsSingle, j as SingleModuleSystem, k as ModulesMap, l as CreateSystemOptionsNamed, N as NamespacedSystem, P as Plugin, m as TraceOption, n as ErrorBoundaryConfig, R as RequirementWithId, o as Requirement, p as RequirementKeyFn } from './plugins-O-3VHejK.js';
2
2
  export { A as AnySystem, B as BatchConfig, q as DirectiveError, r as DistributableSnapshot, s as DistributableSnapshotOptions, t as DynamicConstraintDef, u as DynamicEffectDef, v as DynamicResolverDef, w as FactsSnapshot, H as HistoryAPI, x as HistoryOption, y as HistoryState, I as InferDerivations, z as InferEvents, G as InferFacts, J as InferRequirementTypes, K as InferRequirements, L as InferSchemaType, O as InferSelectorState, Q as MetaAccessor, U as MetaMatch, V as RetryPolicy, W as Schema, X as Snapshot, Y as System, Z as SystemConfig, _ as SystemInspection, $ as SystemMode, a0 as SystemSnapshot, a1 as TraceEntry, a2 as isNamespacedSystem, a3 as isSingleModuleSystem } from './plugins-O-3VHejK.js';
3
- export { D as DerivationDefWithMeta, t as typedConstraint, a as typedResolver } from './helpers-Bd_P3ZTY.js';
3
+ export { D as DerivationDefWithMeta, t as typedConstraint, a as typedResolver } from './helpers-CDNl3Rd2.js';
4
4
  export { D as DistributableSnapshotLike, S as SignedSnapshot, a as SnapshotDiff, b as SnapshotDiffEntry, d as diffSnapshots, i as isSignedSnapshot, c as isSnapshotExpired, s as shallowEqual, e as signSnapshot, v as validateSnapshot, f as verifySnapshotSignature } from './utils-BnQajqPu.js';
5
5
 
6
6
  /** Brand symbol for branded types */
@@ -918,7 +918,6 @@ declare class RequirementSet {
918
918
  diff(other: RequirementSet): {
919
919
  added: RequirementWithId[];
920
920
  removed: RequirementWithId[];
921
- unchanged: RequirementWithId[];
922
921
  };
923
922
  }
924
923
 
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import {a}from'./chunk-MPOV2REO.js';export{a as createSystem}from'./chunk-MPOV2REO.js';export{b as DirectiveError,o as RequirementSet,n as forType,k as generateRequirementId,h as isNamespacedSystem,m as isRequirementType,g as isSingleModuleSystem,l as req,e as typedConstraint,f as typedResolver}from'./chunk-YWKFNZQV.js';import'./chunk-EFBBEXDA.js';export{h as diffSnapshots,i as isSignedSnapshot,f as isSnapshotExpired,d as shallowEqual,j as signSnapshot,g as validateSnapshot,k as verifySnapshotSignature}from'./chunk-4CMO5OVZ.js';function g(e=[],n,r,s,i,l,u){return {_type:void 0,_validators:e,_typeName:n,_default:r,_transform:s,_description:i,_refinements:l,_meta:u,validate(p){return g([...e,p],n,r,s,i,l,u)}}}function c(e,n,r,s,i,l,u){return {...g(e,n,r,s,i,l,u),default(t){return c(e,n,t,s,i,l,u)},transform(t){return c([],n,void 0,o=>{let d=s?s(o):o;return t(d)},i,void 0,u)},brand(){return c(e,`Branded<${n}>`,r,s,i,l,u)},describe(t){return c(e,n,r,s,t,l,u)},refine(t,a){let o=[...l??[],{predicate:t,message:a}];return c([...e,t],n,r,s,i,o,u)},nullable(){return c([t=>t===null||e.every(a=>a(t))],`${n} | null`,r,s,i,void 0,u)},optional(){return c([t=>t===void 0||e.every(a=>a(t))],`${n} | undefined`,r,s,i,void 0,u)},meta(t){return c(e,n,r,s,i,l,t)}}}var $={string(){let e=(n,r,s,i,l,u)=>({...c(n,"string",r,s,i,l,u),minLength(t){return e([...n,a=>a.length>=t],r,s,i,l,u)},maxLength(t){return e([...n,a=>a.length<=t],r,s,i,l,u)},pattern(t){return e([...n,a=>t.test(a)],r,s,i,l,u)},default(t){return e(n,t,s,i,l,u)},describe(t){return e(n,r,s,t,l,u)},refine(t,a){let o=[...l??[],{predicate:t,message:a}];return e([...n,t],r,s,i,o,u)},meta(t){return e(n,r,s,i,l,t)}});return e([n=>typeof n=="string"])},number(){let e=(n,r,s,i,l,u)=>({...c(n,"number",r,s,i,l,u),min(t){return e([...n,a=>a>=t],r,s,i,l,u)},max(t){return e([...n,a=>a<=t],r,s,i,l,u)},default(t){return e(n,t,s,i,l,u)},describe(t){return e(n,r,s,t,l,u)},refine(t,a){let o=[...l??[],{predicate:t,message:a}];return e([...n,t],r,s,i,o,u)},meta(t){return e(n,r,s,i,l,t)}});return e([n=>typeof n=="number"])},boolean(){return c([e=>typeof e=="boolean"],"boolean")},array(){let e=(n,r,s,i,l,u)=>{let p=c(n,"array",s,void 0,i,void 0,u),t=l??{value:-1};return {...p,get _lastFailedIndex(){return t.value},set _lastFailedIndex(o){t.value=o;},of(o){let d={value:-1};return e([...n,y=>{for(let m=0;m<y.length;m++)if(!o._validators.every(S=>S(y[m])))return d.value=m,false;return true}],o,s,i,d,u)},nonEmpty(){return e([...n,o=>o.length>0],r,s,i,t,u)},maxLength(o){return e([...n,d=>d.length<=o],r,s,i,t,u)},minLength(o){return e([...n,d=>d.length>=o],r,s,i,t,u)},default(o){return e(n,r,o,i,t,u)},describe(o){return e(n,r,s,o,t,u)},meta(o){return e(n,r,s,i,t,o)}}};return e([n=>Array.isArray(n)])},object(){let e=(n,r,s,i)=>({...c(n,"object",r,void 0,s,void 0,i),shape(u){return e([...n,p=>{for(let[t,a]of Object.entries(u)){let o=p[t],d=a;if(d&&!d._validators.every(y=>y(o)))return false}return true}],r,s,i)},nonNull(){return e([...n,u=>u!=null],r,s,i)},hasKeys(...u){return e([...n,p=>u.every(t=>t in p)],r,s,i)},default(u){return e(n,u,s,i)},describe(u){return e(n,r,u,i)},meta(u){return e(n,r,s,u)}});return e([n=>typeof n=="object"&&n!==null&&!Array.isArray(n)])},enum(...e){process.env.NODE_ENV!=="production"&&e.length===0&&console.warn("[Directive] t.enum() called with no values - this will reject all strings");let n=new Set(e);return c([r=>typeof r=="string"&&n.has(r)],`enum(${e.join("|")})`)},literal(e){return c([n=>n===e],`literal(${String(e)})`)},nullable(e){let n=e._typeName??"unknown";return g([r=>r===null?true:e._validators.every(s=>s(r))],`${n} | null`)},optional(e){let n=e._typeName??"unknown";return g([r=>r===void 0?true:e._validators.every(s=>s(r))],`${n} | undefined`)},union(...e){process.env.NODE_ENV!=="production"&&e.length===0&&console.warn("[Directive] t.union() called with no types - this will reject all values");let n=e.map(r=>r._typeName??"unknown");return c([r=>e.some(s=>s._validators.every(i=>i(r)))],n.join(" | "))},record(e){let n=e._typeName??"unknown";return c([r=>typeof r!="object"||r===null||Array.isArray(r)?false:Object.values(r).every(s=>e._validators.every(i=>i(s)))],`Record<string, ${n}>`)},tuple(...e){process.env.NODE_ENV!=="production"&&e.length===0&&console.warn("[Directive] t.tuple() called with no types - this will only accept empty arrays");let n=e.map(r=>r._typeName??"unknown");return c([r=>!Array.isArray(r)||r.length!==e.length?false:e.every((s,i)=>s._validators.every(l=>l(r[i])))],`[${n.join(", ")}]`)},date(){return c([e=>e instanceof Date&&!Number.isNaN(e.getTime())],"Date")},uuid(){let e=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;return c([n=>typeof n=="string"&&e.test(n)],"uuid")},email(){let e=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;return c([n=>typeof n=="string"&&e.test(n)],"email")},url(){return c([e=>{if(typeof e!="string")return false;try{return new URL(e),!0}catch{return false}}],"url")},bigint(){return c([e=>typeof e=="bigint"],"bigint")},any(){return c([],"any")},unknown(){return c([],"unknown")}};function W(e){if(!e||typeof e!="string"){console.warn("[Directive] Module ID must be a non-empty string");return}/^(__[a-z][a-z0-9_-]*|[a-z][a-z0-9-]*)$/i.test(e)||console.warn(`[Directive] Module ID "${e}" should follow kebab-case convention (e.g., "my-module")`);}function f(e,n,r,s,i){for(let l of e)n.has(l)||console.warn(`[Directive] ${r} "${l}" not declared in ${s}`);for(let l of n)e.has(l)||console.warn(`[Directive] ${s}["${l}"] ${i}`);}function P(e,n){e.length===0&&console.warn("[Directive] history.snapshotEvents is an empty array \u2014 no events will create history snapshots. Omit history.snapshotEvents entirely to snapshot all events, or list specific events.");let r=new Set(Object.keys(n));for(let s of e)r.has(s)||console.warn(`[Directive] history.snapshotEvents entry "${s}" not declared in schema.events. Available events: ${[...r].join(", ")||"(none)"}`);}function F(e,n){let r=new Set(Object.keys(n));for(let[s,i]of Object.entries(e)){let l=i;typeof l.requirement=="string"&&!r.has(l.requirement)&&console.warn(`[Directive] Resolver "${s}" references unknown requirement type "${l.requirement}". Available types: ${[...r].join(", ")||"(none)"}`);}}function U(e,n){W(e),n.schema?n.schema.facts||console.warn("[Directive] Module schema.facts is required"):console.warn("[Directive] Module schema is required"),f(new Set(Object.keys(n.derive??{})),new Set(Object.keys(n.schema?.derivations??{})),"Derivation","schema.derivations","has no matching implementation in derive"),f(new Set(Object.keys(n.events??{})),new Set(Object.keys(n.schema?.events??{})),"Event","schema.events","has no matching handler in events"),n.history?.snapshotEvents&&P(n.history.snapshotEvents,n.schema?.events??{}),n.resolvers&&n.schema?.requirements&&F(n.resolvers,n.schema.requirements);}function M(e,n){process.env.NODE_ENV!=="production"&&U(e,n);let r="crossModuleDeps"in n?n.crossModuleDeps:void 0;return {id:e,schema:n.schema,init:n.init,derive:n.derive??{},events:n.events??{},effects:n.effects,constraints:n.constraints,resolvers:n.resolvers,hooks:n.hooks,meta:n.meta,history:n.history,crossModuleDeps:r}}function z(e){return n=>M(n,e)}function T(){let e={pending:new Map,inflight:new Map,failed:new Map,errors:new Map,listeners:new Set};function n(){for(let t of e.listeners)t();}function r(t,a){let o=t.get(a);return o||(o=new Set,t.set(a,o)),o}function s(t){let a=e.pending.get(t)??new Set,o=e.inflight.get(t)??new Set,d=e.failed.get(t)??new Set,y=e.errors.get(t)??null;return {pending:a.size,inflight:o.size,failed:d.size,isLoading:a.size>0||o.size>0,hasError:d.size>0,lastError:y}}function i(){let t=new Set([...e.pending.keys(),...e.inflight.keys(),...e.failed.keys()]),a=new Map;for(let o of t)a.set(o,s(o));return a}function l(t){return e.listeners.add(t),()=>e.listeners.delete(t)}function u(){e.pending.clear(),e.inflight.clear(),e.failed.clear(),e.errors.clear(),n();}return {plugin:{name:"requirement-status",onRequirementCreated(t){let a=t.requirement.type;r(e.pending,a).add(t.id),e.failed.get(a)?.delete(t.id),n();},onResolverStart(t,a){let o=a.requirement.type;e.pending.get(o)?.delete(a.id),r(e.inflight,o).add(a.id),n();},onResolverComplete(t,a){let o=a.requirement.type;e.inflight.get(o)?.delete(a.id),e.pending.get(o)?.delete(a.id),n();},onResolverError(t,a,o){let d=a.requirement.type;e.inflight.get(d)?.delete(a.id),r(e.failed,d).add(a.id),e.errors.set(d,o instanceof Error?o:new Error(String(o))),n();},onResolverCancel(t,a){let o=a.requirement.type;e.pending.get(o)?.delete(a.id),e.inflight.get(o)?.delete(a.id),n();},onRequirementMet(t){let a=t.requirement.type;e.pending.get(a)?.delete(t.id),e.inflight.get(a)?.delete(t.id),n();}},getStatus:s,getAllStatus:i,subscribe:l,reset:u}}function L(e){return n=>e.getStatus(n)}function H(e){let n=T(),s=[...e.plugins??[],n.plugin];return {system:a({module:e.module,plugins:s,trace:e.trace,errorBoundary:e.errorBoundary,tickMs:e.tickMs,zeroConfig:e.zeroConfig,initialFacts:e.initialFacts}),statusPlugin:n}}var Z={None:"none",Linear:"linear",Exponential:"exponential"};export{Z as Backoff,M as createModule,z as createModuleFactory,T as createRequirementStatusPlugin,L as createStatusHook,H as createSystemWithStatus,$ as t};//# sourceMappingURL=index.js.map
1
+ import {a}from'./chunk-MXIBBD7Z.js';export{a as createSystem}from'./chunk-MXIBBD7Z.js';export{b as DirectiveError,o as RequirementSet,n as forType,k as generateRequirementId,h as isNamespacedSystem,m as isRequirementType,g as isSingleModuleSystem,l as req,e as typedConstraint,f as typedResolver}from'./chunk-PUZVNO5U.js';import'./chunk-GSXCAMNZ.js';export{h as diffSnapshots,i as isSignedSnapshot,f as isSnapshotExpired,d as shallowEqual,j as signSnapshot,g as validateSnapshot,k as verifySnapshotSignature}from'./chunk-4CMO5OVZ.js';function g(e=[],n,r,s,i,l,u){return {_type:void 0,_validators:e,_typeName:n,_default:r,_transform:s,_description:i,_refinements:l,_meta:u,validate(p){return g([...e,p],n,r,s,i,l,u)}}}function c(e,n,r,s,i,l,u){return {...g(e,n,r,s,i,l,u),default(t){return c(e,n,t,s,i,l,u)},transform(t){return c([],n,void 0,o=>{let d=s?s(o):o;return t(d)},i,void 0,u)},brand(){return c(e,`Branded<${n}>`,r,s,i,l,u)},describe(t){return c(e,n,r,s,t,l,u)},refine(t,a){let o=[...l??[],{predicate:t,message:a}];return c([...e,t],n,r,s,i,o,u)},nullable(){return c([t=>t===null||e.every(a=>a(t))],`${n} | null`,r,s,i,void 0,u)},optional(){return c([t=>t===void 0||e.every(a=>a(t))],`${n} | undefined`,r,s,i,void 0,u)},meta(t){return c(e,n,r,s,i,l,t)}}}var $={string(){let e=(n,r,s,i,l,u)=>({...c(n,"string",r,s,i,l,u),minLength(t){return e([...n,a=>a.length>=t],r,s,i,l,u)},maxLength(t){return e([...n,a=>a.length<=t],r,s,i,l,u)},pattern(t){return e([...n,a=>t.test(a)],r,s,i,l,u)},default(t){return e(n,t,s,i,l,u)},describe(t){return e(n,r,s,t,l,u)},refine(t,a){let o=[...l??[],{predicate:t,message:a}];return e([...n,t],r,s,i,o,u)},meta(t){return e(n,r,s,i,l,t)}});return e([n=>typeof n=="string"])},number(){let e=(n,r,s,i,l,u)=>({...c(n,"number",r,s,i,l,u),min(t){return e([...n,a=>a>=t],r,s,i,l,u)},max(t){return e([...n,a=>a<=t],r,s,i,l,u)},default(t){return e(n,t,s,i,l,u)},describe(t){return e(n,r,s,t,l,u)},refine(t,a){let o=[...l??[],{predicate:t,message:a}];return e([...n,t],r,s,i,o,u)},meta(t){return e(n,r,s,i,l,t)}});return e([n=>typeof n=="number"])},boolean(){return c([e=>typeof e=="boolean"],"boolean")},array(){let e=(n,r,s,i,l,u)=>{let p=c(n,"array",s,void 0,i,void 0,u),t=l??{value:-1};return {...p,get _lastFailedIndex(){return t.value},set _lastFailedIndex(o){t.value=o;},of(o){let d={value:-1};return e([...n,y=>{for(let m=0;m<y.length;m++)if(!o._validators.every(S=>S(y[m])))return d.value=m,false;return true}],o,s,i,d,u)},nonEmpty(){return e([...n,o=>o.length>0],r,s,i,t,u)},maxLength(o){return e([...n,d=>d.length<=o],r,s,i,t,u)},minLength(o){return e([...n,d=>d.length>=o],r,s,i,t,u)},default(o){return e(n,r,o,i,t,u)},describe(o){return e(n,r,s,o,t,u)},meta(o){return e(n,r,s,i,t,o)}}};return e([n=>Array.isArray(n)])},object(){let e=(n,r,s,i)=>({...c(n,"object",r,void 0,s,void 0,i),shape(u){return e([...n,p=>{for(let[t,a]of Object.entries(u)){let o=p[t],d=a;if(d&&!d._validators.every(y=>y(o)))return false}return true}],r,s,i)},nonNull(){return e([...n,u=>u!=null],r,s,i)},hasKeys(...u){return e([...n,p=>u.every(t=>t in p)],r,s,i)},default(u){return e(n,u,s,i)},describe(u){return e(n,r,u,i)},meta(u){return e(n,r,s,u)}});return e([n=>typeof n=="object"&&n!==null&&!Array.isArray(n)])},enum(...e){process.env.NODE_ENV!=="production"&&e.length===0&&console.warn("[Directive] t.enum() called with no values - this will reject all strings");let n=new Set(e);return c([r=>typeof r=="string"&&n.has(r)],`enum(${e.join("|")})`)},literal(e){return c([n=>n===e],`literal(${String(e)})`)},nullable(e){let n=e._typeName??"unknown";return g([r=>r===null?true:e._validators.every(s=>s(r))],`${n} | null`)},optional(e){let n=e._typeName??"unknown";return g([r=>r===void 0?true:e._validators.every(s=>s(r))],`${n} | undefined`)},union(...e){process.env.NODE_ENV!=="production"&&e.length===0&&console.warn("[Directive] t.union() called with no types - this will reject all values");let n=e.map(r=>r._typeName??"unknown");return c([r=>e.some(s=>s._validators.every(i=>i(r)))],n.join(" | "))},record(e){let n=e._typeName??"unknown";return c([r=>typeof r!="object"||r===null||Array.isArray(r)?false:Object.values(r).every(s=>e._validators.every(i=>i(s)))],`Record<string, ${n}>`)},tuple(...e){process.env.NODE_ENV!=="production"&&e.length===0&&console.warn("[Directive] t.tuple() called with no types - this will only accept empty arrays");let n=e.map(r=>r._typeName??"unknown");return c([r=>!Array.isArray(r)||r.length!==e.length?false:e.every((s,i)=>s._validators.every(l=>l(r[i])))],`[${n.join(", ")}]`)},date(){return c([e=>e instanceof Date&&!Number.isNaN(e.getTime())],"Date")},uuid(){let e=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;return c([n=>typeof n=="string"&&e.test(n)],"uuid")},email(){let e=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;return c([n=>typeof n=="string"&&e.test(n)],"email")},url(){return c([e=>{if(typeof e!="string")return false;try{return new URL(e),!0}catch{return false}}],"url")},bigint(){return c([e=>typeof e=="bigint"],"bigint")},any(){return c([],"any")},unknown(){return c([],"unknown")}};function W(e){if(!e||typeof e!="string"){console.warn("[Directive] Module ID must be a non-empty string");return}/^(__[a-z][a-z0-9_-]*|[a-z][a-z0-9-]*)$/i.test(e)||console.warn(`[Directive] Module ID "${e}" should follow kebab-case convention (e.g., "my-module")`);}function f(e,n,r,s,i){for(let l of e)n.has(l)||console.warn(`[Directive] ${r} "${l}" not declared in ${s}`);for(let l of n)e.has(l)||console.warn(`[Directive] ${s}["${l}"] ${i}`);}function P(e,n){e.length===0&&console.warn("[Directive] history.snapshotEvents is an empty array \u2014 no events will create history snapshots. Omit history.snapshotEvents entirely to snapshot all events, or list specific events.");let r=new Set(Object.keys(n));for(let s of e)r.has(s)||console.warn(`[Directive] history.snapshotEvents entry "${s}" not declared in schema.events. Available events: ${[...r].join(", ")||"(none)"}`);}function F(e,n){let r=new Set(Object.keys(n));for(let[s,i]of Object.entries(e)){let l=i;typeof l.requirement=="string"&&!r.has(l.requirement)&&console.warn(`[Directive] Resolver "${s}" references unknown requirement type "${l.requirement}". Available types: ${[...r].join(", ")||"(none)"}`);}}function U(e,n){W(e),n.schema?n.schema.facts||console.warn("[Directive] Module schema.facts is required"):console.warn("[Directive] Module schema is required"),f(new Set(Object.keys(n.derive??{})),new Set(Object.keys(n.schema?.derivations??{})),"Derivation","schema.derivations","has no matching implementation in derive"),f(new Set(Object.keys(n.events??{})),new Set(Object.keys(n.schema?.events??{})),"Event","schema.events","has no matching handler in events"),n.history?.snapshotEvents&&P(n.history.snapshotEvents,n.schema?.events??{}),n.resolvers&&n.schema?.requirements&&F(n.resolvers,n.schema.requirements);}function M(e,n){process.env.NODE_ENV!=="production"&&U(e,n);let r="crossModuleDeps"in n?n.crossModuleDeps:void 0;return {id:e,schema:n.schema,init:n.init,derive:n.derive??{},events:n.events??{},effects:n.effects,constraints:n.constraints,resolvers:n.resolvers,hooks:n.hooks,meta:n.meta,history:n.history,crossModuleDeps:r}}function z(e){return n=>M(n,e)}function T(){let e={pending:new Map,inflight:new Map,failed:new Map,errors:new Map,listeners:new Set};function n(){for(let t of e.listeners)t();}function r(t,a){let o=t.get(a);return o||(o=new Set,t.set(a,o)),o}function s(t){let a=e.pending.get(t)??new Set,o=e.inflight.get(t)??new Set,d=e.failed.get(t)??new Set,y=e.errors.get(t)??null;return {pending:a.size,inflight:o.size,failed:d.size,isLoading:a.size>0||o.size>0,hasError:d.size>0,lastError:y}}function i(){let t=new Set([...e.pending.keys(),...e.inflight.keys(),...e.failed.keys()]),a=new Map;for(let o of t)a.set(o,s(o));return a}function l(t){return e.listeners.add(t),()=>e.listeners.delete(t)}function u(){e.pending.clear(),e.inflight.clear(),e.failed.clear(),e.errors.clear(),n();}return {plugin:{name:"requirement-status",onRequirementCreated(t){let a=t.requirement.type;r(e.pending,a).add(t.id),e.failed.get(a)?.delete(t.id),n();},onResolverStart(t,a){let o=a.requirement.type;e.pending.get(o)?.delete(a.id),r(e.inflight,o).add(a.id),n();},onResolverComplete(t,a){let o=a.requirement.type;e.inflight.get(o)?.delete(a.id),e.pending.get(o)?.delete(a.id),n();},onResolverError(t,a,o){let d=a.requirement.type;e.inflight.get(d)?.delete(a.id),r(e.failed,d).add(a.id),e.errors.set(d,o instanceof Error?o:new Error(String(o))),n();},onResolverCancel(t,a){let o=a.requirement.type;e.pending.get(o)?.delete(a.id),e.inflight.get(o)?.delete(a.id),n();},onRequirementMet(t){let a=t.requirement.type;e.pending.get(a)?.delete(t.id),e.inflight.get(a)?.delete(t.id),n();}},getStatus:s,getAllStatus:i,subscribe:l,reset:u}}function L(e){return n=>e.getStatus(n)}function H(e){let n=T(),s=[...e.plugins??[],n.plugin];return {system:a({module:e.module,plugins:s,trace:e.trace,errorBoundary:e.errorBoundary,tickMs:e.tickMs,zeroConfig:e.zeroConfig,initialFacts:e.initialFacts}),statusPlugin:n}}var Z={None:"none",Linear:"linear",Exponential:"exponential"};export{Z as Backoff,M as createModule,z as createModuleFactory,T as createRequirementStatusPlugin,L as createStatusHook,H as createSystemWithStatus,$ as t};//# sourceMappingURL=index.js.map
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- 'use strict';var chunkAUSBUCOL_cjs=require('./chunk-AUSBUCOL.cjs'),chunkER6QUYTL_cjs=require('./chunk-ER6QUYTL.cjs'),chunkBEJ6ICA7_cjs=require('./chunk-BEJ6ICA7.cjs');Object.defineProperty(exports,"createConstraintFactory",{enumerable:true,get:function(){return chunkAUSBUCOL_cjs.c}});Object.defineProperty(exports,"createConstraintsManager",{enumerable:true,get:function(){return chunkAUSBUCOL_cjs.p}});Object.defineProperty(exports,"createDerivationsManager",{enumerable:true,get:function(){return chunkAUSBUCOL_cjs.q}});Object.defineProperty(exports,"createDisabledHistory",{enumerable:true,get:function(){return chunkAUSBUCOL_cjs.j}});Object.defineProperty(exports,"createEffectsManager",{enumerable:true,get:function(){return chunkAUSBUCOL_cjs.r}});Object.defineProperty(exports,"createEngine",{enumerable:true,get:function(){return chunkAUSBUCOL_cjs.z}});Object.defineProperty(exports,"createErrorBoundaryManager",{enumerable:true,get:function(){return chunkAUSBUCOL_cjs.t}});Object.defineProperty(exports,"createFacts",{enumerable:true,get:function(){return chunkAUSBUCOL_cjs.w}});Object.defineProperty(exports,"createFactsProxy",{enumerable:true,get:function(){return chunkAUSBUCOL_cjs.v}});Object.defineProperty(exports,"createFactsStore",{enumerable:true,get:function(){return chunkAUSBUCOL_cjs.u}});Object.defineProperty(exports,"createHistoryManager",{enumerable:true,get:function(){return chunkAUSBUCOL_cjs.i}});Object.defineProperty(exports,"createPluginManager",{enumerable:true,get:function(){return chunkAUSBUCOL_cjs.x}});Object.defineProperty(exports,"createResolverFactory",{enumerable:true,get:function(){return chunkAUSBUCOL_cjs.d}});Object.defineProperty(exports,"createResolversManager",{enumerable:true,get:function(){return chunkAUSBUCOL_cjs.y}});Object.defineProperty(exports,"createRetryLaterManager",{enumerable:true,get:function(){return chunkAUSBUCOL_cjs.s}});Object.defineProperty(exports,"getCurrentTracker",{enumerable:true,get:function(){return chunkER6QUYTL_cjs.f}});Object.defineProperty(exports,"isTracking",{enumerable:true,get:function(){return chunkER6QUYTL_cjs.g}});Object.defineProperty(exports,"trackAccess",{enumerable:true,get:function(){return chunkER6QUYTL_cjs.j}});Object.defineProperty(exports,"withTracking",{enumerable:true,get:function(){return chunkER6QUYTL_cjs.h}});Object.defineProperty(exports,"withoutTracking",{enumerable:true,get:function(){return chunkER6QUYTL_cjs.i}});Object.defineProperty(exports,"safeStringify",{enumerable:true,get:function(){return chunkBEJ6ICA7_cjs.l}});//# sourceMappingURL=internals.cjs.map
1
+ 'use strict';var chunk4AN3P4W5_cjs=require('./chunk-4AN3P4W5.cjs'),chunkWFIJ6OST_cjs=require('./chunk-WFIJ6OST.cjs'),chunkBEJ6ICA7_cjs=require('./chunk-BEJ6ICA7.cjs');Object.defineProperty(exports,"createConstraintFactory",{enumerable:true,get:function(){return chunk4AN3P4W5_cjs.c}});Object.defineProperty(exports,"createConstraintsManager",{enumerable:true,get:function(){return chunk4AN3P4W5_cjs.p}});Object.defineProperty(exports,"createDerivationsManager",{enumerable:true,get:function(){return chunk4AN3P4W5_cjs.q}});Object.defineProperty(exports,"createDisabledHistory",{enumerable:true,get:function(){return chunk4AN3P4W5_cjs.j}});Object.defineProperty(exports,"createEffectsManager",{enumerable:true,get:function(){return chunk4AN3P4W5_cjs.r}});Object.defineProperty(exports,"createEngine",{enumerable:true,get:function(){return chunk4AN3P4W5_cjs.z}});Object.defineProperty(exports,"createErrorBoundaryManager",{enumerable:true,get:function(){return chunk4AN3P4W5_cjs.t}});Object.defineProperty(exports,"createFacts",{enumerable:true,get:function(){return chunk4AN3P4W5_cjs.w}});Object.defineProperty(exports,"createFactsProxy",{enumerable:true,get:function(){return chunk4AN3P4W5_cjs.v}});Object.defineProperty(exports,"createFactsStore",{enumerable:true,get:function(){return chunk4AN3P4W5_cjs.u}});Object.defineProperty(exports,"createHistoryManager",{enumerable:true,get:function(){return chunk4AN3P4W5_cjs.i}});Object.defineProperty(exports,"createPluginManager",{enumerable:true,get:function(){return chunk4AN3P4W5_cjs.x}});Object.defineProperty(exports,"createResolverFactory",{enumerable:true,get:function(){return chunk4AN3P4W5_cjs.d}});Object.defineProperty(exports,"createResolversManager",{enumerable:true,get:function(){return chunk4AN3P4W5_cjs.y}});Object.defineProperty(exports,"createRetryLaterManager",{enumerable:true,get:function(){return chunk4AN3P4W5_cjs.s}});Object.defineProperty(exports,"getCurrentDeps",{enumerable:true,get:function(){return chunkWFIJ6OST_cjs.f}});Object.defineProperty(exports,"isTracking",{enumerable:true,get:function(){return chunkWFIJ6OST_cjs.g}});Object.defineProperty(exports,"trackAccess",{enumerable:true,get:function(){return chunkWFIJ6OST_cjs.j}});Object.defineProperty(exports,"withTracking",{enumerable:true,get:function(){return chunkWFIJ6OST_cjs.h}});Object.defineProperty(exports,"withoutTracking",{enumerable:true,get:function(){return chunkWFIJ6OST_cjs.i}});Object.defineProperty(exports,"safeStringify",{enumerable:true,get:function(){return chunkBEJ6ICA7_cjs.l}});//# sourceMappingURL=internals.cjs.map
2
2
  //# sourceMappingURL=internals.cjs.map
@@ -1,7 +1,7 @@
1
1
  import { W as Schema, a4 as FactsStore, F as Facts, D as DefinitionMeta, E as EffectsDef, a5 as ConstraintsDef, p as RequirementKeyFn, R as RequirementWithId, a6 as ConstraintState, a7 as ResolversDef, a8 as ResolverStatus, o as Requirement, P as Plugin, Y as System, a9 as FactChange, w as FactsSnapshot, aa as ReconcileResult, X as Snapshot, q as DirectiveError, ab as RecoveryStrategy, a1 as TraceEntry, ac as ErrorSource, n as ErrorBoundaryConfig, ad as RetryLaterConfig, H as HistoryAPI, x as HistoryOption, Z as SystemConfig } from './plugins-O-3VHejK.cjs';
2
2
  export { ae as BatchItemResult, af as BatchResolveResults, ag as ConstraintsControl, ah as CrossModuleConstraintDef, g as CrossModuleConstraintsDef, ai as CrossModuleDerivationFn, e as CrossModuleDerivationsDef, aj as CrossModuleEffectDef, f as CrossModuleEffectsDef, ak as CrossModuleFactsWithSelf, al as DerivationKeys, am as DerivationReturnType, an as DerivationsControl, ao as DerivationsSchema, ap as DeriveAccessor, aq as DispatchEventsFromSchema, r as DistributableSnapshot, s as DistributableSnapshotOptions, ar as EffectCleanup, as as EffectsControl, at as EventPayloadSchema, au as EventsAccessor, av as EventsAccessorFromSchema, aw as EventsDef, ax as EventsSchema, ay as FactKeys, az as FactReturnType, aA as FlexibleEventHandler, aB as HistoryConfig, aC as InferEventPayloadFromSchema, aD as InferRequirementPayloadFromSchema, aE as InferSchema, aF as MutableNamespacedFacts, aG as NamespacedDerivations, aH as NamespacedEventsAccessor, aI as NamespacedFacts, aJ as ObservableKeys, aK as RequirementExplanation, aL as RequirementOutput, aM as RequirementPayloadSchema, aN as RequirementsSchema, aO as ResolverContext, aP as ResolversControl, aQ as SnapshotMeta, aR as SystemEvent, aS as TraceConfig, aT as TypedConstraintDef, b as TypedConstraintsDef, T as TypedDerivationsDef, a as TypedEventsDef, aU as TypedResolverContext, aV as TypedResolverDef, c as TypedResolversDef, aW as UnionEvents } from './plugins-O-3VHejK.cjs';
3
- import { b as DerivationsDef, c as DerivedValues, T as TrackingContext } from './helpers-CU3Il0tz.cjs';
4
- export { d as DerivationState, e as TypedConstraint, f as TypedResolver, g as createConstraintFactory, h as createResolverFactory } from './helpers-CU3Il0tz.cjs';
3
+ import { b as DerivationsDef, c as DerivedValues } from './helpers-Akay-GZq.cjs';
4
+ export { d as DerivationState, T as TypedConstraint, e as TypedResolver, f as createConstraintFactory, g as createResolverFactory } from './helpers-Akay-GZq.cjs';
5
5
  export { g as safeStringify } from './utils-BnQajqPu.cjs';
6
6
 
7
7
  /**
@@ -1104,16 +1104,14 @@ declare function createEngine<S extends Schema>(config: SystemConfig<any>): Syst
1104
1104
  * Uses a stack-based approach to handle nested derivation computations.
1105
1105
  * When a derivation accesses a fact, the tracking context records it.
1106
1106
  */
1107
-
1108
1107
  /**
1109
- * Get the current tracking context.
1108
+ * Get the current dependency set, or null if not tracking.
1110
1109
  *
1111
- * @returns The active {@link TrackingContext}, or a null context (no-op) if
1112
- * no tracking is active.
1110
+ * @returns The active dependency Set, or `null` if no tracking is active.
1113
1111
  *
1114
1112
  * @internal
1115
1113
  */
1116
- declare function getCurrentTracker(): TrackingContext;
1114
+ declare function getCurrentDeps(): Set<string> | null;
1117
1115
  /**
1118
1116
  * Check if dependency tracking is currently active.
1119
1117
  *
@@ -1126,9 +1124,9 @@ declare function isTracking(): boolean;
1126
1124
  * Run a function with dependency tracking.
1127
1125
  *
1128
1126
  * @remarks
1129
- * Pushes a fresh tracking context onto the stack, executes `fn`, then pops
1130
- * the context. Any fact reads inside `fn` are recorded as dependencies.
1131
- * Nesting is supported — inner calls get their own independent context.
1127
+ * Pushes a fresh Set onto the stack, executes `fn`, then pops it.
1128
+ * Any fact reads inside `fn` are recorded as dependencies.
1129
+ * Nesting is supported — inner calls get their own independent Set.
1132
1130
  *
1133
1131
  * @param fn - The function to execute under tracking.
1134
1132
  * @returns An object with the computed `value` and a `deps` Set of accessed
@@ -1167,4 +1165,4 @@ declare function withoutTracking<T>(fn: () => T): T;
1167
1165
  */
1168
1166
  declare function trackAccess(key: string): void;
1169
1167
 
1170
- export { ConstraintState, ConstraintsDef, DerivationsDef, DerivedValues, EffectsDef, ErrorSource, FactChange, FactsStore, type InflightInfo, type PendingRetry, ReconcileResult, RecoveryStrategy, RequirementKeyFn, ResolverStatus, ResolversDef, RetryLaterConfig, createConstraintsManager, createDerivationsManager, createDisabledHistory, createEffectsManager, createEngine, createErrorBoundaryManager, createFacts, createFactsProxy, createFactsStore, createHistoryManager, createPluginManager, createResolversManager, createRetryLaterManager, getCurrentTracker, isTracking, trackAccess, withTracking, withoutTracking };
1168
+ export { ConstraintState, ConstraintsDef, DerivationsDef, DerivedValues, EffectsDef, ErrorSource, FactChange, FactsStore, type InflightInfo, type PendingRetry, ReconcileResult, RecoveryStrategy, RequirementKeyFn, ResolverStatus, ResolversDef, RetryLaterConfig, createConstraintsManager, createDerivationsManager, createDisabledHistory, createEffectsManager, createEngine, createErrorBoundaryManager, createFacts, createFactsProxy, createFactsStore, createHistoryManager, createPluginManager, createResolversManager, createRetryLaterManager, getCurrentDeps, isTracking, trackAccess, withTracking, withoutTracking };
@@ -1,7 +1,7 @@
1
1
  import { W as Schema, a4 as FactsStore, F as Facts, D as DefinitionMeta, E as EffectsDef, a5 as ConstraintsDef, p as RequirementKeyFn, R as RequirementWithId, a6 as ConstraintState, a7 as ResolversDef, a8 as ResolverStatus, o as Requirement, P as Plugin, Y as System, a9 as FactChange, w as FactsSnapshot, aa as ReconcileResult, X as Snapshot, q as DirectiveError, ab as RecoveryStrategy, a1 as TraceEntry, ac as ErrorSource, n as ErrorBoundaryConfig, ad as RetryLaterConfig, H as HistoryAPI, x as HistoryOption, Z as SystemConfig } from './plugins-O-3VHejK.js';
2
2
  export { ae as BatchItemResult, af as BatchResolveResults, ag as ConstraintsControl, ah as CrossModuleConstraintDef, g as CrossModuleConstraintsDef, ai as CrossModuleDerivationFn, e as CrossModuleDerivationsDef, aj as CrossModuleEffectDef, f as CrossModuleEffectsDef, ak as CrossModuleFactsWithSelf, al as DerivationKeys, am as DerivationReturnType, an as DerivationsControl, ao as DerivationsSchema, ap as DeriveAccessor, aq as DispatchEventsFromSchema, r as DistributableSnapshot, s as DistributableSnapshotOptions, ar as EffectCleanup, as as EffectsControl, at as EventPayloadSchema, au as EventsAccessor, av as EventsAccessorFromSchema, aw as EventsDef, ax as EventsSchema, ay as FactKeys, az as FactReturnType, aA as FlexibleEventHandler, aB as HistoryConfig, aC as InferEventPayloadFromSchema, aD as InferRequirementPayloadFromSchema, aE as InferSchema, aF as MutableNamespacedFacts, aG as NamespacedDerivations, aH as NamespacedEventsAccessor, aI as NamespacedFacts, aJ as ObservableKeys, aK as RequirementExplanation, aL as RequirementOutput, aM as RequirementPayloadSchema, aN as RequirementsSchema, aO as ResolverContext, aP as ResolversControl, aQ as SnapshotMeta, aR as SystemEvent, aS as TraceConfig, aT as TypedConstraintDef, b as TypedConstraintsDef, T as TypedDerivationsDef, a as TypedEventsDef, aU as TypedResolverContext, aV as TypedResolverDef, c as TypedResolversDef, aW as UnionEvents } from './plugins-O-3VHejK.js';
3
- import { b as DerivationsDef, c as DerivedValues, T as TrackingContext } from './helpers-Bd_P3ZTY.js';
4
- export { d as DerivationState, e as TypedConstraint, f as TypedResolver, g as createConstraintFactory, h as createResolverFactory } from './helpers-Bd_P3ZTY.js';
3
+ import { b as DerivationsDef, c as DerivedValues } from './helpers-CDNl3Rd2.js';
4
+ export { d as DerivationState, T as TypedConstraint, e as TypedResolver, f as createConstraintFactory, g as createResolverFactory } from './helpers-CDNl3Rd2.js';
5
5
  export { g as safeStringify } from './utils-BnQajqPu.js';
6
6
 
7
7
  /**
@@ -1104,16 +1104,14 @@ declare function createEngine<S extends Schema>(config: SystemConfig<any>): Syst
1104
1104
  * Uses a stack-based approach to handle nested derivation computations.
1105
1105
  * When a derivation accesses a fact, the tracking context records it.
1106
1106
  */
1107
-
1108
1107
  /**
1109
- * Get the current tracking context.
1108
+ * Get the current dependency set, or null if not tracking.
1110
1109
  *
1111
- * @returns The active {@link TrackingContext}, or a null context (no-op) if
1112
- * no tracking is active.
1110
+ * @returns The active dependency Set, or `null` if no tracking is active.
1113
1111
  *
1114
1112
  * @internal
1115
1113
  */
1116
- declare function getCurrentTracker(): TrackingContext;
1114
+ declare function getCurrentDeps(): Set<string> | null;
1117
1115
  /**
1118
1116
  * Check if dependency tracking is currently active.
1119
1117
  *
@@ -1126,9 +1124,9 @@ declare function isTracking(): boolean;
1126
1124
  * Run a function with dependency tracking.
1127
1125
  *
1128
1126
  * @remarks
1129
- * Pushes a fresh tracking context onto the stack, executes `fn`, then pops
1130
- * the context. Any fact reads inside `fn` are recorded as dependencies.
1131
- * Nesting is supported — inner calls get their own independent context.
1127
+ * Pushes a fresh Set onto the stack, executes `fn`, then pops it.
1128
+ * Any fact reads inside `fn` are recorded as dependencies.
1129
+ * Nesting is supported — inner calls get their own independent Set.
1132
1130
  *
1133
1131
  * @param fn - The function to execute under tracking.
1134
1132
  * @returns An object with the computed `value` and a `deps` Set of accessed
@@ -1167,4 +1165,4 @@ declare function withoutTracking<T>(fn: () => T): T;
1167
1165
  */
1168
1166
  declare function trackAccess(key: string): void;
1169
1167
 
1170
- export { ConstraintState, ConstraintsDef, DerivationsDef, DerivedValues, EffectsDef, ErrorSource, FactChange, FactsStore, type InflightInfo, type PendingRetry, ReconcileResult, RecoveryStrategy, RequirementKeyFn, ResolverStatus, ResolversDef, RetryLaterConfig, createConstraintsManager, createDerivationsManager, createDisabledHistory, createEffectsManager, createEngine, createErrorBoundaryManager, createFacts, createFactsProxy, createFactsStore, createHistoryManager, createPluginManager, createResolversManager, createRetryLaterManager, getCurrentTracker, isTracking, trackAccess, withTracking, withoutTracking };
1168
+ export { ConstraintState, ConstraintsDef, DerivationsDef, DerivedValues, EffectsDef, ErrorSource, FactChange, FactsStore, type InflightInfo, type PendingRetry, ReconcileResult, RecoveryStrategy, RequirementKeyFn, ResolverStatus, ResolversDef, RetryLaterConfig, createConstraintsManager, createDerivationsManager, createDisabledHistory, createEffectsManager, createEngine, createErrorBoundaryManager, createFacts, createFactsProxy, createFactsStore, createHistoryManager, createPluginManager, createResolversManager, createRetryLaterManager, getCurrentDeps, isTracking, trackAccess, withTracking, withoutTracking };
package/dist/internals.js CHANGED
@@ -1,2 +1,2 @@
1
- export{c as createConstraintFactory,p as createConstraintsManager,q as createDerivationsManager,j as createDisabledHistory,r as createEffectsManager,z as createEngine,t as createErrorBoundaryManager,w as createFacts,v as createFactsProxy,u as createFactsStore,i as createHistoryManager,x as createPluginManager,d as createResolverFactory,y as createResolversManager,s as createRetryLaterManager}from'./chunk-YWKFNZQV.js';export{f as getCurrentTracker,g as isTracking,j as trackAccess,h as withTracking,i as withoutTracking}from'./chunk-EFBBEXDA.js';export{l as safeStringify}from'./chunk-4CMO5OVZ.js';//# sourceMappingURL=internals.js.map
1
+ export{c as createConstraintFactory,p as createConstraintsManager,q as createDerivationsManager,j as createDisabledHistory,r as createEffectsManager,z as createEngine,t as createErrorBoundaryManager,w as createFacts,v as createFactsProxy,u as createFactsStore,i as createHistoryManager,x as createPluginManager,d as createResolverFactory,y as createResolversManager,s as createRetryLaterManager}from'./chunk-PUZVNO5U.js';export{f as getCurrentDeps,g as isTracking,j as trackAccess,h as withTracking,i as withoutTracking}from'./chunk-GSXCAMNZ.js';export{l as safeStringify}from'./chunk-4CMO5OVZ.js';//# sourceMappingURL=internals.js.map
2
2
  //# sourceMappingURL=internals.js.map
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunkSLHKLDQR_cjs=require('./chunk-SLHKLDQR.cjs');require('./chunk-4AN3P4W5.cjs'),require('./chunk-WFIJ6OST.cjs'),require('./chunk-BEJ6ICA7.cjs');Object.defineProperty(exports,"createSystem",{enumerable:true,get:function(){return chunkSLHKLDQR_cjs.a}});//# sourceMappingURL=system-CWUYJT43.cjs.map
2
+ //# sourceMappingURL=system-CWUYJT43.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"system-QQYBNE7A.cjs"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"system-CWUYJT43.cjs"}
@@ -0,0 +1,2 @@
1
+ export{a as createSystem}from'./chunk-MXIBBD7Z.js';import'./chunk-PUZVNO5U.js';import'./chunk-GSXCAMNZ.js';import'./chunk-4CMO5OVZ.js';//# sourceMappingURL=system-TM7ZQZYW.js.map
2
+ //# sourceMappingURL=system-TM7ZQZYW.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"system-AGVKMAYF.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"system-TM7ZQZYW.js"}
package/dist/testing.cjs CHANGED
@@ -1,2 +1,2 @@
1
- 'use strict';var chunk3H24Z7WM_cjs=require('./chunk-3H24Z7WM.cjs');require('./chunk-AUSBUCOL.cjs'),require('./chunk-ER6QUYTL.cjs'),require('./chunk-BEJ6ICA7.cjs');async function S(){for(let t=0;t<10;t++)await Promise.resolve();}async function D(t,r,n={}){let{totalTime:a=5e3,stepSize:c=10,maxIterations:l=1e3}=n,d=0,h=0;for(;d<a&&h<l;){if(await S(),t.inspect().inflight.length===0){await S();return}r(c),d+=c,h++;}let g=t.inspect();if(g.inflight.length>0){let v=g.inflight.map(y=>y.resolverId).join(", ");throw new Error(`[Directive] settleWithFakeTimers did not settle after ${a}ms. ${g.inflight.length} resolvers still inflight: ${v}`)}}function T(){let t=0,r=[];return {async advance(n){let a=t+n;for(;r.length>0&&r[0].time<=a;){let c=r.shift();t=c.time,c.callback(),await Promise.resolve();}t=a;},async next(){if(r.length===0)return;let n=r.shift();t=n.time,n.callback(),await Promise.resolve();},async runAll(){for(;r.length>0;)await this.next();},now(){return t},reset(){t=0,r.length=0;}}}function k(t){let r=typeof t=="string"?{requirement:(a=>a.type===t)}:t,n=r.calls??[];return {requirement:r.requirement??(a=>true),async resolve(a,c){if(n.push(a),r.delay&&await new Promise(l=>setTimeout(l,r.delay)),r.error)throw typeof r.error=="string"?new Error(r.error):r.error;r.resolve&&await r.resolve(a,c);}}}function E(t){let r=[],n=[];return {...{get calls(){return r},get pending(){return n},resolve(l){let d=n.shift();d&&d.resolve(l);},reject(l){let d=n.shift();d&&d.reject(l);},resolveAll(l){for(;n.length>0;)this.resolve(l);},rejectAll(l){for(;n.length>0;)this.reject(l);},reset(){r.length=0,n.length=0;}},handler:(l,d)=>(r.push(l),new Promise((h,g)=>{n.push({requirement:l,resolve:v=>h(v),reject:g});}))}}function C(t){return "module"in t?x(t):M(t)}function x(t){let r=[],n=new Map,a=[],c=[],l={};if(t.mocks?.resolvers)for(let[o,e]of Object.entries(t.mocks.resolvers)){let s=[];n.set(o,s),l[o]=k({...e,calls:s});}let d={...t.module,resolvers:{...t.module.resolvers,...l}},g=chunk3H24Z7WM_cjs.a({...t,module:d,plugins:[{name:"__test-tracking__",onFactSet:(o,e,s)=>{c.push({key:o,fullKey:o,namespace:void 0,previousValue:s,newValue:e,timestamp:Date.now()});},onRequirementCreated:o=>{a.push(o);}},...t.plugins??[]]}),v=g.dispatch.bind(g);return g.dispatch=o=>{r.push(o),v(o);},{...g,eventHistory:r,resolverCalls:n,get allRequirements(){return a},getFactsHistory(){return [...c]},resetFactsHistory(){c.length=0;},async waitForIdle(o=5e3){let e=Date.now(),s=async()=>{await new Promise(m=>setTimeout(m,0));let i=g.inspect();if(i.inflight.length>0){if(Date.now()-e>o){let m=i.inflight.map(u=>u.id).join(", ");throw new Error(`[Directive] waitForIdle timed out after ${o}ms. ${i.inflight.length} resolvers still inflight: ${m}`)}return await new Promise(m=>setTimeout(m,10)),s()}};return s()},assertRequirement(o){if(!a.some(s=>s.requirement.type===o))throw new Error(`[Directive] Expected requirement of type "${o}" but none found`)},assertResolverCalled(o,e){let s=n.get(o)??[];if(e!==void 0){if(s.length!==e)throw new Error(`[Directive] Expected resolver "${o}" to be called ${e} times but was called ${s.length} times`)}else if(s.length===0)throw new Error(`[Directive] Expected resolver "${o}" to be called but it was not`)},assertFactSet(o,e){let s=c.filter(i=>i.key===o);if(s.length===0)throw new Error(`[Directive] Expected fact "${o}" to be set but it was not`);if(e!==void 0&&!s.some(m=>m.newValue===e)){let m=s.map(u=>JSON.stringify(u.newValue)).join(", ");throw new Error(`[Directive] Expected fact "${o}" to be set to ${JSON.stringify(e)} but got: ${m}`)}},assertFactChanges(o,e){let s=c.filter(i=>i.key===o);if(s.length!==e)throw new Error(`[Directive] Expected fact "${o}" to change ${e} times but it changed ${s.length} times`)}}}function M(t){let r=[],n=new Map,a=[],c=[],l={};if(t.mocks?.resolvers)for(let[e,s]of Object.entries(t.mocks.resolvers)){let i=[];n.set(e,i),l[e]=k({...s,calls:i});}let d={};for(let[e,s]of Object.entries(t.modules))d[e]={...s,resolvers:{...s.resolvers,...l}};let h=new Set(Object.keys(t.modules)),v=chunk3H24Z7WM_cjs.a({...t,modules:d,plugins:[{name:"__test-tracking__",onFactSet:(e,s,i)=>{let u=e.indexOf("::"),f,p;if(u>0){let R=e.substring(0,u);h.has(R)?(f=R,p=e.substring(u+2)):p=e;}else p=e;c.push({key:p,fullKey:e,namespace:f,previousValue:i,newValue:s,timestamp:Date.now()});},onRequirementCreated:e=>{a.push(e);}},...t.plugins??[]]}),y=v.dispatch.bind(v);return v.dispatch=e=>{r.push(e),y(e);},{...v,eventHistory:r,resolverCalls:n,get allRequirements(){return a},getFactsHistory(){return [...c]},resetFactsHistory(){c.length=0;},async waitForIdle(e=5e3){let s=Date.now(),i=async()=>{await new Promise(u=>setTimeout(u,0));let m=v.inspect();if(m.inflight.length>0){if(Date.now()-s>e){let u=m.inflight.map(f=>f.id).join(", ");throw new Error(`[Directive] waitForIdle timed out after ${e}ms. ${m.inflight.length} resolvers still inflight: ${u}`)}return await new Promise(u=>setTimeout(u,10)),i()}};return i()},assertRequirement(e){if(!a.some(i=>i.requirement.type===e))throw new Error(`[Directive] Expected requirement of type "${e}" but none found`)},assertResolverCalled(e,s){let i=n.get(e)??[];if(s!==void 0){if(i.length!==s)throw new Error(`[Directive] Expected resolver "${e}" to be called ${s} times but was called ${i.length} times`)}else if(i.length===0)throw new Error(`[Directive] Expected resolver "${e}" to be called but it was not`)},assertFactSet(e,s){let i=c.filter(m=>m.key===e);if(i.length===0)throw new Error(`[Directive] Expected fact "${e}" to be set but it was not`);if(s!==void 0&&!i.some(u=>u.newValue===s)){let u=i.map(f=>JSON.stringify(f.newValue)).join(", ");throw new Error(`[Directive] Expected fact "${e}" to be set to ${JSON.stringify(s)} but got: ${u}`)}},assertFactChanges(e,s){let i=c.filter(m=>m.key===e);if(i.length!==s)throw new Error(`[Directive] Expected fact "${e}" to change ${s} times but it changed ${i.length} times`)}}}function $(t,r,n){if(!b(t,r,n))throw new Error(`[Directive] Expected ${r} "${n}" to be dynamic, but it is not.`)}function P(t,r,n){if(b(t,r,n))throw new Error(`[Directive] Expected ${r} "${n}" to NOT be dynamic, but it is.`)}function b(t,r,n){switch(r){case "constraint":return t.constraints.isDynamic(n);case "resolver":return t.resolvers.isDynamic(n);case "derivation":return t.derive.isDynamic(n);case "effect":return t.effects.isDynamic(n)}}exports.assertDynamic=$;exports.assertNotDynamic=P;exports.createFakeTimers=T;exports.createMockResolver=k;exports.createTestSystem=C;exports.flushMicrotasks=S;exports.mockResolver=E;exports.settleWithFakeTimers=D;//# sourceMappingURL=testing.cjs.map
1
+ 'use strict';var chunkSLHKLDQR_cjs=require('./chunk-SLHKLDQR.cjs');require('./chunk-4AN3P4W5.cjs'),require('./chunk-WFIJ6OST.cjs'),require('./chunk-BEJ6ICA7.cjs');async function S(){for(let t=0;t<10;t++)await Promise.resolve();}async function D(t,r,n={}){let{totalTime:a=5e3,stepSize:c=10,maxIterations:l=1e3}=n,d=0,h=0;for(;d<a&&h<l;){if(await S(),t.inspect().inflight.length===0){await S();return}r(c),d+=c,h++;}let g=t.inspect();if(g.inflight.length>0){let v=g.inflight.map(y=>y.resolverId).join(", ");throw new Error(`[Directive] settleWithFakeTimers did not settle after ${a}ms. ${g.inflight.length} resolvers still inflight: ${v}`)}}function T(){let t=0,r=[];return {async advance(n){let a=t+n;for(;r.length>0&&r[0].time<=a;){let c=r.shift();t=c.time,c.callback(),await Promise.resolve();}t=a;},async next(){if(r.length===0)return;let n=r.shift();t=n.time,n.callback(),await Promise.resolve();},async runAll(){for(;r.length>0;)await this.next();},now(){return t},reset(){t=0,r.length=0;}}}function k(t){let r=typeof t=="string"?{requirement:(a=>a.type===t)}:t,n=r.calls??[];return {requirement:r.requirement??(a=>true),async resolve(a,c){if(n.push(a),r.delay&&await new Promise(l=>setTimeout(l,r.delay)),r.error)throw typeof r.error=="string"?new Error(r.error):r.error;r.resolve&&await r.resolve(a,c);}}}function E(t){let r=[],n=[];return {...{get calls(){return r},get pending(){return n},resolve(l){let d=n.shift();d&&d.resolve(l);},reject(l){let d=n.shift();d&&d.reject(l);},resolveAll(l){for(;n.length>0;)this.resolve(l);},rejectAll(l){for(;n.length>0;)this.reject(l);},reset(){r.length=0,n.length=0;}},handler:(l,d)=>(r.push(l),new Promise((h,g)=>{n.push({requirement:l,resolve:v=>h(v),reject:g});}))}}function C(t){return "module"in t?x(t):M(t)}function x(t){let r=[],n=new Map,a=[],c=[],l={};if(t.mocks?.resolvers)for(let[o,e]of Object.entries(t.mocks.resolvers)){let s=[];n.set(o,s),l[o]=k({...e,calls:s});}let d={...t.module,resolvers:{...t.module.resolvers,...l}},g=chunkSLHKLDQR_cjs.a({...t,module:d,plugins:[{name:"__test-tracking__",onFactSet:(o,e,s)=>{c.push({key:o,fullKey:o,namespace:void 0,previousValue:s,newValue:e,timestamp:Date.now()});},onRequirementCreated:o=>{a.push(o);}},...t.plugins??[]]}),v=g.dispatch.bind(g);return g.dispatch=o=>{r.push(o),v(o);},{...g,eventHistory:r,resolverCalls:n,get allRequirements(){return a},getFactsHistory(){return [...c]},resetFactsHistory(){c.length=0;},async waitForIdle(o=5e3){let e=Date.now(),s=async()=>{await new Promise(m=>setTimeout(m,0));let i=g.inspect();if(i.inflight.length>0){if(Date.now()-e>o){let m=i.inflight.map(u=>u.id).join(", ");throw new Error(`[Directive] waitForIdle timed out after ${o}ms. ${i.inflight.length} resolvers still inflight: ${m}`)}return await new Promise(m=>setTimeout(m,10)),s()}};return s()},assertRequirement(o){if(!a.some(s=>s.requirement.type===o))throw new Error(`[Directive] Expected requirement of type "${o}" but none found`)},assertResolverCalled(o,e){let s=n.get(o)??[];if(e!==void 0){if(s.length!==e)throw new Error(`[Directive] Expected resolver "${o}" to be called ${e} times but was called ${s.length} times`)}else if(s.length===0)throw new Error(`[Directive] Expected resolver "${o}" to be called but it was not`)},assertFactSet(o,e){let s=c.filter(i=>i.key===o);if(s.length===0)throw new Error(`[Directive] Expected fact "${o}" to be set but it was not`);if(e!==void 0&&!s.some(m=>m.newValue===e)){let m=s.map(u=>JSON.stringify(u.newValue)).join(", ");throw new Error(`[Directive] Expected fact "${o}" to be set to ${JSON.stringify(e)} but got: ${m}`)}},assertFactChanges(o,e){let s=c.filter(i=>i.key===o);if(s.length!==e)throw new Error(`[Directive] Expected fact "${o}" to change ${e} times but it changed ${s.length} times`)}}}function M(t){let r=[],n=new Map,a=[],c=[],l={};if(t.mocks?.resolvers)for(let[e,s]of Object.entries(t.mocks.resolvers)){let i=[];n.set(e,i),l[e]=k({...s,calls:i});}let d={};for(let[e,s]of Object.entries(t.modules))d[e]={...s,resolvers:{...s.resolvers,...l}};let h=new Set(Object.keys(t.modules)),v=chunkSLHKLDQR_cjs.a({...t,modules:d,plugins:[{name:"__test-tracking__",onFactSet:(e,s,i)=>{let u=e.indexOf("::"),f,p;if(u>0){let R=e.substring(0,u);h.has(R)?(f=R,p=e.substring(u+2)):p=e;}else p=e;c.push({key:p,fullKey:e,namespace:f,previousValue:i,newValue:s,timestamp:Date.now()});},onRequirementCreated:e=>{a.push(e);}},...t.plugins??[]]}),y=v.dispatch.bind(v);return v.dispatch=e=>{r.push(e),y(e);},{...v,eventHistory:r,resolverCalls:n,get allRequirements(){return a},getFactsHistory(){return [...c]},resetFactsHistory(){c.length=0;},async waitForIdle(e=5e3){let s=Date.now(),i=async()=>{await new Promise(u=>setTimeout(u,0));let m=v.inspect();if(m.inflight.length>0){if(Date.now()-s>e){let u=m.inflight.map(f=>f.id).join(", ");throw new Error(`[Directive] waitForIdle timed out after ${e}ms. ${m.inflight.length} resolvers still inflight: ${u}`)}return await new Promise(u=>setTimeout(u,10)),i()}};return i()},assertRequirement(e){if(!a.some(i=>i.requirement.type===e))throw new Error(`[Directive] Expected requirement of type "${e}" but none found`)},assertResolverCalled(e,s){let i=n.get(e)??[];if(s!==void 0){if(i.length!==s)throw new Error(`[Directive] Expected resolver "${e}" to be called ${s} times but was called ${i.length} times`)}else if(i.length===0)throw new Error(`[Directive] Expected resolver "${e}" to be called but it was not`)},assertFactSet(e,s){let i=c.filter(m=>m.key===e);if(i.length===0)throw new Error(`[Directive] Expected fact "${e}" to be set but it was not`);if(s!==void 0&&!i.some(u=>u.newValue===s)){let u=i.map(f=>JSON.stringify(f.newValue)).join(", ");throw new Error(`[Directive] Expected fact "${e}" to be set to ${JSON.stringify(s)} but got: ${u}`)}},assertFactChanges(e,s){let i=c.filter(m=>m.key===e);if(i.length!==s)throw new Error(`[Directive] Expected fact "${e}" to change ${s} times but it changed ${i.length} times`)}}}function $(t,r,n){if(!b(t,r,n))throw new Error(`[Directive] Expected ${r} "${n}" to be dynamic, but it is not.`)}function P(t,r,n){if(b(t,r,n))throw new Error(`[Directive] Expected ${r} "${n}" to NOT be dynamic, but it is.`)}function b(t,r,n){switch(r){case "constraint":return t.constraints.isDynamic(n);case "resolver":return t.resolvers.isDynamic(n);case "derivation":return t.derive.isDynamic(n);case "effect":return t.effects.isDynamic(n)}}exports.assertDynamic=$;exports.assertNotDynamic=P;exports.createFakeTimers=T;exports.createMockResolver=k;exports.createTestSystem=C;exports.flushMicrotasks=S;exports.mockResolver=E;exports.settleWithFakeTimers=D;//# sourceMappingURL=testing.cjs.map
2
2
  //# sourceMappingURL=testing.cjs.map
package/dist/testing.js CHANGED
@@ -1,2 +1,2 @@
1
- import {a}from'./chunk-MPOV2REO.js';import'./chunk-YWKFNZQV.js';import'./chunk-EFBBEXDA.js';import'./chunk-4CMO5OVZ.js';async function S(){for(let t=0;t<10;t++)await Promise.resolve();}async function D(t,r,n={}){let{totalTime:a=5e3,stepSize:c=10,maxIterations:l=1e3}=n,d=0,h=0;for(;d<a&&h<l;){if(await S(),t.inspect().inflight.length===0){await S();return}r(c),d+=c,h++;}let g=t.inspect();if(g.inflight.length>0){let v=g.inflight.map(y=>y.resolverId).join(", ");throw new Error(`[Directive] settleWithFakeTimers did not settle after ${a}ms. ${g.inflight.length} resolvers still inflight: ${v}`)}}function T(){let t=0,r=[];return {async advance(n){let a=t+n;for(;r.length>0&&r[0].time<=a;){let c=r.shift();t=c.time,c.callback(),await Promise.resolve();}t=a;},async next(){if(r.length===0)return;let n=r.shift();t=n.time,n.callback(),await Promise.resolve();},async runAll(){for(;r.length>0;)await this.next();},now(){return t},reset(){t=0,r.length=0;}}}function k(t){let r=typeof t=="string"?{requirement:(a=>a.type===t)}:t,n=r.calls??[];return {requirement:r.requirement??(a=>true),async resolve(a,c){if(n.push(a),r.delay&&await new Promise(l=>setTimeout(l,r.delay)),r.error)throw typeof r.error=="string"?new Error(r.error):r.error;r.resolve&&await r.resolve(a,c);}}}function E(t){let r=[],n=[];return {...{get calls(){return r},get pending(){return n},resolve(l){let d=n.shift();d&&d.resolve(l);},reject(l){let d=n.shift();d&&d.reject(l);},resolveAll(l){for(;n.length>0;)this.resolve(l);},rejectAll(l){for(;n.length>0;)this.reject(l);},reset(){r.length=0,n.length=0;}},handler:(l,d)=>(r.push(l),new Promise((h,g)=>{n.push({requirement:l,resolve:v=>h(v),reject:g});}))}}function C(t){return "module"in t?x(t):M(t)}function x(t){let r=[],n=new Map,a$1=[],c=[],l={};if(t.mocks?.resolvers)for(let[o,e]of Object.entries(t.mocks.resolvers)){let s=[];n.set(o,s),l[o]=k({...e,calls:s});}let d={...t.module,resolvers:{...t.module.resolvers,...l}},g=a({...t,module:d,plugins:[{name:"__test-tracking__",onFactSet:(o,e,s)=>{c.push({key:o,fullKey:o,namespace:void 0,previousValue:s,newValue:e,timestamp:Date.now()});},onRequirementCreated:o=>{a$1.push(o);}},...t.plugins??[]]}),v=g.dispatch.bind(g);return g.dispatch=o=>{r.push(o),v(o);},{...g,eventHistory:r,resolverCalls:n,get allRequirements(){return a$1},getFactsHistory(){return [...c]},resetFactsHistory(){c.length=0;},async waitForIdle(o=5e3){let e=Date.now(),s=async()=>{await new Promise(m=>setTimeout(m,0));let i=g.inspect();if(i.inflight.length>0){if(Date.now()-e>o){let m=i.inflight.map(u=>u.id).join(", ");throw new Error(`[Directive] waitForIdle timed out after ${o}ms. ${i.inflight.length} resolvers still inflight: ${m}`)}return await new Promise(m=>setTimeout(m,10)),s()}};return s()},assertRequirement(o){if(!a$1.some(s=>s.requirement.type===o))throw new Error(`[Directive] Expected requirement of type "${o}" but none found`)},assertResolverCalled(o,e){let s=n.get(o)??[];if(e!==void 0){if(s.length!==e)throw new Error(`[Directive] Expected resolver "${o}" to be called ${e} times but was called ${s.length} times`)}else if(s.length===0)throw new Error(`[Directive] Expected resolver "${o}" to be called but it was not`)},assertFactSet(o,e){let s=c.filter(i=>i.key===o);if(s.length===0)throw new Error(`[Directive] Expected fact "${o}" to be set but it was not`);if(e!==void 0&&!s.some(m=>m.newValue===e)){let m=s.map(u=>JSON.stringify(u.newValue)).join(", ");throw new Error(`[Directive] Expected fact "${o}" to be set to ${JSON.stringify(e)} but got: ${m}`)}},assertFactChanges(o,e){let s=c.filter(i=>i.key===o);if(s.length!==e)throw new Error(`[Directive] Expected fact "${o}" to change ${e} times but it changed ${s.length} times`)}}}function M(t){let r=[],n=new Map,a$1=[],c=[],l={};if(t.mocks?.resolvers)for(let[e,s]of Object.entries(t.mocks.resolvers)){let i=[];n.set(e,i),l[e]=k({...s,calls:i});}let d={};for(let[e,s]of Object.entries(t.modules))d[e]={...s,resolvers:{...s.resolvers,...l}};let h=new Set(Object.keys(t.modules)),v=a({...t,modules:d,plugins:[{name:"__test-tracking__",onFactSet:(e,s,i)=>{let u=e.indexOf("::"),f,p;if(u>0){let R=e.substring(0,u);h.has(R)?(f=R,p=e.substring(u+2)):p=e;}else p=e;c.push({key:p,fullKey:e,namespace:f,previousValue:i,newValue:s,timestamp:Date.now()});},onRequirementCreated:e=>{a$1.push(e);}},...t.plugins??[]]}),y=v.dispatch.bind(v);return v.dispatch=e=>{r.push(e),y(e);},{...v,eventHistory:r,resolverCalls:n,get allRequirements(){return a$1},getFactsHistory(){return [...c]},resetFactsHistory(){c.length=0;},async waitForIdle(e=5e3){let s=Date.now(),i=async()=>{await new Promise(u=>setTimeout(u,0));let m=v.inspect();if(m.inflight.length>0){if(Date.now()-s>e){let u=m.inflight.map(f=>f.id).join(", ");throw new Error(`[Directive] waitForIdle timed out after ${e}ms. ${m.inflight.length} resolvers still inflight: ${u}`)}return await new Promise(u=>setTimeout(u,10)),i()}};return i()},assertRequirement(e){if(!a$1.some(i=>i.requirement.type===e))throw new Error(`[Directive] Expected requirement of type "${e}" but none found`)},assertResolverCalled(e,s){let i=n.get(e)??[];if(s!==void 0){if(i.length!==s)throw new Error(`[Directive] Expected resolver "${e}" to be called ${s} times but was called ${i.length} times`)}else if(i.length===0)throw new Error(`[Directive] Expected resolver "${e}" to be called but it was not`)},assertFactSet(e,s){let i=c.filter(m=>m.key===e);if(i.length===0)throw new Error(`[Directive] Expected fact "${e}" to be set but it was not`);if(s!==void 0&&!i.some(u=>u.newValue===s)){let u=i.map(f=>JSON.stringify(f.newValue)).join(", ");throw new Error(`[Directive] Expected fact "${e}" to be set to ${JSON.stringify(s)} but got: ${u}`)}},assertFactChanges(e,s){let i=c.filter(m=>m.key===e);if(i.length!==s)throw new Error(`[Directive] Expected fact "${e}" to change ${s} times but it changed ${i.length} times`)}}}function $(t,r,n){if(!b(t,r,n))throw new Error(`[Directive] Expected ${r} "${n}" to be dynamic, but it is not.`)}function P(t,r,n){if(b(t,r,n))throw new Error(`[Directive] Expected ${r} "${n}" to NOT be dynamic, but it is.`)}function b(t,r,n){switch(r){case "constraint":return t.constraints.isDynamic(n);case "resolver":return t.resolvers.isDynamic(n);case "derivation":return t.derive.isDynamic(n);case "effect":return t.effects.isDynamic(n)}}export{$ as assertDynamic,P as assertNotDynamic,T as createFakeTimers,k as createMockResolver,C as createTestSystem,S as flushMicrotasks,E as mockResolver,D as settleWithFakeTimers};//# sourceMappingURL=testing.js.map
1
+ import {a}from'./chunk-MXIBBD7Z.js';import'./chunk-PUZVNO5U.js';import'./chunk-GSXCAMNZ.js';import'./chunk-4CMO5OVZ.js';async function S(){for(let t=0;t<10;t++)await Promise.resolve();}async function D(t,r,n={}){let{totalTime:a=5e3,stepSize:c=10,maxIterations:l=1e3}=n,d=0,h=0;for(;d<a&&h<l;){if(await S(),t.inspect().inflight.length===0){await S();return}r(c),d+=c,h++;}let g=t.inspect();if(g.inflight.length>0){let v=g.inflight.map(y=>y.resolverId).join(", ");throw new Error(`[Directive] settleWithFakeTimers did not settle after ${a}ms. ${g.inflight.length} resolvers still inflight: ${v}`)}}function T(){let t=0,r=[];return {async advance(n){let a=t+n;for(;r.length>0&&r[0].time<=a;){let c=r.shift();t=c.time,c.callback(),await Promise.resolve();}t=a;},async next(){if(r.length===0)return;let n=r.shift();t=n.time,n.callback(),await Promise.resolve();},async runAll(){for(;r.length>0;)await this.next();},now(){return t},reset(){t=0,r.length=0;}}}function k(t){let r=typeof t=="string"?{requirement:(a=>a.type===t)}:t,n=r.calls??[];return {requirement:r.requirement??(a=>true),async resolve(a,c){if(n.push(a),r.delay&&await new Promise(l=>setTimeout(l,r.delay)),r.error)throw typeof r.error=="string"?new Error(r.error):r.error;r.resolve&&await r.resolve(a,c);}}}function E(t){let r=[],n=[];return {...{get calls(){return r},get pending(){return n},resolve(l){let d=n.shift();d&&d.resolve(l);},reject(l){let d=n.shift();d&&d.reject(l);},resolveAll(l){for(;n.length>0;)this.resolve(l);},rejectAll(l){for(;n.length>0;)this.reject(l);},reset(){r.length=0,n.length=0;}},handler:(l,d)=>(r.push(l),new Promise((h,g)=>{n.push({requirement:l,resolve:v=>h(v),reject:g});}))}}function C(t){return "module"in t?x(t):M(t)}function x(t){let r=[],n=new Map,a$1=[],c=[],l={};if(t.mocks?.resolvers)for(let[o,e]of Object.entries(t.mocks.resolvers)){let s=[];n.set(o,s),l[o]=k({...e,calls:s});}let d={...t.module,resolvers:{...t.module.resolvers,...l}},g=a({...t,module:d,plugins:[{name:"__test-tracking__",onFactSet:(o,e,s)=>{c.push({key:o,fullKey:o,namespace:void 0,previousValue:s,newValue:e,timestamp:Date.now()});},onRequirementCreated:o=>{a$1.push(o);}},...t.plugins??[]]}),v=g.dispatch.bind(g);return g.dispatch=o=>{r.push(o),v(o);},{...g,eventHistory:r,resolverCalls:n,get allRequirements(){return a$1},getFactsHistory(){return [...c]},resetFactsHistory(){c.length=0;},async waitForIdle(o=5e3){let e=Date.now(),s=async()=>{await new Promise(m=>setTimeout(m,0));let i=g.inspect();if(i.inflight.length>0){if(Date.now()-e>o){let m=i.inflight.map(u=>u.id).join(", ");throw new Error(`[Directive] waitForIdle timed out after ${o}ms. ${i.inflight.length} resolvers still inflight: ${m}`)}return await new Promise(m=>setTimeout(m,10)),s()}};return s()},assertRequirement(o){if(!a$1.some(s=>s.requirement.type===o))throw new Error(`[Directive] Expected requirement of type "${o}" but none found`)},assertResolverCalled(o,e){let s=n.get(o)??[];if(e!==void 0){if(s.length!==e)throw new Error(`[Directive] Expected resolver "${o}" to be called ${e} times but was called ${s.length} times`)}else if(s.length===0)throw new Error(`[Directive] Expected resolver "${o}" to be called but it was not`)},assertFactSet(o,e){let s=c.filter(i=>i.key===o);if(s.length===0)throw new Error(`[Directive] Expected fact "${o}" to be set but it was not`);if(e!==void 0&&!s.some(m=>m.newValue===e)){let m=s.map(u=>JSON.stringify(u.newValue)).join(", ");throw new Error(`[Directive] Expected fact "${o}" to be set to ${JSON.stringify(e)} but got: ${m}`)}},assertFactChanges(o,e){let s=c.filter(i=>i.key===o);if(s.length!==e)throw new Error(`[Directive] Expected fact "${o}" to change ${e} times but it changed ${s.length} times`)}}}function M(t){let r=[],n=new Map,a$1=[],c=[],l={};if(t.mocks?.resolvers)for(let[e,s]of Object.entries(t.mocks.resolvers)){let i=[];n.set(e,i),l[e]=k({...s,calls:i});}let d={};for(let[e,s]of Object.entries(t.modules))d[e]={...s,resolvers:{...s.resolvers,...l}};let h=new Set(Object.keys(t.modules)),v=a({...t,modules:d,plugins:[{name:"__test-tracking__",onFactSet:(e,s,i)=>{let u=e.indexOf("::"),f,p;if(u>0){let R=e.substring(0,u);h.has(R)?(f=R,p=e.substring(u+2)):p=e;}else p=e;c.push({key:p,fullKey:e,namespace:f,previousValue:i,newValue:s,timestamp:Date.now()});},onRequirementCreated:e=>{a$1.push(e);}},...t.plugins??[]]}),y=v.dispatch.bind(v);return v.dispatch=e=>{r.push(e),y(e);},{...v,eventHistory:r,resolverCalls:n,get allRequirements(){return a$1},getFactsHistory(){return [...c]},resetFactsHistory(){c.length=0;},async waitForIdle(e=5e3){let s=Date.now(),i=async()=>{await new Promise(u=>setTimeout(u,0));let m=v.inspect();if(m.inflight.length>0){if(Date.now()-s>e){let u=m.inflight.map(f=>f.id).join(", ");throw new Error(`[Directive] waitForIdle timed out after ${e}ms. ${m.inflight.length} resolvers still inflight: ${u}`)}return await new Promise(u=>setTimeout(u,10)),i()}};return i()},assertRequirement(e){if(!a$1.some(i=>i.requirement.type===e))throw new Error(`[Directive] Expected requirement of type "${e}" but none found`)},assertResolverCalled(e,s){let i=n.get(e)??[];if(s!==void 0){if(i.length!==s)throw new Error(`[Directive] Expected resolver "${e}" to be called ${s} times but was called ${i.length} times`)}else if(i.length===0)throw new Error(`[Directive] Expected resolver "${e}" to be called but it was not`)},assertFactSet(e,s){let i=c.filter(m=>m.key===e);if(i.length===0)throw new Error(`[Directive] Expected fact "${e}" to be set but it was not`);if(s!==void 0&&!i.some(u=>u.newValue===s)){let u=i.map(f=>JSON.stringify(f.newValue)).join(", ");throw new Error(`[Directive] Expected fact "${e}" to be set to ${JSON.stringify(s)} but got: ${u}`)}},assertFactChanges(e,s){let i=c.filter(m=>m.key===e);if(i.length!==s)throw new Error(`[Directive] Expected fact "${e}" to change ${s} times but it changed ${i.length} times`)}}}function $(t,r,n){if(!b(t,r,n))throw new Error(`[Directive] Expected ${r} "${n}" to be dynamic, but it is not.`)}function P(t,r,n){if(b(t,r,n))throw new Error(`[Directive] Expected ${r} "${n}" to NOT be dynamic, but it is.`)}function b(t,r,n){switch(r){case "constraint":return t.constraints.isDynamic(n);case "resolver":return t.resolvers.isDynamic(n);case "derivation":return t.derive.isDynamic(n);case "effect":return t.effects.isDynamic(n)}}export{$ as assertDynamic,P as assertNotDynamic,T as createFakeTimers,k as createMockResolver,C as createTestSystem,S as flushMicrotasks,E as mockResolver,D as settleWithFakeTimers};//# sourceMappingURL=testing.js.map
2
2
  //# sourceMappingURL=testing.js.map
package/dist/worker.cjs CHANGED
@@ -1,2 +1,2 @@
1
- 'use strict';function _(o){let{worker:c,onFactChange:l,onDerivationChange:y,onRequirementCreated:E,onRequirementMet:a,onError:r}=o,s=new Map,u=0,t=null,i=null,d=null,T=null;function g(e){return e?.(),null}function R(e,n){let S=s.get(e);S&&(S.resolve(n),s.delete(e));}function M(){t=g(t);}function m(){i=g(i);}function I(){d=g(d);}function b(){T=g(T);}function h(e){l?.(e.key,e.value,e.prev);}function O(e){y?.(e.key,e.value);}function W(e){E?.(e.requirement);}function C(e){a?.(e.requirementId,e.resolverId);}function P(e){r?.(e.error,e.source);}function D(e){R(e.requestId,e.snapshot);}function w(e){R(e.requestId,e.inspection);}function q(e){let n=s.get(e.requestId);n&&(e.success?n.resolve(void 0):n.reject(new Error(e.error||"Settle failed")),s.delete(e.requestId));}c.onmessage=e=>{let n=e.data;switch(n.type){case "READY":return M();case "STARTED":return m();case "STOPPED":return I();case "DESTROYED":return b();case "FACT_CHANGED":return h(n);case "DERIVATION_CHANGED":return O(n);case "REQUIREMENT_CREATED":return W(n);case "REQUIREMENT_MET":return C(n);case "ERROR":return P(n);case "SNAPSHOT_RESULT":return D(n);case "INSPECT_RESULT":return w(n);case "SETTLE_RESULT":return q(n)}},c.onerror=e=>{r?.(e.message,"worker");};function p(e){c.postMessage(e);}function k(e){return new Promise((n,S)=>{s.set(e.requestId,{resolve:n,reject:S}),p(e);})}return {init(e){return new Promise(n=>{t=n,p({type:"INIT",config:e});})},start(){return new Promise(e=>{i=e,p({type:"START"});})},stop(){return new Promise(e=>{d=e,p({type:"STOP"});})},destroy(){return new Promise(e=>{T=e,p({type:"DESTROY"});})},setFact(e,n){p({type:"SET_FACT",key:e,value:n});},setFacts(e){p({type:"SET_FACTS",facts:e});},dispatch(e){p({type:"DISPATCH",event:e});},getSnapshot(e){let n=`snapshot-${++u}`;return k({type:"GET_SNAPSHOT",options:e,requestId:n})},inspect(){let e=`inspect-${++u}`;return k({type:"INSPECT",requestId:e})},settle(e){let n=`settle-${++u}`;return k({type:"SETTLE",timeout:e,requestId:n})},terminate(){c.terminate();}}}var v=null;function f(){return v||(v=new Map),v}function N(o,c){f().set(o,c);}function x(){let o=null;async function c(t){let i=await A(t.config);return postMessage({type:"READY"}),i}function l(t){t.start(),postMessage({type:"STARTED"});}function y(t){t.stop(),postMessage({type:"STOPPED"});}function E(t){t.destroy(),postMessage({type:"DESTROYED"});}function a(t,i){let d=t.getSnapshot(i.options);postMessage({type:"SNAPSHOT_RESULT",requestId:i.requestId,snapshot:d});}function r(t,i){let d=t.inspect();postMessage({type:"INSPECT_RESULT",requestId:i.requestId,inspection:d});}async function s(t,i){try{await t.settle(i.timeout),postMessage({type:"SETTLE_RESULT",requestId:i.requestId,success:!0});}catch(d){postMessage({type:"SETTLE_RESULT",requestId:i.requestId,success:false,error:d instanceof Error?d.message:String(d)});}}async function u(t){if(t.type==="INIT"){o=await c(t);return}if(o)switch(t.type){case "START":l(o);break;case "STOP":y(o);break;case "DESTROY":E(o),o=null;break;case "SET_FACT":o.setFact(t.key,t.value);break;case "SET_FACTS":o.setFacts(t.facts);break;case "DISPATCH":o.dispatch(t.event);break;case "GET_SNAPSHOT":a(o,t);break;case "INSPECT":r(o,t);break;case "SETTLE":await s(o,t);break}}self.onmessage=async t=>{try{await u(t.data);}catch(i){postMessage({type:"ERROR",error:i instanceof Error?i.message:String(i),source:t.data.type});}};}async function A(o){let{createSystem:c}=await import('./system-QQYBNE7A.cjs'),l=f(),y={};for(let r of o.moduleNames){let s=l.get(r);if(!s)throw new Error(`[Directive Worker] Module "${r}" not registered. Call registerWorkerModule('${r}', module) before handling messages.`);y[r]=s;}let a=c({modules:y,plugins:[{name:"__worker-tracking__",onFactSet:(r,s,u)=>{postMessage({type:"FACT_CHANGED",key:r,value:s,prev:u});},onDerivationCompute:(r,s)=>{postMessage({type:"DERIVATION_CHANGED",key:r,value:s});},onRequirementCreated:r=>{postMessage({type:"REQUIREMENT_CREATED",requirement:{...r.requirement,id:r.id}});},onRequirementMet:(r,s)=>{postMessage({type:"REQUIREMENT_MET",requirementId:r.id,resolverId:s});}}],history:o.history});return {start:()=>a.start(),stop:()=>a.stop(),destroy:()=>a.destroy(),setFact:(r,s)=>{a.facts[r]=s;},setFacts:r=>{let s=a.facts;if(s.$store?.batch)s.$store.batch(()=>{for(let[u,t]of Object.entries(r))s[u]=t;});else for(let[u,t]of Object.entries(r))s[u]=t;},dispatch:r=>{a.dispatch(r);},getSnapshot:r=>a.getDistributableSnapshot(r),inspect:()=>a.inspect(),settle:r=>a.settle(r)}}exports.createWorkerClient=_;exports.getWorkerModuleRegistry=f;exports.handleWorkerMessages=x;exports.registerWorkerModule=N;//# sourceMappingURL=worker.cjs.map
1
+ 'use strict';function _(o){let{worker:c,onFactChange:l,onDerivationChange:y,onRequirementCreated:E,onRequirementMet:a,onError:r}=o,s=new Map,u=0,t=null,i=null,d=null,T=null;function g(e){return e?.(),null}function R(e,n){let S=s.get(e);S&&(S.resolve(n),s.delete(e));}function M(){t=g(t);}function m(){i=g(i);}function I(){d=g(d);}function b(){T=g(T);}function h(e){l?.(e.key,e.value,e.prev);}function O(e){y?.(e.key,e.value);}function W(e){E?.(e.requirement);}function C(e){a?.(e.requirementId,e.resolverId);}function P(e){r?.(e.error,e.source);}function D(e){R(e.requestId,e.snapshot);}function w(e){R(e.requestId,e.inspection);}function q(e){let n=s.get(e.requestId);n&&(e.success?n.resolve(void 0):n.reject(new Error(e.error||"Settle failed")),s.delete(e.requestId));}c.onmessage=e=>{let n=e.data;switch(n.type){case "READY":return M();case "STARTED":return m();case "STOPPED":return I();case "DESTROYED":return b();case "FACT_CHANGED":return h(n);case "DERIVATION_CHANGED":return O(n);case "REQUIREMENT_CREATED":return W(n);case "REQUIREMENT_MET":return C(n);case "ERROR":return P(n);case "SNAPSHOT_RESULT":return D(n);case "INSPECT_RESULT":return w(n);case "SETTLE_RESULT":return q(n)}},c.onerror=e=>{r?.(e.message,"worker");};function p(e){c.postMessage(e);}function k(e){return new Promise((n,S)=>{s.set(e.requestId,{resolve:n,reject:S}),p(e);})}return {init(e){return new Promise(n=>{t=n,p({type:"INIT",config:e});})},start(){return new Promise(e=>{i=e,p({type:"START"});})},stop(){return new Promise(e=>{d=e,p({type:"STOP"});})},destroy(){return new Promise(e=>{T=e,p({type:"DESTROY"});})},setFact(e,n){p({type:"SET_FACT",key:e,value:n});},setFacts(e){p({type:"SET_FACTS",facts:e});},dispatch(e){p({type:"DISPATCH",event:e});},getSnapshot(e){let n=`snapshot-${++u}`;return k({type:"GET_SNAPSHOT",options:e,requestId:n})},inspect(){let e=`inspect-${++u}`;return k({type:"INSPECT",requestId:e})},settle(e){let n=`settle-${++u}`;return k({type:"SETTLE",timeout:e,requestId:n})},terminate(){c.terminate();}}}var v=null;function f(){return v||(v=new Map),v}function N(o,c){f().set(o,c);}function x(){let o=null;async function c(t){let i=await A(t.config);return postMessage({type:"READY"}),i}function l(t){t.start(),postMessage({type:"STARTED"});}function y(t){t.stop(),postMessage({type:"STOPPED"});}function E(t){t.destroy(),postMessage({type:"DESTROYED"});}function a(t,i){let d=t.getSnapshot(i.options);postMessage({type:"SNAPSHOT_RESULT",requestId:i.requestId,snapshot:d});}function r(t,i){let d=t.inspect();postMessage({type:"INSPECT_RESULT",requestId:i.requestId,inspection:d});}async function s(t,i){try{await t.settle(i.timeout),postMessage({type:"SETTLE_RESULT",requestId:i.requestId,success:!0});}catch(d){postMessage({type:"SETTLE_RESULT",requestId:i.requestId,success:false,error:d instanceof Error?d.message:String(d)});}}async function u(t){if(t.type==="INIT"){o=await c(t);return}if(o)switch(t.type){case "START":l(o);break;case "STOP":y(o);break;case "DESTROY":E(o),o=null;break;case "SET_FACT":o.setFact(t.key,t.value);break;case "SET_FACTS":o.setFacts(t.facts);break;case "DISPATCH":o.dispatch(t.event);break;case "GET_SNAPSHOT":a(o,t);break;case "INSPECT":r(o,t);break;case "SETTLE":await s(o,t);break}}self.onmessage=async t=>{try{await u(t.data);}catch(i){postMessage({type:"ERROR",error:i instanceof Error?i.message:String(i),source:t.data.type});}};}async function A(o){let{createSystem:c}=await import('./system-CWUYJT43.cjs'),l=f(),y={};for(let r of o.moduleNames){let s=l.get(r);if(!s)throw new Error(`[Directive Worker] Module "${r}" not registered. Call registerWorkerModule('${r}', module) before handling messages.`);y[r]=s;}let a=c({modules:y,plugins:[{name:"__worker-tracking__",onFactSet:(r,s,u)=>{postMessage({type:"FACT_CHANGED",key:r,value:s,prev:u});},onDerivationCompute:(r,s)=>{postMessage({type:"DERIVATION_CHANGED",key:r,value:s});},onRequirementCreated:r=>{postMessage({type:"REQUIREMENT_CREATED",requirement:{...r.requirement,id:r.id}});},onRequirementMet:(r,s)=>{postMessage({type:"REQUIREMENT_MET",requirementId:r.id,resolverId:s});}}],history:o.history});return {start:()=>a.start(),stop:()=>a.stop(),destroy:()=>a.destroy(),setFact:(r,s)=>{a.facts[r]=s;},setFacts:r=>{let s=a.facts;if(s.$store?.batch)s.$store.batch(()=>{for(let[u,t]of Object.entries(r))s[u]=t;});else for(let[u,t]of Object.entries(r))s[u]=t;},dispatch:r=>{a.dispatch(r);},getSnapshot:r=>a.getDistributableSnapshot(r),inspect:()=>a.inspect(),settle:r=>a.settle(r)}}exports.createWorkerClient=_;exports.getWorkerModuleRegistry=f;exports.handleWorkerMessages=x;exports.registerWorkerModule=N;//# sourceMappingURL=worker.cjs.map
2
2
  //# sourceMappingURL=worker.cjs.map
package/dist/worker.js CHANGED
@@ -1,2 +1,2 @@
1
- function _(o){let{worker:c,onFactChange:l,onDerivationChange:y,onRequirementCreated:E,onRequirementMet:a,onError:r}=o,s=new Map,u=0,t=null,i=null,d=null,T=null;function g(e){return e?.(),null}function R(e,n){let S=s.get(e);S&&(S.resolve(n),s.delete(e));}function M(){t=g(t);}function m(){i=g(i);}function I(){d=g(d);}function b(){T=g(T);}function h(e){l?.(e.key,e.value,e.prev);}function O(e){y?.(e.key,e.value);}function W(e){E?.(e.requirement);}function C(e){a?.(e.requirementId,e.resolverId);}function P(e){r?.(e.error,e.source);}function D(e){R(e.requestId,e.snapshot);}function w(e){R(e.requestId,e.inspection);}function q(e){let n=s.get(e.requestId);n&&(e.success?n.resolve(void 0):n.reject(new Error(e.error||"Settle failed")),s.delete(e.requestId));}c.onmessage=e=>{let n=e.data;switch(n.type){case "READY":return M();case "STARTED":return m();case "STOPPED":return I();case "DESTROYED":return b();case "FACT_CHANGED":return h(n);case "DERIVATION_CHANGED":return O(n);case "REQUIREMENT_CREATED":return W(n);case "REQUIREMENT_MET":return C(n);case "ERROR":return P(n);case "SNAPSHOT_RESULT":return D(n);case "INSPECT_RESULT":return w(n);case "SETTLE_RESULT":return q(n)}},c.onerror=e=>{r?.(e.message,"worker");};function p(e){c.postMessage(e);}function k(e){return new Promise((n,S)=>{s.set(e.requestId,{resolve:n,reject:S}),p(e);})}return {init(e){return new Promise(n=>{t=n,p({type:"INIT",config:e});})},start(){return new Promise(e=>{i=e,p({type:"START"});})},stop(){return new Promise(e=>{d=e,p({type:"STOP"});})},destroy(){return new Promise(e=>{T=e,p({type:"DESTROY"});})},setFact(e,n){p({type:"SET_FACT",key:e,value:n});},setFacts(e){p({type:"SET_FACTS",facts:e});},dispatch(e){p({type:"DISPATCH",event:e});},getSnapshot(e){let n=`snapshot-${++u}`;return k({type:"GET_SNAPSHOT",options:e,requestId:n})},inspect(){let e=`inspect-${++u}`;return k({type:"INSPECT",requestId:e})},settle(e){let n=`settle-${++u}`;return k({type:"SETTLE",timeout:e,requestId:n})},terminate(){c.terminate();}}}var v=null;function f(){return v||(v=new Map),v}function N(o,c){f().set(o,c);}function x(){let o=null;async function c(t){let i=await A(t.config);return postMessage({type:"READY"}),i}function l(t){t.start(),postMessage({type:"STARTED"});}function y(t){t.stop(),postMessage({type:"STOPPED"});}function E(t){t.destroy(),postMessage({type:"DESTROYED"});}function a(t,i){let d=t.getSnapshot(i.options);postMessage({type:"SNAPSHOT_RESULT",requestId:i.requestId,snapshot:d});}function r(t,i){let d=t.inspect();postMessage({type:"INSPECT_RESULT",requestId:i.requestId,inspection:d});}async function s(t,i){try{await t.settle(i.timeout),postMessage({type:"SETTLE_RESULT",requestId:i.requestId,success:!0});}catch(d){postMessage({type:"SETTLE_RESULT",requestId:i.requestId,success:false,error:d instanceof Error?d.message:String(d)});}}async function u(t){if(t.type==="INIT"){o=await c(t);return}if(o)switch(t.type){case "START":l(o);break;case "STOP":y(o);break;case "DESTROY":E(o),o=null;break;case "SET_FACT":o.setFact(t.key,t.value);break;case "SET_FACTS":o.setFacts(t.facts);break;case "DISPATCH":o.dispatch(t.event);break;case "GET_SNAPSHOT":a(o,t);break;case "INSPECT":r(o,t);break;case "SETTLE":await s(o,t);break}}self.onmessage=async t=>{try{await u(t.data);}catch(i){postMessage({type:"ERROR",error:i instanceof Error?i.message:String(i),source:t.data.type});}};}async function A(o){let{createSystem:c}=await import('./system-AGVKMAYF.js'),l=f(),y={};for(let r of o.moduleNames){let s=l.get(r);if(!s)throw new Error(`[Directive Worker] Module "${r}" not registered. Call registerWorkerModule('${r}', module) before handling messages.`);y[r]=s;}let a=c({modules:y,plugins:[{name:"__worker-tracking__",onFactSet:(r,s,u)=>{postMessage({type:"FACT_CHANGED",key:r,value:s,prev:u});},onDerivationCompute:(r,s)=>{postMessage({type:"DERIVATION_CHANGED",key:r,value:s});},onRequirementCreated:r=>{postMessage({type:"REQUIREMENT_CREATED",requirement:{...r.requirement,id:r.id}});},onRequirementMet:(r,s)=>{postMessage({type:"REQUIREMENT_MET",requirementId:r.id,resolverId:s});}}],history:o.history});return {start:()=>a.start(),stop:()=>a.stop(),destroy:()=>a.destroy(),setFact:(r,s)=>{a.facts[r]=s;},setFacts:r=>{let s=a.facts;if(s.$store?.batch)s.$store.batch(()=>{for(let[u,t]of Object.entries(r))s[u]=t;});else for(let[u,t]of Object.entries(r))s[u]=t;},dispatch:r=>{a.dispatch(r);},getSnapshot:r=>a.getDistributableSnapshot(r),inspect:()=>a.inspect(),settle:r=>a.settle(r)}}export{_ as createWorkerClient,f as getWorkerModuleRegistry,x as handleWorkerMessages,N as registerWorkerModule};//# sourceMappingURL=worker.js.map
1
+ function _(o){let{worker:c,onFactChange:l,onDerivationChange:y,onRequirementCreated:E,onRequirementMet:a,onError:r}=o,s=new Map,u=0,t=null,i=null,d=null,T=null;function g(e){return e?.(),null}function R(e,n){let S=s.get(e);S&&(S.resolve(n),s.delete(e));}function M(){t=g(t);}function m(){i=g(i);}function I(){d=g(d);}function b(){T=g(T);}function h(e){l?.(e.key,e.value,e.prev);}function O(e){y?.(e.key,e.value);}function W(e){E?.(e.requirement);}function C(e){a?.(e.requirementId,e.resolverId);}function P(e){r?.(e.error,e.source);}function D(e){R(e.requestId,e.snapshot);}function w(e){R(e.requestId,e.inspection);}function q(e){let n=s.get(e.requestId);n&&(e.success?n.resolve(void 0):n.reject(new Error(e.error||"Settle failed")),s.delete(e.requestId));}c.onmessage=e=>{let n=e.data;switch(n.type){case "READY":return M();case "STARTED":return m();case "STOPPED":return I();case "DESTROYED":return b();case "FACT_CHANGED":return h(n);case "DERIVATION_CHANGED":return O(n);case "REQUIREMENT_CREATED":return W(n);case "REQUIREMENT_MET":return C(n);case "ERROR":return P(n);case "SNAPSHOT_RESULT":return D(n);case "INSPECT_RESULT":return w(n);case "SETTLE_RESULT":return q(n)}},c.onerror=e=>{r?.(e.message,"worker");};function p(e){c.postMessage(e);}function k(e){return new Promise((n,S)=>{s.set(e.requestId,{resolve:n,reject:S}),p(e);})}return {init(e){return new Promise(n=>{t=n,p({type:"INIT",config:e});})},start(){return new Promise(e=>{i=e,p({type:"START"});})},stop(){return new Promise(e=>{d=e,p({type:"STOP"});})},destroy(){return new Promise(e=>{T=e,p({type:"DESTROY"});})},setFact(e,n){p({type:"SET_FACT",key:e,value:n});},setFacts(e){p({type:"SET_FACTS",facts:e});},dispatch(e){p({type:"DISPATCH",event:e});},getSnapshot(e){let n=`snapshot-${++u}`;return k({type:"GET_SNAPSHOT",options:e,requestId:n})},inspect(){let e=`inspect-${++u}`;return k({type:"INSPECT",requestId:e})},settle(e){let n=`settle-${++u}`;return k({type:"SETTLE",timeout:e,requestId:n})},terminate(){c.terminate();}}}var v=null;function f(){return v||(v=new Map),v}function N(o,c){f().set(o,c);}function x(){let o=null;async function c(t){let i=await A(t.config);return postMessage({type:"READY"}),i}function l(t){t.start(),postMessage({type:"STARTED"});}function y(t){t.stop(),postMessage({type:"STOPPED"});}function E(t){t.destroy(),postMessage({type:"DESTROYED"});}function a(t,i){let d=t.getSnapshot(i.options);postMessage({type:"SNAPSHOT_RESULT",requestId:i.requestId,snapshot:d});}function r(t,i){let d=t.inspect();postMessage({type:"INSPECT_RESULT",requestId:i.requestId,inspection:d});}async function s(t,i){try{await t.settle(i.timeout),postMessage({type:"SETTLE_RESULT",requestId:i.requestId,success:!0});}catch(d){postMessage({type:"SETTLE_RESULT",requestId:i.requestId,success:false,error:d instanceof Error?d.message:String(d)});}}async function u(t){if(t.type==="INIT"){o=await c(t);return}if(o)switch(t.type){case "START":l(o);break;case "STOP":y(o);break;case "DESTROY":E(o),o=null;break;case "SET_FACT":o.setFact(t.key,t.value);break;case "SET_FACTS":o.setFacts(t.facts);break;case "DISPATCH":o.dispatch(t.event);break;case "GET_SNAPSHOT":a(o,t);break;case "INSPECT":r(o,t);break;case "SETTLE":await s(o,t);break}}self.onmessage=async t=>{try{await u(t.data);}catch(i){postMessage({type:"ERROR",error:i instanceof Error?i.message:String(i),source:t.data.type});}};}async function A(o){let{createSystem:c}=await import('./system-TM7ZQZYW.js'),l=f(),y={};for(let r of o.moduleNames){let s=l.get(r);if(!s)throw new Error(`[Directive Worker] Module "${r}" not registered. Call registerWorkerModule('${r}', module) before handling messages.`);y[r]=s;}let a=c({modules:y,plugins:[{name:"__worker-tracking__",onFactSet:(r,s,u)=>{postMessage({type:"FACT_CHANGED",key:r,value:s,prev:u});},onDerivationCompute:(r,s)=>{postMessage({type:"DERIVATION_CHANGED",key:r,value:s});},onRequirementCreated:r=>{postMessage({type:"REQUIREMENT_CREATED",requirement:{...r.requirement,id:r.id}});},onRequirementMet:(r,s)=>{postMessage({type:"REQUIREMENT_MET",requirementId:r.id,resolverId:s});}}],history:o.history});return {start:()=>a.start(),stop:()=>a.stop(),destroy:()=>a.destroy(),setFact:(r,s)=>{a.facts[r]=s;},setFacts:r=>{let s=a.facts;if(s.$store?.batch)s.$store.batch(()=>{for(let[u,t]of Object.entries(r))s[u]=t;});else for(let[u,t]of Object.entries(r))s[u]=t;},dispatch:r=>{a.dispatch(r);},getSnapshot:r=>a.getDistributableSnapshot(r),inspect:()=>a.inspect(),settle:r=>a.settle(r)}}export{_ as createWorkerClient,f as getWorkerModuleRegistry,x as handleWorkerMessages,N as registerWorkerModule};//# sourceMappingURL=worker.js.map
2
2
  //# sourceMappingURL=worker.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@directive-run/core",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "The constraint-driven runtime for TypeScript. Declare what must be true — the runtime makes it happen.",
5
5
  "license": "(MIT OR Apache-2.0)",
6
6
  "author": "Jason Comes",