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.
Files changed (46) hide show
  1. package/actions/dist/xstate-actions.cjs.js +2 -3
  2. package/actions/dist/xstate-actions.development.cjs.js +2 -3
  3. package/actions/dist/xstate-actions.development.esm.js +2 -3
  4. package/actions/dist/xstate-actions.esm.js +2 -3
  5. package/actions/dist/xstate-actions.umd.min.js +1 -1
  6. package/actions/dist/xstate-actions.umd.min.js.map +1 -1
  7. package/actors/dist/xstate-actors.cjs.js +6 -6
  8. package/actors/dist/xstate-actors.development.cjs.js +6 -6
  9. package/actors/dist/xstate-actors.development.esm.js +1 -1
  10. package/actors/dist/xstate-actors.esm.js +1 -1
  11. package/actors/dist/xstate-actors.umd.min.js +1 -1
  12. package/actors/dist/xstate-actors.umd.min.js.map +1 -1
  13. package/dist/declarations/src/State.d.ts +3 -7
  14. package/dist/declarations/src/actions/spawn.d.ts +11 -16
  15. package/dist/declarations/src/guards.d.ts +2 -2
  16. package/dist/declarations/src/index.d.ts +1 -1
  17. package/dist/declarations/src/spawn.d.ts +9 -13
  18. package/dist/declarations/src/stateUtils.d.ts +4 -4
  19. package/dist/declarations/src/types.d.ts +15 -16
  20. package/dist/declarations/src/utils.d.ts +1 -3
  21. package/dist/{raise-e0fe5c2d.cjs.js → raise-348cc74e.development.esm.js} +946 -68
  22. package/dist/{raise-f4ad5a87.development.esm.js → raise-5854eaca.esm.js} +860 -49
  23. package/dist/{raise-23dea0d7.development.cjs.js → raise-ed700d14.development.cjs.js} +922 -36
  24. package/dist/{raise-8dc8e1aa.esm.js → raise-fb6f017b.cjs.js} +907 -2
  25. package/dist/{send-0174c155.development.cjs.js → send-00466e37.development.cjs.js} +11 -12
  26. package/dist/{send-87bbaaab.cjs.js → send-53e5693c.cjs.js} +11 -12
  27. package/dist/{send-5d129d95.development.esm.js → send-a0193bdb.development.esm.js} +2 -3
  28. package/dist/{send-84e2e742.esm.js → send-b7b4befa.esm.js} +2 -3
  29. package/dist/xstate.cjs.js +25 -25
  30. package/dist/xstate.cjs.mjs +1 -0
  31. package/dist/xstate.development.cjs.js +25 -25
  32. package/dist/xstate.development.cjs.mjs +1 -0
  33. package/dist/xstate.development.esm.js +4 -6
  34. package/dist/xstate.esm.js +4 -6
  35. package/dist/xstate.umd.min.js +1 -1
  36. package/dist/xstate.umd.min.js.map +1 -1
  37. package/guards/dist/xstate-guards.cjs.js +1 -2
  38. package/guards/dist/xstate-guards.development.cjs.js +1 -2
  39. package/guards/dist/xstate-guards.development.esm.js +1 -2
  40. package/guards/dist/xstate-guards.esm.js +1 -2
  41. package/guards/dist/xstate-guards.umd.min.js.map +1 -1
  42. package/package.json +1 -1
  43. package/dist/interpreter-36d5556e.cjs.js +0 -887
  44. package/dist/interpreter-4e8e2a0d.development.cjs.js +0 -898
  45. package/dist/interpreter-63c80754.esm.js +0 -857
  46. 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
- type DistributeActors<TContext extends MachineContext, TExpressionEvent extends EventObject, TEvent extends EventObject, TActor extends ProvidedActor> = TActor extends any ? 'id' extends keyof TActor ? [
8
- src: TActor['src'],
9
- options: {
10
- id: ResolvableActorId<TContext, TExpressionEvent, TEvent, TActor['id']>;
11
- systemId?: string;
12
- input?: Mapper<TContext, TEvent, InputFrom<TActor['logic']>, TEvent> | InputFrom<TActor['logic']>;
13
- syncSnapshot?: boolean;
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
- id?: ResolvableActorId<TContext, TExpressionEvent, TEvent, string>;
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, AnyState, NoRequiredParams, NoInfer, WithDynamicParams } from "./types.js";
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: AnyState): boolean;
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, AnyState, InputFrom, IsLiteralString, ProvidedActor } from "./types.js";
2
- export type SpawnOptions<TActor extends ProvidedActor, TSrc extends TActor['src']> = TActor extends {
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
- } ? 'id' extends keyof TActor ? [
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?: string;
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 }: AnyState, event: AnyEventObject, spawnedChildren: Record<string, AnyActorRef>): Spawner<any>;
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, AnyState, AnyStateNode, AnyTransitionDefinition, DelayedTransitionDefinition, EventObject, InitialTransitionConfig, InitialTransitionDefinition, MachineContext, StateValue, StateValueMap, TransitionDefinition, TODO, UnknownAction, AnyTransitionConfig, AnyActorScope } from "./types.js";
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: AnyState, actorScope: AnyActorScope, event: AnyEventObject, isInitial: boolean, internalQueue: Array<AnyEventObject>): AnyState;
49
- export declare function resolveActionsAndContext(currentState: AnyState, event: AnyEventObject, actorScope: AnyActorScope, actions: UnknownAction[], internalQueue: AnyEventObject[], deferredActorIds?: string[]): AnyState;
50
- export declare function macrostep(state: AnyState, event: EventObject, actorScope: AnyActorScope, internalQueue?: AnyEventObject[]): {
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 | AnyState;
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
- } & (TSpecificActor['id'] extends string ? {
200
- /**
201
- * The unique identifier for the invoked machine. If not specified, this
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 AnyState = MachineSnapshot<any, any, any, any, any, any>;
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 isStateLike(state: any): state is AnyState;
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;