xstate 4.30.0 → 4.30.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +34 -0
- package/es/interpreter.d.ts +1 -2
- package/es/scxml.d.ts +2 -2
- package/es/types.d.ts +13 -10
- package/es/utils.d.ts +3 -2
- package/lib/interpreter.d.ts +1 -2
- package/lib/scxml.d.ts +2 -2
- package/lib/types.d.ts +13 -10
- package/lib/utils.d.ts +3 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,39 @@
|
|
|
1
1
|
# xstate
|
|
2
2
|
|
|
3
|
+
## 4.30.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#3040](https://github.com/statelyai/xstate/pull/3040) [`18dc2b3e2`](https://github.com/statelyai/xstate/commit/18dc2b3e2c49527b2155063490bb7295f1f06043) Thanks [@davidkpiano](https://github.com/davidkpiano)! - The `AnyState` and `AnyStateMachine` types are now available, which can be used to express any state and state machine, respectively:
|
|
8
|
+
|
|
9
|
+
```ts
|
|
10
|
+
import type { AnyState, AnyStateMachine } from 'xstate';
|
|
11
|
+
|
|
12
|
+
// A function that takes in any state machine
|
|
13
|
+
function visualizeMachine(machine: AnyStateMachine) {
|
|
14
|
+
// (exercise left to reader)
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function logState(state: AnyState) {
|
|
18
|
+
// ...
|
|
19
|
+
}
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
* [#3042](https://github.com/statelyai/xstate/pull/3042) [`e53396f08`](https://github.com/statelyai/xstate/commit/e53396f083091db26c117000ce6ec070914360e9) Thanks [@suerta-git](https://github.com/suerta-git)! - Added the `AnyStateConfig` type, which represents any `StateConfig<...>`:
|
|
23
|
+
|
|
24
|
+
```ts
|
|
25
|
+
import type { AnyStateConfig } from 'xstate';
|
|
26
|
+
import { State } from 'xstate';
|
|
27
|
+
|
|
28
|
+
// Retrieving the state config from localStorage
|
|
29
|
+
const stateConfig: AnyStateConfig = JSON.parse(
|
|
30
|
+
localStorage.getItem('app-state')
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
// Use State.create() to restore state from config object with correct type
|
|
34
|
+
const previousState = State.create(stateConfig);
|
|
35
|
+
```
|
|
36
|
+
|
|
3
37
|
## 4.30.0
|
|
4
38
|
|
|
5
39
|
### Minor Changes
|
package/es/interpreter.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { StateMachine, Event, EventObject, DefaultContext, StateSchema, StateValue, InterpreterOptions, SingleOrArray, Subscribable, DoneEvent, MachineOptions, SCXML, EventData, Observer, Spawnable, Typestate, ActorRef, ActorRefFrom, Behavior, Subscription } from './types';
|
|
1
|
+
import { StateMachine, Event, EventObject, DefaultContext, StateSchema, StateValue, InterpreterOptions, SingleOrArray, Subscribable, DoneEvent, MachineOptions, SCXML, EventData, Observer, Spawnable, Typestate, ActorRef, ActorRefFrom, Behavior, Subscription, StateConfig } from './types';
|
|
2
2
|
import { State } from './State';
|
|
3
|
-
import { StateConfig } from '.';
|
|
4
3
|
import { AreAllImplementationsAssumedToBeProvided, TypegenDisabled } from './typegenTypes';
|
|
5
4
|
export declare type StateListener<TContext, TEvent extends EventObject, TStateSchema extends StateSchema<TContext> = any, TTypestate extends Typestate<TContext> = {
|
|
6
5
|
value: any;
|
package/es/scxml.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AnyStateMachine } from './index';
|
|
2
2
|
export interface ScxmlToMachineOptions {
|
|
3
3
|
delimiter?: string;
|
|
4
4
|
}
|
|
5
|
-
export declare function toMachine(xml: string, options: ScxmlToMachineOptions):
|
|
5
|
+
export declare function toMachine(xml: string, options: ScxmlToMachineOptions): AnyStateMachine;
|
|
6
6
|
//# sourceMappingURL=scxml.d.ts.map
|
package/es/types.d.ts
CHANGED
|
@@ -90,7 +90,7 @@ export declare type SimpleEventsOf<TEvent extends EventObject> = ExtractWithSimp
|
|
|
90
90
|
export declare type BaseAction<TContext, TEvent extends EventObject, TAction extends BaseActionObject> = SimpleActionsOf<TAction>['type'] | TAction | RaiseAction<any> | SendAction<TContext, TEvent, any> | AssignAction<TContext, TEvent> | LogAction<TContext, TEvent> | CancelAction | StopAction<TContext, TEvent> | ChooseAction<TContext, TEvent> | ActionFunction<TContext, TEvent>;
|
|
91
91
|
export declare type BaseActions<TContext, TEvent extends EventObject, TAction extends BaseActionObject> = SingleOrArray<BaseAction<TContext, TEvent, TAction>>;
|
|
92
92
|
export declare type Actions<TContext, TEvent extends EventObject> = SingleOrArray<Action<TContext, TEvent>>;
|
|
93
|
-
export declare type StateKey = string |
|
|
93
|
+
export declare type StateKey = string | AnyState;
|
|
94
94
|
export interface StateValueMap {
|
|
95
95
|
[key: string]: StateValue;
|
|
96
96
|
}
|
|
@@ -268,7 +268,7 @@ export interface InvokeConfig<TContext, TEvent extends EventObject> {
|
|
|
268
268
|
/**
|
|
269
269
|
* The source of the machine to be invoked, or the machine itself.
|
|
270
270
|
*/
|
|
271
|
-
src: string | InvokeSourceDefinition |
|
|
271
|
+
src: string | InvokeSourceDefinition | AnyStateMachine | InvokeCreator<TContext, TEvent, any>;
|
|
272
272
|
/**
|
|
273
273
|
* If `true`, events sent to the parent service will be forwarded to the invoked service.
|
|
274
274
|
*
|
|
@@ -338,7 +338,7 @@ export interface StateNodeConfig<TContext, TStateSchema extends StateSchema, TEv
|
|
|
338
338
|
/**
|
|
339
339
|
* The services to invoke upon entering this state node. These services will be stopped upon exiting this state node.
|
|
340
340
|
*/
|
|
341
|
-
invoke?: SingleOrArray<InvokeConfig<TContext, TEvent> |
|
|
341
|
+
invoke?: SingleOrArray<InvokeConfig<TContext, TEvent> | AnyStateMachine>;
|
|
342
342
|
/**
|
|
343
343
|
* The mapping of event types to their potential transition(s).
|
|
344
344
|
*/
|
|
@@ -458,6 +458,8 @@ export interface StateNodeDefinition<TContext, TStateSchema extends StateSchema,
|
|
|
458
458
|
tags: string[];
|
|
459
459
|
}
|
|
460
460
|
export declare type AnyStateNodeDefinition = StateNodeDefinition<any, any, any>;
|
|
461
|
+
export declare type AnyState = State<any, any, any, any, any>;
|
|
462
|
+
export declare type AnyStateMachine = StateMachine<any, any, any, any, any, any, any>;
|
|
461
463
|
export interface AtomicStateNodeConfig<TContext, TEvent extends EventObject> extends StateNodeConfig<TContext, StateSchema, TEvent> {
|
|
462
464
|
initial?: undefined;
|
|
463
465
|
parallel?: false | undefined;
|
|
@@ -483,7 +485,7 @@ export declare type ActionFunctionMap<TContext, TEvent extends EventObject, TAct
|
|
|
483
485
|
} ? TAction : never>;
|
|
484
486
|
};
|
|
485
487
|
export declare type DelayFunctionMap<TContext, TEvent extends EventObject> = Record<string, DelayConfig<TContext, TEvent>>;
|
|
486
|
-
export declare type ServiceConfig<TContext, TEvent extends EventObject = AnyEventObject> = string |
|
|
488
|
+
export declare type ServiceConfig<TContext, TEvent extends EventObject = AnyEventObject> = string | AnyStateMachine | InvokeCreator<TContext, TEvent>;
|
|
487
489
|
export declare type DelayConfig<TContext, TEvent extends EventObject> = number | DelayExpr<TContext, TEvent>;
|
|
488
490
|
declare type MachineOptionsActions<TContext, TResolvedTypesMeta, TEventsCausingActions = Prop<TResolvedTypesMeta, 'eventsCausingActions'>, TIndexedEvents = Prop<TResolvedTypesMeta, 'indexedEvents'>, TIndexedActions = Prop<TResolvedTypesMeta, 'indexedActions'>> = {
|
|
489
491
|
[K in keyof TEventsCausingActions]?: ActionObject<TContext, Cast<Prop<TIndexedEvents, TEventsCausingActions[K]>, EventObject>> | ActionFunction<TContext, Cast<Prop<TIndexedEvents, TEventsCausingActions[K]>, EventObject>, Cast<Prop<TIndexedActions, K>, BaseActionObject>>;
|
|
@@ -495,7 +497,7 @@ declare type MachineOptionsGuards<TContext, TResolvedTypesMeta, TEventsCausingGu
|
|
|
495
497
|
[K in keyof TEventsCausingGuards]?: ConditionPredicate<TContext, Cast<Prop<TIndexedEvents, TEventsCausingGuards[K]>, EventObject>>;
|
|
496
498
|
};
|
|
497
499
|
declare type MachineOptionsServices<TContext, TResolvedTypesMeta, TEventsCausingServices = Prop<TResolvedTypesMeta, 'eventsCausingServices'>, TIndexedEvents = Prop<TResolvedTypesMeta, 'indexedEvents'>, TInvokeSrcNameMap = Prop<TResolvedTypesMeta, 'invokeSrcNameMap'>> = {
|
|
498
|
-
[K in keyof TEventsCausingServices]?:
|
|
500
|
+
[K in keyof TEventsCausingServices]?: AnyStateMachine | InvokeCreator<TContext, Cast<Prop<TIndexedEvents, TEventsCausingServices[K]>, EventObject>, Prop<Prop<TIndexedEvents, Prop<TInvokeSrcNameMap, K>>, 'data'>, EventObject, Cast<TIndexedEvents[keyof TIndexedEvents], EventObject>>;
|
|
499
501
|
};
|
|
500
502
|
declare type MakeKeysRequired<T extends string> = {
|
|
501
503
|
[K in T]: unknown;
|
|
@@ -588,7 +590,7 @@ export interface StateMachine<TContext, TStateSchema extends StateSchema, TEvent
|
|
|
588
590
|
/** @deprecated an internal property acting as a "phantom" type, not meant to be used at runtime */
|
|
589
591
|
__TResolvedTypesMeta: TResolvedTypesMeta;
|
|
590
592
|
}
|
|
591
|
-
export declare type StateFrom<T extends
|
|
593
|
+
export declare type StateFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine)> = T extends AnyStateMachine ? ReturnType<T['transition']> : T extends (...args: any[]) => AnyStateMachine ? ReturnType<ReturnType<T>['transition']> : never;
|
|
592
594
|
export interface ActionMap<TContext, TEvent extends EventObject> {
|
|
593
595
|
onEntry: Array<Action<TContext, TEvent>>;
|
|
594
596
|
actions: Array<Action<TContext, TEvent>>;
|
|
@@ -668,7 +670,7 @@ export interface DoneEventObject extends EventObject {
|
|
|
668
670
|
}
|
|
669
671
|
export interface UpdateObject extends EventObject {
|
|
670
672
|
id: string | number;
|
|
671
|
-
state:
|
|
673
|
+
state: AnyState;
|
|
672
674
|
}
|
|
673
675
|
export declare type DoneEvent = DoneEventObject & string;
|
|
674
676
|
export interface NullEvent {
|
|
@@ -868,6 +870,7 @@ export interface StateConfig<TContext, TEvent extends EventObject> {
|
|
|
868
870
|
tags?: Set<string>;
|
|
869
871
|
machine?: StateMachine<TContext, any, TEvent, any, any, any, any>;
|
|
870
872
|
}
|
|
873
|
+
export declare type AnyStateConfig = StateConfig<any, AnyEventObject>;
|
|
871
874
|
export interface StateSchema<TC = any> {
|
|
872
875
|
meta?: any;
|
|
873
876
|
context?: Partial<TC>;
|
|
@@ -979,7 +982,7 @@ export interface Subscribable<T> {
|
|
|
979
982
|
subscribe(next: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription;
|
|
980
983
|
subscribe(observer: Observer<T>): Subscription;
|
|
981
984
|
}
|
|
982
|
-
export declare type Spawnable =
|
|
985
|
+
export declare type Spawnable = AnyStateMachine | PromiseLike<any> | InvokeCallback | InteropObservable<any> | Subscribable<any> | Behavior<any>;
|
|
983
986
|
export declare type ExtractEvent<TEvent extends EventObject, TEventType extends TEvent['type']> = TEvent extends {
|
|
984
987
|
type: TEventType;
|
|
985
988
|
} ? TEvent : never;
|
|
@@ -1005,8 +1008,8 @@ export declare type ActorRefWithDeprecatedState<TContext, TEvent extends EventOb
|
|
|
1005
1008
|
};
|
|
1006
1009
|
export declare type ActorRefFrom<T> = T extends StateMachine<infer TContext, any, infer TEvent, infer TTypestate, any, any, any> ? ActorRefWithDeprecatedState<TContext, TEvent, TTypestate> : T extends (...args: any[]) => StateMachine<infer TContext, any, infer TEvent, infer TTypestate, any, any, infer TResolvedTypesMeta> ? ActorRefWithDeprecatedState<TContext, TEvent, TTypestate, TResolvedTypesMeta> : T extends Promise<infer U> ? ActorRef<never, U> : T extends Behavior<infer TEvent1, infer TEmitted> ? ActorRef<TEvent1, TEmitted> : T extends (...args: any[]) => Behavior<infer TEvent1, infer TEmitted> ? ActorRef<TEvent1, TEmitted> : never;
|
|
1007
1010
|
export declare type AnyInterpreter = Interpreter<any, any, any, any, any>;
|
|
1008
|
-
export declare type InterpreterFrom<T extends
|
|
1009
|
-
export declare type MachineOptionsFrom<T extends
|
|
1011
|
+
export declare type InterpreterFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine)> = T extends StateMachine<infer TContext, infer TStateSchema, infer TEvent, infer TTypestate, any, any, infer TResolvedTypesMeta> ? Interpreter<TContext, TStateSchema, TEvent, TTypestate, TResolvedTypesMeta> : T extends (...args: any[]) => StateMachine<infer TContext, infer TStateSchema, infer TEvent, infer TTypestate, any, any, infer TResolvedTypesMeta> ? Interpreter<TContext, TStateSchema, TEvent, TTypestate, TResolvedTypesMeta> : never;
|
|
1012
|
+
export declare type MachineOptionsFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine), TRequireMissingImplementations extends boolean = false> = ReturnTypeOrValue<T> extends StateMachine<infer TContext, any, infer TEvent, any, any, any, infer TResolvedTypesMeta> ? InternalMachineOptions<TContext, TEvent, TResolvedTypesMeta, TRequireMissingImplementations> : never;
|
|
1010
1013
|
export declare type __ResolvedTypesMetaFrom<T> = T extends StateMachine<any, any, any, any, any, any, infer TResolvedTypesMeta> ? TResolvedTypesMeta : never;
|
|
1011
1014
|
export interface ActorContext<TEvent extends EventObject, TEmitted> {
|
|
1012
1015
|
parent?: ActorRef<any, any>;
|
package/es/utils.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { Event, StateValue, ActionType, Action, EventObject, PropertyMapper, Mapper, EventType, HistoryValue, AssignAction, Condition, Subscribable,
|
|
1
|
+
import { Event, StateValue, ActionType, Action, EventObject, PropertyMapper, Mapper, EventType, HistoryValue, AssignAction, Condition, Subscribable, ConditionPredicate, SCXML, StateLike, EventData, TransitionConfig, TransitionConfigTarget, NullEvent, SingleOrArray, Guard, InvokeSourceDefinition, Observer, Behavior } from './types';
|
|
2
2
|
import { StateNode } from './StateNode';
|
|
3
3
|
import { State } from './State';
|
|
4
4
|
import { Actor } from './Actor';
|
|
5
|
+
import { AnyStateMachine } from '.';
|
|
5
6
|
export declare function keys<T extends object>(value: T): Array<keyof T & string>;
|
|
6
7
|
export declare function matchesState(parentStateId: StateValue, childStateId: StateValue, delimiter?: string): boolean;
|
|
7
8
|
export declare function getEventType<TEvent extends EventObject = EventObject>(event: Event<TEvent>): TEvent['type'];
|
|
@@ -57,7 +58,7 @@ export declare const interopSymbols: {
|
|
|
57
58
|
[x: string]: () => any;
|
|
58
59
|
[Symbol.observable]: () => any;
|
|
59
60
|
};
|
|
60
|
-
export declare function isMachine(value: any): value is
|
|
61
|
+
export declare function isMachine(value: any): value is AnyStateMachine;
|
|
61
62
|
export declare function isActor(value: any): value is Actor;
|
|
62
63
|
export declare const uniqueId: () => string;
|
|
63
64
|
export declare function toEventObject<TEvent extends EventObject>(event: Event<TEvent>, payload?: EventData): TEvent;
|
package/lib/interpreter.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { StateMachine, Event, EventObject, DefaultContext, StateSchema, StateValue, InterpreterOptions, SingleOrArray, Subscribable, DoneEvent, MachineOptions, SCXML, EventData, Observer, Spawnable, Typestate, ActorRef, ActorRefFrom, Behavior, Subscription } from './types';
|
|
1
|
+
import { StateMachine, Event, EventObject, DefaultContext, StateSchema, StateValue, InterpreterOptions, SingleOrArray, Subscribable, DoneEvent, MachineOptions, SCXML, EventData, Observer, Spawnable, Typestate, ActorRef, ActorRefFrom, Behavior, Subscription, StateConfig } from './types';
|
|
2
2
|
import { State } from './State';
|
|
3
|
-
import { StateConfig } from '.';
|
|
4
3
|
import { AreAllImplementationsAssumedToBeProvided, TypegenDisabled } from './typegenTypes';
|
|
5
4
|
export declare type StateListener<TContext, TEvent extends EventObject, TStateSchema extends StateSchema<TContext> = any, TTypestate extends Typestate<TContext> = {
|
|
6
5
|
value: any;
|
package/lib/scxml.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AnyStateMachine } from './index';
|
|
2
2
|
export interface ScxmlToMachineOptions {
|
|
3
3
|
delimiter?: string;
|
|
4
4
|
}
|
|
5
|
-
export declare function toMachine(xml: string, options: ScxmlToMachineOptions):
|
|
5
|
+
export declare function toMachine(xml: string, options: ScxmlToMachineOptions): AnyStateMachine;
|
|
6
6
|
//# sourceMappingURL=scxml.d.ts.map
|
package/lib/types.d.ts
CHANGED
|
@@ -90,7 +90,7 @@ export declare type SimpleEventsOf<TEvent extends EventObject> = ExtractWithSimp
|
|
|
90
90
|
export declare type BaseAction<TContext, TEvent extends EventObject, TAction extends BaseActionObject> = SimpleActionsOf<TAction>['type'] | TAction | RaiseAction<any> | SendAction<TContext, TEvent, any> | AssignAction<TContext, TEvent> | LogAction<TContext, TEvent> | CancelAction | StopAction<TContext, TEvent> | ChooseAction<TContext, TEvent> | ActionFunction<TContext, TEvent>;
|
|
91
91
|
export declare type BaseActions<TContext, TEvent extends EventObject, TAction extends BaseActionObject> = SingleOrArray<BaseAction<TContext, TEvent, TAction>>;
|
|
92
92
|
export declare type Actions<TContext, TEvent extends EventObject> = SingleOrArray<Action<TContext, TEvent>>;
|
|
93
|
-
export declare type StateKey = string |
|
|
93
|
+
export declare type StateKey = string | AnyState;
|
|
94
94
|
export interface StateValueMap {
|
|
95
95
|
[key: string]: StateValue;
|
|
96
96
|
}
|
|
@@ -268,7 +268,7 @@ export interface InvokeConfig<TContext, TEvent extends EventObject> {
|
|
|
268
268
|
/**
|
|
269
269
|
* The source of the machine to be invoked, or the machine itself.
|
|
270
270
|
*/
|
|
271
|
-
src: string | InvokeSourceDefinition |
|
|
271
|
+
src: string | InvokeSourceDefinition | AnyStateMachine | InvokeCreator<TContext, TEvent, any>;
|
|
272
272
|
/**
|
|
273
273
|
* If `true`, events sent to the parent service will be forwarded to the invoked service.
|
|
274
274
|
*
|
|
@@ -338,7 +338,7 @@ export interface StateNodeConfig<TContext, TStateSchema extends StateSchema, TEv
|
|
|
338
338
|
/**
|
|
339
339
|
* The services to invoke upon entering this state node. These services will be stopped upon exiting this state node.
|
|
340
340
|
*/
|
|
341
|
-
invoke?: SingleOrArray<InvokeConfig<TContext, TEvent> |
|
|
341
|
+
invoke?: SingleOrArray<InvokeConfig<TContext, TEvent> | AnyStateMachine>;
|
|
342
342
|
/**
|
|
343
343
|
* The mapping of event types to their potential transition(s).
|
|
344
344
|
*/
|
|
@@ -458,6 +458,8 @@ export interface StateNodeDefinition<TContext, TStateSchema extends StateSchema,
|
|
|
458
458
|
tags: string[];
|
|
459
459
|
}
|
|
460
460
|
export declare type AnyStateNodeDefinition = StateNodeDefinition<any, any, any>;
|
|
461
|
+
export declare type AnyState = State<any, any, any, any, any>;
|
|
462
|
+
export declare type AnyStateMachine = StateMachine<any, any, any, any, any, any, any>;
|
|
461
463
|
export interface AtomicStateNodeConfig<TContext, TEvent extends EventObject> extends StateNodeConfig<TContext, StateSchema, TEvent> {
|
|
462
464
|
initial?: undefined;
|
|
463
465
|
parallel?: false | undefined;
|
|
@@ -483,7 +485,7 @@ export declare type ActionFunctionMap<TContext, TEvent extends EventObject, TAct
|
|
|
483
485
|
} ? TAction : never>;
|
|
484
486
|
};
|
|
485
487
|
export declare type DelayFunctionMap<TContext, TEvent extends EventObject> = Record<string, DelayConfig<TContext, TEvent>>;
|
|
486
|
-
export declare type ServiceConfig<TContext, TEvent extends EventObject = AnyEventObject> = string |
|
|
488
|
+
export declare type ServiceConfig<TContext, TEvent extends EventObject = AnyEventObject> = string | AnyStateMachine | InvokeCreator<TContext, TEvent>;
|
|
487
489
|
export declare type DelayConfig<TContext, TEvent extends EventObject> = number | DelayExpr<TContext, TEvent>;
|
|
488
490
|
declare type MachineOptionsActions<TContext, TResolvedTypesMeta, TEventsCausingActions = Prop<TResolvedTypesMeta, 'eventsCausingActions'>, TIndexedEvents = Prop<TResolvedTypesMeta, 'indexedEvents'>, TIndexedActions = Prop<TResolvedTypesMeta, 'indexedActions'>> = {
|
|
489
491
|
[K in keyof TEventsCausingActions]?: ActionObject<TContext, Cast<Prop<TIndexedEvents, TEventsCausingActions[K]>, EventObject>> | ActionFunction<TContext, Cast<Prop<TIndexedEvents, TEventsCausingActions[K]>, EventObject>, Cast<Prop<TIndexedActions, K>, BaseActionObject>>;
|
|
@@ -495,7 +497,7 @@ declare type MachineOptionsGuards<TContext, TResolvedTypesMeta, TEventsCausingGu
|
|
|
495
497
|
[K in keyof TEventsCausingGuards]?: ConditionPredicate<TContext, Cast<Prop<TIndexedEvents, TEventsCausingGuards[K]>, EventObject>>;
|
|
496
498
|
};
|
|
497
499
|
declare type MachineOptionsServices<TContext, TResolvedTypesMeta, TEventsCausingServices = Prop<TResolvedTypesMeta, 'eventsCausingServices'>, TIndexedEvents = Prop<TResolvedTypesMeta, 'indexedEvents'>, TInvokeSrcNameMap = Prop<TResolvedTypesMeta, 'invokeSrcNameMap'>> = {
|
|
498
|
-
[K in keyof TEventsCausingServices]?:
|
|
500
|
+
[K in keyof TEventsCausingServices]?: AnyStateMachine | InvokeCreator<TContext, Cast<Prop<TIndexedEvents, TEventsCausingServices[K]>, EventObject>, Prop<Prop<TIndexedEvents, Prop<TInvokeSrcNameMap, K>>, 'data'>, EventObject, Cast<TIndexedEvents[keyof TIndexedEvents], EventObject>>;
|
|
499
501
|
};
|
|
500
502
|
declare type MakeKeysRequired<T extends string> = {
|
|
501
503
|
[K in T]: unknown;
|
|
@@ -588,7 +590,7 @@ export interface StateMachine<TContext, TStateSchema extends StateSchema, TEvent
|
|
|
588
590
|
/** @deprecated an internal property acting as a "phantom" type, not meant to be used at runtime */
|
|
589
591
|
__TResolvedTypesMeta: TResolvedTypesMeta;
|
|
590
592
|
}
|
|
591
|
-
export declare type StateFrom<T extends
|
|
593
|
+
export declare type StateFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine)> = T extends AnyStateMachine ? ReturnType<T['transition']> : T extends (...args: any[]) => AnyStateMachine ? ReturnType<ReturnType<T>['transition']> : never;
|
|
592
594
|
export interface ActionMap<TContext, TEvent extends EventObject> {
|
|
593
595
|
onEntry: Array<Action<TContext, TEvent>>;
|
|
594
596
|
actions: Array<Action<TContext, TEvent>>;
|
|
@@ -668,7 +670,7 @@ export interface DoneEventObject extends EventObject {
|
|
|
668
670
|
}
|
|
669
671
|
export interface UpdateObject extends EventObject {
|
|
670
672
|
id: string | number;
|
|
671
|
-
state:
|
|
673
|
+
state: AnyState;
|
|
672
674
|
}
|
|
673
675
|
export declare type DoneEvent = DoneEventObject & string;
|
|
674
676
|
export interface NullEvent {
|
|
@@ -868,6 +870,7 @@ export interface StateConfig<TContext, TEvent extends EventObject> {
|
|
|
868
870
|
tags?: Set<string>;
|
|
869
871
|
machine?: StateMachine<TContext, any, TEvent, any, any, any, any>;
|
|
870
872
|
}
|
|
873
|
+
export declare type AnyStateConfig = StateConfig<any, AnyEventObject>;
|
|
871
874
|
export interface StateSchema<TC = any> {
|
|
872
875
|
meta?: any;
|
|
873
876
|
context?: Partial<TC>;
|
|
@@ -979,7 +982,7 @@ export interface Subscribable<T> {
|
|
|
979
982
|
subscribe(next: (value: T) => void, error?: (error: any) => void, complete?: () => void): Subscription;
|
|
980
983
|
subscribe(observer: Observer<T>): Subscription;
|
|
981
984
|
}
|
|
982
|
-
export declare type Spawnable =
|
|
985
|
+
export declare type Spawnable = AnyStateMachine | PromiseLike<any> | InvokeCallback | InteropObservable<any> | Subscribable<any> | Behavior<any>;
|
|
983
986
|
export declare type ExtractEvent<TEvent extends EventObject, TEventType extends TEvent['type']> = TEvent extends {
|
|
984
987
|
type: TEventType;
|
|
985
988
|
} ? TEvent : never;
|
|
@@ -1005,8 +1008,8 @@ export declare type ActorRefWithDeprecatedState<TContext, TEvent extends EventOb
|
|
|
1005
1008
|
};
|
|
1006
1009
|
export declare type ActorRefFrom<T> = T extends StateMachine<infer TContext, any, infer TEvent, infer TTypestate, any, any, any> ? ActorRefWithDeprecatedState<TContext, TEvent, TTypestate> : T extends (...args: any[]) => StateMachine<infer TContext, any, infer TEvent, infer TTypestate, any, any, infer TResolvedTypesMeta> ? ActorRefWithDeprecatedState<TContext, TEvent, TTypestate, TResolvedTypesMeta> : T extends Promise<infer U> ? ActorRef<never, U> : T extends Behavior<infer TEvent1, infer TEmitted> ? ActorRef<TEvent1, TEmitted> : T extends (...args: any[]) => Behavior<infer TEvent1, infer TEmitted> ? ActorRef<TEvent1, TEmitted> : never;
|
|
1007
1010
|
export declare type AnyInterpreter = Interpreter<any, any, any, any, any>;
|
|
1008
|
-
export declare type InterpreterFrom<T extends
|
|
1009
|
-
export declare type MachineOptionsFrom<T extends
|
|
1011
|
+
export declare type InterpreterFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine)> = T extends StateMachine<infer TContext, infer TStateSchema, infer TEvent, infer TTypestate, any, any, infer TResolvedTypesMeta> ? Interpreter<TContext, TStateSchema, TEvent, TTypestate, TResolvedTypesMeta> : T extends (...args: any[]) => StateMachine<infer TContext, infer TStateSchema, infer TEvent, infer TTypestate, any, any, infer TResolvedTypesMeta> ? Interpreter<TContext, TStateSchema, TEvent, TTypestate, TResolvedTypesMeta> : never;
|
|
1012
|
+
export declare type MachineOptionsFrom<T extends AnyStateMachine | ((...args: any[]) => AnyStateMachine), TRequireMissingImplementations extends boolean = false> = ReturnTypeOrValue<T> extends StateMachine<infer TContext, any, infer TEvent, any, any, any, infer TResolvedTypesMeta> ? InternalMachineOptions<TContext, TEvent, TResolvedTypesMeta, TRequireMissingImplementations> : never;
|
|
1010
1013
|
export declare type __ResolvedTypesMetaFrom<T> = T extends StateMachine<any, any, any, any, any, any, infer TResolvedTypesMeta> ? TResolvedTypesMeta : never;
|
|
1011
1014
|
export interface ActorContext<TEvent extends EventObject, TEmitted> {
|
|
1012
1015
|
parent?: ActorRef<any, any>;
|
package/lib/utils.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { Event, StateValue, ActionType, Action, EventObject, PropertyMapper, Mapper, EventType, HistoryValue, AssignAction, Condition, Subscribable,
|
|
1
|
+
import { Event, StateValue, ActionType, Action, EventObject, PropertyMapper, Mapper, EventType, HistoryValue, AssignAction, Condition, Subscribable, ConditionPredicate, SCXML, StateLike, EventData, TransitionConfig, TransitionConfigTarget, NullEvent, SingleOrArray, Guard, InvokeSourceDefinition, Observer, Behavior } from './types';
|
|
2
2
|
import { StateNode } from './StateNode';
|
|
3
3
|
import { State } from './State';
|
|
4
4
|
import { Actor } from './Actor';
|
|
5
|
+
import { AnyStateMachine } from '.';
|
|
5
6
|
export declare function keys<T extends object>(value: T): Array<keyof T & string>;
|
|
6
7
|
export declare function matchesState(parentStateId: StateValue, childStateId: StateValue, delimiter?: string): boolean;
|
|
7
8
|
export declare function getEventType<TEvent extends EventObject = EventObject>(event: Event<TEvent>): TEvent['type'];
|
|
@@ -57,7 +58,7 @@ export declare const interopSymbols: {
|
|
|
57
58
|
[x: string]: () => any;
|
|
58
59
|
[Symbol.observable]: () => any;
|
|
59
60
|
};
|
|
60
|
-
export declare function isMachine(value: any): value is
|
|
61
|
+
export declare function isMachine(value: any): value is AnyStateMachine;
|
|
61
62
|
export declare function isActor(value: any): value is Actor;
|
|
62
63
|
export declare const uniqueId: () => string;
|
|
63
64
|
export declare function toEventObject<TEvent extends EventObject>(event: Event<TEvent>, payload?: EventData): TEvent;
|