Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Apr 23, 2024

Coming soon: The Renovate bot (GitHub App) will be renamed to Mend. PRs from Renovate will soon appear from 'Mend'. Learn more here.

This PR contains the following updates:

Package Change Age Confidence
@xstate/vue (source) ^2.0.0 -> ^5.0.0 age confidence
xstate (source) ^4.38.3 -> ^5.22.0 age confidence

Warning

Deprecated preset: Kong/public-shared-renovate:kong-frontend-config

Your config references a deprecated preset. To prevent disruption, this file now composes the org default building blocks and layers a few tweaks so behavior stays close to the historical frontend configuration.

What’s different from the default

  • Weekday automerge cadence and daily run windows (schedule:automergeWeekdays + schedule:daily + :noUnscheduledUpdates)
  • Automerge enabled for minor and patch updates with required status checks
  • Adds the mend-bot label alongside Renovate’s standard dependency labeling
  • Timezone set to America/New_York
  • Disables specific actions: Kong/kong-api-tests and the-actions-org/workflow-dispatch
  • Extra grouping for GitHub Actions: non-major stable updates grouped under "non-major github actions with stable versions"

Recommended migration

Prefer switching to the default preset and applying only the bits you still need locally. Example configuration to replicate this preset’s behavior on top of the default:

{
  "extends": [
    "Kong/public-shared-renovate",
    "schedule:automergeWeekdays",
    "schedule:daily",
    ":automergeMinor",
    ":automergePatch",
    ":automergeRequireAllStatusChecks",
    ":labels(dependencies,mend-bot)",
    ":noUnscheduledUpdates",
    ":timezone(America/New_York)"
  ],
  "packageRules": [
    {
      "matchPackageNames": ["*"],
      "matchDepTypes": ["action"],
      "matchUpdateTypes": ["minor", "patch"],
      "matchCurrentVersion": "!/^v0/",
      "groupName": "non-major github actions with stable versions"
    }
  ]
}

To disable the same actions locally, add the helpers after the default in your extends list:

[
  "Kong/public-shared-renovate",
  "Kong/public-shared-renovate//helpers/disable-action(Kong/kong-api-tests)",
  "Kong/public-shared-renovate//helpers/disable-action(the-actions-org/workflow-dispatch)"
]

Timeline

This compatibility preset will be removed in January 2026. Please migrate to the default preset with local overrides before then.


Release Notes

statelyai/xstate (@​xstate/vue)

v5.0.0

Compare Source

Patch Changes

v4.0.4

Compare Source

Patch Changes

v4.0.3

Compare Source

Patch Changes

v4.0.2

Compare Source

Patch Changes

v4.0.1

Compare Source

Patch Changes

v4.0.0

Compare Source

Patch Changes

v3.1.4

Compare Source

Patch Changes

v3.1.3

Compare Source

Patch Changes
  • #​5055 ad38c35c37 Thanks @​SandroMaglione! - Updated types of useActor, useMachine, and useActorRef to require input when defined inside types/input.

    Previously even when input was defined inside types, useActor, useMachine, and useActorRef would not make the input required:

    const machine = setup({
      types: {
        input: {} as { value: number }
      }
    }).createMachine({});
    
    function App() {
      // Event if `input` is not defined, `useMachine` works at compile time, but risks crashing at runtime
      const _ = useMachine(machine);
      return <></>;
    }

    With this change the above code will show a type error, since input is now required:

    const machine = setup({
      types: {
        input: {} as { value: number }
      }
    }).createMachine({});
    
    function App() {
      const _ = useMachine(machine, {
        input: { value: 1 } // Now input is required at compile time!
      });
      return <></>;
    }

    This avoids runtime errors when forgetting to pass input when defined inside types.

v3.1.2

Compare Source

Patch Changes
  • #​4844 5aa6eb05c Thanks @​davidkpiano! - The useSelector(…) hook from @xstate/react is now compatible with stores from @xstate/store.

    import { createStore } from '@&#8203;xstate/store';
    import { useSelector } from '@&#8203;xstate/react';
    
    const store = createStore(
      {
        count: 0
      },
      {
        inc: {
          count: (context) => context.count + 1
        }
      }
    );
    
    function Counter() {
      // Note that this `useSelector` is from `@xstate/react`,
      // not `@xstate/store/react`
      const count = useSelector(store, (state) => state.context.count);
    
      return (
        <div>
          <button onClick={() => store.send({ type: 'inc' })}>{count}</button>
        </div>
      );
    }

v3.1.1

Compare Source

Patch Changes

v3.1.0

Compare Source

Minor Changes
  • #​4231 c2402e7bc Thanks @​davidkpiano! - The actor passed to useSelector(actor, selector) is now allowed to be undefined for an actor that may not exist yet. For actors that may be undefined, the snapshot provided to the selector function can also be undefined:

    const count = useSelector(maybeActor, (snapshot) => {
      // `snapshot` may be undefined
      return snapshot?.context.count;
    });
    
    count; // number | undefined

v3.0.3

Compare Source

Patch Changes

v3.0.2

Compare Source

Patch Changes

v3.0.1

Compare Source

Patch Changes

v3.0.0

Compare Source

Major Changes
  • #​5175 38aa9f518ee2f9a5f481306a1dc68c0ad47d28d5 Thanks @​davidkpiano! - The createStore function now only accepts a single configuration object argument. This is a breaking change that simplifies the API and aligns with the configuration pattern used throughout XState.

    // Before
    // createStore(
    //   {
    //     count: 0
    //   },
    //   {
    //     increment: (context) => ({ count: context.count + 1 })
    //   }
    // );
    
    // After
    createStore({
      context: {
        count: 0
      },
      on: {
        increment: (context) => ({ count: context.count + 1 })
      }
    });
  • #​5175 38aa9f518ee2f9a5f481306a1dc68c0ad47d28d5 Thanks @​davidkpiano! - You can now enqueue effects in state transitions.

    const store = createStore({
      context: {
        count: 0
      },
      on: {
        incrementDelayed: (context, event, enq) => {
          enq.effect(async () => {
            await new Promise((resolve) => setTimeout(resolve, 1000));
            store.send({ type: 'increment' });
          });
    
          return context;
        },
        increment: (context) => ({ count: context.count + 1 })
      }
    });
  • #​5175 38aa9f518ee2f9a5f481306a1dc68c0ad47d28d5 Thanks @​davidkpiano! - The fromStore(config) function now only supports a single config object argument.

    const storeLogic = fromStore({
      context: (input: { initialCount: number }) => ({
        count: input.initialCount
      }),
      on: {
        inc: (ctx, ev: { by: number }) => ({
          ...ctx,
          count: ctx.count + ev.by
        })
      }
    });
  • #​5175 38aa9f518ee2f9a5f481306a1dc68c0ad47d28d5 Thanks @​davidkpiano! - The createStoreWithProducer(…) function now only accepts two arguments: a producer and a config ({ context, on }) object.

    // Before
    // createStoreWithProducer(
    //   producer,
    //   {
    //     count: 0
    //   },
    //   {
    //     increment: (context) => {
    //       context.count++;
    //     }
    //   }
    // );
    
    // After
    createStoreWithProducer(producer, {
      context: {
        count: 0
      },
      on: {
        increment: (context) => {
          context.count++;
        }
      }
    });
  • #​5175 38aa9f518ee2f9a5f481306a1dc68c0ad47d28d5 Thanks @​davidkpiano! - Only complete assigner functions that replace the context fully are supported. This is a breaking change that simplifies the API and provides more type safety.

    const store = createStore({
      context: {
        items: [],
        count: 0
      },
      on: {
    -   increment: { count: (context) => context.count + 1 }
    -   increment: (context) => ({ count: context.count + 1 })
    +   increment: (context) => ({ ...context, count: context.count + 1 })
      }
    })
  • #​5175 38aa9f518ee2f9a5f481306a1dc68c0ad47d28d5 Thanks @​davidkpiano! - Emitted event types are now specified in functions on the emits property of the store definition:

    const store = createStore({
      // …
      emits: {
        increased: (payload: { upBy: number }) => {
          // You can execute a side-effect here
          // or leave it empty
        }
      },
      on: {
        inc: (ctx, ev: { by: number }, enq) => {
          enq.emit.increased({ upBy: ev.by });
    
          // …
        }
      }
    });
Minor Changes
  • #​5175 38aa9f518ee2f9a5f481306a1dc68c0ad47d28d5 Thanks @​davidkpiano! - Added store.trigger API for sending events with a fluent interface:

    const store = createStore({
      context: { count: 0 },
      on: {
        increment: (ctx, event: { by: number }) => ({
          count: ctx.count + event.by
        })
      }
    });
    
    // Instead of manually constructing event objects:
    store.send({ type: 'increment', by: 5 });
    
    // You can now use the fluent trigger API:
    store.trigger.increment({ by: 5 });

    The trigger API provides full type safety for event names and payloads, making it easier and safer to send events to the store.


Configuration

📅 Schedule: Branch creation - Between 12:00 AM and 03:59 AM ( * 0-3 * * * ) in timezone America/New_York, Automerge - Monday through Friday ( * * * * 1-5 ) in timezone America/New_York.

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot requested a review from kongponents-bot as a code owner April 23, 2024 06:49
@renovate renovate bot added dependencies Pull requests that update a dependency file renovate-bot labels Apr 23, 2024
@renovate renovate bot requested a review from a team as a code owner April 23, 2024 06:49
@renovate renovate bot force-pushed the renovate/major-xstate-monorepo branch from b167e07 to 14b75f2 Compare April 24, 2024 06:19
@renovate renovate bot force-pushed the renovate/major-xstate-monorepo branch from 14b75f2 to 0ffe366 Compare April 29, 2024 07:32
@renovate renovate bot force-pushed the renovate/major-xstate-monorepo branch from 0ffe366 to b864357 Compare April 30, 2024 07:38
@renovate renovate bot force-pushed the renovate/major-xstate-monorepo branch from b864357 to b4820a8 Compare May 1, 2024 06:18
@renovate renovate bot force-pushed the renovate/major-xstate-monorepo branch from b4820a8 to b7e29fb Compare May 2, 2024 04:59
@renovate renovate bot force-pushed the renovate/major-xstate-monorepo branch from b7e29fb to 3ca0d7f Compare May 6, 2024 04:42
@renovate renovate bot force-pushed the renovate/major-xstate-monorepo branch from 3ca0d7f to ac867a5 Compare May 6, 2024 07:09
@renovate renovate bot force-pushed the renovate/major-xstate-monorepo branch from ac867a5 to f2d31ed Compare May 7, 2024 05:18
@renovate renovate bot force-pushed the renovate/major-xstate-monorepo branch from f2d31ed to 3b126f0 Compare May 7, 2024 08:24
@renovate renovate bot force-pushed the renovate/major-xstate-monorepo branch from 3b126f0 to 7a63253 Compare May 9, 2024 04:50
@renovate renovate bot force-pushed the renovate/major-xstate-monorepo branch from 7a63253 to 78ccdcf Compare May 10, 2024 05:21
@renovate renovate bot force-pushed the renovate/major-xstate-monorepo branch from 78ccdcf to 72098b9 Compare May 10, 2024 06:51
@renovate renovate bot force-pushed the renovate/major-xstate-monorepo branch from 72098b9 to 8e6158d Compare May 16, 2024 06:02
@renovate renovate bot force-pushed the renovate/major-xstate-monorepo branch 2 times, most recently from 72be018 to 1697522 Compare July 14, 2025 04:02
@renovate renovate bot force-pushed the renovate/major-xstate-monorepo branch 2 times, most recently from de052db to d908a2c Compare July 21, 2025 04:04
@renovate renovate bot force-pushed the renovate/major-xstate-monorepo branch 2 times, most recently from 43d832d to 359852c Compare August 1, 2025 07:54
@renovate renovate bot force-pushed the renovate/major-xstate-monorepo branch from 359852c to 935d8c1 Compare August 4, 2025 04:37
@renovate renovate bot force-pushed the renovate/major-xstate-monorepo branch 4 times, most recently from e14bcd7 to ee8e0b7 Compare August 14, 2025 08:55
@renovate renovate bot force-pushed the renovate/major-xstate-monorepo branch 3 times, most recently from 35c03d5 to 2f30dd0 Compare August 25, 2025 07:08
@renovate renovate bot force-pushed the renovate/major-xstate-monorepo branch 2 times, most recently from 98fe4a8 to 8910ba4 Compare September 2, 2025 05:30
@renovate renovate bot force-pushed the renovate/major-xstate-monorepo branch 4 times, most recently from 4493ea7 to 7c9d6a6 Compare September 19, 2025 06:02
@renovate renovate bot force-pushed the renovate/major-xstate-monorepo branch 3 times, most recently from a726a88 to 0273f3f Compare September 25, 2025 06:22
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@renovate renovate bot added mend-bot and removed renovate-bot labels Sep 26, 2025
@renovate renovate bot force-pushed the renovate/major-xstate-monorepo branch from 0273f3f to b5924a3 Compare September 26, 2025 06:39
@renovate
Copy link
Contributor Author

renovate bot commented Sep 26, 2025

Renovate Ignore Notification

Because you closed this PR without merging, Renovate will ignore this update. You will not get PRs for any future 5.x releases. But if you manually upgrade to 5.x then Renovate will re-enable minor and patch updates automatically.

If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.

@renovate renovate bot deleted the renovate/major-xstate-monorepo branch September 26, 2025 18:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file mend-bot

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants