# What changed in svelte-eslint-parser

> 39 changes in svelte-eslint-parser 1 from its official release notes, upgrade guides and advisories: 2 breaking, 8 new APIs and options. Each one cited. Sources checked 2026-11-13. HTML: https://unstale.sh/npm/svelte-eslint-parser/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## svelte-eslint-parser 1

### Breaking changes

- The parser package is now ESM-only. (1.0.0) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.0.0)
- The declaration property was replaced by declarations. (1.0.0) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.0.0)

### New APIs and options

- Set this environment variable to 1 to opt in to an experimental ts.sys.readFile hook that speeds up type-aware lint of .svelte files. (1.8.0) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.8.0)
- Adds support for comments in tags, allowing developers to use comments within tags. (1.6.0) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.6.0)
- Adds support for `$state.eager`. (1.4.0) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.4.0)
- An AST node for function bindings was added. (1.0.0) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.0.0)
- PostCSS is now supported. (1.0.0) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.0.0)
- Style selector parsing is now supported. (1.0.0) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.0.0)
- The parser now supports the <svelte:boundary> element. (1.0.0) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.0.0)
- The warningFilter option was added to SvelteConfig. (1.0.0) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.0.0)

### Behavior and default changes

- With the experimental hook enabled, .svelte imports resolve to virtual TypeScript containing a synthetic component export, enabling cross-file prop, event, and slot types. (1.9.0) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.9.0)
- Generics support was stabilized. (1.0.0) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.0.0)

### Tooling

- Adds support for parsing Svelte 5 declaration tags. (1.7.0) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.7.0)
- The parser now supports the $inspect.trace rune. (1.0.0) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.0.0)
- The parser now supports the $props.id rune. (1.0.0) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.0.0)

### Fixes and other changes

- Marks `$bindable()` props as used to prevent `no-useless-assignment` reports on writes, and handles `$props()` with non-null assertions, type assertions, `satisfies`, and angle-bracket type assertions. (1.10.1) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.10.1)
- Types `$bindable()` props as possibly `undefined` in `$props()` to prevent `@typescript-eslint/no-useless-default-assignment` reports. (1.10.1) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.10.1)
- The `runes` option on `<svelte:options>` takes precedence over `compilerOptions.runes`, matching the Svelte compiler. (1.10.1) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.10.1)
- Instance exports are included in the synthetic component type, so a component instance obtained through bind:this exposes their real types instead of any. (1.10.0) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.10.0)
- The setter parameter of a function binding is typed from the bound prop, instead of being implicit any. (1.10.0) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.10.0)
- A `{#snippet}` call is typed as a `Snippet` call instead of `void`, preventing `@typescript-eslint/no-confusing-void-expression` from reporting `{@render name()}`. (1.10.0) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.10.0)
- Unannotated parameters of a snippet written as a component child are typed from the component's snippet prop of the same name. (1.10.0) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.10.0)
- Importers of an edited component are refreshed when the experimental ts.sys hook is on. (1.10.0) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.10.0)
- JSDoc type information is preserved when using the TypeScript parser, including in Svelte template expressions, stores, and runes. (1.9.0) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.9.0)
- Template `{:else if}` and `{:else}` branches preserve type narrowing from preceding conditions. (1.9.0) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.9.0)
- The experimental ts.sys hook now works when the TypeScript program is created before the first .svelte parse. (1.8.1) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.8.1)
- Fixes parsing TypeScript `$derived(...)` declaration tags inside top-level snippets. (1.7.1) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.7.1)
- Fixes the wrong parent type for some nodes. (1.7.0) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.7.0)
- Uses the Svelte config `compilerOptions.runes` function value when set. (1.6.1) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.6.1)
- Moved semver from a development dependency to a production dependency, so it is included for production use. (1.5.1) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.5.1)
- Improves compatibility with ESLint v10. (1.5.0) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.5.0)
- Support the name_loc property. (1.4.1) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.4.1)
- The parser now supports {#each} blocks without as, as in Svelte 5.4.0. (1.0.0) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.0.0)
- Compatibility with eslint-plugin-prettier was fixed. (1.0.0) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.0.0)
- The parser no longer errors when <script> tags are used inside {@html}. (1.0.0) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.0.0)
- Runes mode detection was corrected to prevent parser malfunctions. (1.0.0) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.0.0)
- Scoping of snippet declarations acting as slot properties was improved. (1.0.0) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.0.0)
- A parent node is now provided for SvelteFunctionBindingsExpression. (1.0.0) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.0.0)
- Scripts are now recognized as modules for TypeScript type checking. (1.0.0) — [release notes](https://github.com/sveltejs/svelte-eslint-parser/releases/tag/v1.0.0)
