# Changelog

All changes in this repository are noted here.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and the project uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## \[6.6.0] - 2026-09-01

* Warn on named imports from `@sitevision/api/**`, which only have a default export; named imports appear to work only because of Rollup’s synthetic named exports interop and provide no real type checking.

## \[6.5.0] - 2026-08-24

* Allow `for...of`, which is supported by modern JavaScript runtimes; retain the `for...in` restriction because it can enumerate inherited properties.
* Remove the redundant `guard-for-in` rule because `for...in` is already disallowed.
* Allow `continue` statements and `++`/`--` operators, which are valid modern JavaScript constructs.
* Remove `class-methods-use-this` and `max-classes-per-file`, which imposed organizational preferences rather than preventing defects.
* Remove the deprecated `no-return-await` rule; `return await` can improve async stack traces and error handling.
* Restrict only global `isFinite` and `isNaN`; remove the browser-global denylist and its browser-specific `window.*` guidance so the config supports non-browser runtimes.

## \[6.4.0] - 2026-05-10

* New plugin `import-naming` to enforce consistent naming for default imports from specified packages.
* Add rule `import-naming/match-package-default-import-name` to enforce that the default import name matches the module name for specified packages for `@sitevision/api`.
* Add `@sveltejs/vite-plugin-svelte` to `import/no-unresolved` as it is used in the tests.

## \[6.3.1] - 2026-02-25

* Add `vitest` to `import/no-unresolved` as it is used in the tests.
* Turn off `svelte/no-unused-props` for `values` in Svelte configurations.
*

## \[6.3.0] - 2026-01-16

* Migrate to `@stylistic/eslint-plugin` for stylistic rules.

## \[6.2.6] - 2025-05-26

* Add node globals to node config.
* Turn off `no-console` and `no-process-exit` in node config.

## \[6.2.5] - 2025-05-23

* Put types first in the import sort order.

## \[6.2.4] - 2025-05-23

* Add import settings for typescript config.

## \[6.2.3] - 2025-05-16

* Adjust sort order for some attributes in Svelte components.

## \[6.2.2] - 2025-04-02

* Exclude `$state` rune in `svelte/prefer-const`.

## \[6.2.1] - 2025-04-01

* Set `svelte/require-each-key` as warning instead of error.

## \[6.2.0] - 2025-03-31

* Update `eslint-plugin-svelte` version 3.
* Enable `svelte/html-self-closing`.
* Enable `svelte/prefer-const`.
* Allow caught errors to unused in `no-unused-vars`.
* Add path group override for `#` in `import/extensions`.
* Add experimental TypeScript support in a separate config.

## \[6.1.0] - 2025-03-18

* Adjust config for script modules to correct sourceType.
* Allow `underscore-dangle` for `__rekai`.

## \[6.0.2] - 2025-02-07

* Update definitions in package.json.

## \[6.0.1] - 2025-02-05

* Load Svelte configuration dynamically.
* Update references for publishing on npm.

## \[6.0.0] - 2025-02-04

* Update to ESLint 9 and format configuration files to flat config.
* Change `trailingComma` to ‘all’ in the Prettier configuration.
* Add global for `envision`.
* Renamed `legacy` to `script-module-config` as that is what it is used for.

## \[5.3.2] - 2024-12-13

* Turn off the rule `svelte/no-unused-svelte-ignore` as it causes issues.

## \[5.3.1] - 2024-11-15

* Remove `svelte-preprocess` from the installation script as it is not relevant for eslint.

## \[5.3.0] - 2024-10-21

* Adjust rules for `prefer-const` and `max-len` to work better with Svelte 5.

## \[5.2.0] - 2024-06-03

* New command to install dependencies and create configuration files, `npx @soleil/eslint-config --setup`.

## \[5.1.2] - 2023-10-26

* Update settings for `max-len` in Svelte files as it conflicts with prettier.

## \[5.1.1] - 2023-08-22

* Add exceptions for Svelte’s submodules as the import plugin cannot resolve these even though they are available.

## \[5.1.0] - 2023-06-01

* Add warnings for APIs whose instances should not be imported directly but created via other APIs.

## \[5.0.1] - 2023-05-31

* Ignore `max-len` for imports in style tags in Svelte components.

## \[5.0.0] - 2023-05-26

* New plugin for linting Svelte.

## \[4.0.1] - 2023-03-27

* Only load overrides for Svelte files when Svelte is installed in the project.

## \[4.0.0] - 2022-06-22

* Simplify by removing the different configurations and using the same config for everything except legacy code.
* Modernize the legacy configuration to allow limited use of ES2015+ supported by Rhino.
* Use `eslint-config-prettier` in Svelte components to avoid conflicts with ESLint.
* Remove support for Vue.

## \[3.1.0] - 2022-04-11

* Allow the use of `console.error()` - for example, in try catch.

## \[3.0.1] - 2022-02-07

* Ignore `import/no-unresolved` for imports starting with `@sitevision/api/server`, `@sitevision/api/common` and `@sitevision/api/client` as not all APIs are documented.

## \[3.0.0] - 2022-02-07

* Only allow imports of Sitevision’s APIs via `@sitevision/api`.
* Update paths in the global and webapp config to support the WebApps 2 structure.
* Update `peerDependencies` to the latest major versions.

## \[2.4.5] - 2021-11-04

* Set `ecmaVersion` to 2021 in the client configuration if Vue is used.

## \[2.4.4] - 2021-09-09

* Add `options` to `svelteSortOrder`.

## \[2.4.3] - 2021-08-27

* Typo in the rule `no-return-assign` in Svelte files.

## \[2.4.2] - 2021-08-17

* If Vue is used in the project, set `ecmaVersion` to 2021 instead as the plugin uses Espree which cannot handle the same version names as ESLint.

## \[2.4.1] - 2021-08-17

* Set `ecmaVersion` to `latest` to avoid updating the version every year.

## \[2.4.0] - 2021-03-24

* Deprecation notice for the configurations `@soleil/eslint-config/universal` and `@soleil/eslint-config/server`
* New configurations with clearer names: `@soleil/eslint-config/webapp` and `@soleil/eslint-config/server-legacy`
* Allow more properties per line in an object in `object-curly-newline`.

## \[2.3.1] - 2021-02-24

* Revert `ecmaVersion` to 2020.

## \[2.3.0] - 2021-02-24

* More rules overlap when writing universal code.
* Turned off `import/prefer-default-export`.
* Turned off `no-return-assign` in Svelte components.
* Removed linting of scripts in HTML for the server configuration for ES5 code.

## \[2.2.1] - 2021-01-07

* Removed `babel-eslint` from dependencies.

## \[2.2.0] - 2021-01-07

* Removed `babel-eslint` and use the standard parser with ES2020.
* Simplified `svelte.config.js`, usually the plugin for globbing is not needed.
* Added the package `cache` as an exception for SiteVision packages.

## \[2.1.4] - 2020-10-26

* Removed incorrect configuration of `a11y-no-onchange`.

## \[2.1.3] - 2020-10-21

* Added `app_src/views/**/*.js` in the server config.

## \[2.1.2] - 2020-10-06

* Fixed incorrect `parserOptions` in the `server-es6` config.

## \[2.1.1] - 2020-10-06

* Changed the order of the config so the settings Svelte needs for the server side are included.

## \[2.1.0] - 2020-09-28

* Dependencies needed by default are listed as peerDependencies.
* Dependencies for framework-specific plugins need to be installed in addition to peerDependencies.

## \[2.0.0] - 2020-09-28

* Support for Svelte.
* Updated structure.
* Update to ESLint 7.
* Removed the configuration for Vue, now in the client.

## \[1.1.2] - 2020-02-05

* Changed the rule `import/extensions` to ignore json files.

## \[1.1.1] - 2020-01-27

* Changed the rule `import/extensions` to ignore vue files.

## \[1.1.0] - 2020-01-21

* Changed the rule `import/extensions` to ignore packages, solving issues with import via alias.

## \[1.0.0] - 2020-01-13

* Updated to ESLint 6.

## \[0.3.3] - 2019-12-06

* Now allows a maximum of 3 attributes per line in Vue (`vue/max-attributes-per-line`).

## \[0.3.2] - 2019-06-03

* Added `server_src/api` in the server to the global config.

## \[0.3.1] - 2019-05-20

* Turned off `global-require` to allow writing `require` inside IIFE in `src/index.js` in a WebApp.

## \[0.3.0] - 2019-05-20

* Added a global config that can be used in the root of a project using the standard structure and `@soleil/sv-gulp-build@^3.0.0`.