xstate 5.0.0-alpha.1 → 5.0.0-alpha.3
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/README.md +3 -2
- package/actions/dist/xstate-actions.cjs.dev.js +3 -2
- package/actions/dist/xstate-actions.cjs.prod.js +2 -1
- 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/actions/dynamicAction.ts +11 -3
- package/actors/dist/xstate-actors.cjs.d.ts +1 -1
- package/actors/dist/xstate-actors.cjs.dev.js +4 -3
- package/actors/dist/xstate-actors.cjs.prod.js +3 -2
- 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.dev.js +1 -1
- package/dev/dist/xstate-dev.cjs.prod.js +0 -11
- package/dev/dist/xstate-dev.esm.js +1 -1
- package/dev/dist/xstate-dev.umd.min.js.map +1 -1
- package/dist/{actions-7ea9280f.cjs.prod.js → actions-3910d35f.cjs.prod.js} +1127 -1491
- package/dist/{actions-b08d0da8.cjs.dev.js → actions-3f0ba11b.cjs.dev.js} +1131 -1501
- package/dist/{actions-b673cb13.esm.js → actions-4fe4ada8.esm.js} +1134 -1500
- package/dist/declarations/actions/dynamicAction.d.ts +3 -3
- package/dist/declarations/src/Machine.d.ts +4 -4
- package/dist/declarations/src/SimulatedClock.d.ts +1 -1
- package/dist/declarations/src/State.d.ts +6 -6
- package/dist/declarations/src/StateMachine.d.ts +12 -22
- package/dist/declarations/src/StateNode.d.ts +3 -3
- package/dist/declarations/src/actionTypes.d.ts +1 -1
- package/dist/declarations/src/actions/assign.d.ts +2 -2
- package/dist/declarations/src/actions/cancel.d.ts +3 -3
- package/dist/declarations/src/actions/choose.d.ts +3 -3
- package/dist/declarations/src/actions/invoke.d.ts +3 -3
- package/dist/declarations/src/actions/log.d.ts +3 -3
- package/dist/declarations/src/actions/pure.d.ts +5 -2
- package/dist/declarations/src/actions/raise.d.ts +2 -3
- package/dist/declarations/src/actions/send.d.ts +11 -9
- package/dist/declarations/src/actions/stop.d.ts +2 -2
- package/dist/declarations/src/actions.d.ts +14 -10
- package/dist/declarations/src/actors/callback.d.ts +8 -0
- package/dist/declarations/src/actors/index.d.ts +27 -0
- package/dist/declarations/src/actors/observable.d.ts +23 -0
- package/dist/declarations/src/actors/promise.d.ts +12 -0
- package/dist/declarations/src/actors/transition.d.ts +13 -0
- package/dist/declarations/src/dev/index.d.ts +2 -2
- package/dist/declarations/src/guards.d.ts +2 -2
- package/dist/declarations/src/index.d.ts +22 -22
- package/dist/declarations/src/interpreter.d.ts +26 -30
- package/dist/declarations/src/spawn.d.ts +2 -2
- package/dist/declarations/src/stateUtils.d.ts +11 -11
- package/dist/declarations/src/system.d.ts +2 -0
- package/dist/declarations/src/typegenTypes.d.ts +9 -9
- package/dist/declarations/src/types.d.ts +300 -267
- package/dist/declarations/src/utils.d.ts +14 -10
- package/dist/{index-20b364c4.esm.js → index-50bd0aff.esm.js} +0 -12
- package/dist/{index-2a564d03.cjs.dev.js → index-ebaab3c9.cjs.dev.js} +0 -12
- package/dist/xstate.cjs.dev.js +142 -217
- package/dist/xstate.cjs.prod.js +141 -216
- package/dist/xstate.esm.js +140 -216
- package/dist/xstate.umd.min.js +1 -1
- package/dist/xstate.umd.min.js.map +1 -1
- package/guards/dist/xstate-guards.cjs.dev.js +2 -2
- package/guards/dist/xstate-guards.cjs.prod.js +1 -1
- 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 +8 -9
- package/dist/declarations/src/actors.d.ts +0 -37
- package/dist/declarations/src/registry.d.ts +0 -8
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import { AreAllImplementationsAssumedToBeProvided } from './typegenTypes';
|
|
3
|
-
import { ActorRef, DoneEvent, EventObject, InteropSubscribable, InterpreterOptions, Observer, SCXML, SendActionObject,
|
|
4
|
-
import { symbolObservable } from './symbolObservable';
|
|
5
|
-
export
|
|
6
|
-
export
|
|
7
|
-
export
|
|
8
|
-
export
|
|
1
|
+
import type { AnyStateMachine, EventFromBehavior, InterpreterFrom, PersistedStateFrom, SnapshotFrom, ActorSystem, AnyActorBehavior, RaiseActionObject } from './types.js';
|
|
2
|
+
import { AreAllImplementationsAssumedToBeProvided } from './typegenTypes.js';
|
|
3
|
+
import { ActorRef, DoneEvent, EventObject, InteropSubscribable, InterpreterOptions, Observer, SCXML, SendActionObject, Subscription } from './types.js';
|
|
4
|
+
import { symbolObservable } from './symbolObservable.js';
|
|
5
|
+
export type SnapshotListener<TBehavior extends AnyActorBehavior> = (state: SnapshotFrom<TBehavior>) => void;
|
|
6
|
+
export type EventListener<TEvent extends EventObject = EventObject> = (event: TEvent) => void;
|
|
7
|
+
export type Listener = () => void;
|
|
8
|
+
export type ErrorListener = (error: any) => void;
|
|
9
9
|
export interface Clock {
|
|
10
10
|
setTimeout(fn: (...args: any[]) => void, timeout: number): any;
|
|
11
11
|
clearTimeout(id: any): void;
|
|
@@ -15,18 +15,17 @@ export declare enum ActorStatus {
|
|
|
15
15
|
Running = 1,
|
|
16
16
|
Stopped = 2
|
|
17
17
|
}
|
|
18
|
-
declare
|
|
19
|
-
export declare class Interpreter<TBehavior extends Behavior<any, any>, TEvent extends EventObject = EventFromBehavior<TBehavior>> implements ActorRef<TEvent, SnapshotFrom<TBehavior>> {
|
|
18
|
+
export declare class Interpreter<TBehavior extends AnyActorBehavior, TEvent extends EventObject = EventFromBehavior<TBehavior>> implements ActorRef<TEvent, SnapshotFrom<TBehavior>> {
|
|
20
19
|
behavior: TBehavior;
|
|
21
20
|
/**
|
|
22
21
|
* The current state of the interpreted behavior.
|
|
23
22
|
*/
|
|
24
|
-
private _state
|
|
23
|
+
private _state;
|
|
25
24
|
/**
|
|
26
25
|
* The clock that is responsible for setting and clearing timeouts, such as delayed events and transitions.
|
|
27
26
|
*/
|
|
28
27
|
clock: Clock;
|
|
29
|
-
options: Readonly<InterpreterOptions
|
|
28
|
+
options: Readonly<InterpreterOptions<TBehavior>>;
|
|
30
29
|
/**
|
|
31
30
|
* The unique identifier for this actor relative to its parent.
|
|
32
31
|
*/
|
|
@@ -42,22 +41,24 @@ export declare class Interpreter<TBehavior extends Behavior<any, any>, TEvent ex
|
|
|
42
41
|
_parent?: ActorRef<any>;
|
|
43
42
|
ref: ActorRef<TEvent>;
|
|
44
43
|
private _actorContext;
|
|
44
|
+
private _systemId;
|
|
45
45
|
/**
|
|
46
46
|
* The globally unique process ID for this invocation.
|
|
47
47
|
*/
|
|
48
48
|
sessionId: string;
|
|
49
|
-
|
|
49
|
+
system: ActorSystem<any>;
|
|
50
|
+
private _doneEvent?;
|
|
51
|
+
src?: string;
|
|
50
52
|
/**
|
|
51
53
|
* Creates a new Interpreter instance (i.e., service) for the given behavior with the provided options, if any.
|
|
52
54
|
*
|
|
53
55
|
* @param behavior The behavior to be interpreted
|
|
54
56
|
* @param options Interpreter options
|
|
55
57
|
*/
|
|
56
|
-
constructor(behavior: TBehavior, options?: InterpreterOptions);
|
|
58
|
+
constructor(behavior: TBehavior, options?: InterpreterOptions<TBehavior>);
|
|
59
|
+
private _initState;
|
|
57
60
|
private _deferred;
|
|
58
|
-
private _getInitialState;
|
|
59
61
|
private update;
|
|
60
|
-
onTransition(listener: SnapshotListener<TBehavior>): this;
|
|
61
62
|
subscribe(observer: Observer<SnapshotFrom<TBehavior>>): Subscription;
|
|
62
63
|
subscribe(nextListener?: (state: SnapshotFrom<TBehavior>) => void, errorListener?: (error: any) => void, completeListener?: () => void): Subscription;
|
|
63
64
|
/**
|
|
@@ -66,34 +67,30 @@ export declare class Interpreter<TBehavior extends Behavior<any, any>, TEvent ex
|
|
|
66
67
|
*/
|
|
67
68
|
onDone(listener: EventListener<DoneEvent>): this;
|
|
68
69
|
/**
|
|
69
|
-
* Starts the interpreter from the
|
|
70
|
-
* @param initialState The state to start the statechart from
|
|
70
|
+
* Starts the interpreter from the initial state
|
|
71
71
|
*/
|
|
72
|
-
start(
|
|
72
|
+
start(): this;
|
|
73
73
|
private _process;
|
|
74
|
+
private _stop;
|
|
74
75
|
/**
|
|
75
76
|
* Stops the interpreter and unsubscribe all listeners.
|
|
76
77
|
*/
|
|
77
78
|
stop(): this;
|
|
78
79
|
private _complete;
|
|
79
|
-
private
|
|
80
|
+
private _stopProcedure;
|
|
80
81
|
/**
|
|
81
82
|
* Sends an event to the running interpreter to trigger a transition.
|
|
82
83
|
*
|
|
83
|
-
*
|
|
84
|
-
* batched events to the running interpreter. The listeners will be
|
|
85
|
-
* notified only **once** when all events are processed.
|
|
86
|
-
*
|
|
87
|
-
* @param event The event(s) to send
|
|
84
|
+
* @param event The event to send
|
|
88
85
|
*/
|
|
89
86
|
send(event: TEvent | SCXML.Event<TEvent>): void;
|
|
90
|
-
|
|
91
|
-
delaySend(sendAction: SendActionObject): void;
|
|
87
|
+
delaySend(sendAction: SendActionObject | RaiseActionObject<any, any, any>): void;
|
|
92
88
|
cancel(sendId: string | number): void;
|
|
93
89
|
private attachDevTools;
|
|
94
90
|
toJSON(): {
|
|
95
91
|
id: string;
|
|
96
92
|
};
|
|
93
|
+
getPersistedState(): PersistedStateFrom<TBehavior> | undefined;
|
|
97
94
|
[Symbol.observable](): InteropSubscribable<SnapshotFrom<TBehavior>>;
|
|
98
95
|
getSnapshot(): SnapshotFrom<TBehavior>;
|
|
99
96
|
}
|
|
@@ -103,6 +100,5 @@ export declare class Interpreter<TBehavior extends Behavior<any, any>, TEvent ex
|
|
|
103
100
|
* @param machine The machine to interpret
|
|
104
101
|
* @param options Interpreter options
|
|
105
102
|
*/
|
|
106
|
-
export declare function interpret<TMachine extends AnyStateMachine>(machine: AreAllImplementationsAssumedToBeProvided<TMachine['__TResolvedTypesMeta']> extends true ? TMachine : 'Some implementations missing', options?: InterpreterOptions): InterpreterFrom<TMachine>;
|
|
107
|
-
export declare function interpret<TBehavior extends
|
|
108
|
-
export {};
|
|
103
|
+
export declare function interpret<TMachine extends AnyStateMachine>(machine: AreAllImplementationsAssumedToBeProvided<TMachine['__TResolvedTypesMeta']> extends true ? TMachine : 'Some implementations missing', options?: InterpreterOptions<TMachine>): InterpreterFrom<TMachine>;
|
|
104
|
+
export declare function interpret<TBehavior extends AnyActorBehavior>(behavior: TBehavior, options?: InterpreterOptions<TBehavior>): Interpreter<TBehavior>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare function createSpawner<TContext extends MachineContext, TEvent extends EventObject>(machine: AnyStateMachine, context: TContext, _event: SCXML.Event<TEvent>, mutCapturedActions: InvokeActionObject[]): Spawner;
|
|
1
|
+
import { InvokeActionObject, AnyStateMachine, Spawner, ActorRef, MachineContext, EventObject, SCXML } from '.';
|
|
2
|
+
export declare function createSpawner<TContext extends MachineContext, TEvent extends EventObject>(self: ActorRef<any, any> | undefined, machine: AnyStateMachine, context: TContext, _event: SCXML.Event<TEvent>, mutCapturedActions: InvokeActionObject[]): Spawner;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { BaseActionObject, EventObject, StateValue, TransitionConfig, TransitionDefinition, SingleOrArray, SCXML, StateValueMap, InitialTransitionConfig, MachineContext } from './types';
|
|
2
|
-
import { State } from './State';
|
|
3
|
-
import { NULL_EVENT } from './constants';
|
|
4
|
-
import type { StateNode } from './StateNode';
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { BaseActionObject, EventObject, StateValue, TransitionConfig, TransitionDefinition, SingleOrArray, SCXML, StateValueMap, InitialTransitionConfig, MachineContext } from './types.js';
|
|
2
|
+
import { State } from './State.js';
|
|
3
|
+
import { NULL_EVENT } from './constants.js';
|
|
4
|
+
import type { StateNode } from './StateNode.js';
|
|
5
|
+
import { AnyActorContext, AnyHistoryValue, AnyState, AnyStateMachine, AnyStateNode, AnyTransitionDefinition, DelayedTransitionDefinition, InitialTransitionDefinition, StateFromMachine } from '.';
|
|
6
|
+
type Configuration<TContext extends MachineContext, TE extends EventObject> = Iterable<StateNode<TContext, TE>>;
|
|
7
|
+
type AnyConfiguration = Configuration<any, any>;
|
|
8
|
+
type AdjList = Map<AnyStateNode, Array<AnyStateNode>>;
|
|
9
9
|
export declare function getConfiguration(stateNodes: Iterable<AnyStateNode>): Set<AnyStateNode>;
|
|
10
10
|
export declare function getAdjList<TContext extends MachineContext, TE extends EventObject>(configuration: Configuration<TContext, TE>): AdjList;
|
|
11
11
|
export declare function getStateValue(rootNode: AnyStateNode, configuration: AnyConfiguration): StateValue;
|
|
@@ -51,11 +51,11 @@ export declare function removeConflictingTransitions(enabledTransitions: Array<A
|
|
|
51
51
|
* @param currentState
|
|
52
52
|
* @param mutConfiguration
|
|
53
53
|
*/
|
|
54
|
-
export declare function microstep<TContext extends MachineContext, TEvent extends EventObject>(transitions: Array<TransitionDefinition<TContext, TEvent>>, currentState: State<TContext, TEvent, any>, actorCtx:
|
|
55
|
-
export declare function resolveActionsAndContext<TContext extends MachineContext, TEvent extends EventObject>(actions: BaseActionObject[], scxmlEvent: SCXML.Event<TEvent>, currentState: State<TContext, TEvent, any>, actorCtx:
|
|
54
|
+
export declare function microstep<TContext extends MachineContext, TEvent extends EventObject>(transitions: Array<TransitionDefinition<TContext, TEvent>>, currentState: State<TContext, TEvent, any>, actorCtx: AnyActorContext | undefined, scxmlEvent: SCXML.Event<TEvent>): State<TContext, TEvent, any>;
|
|
55
|
+
export declare function resolveActionsAndContext<TContext extends MachineContext, TEvent extends EventObject>(actions: BaseActionObject[], scxmlEvent: SCXML.Event<TEvent>, currentState: State<TContext, TEvent, any>, actorCtx: AnyActorContext | undefined): {
|
|
56
56
|
nextState: AnyState;
|
|
57
57
|
};
|
|
58
|
-
export declare function macrostep<TMachine extends AnyStateMachine>(state: StateFromMachine<TMachine>, scxmlEvent: SCXML.Event<TMachine['__TEvent']>, actorCtx:
|
|
58
|
+
export declare function macrostep<TMachine extends AnyStateMachine>(state: StateFromMachine<TMachine>, scxmlEvent: SCXML.Event<TMachine['__TEvent']>, actorCtx: AnyActorContext | undefined): {
|
|
59
59
|
state: typeof state;
|
|
60
60
|
microstates: Array<typeof state>;
|
|
61
61
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { EventObject, IndexByType, IsNever, Prop, Values, IsAny, ActorMap, Cast, ParameterizedObject } from './types.js';
|
|
2
2
|
export interface TypegenDisabled {
|
|
3
3
|
'@@xstate/typegen': false;
|
|
4
4
|
}
|
|
@@ -78,12 +78,12 @@ export interface TypegenMeta extends TypegenEnabled {
|
|
|
78
78
|
}
|
|
79
79
|
export interface ResolvedTypegenMeta extends TypegenMeta {
|
|
80
80
|
resolved: TypegenMeta & {
|
|
81
|
-
indexedActions: Record<string,
|
|
81
|
+
indexedActions: Record<string, ParameterizedObject>;
|
|
82
82
|
indexedEvents: Record<string, EventObject>;
|
|
83
83
|
};
|
|
84
84
|
}
|
|
85
|
-
export
|
|
86
|
-
export
|
|
85
|
+
export type TypegenConstraint = TypegenEnabled | TypegenDisabled;
|
|
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
89
|
interface AllImplementationsProvided {
|
|
@@ -98,20 +98,20 @@ export interface MarkAllImplementationsAsProvided<TResolvedTypesMeta> {
|
|
|
98
98
|
'@@xstate/typegen': Prop<TResolvedTypesMeta, '@@xstate/typegen'>;
|
|
99
99
|
resolved: Prop<TResolvedTypesMeta, 'resolved'> & AllImplementationsProvided;
|
|
100
100
|
}
|
|
101
|
-
|
|
101
|
+
type GenerateActorEvent<TActorName, TEventType, TActorMap extends ActorMap> = TEventType extends any ? {
|
|
102
102
|
type: TEventType;
|
|
103
103
|
} & Prop<TActorMap, TActorName> : never;
|
|
104
|
-
|
|
104
|
+
type GenerateActorEvents<TActorMap extends ActorMap, TInvokeSrcNameMap> = string extends keyof TActorMap ? never : Cast<{
|
|
105
105
|
[K in keyof TInvokeSrcNameMap]: GenerateActorEvent<K, TInvokeSrcNameMap[K], TActorMap>;
|
|
106
106
|
}[keyof TInvokeSrcNameMap], EventObject>;
|
|
107
|
-
|
|
108
|
-
|
|
107
|
+
type MergeWithInternalEvents<TIndexedEvents, TInternalEvents> = TIndexedEvents & Pick<TInternalEvents, Exclude<keyof TInternalEvents, keyof TIndexedEvents>>;
|
|
108
|
+
type AllowAllEvents = {
|
|
109
109
|
eventsCausingActions: Record<string, string>;
|
|
110
110
|
eventsCausingActors: Record<string, string>;
|
|
111
111
|
eventsCausingDelays: Record<string, string>;
|
|
112
112
|
eventsCausingGuards: Record<string, string>;
|
|
113
113
|
};
|
|
114
|
-
export interface ResolveTypegenMeta<TTypesMeta extends TypegenConstraint, TEvent extends EventObject, TAction extends
|
|
114
|
+
export interface ResolveTypegenMeta<TTypesMeta extends TypegenConstraint, TEvent extends EventObject, TAction extends ParameterizedObject, TActorMap extends ActorMap> {
|
|
115
115
|
'@@xstate/typegen': TTypesMeta['@@xstate/typegen'];
|
|
116
116
|
resolved: {
|
|
117
117
|
enabled: TTypesMeta & {
|