Skip to content

Releases: javierbrea/eslint-plugin-boundaries

Enhance External/Local Dependency Classification for Monorepos

02 Feb 19:23
34c0c9d

Choose a tag to compare

eslint-plugin-boundaries v5.4.0

  • feat(#349): Add boundaries/flag-as-external setting to allow better control over external module identification
  • feat(#420): Remove rules validation during linting runtime to improve performance. Validation is performed at configuration load time using eslint schema validation.
  • chore: bump @boundaries/elements to 1.2.0

@boundaries/elements v1.2.0

  • feat: Add rootPath and flagAsExternal options to allow better control over external module identification.

website

  • feat: Add boundaries/flag-as-external setting to allow better control over external module identification
  • feat: Add "Monorepo Setup" guide to the documentation, explaining how to configure the plugin in monorepo projects using boundaries/flag-as-external setting.

Fix elements selector validation

06 Dec 09:00
157710a

Choose a tag to compare

@boundaries/eslint-plugin v5.3.1

Fixed

  • fix(#415): Fix elements selector validation error when selector is an empty array

@boundaries/elements v1.1.2

Fixed

  • fix: Update HANDLEBARS_TEMPLATE_REGEX to fix vulnerability with regex denial of service (ReDoS) attacks.

chore

Changed

  • chore: Bump pnpm to 10. Set pnpm security options. Detect shai-hulud dependencies in workflow
  • chore: bump baseline-browser-mapping to supress warnings

Documentation Website

23 Nov 10:20
de20d61

Choose a tag to compare

Website

  • docs: Add documentation website

@boundaries/eslint-plugin v5.3.0

Changed

  • docs: Update rule documentation URLs to point to the new JS Boundaries website instead of the GitHub repository. This change improves accessibility and user experience by directing users to a more user-friendly platform for documentation.

Fixed

  • fix: Add missing typeof dependency kind (bump @boundaries/elements to 1.1.1)

@boundaries/elements v1.1.1

Fixed

  • fix: Add missing typeof dependency kind

Improve performance

15 Nov 11:36
27c44f6

Choose a tag to compare

eslint-plugin v5.2.0

Added

  • feat: Start supporting new template data and syntax, as described in #370. Not added to the documentation yet, as it is still in beta testing phase.
  • feat: Add setting legacy-templates to enable/disable the old template data and syntax. By default, it is enabled for backward compatibility. Not added to the documentation yet, as the new template data and syntax is still in beta testing phase.
  • feat(#371): Publish eslint-plugin both to @boundaries/eslint-plugin and eslint-plugin-boundaries package names.
  • feat: Add cache setting to enable/disable the new cache mechanism used to boost performance. By default, it is enabled. We recommend to keep it enabled unless you experience issues. In such case, please, open an issue describing the problem.

Changed

  • feat: Improve performance in approximately 30% in large codebases by optimizing cache usage and reducing redundant computations when resolving elements and matching rules.
  • refactor(#371): Extract element descriptors and matching logic to a separate module to improve code organization, readability and reusability.
  • refactor: Overall performance improvements and code optimizations.
  • feat: Add empty schema to rules without options to validate them correctly.

Fixed

  • fix: Assign internalPaths correctly when in elements setting the mode is 'file' but the pattern matches folders, not files. Now it returns the correct internalPaths instead of the matched folder name.
  • fix: Assign relationships correctly in dependencies. Now ancestor and nephew relationships are assigned correctly. Previously, all ancestors with a common parent were considered uncles.

elements v1.1.0

Added

  • feat: Implement cache for micromatch results, regex and captures to improve performance.
  • feat: Add cache option to allow disabling the cache.

Changed

  • refactor: Overall performance improvements and code optimizations.

Fixed

  • fix: Fix cache performance issues by implementing custom string generation for well-known objects, and removing caching for keys based on complex objects to avoid performance degradation.
  • fix: Legacy selectors being an array with only one element now correctly treated as a single string selector.

Modularization - Beta 2

15 Nov 10:51
62f2854

Choose a tag to compare

Pre-release

eslint-plugin

Added

  • feat: Add cache setting to enable/disable the new cache mechanism used to boost performance. By default, it is enabled. We recommend to keep it enabled unless you experience issues. In such case, please, open an issue describing the problem.

Changed

  • feat: Boost performance to approximately 2x in large codebases by optimizing cache usage and reducing redundant computations when resolving elements and matching rules.
  • refactor: Overall performance improvements and code optimizations.

elements

Added

  • feat: Implement cache for micromatch results, regex and captures to improve performance.
  • feat: Add cache option to allow disabling the cache.

Changed

  • refactor: Overall performance improvements and code optimizations.

Fixed

  • fix: Fix cache performance issues by implementing custom string generation for well-known objects, and removing caching for keys based on complex objects to avoid performance degradation.
  • fix: Legacy selectors being an array with only one element now correctly treated as a single string selector.

Modularization - Beta 1

10 Nov 10:19
2fe5f40

Choose a tag to compare

Pre-release

Added

  • feat: Start supporting new template data and syntax, as described in #370. Not added to the documentation yet, as it is still in beta.
  • feat: Add setting legacy-templates to enable/disable the old template data and syntax. By default, it is enabled for backward compatibility. Not added to the documentation yet, as the new template data and syntax is still in beta.
  • feat: Avoid validating and processing settings in every file or node analysis. Implemented cache to improve performance.
  • feat(#371): Publish eslint-plugin both to @boundaries/eslint-plugin and eslint-plugin-boundaries package names.

Changed

  • feat: Add empty schema to rules without options to validate them correctly.
  • refactor(#371): Extract element descriptors and matching logic to a separate module to improve code organization, readability and reusability.

Fixed

  • fix: Assign internalPaths correctly when in elements setting the mode is 'file' but the pattern matches folders, not files. Now it returns the correct internalPaths instead of the matched folder name.
  • fix: Assign relationships correctly in dependencies. Now ancestor and nephew relationships are assigned correctly. Previously, all ancestors with a common parent were considered uncles.

Typings

14 Oct 18:14
c6d4225

Choose a tag to compare

Added

  • feat(#346): Add complete TypeScript typings for all plugin settings and rules. Export the main Config type along with individual rule and option types. Support for custom plugin name prefixes.
  • feat: Export constants and type guards for settings keys, rule names, and other configuration-related values.
  • feat: Introduce createConfig helper — ensures valid types, automatically includes the plugin, adds default JS/TS file patterns, and supports custom plugin name prefixes.
  • feat: Add /config export path, exposing the createConfig helper along with related constants and types.
  • feat: Validate dependency nodes — display a warning when a node specified through the additional-dependency-nodes setting is not a valid Literal.
  • feat: Add internal consistency checks — show a diagnostic message with a link to the repository issues page when an unexpected situation occurs.
  • test: Add eslint-plugin-boundaries-e2e private package — runs ESLint programmatically with multiple configurations to ensure plugin reliability across real-world scenarios. Focuses on validating configuration paths, types, and utilities, guaranteeing that the public API behaves correctly post-publication. (Functional behavior remains fully covered by the plugin’s unit tests.)

Typings Beta

13 Oct 16:40
4c20d45

Choose a tag to compare

Typings Beta Pre-release
Pre-release
  • feat(#346): Add complete TypeScript typings for all plugin settings and rules. Export the main Config type along with individual rule and option types. Support for custom plugin name prefixes.
  • feat: Export constants and type guards for settings keys, rule names, and other configuration-related values.
  • feat: Introduce createConfig helper — ensures valid types, automatically includes the plugin, adds default JS/TS file patterns, and supports custom plugin name prefixes.
  • feat: Add /config export path, exposing the createConfig helper along with related constants and types.
  • feat: Validate dependency nodes — display a warning when a node specified through the additional-dependency-nodes setting is not a valid Literal.
  • feat: Add internal consistency checks — show a diagnostic message with a link to the repository issues page when an unexpected situation occurs.
  • test: Add eslint-plugin-boundaries-e2e private package — runs ESLint programmatically with multiple configurations to ensure plugin reliability across real-world scenarios. Focuses on validating configuration paths, types, and utilities, guaranteeing that the public API behaves correctly post-publication. (Functional behavior remains fully covered by the plugin’s unit tests.)

Update dependencies

06 Oct 09:06
cc47c56

Choose a tag to compare

Changed

  • chore: Update dependencies
  • refactor: Fix Sonar smells

Fixed

  • docs(#350): Fix boundaries/elements setting name in README

Fix entry-point rule templating

11 Nov 17:28
0779f76

Choose a tag to compare

Fixed

  • fix(#340): Fix bug producing that target option had captured values from the target dependency when templating ${from} property (@DeyLak)