@doeixd/machine 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -43,6 +43,15 @@ function tag(nameOrObj, props) {
43
43
  }
44
44
  return { tag: nameOrObj };
45
45
  }
46
+ ((tag2) => {
47
+ function factory2(name) {
48
+ if (name) {
49
+ return (props) => tag2(name, props);
50
+ }
51
+ return (name2) => (props) => tag2(name2, props);
52
+ }
53
+ tag2.factory = factory2;
54
+ })(tag || (tag = {}));
46
55
  function isState(machine2, tagValue) {
47
56
  return machine2.tag === tagValue;
48
57
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/minimal.ts", "../../../src/types.ts"],
4
- "sourcesContent": ["/**\n * @fileoverview A minimal, type-safe typestate library.\n */\n\n// ============================================================================\n// CORE TYPES (MUST BE IN THIS FILE FOR INFERENCE)\n// ============================================================================\n\n/**\n * A state machine combining context (state data) with transitions (methods).\n */\nexport type Machine<C extends object, T> = C & T;\n\n// Re-export utilities\nexport * from './types';\nimport { type Tagged, type TagOf, type Cleanup } from './types';\n\n// ============================================================================\n// CORE: machine()\n// ============================================================================\n\n/**\n * Creates a state machine by bundling context with transitions.\n * \n * Note: 'any' is used in the 'next' callback signature to break recursive \n * inference cycles. This is required for TypeScript to correctly infer \n * transitions 'T' from the return object of the factory.\n */\nexport function machine<C extends object, T>(\n context: C,\n factory: (ctx: C, next: (context: C) => any) => T\n): C & T {\n const next = (newContext: C) => machine(newContext, factory);\n const transitions = factory(context, next);\n return Object.assign({}, context, transitions) as C & T;\n}\n\n// ============================================================================\n// PATTERN MATCHING: match()\n// ============================================================================\n\n/**\n * Handler functions for each case in a tagged union.\n */\nexport type MatchCases<T extends Tagged, R> = {\n [K in TagOf<T>]: (state: Extract<T, { tag: K }>) => R;\n};\n\n/**\n * Exhaustive pattern matching on tagged unions.\n */\nexport function match<T extends Tagged, R>(\n state: T,\n cases: MatchCases<T, R>\n): R {\n const handler = cases[state.tag as TagOf<T>];\n return handler(state as Extract<T, { tag: typeof state.tag }>);\n}\n\n// ============================================================================\n// EFFECTS: runnable() + run()\n// ============================================================================\n\nexport interface Lifecycle<E extends string = string> {\n onEnter?: (send: Send<E>) => Cleanup;\n}\n\nexport type Send<E extends string = string> = (event: E, ...args: unknown[]) => void;\n\nexport type LifecycleMap<Tags extends string> = {\n [K in Tags]?: Lifecycle<string>;\n};\n\nconst LIFECYCLE = Symbol('lifecycle');\n\nexport type RunnableMachine<M, Tags extends string> = M & {\n [LIFECYCLE]?: LifecycleMap<Tags>;\n};\n\nexport function runnable<\n M extends Tagged,\n Tags extends string = TagOf<M>\n>(\n initialMachine: M,\n lifecycles: LifecycleMap<Tags>\n): RunnableMachine<M, Tags> {\n const result = { ...initialMachine } as RunnableMachine<M, Tags>;\n result[LIFECYCLE] = lifecycles;\n return result;\n}\n\nexport interface Runner<M> {\n get: () => M;\n send: Send<string>;\n stop: () => void;\n subscribe: (listener: (state: M) => void) => () => void;\n}\n\nexport function run<M extends Tagged>(\n initial: RunnableMachine<M, string>\n): Runner<M> {\n let current: RunnableMachine<M, string> = initial;\n let cleanup: Cleanup | null = null;\n const listeners = new Set<(state: M) => void>();\n\n const notify = () => {\n listeners.forEach((fn) => fn(current as M));\n };\n\n const enter = () => {\n if (cleanup) {\n cleanup();\n cleanup = null;\n }\n const lifecycles = current[LIFECYCLE];\n const tagValue = (current as Tagged).tag;\n const lifecycle = lifecycles?.[tagValue];\n if (lifecycle?.onEnter) {\n cleanup = lifecycle.onEnter(send);\n }\n };\n\n const send: Send<string> = (event, ...args) => {\n const transition = (current as Record<string, unknown>)[event];\n if (typeof transition === 'function') {\n const nextValue = (transition as (...a: unknown[]) => unknown)(...args);\n if (nextValue && typeof nextValue === 'object' && 'tag' in nextValue) {\n const nextMachine = nextValue as RunnableMachine<M, string>;\n if (!nextMachine[LIFECYCLE] && current[LIFECYCLE]) {\n nextMachine[LIFECYCLE] = current[LIFECYCLE];\n }\n current = nextMachine;\n enter();\n notify();\n }\n }\n };\n\n enter();\n\n return {\n get: () => current as M,\n send,\n stop: () => {\n if (cleanup) {\n cleanup();\n cleanup = null;\n }\n listeners.clear();\n },\n subscribe: (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n }\n };\n}\n\n// ============================================================================\n// COMPOSITION: withChildren()\n// ============================================================================\n\nexport type ParentMachine<P extends object, C extends Record<string, object>> =\n P & { [K in keyof C]: ChildProxy<P, C, C[K]> };\n\ntype ChildProxy<P extends object, C extends Record<string, object>, Child extends object> = {\n [K in keyof Child]: Child[K] extends (...args: infer A) => unknown\n ? (...args: A) => ParentMachine<P, C>\n : Child[K];\n};\n\nexport function withChildren<\n P extends object,\n C extends Record<string, object>\n>(\n parent: P,\n children: C\n): ParentMachine<P, C> {\n const result = { ...parent } as ParentMachine<P, C>;\n\n for (const key of Object.keys(children) as Array<keyof C>) {\n const child = children[key];\n\n const childProxy = new Proxy(child, {\n get(target, prop: string | symbol) {\n const value = (target as Record<string | symbol, unknown>)[prop];\n\n if (typeof value === 'function') {\n return (...args: unknown[]) => {\n const nextChild = (value as (...a: unknown[]) => unknown)(...args);\n return withChildren(\n { ...parent },\n { ...children, [key]: nextChild as object } as C\n );\n };\n }\n\n return value;\n }\n }) as unknown as ChildProxy<P, C, C[keyof C]>;\n (result as Record<string, unknown>)[key as string] = childProxy;\n }\n\n return result;\n}\n\n// ============================================================================\n// UTILITIES\n// ============================================================================\n\n// Re-exports from types.ts are enough\n\nexport function factory<C extends object>() {\n return <T>(\n transitionFactory: (ctx: C, next: (context: C) => any) => T\n ) => (context: C): C & T => machine(context, transitionFactory);\n}\n\n/**\n * Extracts the union of all possible machine states from a union factory.\n */\nexport type UnionOf<F extends (...args: any[]) => any> = ReturnType<F>;\n\n/**\n * Creates a union factory that routes to different transition factories based on a tag.\n * This is the primary way to define multi-state machines (Type-States) in the minimal API.\n * \n * @param factories - A map of tags to transition factories.\n * @returns A single factory function that produces the correct machine based on the input context's tag.\n * \n * @example\n * const auth = union({\n * idle: (ctx, next) => ({ login: () => next({ tag: 'loggedIn', user: 'alice' }) }),\n * loggedIn: (ctx, next) => ({ logout: () => next({ tag: 'idle' }) })\n * });\n * \n * const m = auth({ tag: 'idle' });\n * const next = m.login(); // Transition to loggedIn state\n */\n/**\n * Creates a union factory that routes to different transition factories based on a tag.\n * This is the primary way to define multi-state machines (Type-States) in the minimal API.\n * \n * @example\n * const auth = union<AuthState>()({\n * idle: (ctx, next) => ({ login: () => next({ tag: 'loggedIn', user: 'alice' }) }),\n * loggedIn: (ctx, next) => ({ logout: () => next({ tag: 'idle' }) })\n * });\n * \n * const m = auth({ tag: 'idle' });\n * const next = m.login(); // Transition to loggedIn state\n */\nexport function union<C extends Tagged>() {\n return <F extends { [K in TagOf<C>]: (ctx: Extract<C, { tag: K }>, next: (c: C) => any) => any }>(\n factories: F\n ) => {\n type MachineMap = {\n [K in TagOf<C> & keyof F]: F[K] extends (ctx: any, next: any) => infer T\n ? Extract<C, { tag: K }> & T\n : never\n };\n\n const resultFactory = <T extends C>(context: T): MachineMap[T['tag'] & keyof MachineMap] => {\n const factoryFn = (factories as any)[(context as any).tag];\n return machine(context as any, (ctx: any, _next: any) => factoryFn(ctx as any, resultFactory as any)) as any;\n };\n\n return resultFactory;\n };\n}\n", "/**\n * @fileoverview Utility types for the machine library.\n */\n\n/**\n * Extracts the context type from a machine (works with regular and minimal machines).\n */\nexport type Context<M> = M extends { readonly context: infer C } ? C : M;\n\n/**\n * Extracts the transitions type from a machine (works with regular and minimal machines).\n */\nexport type Transitions<M> = M extends { readonly context: any } & infer T ? T : M;\n\n/**\n * A discriminated union type representing an event that can be dispatched to a machine.\n */\nexport type Tagged<T extends string = string> = { readonly tag: T };\n\n/**\n * Extracts the tag literal type from a tagged object.\n */\nexport type TagOf<T extends Tagged> = T['tag'];\n\n/**\n * Cleanup function returned from onEnter.\n */\nexport type Cleanup = () => void;\n\n/**\n * Extracts the return type from a factory function.\n * @example\n * const factory = () => machine({ count: 0 }, { ... });\n * type MyMachine = InferMachine<typeof factory>;\n */\nexport type InferMachine<F extends (...args: any[]) => any> = ReturnType<F>;\n\n/**\n * Alias for InferMachine, more descriptive for state machine contexts.\n */\nexport type MachineOf<F extends (...args: any[]) => any> = InferMachine<F>;\n\n/**\n * Creates a tagged object or adds a tag to an existing object.\n */\nexport function tag<T extends string>(name: T): { tag: T };\nexport function tag<T extends string, O extends object>(name: T, props: O): { tag: T } & O;\nexport function tag<const T extends { tag: string }>(obj: T): T;\nexport function tag<T extends string, O extends object>(\n nameOrObj: T | { tag: string },\n props?: O\n): { tag: T } | ({ tag: T } & O) | { tag: string } {\n if (typeof nameOrObj === 'object') {\n return nameOrObj;\n }\n if (props) {\n return { ...props, tag: nameOrObj };\n }\n return { tag: nameOrObj };\n}\n\n/**\n * Type guard to check if a machine or object is in a specific state.\n */\nexport function isState<M extends Tagged, Tag extends TagOf<M>>(\n machine: M,\n tagValue: Tag\n): machine is Extract<M, { tag: Tag }> {\n return (machine as Tagged).tag === tagValue;\n}\n\n/**\n * Recursively freezes an object and its properties.\n */\nexport function freeze<T extends object>(obj: T): Readonly<T> {\n Object.freeze(obj);\n if (typeof (Object as any).values === 'function') {\n for (const value of Object.values(obj)) {\n if (value && typeof value === 'object') {\n freeze(value);\n }\n }\n }\n return obj;\n}\n"],
5
- "mappings": "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",
6
- "names": ["machine", "factory"]
4
+ "sourcesContent": ["/**\n * @fileoverview A minimal, type-safe typestate library.\n */\n\n// ============================================================================\n// CORE TYPES (MUST BE IN THIS FILE FOR INFERENCE)\n// ============================================================================\n\n/**\n * A state machine combining context (state data) with transitions (methods).\n */\nexport type Machine<C extends object, T> = C & T;\n\n// Re-export utilities\nexport * from './types';\nimport { type Tagged, type TagOf, type Cleanup } from './types';\n\n// ============================================================================\n// CORE: machine()\n// ============================================================================\n\n/**\n * Creates a state machine by bundling context with transitions.\n * \n * Note: 'any' is used in the 'next' callback signature to break recursive \n * inference cycles. This is required for TypeScript to correctly infer \n * transitions 'T' from the return object of the factory.\n */\nexport function machine<C extends object, T>(\n context: C,\n factory: (ctx: C, next: (context: C) => any) => T\n): C & T {\n const next = (newContext: C) => machine(newContext, factory);\n const transitions = factory(context, next);\n return Object.assign({}, context, transitions) as C & T;\n}\n\n// ============================================================================\n// PATTERN MATCHING: match()\n// ============================================================================\n\n/**\n * Handler functions for each case in a tagged union.\n */\nexport type MatchCases<T extends Tagged, R> = {\n [K in TagOf<T>]: (state: Extract<T, { tag: K }>) => R;\n};\n\n/**\n * Exhaustive pattern matching on tagged unions.\n */\nexport function match<T extends Tagged, R>(\n state: T,\n cases: MatchCases<T, R>\n): R {\n const handler = cases[state.tag as TagOf<T>];\n return handler(state as Extract<T, { tag: typeof state.tag }>);\n}\n\n// ============================================================================\n// EFFECTS: runnable() + run()\n// ============================================================================\n\nexport interface Lifecycle<E extends string = string> {\n onEnter?: (send: Send<E>) => Cleanup;\n}\n\nexport type Send<E extends string = string> = (event: E, ...args: unknown[]) => void;\n\nexport type LifecycleMap<Tags extends string> = {\n [K in Tags]?: Lifecycle<string>;\n};\n\nconst LIFECYCLE = Symbol('lifecycle');\n\nexport type RunnableMachine<M, Tags extends string> = M & {\n [LIFECYCLE]?: LifecycleMap<Tags>;\n};\n\nexport function runnable<\n M extends Tagged,\n Tags extends string = TagOf<M>\n>(\n initialMachine: M,\n lifecycles: LifecycleMap<Tags>\n): RunnableMachine<M, Tags> {\n const result = { ...initialMachine } as RunnableMachine<M, Tags>;\n result[LIFECYCLE] = lifecycles;\n return result;\n}\n\nexport interface Runner<M> {\n get: () => M;\n send: Send<string>;\n stop: () => void;\n subscribe: (listener: (state: M) => void) => () => void;\n}\n\nexport function run<M extends Tagged>(\n initial: RunnableMachine<M, string>\n): Runner<M> {\n let current: RunnableMachine<M, string> = initial;\n let cleanup: Cleanup | null = null;\n const listeners = new Set<(state: M) => void>();\n\n const notify = () => {\n listeners.forEach((fn) => fn(current as M));\n };\n\n const enter = () => {\n if (cleanup) {\n cleanup();\n cleanup = null;\n }\n const lifecycles = current[LIFECYCLE];\n const tagValue = (current as Tagged).tag;\n const lifecycle = lifecycles?.[tagValue];\n if (lifecycle?.onEnter) {\n cleanup = lifecycle.onEnter(send);\n }\n };\n\n const send: Send<string> = (event, ...args) => {\n const transition = (current as Record<string, unknown>)[event];\n if (typeof transition === 'function') {\n const nextValue = (transition as (...a: unknown[]) => unknown)(...args);\n if (nextValue && typeof nextValue === 'object' && 'tag' in nextValue) {\n const nextMachine = nextValue as RunnableMachine<M, string>;\n if (!nextMachine[LIFECYCLE] && current[LIFECYCLE]) {\n nextMachine[LIFECYCLE] = current[LIFECYCLE];\n }\n current = nextMachine;\n enter();\n notify();\n }\n }\n };\n\n enter();\n\n return {\n get: () => current as M,\n send,\n stop: () => {\n if (cleanup) {\n cleanup();\n cleanup = null;\n }\n listeners.clear();\n },\n subscribe: (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n }\n };\n}\n\n// ============================================================================\n// COMPOSITION: withChildren()\n// ============================================================================\n\nexport type ParentMachine<P extends object, C extends Record<string, object>> =\n P & { [K in keyof C]: ChildProxy<P, C, C[K]> };\n\ntype ChildProxy<P extends object, C extends Record<string, object>, Child extends object> = {\n [K in keyof Child]: Child[K] extends (...args: infer A) => unknown\n ? (...args: A) => ParentMachine<P, C>\n : Child[K];\n};\n\nexport function withChildren<\n P extends object,\n C extends Record<string, object>\n>(\n parent: P,\n children: C\n): ParentMachine<P, C> {\n const result = { ...parent } as ParentMachine<P, C>;\n\n for (const key of Object.keys(children) as Array<keyof C>) {\n const child = children[key];\n\n const childProxy = new Proxy(child, {\n get(target, prop: string | symbol) {\n const value = (target as Record<string | symbol, unknown>)[prop];\n\n if (typeof value === 'function') {\n return (...args: unknown[]) => {\n const nextChild = (value as (...a: unknown[]) => unknown)(...args);\n return withChildren(\n { ...parent },\n { ...children, [key]: nextChild as object } as C\n );\n };\n }\n\n return value;\n }\n }) as unknown as ChildProxy<P, C, C[keyof C]>;\n (result as Record<string, unknown>)[key as string] = childProxy;\n }\n\n return result;\n}\n\n// ============================================================================\n// UTILITIES\n// ============================================================================\n\n// Re-exports from types.ts are enough\n\nexport function factory<C extends object>() {\n return <T>(\n transitionFactory: (ctx: C, next: (context: C) => any) => T\n ) => (context: C): C & T => machine(context, transitionFactory);\n}\n\n/**\n * Extracts the union of all possible machine states from a union factory.\n */\nexport type UnionOf<F extends (...args: any[]) => any> = ReturnType<F>;\n\n/**\n * Creates a union factory that routes to different transition factories based on a tag.\n * This is the primary way to define multi-state machines (Type-States) in the minimal API.\n * \n * @param factories - A map of tags to transition factories.\n * @returns A single factory function that produces the correct machine based on the input context's tag.\n * \n * @example\n * const auth = union({\n * idle: (ctx, next) => ({ login: () => next({ tag: 'loggedIn', user: 'alice' }) }),\n * loggedIn: (ctx, next) => ({ logout: () => next({ tag: 'idle' }) })\n * });\n * \n * const m = auth({ tag: 'idle' });\n * const next = m.login(); // Transition to loggedIn state\n */\n/**\n * Creates a union factory that routes to different transition factories based on a tag.\n * This is the primary way to define multi-state machines (Type-States) in the minimal API.\n * \n * @example\n * const auth = union<AuthState>()({\n * idle: (ctx, next) => ({ login: () => next({ tag: 'loggedIn', user: 'alice' }) }),\n * loggedIn: (ctx, next) => ({ logout: () => next({ tag: 'idle' }) })\n * });\n * \n * const m = auth({ tag: 'idle' });\n * const next = m.login(); // Transition to loggedIn state\n */\nexport function union<C extends Tagged>() {\n return <F extends { [K in TagOf<C>]: (ctx: Extract<C, { tag: K }>, next: (c: C) => any) => any }>(\n factories: F\n ) => {\n type MachineMap = {\n [K in TagOf<C> & keyof F]: F[K] extends (ctx: any, next: any) => infer T\n ? Extract<C, { tag: K }> & T\n : never\n };\n\n const resultFactory = <T extends C>(context: T): MachineMap[T['tag'] & keyof MachineMap] => {\n const factoryFn = (factories as any)[(context as any).tag];\n return machine(context as any, (ctx: any, _next: any) => factoryFn(ctx as any, resultFactory as any)) as any;\n };\n\n return resultFactory;\n };\n}\n", "/**\n * @fileoverview Utility types for the machine library.\n */\n\n/**\n * Extracts the context type from a machine (works with regular and minimal machines).\n */\nexport type Context<M> = M extends { readonly context: infer C } ? C : M;\n\n/**\n * Extracts the transitions type from a machine (works with regular and minimal machines).\n */\nexport type Transitions<M> = M extends { readonly context: any } & infer T ? T : M;\n\n/**\n * A discriminated union type representing an event that can be dispatched to a machine.\n */\nexport type Tagged<T extends string = string> = { readonly tag: T };\n\n/**\n * Extracts the tag literal type from a tagged object.\n */\nexport type TagOf<T extends Tagged> = T['tag'];\n\n/**\n * Utility to define a union of tagged states from a mapping type.\n * @example\n * type PickMode = States<{\n * idle: {},\n * active: { isCloseMode: boolean; timeoutId: number }\n * }>;\n */\nexport type States<M extends Record<string, object>> = {\n [K in keyof M]: { readonly tag: K } & M[K]\n}[keyof M];\n\n/**\n * Cleanup function returned from onEnter.\n */\nexport type Cleanup = () => void;\n\n/**\n * Extracts the return type from a factory function.\n * @example\n * const factory = () => machine({ count: 0 }, { ... });\n * type MyMachine = InferMachine<typeof factory>;\n */\nexport type InferMachine<F extends (...args: any[]) => any> = ReturnType<F>;\n\n/**\n * Alias for InferMachine, more descriptive for state machine contexts.\n */\nexport type MachineOf<F extends (...args: any[]) => any> = InferMachine<F>;\n\n/**\n * Creates a tagged object or adds a tag to an existing object.\n */\nexport function tag<T extends string>(name: T): { tag: T };\nexport function tag<T extends string, O extends object>(name: T, props: O): { tag: T } & O;\nexport function tag<const T extends { tag: string }>(obj: T): T;\nexport function tag<T extends string, O extends object>(\n nameOrObj: T | { tag: string },\n props?: O\n): { tag: T } | ({ tag: T } & O) | { tag: string } {\n if (typeof nameOrObj === 'object') {\n return nameOrObj;\n }\n if (props) {\n return { ...props, tag: nameOrObj };\n }\n return { tag: nameOrObj };\n}\n\n/**\n * Namespace for tag factory utility.\n */\nexport namespace tag {\n /**\n * Creates a pre-bound tag factory for a specific state.\n * \n * @typeParam C - Context (data) type\n * @typeParam T - Transitions type (optional, for machine return types)\n * @param name - The tag name for this state\n * @returns A function that takes context data and returns a tagged object\n * \n * @typeParam C - Context (data) type\n * @typeParam T - Transitions type (optional)\n * @param name - The tag name\n * @example const idle = tag.factory<{ count: number }>('idle');\n */\n export function factory<C extends object, T extends object = {}>(name: string): (props: C) => { readonly tag: string } & C & T;\n /**\n * Creates a curried tag factory, ideal for use with the States utility.\n * @example const state = tag.factory<AppState>()('idle')({ count: 0 });\n */\n export function factory<C extends object, T extends object = {}>(): <K extends string>(name: K) => (props: Omit<Extract<C, { tag: K }>, 'tag'>) => (Extract<C, { tag: K }> extends never ? { readonly tag: K } & C : Extract<C, { tag: K }>) & T;\n\n export function factory(name?: string) {\n if (name) {\n return (props: any) => tag(name, props);\n }\n return (name: string) => (props: any) => tag(name, props);\n }\n}\n\n/**\n * Type guard to check if a machine or object is in a specific state.\n */\nexport function isState<M extends Tagged, Tag extends TagOf<M>>(\n machine: M,\n tagValue: Tag\n): machine is Extract<M, { tag: Tag }> {\n return (machine as Tagged).tag === tagValue;\n}\n\n/**\n * Recursively freezes an object and its properties.\n */\nexport function freeze<T extends object>(obj: T): Readonly<T> {\n Object.freeze(obj);\n if (typeof (Object as any).values === 'function') {\n for (const value of Object.values(obj)) {\n if (value && typeof value === 'object') {\n freeze(value);\n }\n }\n }\n return obj;\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["tag", "factory", "name", "machine", "factory"]
7
7
  }
@@ -1,4 +1,4 @@
1
- "use strict";var L=Object.defineProperty;var xt=Object.getOwnPropertyDescriptor;var Mt=Object.getOwnPropertyNames;var ft=Object.prototype.hasOwnProperty;var V=(e,t)=>{for(var n in t)L(e,n,{get:t[n],enumerable:!0})},pt=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Mt(t))!ft.call(e,o)&&o!==n&&L(e,o,{get:()=>t[o],enumerable:!(r=xt(t,o))||r.enumerable});return e};var ht=e=>pt(L({},"__esModule",{value:!0}),e);var un={};V(un,{Actor:()=>A,BoundMachine:()=>D,CANCEL:()=>ne,META_KEY:()=>Fe,MachineBase:()=>m,MachineExclude:()=>We,MachineUnion:()=>$e,MiddlewareBuilder:()=>I,MultiMachineBase:()=>Y,action:()=>Ke,bindTransitions:()=>xe,branch:()=>Kt,call:()=>Je,callWithContext:()=>it,chain:()=>At,classCase:()=>et,combine:()=>kt,combineFactories:()=>on,compose:()=>jt,composeTyped:()=>N,createActor:()=>F,createAsyncMachine:()=>lt,createContext:()=>nn,createContextBoundMachine:()=>he,createCustomMiddleware:()=>Rt,createEnsemble:()=>Ie,createEnsembleFactory:()=>Ct,createEvent:()=>Ue,createFetchMachine:()=>vt,createFlow:()=>Ee,createFunctionalMachine:()=>fe,createMachine:()=>h,createMachineBuilder:()=>an,createMachineFactory:()=>tn,createMatcher:()=>Ze,createMiddleware:()=>C,createMiddlewareFactory:()=>Wt,createMiddlewareRegistry:()=>Ot,createMultiMachine:()=>Tt,createMutableMachine:()=>bt,createParallelMachine:()=>te,createPipeline:()=>Pt,createRunner:()=>He,createTransition:()=>Ye,createTransitionExtender:()=>Me,createTransitionFactory:()=>Qe,customCase:()=>nt,delegate:()=>U,delegateToChild:()=>wt,describe:()=>Oe,discriminantCase:()=>tt,extendTransitions:()=>pe,forContext:()=>rt,freeze:()=>Ce,fromObservable:()=>st,fromPromise:()=>at,guard:()=>P,guardAsync:()=>k,guarded:()=>Pe,hasState:()=>$,inDevelopment:()=>Ft,invoke:()=>ke,isConditionalMiddleware:()=>_t,isContextBound:()=>ct,isMiddlewareContext:()=>Nt,isMiddlewareError:()=>Ht,isMiddlewareFn:()=>ye,isMiddlewareHooks:()=>It,isMiddlewareOptions:()=>zt,isMiddlewareResult:()=>Bt,isNamedMiddleware:()=>Dt,isPipelineConfig:()=>$t,isState:()=>Ge,logState:()=>qe,machineExclude:()=>Ut,machineUnion:()=>Gt,matchMachine:()=>sn,mergeContext:()=>Le,metadata:()=>Ne,middlewareBuilder:()=>ze,minimal:()=>G,next:()=>dn,overrideTransitions:()=>rn,pipeTransitions:()=>Ve,run:()=>q,runAsync:()=>Re,runMachine:()=>cn,runSequence:()=>we,runWithDebug:()=>ve,runWithEnsemble:()=>mt,runWithRunner:()=>gt,setContext:()=>v,spawn:()=>ot,state:()=>Xe,step:()=>Te,stepAsync:()=>je,tag:()=>dt,toggle:()=>Et,transitionTo:()=>Se,when:()=>z,whenContext:()=>St,whenGuard:()=>_e,whenGuardAsync:()=>Be,withAnalytics:()=>oe,withDebugging:()=>De,withErrorReporting:()=>ie,withHistory:()=>K,withLogging:()=>re,withPerformanceMonitoring:()=>ce,withPermissions:()=>se,withRetry:()=>de,withSnapshot:()=>_,withTimeTravel:()=>B,withValidation:()=>ae,yieldMachine:()=>be});module.exports=ht(un);var me=Symbol.for("__machine_transitions__");function b(e,t){return Object.defineProperty(e,me,{value:t,enumerable:!1,configurable:!1}),e}function S(e){if(!(!e||typeof e!="object"))return e[me]}function O(e){if(!e||typeof e!="object")return{};let t=Object.entries(e).filter(([n,r])=>n!=="context"&&typeof r=="function");return Object.fromEntries(t)}var m=class{constructor(t){this.context=t}};function q(e,t){let n=e(t),r=t;for(;;){let{value:o,done:a}=n.next(r);if(a)return o;r=o}}function Te(e){return function*(){return yield e}()}function be(e){return e}function we(e,t){return t.reduce((n,r)=>q(r,n),e)}function Ee(e){return e}function ve(e,t,n=(r,o)=>{console.log(`Step ${r}:`,o.context)}){let r=e(t),o=t,a=0;for(n(a,o);;){let{value:s,done:i}=r.next(o);if(i)return console.log("Final:",s),s;o=s,a++,n(a,o)}}async function Re(e,t){let n=e(t),r=t;for(;;){let{value:o,done:a}=await n.next(r);if(a)return o;r=o}}async function*je(e){return yield e}var Fe=Symbol("MachineMeta"),Ae=Symbol("__machine_runtime_meta__");function w(e,t){let n=e[Ae]||{},r={...n,...t};t.guards&&n.guards?r.guards=[...t.guards,...n.guards]:t.guards&&(r.guards=[...t.guards]),t.actions&&n.actions?r.actions=[...t.actions,...n.actions]:t.actions&&(r.actions=[...t.actions]),Object.defineProperty(e,Ae,{value:r,enumerable:!1,writable:!1,configurable:!0})}function Se(e,t){return w(t,{target:e.name||e.toString()}),t}function Oe(e,t){return w(t,{description:e}),t}function Pe(e,t){return w(t,{guards:[e]}),t}function ke(e,t){return w(t,{invoke:{src:e.src,onDone:e.onDone.name||e.onDone.toString(),onError:e.onError.name||e.onError.toString(),description:e.description}}),t}function Ke(e,t){return w(t,{actions:[e]}),t}function P(e,t,n={}){let{onFail:r="throw",errorMessage:o,description:a}=n,s={...n,onFail:r,errorMessage:o,description:a},i=function(...c){let d=typeof this=="object"&&"context"in this,u=d?this.context:this;if(e(u,...c)){let x=d?this:{context:this};return t.apply(x,c)}else if(r==="throw"){let x=o||"Guard condition failed";throw new Error(x)}else if(r==="ignore"){if(d)return this;throw new Error('Cannot use "ignore" mode with context-only binding. Use full machine binding or provide fallback.')}else if(typeof r=="function"){if(d)return r.apply(this,c);throw new Error("Cannot use function fallback with context-only binding. Use full machine binding.")}else return r};return Object.defineProperty(i,"__guard",{value:!0,enumerable:!1}),Object.defineProperty(i,"condition",{value:e,enumerable:!1}),Object.defineProperty(i,"transition",{value:t,enumerable:!1}),Object.defineProperty(i,"options",{value:s,enumerable:!1}),w(i,{description:a||"Synchronous guarded transition",guards:[{name:"runtime_guard",description:a||"Synchronous condition check"}]}),i}function k(e,t,n={}){let{onFail:r="throw",errorMessage:o,description:a}=n,s={...n,onFail:r,errorMessage:o,description:a},i=async function(...c){let d=typeof this=="object"&&"context"in this,u=d?this.context:this;if(await Promise.resolve(e(u,...c))){let x=d?this:{context:this};return t.apply(x,c)}else if(r==="throw"){let x=o||"Guard condition failed";throw new Error(x)}else if(r==="ignore"){if(d)return this;throw new Error('Cannot use "ignore" mode with context-only binding. Use full machine binding or provide fallback.')}else if(typeof r=="function"){if(d)return r.apply(this,c);throw new Error("Cannot use function fallback with context-only binding. Use full machine binding.")}else return r};return Object.defineProperty(i,"__guard",{value:!0,enumerable:!1}),Object.defineProperty(i,"condition",{value:e,enumerable:!1}),Object.defineProperty(i,"transition",{value:t,enumerable:!1}),Object.defineProperty(i,"options",{value:s,enumerable:!1}),w(i,{description:a||"Runtime guarded transition",guards:[{name:"runtime_guard",description:a||"Runtime condition check"}]}),i}function _e(e){return{do(t){let n=P(e,t);return n.else=function(r){return P(e,t,{onFail:r})},n}}}function Be(e){return{do(t){let n=k(e,t);return n.else=function(r){return k(e,t,{onFail:r})},n}}}function Ne(e,t){return t}function He(e,t){let n=e,r=i=>{n=i,t==null||t(i)},{context:o,...a}=e,s=new Proxy({},{get(i,c){let d=n[c];if(typeof d=="function")return(...u)=>{let y=d.apply(n,u),x=Object.assign({context:y.context},a);return r(x),x}}});return{get state(){return n},get context(){return n.context},actions:s,setState:r}}function Ie(e,t,n){let r=()=>{let a=e.getContext(),s=n(a),i=t[s];if(!i)throw new Error(`[Ensemble] Invalid state: No factory found for state "${String(s)}".`);return i(a)},o=new Proxy({},{get(a,s){let i=r(),c=i[s];if(typeof c!="function")throw new Error(`[Ensemble] Transition "${s}" is not valid in the current state.`);return(...d)=>c.apply(i,d)}});return{get context(){return e.getContext()},get state(){return r()},actions:o}}function Ct(e,t){return function(r){return Ie(e,r,t)}}function gt(e,t){let n=He(t),r=e(n),o=r.next();for(;!o.done;)o=r.next();return o.value}function mt(e,t){let n=e(t),r=n.next();for(;!r.done;)r=n.next();return r.value}var Y=class{constructor(t){this.store=t}get context(){return this.store.getContext()}setContext(t){this.store.setContext(t)}};function Tt(e,t){let n=new e(t);return new Proxy({},{get(r,o){let a=t.getContext();if(o in a)return a[o];let s=n[o];if(typeof s=="function")return(...i)=>s.apply(n,i)},set(r,o,a){let s=t.getContext();if(o in s){let i={...s,[o]:a};return t.setContext(i),!0}return!1},has(r,o){let a=t.getContext();return o in a||typeof n[o]=="function"},ownKeys(r){let o=t.getContext(),a=Object.keys(o),s=Object.getOwnPropertyNames(Object.getPrototypeOf(n)).filter(i=>i!=="constructor"&&typeof n[i]=="function");return Array.from(new Set([...a,...s]))},getOwnPropertyDescriptor(r,o){let a=t.getContext();if(o in a||typeof n[o]=="function")return{value:void 0,writable:!0,enumerable:!0,configurable:!0}}})}function bt(e,t,n){let r=()=>{let o=n(e),a=t[o];if(!a)throw new Error(`[MutableMachine] Invalid state: No factory for state "${String(o)}".`);return a(e)};return new Proxy(e,{get(o,a,s){if(a in o)return o[a];let i=r(),c=i[a];if(typeof c=="function")return(...d)=>{let u=c.apply(i,d);if(typeof u!="object"||u===null){console.warn(`[MutableMachine] Transition "${String(a)}" did not return a valid context object. State may be inconsistent.`);return}Object.keys(o).forEach(y=>delete o[y]),Object.assign(o,u)}},set(o,a,s,i){return o[a]=s,!0},has(o,a){let s=r();return a in o||typeof s[a]=="function"}})}function wt(e){return function(...t){let n=this.context.child;if(typeof n[e]=="function"){let r=n[e](...t);return v(this,{...this.context,child:r})}return this}}function Et(e){return function(){return typeof this.context[e]!="boolean"&&console.warn(`[toggle primitive] Property '${String(e)}' is not a boolean. Toggling may have unexpected results.`),v(this,{...this.context,[e]:!this.context[e]})}}var J=class extends m{constructor(n){super({status:"idle"});this.config=n;this.fetch=n=>new E(this.config,n!=null?n:this.config.initialParams,1)}},E=class extends m{constructor(n,r,o){super({status:"loading",abortController:new AbortController,attempts:o});this.config=n;this.params=r;this.succeed=n=>{var r,o;return(o=(r=this.config).onSuccess)==null||o.call(r,n),new X(this.config,{status:"success",data:n})};this.fail=n=>{var o,a,s;let r=(o=this.config.maxRetries)!=null?o:3;return this.context.attempts<r?new Q(this.config,this.params,n,this.context.attempts):((s=(a=this.config).onError)==null||s.call(a,n),new Z(this.config,{status:"error",error:n}))};this.cancel=()=>(this.context.abortController.abort(),new ee(this.config));this.execute()}async execute(){}},Q=class extends m{constructor(n,r,o,a){super({status:"retrying",error:o,attempts:a});this.config=n;this.params=r;this.retry=n=>new E(this.config,n!=null?n:this.params,this.context.attempts+1)}},X=class extends m{constructor(n,r){super(r);this.config=n;this.refetch=n=>new E(this.config,n!=null?n:this.config.initialParams,1)}},Z=class extends m{constructor(n,r){super(r);this.config=n;this.retry=n=>new E(this.config,n!=null?n:this.config.initialParams,1)}},ee=class extends m{constructor(n){super({status:"canceled"});this.config=n;this.refetch=n=>new E(this.config,n!=null?n:this.config.initialParams,1)}};function vt(e){return new J(e)}function te(e,t){let n={...e.context,...t.context},r={...e},o={...t};delete r.context,delete o.context;let a={};for(let s in r){let i=r[s];a[s]=(...c)=>{let d=i.apply(e,c);return te(d,t)}}for(let s in o){let i=o[s];a[s]=(...c)=>{let d=i.apply(t,c);return te(e,d)}}return{context:n,...a}}var ne=Symbol("CANCEL");function C(e,t,n={}){let{continueOnError:r=!1,logErrors:o=!0,onError:a}=n,s={...e};for(let i in e)Object.prototype.hasOwnProperty.call(e,i)&&i!=="context"&&typeof e[i]!="function"&&(s[i]=e[i]);for(let i in e){if(!Object.prototype.hasOwnProperty.call(e,i))continue;let c=e[i];typeof c=="function"&&i!=="context"&&(s[i]=function(...d){let u=i,y=s.context,x=()=>{let l;try{l=c.apply(this,d)}catch(f){if(t.error)try{t.error({transitionName:u,context:y,args:[...d],error:f})}catch(p){if(!r)throw p;o&&console.error(`Middleware error hook error for ${u}:`,p),a==null||a(p,"error",{transitionName:u,context:y,args:d,error:f})}throw f}let M=f=>{if(f&&typeof f=="object"&&f.context){for(let p in s)Object.prototype.hasOwnProperty.call(s,p)&&p!=="context"&&!(p in f)&&(f[p]=s[p]);for(let p in f){if(!Object.prototype.hasOwnProperty.call(f,p))continue;typeof f[p]=="function"&&p!=="context"&&s[p]&&(f[p]=s[p])}}return f};if(l&&typeof l.then=="function")return l.then(p=>{if(M(p),t.after)try{let g=t.after({transitionName:u,prevContext:y,nextContext:p.context,args:[...d]});if(g&&typeof g.then=="function")return g.then(()=>p)}catch(g){if(!r)throw g;o&&console.error(`Middleware after hook error for ${u}:`,g),a==null||a(g,"after",{transitionName:u,prevContext:y,nextContext:p.context,args:d})}return p});if(M(l),t.after)try{let f=t.after({transitionName:u,prevContext:y,nextContext:l.context,args:[...d]});if(f&&typeof f=="object"&&f&&"then"in f)return f.then(()=>l).catch(p=>{if(!r)throw p;return o&&console.error(`Middleware after hook error for ${u}:`,p),a==null||a(p,"after",{transitionName:u,prevContext:y,nextContext:l.context,args:d}),l})}catch(f){if(!r)throw f;o&&console.error(`Middleware after hook error for ${u}:`,f),a==null||a(f,"after",{transitionName:u,prevContext:y,nextContext:l.context,args:d})}return l};if(t.before)try{let l=t.before({transitionName:u,context:y,args:[...d]});if(l&&typeof l=="object"&&l&&"then"in l)return l.then(M=>M===ne?s:x()).catch(M=>{if(!r)throw M;return o&&console.error(`Middleware before hook error for ${u}:`,M),a==null||a(M,"before",{transitionName:u,context:y,args:d}),x()});if(l===ne)return s}catch(l){if(!r)throw l;o&&console.error(`Middleware before hook error for ${u}:`,l),a==null||a(l,"before",{transitionName:u,context:y,args:d})}return x()})}return s}function re(e,t={}){let{logger:n=console.log,includeArgs:r=!1,includeContext:o=!0}=t;return C(e,{before:({transitionName:a,args:s})=>{let i=r?`→ ${a} [${s.join(", ")}]`:`→ ${a}`;n(i)},after:({transitionName:a,nextContext:s})=>{let i=o?` ${JSON.stringify(s)}`:"";n(`✓ ${a}${i}`)},error:({transitionName:a,error:s})=>{console.error(`[Machine] ${a} failed:`,s)}})}function oe(e,t,n={}){let{eventPrefix:r="state_transition",includePrevContext:o=!1,includeArgs:a=!1}=n;return C(e,{after:({transitionName:s,prevContext:i,nextContext:c,args:d})=>{let u=`${r}.${s}`,y={transition:s};o&&(y.from=i),y.to=c,a&&(y.args=d),t(u,y)}})}function ae(e,t){return C(e,{before:n=>{if(t(n)===!1)throw new Error(`Validation failed for transition: ${n.transitionName}`)}})}function se(e,t){return C(e,{before:n=>{if(!t(n))throw new Error(`Unauthorized transition: ${n.transitionName}`)}})}function ie(e,t,n={}){let{includeArgs:r=!1}=n;return C(e,{error:o=>{let a={transition:o.transitionName,context:o.context,...r&&{args:o.args}};t(o.error,a)}})}function ce(e,t){let n=new Map;return C(e,{before:r=>{n.set(r.transitionName,Date.now())},after:r=>{let o=n.get(r.transitionName);if(o){let a=Date.now()-o;n.delete(r.transitionName);let s={transitionName:r.transitionName,duration:a,context:r.nextContext||r.prevContext};t(s)}}})}function de(e,t={}){var c,d;let{maxAttempts:n=(c=t.maxRetries)!=null?c:3,shouldRetry:r=()=>!0,backoffMs:o=(d=t.delay)!=null?d:100,backoffMultiplier:a=2,onRetry:s}=t,i={...e};for(let u in e){if(!Object.prototype.hasOwnProperty.call(e,u))continue;let y=e[u];typeof y=="function"&&u!=="context"&&(i[u]=async function(...x){let l,M=0;for(;M<n;)try{return await y.apply(this,x)}catch(f){if(l=f,M++,M<n&&r(l,M)){s==null||s(l,M);let g=(typeof o=="function"?o(M):o)*Math.pow(a,M-1);await new Promise(T=>setTimeout(T,g))}else throw l}throw l})}return i}function Rt(e,t){return n=>C(n,e,t)}function K(e,t={}){let{maxSize:n,serializer:r,onEntry:o}=t,a=[],s=0,i=C(e,{before:({transitionName:c,args:d})=>{let u={id:`entry-${s++}`,transitionName:c,args:[...d],timestamp:Date.now()};if(r)try{u.serializedArgs=r.serialize(d)}catch(y){console.error("Failed to serialize history args:",y)}a.push(u),n&&a.length>n&&a.shift(),o==null||o(u)}});return Object.assign(i,{history:a,clearHistory:()=>{a.length=0,s=0}})}function _(e,t={}){let{maxSize:n,serializer:r,captureSnapshot:o,onlyOnChange:a=!1}=t,s=[],i=0,c=C(e,{after:({transitionName:u,prevContext:y,nextContext:x})=>{if(a&&JSON.stringify(y)===JSON.stringify(x))return;let l={id:`snapshot-${i++}`,transitionName:u,before:{...y},after:{...x},timestamp:Date.now()};if(r)try{l.serializedBefore=r.serialize(y),l.serializedAfter=r.serialize(x)}catch(M){console.error("Failed to serialize snapshot:",M)}if(o)try{l.diff=o(y,x)}catch(M){console.error("Failed to capture snapshot:",M)}s.push(l),n&&s.length>n&&s.shift()}});return Object.assign(c,{snapshots:s,clearSnapshots:()=>{s.length=0,i=0},restoreSnapshot:u=>{let y=Object.fromEntries(Object.entries(e).filter(([x])=>x!=="context"&&x!=="snapshots"&&x!=="clearSnapshots"&&x!=="restoreSnapshot"&&typeof e[x]=="function"));return Object.assign({context:u},y)}})}function B(e,t={}){let{maxSize:n,serializer:r,onRecord:o}=t,a=[],s=[],i=0,c=0,d=C(e,{before:({transitionName:x,args:l})=>{let M={id:`entry-${i++}`,transitionName:x,args:[...l],timestamp:Date.now()};if(r)try{M.serializedArgs=r.serialize(l)}catch(f){console.error("Failed to serialize history args:",f)}a.push(M),n&&a.length>n&&a.shift(),o==null||o("history",M)},after:({transitionName:x,prevContext:l,nextContext:M})=>{let f={id:`snapshot-${c++}`,transitionName:x,before:{...l},after:{...M},timestamp:Date.now()};if(r)try{f.serializedBefore=r.serialize(l),f.serializedAfter=r.serialize(M)}catch(p){console.error("Failed to serialize snapshot:",p)}s.push(f),n&&s.length>n&&s.shift(),o==null||o("snapshot",f)}});return Object.assign(d,{history:a,snapshots:s,clearHistory:()=>{a.length=0,i=0},clearSnapshots:()=>{s.length=0,c=0},clearTimeTravel:()=>{a.length=0,s.length=0,i=0,c=0},restoreSnapshot:x=>{let l=Object.fromEntries(Object.entries(e).filter(([M])=>M!=="context"&&M!=="history"&&M!=="snapshots"&&M!=="clearHistory"&&M!=="clearSnapshots"&&M!=="restoreSnapshot"&&M!=="clearTimeTravel"&&M!=="replayFrom"&&typeof e[M]=="function"));return Object.assign({context:x},l)},replayFrom:x=>{var g;if(x<0||x>=a.length)throw new Error(`Invalid replay start index: ${x}`);let l=(g=s[x])==null?void 0:g.before;if(!l)throw new Error(`No snapshot available for index ${x}`);let M=a.slice(x),p=Object.assign({context:l},Object.fromEntries(Object.entries(e).filter(([T])=>T!=="context"&&typeof e[T]=="function")));for(let T of M){let ge=p[T.transitionName];ge&&(p=ge.apply(p,T.args))}return p}})}function jt(e,...t){return t.reduce((n,r)=>r(n),e)}function N(e,...t){return t.reduce((n,r)=>r(n),e)}var ue=class e{constructor(t){this.machine=t}with(t){let n=t(this.machine);return new e(n)}build(){return this.machine}};function At(e){return new ue(e)}function z(e,t){let n=function(r){return t(r)?e(r):r};return n.middleware=e,n.when=t,n}function Ft(e){return z(e,()=>typeof process!="undefined"?!1:typeof window!="undefined"?!window.location.hostname.includes("production"):!1)}function St(e,t,n){return z(n,r=>r.context[e]===t)}function Ot(){let e=new Map;return{register(t,n,r,o){if(e.has(t))throw new Error(`Middleware '${t}' is already registered`);return e.set(t,{name:t,middleware:n,description:r,priority:o}),this},unregister(t){return e.delete(t)},has(t){return e.has(t)},get(t){return e.get(t)},list(){return Array.from(e.values()).sort((t,n)=>{var r,o;return((r=t.priority)!=null?r:0)-((o=n.priority)!=null?o:0)})},apply(t,n){let r=n.map(o=>{let a=e.get(o);if(!a)throw new Error(`Middleware '${o}' is not registered`);return a}).sort((o,a)=>{var s,i;return((s=o.priority)!=null?s:0)-((i=a.priority)!=null?i:0)});return N(t,...r.map(o=>o.middleware))},applyAll(t){let n=this.list();return N(t,...n.map(r=>r.middleware))}}}function Pt(e={}){let{continueOnError:t=!1,logErrors:n=!0,onError:r}=e;return(o,...a)=>{let s=o,i=[],c=!0;for(let d=0;d<a.length;d++){let u=a[d];try{if("middleware"in u&&"when"in u){if(!u.when(s))continue;s=u.middleware(s)}else s=u(s)}catch(y){if(c=!1,!t)throw y;i.push({error:y,middlewareIndex:d,middlewareName:u.name}),n&&console.error(`Pipeline middleware error at index ${d}:`,y),r==null||r(y,d,u.name)}}return{machine:s,errors:i,success:c}}}function kt(...e){return t=>N(t,...e)}function Kt(e,t){return n=>{for(let[r,o]of e)if(r(n))return o(n);return t?t(n):n}}function ye(e){return typeof e=="function"&&e.length===1}function _t(e){return e!==null&&(typeof e=="object"||typeof e=="function")&&"middleware"in e&&"when"in e&&ye(e.middleware)&&typeof e.when=="function"}function Bt(e,t){return e!==null&&typeof e=="object"&&"transitionName"in e&&"prevContext"in e&&"nextContext"in e&&"args"in e&&typeof e.transitionName=="string"&&Array.isArray(e.args)&&(!t||H(e.prevContext,t)&&H(e.nextContext,t))}function Nt(e,t){return e!==null&&typeof e=="object"&&"transitionName"in e&&"context"in e&&"args"in e&&typeof e.transitionName=="string"&&Array.isArray(e.args)&&(!t||H(e.context,t))}function Ht(e,t){return e!==null&&typeof e=="object"&&"transitionName"in e&&"context"in e&&"args"in e&&"error"in e&&typeof e.transitionName=="string"&&Array.isArray(e.args)&&e.error instanceof Error&&(!t||H(e.context,t))}function It(e,t){if(e===null||typeof e!="object")return!1;let n=e;return!("before"in n&&n.before!==void 0&&typeof n.before!="function"||"after"in n&&n.after!==void 0&&typeof n.after!="function"||"error"in n&&n.error!==void 0&&typeof n.error!="function")}function zt(e){return e===void 0||e!==null&&typeof e=="object"&&("continueOnError"in e?typeof e.continueOnError=="boolean":!0)&&("logErrors"in e?typeof e.logErrors=="boolean":!0)&&("onError"in e?typeof e.onError=="function"||e.onError===void 0:!0)}function H(e,t){return e!==null&&typeof e=="object"}function Dt(e){return e!==null&&typeof e=="object"&&"name"in e&&"middleware"in e&&typeof e.name=="string"&&ye(e.middleware)&&("description"in e?typeof e.description=="string"||e.description===void 0:!0)&&("priority"in e?typeof e.priority=="number"||e.priority===void 0:!0)}function $t(e){return e===void 0||e!==null&&typeof e=="object"&&("continueOnError"in e?typeof e.continueOnError=="boolean":!0)&&("logErrors"in e?typeof e.logErrors=="boolean":!0)&&("onError"in e?typeof e.onError=="function"||e.onError===void 0:!0)}var I=class{constructor(t){this.machine=t;this.middlewares=[]}withLogging(t){return this.middlewares.push(n=>re(n,t)),this}withAnalytics(t,n){return this.middlewares.push(r=>oe(r,t,n)),this}withValidation(t,n){return this.middlewares.push(r=>ae(r,t)),this}withPermissions(t){return this.middlewares.push(n=>se(n,t)),this}withErrorReporting(t,n){return this.middlewares.push(r=>ie(r,t,n)),this}withPerformanceMonitoring(t,n){return this.middlewares.push(r=>ce(r,t)),this}withRetry(t){return this.middlewares.push(n=>de(n,t)),this}withHistory(t){return this.middlewares.push(n=>K(n,t)),this}withSnapshot(t){return this.middlewares.push(n=>_(n,t)),this}withTimeTravel(t){return this.middlewares.push(n=>B(n,t)),this}withDebugging(){return this.middlewares.push(t=>De(t)),this}withCustom(t){return this.middlewares.push(t),this}withConditional(t,n){return this.middlewares.push(z(t,n)),this}build(){let t=this.machine;for(let n of this.middlewares)t=n(t);return t}getChain(){return[...this.middlewares]}clear(){return this.middlewares=[],this}};function ze(e){return new I(e)}function Wt(e={}){return{create:t=>{let n=ze(t);return e.logging&&n.withLogging(e.logging),e.analytics&&n.withAnalytics(e.analytics.track,e.analytics.options),e.history&&n.withHistory(e.history),e.snapshot&&n.withSnapshot(e.snapshot),e.timeTravel&&n.withTimeTravel(e.timeTravel),e.retry&&n.withRetry(e.retry),n}}}function De(e){return B(_(K(e)))}function le(e){let t={},n=e;for(;n&&n!==Object.prototype;){let r=Object.getOwnPropertyDescriptors(n);for(let[o,a]of Object.entries(r))o!=="constructor"&&(o in t||(t[o]=a));n=Object.getPrototypeOf(n)}return t}function $e(...e){let t=e[0];class n extends t{constructor(a){super(a)}}let r=o=>function(...a){let s=o.apply(this,a);if(s&&typeof s=="object"&&"context"in s){let i={...this.context,...s.context};return new n(i)}return s};for(let o of e){let a=le(o.prototype);for(let[s,i]of Object.entries(a))if(s!=="constructor")if(typeof i.value=="function"){let c=i.value,d=r(c);Object.defineProperty(n.prototype,s,{...i,value:d})}else Object.defineProperty(n.prototype,s,i)}return n}function We(e,...t){class n extends m{constructor(a){super(a)}}let r=le(e.prototype);for(let[o,a]of Object.entries(r))if(o!=="constructor")if(typeof a.value=="function"){let s=a.value,i=function(...c){let d=s.apply(this,c);return d&&typeof d=="object"&&"context"in d?new n({...this.context,...d.context}):d};Object.defineProperty(n.prototype,o,{...a,value:i})}else Object.defineProperty(n.prototype,o,a);for(let o of t){let a=le(o.prototype);for(let s of Object.keys(a))Object.prototype.hasOwnProperty.call(n.prototype,s)&&delete n.prototype[s]}return n}function Gt(...e){let t=e.map(a=>a.constructor),n=e.map(a=>a.context),r=Object.assign({},...n),o=$e(...t);return new o(r)}function Ut(e,...t){let n=e.constructor,r=t.map(a=>a.constructor),o=We(n,...r);return new o(e.context)}function Ge(e,t){return e instanceof t}function Ue(e,...t){return{type:e,args:t}}function Le(e,t){return v(e,n=>({...n,...t}))}async function Ve(e,...t){let n=e;for(let r of t)n=await r(n);return n}function qe(e,t){return t?console.log(t,e.context):console.log(e.context),e}function Ye(e,t){return function(...n){let r=t(this.context,...n);return h(r,e())}}function Je(e,t,...n){return e.apply(t,n)}function xe(e){return new Proxy(e,{get(t,n){let r=t[n];return typeof r=="function"?function(...o){let a=r.apply(t,o);return a&&typeof a=="object"&&"context"in a?xe(a):a}:r}})}var D=class e{constructor(t){return this.wrappedMachine=t,new Proxy(this,{get:(n,r)=>{if(r==="wrappedMachine")return Reflect.get(n,r);if(r==="context")return this.wrappedMachine.context;let o=this.wrappedMachine[r];return typeof o=="function"?(...a)=>{let s=o.apply(this.wrappedMachine,a);return s&&typeof s=="object"&&"context"in s?new e(s):s}:o}})}};function Qe(){return function(t){return function(...n){let r=t(this.context,...n);return h(r,this)}}}function Me(e){return{machine:e,addTransition:function(t,n){let r=function(...a){let s=n(this.context,...a);return h(s,this)},o=pe(e,{[t]:r});return Me(o)}}}function fe(e){return function(n){let r={},o=Object.fromEntries(Object.entries(n).map(([a,s])=>[a,function(...i){let c=s(this.context,...i);return h(c,r)}]));return Object.assign(r,o),h(e,r)}}function Xe(e,t){return t!==void 0?h(e,t):fe(e)}function Ze(...e){let t=new Map;for(let[i,c,d]of e){if(t.has(i))throw new Error(`Duplicate matcher case name: "${i}"`);t.set(i,{predicate:d})}let n=new Proxy({},{get(i,c){return function(u){let y=t.get(c);if(!y){let x=Array.from(t.keys()).join(", ");throw new Error(`Unknown matcher case: "${c}". Available cases: ${x}`)}return y.predicate(u)}}}),r=new Proxy({},{get(i,c){return function(u){if(!t.has(c)){let y=Array.from(t.keys()).join(", ");throw new Error(`Unknown matcher case: "${c}". Available cases: ${y}`)}return{__brand:"CaseHandler",__name:c,__machine:void 0,__return:void 0,handler:u}}}}),o={__exhaustive:!0};function a(i){return{is(...c){if(c.length===0)throw new Error("Pattern match requires at least one handler and exhaustiveness marker");let d=c[c.length-1];if(!d||typeof d!="object"||!("__exhaustive"in d))throw new Error("Pattern match must end with match.exhaustive for compile-time exhaustiveness checking");let u=c.slice(0,-1);for(let l of u){let M=l.__name,f=t.get(M);if(!f)throw new Error(`Internal error: Unknown matcher case in handler: ${M}`);if(f.predicate(i))return l.handler(i)}let y=u.map(l=>l.__name).join(", "),x=Array.from(t.keys()).join(", ");throw new Error(`Non-exhaustive pattern match at runtime: no handler matched the machine.
2
- Handled cases: [${y}]
1
+ "use strict";var V=Object.defineProperty;var xt=Object.getOwnPropertyDescriptor;var Mt=Object.getOwnPropertyNames;var ft=Object.prototype.hasOwnProperty;var q=(e,t)=>{for(var n in t)V(e,n,{get:t[n],enumerable:!0})},pt=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Mt(t))!ft.call(e,o)&&o!==n&&V(e,o,{get:()=>t[o],enumerable:!(r=xt(t,o))||r.enumerable});return e};var ht=e=>pt(V({},"__esModule",{value:!0}),e);var yn={};q(yn,{Actor:()=>A,BoundMachine:()=>$,CANCEL:()=>re,META_KEY:()=>Se,MachineBase:()=>m,MachineExclude:()=>Ge,MachineUnion:()=>We,MiddlewareBuilder:()=>z,MultiMachineBase:()=>J,action:()=>_e,bindTransitions:()=>Me,branch:()=>Kt,call:()=>Qe,callWithContext:()=>ct,chain:()=>At,classCase:()=>tt,combine:()=>kt,combineFactories:()=>on,compose:()=>jt,composeTyped:()=>H,createActor:()=>F,createAsyncMachine:()=>lt,createContext:()=>nn,createContextBoundMachine:()=>Ce,createCustomMiddleware:()=>Rt,createEnsemble:()=>ze,createEnsembleFactory:()=>Ct,createEvent:()=>Le,createFetchMachine:()=>vt,createFlow:()=>ve,createFunctionalMachine:()=>pe,createMachine:()=>h,createMachineBuilder:()=>an,createMachineFactory:()=>tn,createMatcher:()=>et,createMiddleware:()=>C,createMiddlewareFactory:()=>Wt,createMiddlewareRegistry:()=>Ot,createMultiMachine:()=>Tt,createMutableMachine:()=>bt,createParallelMachine:()=>ne,createPipeline:()=>Pt,createRunner:()=>Ie,createTransition:()=>Je,createTransitionExtender:()=>fe,createTransitionFactory:()=>Xe,customCase:()=>rt,delegate:()=>L,delegateToChild:()=>wt,describe:()=>Pe,discriminantCase:()=>nt,extendTransitions:()=>he,forContext:()=>ot,freeze:()=>ge,fromObservable:()=>it,fromPromise:()=>st,guard:()=>k,guardAsync:()=>K,guarded:()=>ke,hasState:()=>W,inDevelopment:()=>Ft,invoke:()=>Ke,isConditionalMiddleware:()=>_t,isContextBound:()=>dt,isMiddlewareContext:()=>Nt,isMiddlewareError:()=>Ht,isMiddlewareFn:()=>le,isMiddlewareHooks:()=>It,isMiddlewareOptions:()=>zt,isMiddlewareResult:()=>Bt,isNamedMiddleware:()=>Dt,isPipelineConfig:()=>$t,isState:()=>Ue,logState:()=>Ye,machineExclude:()=>Ut,machineUnion:()=>Gt,matchMachine:()=>sn,mergeContext:()=>Ve,metadata:()=>He,middlewareBuilder:()=>De,minimal:()=>U,next:()=>dn,overrideTransitions:()=>rn,pipeTransitions:()=>qe,run:()=>Y,runAsync:()=>je,runMachine:()=>cn,runSequence:()=>Ee,runWithDebug:()=>Re,runWithEnsemble:()=>mt,runWithRunner:()=>gt,setContext:()=>v,spawn:()=>at,state:()=>Ze,step:()=>be,stepAsync:()=>Ae,tag:()=>S,toggle:()=>Et,transitionTo:()=>Oe,when:()=>D,whenContext:()=>St,whenGuard:()=>Be,whenGuardAsync:()=>Ne,withAnalytics:()=>ae,withDebugging:()=>$e,withErrorReporting:()=>ce,withHistory:()=>_,withLogging:()=>oe,withPerformanceMonitoring:()=>de,withPermissions:()=>ie,withRetry:()=>ye,withSnapshot:()=>B,withTimeTravel:()=>N,withValidation:()=>se,yieldMachine:()=>we});module.exports=ht(yn);var Te=Symbol.for("__machine_transitions__");function b(e,t){return Object.defineProperty(e,Te,{value:t,enumerable:!1,configurable:!1}),e}function O(e){if(!(!e||typeof e!="object"))return e[Te]}function P(e){if(!e||typeof e!="object")return{};let t=Object.entries(e).filter(([n,r])=>n!=="context"&&typeof r=="function");return Object.fromEntries(t)}var m=class{constructor(t){this.context=t}};function Y(e,t){let n=e(t),r=t;for(;;){let{value:o,done:a}=n.next(r);if(a)return o;r=o}}function be(e){return function*(){return yield e}()}function we(e){return e}function Ee(e,t){return t.reduce((n,r)=>Y(r,n),e)}function ve(e){return e}function Re(e,t,n=(r,o)=>{console.log(`Step ${r}:`,o.context)}){let r=e(t),o=t,a=0;for(n(a,o);;){let{value:s,done:i}=r.next(o);if(i)return console.log("Final:",s),s;o=s,a++,n(a,o)}}async function je(e,t){let n=e(t),r=t;for(;;){let{value:o,done:a}=await n.next(r);if(a)return o;r=o}}async function*Ae(e){return yield e}var Se=Symbol("MachineMeta"),Fe=Symbol("__machine_runtime_meta__");function w(e,t){let n=e[Fe]||{},r={...n,...t};t.guards&&n.guards?r.guards=[...t.guards,...n.guards]:t.guards&&(r.guards=[...t.guards]),t.actions&&n.actions?r.actions=[...t.actions,...n.actions]:t.actions&&(r.actions=[...t.actions]),Object.defineProperty(e,Fe,{value:r,enumerable:!1,writable:!1,configurable:!0})}function Oe(e,t){return w(t,{target:e.name||e.toString()}),t}function Pe(e,t){return w(t,{description:e}),t}function ke(e,t){return w(t,{guards:[e]}),t}function Ke(e,t){return w(t,{invoke:{src:e.src,onDone:e.onDone.name||e.onDone.toString(),onError:e.onError.name||e.onError.toString(),description:e.description}}),t}function _e(e,t){return w(t,{actions:[e]}),t}function k(e,t,n={}){let{onFail:r="throw",errorMessage:o,description:a}=n,s={...n,onFail:r,errorMessage:o,description:a},i=function(...c){let d=typeof this=="object"&&"context"in this,y=d?this.context:this;if(e(y,...c)){let x=d?this:{context:this};return t.apply(x,c)}else if(r==="throw"){let x=o||"Guard condition failed";throw new Error(x)}else if(r==="ignore"){if(d)return this;throw new Error('Cannot use "ignore" mode with context-only binding. Use full machine binding or provide fallback.')}else if(typeof r=="function"){if(d)return r.apply(this,c);throw new Error("Cannot use function fallback with context-only binding. Use full machine binding.")}else return r};return Object.defineProperty(i,"__guard",{value:!0,enumerable:!1}),Object.defineProperty(i,"condition",{value:e,enumerable:!1}),Object.defineProperty(i,"transition",{value:t,enumerable:!1}),Object.defineProperty(i,"options",{value:s,enumerable:!1}),w(i,{description:a||"Synchronous guarded transition",guards:[{name:"runtime_guard",description:a||"Synchronous condition check"}]}),i}function K(e,t,n={}){let{onFail:r="throw",errorMessage:o,description:a}=n,s={...n,onFail:r,errorMessage:o,description:a},i=async function(...c){let d=typeof this=="object"&&"context"in this,y=d?this.context:this;if(await Promise.resolve(e(y,...c))){let x=d?this:{context:this};return t.apply(x,c)}else if(r==="throw"){let x=o||"Guard condition failed";throw new Error(x)}else if(r==="ignore"){if(d)return this;throw new Error('Cannot use "ignore" mode with context-only binding. Use full machine binding or provide fallback.')}else if(typeof r=="function"){if(d)return r.apply(this,c);throw new Error("Cannot use function fallback with context-only binding. Use full machine binding.")}else return r};return Object.defineProperty(i,"__guard",{value:!0,enumerable:!1}),Object.defineProperty(i,"condition",{value:e,enumerable:!1}),Object.defineProperty(i,"transition",{value:t,enumerable:!1}),Object.defineProperty(i,"options",{value:s,enumerable:!1}),w(i,{description:a||"Runtime guarded transition",guards:[{name:"runtime_guard",description:a||"Runtime condition check"}]}),i}function Be(e){return{do(t){let n=k(e,t);return n.else=function(r){return k(e,t,{onFail:r})},n}}}function Ne(e){return{do(t){let n=K(e,t);return n.else=function(r){return K(e,t,{onFail:r})},n}}}function He(e,t){return t}function Ie(e,t){let n=e,r=i=>{n=i,t==null||t(i)},{context:o,...a}=e,s=new Proxy({},{get(i,c){let d=n[c];if(typeof d=="function")return(...y)=>{let u=d.apply(n,y),x=Object.assign({context:u.context},a);return r(x),x}}});return{get state(){return n},get context(){return n.context},actions:s,setState:r}}function ze(e,t,n){let r=()=>{let a=e.getContext(),s=n(a),i=t[s];if(!i)throw new Error(`[Ensemble] Invalid state: No factory found for state "${String(s)}".`);return i(a)},o=new Proxy({},{get(a,s){let i=r(),c=i[s];if(typeof c!="function")throw new Error(`[Ensemble] Transition "${s}" is not valid in the current state.`);return(...d)=>c.apply(i,d)}});return{get context(){return e.getContext()},get state(){return r()},actions:o}}function Ct(e,t){return function(r){return ze(e,r,t)}}function gt(e,t){let n=Ie(t),r=e(n),o=r.next();for(;!o.done;)o=r.next();return o.value}function mt(e,t){let n=e(t),r=n.next();for(;!r.done;)r=n.next();return r.value}var J=class{constructor(t){this.store=t}get context(){return this.store.getContext()}setContext(t){this.store.setContext(t)}};function Tt(e,t){let n=new e(t);return new Proxy({},{get(r,o){let a=t.getContext();if(o in a)return a[o];let s=n[o];if(typeof s=="function")return(...i)=>s.apply(n,i)},set(r,o,a){let s=t.getContext();if(o in s){let i={...s,[o]:a};return t.setContext(i),!0}return!1},has(r,o){let a=t.getContext();return o in a||typeof n[o]=="function"},ownKeys(r){let o=t.getContext(),a=Object.keys(o),s=Object.getOwnPropertyNames(Object.getPrototypeOf(n)).filter(i=>i!=="constructor"&&typeof n[i]=="function");return Array.from(new Set([...a,...s]))},getOwnPropertyDescriptor(r,o){let a=t.getContext();if(o in a||typeof n[o]=="function")return{value:void 0,writable:!0,enumerable:!0,configurable:!0}}})}function bt(e,t,n){let r=()=>{let o=n(e),a=t[o];if(!a)throw new Error(`[MutableMachine] Invalid state: No factory for state "${String(o)}".`);return a(e)};return new Proxy(e,{get(o,a,s){if(a in o)return o[a];let i=r(),c=i[a];if(typeof c=="function")return(...d)=>{let y=c.apply(i,d);if(typeof y!="object"||y===null){console.warn(`[MutableMachine] Transition "${String(a)}" did not return a valid context object. State may be inconsistent.`);return}Object.keys(o).forEach(u=>delete o[u]),Object.assign(o,y)}},set(o,a,s,i){return o[a]=s,!0},has(o,a){let s=r();return a in o||typeof s[a]=="function"}})}function wt(e){return function(...t){let n=this.context.child;if(typeof n[e]=="function"){let r=n[e](...t);return v(this,{...this.context,child:r})}return this}}function Et(e){return function(){return typeof this.context[e]!="boolean"&&console.warn(`[toggle primitive] Property '${String(e)}' is not a boolean. Toggling may have unexpected results.`),v(this,{...this.context,[e]:!this.context[e]})}}var Q=class extends m{constructor(n){super({status:"idle"});this.config=n;this.fetch=n=>new E(this.config,n!=null?n:this.config.initialParams,1)}},E=class extends m{constructor(n,r,o){super({status:"loading",abortController:new AbortController,attempts:o});this.config=n;this.params=r;this.succeed=n=>{var r,o;return(o=(r=this.config).onSuccess)==null||o.call(r,n),new Z(this.config,{status:"success",data:n})};this.fail=n=>{var o,a,s;let r=(o=this.config.maxRetries)!=null?o:3;return this.context.attempts<r?new X(this.config,this.params,n,this.context.attempts):((s=(a=this.config).onError)==null||s.call(a,n),new ee(this.config,{status:"error",error:n}))};this.cancel=()=>(this.context.abortController.abort(),new te(this.config));this.execute()}async execute(){}},X=class extends m{constructor(n,r,o,a){super({status:"retrying",error:o,attempts:a});this.config=n;this.params=r;this.retry=n=>new E(this.config,n!=null?n:this.params,this.context.attempts+1)}},Z=class extends m{constructor(n,r){super(r);this.config=n;this.refetch=n=>new E(this.config,n!=null?n:this.config.initialParams,1)}},ee=class extends m{constructor(n,r){super(r);this.config=n;this.retry=n=>new E(this.config,n!=null?n:this.config.initialParams,1)}},te=class extends m{constructor(n){super({status:"canceled"});this.config=n;this.refetch=n=>new E(this.config,n!=null?n:this.config.initialParams,1)}};function vt(e){return new Q(e)}function ne(e,t){let n={...e.context,...t.context},r={...e},o={...t};delete r.context,delete o.context;let a={};for(let s in r){let i=r[s];a[s]=(...c)=>{let d=i.apply(e,c);return ne(d,t)}}for(let s in o){let i=o[s];a[s]=(...c)=>{let d=i.apply(t,c);return ne(e,d)}}return{context:n,...a}}var re=Symbol("CANCEL");function C(e,t,n={}){let{continueOnError:r=!1,logErrors:o=!0,onError:a}=n,s={...e};for(let i in e)Object.prototype.hasOwnProperty.call(e,i)&&i!=="context"&&typeof e[i]!="function"&&(s[i]=e[i]);for(let i in e){if(!Object.prototype.hasOwnProperty.call(e,i))continue;let c=e[i];typeof c=="function"&&i!=="context"&&(s[i]=function(...d){let y=i,u=s.context,x=()=>{let l;try{l=c.apply(this,d)}catch(f){if(t.error)try{t.error({transitionName:y,context:u,args:[...d],error:f})}catch(p){if(!r)throw p;o&&console.error(`Middleware error hook error for ${y}:`,p),a==null||a(p,"error",{transitionName:y,context:u,args:d,error:f})}throw f}let M=f=>{if(f&&typeof f=="object"&&f.context){for(let p in s)Object.prototype.hasOwnProperty.call(s,p)&&p!=="context"&&!(p in f)&&(f[p]=s[p]);for(let p in f){if(!Object.prototype.hasOwnProperty.call(f,p))continue;typeof f[p]=="function"&&p!=="context"&&s[p]&&(f[p]=s[p])}}return f};if(l&&typeof l.then=="function")return l.then(p=>{if(M(p),t.after)try{let g=t.after({transitionName:y,prevContext:u,nextContext:p.context,args:[...d]});if(g&&typeof g.then=="function")return g.then(()=>p)}catch(g){if(!r)throw g;o&&console.error(`Middleware after hook error for ${y}:`,g),a==null||a(g,"after",{transitionName:y,prevContext:u,nextContext:p.context,args:d})}return p});if(M(l),t.after)try{let f=t.after({transitionName:y,prevContext:u,nextContext:l.context,args:[...d]});if(f&&typeof f=="object"&&f&&"then"in f)return f.then(()=>l).catch(p=>{if(!r)throw p;return o&&console.error(`Middleware after hook error for ${y}:`,p),a==null||a(p,"after",{transitionName:y,prevContext:u,nextContext:l.context,args:d}),l})}catch(f){if(!r)throw f;o&&console.error(`Middleware after hook error for ${y}:`,f),a==null||a(f,"after",{transitionName:y,prevContext:u,nextContext:l.context,args:d})}return l};if(t.before)try{let l=t.before({transitionName:y,context:u,args:[...d]});if(l&&typeof l=="object"&&l&&"then"in l)return l.then(M=>M===re?s:x()).catch(M=>{if(!r)throw M;return o&&console.error(`Middleware before hook error for ${y}:`,M),a==null||a(M,"before",{transitionName:y,context:u,args:d}),x()});if(l===re)return s}catch(l){if(!r)throw l;o&&console.error(`Middleware before hook error for ${y}:`,l),a==null||a(l,"before",{transitionName:y,context:u,args:d})}return x()})}return s}function oe(e,t={}){let{logger:n=console.log,includeArgs:r=!1,includeContext:o=!0}=t;return C(e,{before:({transitionName:a,args:s})=>{let i=r?`→ ${a} [${s.join(", ")}]`:`→ ${a}`;n(i)},after:({transitionName:a,nextContext:s})=>{let i=o?` ${JSON.stringify(s)}`:"";n(`✓ ${a}${i}`)},error:({transitionName:a,error:s})=>{console.error(`[Machine] ${a} failed:`,s)}})}function ae(e,t,n={}){let{eventPrefix:r="state_transition",includePrevContext:o=!1,includeArgs:a=!1}=n;return C(e,{after:({transitionName:s,prevContext:i,nextContext:c,args:d})=>{let y=`${r}.${s}`,u={transition:s};o&&(u.from=i),u.to=c,a&&(u.args=d),t(y,u)}})}function se(e,t){return C(e,{before:n=>{if(t(n)===!1)throw new Error(`Validation failed for transition: ${n.transitionName}`)}})}function ie(e,t){return C(e,{before:n=>{if(!t(n))throw new Error(`Unauthorized transition: ${n.transitionName}`)}})}function ce(e,t,n={}){let{includeArgs:r=!1}=n;return C(e,{error:o=>{let a={transition:o.transitionName,context:o.context,...r&&{args:o.args}};t(o.error,a)}})}function de(e,t){let n=new Map;return C(e,{before:r=>{n.set(r.transitionName,Date.now())},after:r=>{let o=n.get(r.transitionName);if(o){let a=Date.now()-o;n.delete(r.transitionName);let s={transitionName:r.transitionName,duration:a,context:r.nextContext||r.prevContext};t(s)}}})}function ye(e,t={}){var c,d;let{maxAttempts:n=(c=t.maxRetries)!=null?c:3,shouldRetry:r=()=>!0,backoffMs:o=(d=t.delay)!=null?d:100,backoffMultiplier:a=2,onRetry:s}=t,i={...e};for(let y in e){if(!Object.prototype.hasOwnProperty.call(e,y))continue;let u=e[y];typeof u=="function"&&y!=="context"&&(i[y]=async function(...x){let l,M=0;for(;M<n;)try{return await u.apply(this,x)}catch(f){if(l=f,M++,M<n&&r(l,M)){s==null||s(l,M);let g=(typeof o=="function"?o(M):o)*Math.pow(a,M-1);await new Promise(T=>setTimeout(T,g))}else throw l}throw l})}return i}function Rt(e,t){return n=>C(n,e,t)}function _(e,t={}){let{maxSize:n,serializer:r,onEntry:o}=t,a=[],s=0,i=C(e,{before:({transitionName:c,args:d})=>{let y={id:`entry-${s++}`,transitionName:c,args:[...d],timestamp:Date.now()};if(r)try{y.serializedArgs=r.serialize(d)}catch(u){console.error("Failed to serialize history args:",u)}a.push(y),n&&a.length>n&&a.shift(),o==null||o(y)}});return Object.assign(i,{history:a,clearHistory:()=>{a.length=0,s=0}})}function B(e,t={}){let{maxSize:n,serializer:r,captureSnapshot:o,onlyOnChange:a=!1}=t,s=[],i=0,c=C(e,{after:({transitionName:y,prevContext:u,nextContext:x})=>{if(a&&JSON.stringify(u)===JSON.stringify(x))return;let l={id:`snapshot-${i++}`,transitionName:y,before:{...u},after:{...x},timestamp:Date.now()};if(r)try{l.serializedBefore=r.serialize(u),l.serializedAfter=r.serialize(x)}catch(M){console.error("Failed to serialize snapshot:",M)}if(o)try{l.diff=o(u,x)}catch(M){console.error("Failed to capture snapshot:",M)}s.push(l),n&&s.length>n&&s.shift()}});return Object.assign(c,{snapshots:s,clearSnapshots:()=>{s.length=0,i=0},restoreSnapshot:y=>{let u=Object.fromEntries(Object.entries(e).filter(([x])=>x!=="context"&&x!=="snapshots"&&x!=="clearSnapshots"&&x!=="restoreSnapshot"&&typeof e[x]=="function"));return Object.assign({context:y},u)}})}function N(e,t={}){let{maxSize:n,serializer:r,onRecord:o}=t,a=[],s=[],i=0,c=0,d=C(e,{before:({transitionName:x,args:l})=>{let M={id:`entry-${i++}`,transitionName:x,args:[...l],timestamp:Date.now()};if(r)try{M.serializedArgs=r.serialize(l)}catch(f){console.error("Failed to serialize history args:",f)}a.push(M),n&&a.length>n&&a.shift(),o==null||o("history",M)},after:({transitionName:x,prevContext:l,nextContext:M})=>{let f={id:`snapshot-${c++}`,transitionName:x,before:{...l},after:{...M},timestamp:Date.now()};if(r)try{f.serializedBefore=r.serialize(l),f.serializedAfter=r.serialize(M)}catch(p){console.error("Failed to serialize snapshot:",p)}s.push(f),n&&s.length>n&&s.shift(),o==null||o("snapshot",f)}});return Object.assign(d,{history:a,snapshots:s,clearHistory:()=>{a.length=0,i=0},clearSnapshots:()=>{s.length=0,c=0},clearTimeTravel:()=>{a.length=0,s.length=0,i=0,c=0},restoreSnapshot:x=>{let l=Object.fromEntries(Object.entries(e).filter(([M])=>M!=="context"&&M!=="history"&&M!=="snapshots"&&M!=="clearHistory"&&M!=="clearSnapshots"&&M!=="restoreSnapshot"&&M!=="clearTimeTravel"&&M!=="replayFrom"&&typeof e[M]=="function"));return Object.assign({context:x},l)},replayFrom:x=>{var g;if(x<0||x>=a.length)throw new Error(`Invalid replay start index: ${x}`);let l=(g=s[x])==null?void 0:g.before;if(!l)throw new Error(`No snapshot available for index ${x}`);let M=a.slice(x),p=Object.assign({context:l},Object.fromEntries(Object.entries(e).filter(([T])=>T!=="context"&&typeof e[T]=="function")));for(let T of M){let me=p[T.transitionName];me&&(p=me.apply(p,T.args))}return p}})}function jt(e,...t){return t.reduce((n,r)=>r(n),e)}function H(e,...t){return t.reduce((n,r)=>r(n),e)}var ue=class e{constructor(t){this.machine=t}with(t){let n=t(this.machine);return new e(n)}build(){return this.machine}};function At(e){return new ue(e)}function D(e,t){let n=function(r){return t(r)?e(r):r};return n.middleware=e,n.when=t,n}function Ft(e){return D(e,()=>typeof process!="undefined"?!1:typeof window!="undefined"?!window.location.hostname.includes("production"):!1)}function St(e,t,n){return D(n,r=>r.context[e]===t)}function Ot(){let e=new Map;return{register(t,n,r,o){if(e.has(t))throw new Error(`Middleware '${t}' is already registered`);return e.set(t,{name:t,middleware:n,description:r,priority:o}),this},unregister(t){return e.delete(t)},has(t){return e.has(t)},get(t){return e.get(t)},list(){return Array.from(e.values()).sort((t,n)=>{var r,o;return((r=t.priority)!=null?r:0)-((o=n.priority)!=null?o:0)})},apply(t,n){let r=n.map(o=>{let a=e.get(o);if(!a)throw new Error(`Middleware '${o}' is not registered`);return a}).sort((o,a)=>{var s,i;return((s=o.priority)!=null?s:0)-((i=a.priority)!=null?i:0)});return H(t,...r.map(o=>o.middleware))},applyAll(t){let n=this.list();return H(t,...n.map(r=>r.middleware))}}}function Pt(e={}){let{continueOnError:t=!1,logErrors:n=!0,onError:r}=e;return(o,...a)=>{let s=o,i=[],c=!0;for(let d=0;d<a.length;d++){let y=a[d];try{if("middleware"in y&&"when"in y){if(!y.when(s))continue;s=y.middleware(s)}else s=y(s)}catch(u){if(c=!1,!t)throw u;i.push({error:u,middlewareIndex:d,middlewareName:y.name}),n&&console.error(`Pipeline middleware error at index ${d}:`,u),r==null||r(u,d,y.name)}}return{machine:s,errors:i,success:c}}}function kt(...e){return t=>H(t,...e)}function Kt(e,t){return n=>{for(let[r,o]of e)if(r(n))return o(n);return t?t(n):n}}function le(e){return typeof e=="function"&&e.length===1}function _t(e){return e!==null&&(typeof e=="object"||typeof e=="function")&&"middleware"in e&&"when"in e&&le(e.middleware)&&typeof e.when=="function"}function Bt(e,t){return e!==null&&typeof e=="object"&&"transitionName"in e&&"prevContext"in e&&"nextContext"in e&&"args"in e&&typeof e.transitionName=="string"&&Array.isArray(e.args)&&(!t||I(e.prevContext,t)&&I(e.nextContext,t))}function Nt(e,t){return e!==null&&typeof e=="object"&&"transitionName"in e&&"context"in e&&"args"in e&&typeof e.transitionName=="string"&&Array.isArray(e.args)&&(!t||I(e.context,t))}function Ht(e,t){return e!==null&&typeof e=="object"&&"transitionName"in e&&"context"in e&&"args"in e&&"error"in e&&typeof e.transitionName=="string"&&Array.isArray(e.args)&&e.error instanceof Error&&(!t||I(e.context,t))}function It(e,t){if(e===null||typeof e!="object")return!1;let n=e;return!("before"in n&&n.before!==void 0&&typeof n.before!="function"||"after"in n&&n.after!==void 0&&typeof n.after!="function"||"error"in n&&n.error!==void 0&&typeof n.error!="function")}function zt(e){return e===void 0||e!==null&&typeof e=="object"&&("continueOnError"in e?typeof e.continueOnError=="boolean":!0)&&("logErrors"in e?typeof e.logErrors=="boolean":!0)&&("onError"in e?typeof e.onError=="function"||e.onError===void 0:!0)}function I(e,t){return e!==null&&typeof e=="object"}function Dt(e){return e!==null&&typeof e=="object"&&"name"in e&&"middleware"in e&&typeof e.name=="string"&&le(e.middleware)&&("description"in e?typeof e.description=="string"||e.description===void 0:!0)&&("priority"in e?typeof e.priority=="number"||e.priority===void 0:!0)}function $t(e){return e===void 0||e!==null&&typeof e=="object"&&("continueOnError"in e?typeof e.continueOnError=="boolean":!0)&&("logErrors"in e?typeof e.logErrors=="boolean":!0)&&("onError"in e?typeof e.onError=="function"||e.onError===void 0:!0)}var z=class{constructor(t){this.machine=t;this.middlewares=[]}withLogging(t){return this.middlewares.push(n=>oe(n,t)),this}withAnalytics(t,n){return this.middlewares.push(r=>ae(r,t,n)),this}withValidation(t,n){return this.middlewares.push(r=>se(r,t)),this}withPermissions(t){return this.middlewares.push(n=>ie(n,t)),this}withErrorReporting(t,n){return this.middlewares.push(r=>ce(r,t,n)),this}withPerformanceMonitoring(t,n){return this.middlewares.push(r=>de(r,t)),this}withRetry(t){return this.middlewares.push(n=>ye(n,t)),this}withHistory(t){return this.middlewares.push(n=>_(n,t)),this}withSnapshot(t){return this.middlewares.push(n=>B(n,t)),this}withTimeTravel(t){return this.middlewares.push(n=>N(n,t)),this}withDebugging(){return this.middlewares.push(t=>$e(t)),this}withCustom(t){return this.middlewares.push(t),this}withConditional(t,n){return this.middlewares.push(D(t,n)),this}build(){let t=this.machine;for(let n of this.middlewares)t=n(t);return t}getChain(){return[...this.middlewares]}clear(){return this.middlewares=[],this}};function De(e){return new z(e)}function Wt(e={}){return{create:t=>{let n=De(t);return e.logging&&n.withLogging(e.logging),e.analytics&&n.withAnalytics(e.analytics.track,e.analytics.options),e.history&&n.withHistory(e.history),e.snapshot&&n.withSnapshot(e.snapshot),e.timeTravel&&n.withTimeTravel(e.timeTravel),e.retry&&n.withRetry(e.retry),n}}}function $e(e){return N(B(_(e)))}function xe(e){let t={},n=e;for(;n&&n!==Object.prototype;){let r=Object.getOwnPropertyDescriptors(n);for(let[o,a]of Object.entries(r))o!=="constructor"&&(o in t||(t[o]=a));n=Object.getPrototypeOf(n)}return t}function We(...e){let t=e[0];class n extends t{constructor(a){super(a)}}let r=o=>function(...a){let s=o.apply(this,a);if(s&&typeof s=="object"&&"context"in s){let i={...this.context,...s.context};return new n(i)}return s};for(let o of e){let a=xe(o.prototype);for(let[s,i]of Object.entries(a))if(s!=="constructor")if(typeof i.value=="function"){let c=i.value,d=r(c);Object.defineProperty(n.prototype,s,{...i,value:d})}else Object.defineProperty(n.prototype,s,i)}return n}function Ge(e,...t){class n extends m{constructor(a){super(a)}}let r=xe(e.prototype);for(let[o,a]of Object.entries(r))if(o!=="constructor")if(typeof a.value=="function"){let s=a.value,i=function(...c){let d=s.apply(this,c);return d&&typeof d=="object"&&"context"in d?new n({...this.context,...d.context}):d};Object.defineProperty(n.prototype,o,{...a,value:i})}else Object.defineProperty(n.prototype,o,a);for(let o of t){let a=xe(o.prototype);for(let s of Object.keys(a))Object.prototype.hasOwnProperty.call(n.prototype,s)&&delete n.prototype[s]}return n}function Gt(...e){let t=e.map(a=>a.constructor),n=e.map(a=>a.context),r=Object.assign({},...n),o=We(...t);return new o(r)}function Ut(e,...t){let n=e.constructor,r=t.map(a=>a.constructor),o=Ge(n,...r);return new o(e.context)}function Ue(e,t){return e instanceof t}function Le(e,...t){return{type:e,args:t}}function Ve(e,t){return v(e,n=>({...n,...t}))}async function qe(e,...t){let n=e;for(let r of t)n=await r(n);return n}function Ye(e,t){return t?console.log(t,e.context):console.log(e.context),e}function Je(e,t){return function(...n){let r=t(this.context,...n);return h(r,e())}}function Qe(e,t,...n){return e.apply(t,n)}function Me(e){return new Proxy(e,{get(t,n){let r=t[n];return typeof r=="function"?function(...o){let a=r.apply(t,o);return a&&typeof a=="object"&&"context"in a?Me(a):a}:r}})}var $=class e{constructor(t){return this.wrappedMachine=t,new Proxy(this,{get:(n,r)=>{if(r==="wrappedMachine")return Reflect.get(n,r);if(r==="context")return this.wrappedMachine.context;let o=this.wrappedMachine[r];return typeof o=="function"?(...a)=>{let s=o.apply(this.wrappedMachine,a);return s&&typeof s=="object"&&"context"in s?new e(s):s}:o}})}};function Xe(){return function(t){return function(...n){let r=t(this.context,...n);return h(r,this)}}}function fe(e){return{machine:e,addTransition:function(t,n){let r=function(...a){let s=n(this.context,...a);return h(s,this)},o=he(e,{[t]:r});return fe(o)}}}function pe(e){return function(n){let r={},o=Object.fromEntries(Object.entries(n).map(([a,s])=>[a,function(...i){let c=s(this.context,...i);return h(c,r)}]));return Object.assign(r,o),h(e,r)}}function Ze(e,t){return t!==void 0?h(e,t):pe(e)}function et(...e){let t=new Map;for(let[i,c,d]of e){if(t.has(i))throw new Error(`Duplicate matcher case name: "${i}"`);t.set(i,{predicate:d})}let n=new Proxy({},{get(i,c){return function(y){let u=t.get(c);if(!u){let x=Array.from(t.keys()).join(", ");throw new Error(`Unknown matcher case: "${c}". Available cases: ${x}`)}return u.predicate(y)}}}),r=new Proxy({},{get(i,c){return function(y){if(!t.has(c)){let u=Array.from(t.keys()).join(", ");throw new Error(`Unknown matcher case: "${c}". Available cases: ${u}`)}return{__brand:"CaseHandler",__name:c,__machine:void 0,__return:void 0,handler:y}}}}),o={__exhaustive:!0};function a(i){return{is(...c){if(c.length===0)throw new Error("Pattern match requires at least one handler and exhaustiveness marker");let d=c[c.length-1];if(!d||typeof d!="object"||!("__exhaustive"in d))throw new Error("Pattern match must end with match.exhaustive for compile-time exhaustiveness checking");let y=c.slice(0,-1);for(let l of y){let M=l.__name,f=t.get(M);if(!f)throw new Error(`Internal error: Unknown matcher case in handler: ${M}`);if(f.predicate(i))return l.handler(i)}let u=y.map(l=>l.__name).join(", "),x=Array.from(t.keys()).join(", ");throw new Error(`Non-exhaustive pattern match at runtime: no handler matched the machine.
2
+ Handled cases: [${u}]
3
3
  All cases: [${x}]
4
- This may occur if predicates don't cover all runtime possibilities.`)}}}function s(i){for(let[c,d,u]of e)if(u(i))return c;return null}return Object.assign(s,{is:n,when:a,case:r,exhaustive:o})}function et(e,t){return[e,void 0,n=>n instanceof t]}function tt(e,t,n){return[e,void 0,r=>$(r,t,n)]}function nt(e,t){return[e,void 0,t]}function rt(){return{case(e,t,n){return[e,void 0,r=>$(r,t,n)]}}}var R=class R{constructor(t){this._observers=new Set;this._queue=[];this._processing=!1;this._state=t,this.ref={send:n=>this.dispatch(n)},this.send=new Proxy({},{get:(n,r)=>(...o)=>{this.dispatch({type:r,args:o})}})}static inspect(t){R._inspector=t}getSnapshot(){return this._state}subscribe(t){return this._observers.add(t),()=>{this._observers.delete(t)}}select(t){return t(this._state)}start(){return this}stop(){this._observers.clear()}dispatch(t){if(R._inspector&&R._inspector({type:"@actor/send",actor:this,event:t,snapshot:this._state}),this._processing){this._queue.push(t);return}this._processing=!0,this._queue.push(t),this._flush()}_flush(){for(;this._queue.length>0;){let t=this._queue[0];this._queue.shift();let r=this._state[t.type];if(typeof r!="function"){console.warn(`[Actor] Transition '${String(t.type)}' not found.`);continue}let o;try{o=r.apply(this._state,t.args)}catch(a){console.error(`[Actor] Error in transition '${String(t.type)}':`,a);continue}if(o instanceof Promise){o.then(a=>{this._state=a,this._notify(),this._flush()}).catch(a=>{console.error(`[Actor] Async error in transition '${String(t.type)}':`,a),this._flush()});return}else this._state=o,this._notify()}this._processing=!1}_notify(){let t=this.getSnapshot();this._observers.forEach(n=>n(t))}};R._inspector=null;var A=R;function F(e){return new A(e)}function ot(e){return F(e)}function at(e){let n=h({status:"pending",data:void 0,error:void 0},o=>({resolve(a){return o({status:"resolved",data:a,error:void 0})},reject(a){return o({status:"rejected",error:a,data:void 0})}})),r=F(n);return e().then(o=>r.send.resolve(o)).catch(o=>r.send.reject(o)),r}function st(e){let n=h({status:"active",value:void 0,error:void 0},o=>({next(a){return o({status:"active",value:a,error:void 0})},error(a){return o({status:"error",error:a,value:void 0})},complete(){return o({status:"done",value:void 0,error:void 0})}})),r=F(n);return e.subscribe(o=>r.send.next(o),o=>r.send.error(o),()=>r.send.complete()),r}function he(e,t){let n=t,r=Object.fromEntries(Object.entries(t).map(([o,a])=>[o,function(...s){let i={context:this.context},c=a.apply(i,s);return he(c,n)}]));return Object.values(r).forEach(o=>{typeof o=="function"&&Object.defineProperty(o,"__contextBound",{value:!0,enumerable:!1})}),b(Object.assign({context:e},r),r)}function it(e,t,...n){let r=e[t],o={context:e.context};return r.apply(o,n)}function ct(e){let t=Object.values(e).find(n=>typeof n=="function");return t?t.__contextBound===!0:!1}var G={};V(G,{factory:()=>Jt,freeze:()=>Ce,isState:()=>Lt,machine:()=>W,match:()=>Vt,run:()=>Yt,runnable:()=>qt,tag:()=>dt,union:()=>Qt,withChildren:()=>ut});function dt(e,t){return typeof e=="object"?e:t?{...t,tag:e}:{tag:e}}function Lt(e,t){return e.tag===t}function Ce(e){if(Object.freeze(e),typeof Object.values=="function")for(let t of Object.values(e))t&&typeof t=="object"&&Ce(t);return e}function W(e,t){let r=t(e,o=>W(o,t));return Object.assign({},e,r)}function Vt(e,t){let n=t[e.tag];return n(e)}var j=Symbol("lifecycle");function qt(e,t){let n={...e};return n[j]=t,n}function Yt(e){let t=e,n=null,r=new Set,o=()=>{r.forEach(i=>i(t))},a=()=>{n&&(n(),n=null);let i=t[j],c=t.tag,d=i==null?void 0:i[c];d!=null&&d.onEnter&&(n=d.onEnter(s))},s=(i,...c)=>{let d=t[i];if(typeof d=="function"){let u=d(...c);if(u&&typeof u=="object"&&"tag"in u){let y=u;!y[j]&&t[j]&&(y[j]=t[j]),t=y,a(),o()}}};return a(),{get:()=>t,send:s,stop:()=>{n&&(n(),n=null),r.clear()},subscribe:i=>(r.add(i),()=>r.delete(i))}}function ut(e,t){let n={...e};for(let r of Object.keys(t)){let o=t[r],a=new Proxy(o,{get(s,i){let c=s[i];return typeof c=="function"?(...d)=>{let u=c(...d);return ut({...e},{...t,[r]:u})}:c}});n[r]=a}return n}function Jt(){return e=>t=>W(t,e)}function Qt(){return e=>{let t=n=>{let r=e[n.tag];return W(n,(o,a)=>r(o,t))};return t}}var U={};V(U,{createDelegate:()=>Xt,delegate:()=>yt,delegateAll:()=>Zt,renameMap:()=>en});function yt(e,t,n,r){let o=e[t],a={},s=Object.keys(o).filter(c=>typeof o[c]=="function"),i;if(!r)i=Object.fromEntries(s.map(c=>[c,c]));else if("pick"in r)i=Object.fromEntries(r.pick.filter(c=>s.includes(c)).map(c=>[c,c]));else if("omit"in r){let c=new Set(r.omit);i=Object.fromEntries(s.filter(d=>!c.has(d)).map(d=>[d,d]))}else"rename"in r?i=Object.fromEntries(Object.entries(r.rename).filter(([c])=>s.includes(c))):i={};for(let[c,d]of Object.entries(i)){let u=o[c];a[d]=(...y)=>{let x=u.apply(o,y);return n({...e,[t]:x})}}return a}function Xt(e,t){return(n,r)=>yt(e,n,t,r)}function Zt(e,t,n,r=!1){let o={};for(let a of t){let s=e[a],i=Object.keys(s).filter(c=>typeof s[c]=="function");for(let c of i){let d=r?`${String(a)}_${c}`:c,u=s[c];o[d]=(...y)=>{let x=u.apply(s,y);return n({...e,[a]:x})}}}return o}function en(){return e=>e}function h(e,t){if(typeof t=="function"){let a;return a=t(i=>h(i,a)),b(Object.assign({context:e},a),a)}let n=S(t),r=n!=null?n:"context"in t?O(t):t,o=Object.assign({context:e},r);return b(o,r)}function lt(e,t){if(typeof t=="function"){let a;return a=t(i=>lt(i,a)),b(Object.assign({context:e},a),a)}let n=S(t),r=n!=null?n:"context"in t?O(t):t,o=Object.assign({context:e},r);return b(o,r)}function tn(){return e=>{let t=Object.fromEntries(Object.entries(e).map(([n,r])=>[n,function(...o){let a=r(this.context,...o);return h(a,t)}]));return n=>h(n,t)}}function v(e,t){var a;let n=e.context,r=(a=S(e))!=null?a:O(e),o=typeof t=="function"?t(n):t;return h(o,r)}function nn(e){return{context:e}}function rn(e,t){let{context:n,...r}=e,o={...r,...t};return h(n,o)}function pe(e,t){let{context:n,...r}=e,o={...r,...t};return h(n,o)}function on(e,t){return(...n)=>{let r=e(...n),o=t(),a={...r.context,...o.context},{context:s,...i}=r,{context:c,...d}=o,u={...i,...d};return h(a,u)}}function an(e){let{context:t,...n}=e;return r=>h(r,n)}function sn(e,t,n){let r=e.context[t],o=n[r];if(!o)throw new Error(`No handler found for state: ${String(r)}`);return o(e.context)}function $(e,t,n){return e.context[t]===n}function cn(e,t){let n=e,r=null;async function o(a){r&&(r.abort(),r=null);let s=n[a.type];if(typeof s!="function")throw new Error(`[Machine] Unknown event type '${String(a.type)}' on current state.`);let i=new AbortController;r=i;try{let d=await s.apply(n,[...a.args,{signal:i.signal}]);return i.signal.aborted||(n=d,t==null||t(n)),n}finally{r===i&&(r=null)}}return{get state(){return n.context},dispatch:o,stop:()=>{r&&(r.abort(),r=null)}}}function dn(e,t){return v(e,n=>t(n))}
4
+ This may occur if predicates don't cover all runtime possibilities.`)}}}function s(i){for(let[c,d,y]of e)if(y(i))return c;return null}return Object.assign(s,{is:n,when:a,case:r,exhaustive:o})}function tt(e,t){return[e,void 0,n=>n instanceof t]}function nt(e,t,n){return[e,void 0,r=>W(r,t,n)]}function rt(e,t){return[e,void 0,t]}function ot(){return{case(e,t,n){return[e,void 0,r=>W(r,t,n)]}}}var R=class R{constructor(t){this._observers=new Set;this._queue=[];this._processing=!1;this._state=t,this.ref={send:n=>this.dispatch(n)},this.send=new Proxy({},{get:(n,r)=>(...o)=>{this.dispatch({type:r,args:o})}})}static inspect(t){R._inspector=t}getSnapshot(){return this._state}subscribe(t){return this._observers.add(t),()=>{this._observers.delete(t)}}select(t){return t(this._state)}start(){return this}stop(){this._observers.clear()}dispatch(t){if(R._inspector&&R._inspector({type:"@actor/send",actor:this,event:t,snapshot:this._state}),this._processing){this._queue.push(t);return}this._processing=!0,this._queue.push(t),this._flush()}_flush(){for(;this._queue.length>0;){let t=this._queue[0];this._queue.shift();let r=this._state[t.type];if(typeof r!="function"){console.warn(`[Actor] Transition '${String(t.type)}' not found.`);continue}let o;try{o=r.apply(this._state,t.args)}catch(a){console.error(`[Actor] Error in transition '${String(t.type)}':`,a);continue}if(o instanceof Promise){o.then(a=>{this._state=a,this._notify(),this._flush()}).catch(a=>{console.error(`[Actor] Async error in transition '${String(t.type)}':`,a),this._flush()});return}else this._state=o,this._notify()}this._processing=!1}_notify(){let t=this.getSnapshot();this._observers.forEach(n=>n(t))}};R._inspector=null;var A=R;function F(e){return new A(e)}function at(e){return F(e)}function st(e){let n=h({status:"pending",data:void 0,error:void 0},o=>({resolve(a){return o({status:"resolved",data:a,error:void 0})},reject(a){return o({status:"rejected",error:a,data:void 0})}})),r=F(n);return e().then(o=>r.send.resolve(o)).catch(o=>r.send.reject(o)),r}function it(e){let n=h({status:"active",value:void 0,error:void 0},o=>({next(a){return o({status:"active",value:a,error:void 0})},error(a){return o({status:"error",error:a,value:void 0})},complete(){return o({status:"done",value:void 0,error:void 0})}})),r=F(n);return e.subscribe(o=>r.send.next(o),o=>r.send.error(o),()=>r.send.complete()),r}function Ce(e,t){let n=t,r=Object.fromEntries(Object.entries(t).map(([o,a])=>[o,function(...s){let i={context:this.context},c=a.apply(i,s);return Ce(c,n)}]));return Object.values(r).forEach(o=>{typeof o=="function"&&Object.defineProperty(o,"__contextBound",{value:!0,enumerable:!1})}),b(Object.assign({context:e},r),r)}function ct(e,t,...n){let r=e[t],o={context:e.context};return r.apply(o,n)}function dt(e){let t=Object.values(e).find(n=>typeof n=="function");return t?t.__contextBound===!0:!1}var U={};q(U,{factory:()=>Jt,freeze:()=>ge,isState:()=>Lt,machine:()=>G,match:()=>Vt,run:()=>Yt,runnable:()=>qt,tag:()=>S,union:()=>Qt,withChildren:()=>yt});function S(e,t){return typeof e=="object"?e:t?{...t,tag:e}:{tag:e}}(t=>{function e(n){return n?r=>t(n,r):r=>o=>t(r,o)}t.factory=e})(S||(S={}));function Lt(e,t){return e.tag===t}function ge(e){if(Object.freeze(e),typeof Object.values=="function")for(let t of Object.values(e))t&&typeof t=="object"&&ge(t);return e}function G(e,t){let r=t(e,o=>G(o,t));return Object.assign({},e,r)}function Vt(e,t){let n=t[e.tag];return n(e)}var j=Symbol("lifecycle");function qt(e,t){let n={...e};return n[j]=t,n}function Yt(e){let t=e,n=null,r=new Set,o=()=>{r.forEach(i=>i(t))},a=()=>{n&&(n(),n=null);let i=t[j],c=t.tag,d=i==null?void 0:i[c];d!=null&&d.onEnter&&(n=d.onEnter(s))},s=(i,...c)=>{let d=t[i];if(typeof d=="function"){let y=d(...c);if(y&&typeof y=="object"&&"tag"in y){let u=y;!u[j]&&t[j]&&(u[j]=t[j]),t=u,a(),o()}}};return a(),{get:()=>t,send:s,stop:()=>{n&&(n(),n=null),r.clear()},subscribe:i=>(r.add(i),()=>r.delete(i))}}function yt(e,t){let n={...e};for(let r of Object.keys(t)){let o=t[r],a=new Proxy(o,{get(s,i){let c=s[i];return typeof c=="function"?(...d)=>{let y=c(...d);return yt({...e},{...t,[r]:y})}:c}});n[r]=a}return n}function Jt(){return e=>t=>G(t,e)}function Qt(){return e=>{let t=n=>{let r=e[n.tag];return G(n,(o,a)=>r(o,t))};return t}}var L={};q(L,{createDelegate:()=>Xt,delegate:()=>ut,delegateAll:()=>Zt,renameMap:()=>en});function ut(e,t,n,r){let o=e[t],a={},s=Object.keys(o).filter(c=>typeof o[c]=="function"),i;if(!r)i=Object.fromEntries(s.map(c=>[c,c]));else if("pick"in r)i=Object.fromEntries(r.pick.filter(c=>s.includes(c)).map(c=>[c,c]));else if("omit"in r){let c=new Set(r.omit);i=Object.fromEntries(s.filter(d=>!c.has(d)).map(d=>[d,d]))}else"rename"in r?i=Object.fromEntries(Object.entries(r.rename).filter(([c])=>s.includes(c))):i={};for(let[c,d]of Object.entries(i)){let y=o[c];a[d]=(...u)=>{let x=y.apply(o,u);return n({...e,[t]:x})}}return a}function Xt(e,t){return(n,r)=>ut(e,n,t,r)}function Zt(e,t,n,r=!1){let o={};for(let a of t){let s=e[a],i=Object.keys(s).filter(c=>typeof s[c]=="function");for(let c of i){let d=r?`${String(a)}_${c}`:c,y=s[c];o[d]=(...u)=>{let x=y.apply(s,u);return n({...e,[a]:x})}}}return o}function en(){return e=>e}function h(e,t){if(typeof t=="function"){let a;return a=t(i=>h(i,a)),b(Object.assign({context:e},a),a)}let n=O(t),r=n!=null?n:"context"in t?P(t):t,o=Object.assign({context:e},r);return b(o,r)}function lt(e,t){if(typeof t=="function"){let a;return a=t(i=>lt(i,a)),b(Object.assign({context:e},a),a)}let n=O(t),r=n!=null?n:"context"in t?P(t):t,o=Object.assign({context:e},r);return b(o,r)}function tn(){return e=>{let t=Object.fromEntries(Object.entries(e).map(([n,r])=>[n,function(...o){let a=r(this.context,...o);return h(a,t)}]));return n=>h(n,t)}}function v(e,t){var a;let n=e.context,r=(a=O(e))!=null?a:P(e),o=typeof t=="function"?t(n):t;return h(o,r)}function nn(e){return{context:e}}function rn(e,t){let{context:n,...r}=e,o={...r,...t};return h(n,o)}function he(e,t){let{context:n,...r}=e,o={...r,...t};return h(n,o)}function on(e,t){return(...n)=>{let r=e(...n),o=t(),a={...r.context,...o.context},{context:s,...i}=r,{context:c,...d}=o,y={...i,...d};return h(a,y)}}function an(e){let{context:t,...n}=e;return r=>h(r,n)}function sn(e,t,n){let r=e.context[t],o=n[r];if(!o)throw new Error(`No handler found for state: ${String(r)}`);return o(e.context)}function W(e,t,n){return e.context[t]===n}function cn(e,t){let n=e,r=null;async function o(a){r&&(r.abort(),r=null);let s=n[a.type];if(typeof s!="function")throw new Error(`[Machine] Unknown event type '${String(a.type)}' on current state.`);let i=new AbortController;r=i;try{let d=await s.apply(n,[...a.args,{signal:i.signal}]);return i.signal.aborted||(n=d,t==null||t(n)),n}finally{r===i&&(r=null)}}return{get state(){return n.context},dispatch:o,stop:()=>{r&&(r.abort(),r=null)}}}function dn(e,t){return v(e,n=>t(n))}
@@ -1 +1 @@
1
- "use strict";var T=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var M=Object.prototype.hasOwnProperty;var h=(n,e)=>{for(var t in e)T(n,t,{get:e[t],enumerable:!0})},b=(n,e,t,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of l(e))!M.call(n,s)&&s!==t&&T(n,s,{get:()=>e[s],enumerable:!(a=C(e,s))||a.enumerable});return n};var R=n=>b(T({},"__esModule",{value:!0}),n);var K={};h(K,{factory:()=>w,freeze:()=>f,isState:()=>P,machine:()=>u,match:()=>j,run:()=>O,runnable:()=>E,tag:()=>k,union:()=>F,withChildren:()=>p});module.exports=R(K);function k(n,e){return typeof n=="object"?n:e?{...e,tag:n}:{tag:n}}function P(n,e){return n.tag===e}function f(n){if(Object.freeze(n),typeof Object.values=="function")for(let e of Object.values(n))e&&typeof e=="object"&&f(e);return n}function u(n,e){let a=e(n,s=>u(s,e));return Object.assign({},n,a)}function j(n,e){let t=e[n.tag];return t(n)}var g=Symbol("lifecycle");function E(n,e){let t={...n};return t[g]=e,t}function O(n){let e=n,t=null,a=new Set,s=()=>{a.forEach(r=>r(e))},x=()=>{t&&(t(),t=null);let r=e[g],i=e.tag,o=r==null?void 0:r[i];o!=null&&o.onEnter&&(t=o.onEnter(d))},d=(r,...i)=>{let o=e[r];if(typeof o=="function"){let c=o(...i);if(c&&typeof c=="object"&&"tag"in c){let y=c;!y[g]&&e[g]&&(y[g]=e[g]),e=y,x(),s()}}};return x(),{get:()=>e,send:d,stop:()=>{t&&(t(),t=null),a.clear()},subscribe:r=>(a.add(r),()=>a.delete(r))}}function p(n,e){let t={...n};for(let a of Object.keys(e)){let s=e[a],x=new Proxy(s,{get(d,r){let i=d[r];return typeof i=="function"?(...o)=>{let c=i(...o);return p({...n},{...e,[a]:c})}:i}});t[a]=x}return t}function w(){return n=>e=>u(e,n)}function F(){return n=>{let e=t=>{let a=n[t.tag];return u(t,(s,x)=>a(s,e))};return e}}
1
+ "use strict";var p=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var b=Object.prototype.hasOwnProperty;var h=(t,e)=>{for(var n in e)p(t,n,{get:e[n],enumerable:!0})},j=(t,e,n,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of l(e))!b.call(t,r)&&r!==n&&p(t,r,{get:()=>e[r],enumerable:!(a=M(e,r))||a.enumerable});return t};var R=t=>j(p({},"__esModule",{value:!0}),t);var F={};h(F,{factory:()=>O,freeze:()=>T,isState:()=>K,machine:()=>u,match:()=>k,run:()=>P,runnable:()=>E,tag:()=>y,union:()=>w,withChildren:()=>C});module.exports=R(F);function y(t,e){return typeof t=="object"?t:e?{...e,tag:t}:{tag:t}}(e=>{function t(n){return n?a=>e(n,a):a=>r=>e(a,r)}e.factory=t})(y||(y={}));function K(t,e){return t.tag===e}function T(t){if(Object.freeze(t),typeof Object.values=="function")for(let e of Object.values(t))e&&typeof e=="object"&&T(e);return t}function u(t,e){let a=e(t,r=>u(r,e));return Object.assign({},t,a)}function k(t,e){let n=e[t.tag];return n(t)}var g=Symbol("lifecycle");function E(t,e){let n={...t};return n[g]=e,n}function P(t){let e=t,n=null,a=new Set,r=()=>{a.forEach(s=>s(e))},x=()=>{n&&(n(),n=null);let s=e[g],c=e.tag,o=s==null?void 0:s[c];o!=null&&o.onEnter&&(n=o.onEnter(d))},d=(s,...c)=>{let o=e[s];if(typeof o=="function"){let i=o(...c);if(i&&typeof i=="object"&&"tag"in i){let f=i;!f[g]&&e[g]&&(f[g]=e[g]),e=f,x(),r()}}};return x(),{get:()=>e,send:d,stop:()=>{n&&(n(),n=null),a.clear()},subscribe:s=>(a.add(s),()=>a.delete(s))}}function C(t,e){let n={...t};for(let a of Object.keys(e)){let r=e[a],x=new Proxy(r,{get(d,s){let c=d[s];return typeof c=="function"?(...o)=>{let i=c(...o);return C({...t},{...e,[a]:i})}:c}});n[a]=x}return n}function O(){return t=>e=>u(e,t)}function w(){return t=>{let e=n=>{let a=t[n.tag];return u(n,(r,x)=>a(r,e))};return e}}
@@ -2058,6 +2058,15 @@ function tag(nameOrObj, props) {
2058
2058
  }
2059
2059
  return { tag: nameOrObj };
2060
2060
  }
2061
+ ((tag2) => {
2062
+ function factory2(name) {
2063
+ if (name) {
2064
+ return (props) => tag2(name, props);
2065
+ }
2066
+ return (name2) => (props) => tag2(name2, props);
2067
+ }
2068
+ tag2.factory = factory2;
2069
+ })(tag || (tag = {}));
2061
2070
  function isState2(machine2, tagValue) {
2062
2071
  return machine2.tag === tagValue;
2063
2072
  }