# @aboutyou/eslint-config-sfc

## 5.1.1

### Patch Changes

- Updated dependency `eslint-plugin-unicorn@^73.0.0` to `eslint-plugin-unicorn@^74.0.0`

## 5.1.0

### Minor Changes

- `@scayle/eslint-config-storefront/v3` now wires an `eslint-import-resolver-typescript` resolver by default, pointed at the project's `tsconfig.json`. Path aliases like `@client/*` or `@server/*` resolve to real files, so `import-x/no-restricted-paths` and `import-x/no-cycle` see through them instead of only matching literal relative imports.

  Two rules also newly cover ground they didn't before, both enabled for the first time rather than tightened:

  - `import-x/order` wasn't configured anywhere in `/v3` until now. It ships at `error`, with an explicit `groups` option ranking aliased imports alongside package imports, ahead of relative ones. A project already using `/v3` may see new ordering errors on upgrade.
  - `import-x/no-cycle` previously only saw `.js`/`.mjs`/`.cjs` files. `.ts` and `.tsx` are now included, so a circular dependency that only existed between TypeScript files, alias or not, is caught for the first time.

  `resolver.tsconfigPath` points the resolver at a specific tsconfig, independent of `typescript.tsconfigPath` (which also switches on type-aware TypeScript rules). Without either set, the resolver and the `no-restricted-paths` zones fall back to resolving relative to ESLint's working directory, correct when linting runs via `pnpm lint`/CI but not guaranteed for an editor's ESLint extension. Set `resolver.tsconfigPath` to an absolute path if that matters for your setup.

### Patch Changes

- Added dependency `eslint-import-resolver-typescript@^4.4.5`

## 5.0.0

### Major Changes

- Rebuilds the shared ESLint config directly on first-class plugins (`@eslint/js`, `typescript-eslint`, `eslint-plugin-n`, `eslint-plugin-jsonc`, `eslint-plugin-jsdoc`, `eslint-plugin-unicorn`, `eslint-plugin-regexp`, `@e18e/eslint-plugin`, `@eslint-community/eslint-plugin-eslint-comments`, `@vitest/eslint-plugin`) instead of wrapping `@antfu/eslint-config`. This drops the transitive dependency on framework-specific plugins (Vue, React, Astro, and others) this package never used, and makes every enabled rule visible directly in `config/`.

  ## Breaking changes
  - `eslintConfigStorefront({ isNuxt: true })` is replaced by a dedicated entry point: `import eslintConfigStorefrontNuxt from '@scayle/eslint-config-storefront/nuxt'`. `eslintConfigStorefront()` no longer accepts an `isNuxt` option. It always applies the framework-agnostic and JavaScript/TypeScript/JSDoc rule set.
  - Rules keep each plugin's own published name instead of antfu's renamed aliases: `@typescript-eslint/*` (not `ts/*`), `vitest/*` (not `test/*` for Vitest-specific rules; `no-only-tests/*` is unchanged). Update any inline `eslint-disable` comment that references the old alias.
  - `config/flat/` moved to `config/`. Flat config is the only supported mode, so the `flat/` segment was redundant. If your project imported anything from `@scayle/eslint-config-storefront/config/flat/*` directly, update the import path.
  - `@typescript-eslint/consistent-type-imports` now allows `import('mod').Type` inline type annotations (`disallowTypeAnnotations: false`), matching common TypeScript usage the previous rule severity silently never reached under the old rule composition.
  - The `eslint` peer dependency floor moves from `>=9.0.0` to `>=10.4.0`, matching what `eslint-plugin-unicorn@73` actually requires. An ESLint 9 project installed this package cleanly before but hit unmet peer warnings from the plugins themselves. Upgrade ESLint to 10.4 or later before upgrading this package.

  ## New rule sets

  Three additions widen the default coverage. Each is on by default in both `eslintConfigStorefront()` and `eslintConfigStorefrontNuxt()`, and each can surface new findings in an existing project on upgrade:

  - **`eslint-plugin-unicorn`**: a curated subset of modernization rules (not the plugin's full `recommended` preset, which is hundreds of rules and largely stylistic). Covers things like preferring `node:`-prefixed core imports, `Array.isArray` over `instanceof Array`, and `Number.isNaN` over the global `isNaN`.
  - **`eslint-plugin-regexp`**: the plugin's own `flat/recommended` preset. Flags unsafe or redundant regex patterns, including some that can cause catastrophic backtracking.
  - **`@e18e/eslint-plugin`**: the [e18e](https://e18e.dev) community's `recommended` preset (modernization, module-replacement, and performance rules), with every rule downgraded to `warn`. The plugin is pre-1.0, and its rule set hasn't been reviewed against every consuming project yet, so findings surface without failing CI. Includes `ban-dependencies`, which flags known heavier packages with a lighter recommended alternative (for example `ora` in favor of `nanospinner`). Treat a `ban-dependencies` finding as a suggestion to evaluate, not a required change: swapping a dependency is a real decision with its own testing burden, not a lint fix.

  ## Upgrading
  1. Run `eslint .` after upgrading. Fix or explicitly suppress any new finding before merging.
  2. If your project used `eslintConfigStorefront({ isNuxt: true })`, switch to the `/nuxt` entry point:

     ```js
     // Before
     import eslintConfigStorefront from '@scayle/eslint-config-storefront'
     export default eslintConfigStorefront({ isNuxt: true })

     // After
     import eslintConfigStorefrontNuxt from '@scayle/eslint-config-storefront/nuxt'
     export default eslintConfigStorefrontNuxt()
     ```

  3. Search your project for any inline rule reference using an antfu alias (`ts/`, `test/` for Vitest rules) and update it to the plugin's real prefix (`@typescript-eslint/`, `vitest/`).

- Adds `@scayle/eslint-config-storefront/v3`, a third entry point for the Storefront Application V3 stack (Hono, Inertia.js, Vue 3, not Nuxt). It builds on the default config and adds Vue language wiring, Vue rules, accessibility rules, `vue-i18n` linting, `@scayle/vue-composable` rules, Storybook file conventions, Tailwind CSS class validation, and `vue/block-order` enforcement.

  ## Breaking changes
  - The named exports `eslintConfigStorefront` and `eslintConfigStorefrontNuxt` are now `storefront` and `storefrontNuxt`. Neither name, nor the `./nuxt` entry point itself, shipped in a published release before this change, so this only affects code already on this pre-release. Default exports are unaffected:

    ```js
    // Before
    import { eslintConfigStorefront } from '@scayle/eslint-config-storefront'

    // After
    import { storefront } from '@scayle/eslint-config-storefront'
    ```

  - `vue/block-order` is now enforced at error severity on `./v3`, with `template` before `script` before `style`. `eslint-plugin-vue`'s own `recommended` default only warns and defaults to script-first. Any `.vue` file with a script or style block ahead of its template now fails lint. Run `eslint --fix` to reorder them; the fix is purely mechanical and doesn't change behavior.

  ## New entry point

  `@scayle/eslint-config-storefront/v3` takes required `tailwind.entryPoint` and `i18n.localeDir` options, since the underlying plugins can't validate Tailwind classes or i18n keys without a real path. Optional options cover a shop's own custom elements, dynamically-used i18n keys, and fallthrough-attribute exceptions:

  ```js
  // eslint.config.mjs
  import storefrontV3 from '@scayle/eslint-config-storefront/v3'

  export default storefrontV3({
    tailwind: {
      entryPoint: './src/client/index.css',
    },
    i18n: {
      localeDir: './src/i18n/locales/*.json',
    },
  })
  ```

  Named `v3`, not `vue`, since a future non-Vue Storefront Application V3 stack would extend this same entry point rather than needing a separate one.

### Patch Changes

- Added dependency `@e18e/eslint-plugin@^0.8.0`
- Added dependency `@eslint-community/eslint-plugin-eslint-comments@^4.7.2`
- Added dependency `@eslint/js@^10.0.0`
- Added dependency `@intlify/eslint-plugin-vue-i18n@^4.5.1`
- Added dependency `@scayle/eslint-plugin-vue-composable@workspace:*`
- Added dependency `@vitest/eslint-plugin@^1.6.20`
- Added dependency `eslint-plugin-better-tailwindcss@^4.7.0`
- Added dependency `eslint-plugin-jsdoc@^64.2.1`
- Added dependency `eslint-plugin-jsonc@^3.4.1`
- Added dependency `eslint-plugin-n@^18.3.0`
- Added dependency `eslint-plugin-no-only-tests@^3.4.0`
- Added dependency `eslint-plugin-regexp@^3.2.0`
- Added dependency `eslint-plugin-storybook@^10.5.8`
- Added dependency `eslint-plugin-unicorn@^73.0.0`
- Added dependency `eslint-plugin-vue@^10.10.0`
- Added dependency `eslint-plugin-vuejs-accessibility@^2.6.0`
- Added dependency `globals@^17.7.0`
- Added dependency `vue-eslint-parser@^10.4.1`
- Removed dependency `@antfu/eslint-config@^9.0.0`
- Removed dependency `@eslint/eslintrc@^3.3.5`
- Removed dependency `local-pkg@^1.2.1`
- Updated dependency `eslint-config-flat-gitignore@^2.2.0` to `eslint-config-flat-gitignore@^2.3.0`
- Updated dependency `eslint-plugin-import-x@^4.16.2` to `eslint-plugin-import-x@^4.17.1`
- Updated dependency `eslint-plugin-sonarjs@^4.0.3` to `eslint-plugin-sonarjs@^4.2.0`
- Updated dependency `typescript-eslint@8.67.0` to `typescript-eslint@^8.67.0`

## 4.8.3-alpha.1

### Patch Changes

- Updated dependency `typescript-eslint@8.66.0` to `typescript-eslint@8.67.0`

## 4.8.3-alpha.0

### Patch Changes

- Updated dependency `typescript-eslint@8.65.0` to `typescript-eslint@8.66.0`

## 4.8.2

### Patch Changes

- Updated dependency `typescript-eslint@8.60.0` to `typescript-eslint@8.65.0`

## 4.8.1

### Patch Changes

- Updated dependency `@antfu/eslint-config@^8.0.0` to `@antfu/eslint-config@^9.0.0`
- Updated dependency `@eslint/eslintrc@^3.2.0` to `@eslint/eslintrc@^3.3.5`
- Updated dependency `eslint-config-flat-gitignore@^2.0.0` to `eslint-config-flat-gitignore@^2.2.0`
- Updated dependency `eslint-flat-config-utils@^3.0.0` to `eslint-flat-config-utils@^3.2.0`
- Updated dependency `eslint-plugin-import-x@^4.16.1` to `eslint-plugin-import-x@^4.16.2`
- Updated dependency `eslint-plugin-promise@^7.2.1` to `eslint-plugin-promise@^7.3.0`
- Updated dependency `eslint-plugin-sonarjs@^4.0.0` to `eslint-plugin-sonarjs@^4.0.3`
- Updated dependency `local-pkg@^1.0.0` to `local-pkg@^1.2.1`
- Updated dependency `typescript-eslint@8.57.2` to `typescript-eslint@8.60.0`

## 4.8.0

### Minor Changes

- All packages now require Node.js 22 or later, in line with the current Node.js LTS release schedule. See the [Node.js release schedule](https://nodejs.org/en/about/previous-releases#release-schedule) for details.

  If your project is still running an older Node.js version, now is a good time to upgrade to Node.js 22 at minimum, or ideally Node.js 24, for the latest security patches and stability improvements.

## 4.7.25

### Patch Changes

- Updated dependency `@antfu/eslint-config@^7.0.0` to `@antfu/eslint-config@^8.0.0`
- Updated dependency `typescript-eslint@8.56.1` to `typescript-eslint@8.57.2`

## 4.7.24

### Patch Changes

- Updated dependency `typescript-eslint@8.56.0` to `typescript-eslint@8.56.1`

## 4.7.23

### Patch Changes

- Updated dependency `eslint-plugin-sonarjs@^3.0.1` to `eslint-plugin-sonarjs@^4.0.0`
- Updated dependency `typescript-eslint@8.53.1` to `typescript-eslint@8.56.0`

## 4.7.22

### Patch Changes

- Updated dependency `eslint-flat-config-utils@^2.0.0` to `eslint-flat-config-utils@^3.0.0`
- Updated dependency `typescript-eslint@8.53.0` to `typescript-eslint@8.53.1`

## 4.7.21

### Patch Changes

- Updated dependency `@antfu/eslint-config@^5.0.0` to `@antfu/eslint-config@^7.0.0`
- Updated dependency `typescript-eslint@8.52.0` to `typescript-eslint@8.53.0`

## 4.7.20

### Patch Changes

- Resolved potential ESLint parsing errors that were appearing in all TypeScript files if using a monorepo setup by configuring the TypeScript parser to correctly resolve `tsconfig.json` files.

  This change ensures that ESLint uses the correct TypeScript configuration, eliminating potential "No tsconfigRootDir was set" errors that could block proper linting in VSCode and similar editors. The parser now correctly identifies the package-specific `tsconfig.json` when multiple configurations exist in a monorepo structure.

## 4.7.19

### Patch Changes

- Updated dependency `typescript-eslint@8.51.0` to `typescript-eslint@8.52.0`

## 4.7.18

### Patch Changes

- Updated dependency `typescript-eslint@8.49.0` to `typescript-eslint@8.51.0`
- This is an internal change only. The packages now use the PNPM catalog feature to ensure dependencies use the identical version across packages.

## 4.7.17

### Patch Changes

- Updated dependency `typescript-eslint@8.48.1` to `typescript-eslint@8.49.0`

## 4.7.16

### Patch Changes

- Updated dependency `typescript-eslint@8.48.0` to `typescript-eslint@8.48.1`

## 4.7.15

### Patch Changes

- Updated dependency `typescript-eslint@8.47.0` to `typescript-eslint@8.48.0`

## 4.7.14

### Patch Changes

- Updated dependency `typescript-eslint@8.46.4` to `typescript-eslint@8.47.0`

## 4.7.13

### Patch Changes

- Updated dependency `typescript-eslint@8.46.3` to `typescript-eslint@8.46.4`

## 4.7.12

### Patch Changes

- Updated dependency `typescript-eslint@8.46.2` to `typescript-eslint@8.46.3`

## 4.7.11

### Patch Changes

- Updated dependency `typescript-eslint@8.46.1` to `typescript-eslint@8.46.2`

## 4.7.10

### Patch Changes

- Updated dependency `typescript-eslint@8.44.0` to `typescript-eslint@8.46.1`

## 4.7.9

### Patch Changes

- Updated dependency `typescript-eslint@8.43.0` to `typescript-eslint@8.44.0`

## 4.7.8

### Patch Changes

- Updated dependency `typescript-eslint@8.42.0` to `typescript-eslint@8.43.0`

## 4.7.7

### Patch Changes

- Updated dependency `typescript-eslint@8.41.0` to `typescript-eslint@8.42.0`

## 4.7.6

### Patch Changes

- Updated dependency `typescript-eslint@8.40.0` to `typescript-eslint@8.41.0`

## 4.7.5

### Patch Changes

- Updated dependency `typescript-eslint@8.39.1` to `typescript-eslint@8.40.0`

## 4.7.4

### Patch Changes

- Updated dependency `typescript-eslint@8.39.0` to `typescript-eslint@8.39.1`

## 4.7.3

### Patch Changes

- Updated dependency `typescript-eslint@8.38.0` to `typescript-eslint@8.39.0`

## 4.7.2

### Patch Changes

- Updated dependency `@antfu/eslint-config@^4.0.0` to `@antfu/eslint-config@^5.0.0`
- Updated dependency `typescript-eslint@8.36.0` to `typescript-eslint@8.38.0`

## 4.7.1

### Patch Changes

- Updated dependency `@antfu/eslint-config@^4.0.0` to `@antfu/eslint-config@^5.0.0`

## 4.7.0

### Minor Changes

- Re-enabled previously disabled promise rules that are now compatible with ESLint Flat Config, adding comprehensive promise rule coverage with proper error, warning, and off severity levels. Rules now include `promise/no-multiple-resolved`, `promise/no-new-statics`, `promise/no-return-wrap` (error level), and various other promise-related rules (warning level). Additionally, removed `eslint-plugin-no-unsanitized` and its associated rules to simplify the configuration and remove potential conflicts with other security-focused plugins.

  These changes also improve ESLint runtime performance by reducing the number of plugins loaded and optimizing rule configuration structure through pre-defined constants and simplified configuration trees. The removal of YAML parsing and linting support further reduces plugin overhead and improves linting reliability by eliminating potential parsing conflicts, syntax errors, and stability issues that can occur when processing complex YAML files.

### Patch Changes

- Removed dependency `eslint-plugin-no-unsanitized@^4.1.2`

## 4.6.1

### Patch Changes

- Added dependency `eslint-plugin-import-x@^4.16.1`
- Updated dependency `typescript-eslint@8.35.1` to `typescript-eslint@8.36.0`

## 4.6.0

### Minor Changes

- Added eslint plugin `eslint-plugin-import-x` to support additional import-related rules.

  The following rules have been added and set to throw errors:
  - `'import-x/consistent-type-specifier-style': ['error', 'prefer-top-level']'`
  - `'import-x/first': 'error'`
  - `'import-x/no-duplicates': 'error'`
  - `'import-x/no-mutable-exports': 'error'`
  - `'import-x/no-named-default': 'error'`
  - `'import-x/no-self-import': 'error'`
  - `'import-x/no-extraneous-dependencies': 'error'`

## 4.5.14

### Patch Changes

- Updated dependency `typescript-eslint@8.35.1` to `typescript-eslint@8.36.0`

## 4.5.13

### Patch Changes

- Updated dependency `typescript-eslint@8.35.1` to `typescript-eslint@8.36.0`

## 4.5.12

### Patch Changes

- Updated dependency `typescript-eslint@8.35.0` to `typescript-eslint@8.35.1`

## 4.5.10

### Patch Changes

- Removed the ESLint rule `import/no-extraneous-dependencies` for non-nuxt applications, as the underlying `@antfu/eslint-config` now uses `eslint-plugin-import-lite`, which lacks the `no-extraneous-dependencies`.
  The `eslint-plugin-import-lite` plugin is a lightweight port of some `eslint-plugin-import-x` rules, avoiding the reliance on performance-heavy resolvers and recently introduced `eslint-plugin-import-x` binaries.

## 4.5.9

### Patch Changes

- Removed dependency `eslint-plugin-import-x@^4.15.2`
- Fix incorrect handling of import rules.

## 4.5.8

- Removed dependency `eslint-plugin-import-x@^4.15.2`
- Moved `import/no-extraneous-dependencies` rule to non-nuxt specific rule sets.
  This change prevent issues in projects with strict dependency resolution and hoisting, e.g. when using package manager like `pnpm`.

  Should you want to make specific tweaks to the default `import/no-extraneous-dependencies` behavior within a Nuxt application context, the following can be added to the projects `eslint.config.mjs`:

  ```ts
  'import/no-extraneous-dependencies': ['warn', {
    'includeTypes': true,
  }],
  ```

## 4.5.7

### Patch Changes

- Added dependency `eslint-plugin-import-x@^4.15.2`
- Updated dependency `typescript-eslint@8.34.0` to `typescript-eslint@8.34.1`

## 4.5.6

### Patch Changes

- Configured `ignoreRestArgs: true` in `@typescript-eslint/no-explicit-any` to allow for the common `(...args: any[]) => {}` usage.

## 4.5.5

### Patch Changes

- Updated dependency `typescript-eslint@8.33.1` to `typescript-eslint@8.34.0`

## 4.5.4

### Patch Changes

- Updated dependency `typescript-eslint@8.33.0` to `typescript-eslint@8.33.1`

## 4.5.3

### Patch Changes

- Updated dependency `typescript-eslint@8.32.1` to `typescript-eslint@8.33.0`

## 4.5.2

### Patch Changes

- Added dependency `typescript-eslint@8.32.1`

## 4.5.1

### Patch Changes

- Re-enable the Typescript ESLint plugin for non-nuxt packages.

## 4.5.0

### Minor Changes

- Enable the `import/no-extraneous-dependencies` rule, with severity set to "warn".

## 4.4.1

### Patch Changes

- Updated dependency `local-pkg@^0.5.1` to `local-pkg@^1.0.0`
- Updated dependency `eslint-flat-config-utils@^0.4.0` to `eslint-flat-config-utils@^1.0.0`
- Updated dependency `eslint-config-flat-gitignore@^0.3.0` to `eslint-config-flat-gitignore@^1.0.0`

## 4.4.0

### Minor Changes

- We've updated to `eslint-plugin-sonarjs@3.x`. This fixes the executions of multiple SonarJS rules like "cognitive-complexity" during linting and also adds additional new rules.
  - Check the official [`eslint-plugin-sonarjs` - CHANGELOG.md](https://github.com/SonarSource/SonarJS/blob/master/packages/jsts/src/rules/CHANGELOG.md) for more details.

### Patch Changes

- Updated dependency `local-pkg@^0.5.0` to `local-pkg@^0.5.1`
- Updated dependency `@antfu/eslint-config@^3.0.0` to `@antfu/eslint-config@^3.11.2`
- Updated dependency `@eslint/eslintrc@^3.1.0` to `@eslint/eslintrc@^3.2.0`
- Updated dependency `eslint-plugin-no-unsanitized@^4.0.2` to `eslint-plugin-no-unsanitized@^4.1.2`
- Updated dependency `eslint-plugin-promise@^7.0.0` to `eslint-plugin-promise@^7.2.1`
- Updated dependency `eslint-plugin-sonarjs@^1.0.3` to `eslint-plugin-sonarjs@^3.0.1`

## 4.3.2

### Patch Changes

- Enable `curly` rule to enforce consistent brace style for all control statements

## 4.3.1

### Patch Changes

- Updated dependency `@antfu/eslint-config@^2.21.3` to `@antfu/eslint-config@^3.0.0`
- Updated dependency `eslint-flat-config-utils@^0.3.0` to `eslint-flat-config-utils@^0.4.0`
- Updated dependency `eslint-config-flat-gitignore@^0.1.6` to `eslint-config-flat-gitignore@^0.3.0`

## 4.3.0

### Minor Changes

- add explicit rule handling for test files and allow 'console.logs' within tests

### Patch Changes

- disable eslint rules 'sonarjs/no-duplicate-string' and 'yaml/plain-scalar'

## 4.2.0

### Minor Changes

- `eslint-plugin-sonarjs` has been updated to support `eslint@9`. This update reenables the recommended `sonarjs` rules.

## 4.1.0

### Minor Changes

- Disable rule `sonarjs/no-duplicate-string` for test files

## 4.0.0

### Major Changes

- We migrated to `eslint@9` and [ESLint Flat config](https://eslint.org/docs/latest/use/configure/configuration-files), to provide improved organization and composition.
  Additionally we simplified the configuration setup by adapting some configurations provided by [@antfu/eslint-config](https://github.com/antfu/eslint-config).

  Following example can be checked to see how to use this configuration package in your projects `eslint.config.mjs` configuration file:

  For "pure" TypeScript / Node projects:

  ```js
  // eslint.config.mjs
  import eslintConfigStorefront from '@scayle/eslint-config-storefront'

  export default eslintConfigStorefront()
  ```

  For Nuxt projects using `@nuxt/eslint` module:

  ```js
  import withNuxt from './.nuxt/eslint.config.mjs'
  import eslintConfigStorefront from '@scayle/eslint-config-storefront'

  export default withNuxt(eslintConfigStorefront())
  ```

  The `@scayle/eslint-config-storefront` package exports a factory function `eslintConfigStorefront()`. The factory function is able to automatically detect if a project is using the `@nuxt/eslint` package and automatically disables certain duplicate rules that are provided by `@nuxt/eslint`. This can also manually be adjusted by passing `{ isNuxt: true }` as parameter to `eslintConfigStorefront()`.

  More details about the `@nuxt/eslint` module can be found within the [official module documentation](https://eslint.nuxt.com/packages/module).

  Should you want to upgrade from `eslint@8` to `eslint@9`, you can check the official [Eslint Migration Guide](https://eslint.org/docs/latest/use/configure/migration-guide).

  Should you require support for `eslint@8`, please use `@scayle/eslint-config-storefront@3`.

## 3.2.7

### Patch Changes

- Format code with dprint

## 3.2.6

### Patch Changes

- Move typescript to peer dependency

## 3.2.5

### Patch Changes

- Add license file

## 3.2.4

### Patch Changes

- raise required eslint peerDependency version to v8.49.0 and use only fixed dependency versions

## 3.2.3

### Patch Changes

- disable custom config for eslint-plugin-n and rely on js-standard config

## 3.2.2

### Patch Changes

- update dependencies to latest
- export json and vue-base eslint configs

## 3.2.1

### Patch Changes

- remove deprecated package exports

## 3.2.0

### Minor Changes

- Remove markdown codeblock linting

### Patch Changes

- add shared config for Nuxt2/Vue2

## 3.1.0

### Minor Changes

- Replaced `enums` with the companion object pattern approach.

## 3.0.0

### Major Changes

- **Changed NPM package names**
  - **Breaking**: Change package scope and name of `@aboutyou/scayle-sfc-nuxt` to `@scayle/storefront-nuxt2`
  - **Breaking**: Change package scope and name of `@aboutyou/sfc-nuxt3` to `@scayle/storefront-nuxt`
  - **Breaking**: Change package scope and name of `@aboutyou/scayle-sfc-lib` to `@scayle/storefront-core`
  - **Breaking**: Change package scope and name of `@aboutyou/eslint-config-sfc` to `@scayle/eslint-config-storefront`
  - **Breaking**: Change package scope and name of `@aboutyou/prettier-config-sfc` to `@scayle/prettier-config-storefront`

  _NOTE: Due to the changes of the NPM package scope from `@aboutyou` to `@scayle`,
  it is required to change the consuming projects local `.npmrc` file as follows:_
  - Before:

  ```
  @aboutyou:registry=https://gitlab.com/api/v4/packages/npm/
  ```

  - After:

  ```
  @aboutyou:registry=https://gitlab.com/api/v4/projects/29746107/packages/npm/
  @scayle:registry=https://gitlab.com/api/v4/projects/29746107/packages/npm/
  ```

- **Breaking**: Minimum `node` version raised to `18.15.0`

## 3.0.0-alpha.0

### Major Changes

- **Changed NPM package names**
  - **Breaking**: Change package scope and name of `@aboutyou/scayle-sfc-nuxt` to `@scayle/storefront-nuxt2`
  - **Breaking**: Change package scope and name of `@aboutyou/sfc-nuxt3` to `@scayle/storefront-nuxt`
  - **Breaking**: Change package scope and name of `@aboutyou/scayle-sfc-lib` to `@scayle/storefront-core``
  - **Breaking**: Change package scope and name of `@aboutyou/eslint-config-sfc` to `@scayle/eslint-config-storefront`
  - **Breaking**: Change package scope and name of `@aboutyou/prettier-config-sfc` to `@scayle/prettier-config-storefront`

  Due to the changes of the NPM package scope from `@aboutyou` to `@scayle`,
  it is required to change the consuming projects local `.npmrc` file as follows:
  - Before: `@aboutyou:registry=https://gitlab.com/api/v4/packages/npm/`
  - After: `@scayle:registry=https://gitlab.com/api/v4/packages/npm/`

- Minimum node version is 18.15.0

## 2.0.0

### Major Changes

- chore: refine eslint configs for vue, yml, json and md
- Breaking: renamed vue config to nuxt config
- chore: export dedicated eslint configs for yml, json and md
