Change Log - Version 2.0.0 - Release Date August 28, 2020

Global changes

PJSD now has a new name, JSDefender, so we changed the pjsd- prefix of the package names to jsdefender-. There is also a new configuration file format, new protection transforms, and several other major changes since version 1.3. We have released an Upgrade Guide to help migration from PJSD 1.3 to JSDefender 2.0. We have also updated the full User Guide.

Note that this changelog only covers the changes since the 2.0.0 Preview release. See the 2.0.0 Preview changelog for the list of changes between 1.3.x and 2.0 preview.

Features

  • jsdefender-cli:

    • License validation now uses a new floating license model with Build and User flavors.
    • The CLI warns when newer JSDefender version is available.
    • The CLI does not display help automatically when it encounters errors. Instead, it warns the user with “Try jsdefender -h for usage information” message.
    • Display errors and warnings even in quiet mode.
  • jsdefender-core:

    • Allow emitting JSDefender Runtime into a separate file.
    • Allow injecting JSDefender Runtime into multiple source files.
    • localDeclaration.excludeIDs now accepts a single string, a list of strings, and even regular expressions to define a pattern for identifier exclusion.
  • jsdefender-metro-plugin:

    • Display errors and warnings even in quiet mode.
    • Now the protection is skipped in development mode by default and it can be overridden by setting the new enableInDevelopmentMode option to true.
  • jsdefender-webpack-plugin:

    • Now it injects JSDefender Runtime into each webchunk.
    • Display errors and warnings even in quiet mode.
    • Now the protection is skipped in development and none modes by default and it can be overridden by setting the new enableInDevelopmentMode option to true.

Fixes

  • jsdefender-core:
    • Fix the issue when selfDefending.level is set to 0.
    • PropertySparsingTransform now handles the empty string property name correctly.