Repository navigation
chore: update dependency inferno to v10 - #111
renovate[bot] wants to merge 1 commit into
Conversation
|
There was a problem hiding this comment.
🟡 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.
| "eslint": "^9.39.4", | ||
| "eslint-plugin-bpmn-io": "^2.2.0", | ||
| "inferno": "^5.6.3", | ||
| "inferno": "^10.0.0", |
Renovate Ignore NotificationBecause you closed this PR without merging, Renovate will ignore this update. You will not get PRs for any future If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR. |

Note
This PR body was truncated due to platform limits.
This PR contains the following updates:
^5.0.5→^10.0.0^5.6.3→^10.0.0Release Notes
infernojs/inferno (inferno)
v10.0.0Compare 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 toinferno-router, and fixes many bugs in core, hydration, server rendering, the router, compat and the MobX bindings.Upgrading
Update every
inferno*package to 10.Update your JSX plugin to version 10:
babel-plugin-infernots-plugin-infernoswc-plugin-infernoVersion 10 of
babel-plugin-infernoandts-plugin-infernorequires Node.js 24 or newer to compile JSX.ts-plugin-infernodepends on TypeScript 6.Compile all your JSX again, including dependencies that ship precompiled JSX.
If you write your own
componentWillMoveoronComponentWillMovehooks, addimport 'inferno-animation'. See Move animation hooks.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
VNodeFlagshave 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.VNodeFlagshave new values. Code compiled withtscagainstinferno-vnode-flags9 has the old numbers inlined and must be compiled again. Never write flag numbers by hand.vNode.childFlagshas been removed. The shape of the children is stored in bits ofvNode.flags. Test them withVNodeFlags.HasKeyedChildrenand the otherHas*Childrenbits, or get the oldChildFlagsvalue with the newgetChildFlags(vNode)export.vNode.isValidatedhas been removed. It is the development-onlyVNodeFlags.Validatedbit now.$ReCreateandVNodeFlags.ReCreatehave been removed. Change the key of an element to re-create it. The v10 plugins report$ReCreateas a build error.$EVis 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.Componentis a native class in all of them. See Browser support.Move animation hooks
The reconciler no longer runs move animations itself.
inferno-animationinstalls a move engine when it is imported.componentWillMoveandonComponentWillMovehooks are only called when the app has importedinferno-animation. The exported animated components and helpers already import it.componentWillMovemust exist by the end of its mount. A hook assigned later is not called.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.Componentis a native class in every bundle. A component class that your compiler turns into an ES5 function, for example with TypeScripttarget: "ES5", throwsTypeError: Class constructor Component cannot be invoked without 'new'. Compile your components to ES2015 or newer. See the migration guide for details.Deprecations
create*vNode factoriesnewVNode,newComponentVNode,newTextVNodeandnewFragmentreplacecreateVNode,createComponentVNode,createTextVNodeandcreateFragment. The new factories take the shape of the children as a bit inflags, so Inferno uses the flags as given. The v10 JSX plugins emit the new factories.The old factories are marked
@deprecatedand keep working. They turn theirchildFlagsargument into its bit and call the new factories.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-routerBrowsers can suppress the native
window.confirmdialog, for example iOS Safari when Back navigation triggers it. A suppressed dialog returnsfalse, so the navigation stayed blocked.Router,BrowserRouter,HashRouterandMemoryRouternow accept agetUserConfirmationprop, so<Prompt>can use your own in-page dialog. Fixes #1699.The handler can answer synchronously or later. The cleanup function it returns runs once when the decision completes or is invalidated. Without the prop,
Promptkeeps usingwindow.confirm. See the inferno-router README for the details.Rewritten
inferno-animationThe public API is the same. (#1702)
viewBoxand the item's ownscaleandrotate. CSSzoom, perspective and rotation other than around z are not supported.translateproperty instead oftransform.transitionendandtransitioncancel) and groups fallback timers.inferno-animationdon't pay for move support: bundlers drop the reconciler's checks.inferno-animation/index.cssis exported from the package.Minified and gzipped,
inferno-animationis 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,noModuleandplaysInlineare now boolean attributes. Boolean attributes are written as attributes with their lowercase name, so both spellings work, for examplereadOnlyandreadonlyorallowFullScreenandallowfullscreen.hiddenandcapturekeep a string value such ashidden="until-found"orcapture="user".checked,indeterminate,mutedandselectedhold the current state of the element, so they are still set as properties.autoFocusworks on mountProps are applied to an element before it is inserted into the document, so
autoFocusfocuses the element when it mounts.TypeScript
createElementhas separate overloads for DOM elements, function andforwardRefcomponents, and class components, with improved support for callback and object refs.null.<select>acceptsnumber[]as its value.inferno-compat:render<T>()andunstable_renderSubtreeIntoContainer<T>()are generic in the returned instance;renderaccepts a callback;Children.*,createFactory,PropTypesandPureComponenthave accurate types; camelCase and numeric style objects andonDoubleClickare accepted.inferno-extras:findDOMNode()accepts any component instance,nullandundefined.inferno-mobx:inject()returns the actual injector type, exported asInjectedComponentandIInjector.observerWrapaccepts a typed context. Theobserver(stores)decorator returns the component.inferno-redux:connect()accepts all the options it forwards.typescondition comes first in each package'sexports, so TypeScript no longer finds the types only through a fallback.Performance
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.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 rendersprops.childrenno longer allocates new vNodes for them on every update.Bug fixes
Core
componentWillUnmountwas not called and refs were not cleared.Failed to execute 'removeChild' on 'Node'when its child was a component or a Fragment.dangerouslySetInnerHTML.stylefrom a string to an object kept the declarations of the string.<option>without avalueprop got the value"undefined".hiddenandcapturekept their string value when they changed totrue.refpassed to aforwardRefcomponent through spread props was lost, and so were the lifecycle hooks that came with it.forwardRefcomponent"Object".displayNamenow takes priority over the function or class name in development messages.createElementpassedonComponentWillMoveas a prop instead of a hook.cloneVNode,createElementandhwrote into the props object passed to them.infernoas a native ES module in a browser threw becauseprocessis not defined.inferno-hydrate
<linearGradient>, were replaced instead of hydrated.inferno-server
null,undefinedor booleans.streamAsStringfailed andstreamQueueAsStringnever finished when the tree contained a number as text.RenderQueueStreamnever ended as a readable stream.renderToStringthrew for an<option>inside a Fragment.<option>selected by the<select>value. Multiple select values and the<select>defaultValuewere ignored.defaultValueanddefaultCheckedwere rendered over a controlled value.<textarea>was rendered as an attribute instead of its content.dangerouslySetInnerHTML={undefined}crashed, andrenderToStringandstreamQueueAsStringrendered the children instead ofdangerouslySetInnerHTML.Errorfor an invalid one instead of a string of HTML.componentWillMountwas called for a component withgetSnapshotBeforeUpdate, andgetChildContextwas called beforecomponentWillMount.streamAsStringrendered without props when the constructor did not pass them tosuper.streamQueueAsStringskippedgetDerivedStateFromPropsfor a component withgetInitialProps.inferno-router
Promptstopped blocking after the first confirmed transition.HashRouterlost Back navigation accepted through a synchronous confirmation, such aswindow.confirm, and left the next Back navigation unblocked.Redirectin aSwitchwent to itstopath without the matched params, andRedirectdropped thestateof a location object.Switchdropped the key of the matchedRouteand crashed onfalse,nullandundefinedchildren.Linkwithtarget="_self"loaded the page from the server.nullwas reported as an error.Switchran its loader, not only the matched one.Routewithout apaththat had a loader never rendered.StaticRouterstripped itsbasenamefrom paths that only start with it, such as/applicationwith the basename/app.historyandpath-to-regexp.inferno-compat
PureComponentcrashed onsetStatewithout an initial state.fontVariantwas not mapped tofont-variant.Object.prototypemembers, such astoStringandconstructor, were mapped wrong.inferno-mobx
observerdropped the arguments of patched lifecycle methods.observerWrapfailed when an observable change rendered another root element.observerPatchandobserverWrapkept reactions alive in server rendering. They now followuseStaticRendering.inferno-redux
For contributors
workspace:*, which is published as the exact version.Full list of changes: infernojs/inferno@v9.1.0...v10.0.0
v9.1.0Compare Source
Inferno-core
inferno-routertypes were not exposed through package root. #1696v9.0.11Compare Source
Inferno-core
a5b4e73v9.0.10Compare Source
Inferno-router
path-to-regexpto v1 until #1691 https://redirect.github.com/pillarjs/path-to-regexp/discussions/414 are solvedv9.0.9Compare Source
Inferno-Router
linkEventas clickHandler in<Link>componentpath-to-regexpto 8.3.0v9.0.8Compare Source
Inferno-core
934584bv9.0.7Compare Source
Inferno server
d81a2f8note: v9.0.6 was skipped due to NPM publication error
v9.0.5Compare Source
Inferno core
v9.0.4Compare Source
v9.0.4
InfernoKeyedNode#1680New Contributors
Full Changelog: infernojs/inferno@v9.0.3...v9.0.4
v9.0.3Compare Source
Inferno core
"Inferno is in development mode" - console log entry removed #1573, Inferno will still throw warning when:
SKIP_INFERNO_WARNINGSis not set https://github.com/infernojs/inferno/blob/master/packages/inferno/src/index.ts#L37-L58v9.0.2Compare Source
Typescript
8155d7ev9.0.1Compare Source
inferno-core
b46181cv9.0.0Compare 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-classhas been removed, usecreateComponentVNode,createElementAPIs instead.If you were using
createClassto wrap the class into observable you can do the same by extending inferno component.Inferno v9 requires following features to be present in the executing runtime:
PromiseString.prototype.includes()String.prototype.startsWith()Array.prototype.includes()Object.spread()options.componentComparatorhas been removedoptions.renderCompletehas been removed, same result can be achieved by calling own function after renderES module bundle extension is now
.mjsinferno.esnext.jsbundle has been removed and replaced withinferno.mjsbundle.The following bundles have been renamed:
inferno.esm.jsis nowinferno.mjsinferno.dev.esm.jsis nowinferno.dev.mjsYou 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
8d0afbehoist-non-inferno-staticsremovedInferno-router
path-to-regexp-es6changed topath-to-regexpto include recent bugfixes and address security vulnerabilityInferno-server
192a650Announcing
swc-plugin-infernoswc-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.
Inferno now supports Eslint v9
eslint-plugin-infernoto lint test files. https://github.com/infernojs/inferno/blob/master/eslint.config.jsStarter template update
The following repository has been updated to create a reference how to use inferno with latest tech including:
https://github.com/infernojs/inferno-swc-example
v8.2.3Compare Source
Inferno-core
c337fddInferno-router
Switchcomponent where single route does not get resolved in resolveLoaders method https://redirect.github.com/infernojs/inferno/pull/1657/filesv8.2.2Compare Source
Inferno-Router
Uncaught TypeError: e is not a function callerror in<Prompt/>component by adapting to a new history blocking API68213f0Internal
v8.2.1Compare Source
Inferno v8.2.1
Inferno core
ComponenType<P>was not assignable to parameter"type"ofcreateComponentVNodemethod4bc0268v8.2.0Compare Source
Inferno v8.2.0
Inferno router
Internal
v8.1.1Compare Source
Typescript
indeterminateandfornative attributesInternal
v8.1.0: Inferno v8.1.0Compare Source
Typescript
Inferno.JSX.Elementtype has been removed in favor of more correct automatic typingInfernoNodeandInfernoNodeSinglehas been added as top level exports toinfernopackage.InfernoNodecan be used as a replacement forInferno.JSX.Elementfor type checking "any" JSX entryInfernoNodeSinglecan be used to restrict Component children to a single JSX node ( excluding arrays )This fixes issue: #1630
selectattributesKeyhas been unified and moved as top level export ofinfernopackageInferno-vnode-flags
Internal
v8.0.6: Inferno v8.0.6Compare Source
Typescript
Inferno
v8.0.5: Inferno v8.0.5Compare Source
Typescript
Inferno router
e3c3debv8.0.4Compare Source
Typescript
77acc73AnimatedMoveComponent,PureComponentandComponentare now abstract classes to indicate they must be extendednullvalueeb88122Refs now acceptnullvalue12be729Internal
v8.0.3: Inferno v8.0.3Compare Source
Inferno-core
7f76923de56ad6Typescript
Dependencies
inferno-sharedmoved to devDependencies in all packages231d717v8.0.2: Inferno v8.0.2Compare Source
Typescript
inferno-routertypings improvedIComponentConstructorremoved it was not needed for anythingv8.0.1: Inferno v8.0.1Compare Source
Typescript
5192eefv8.0.0: Inferno v8.0.0Compare Source
Inferno
componentWillMove,componentDidAppearandcomponentWillDisappearjavascript:URLs7bc3763String.prototype.substringinstead of deprecatedString.prototype.substr06195adhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr5c017e1Typescript
696006cInferno-animation
inferno-animationis a new package that eases animation work using inferno v8componentDidAppearandcomponentWillDisappearhooks to coordinate animations and reduce number of repaints browsers have to do https://github.com/infernojs/inferno/tree/master/packages/inferno-animation #1583Special thanks for improving inferno animations to @jhsware
Inferno-router
historypackage has been updated to version 5Inferno-mobx
d0ed1ca0165ff02da4cb6779f04f8b6750fSpecial thanks for improving inferno-mobx to @Gwenio
Build system and internal changes
614a1d2320be7dGHSA-gh88-3pxp-6fm84e36aa70abcc9fBreaking changes
VNodeFlags.Voidhas been removedc658a41, use null or undefined vNode insteadinferno-componentpackage has been removed. Component is available in "inferno" main packageinferno-devtoolsis discontinued537cb2dv7.4.11: Inferno v7.4.11Compare Source
v7.4.10: Inferno v7.4.10Compare 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.9Compare Source
Inferno-core
e34e287592e065Inferno-router
6480b05v7.4.8: Inferno v7.4.8Compare 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.7Compare Source
Inferno-core
This release fixes wrong "latest" tag in npm registry after v5 hotfix
Internal dependencies updated
90e2daaLicense year updated
1f06cddv7.4.6: Inferno v7.4.6Compare Source
Inferno all packages
This release fixes broken UMD bundle header in all packages #1527
v7.4.5: Inferno v7.4.5Compare 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.4Compare 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.3Compare Source
Inferno core
Optimized rendering functional component
1af165fOptimized cloneFragment method
85eba12Internal development dependencies have been upgraded
v7.4.2: Inferno v7.4.2Compare Source
Inferno core
Fixes an issue introduced in v7.4.1 where setState callback was called even if component got unmounted
0e6b243v7.4.1: Inferno v7.4.1Compare Source
Inferno core
Fixes an issue where all
setStatecallbacks were not called after chaining multiple setStates during asynchronous flowInferno router
Fixes typings of IRouteProps component
078b323v7.4.0: Inferno v7.4.0Compare Source
Inferno-server
9396adeInferno-compat
Childrenmethodsfb9d5fev7.3.3: Inferno v7.3.3Compare Source
Inferno Router
Inferno Redux
All internal dependencies updated
v7.3.2: Inferno v7.3.2Compare Source
Inferno core
v7.3.1: Inferno v7.3.1Compare Source
Inferno-hydration
forwardRefComponent crashed #1486646753cv7.3.0: Inferno v7.3.0Compare Source
Inferno-core
createPortalv7.2.1: Inferno v7.2.1Compare Source
Inferno-core
be677f9v7.2.0: Inferno v7.2.0Compare Source
Inferno-core
General
v7.1.13: Inferno v7.1.13Compare Source
Inferno-core
Inferno-devtools
v7.1.12: Inferno 7.1.12Compare Source
Inferno core
Inferno.createRef()did not update correctly #1465 #1466<select>elementselectIndexattribute was rendered to DOM #1468v7.1.11: Inferno v7.1.11Compare Source
Inferno-core
Example:
v7.1.10: Inferno v7.1.10Compare Source
Inferno-test-utils
Removed
props.childrenfrom snapshot when using inferno-compat. Fixes #1451v7.1.9: Inferno v7.1.9Compare Source
Inferno core
opencollective-postinstallpackage to reduce inferno package size #1450v7.1.8: Inferno v7.1.8Compare Source
Inferno core
v7.1.7: Inferno v7.1.7Compare Source
All packages
Fixes an issue where not all typing information was published to npm
v7.1.6Compare Source
v7.1.5Compare Source
v7.1.4Compare Source
v7.1.3Compare Source
v7.1.2: Inferno v7.1.2Compare Source
Inferno core
isPropagationStopped&isDefaultPreventedmethods frominferno-compattoinferno-coresynthetic events only. This fixes compatibility issue betweeninferno-compatand video.js -e6666bdInferno router
v7.1.1: Inferno v7.1.1Compare Source
Inferno core
v7.1.0: Inferno v7.1.0Compare Source
Inferno core
addEventListenerAPI instead of directly assigning event callbacks to html node. This adds support for events which have non standard inline API for example:transitionendhttps://developer.mozilla.org/en-US/docs/Web/Events/transitionend
refparmeter during patch. #1436selectIndex-property forselectelements. #1425Configuration
📅 Schedule: (UTC)
🚦 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.
This PR was generated by Mend Renovate. View the repository job log.