Skip to content

chore: update dependency inferno to v10 - #111

Closed
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/inferno-10.x
Closed

renovate[bot] wants to merge 1 commit into
mainfrom
renovate/inferno-10.x

Conversation

@renovate

@renovate renovate Bot commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
inferno (source) ^5.0.5 → ^10.0.0 age confidence
inferno (source) ^5.6.3 → ^10.0.0 age confidence

Release Notes

infernojs/inferno (inferno)

v10.0.0

Compare Source

InfernoJS v10.0.0

Inferno 10 moves work from the runtime to the compiler. The JSX plugins know the shape of an element's children when they compile it, so they now write it into the vNode flags. Inferno no longer computes it for every vNode at runtime. A vNode has one field less, delegated event handlers take less memory, and many allocations are gone from rendering, normalization and keyed diffing.

This release also rewrites inferno-animation, adds custom navigation confirmation to inferno-router, and fixes many bugs in core, hydration, server rendering, the router, compat and the MobX bindings.

Upgrading
  1. Update every inferno* package to 10.

  2. Update your JSX plugin to version 10:

    Plugin Inferno 9 and older Inferno 10
    babel-plugin-inferno 7.x 10.x
    ts-plugin-inferno 7.x 10.x
    swc-plugin-inferno 3.x 10.x

    Version 10 of babel-plugin-inferno and ts-plugin-inferno requires Node.js 24 or newer to compile JSX. ts-plugin-inferno depends on TypeScript 6.

  3. Compile all your JSX again, including dependencies that ship precompiled JSX.

  4. If you write your own componentWillMove or onComponentWillMove hooks, add import 'inferno-animation'. See Move animation hooks.

  5. Compile your own components to ES2015 or newer. A component class compiled to an ES5 function can no longer extend Component. See Browser support.

From version 10 on, the major version of each JSX plugin matches the major version of Inferno.

Each change is described in detail in the Migration guide.

Breaking changes
  • JSX must be compiled by the v10 plugins. VNodeFlags have new values, so JSX compiled by an older plugin renders elements such as <svg>, <input>, <select> and <textarea> wrong. This includes npm packages that ship JSX compiled for Inferno 9.
  • VNodeFlags have new values. Code compiled with tsc against inferno-vnode-flags 9 has the old numbers inlined and must be compiled again. Never write flag numbers by hand.
  • vNode.childFlags has been removed. The shape of the children is stored in bits of vNode.flags. Test them with VNodeFlags.HasKeyedChildren and the other Has*Children bits, or get the old ChildFlags value with the new getChildFlags(vNode) export.
  • vNode.isValidated has been removed. It is the development-only VNodeFlags.Validated bit now.
  • $ReCreate and VNodeFlags.ReCreate have been removed. Change the key of an element to re-create it. The v10 plugins report $ReCreate as a build error.
  • Delegated event handlers are stored on the element. $EV is now a bitmask, and each handler is in its own property of the element, such as $onClick. This only matters to tools that read Inferno's internal DOM properties.
  • Move animation hooks have new semantics. See below.
  • Modern bundles, and Component is a native class in all of them. See Browser support.
// v9
<div $ReCreate>{content}</div>

// v10: change the key whenever the element must be re-created
<div key={version}>{content}</div>
Move animation hooks

The reconciler no longer runs move animations itself. inferno-animation installs a move engine when it is imported.

  • Custom componentWillMove and onComponentWillMove hooks are only called when the app has imported inferno-animation. The exported animated components and helpers already import it.
  • The hooks are called for every item that a keyed update keeps, before anything is patched. In v9 they were called only for the items that were physically moved, after the list had already been partly changed.
  • A class component's componentWillMove must exist by the end of its mount. A hook assigned later is not called.
  • Appear, leave and move hooks target the first element of the component. A component whose root is only text or empty gets no hook. In v9 the hook could get a text node, which crashed the helpers.

See the migration guide for details.

Browser support

All bundles are now compiled for Chrome 107, Edge 107, Firefox 84 (KaiOS 3) and Safari 16. In v9 the CommonJS and UMD bundles were compiled down to ES5 syntax. Now they keep modern syntax such as const, arrow functions, spread and classes, like the ES module bundles.

Component is a native class in every bundle. A component class that your compiler turns into an ES5 function, for example with TypeScript target: "ES5", throws TypeError: Class constructor Component cannot be invoked without 'new'. Compile your components to ES2015 or newer. See the migration guide for details.

Deprecations
create* vNode factories

newVNode, newComponentVNode, newTextVNode and newFragment replace createVNode, createComponentVNode, createTextVNode and createFragment. The new factories take the shape of the children as a bit in flags, so Inferno uses the flags as given. The v10 JSX plugins emit the new factories.

The old factories are marked @deprecated and keep working. They turn their childFlags argument into its bit and call the new factories.

import { newVNode, newFragment } from 'inferno';
import { VNodeFlags } from 'inferno-vnode-flags';

// v9: createVNode(VNodeFlags.HtmlElement, 'div', 'foo', 'text', ChildFlags.HasTextChildren)
newVNode(
  VNodeFlags.HtmlElement | VNodeFlags.HasTextChildren,
  'div',
  'foo',
  'text',
);

// v9: createFragment(children, ChildFlags.HasKeyedChildren, key)
newFragment(VNodeFlags.Fragment | VNodeFlags.HasKeyedChildren, children, key);

When you copy flags from another vNode, clear the copied state first with flags & VNodeFlags.ClearOnCopy, then add the new child bit. See the migration guide for the full contract.

New features
Custom navigation confirmation in inferno-router

Browsers can suppress the native window.confirm dialog, for example iOS Safari when Back navigation triggers it. A suppressed dialog returns false, so the navigation stayed blocked. Router, BrowserRouter, HashRouter and MemoryRouter now accept a getUserConfirmation prop, so <Prompt> can use your own in-page dialog. Fixes #​1699.

import {
  BrowserRouter,
  Prompt,
  type GetUserConfirmation,
} from 'inferno-router';

const getUserConfirmation: GetUserConfirmation = (message, callback) => {
  // Render your dialog and return a function that closes it
  return showLeaveDialog({
    message,
    onLeave: () => callback(true),
    onStay: () => callback(false),
  });
};

<BrowserRouter getUserConfirmation={getUserConfirmation}>
  <Prompt when={hasUnsavedChanges} message="Discard your changes?" />
  {/* routes */}
</BrowserRouter>;

The handler can answer synchronously or later. The cleanup function it returns runs once when the decision completes or is invalidated. Without the prop, Prompt keeps using window.confirm. See the inferno-router README for the details.

Rewritten inferno-animation

The public API is the same. (#​1702)

  • Items that are pushed aside by a moved item animate too, not only the moved ones.
  • A move interrupted by another update continues from where it is on screen.
  • When leaving items are removed, the remaining items slide into the gap.
  • Offsets take 2D transforms of ancestors into account, also across shadow roots, as well as the SVG viewBox and the item's own scale and rotate. CSS zoom, perspective and rotation other than around z are not supported.
  • Nested lists move relative to an ancestor that starts moving in the same update.
  • A leave that interrupts an enter starts from where the enter got to.
  • Items with CSS keyframe or script animations move with the translate property instead of transform.
  • The app's inline styles are restored after an animation.
  • Transitions with zero duration no longer leave items stuck.
  • Transition handling shares two capture listeners per root (transitionend and transitioncancel) and groups fallback timers.
  • The move engine is dormant until a component with a move hook mounts. Apps that don't import inferno-animation don't pay for move support: bundlers drop the reconciler's checks.
  • inferno-animation/index.css is exported from the package.

Minified and gzipped, inferno-animation is 9.92 kB for the UMD bundle and 9.82 kB for the CommonJS bundle.

More boolean attributes

async, defer, disablePictureInPicture, disableRemotePlayback, formNoValidate, inert, itemScope, noModule and playsInline are now boolean attributes. Boolean attributes are written as attributes with their lowercase name, so both spellings work, for example readOnly and readonly or allowFullScreen and allowfullscreen. hidden and capture keep a string value such as hidden="until-found" or capture="user".

checked, indeterminate, muted and selected hold the current state of the element, so they are still set as properties.

autoFocus works on mount

Props are applied to an element before it is inserted into the document, so autoFocus focuses the element when it mounts.

TypeScript
  • createElement has separate overloads for DOM elements, function and forwardRef components, and class components, with improved support for callback and object refs.
  • Lifecycle hooks of function components may be null.
  • A multiple <select> accepts number[] as its value.
  • inferno-compat: render<T>() and unstable_renderSubtreeIntoContainer<T>() are generic in the returned instance; render accepts a callback; Children.*, createFactory, PropTypes and PureComponent have accurate types; camelCase and numeric style objects and onDoubleClick are accepted.
  • inferno-extras: findDOMNode() accepts any component instance, null and undefined.
  • inferno-mobx: inject() returns the actual injector type, exported as InjectedComponent and IInjector. observerWrap accepts a typed context. The observer(stores) decorator returns the component.
  • inferno-redux: connect() accepts all the options it forwards.
  • The types condition comes first in each package's exports, so TypeScript no longer finds the types only through a fallback.
  • Published typings no longer import packages that are not dependencies.
Performance
  • Smaller vNodes. Each vNode is 4 bytes smaller in Chrome and 32 bytes smaller in Firefox, where the object drops to a smaller size class.
  • Child flags at compile time. The JSX plugins write the shape of the children into the flags as one number, so the runtime does no work to combine them.
  • Delegated events. An element with one delegated handler takes 16 bytes less in Chrome. Unmounting an element visits only the events it registered, and event dispatch tests one bit before reading a handler.
  • Keyed diffing. The key index is a Map. Numeric keys such as row ids made a plain object fall back to a dictionary that was reallocated as it grew. This removes 45–50 KiB of garbage per "replace all rows" in js-framework-benchmark.
  • vNode reuse. A vNode referenced outside of render, such as a hoisted vNode, the root passed to render() again or the root returned by a component, is no longer cloned when it is rendered again in the same position. Children that go through normalization are cloned only when needed, so a component that renders props.children no longer allocates new vNodes for them on every update.
  • Normalization. Index keys of children without a key are shared instead of being allocated as new strings on every render.
  • Unmount. The unmount routine allocates less.
Bug fixes
Core
  • A vNode used in two positions shared its DOM node and state between them, and only one position was updated afterwards.
  • An element vNode with multiple children that was rendered in two places was updated in only one of them.
  • A hoisted vNode with multiple children rendered the children of another vNode after an element of the same type was patched in its place.
  • A component was unmounted and mounted again, losing its state, when the element rendered in its place was equal but had been normalized as the child of another element.
  • Removing a Fragment with exactly one child did not unmount the child: componentWillUnmount was not called and refs were not cleared.
  • Re-rendering a Portal with a different container threw Failed to execute 'removeChild' on 'Node' when its child was a component or a Fragment.
  • Reusing a vNode broke dangerouslySetInnerHTML.
  • Changing style from a string to an object kept the declarations of the string.
  • An <option> without a value prop got the value "undefined".
  • hidden and capture kept their string value when they changed to true.
  • A ref passed to a forwardRef component through spread props was lost, and so were the lifecycle hooks that came with it.
  • Development errors named a forwardRef component "Object".
  • displayName now takes priority over the function or class name in development messages.
  • createElement passed onComponentWillMove as a prop instead of a hook.
  • cloneVNode, createElement and h wrote into the props object passed to them.
  • Importing inferno as a native ES module in a browser threw because process is not defined.
inferno-hydrate
  • Hydration used a vNode that was already mounted elsewhere for the server-rendered DOM node, so one of the positions was not updated afterwards.
  • Hydrating a Fragment with exactly one child broke the DOM.
  • SVG elements with camelCase tag names, such as <linearGradient>, were replaced instead of hydrated.
  • Appear hooks of components mounted after a mismatch were never called.
inferno-server
  • A Fragment with exactly one child rendered an empty placeholder comment instead of its content.
  • A Fragment with an empty children array and explicit child flags rendered nothing, which did not match the browser, and the next render after hydration threw.
  • Rendering crashed when a component returned an array containing null, undefined or booleans.
  • streamAsString failed and streamQueueAsString never finished when the tree contained a number as text.
  • RenderQueueStream never ended as a readable stream.
  • renderToString threw for an <option> inside a Fragment.
  • Stream renderers did not mark the <option> selected by the <select> value. Multiple select values and the <select> defaultValue were ignored.
  • defaultValue and defaultChecked were rendered over a controlled value.
  • The value of a <textarea> was rendered as an attribute instead of its content.
  • dangerouslySetInnerHTML={undefined} crashed, and renderToString and streamQueueAsString rendered the children instead of dangerouslySetInnerHTML.
  • Server renderers check a tag name before writing it, and throw an Error for an invalid one instead of a string of HTML.
  • componentWillMount was called for a component with getSnapshotBeforeUpdate, and getChildContext was called before componentWillMount.
  • streamAsString rendered without props when the constructor did not pass them to super.
  • streamQueueAsString skipped getDerivedStateFromProps for a component with getInitialProps.
  • The UMD bundle threw when it was loaded in a browser.
inferno-router
  • Prompt stopped blocking after the first confirmed transition.
  • In Chromium, HashRouter lost Back navigation accepted through a synchronous confirmation, such as window.confirm, and left the next Back navigation unblocked.
  • Redirect in a Switch went to its to path without the matched params, and Redirect dropped the state of a location object.
  • Switch dropped the key of the matched Route and crashed on false, null and undefined children.
  • Link with target="_self" loaded the page from the server.
  • Loaders:
    • A loader that threw or returned synchronously stopped the navigation.
    • A loader that resolved to null was reported as an error.
    • After navigating, every matching route in a Switch ran its loader, not only the matched one.
    • The request passed to a loader had no query string.
    • A Route without a path that had a loader never rendered.
    • Pending loaders were not aborted when the router unmounted.
  • StaticRouter stripped its basename from paths that only start with it, such as /application with the basename /app.
  • The UMD bundle could not find history and path-to-regexp.
inferno-compat
  • PureComponent crashed on setState without an initial state.
  • fontVariant was not mapped to font-variant.
  • Props named like Object.prototype members, such as toString and constructor, were mapped wrong.
inferno-mobx
  • observer dropped the arguments of patched lifecycle methods.
  • observerWrap failed when an observable change rendered another root element.
  • observerPatch and observerWrap kept reactions alive in server rendering. They now follow useStaticRendering.
inferno-redux
  • The UMD bundle read Redux from the wrong global.
For contributors
  • The repository uses pnpm instead of Lerna (#​1698). Internal dependencies use workspace:*, which is published as the exact version.
  • Browser tests run with Jasmine Browser Runner instead of Karma, in headless browsers locally (#​1701).
  • All tests are written in TypeScript (#​1632).
  • Differential fuzzers test vNode reuse in rendering and hydration.

Full list of changes: infernojs/inferno@v9.1.0...v10.0.0

v9.1.0

Compare Source

Inferno-core
  • Updated to Typescript v6
  • Fixed an issue where inferno-router types were not exposed through package root. #​1696

v9.0.11

Compare Source

Inferno-core

v9.0.10

Compare Source

Inferno-router

v9.0.9

Compare Source

Inferno-Router
  • Allow using linkEvent as clickHandler in <Link> component
  • updated path-to-regexp to 8.3.0

v9.0.8

Compare Source

Inferno-core
  • Optimized development mode key validation 934584b

v9.0.7

Compare Source

Inferno server
  • Fixes XSS vulnerability through inline style attribute and default checked prop. #​1692 d81a2f8

note: v9.0.6 was skipped due to NPM publication error

v9.0.5

Compare Source

Inferno core
  • Fixes a regression from v9.0.4 where user entered value got overriden by input elements default value for non-controlled input fields. #​1689

v9.0.4

Compare Source

v9.0.4
New Contributors

Full Changelog: infernojs/inferno@v9.0.3...v9.0.4

v9.0.3

Compare Source

Inferno core

"Inferno is in development mode" - console log entry removed #​1573, Inferno will still throw warning when:

v9.0.2

Compare Source

Typescript
  • Fixes a bug where using javascript component from typescript side caused type definition error #​1675
  • TSX attributes were updated 8155d7e
  • Added missing "type" attribute for HTML Video element #​1674

v9.0.1

Compare Source

inferno-core
  • Fixes an issue where TS typings could not be resolved through exports entry #​1673 b46181c

v9.0.0

Compare Source

Inferno v9.0.0

This is maintenance release. it drops support for old browser versions including IE and removes old coding patterns.
InfernoJs source code has been modernized to support latest versions of tooling.

Breaking changes

inferno-create-class has been removed, use createComponentVNode, createElement APIs instead.
If you were using createClass to wrap the class into observable you can do the same by extending inferno component.

observer(
  class MyCom extends Component {
    componentWillReact() {
      willReactCount++;
    }

    render() {
      return (
        <div id="x">
          {[foo.a.get(), foo.b.get(), foo.c.get()].join(',')}
        </div>
      );
    }
  },
);

Inferno v9 requires following features to be present in the executing runtime:

  • Promise
  • String.prototype.includes()
  • String.prototype.startsWith()
  • Array.prototype.includes()
  • Object.spread()

options.componentComparator has been removed
options.renderComplete has been removed, same result can be achieved by calling own function after render

ES module bundle extension is now .mjs

inferno.esnext.js bundle has been removed and replaced with inferno.mjs bundle.
The following bundles have been renamed:

inferno.esm.js is now inferno.mjs

inferno.dev.esm.js is now inferno.dev.mjs

You may need to change how you are loading inferno dev & production bundles.
for example Webpack config:

...
    resolve : {
        alias: {
            'inferno': isProduction ? 'inferno/dist/index.mjs' : 'inferno/dist/index.dev.mjs',
        }
    },
....
Inferno-core
  • Reworked development mode related inferno warnings #​1666
  • Removed click event propagation hack for FireFox 8d0afbe
  • Dependency to hoist-non-inferno-statics removed
  • Multiple typescript type improvements
Inferno-router
  • path-to-regexp-es6 changed to path-to-regexp to include recent bugfixes and address security vulnerability
Inferno-server
  • Fixes an issue where inferno server renders empty style attribute 192a650
Announcing swc-plugin-inferno

swc-plugin-inferno plugin can compile JSX and TSX syntax for inferno specific virtual nodes. It offers improved compilation time compared to existing plugins. In addition it has access to typescript type information which can be used in future for optimizations and new features.

Below chart compares compilation time of inferno repository tests using different compilers.

image

Inferno now supports Eslint v9
Starter template update

The following repository has been updated to create a reference how to use inferno with latest tech including:

Inferno v9
Webpack v5
Typescript v5
SWC v1 see [swc-plugin-inferno](https://redirect.github.com/infernojs/swc-plugin-inferno)
Tailwind v4
PostCSS v8
Eslint v9

https://github.com/infernojs/inferno-swc-example

v8.2.3

Compare Source

Inferno-core
  • FormEvent event.target has been explicitly defined for this event type c337fdd
Inferno-router

v8.2.2

Compare Source

Inferno-Router
  • Fixes Uncaught TypeError: e is not a function call error in <Prompt/> component by adapting to a new history blocking API 68213f0
Internal
  • Internal dependencies have been updated

v8.2.1

Compare Source

Inferno v8.2.1
Inferno core
  • Fixes an issue where type ComponenType<P> was not assignable to parameter "type" of createComponentVNode method 4bc0268

v8.2.0

Compare Source

Inferno v8.2.0
Inferno router
Internal
  • Internal dependencies have been updated
  • Jasmine updated to v5 and lowest testing target of FireFox browser is now v91 due to limited browser support in latest version of jasmine

v8.1.1

Compare Source

Typescript
  • added types for inline CSS variables
  • added types for SVG attributes in native format
  • added types for indeterminate and for native attributes
Internal

v8.1.0: Inferno v8.1.0

Compare Source

Typescript
  • Breaking change Inferno.JSX.Element type has been removed in favor of more correct automatic typing
    • InfernoNode and InfernoNodeSingle has been added as top level exports to inferno package.
    • InfernoNode can be used as a replacement for Inferno.JSX.Element for type checking "any" JSX entry
    • InfernoNodeSingle can be used to restrict Component children to a single JSX node ( excluding arrays )
      This fixes issue: #​1630
  • $ReCreate attribute has been added to allowed TSX attributes
  • selectedIndex property has been added to allowed select attributes
  • type Key has been unified and moved as top level export of inferno package
  • math formula elements are now allowed in TSX
  • Typescript has been upgraded to v5
  • media element is now correctly typed in TSX
Inferno-vnode-flags
  • 0 is now reserved for unknown value
Internal
  • all inferno package tests has been converted to TSX
  • development dependencies updated

v8.0.6: Inferno v8.0.6

Compare Source

Typescript
  • This release brings back native html event listener types, fixes: #​1622
Inferno
  • Internal dependencies updated

v8.0.5: Inferno v8.0.5

Compare Source

Typescript
  • Typescript typing improvements #​1612
Inferno router
  • Fixes an issue where state was no longer passed to history #​1608 e3c3deb
  • Implements className function to be compatible with React router #​1613

v8.0.4

Compare Source

Typescript
  • Adds type information for Animation hooks 77acc73
  • AnimatedMoveComponent, PureComponent and Component are now abstract classes to indicate they must be extended
  • All attributes now accept null value eb88122
  • Refs now accept null value 12be729
Internal
  • Dependencies updated to latest versions
  • Rollup plugin bubble replaced with babel

v8.0.3: Inferno v8.0.3

Compare Source

Inferno-core
Typescript
  • Added back types for CssProperties, correctly typed with hyphen case, fixes #​1604
Dependencies
  • inferno-shared moved to devDependencies in all packages 231d717

v8.0.2: Inferno v8.0.2

Compare Source

Typescript
  • Reverted Component state from read-only to mutable object
  • inferno-router typings improved
  • type IComponentConstructor removed it was not needed for anything

v8.0.1: Inferno v8.0.1

Compare Source

Typescript
  • Fixes an issue where mixing React and Inferno in same application failed to resolve JSX Component type #​1599 5192eef

v8.0.0: Inferno v8.0.0

Compare Source

Inferno
Typescript
  • Added basic support for JSX Component default props 696006c
  • Added missing optimization flag #​1595
Inferno-animation

Special thanks for improving inferno animations to @​jhsware

Inferno-router
  • history package has been updated to version 5
Inferno-mobx
  • Document details about server side rendering for inferno-mobx d0ed1ca
  • Forward exceptions thrown by render so MobX does not eat them 0165ff0
  • inferno-mobx observer now correctly throws an exception for incompatible components 2da4cb6
  • Clean up new inferno-mobx examples 779f04f
  • Added observerPatch to inferno-mobx 8b6750f

Special thanks for improving inferno-mobx to @​Gwenio

Build system and internal changes
Breaking changes
  • VNodeFlags.Void has been removed c658a41, use null or undefined vNode instead
  • Internet Explorer is not actively tested anymore due to Internet Explorer retiring on June 15, 2022 and jasmine v4 has dropped IE support https://github.com/jasmine/jasmine/blob/main/release_notes/4.0.0.md
  • inferno-component package has been removed. Component is available in "inferno" main package
  • inferno-devtools is discontinued 537cb2d
  • method findDOMfromVNode is now called findDOMFromVNode
  • method isDOMinsideComponent is now called isDOMInsideComponent

v7.4.11: Inferno v7.4.11

Compare Source

  • Fixes an issue where top level context becomes null if Fragment was rendered having single child node #​1579

v7.4.10: Inferno v7.4.10

Compare Source

All packages

This release fixes a possible supply chain attack by adding repository link to all packages #​1574

v7.4.9: Inferno v7.4.9

Compare Source

Inferno-core
  • Adds typing support for lazy loading images e34e287
  • Fixes an issue where normalizeProps overrides explicitly defined class name property 592e065
Inferno-router
  • Adds typing support for title and other html element attributes to Link component 6480b05

v7.4.8: Inferno v7.4.8

Compare Source

Inferno core

Fixes an issue where shouldComponentUpdate gets called after forceUpdate if there were pending state changes on the given component #​1534 #​1535
Inernal dependencies updated

v7.4.7: Inferno v7.4.7

Compare Source

Inferno-core

This release fixes wrong "latest" tag in npm registry after v5 hotfix
Internal dependencies updated 90e2daa
License year updated 1f06cdd

v7.4.6: Inferno v7.4.6

Compare Source

Inferno all packages

This release fixes broken UMD bundle header in all packages #​1527

v7.4.5: Inferno v7.4.5

Compare Source

Inferno-core

Improved createRef() type

Inferno-server

Fixes a bug where rendering forwardRef component server side failed to exception. #​1523

v7.4.4: Inferno v7.4.4

Compare Source

Inferno-router

Navlink component typescript typings have been improved and it does not require all properties to be set anymore. This fixes Github issue #​1518

Internal dependencies were updated

v7.4.3: Inferno v7.4.3

Compare Source

Inferno core

Optimized rendering functional component 1af165f
Optimized cloneFragment method 85eba12

Internal development dependencies have been upgraded

v7.4.2: Inferno v7.4.2

Compare Source

Inferno core

Fixes an issue introduced in v7.4.1 where setState callback was called even if component got unmounted 0e6b243

v7.4.1: Inferno v7.4.1

Compare Source

Inferno core

Fixes an issue where all setState callbacks were not called after chaining multiple setStates during asynchronous flow

Inferno router

Fixes typings of IRouteProps component 078b323

v7.4.0: Inferno v7.4.0

Compare Source

Inferno-server
  • Adds support for rendering array from Component root. 9396ade
Inferno-compat
  • Removed always truthy conditions from Children methods fb9d5fe

v7.3.3: Inferno v7.3.3

Compare Source

Inferno Router
  • History package updated to v4.10.1
Inferno Redux
  • Provider component typings fixed #​1495

All internal dependencies updated

v7.3.2: Inferno v7.3.2

Compare Source

Inferno core
  • Fixes an issue where inferno does not load in IE8 #​1491

v7.3.1: Inferno v7.3.1

Compare Source

Inferno-hydration
  • Fixes an issue where hydrating forwardRef Component crashed #​1486 646753c

v7.3.0: Inferno v7.3.0

Compare Source

Inferno-core

v7.2.1: Inferno v7.2.1

Compare Source

Inferno-core
  • Fixes an issue caused by Release 7.2.0 where events were not updated correctly be677f9
  • Simplified and optimized Synthetic event patch routines

v7.2.0: Inferno v7.2.0

Compare Source

Inferno-core
  • Adds support for defaultHooks when using forwardRef functional components
  • Fixes performance regression between 7.0.2 and 7.1.13
General
  • All dependencies updated
  • UglifyJS has been replaced with TerserJS

v7.1.13: Inferno v7.1.13

Compare Source

Inferno-core
  • Fixes a bug where extending forwardRef component was not possible #​1473
Inferno-devtools
  • Fixes a bug where inferno-devtools did not start #​1479

v7.1.12: Inferno 7.1.12

Compare Source

Inferno core
  • Fixes an issue where value of Inferno.createRef() did not update correctly #​1465 #​1466
  • Fixes an issue where <select> element selectIndex attribute was rendered to DOM #​1468

v7.1.11: Inferno v7.1.11

Compare Source

Inferno-core

Example:

    class Foo extends Component {
        // just added to force the warnings
        static getDerivedStateFromProps() { }

         componentWillMount() { }

         componentWillReceiveProps() { }

         componentWillUpdate() { }

         render() {
             return <div>Foo</div>;
         }
    }

    Foo.prototype.componentWillMount.__suppressDeprecationWarning = true;
    Foo.prototype.componentWillReceiveProps.__suppressDeprecationWarning = true;
    Foo.prototype.componentWillUpdate.__suppressDeprecationWarning = true;

v7.1.10: Inferno v7.1.10

Compare Source

Inferno-test-utils

Removed props.children from snapshot when using inferno-compat. Fixes #​1451

v7.1.9: Inferno v7.1.9

Compare Source

Inferno core
  • Changed opencollective script to use opencollective-postinstall package to reduce inferno package size #​1450

v7.1.8: Inferno v7.1.8

Compare Source

Inferno core
  • Fixes an issue where vNode key could change after multiple normalizations #​1447

v7.1.7: Inferno v7.1.7

Compare Source

All packages

Fixes an issue where not all typing information was published to npm

  • versions 7.1.3 - 7.1.6 skipped due to this error

v7.1.6

Compare Source

v7.1.5

Compare Source

v7.1.4

Compare Source

v7.1.3

Compare Source

v7.1.2: Inferno v7.1.2

Compare Source

Inferno core
  • Moved isPropagationStopped & isDefaultPrevented methods from inferno-compat to inferno-core synthetic events only. This fixes compatibility issue between inferno-compat and video.js - e6666bd
Inferno router
  • Fixes an issue where Switch component did not render nested-array children correctly #​1441

v7.1.1: Inferno v7.1.1

Compare Source

Inferno core
  • Optimizes LIS algorithm performance #​1438

v7.1.0: Inferno v7.1.0

Compare Source

Inferno core
  • Non synthetic events are now using addEventListener API instead of directly assigning event callbacks to html node. This adds support for events which have non standard inline API for example: transitionend
    https://developer.mozilla.org/en-US/docs/Web/Events/transitionend
  • Fixes a bug where forwardRef -Component got wrong ref parmeter during patch. #​1436
  • Adds support for selectIndex -property for select elements. #​1425
  • All internal depen

[!IMPORTANT]
✂ PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • "after 10pm,before 5:00am"
  • Automerge
    • "after 10pm and before 5:00am"

🚦 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 review from a team and a balanced review from Copilot October 13, 2026 01:59
@renovate renovate Bot added the dependencies Updates a dependency label Oct 13, 2026
@bpmn-io-tasks bpmn-io-tasks Bot added the needs review Review pending label Oct 13, 2026
@renovate

renovate Bot commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor Author

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: package-lock.json
npm warn Unknown env config "store". This will error in a future major version of npm. See `npm help npmrc` for supported config options.
npm error code ERESOLVE
npm error ERESOLVE could not resolve
npm error
npm error While resolving: babel-plugin-inferno@5.1.0
npm error Found: inferno@10.0.0
npm error node_modules/inferno
npm error   dev inferno@"^10.0.0" from the root project
npm error
npm error Could not resolve dependency:
npm error peer inferno@"^5" from babel-plugin-inferno@5.1.0
npm error node_modules/babel-plugin-inferno
npm error   dev babel-plugin-inferno@"^5.1.0" from the root project
npm error
npm error Conflicting peer dependency: inferno@5.6.3
npm error node_modules/inferno
npm error   peer inferno@"^5" from babel-plugin-inferno@5.1.0
npm error   node_modules/babel-plugin-inferno
npm error     dev babel-plugin-inferno@"^5.1.0" from the root project
npm error
npm error Fix the upstream dependency conflict, or retry this command with --force or --legacy-peer-deps to accept an incorrect (and potentially broken) dependency resolution.
npm error
npm error
npm error For a full report see:
npm error /runner/cache/others/npm/_logs/2026-10-13T17_34_40_543Z-eresolve-report.txt
npm error A complete log of this run can be found in: /runner/cache/others/npm/_logs/2026-10-13T17_34_40_543Z-debug-0.log

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The compiler, test utilities, and lockfile remain on Inferno 5 and are incompatible with the v10 runtime.

1 open finding
What changed in this PR

Updates Inferno from v5 to v10 for development and peer consumers.

Changes:

  • Raises the Inferno development and peer dependency ranges to v10.
File Description
package.json Updates Inferno dependency constraints.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread package.json
"eslint": "^9.39.4",
"eslint-plugin-bpmn-io": "^2.2.0",
"inferno": "^5.6.3",
"inferno": "^10.0.0",
@nikku nikku closed this Oct 13, 2026
@bpmn-io-tasks bpmn-io-tasks Bot removed the needs review Review pending label Oct 13, 2026
@renovate

renovate Bot commented Oct 13, 2026

Copy link
Copy Markdown
Contributor Author

Renovate Ignore Notification

Because you closed this PR without merging, Renovate will ignore this update. You will not get PRs for any future 10.x releases. But if you manually upgrade to 10.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/inferno-10.x branch October 13, 2026 21:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Updates a dependency

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants