xstate 4.26.0-pr2674-202191175724 → 4.27.0-pr2674-2021926101023

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/lib/Machine.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Model } from './model.types';
2
- import { AnyEventObject, BaseActionObject, DefaultContext, EventObject, MachineConfig, MachineOptions, StateMachine, StateSchema, Typestate } from './types';
3
- import { MaybeTypegenMachineOptions, TypegenConstraint, TypegenDisabled, ResolveTypegenMeta } from './typegenTypes';
2
+ import { AnyEventObject, BaseActionObject, DefaultContext, EventObject, MachineConfig, MachineOptions, InternalMachineOptions, StateMachine, StateSchema, Typestate } from './types';
3
+ import { TypegenConstraint, TypegenDisabled, ResolveTypegenMeta } from './typegenTypes';
4
4
  /**
5
5
  * @deprecated Use `createMachine(...)` instead.
6
6
  */
@@ -9,5 +9,5 @@ export declare function Machine<TContext = DefaultContext, TStateSchema extends
9
9
  export declare function createMachine<TContext, TEvent extends EventObject = AnyEventObject, TTypestate extends Typestate<TContext> = {
10
10
  value: any;
11
11
  context: TContext;
12
- }, TTypesMeta extends TypegenConstraint = TypegenDisabled, TResolvedTypesMeta = ResolveTypegenMeta<TTypesMeta, TEvent, BaseActionObject>>(config: TContext extends Model<any, any, any, any> ? 'Model type no longer supported as generic type. Please use `model.createMachine(...)` instead.' : MachineConfig<TContext, any, TEvent, BaseActionObject, TTypesMeta>, options?: MaybeTypegenMachineOptions<TContext, TEvent, BaseActionObject, TResolvedTypesMeta>): StateMachine<TContext, any, TEvent, any, BaseActionObject, TResolvedTypesMeta>;
12
+ }, TTypesMeta extends TypegenConstraint = TypegenDisabled>(config: TContext extends Model<any, any, any, any> ? 'Model type no longer supported as generic type. Please use `model.createMachine(...)` instead.' : MachineConfig<TContext, any, TEvent, BaseActionObject, TTypesMeta>, options?: InternalMachineOptions<TContext, TEvent, ResolveTypegenMeta<TTypesMeta, TEvent, BaseActionObject>>): StateMachine<TContext, any, TEvent, any, BaseActionObject, ResolveTypegenMeta<TTypesMeta, TEvent, BaseActionObject>>;
13
13
  //# sourceMappingURL=Machine.d.ts.map
@@ -1,6 +1,6 @@
1
- import { Event, StateValue, MachineOptions, EventObject, HistoryValue, StateNodeDefinition, TransitionDefinition, DelayedTransitionDefinition, ActivityDefinition, StateNodeConfig, StateSchema, StateNodesConfig, InvokeDefinition, ActionObject, Mapper, PropertyMapper, SCXML, Typestate, TransitionDefinitionMap, MachineSchema, BaseActionObject } from './types';
1
+ import { Event, StateValue, MachineOptions, EventObject, HistoryValue, StateNodeDefinition, TransitionDefinition, DelayedTransitionDefinition, ActivityDefinition, StateNodeConfig, StateSchema, StateNodesConfig, InvokeDefinition, ActionObject, Mapper, PropertyMapper, SCXML, Typestate, TransitionDefinitionMap, MachineSchema, InternalMachineOptions } from './types';
2
2
  import { State } from './State';
3
- import { MaybeTypegenMachineOptions, TypegenDisabled } from './typegenTypes';
3
+ import { TypegenDisabled } from './typegenTypes';
4
4
  declare class StateNode<TContext = any, TStateSchema extends StateSchema = any, TEvent extends EventObject = EventObject, TTypestate extends Typestate<TContext> = {
5
5
  value: any;
6
6
  context: TContext;
@@ -124,7 +124,11 @@ declare class StateNode<TContext = any, TStateSchema extends StateSchema = any,
124
124
  /**
125
125
  * The initial extended state
126
126
  */
127
- _context?: Readonly<TContext> | (() => Readonly<TContext>));
127
+ _context?: Readonly<TContext> | (() => Readonly<TContext>), // TODO: this is unsafe, but we're removing it in v5 anyway
128
+ _stateInfo?: {
129
+ parent: StateNode<any, any, any, any, any>;
130
+ key: string;
131
+ });
128
132
  private _init;
129
133
  /**
130
134
  * Clones this state machine with custom options and context.
@@ -132,7 +136,7 @@ declare class StateNode<TContext = any, TStateSchema extends StateSchema = any,
132
136
  * @param options Options (actions, guards, activities, services) to recursively merge with the existing options.
133
137
  * @param context Custom context (will override predefined context)
134
138
  */
135
- withConfig(options: MaybeTypegenMachineOptions<TContext, TEvent, BaseActionObject, TResolvedTypesMeta, true>, context?: TContext | (() => TContext)): StateNode<TContext, TStateSchema, TEvent, TTypestate, TResolvedTypesMeta>;
139
+ withConfig(options: InternalMachineOptions<TContext, TEvent, TResolvedTypesMeta, true>, context?: TContext | (() => TContext)): StateNode<TContext, TStateSchema, TEvent, TTypestate, TResolvedTypesMeta>;
136
140
  /**
137
141
  * Clones this state machine with custom context.
138
142
  *
package/lib/StateNode.js CHANGED
@@ -54,8 +54,8 @@ function () {
54
54
  /**
55
55
  * The initial extended state
56
56
  */
57
- _context // TODO: this is unsafe, but we're removing it in v5 anyway
58
- ) {
57
+ _context, // TODO: this is unsafe, but we're removing it in v5 anyway
58
+ _stateInfo) {
59
59
  var _this = this;
60
60
 
61
61
  if (_context === void 0) {
@@ -85,8 +85,8 @@ function () {
85
85
  this.idMap = {};
86
86
  this.tags = [];
87
87
  this.options = Object.assign(createDefaultOptions(), options);
88
- this.parent = this.options._parent;
89
- this.key = this.config.key || this.options._key || this.config.id || '(machine)';
88
+ this.parent = _stateInfo === null || _stateInfo === void 0 ? void 0 : _stateInfo.parent;
89
+ this.key = this.config.key || (_stateInfo === null || _stateInfo === void 0 ? void 0 : _stateInfo.key) || this.config.id || '(machine)';
90
90
  this.machine = this.parent ? this.parent.machine : this;
91
91
  this.path = this.parent ? this.parent.path.concat(this.key) : [];
92
92
  this.delimiter = this.config.delimiter || (this.parent ? this.parent.delimiter : constants.STATE_DELIMITER);
@@ -104,9 +104,9 @@ function () {
104
104
  this.states = this.config.states ? utils.mapValues(this.config.states, function (stateConfig, key) {
105
105
  var _a;
106
106
 
107
- var stateNode = new StateNode(stateConfig, {
108
- _parent: _this,
109
- _key: key
107
+ var stateNode = new StateNode(stateConfig, {}, undefined, {
108
+ parent: _this,
109
+ key: key
110
110
  });
111
111
  Object.assign(_this.idMap, _tslib.__assign((_a = {}, _a[stateNode.id] = stateNode, _a), stateNode.idMap));
112
112
  return stateNode;
@@ -273,7 +273,8 @@ function () {
273
273
  order: this.order || -1,
274
274
  data: this.doneData,
275
275
  invoke: this.invoke,
276
- description: this.description
276
+ description: this.description,
277
+ tags: this.tags
277
278
  };
278
279
  },
279
280
  enumerable: false,
@@ -447,7 +448,8 @@ function () {
447
448
  return new State.State(_tslib.__assign(_tslib.__assign({}, state), {
448
449
  value: this.resolve(state.value),
449
450
  configuration: configuration,
450
- done: stateUtils.isInFinalState(configuration, this)
451
+ done: stateUtils.isInFinalState(configuration, this),
452
+ tags: stateUtils.getTagsFromConfiguration(configuration)
451
453
  }));
452
454
  };
453
455
 
@@ -980,9 +982,7 @@ function () {
980
982
  maybeNextState.changed = changed; // Preserve original history after raised events
981
983
 
982
984
  maybeNextState.history = history;
983
- maybeNextState.tags = new Set(utils.flatten(maybeNextState.configuration.map(function (sn) {
984
- return sn.tags;
985
- })));
985
+ maybeNextState.tags = stateUtils.getTagsFromConfiguration(maybeNextState.configuration);
986
986
  return maybeNextState;
987
987
  };
988
988
  /**
package/lib/actions.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Action, Event, EventObject, SingleOrArray, SendAction, SendActionOptions, CancelAction, ActionObject, ActionType, Assigner, PropertyAssigner, AssignAction, ActionFunction, ActionFunctionMap, ActivityActionObject, ActionTypes, ActivityDefinition, RaiseAction, RaiseActionObject, DoneEvent, ErrorPlatformEvent, DoneEventObject, SendExpr, SendActionObject, PureAction, LogExpr, LogAction, LogActionObject, DelayFunctionMap, SCXML, ExprWithMeta, ChooseConditon, ChooseAction, AnyEventObject, Expr, StopAction, StopActionObject } from './types';
1
+ import { Action, Event, EventObject, SingleOrArray, SendAction, SendActionOptions, CancelAction, ActionObject, ActionType, Assigner, PropertyAssigner, AssignAction, ActionFunction, ActionFunctionMap, ActivityActionObject, ActionTypes, ActivityDefinition, RaiseAction, RaiseActionObject, DoneEvent, ErrorPlatformEvent, DoneEventObject, SendExpr, SendActionObject, PureAction, LogExpr, LogAction, LogActionObject, DelayFunctionMap, SCXML, ExprWithMeta, ChooseCondition, ChooseAction, AnyEventObject, Expr, StopAction, StopActionObject } from './types';
2
2
  import * as actionTypes from './actionTypes';
3
3
  import { State } from './State';
4
4
  import { StateNode } from './StateNode';
@@ -133,6 +133,6 @@ export declare function forwardTo<TContext, TEvent extends EventObject>(target:
133
133
  * @param options Options to pass into the send action creator.
134
134
  */
135
135
  export declare function escalate<TContext, TEvent extends EventObject, TErrorData = any>(errorData: TErrorData | ExprWithMeta<TContext, TEvent, TErrorData>, options?: SendActionOptions<TContext, TEvent>): SendAction<TContext, TEvent, AnyEventObject>;
136
- export declare function choose<TContext, TEvent extends EventObject>(conds: Array<ChooseConditon<TContext, TEvent>>): ChooseAction<TContext, TEvent>;
136
+ export declare function choose<TContext, TEvent extends EventObject>(conds: Array<ChooseCondition<TContext, TEvent>>): ChooseAction<TContext, TEvent>;
137
137
  export declare function resolveActions<TContext, TEvent extends EventObject>(machine: StateNode<TContext, any, TEvent, any, any>, currentState: State<TContext, TEvent> | undefined, currentContext: TContext, _event: SCXML.Event<TEvent>, actions: Array<ActionObject<TContext, TEvent>>, preserveActionOrder?: boolean): [Array<ActionObject<TContext, TEvent>>, TContext];
138
138
  //# sourceMappingURL=actions.d.ts.map
@@ -843,7 +843,8 @@ function () {
843
843
 
844
844
  var source = utils.isFunction(serviceCreator) ? serviceCreator(context, _event.data, {
845
845
  data: resolvedData,
846
- src: invokeSource
846
+ src: invokeSource,
847
+ meta: activity.meta
847
848
  }) : serviceCreator;
848
849
 
849
850
  if (!source) {
@@ -1,5 +1,5 @@
1
- import { AnyFunction, AssignAction, Assigner, BaseActionObject, Compute, EventObject, ExtractEvent, MachineConfig, Prop, PropertyAssigner, StateMachine } from './types';
2
- import { MaybeTypegenMachineOptions, ResolveTypegenMeta, TypegenConstraint, TypegenDisabled } from './typegenTypes';
1
+ import { AnyFunction, AssignAction, Assigner, BaseActionObject, Compute, EventObject, ExtractEvent, MachineConfig, Prop, PropertyAssigner, StateMachine, InternalMachineOptions } from './types';
2
+ import { ResolveTypegenMeta, TypegenConstraint, TypegenDisabled } from './typegenTypes';
3
3
  export interface Model<TContext, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject, TModelCreators = void> {
4
4
  initialContext: TContext;
5
5
  assign: <TEventType extends TEvent['type'] = TEvent['type']>(assigner: Assigner<TContext, ExtractEvent<TEvent, TEventType>> | PropertyAssigner<TContext, ExtractEvent<TEvent, TEventType>>, eventType?: TEventType) => AssignAction<TContext, ExtractEvent<TEvent, TEventType>>;
@@ -7,7 +7,7 @@ export interface Model<TContext, TEvent extends EventObject, TAction extends Bas
7
7
  actions: Prop<TModelCreators, 'actions'>;
8
8
  reset: () => AssignAction<TContext, any>;
9
9
  createMachine: {
10
- <TTypesMeta extends TypegenConstraint = TypegenDisabled>(config: MachineConfig<TContext, any, TEvent, TAction, TTypesMeta>, implementations?: MaybeTypegenMachineOptions<TContext, TEvent, TAction, ResolveTypegenMeta<TTypesMeta, TEvent, TAction>>): StateMachine<TContext, any, TEvent, {
10
+ <TTypesMeta extends TypegenConstraint = TypegenDisabled>(config: MachineConfig<TContext, any, TEvent, TAction, TTypesMeta>, implementations?: InternalMachineOptions<TContext, TEvent, ResolveTypegenMeta<TTypesMeta, TEvent, TAction>>): StateMachine<TContext, any, TEvent, {
11
11
  value: any;
12
12
  context: TContext;
13
13
  }, TAction, ResolveTypegenMeta<TTypesMeta, TEvent, TAction>>;
@@ -12,5 +12,6 @@ export declare function has<T>(iterable: Iterable<T>, item: T): boolean;
12
12
  export declare function nextEvents<TC, TE extends EventObject>(configuration: Array<StateNode<TC, any, TE>>): Array<TE['type']>;
13
13
  export declare function isInFinalState<TC, TE extends EventObject>(configuration: Array<StateNode<TC, any, TE, any, any>>, stateNode: StateNode<TC, any, TE, any, any>): boolean;
14
14
  export declare function getMeta(configuration?: StateNode[]): Record<string, any>;
15
+ export declare function getTagsFromConfiguration(configuration: StateNode<any, any, any, any>[]): Set<string>;
15
16
  export {};
16
17
  //# sourceMappingURL=stateUtils.d.ts.map
package/lib/stateUtils.js CHANGED
@@ -256,12 +256,18 @@ function getMeta(configuration) {
256
256
  return acc;
257
257
  }, {});
258
258
  }
259
+ function getTagsFromConfiguration(configuration) {
260
+ return new Set(utils.flatten(configuration.map(function (sn) {
261
+ return sn.tags;
262
+ })));
263
+ }
259
264
 
260
265
  exports.getAdjList = getAdjList;
261
266
  exports.getAllStateNodes = getAllStateNodes;
262
267
  exports.getChildren = getChildren;
263
268
  exports.getConfiguration = getConfiguration;
264
269
  exports.getMeta = getMeta;
270
+ exports.getTagsFromConfiguration = getTagsFromConfiguration;
265
271
  exports.getValue = getValue;
266
272
  exports.has = has;
267
273
  exports.isInFinalState = isInFinalState;
@@ -38,10 +38,24 @@ export declare type MarkAllImplementationsAsProvided<TResolvedTypesMeta> = TReso
38
38
  };
39
39
  };
40
40
  declare type MergeWithInternalEvents<TIndexedEvents, TInternalEvents> = TIndexedEvents & Pick<TInternalEvents, Exclude<keyof TInternalEvents, keyof TIndexedEvents>>;
41
+ declare type AllowAllEvents = {
42
+ eventsCausingActions: Record<string, string>;
43
+ eventsCausingDelays: Record<string, string>;
44
+ eventsCausingGuards: Record<string, string>;
45
+ eventsCausingServices: Record<string, string>;
46
+ };
41
47
  export declare type ResolveTypegenMeta<TTypesMeta extends TypegenConstraint, TEvent extends EventObject, TAction extends BaseActionObject> = TTypesMeta extends TypegenEnabled ? TTypesMeta & {
42
48
  indexedActions: IndexByType<TAction>;
43
49
  indexedEvents: MergeWithInternalEvents<IndexByType<TEvent>, Prop<TTypesMeta, 'internalEvents'>>;
44
- } : TypegenDisabled;
50
+ } : MarkAllImplementationsAsProvided<TypegenDisabled> & AllowAllEvents & {
51
+ indexedActions: IndexByType<TAction>;
52
+ indexedEvents: Record<string, TEvent> & {
53
+ __XSTATE_ALLOW_ANY_INVOKE_DATA_HACK__: {
54
+ data: any;
55
+ };
56
+ };
57
+ invokeSrcNameMap: Record<string, '__XSTATE_ALLOW_ANY_INVOKE_DATA_HACK__'>;
58
+ };
45
59
  export declare type TypegenMachineOptionsActions<TContext, TResolvedTypesMeta, TEventsCausingActions = Prop<TResolvedTypesMeta, 'eventsCausingActions'>, TIndexedEvents = Prop<TResolvedTypesMeta, 'indexedEvents'>, TIndexedActions = Prop<TResolvedTypesMeta, 'indexedActions'>> = {
46
60
  [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>>;
47
61
  };
package/lib/types.d.ts CHANGED
@@ -2,7 +2,7 @@ import { Clock, Interpreter } from './interpreter';
2
2
  import { Model } from './model.types';
3
3
  import { State } from './State';
4
4
  import { StateNode } from './StateNode';
5
- import { MarkAllImplementationsAsProvided, MaybeTypegenMachineOptions, TypegenDisabled } from './typegenTypes';
5
+ import { MarkAllImplementationsAsProvided, TypegenDisabled, ResolveTypegenMeta, TypegenConstraint } from './typegenTypes';
6
6
  export declare type AnyFunction = (...args: any[]) => any;
7
7
  declare type ReturnTypeOrValue<T> = T extends AnyFunction ? ReturnType<T> : T;
8
8
  export declare type IsNever<T> = [T] extends [never] ? true : false;
@@ -69,8 +69,10 @@ export interface AssignMeta<TContext, TEvent extends EventObject> {
69
69
  action: AssignAction<TContext, TEvent>;
70
70
  _event: SCXML.Event<TEvent>;
71
71
  }
72
- export declare type ActionFunction<TContext, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject> = (context: TContext, event: TEvent, meta: ActionMeta<TContext, TEvent, TAction>) => void;
73
- export interface ChooseConditon<TContext, TEvent extends EventObject> {
72
+ export declare type ActionFunction<TContext, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject> = {
73
+ bivarianceHack(context: TContext, event: TEvent, meta: ActionMeta<TContext, TEvent, TAction>): void;
74
+ }['bivarianceHack'];
75
+ export interface ChooseCondition<TContext, TEvent extends EventObject> {
74
76
  cond?: Condition<TContext, TEvent>;
75
77
  actions: Actions<TContext, TEvent>;
76
78
  }
@@ -174,6 +176,7 @@ export declare type InvokeCallback<TEvent extends EventObject = AnyEventObject,
174
176
  export interface InvokeMeta {
175
177
  data: any;
176
178
  src: InvokeSourceDefinition;
179
+ meta?: MetaObject;
177
180
  }
178
181
  /**
179
182
  * Returns either a Promises or a callback handler (for streams of events) given the
@@ -213,6 +216,7 @@ export interface InvokeDefinition<TContext, TEvent extends EventObject> extends
213
216
  * Data should be mapped to match the child machine's context shape.
214
217
  */
215
218
  data?: Mapper<TContext, TEvent, any> | PropertyMapper<TContext, TEvent, any>;
219
+ meta?: MetaObject;
216
220
  }
217
221
  export interface Delay {
218
222
  id: string;
@@ -295,6 +299,10 @@ export interface InvokeConfig<TContext, TEvent extends EventObject> {
295
299
  * The transition to take upon the invoked child machine sending an error event.
296
300
  */
297
301
  onError?: string | SingleOrArray<TransitionConfig<TContext, DoneInvokeEvent<any>>>;
302
+ /**
303
+ * Meta data related to this invocation
304
+ */
305
+ meta?: MetaObject;
298
306
  }
299
307
  export interface StateNodeConfig<TContext, TStateSchema extends StateSchema, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject> {
300
308
  /**
@@ -450,6 +458,7 @@ export interface StateNodeDefinition<TContext, TStateSchema extends StateSchema,
450
458
  data?: FinalStateNodeConfig<TContext, TEvent>['data'];
451
459
  invoke: Array<InvokeDefinition<TContext, TEvent>>;
452
460
  description?: string;
461
+ tags: string[];
453
462
  }
454
463
  export declare type AnyStateNodeDefinition = StateNodeDefinition<any, any, any>;
455
464
  export interface AtomicStateNodeConfig<TContext, TEvent extends EventObject> extends StateNodeConfig<TContext, StateSchema, TEvent> {
@@ -479,24 +488,43 @@ export declare type ActionFunctionMap<TContext, TEvent extends EventObject, TAct
479
488
  export declare type DelayFunctionMap<TContext, TEvent extends EventObject> = Record<string, DelayConfig<TContext, TEvent>>;
480
489
  export declare type ServiceConfig<TContext, TEvent extends EventObject = AnyEventObject> = string | StateMachine<any, any, any> | InvokeCreator<TContext, TEvent>;
481
490
  export declare type DelayConfig<TContext, TEvent extends EventObject> = number | DelayExpr<TContext, TEvent>;
482
- export interface MachineOptions<TContext, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject> {
483
- guards?: Record<string, ConditionPredicate<TContext, TEvent>>;
484
- actions?: ActionFunctionMap<TContext, TEvent, TAction>;
491
+ declare type MachineOptionsActions<TContext, TResolvedTypesMeta, TEventsCausingActions = Prop<TResolvedTypesMeta, 'eventsCausingActions'>, TIndexedEvents = Prop<TResolvedTypesMeta, 'indexedEvents'>, TIndexedActions = Prop<TResolvedTypesMeta, 'indexedActions'>> = {
492
+ [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>>;
493
+ };
494
+ declare type MachineOptionsDelays<TContext, TResolvedTypesMeta, TEventsCausingDelays = Prop<TResolvedTypesMeta, 'eventsCausingDelays'>, TIndexedEvents = Prop<TResolvedTypesMeta, 'indexedEvents'>> = {
495
+ [K in keyof TEventsCausingDelays]?: DelayConfig<TContext, Cast<Prop<TIndexedEvents, TEventsCausingDelays[K]>, EventObject>>;
496
+ };
497
+ declare type MachineOptionsGuards<TContext, TResolvedTypesMeta, TEventsCausingGuards = Prop<TResolvedTypesMeta, 'eventsCausingGuards'>, TIndexedEvents = Prop<TResolvedTypesMeta, 'indexedEvents'>> = {
498
+ [K in keyof TEventsCausingGuards]?: ConditionPredicate<TContext, Cast<Prop<TIndexedEvents, TEventsCausingGuards[K]>, EventObject>>;
499
+ };
500
+ declare type MachineOptionsServices<TContext, TResolvedTypesMeta, TEventsCausingServices = Prop<TResolvedTypesMeta, 'eventsCausingServices'>, TIndexedEvents = Prop<TResolvedTypesMeta, 'indexedEvents'>, TInvokeSrcNameMap = Prop<TResolvedTypesMeta, 'invokeSrcNameMap'>> = {
501
+ [K in keyof TEventsCausingServices]?: StateMachine<any, any, any> | InvokeCreator<TContext, Cast<Prop<TIndexedEvents, TEventsCausingServices[K]>, EventObject>, Prop<Prop<TIndexedEvents, Prop<TInvokeSrcNameMap, K>>, 'data'>>;
502
+ };
503
+ declare type MakeKeysRequired<T extends string> = {
504
+ [K in T]: unknown;
505
+ };
506
+ declare type MaybeMakeMissingImplementationsRequired<TImplementationType, TMissingImplementationsForType, TRequireMissingImplementations> = TRequireMissingImplementations extends true ? IsNever<TMissingImplementationsForType> extends true ? {} : {
507
+ [K in Cast<TImplementationType, string>]: MakeKeysRequired<Cast<TMissingImplementationsForType, string>>;
508
+ } : {};
509
+ declare type GenerateActionsConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> = MaybeMakeMissingImplementationsRequired<'actions', Prop<TMissingImplementations, 'actions'>, TRequireMissingImplementations> & {
510
+ actions?: MachineOptionsActions<TContext, TResolvedTypesMeta>;
511
+ };
512
+ declare type GenerateDelaysConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> = MaybeMakeMissingImplementationsRequired<'delays', Prop<TMissingImplementations, 'delays'>, TRequireMissingImplementations> & {
513
+ delays?: MachineOptionsDelays<TContext, TResolvedTypesMeta>;
514
+ };
515
+ declare type GenerateGuardsConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> = MaybeMakeMissingImplementationsRequired<'guards', Prop<TMissingImplementations, 'guards'>, TRequireMissingImplementations> & {
516
+ guards?: MachineOptionsGuards<TContext, TResolvedTypesMeta>;
517
+ };
518
+ declare type GenerateServicesConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> = MaybeMakeMissingImplementationsRequired<'services', Prop<TMissingImplementations, 'services'>, TRequireMissingImplementations> & {
519
+ services?: MachineOptionsServices<TContext, TResolvedTypesMeta>;
520
+ };
521
+ export declare type InternalMachineOptions<TContext, TEvent extends EventObject, TResolvedTypesMeta, TRequireMissingImplementations extends boolean = false, TMissingImplementations = Prop<TResolvedTypesMeta, 'missingImplementations'>> = GenerateActionsConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & GenerateDelaysConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & GenerateGuardsConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & GenerateServicesConfigPart<TContext, TResolvedTypesMeta, TRequireMissingImplementations, TMissingImplementations> & {
485
522
  /**
486
523
  * @deprecated Use `services` instead.
487
524
  */
488
525
  activities?: Record<string, ActivityConfig<TContext, TEvent>>;
489
- services?: Record<string, ServiceConfig<TContext, TEvent>>;
490
- delays?: DelayFunctionMap<TContext, TEvent>;
491
- /**
492
- * @private
493
- */
494
- _parent?: StateNode<TContext, any, TEvent, any, any>;
495
- /**
496
- * @private
497
- */
498
- _key?: string;
499
- }
526
+ };
527
+ export declare type MachineOptions<TContext, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject, TTypesMeta extends TypegenConstraint = TypegenDisabled> = InternalMachineOptions<TContext, TEvent, ResolveTypegenMeta<TTypesMeta, TEvent, TAction>>;
500
528
  export interface MachineConfig<TContext, TStateSchema extends StateSchema, TEvent extends EventObject, TAction extends BaseActionObject = BaseActionObject, TTypesMeta = TypegenDisabled> extends StateNodeConfig<TContext, TStateSchema, TEvent, TAction> {
501
529
  /**
502
530
  * The initial context (extended state)
@@ -545,8 +573,14 @@ export interface StateMachine<TContext, TStateSchema extends StateSchema, TEvent
545
573
  }, TAction extends BaseActionObject = BaseActionObject, TResolvedTypesMeta = TypegenDisabled> extends StateNode<TContext, TStateSchema, TEvent, TTypestate, TResolvedTypesMeta> {
546
574
  id: string;
547
575
  states: StateNode<TContext, TStateSchema, TEvent, TTypestate, TResolvedTypesMeta>['states'];
548
- withConfig(options: MaybeTypegenMachineOptions<TContext, TEvent, TAction, TResolvedTypesMeta, true>, context?: TContext | (() => TContext)): StateMachine<TContext, TStateSchema, TEvent, TTypestate, TAction, MarkAllImplementationsAsProvided<TResolvedTypesMeta>>;
576
+ withConfig(options: InternalMachineOptions<TContext, TEvent, TResolvedTypesMeta, true>, context?: TContext | (() => TContext)): StateMachine<TContext, TStateSchema, TEvent, TTypestate, TAction, MarkAllImplementationsAsProvided<TResolvedTypesMeta>>;
549
577
  withContext(context: TContext | (() => TContext)): StateMachine<TContext, TStateSchema, TEvent, TTypestate, any, TResolvedTypesMeta>;
578
+ __TContext: TContext;
579
+ __TStateSchema: TStateSchema;
580
+ __TEvent: TEvent;
581
+ __TTypestate: TTypestate;
582
+ __TAction: TAction;
583
+ __TResolvedTypesMeta: TResolvedTypesMeta;
550
584
  }
551
585
  export declare type StateFrom<T extends StateMachine<any, any, any, any, any, any> | ((...args: any[]) => StateMachine<any, any, any, any, any, any>)> = T extends StateMachine<any, any, any, any, any, any> ? ReturnType<T['transition']> : T extends (...args: any[]) => StateMachine<any, any, any, any, any, any> ? ReturnType<ReturnType<T>['transition']> : never;
552
586
  export interface ActionMap<TContext, TEvent extends EventObject> {
@@ -716,7 +750,7 @@ export interface PureAction<TContext, TEvent extends EventObject> extends Action
716
750
  }
717
751
  export interface ChooseAction<TContext, TEvent extends EventObject> extends ActionObject<TContext, TEvent> {
718
752
  type: ActionTypes.Choose;
719
- conds: Array<ChooseConditon<TContext, TEvent>>;
753
+ conds: Array<ChooseCondition<TContext, TEvent>>;
720
754
  }
721
755
  export interface TransitionDefinition<TContext, TEvent extends EventObject> extends TransitionConfig<TContext, TEvent> {
722
756
  target: Array<StateNode<TContext, any, TEvent>> | undefined;
@@ -962,8 +996,9 @@ export declare type ActorRefWithDeprecatedState<TContext, TEvent extends EventOb
962
996
  };
963
997
  export declare type ActorRefFrom<T> = T extends StateMachine<infer TContext, any, infer TEvent, infer TTypestate> ? ActorRefWithDeprecatedState<TContext, TEvent, TTypestate> : T extends (...args: any[]) => StateMachine<infer TContext, any, infer TEvent, infer TTypestate, 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;
964
998
  export declare type AnyInterpreter = Interpreter<any, any, any, any, any>;
965
- export declare type InterpreterFrom<T extends StateMachine<any, any, any, any> | ((...args: any[]) => StateMachine<any, any, any, any>)> = T extends StateMachine<infer TContext, infer TStateSchema, infer TEvent, infer TTypestate, any, infer TResolvedTypesMeta> ? Interpreter<TContext, TStateSchema, TEvent, TTypestate, TResolvedTypesMeta> : T extends (...args: any[]) => StateMachine<infer TContext, infer TStateSchema, infer TEvent, infer TTypestate, any, infer TResolvedTypesMeta> ? Interpreter<TContext, TStateSchema, TEvent, TTypestate, TResolvedTypesMeta> : never;
966
- export declare type MachineOptionsFrom<T extends StateMachine<any, any, any, any> | ((...args: any[]) => StateMachine<any, any, any, any>), TRequireMissingImplementations extends boolean = false> = T extends StateMachine<infer TContext, any, infer TEvent, any, any, infer TResolvedTypesMeta> ? MaybeTypegenMachineOptions<TContext, TEvent, any, TResolvedTypesMeta, TRequireMissingImplementations> : T extends (...args: any[]) => StateMachine<infer TContext, any, infer TEvent, any, any, infer TResolvedTypesMeta> ? MaybeTypegenMachineOptions<TContext, TEvent, any, TResolvedTypesMeta, TRequireMissingImplementations> : never;
999
+ export declare type InterpreterFrom<T extends StateMachine<any, any, any, any, any, any> | ((...args: any[]) => StateMachine<any, any, any, any, any, any>)> = T extends StateMachine<infer TContext, infer TStateSchema, infer TEvent, infer TTypestate, any, infer TResolvedTypesMeta> ? Interpreter<TContext, TStateSchema, TEvent, TTypestate, TResolvedTypesMeta> : T extends (...args: any[]) => StateMachine<infer TContext, infer TStateSchema, infer TEvent, infer TTypestate, any, infer TResolvedTypesMeta> ? Interpreter<TContext, TStateSchema, TEvent, TTypestate, TResolvedTypesMeta> : never;
1000
+ export declare type MachineOptionsFrom<T extends StateMachine<any, any, any, any> | ((...args: any[]) => StateMachine<any, any, any, any>), TRequireMissingImplementations extends boolean = false> = ReturnTypeOrValue<T> extends StateMachine<infer TContext, any, infer TEvent, any, any, infer TResolvedTypesMeta> ? InternalMachineOptions<TContext, TEvent, TResolvedTypesMeta, TRequireMissingImplementations> : never;
1001
+ export declare type __ResolvedTypesMetaFrom<T> = T extends StateMachine<any, any, any, any, any, infer TResolvedTypesMeta> ? TResolvedTypesMeta : never;
967
1002
  export interface ActorContext<TEvent extends EventObject, TEmitted> {
968
1003
  parent?: ActorRef<any, any>;
969
1004
  self: ActorRef<TEvent, TEmitted>;
@@ -976,7 +1011,10 @@ export interface Behavior<TEvent extends EventObject, TEmitted = any> {
976
1011
  start?: (actorCtx: ActorContext<TEvent, TEmitted>) => TEmitted;
977
1012
  }
978
1013
  export declare type EmittedFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends ActorRef<infer _, infer TEmitted> ? TEmitted : R extends Behavior<infer _, infer TEmitted> ? TEmitted : R extends ActorContext<infer _, infer TEmitted> ? TEmitted : never : never;
979
- export declare type EventFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer _, infer __, infer TEvent, infer ____> ? TEvent : R extends Model<infer _, infer TEvent, infer ___, infer ____> ? TEvent : R extends State<infer _, infer TEvent, infer ___, infer ____> ? TEvent : R extends Interpreter<infer _, infer __, infer TEvent, infer ____> ? TEvent : never : never;
1014
+ declare type ResolveEventType<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer _, infer __, infer TEvent, infer ____> ? TEvent : R extends Model<infer _, infer TEvent, infer ___, infer ____> ? TEvent : R extends State<infer _, infer TEvent, infer ___, infer ____> ? TEvent : R extends Interpreter<infer _, infer __, infer TEvent, infer ____> ? TEvent : never : never;
1015
+ export declare type EventFrom<T, K extends Prop<TEvent, 'type'> = never, TEvent = ResolveEventType<T>> = IsNever<K> extends true ? TEvent : Extract<TEvent, {
1016
+ type: K;
1017
+ }>;
980
1018
  export declare type ContextFrom<T> = ReturnTypeOrValue<T> extends infer R ? R extends StateMachine<infer TContext, infer _, infer __, infer ___> ? TContext : R extends Model<infer TContext, infer _, infer __, infer ___> ? TContext : R extends State<infer TContext, infer _, infer __, infer ___> ? TContext : R extends Interpreter<infer TContext, infer _, infer __, infer ___> ? TContext : never : never;
981
1019
  export {};
982
1020
  //# sourceMappingURL=types.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xstate",
3
- "version": "4.26.0-pr2674-202191175724",
3
+ "version": "4.27.0-pr2674-2021926101023",
4
4
  "description": "Finite State Machines and Statecharts for the Modern Web.",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",