xstate 5.0.0-alpha.6 → 5.0.0-beta.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/actions/dist/xstate-actions.cjs.d.mts +2 -0
- package/actions/dist/xstate-actions.cjs.d.mts.map +1 -0
- package/actions/dist/xstate-actions.cjs.d.ts +1 -0
- package/actions/dist/xstate-actions.cjs.d.ts.map +1 -0
- package/actions/dist/xstate-actions.cjs.js +29 -5
- package/actions/dist/xstate-actions.cjs.mjs +24 -0
- package/actions/dist/{xstate-actions.cjs.dev.js → xstate-actions.development.cjs.js} +3 -3
- package/actions/dist/xstate-actions.development.esm.js +2 -0
- package/actions/dist/xstate-actions.esm.js +2 -2
- package/actions/dist/xstate-actions.umd.min.js +1 -1
- package/actions/dist/xstate-actions.umd.min.js.map +1 -1
- package/actors/dist/xstate-actors.cjs.d.mts +2 -0
- package/actors/dist/xstate-actors.cjs.d.mts.map +1 -0
- package/actors/dist/xstate-actors.cjs.d.ts +1 -0
- package/actors/dist/xstate-actors.cjs.d.ts.map +1 -0
- package/actors/dist/xstate-actors.cjs.js +20 -5
- package/actors/dist/xstate-actors.cjs.mjs +15 -0
- package/actors/dist/{xstate-actors.cjs.dev.js → xstate-actors.development.cjs.js} +3 -2
- package/actors/dist/xstate-actors.development.esm.js +2 -0
- package/actors/dist/xstate-actors.esm.js +2 -2
- package/actors/dist/xstate-actors.umd.min.js +1 -1
- package/actors/dist/xstate-actors.umd.min.js.map +1 -1
- package/dev/dist/xstate-dev.cjs.d.mts +2 -0
- package/dev/dist/xstate-dev.cjs.d.mts.map +1 -0
- package/dev/dist/xstate-dev.cjs.d.ts +1 -0
- package/dev/dist/xstate-dev.cjs.d.ts.map +1 -0
- package/dev/dist/xstate-dev.cjs.js +45 -4
- package/dev/dist/xstate-dev.cjs.mjs +5 -0
- package/{dist/index-ebaab3c9.cjs.dev.js → dev/dist/xstate-dev.development.cjs.js} +6 -7
- package/{dist/index-50bd0aff.esm.js → dev/dist/xstate-dev.development.esm.js} +6 -8
- package/dev/dist/xstate-dev.esm.js +42 -1
- package/dev/dist/xstate-dev.umd.min.js +1 -1
- package/dev/dist/xstate-dev.umd.min.js.map +1 -1
- package/dist/actions-26f9aa9d.cjs.js +3388 -0
- package/dist/actions-acbe7aa1.development.cjs.js +3423 -0
- package/dist/actions-b82e841e.esm.js +3306 -0
- package/dist/actions-cff79077.development.esm.js +3341 -0
- package/dist/declarations/src/State.d.ts +2 -3
- package/dist/declarations/src/StateMachine.d.ts +6 -6
- package/dist/declarations/src/StateNode.d.ts +3 -9
- package/dist/declarations/src/actions/send.d.ts +0 -7
- package/dist/declarations/src/actions.d.ts +9 -8
- package/dist/declarations/src/actors/index.d.ts +2 -1
- package/dist/declarations/src/actors/observable.d.ts +1 -2
- package/dist/declarations/src/actors/promise.d.ts +1 -2
- package/dist/declarations/src/guards.d.ts +2 -2
- package/dist/declarations/src/index.d.ts +13 -29
- package/dist/declarations/src/interpreter.d.ts +5 -4
- package/dist/declarations/src/stateUtils.d.ts +9 -14
- package/dist/declarations/src/typegenTypes.d.ts +7 -1
- package/dist/declarations/src/types.d.ts +18 -92
- package/dist/declarations/src/utils.d.ts +3 -6
- package/dist/declarations/src/waitFor.d.ts +33 -0
- package/dist/xstate.cjs.d.mts +2 -0
- package/dist/xstate.cjs.d.mts.map +1 -0
- package/dist/xstate.cjs.d.ts +1 -0
- package/dist/xstate.cjs.d.ts.map +1 -0
- package/dist/xstate.cjs.js +802 -4
- package/dist/xstate.cjs.mjs +38 -0
- package/dist/xstate.development.cjs.js +808 -0
- package/dist/xstate.development.esm.js +770 -0
- package/dist/xstate.esm.js +594 -706
- package/dist/xstate.umd.min.js +1 -1
- package/dist/xstate.umd.min.js.map +1 -1
- package/guards/dist/xstate-guards.cjs.d.mts +2 -0
- package/guards/dist/xstate-guards.cjs.d.mts.map +1 -0
- package/guards/dist/xstate-guards.cjs.d.ts +1 -0
- package/guards/dist/xstate-guards.cjs.d.ts.map +1 -0
- package/guards/dist/xstate-guards.cjs.js +13 -5
- package/guards/dist/xstate-guards.cjs.mjs +8 -0
- package/guards/dist/{xstate-guards.cjs.dev.js → xstate-guards.development.cjs.js} +2 -2
- package/guards/dist/xstate-guards.development.esm.js +2 -0
- package/guards/dist/xstate-guards.esm.js +2 -2
- package/guards/dist/xstate-guards.umd.min.js +1 -1
- package/guards/dist/xstate-guards.umd.min.js.map +1 -1
- package/package.json +58 -1
- package/actions/dist/xstate-actions.cjs.prod.js +0 -31
- package/actors/dist/xstate-actors.cjs.prod.js +0 -21
- package/dev/dist/xstate-dev.cjs.dev.js +0 -11
- package/dev/dist/xstate-dev.cjs.prod.js +0 -48
- package/dist/actions-41b74cdc.esm.js +0 -4287
- package/dist/actions-bf7bb1c5.cjs.dev.js +0 -4342
- package/dist/actions-c46e4911.cjs.prod.js +0 -4304
- package/dist/declarations/actions/dynamicAction.d.ts +0 -5
- package/dist/declarations/src/Mailbox.d.ts +0 -12
- package/dist/declarations/src/actions/invoke.d.ts +0 -3
- package/dist/declarations/src/environment.d.ts +0 -1
- package/dist/declarations/src/memo.d.ts +0 -2
- package/dist/declarations/src/schema.d.ts +0 -2
- package/dist/declarations/src/spawn.d.ts +0 -2
- package/dist/declarations/src/system.d.ts +0 -2
- package/dist/xstate.cjs.dev.js +0 -921
- package/dist/xstate.cjs.prod.js +0 -921
- package/guards/dist/xstate-guards.cjs.prod.js +0 -15
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { StateNode } from './StateNode.ts';
|
|
2
2
|
import { TypegenDisabled, TypegenEnabled } from './typegenTypes.ts';
|
|
3
|
-
import type { ActorRef, AnyState, AnyStateMachine, BaseActionObject, EventObject, HistoryValue, MachineContext, PersistedMachineState, Prop,
|
|
3
|
+
import type { ActorRef, AnyState, AnyStateMachine, BaseActionObject, EventObject, HistoryValue, MachineContext, PersistedMachineState, Prop, StateConfig, StateValue, TransitionDefinition } from './types.ts';
|
|
4
4
|
export declare function isStateConfig<TContext extends MachineContext, TEvent extends EventObject>(state: any): state is StateConfig<TContext, TEvent>;
|
|
5
5
|
/**
|
|
6
6
|
* @deprecated Use `isStateConfig(object)` or `state instanceof State` instead.
|
|
@@ -22,8 +22,7 @@ export declare class State<TContext extends MachineContext, TEvent extends Event
|
|
|
22
22
|
historyValue: Readonly<HistoryValue<TContext, TEvent>>;
|
|
23
23
|
actions: BaseActionObject[];
|
|
24
24
|
event: TEvent;
|
|
25
|
-
_internalQueue: Array<
|
|
26
|
-
_event: SCXML.Event<TEvent>;
|
|
25
|
+
_internalQueue: Array<TEvent>;
|
|
27
26
|
_initial: boolean;
|
|
28
27
|
/**
|
|
29
28
|
* Indicates whether the state has changed from the previous state. A state is considered "changed" if:
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { State } from './State.ts';
|
|
2
2
|
import { StateNode } from './StateNode.ts';
|
|
3
3
|
import type { AreAllImplementationsAssumedToBeProvided, MarkAllImplementationsAsProvided, ResolveTypegenMeta, TypegenDisabled } from './typegenTypes.ts';
|
|
4
|
-
import type { ActorContext, ActorMap, ActorBehavior, EventObject, InternalMachineImplementations, MachineConfig, MachineContext, MachineImplementationsSimplified,
|
|
4
|
+
import type { ActorContext, ActorMap, ActorBehavior, EventObject, InternalMachineImplementations, MachineConfig, MachineContext, MachineImplementationsSimplified, MachineTypes, NoInfer, StateConfig, StateMachineDefinition, StateValue, TransitionDefinition, PersistedMachineState, ParameterizedObject, AnyActorContext } from './types.ts';
|
|
5
5
|
export declare const NULL_EVENT = "";
|
|
6
6
|
export declare const STATE_IDENTIFIER = "#";
|
|
7
7
|
export declare const WILDCARD = "*";
|
|
8
|
-
export declare class StateMachine<TContext extends MachineContext, TEvent extends EventObject = EventObject, TAction extends ParameterizedObject = ParameterizedObject, TActorMap extends ActorMap = ActorMap, TResolvedTypesMeta = ResolveTypegenMeta<TypegenDisabled, NoInfer<TEvent>, TAction, TActorMap>> implements ActorBehavior<TEvent
|
|
8
|
+
export declare class StateMachine<TContext extends MachineContext, TEvent extends EventObject = EventObject, TAction extends ParameterizedObject = ParameterizedObject, TActorMap extends ActorMap = ActorMap, TResolvedTypesMeta = ResolveTypegenMeta<TypegenDisabled, NoInfer<TEvent>, TAction, TActorMap>> implements ActorBehavior<TEvent, State<TContext, TEvent, TResolvedTypesMeta>, State<TContext, TEvent, TResolvedTypesMeta>, PersistedMachineState<State<TContext, TEvent, TResolvedTypesMeta>>> {
|
|
9
9
|
/**
|
|
10
10
|
* The raw config used to create the machine.
|
|
11
11
|
*/
|
|
@@ -21,7 +21,7 @@ export declare class StateMachine<TContext extends MachineContext, TEvent extend
|
|
|
21
21
|
*/
|
|
22
22
|
delimiter: string;
|
|
23
23
|
options: MachineImplementationsSimplified<TContext, TEvent>;
|
|
24
|
-
|
|
24
|
+
types: MachineTypes<TContext, TEvent>;
|
|
25
25
|
__xstatenode: true;
|
|
26
26
|
idMap: Map<string, StateNode<TContext, TEvent>>;
|
|
27
27
|
root: StateNode<TContext, TEvent>;
|
|
@@ -59,7 +59,7 @@ export declare class StateMachine<TContext extends MachineContext, TEvent extend
|
|
|
59
59
|
* @param state The current State instance or state value
|
|
60
60
|
* @param event The received event
|
|
61
61
|
*/
|
|
62
|
-
transition(state: StateValue | State<TContext, TEvent, TResolvedTypesMeta> | undefined, event: TEvent
|
|
62
|
+
transition(state: StateValue | State<TContext, TEvent, TResolvedTypesMeta> | undefined, event: TEvent, actorCtx?: ActorContext<TEvent, State<TContext, TEvent, any>>): State<TContext, TEvent, TResolvedTypesMeta>;
|
|
63
63
|
/**
|
|
64
64
|
* Determines the next state given the current `state` and `event`.
|
|
65
65
|
* Calculates a microstep.
|
|
@@ -67,8 +67,8 @@ export declare class StateMachine<TContext extends MachineContext, TEvent extend
|
|
|
67
67
|
* @param state The current state
|
|
68
68
|
* @param event The received event
|
|
69
69
|
*/
|
|
70
|
-
microstep(state: State<TContext, TEvent, TResolvedTypesMeta> | undefined, event: TEvent
|
|
71
|
-
getTransitionData(state: State<TContext, TEvent, TResolvedTypesMeta>,
|
|
70
|
+
microstep(state: State<TContext, TEvent, TResolvedTypesMeta> | undefined, event: TEvent, actorCtx?: AnyActorContext | undefined): Array<State<TContext, TEvent, TResolvedTypesMeta>>;
|
|
71
|
+
getTransitionData(state: State<TContext, TEvent, TResolvedTypesMeta>, event: TEvent): Array<TransitionDefinition<TContext, TEvent>>;
|
|
72
72
|
/**
|
|
73
73
|
* The initial state _before_ evaluating any microsteps.
|
|
74
74
|
* This "pre-initial" state is provided to initial actions executed in the initial state.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { EventObject, StateNodeDefinition, TransitionDefinition, DelayedTransitionDefinition, StateNodeConfig, StateNodesConfig, InvokeDefinition, Mapper, PropertyMapper,
|
|
1
|
+
import type { EventObject, StateNodeDefinition, TransitionDefinition, DelayedTransitionDefinition, StateNodeConfig, StateNodesConfig, InvokeDefinition, Mapper, PropertyMapper, TransitionDefinitionMap, InitialTransitionDefinition, MachineContext, BaseActionObject } from './types.ts';
|
|
2
2
|
import type { State } from './State.ts';
|
|
3
3
|
import type { StateMachine } from './StateMachine.ts';
|
|
4
4
|
interface StateNodeOptions<TContext extends MachineContext, TEvent extends EventObject> {
|
|
@@ -69,7 +69,7 @@ export declare class StateNode<TContext extends MachineContext = MachineContext,
|
|
|
69
69
|
*/
|
|
70
70
|
output?: Mapper<TContext, TEvent, any> | PropertyMapper<TContext, TEvent, any>;
|
|
71
71
|
/**
|
|
72
|
-
* The order this state node appears. Corresponds to the implicit
|
|
72
|
+
* The order this state node appears. Corresponds to the implicit document order.
|
|
73
73
|
*/
|
|
74
74
|
order: number;
|
|
75
75
|
description?: string;
|
|
@@ -97,13 +97,7 @@ export declare class StateNode<TContext extends MachineContext = MachineContext,
|
|
|
97
97
|
get on(): TransitionDefinitionMap<TContext, TEvent>;
|
|
98
98
|
get after(): Array<DelayedTransitionDefinition<TContext, TEvent>>;
|
|
99
99
|
get initial(): InitialTransitionDefinition<TContext, TEvent>;
|
|
100
|
-
|
|
101
|
-
* Returns `true` if this state node explicitly handles the given event.
|
|
102
|
-
*
|
|
103
|
-
* @param event The event in question
|
|
104
|
-
*/
|
|
105
|
-
handles(event: TEvent): boolean;
|
|
106
|
-
next(state: State<TContext, TEvent>, _event: SCXML.Event<TEvent>): TransitionDefinition<TContext, TEvent>[] | undefined;
|
|
100
|
+
next(state: State<TContext, TEvent>, event: TEvent): TransitionDefinition<TContext, TEvent>[] | undefined;
|
|
107
101
|
/**
|
|
108
102
|
* The target state value of the history state node, if it exists. This represents the
|
|
109
103
|
* default state value to transition to if no history value exists yet.
|
|
@@ -20,13 +20,6 @@ export declare function send<TContext extends MachineContext, TEvent extends Eve
|
|
|
20
20
|
* @param options Options to pass into the send event.
|
|
21
21
|
*/
|
|
22
22
|
export declare function sendParent<TContext extends MachineContext, TEvent extends EventObject, TSentEvent extends EventObject = AnyEventObject>(event: TSentEvent | SendExpr<TContext, TEvent, TSentEvent>, options?: SendActionOptions<TContext, TEvent>): BaseDynamicActionObject<TContext, TEvent, TEvent, SendActionObject<AnyEventObject>, SendActionParams<TContext, TEvent, EventObject>>;
|
|
23
|
-
/**
|
|
24
|
-
* Sends an event back to the sender of the original event.
|
|
25
|
-
*
|
|
26
|
-
* @param event The event to send back to the sender
|
|
27
|
-
* @param options Options to pass into the send event
|
|
28
|
-
*/
|
|
29
|
-
export declare function respond<TContext extends MachineContext, TEvent extends EventObject, TSentEvent extends EventObject = AnyEventObject>(event: TEvent | SendExpr<TContext, TEvent, TSentEvent>, options?: SendActionOptions<TContext, TEvent>): BaseDynamicActionObject<TContext, TEvent, TEvent, SendActionObject<AnyEventObject>, SendActionParams<TContext, TEvent, EventObject>>;
|
|
30
23
|
/**
|
|
31
24
|
* Forwards (sends) an event to a specified service.
|
|
32
25
|
*
|
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
import { Action, EventObject, SingleOrArray, ActionFunction, ActionFunctionMap, ActionTypes, DoneEvent, ErrorPlatformEvent, DoneEventObject, MachineContext, BaseActionObject
|
|
1
|
+
import { Action, EventObject, SingleOrArray, ActionFunction, ActionFunctionMap, ActionTypes, DoneEvent, ErrorPlatformEvent, DoneEventObject, MachineContext, BaseActionObject } from './types.ts';
|
|
2
2
|
import * as actionTypes from './actionTypes.ts';
|
|
3
|
-
export { send, sendTo, sendParent,
|
|
3
|
+
export { send, sendTo, sendParent, forwardTo, escalate } from './actions/send.ts';
|
|
4
4
|
export { stop } from './actions/stop.ts';
|
|
5
5
|
export { log } from './actions/log.ts';
|
|
6
6
|
export { cancel } from './actions/cancel.ts';
|
|
7
7
|
export { assign } from './actions/assign.ts';
|
|
8
8
|
export { raise } from './actions/raise.ts';
|
|
9
9
|
export { choose } from './actions/choose.ts';
|
|
10
|
+
export { pure } from './actions/pure.ts';
|
|
10
11
|
export { actionTypes };
|
|
11
|
-
export declare const initEvent:
|
|
12
|
+
export declare const initEvent: {
|
|
12
13
|
type: ActionTypes;
|
|
13
|
-
}
|
|
14
|
+
};
|
|
14
15
|
export declare function resolveActionObject(actionObject: BaseActionObject, actionFunctionMap: ActionFunctionMap<any, any>): BaseActionObject;
|
|
15
16
|
export declare function toActionObject<TContext extends MachineContext, TEvent extends EventObject>(action: BaseActionObject | ActionFunction<TContext, TEvent> | string): BaseActionObject;
|
|
16
17
|
export declare const toActionObjects: <TContext extends MachineContext, TEvent extends EventObject>(action?: SingleOrArray<Action<TContext, TEvent>> | undefined) => BaseActionObject[];
|
|
@@ -41,7 +42,7 @@ export declare function done(id: string, output?: any): DoneEventObject;
|
|
|
41
42
|
*/
|
|
42
43
|
export declare function doneInvoke(invokeId: string, output?: any): DoneEvent;
|
|
43
44
|
export declare function error(id: string, data?: any): ErrorPlatformEvent & string;
|
|
44
|
-
export declare function createInitEvent(input: any):
|
|
45
|
-
type: ActionTypes.Init;
|
|
46
|
-
input: any;
|
|
47
|
-
}
|
|
45
|
+
export declare function createInitEvent(input: any): {
|
|
46
|
+
readonly type: ActionTypes.Init;
|
|
47
|
+
readonly input: any;
|
|
48
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { EventObject, ActorRef, BaseActorRef } from '../types.ts';
|
|
1
|
+
import type { EventObject, ActorRef, BaseActorRef, AnyEventObject } from '../types.ts';
|
|
2
2
|
export { fromTransition } from './transition.ts';
|
|
3
3
|
export { fromPromise } from './promise.ts';
|
|
4
4
|
export { fromObservable, fromEventObservable } from './observable.ts';
|
|
@@ -25,3 +25,4 @@ export type LifecycleSignalType = typeof startSignalType | typeof stopSignalType
|
|
|
25
25
|
export declare function isSignal(eventType: string): eventType is LifecycleSignalType;
|
|
26
26
|
export declare function isActorRef(item: any): item is ActorRef<any>;
|
|
27
27
|
export declare function toActorRef<TEvent extends EventObject, TSnapshot = any, TActorRefLike extends BaseActorRef<TEvent> = BaseActorRef<TEvent>>(actorRefLike: TActorRefLike): ActorRef<TEvent, TSnapshot> & Omit<TActorRefLike, keyof ActorRef<any, any>>;
|
|
28
|
+
export declare function createEmptyActor(): ActorRef<AnyEventObject, undefined>;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { Subscribable, ActorBehavior, EventObject, Subscription } from '../types';
|
|
2
2
|
export interface ObservableInternalState<T> {
|
|
3
3
|
subscription: Subscription | undefined;
|
|
4
|
-
|
|
5
|
-
status: 'active' | 'done' | 'error';
|
|
4
|
+
status: 'active' | 'done' | 'error' | 'canceled';
|
|
6
5
|
data: T | undefined;
|
|
7
6
|
input?: any;
|
|
8
7
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { EventObject, StateValue, BooleanGuardDefinition, GuardConfig, GuardDefinition,
|
|
1
|
+
import type { EventObject, StateValue, BooleanGuardDefinition, GuardConfig, GuardDefinition, GuardPredicate, MachineContext } from './types.ts';
|
|
2
2
|
import type { State } from './State.ts';
|
|
3
3
|
export declare function stateIn<TContext extends MachineContext, TEvent extends EventObject>(stateValue: StateValue): GuardDefinition<TContext, TEvent>;
|
|
4
4
|
export declare function not<TContext extends MachineContext, TEvent extends EventObject>(guard: GuardConfig<TContext, TEvent>): BooleanGuardDefinition<TContext, TEvent>;
|
|
5
5
|
export declare function and<TContext extends MachineContext, TEvent extends EventObject>(guards: Array<GuardConfig<TContext, TEvent>>): BooleanGuardDefinition<TContext, TEvent>;
|
|
6
6
|
export declare function or<TContext extends MachineContext, TEvent extends EventObject>(guards: Array<GuardConfig<TContext, TEvent>>): BooleanGuardDefinition<TContext, TEvent>;
|
|
7
|
-
export declare function evaluateGuard<TContext extends MachineContext, TEvent extends EventObject>(guard: GuardDefinition<TContext, TEvent>, context: TContext,
|
|
7
|
+
export declare function evaluateGuard<TContext extends MachineContext, TEvent extends EventObject>(guard: GuardDefinition<TContext, TEvent>, context: TContext, event: TEvent, state: State<TContext, TEvent>): boolean;
|
|
8
8
|
export declare function toGuardDefinition<TContext extends MachineContext, TEvent extends EventObject>(guardConfig: GuardConfig<TContext, TEvent>, getPredicate?: (guardType: string) => GuardPredicate<TContext, TEvent>): GuardDefinition<TContext, TEvent>;
|
|
@@ -1,42 +1,26 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
import { stop } from './actions/stop.ts';
|
|
1
|
+
import { doneInvoke, forwardTo, sendParent, sendTo } from './actions.ts';
|
|
2
|
+
export { assign } from './actions/assign.ts';
|
|
3
|
+
export { cancel } from './actions/cancel.ts';
|
|
4
|
+
export { choose } from './actions/choose.ts';
|
|
5
|
+
export { log } from './actions/log.ts';
|
|
6
|
+
export { pure } from './actions/pure.ts';
|
|
7
|
+
export { raise } from './actions/raise.ts';
|
|
8
|
+
export { stop } from './actions/stop.ts';
|
|
10
9
|
import { interpret, Interpreter, ActorStatus } from './interpreter.ts';
|
|
11
10
|
import { createMachine } from './Machine.ts';
|
|
12
11
|
import { mapState } from './mapState.ts';
|
|
13
12
|
import { State } from './State.ts';
|
|
14
13
|
import { StateNode } from './StateNode.ts';
|
|
15
|
-
export { createSchema, t } from './schema.ts';
|
|
16
14
|
export { SimulatedClock } from './SimulatedClock.ts';
|
|
17
15
|
export { StateMachine } from './StateMachine.ts';
|
|
18
16
|
export { getStateNodes } from './stateUtils.ts';
|
|
17
|
+
export { waitFor } from './waitFor.ts';
|
|
19
18
|
export * from './typegenTypes.ts';
|
|
20
19
|
export * from './types.ts';
|
|
21
|
-
export { matchesState, pathToStateValue, toObserver
|
|
22
|
-
export { StateNode, State, mapState,
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
send: typeof send;
|
|
26
|
-
sendParent: typeof sendParent;
|
|
27
|
-
sendTo: typeof sendTo;
|
|
28
|
-
log: typeof log;
|
|
29
|
-
cancel: typeof cancel;
|
|
30
|
-
stop: typeof stop;
|
|
31
|
-
assign: typeof assign;
|
|
32
|
-
after: typeof after;
|
|
33
|
-
done: typeof done;
|
|
34
|
-
respond: typeof respond;
|
|
35
|
-
forwardTo: typeof forwardTo;
|
|
36
|
-
escalate: typeof escalate;
|
|
37
|
-
choose: typeof choose;
|
|
38
|
-
pure: typeof pure;
|
|
39
|
-
};
|
|
20
|
+
export { matchesState, pathToStateValue, toObserver } from './utils.ts';
|
|
21
|
+
export { StateNode, State, mapState, sendTo, sendParent, forwardTo, interpret, Interpreter, ActorStatus as InterpreterStatus, doneInvoke, createMachine };
|
|
22
|
+
export { fromPromise, fromObservable, fromCallback, fromEventObservable, fromTransition } from './actors/index.ts';
|
|
23
|
+
export { stateIn, not, and, or } from './guards.ts';
|
|
40
24
|
declare global {
|
|
41
25
|
interface SymbolConstructor {
|
|
42
26
|
readonly observable: symbol;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { symbolObservable } from './symbolObservable.ts';
|
|
2
|
-
import { AreAllImplementationsAssumedToBeProvided } from './typegenTypes.ts';
|
|
2
|
+
import { AreAllImplementationsAssumedToBeProvided, MissingImplementationsError } from './typegenTypes.ts';
|
|
3
3
|
import type { ActorSystem, AnyActorBehavior, AnyStateMachine, EventFromBehavior, InterpreterFrom, PersistedStateFrom, RaiseActionObject, SnapshotFrom } from './types.ts';
|
|
4
|
-
import { ActorRef, DoneEvent, EventObject, InteropSubscribable, InterpreterOptions, Observer,
|
|
4
|
+
import { ActorRef, DoneEvent, EventObject, InteropSubscribable, InterpreterOptions, Observer, SendActionObject, Subscription } from './types.ts';
|
|
5
5
|
export type SnapshotListener<TBehavior extends AnyActorBehavior> = (state: SnapshotFrom<TBehavior>) => void;
|
|
6
6
|
export type EventListener<TEvent extends EventObject = EventObject> = (event: TEvent) => void;
|
|
7
7
|
export type Listener = () => void;
|
|
@@ -77,13 +77,14 @@ export declare class Interpreter<TBehavior extends AnyActorBehavior, TEvent exte
|
|
|
77
77
|
*/
|
|
78
78
|
stop(): this;
|
|
79
79
|
private _complete;
|
|
80
|
+
private _error;
|
|
80
81
|
private _stopProcedure;
|
|
81
82
|
/**
|
|
82
83
|
* Sends an event to the running interpreter to trigger a transition.
|
|
83
84
|
*
|
|
84
85
|
* @param event The event to send
|
|
85
86
|
*/
|
|
86
|
-
send(event: TEvent
|
|
87
|
+
send(event: TEvent): void;
|
|
87
88
|
delaySend(sendAction: SendActionObject | RaiseActionObject<any, any, any>): void;
|
|
88
89
|
cancel(sendId: string | number): void;
|
|
89
90
|
private attachDevTools;
|
|
@@ -100,5 +101,5 @@ export declare class Interpreter<TBehavior extends AnyActorBehavior, TEvent exte
|
|
|
100
101
|
* @param machine The machine to interpret
|
|
101
102
|
* @param options Interpreter options
|
|
102
103
|
*/
|
|
103
|
-
export declare function interpret<TMachine extends AnyStateMachine>(machine: AreAllImplementationsAssumedToBeProvided<TMachine['__TResolvedTypesMeta']> extends true ? TMachine : '
|
|
104
|
+
export declare function interpret<TMachine extends AnyStateMachine>(machine: AreAllImplementationsAssumedToBeProvided<TMachine['__TResolvedTypesMeta']> extends true ? TMachine : MissingImplementationsError<TMachine['__TResolvedTypesMeta']>, options?: InterpreterOptions<TMachine>): InterpreterFrom<TMachine>;
|
|
104
105
|
export declare function interpret<TBehavior extends AnyActorBehavior>(behavior: TBehavior, options?: InterpreterOptions<TBehavior>): Interpreter<TBehavior>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseActionObject, EventObject, StateValue, TransitionConfig, TransitionDefinition, SingleOrArray,
|
|
1
|
+
import { BaseActionObject, EventObject, StateValue, TransitionConfig, TransitionDefinition, SingleOrArray, StateValueMap, InitialTransitionConfig, MachineContext } from './types.ts';
|
|
2
2
|
import { State } from './State.ts';
|
|
3
3
|
import { NULL_EVENT } from './constants.ts';
|
|
4
4
|
import type { StateNode } from './StateNode.ts';
|
|
@@ -11,12 +11,7 @@ export declare function getAdjList<TContext extends MachineContext, TE extends E
|
|
|
11
11
|
export declare function getStateValue(rootNode: AnyStateNode, configuration: AnyConfiguration): StateValue;
|
|
12
12
|
export declare function isInFinalState(configuration: Array<AnyStateNode>, stateNode?: AnyStateNode): boolean;
|
|
13
13
|
export declare const isStateId: (str: string) => boolean;
|
|
14
|
-
export declare function getCandidates<TEvent extends EventObject>(stateNode: StateNode<any, TEvent>, receivedEventType: TEvent['type'],
|
|
15
|
-
/**
|
|
16
|
-
* If `true`, will use SCXML event partial token matching semantics
|
|
17
|
-
* without the need for the ".*" suffix
|
|
18
|
-
*/
|
|
19
|
-
partialMatch?: boolean): Array<TransitionDefinition<any, TEvent>>;
|
|
14
|
+
export declare function getCandidates<TEvent extends EventObject>(stateNode: StateNode<any, TEvent>, receivedEventType: TEvent['type']): Array<TransitionDefinition<any, TEvent>>;
|
|
20
15
|
/**
|
|
21
16
|
* All delayed transitions from the config.
|
|
22
17
|
*/
|
|
@@ -44,10 +39,10 @@ export declare function getStateNodeByPath(stateNode: AnyStateNode, statePath: s
|
|
|
44
39
|
* @param state The state value or State instance
|
|
45
40
|
*/
|
|
46
41
|
export declare function getStateNodes<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, state: StateValue | State<TContext, TEvent>): Array<AnyStateNode>;
|
|
47
|
-
export declare function transitionAtomicNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: string, state: State<TContext, TEvent>,
|
|
48
|
-
export declare function transitionCompoundNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: StateValueMap, state: State<TContext, TEvent>,
|
|
49
|
-
export declare function transitionParallelNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: StateValueMap, state: State<TContext, TEvent>,
|
|
50
|
-
export declare function transitionNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: StateValue, state: State<TContext, TEvent, any>,
|
|
42
|
+
export declare function transitionAtomicNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: string, state: State<TContext, TEvent>, event: TEvent): Array<TransitionDefinition<TContext, TEvent>> | undefined;
|
|
43
|
+
export declare function transitionCompoundNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: StateValueMap, state: State<TContext, TEvent>, event: TEvent): Array<TransitionDefinition<TContext, TEvent>> | undefined;
|
|
44
|
+
export declare function transitionParallelNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: StateValueMap, state: State<TContext, TEvent>, event: TEvent): Array<TransitionDefinition<TContext, TEvent>> | undefined;
|
|
45
|
+
export declare function transitionNode<TContext extends MachineContext, TEvent extends EventObject>(stateNode: AnyStateNode, stateValue: StateValue, state: State<TContext, TEvent, any>, event: TEvent): Array<TransitionDefinition<TContext, TEvent>> | undefined;
|
|
51
46
|
export declare function removeConflictingTransitions(enabledTransitions: Array<AnyTransitionDefinition>, configuration: Set<AnyStateNode>, historyValue: AnyHistoryValue): Array<AnyTransitionDefinition>;
|
|
52
47
|
/**
|
|
53
48
|
* https://www.w3.org/TR/scxml/#microstepProcedure
|
|
@@ -57,11 +52,11 @@ export declare function removeConflictingTransitions(enabledTransitions: Array<A
|
|
|
57
52
|
* @param currentState
|
|
58
53
|
* @param mutConfiguration
|
|
59
54
|
*/
|
|
60
|
-
export declare function microstep<TContext extends MachineContext, TEvent extends EventObject>(transitions: Array<TransitionDefinition<TContext, TEvent>>, currentState: State<TContext, TEvent, any>, actorCtx: AnyActorContext | undefined,
|
|
61
|
-
export declare function resolveActionsAndContext<TContext extends MachineContext, TEvent extends EventObject>(actions: BaseActionObject[],
|
|
55
|
+
export declare function microstep<TContext extends MachineContext, TEvent extends EventObject>(transitions: Array<TransitionDefinition<TContext, TEvent>>, currentState: State<TContext, TEvent, any>, actorCtx: AnyActorContext | undefined, event: TEvent): State<TContext, TEvent, any>;
|
|
56
|
+
export declare function resolveActionsAndContext<TContext extends MachineContext, TEvent extends EventObject>(actions: BaseActionObject[], event: TEvent, currentState: State<TContext, TEvent, any>, actorCtx: AnyActorContext | undefined): {
|
|
62
57
|
nextState: AnyState;
|
|
63
58
|
};
|
|
64
|
-
export declare function macrostep<TMachine extends AnyStateMachine>(state: StateFromMachine<TMachine>,
|
|
59
|
+
export declare function macrostep<TMachine extends AnyStateMachine>(state: StateFromMachine<TMachine>, event: TMachine['__TEvent'], actorCtx: AnyActorContext | undefined): {
|
|
65
60
|
state: typeof state;
|
|
66
61
|
microstates: Array<typeof state>;
|
|
67
62
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EventObject, IndexByType, IsNever, Prop, Values, IsAny, ActorMap, Cast, ParameterizedObject } from './types.ts';
|
|
1
|
+
import { Compute, EventObject, IndexByType, IsNever, Prop, Values, IsAny, ActorMap, Cast, ParameterizedObject } from './types.ts';
|
|
2
2
|
export interface TypegenDisabled {
|
|
3
3
|
'@@xstate/typegen': false;
|
|
4
4
|
}
|
|
@@ -86,6 +86,12 @@ export type TypegenConstraint = TypegenEnabled | TypegenDisabled;
|
|
|
86
86
|
export type AreAllImplementationsAssumedToBeProvided<TResolvedTypesMeta, TMissingImplementations = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'missingImplementations'>> = IsAny<TResolvedTypesMeta> extends true ? true : TResolvedTypesMeta extends TypegenEnabled ? IsNever<Values<{
|
|
87
87
|
[K in keyof TMissingImplementations]: TMissingImplementations[K];
|
|
88
88
|
}>> extends true ? true : false : true;
|
|
89
|
+
export type MissingImplementationsError<TResolvedTypesMeta, TMissingImplementations = Prop<Prop<TResolvedTypesMeta, 'resolved'>, 'missingImplementations'>> = Compute<[
|
|
90
|
+
'Some implementations missing',
|
|
91
|
+
Values<{
|
|
92
|
+
[K in keyof TMissingImplementations]: TMissingImplementations[K];
|
|
93
|
+
}>
|
|
94
|
+
]>;
|
|
89
95
|
interface AllImplementationsProvided {
|
|
90
96
|
missingImplementations: {
|
|
91
97
|
actions: never;
|
|
@@ -58,7 +58,7 @@ export interface UnifiedArg<TContext extends MachineContext, TEvent extends Even
|
|
|
58
58
|
export interface BaseDynamicActionObject<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TResolvedAction extends BaseActionObject, TDynamicParams extends Record<string, any>> {
|
|
59
59
|
type: `xstate.${string}`;
|
|
60
60
|
params: TDynamicParams;
|
|
61
|
-
resolve: (
|
|
61
|
+
resolve: (event: TExpressionEvent, extra: {
|
|
62
62
|
state: State<TContext, TEvent>;
|
|
63
63
|
/**
|
|
64
64
|
* The original action object
|
|
@@ -75,7 +75,6 @@ export interface BaseDynamicActionObject<TContext extends MachineContext, TExpre
|
|
|
75
75
|
export type MachineContext = Record<string, any>;
|
|
76
76
|
export interface ActionMeta<TEvent extends EventObject, TAction extends ParameterizedObject = ParameterizedObject> extends StateMeta<TEvent> {
|
|
77
77
|
action: TAction;
|
|
78
|
-
_event: SCXML.Event<TEvent>;
|
|
79
78
|
}
|
|
80
79
|
export type Spawner = <T extends ActorBehavior<any, any> | string>(// TODO: read string from machine behavior keys
|
|
81
80
|
behavior: T, options?: Partial<{
|
|
@@ -84,7 +83,7 @@ behavior: T, options?: Partial<{
|
|
|
84
83
|
}>) => T extends ActorBehavior<infer TActorEvent, infer TActorEmitted> ? ActorRef<TActorEvent, TActorEmitted> : ActorRef<any, any>;
|
|
85
84
|
export interface AssignMeta<TExpressionEvent extends EventObject, _TEvent extends EventObject> extends StateMeta<TExpressionEvent> {
|
|
86
85
|
action: BaseActionObject;
|
|
87
|
-
|
|
86
|
+
event: TExpressionEvent;
|
|
88
87
|
spawn: Spawner;
|
|
89
88
|
}
|
|
90
89
|
export type ActionFunction<TContext extends MachineContext, TExpressionEvent extends EventObject, TAction extends ParameterizedObject = ParameterizedObject, TEvent extends EventObject = TExpressionEvent> = (args: {
|
|
@@ -92,7 +91,7 @@ export type ActionFunction<TContext extends MachineContext, TExpressionEvent ext
|
|
|
92
91
|
event: TExpressionEvent;
|
|
93
92
|
} & ActionMeta<TEvent, TAction>) => void;
|
|
94
93
|
export interface ChooseCondition<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject = TExpressionEvent> {
|
|
95
|
-
guard?: GuardConfig<TContext,
|
|
94
|
+
guard?: GuardConfig<TContext, TExpressionEvent>;
|
|
96
95
|
actions: Actions<TContext, TExpressionEvent, TEvent>;
|
|
97
96
|
}
|
|
98
97
|
export type Action<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject = TExpressionEvent> = ActionType | ParameterizedObject | ActionFunction<TContext, TExpressionEvent, ParameterizedObject, TEvent> | BaseDynamicActionObject<TContext, TExpressionEvent, TEvent, any, any>;
|
|
@@ -126,10 +125,9 @@ export interface DefaultGuardObject<TContext extends MachineContext, TEvent exte
|
|
|
126
125
|
children?: Array<GuardObject<TContext, TEvent>>;
|
|
127
126
|
predicate?: GuardPredicate<TContext, TEvent>;
|
|
128
127
|
}
|
|
129
|
-
export type GuardEvaluator<TContext extends MachineContext, TEvent extends EventObject> = (guard: GuardDefinition<TContext, TEvent>, context: TContext,
|
|
128
|
+
export type GuardEvaluator<TContext extends MachineContext, TEvent extends EventObject> = (guard: GuardDefinition<TContext, TEvent>, context: TContext, event: TEvent, state: State<TContext, TEvent>) => boolean;
|
|
130
129
|
export interface GuardMeta<TContext extends MachineContext, TEvent extends EventObject> {
|
|
131
130
|
state: State<TContext, TEvent, any>;
|
|
132
|
-
_event: SCXML.Event<TEvent>;
|
|
133
131
|
guard: GuardDefinition<TContext, TEvent>;
|
|
134
132
|
evaluate: GuardEvaluator<TContext, TEvent>;
|
|
135
133
|
}
|
|
@@ -161,7 +159,7 @@ export type TransitionTarget = SingleOrArray<string>;
|
|
|
161
159
|
export interface TransitionConfig<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject = TExpressionEvent, TAction extends ParameterizedObject = ParameterizedObject> {
|
|
162
160
|
guard?: GuardConfig<TContext, TExpressionEvent>;
|
|
163
161
|
actions?: BaseActions<TContext, TExpressionEvent, TEvent, TAction>;
|
|
164
|
-
|
|
162
|
+
reenter?: boolean;
|
|
165
163
|
target?: TransitionTarget | undefined;
|
|
166
164
|
meta?: Record<string, any>;
|
|
167
165
|
description?: string;
|
|
@@ -190,7 +188,7 @@ export type ActorBehaviorCreator<TContext extends MachineContext, TEvent extends
|
|
|
190
188
|
id: string;
|
|
191
189
|
data?: any;
|
|
192
190
|
src: string;
|
|
193
|
-
|
|
191
|
+
event: TEvent;
|
|
194
192
|
meta: MetaObject | undefined;
|
|
195
193
|
input: any;
|
|
196
194
|
}) => TActorBehavior;
|
|
@@ -357,7 +355,7 @@ export interface StateNodeConfig<TContext extends MachineContext, TEvent extends
|
|
|
357
355
|
*/
|
|
358
356
|
delimiter?: string;
|
|
359
357
|
/**
|
|
360
|
-
* The order this state node appears. Corresponds to the implicit
|
|
358
|
+
* The order this state node appears. Corresponds to the implicit document order.
|
|
361
359
|
*/
|
|
362
360
|
order?: number;
|
|
363
361
|
/**
|
|
@@ -486,17 +484,12 @@ export interface MachineConfig<TContext extends MachineContext, TEvent extends E
|
|
|
486
484
|
* The machine's own version.
|
|
487
485
|
*/
|
|
488
486
|
version?: string;
|
|
489
|
-
|
|
490
|
-
* If `true`, will use SCXML semantics, such as event token matching.
|
|
491
|
-
*/
|
|
492
|
-
scxml?: boolean;
|
|
493
|
-
schema?: MachineSchema<TContext, TEvent, TActorMap>;
|
|
494
|
-
tsTypes?: TTypesMeta;
|
|
487
|
+
types?: MachineTypes<TContext, TEvent, TActorMap, TTypesMeta>;
|
|
495
488
|
}
|
|
496
489
|
export type ActorMap = Record<string, {
|
|
497
490
|
output: any;
|
|
498
491
|
}>;
|
|
499
|
-
export interface
|
|
492
|
+
export interface MachineTypes<TContext extends MachineContext, TEvent extends EventObject, TActorMap extends ActorMap = ActorMap, TTypesMeta = TypegenDisabled> {
|
|
500
493
|
context?: TContext;
|
|
501
494
|
actions?: {
|
|
502
495
|
type: string;
|
|
@@ -508,6 +501,7 @@ export interface MachineSchema<TContext extends MachineContext, TEvent extends E
|
|
|
508
501
|
type: string;
|
|
509
502
|
[key: string]: any;
|
|
510
503
|
};
|
|
504
|
+
typegen?: TTypesMeta;
|
|
511
505
|
}
|
|
512
506
|
export interface HistoryStateNode<TContext extends MachineContext> extends StateNode<TContext> {
|
|
513
507
|
history: 'shallow' | 'deep';
|
|
@@ -540,7 +534,6 @@ export interface RaiseActionObject<TContext extends MachineContext, TExpressionE
|
|
|
540
534
|
type: ActionTypes.Raise;
|
|
541
535
|
params: {
|
|
542
536
|
event: TEvent;
|
|
543
|
-
_event: SCXML.Event<TEvent>;
|
|
544
537
|
delay: RaiseActionOptions<TContext, TExpressionEvent>['delay'];
|
|
545
538
|
id: string | number;
|
|
546
539
|
};
|
|
@@ -565,10 +558,6 @@ export interface ErrorExecutionEvent extends EventObject {
|
|
|
565
558
|
export interface ErrorPlatformEvent extends EventObject {
|
|
566
559
|
data: any;
|
|
567
560
|
}
|
|
568
|
-
export interface SCXMLErrorEvent extends SCXML.Event<any> {
|
|
569
|
-
name: ActionTypes.ErrorExecution | ActionTypes.ErrorPlatform | ActionTypes.ErrorCommunication;
|
|
570
|
-
data: any;
|
|
571
|
-
}
|
|
572
561
|
export interface DoneEventObject extends EventObject {
|
|
573
562
|
output?: any;
|
|
574
563
|
toString(): string;
|
|
@@ -626,7 +615,6 @@ export interface SendActionObject<TSentEvent extends EventObject = AnyEventObjec
|
|
|
626
615
|
type: 'xstate.send';
|
|
627
616
|
params: {
|
|
628
617
|
to: ActorRef<TSentEvent> | undefined;
|
|
629
|
-
_event: SCXML.Event<TSentEvent>;
|
|
630
618
|
event: TSentEvent;
|
|
631
619
|
delay?: number;
|
|
632
620
|
id: string | number;
|
|
@@ -731,7 +719,7 @@ export interface TransitionDefinition<TContext extends MachineContext, TEvent ex
|
|
|
731
719
|
target: Array<StateNode<TContext, TEvent>> | undefined;
|
|
732
720
|
source: StateNode<TContext, TEvent>;
|
|
733
721
|
actions: BaseActionObject[];
|
|
734
|
-
|
|
722
|
+
reenter: boolean;
|
|
735
723
|
guard?: GuardDefinition<TContext, TEvent>;
|
|
736
724
|
eventType: TEvent['type'] | '*';
|
|
737
725
|
toJSON: () => {
|
|
@@ -782,7 +770,6 @@ export interface Segment<TContext extends MachineContext, TEvent extends EventOb
|
|
|
782
770
|
event: TEvent;
|
|
783
771
|
}
|
|
784
772
|
export interface StateMeta<TEvent extends EventObject> {
|
|
785
|
-
_event: SCXML.Event<TEvent>;
|
|
786
773
|
self: ActorRef<TEvent>;
|
|
787
774
|
system: ActorSystem<any>;
|
|
788
775
|
}
|
|
@@ -790,12 +777,11 @@ export interface StateLike<TContext extends MachineContext> {
|
|
|
790
777
|
value: StateValue;
|
|
791
778
|
context: TContext;
|
|
792
779
|
event: EventObject;
|
|
793
|
-
_event: SCXML.Event<EventObject>;
|
|
794
780
|
}
|
|
795
781
|
export interface StateConfig<TContext extends MachineContext, TEvent extends EventObject> {
|
|
796
782
|
value: StateValue;
|
|
797
783
|
context: TContext;
|
|
798
|
-
|
|
784
|
+
event: TEvent;
|
|
799
785
|
historyValue?: HistoryValue<TContext, TEvent>;
|
|
800
786
|
actions?: BaseActionObject[];
|
|
801
787
|
meta?: any;
|
|
@@ -806,7 +792,7 @@ export interface StateConfig<TContext extends MachineContext, TEvent extends Eve
|
|
|
806
792
|
output?: any;
|
|
807
793
|
tags?: Set<string>;
|
|
808
794
|
machine?: StateMachine<TContext, TEvent, any, any, any>;
|
|
809
|
-
_internalQueue?: Array<
|
|
795
|
+
_internalQueue?: Array<TEvent>;
|
|
810
796
|
}
|
|
811
797
|
export interface InterpreterOptions<_TActorBehavior extends AnyActorBehavior> {
|
|
812
798
|
/**
|
|
@@ -850,68 +836,6 @@ export interface InterpreterOptions<_TActorBehavior extends AnyActorBehavior> {
|
|
|
850
836
|
src?: string;
|
|
851
837
|
}
|
|
852
838
|
export type AnyInterpreter = Interpreter<any>;
|
|
853
|
-
export declare namespace SCXML {
|
|
854
|
-
interface Event<TEvent extends EventObject> {
|
|
855
|
-
/**
|
|
856
|
-
* This is a character string giving the name of the event.
|
|
857
|
-
* The SCXML Processor must set the name field to the name of this event.
|
|
858
|
-
* It is what is matched against the 'event' attribute of <transition>.
|
|
859
|
-
* Note that transitions can do additional tests by using the value of this field
|
|
860
|
-
* inside boolean expressions in the 'cond' attribute.
|
|
861
|
-
*/
|
|
862
|
-
name: string;
|
|
863
|
-
/**
|
|
864
|
-
* This field describes the event type.
|
|
865
|
-
* The SCXML Processor must set it to: "platform" (for events raised by the platform itself, such as error events),
|
|
866
|
-
* "internal" (for events raised by <raise> and <send> with target '_internal')
|
|
867
|
-
* or "external" (for all other events).
|
|
868
|
-
*/
|
|
869
|
-
type: 'platform' | 'internal' | 'external';
|
|
870
|
-
/**
|
|
871
|
-
* If the sending entity has specified a value for this, the Processor must set this field to that value
|
|
872
|
-
* (see C Event I/O Processors for details).
|
|
873
|
-
* Otherwise, in the case of error events triggered by a failed attempt to send an event,
|
|
874
|
-
* the Processor must set this field to the send id of the triggering <send> element.
|
|
875
|
-
* Otherwise it must leave it blank.
|
|
876
|
-
*/
|
|
877
|
-
sendid?: string;
|
|
878
|
-
/**
|
|
879
|
-
* This is a URI, equivalent to the 'target' attribute on the <send> element.
|
|
880
|
-
* For external events, the SCXML Processor should set this field to a value which,
|
|
881
|
-
* when used as the value of 'target', will allow the receiver of the event to <send>
|
|
882
|
-
* a response back to the originating entity via the Event I/O Processor specified in 'origintype'.
|
|
883
|
-
* For internal and platform events, the Processor must leave this field blank.
|
|
884
|
-
*/
|
|
885
|
-
origin?: ActorRef<any>;
|
|
886
|
-
/**
|
|
887
|
-
* This is equivalent to the 'type' field on the <send> element.
|
|
888
|
-
* For external events, the SCXML Processor should set this field to a value which,
|
|
889
|
-
* when used as the value of 'type', will allow the receiver of the event to <send>
|
|
890
|
-
* a response back to the originating entity at the URI specified by 'origin'.
|
|
891
|
-
* For internal and platform events, the Processor must leave this field blank.
|
|
892
|
-
*/
|
|
893
|
-
origintype?: string;
|
|
894
|
-
/**
|
|
895
|
-
* If this event is generated from an invoked child process, the SCXML Processor
|
|
896
|
-
* must set this field to the invoke id of the invocation that triggered the child process.
|
|
897
|
-
* Otherwise it must leave it blank.
|
|
898
|
-
*/
|
|
899
|
-
invokeid?: string;
|
|
900
|
-
/**
|
|
901
|
-
* This field contains whatever data the sending entity chose to include in this event.
|
|
902
|
-
* The receiving SCXML Processor should reformat this data to match its data model,
|
|
903
|
-
* but must not otherwise modify it.
|
|
904
|
-
*
|
|
905
|
-
* If the conversion is not possible, the Processor must leave the field blank
|
|
906
|
-
* and must place an error 'error.execution' in the internal event queue.
|
|
907
|
-
*/
|
|
908
|
-
data: TEvent;
|
|
909
|
-
/**
|
|
910
|
-
* @private
|
|
911
|
-
*/
|
|
912
|
-
$$type: 'scxml';
|
|
913
|
-
}
|
|
914
|
-
}
|
|
915
839
|
export type Observer<T> = {
|
|
916
840
|
next?: (value: T) => void;
|
|
917
841
|
error?: (err: any) => void;
|
|
@@ -979,6 +903,7 @@ export interface ActorBehavior<TEvent extends EventObject, TSnapshot = any, TInt
|
|
|
979
903
|
* Serialized internal state used for persistence & restoration
|
|
980
904
|
*/
|
|
981
905
|
TPersisted = TInternalState, TSystem extends ActorSystem<any> = ActorSystem<any>> {
|
|
906
|
+
config?: unknown;
|
|
982
907
|
transition: (state: TInternalState, message: TEvent | LifecycleSignal, ctx: ActorContext<TEvent, TSnapshot, TSystem>) => TInternalState;
|
|
983
908
|
getInitialState: (actorCtx: ActorContext<TEvent, TSnapshot, any>, input: any) => TInternalState;
|
|
984
909
|
restoreState?: (persistedState: TPersisted, actorCtx: ActorContext<TEvent, TSnapshot>) => TInternalState;
|
|
@@ -994,11 +919,11 @@ TPersisted = TInternalState, TSystem extends ActorSystem<any> = ActorSystem<any>
|
|
|
994
919
|
getPersistedState?: (state: TInternalState) => TPersisted;
|
|
995
920
|
}
|
|
996
921
|
export type AnyActorBehavior = ActorBehavior<any, any, any, any>;
|
|
997
|
-
export type SnapshotFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends ActorRef<infer _, infer TSnapshot> ? TSnapshot : R extends Interpreter<infer TBehavior> ? SnapshotFrom<TBehavior> : R extends ActorBehavior<infer _, infer TSnapshot> ? TSnapshot : R extends ActorContext<infer _, infer TSnapshot, infer __> ? TSnapshot : never : never;
|
|
922
|
+
export type SnapshotFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends ActorRef<infer _, infer TSnapshot> ? TSnapshot : R extends Interpreter<infer TBehavior> ? SnapshotFrom<TBehavior> : R extends StateMachine<infer _, infer __, infer ___, infer ____, infer _____> ? StateFrom<R> : R extends ActorBehavior<infer _, infer TSnapshot, infer __, infer ___, infer ____> ? TSnapshot : R extends ActorContext<infer _, infer TSnapshot, infer __> ? TSnapshot : never : never;
|
|
998
923
|
export type EventFromBehavior<TBehavior extends ActorBehavior<any, any>> = TBehavior extends ActorBehavior<infer TEvent, infer _> ? TEvent : never;
|
|
999
924
|
export type PersistedStateFrom<TBehavior extends ActorBehavior<any, any>> = TBehavior extends ActorBehavior<infer _TEvent, infer _TSnapshot, infer _TInternalState, infer TPersisted> ? TPersisted : never;
|
|
1000
925
|
export type InternalStateFrom<TBehavior extends ActorBehavior<any, any>> = TBehavior extends ActorBehavior<infer _TEvent, infer _TSnapshot, infer TInternalState, infer _TPersisted> ? TInternalState : never;
|
|
1001
|
-
type ResolveEventType<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer _, infer TEvent, infer __, infer ___, infer ____> ? TEvent : R extends State<infer _, infer TEvent, infer __> ? TEvent : R extends
|
|
926
|
+
type ResolveEventType<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer _, infer TEvent, infer __, infer ___, infer ____> ? TEvent : R extends State<infer _, infer TEvent, infer __> ? TEvent : R extends ActorRef<infer TEvent, infer _> ? TEvent : never : never;
|
|
1002
927
|
export type EventFrom<T, K extends Prop<TEvent, 'type'> = never, TEvent extends EventObject = ResolveEventType<T>> = IsNever<K> extends true ? TEvent : ExtractEvent<TEvent, K>;
|
|
1003
928
|
export type ContextFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer TContext, infer _, infer __, infer ___, infer ____> ? TContext : R extends State<infer TContext, infer _, infer __> ? TContext : R extends Interpreter<infer TBehavior> ? TBehavior extends StateMachine<infer TContext, infer _> ? TContext : never : never : never;
|
|
1004
929
|
export type InferEvent<E extends EventObject> = {
|
|
@@ -1010,6 +935,7 @@ export type InferEvent<E extends EventObject> = {
|
|
|
1010
935
|
}[E['type']];
|
|
1011
936
|
export type TODO = any;
|
|
1012
937
|
export type StateValueFrom<TMachine extends AnyStateMachine> = Parameters<StateFrom<TMachine>['matches']>[0];
|
|
938
|
+
export type TagsFrom<TMachine extends AnyStateMachine> = Parameters<StateFrom<TMachine>['hasTag']>[0];
|
|
1013
939
|
export type StateFromMachine<TMachine extends AnyStateMachine> = TMachine['initialState'];
|
|
1014
940
|
export interface ActorSystemInfo {
|
|
1015
941
|
actors: Record<string, AnyActorRef>;
|
|
@@ -1021,7 +947,7 @@ export interface ActorSystem<T extends ActorSystemInfo> {
|
|
|
1021
947
|
_set: <K extends keyof T['actors']>(key: K, actorRef: T['actors'][K]) => void;
|
|
1022
948
|
get: <K extends keyof T['actors']>(key: K) => T['actors'][K] | undefined;
|
|
1023
949
|
}
|
|
1024
|
-
export type PersistedMachineState<TState extends AnyState> = Pick<TState, 'value' | 'output' | 'context' | '
|
|
950
|
+
export type PersistedMachineState<TState extends AnyState> = Pick<TState, 'value' | 'output' | 'context' | 'event' | 'done' | 'historyValue'> & {
|
|
1025
951
|
children: {
|
|
1026
952
|
[K in keyof TState['children']]: {
|
|
1027
953
|
state: any;
|