# Changelog

<!--

https://keepachangelog.com/en/1.0.0/

### Added
- new feature

### Changed
- for changes in existing functionality.

### Deprecated
- for soon-to-be removed features.

### Removed
- for now removed features.

### Fixed
- for any bug fixes.
-->

## 1.9.0 - 2026-08-04

### Added

- Added a separate rolldown plugin to support Vite 8

## 1.9.0-beta - 2026-05-08

### Added

- Support rolldown in Vite environments

## 1.8.9 - 2026-02-24

### Changed

- Bumped dependencies

## 1.8.8 - 2026-01-30

### Changed

- Improved default detection of yFiles modules

## 1.8.7 - 2025-10-16

### Changed

- Updated README

## 1.8.6 - 2025-09-25

### Fixed

- Moved `@babel/types` package from `devDependencies` to `dependencies`

## 1.8.5 - 2025-06-03

### Added

- Added "content" to the default excludes

## 1.8.4 - 2025-03-13

### Fixed

- Fixed an issue when using dynamic imports in a Vite build
 
## 1.8.3 - 2025-03-07

### Added

- Support new features in yFiles for HTML 3.0

## 1.8.2 - 2023-10-20

### Fixed

- Bumped the npm dependencies to avoid vulnerabilities reported by `npm audit`

## 1.8.1 - 2023-06-23

### Added

- Add exports to package.json

## 1.8.0 - 2023-06-22

### Added

- Introduced a Rollup/Vite Plugin in addition to the Webpack Plugin
- Improved the TypeScript typings for the optimizer API

## 1.7.4 - 2022-07-01

### Fixed

- Added some checks to the webpack plugin to make sure only modules that actually have sources are processed. Without these checks, the optimizer webpack plugin would throw when another loader/plugin failed to load a JS module.

## 1.7.3 - 2022-02-16

### Fixed

- Re-added the changelog to the npm package by explicitly listing all relevant files in the package.json.

## 1.7.2 - 2022-01-27

### Fixed

- In some cases, super calls in babel output were not detected and therefore not obfuscated.

## 1.7.1 - 2022-01-24

### Fixed

- Lock @babel/parser to 7.16.8 to avoid performance issues introduced with 7.16.10

## 1.7.0 - 2022-01-10

### Fixed

- Webpack plugin: detect and disable the [filesystem caching option](https://webpack.js.org/configuration/cache/) (Optimizer does not support it)
- Webpack plugin: don't break when [source maps](https://webpack.js.org/configuration/devtool/) are enabled.

## 1.6.1 - 2021-10-20

### Fixed

- Also obfuscate instance fields of babel's safe public class fields output with `obfuscateBabelSafePublicFields` enabled (before, just static fields were considered).

## 1.6.0 - 2021-08-25

### Added

- Support obfuscating babel's safe public class fields output, added the corresponding `obfuscateBabelSafePublicFields` option.
- Added TypeScript typings for the optimizer API

### Changed

- Add some default obfuscation excludes used by DOM API

## 1.5.0 - 2021-06-25

### Fixed

- Fixed obfuscation of Object.defineProperty declarations

## 1.5.0-beta.1 - 2021-05-25

### Added

- Webpack 5 compatibility

## 1.4.3 - 2020-11-24

### Changed

- Webpack plugin: fix error handling to prevent unhandled promise rejections.
- Don't obfuscate short identifiers.
- Clarify that the webpack plugin doesn't work with webpack 5, yet.

## 1.4.2 - 2020-08-17

### Changed

- Internal Refactoring

## 1.4.1 - 2020-08-17

### Fixed

- Fixed leftover espree usages

## 1.4.0 - 2020-08-17

### Changed

- Switch to babel libraries for improved modern EcmaScript language feature support
- Add some default obfuscation excludes used by popular JS frameworks (Angular, Vue.js) to the webpack plugin.

## 1.3.2 - 2020-06-08

### Fixed

- Fix yjs:keep comments sometimes not respected with node versions before 11

## 1.3.1 - 2020-06-08

### Fixed

- Fixed compatibility for yFiles for HTML 2.3 class framework features

## 1.3.0 - 2020-05-26

### Changed

- Switched from esprima to espree as the AST parser. This should enable the optimizer
  to work with code that uses the latest ECMAScript features.

## 1.2.1 - 2020-05-13

### Added

- Add some excludes to the internal blacklist for HTML 2.3

## 1.2.0 - 2020-05-06

### Added

- Compatibility for yFiles for HTML 2.3 class framework features

## 1.1.0 - 2020-04-28

### Added

- Add the "safeMode" option

## 1.0.7 - 2020-04-07

### Changed

- Update the escodegen dependency to npm so no git is required to use the optimizer.

## 1.0.6 - 2019-12-13

### Fixed

- Added a workaround for compatiblity of the Optimizer webpack plugin with `@angular-devkit/build-angular`versions greater than `0.802.2`.

  Since version `0.803.0`, the angular plugin resets the compiler host after the first module build, which interferes with the two-pass approach of the Optimizer plugin. As a workaround, the Optimizer plugin now activates webpack's watch mode when an angular webpack plugin is present. This prevents the reset call.

## 1.0.5 - 2019-08-22

### Fixed

- Fix obfuscation of [extra properties in option overloads](https://docs.yworks.com/yfileshtml/#/dguide/framework_option_overloads_extra_properties)

## 1.0.4 - 2019-08-21

### Added

- Fail if an unexpected library file structure is detected

## 1.0.3 - 2019-07-10

### Added

- "shouldOptimize" option for the webpack plugin

## 1.0.2 - 2019-06-13

### Fixed

- In rare cases, the optimizer could break overloaded method access for yFiles API members.

## 1.0.1 - 2019-04-17

### Added

- Ignore option for the webpack plugin

## 1.0.0 - 2019-04-04

### Added

- Plain Javascript Optimizer
- Optimizer Webpack Plugin
