Update dependency xstate to v5 #568
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^4.38.3->^5.24.0Release Notes
statelyai/xstate (xstate)
v5.24.0Compare Source
Minor Changes
#5371
b8ec3b1Thanks @davidkpiano! - Addsetup.extend()method to incrementally extend machine setup configurations with additional actions, guards, and delays. This enables composable and reusable machine setups where extended actions, guards, and delays can reference base actions, guards, and delays and support chaining multiple extensions:v5.23.0Compare Source
Minor Changes
#5387
53dd7f1Thanks @farskid! - Addssystem.getAllthat returns a record of running actors within the system by their system idv5.22.1Compare Source
Patch Changes
#5379
98f9dddThanks @davidkpiano! - Makeactor.systemIdpublic:#5380
e7e5e44Thanks @Nirajkashyap! - fix: remove 'eventType' from required fields in initialTransitionObjectv5.22.0Compare Source
Minor Changes
#5367
76c857eThanks @davidkpiano! - Add type-bound action helpers tosetup():createAction(fn)– create type-safe custom actionssetup().assign(...),setup().sendTo(...),setup().raise(...),setup().log(...),setup().cancel(...),setup().stopChild(...),setup().enqueueActions(...),setup().emit(...),setup().spawnChild(...)– setup-scoped helpers that are fully typed to the setup's context/events/actors/guards/delays/emitted.These helpers return actions that are bound to the specific
setup()they were created from and can be used directly in the machine produced by that setup.v5.21.0Compare Source
Minor Changes
#5364
15e15b5Thanks @davidkpiano! - Added.createStateConfig(…)to the setup API. This makes it possible to create state configs that are strongly typed and modular.v5.20.2Compare Source
Patch Changes
#5351
71387ffThanks @davidkpiano! - Fix: Emit callback errors no longer crash the actorv5.20.1Compare Source
Patch Changes
9a0ae82Thanks @sfc-gh-dperezalvarez! - ExportedInspectedActionEventtypev5.20.0Compare Source
Minor Changes
#5287
e07a7cd8462473188a0fb646a965e61be1ce6ae3Thanks @davidkpiano! - The graph and model-based testing utilities from @xstate/graph (and @xstate/test previously) were moved to the corexstatepackage.v5.19.4Compare Source
Patch Changes
479c74b83fa77c57c48f54cf0e9dcfab5fe6cae5Thanks @ebadyz! - Removed outdatedcontextparameter reference fromprovidemethod documentation.v5.19.3Compare Source
Patch Changes
b453b2d72ba12d0fe46a995f9ccced8000fd0cc9Thanks @chladog! - Add proper history value persistence and restorationv5.19.2Compare Source
Patch Changes
d99df1d8f4fe49145c9974465b65028bf19b365fThanks @Andarist! - Improved compatibility of inferred types in projects withexactOptionalPropertyTypesenabledv5.19.1Compare Source
Patch Changes
#5139
bf6119a7310a878afbf4f5b01f5e24288f9a0f16Thanks @SandroMaglione! - Makespawninput required when defined inside referenced actor:v5.19.0Compare Source
Minor Changes
#4954
8c4b70652acaef2702f32435362e4755679a516dThanks @davidkpiano! - Added a newtransitionfunction that takes an actor logic, a snapshot, and an event, and returns a tuple containing the next snapshot and the actions to execute. This function is a pure function and does not execute the actions itself. It can be used like this:Added a new
initialTransitionfunction that takes an actor logic and an optional input, and returns a tuple containing the initial snapshot and the actions to execute from the initial transition. This function is also a pure function and does not execute the actions itself. It can be used like this:These new functions provide a way to separate the calculation of the next snapshot and actions from the execution of those actions, allowing for more control and flexibility in the transition process.
v5.18.2Compare Source
Patch Changes
25963966c394fc904dc9b701a420b6e204ebe7f7Thanks @davidkpiano! - The inspection event interfaces now expectActorRefLikeinstead ofAnyActorRefv5.18.1Compare Source
Patch Changes
ad38c35c37Thanks @SandroMaglione! - ExportedRequiredActorOptionsKeystype meant to be used by integration packages like@xstate/reactv5.18.0Compare Source
Minor Changes
#5042
54c9d9e6a4Thanks @boneskull! -waitFor()now accepts a{signal: AbortSignal}inWaitForOptions#5006
1ab974547fThanks @davidkpiano! - The state value typings for setup state machine actors (setup({}).createMachine({ ... })) have been improved to represent the actual expected state values.Patch Changes
#5054
853f6daa0bThanks @davidkpiano! - TheCallbackLogicFunctiontype (previouslyInvokeCallback) is now exported. This is the callback function that you pass intofromCallback(callbackLogicFn)to create an actor from a callback function.v5.17.4Compare Source
Patch Changes
d6df8fb470Thanks @Andarist! - Fixed an inference issue that preventedemitused directly insetup(or barecreateMachine) to benefit fromtypes.emittedtypes.v5.17.3Compare Source
Patch Changes
7bed484c38Thanks @davidkpiano! - FixEventFromandContextFromtypesv5.17.2Compare Source
Patch Changes
#5029
88bd87ab41Thanks @davidkpiano! - RevertActorRefFromchange#5011
a275d274deThanks @davidkpiano! - There is a new type helper:ActorRefFromLogic<TLogic>. This type is a stricter form ofActorRefFrom<TLogic>that only accepts actor logic types. See #4997 for more details.v5.17.1Compare Source
Patch Changes
51d4c4fc5Thanks @davidkpiano! - The internal types forStateMachine<...>have been improved so that all type params are required, to prevent errors when using the types. This fixes weird issues like #5008.v5.17.0Compare Source
Minor Changes
#4979
a0e9ebcefThanks @davidkpiano! - State IDs are now strongly typed as keys ofsnapshot.getMeta()for state machine actor snapshots.Patch Changes
9877d548bThanks @davidkpiano! - Fix an issue whereclearTimeout(undefined)was sometimes being called, which can cause errors for some clock implementations. See #5001 for details.v5.16.0Compare Source
Minor Changes
#4996
5be796cd2Thanks @ronvoluted! - The actor snapshotstatustype ('active' | 'done' | 'error' | 'stopped') is now exposed asSnapshotStatus#4981
c4ae156b2Thanks @davidkpiano! - AddedsendParentto theenqueueActionsfeature. This allows users to enqueue actions that send events to the parent actor within theenqueueActionsblock.v5.15.0Compare Source
Minor Changes
#4976
452bce71eThanks @with-heart! - Added exports for actor logic-specificActorReftypes:CallbackActorRef,ObservableActorRef,PromiseActorRef, andTransitionActorRef.Each type represents
ActorRefnarrowed to the corresponding type of logic (the type ofselfwithin the actor's logic):CallbackActorRef: actor created byfromCallbackObservableActorRef: actor created byfromObservableandfromEventObservablePromiseActorRef: actor created byfromPromiseTransitionActorRef: actor created byfromTransition#4949
8aa4c2b90Thanks @davidkpiano! - The TypeGen-related types have been removed from XState, simplifying the internal types without affecting normal XState usage.v5.14.0Compare Source
Minor Changes
#4936
c58b36dc3Thanks @davidkpiano! - Inspecting an actor system viaactor.system.inspect(ev => …)now accepts a function or observer, and returns a subscription:#4942
9caaa1f70Thanks @boneskull! -DoneActorEventandErrorActorEventnow contain propertyactorId, which refers to the ID of the actor the event refers to.#4935
2ac08b700Thanks @davidkpiano! - All actor logic creators now support emitting events:Promise actors
Transition actors
Observable actors
Callback actors
Patch Changes
417f35a11Thanks @boneskull! - Expose typeUnknownActorReffor use when callinggetSnapshot()on an unknownActorRef.v5.13.2Compare Source
Patch Changes
71a7f8692Thanks @davidkpiano! - Actors with emitted events should no longer cause type issues: #4931v5.13.1Compare Source
Patch Changes
#4905
dbeafeb25Thanks @davidkpiano! - You can now use a wildcard to listen for any emitted event from an actor:v5.13.0Compare Source
Minor Changes
#4832
148d8fcefThanks @cevr! -fromPromisenow passes a signal into its creator function.This will be called whenever the state transitions before the promise is resolved. This is useful for cancelling the promise if the state changes.
Patch Changes
#4876
3f6a73b56Thanks @davidkpiano! - XState will now warn when calling built-in actions likeassign,sendTo,raise,emit, etc. directly inside of a custom action. See https://stately.ai/docs/actions#built-in-actions for more details.v5.12.0Compare Source
Minor Changes
#4863
0696adc21Thanks @davidkpiano! - Meta objects for state nodes and transitions can now be specified insetup({ types: … }):v5.11.0Compare Source
Minor Changes
#4806
f4e0ec48cThanks @davidkpiano! - Inline actor logic is now permitted when named actors are present. Defining inline actors will no longer cause a TypeScript error:v5.10.0Compare Source
Minor Changes
#4822
f7f1fbbf3Thanks @davidkpiano! - Theclockandloggerspecified in theoptionsobject ofcreateActor(logic, options)will now propagate to all actors created within the same actor system.v5.9.1Compare Source
Patch Changes
567267ed2Thanks @Andarist! - Add missingemitexportv5.9.0Compare Source
Minor Changes
#4746
b570ba20dThanks @davidkpiano! - The newemit(…)action creator emits events that can be received by listeners. Actors are now event emitters.#4777
4abeed9dfThanks @Andarist! - Added support forparamstoenqueueActionsv5.8.2Compare Source
Patch Changes
9a0120901Thanks @Andarist! - Fixed a type issue that preventsendParentto be accepted bysetupwhendelaysstayed not configured.v5.8.1Compare Source
Patch Changes
4a29f8aabThanks @Andarist! - Correctly use falsy outputs (instead of accidentally converting them toundefined).v5.8.0Compare Source
Minor Changes
a9e3c086fThanks @Andarist! - Revampedsetupand actions types to disallow usage of non-configured implementationsv5.7.1Compare Source
Patch Changes
15b7dd1f0Thanks @devanfarrell! - Removedthisfrom machine snapshot methods to fix issues with accessing those methods from union of actors and their snapshots.v5.7.0Compare Source
Minor Changes
#4290
7a8796f80Thanks @davidkpiano! - An error will now be thrown if an incompatible state value is passed tomachine.resolveState({ value }).#4693
11b6a1ae1Thanks @davidkpiano! - You can now inspect microsteps (@xstate.microstep) and actions (@xstate.action):v5.6.2Compare Source
Patch Changes
#4731
960cdcbcbThanks @davidkpiano! - You can now importgetInitialSnapshot(…)fromxstatedirectly, which is useful for getting a mock of the initial snapshot when interacting with machines (or other actor logic) withoutcreateActor(…):v5.6.1Compare Source
Patch Changes
#4728
659efd5c1Thanks @Andarist! - Fixed compatibility issue of the internal type definitions with TypeScript 5.0#4712
2f1d36a9dThanks @davidkpiano! - Ensure thatInteropObservableandInteropSubscribableare present in the type definition file.#4694
0b6dff210Thanks @davidkpiano! - AddUnknownMachineConfigtypev5.6.0Compare Source
Minor Changes
#4704
78699aef6Thanks @Andarist! -createActorwill now error if the requiredinputis not given to it.#4688
14902e17aThanks @Andarist! - Theschemasproperty insetup(...)is now passed through to the resulting machine. This property is meant to be used with future developer tooling, and is typed asunknownfor now.Patch Changes
51b844230Thanks @Andarist! - Fixed compatibility with the upcoming TypeScript 5.4v5.5.2Compare Source
Patch Changes
#4685
e43eab144Thanks @davidkpiano! - State IDs that have periods in them are now supported if those periods are escaped.The motivation is that external tools, such as Stately Studio, may allow users to enter any text into the state ID field. This change allows those tools to escape periods in state IDs, so that they don't conflict with the internal path-based state IDs.
E.g. if a state ID of
"Loading..."is entered into the state ID field, instead of crashing either the external tool and/or the XState state machine, it should be converted by the tool to"Loading\\.\\.\\.", and those periods will be ignored by XState.v5.5.1Compare Source
Patch Changes
64ee3959cThanks @Andarist! - Fixed compatibility with older versions of integration packages.v5.5.0Compare Source
Minor Changes
#4596
6113a590aThanks @davidkpiano! - IntroducegetNextSnapshot(...), which determines the next snapshot for the givenactorLogicbased on the givensnapshotandevent.If the
snapshotisundefined, the initial snapshot of theactorLogicis used.Patch Changes
1ae07f5bfThanks @Andarist! - Alloweventin transitions to be narrowed down even when its.typeis defined using a union.v5.4.1Compare Source
Patch Changes
1f2ccb97cThanks @davidkpiano! - Typegen-based types for detecting missing implementations have been removed internally.v5.4.0Compare Source
Minor Changes
#4616
e8c0b15b2Thanks @Andarist! -contextfactories receiveselfnow so you can immediately pass that as part of the input to spawned actors.v5.3.1Compare Source
Patch Changes
#4597
ae0b05f11Thanks @davidkpiano! - Update the argument object ofenqueueActions(...)to include theselfandsystemproperties:v5.3.0Compare Source
Minor Changes
#4547
8e8d2ba38Thanks @davidkpiano! - AddassertEvent(...)to help provide strong typings for events that can't be easily inferred, such as events inentryandexitactions, or ininvoke.input.The
assertEvent(event, 'someType')function will throw if the event is not the expected type. This ensures that theeventis guaranteed to have that type, and assumes that the event object has the expected payload (naturally enforced by TypeScript).Patch Changes
97f1cbd5fThanks @Andarist! - Fixed an issue with ancestors of the default history target that lie outside of the transition domain being incorrectly entered.v5.2.1Compare Source
Patch Changes
677fb35b7Thanks @davidkpiano! - Update README.mdv5.2.0Compare Source
Minor Changes
#4198
ca58904adThanks @davidkpiano! - IntroducetoPromise(actor), which creates a promise from anactorthat resolves with the actor snapshot'soutputwhen done, or rejects with the actor snapshot'serrorwhen it fails.Patch Changes
#4568
a5c55fae2Thanks @Andarist! - Fixed an issue withspawnwithinassignnot returning a narrowed downActorReftype on TypeScrip 5.0#4570
c11127336Thanks @Andarist! - Fixed an issue that caused acompletelistener to be called instead of theerrorone when the actor was subscribed after being stopped.v5.1.0Compare Source
Minor Changes
d7f220225Thanks @davidkpiano! - Internal: abstract the scheduler for delayed events so that it is handled centrally by thesystem.Patch Changes
80818017bThanks @davidkpiano! - Fix higher-level logic for state machine logicv5.0.2Compare Source
Patch Changes
80b9afbaeThanks @Andarist! - Fixed definingactorswithinputwithinsetup.v5.0.1Compare Source
Patch Changes
bf6119a7310a878afbf4f5b01f5e24288f9a0f16]:v5.0.0Compare Source
Patch Changes
d67b71dd25d457a2a59f2c943db13f50fab7ec3dThanks [@davidkpiano](https://redirectConfiguration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.