xstate 5.0.0-beta.43 → 5.0.0-beta.44
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.js +2 -3
- package/actions/dist/xstate-actions.development.cjs.js +2 -3
- package/actions/dist/xstate-actions.development.esm.js +2 -3
- package/actions/dist/xstate-actions.esm.js +2 -3
- 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.js +6 -6
- package/actors/dist/xstate-actors.development.cjs.js +6 -6
- package/actors/dist/xstate-actors.development.esm.js +1 -1
- package/actors/dist/xstate-actors.esm.js +1 -1
- package/actors/dist/xstate-actors.umd.min.js +1 -1
- package/actors/dist/xstate-actors.umd.min.js.map +1 -1
- package/dist/declarations/src/State.d.ts +3 -7
- package/dist/declarations/src/actions/spawn.d.ts +11 -16
- package/dist/declarations/src/guards.d.ts +2 -2
- package/dist/declarations/src/index.d.ts +1 -1
- package/dist/declarations/src/spawn.d.ts +9 -13
- package/dist/declarations/src/stateUtils.d.ts +4 -4
- package/dist/declarations/src/types.d.ts +15 -16
- package/dist/declarations/src/utils.d.ts +1 -3
- package/dist/{raise-e0fe5c2d.cjs.js → raise-348cc74e.development.esm.js} +946 -68
- package/dist/{raise-f4ad5a87.development.esm.js → raise-5854eaca.esm.js} +860 -49
- package/dist/{raise-23dea0d7.development.cjs.js → raise-ed700d14.development.cjs.js} +922 -36
- package/dist/{raise-8dc8e1aa.esm.js → raise-fb6f017b.cjs.js} +907 -2
- package/dist/{send-0174c155.development.cjs.js → send-00466e37.development.cjs.js} +11 -12
- package/dist/{send-87bbaaab.cjs.js → send-53e5693c.cjs.js} +11 -12
- package/dist/{send-5d129d95.development.esm.js → send-a0193bdb.development.esm.js} +2 -3
- package/dist/{send-84e2e742.esm.js → send-b7b4befa.esm.js} +2 -3
- package/dist/xstate.cjs.js +25 -25
- package/dist/xstate.cjs.mjs +1 -0
- package/dist/xstate.development.cjs.js +25 -25
- package/dist/xstate.development.cjs.mjs +1 -0
- package/dist/xstate.development.esm.js +4 -6
- package/dist/xstate.esm.js +4 -6
- package/dist/xstate.umd.min.js +1 -1
- package/dist/xstate.umd.min.js.map +1 -1
- package/guards/dist/xstate-guards.cjs.js +1 -2
- package/guards/dist/xstate-guards.development.cjs.js +1 -2
- package/guards/dist/xstate-guards.development.esm.js +1 -2
- package/guards/dist/xstate-guards.esm.js +1 -2
- package/guards/dist/xstate-guards.umd.min.js.map +1 -1
- package/package.json +1 -1
- package/dist/interpreter-36d5556e.cjs.js +0 -887
- package/dist/interpreter-4e8e2a0d.development.cjs.js +0 -898
- package/dist/interpreter-63c80754.esm.js +0 -857
- package/dist/interpreter-80eb3bec.development.esm.js +0 -868
|
@@ -1,26 +1,21 @@
|
|
|
1
|
-
import { ActionArgs, EventObject, MachineContext, ParameterizedObject, AnyActorLogic, ProvidedActor, IsLiteralString, InputFrom, UnifiedArg, Mapper } from "../types.js";
|
|
1
|
+
import { ActionArgs, EventObject, MachineContext, ParameterizedObject, AnyActorLogic, ProvidedActor, IsLiteralString, InputFrom, UnifiedArg, Mapper, RequiredActorOptions, ConditionalRequired, IsNotNever } from "../types.js";
|
|
2
2
|
type ResolvableActorId<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TId extends string | undefined> = TId | ((args: UnifiedArg<TContext, TExpressionEvent, TEvent>) => TId);
|
|
3
3
|
export interface SpawnAction<TContext extends MachineContext, TExpressionEvent extends EventObject, TParams extends ParameterizedObject['params'] | undefined, TEvent extends EventObject, TActor extends ProvidedActor> {
|
|
4
4
|
(args: ActionArgs<TContext, TExpressionEvent, TEvent>, params: TParams): void;
|
|
5
5
|
_out_TActor?: TActor;
|
|
6
6
|
}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
] : [
|
|
7
|
+
interface SpawnActionOptions<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TActor extends ProvidedActor> {
|
|
8
|
+
id?: ResolvableActorId<TContext, TExpressionEvent, TEvent, TActor['id']>;
|
|
9
|
+
systemId?: string;
|
|
10
|
+
input?: Mapper<TContext, TEvent, InputFrom<TActor['logic']>, TEvent> | InputFrom<TActor['logic']>;
|
|
11
|
+
syncSnapshot?: boolean;
|
|
12
|
+
}
|
|
13
|
+
type DistributeActors<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TActor extends ProvidedActor> = TActor extends any ? ConditionalRequired<[
|
|
16
14
|
src: TActor['src'],
|
|
17
|
-
options?: {
|
|
18
|
-
|
|
19
|
-
systemId?: string;
|
|
20
|
-
input?: Mapper<TContext, TEvent, InputFrom<TActor['logic']>, TEvent> | InputFrom<TActor['logic']>;
|
|
21
|
-
syncSnapshot?: boolean;
|
|
15
|
+
options?: SpawnActionOptions<TContext, TExpressionEvent, TEvent, TActor> & {
|
|
16
|
+
[K in RequiredActorOptions<TActor>]: unknown;
|
|
22
17
|
}
|
|
23
|
-
] : never;
|
|
18
|
+
], IsNotNever<RequiredActorOptions<TActor>>> : never;
|
|
24
19
|
type SpawnArguments<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TActor extends ProvidedActor> = IsLiteralString<TActor['src']> extends true ? DistributeActors<TContext, TExpressionEvent, TEvent, TActor> : [
|
|
25
20
|
src: string | AnyActorLogic,
|
|
26
21
|
options?: {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { EventObject, StateValue, MachineContext, ParameterizedObject,
|
|
1
|
+
import type { EventObject, StateValue, MachineContext, ParameterizedObject, AnyMachineSnapshot, NoRequiredParams, NoInfer, WithDynamicParams } from "./types.js";
|
|
2
2
|
export type GuardPredicate<TContext extends MachineContext, TExpressionEvent extends EventObject, TParams extends ParameterizedObject['params'] | undefined, TGuard extends ParameterizedObject> = {
|
|
3
3
|
(args: GuardArgs<TContext, TExpressionEvent>, params: TParams): boolean;
|
|
4
4
|
_out_TGuard?: TGuard;
|
|
@@ -15,5 +15,5 @@ export declare function stateIn<TContext extends MachineContext, TExpressionEven
|
|
|
15
15
|
export declare function not<TContext extends MachineContext, TExpressionEvent extends EventObject, TParams extends ParameterizedObject['params'] | undefined, TGuard extends ParameterizedObject>(guard: Guard<TContext, TExpressionEvent, TParams, NoInfer<TGuard>>): GuardPredicate<TContext, TExpressionEvent, TParams, TGuard>;
|
|
16
16
|
export declare function and<TContext extends MachineContext, TExpressionEvent extends EventObject, TParams extends ParameterizedObject['params'] | undefined, TGuard extends ParameterizedObject>(guards: ReadonlyArray<Guard<TContext, TExpressionEvent, TParams, NoInfer<TGuard>>>): GuardPredicate<TContext, TExpressionEvent, TParams, TGuard>;
|
|
17
17
|
export declare function or<TContext extends MachineContext, TExpressionEvent extends EventObject, TParams extends ParameterizedObject['params'] | undefined, TGuard extends ParameterizedObject>(guards: ReadonlyArray<Guard<TContext, TExpressionEvent, TParams, NoInfer<TGuard>>>): GuardPredicate<TContext, TExpressionEvent, TParams, TGuard>;
|
|
18
|
-
export declare function evaluateGuard<TContext extends MachineContext, TExpressionEvent extends EventObject>(guard: UnknownGuard | UnknownInlineGuard, context: TContext, event: TExpressionEvent, state:
|
|
18
|
+
export declare function evaluateGuard<TContext extends MachineContext, TExpressionEvent extends EventObject>(guard: UnknownGuard | UnknownInlineGuard, context: TContext, event: TExpressionEvent, state: AnyMachineSnapshot): boolean;
|
|
19
19
|
export {};
|
|
@@ -9,7 +9,7 @@ export * from "./types.js";
|
|
|
9
9
|
export { waitFor } from "./waitFor.js";
|
|
10
10
|
import { Actor, createActor, interpret, Interpreter } from "./interpreter.js";
|
|
11
11
|
import { createMachine } from "./Machine.js";
|
|
12
|
-
export { type MachineSnapshot } from "./State.js";
|
|
12
|
+
export { type MachineSnapshot, isMachineSnapshot } from "./State.js";
|
|
13
13
|
import { StateNode } from "./StateNode.js";
|
|
14
14
|
export { matchesState, pathToStateValue, toObserver } from "./utils.js";
|
|
15
15
|
export { Actor, createActor, createMachine, interpret, StateNode, type Interpreter };
|
|
@@ -1,21 +1,16 @@
|
|
|
1
|
-
import { ActorRefFrom, AnyActorScope, AnyActorLogic, AnyActorRef, AnyEventObject,
|
|
2
|
-
|
|
1
|
+
import { ActorRefFrom, AnyActorScope, AnyActorLogic, AnyActorRef, AnyEventObject, AnyMachineSnapshot, InputFrom, IsLiteralString, ProvidedActor, RequiredActorOptions, IsNotNever, ConditionalRequired } from "./types.js";
|
|
2
|
+
type SpawnOptions<TActor extends ProvidedActor, TSrc extends TActor['src']> = TActor extends {
|
|
3
3
|
src: TSrc;
|
|
4
|
-
} ?
|
|
5
|
-
options: {
|
|
6
|
-
id: TActor['id'];
|
|
7
|
-
systemId?: string;
|
|
8
|
-
input?: InputFrom<TActor['logic']>;
|
|
9
|
-
syncSnapshot?: boolean;
|
|
10
|
-
}
|
|
11
|
-
] : [
|
|
4
|
+
} ? ConditionalRequired<[
|
|
12
5
|
options?: {
|
|
13
|
-
id?:
|
|
6
|
+
id?: TActor['id'];
|
|
14
7
|
systemId?: string;
|
|
15
8
|
input?: InputFrom<TActor['logic']>;
|
|
16
9
|
syncSnapshot?: boolean;
|
|
10
|
+
} & {
|
|
11
|
+
[K in RequiredActorOptions<TActor>]: unknown;
|
|
17
12
|
}
|
|
18
|
-
] : never;
|
|
13
|
+
], IsNotNever<RequiredActorOptions<TActor>>> : never;
|
|
19
14
|
export type Spawner<TActor extends ProvidedActor> = IsLiteralString<TActor['src']> extends true ? <TSrc extends TActor['src']>(logic: TSrc, ...[options]: SpawnOptions<TActor, TSrc>) => ActorRefFrom<(TActor & {
|
|
20
15
|
src: TSrc;
|
|
21
16
|
})['logic']> : <TLogic extends AnyActorLogic | string>(src: TLogic, options?: {
|
|
@@ -24,4 +19,5 @@ export type Spawner<TActor extends ProvidedActor> = IsLiteralString<TActor['src'
|
|
|
24
19
|
input?: unknown;
|
|
25
20
|
syncSnapshot?: boolean;
|
|
26
21
|
}) => TLogic extends string ? AnyActorRef : ActorRefFrom<TLogic>;
|
|
27
|
-
export declare function createSpawner(actorScope: AnyActorScope, { machine, context }:
|
|
22
|
+
export declare function createSpawner(actorScope: AnyActorScope, { machine, context }: AnyMachineSnapshot, event: AnyEventObject, spawnedChildren: Record<string, AnyActorRef>): Spawner<any>;
|
|
23
|
+
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MachineSnapshot } from "./State.js";
|
|
2
2
|
import type { StateNode } from "./StateNode.js";
|
|
3
|
-
import { AnyEventObject, AnyHistoryValue,
|
|
3
|
+
import { AnyEventObject, AnyHistoryValue, AnyMachineSnapshot, AnyStateNode, AnyTransitionDefinition, DelayedTransitionDefinition, EventObject, InitialTransitionConfig, InitialTransitionDefinition, MachineContext, StateValue, StateValueMap, TransitionDefinition, TODO, UnknownAction, AnyTransitionConfig, AnyActorScope } from "./types.js";
|
|
4
4
|
type Configuration<TContext extends MachineContext, TE extends EventObject> = Iterable<StateNode<TContext, TE>>;
|
|
5
5
|
type AnyConfiguration = Configuration<any, any>;
|
|
6
6
|
type AdjList = Map<AnyStateNode, Array<AnyStateNode>>;
|
|
@@ -45,9 +45,9 @@ export declare function removeConflictingTransitions(enabledTransitions: Array<A
|
|
|
45
45
|
/**
|
|
46
46
|
* https://www.w3.org/TR/scxml/#microstepProcedure
|
|
47
47
|
*/
|
|
48
|
-
export declare function microstep<TContext extends MachineContext, TEvent extends EventObject>(transitions: Array<AnyTransitionDefinition>, currentState:
|
|
49
|
-
export declare function resolveActionsAndContext(currentState:
|
|
50
|
-
export declare function macrostep(state:
|
|
48
|
+
export declare function microstep<TContext extends MachineContext, TEvent extends EventObject>(transitions: Array<AnyTransitionDefinition>, currentState: AnyMachineSnapshot, actorScope: AnyActorScope, event: AnyEventObject, isInitial: boolean, internalQueue: Array<AnyEventObject>): AnyMachineSnapshot;
|
|
49
|
+
export declare function resolveActionsAndContext(currentState: AnyMachineSnapshot, event: AnyEventObject, actorScope: AnyActorScope, actions: UnknownAction[], internalQueue: AnyEventObject[], deferredActorIds?: string[]): AnyMachineSnapshot;
|
|
50
|
+
export declare function macrostep(state: AnyMachineSnapshot, event: EventObject, actorScope: AnyActorScope, internalQueue?: AnyEventObject[]): {
|
|
51
51
|
state: typeof state;
|
|
52
52
|
microstates: Array<typeof state>;
|
|
53
53
|
};
|
|
@@ -33,6 +33,7 @@ export type NonReducibleUnknown = {} | null | undefined;
|
|
|
33
33
|
export type AnyFunction = (...args: any[]) => any;
|
|
34
34
|
type ReturnTypeOrValue<T> = T extends AnyFunction ? ReturnType<T> : T;
|
|
35
35
|
export type IsNever<T> = [T] extends [never] ? true : false;
|
|
36
|
+
export type IsNotNever<T> = [T] extends [never] ? false : true;
|
|
36
37
|
export type Compute<A extends any> = {
|
|
37
38
|
[K in keyof A]: A[K];
|
|
38
39
|
} & unknown;
|
|
@@ -97,7 +98,7 @@ export interface ChooseBranch<TContext extends MachineContext, TExpressionEvent
|
|
|
97
98
|
export type NoRequiredParams<T extends ParameterizedObject> = T extends any ? {
|
|
98
99
|
type: T['type'];
|
|
99
100
|
} extends T ? T['type'] : never : never;
|
|
100
|
-
type ConditionalRequired<T, Condition extends boolean> = Condition extends true ? Required<T> : T;
|
|
101
|
+
export type ConditionalRequired<T, Condition extends boolean> = Condition extends true ? Required<T> : T;
|
|
101
102
|
export type WithDynamicParams<TContext extends MachineContext, TExpressionEvent extends EventObject, T extends ParameterizedObject> = T extends any ? ConditionalRequired<{
|
|
102
103
|
type: T['type'];
|
|
103
104
|
params?: T['params'] | (({ context, event }: {
|
|
@@ -108,7 +109,7 @@ export type WithDynamicParams<TContext extends MachineContext, TExpressionEvent
|
|
|
108
109
|
export type Action<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TParams extends ParameterizedObject['params'] | undefined, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = NoRequiredParams<TAction> | WithDynamicParams<TContext, TExpressionEvent, TAction> | ActionFunction<TContext, TExpressionEvent, TEvent, TParams, TActor, TAction, TGuard, TDelay>;
|
|
109
110
|
export type UnknownAction = Action<MachineContext, EventObject, EventObject, ParameterizedObject['params'] | undefined, ProvidedActor, ParameterizedObject, ParameterizedObject, string>;
|
|
110
111
|
export type Actions<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TParams extends ParameterizedObject['params'] | undefined, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = SingleOrArray<Action<TContext, TExpressionEvent, TEvent, TParams, TActor, TAction, TGuard, TDelay>>;
|
|
111
|
-
export type StateKey = string |
|
|
112
|
+
export type StateKey = string | AnyMachineSnapshot;
|
|
112
113
|
export interface StateValueMap {
|
|
113
114
|
[key: string]: StateValue;
|
|
114
115
|
}
|
|
@@ -186,6 +187,11 @@ type DistributeActors<TContext extends MachineContext, TEvent extends EventObjec
|
|
|
186
187
|
* The source of the machine to be invoked, or the machine itself.
|
|
187
188
|
*/
|
|
188
189
|
src: TSrc;
|
|
190
|
+
/**
|
|
191
|
+
* The unique identifier for the invoked machine. If not specified, this
|
|
192
|
+
* will be the machine's own `id`, or the URL (from `src`).
|
|
193
|
+
*/
|
|
194
|
+
id?: TSpecificActor['id'];
|
|
189
195
|
input?: Mapper<TContext, TEvent, InputFrom<TSpecificActor['logic']>, TEvent> | InputFrom<TSpecificActor['logic']>;
|
|
190
196
|
/**
|
|
191
197
|
* The transition to take upon the invoked child machine reaching its final top-level state.
|
|
@@ -196,19 +202,9 @@ type DistributeActors<TContext extends MachineContext, TEvent extends EventObjec
|
|
|
196
202
|
*/
|
|
197
203
|
onError?: string | SingleOrArray<TransitionConfigOrTarget<TContext, ErrorActorEvent, TEvent, TActor, TAction, TGuard, TDelay>>;
|
|
198
204
|
onSnapshot?: string | SingleOrArray<TransitionConfigOrTarget<TContext, SnapshotEvent<SnapshotFrom<TSpecificActor['logic']>>, TEvent, TActor, TAction, TGuard, TDelay>>;
|
|
199
|
-
} &
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
* will be the machine's own `id`, or the URL (from `src`).
|
|
203
|
-
*/
|
|
204
|
-
id: TSpecificActor['id'];
|
|
205
|
-
} : {
|
|
206
|
-
/**
|
|
207
|
-
* The unique identifier for the invoked machine. If not specified, this
|
|
208
|
-
* will be the machine's own `id`, or the URL (from `src`).
|
|
209
|
-
*/
|
|
210
|
-
id?: string;
|
|
211
|
-
})> : never;
|
|
205
|
+
} & {
|
|
206
|
+
[K in RequiredActorOptions<TSpecificActor>]: unknown;
|
|
207
|
+
}> : never;
|
|
212
208
|
export type InvokeConfig<TContext extends MachineContext, TEvent extends EventObject, TActor extends ProvidedActor, TAction extends ParameterizedObject, TGuard extends ParameterizedObject, TDelay extends string> = IsLiteralString<TActor['src']> extends true ? DistributeActors<TContext, TEvent, TActor, TAction, TGuard, TDelay, TActor> : {
|
|
213
209
|
/**
|
|
214
210
|
* The unique identifier for the invoked machine. If not specified, this
|
|
@@ -347,7 +343,9 @@ export interface StateMachineDefinition<TContext extends MachineContext, TEvent
|
|
|
347
343
|
}
|
|
348
344
|
export type AnyStateNode = StateNode<any, any>;
|
|
349
345
|
export type AnyStateNodeDefinition = StateNodeDefinition<any, any>;
|
|
350
|
-
export type
|
|
346
|
+
export type AnyMachineSnapshot = MachineSnapshot<any, any, any, any, any, any>;
|
|
347
|
+
/** @deprecated use `AnyMachineSnapshot` instead */
|
|
348
|
+
export type AnyState = AnyMachineSnapshot;
|
|
351
349
|
export type AnyStateMachine = StateMachine<any, any, any, any, any, any, any, any, any, // delays
|
|
352
350
|
any>;
|
|
353
351
|
export type AnyStateConfig = StateConfig<any, AnyEventObject>;
|
|
@@ -850,4 +848,5 @@ export interface ActorSystem<T extends ActorSystemInfo> {
|
|
|
850
848
|
inspect: (observer: Observer<InspectionEvent>) => void;
|
|
851
849
|
}
|
|
852
850
|
export type AnyActorSystem = ActorSystem<any>;
|
|
851
|
+
export type RequiredActorOptions<TActor extends ProvidedActor> = ('id' extends keyof TActor ? 'id' : never) | (undefined extends InputFrom<TActor['logic']> ? never : 'input');
|
|
853
852
|
export {};
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import { AnyState } from "./index.js";
|
|
2
1
|
import type { StateNode } from "./StateNode.js";
|
|
3
2
|
import type { ActorLogic, AnyEventObject, EventObject, MachineContext, Mapper, Observer, ErrorActorEvent, SingleOrArray, StateLike, StateValue, Subscribable, TransitionConfigTarget, AnyActorRef, AnyTransitionConfig, NonReducibleUnknown, AnyStateMachine } from "./types.js";
|
|
4
3
|
export declare function keys<T extends object>(value: T): Array<keyof T & string>;
|
|
5
4
|
export declare function matchesState(parentStateId: StateValue, childStateId: StateValue): boolean;
|
|
6
5
|
export declare function toStatePath(stateId: string | string[]): string[];
|
|
7
|
-
export declare function
|
|
8
|
-
export declare function toStateValue(stateValue: StateLike<any> | StateValue | string[]): StateValue;
|
|
6
|
+
export declare function toStateValue(stateValue: StateLike<any> | StateValue): StateValue;
|
|
9
7
|
export declare function pathToStateValue(statePath: string[]): StateValue;
|
|
10
8
|
export declare function mapValues<P, O extends Record<string, unknown>>(collection: O, iteratee: (item: O[keyof O], key: keyof O, collection: O, i: number) => P): {
|
|
11
9
|
[key in keyof O]: P;
|