This new release focuses on improving ESM support, reducing bundle size, and refining dependency management, along with updates to documentation, dependency bumps, and maintenance improvements. 🚀
Thanks to all the contributors of this release 🌈: @tbouffard
See milestone 0.46.0 to get the list of issues covered by this release.
Dependency Changes
Improved ESM Support
fast-xml-parser
and strnum
now provide ESM support, improving tree shaking and overall performance.
This also eliminates a warning when integrating bpmn-visualization
in Angular applications, which previously flagged CommonJS dependencies as potential issues.
For an example integration with Angular, see the TypeScript Angular example.
Bundle Size Reduction
The bundle size has slightly decreased, leading to improved efficiency:
- The minified IIFE bundle is now ~978.9 kB (previously 985.8 kB in 0.45.1) → 7 kB reduction.
- In the
bpmn-visualization
demo (built with Vite), themain.js
script (which includes fast-xml-parser) shrank from 130.57 kB to 122.73 kB.
Impact of Bundler Choice on Size Reduction
Because fast-xml-parser
is not currently marked as "side effects" free, the actual size reduction may vary depending on the bundler used.
For example, in the JavaScript Webpack example:
- With
bpmn-visualization
0.45.1, the bundle size was 980.2 kB. - With
bpmn-visualization
0.46.0, the bundle size is 980.1 kB → only 0.1 kB reduction.
This should improve in future releases. See fast-xml-parser issue #733 for updates.
Removal of strnum
as a Direct Dependency
We no longer declare strnum
as a direct dependency because:
- It is a transitive dependency (not used directly in our code), so it’s easier to let
fast-xml-parser
manage it. - It was initially pinned due to stability concerns, but experience has shown that
strnum
is stable enough. The version guard is no longer necessary.
What's Changed
Full Changelog: v0.45.1...v0.46.0
📝 Documentation
- docs: update "how-to bump mxgraph" with up-to-date information (#3274) @tbouffard
📦 Dependency updates
- chore(deps): bump es-toolkit from 1.31.0 to 1.33.0 (#3297) @dependabot[bot]
- chore(deps): bump fast-xml-parser from 4.5.1 to 5.0.8 (#3295) @dependabot[bot]
👻 Maintenance
- chore(dependabot): ignore some eslint dependencies (#3292) @tbouffard
- chore(dependabot): add @tailwind/css to the css group (#3281) @tbouffard
- chore: update syntax to import JSON modules (#3279) @tbouffard
- ci: fix "client-payload" in the event sent after npm publish (#3276) @tbouffard