main 21253c49bf65 cached
2914 files
2.2 MB
793.8k tokens
717 symbols
1 requests
Download .txt
Showing preview only (3,163K chars total). Download the full file or copy to clipboard to get everything.
Repository: sveltejs/eslint-plugin-svelte
Branch: main
Commit: 21253c49bf65
Files: 2914
Total size: 2.2 MB

Directory structure:
gitextract_0ybn3993/

├── .changeset/
│   ├── README.md
│   └── config.json
├── .devcontainer/
│   └── devcontainer.json
├── .editorconfig
├── .env-cmdrc.json
├── .gitattributes
├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yml
│   │   ├── feature_request.yml
│   │   ├── new_rule_request.yml
│   │   └── other.md
│   └── workflows/
│       ├── GHPages.yml
│       ├── NodeCI.yml
│       ├── Release.yml
│       ├── pkg.pr.new-comment.yml
│       ├── pkg.pr.new.yml
│       └── stale.yml
├── .gitignore
├── .npmrc
├── .prettierignore
├── .vscode/
│   ├── extensions.json
│   └── settings.json
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── docs/
│   ├── README.md
│   ├── migration.md
│   ├── rules/
│   │   ├── @typescript-eslint/
│   │   │   └── no-unnecessary-condition.md
│   │   ├── block-lang.md
│   │   ├── button-has-type.md
│   │   ├── comment-directive.md
│   │   ├── consistent-selector-style.md
│   │   ├── derived-has-same-inputs-outputs.md
│   │   ├── experimental-require-slot-types.md
│   │   ├── experimental-require-strict-events.md
│   │   ├── first-attribute-linebreak.md
│   │   ├── html-closing-bracket-new-line.md
│   │   ├── html-closing-bracket-spacing.md
│   │   ├── html-quotes.md
│   │   ├── html-self-closing.md
│   │   ├── indent.md
│   │   ├── infinite-reactive-loop.md
│   │   ├── max-attributes-per-line.md
│   │   ├── max-lines-per-block.md
│   │   ├── mustache-spacing.md
│   │   ├── no-add-event-listener.md
│   │   ├── no-at-debug-tags.md
│   │   ├── no-at-html-tags.md
│   │   ├── no-dom-manipulating.md
│   │   ├── no-dupe-else-if-blocks.md
│   │   ├── no-dupe-on-directives.md
│   │   ├── no-dupe-style-properties.md
│   │   ├── no-dupe-use-directives.md
│   │   ├── no-dynamic-slot-name.md
│   │   ├── no-export-load-in-svelte-module-in-kit-pages.md
│   │   ├── no-extra-reactive-curlies.md
│   │   ├── no-goto-without-base.md
│   │   ├── no-ignored-unsubscribe.md
│   │   ├── no-immutable-reactive-statements.md
│   │   ├── no-inline-styles.md
│   │   ├── no-inner-declarations.md
│   │   ├── no-inspect.md
│   │   ├── no-navigation-without-base.md
│   │   ├── no-navigation-without-resolve.md
│   │   ├── no-not-function-handler.md
│   │   ├── no-object-in-text-mustaches.md
│   │   ├── no-raw-special-elements.md
│   │   ├── no-reactive-functions.md
│   │   ├── no-reactive-literals.md
│   │   ├── no-reactive-reassign.md
│   │   ├── no-restricted-html-elements.md
│   │   ├── no-shorthand-style-property-overrides.md
│   │   ├── no-spaces-around-equal-signs-in-attribute.md
│   │   ├── no-store-async.md
│   │   ├── no-svelte-internal.md
│   │   ├── no-target-blank.md
│   │   ├── no-top-level-browser-globals.md
│   │   ├── no-trailing-spaces.md
│   │   ├── no-unknown-style-directive-property.md
│   │   ├── no-unnecessary-state-wrap.md
│   │   ├── no-unused-class-name.md
│   │   ├── no-unused-props.md
│   │   ├── no-unused-svelte-ignore.md
│   │   ├── no-useless-children-snippet.md
│   │   ├── no-useless-mustaches.md
│   │   ├── prefer-class-directive.md
│   │   ├── prefer-const.md
│   │   ├── prefer-destructured-store-props.md
│   │   ├── prefer-style-directive.md
│   │   ├── prefer-svelte-reactivity.md
│   │   ├── prefer-writable-derived.md
│   │   ├── require-each-key.md
│   │   ├── require-event-dispatcher-types.md
│   │   ├── require-event-prefix.md
│   │   ├── require-optimized-style-attribute.md
│   │   ├── require-store-callbacks-use-set-param.md
│   │   ├── require-store-reactive-access.md
│   │   ├── require-stores-init.md
│   │   ├── shorthand-attribute.md
│   │   ├── shorthand-directive.md
│   │   ├── sort-attributes.md
│   │   ├── spaced-html-comment.md
│   │   ├── system.md
│   │   ├── valid-compile.md
│   │   ├── valid-each-key.md
│   │   ├── valid-prop-names-in-kit-pages.md
│   │   └── valid-style-parse.md
│   ├── rules.md
│   └── user-guide.md
├── docs-svelte-kit/
│   ├── eslint.config.mjs
│   ├── package.json
│   ├── src/
│   │   ├── app.css
│   │   ├── app.html
│   │   ├── lib/
│   │   │   ├── footer/
│   │   │   │   └── Footer.svelte
│   │   │   ├── header/
│   │   │   │   └── Header.svelte
│   │   │   ├── sidemenu/
│   │   │   │   ├── SideMenu.svelte
│   │   │   │   └── UlMenu.svelte
│   │   │   └── utils.js
│   │   ├── reset.css
│   │   └── routes/
│   │       ├── +error.svelte
│   │       ├── +layout.js
│   │       ├── +layout.svelte
│   │       └── 404/
│   │           └── +page.svelte
│   ├── svelte.config.js
│   ├── tools/
│   │   ├── generate-routes.mts
│   │   ├── highlight.mts
│   │   ├── markdown-it-container-option.mts
│   │   ├── markdown-it-markdown.mts
│   │   ├── markdown-it-replace-link.mts
│   │   ├── markdown-it-title.mts
│   │   └── vite-plugin-svelte-md-option.mts
│   ├── tsconfig.json
│   └── vite.config.ts
├── package.json
├── packages/
│   └── eslint-plugin-svelte/
│       ├── .env-cmdrc.json
│       ├── CHANGELOG.md
│       ├── LICENSE
│       ├── babel.config.cjs
│       ├── eslint.config.mjs
│       ├── internal-rules/
│       │   └── prefer-find-variable-safe.ts
│       ├── package.json
│       ├── postcss.config.cjs
│       ├── src/
│       │   ├── configs/
│       │   │   └── flat/
│       │   │       ├── all.ts
│       │   │       ├── base.ts
│       │   │       ├── prettier.ts
│       │   │       └── recommended.ts
│       │   ├── index.ts
│       │   ├── main.ts
│       │   ├── meta.ts
│       │   ├── processor/
│       │   │   └── index.ts
│       │   ├── rule-types.ts
│       │   ├── rules/
│       │   │   ├── @typescript-eslint/
│       │   │   │   └── no-unnecessary-condition.ts
│       │   │   ├── block-lang.ts
│       │   │   ├── button-has-type.ts
│       │   │   ├── comment-directive.ts
│       │   │   ├── consistent-selector-style.ts
│       │   │   ├── derived-has-same-inputs-outputs.ts
│       │   │   ├── experimental-require-slot-types.ts
│       │   │   ├── experimental-require-strict-events.ts
│       │   │   ├── first-attribute-linebreak.ts
│       │   │   ├── html-closing-bracket-new-line.ts
│       │   │   ├── html-closing-bracket-spacing.ts
│       │   │   ├── html-quotes.ts
│       │   │   ├── html-self-closing.ts
│       │   │   ├── indent-helpers/
│       │   │   │   ├── ast.ts
│       │   │   │   ├── commons.ts
│       │   │   │   ├── es.ts
│       │   │   │   ├── index.ts
│       │   │   │   ├── offset-context.ts
│       │   │   │   ├── svelte.ts
│       │   │   │   └── ts.ts
│       │   │   ├── indent.ts
│       │   │   ├── infinite-reactive-loop.ts
│       │   │   ├── max-attributes-per-line.ts
│       │   │   ├── max-lines-per-block.ts
│       │   │   ├── mustache-spacing.ts
│       │   │   ├── no-add-event-listener.ts
│       │   │   ├── no-at-debug-tags.ts
│       │   │   ├── no-at-html-tags.ts
│       │   │   ├── no-dom-manipulating.ts
│       │   │   ├── no-dupe-else-if-blocks.ts
│       │   │   ├── no-dupe-on-directives.ts
│       │   │   ├── no-dupe-style-properties.ts
│       │   │   ├── no-dupe-use-directives.ts
│       │   │   ├── no-dynamic-slot-name.ts
│       │   │   ├── no-export-load-in-svelte-module-in-kit-pages.ts
│       │   │   ├── no-extra-reactive-curlies.ts
│       │   │   ├── no-goto-without-base.ts
│       │   │   ├── no-ignored-unsubscribe.ts
│       │   │   ├── no-immutable-reactive-statements.ts
│       │   │   ├── no-inline-styles.ts
│       │   │   ├── no-inner-declarations.ts
│       │   │   ├── no-inspect.ts
│       │   │   ├── no-navigation-without-base.ts
│       │   │   ├── no-navigation-without-resolve.ts
│       │   │   ├── no-not-function-handler.ts
│       │   │   ├── no-object-in-text-mustaches.ts
│       │   │   ├── no-raw-special-elements.ts
│       │   │   ├── no-reactive-functions.ts
│       │   │   ├── no-reactive-literals.ts
│       │   │   ├── no-reactive-reassign.ts
│       │   │   ├── no-restricted-html-elements.ts
│       │   │   ├── no-shorthand-style-property-overrides.ts
│       │   │   ├── no-spaces-around-equal-signs-in-attribute.ts
│       │   │   ├── no-store-async.ts
│       │   │   ├── no-svelte-internal.ts
│       │   │   ├── no-target-blank.ts
│       │   │   ├── no-top-level-browser-globals.ts
│       │   │   ├── no-trailing-spaces.ts
│       │   │   ├── no-unknown-style-directive-property.ts
│       │   │   ├── no-unnecessary-state-wrap.ts
│       │   │   ├── no-unused-class-name.ts
│       │   │   ├── no-unused-props.ts
│       │   │   ├── no-unused-svelte-ignore.ts
│       │   │   ├── no-useless-children-snippet.ts
│       │   │   ├── no-useless-mustaches.ts
│       │   │   ├── prefer-class-directive.ts
│       │   │   ├── prefer-const.ts
│       │   │   ├── prefer-destructured-store-props.ts
│       │   │   ├── prefer-style-directive.ts
│       │   │   ├── prefer-svelte-reactivity.ts
│       │   │   ├── prefer-writable-derived.ts
│       │   │   ├── reference-helpers/
│       │   │   │   └── svelte-store.ts
│       │   │   ├── require-each-key.ts
│       │   │   ├── require-event-dispatcher-types.ts
│       │   │   ├── require-event-prefix.ts
│       │   │   ├── require-optimized-style-attribute.ts
│       │   │   ├── require-store-callbacks-use-set-param.ts
│       │   │   ├── require-store-reactive-access.ts
│       │   │   ├── require-stores-init.ts
│       │   │   ├── shorthand-attribute.ts
│       │   │   ├── shorthand-directive.ts
│       │   │   ├── sort-attributes.ts
│       │   │   ├── spaced-html-comment.ts
│       │   │   ├── system.ts
│       │   │   ├── valid-compile.ts
│       │   │   ├── valid-each-key.ts
│       │   │   ├── valid-prop-names-in-kit-pages.ts
│       │   │   └── valid-style-parse.ts
│       │   ├── shared/
│       │   │   ├── comment-directives.ts
│       │   │   ├── index.ts
│       │   │   ├── runes.ts
│       │   │   └── svelte-compile-warns/
│       │   │       ├── extract-leading-comments.ts
│       │   │       ├── ignore-comment.ts
│       │   │       ├── index.ts
│       │   │       └── transform/
│       │   │           ├── babel.ts
│       │   │           ├── less.ts
│       │   │           ├── postcss.ts
│       │   │           ├── sass.ts
│       │   │           ├── stylus.ts
│       │   │           ├── types.ts
│       │   │           └── typescript.ts
│       │   ├── type-defs/
│       │   │   ├── @eslint-community/
│       │   │   │   └── eslint-utils.d.ts
│       │   │   ├── estree.d.ts
│       │   │   ├── postcss/
│       │   │   │   └── lib/
│       │   │   │       └── tokenize.d.ts
│       │   │   └── postcss-safe-parser/
│       │   │       └── lib/
│       │   │           └── safe-parser.d.ts
│       │   ├── types-for-node.ts
│       │   ├── types.ts
│       │   └── utils/
│       │       ├── ast-utils.ts
│       │       ├── cache.ts
│       │       ├── css-utils/
│       │       │   ├── index.ts
│       │       │   ├── resource.ts
│       │       │   ├── style-attribute.ts
│       │       │   ├── template-safe-parser.ts
│       │       │   ├── template-tokenize.ts
│       │       │   └── utils.ts
│       │       ├── element-occurences.ts
│       │       ├── element-types.ts
│       │       ├── eslint-core.ts
│       │       ├── events.ts
│       │       ├── expression-affixes.ts
│       │       ├── get-node-module.ts
│       │       ├── get-package-json.ts
│       │       ├── index.ts
│       │       ├── lines-and-columns.ts
│       │       ├── load-module.ts
│       │       ├── regexp.ts
│       │       ├── rules.ts
│       │       ├── svelte-context.ts
│       │       └── ts-utils/
│       │           └── index.ts
│       ├── tests/
│       │   ├── fixtures/
│       │   │   └── rules/
│       │   │       ├── @typescript-eslint/
│       │   │       │   └── no-unnecessary-condition/
│       │   │       │       ├── invalid/
│       │   │       │       │   ├── binary-expression01-errors.yaml
│       │   │       │       │   ├── binary-expression01-input.svelte
│       │   │       │       │   ├── binary-expression01-output.svelte
│       │   │       │       │   ├── example-errors.yaml
│       │   │       │       │   ├── example-input.svelte
│       │   │       │       │   ├── example-output.svelte
│       │   │       │       │   ├── nullish-coalescing01-errors.yaml
│       │   │       │       │   ├── nullish-coalescing01-input.svelte
│       │   │       │       │   ├── nullish-coalescing01-output.svelte
│       │   │       │       │   ├── optional-chaining01-errors.yaml
│       │   │       │       │   ├── optional-chaining01-input.svelte
│       │   │       │       │   ├── optional-chaining01-output.svelte
│       │   │       │       │   ├── test01-errors.yaml
│       │   │       │       │   ├── test01-input.svelte
│       │   │       │       │   └── test01-output.svelte
│       │   │       │       └── valid/
│       │   │       │           ├── reactive-statement01-input.svelte
│       │   │       │           └── template01-input.svelte
│       │   │       ├── block-lang/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── script/
│       │   │       │   │   │   ├── enforce/
│       │   │       │   │   │   │   ├── _config.json
│       │   │       │   │   │   │   ├── no-script01-errors.yaml
│       │   │       │   │   │   │   └── no-script01-input.svelte
│       │   │       │   │   │   ├── javascript/
│       │   │       │   │   │   │   ├── _config.json
│       │   │       │   │   │   │   ├── javascript-as-style-lang01-errors.yaml
│       │   │       │   │   │   │   ├── javascript-as-style-lang01-input.svelte
│       │   │       │   │   │   │   ├── js01-errors.yaml
│       │   │       │   │   │   │   ├── js01-input.svelte
│       │   │       │   │   │   │   ├── null01-errors.yaml
│       │   │       │   │   │   │   ├── null01-input.svelte
│       │   │       │   │   │   │   ├── ts01-errors.yaml
│       │   │       │   │   │   │   ├── ts01-input.svelte
│       │   │       │   │   │   │   ├── typescript01-errors.yaml
│       │   │       │   │   │   │   └── typescript01-input.svelte
│       │   │       │   │   │   ├── js/
│       │   │       │   │   │   │   ├── _config.json
│       │   │       │   │   │   │   ├── javascript01-errors.yaml
│       │   │       │   │   │   │   ├── javascript01-input.svelte
│       │   │       │   │   │   │   ├── js-as-style-lang01-errors.yaml
│       │   │       │   │   │   │   ├── js-as-style-lang01-input.svelte
│       │   │       │   │   │   │   ├── null01-errors.yaml
│       │   │       │   │   │   │   ├── null01-input.svelte
│       │   │       │   │   │   │   ├── ts01-errors.yaml
│       │   │       │   │   │   │   ├── ts01-input.svelte
│       │   │       │   │   │   │   ├── typescript01-errors.yaml
│       │   │       │   │   │   │   └── typescript01-input.svelte
│       │   │       │   │   │   ├── module-context/
│       │   │       │   │   │   │   ├── _config.json
│       │   │       │   │   │   │   ├── javascript01-errors.yaml
│       │   │       │   │   │   │   ├── javascript01-input.svelte
│       │   │       │   │   │   │   ├── js01-errors.yaml
│       │   │       │   │   │   │   ├── js01-input.svelte
│       │   │       │   │   │   │   ├── null01-errors.yaml
│       │   │       │   │   │   │   ├── null01-input.svelte
│       │   │       │   │   │   │   ├── ts-as-style-lang01-errors.yaml
│       │   │       │   │   │   │   ├── ts-as-style-lang01-input.svelte
│       │   │       │   │   │   │   ├── typescript01-errors.yaml
│       │   │       │   │   │   │   └── typescript01-input.svelte
│       │   │       │   │   │   ├── multiple/
│       │   │       │   │   │   │   ├── _config.json
│       │   │       │   │   │   │   ├── javascript01-errors.yaml
│       │   │       │   │   │   │   ├── javascript01-input.svelte
│       │   │       │   │   │   │   ├── js01-errors.yaml
│       │   │       │   │   │   │   ├── js01-input.svelte
│       │   │       │   │   │   │   ├── null-as-style-lang01-errors.yaml
│       │   │       │   │   │   │   ├── null-as-style-lang01-input.svelte
│       │   │       │   │   │   │   ├── ts-as-style-lang01-errors.yaml
│       │   │       │   │   │   │   ├── ts-as-style-lang01-input.svelte
│       │   │       │   │   │   │   ├── typescript-as-style-lang01-errors.yaml
│       │   │       │   │   │   │   └── typescript-as-style-lang01-input.svelte
│       │   │       │   │   │   ├── null/
│       │   │       │   │   │   │   ├── _config.json
│       │   │       │   │   │   │   ├── javascript01-errors.yaml
│       │   │       │   │   │   │   ├── javascript01-input.svelte
│       │   │       │   │   │   │   ├── js01-errors.yaml
│       │   │       │   │   │   │   ├── js01-input.svelte
│       │   │       │   │   │   │   ├── null-as-style-lang01-errors.yaml
│       │   │       │   │   │   │   ├── null-as-style-lang01-input.svelte
│       │   │       │   │   │   │   ├── ts01-errors.yaml
│       │   │       │   │   │   │   ├── ts01-input.svelte
│       │   │       │   │   │   │   ├── typescript01-errors.yaml
│       │   │       │   │   │   │   └── typescript01-input.svelte
│       │   │       │   │   │   ├── shorthand/
│       │   │       │   │   │   │   ├── _config.json
│       │   │       │   │   │   │   ├── javascript01-errors.yaml
│       │   │       │   │   │   │   ├── javascript01-input.svelte
│       │   │       │   │   │   │   ├── js01-errors.yaml
│       │   │       │   │   │   │   ├── js01-input.svelte
│       │   │       │   │   │   │   ├── null01-errors.yaml
│       │   │       │   │   │   │   ├── null01-input.svelte
│       │   │       │   │   │   │   ├── ts-as-style-lang01-errors.yaml
│       │   │       │   │   │   │   ├── ts-as-style-lang01-input.svelte
│       │   │       │   │   │   │   ├── typescript01-errors.yaml
│       │   │       │   │   │   │   └── typescript01-input.svelte
│       │   │       │   │   │   ├── ts/
│       │   │       │   │   │   │   ├── _config.json
│       │   │       │   │   │   │   ├── javascript01-errors.yaml
│       │   │       │   │   │   │   ├── javascript01-input.svelte
│       │   │       │   │   │   │   ├── js01-errors.yaml
│       │   │       │   │   │   │   ├── js01-input.svelte
│       │   │       │   │   │   │   ├── null01-errors.yaml
│       │   │       │   │   │   │   ├── null01-input.svelte
│       │   │       │   │   │   │   ├── ts-as-style-lang01-errors.yaml
│       │   │       │   │   │   │   ├── ts-as-style-lang01-input.svelte
│       │   │       │   │   │   │   ├── typescript01-errors.yaml
│       │   │       │   │   │   │   └── typescript01-input.svelte
│       │   │       │   │   │   └── typescript/
│       │   │       │   │   │       ├── _config.json
│       │   │       │   │   │       ├── javascript01-errors.yaml
│       │   │       │   │   │       ├── javascript01-input.svelte
│       │   │       │   │   │       ├── js01-errors.yaml
│       │   │       │   │   │       ├── js01-input.svelte
│       │   │       │   │   │       ├── null01-errors.yaml
│       │   │       │   │   │       ├── null01-input.svelte
│       │   │       │   │   │       ├── ts01-errors.yaml
│       │   │       │   │   │       ├── ts01-input.svelte
│       │   │       │   │   │       ├── typescript-as-style-lang01-errors.yaml
│       │   │       │   │   │       └── typescript-as-style-lang01-input.svelte
│       │   │       │   │   └── style/
│       │   │       │   │       ├── enforce/
│       │   │       │   │       │   ├── _config.json
│       │   │       │   │       │   ├── no-style01-errors.yaml
│       │   │       │   │       │   └── no-style01-input.svelte
│       │   │       │   │       ├── null/
│       │   │       │   │       │   ├── _config.json
│       │   │       │   │       │   ├── null-as-script-lang01-errors.yaml
│       │   │       │   │       │   ├── null-as-script-lang01-input.svelte
│       │   │       │   │       │   ├── sass01-errors.yaml
│       │   │       │   │       │   ├── sass01-input.svelte
│       │   │       │   │       │   ├── scss01-errors.yaml
│       │   │       │   │       │   └── scss01-input.svelte
│       │   │       │   │       ├── sass/
│       │   │       │   │       │   ├── _config.json
│       │   │       │   │       │   ├── null01-errors.yaml
│       │   │       │   │       │   ├── null01-input.svelte
│       │   │       │   │       │   ├── sass-as-script-lang01-errors.yaml
│       │   │       │   │       │   ├── sass-as-script-lang01-input.svelte
│       │   │       │   │       │   ├── scss01-errors.yaml
│       │   │       │   │       │   └── scss01-input.svelte
│       │   │       │   │       └── scss/
│       │   │       │   │           ├── _config.json
│       │   │       │   │           ├── null01-errors.yaml
│       │   │       │   │           ├── null01-input.svelte
│       │   │       │   │           ├── sass01-errors.yaml
│       │   │       │   │           ├── sass01-input.svelte
│       │   │       │   │           ├── scss-as-script-lang01-errors.yaml
│       │   │       │   │           └── scss-as-script-lang01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── non-svelte/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   ├── non-svelte01-input.ts
│       │   │       │       │   └── non-svelte02-input.js
│       │   │       │       ├── script/
│       │   │       │       │   ├── enforce/
│       │   │       │       │   │   ├── _config.json
│       │   │       │       │   │   └── script-present01-input.svelte
│       │   │       │       │   ├── javascript/
│       │   │       │       │   │   ├── _config.json
│       │   │       │       │   │   ├── correct-lang01-input.svelte
│       │   │       │       │   │   ├── no-script01-input.svelte
│       │   │       │       │   │   └── style-lang01-input.svelte
│       │   │       │       │   ├── js/
│       │   │       │       │   │   ├── _config.json
│       │   │       │       │   │   ├── correct-lang01-input.svelte
│       │   │       │       │   │   ├── no-script01-input.svelte
│       │   │       │       │   │   └── style-lang01-input.svelte
│       │   │       │       │   ├── multiple/
│       │   │       │       │   │   ├── _config.json
│       │   │       │       │   │   ├── correct-lang01-input.svelte
│       │   │       │       │   │   ├── no-script01-input.svelte
│       │   │       │       │   │   └── style-lang01-input.svelte
│       │   │       │       │   ├── null/
│       │   │       │       │   │   ├── _config.json
│       │   │       │       │   │   ├── no-lang01-input.svelte
│       │   │       │       │   │   ├── no-script01-input.svelte
│       │   │       │       │   │   └── style-lang01-input.svelte
│       │   │       │       │   ├── shorthand/
│       │   │       │       │   │   ├── _config.json
│       │   │       │       │   │   ├── correct-lang01-input.svelte
│       │   │       │       │   │   ├── no-script01-input.svelte
│       │   │       │       │   │   └── style-lang01-input.svelte
│       │   │       │       │   ├── ts/
│       │   │       │       │   │   ├── _config.json
│       │   │       │       │   │   ├── correct-lang01-input.svelte
│       │   │       │       │   │   ├── correct-lang02-input.svelte
│       │   │       │       │   │   ├── correct-lang03-input.svelte
│       │   │       │       │   │   ├── no-script01-input.svelte
│       │   │       │       │   │   ├── style-lang01-input.svelte
│       │   │       │       │   │   ├── style-lang02-input.svelte
│       │   │       │       │   │   └── style-lang03-input.svelte
│       │   │       │       │   └── typescript/
│       │   │       │       │       ├── _config.json
│       │   │       │       │       ├── correct-lang01-input.svelte
│       │   │       │       │       ├── no-script01-input.svelte
│       │   │       │       │       └── style-lang01-input.svelte
│       │   │       │       └── style/
│       │   │       │           ├── enforce/
│       │   │       │           │   ├── _config.json
│       │   │       │           │   └── style-present01-input.svelte
│       │   │       │           ├── null/
│       │   │       │           │   ├── _config.json
│       │   │       │           │   ├── no-lang01-input.svelte
│       │   │       │           │   ├── no-style01-input.svelte
│       │   │       │           │   └── script-lang01-input.svelte
│       │   │       │           ├── sass/
│       │   │       │           │   ├── _config.json
│       │   │       │           │   ├── correct-lang01-input.svelte
│       │   │       │           │   ├── no-style01-input.svelte
│       │   │       │           │   └── script-lang01-input.svelte
│       │   │       │           └── scss/
│       │   │       │               ├── _config.json
│       │   │       │               ├── correct-lang01-input.svelte
│       │   │       │               ├── no-style01-input.svelte
│       │   │       │               └── script-lang01-input.svelte
│       │   │       ├── button-has-type/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── button-false/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── invalid-button-errors.yaml
│       │   │       │   │   │   └── invalid-button-input.svelte
│       │   │       │   │   ├── reset-false/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── invalid-reset-errors.yaml
│       │   │       │   │   │   └── invalid-reset-input.svelte
│       │   │       │   │   ├── submit-false/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── invalid-submit-errors.yaml
│       │   │       │   │   │   └── invalid-submit-input.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   └── test01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       └── test01-input.svelte
│       │   │       ├── consistent-selector-style/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── global/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── should-be-id01-errors.yaml
│       │   │       │   │   │   ├── should-be-id01-input.svelte
│       │   │       │   │   │   ├── should-be-type01-errors.yaml
│       │   │       │   │   │   └── should-be-type01-input.svelte
│       │   │       │   │   ├── id-class-type/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── should-be-id-combination01-errors.yaml
│       │   │       │   │   │   ├── should-be-id-combination01-input.svelte
│       │   │       │   │   │   ├── should-be-id01-errors.yaml
│       │   │       │   │   │   └── should-be-id01-input.svelte
│       │   │       │   │   ├── id-type-class/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── should-be-id01-errors.yaml
│       │   │       │   │   │   ├── should-be-id01-input.svelte
│       │   │       │   │   │   ├── should-be-type01-errors.yaml
│       │   │       │   │   │   └── should-be-type01-input.svelte
│       │   │       │   │   ├── type-class-id/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── should-be-type01-errors.yaml
│       │   │       │   │   │   └── should-be-type01-input.svelte
│       │   │       │   │   └── type-id-class/
│       │   │       │   │       ├── should-be-id-with-components01-errors.yaml
│       │   │       │   │       ├── should-be-id-with-components01-input.svelte
│       │   │       │   │       ├── should-be-id01-errors.yaml
│       │   │       │   │       ├── should-be-id01-input.svelte
│       │   │       │   │       ├── should-be-type-with-components01-errors.yaml
│       │   │       │   │       ├── should-be-type-with-components01-input.svelte
│       │   │       │   │       ├── should-be-type01-errors.yaml
│       │   │       │   │       └── should-be-type01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── class-id-type/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   ├── class-scss01-input.svelte
│       │   │       │       │   └── class01-input.svelte
│       │   │       │       ├── class-type-id/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   ├── class-scss01-input.svelte
│       │   │       │       │   └── class01-input.svelte
│       │   │       │       ├── id-class-type/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   ├── class01-input.svelte
│       │   │       │       │   ├── id-scss01-input.svelte
│       │   │       │       │   ├── id01-input.svelte
│       │   │       │       │   └── svelte-5/
│       │   │       │       │       ├── _requirements.json
│       │   │       │       │       └── class01-input.svelte
│       │   │       │       ├── id-type-class/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   ├── class01-input.svelte
│       │   │       │       │   ├── id-scss01-input.svelte
│       │   │       │       │   ├── id01-input.svelte
│       │   │       │       │   └── type01-input.svelte
│       │   │       │       ├── type/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   ├── class01-input.svelte
│       │   │       │       │   ├── id01-input.svelte
│       │   │       │       │   ├── type-scss01-input.svelte
│       │   │       │       │   └── type01-input.svelte
│       │   │       │       ├── type-class-id/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   ├── class01-input.svelte
│       │   │       │       │   ├── type-scss01-input.svelte
│       │   │       │       │   └── type01-input.svelte
│       │   │       │       ├── type-id/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   ├── class01-input.svelte
│       │   │       │       │   ├── id01-input.svelte
│       │   │       │       │   ├── type-scss01-input.svelte
│       │   │       │       │   └── type01-input.svelte
│       │   │       │       └── type-id-class/
│       │   │       │           ├── class-dynamic-prefix01-input.svelte
│       │   │       │           ├── class-dynamic-suffix01-input.svelte
│       │   │       │           ├── class-dynamic-universal01-input.svelte
│       │   │       │           ├── class01-input.svelte
│       │   │       │           ├── global01-input.svelte
│       │   │       │           ├── id-dynamic-prefix01-input.svelte
│       │   │       │           ├── id-dynamic-suffix01-input.svelte
│       │   │       │           ├── id-dynamic-universal01-input.svelte
│       │   │       │           ├── id01-input.svelte
│       │   │       │           ├── recursive-loop01-input.svelte
│       │   │       │           ├── type-scss01-input.svelte
│       │   │       │           └── type01-input.svelte
│       │   │       ├── derived-has-same-inputs-outputs/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   └── test01-input.js
│       │   │       │   └── valid/
│       │   │       │       └── test01-input.js
│       │   │       ├── experimental-require-slot-types/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── no-slot-types01-errors.yaml
│       │   │       │   │   └── no-slot-types01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── has-slot-types-with-alias01-input.svelte
│       │   │       │       ├── has-slot-types01-input.svelte
│       │   │       │       ├── named-slot01-input.svelte
│       │   │       │       ├── no-slots01-input.svelte
│       │   │       │       └── no-typescript01-input.svelte
│       │   │       ├── experimental-require-strict-events/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── _requirements.json
│       │   │       │   │   ├── no-strict-events01-errors.yaml
│       │   │       │   │   └── no-strict-events01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── _requirements.json
│       │   │       │       ├── has-events-interface01-input.svelte
│       │   │       │       ├── has-events-type-alias01-input.svelte
│       │   │       │       ├── has-strict-events01-input.svelte
│       │   │       │       ├── no-typescript01-input.svelte
│       │   │       │       └── script-module-context01-input.svelte
│       │   │       ├── first-attribute-linebreak/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── below/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── beside/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   └── test01-output.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── below/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── test01-input.svelte
│       │   │       │       ├── beside/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── test01-input.svelte
│       │   │       │       └── test01-input.svelte
│       │   │       ├── html-closing-bracket-new-line/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── multiline-never/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── self-closing/
│       │   │       │   │   │   ├── always/
│       │   │       │   │   │   │   ├── _config.json
│       │   │       │   │   │   │   ├── test-errors.yaml
│       │   │       │   │   │   │   ├── test-input.svelte
│       │   │       │   │   │   │   └── test-output.svelte
│       │   │       │   │   │   └── never/
│       │   │       │   │   │       ├── _config.json
│       │   │       │   │   │       ├── test-errors.yaml
│       │   │       │   │   │       ├── test-input.svelte
│       │   │       │   │   │       └── test-output.svelte
│       │   │       │   │   ├── singleline-always/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   ├── test01-output.svelte
│       │   │       │   │   ├── test02-errors.yaml
│       │   │       │   │   ├── test02-input.svelte
│       │   │       │   │   └── test02-output.svelte
│       │   │       │   └── valid/
│       │   │       │       └── test01-input.svelte
│       │   │       ├── html-closing-bracket-spacing/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── closing-ignore/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── closing-ignore-errors.yaml
│       │   │       │   │   │   ├── closing-ignore-input.svelte
│       │   │       │   │   │   └── closing-ignore-output.svelte
│       │   │       │   │   ├── end-ignore/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── end-ignore-errors.yaml
│       │   │       │   │   │   ├── end-ignore-input.svelte
│       │   │       │   │   │   └── end-ignore-output.svelte
│       │   │       │   │   ├── start-ignore/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── start-ignore-errors.yaml
│       │   │       │   │   │   ├── start-ignore-input.svelte
│       │   │       │   │   │   └── start-ignore-output.svelte
│       │   │       │   │   ├── test-01-errors.yaml
│       │   │       │   │   ├── test-01-input.svelte
│       │   │       │   │   └── test-01-output.svelte
│       │   │       │   └── valid/
│       │   │       │       └── test-01-input.svelte
│       │   │       ├── html-quotes/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── all-quotes/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   ├── test01-output.svelte
│       │   │       │   │   │   ├── test02-errors.yaml
│       │   │       │   │   │   ├── test02-input.svelte
│       │   │       │   │   │   └── test02-output.svelte
│       │   │       │   │   ├── avoid-invalid-unquoted-in-html/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── inline-handlers-errors.yaml
│       │   │       │   │   │   ├── inline-handlers-input.svelte
│       │   │       │   │   │   ├── inline-handlers-output.svelte
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   ├── test01-output.svelte
│       │   │       │   │   │   ├── test02-errors.yaml
│       │   │       │   │   │   ├── test02-input.svelte
│       │   │       │   │   │   └── test02-output.svelte
│       │   │       │   │   ├── single/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   └── test01-output.svelte
│       │   │       │   └── valid/
│       │   │       │       └── test01-input.svelte
│       │   │       ├── html-self-closing/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── component-never/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── component-never-errors.yaml
│       │   │       │   │   │   ├── component-never-input.svelte
│       │   │       │   │   │   └── component-never-output.svelte
│       │   │       │   │   ├── math-never/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── svelte-never-errors.yaml
│       │   │       │   │   │   ├── svelte-never-input.svelte
│       │   │       │   │   │   └── svelte-never-output.svelte
│       │   │       │   │   ├── normal-always/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── component-never-errors.yaml
│       │   │       │   │   │   ├── component-never-input.svelte
│       │   │       │   │   │   └── component-never-output.svelte
│       │   │       │   │   ├── normal-ignore/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── normal-any-errors.yaml
│       │   │       │   │   │   ├── normal-any-input.svelte
│       │   │       │   │   │   └── normal-any-output.svelte
│       │   │       │   │   ├── normal-never/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── component-never-errors.yaml
│       │   │       │   │   │   ├── component-never-input.svelte
│       │   │       │   │   │   └── component-never-output.svelte
│       │   │       │   │   ├── presets/
│       │   │       │   │   │   ├── html/
│       │   │       │   │   │   │   ├── _config.json
│       │   │       │   │   │   │   ├── preset-html-errors.yaml
│       │   │       │   │   │   │   ├── preset-html-input.svelte
│       │   │       │   │   │   │   └── preset-html-output.svelte
│       │   │       │   │   │   └── none/
│       │   │       │   │   │       ├── _config.json
│       │   │       │   │   │       ├── preset-none-errors.yaml
│       │   │       │   │   │       ├── preset-none-input.svelte
│       │   │       │   │   │       └── preset-none-output.svelte
│       │   │       │   │   ├── svelte-never/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── svelte-never-errors.yaml
│       │   │       │   │   │   ├── svelte-never-input.svelte
│       │   │       │   │   │   └── svelte-never-output.svelte
│       │   │       │   │   ├── svg-never/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── svelte-never-errors.yaml
│       │   │       │   │   │   ├── svelte-never-input.svelte
│       │   │       │   │   │   └── svelte-never-output.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   ├── test01-output.svelte
│       │   │       │   │   └── void-never/
│       │   │       │   │       ├── _config.json
│       │   │       │   │       ├── void-never-errors.yaml
│       │   │       │   │       ├── void-never-input.svelte
│       │   │       │   │       └── void-never-output.svelte
│       │   │       │   └── valid/
│       │   │       │       └── test01-input.svelte
│       │   │       ├── indent/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── 4-indent/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── align-attributes-vertically/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── attrs01-errors.yaml
│       │   │       │   │   │   ├── attrs01-input.svelte
│       │   │       │   │   │   └── attrs01-output.svelte
│       │   │       │   │   ├── await01-errors.yaml
│       │   │       │   │   ├── await01-input.svelte
│       │   │       │   │   ├── await01-output.svelte
│       │   │       │   │   ├── const-tag01-errors.yaml
│       │   │       │   │   ├── const-tag01-input.svelte
│       │   │       │   │   ├── const-tag01-output.svelte
│       │   │       │   │   ├── deubg-tag01-errors.yaml
│       │   │       │   │   ├── deubg-tag01-input.svelte
│       │   │       │   │   ├── deubg-tag01-output.svelte
│       │   │       │   │   ├── each01-errors.yaml
│       │   │       │   │   ├── each01-input.svelte
│       │   │       │   │   ├── each01-output.svelte
│       │   │       │   │   ├── html-text01-errors.yaml
│       │   │       │   │   ├── html-text01-input.svelte
│       │   │       │   │   ├── html-text01-output.svelte
│       │   │       │   │   ├── html-text02-errors.yaml
│       │   │       │   │   ├── html-text02-input.svelte
│       │   │       │   │   ├── html-text02-output.svelte
│       │   │       │   │   ├── if01-errors.yaml
│       │   │       │   │   ├── if01-input.svelte
│       │   │       │   │   ├── if01-output.svelte
│       │   │       │   │   ├── import-declaration01-errors.yaml
│       │   │       │   │   ├── import-declaration01-input.svelte
│       │   │       │   │   ├── import-declaration01-output.svelte
│       │   │       │   │   ├── indent-script/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── indent-script-errors.yaml
│       │   │       │   │   │   ├── indent-script-input.svelte
│       │   │       │   │   │   └── indent-script-output.svelte
│       │   │       │   │   ├── key01-errors.yaml
│       │   │       │   │   ├── key01-input.svelte
│       │   │       │   │   ├── key01-output.svelte
│       │   │       │   │   ├── script-array01-errors.yaml
│       │   │       │   │   ├── script-array01-input.svelte
│       │   │       │   │   ├── script-array01-output.svelte
│       │   │       │   │   ├── script-binary01-errors.yaml
│       │   │       │   │   ├── script-binary01-input.svelte
│       │   │       │   │   ├── script-binary01-output.svelte
│       │   │       │   │   ├── script-binary02-errors.yaml
│       │   │       │   │   ├── script-binary02-input.svelte
│       │   │       │   │   ├── script-binary02-output.svelte
│       │   │       │   │   ├── script-binary03-errors.yaml
│       │   │       │   │   ├── script-binary03-input.svelte
│       │   │       │   │   ├── script-binary03-output.svelte
│       │   │       │   │   ├── script-block01-errors.yaml
│       │   │       │   │   ├── script-block01-input.svelte
│       │   │       │   │   ├── script-block01-output.svelte
│       │   │       │   │   ├── script-break01-errors.yaml
│       │   │       │   │   ├── script-break01-input.svelte
│       │   │       │   │   ├── script-break01-output.svelte
│       │   │       │   │   ├── script-call01-errors.yaml
│       │   │       │   │   ├── script-call01-input.svelte
│       │   │       │   │   ├── script-call01-output.svelte
│       │   │       │   │   ├── script-class01-errors.yaml
│       │   │       │   │   ├── script-class01-input.svelte
│       │   │       │   │   ├── script-class01-output.svelte
│       │   │       │   │   ├── script-conditional01-errors.yaml
│       │   │       │   │   ├── script-conditional01-input.svelte
│       │   │       │   │   ├── script-conditional01-output.svelte
│       │   │       │   │   ├── script-do-while01-errors.yaml
│       │   │       │   │   ├── script-do-while01-input.svelte
│       │   │       │   │   ├── script-do-while01-output.svelte
│       │   │       │   │   ├── script-export01-errors.yaml
│       │   │       │   │   ├── script-export01-input.svelte
│       │   │       │   │   ├── script-export01-output.svelte
│       │   │       │   │   ├── script-export02-errors.yaml
│       │   │       │   │   ├── script-export02-input.svelte
│       │   │       │   │   ├── script-export02-output.svelte
│       │   │       │   │   ├── script-expr01-errors.yaml
│       │   │       │   │   ├── script-expr01-input.svelte
│       │   │       │   │   ├── script-expr01-output.svelte
│       │   │       │   │   ├── script-for01-errors.yaml
│       │   │       │   │   ├── script-for01-input.svelte
│       │   │       │   │   ├── script-for01-output.svelte
│       │   │       │   │   ├── script-function01-errors.yaml
│       │   │       │   │   ├── script-function01-input.svelte
│       │   │       │   │   ├── script-function01-output.svelte
│       │   │       │   │   ├── script-if01-errors.yaml
│       │   │       │   │   ├── script-if01-input.svelte
│       │   │       │   │   ├── script-if01-output.svelte
│       │   │       │   │   ├── script-import01-errors.yaml
│       │   │       │   │   ├── script-import01-input.svelte
│       │   │       │   │   ├── script-import01-output.svelte
│       │   │       │   │   ├── script-import02-errors.yaml
│       │   │       │   │   ├── script-import02-input.svelte
│       │   │       │   │   ├── script-import02-output.svelte
│       │   │       │   │   ├── script-member01-errors.yaml
│       │   │       │   │   ├── script-member01-input.svelte
│       │   │       │   │   ├── script-member01-output.svelte
│       │   │       │   │   ├── script-methods01-errors.yaml
│       │   │       │   │   ├── script-methods01-input.svelte
│       │   │       │   │   ├── script-methods01-output.svelte
│       │   │       │   │   ├── script-prop01-errors.yaml
│       │   │       │   │   ├── script-prop01-input.svelte
│       │   │       │   │   ├── script-prop01-output.svelte
│       │   │       │   │   ├── script-switch01-errors.yaml
│       │   │       │   │   ├── script-switch01-input.svelte
│       │   │       │   │   ├── script-switch01-output.svelte
│       │   │       │   │   ├── script-try01-errors.yaml
│       │   │       │   │   ├── script-try01-input.svelte
│       │   │       │   │   ├── script-try01-output.svelte
│       │   │       │   │   ├── script-unary01-errors.yaml
│       │   │       │   │   ├── script-unary01-input.svelte
│       │   │       │   │   ├── script-unary01-output.svelte
│       │   │       │   │   ├── script-yield-expression01-errors.yaml
│       │   │       │   │   ├── script-yield-expression01-input.svelte
│       │   │       │   │   ├── script-yield-expression01-output.svelte
│       │   │       │   │   ├── snippets01-errors.yaml
│       │   │       │   │   ├── snippets01-input.svelte
│       │   │       │   │   ├── snippets01-output.svelte
│       │   │       │   │   ├── snippets01-requirements.json
│       │   │       │   │   ├── style-directive01-errors.yaml
│       │   │       │   │   ├── style-directive01-input.svelte
│       │   │       │   │   ├── style-directive01-output.svelte
│       │   │       │   │   ├── switch-case/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── script-switch01-errors.yaml
│       │   │       │   │   │   ├── script-switch01-input.svelte
│       │   │       │   │   │   └── script-switch01-output.svelte
│       │   │       │   │   ├── tab-indent/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   ├── test01-output.svelte
│       │   │       │   │   │   ├── test02-errors.yaml
│       │   │       │   │   │   ├── test02-input.svelte
│       │   │       │   │   │   └── test02-output.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   ├── test01-output.svelte
│       │   │       │   │   ├── ts/
│       │   │       │   │   │   ├── ts-class01-errors.yaml
│       │   │       │   │   │   ├── ts-class01-input.svelte
│       │   │       │   │   │   ├── ts-class01-output.svelte
│       │   │       │   │   │   ├── ts-class02-errors.yaml
│       │   │       │   │   │   ├── ts-class02-input.svelte
│       │   │       │   │   │   ├── ts-class02-output.svelte
│       │   │       │   │   │   ├── ts-class03-errors.yaml
│       │   │       │   │   │   ├── ts-class03-input.svelte
│       │   │       │   │   │   ├── ts-class03-output.svelte
│       │   │       │   │   │   ├── ts-conditional-type01-errors.yaml
│       │   │       │   │   │   ├── ts-conditional-type01-input.svelte
│       │   │       │   │   │   ├── ts-conditional-type01-output.svelte
│       │   │       │   │   │   ├── ts-d-ts-eslint-errors.yaml
│       │   │       │   │   │   ├── ts-d-ts-eslint-input.svelte
│       │   │       │   │   │   ├── ts-d-ts-eslint-output.svelte
│       │   │       │   │   │   ├── ts-decorator01-errors.yaml
│       │   │       │   │   │   ├── ts-decorator01-input.svelte
│       │   │       │   │   │   ├── ts-decorator01-output.svelte
│       │   │       │   │   │   ├── ts-decorator02-errors.yaml
│       │   │       │   │   │   ├── ts-decorator02-input.svelte
│       │   │       │   │   │   ├── ts-decorator02-output.svelte
│       │   │       │   │   │   ├── ts-enum01-errors.yaml
│       │   │       │   │   │   ├── ts-enum01-input.svelte
│       │   │       │   │   │   ├── ts-enum01-output.svelte
│       │   │       │   │   │   ├── ts-function01-errors.yaml
│       │   │       │   │   │   ├── ts-function01-input.svelte
│       │   │       │   │   │   ├── ts-function01-output.svelte
│       │   │       │   │   │   ├── ts-function02-errors.yaml
│       │   │       │   │   │   ├── ts-function02-input.svelte
│       │   │       │   │   │   ├── ts-function02-output.svelte
│       │   │       │   │   │   ├── ts-import-export01-errors.yaml
│       │   │       │   │   │   ├── ts-import-export01-input.svelte
│       │   │       │   │   │   ├── ts-import-export01-output.svelte
│       │   │       │   │   │   ├── ts-import-type01-errors.yaml
│       │   │       │   │   │   ├── ts-import-type01-input.svelte
│       │   │       │   │   │   ├── ts-import-type01-output.svelte
│       │   │       │   │   │   ├── ts-import-type01-requirements.json
│       │   │       │   │   │   ├── ts-interface01-errors.yaml
│       │   │       │   │   │   ├── ts-interface01-input.svelte
│       │   │       │   │   │   ├── ts-interface01-output.svelte
│       │   │       │   │   │   ├── ts-interface02-errors.yaml
│       │   │       │   │   │   ├── ts-interface02-input.svelte
│       │   │       │   │   │   ├── ts-interface02-output.svelte
│       │   │       │   │   │   ├── ts-interface03-errors.yaml
│       │   │       │   │   │   ├── ts-interface03-input.svelte
│       │   │       │   │   │   ├── ts-interface03-output.svelte
│       │   │       │   │   │   ├── ts-static-block01-errors.yaml
│       │   │       │   │   │   ├── ts-static-block01-input.svelte
│       │   │       │   │   │   ├── ts-static-block01-output.svelte
│       │   │       │   │   │   ├── ts-template-literal-type01-errors.yaml
│       │   │       │   │   │   ├── ts-template-literal-type01-input.svelte
│       │   │       │   │   │   ├── ts-template-literal-type01-output.svelte
│       │   │       │   │   │   ├── ts-type-annotation01-errors.yaml
│       │   │       │   │   │   ├── ts-type-annotation01-input.svelte
│       │   │       │   │   │   ├── ts-type-annotation01-output.svelte
│       │   │       │   │   │   ├── ts-type-annotation02-errors.yaml
│       │   │       │   │   │   ├── ts-type-annotation02-input.svelte
│       │   │       │   │   │   ├── ts-type-annotation02-output.svelte
│       │   │       │   │   │   ├── ts-type-annotation03-errors.yaml
│       │   │       │   │   │   ├── ts-type-annotation03-input.svelte
│       │   │       │   │   │   ├── ts-type-annotation03-output.svelte
│       │   │       │   │   │   ├── ts-type-only-import-export01-errors.yaml
│       │   │       │   │   │   ├── ts-type-only-import-export01-input.svelte
│       │   │       │   │   │   ├── ts-type-only-import-export01-output.svelte
│       │   │       │   │   │   ├── ts-type-only-import-export02-errors.yaml
│       │   │       │   │   │   ├── ts-type-only-import-export02-input.svelte
│       │   │       │   │   │   ├── ts-type-only-import-export02-output.svelte
│       │   │       │   │   │   ├── ts-type-only-import-export03-errors.yaml
│       │   │       │   │   │   ├── ts-type-only-import-export03-input.svelte
│       │   │       │   │   │   ├── ts-type-only-import-export03-output.svelte
│       │   │       │   │   │   ├── ts-type-parameters01-errors.yaml
│       │   │       │   │   │   ├── ts-type-parameters01-input.svelte
│       │   │       │   │   │   ├── ts-type-parameters01-output.svelte
│       │   │       │   │   │   ├── ts-type-parameters02-errors.yaml
│       │   │       │   │   │   ├── ts-type-parameters02-input.svelte
│       │   │       │   │   │   ├── ts-type-parameters02-output.svelte
│       │   │       │   │   │   ├── ts-types01-errors.yaml
│       │   │       │   │   │   ├── ts-types01-input.svelte
│       │   │       │   │   │   ├── ts-types01-output.svelte
│       │   │       │   │   │   ├── ts-types02-errors.yaml
│       │   │       │   │   │   ├── ts-types02-input.svelte
│       │   │       │   │   │   ├── ts-types02-output.svelte
│       │   │       │   │   │   ├── ts-types03-errors.yaml
│       │   │       │   │   │   ├── ts-types03-input.svelte
│       │   │       │   │   │   ├── ts-types03-output.svelte
│       │   │       │   │   │   ├── ts-union01-errors.yaml
│       │   │       │   │   │   ├── ts-union01-input.svelte
│       │   │       │   │   │   ├── ts-union01-output.svelte
│       │   │       │   │   │   ├── ts-union02-errors.yaml
│       │   │       │   │   │   ├── ts-union02-input.svelte
│       │   │       │   │   │   └── ts-union02-output.svelte
│       │   │       │   │   └── ts-v5/
│       │   │       │   │       ├── ts-abstract-accessor-property-errors.yaml
│       │   │       │   │       ├── ts-abstract-accessor-property-input.svelte
│       │   │       │   │       ├── ts-abstract-accessor-property-output.svelte
│       │   │       │   │       ├── ts-accessor-property01-errors.yaml
│       │   │       │   │       ├── ts-accessor-property01-input.svelte
│       │   │       │   │       ├── ts-accessor-property01-output.svelte
│       │   │       │   │       ├── ts-accessor-property02-errors.yaml
│       │   │       │   │       ├── ts-accessor-property02-input.svelte
│       │   │       │   │       ├── ts-accessor-property02-output.svelte
│       │   │       │   │       ├── ts-accessor-property03-errors.yaml
│       │   │       │   │       ├── ts-accessor-property03-input.svelte
│       │   │       │   │       ├── ts-accessor-property03-output.svelte
│       │   │       │   │       ├── ts-accessor-property04-errors.yaml
│       │   │       │   │       ├── ts-accessor-property04-input.svelte
│       │   │       │   │       ├── ts-accessor-property04-output.svelte
│       │   │       │   │       ├── ts-accessor-property05-errors.yaml
│       │   │       │   │       ├── ts-accessor-property05-input.svelte
│       │   │       │   │       ├── ts-accessor-property05-output.svelte
│       │   │       │   │       ├── ts-import-assertion01-errors.yaml
│       │   │       │   │       ├── ts-import-assertion01-input.svelte
│       │   │       │   │       ├── ts-import-assertion01-output.svelte
│       │   │       │   │       ├── ts-import-assertion01-requirements.json
│       │   │       │   │       ├── ts-import-assertion02-errors.yaml
│       │   │       │   │       ├── ts-import-assertion02-input.svelte
│       │   │       │   │       ├── ts-import-assertion02-output.svelte
│       │   │       │   │       ├── ts-import-assertion03-errors.yaml
│       │   │       │   │       ├── ts-import-assertion03-input.svelte
│       │   │       │   │       ├── ts-import-assertion03-output.svelte
│       │   │       │   │       ├── ts-import-assertion03-requirements.json
│       │   │       │   │       ├── ts-import-assertion04-errors.yaml
│       │   │       │   │       ├── ts-import-assertion04-input.svelte
│       │   │       │   │       ├── ts-import-assertion04-output.svelte
│       │   │       │   │       ├── ts-import-assertion04-requirements.json
│       │   │       │   │       ├── ts-import-attributes01-errors.yaml
│       │   │       │   │       ├── ts-import-attributes01-input.svelte
│       │   │       │   │       ├── ts-import-attributes01-output.svelte
│       │   │       │   │       ├── ts-import-attributes01-requirements.json
│       │   │       │   │       ├── ts-import-attributes02-errors.yaml
│       │   │       │   │       ├── ts-import-attributes02-input.svelte
│       │   │       │   │       ├── ts-import-attributes02-output.svelte
│       │   │       │   │       ├── ts-import-attributes03-errors.yaml
│       │   │       │   │       ├── ts-import-attributes03-input.svelte
│       │   │       │   │       ├── ts-import-attributes03-output.svelte
│       │   │       │   │       ├── ts-import-attributes03-requirements.json
│       │   │       │   │       ├── ts-import-attributes04-errors.yaml
│       │   │       │   │       ├── ts-import-attributes04-input.svelte
│       │   │       │   │       ├── ts-import-attributes04-output.svelte
│       │   │       │   │       ├── ts-import-attributes04-requirements.json
│       │   │       │   │       ├── ts-instantiation-expression01-errors.yaml
│       │   │       │   │       ├── ts-instantiation-expression01-input.svelte
│       │   │       │   │       ├── ts-instantiation-expression01-output.svelte
│       │   │       │   │       ├── ts-satisfies-operators01-errors.yaml
│       │   │       │   │       ├── ts-satisfies-operators01-input.svelte
│       │   │       │   │       └── ts-satisfies-operators01-output.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── indent-script-input.svelte
│       │   │       │       ├── inline-style-tag-input.svelte
│       │   │       │       ├── pug01-input.svelte
│       │   │       │       ├── test01-input.svelte
│       │   │       │       └── ts/
│       │   │       │           ├── ts-import-type01-input.svelte
│       │   │       │           └── ts-import-type01-requirements.json
│       │   │       ├── infinite-reactive-loop/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── await/
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   └── test01-input.svelte
│       │   │       │   │   ├── function-call/
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   ├── test02-errors.yaml
│       │   │       │   │   │   ├── test02-input.svelte
│       │   │       │   │   │   ├── test03-errors.yaml
│       │   │       │   │   │   ├── test03-input.svelte
│       │   │       │   │   │   ├── test04-errors.yaml
│       │   │       │   │   │   ├── test04-input.svelte
│       │   │       │   │   │   ├── test05-errors.yaml
│       │   │       │   │   │   ├── test05-input.svelte
│       │   │       │   │   │   ├── test06-errors.yaml
│       │   │       │   │   │   ├── test06-input.svelte
│       │   │       │   │   │   ├── test07-errors.yaml
│       │   │       │   │   │   ├── test07-input.svelte
│       │   │       │   │   │   ├── test08-errors.yaml
│       │   │       │   │   │   ├── test08-input.svelte
│       │   │       │   │   │   ├── test09-errors.yaml
│       │   │       │   │   │   ├── test09-input.svelte
│       │   │       │   │   │   ├── test10-errors.yaml
│       │   │       │   │   │   ├── test10-input.svelte
│       │   │       │   │   │   ├── test11-errors.yaml
│       │   │       │   │   │   └── test11-input.svelte
│       │   │       │   │   ├── promise/
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   ├── test02-errors.yaml
│       │   │       │   │   │   ├── test02-input.svelte
│       │   │       │   │   │   ├── test03-errors.yaml
│       │   │       │   │   │   ├── test03-input.svelte
│       │   │       │   │   │   ├── test04-errors.yaml
│       │   │       │   │   │   ├── test04-input.svelte
│       │   │       │   │   │   ├── test05-errors.yaml
│       │   │       │   │   │   ├── test05-input.svelte
│       │   │       │   │   │   ├── test06-errors.yaml
│       │   │       │   │   │   └── test06-input.svelte
│       │   │       │   │   ├── queueMicrotask/
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   └── test01-input.svelte
│       │   │       │   │   ├── setInterval/
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   └── test01-input.svelte
│       │   │       │   │   ├── setTimeout/
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   ├── test02-errors.yaml
│       │   │       │   │   │   └── test02-input.svelte
│       │   │       │   │   └── tick/
│       │   │       │   │       ├── test01-errors.yaml
│       │   │       │   │       ├── test01-input.svelte
│       │   │       │   │       ├── test02-errors.yaml
│       │   │       │   │       └── test02-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── recursive-reference-input.svelte
│       │   │       │       ├── test01-input.svelte
│       │   │       │       ├── test02-input.svelte
│       │   │       │       ├── test03-input.svelte
│       │   │       │       ├── test04-input.svelte
│       │   │       │       ├── test05-input.svelte
│       │   │       │       ├── test06-input.svelte
│       │   │       │       ├── test07-input.svelte
│       │   │       │       └── test08-input.svelte
│       │   │       ├── max-attributes-per-line/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── max3/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   └── test01-output.svelte
│       │   │       │   └── valid/
│       │   │       │       └── test01-input.svelte
│       │   │       ├── max-lines-per-block/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── all-blocks-exceed/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── all01-errors.yaml
│       │   │       │   │   │   └── all01-input.svelte
│       │   │       │   │   ├── mixed-comment-code/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── mixed01-errors.yaml
│       │   │       │   │   │   └── mixed01-input.svelte
│       │   │       │   │   ├── script-too-long/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── script01-errors.yaml
│       │   │       │   │   │   └── script01-input.svelte
│       │   │       │   │   ├── skip-not-enough/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── skip01-errors.yaml
│       │   │       │   │   │   └── skip01-input.svelte
│       │   │       │   │   ├── style-too-long/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── style01-errors.yaml
│       │   │       │   │   │   └── style01-input.svelte
│       │   │       │   │   └── template-too-long/
│       │   │       │   │       ├── _config.json
│       │   │       │   │       ├── template01-errors.yaml
│       │   │       │   │       └── template01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── default-config.json
│       │   │       │       ├── default-input.svelte
│       │   │       │       ├── empty-block/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── empty01-input.svelte
│       │   │       │       ├── no-style/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── no-style01-input.svelte
│       │   │       │       ├── only-style/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── only-style01-input.svelte
│       │   │       │       ├── skip-blank-lines/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── skip-blank01-input.svelte
│       │   │       │       ├── skip-both/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── skip-both01-input.svelte
│       │   │       │       └── skip-comments/
│       │   │       │           ├── _config.json
│       │   │       │           └── skip-comments01-input.svelte
│       │   │       ├── mustache-spacing/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── always/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── snippet-render01-errors.yaml
│       │   │       │   │   │   ├── snippet-render01-input.svelte
│       │   │       │   │   │   ├── snippet-render01-output.svelte
│       │   │       │   │   │   ├── snippet-render01-requirements.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── always-after-expression/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── snippet-render01-errors.yaml
│       │   │       │   │   │   ├── snippet-render01-input.svelte
│       │   │       │   │   │   ├── snippet-render01-output.svelte
│       │   │       │   │   │   ├── snippet-render01-requirements.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── snippet-render01-errors.yaml
│       │   │       │   │   ├── snippet-render01-input.svelte
│       │   │       │   │   ├── snippet-render01-output.svelte
│       │   │       │   │   ├── snippet-render01-requirements.json
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   └── test01-output.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── always/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   ├── snippet-render01-input.svelte
│       │   │       │       │   ├── snippet-render01-requirements.json
│       │   │       │       │   └── test01-input.svelte
│       │   │       │       ├── snippet-render01-input.svelte
│       │   │       │       ├── snippet-render01-requirements.json
│       │   │       │       └── test01-input.svelte
│       │   │       ├── no-add-event-listener/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── _requirements.json
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   ├── typescript01-errors.yaml
│       │   │       │   │   └── typescript01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── _requirements.json
│       │   │       │       └── test01-input.svelte
│       │   │       ├── no-at-debug-tags/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── debug01-errors.yaml
│       │   │       │   │   ├── debug01-input.svelte
│       │   │       │   │   ├── debug02-errors.yaml
│       │   │       │   │   └── debug02-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── html-input.svelte
│       │   │       │       └── text-mustash-input.svelte
│       │   │       ├── no-at-html-tags/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── html-errors.yaml
│       │   │       │   │   └── html-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── debug01-input.svelte
│       │   │       │       ├── debug02-input.svelte
│       │   │       │       └── text-mustash-input.svelte
│       │   │       ├── no-dom-manipulating/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── chain01-errors.yaml
│       │   │       │   │   ├── chain01-input.svelte
│       │   │       │   │   ├── remove-text01-errors.yaml
│       │   │       │   │   ├── remove-text01-input.svelte
│       │   │       │   │   ├── remove01-errors.yaml
│       │   │       │   │   ├── remove01-input.svelte
│       │   │       │   │   ├── svelte-element01-errors.yaml
│       │   │       │   │   ├── svelte-element01-input.svelte
│       │   │       │   │   ├── well-known-method01-errors.yaml
│       │   │       │   │   ├── well-known-method01-input.svelte
│       │   │       │   │   ├── well-known-prop01-errors.yaml
│       │   │       │   │   └── well-known-prop01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── computed-member01-input.svelte
│       │   │       │       ├── loop01-input.svelte
│       │   │       │       ├── non-bind-this01-input.svelte
│       │   │       │       ├── non-element01-input.svelte
│       │   │       │       ├── read-prop01-input.svelte
│       │   │       │       ├── read-prop02-input.svelte
│       │   │       │       ├── remove-text01-input.svelte
│       │   │       │       ├── remove01-input.svelte
│       │   │       │       ├── unknown-method01-input.svelte
│       │   │       │       ├── unknown-prop01-input.svelte
│       │   │       │       └── unknown-var01-input.svelte
│       │   │       ├── no-dupe-else-if-blocks/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── simple-test01-errors.yaml
│       │   │       │   │   ├── simple-test01-input.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   ├── test02-errors.yaml
│       │   │       │   │   └── test02-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── test01-input.svelte
│       │   │       │       ├── test02-input.svelte
│       │   │       │       └── test03-input.svelte
│       │   │       ├── no-dupe-on-directives/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── inline-expression-errors.yaml
│       │   │       │   │   ├── inline-expression-input.svelte
│       │   │       │   │   ├── modifier-errors.yaml
│       │   │       │   │   ├── modifier-input.svelte
│       │   │       │   │   ├── multiple-element-errors.yaml
│       │   │       │   │   ├── multiple-element-input.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   ├── test02-errors.yaml
│       │   │       │   │   └── test02-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── test01-input.svelte
│       │   │       │       └── test02-input.svelte
│       │   │       ├── no-dupe-style-properties/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── ternary01-errors.yaml
│       │   │       │   │   ├── ternary01-input.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   └── test01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── empty01-input.svelte
│       │   │       │       ├── ternary01-input.svelte
│       │   │       │       ├── test01-input.svelte
│       │   │       │       └── test02-input.svelte
│       │   │       ├── no-dupe-use-directives/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── inline-expression-errors.yaml
│       │   │       │   │   ├── inline-expression-input.svelte
│       │   │       │   │   ├── multiple-element-errors.yaml
│       │   │       │   │   ├── multiple-element-input.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   ├── test02-errors.yaml
│       │   │       │   │   └── test02-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── inline-expression-input.svelte
│       │   │       │       └── test01-input.svelte
│       │   │       ├── no-dynamic-slot-name/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── bool-slot01-errors.yaml
│       │   │       │   │   ├── bool-slot01-input.svelte
│       │   │       │   │   ├── bool-slot01-output.svelte
│       │   │       │   │   ├── literal-slot01-errors.yaml
│       │   │       │   │   ├── literal-slot01-input.svelte
│       │   │       │   │   ├── literal-slot01-output.svelte
│       │   │       │   │   ├── multi-report01-errors.yaml
│       │   │       │   │   ├── multi-report01-input.svelte
│       │   │       │   │   ├── multi-report01-output.svelte
│       │   │       │   │   ├── recursive-loop01-errors.yaml
│       │   │       │   │   ├── recursive-loop01-input.svelte
│       │   │       │   │   ├── recursive-loop01-output.svelte
│       │   │       │   │   ├── var-slot01-errors.yaml
│       │   │       │   │   ├── var-slot01-input.svelte
│       │   │       │   │   └── var-slot01-output.svelte
│       │   │       │   └── valid/
│       │   │       │       └── slot01-input.svelte
│       │   │       ├── no-export-load-in-svelte-module-in-kit-pages/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── svelte-config/
│       │   │       │   │   │   └── test01/
│       │   │       │   │   │       ├── +page.svelte
│       │   │       │   │   │       ├── errors.yaml
│       │   │       │   │   │       └── svelte.config.js
│       │   │       │   │   ├── svelte-config-from-parser-options/
│       │   │       │   │   │   ├── +page.svelte
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   └── errors.yaml
│       │   │       │   │   ├── test01/
│       │   │       │   │   │   ├── +page.svelte
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   └── errors.yaml
│       │   │       │   │   └── test02/
│       │   │       │   │       ├── +page.svelte
│       │   │       │   │       ├── _config.json
│       │   │       │   │       └── errors.yaml
│       │   │       │   └── valid/
│       │   │       │       ├── not-page/
│       │   │       │       │   ├── +test01-input.svelte
│       │   │       │       │   ├── +test02-input.svelte
│       │   │       │       │   └── _config.json
│       │   │       │       ├── test01/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   └── _config.json
│       │   │       │       ├── test02/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   └── _config.json
│       │   │       │       ├── test03/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   └── _config.json
│       │   │       │       ├── test04/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   └── _config.json
│       │   │       │       ├── test05/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   └── _config.json
│       │   │       │       ├── test06/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   └── _config.json
│       │   │       │       ├── test07/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   └── _config.json
│       │   │       │       ├── test08/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   └── _config.json
│       │   │       │       ├── test09/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   └── _config.json
│       │   │       │       └── test10/
│       │   │       │           ├── +page.svelte
│       │   │       │           └── _config.json
│       │   │       ├── no-extra-reactive-curlies/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   ├── test02-errors.yaml
│       │   │       │   │   └── test02-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── test01-input.svelte
│       │   │       │       └── test02-input.svelte
│       │   │       ├── no-goto-without-base/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── aliased-goto01-errors.yaml
│       │   │       │   │   ├── aliased-goto01-input.svelte
│       │   │       │   │   ├── base-not-prefixed01-errors.yaml
│       │   │       │   │   ├── base-not-prefixed01-input.svelte
│       │   │       │   │   ├── no-base01-errors.yaml
│       │   │       │   │   └── no-base01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── absolute-uri01-input.svelte
│       │   │       │       ├── base-aliased01-input.svelte
│       │   │       │       └── base-prefixed01-input.svelte
│       │   │       ├── no-ignored-unsubscribe/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   └── test01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── test01-input.svelte
│       │   │       │       ├── test02-input.svelte
│       │   │       │       └── test03-input.svelte
│       │   │       ├── no-immutable-reactive-statements/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── immutable-let-errors.yaml
│       │   │       │   │   ├── immutable-let-input.svelte
│       │   │       │   │   ├── immutable01-errors.yaml
│       │   │       │   │   ├── immutable01-input.svelte
│       │   │       │   │   ├── readonly-export01-errors.yaml
│       │   │       │   │   └── readonly-export01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── builtin-vars01-input.svelte
│       │   │       │       ├── builtin-vars02-input.svelte
│       │   │       │       ├── mutable-member01-input.svelte
│       │   │       │       ├── mutable-member02-wth-bind-input.svelte
│       │   │       │       ├── mutable-member03-with-each-input.svelte
│       │   │       │       ├── mutable-member04-with-each-input.svelte
│       │   │       │       ├── mutable-member05-with-each-input.svelte
│       │   │       │       ├── mutable-member06-with-each-input.svelte
│       │   │       │       ├── mutable-member07-with-each-input.svelte
│       │   │       │       ├── mutable01-input.svelte
│       │   │       │       └── unknown01-input.svelte
│       │   │       ├── no-inline-styles/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── disallowed-transitions/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── transition01-errors.yaml
│       │   │       │   │   │   └── transition01-input.svelte
│       │   │       │   │   ├── style-attribute01-errors.yaml
│       │   │       │   │   ├── style-attribute01-input.svelte
│       │   │       │   │   ├── style-directive01-errors.yaml
│       │   │       │   │   └── style-directive01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── class-attribute01-input.svelte
│       │   │       │       ├── class-directive01-input.svelte
│       │   │       │       └── transition01-input.svelte
│       │   │       ├── no-inner-declarations/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── _config.json
│       │   │       │   │   ├── _requirements.json
│       │   │       │   │   ├── both/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── _requirements.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   └── test01-input.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   └── v8/
│       │   │       │   │       ├── _config.json
│       │   │       │   │       ├── _requirements.json
│       │   │       │   │       ├── both/
│       │   │       │   │       │   ├── _config.json
│       │   │       │   │       │   ├── _requirements.json
│       │   │       │   │       │   ├── test01-errors.yaml
│       │   │       │   │       │   └── test01-input.svelte
│       │   │       │   │       ├── test01-errors.yaml
│       │   │       │   │       └── test01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       └── test01-input.svelte
│       │   │       ├── no-inspect/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── _requirements.json
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   └── test01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── _requirements.json
│       │   │       │       └── test01-input.svelte
│       │   │       ├── no-navigation-without-base/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── goto-aliased01-errors.yaml
│       │   │       │   │   ├── goto-aliased01-input.svelte
│       │   │       │   │   ├── goto-base-not-as-prefix01-errors.yaml
│       │   │       │   │   ├── goto-base-not-as-prefix01-input.svelte
│       │   │       │   │   ├── goto-namespace-import01-errors.yaml
│       │   │       │   │   ├── goto-namespace-import01-input.svelte
│       │   │       │   │   ├── goto-no-base01-errors.yaml
│       │   │       │   │   ├── goto-no-base01-input.svelte
│       │   │       │   │   ├── link-base-not-as-prefix01-errors.yaml
│       │   │       │   │   ├── link-base-not-as-prefix01-input.svelte
│       │   │       │   │   ├── link-no-base01-errors.yaml
│       │   │       │   │   ├── link-no-base01-input.svelte
│       │   │       │   │   ├── link-with-fragment01-errors.yaml
│       │   │       │   │   ├── link-with-fragment01-input.svelte
│       │   │       │   │   ├── pushState-aliased01-errors.yaml
│       │   │       │   │   ├── pushState-aliased01-input.svelte
│       │   │       │   │   ├── pushState-base-not-as-prefix01-errors.yaml
│       │   │       │   │   ├── pushState-base-not-as-prefix01-input.svelte
│       │   │       │   │   ├── pushState-namespace-import01-errors.yaml
│       │   │       │   │   ├── pushState-namespace-import01-input.svelte
│       │   │       │   │   ├── pushState-no-base01-errors.yaml
│       │   │       │   │   ├── pushState-no-base01-input.svelte
│       │   │       │   │   ├── replaceState-aliased01-errors.yaml
│       │   │       │   │   ├── replaceState-aliased01-input.svelte
│       │   │       │   │   ├── replaceState-base-not-as-prefix01-errors.yaml
│       │   │       │   │   ├── replaceState-base-not-as-prefix01-input.svelte
│       │   │       │   │   ├── replaceState-namespace-import01-errors.yaml
│       │   │       │   │   ├── replaceState-namespace-import01-input.svelte
│       │   │       │   │   ├── replaceState-no-base01-errors.yaml
│       │   │       │   │   └── replaceState-no-base01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── goto-base-aliased01-input.svelte
│       │   │       │       ├── goto-base-namespace-import01-input.svelte
│       │   │       │       ├── goto-base-prefixed01-input.svelte
│       │   │       │       ├── ignoreGoto/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── goto-ignored01-input.svelte
│       │   │       │       ├── ignoreLinks/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── link-ignored01-input.svelte
│       │   │       │       ├── ignorePushState/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── pushState-ignored01-input.svelte
│       │   │       │       ├── ignoreReplaceState/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── replaceState-ignored01-input.svelte
│       │   │       │       ├── link-absolute-url01-input.svelte
│       │   │       │       ├── link-base-aliased01-input.svelte
│       │   │       │       ├── link-base-namespace-import01-input.svelte
│       │   │       │       ├── link-base-prefixed01-input.svelte
│       │   │       │       ├── link-fragment-url01-input.svelte
│       │   │       │       ├── pushState-base-aliased01-input.svelte
│       │   │       │       ├── pushState-base-namespace-import01-input.svelte
│       │   │       │       ├── pushState-base-prefixed01-input.svelte
│       │   │       │       ├── pushState-empty-url01-input.svelte
│       │   │       │       ├── replaceState-base-aliased01-input.svelte
│       │   │       │       ├── replaceState-base-namespace-import01-input.svelte
│       │   │       │       ├── replaceState-base-prefixed01-input.svelte
│       │   │       │       └── replaceState-empty-url01-input.svelte
│       │   │       ├── no-navigation-without-resolve/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── goto-aliased01-errors.yaml
│       │   │       │   │   ├── goto-aliased01-input.svelte
│       │   │       │   │   ├── goto-namespace-import01-errors.yaml
│       │   │       │   │   ├── goto-namespace-import01-input.svelte
│       │   │       │   │   ├── goto-partial-resolve01-errors.yaml
│       │   │       │   │   ├── goto-partial-resolve01-input.svelte
│       │   │       │   │   ├── goto-resolved-pathname-wrong-module01-errors.yaml
│       │   │       │   │   ├── goto-resolved-pathname-wrong-module01-input.svelte
│       │   │       │   │   ├── goto-string-prop01-errors.yaml
│       │   │       │   │   ├── goto-string-prop01-input.svelte
│       │   │       │   │   ├── goto-ternary-resolve-absolute01-errors.yaml
│       │   │       │   │   ├── goto-ternary-resolve-absolute01-input.svelte
│       │   │       │   │   ├── goto-ternary-resolve-empty01-errors.yaml
│       │   │       │   │   ├── goto-ternary-resolve-empty01-input.svelte
│       │   │       │   │   ├── goto-ternary-resolve-plain01-errors.yaml
│       │   │       │   │   ├── goto-ternary-resolve-plain01-input.svelte
│       │   │       │   │   ├── goto-unresolved-pathname01-errors.yaml
│       │   │       │   │   ├── goto-unresolved-pathname01-input.svelte
│       │   │       │   │   ├── goto-without-resolve01-errors.yaml
│       │   │       │   │   ├── goto-without-resolve01-input.svelte
│       │   │       │   │   ├── link-absolute-url-invalid-operator01-errors.yaml
│       │   │       │   │   ├── link-absolute-url-invalid-operator01-input.svelte
│       │   │       │   │   ├── link-fragment-url-invalid-operator01-errors.yaml
│       │   │       │   │   ├── link-fragment-url-invalid-operator01-input.svelte
│       │   │       │   │   ├── link-nullish-like-literal01-errors.yaml
│       │   │       │   │   ├── link-nullish-like-literal01-input.svelte
│       │   │       │   │   ├── link-partial-asset01-errors.yaml
│       │   │       │   │   ├── link-partial-asset01-input.svelte
│       │   │       │   │   ├── link-partial-resolve01-errors.yaml
│       │   │       │   │   ├── link-partial-resolve01-input.svelte
│       │   │       │   │   ├── link-resolved-pathname-wrong-module01-errors.yaml
│       │   │       │   │   ├── link-resolved-pathname-wrong-module01-input.svelte
│       │   │       │   │   ├── link-string-prop01-errors.yaml
│       │   │       │   │   ├── link-string-prop01-input.svelte
│       │   │       │   │   ├── link-ternary-asset-plain01-errors.yaml
│       │   │       │   │   ├── link-ternary-asset-plain01-input.svelte
│       │   │       │   │   ├── link-ternary-resolve-plain01-errors.yaml
│       │   │       │   │   ├── link-ternary-resolve-plain01-input.svelte
│       │   │       │   │   ├── link-unresolved-pathname01-errors.yaml
│       │   │       │   │   ├── link-unresolved-pathname01-input.svelte
│       │   │       │   │   ├── link-with-fragment01-errors.yaml
│       │   │       │   │   ├── link-with-fragment01-input.svelte
│       │   │       │   │   ├── link-without-resolve01-errors.yaml
│       │   │       │   │   ├── link-without-resolve01-input.svelte
│       │   │       │   │   ├── pushState-aliased01-errors.yaml
│       │   │       │   │   ├── pushState-aliased01-input.svelte
│       │   │       │   │   ├── pushState-namespace-import01-errors.yaml
│       │   │       │   │   ├── pushState-namespace-import01-input.svelte
│       │   │       │   │   ├── pushState-partial-resolve01-errors.yaml
│       │   │       │   │   ├── pushState-partial-resolve01-input.svelte
│       │   │       │   │   ├── pushState-resolved-pathname-wrong-module01-errors.yaml
│       │   │       │   │   ├── pushState-resolved-pathname-wrong-module01-input.svelte
│       │   │       │   │   ├── pushState-string-prop01-errors.yaml
│       │   │       │   │   ├── pushState-string-prop01-input.svelte
│       │   │       │   │   ├── pushState-ternary-resolve-absolute01-errors.yaml
│       │   │       │   │   ├── pushState-ternary-resolve-absolute01-input.svelte
│       │   │       │   │   ├── pushState-ternary-resolve-plain01-errors.yaml
│       │   │       │   │   ├── pushState-ternary-resolve-plain01-input.svelte
│       │   │       │   │   ├── pushState-unresolved-pathname01-errors.yaml
│       │   │       │   │   ├── pushState-unresolved-pathname01-input.svelte
│       │   │       │   │   ├── pushState-without-resolve01-errors.yaml
│       │   │       │   │   ├── pushState-without-resolve01-input.svelte
│       │   │       │   │   ├── recursive-loop01-errors.yaml
│       │   │       │   │   ├── recursive-loop01-input.svelte
│       │   │       │   │   ├── replaceState-aliased01-errors.yaml
│       │   │       │   │   ├── replaceState-aliased01-input.svelte
│       │   │       │   │   ├── replaceState-namespace-import01-errors.yaml
│       │   │       │   │   ├── replaceState-namespace-import01-input.svelte
│       │   │       │   │   ├── replaceState-partial-resolve01-errors.yaml
│       │   │       │   │   ├── replaceState-partial-resolve01-input.svelte
│       │   │       │   │   ├── replaceState-resolved-pathname-wrong-module01-errors.yaml
│       │   │       │   │   ├── replaceState-resolved-pathname-wrong-module01-input.svelte
│       │   │       │   │   ├── replaceState-string-prop01-errors.yaml
│       │   │       │   │   ├── replaceState-string-prop01-input.svelte
│       │   │       │   │   ├── replaceState-ternary-resolve-absolute01-errors.yaml
│       │   │       │   │   ├── replaceState-ternary-resolve-absolute01-input.svelte
│       │   │       │   │   ├── replaceState-ternary-resolve-plain01-errors.yaml
│       │   │       │   │   ├── replaceState-ternary-resolve-plain01-input.svelte
│       │   │       │   │   ├── replaceState-unresolved-pathname01-errors.yaml
│       │   │       │   │   ├── replaceState-unresolved-pathname01-input.svelte
│       │   │       │   │   ├── replaceState-without-resolve01-errors.yaml
│       │   │       │   │   └── replaceState-without-resolve01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── goto-namespace-import01-input.svelte
│       │   │       │       ├── goto-resolve-aliased01-input.svelte
│       │   │       │       ├── goto-resolved-pathname01-input.svelte
│       │   │       │       ├── goto-resolved-pathname02-input.svelte
│       │   │       │       ├── goto-resolved01-input.svelte
│       │   │       │       ├── goto-ternary-both-resolve01-input.svelte
│       │   │       │       ├── ignoreGoto/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── goto-ignored01-input.svelte
│       │   │       │       ├── ignoreLinks/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── link-ignored01-input.svelte
│       │   │       │       ├── ignorePushState/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── pushState-ignored01-input.svelte
│       │   │       │       ├── ignoreReplaceState/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── replaceState-ignored01-input.svelte
│       │   │       │       ├── link-absolute-url01-input.svelte
│       │   │       │       ├── link-asset-aliased01-input.svelte
│       │   │       │       ├── link-asset01-input.svelte
│       │   │       │       ├── link-fragment-url01-input.svelte
│       │   │       │       ├── link-namespace-import01-input.svelte
│       │   │       │       ├── link-nullish01-input.svelte
│       │   │       │       ├── link-rel-external01-input.svelte
│       │   │       │       ├── link-resolve-aliased01-input.svelte
│       │   │       │       ├── link-resolved-pathname01-input.svelte
│       │   │       │       ├── link-resolved-pathname02-input.svelte
│       │   │       │       ├── link-resolved01-input.svelte
│       │   │       │       ├── link-ternary-absolute-fragment01-input.svelte
│       │   │       │       ├── link-ternary-resolve-absolute01-input.svelte
│       │   │       │       ├── link-ternary-resolve-asset01-input.svelte
│       │   │       │       ├── link-ternary-resolve-fragment01-input.svelte
│       │   │       │       ├── link-ternary-resolve-nullish01-input.svelte
│       │   │       │       ├── pushState-empty-url01-input.svelte
│       │   │       │       ├── pushState-namespace-import01-input.svelte
│       │   │       │       ├── pushState-resolve-aliased01-input.svelte
│       │   │       │       ├── pushState-resolved-pathname01-input.svelte
│       │   │       │       ├── pushState-resolved-pathname02-input.svelte
│       │   │       │       ├── pushState-resolved01-input.svelte
│       │   │       │       ├── pushState-ternary-resolve-empty01-input.svelte
│       │   │       │       ├── replaceState-empty-url01-input.svelte
│       │   │       │       ├── replaceState-namespace-import01-input.svelte
│       │   │       │       ├── replaceState-resolve-aliased01-input.svelte
│       │   │       │       ├── replaceState-resolved-pathname01-input.svelte
│       │   │       │       ├── replaceState-resolved-pathname02-input.svelte
│       │   │       │       ├── replaceState-resolved01-input.svelte
│       │   │       │       └── replaceState-ternary-resolve-empty01-input.svelte
│       │   │       ├── no-not-function-handler/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── array01-errors.yaml
│       │   │       │   │   ├── array01-input.svelte
│       │   │       │   │   ├── class01-errors.yaml
│       │   │       │   │   ├── class01-input.svelte
│       │   │       │   │   ├── object01-errors.yaml
│       │   │       │   │   ├── object01-input.svelte
│       │   │       │   │   ├── string01-errors.yaml
│       │   │       │   │   ├── string01-input.svelte
│       │   │       │   │   ├── svelte5/
│       │   │       │   │   │   ├── array01-errors.yaml
│       │   │       │   │   │   ├── array01-input.svelte
│       │   │       │   │   │   ├── class01-errors.yaml
│       │   │       │   │   │   ├── class01-input.svelte
│       │   │       │   │   │   ├── object01-errors.yaml
│       │   │       │   │   │   ├── object01-input.svelte
│       │   │       │   │   │   ├── requirements.json
│       │   │       │   │   │   ├── string01-errors.yaml
│       │   │       │   │   │   ├── string01-input.svelte
│       │   │       │   │   │   ├── value01-errors.yaml
│       │   │       │   │   │   └── value01-input.svelte
│       │   │       │   │   ├── value01-errors.yaml
│       │   │       │   │   └── value01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── bind01-input.svelte
│       │   │       │       ├── function01-input.svelte
│       │   │       │       ├── null01-input.svelte
│       │   │       │       └── svelte5/
│       │   │       │           ├── function01-input.svelte
│       │   │       │           ├── null01-input.svelte
│       │   │       │           └── requirements.json
│       │   │       ├── no-object-in-text-mustaches/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── array01-errors.yaml
│       │   │       │   │   ├── array01-input.svelte
│       │   │       │   │   ├── class01-errors.yaml
│       │   │       │   │   ├── class01-input.svelte
│       │   │       │   │   ├── function01-errors.yaml
│       │   │       │   │   ├── function01-input.svelte
│       │   │       │   │   ├── object01-errors.yaml
│       │   │       │   │   └── object01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── object01-input.svelte
│       │   │       │       └── string01-input.svelte
│       │   │       ├── no-raw-special-elements/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   └── test01-output.svelte
│       │   │       │   └── valid/
│       │   │       │       └── test01-input.svelte
│       │   │       ├── no-reactive-functions/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   └── test01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       └── test01-input.svelte
│       │   │       ├── no-reactive-literals/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   └── test01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       └── test01-input.svelte
│       │   │       ├── no-reactive-reassign/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── array01-errors.yaml
│       │   │       │   │   ├── array01-input.svelte
│       │   │       │   │   ├── bind-dir01-errors.yaml
│       │   │       │   │   ├── bind-dir01-input.svelte
│       │   │       │   │   ├── conditional01-errors.yaml
│       │   │       │   │   ├── conditional01-input.svelte
│       │   │       │   │   ├── delete01-errors.yaml
│       │   │       │   │   ├── delete01-input.svelte
│       │   │       │   │   ├── destructure01-errors.yaml
│       │   │       │   │   ├── destructure01-input.svelte
│       │   │       │   │   ├── for-in01-errors.yaml
│       │   │       │   │   ├── for-in01-input.svelte
│       │   │       │   │   ├── for-of01-errors.yaml
│       │   │       │   │   ├── for-of01-input.svelte
│       │   │       │   │   ├── member01-errors.yaml
│       │   │       │   │   ├── member01-input.svelte
│       │   │       │   │   ├── props-false/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   └── test01-input.svelte
│       │   │       │   │   ├── props-true01-errors.yaml
│       │   │       │   │   ├── props-true01-input.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   └── test01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── array01-input.svelte
│       │   │       │       ├── assign-right01-input.svelte
│       │   │       │       ├── destructure01-input.svelte
│       │   │       │       ├── for-in01-input.svelte
│       │   │       │       ├── for-of01-input.svelte
│       │   │       │       ├── member-key01-input.svelte
│       │   │       │       ├── on-dir01-input.svelte
│       │   │       │       ├── props-false/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── props-false01-input.svelte
│       │   │       │       ├── reactive-like01-input.svelte
│       │   │       │       ├── reactive-like02-input.svelte
│       │   │       │       ├── test01-input.svelte
│       │   │       │       └── typeof01-input.svelte
│       │   │       ├── no-restricted-html-elements/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── array-config.json
│       │   │       │   │   ├── array-errors.yaml
│       │   │       │   │   ├── array-input.svelte
│       │   │       │   │   ├── object-config.json
│       │   │       │   │   ├── object-errors.yaml
│       │   │       │   │   └── object-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── array-config.json
│       │   │       │       ├── array-input.svelte
│       │   │       │       ├── object-config.json
│       │   │       │       └── object-input.svelte
│       │   │       ├── no-shorthand-style-property-overrides/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── ternary01-errors.yaml
│       │   │       │   │   ├── ternary01-input.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   └── test01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── empty01-input.svelte
│       │   │       │       ├── ternary01-input.svelte
│       │   │       │       ├── test01-input.svelte
│       │   │       │       └── test02-input.svelte
│       │   │       ├── no-spaces-around-equal-signs-in-attribute/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   └── test01-output.svelte
│       │   │       │   └── valid/
│       │   │       │       └── test-01-input.svelte
│       │   │       ├── no-store-async/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.js
│       │   │       │   │   ├── test02-errors.yaml
│       │   │       │   │   ├── test02-input.js
│       │   │       │   │   ├── test03-errors.yaml
│       │   │       │   │   ├── test03-input.js
│       │   │       │   │   ├── test04-errors.yaml
│       │   │       │   │   └── test04-input.js
│       │   │       │   └── valid/
│       │   │       │       └── test01-input.js
│       │   │       ├── no-svelte-internal/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── no-svelte-internal01-errors.yaml
│       │   │       │   │   ├── no-svelte-internal01-input.svelte
│       │   │       │   │   ├── no-svelte-internal02-errors.yaml
│       │   │       │   │   ├── no-svelte-internal02-input.svelte
│       │   │       │   │   ├── no-svelte-internal03-errors.yaml
│       │   │       │   │   ├── no-svelte-internal03-input.svelte
│       │   │       │   │   ├── no-svelte-internal04-errors.yaml
│       │   │       │   │   ├── no-svelte-internal04-input.svelte
│       │   │       │   │   ├── no-svelte-internal05-errors.yaml
│       │   │       │   │   ├── no-svelte-internal05-input.svelte
│       │   │       │   │   ├── no-svelte-internal06-errors.yaml
│       │   │       │   │   ├── no-svelte-internal06-input.svelte
│       │   │       │   │   ├── no-svelte-internal07-errors.yaml
│       │   │       │   │   └── no-svelte-internal07-input.svelte
│       │   │       │   └── valid/
│       │   │       │       └── no-svelte-internal01-input.svelte
│       │   │       ├── no-target-blank/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   └── test01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── allow-referrer/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── allow-referrer-test01-input.svelte
│       │   │       │       ├── enforce-dynamic-links/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── enforce-dynamic-links-test01-input.svelte
│       │   │       │       └── test01-input.svelte
│       │   │       ├── no-top-level-browser-globals/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── env01-errors.yaml
│       │   │       │   │   ├── env01-input.svelte
│       │   │       │   │   ├── env02-errors.yaml
│       │   │       │   │   ├── env02-input.svelte
│       │   │       │   │   ├── env03-errors.yaml
│       │   │       │   │   ├── env03-input.svelte
│       │   │       │   │   ├── guards01-errors.yaml
│       │   │       │   │   ├── guards01-input.svelte
│       │   │       │   │   ├── guards02-errors.yaml
│       │   │       │   │   ├── guards02-input.svelte
│       │   │       │   │   ├── guards03-errors.yaml
│       │   │       │   │   ├── guards03-input.svelte
│       │   │       │   │   ├── guards04-errors.yaml
│       │   │       │   │   ├── guards04-input.svelte
│       │   │       │   │   ├── guards05-errors.yaml
│       │   │       │   │   ├── guards05-input.svelte
│       │   │       │   │   ├── guards06-errors.yaml
│       │   │       │   │   ├── guards06-input.svelte
│       │   │       │   │   ├── guards07-errors.yaml
│       │   │       │   │   ├── guards07-input.svelte
│       │   │       │   │   ├── guards08-errors.yaml
│       │   │       │   │   ├── guards08-input.svelte
│       │   │       │   │   ├── in-template01-errors.yaml
│       │   │       │   │   ├── in-template01-input.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   ├── test02-errors.yaml
│       │   │       │   │   ├── test02-input.svelte
│       │   │       │   │   ├── test03-errors.yaml
│       │   │       │   │   └── test03-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── complex-guards01-input.svelte
│       │   │       │       ├── complex-guards02-input.svelte
│       │   │       │       ├── effect01-input.svelte
│       │   │       │       ├── env-guards01-input.svelte
│       │   │       │       ├── env01-input.svelte
│       │   │       │       ├── env02-input.svelte
│       │   │       │       ├── env03-input.svelte
│       │   │       │       ├── guards01-input.svelte
│       │   │       │       ├── guards02-input.svelte
│       │   │       │       ├── guards03-input.svelte
│       │   │       │       ├── guards04-input.svelte
│       │   │       │       ├── guards05-input.svelte
│       │   │       │       ├── guards06-input.svelte
│       │   │       │       ├── guards07-input.svelte
│       │   │       │       ├── guards08-input.svelte
│       │   │       │       ├── in-template01-input.svelte
│       │   │       │       ├── in-template02-input.svelte
│       │   │       │       ├── in-template02-requirements.json
│       │   │       │       ├── in-template03-input.svelte
│       │   │       │       ├── on-mount01-input.svelte
│       │   │       │       ├── state-generic-input.svelte
│       │   │       │       └── ts01-input.svelte
│       │   │       ├── no-trailing-spaces/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── ignoreComments/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── skipBlankLines/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   └── test01-output.svelte
│       │   │       │   └── valid/
│       │   │       │       └── test01-input.svelte
│       │   │       ├── no-unknown-style-directive-property/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── ignoreProperties/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   └── test01-input.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   └── test01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── test01-input.svelte
│       │   │       │       └── test02-input.svelte
│       │   │       ├── no-unnecessary-state-wrap/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── _requirements.json
│       │   │       │   │   ├── additional-class-config.json
│       │   │       │   │   ├── additional-class-errors.yaml
│       │   │       │   │   ├── additional-class-input.svelte
│       │   │       │   │   ├── allow-reassign-config.json
│       │   │       │   │   ├── allow-reassign-errors.yaml
│       │   │       │   │   ├── allow-reassign-input.svelte
│       │   │       │   │   ├── basic-errors.yaml
│       │   │       │   │   ├── basic-input.svelte
│       │   │       │   │   ├── import-alias-errors.yaml
│       │   │       │   │   └── import-alias-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── _requirements.json
│       │   │       │       ├── additional-class-config.json
│       │   │       │       ├── additional-class-input.svelte
│       │   │       │       ├── allow-reassign-bind1-config.json
│       │   │       │       ├── allow-reassign-bind1-input.svelte
│       │   │       │       ├── allow-reassign-bind2-config.json
│       │   │       │       ├── allow-reassign-bind2-input.svelte
│       │   │       │       ├── allow-reassign-config.json
│       │   │       │       ├── allow-reassign-input.svelte
│       │   │       │       └── basic-input.svelte
│       │   │       ├── no-unused-class-name/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── allowed-class-names/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── partially-allowed-class-name01-errors.yaml
│       │   │       │   │   │   └── partially-allowed-class-name01-input.svelte
│       │   │       │   │   ├── class-directive01-errors.yaml
│       │   │       │   │   ├── class-directive01-input.svelte
│       │   │       │   │   ├── duplicated-class-name-errors.yaml
│       │   │       │   │   ├── duplicated-class-name-input.svelte
│       │   │       │   │   ├── multiline-class-names01-errors.yaml
│       │   │       │   │   ├── multiline-class-names01-input.svelte
│       │   │       │   │   ├── multiple-class-names01-errors.yaml
│       │   │       │   │   ├── multiple-class-names01-input.svelte
│       │   │       │   │   ├── same-name-id01-errors.yaml
│       │   │       │   │   ├── same-name-id01-input.svelte
│       │   │       │   │   ├── unused-class-name01-errors.yaml
│       │   │       │   │   ├── unused-class-name01-input.svelte
│       │   │       │   │   ├── used-unrelated-class-name01-errors.yaml
│       │   │       │   │   └── used-unrelated-class-name01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── adjacent-sibling-combinator01-input.svelte
│       │   │       │       ├── allowed-class-names/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── allowed-class-name01-input.svelte
│       │   │       │       ├── child-combinator01-input.svelte
│       │   │       │       ├── descendant-combinator01-input.svelte
│       │   │       │       ├── general-sibling-combinator01-input.svelte
│       │   │       │       ├── invalid-style01-input.svelte
│       │   │       │       ├── multiple-class-names01-input.svelte
│       │   │       │       ├── no-class-name01-input.svelte
│       │   │       │       ├── pseudo-classes01-input.svelte
│       │   │       │       ├── pseudo-elements01-input.svelte
│       │   │       │       ├── scss-class-name01-input.svelte
│       │   │       │       ├── selector-list01-input.svelte
│       │   │       │       ├── test-input.js
│       │   │       │       ├── unknown-lang01-input.svelte
│       │   │       │       └── used-class-name01-input.svelte
│       │   │       ├── no-unused-props/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── _requirements.json
│       │   │       │   │   ├── alias-errors.yaml
│       │   │       │   │   ├── alias-input.svelte
│       │   │       │   │   ├── builtin-shadow-unused-errors.yaml
│       │   │       │   │   ├── builtin-shadow-unused-input.svelte
│       │   │       │   │   ├── builtin-types-unused-errors.yaml
│       │   │       │   │   ├── builtin-types-unused-input.svelte
│       │   │       │   │   ├── class-props-unused-errors.yaml
│       │   │       │   │   ├── class-props-unused-input.svelte
│       │   │       │   │   ├── custom-config-combination-config.json
│       │   │       │   │   ├── custom-config-combination-errors.yaml
│       │   │       │   │   ├── custom-config-combination-input.svelte
│       │   │       │   │   ├── extends-unused-errors.yaml
│       │   │       │   │   ├── extends-unused-input.svelte
│       │   │       │   │   ├── generic-props-unused-errors.yaml
│       │   │       │   │   ├── generic-props-unused-input.svelte
│       │   │       │   │   ├── ignore-external-type-errors.yaml
│       │   │       │   │   ├── ignore-external-type-input.svelte
│       │   │       │   │   ├── ignore-property-patterns-custom-config.json
│       │   │       │   │   ├── ignore-property-patterns-custom-errors.yaml
│       │   │       │   │   ├── ignore-property-patterns-custom-input.svelte
│       │   │       │   │   ├── ignored-type-patterns-custom-config.json
│       │   │       │   │   ├── ignored-type-patterns-custom-errors.yaml
│       │   │       │   │   ├── ignored-type-patterns-custom-input.svelte
│       │   │       │   │   ├── imported-type-check-config.json
│       │   │       │   │   ├── imported-type-check-errors.yaml
│       │   │       │   │   ├── imported-type-check-input.svelte
│       │   │       │   │   ├── imported-type-unused-errors.yaml
│       │   │       │   │   ├── imported-type-unused-input.svelte
│       │   │       │   │   ├── index-signature-no-rest-errors.yaml
│       │   │       │   │   ├── index-signature-no-rest-input.svelte
│       │   │       │   │   ├── intersection-unused-errors.yaml
│       │   │       │   │   ├── intersection-unused-input.svelte
│       │   │       │   │   ├── multiple-extends-unused-errors.yaml
│       │   │       │   │   ├── multiple-extends-unused-input.svelte
│       │   │       │   │   ├── nested-unused-errors.yaml
│       │   │       │   │   ├── nested-unused-input.svelte
│       │   │       │   │   ├── optional-unused-errors.yaml
│       │   │       │   │   ├── optional-unused-input.svelte
│       │   │       │   │   ├── parent-interface-unused-errors.yaml
│       │   │       │   │   ├── parent-interface-unused-input.svelte
│       │   │       │   │   ├── shared-types.ts
│       │   │       │   │   ├── simple-unused-errors.yaml
│       │   │       │   │   ├── simple-unused-input.svelte
│       │   │       │   │   ├── unused-index-signature-errors.yaml
│       │   │       │   │   └── unused-index-signature-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── _requirements.json
│       │   │       │       ├── alias-input.svelte
│       │   │       │       ├── any-input.svelte
│       │   │       │       ├── assignment-input.svelte
│       │   │       │       ├── basic-input.svelte
│       │   │       │       ├── bindable-input.svelte
│       │   │       │       ├── builtin-types-input.svelte
│       │   │       │       ├── component-props-any-input.svelte
│       │   │       │       ├── computed-member-input.svelte
│       │   │       │       ├── computed-property-input.svelte
│       │   │       │       ├── conditional-type-input.svelte
│       │   │       │       ├── custom-config-combination-config.json
│       │   │       │       ├── custom-config-combination-input.svelte
│       │   │       │       ├── default-value-input.svelte
│       │   │       │       ├── extends-input.svelte
│       │   │       │       ├── function-props-input.svelte
│       │   │       │       ├── ignore-external-type-input.svelte
│       │   │       │       ├── ignore-property-patterns-custom-config.json
│       │   │       │       ├── ignore-property-patterns-custom-input.svelte
│       │   │       │       ├── ignore-property-patterns-default-input.svelte
│       │   │       │       ├── ignored-type-patterns-custom-config.json
│       │   │       │       ├── ignored-type-patterns-custom-input.svelte
│       │   │       │       ├── ignored-type-patterns-custom2-config.json
│       │   │       │       ├── ignored-type-patterns-custom2-input.svelte
│       │   │       │       ├── imported-type-config.json
│       │   │       │       ├── imported-type-default-input.svelte
│       │   │       │       ├── imported-type-explicit-config.json
│       │   │       │       ├── imported-type-explicit-input.svelte
│       │   │       │       ├── imported-type-input.svelte
│       │   │       │       ├── index-signature-rest-input.svelte
│       │   │       │       ├── intersection-type-input.svelte
│       │   │       │       ├── js-basic-input.svelte
│       │   │       │       ├── js-jsdoc-input.svelte
│       │   │       │       ├── js-no-types-input.svelte
│       │   │       │       ├── member-input.svelte
│       │   │       │       ├── module-script-input.svelte
│       │   │       │       ├── multiple-index-signatures-input.svelte
│       │   │       │       ├── nested-props-input.svelte
│       │   │       │       ├── nested-props2-input.svelte
│       │   │       │       ├── nested-props3-input.svelte
│       │   │       │       ├── nested-props4-input.svelte
│       │   │       │       ├── nested-unused-config.json
│       │   │       │       ├── nested-unused-input.svelte
│       │   │       │       ├── nested-unused2-config.json
│       │   │       │       ├── nested-unused2-input.svelte
│       │   │       │       ├── new-expression-input.svelte
│       │   │       │       ├── optional-props-input.svelte
│       │   │       │       ├── record-type-input.svelte
│       │   │       │       ├── recursive-type-input.svelte
│       │   │       │       ├── rename-unused-input.svelte
│       │   │       │       ├── rest-and-index-input.svelte
│       │   │       │       ├── rest-with-index-input.svelte
│       │   │       │       ├── shared-types.ts
│       │   │       │       ├── spread-nested1-input.svelte
│       │   │       │       ├── spread-nested2-input.svelte
│       │   │       │       ├── spread-nested3-input.svelte
│       │   │       │       ├── spread-nested4-config.json
│       │   │       │       ├── spread-nested4-input.svelte
│       │   │       │       ├── spread-nested5-input.svelte
│       │   │       │       ├── spread-root1-input.svelte
│       │   │       │       ├── spread-root2-config.json
│       │   │       │       ├── spread-root2-input.svelte
│       │   │       │       ├── spread-root3-input.svelte
│       │   │       │       ├── template-usage-input.svelte
│       │   │       │       ├── ts-basic-input.svelte
│       │   │       │       ├── typed-props-input.svelte
│       │   │       │       ├── union-type-input.svelte
│       │   │       │       └── used-index-signature-input.svelte
│       │   │       ├── no-unused-svelte-ignore/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── html-comment-errors.yaml
│       │   │       │   │   ├── html-comment-input.svelte
│       │   │       │   │   ├── html-comment-requirements.json
│       │   │       │   │   ├── html-comment-svelte4-errors.yaml
│       │   │       │   │   ├── html-comment-svelte4-input.svelte
│       │   │       │   │   ├── invalid-svelte-ignore01-errors.yaml
│       │   │       │   │   ├── invalid-svelte-ignore01-input.svelte
│       │   │       │   │   ├── invalid-svelte-ignore01-requirements.json
│       │   │       │   │   ├── invalid-svelte-ignore01-svelte4-errors.yaml
│       │   │       │   │   ├── invalid-svelte-ignore01-svelte4-input.svelte
│       │   │       │   │   ├── invalid-svelte-ignore02-errors.yaml
│       │   │       │   │   ├── invalid-svelte-ignore02-input.svelte
│       │   │       │   │   ├── invalid-svelte-ignore02-requirements.json
│       │   │       │   │   ├── invalid-svelte-ignore02-svelte4-errors.yaml
│       │   │       │   │   ├── invalid-svelte-ignore02-svelte4-input.svelte
│       │   │       │   │   ├── invalid-svelte-ignore03-errors.yaml
│       │   │       │   │   ├── invalid-svelte-ignore03-input.svelte
│       │   │       │   │   ├── invalid-svelte-ignore03-requirements.json
│       │   │       │   │   ├── invalid-svelte-ignore03-svelte4-errors.yaml
│       │   │       │   │   ├── invalid-svelte-ignore03-svelte4-input.svelte
│       │   │       │   │   ├── missing-code-errors.yaml
│       │   │       │   │   ├── missing-code-input.svelte
│       │   │       │   │   ├── script-comment01-errors.yaml
│       │   │       │   │   ├── script-comment01-input.svelte
│       │   │       │   │   ├── script-comment01-requirements.json
│       │   │       │   │   ├── script-comment01-svelte4-errors.yaml
│       │   │       │   │   ├── script-comment01-svelte4-input.svelte
│       │   │       │   │   ├── script-comment02-svelte4-errors.yaml
│       │   │       │   │   ├── script-comment02-svelte4-input.svelte
│       │   │       │   │   ├── script-comment02-svelte4-requirements.json
│       │   │       │   │   ├── style-lang01-errors.yaml
│       │   │       │   │   ├── style-lang01-input.svelte
│       │   │       │   │   ├── style-lang02-errors.yaml
│       │   │       │   │   ├── style-lang02-input.svelte
│       │   │       │   │   ├── style-lang03-errors.yaml
│       │   │       │   │   ├── style-lang03-input.svelte
│       │   │       │   │   ├── style-lang04-errors.yaml
│       │   │       │   │   ├── style-lang04-input.svelte
│       │   │       │   │   ├── style-lang05-errors.yaml
│       │   │       │   │   ├── style-lang05-input.svelte
│       │   │       │   │   ├── style-lang06-errors.yaml
│       │   │       │   │   ├── style-lang06-input.svelte
│       │   │       │   │   ├── transform-test-errors.yaml
│       │   │       │   │   ├── transform-test-input.svelte
│       │   │       │   │   ├── transform-test-requirements.json
│       │   │       │   │   ├── transform-test-svelte4-errors.yaml
│       │   │       │   │   └── transform-test-svelte4-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── element-ignore01-input.svelte
│       │   │       │       ├── element-ignore01-requirements.json
│       │   │       │       ├── element-ignore01-svelte4-input.svelte
│       │   │       │       ├── has-error-svelte4-input.svelte
│       │   │       │       ├── html-comment-input.svelte
│       │   │       │       ├── html-comment-requirements.json
│       │   │       │       ├── html-comment-svelte4-input.svelte
│       │   │       │       ├── ignore-js-input.js
│       │   │       │       ├── kebab-ignore-input.svelte
│       │   │       │       ├── reactive-component-input.svelte
│       │   │       │       ├── reactive-component-requirements.json
│       │   │       │       ├── script-comment-input.svelte
│       │   │       │       ├── script-comment-requirements.json
│       │   │       │       ├── script-comment-svelte4-input.svelte
│       │   │       │       ├── script-comment-svelte4-requirements.json
│       │   │       │       ├── style-lang01-input.svelte
│       │   │       │       ├── style-lang01-requirements.json
│       │   │       │       ├── style-lang02-input.svelte
│       │   │       │       ├── style-lang02-requirements.json
│       │   │       │       ├── style-lang03-input.svelte
│       │   │       │       ├── style-lang03-requirements.json
│       │   │       │       ├── style-lang04-input.svelte
│       │   │       │       ├── style-lang04-requirements.json
│       │   │       │       ├── style-lang05-input.svelte
│       │   │       │       ├── style-lang05-requirements.json
│       │   │       │       ├── style-lang06-input.svelte
│       │   │       │       ├── style-lang06-requirements.json
│       │   │       │       ├── style-lang07-input.svelte
│       │   │       │       ├── svelte-ignore-comma-separated-input.svelte
│       │   │       │       ├── svelte-ignore-comma-separated-requirements.json
│       │   │       │       ├── svelte-ignore-note-input.svelte
│       │   │       │       ├── svelte-ignore-note-requirements.json
│       │   │       │       ├── svelte-ignore01-input.svelte
│       │   │       │       ├── svelte-ignore01-requirements.json
│       │   │       │       ├── svelte-ignore01-svelte4-input.svelte
│       │   │       │       ├── svelte-ignore02-input.svelte
│       │   │       │       ├── svelte-ignore02-requirements.json
│       │   │       │       ├── svelte-ignore02-svelte4-input.svelte
│       │   │       │       ├── svelte-ignore03-input.svelte
│       │   │       │       ├── svelte-ignore03-requirements.json
│       │   │       │       ├── svelte-ignore03-svelte4-input.svelte
│       │   │       │       ├── svelte-ignore04-input.svelte
│       │   │       │       ├── svelte-ignore04-requirements.json
│       │   │       │       ├── svelte-ignore04-svelte4-input.svelte
│       │   │       │       ├── svelte-ignore05-input.svelte
│       │   │       │       ├── svelte-ignore05-requirements.json
│       │   │       │       ├── svelte-ignore05-svelte4-input.svelte
│       │   │       │       ├── svelte-ignore06-input.svelte
│       │   │       │       ├── svelte-ignore06-requirements.json
│       │   │       │       ├── svelte-ignore06-svelte4-input.svelte
│       │   │       │       ├── svelte-ignore07-input.svelte
│       │   │       │       ├── svelte-ignore07-requirements.json
│       │   │       │       ├── svelte-ignore07-svelte4-input.svelte
│       │   │       │       ├── ts-lang01-input.svelte
│       │   │       │       ├── ts-lang01-requirements.json
│       │   │       │       └── ts-lang01-svelte4-input.svelte
│       │   │       ├── no-useless-children-snippet/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── _requirements.json
│       │   │       │   │   ├── children-snippet01-errors.yaml
│       │   │       │   │   └── children-snippet01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── _requirements.json
│       │   │       │       ├── implicit-snippet01-input.svelte
│       │   │       │       ├── named-snippet01-input.svelte
│       │   │       │       ├── snippet-with-params01-input.svelte
│       │   │       │       └── standalone-snippet01-input.svelte
│       │   │       ├── no-useless-mustaches/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── comments01-errors.yaml
│       │   │       │   │   ├── comments01-input.svelte
│       │   │       │   │   ├── comments01-output.svelte
│       │   │       │   │   ├── escape-test01-errors.yaml
│       │   │       │   │   ├── escape-test01-input.svelte
│       │   │       │   │   ├── escape-test01-output.svelte
│       │   │       │   │   ├── invalid-test01-errors.yaml
│       │   │       │   │   ├── invalid-test01-input.svelte
│       │   │       │   │   ├── invalid-test01-output.svelte
│       │   │       │   │   ├── quote-test01-errors.yaml
│       │   │       │   │   ├── quote-test01-input.svelte
│       │   │       │   │   ├── quote-test01-output.svelte
│       │   │       │   │   ├── quote-test02-errors.yaml
│       │   │       │   │   ├── quote-test02-input.svelte
│       │   │       │   │   ├── quote-test02-output.svelte
│       │   │       │   │   ├── spaces-test01-errors.yaml
│       │   │       │   │   ├── spaces-test01-input.svelte
│       │   │       │   │   ├── spaces-test01-output.svelte
│       │   │       │   │   ├── tag-test01-errors.yaml
│       │   │       │   │   ├── tag-test01-input.svelte
│       │   │       │   │   └── tag-test01-output.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── ignore-includes-comment/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── comments01-input.svelte
│       │   │       │       ├── ignore-string-escape/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── escape-test01-input.svelte
│       │   │       │       ├── valid-test01-input.svelte
│       │   │       │       └── valid-test02-input.svelte
│       │   │       ├── prefer-class-directive/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── _config.json
│       │   │       │   │   ├── empty/
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── simple-test01-errors.yaml
│       │   │       │   │   ├── simple-test01-input.svelte
│       │   │       │   │   ├── simple-test01-output.svelte
│       │   │       │   │   ├── svelte-element01-errors.yaml
│       │   │       │   │   ├── svelte-element01-input.svelte
│       │   │       │   │   ├── svelte-element01-output.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   ├── test01-output.svelte
│       │   │       │   │   ├── test02-errors.yaml
│       │   │       │   │   ├── test02-input.svelte
│       │   │       │   │   ├── test02-output.svelte
│       │   │       │   │   ├── test03-errors.yaml
│       │   │       │   │   ├── test03-input.svelte
│       │   │       │   │   ├── test03-output.svelte
│       │   │       │   │   ├── transform-test01-errors.yaml
│       │   │       │   │   ├── transform-test01-input.svelte
│       │   │       │   │   ├── transform-test01-output.svelte
│       │   │       │   │   ├── transform-test02-errors.yaml
│       │   │       │   │   ├── transform-test02-input.svelte
│       │   │       │   │   ├── transform-test02-output.svelte
│       │   │       │   │   ├── trim-test01-errors.yaml
│       │   │       │   │   ├── trim-test01-input.svelte
│       │   │       │   │   ├── trim-test01-output.svelte
│       │   │       │   │   ├── trim-test01.2-errors.yaml
│       │   │       │   │   ├── trim-test01.2-input.svelte
│       │   │       │   │   └── trim-test01.2-output.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── _config.json
│       │   │       │       ├── empty/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── ignore-test05-input.svelte
│       │   │       │       ├── ignore-component01-input.svelte
│       │   │       │       ├── ignore-svelte-self01-input.svelte
│       │   │       │       ├── ignore-test01-input.svelte
│       │   │       │       ├── ignore-test02-input.svelte
│       │   │       │       ├── ignore-test03-input.svelte
│       │   │       │       ├── ignore-test04-input.svelte
│       │   │       │       └── simple-test01-input.svelte
│       │   │       ├── prefer-const/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── option1/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── option2/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   └── test01-output.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── 1238/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── input.svelte
│       │   │       │       ├── option1/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── test01-input.svelte
│       │   │       │       ├── option2/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── test01-input.svelte
│       │   │       │       └── test01-input.svelte
│       │   │       ├── prefer-destructured-store-props/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── fixer-test01-errors.yaml
│       │   │       │   │   ├── fixer-test01-input.svelte
│       │   │       │   │   ├── member01-errors.yaml
│       │   │       │   │   ├── member01-input.svelte
│       │   │       │   │   ├── member02-errors.yaml
│       │   │       │   │   ├── member02-input.svelte
│       │   │       │   │   ├── member03-errors.yaml
│       │   │       │   │   ├── member03-input.svelte
│       │   │       │   │   ├── module-errors.yaml
│       │   │       │   │   ├── module-input.svelte
│       │   │       │   │   ├── runes-with-store01-errors.yaml
│       │   │       │   │   ├── runes-with-store01-input.svelte
│       │   │       │   │   ├── runes-with-store01-requirements.json
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   ├── test02-errors.yaml
│       │   │       │   │   ├── test02-input.svelte
│       │   │       │   │   ├── test03-errors.yaml
│       │   │       │   │   └── test03-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── builtin-vars01-input.svelte
│       │   │       │       ├── builtin-vars02-input.svelte
│       │   │       │       ├── runes01-input.svelte.js
│       │   │       │       ├── runes01-requirements.json
│       │   │       │       ├── script-test01-input.svelte
│       │   │       │       └── test01-input.svelte
│       │   │       ├── prefer-style-directive/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── complex-test01-errors.yaml
│       │   │       │   │   ├── complex-test01-input.svelte
│       │   │       │   │   ├── complex-test01-output.svelte
│       │   │       │   │   ├── svelte-element01-errors.yaml
│       │   │       │   │   ├── svelte-element01-input.svelte
│       │   │       │   │   ├── svelte-element01-output.svelte
│       │   │       │   │   ├── ternary01-errors.yaml
│       │   │       │   │   ├── ternary01-input.svelte
│       │   │       │   │   ├── ternary01-output.svelte
│       │   │       │   │   ├── ternary02-errors.yaml
│       │   │       │   │   ├── ternary02-input.svelte
│       │   │       │   │   ├── ternary02-output.svelte
│       │   │       │   │   ├── ternary03-errors.yaml
│       │   │       │   │   ├── ternary03-input.svelte
│       │   │       │   │   ├── ternary03-output.svelte
│       │   │       │   │   ├── ternary04-errors.yaml
│       │   │       │   │   ├── ternary04-input.svelte
│       │   │       │   │   ├── ternary04-output.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   ├── test01-output.svelte
│       │   │       │   │   ├── test02-errors.yaml
│       │   │       │   │   ├── test02-input.svelte
│       │   │       │   │   ├── test02-output.svelte
│       │   │       │   │   ├── test03-errors.yaml
│       │   │       │   │   ├── test03-input.svelte
│       │   │       │   │   ├── test03-output.svelte
│       │   │       │   │   ├── test04-errors.yaml
│       │   │       │   │   ├── test04-input.svelte
│       │   │       │   │   └── test04-output.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── empty01-input.svelte
│       │   │       │       ├── ignore-component01-input.svelte
│       │   │       │       ├── ignore-svelte-self01-input.svelte
│       │   │       │       ├── invalid-style01-input.svelte
│       │   │       │       └── test01-input.svelte
│       │   │       ├── prefer-svelte-reactivity/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── _requirements.json
│       │   │       │   │   ├── date/
│       │   │       │   │   │   ├── _requirements.json
│       │   │       │   │   │   ├── setDate01-errors.yaml
│       │   │       │   │   │   ├── setDate01-input.svelte
│       │   │       │   │   │   ├── setFullYear01-errors.yaml
│       │   │       │   │   │   ├── setFullYear01-input.svelte
│       │   │       │   │   │   ├── setFullYear02-errors.yaml
│       │   │       │   │   │   ├── setFullYear02-input.svelte
│       │   │       │   │   │   ├── setFullYear03-errors.yaml
│       │   │       │   │   │   ├── setFullYear03-input.svelte
│       │   │       │   │   │   ├── setHours01-errors.yaml
│       │   │       │   │   │   ├── setHours01-input.svelte
│       │   │       │   │   │   ├── setHours02-errors.yaml
│       │   │       │   │   │   ├── setHours02-input.svelte
│       │   │       │   │   │   ├── setHours03-errors.yaml
│       │   │       │   │   │   ├── setHours03-input.svelte
│       │   │       │   │   │   ├── setHours04-errors.yaml
│       │   │       │   │   │   ├── setHours04-input.svelte
│       │   │       │   │   │   ├── setMilliseconds01-errors.yaml
│       │   │       │   │   │   ├── setMilliseconds01-input.svelte
│       │   │       │   │   │   ├── setMinutes01-errors.yaml
│       │   │       │   │   │   ├── setMinutes01-input.svelte
│       │   │       │   │   │   ├── setMinutes02-errors.yaml
│       │   │       │   │   │   ├── setMinutes02-input.svelte
│       │   │       │   │   │   ├── setMinutes03-errors.yaml
│       │   │       │   │   │   ├── setMinutes03-input.svelte
│       │   │       │   │   │   ├── setMonth01-errors.yaml
│       │   │       │   │   │   ├── setMonth01-input.svelte
│       │   │       │   │   │   ├── setMonth02-errors.yaml
│       │   │       │   │   │   ├── setMonth02-input.svelte
│       │   │       │   │   │   ├── setSeconds01-errors.yaml
│       │   │       │   │   │   ├── setSeconds01-input.svelte
│       │   │       │   │   │   ├── setSeconds02-errors.yaml
│       │   │       │   │   │   ├── setSeconds02-input.svelte
│       │   │       │   │   │   ├── setTime01-errors.yaml
│       │   │       │   │   │   ├── setTime01-input.svelte
│       │   │       │   │   │   ├── setUTCDate01-errors.yaml
│       │   │       │   │   │   ├── setUTCDate01-input.svelte
│       │   │       │   │   │   ├── setUTCFullYear01-errors.yaml
│       │   │       │   │   │   ├── setUTCFullYear01-input.svelte
│       │   │       │   │   │   ├── setUTCFullYear02-errors.yaml
│       │   │       │   │   │   ├── setUTCFullYear02-input.svelte
│       │   │       │   │   │   ├── setUTCFullYear03-errors.yaml
│       │   │       │   │   │   ├── setUTCFullYear03-input.svelte
│       │   │       │   │   │   ├── setUTCHours01-errors.yaml
│       │   │       │   │   │   ├── setUTCHours01-input.svelte
│       │   │       │   │   │   ├── setUTCHours02-errors.yaml
│       │   │       │   │   │   ├── setUTCHours02-input.svelte
│       │   │       │   │   │   ├── setUTCHours03-errors.yaml
│       │   │       │   │   │   ├── setUTCHours03-input.svelte
│       │   │       │   │   │   ├── setUTCHours04-errors.yaml
│       │   │       │   │   │   ├── setUTCHours04-input.svelte
│       │   │       │   │   │   ├── setUTCMilliseconds01-errors.yaml
│       │   │       │   │   │   ├── setUTCMilliseconds01-input.svelte
│       │   │       │   │   │   ├── setUTCMinutes01-errors.yaml
│       │   │       │   │   │   ├── setUTCMinutes01-input.svelte
│       │   │       │   │   │   ├── setUTCMinutes02-errors.yaml
│       │   │       │   │   │   ├── setUTCMinutes02-input.svelte
│       │   │       │   │   │   ├── setUTCMinutes03-errors.yaml
│       │   │       │   │   │   ├── setUTCMinutes03-input.svelte
│       │   │       │   │   │   ├── setUTCMonth01-errors.yaml
│       │   │       │   │   │   ├── setUTCMonth01-input.svelte
│       │   │       │   │   │   ├── setUTCMonth02-errors.yaml
│       │   │       │   │   │   ├── setUTCMonth02-input.svelte
│       │   │       │   │   │   ├── setUTCSeconds01-errors.yaml
│       │   │       │   │   │   ├── setUTCSeconds01-input.svelte
│       │   │       │   │   │   ├── setUTCSeconds02-errors.yaml
│       │   │       │   │   │   ├── setUTCSeconds02-input.svelte
│       │   │       │   │   │   ├── setYear01-errors.yaml
│       │   │       │   │   │   └── setYear01-input.svelte
│       │   │       │   │   ├── exports01-errors.yaml
│       │   │       │   │   ├── exports01-input.svelte.js
│       │   │       │   │   ├── exports02-errors.yaml
│       │   │       │   │   ├── exports02-input.svelte.js
│       │   │       │   │   ├── exports03-errors.yaml
│       │   │       │   │   ├── exports03-input.svelte.js
│       │   │       │   │   ├── exports04-errors.yaml
│       │   │       │   │   ├── exports04-input.svelte.js
│       │   │       │   │   ├── map/
│       │   │       │   │   │   ├── _requirements.json
│       │   │       │   │   │   ├── clear01-errors.yaml
│       │   │       │   │   │   ├── clear01-input.svelte
│       │   │       │   │   │   ├── delete01-errors.yaml
│       │   │       │   │   │   ├── delete01-input.svelte
│       │   │       │   │   │   ├── set01-errors.yaml
│       │   │       │   │   │   └── set01-input.svelte
│       │   │       │   │   ├── set/
│       │   │       │   │   │   ├── _requirements.json
│       │   │       │   │   │   ├── add01-errors.yaml
│       │   │       │   │   │   ├── add01-input.svelte
│       │   │       │   │   │   ├── clear01-errors.yaml
│       │   │       │   │   │   ├── clear01-input.svelte
│       │   │       │   │   │   ├── delete01-errors.yaml
│       │   │       │   │   │   └── delete01-input.svelte
│       │   │       │   │   ├── url/
│       │   │       │   │   │   ├── _requirements.json
│       │   │       │   │   │   ├── hash01-errors.yaml
│       │   │       │   │   │   ├── hash01-input.svelte
│       │   │       │   │   │   ├── host01-errors.yaml
│       │   │       │   │   │   ├── host01-input.svelte
│       │   │       │   │   │   ├── hostname01-errors.yaml
│       │   │       │   │   │   ├── hostname01-input.svelte
│       │   │       │   │   │   ├── href01-errors.yaml
│       │   │       │   │   │   ├── href01-input.svelte
│       │   │       │   │   │   ├── password01-errors.yaml
│       │   │       │   │   │   ├── password01-input.svelte
│       │   │       │   │   │   ├── pathname01-errors.yaml
│       │   │       │   │   │   ├── pathname01-input.svelte
│       │   │       │   │   │   ├── port01-errors.yaml
│       │   │       │   │   │   ├── port01-input.svelte
│       │   │       │   │   │   ├── protocol01-errors.yaml
│       │   │       │   │   │   ├── protocol01-input.svelte
│       │   │       │   │   │   ├── search01-errors.yaml
│       │   │       │   │   │   ├── search01-input.svelte
│       │   │       │   │   │   ├── username01-errors.yaml
│       │   │       │   │   │   └── username01-input.svelte
│       │   │       │   │   └── url-search-params/
│       │   │       │   │       ├── _requirements.json
│       │   │       │   │       ├── append01-errors.yaml
│       │   │       │   │       ├── append01-input.svelte
│       │   │       │   │       ├── delete01-errors.yaml
│       │   │       │   │       ├── delete01-input.svelte
│       │   │       │   │       ├── delete02-errors.yaml
│       │   │       │   │       ├── delete02-input.svelte
│       │   │       │   │       ├── set01-errors.yaml
│       │   │       │   │       ├── set01-input.svelte
│       │   │       │   │       ├── sort01-errors.yaml
│       │   │       │   │       └── sort01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── _requirements.json
│       │   │       │       ├── aliased-date01-input.svelte
│       │   │       │       ├── aliased-map01-input.svelte
│       │   │       │       ├── aliased-set01-input.svelte
│       │   │       │       ├── aliased-url-search-params01-input.svelte
│       │   │       │       ├── aliased-url01-input.svelte
│       │   │       │       ├── date01-input.svelte
│       │   │       │       ├── map01-input.svelte
│       │   │       │       ├── set01-input.svelte
│       │   │       │       ├── svelte-date01-input.svelte
│       │   │       │       ├── svelte-map01-input.svelte
│       │   │       │       ├── svelte-set01-input.svelte
│       │   │       │       ├── svelte-url-search-params01-input.svelte
│       │   │       │       ├── svelte-url01-input.svelte
│       │   │       │       ├── unrelated-date01-input.svelte
│       │   │       │       ├── unrelated-map01-input.svelte
│       │   │       │       ├── unrelated-set01-input.svelte
│       │   │       │       ├── unrelated-url-search-params01-input.svelte
│       │   │       │       ├── unrelated-url01-input.svelte
│       │   │       │       ├── url-search-params01-input.svelte
│       │   │       │       └── url01-input.svelte
│       │   │       ├── prefer-writable-derived/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── _requirements.json
│       │   │       │   │   ├── basic1-errors.yaml
│       │   │       │   │   ├── basic1-input.svelte
│       │   │       │   │   ├── basic2-errors.yaml
│       │   │       │   │   ├── basic2-input.svelte
│       │   │       │   │   ├── effect-pre1-errors.yaml
│       │   │       │   │   ├── effect-pre1-input.svelte
│       │   │       │   │   ├── effect-pre2-errors.yaml
│       │   │       │   │   ├── effect-pre2-input.svelte
│       │   │       │   │   ├── multiple-reassign1-errors.yaml
│       │   │       │   │   ├── multiple-reassign1-input.svelte
│       │   │       │   │   ├── multiple-reassign2-errors.yaml
│       │   │       │   │   ├── multiple-reassign2-input.svelte
│       │   │       │   │   ├── multiple-reassign3-errors.yaml
│       │   │       │   │   └── multiple-reassign3-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── _requirements.json
│       │   │       │       ├── condition1-input.svelte
│       │   │       │       └── condition2-input.svelte
│       │   │       ├── require-each-key/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── each-block-without-key01-errors.yaml
│       │   │       │   │   └── each-block-without-key01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── keyed-each-block01-input.svelte
│       │   │       │       └── svelte5/
│       │   │       │           ├── _requirements.json
│       │   │       │           └── each-blocks-without-an-item-input.svelte
│       │   │       ├── require-event-dispatcher-types/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── _requirements.json
│       │   │       │   │   ├── import-alias01-errors.yaml
│       │   │       │   │   ├── import-alias01-input.svelte
│       │   │       │   │   ├── no-types01-errors.yaml
│       │   │       │   │   └── no-types01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── _requirements.json
│       │   │       │       ├── has-types01-input.svelte
│       │   │       │       ├── no-typescript01-input.svelte
│       │   │       │       └── non-svelte-dispatcher01-input.svelte
│       │   │       ├── require-event-prefix/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── _requirements.json
│       │   │       │   │   ├── checkAsyncFunctions/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── _requirements.json
│       │   │       │   │   │   ├── async-arrow01-errors.yaml
│       │   │       │   │   │   ├── async-arrow01-input.svelte
│       │   │       │   │   │   ├── async01-errors.yaml
│       │   │       │   │   │   └── async01-input.svelte
│       │   │       │   │   ├── no-prefix-arrow01-errors.yaml
│       │   │       │   │   ├── no-prefix-arrow01-input.svelte
│       │   │       │   │   ├── no-prefix-inline-type01-errors.yaml
│       │   │       │   │   ├── no-prefix-inline-type01-input.svelte
│       │   │       │   │   ├── no-prefix01-errors.yaml
│       │   │       │   │   └── no-prefix01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── _requirements.json
│       │   │       │       ├── any01-input.svelte
│       │   │       │       ├── async01-input.svelte
│       │   │       │       ├── non-function01-input.svelte
│       │   │       │       └── with-prefix01-input.svelte
│       │   │       ├── require-optimized-style-attribute/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── comment01-errors.yaml
│       │   │       │   │   ├── comment01-input.svelte
│       │   │       │   │   ├── key01-errors.yaml
│       │   │       │   │   ├── key01-input.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   └── test01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── empty01-input.svelte
│       │   │       │       └── test01-input.svelte
│       │   │       ├── require-store-callbacks-use-set-param/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   ├── test02-errors.yaml
│       │   │       │   │   └── test02-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── test01-input.svelte
│       │   │       │       └── test02-input.svelte
│       │   │       ├── require-store-reactive-access/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── attrs-store01-errors.yaml
│       │   │       │   │   ├── attrs-store01-input.svelte
│       │   │       │   │   ├── attrs-store01-output.svelte
│       │   │       │   │   ├── await01-errors.yaml
│       │   │       │   │   ├── await01-input.svelte
│       │   │       │   │   ├── await01-output.svelte
│       │   │       │   │   ├── calc01-errors.yaml
│       │   │       │   │   ├── calc01-input.svelte
│       │   │       │   │   ├── calc01-output.svelte
│       │   │       │   │   ├── calc01-requirements.json
│       │   │       │   │   ├── call01-errors.yaml
│       │   │       │   │   ├── call01-input.svelte
│       │   │       │   │   ├── call01-output.svelte
│       │   │       │   │   ├── condition01-errors.yaml
│       │   │       │   │   ├── condition01-input.svelte
│       │   │       │   │   ├── condition01-output.svelte
│       │   │       │   │   ├── directives-store01-errors.yaml
│       │   │       │   │   ├── directives-store01-input.svelte
│       │   │       │   │   ├── directives-store01-output.svelte
│       │   │       │   │   ├── for-in01-errors.yaml
│       │   │       │   │   ├── for-in01-input.svelte
│       │   │       │   │   ├── for-in01-output.svelte
│       │   │       │   │   ├── for-of01-errors.yaml
│       │   │       │   │   ├── for-of01-input.svelte
│       │   │       │   │   ├── for-of01-output.svelte
│       │   │       │   │   ├── if-block01-errors.yaml
│       │   │       │   │   ├── if-block01-input.svelte
│       │   │       │   │   ├── if-block01-output.svelte
│       │   │       │   │   ├── if-statement01-errors.yaml
│       │   │       │   │   ├── if-statement01-input.svelte
│       │   │       │   │   ├── if-statement01-output.svelte
│       │   │       │   │   ├── import01-errors.yaml
│       │   │       │   │   ├── import01-input.svelte
│       │   │       │   │   ├── import01-output.svelte
│       │   │       │   │   ├── properties01-errors.yaml
│       │   │       │   │   ├── properties01-input.svelte
│       │   │       │   │   ├── properties01-output.svelte
│       │   │       │   │   ├── props-store01-errors.yaml
│       │   │       │   │   ├── props-store01-input.svelte
│       │   │       │   │   ├── props-store01-output.svelte
│       │   │       │   │   ├── spread01-errors.yaml
│       │   │       │   │   ├── spread01-input.svelte
│       │   │       │   │   ├── spread01-output.svelte
│       │   │       │   │   ├── svelte-component01-errors.yaml
│       │   │       │   │   ├── svelte-component01-input.svelte
│       │   │       │   │   ├── svelte-component01-output.svelte
│       │   │       │   │   ├── svelte-element01-errors.yaml
│       │   │       │   │   ├── svelte-element01-input.svelte
│       │   │       │   │   ├── svelte-element01-output.svelte
│       │   │       │   │   ├── switch01-errors.yaml
│       │   │       │   │   ├── switch01-input.svelte
│       │   │       │   │   ├── switch01-output.svelte
│       │   │       │   │   ├── tagged01-errors.yaml
│       │   │       │   │   ├── tagged01-input.svelte
│       │   │       │   │   ├── tagged01-output.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   ├── test01-output.svelte
│       │   │       │   │   └── ts/
│       │   │       │   │       ├── ts-class-directives01-errors.yaml
│       │   │       │   │       ├── ts-class-directives01-input.svelte
│       │   │       │   │       ├── ts-class-directives01-output.svelte
│       │   │       │   │       ├── ts-i18n-errors.yaml
│       │   │       │   │       ├── ts-i18n-input.svelte
│       │   │       │   │       ├── ts-i18n-output.svelte
│       │   │       │   │       ├── ts-if-block01-errors.yaml
│       │   │       │   │       ├── ts-if-block01-input.svelte
│       │   │       │   │       ├── ts-if-block01-output.svelte
│       │   │       │   │       ├── ts-stores01-errors.yaml
│       │   │       │   │       ├── ts-stores01-input.svelte
│       │   │       │   │       ├── ts-stores01-output.svelte
│       │   │       │   │       ├── ts-test01-errors.yaml
│       │   │       │   │       ├── ts-test01-input.svelte
│       │   │       │   │       └── ts-test01-output.svelte
│       │   │       │   ├── ts/
│       │   │       │   │   ├── non-store.ts
│       │   │       │   │   └── store.ts
│       │   │       │   └── valid/
│       │   │       │       ├── attrs-store01-input.svelte
│       │   │       │       ├── await01-input.svelte
│       │   │       │       ├── calc01-input.svelte
│       │   │       │       ├── call01-input.svelte
│       │   │       │       ├── condition01-input.svelte
│       │   │       │       ├── directives-store01-input.svelte
│       │   │       │       ├── for-in01-input.svelte
│       │   │       │       ├── for-of01-input.svelte
│       │   │       │       ├── if-statement01-input.svelte
│       │   │       │       ├── import01-input.svelte
│       │   │       │       ├── properties01-input.svelte
│       │   │       │       ├── props-store01-input.svelte
│       │   │       │       ├── spread01-input.svelte
│       │   │       │       ├── svelte-component01-input.svelte
│       │   │       │       ├── svelte-element01-input.svelte
│       │   │       │       ├── switch01-input.svelte
│       │   │       │       ├── tagged01-input.svelte
│       │   │       │       ├── test01-input.svelte
│       │   │       │       ├── ts/
│       │   │       │       │   ├── ts-i18n-input.svelte
│       │   │       │       │   ├── ts-non-store01-input.svelte
│       │   │       │       │   ├── ts-non-store02-input.svelte
│       │   │       │       │   ├── ts-stores01-input.svelte
│       │   │       │       │   └── ts-test01-input.svelte
│       │   │       │       ├── unknown-values01-input.svelte
│       │   │       │       └── unknown-values02-input.svelte
│       │   │       ├── require-stores-init/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── no-init-in-js01-errors.yaml
│       │   │       │   │   ├── no-init-in-js01-input.js
│       │   │       │   │   ├── no-init01-errors.yaml
│       │   │       │   │   └── no-init01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── has-init-in-js01-input.js
│       │   │       │       ├── has-init01-input.svelte
│       │   │       │       ├── no-svelte-store01-input.svelte
│       │   │       │       └── spread01-input.svelte
│       │   │       ├── shorthand-attribute/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── always/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── never/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   └── test01-output.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── always/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── test01-input.svelte
│       │   │       │       ├── never/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── test01-input.svelte
│       │   │       │       └── test01-input.svelte
│       │   │       ├── shorthand-directive/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── always/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── never/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   └── test01-output.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── always/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── test01-input.svelte
│       │   │       │       ├── never/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── test01-input.svelte
│       │   │       │       └── test01-input.svelte
│       │   │       ├── sort-attributes/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── alphabetical-test-config.json
│       │   │       │   │   ├── alphabetical-test-errors.yaml
│       │   │       │   │   ├── alphabetical-test-input.svelte
│       │   │       │   │   ├── alphabetical-test-output.svelte
│       │   │       │   │   ├── attach-tag-errors.yaml
│       │   │       │   │   ├── attach-tag-input.svelte
│       │   │       │   │   ├── attach-tag-output.svelte
│       │   │       │   │   ├── attach-tag-requirements.json
│       │   │       │   │   ├── default/
│       │   │       │   │   │   ├── class-test-errors.yaml
│       │   │       │   │   │   ├── class-test-input.svelte
│       │   │       │   │   │   ├── class-test-output.svelte
│       │   │       │   │   │   ├── default-test01-errors.yaml
│       │   │       │   │   │   ├── default-test01-input.svelte
│       │   │       │   │   │   ├── default-test01-output.svelte
│       │   │       │   │   │   ├── default-test01fix1-errors.yaml
│       │   │       │   │   │   ├── default-test01fix1-input.svelte
│       │   │       │   │   │   ├── default-test01fix1-output.svelte
│       │   │       │   │   │   ├── default-test01fix2-errors.yaml
│       │   │       │   │   │   ├── default-test01fix2-input.svelte
│       │   │       │   │   │   ├── default-test01fix2-output.svelte
│       │   │       │   │   │   ├── default-test01fix3-errors.yaml
│       │   │       │   │   │   ├── default-test01fix3-input.svelte
│       │   │       │   │   │   ├── default-test01fix3-output.svelte
│       │   │       │   │   │   ├── default-test01fix4-errors.yaml
│       │   │       │   │   │   ├── default-test01fix4-input.svelte
│       │   │       │   │   │   ├── default-test01fix4-output.svelte
│       │   │       │   │   │   ├── in-out-test-errors.yaml
│       │   │       │   │   │   ├── in-out-test-input.svelte
│       │   │       │   │   │   ├── in-out-test-output.svelte
│       │   │       │   │   │   ├── let-test-errors.yaml
│       │   │       │   │   │   ├── let-test-input.svelte
│       │   │       │   │   │   ├── let-test-output.svelte
│       │   │       │   │   │   ├── slot-test-errors.yaml
│       │   │       │   │   │   ├── slot-test-input.svelte
│       │   │       │   │   │   ├── slot-test-output.svelte
│       │   │       │   │   │   ├── spread-test01-errors.yaml
│       │   │       │   │   │   ├── spread-test01-input.svelte
│       │   │       │   │   │   ├── spread-test01-output.svelte
│       │   │       │   │   │   ├── spread-test02-errors.yaml
│       │   │       │   │   │   ├── spread-test02-input.svelte
│       │   │       │   │   │   ├── spread-test02-output.svelte
│       │   │       │   │   │   ├── spread-test03-errors.yaml
│       │   │       │   │   │   ├── spread-test03-input.svelte
│       │   │       │   │   │   ├── spread-test03-output.svelte
│       │   │       │   │   │   ├── style-ptops-test-errors.yaml
│       │   │       │   │   │   ├── style-ptops-test-input.svelte
│       │   │       │   │   │   ├── style-ptops-test-output.svelte
│       │   │       │   │   │   ├── use-test-errors.yaml
│       │   │       │   │   │   ├── use-test-input.svelte
│       │   │       │   │   │   └── use-test-output.svelte
│       │   │       │   │   ├── ignore-no-order-test-config.json
│       │   │       │   │   ├── ignore-no-order-test-errors.yaml
│       │   │       │   │   ├── ignore-no-order-test-input.svelte
│       │   │       │   │   ├── ignore-no-order-test-output.svelte
│       │   │       │   │   ├── ignore-no-order-with-spread-test-config.json
│       │   │       │   │   ├── ignore-no-order-with-spread-test-errors.yaml
│       │   │       │   │   ├── ignore-no-order-with-spread-test-input.svelte
│       │   │       │   │   ├── ignore-no-order-with-spread-test-output.svelte
│       │   │       │   │   └── order/
│       │   │       │   │       ├── _config.json
│       │   │       │   │       ├── test01-errors.yaml
│       │   │       │   │       ├── test01-input.svelte
│       │   │       │   │       ├── test01-output.svelte
│       │   │       │   │       ├── test01fix1-errors.yaml
│       │   │       │   │       ├── test01fix1-input.svelte
│       │   │       │   │       ├── test01fix1-output.svelte
│       │   │       │   │       ├── test01fix2-errors.yaml
│       │   │       │   │       ├── test01fix2-input.svelte
│       │   │       │   │       ├── test01fix2-output.svelte
│       │   │       │   │       ├── test01fix3-errors.yaml
│       │   │       │   │       ├── test01fix3-input.svelte
│       │   │       │   │       ├── test01fix3-output.svelte
│       │   │       │   │       ├── test01fix4-errors.yaml
│       │   │       │   │       ├── test01fix4-input.svelte
│       │   │       │   │       ├── test01fix4-output.svelte
│       │   │       │   │       ├── test01fix5-errors.yaml
│       │   │       │   │       ├── test01fix5-input.svelte
│       │   │       │   │       ├── test01fix5-output.svelte
│       │   │       │   │       ├── test01fix6-errors.yaml
│       │   │       │   │       ├── test01fix6-input.svelte
│       │   │       │   │       ├── test01fix6-output.svelte
│       │   │       │   │       ├── test01fix7-errors.yaml
│       │   │       │   │       ├── test01fix7-input.svelte
│       │   │       │   │       └── test01fix7-output.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── alphabetical-test-config.json
│       │   │       │       ├── alphabetical-test-input.svelte
│       │   │       │       ├── attach-tag-input.svelte
│       │   │       │       ├── attach-tag-requirements.json
│       │   │       │       ├── default/
│       │   │       │       │   ├── bind-on-test01-input.svelte
│       │   │       │       │   ├── class-test-input.svelte
│       │   │       │       │   ├── default-test01-input.svelte
│       │   │       │       │   ├── ignore-spread-test-input.svelte
│       │   │       │       │   ├── in-out-test-input.svelte
│       │   │       │       │   ├── let-test-input.svelte
│       │   │       │       │   ├── slot-test-input.svelte
│       │   │       │       │   ├── spread-test01-input.svelte
│       │   │       │       │   ├── spread-test02-input.svelte
│       │   │       │       │   ├── style-ptops-test-input.svelte
│       │   │       │       │   ├── style-test-input.svelte
│       │   │       │       │   └── use-test-input.svelte
│       │   │       │       ├── ignore-no-order-test-config.json
│       │   │       │       ├── ignore-no-order-test-input.svelte
│       │   │       │       ├── ignore-no-order-with-spread-test-config.json
│       │   │       │       ├── ignore-no-order-with-spread-test-input.svelte
│       │   │       │       └── order/
│       │   │       │           ├── _config.json
│       │   │       │           └── test01-input.svelte
│       │   │       ├── spaced-html-comment/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── always/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── always-invalid-errors.yaml
│       │   │       │   │   │   ├── always-invalid-input.svelte
│       │   │       │   │   │   └── always-invalid-output.svelte
│       │   │       │   │   ├── default/
│       │   │       │   │   │   ├── default-invalid-errors.yaml
│       │   │       │   │   │   ├── default-invalid-input.svelte
│       │   │       │   │   │   └── default-invalid-output.svelte
│       │   │       │   │   └── never/
│       │   │       │   │       ├── _config.json
│       │   │       │   │       ├── never-invalid-errors.yaml
│       │   │       │   │       ├── never-invalid-input.svelte
│       │   │       │   │       └── never-invalid-output.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── always/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── test01-input.svelte
│       │   │       │       ├── default/
│       │   │       │       │   └── test01-input.svelte
│       │   │       │       └── never/
│       │   │       │           ├── _config.json
│       │   │       │           └── test01-input.svelte
│       │   │       ├── sveltekit-types.d.ts
│       │   │       ├── tsconfig.json
│       │   │       ├── valid-compile/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── a11y01-errors.yaml
│       │   │       │   │   ├── a11y01-input.svelte
│       │   │       │   │   ├── a11y01-requirements.json
│       │   │       │   │   ├── a11y01-svelte4-errors.yaml
│       │   │       │   │   ├── a11y01-svelte4-input.svelte
│       │   │       │   │   ├── a11y01-svelte4-requirements.json
│       │   │       │   │   ├── custom_element_props_identifier-errors.yaml
│       │   │       │   │   ├── custom_element_props_identifier-input.svelte
│       │   │       │   │   ├── custom_element_props_identifier-requirements.json
│       │   │       │   │   ├── dyamic-slot01-errors.yaml
│       │   │       │   │   ├── dyamic-slot01-input.svelte
│       │   │       │   │   ├── dyamic-slot01-requirements.json
│       │   │       │   │   ├── experimental-async-disabled/
│       │   │       │   │   │   ├── top-level-await-errors.yaml
│       │   │       │   │   │   ├── top-level-await-input.svelte
│       │   │       │   │   │   └── top-level-await-requirements.json
│       │   │       │   │   ├── invalid-svelte-ignore01-errors.yaml
│       │   │       │   │   ├── invalid-svelte-ignore01-input.svelte
│       │   │       │   │   ├── invalid-svelte-ignore01-requirements.json
│       │   │       │   │   ├── invalid-svelte-ignore01-svelte4-errors.yaml
│       │   │       │   │   ├── invalid-svelte-ignore01-svelte4-input.svelte
│       │   │       │   │   ├── invalid-svelte-ignore01-svelte4-requirements.json
│       │   │       │   │   ├── invalid-svelte-ignore02-errors.yaml
│       │   │       │   │   ├── invalid-svelte-ignore02-input.svelte
│       │   │       │   │   ├── invalid-svelte-ignore02-requirements.json
│       │   │       │   │   ├── invalid-svelte-ignore02-svelte4-errors.yaml
│       │   │       │   │   ├── invalid-svelte-ignore02-svelte4-input.svelte
│       │   │       │   │   ├── invalid-svelte-ignore02-svelte4-requirements.json
│       │   │       │   │   ├── invalid-svelte-ignore03-errors.yaml
│       │   │       │   │   ├── invalid-svelte-ignore03-input.svelte
│       │   │       │   │   ├── invalid-svelte-ignore03-requirements.json
│       │   │       │   │   ├── invalid-svelte-ignore03-svelte4-errors.yaml
│       │   │       │   │   ├── invalid-svelte-ignore03-svelte4-input.svelte
│       │   │       │   │   ├── invalid-svelte-ignore03-svelte4-requirements.json
│       │   │       │   │   ├── style-lang01-errors.yaml
│       │   │       │   │   ├── style-lang01-input.svelte
│       │   │       │   │   ├── style-lang01-requirements.json
│       │   │       │   │   ├── style-without-global-01-errors.yaml
│       │   │       │   │   ├── style-without-global-01-input.svelte
│       │   │       │   │   ├── style-without-global-01-requirements.json
│       │   │       │   │   ├── style-without-global-02-errors.yaml
│       │   │       │   │   ├── style-without-global-02-input.svelte
│       │   │       │   │   ├── style-without-global-02-requirements.json
│       │   │       │   │   ├── svelte-config-custom-warn/
│       │   │       │   │   │   ├── _config.cjs
│       │   │       │   │   │   ├── a11y-errors.yaml
│       │   │       │   │   │   ├── a11y-input.svelte
│       │   │       │   │   │   ├── a11y-requirements.json
│       │   │       │   │   │   ├── a11y-svelte4-errors.yaml
│       │   │       │   │   │   ├── a11y-svelte4-input.svelte
│       │   │       │   │   │   └── a11y-svelte4-requirements.json
│       │   │       │   │   ├── svelte-config-onwarn/
│       │   │       │   │   │   ├── _config.cjs
│       │   │       │   │   │   ├── a11y-errors.yaml
│       │   │       │   │   │   ├── a11y-input.svelte
│       │   │       │   │   │   ├── a11y-requirements.json
│       │   │       │   │   │   ├── a11y-svelte4-errors.yaml
│       │   │       │   │   │   ├── a11y-svelte4-input.svelte
│       │   │       │   │   │   └── a11y-svelte4-requirements.json
│       │   │       │   │   ├── svelte-config-warning-filter/
│       │   │       │   │   │   ├── _config.cjs
│       │   │       │   │   │   ├── a11y-errors.yaml
│       │   │       │   │   │   ├── a11y-input.svelte
│       │   │       │   │   │   └── a11y-requirements.json
│       │   │       │   │   └── ts/
│       │   │       │   │       ├── enum01-errors.yaml
│       │   │       │   │       ├── enum01-input.svelte
│       │   │       │   │       ├── enum01-requirements.json
│       │   │       │   │       ├── enum01-svelte4-errors.yaml
│       │   │       │   │       ├── enum01-svelte4-input.svelte
│       │   │       │   │       └── enum01-svelte4-requirements.json
│       │   │       │   └── valid/
│       │   │       │       ├── babel/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   ├── babel-function-bind01-input.svelte
│       │   │       │       │   └── class01-input.svelte
│       │   │       │       ├── global-style-input.svelte
│       │   │       │       ├── ignore-warnings/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── enum01-input.svelte
│       │   │       │       ├── ignore01-input.svelte
│       │   │       │       ├── ignore01-requirements.json
│       │   │       │       ├── ignore01-svelte4-input.svelte
│       │   │       │       ├── ignore01-svelte4-requirements.json
│       │   │       │       ├── ignore02-input.svelte
│       │   │       │       ├── ignore02-requirements.json
│       │   │       │       ├── ignore02-svelte4-input.svelte
│       │   │       │       ├── ignore02-svelte4-requirements.json
│       │   │       │       ├── no-false-custom_element_props_identifier-warning-without-custom-element-input.svelte
│       │   │       │       ├── no-false-custom_element_props_identifier-warning-without-custom-element-requirements.json
│       │   │       │       ├── script-comment-input.svelte
│       │   │       │       ├── script-comment-requirements.json
│       │   │       │       ├── script-comment-svelte4-input.svelte
│       │   │       │       ├── script-comment-svelte4-requirements.json
│       │   │       │       ├── style-lang01-input.svelte
│       │   │       │       ├── style-lang02-input.svelte
│       │   │       │       ├── style-lang03-input.svelte
│       │   │       │       ├── svelte-config-experimental-async/
│       │   │       │       │   ├── _config.cjs
│       │   │       │       │   ├── top-level-await-input.svelte
│       │   │       │       │   └── top-level-await-requirements.json
│       │   │       │       ├── svelte-config-onwarn/
│       │   │       │       │   ├── _config.cjs
│       │   │       │       │   └── a11y-input.svelte
│       │   │       │       ├── svelte-config-warning-filter/
│       │   │       │       │   ├── _config.cjs
│       │   │       │       │   └── a11y-input.svelte
│       │   │       │       ├── svelte-ignore01-input.svelte
│       │   │       │       ├── svelte-ignore01-requirements.json
│       │   │       │       ├── svelte-ignore01-svelte4-input.svelte
│       │   │       │       ├── svelte-ignore01-svelte4-requirements.json
│       │   │       │       ├── svelte-ignore02-input.svelte
│       │   │       │       ├── svelte-ignore02-requirements.json
│       │   │       │       ├── svelte-ignore02-svelte4-input.svelte
│       │   │       │       ├── svelte-ignore02-svelte4-requirements.json
│       │   │       │       ├── svelte-ignore03-input.svelte
│       │   │       │       ├── svelte-ignore03-requirements.json
│       │   │       │       ├── svelte-ignore03-svelte4-input.svelte
│       │   │       │       ├── svelte-ignore03-svelte4-requirements.json
│       │   │       │       ├── svelte-ignore04-input.svelte
│       │   │       │       ├── svelte-ignore04-requirements.json
│       │   │       │       ├── svelte-ignore04-svelte4-input.svelte
│       │   │       │       ├── svelte-ignore04-svelte4-requirements.json
│       │   │       │       ├── svelte-ignore05-input.svelte
│       │   │       │       ├── svelte-ignore05-requirements.json
│       │   │       │       ├── svelte-ignore05-svelte4-input.svelte
│       │   │       │       ├── svelte-ignore05-svelte4-requirements.json
│       │   │       │       ├── svelte-ignore06-input.svelte
│       │   │       │       ├── svelte-ignore06-requirements.json
│       │   │       │       ├── svelte-ignore06-svelte4-input.svelte
│       │   │       │       ├── svelte-ignore06-svelte4-requirements.json
│       │   │       │       ├── svelte-ignore07-input.svelte
│       │   │       │       ├── svelte-ignore07-requirements.json
│       │   │       │       ├── svelte-ignore07-svelte4-input.svelte
│       │   │       │       ├── svelte-ignore07-svelte4-requirements.json
│       │   │       │       ├── svelte-options-custom-element-input.svelte
│       │   │       │       ├── svelte-options-custom-element-requirements.json
│       │   │       │       ├── svelte3-options-custom-element-input.svelte
│       │   │       │       ├── svelte3-options-custom-element-requirements.json
│       │   │       │       ├── test01-input.svelte
│       │   │       │       ├── ts/
│       │   │       │       │   ├── class01-input.svelte
│       │   │       │       │   ├── script-comment-input.svelte
│       │   │       │       │   ├── script-comment-requirements.json
│       │   │       │       │   ├── script-comment-svelte4-input.svelte
│       │   │       │       │   ├── script-comment-svelte4-requirements.json
│       │   │       │       │   ├── test01-input.svelte
│       │   │       │       │   ├── ts-lang01-input-svete4-requirements.json
│       │   │       │       │   ├── ts-lang01-input-svete4.svelte
│       │   │       │       │   ├── ts-lang01-input.svelte
│       │   │       │       │   ├── ts-lang01-requirements.json
│       │   │       │       │   ├── ts-unused-in-script-input.svelte
│       │   │       │       │   ├── type-only-import01-input.svelte
│       │   │       │       │   └── type-only-import02-input.svelte
│       │   │       │       ├── undef01-input.svelte
│       │   │       │       ├── unuse01-input.svelte
│       │   │       │       ├── valid-custom-element-with-props-identifier-input.svelte
│       │   │       │       └── valid-custom-element-with-props-identifier-requirements.json
│       │   │       ├── valid-each-key/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── const-key01-errors.yaml
│       │   │       │   │   ├── const-key01-input.svelte
│       │   │       │   │   ├── out-vars-key01-errors.yaml
│       │   │       │   │   └── out-vars-key01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── call-key01-input.svelte
│       │   │       │       ├── destructure-key01-input.svelte
│       │   │       │       ├── expression-key01-input.svelte
│       │   │       │       ├── expression-key02-input.svelte
│       │   │       │       ├── index-key01-input.svelte
│       │   │       │       ├── member-key01-input.svelte
│       │   │       │       ├── svelte5-each-blocks-without-an-item-input.svelte
│       │   │       │       └── svelte5-each-blocks-without-an-item-requirements.json
│       │   │       ├── valid-prop-names-in-kit-pages/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── +page.svelte
│       │   │       │   │   ├── _config.json
│       │   │       │   │   ├── errors.yaml
│       │   │       │   │   ├── svelte-config/
│       │   │       │   │   │   ├── +page.svelte
│       │   │       │   │   │   ├── errors.yaml
│       │   │       │   │   │   └── svelte.config.js
│       │   │       │   │   ├── svelte-config-from-parser-options/
│       │   │       │   │   │   ├── +page.svelte
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   └── errors.yaml
│       │   │       │   │   ├── svelte4-children/
│       │   │       │   │   │   ├── +page.svelte
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── errors.yaml
│       │   │       │   │   │   └── requirements.json
│       │   │       │   │   └── svelte5/
│       │   │       │   │       ├── +page.svelte
│       │   │       │   │       ├── _config.json
│       │   │       │   │       ├── errors.yaml
│       │   │       │   │       └── requirements.json
│       │   │       │   └── valid/
│       │   │       │       ├── _config.json
│       │   │       │       ├── not-page/
│       │   │       │       │   ├── svelte5/
│       │   │       │       │   │   ├── test01-input.svelte
│       │   │       │       │   │   └── test01-requirements.json
│       │   │       │       │   └── test01-input.svelte
│       │   │       │       ├── svelte5/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── requirements.json
│       │   │       │       ├── svelte5-typescript/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── requirements.json
│       │   │       │       ├── svelte5-without-runes/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── requirements.json
│       │   │       │       ├── test-for-form/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   └── _config.json
│       │   │       │       ├── test001/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   └── _config.json
│       │   │       │       ├── test002-1/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   └── _config.json
│       │   │       │       ├── test002-2/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   └── _config.json
│       │   │       │       ├── test003-1/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   └── _config.json
│       │   │       │       ├── test003-2/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   └── _config.json
│       │   │       │       ├── test004-1/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   └── _config.json
│       │   │       │       └── test004-2/
│       │   │       │           ├── +page.svelte
│       │   │       │           └── _config.json
│       │   │       └── valid-style-parse/
│       │   │           ├── invalid/
│       │   │           │   ├── invalid-css01-errors.yaml
│       │   │           │   ├── invalid-css01-input.svelte
│       │   │           │   ├── invalid-scss01-errors.yaml
│       │   │           │   ├── invalid-scss01-input.svelte
│       │   │           │   ├── unknown-lang01-errors.yaml
│       │   │           │   └── unknown-lang01-input.svelte
│       │   │           └── valid/
│       │   │               ├── no-style01-input.svelte
│       │   │               ├── valid-css01-input.svelte
│       │   │               └── valid-scss01-input.svelte
│       │   ├── src/
│       │   │   ├── configs/
│       │   │   │   ├── all.ts
│       │   │   │   ├── base.ts
│       │   │   │   └── recommended.ts
│       │   │   ├── index.spec.ts
│       │   │   ├── integration/
│       │   │   │   └── no-unused-vars.ts
│       │   │   ├── meta.ts
│       │   │   ├── rules/
│       │   │   │   ├── @typescript-eslint/
│       │   │   │   │   ├── no-unnecessary-condition.ts
│       │   │   │   │   └── original-tests/
│       │   │   │   │       ├── fixtures/
│       │   │   │   │       │   ├── file.ts
│       │   │   │   │       │   ├── react.tsx
│       │   │   │   │       │   ├── tsconfig.json
│       │   │   │   │       │   └── unstrict/
│       │   │   │   │       │       ├── file.ts
│       │   │   │   │       │       ├── react.tsx
│       │   │   │   │       │       └── tsconfig.json
│       │   │   │   │       └── no-unnecessary-condition.ts
│       │   │   │   ├── block-lang.ts
│       │   │   │   ├── button-has-type.ts
│       │   │   │   ├── comment-directive.ts
│       │   │   │   ├── consistent-selector-style.ts
│       │   │   │   ├── derived-has-same-inputs-outputs.ts
│       │   │   │   ├── experimental-require-slot-types.ts
│       │   │   │   ├── experimental-require-strict-events.ts
│       │   │   │   ├── first-attribute-linebreak.ts
│       │   │   │   ├── html-closing-bracket-new-line.ts
│       │   │   │   ├── html-closing-bracket-spacing.ts
│       │   │   │   ├── html-quotes.ts
│       │   │   │   ├── html-self-closing.ts
│       │   │   │   ├── indent.ts
│       │   │   │   ├── infinite-reactive-loop.ts
│       │   │   │   ├── max-attributes-per-line.ts
│       │   │   │   ├── max-lines-per-block.ts
│       │   │   │   ├── mustache-spacing.ts
│       │   │   │   ├── no-add-event-listener.ts
│       │   │   │   ├── no-at-debug-tags.ts
│       │   │   │   ├── no-at-html-tags.ts
│       │   │   │   ├── no-dom-manipulating.ts
│       │   │   │   ├── no-dupe-else-if-blocks.ts
│       │   │   │   ├── no-dupe-on-directives.ts
│       │   │   │   ├── no-dupe-style-properties.ts
│       │   │   │   ├── no-dupe-use-directives.ts
│       │   │   │   ├── no-dynamic-slot-name.ts
│       │   │   │   ├── no-export-load-in-svelte-module-in-kit-pages.ts
│       │   │   │   ├── no-extra-reactive-curlies.ts
│       │   │   │   ├── no-goto-without-base.ts
│       │   │   │   ├── no-ignored-unsubscribe.ts
│       │   │   │   ├── no-immutable-reactive-statements.ts
│       │   │   │   ├── no-inline-styles.ts
│       │   │   │   ├── no-inner-declarations.ts
│       │   │   │   ├── no-inspect.ts
│       │   │   │   ├── no-navigation-without-base.ts
│       │   │   │   ├── no-navigation-without-resolve.ts
│       │   │   │   ├── no-not-function-handler.ts
│       │   │   │   ├── no-object-in-text-mustaches.ts
│       │   │   │   ├── no-raw-special-elements.ts
│       │   │   │   ├── no-reactive-functions.ts
│       │   │   │   ├── no-reactive-literals.ts
│       │   │   │   ├── no-reactive-reassign.ts
│       │   │   │   ├── no-restricted-html-elements.ts
│       │   │   │   ├── no-shorthand-style-property-overrides.ts
│       │   │   │   ├── no-spaces-around-equal-signs-in-attribute.ts
│       │   │   │   ├── no-store-async.ts
│       │   │   │   ├── no-svelte-internal.ts
│       │   │   │   ├── no-target-blank.ts
│       │   │   │   ├── no-top-level-browser-globals.ts
│       │   │   │   ├── no-trailing-spaces.ts
│       │   │   │   ├── no-unknown-style-directive-property.ts
│       │   │   │   ├── no-unnecessary-state-wrap.ts
│       │   │   │   ├── no-unused-class-name.ts
│       │   │   │   ├── no-unused-props.ts
│       │   │   │   ├── no-unused-svelte-ignore.ts
│       │   │   │   ├── no-useless-children-snippet.ts
│       │   │   │   ├── no-useless-mustaches.ts
│       │   │   │   ├── prefer-class-directive.ts
│       │   │   │   ├── prefer-const.ts
│       │   │   │   ├── prefer-destructured-store-props.ts
│       │   │   │   ├── prefer-style-directive.ts
│       │   │   │   ├── prefer-svelte-reactivity.ts
│       │   │   │   ├── prefer-writable-derived.ts
│       │   │   │   ├── require-each-key.ts
│       │   │   │   ├── require-event-dispatcher-types.ts
│       │   │   │   ├── require-event-prefix.ts
│       │   │   │   ├── require-optimized-style-attribute.ts
│       │   │   │   ├── require-store-callbacks-use-set-param.ts
│       │   │   │   ├── require-store-reactive-access.ts
│       │   │   │   ├── require-stores-init.ts
│       │   │   │   ├── shorthand-attribute.ts
│       │   │   │   ├── shorthand-directive.ts
│       │   │   │   ├── sort-attributes.ts
│       │   │   │   ├── spaced-html-comment.ts
│       │   │   │   ├── system.ts
│       │   │   │   ├── valid-compile.ts
│       │   │   │   ├── valid-each-key.ts
│       │   │   │   ├── valid-prop-names-in-kit-pages.ts
│       │   │   │   └── valid-style-parse.ts
│       │   │   └── settings/
│       │   │       └── ignore-warnings.ts
│       │   └── utils/
│       │       ├── eslint-compat.ts
│       │       ├── source-code-fixer.ts
│       │       └── utils.ts
│       ├── tools/
│       │   ├── lib/
│       │   │   ├── changesets-util.ts
│       │   │   ├── load-rules.ts
│       │   │   └── write.ts
│       │   ├── new-rule.ts
│       │   ├── render-rules.ts
│       │   ├── update-docs-rules-index.ts
│       │   ├── update-docs.ts
│       │   ├── update-meta.ts
│       │   ├── update-readme.ts
│       │   ├── update-rule-types.ts
│       │   ├── update-rules.ts
│       │   ├── update-rulesets.ts
│       │   ├── update-types-for-node.ts
│       │   └── update.ts
│       ├── tsconfig.build.json
│       └── tsconfig.json
├── pnpm-workspace.yaml
├── prettier.config.cjs
├── renovate.json
└── tools/
    └── pkg.pr.new-comment.mjs

================================================
FILE CONTENTS
================================================

================================================
FILE: .changeset/README.md
================================================
# Changesets

Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
with multi-package repos, or single-package repos to help you version and publish your code. You can
find the full documentation for it [in our repository](https://github.com/changesets/changesets)

We have a quick list of common questions to get you started engaging with this project in
[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)


================================================
FILE: .changeset/config.json
================================================
{
  "$schema": "https://unpkg.com/@changesets/config/schema.json",
  "changelog": [
    "@changesets/changelog-github",
    {
      "repo": "sveltejs/eslint-plugin-svelte"
    }
  ],
  "commit": false,
  "linked": [],
  "access": "public",
  "baseBranch": "main",
  "updateInternalDependencies": "patch",
  "bumpVersionsWithWorkspaceProtocolOnly": true,
  "ignore": []
}


================================================
FILE: .devcontainer/devcontainer.json
================================================
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/typescript-node
{
	"name": "Node.js & TypeScript",
	// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
	"image": "mcr.microsoft.com/devcontainers/typescript-node:4-20-bullseye",

	// Features to add to the dev container. More info: https://containers.dev/features.
	// "features": {},

	// Use 'forwardPorts' to make a list of ports inside the container available locally.
	// "forwardPorts": [],

	// Use 'postCreateCommand' to run commands after the container is created.
	"postCreateCommand": "pnpm install --frozen-lockfile",

	// Configure tool-specific properties.
	"customizations": {
		"vscode": {
			"extensions": ["dbaeumer.vscode-eslint", "svelte.svelte-vscode", "esbenp.prettier-vscode"]
		}
	}

	// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
	// "remoteUser": "root"
}


================================================
FILE: .editorconfig
================================================
root = true

[*]
end_of_line = lf
indent_size = 2
indent_style = tab
trim_trailing_whitespace = true

[docs/rules/no-trailing-spaces.md]
trim_trailing_whitespace = false

[packages/eslint-plugin-svelte/tests/fixtures/**/*-input.svelte]
trim_trailing_whitespace = false


================================================
FILE: .env-cmdrc.json
================================================
{
	"version": {
		"IN_VERSION_SCRIPT": "true"
	},
	"version-ci": {
		"IN_VERSION_CI_SCRIPT": "true"
	},
	"debug": {
		"DEBUG": "eslint-plugin-svelte*"
	},
	"update-fixtures": {
		"UPDATE_FIXTURES": "true"
	}
}


================================================
FILE: .gitattributes
================================================
* text=auto eol=lf

================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms

open_collective: svelte
github: [ota-meshi, JounQin]
patreon: 1stG
custom:
  - https://opencollective.com/rxts


================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.yml
================================================
name: Bug report
description: Create a report to help us improve.

body:
  - type: markdown
    attributes:
      value: |
        Thanks for taking the time to fill out this bug report!
  - type: checkboxes
    id: sanity-checks
    attributes:
      label: Before You File a Bug Report Please Confirm You Have Done The Following...
      description: If any of these required steps are not taken, we may not be able to review your issue. Help us to help you!
      options:
        - label: I have tried restarting my IDE and the issue persists.
          required: true
        - label: I have updated to the latest version of the packages.
          required: true
  - type: input
    id: eslint-version
    attributes:
      label: What version of ESLint are you using?
      placeholder: 0.0.0
    validations:
      required: true
  - type: input
    id: eslint-plugin-svelte-version
    attributes:
      label: What version of `eslint-plugin-svelte` are you using?
      placeholder: 0.0.0
    validations:
      required: true
  - type: textarea
    attributes:
      label: What did you do?
      description: |
        Please include a *minimal* reproduction case.
      value: |
        <details>
        <summary>Configuration</summary>

        ```
        <!-- Paste your configuration here -->
        ```
        </details>

        ```svelte
        <!-- Paste your code here -->
        ```
    validations:
      required: true
  - type: textarea
    attributes:
      label: What did you expect to happen?
      description: |
        You can use Markdown in this field.
    validations:
      required: true
  - type: textarea
    attributes:
      label: What actually happened?
      description: |
        Please copy-paste the actual ESLint output. You can use Markdown in this field.
    validations:
      required: true
  - type: textarea
    id: bug-reproduction
    attributes:
      label: Link to **GitHub Repo** with Minimal Reproducible Example
      description: |
        Create a minimal reproduction of the problem. **A minimal reproduction is required** so that others can help debug your issue. If a report is vague (e.g. just a generic error message) and has no reproduction, it may be closed.\
        [Why Reproductions are Required](https://antfu.me/posts/why-reproductions-are-required)\

        Be sure to share the repo on GitHub. GitHub's repo is ready to debug using Codespace.\
        Please DON'T USE non-GitHub repos such as GitLab as repro.\
        It takes me a long time to prepare my local PC for debugging.\
        Please DON'T USE stackblitz as a repro.\
        We can't debug eslint with stackblitz.
      placeholder: |
        https://github.com/[your]/[repo]
        or
        https://eslint-online-playground.netlify.app/#[hash]
    validations:
      required: true
  - type: textarea
    attributes:
      label: Additional comments


================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.yml
================================================
name: Feature request
description: Suggest a new feature.
labels: [enhancement]

body:
  - type: textarea
    attributes:
      label: Description
      description: |
        A clear and concise description of the new feature.\
        Also give a few code examples.
    validations:
      required: true


================================================
FILE: .github/ISSUE_TEMPLATE/new_rule_request.yml
================================================
name: New rule request
description: Propose a new rule to be added.
labels: [enhancement, new rule]

body:
  - type: textarea
    attributes:
      label: Motivation
      description: |
        A clear and concise description of the problem the new rule is supposed to solve.
    validations:
      required: true
  - type: textarea
    attributes:
      label: Description
      description: |
        A clear and concise description of the new rule.
    validations:
      required: true
  - type: textarea
    attributes:
      label: Examples
      description: |
        Add some examples of svelte that the rule does and does not report.
      value: |
        ```svelte
        <script>
        </script>

        <!-- ✓ GOOD -->
        <Foo />
        <Foo />
        <Foo />

        <!-- ✗ BAD -->
        <Foo />
        <Foo />
        <Foo />
        ```
    validations:
      required: true
  - type: textarea
    attributes:
      label: Additional comments


================================================
FILE: .github/ISSUE_TEMPLATE/other.md
================================================
---
name: Other
about: An issue that doesn't fit into the other categories.
title: ''
labels: ''
assignees: ''
---


================================================
FILE: .github/workflows/GHPages.yml
================================================
name: GHPages

on:
  workflow_dispatch: null
  push:
    branches: [main]

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
  contents: read
  pages: write
  id-token: write

# Allow one concurrent deployment
concurrency:
  group: pages
  cancel-in-progress: true

jobs:
  deploy:
    if: github.repository == 'sveltejs/eslint-plugin-svelte'
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v6
      - uses: pnpm/action-setup@v4
      - uses: actions/setup-node@v6
      - name: Install And Build
        run: |
          pnpm install --frozen-lockfile
          cd packages/eslint-plugin-svelte
          pnpm run update
          pnpm build
          cd ../../docs-svelte-kit
          export NODE_OPTIONS="--max-old-space-size=8192"
          pnpm build
      - name: Setup Pages
        uses: actions/configure-pages@v6
      - name: Upload artifact
        uses: actions/upload-pages-artifact@v4
        with:
          path: ./docs-svelte-kit/build
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v4


================================================
FILE: .github/workflows/NodeCI.yml
================================================
name: CI

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

env:
  project_root_path: ./packages/eslint-plugin-svelte

defaults:
  run:
    # Setting every runner to bash simplifies command calls;
    #  plus, every platform supports it
    shell: bash

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: pnpm/action-setup@v4
      - uses: actions/setup-node@v6
      - name: Install Packages
        run: pnpm install --frozen-lockfile
      - name: Lint eslint-plugin-svelte
        run: |
          pnpm run build
          pnpm run lint
        working-directory: ${{ env.project_root_path }}
      - name: Lint docs-svelte-kit
        run: |
          pnpm run build
          pnpm run lint
        working-directory: ./docs-svelte-kit
      - name: Type Coverage
        run: pnpm run typecov
        working-directory: ${{ env.project_root_path }}

  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: pnpm/action-setup@v4
      - uses: actions/setup-node@v6
      - name: Install Packages
        run: pnpm install --frozen-lockfile
      - name: Build
        run: |
          pnpm run update
          pnpm run build
        working-directory: ${{ env.project_root_path }}

  test:
    name: 'Test for ESLint ${{ matrix.eslint }} on Node.js: ${{ matrix.node }} OS: ${{matrix.os}}'
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest]
        eslint: [8, 9, 10]
        node: [20.x, 22.x, latest]
        include:
          # ESLint v9 and Node.js 18.x
          - os: ubuntu-latest
            eslint: 9
            node: 18.x
          # ESLint v8 and Node.js 18.x
          - os: ubuntu-latest
            eslint: 8
            node: 18.x
    steps:
      - name: Checkout
        uses: actions/checkout@v6
      - uses: pnpm/action-setup@v4
      - name: Setup Node.js ${{ matrix.node }}
        uses: actions/setup-node@v6
        with:
          node-version: ${{ matrix.node }}
      - name: Install Packages
        run: pnpm install --frozen-lockfile
      - name: Build eslint-plugin-svelte
        run: pnpm build
        working-directory: ${{ env.project_root_path }}
      # Hack: Install `eslint-plugin-svelte` is necessary for `packages/eslint-plugin-svelte/tests/src/configs` tests.
      - name: Install eslint-plugin-svelte
        run: pnpm install -D eslint-plugin-svelte
        working-directory: ${{ env.project_root_path }}
      - name: Install ESLint ${{ matrix.eslint }}
        if: matrix.eslint != 9
        run: pnpm install -D -w eslint@${{ matrix.eslint }}

      - name: Test
        run: pnpm test
        working-directory: ${{ env.project_root_path }}

  test-for-svelte-v4:
    name: 'Test for Svelte v4 on Node.js: ${{ matrix.node }} OS: ${{matrix.os}}'
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest]
        eslint: [9]
        node: [18, 20, 22]
    steps:
      - name: Checkout
        uses: actions/checkout@v6
      - uses: pnpm/action-setup@v4
      - name: Setup Node.js ${{ matrix.node }}
        uses: actions/setup-node@v6
        with:
          node-version: ${{ matrix.node }}
      - name: Install svelte@4
        run: |
          pnpm install -D svelte@4
          rm -rf node_modules
        working-directory: ${{ env.project_root_path }}
      - name: Install ESLint ${{ matrix.eslint }}
        run: |
          pnpm install -D -w eslint@${{ matrix.eslint }}
          rm -rf node_modules
      - name: Install Packages
        run: pnpm install --frozen-lockfile
      - name: Test
        run: pnpm run test
        working-directory: ${{ env.project_root_path }}

  test-for-svelte-v3:
    name: Test for Svelte v3
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest]
        node: [18]
    steps:
      - name: Checkout
        uses: actions/checkout@v6
      - uses: pnpm/action-setup@v4
      - name: Setup Node.js ${{ matrix.node }}
        uses: actions/setup-node@v6
        with:
          node-version: ${{ matrix.node }}
      - name: Install svelte@3
        run: |
          cd ./packages/eslint-plugin-svelte
          pnpm install -D svelte@3
          cd ../..
          rm -rf packages/eslint-plugin-svelte/node_modules
          rm -rf docs-svelte-kit/node_modules
          rm -rf node_modules
      - name: Install Packages
        run: pnpm install --frozen-lockfile
      - name: Test
        run: pnpm run test
        working-directory: ${{ env.project_root_path }}

  update-resources:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: pnpm/action-setup@v4
      - uses: actions/setup-node@v6
      - name: Install Packages
        run: pnpm install --frozen-lockfile
      - name: Update resources
        run: pnpm run update
        working-directory: ${{ env.project_root_path }}
      - name: Check changes
        run: |
          git add --all && \
          git diff-index --cached HEAD --stat --exit-code


================================================
FILE: .github/workflows/Release.yml
================================================
name: Release

on:
  push:
    branches:
      - main

permissions: {}

jobs:
  release:
    permissions:
      contents: write
      issues: write
      pull-requests: write
      id-token: write
    name: Release
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repo
        uses: actions/checkout@v6
        with:
          # This makes Actions fetch all Git history so that Changesets can generate changelogs with the correct commits
          fetch-depth: 0

      - name: Setup pnpm
        uses: pnpm/action-setup@v4

      - name: Setup Node.js
        uses: actions/setup-node@v6
        with:
          node-version: 24
      - name: Install Dependencies
        run: pnpm install --frozen-lockfile

      - name: Create Release Pull Request or Publish to npm
        id: changesets
        uses: changesets/action@v1
        with:
          # this expects you to have a npm script called version that runs some logic and then calls `changeset version`.
          version: pnpm run version:ci
          # This expects you to have a script called release which does a build for your packages and calls changeset publish
          publish: pnpm run release
          commit: 'chore: release eslint-plugin-svelte'
          title: 'chore: release eslint-plugin-svelte'
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          NPM_CONFIG_PROVENANCE: true


================================================
FILE: .github/workflows/pkg.pr.new-comment.yml
================================================
name: Update pkg.pr.new comment

on:
  workflow_run:
    workflows: ['Publish to pkg.pr.new']
    types:
      - completed

permissions:
  issues: write
  pull-requests: write

jobs:
  build:
    if: github.repository == 'sveltejs/eslint-plugin-svelte'
    name: 'Update comment'
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - name: Download artifact
        uses: actions/download-artifact@v7
        with:
          name: output
          github-token: ${{ secrets.GITHUB_TOKEN }}
          run-id: ${{ github.event.workflow_run.id }}
      - run: ls -R .
      - name: 'Post or update comment'
        uses: actions/github-script@v8
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          script: |
            const fs = require('fs');
            const output = JSON.parse(fs.readFileSync('output.json', 'utf8'));
            const { default: process } = await import('${{ github.workspace }}/tools/pkg.pr.new-comment.mjs')

            await process({github, context, core, output})


================================================
FILE: .github/workflows/pkg.pr.new.yml
================================================
name: Publish to pkg.pr.new
on:
  pull_request:
    branches: [main]
  push:
    branches: [main]
    tags: ['!**']

jobs:
  build:
    if: github.repository == 'sveltejs/eslint-plugin-svelte'
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v6
      - uses: pnpm/action-setup@v4
      - uses: actions/setup-node@v6
      - name: Install Packages
        run: pnpm install --frozen-lockfile
      - name: Build
        run: pnpm run build
      - run: pnpx pkg-pr-new publish --compact './packages/eslint-plugin-svelte' --json output.json --comment=off
      - name: Add metadata to output
        uses: actions/github-script@v8
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          script: |
            const fs = require('fs');
            const output = JSON.parse(fs.readFileSync('output.json', 'utf8'));
            output.number = context.issue.number;
            output.event_name = context.eventName;
            output.ref = context.ref;
            output.sha = context.eventName === 'pull_request'
              ? context.payload.pull_request.head.sha
              : context.payload.after;
            fs.writeFileSync('output.json', JSON.stringify(output), 'utf8');
      - name: Upload output
        uses: actions/upload-artifact@v6
        with:
          name: output
          path: ./output.json

      - run: ls -R .


================================================
FILE: .github/workflows/stale.yml
================================================
name: Close stale issues and PRs
on:
  schedule:
    - cron: '30 1 * * *'

permissions:
  issues: write
  pull-requests: write

jobs:
  stale:
    if: github.repository == 'sveltejs/eslint-plugin-svelte'
    name: Close stale issues with missing information
    runs-on: ubuntu-latest
    steps:
      - uses: actions/stale@v10
        with:
          any-of-labels: 'needs repro,needs info,needs more info'
          days-before-stale: 60
          days-before-close: 14
          stale-issue-message: This issue is is stale because it missing information and has been open for 60 days with no activity.
          stale-pr-message: This PR is is stale because it missing information and has been open for 60 days with no activity.
          close-issue-message: >
            This issue has been automatically closed because we haven't received a
            response from the original author 🙈. This automation helps keep the issue
            tracker clean from issues that aren't actionable. Please reach out if you
            have more information for us! 🙂
          close-pr-message: >
            This PR has been automatically closed because we haven't received a
            response from the original author 🙈. This automation helps keep the issue
            tracker clean from PRs that aren't actionable. Please reach out if you
            have more information for us! 🙂


================================================
FILE: .gitignore
================================================
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage
*.lcov

# nyc test coverage
.nyc_output

# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# TypeScript v1 declaration files
# typings/

# TypeScript cache
*.tsbuildinfo

# Optional npm cache directory
.npm

# Optional eslint/stylelint cache, etc
.*cache

# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
.env
.env.test

# parcel-bundler cache (https://parceljs.org/)
.cache

# Next.js build output
.next

# Nuxt.js build / generate output
.nuxt
dist

# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and *not* Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public

# Serverless directories
.serverless/

# FuseBox cache
.fusebox/

# DynamoDB Local files
.dynamodb/

# TernJS port file
.tern-port

## repo
packages/eslint-plugin-svelte/lib
packages/eslint-plugin-svelte/.type-coverage

docs-svelte-kit/.svelte-kit
docs-svelte-kit/build
/svelte.config-dist.js
/docs-svelte-kit/shim/eslint.mjs
/docs-svelte-kit/shim/assert.mjs
/docs-svelte-kit/src/routes/*.md
/docs-svelte-kit/src/routes/**/*.md
packages/eslint-plugin-svelte/README.md

**/.DS_Store


================================================
FILE: .npmrc
================================================
enable-pre-post-scripts=true


================================================
FILE: .prettierignore
================================================
.svelte-kit
.type-coverage
build
/lib
.npmrc
/tests/fixtures/rules/indent/valid/
.changeset


================================================
FILE: .vscode/extensions.json
================================================
{
	"recommendations": ["rvest.vs-code-prettier-eslint"]
}


================================================
FILE: .vscode/settings.json
================================================
{
	"eslint.validate": ["javascript", "typescript", "markdown", "svelte", "json", "jsonc", "yaml"],
	"editor.formatOnSave": true,
	"editor.defaultFormatter": "esbenp.prettier-vscode",
	"editor.codeActionsOnSave": {
		"source.fixAll": "explicit",
		"source.fixAll.stylelint": "explicit"
	},
	"svelte.plugin.typescript.diagnostics.enable": false,
	"typescript.tsdk": "node_modules/typescript/lib",
	"[typescript]": {
		"editor.defaultFormatter": "esbenp.prettier-vscode"
	},
	"files.eol": "\n"
}


================================================
FILE: CONTRIBUTING.md
================================================
# Contributing

Thank you for contributing!

## Installation

```sh
git clone https://github.com/sveltejs/eslint-plugin-svelte.git
cd eslint-plugin-svelte
pnpm install
```

## Running Tests

```sh
cd packages/eslint-plugin-svelte
pnpm run test
```

This is an [ESLint](http://eslint.org) plugin. See ESLint's [Working with Plugins](http://eslint.org/docs/developer-guide/working-with-plugins) for API details.

The plugin lints itself. Running `pnpm run lint` checks the style and will fail the build if there are lint errors. Use `pnpm run lint-fix` to automatically fix some issues.

## Other Development Tools

- `pnpm run test` – runs tests.
- `pnpm run new -- [new-rule-name]` – generates files for a new rule.
- `pnpm run update` – updates the README and recommended configuration.

## Rule Testing

Rule tests typically use fixtures. For example, for the `indent` rule, the test file is `tests/src/rules/indent.ts` and the fixtures are in `tests/fixtures/rules/indent`, which contains `invalid` and `valid` directories.

- The `invalid` directory contains test cases where the rule should report errors.
- The `valid` directory contains test cases where no errors are reported.

Fixture input files should be named `*-input.svelte` and are automatically collected.\
If configuration is needed, include a JSON file:

- For a specific test file (e.g., `my-test-input.svelte`), add `my-test-config.json`.
- For all fixtures in a directory, add `_config.json`.

Verifying output for invalid tests requires `*-errors.json` and `*-output.svelte` (for auto-fix). These files are auto-generated if missing—delete them to recreate.

**Tips**:

To test only one rule (e.g., `indent`), run:

```sh
pnpm run test -- -g indent
```

Refer to [this Stack Overflow post](https://stackoverflow.com/questions/10832031/how-to-run-a-single-test-with-mocha) for details.

To test a single file (e.g., `my-test-input.svelte`), add a `my-test-config.json` with `{"only": true}`.
(Remember to remove `{"only": true}` before submitting a pull request.)

## Preview Docs

```sh
cd docs-svelte-kit
pnpm run build && pnpm run preview
```

## Publishing

We use [changesets](https://github.com/changesets/changesets) for version management, changelog generation, and automated releases.

For more details, see [changesets-bot](https://github.com/apps/changeset-bot) and its [action](https://github.com/changesets/action).


================================================
FILE: LICENSE
================================================
MIT License

Copyright (c) 2021 Yosuke Ota

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================
FILE: README.md
================================================
<!--DOCS_IGNORE_START-->

[![NPM license](https://img.shields.io/npm/l/eslint-plugin-svelte.svg)](https://www.npmjs.com/package/eslint-plugin-svelte)
[![NPM version](https://img.shields.io/npm/v/eslint-plugin-svelte.svg)](https://www.npmjs.com/package/eslint-plugin-svelte)
[![NPM downloads](https://img.shields.io/badge/dynamic/json.svg?label=downloads&colorB=green&suffix=/day&query=$.downloads&uri=https://api.npmjs.org//downloads/point/last-day/eslint-plugin-svelte&maxAge=3600)](http://www.npmtrends.com/eslint-plugin-svelte)
[![NPM downloads](https://img.shields.io/npm/dw/eslint-plugin-svelte.svg)](http://www.npmtrends.com/eslint-plugin-svelte)
[![NPM downloads](https://img.shields.io/npm/dm/eslint-plugin-svelte.svg)](http://www.npmtrends.com/eslint-plugin-svelte)
[![NPM downloads](https://img.shields.io/npm/dy/eslint-plugin-svelte.svg)](http://www.npmtrends.com/eslint-plugin-svelte)
[![NPM downloads](https://img.shields.io/npm/dt/eslint-plugin-svelte.svg)](http://www.npmtrends.com/eslint-plugin-svelte)
[![Build Status](https://github.com/sveltejs/eslint-plugin-svelte/workflows/CI/badge.svg?branch=main)](https://github.com/sveltejs/eslint-plugin-svelte/actions?query=workflow%3ACI)

[![type-coverage](https://img.shields.io/badge/dynamic/json.svg?label=type-coverage&prefix=%E2%89%A5&suffix=%&query=$.typeCoverage.atLeast&uri=https%3A%2F%2Fraw.githubusercontent.com%2Fsveltejs%2Feslint-plugin-svelte%2Fmain%2Fpackage.json)](https://github.com/plantain-00/type-coverage)
[![Conventional Commits](https://img.shields.io/badge/conventional%20commits-1.0.0-yellow.svg)](https://conventionalcommits.org)
[![Code Style: Prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier)
[![changesets](https://img.shields.io/badge/maintained%20with-changesets-176de3.svg)](https://github.com/atlassian/changesets)

<div align="center">

# eslint-plugin-svelte

## ESLint plugin for Svelte using AST

[Live Demo](https://eslint-online-playground.netlify.app/#eslint-plugin-svelte%20with%20typescript) •
[Documentation](https://sveltejs.github.io/eslint-plugin-svelte/) •
[Discord](https://svelte.dev/chat)

</div>

<!--DOCS_IGNORE_END-->

## Introduction

`eslint-plugin-svelte` is the official [ESLint](https://eslint.org/) plugin for [Svelte](https://svelte.dev/).\
It leverages the AST generated by [svelte-eslint-parser](https://github.com/sveltejs/svelte-eslint-parser) to provide custom linting for Svelte.\

> [!NOTE]
>
> `eslint-plugin-svelte` and `svelte-eslint-parser` cannot be used alongside [eslint-plugin-svelte3](https://github.com/sveltejs/eslint-plugin-svelte3).

<!--USAGE_SECTION_START-->
<!--USAGE_GUIDE_START-->

## Installation

### CLI

The recommended way to get started is to use the CLI.

```sh
# new project
npx sv create

# existing project
npx sv add eslint
```

See the [CLI docs](https://svelte.dev/docs/cli/eslint) for more details.

### Manual Setup

```sh
npm install --save-dev svelte eslint eslint-plugin-svelte globals
```

> [!NOTE]
>
> **Requirements:**
>
> - ESLint v8.57.1, v9.0.0, and above
> - Node.js v18.18.0, v20.9.0, v21.1.0 and above

## Usage

Use `eslint.config.js` to configure rules. See [ESLint documentation](https://eslint.org/docs/latest/use/configure/configuration-files-new) for more details.

### Configuration

#### JavaScript project

```js
// eslint.config.js
import svelteConfig from './svelte.config.js';
import { defineConfig } from 'eslint/config';
import globals from 'globals';
import js from '@eslint/js';
import svelte from 'eslint-plugin-svelte';

export default defineConfig([
  // ...
  js.configs.recommended,
  svelte.configs.recommended,
  {
    languageOptions: {
      globals: {
        ...globals.browser,
        // for Sveltekit in non-SPA mode
        ...globals.node
      }
    }
  },
  {
    files: ['**/*.svelte', '**/*.svelte.js'],
    languageOptions: {
      parserOptions: {
        // explicitly importing allows for better compatibilty and functionality with rules and other tooling that depend on the config file.
        //
        // Note: `eslint --cache` will fail with non-serializable properties.
        // In those cases, please remove the non-serializable properties.
        // svelteConfig: {
        //   ...svelteConfig,
        //   kit: {
        //     ...svelteConfig.kit,
        //     typescript: undefined
        //   }
        // }
        svelteConfig
      }
    }
  },
  {
    rules: {
      // Override or add rule settings here, such as:
      // 'svelte/rule-name': 'error'
    }
  }
]);
```

#### TypeScript project

```shell
npm install --save-dev typescript-eslint
```

```js
// eslint.config.js
import svelteConfig from './svelte.config.js';
import { defineConfig } from 'eslint/config';
import globals from 'globals';
import js from '@eslint/js';
import ts from 'typescript-eslint';
import svelte from 'eslint-plugin-svelte';

export default defineConfig(
  js.configs.recommended,
  ts.configs.recommended,
  svelte.configs.recommended,
  {
    languageOptions: {
      globals: {
        ...globals.browser,
        // for Sveltekit in non-SPA mode
        ...globals.node
      }
    }
    // ...
  },
  {
    files: ['**/*.svelte', '**/*.svelte.ts', '**/*.svelte.js'],
    // See more details at: https://typescript-eslint.io/packages/parser/
    languageOptions: {
      parserOptions: {
        projectService: true,
        // Enable typescript parsing for `.svelte` files.
        extraFileExtensions: ['.svelte'],

        // Specify a parser for each language, if needed:
        // parser: {
        //   ts: ts.parser,
        //   typescript: ts.parser
        //   js: espree,            // add `import espree from 'espree'`
        // },
        parser: ts.parser,

        // explicitly importing allows for better compatibilty and functionality with rules and other tooling that depend on the config file.
        //
        // Note: `eslint --cache` will fail with non-serializable properties.
        // In those cases, please remove the non-serializable properties.
        // svelteConfig: {
        //   ...svelteConfig,
        //   kit: {
        //     ...svelteConfig.kit,
        //     typescript: undefined
        //   }
        // }
        svelteConfig
      }
    }
  },
  {
    rules: {
      // Override or add rule settings here, such as:
      // 'svelte/rule-name': 'error'
    }
  }
);
```

> [!WARNING]
> The TypeScript parser uses a singleton internally, meaning it only respects the options provided during its initial initialization.
> If you try to change the options for a different file or override them later, the parser will ignore the new options, which may lead to errors.
> For more context, see [typescript-eslint/typescript-eslint#6778](https://github.com/typescript-eslint/typescript-eslint/issues/6778).

### Available Configurations

This plugin provides the following configurations:

- **`svelte.configs.base`** - **Required** for Svelte parsing. Does not include any rules. Ideal for building a custom configurations.
- **`svelte.configs.recommended`** - Extends `base` and includes rules for best practices.
- **`svelte.configs.prettier`** - Extends `base` and disables rules that may conflict with [Prettier](https://prettier.io/). Prettier still needs to be configured to work with Svelte, for example, by using [prettier-plugin-svelte](https://github.com/sveltejs/prettier-plugin-svelte).
- **`svelte.configs.all`** - **Not Recommended** - Extends `base` and includes all rules. Subject to change with every major and minor release. Use at your own risk.

For more details, see [the rule list](https://sveltejs.github.io/eslint-plugin-svelte/rules/) to explore the rules provided by this plugin.

### settings.svelte

You can customize the behavior of this plugin using specific settings.

```js
// eslint.config.js
export default defineConfig([
  // ...
  {
    settings: {
      svelte: {
        // Specifies an array of rules to ignore reports within the template.
        // For example, use this to disable rules in the template that may produce unavoidable false positives.
        ignoreWarnings: [
          '@typescript-eslint/no-unsafe-assignment',
          '@typescript-eslint/no-unsafe-member-access'
        ],

        // Specifies options for Svelte compilation.
        // This affects rules that rely on Svelte compilation,
        // such as `svelte/valid-compile` and `svelte/no-unused-svelte-ignore`.
        // Note that this setting does not impact ESLint’s custom parser.
        compileOptions: {
          // Specifies options related to PostCSS. You can disable the PostCSS processing by setting it to false.
          postcss: {
            // Specifies the path to the directory that contains the PostCSS configuration.
            configFilePath: './path/to/my/postcss.config.js'
          }
        },

        // Even if settings.svelte.kit is not specified, the rules will attempt to load information from svelte.config.js.
        // However, if the default behavior does not work as expected, you should specify settings.svelte.kit explicitly.
        // If you are using SvelteKit with a non-default configuration, you need to set the following options.
        // The schema is a subset of SvelteKit’s configuration, so refer to the SvelteKit documentation for more details.
        // https://svelte.dev/docs/kit/configuration
        kit: {
          files: {
            routes: 'src/routes'
          }
        }
      }
    }
  }
  // ...
]);
```

## Editor Integrations

**Visual Studio Code**\
Install [dbaeumer.vscode-eslint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint).\
Configure `.svelte` files in `.vscode/settings.json`:

<!--USAGE_GUIDE_END-->
<!--USAGE_SECTION_END-->

## Migration Guide

If you’re migrating from `eslint-plugin-svelte@1` or [`@ota-meshi/eslint-plugin-svelte`](https://www.npmjs.com/package/@ota-meshi/eslint-plugin-svelte), see the [migration guide](https://sveltejs.github.io/eslint-plugin-svelte/migration/).

## Versioning Policy

This project follows [Semantic Versioning](https://semver.org/). Unlike [ESLint’s versioning policy](https://github.com/eslint/eslint#semantic-versioning-policy), new rules may be added to the recommended config in minor releases. If these rules cause unwanted warnings, you can disable them.

<!--DOCS_IGNORE_END-->

## Rules

<!-- prettier-ignore-start -->
<!--RULES_SECTION_START-->

:wrench: Indicates that the rule is fixable, and using `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the reported problems.\
:bulb: Indicates that some problems reported by the rule are manually fixable by editor [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions).\
:star: Indicates that the rule is included in the `plugin:svelte/recommended` config.

<!--RULES_TABLE_START-->

## Possible Errors

These rules relate to possible syntax or logic errors in Svelte code:

| Rule ID | Description |    |
|:--------|:------------|:---|
| [svelte/infinite-reactive-loop](https://sveltejs.github.io/eslint-plugin-svelte/rules/infinite-reactive-loop/) | Svelte runtime prevents calling the same reactive statement twice in a microtask. But between different microtask, it doesn't prevent. | :star: |
| [svelte/no-dom-manipulating](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-dom-manipulating/) | disallow DOM manipulating | :star: |
| [svelte/no-dupe-else-if-blocks](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-dupe-else-if-blocks/) | disallow duplicate conditions in `{#if}` / `{:else if}` chains | :star: |
| [svelte/no-dupe-on-directives](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-dupe-on-directives/) | disallow duplicate `on:` directives | :star: |
| [svelte/no-dupe-style-properties](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-dupe-style-properties/) | disallow duplicate style properties | :star: |
| [svelte/no-dupe-use-directives](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-dupe-use-directives/) | disallow duplicate `use:` directives | :star: |
| [svelte/no-not-function-handler](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-not-function-handler/) | disallow use of not function in event handler | :star: |
| [svelte/no-object-in-text-mustaches](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-object-in-text-mustaches/) | disallow objects in text mustache interpolation | :star: |
| [svelte/no-raw-special-elements](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-raw-special-elements/) | Checks for invalid raw HTML elements | :star::wrench: |
| [svelte/no-reactive-reassign](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-reactive-reassign/) | disallow reassigning reactive values | :star: |
| [svelte/no-shorthand-style-property-overrides](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-shorthand-style-property-overrides/) | disallow shorthand style properties that override related longhand properties | :star: |
| [svelte/no-store-async](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-store-async/) | disallow using async/await inside svelte stores because it causes issues with the auto-unsubscribing features | :star: |
| [svelte/no-top-level-browser-globals](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-top-level-browser-globals/) | disallow using top-level browser global variables |  |
| [svelte/no-unknown-style-directive-property](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-unknown-style-directive-property/) | disallow unknown `style:property` | :star: |
| [svelte/prefer-svelte-reactivity](https://sveltejs.github.io/eslint-plugin-svelte/rules/prefer-svelte-reactivity/) | disallow using mutable instances of built-in classes where a reactive alternative is provided by svelte/reactivity | :star: |
| [svelte/require-store-callbacks-use-set-param](https://sveltejs.github.io/eslint-plugin-svelte/rules/require-store-callbacks-use-set-param/) | store callbacks must use `set` param | :bulb: |
| [svelte/require-store-reactive-access](https://sveltejs.github.io/eslint-plugin-svelte/rules/require-store-reactive-access/) | disallow to use of the store itself as an operand. Need to use $ prefix or get function. | :star::wrench: |
| [svelte/valid-compile](https://sveltejs.github.io/eslint-plugin-svelte/rules/valid-compile/) | disallow warnings when compiling. |  |
| [svelte/valid-style-parse](https://sveltejs.github.io/eslint-plugin-svelte/rules/valid-style-parse/) | require valid style element parsing |  |

## Security Vulnerability

These rules relate to security vulnerabilities in Svelte code:

| Rule ID | Description |    |
|:--------|:------------|:---|
| [svelte/no-at-html-tags](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-at-html-tags/) | disallow use of `{@html}` to prevent XSS attack | :star: |
| [svelte/no-target-blank](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-target-blank/) | disallow `target="_blank"` attribute without `rel="noopener noreferrer"` |  |

## Best Practices

These rules relate to better ways of doing things to help you avoid problems:

| Rule ID | Description |    |
|:--------|:------------|:---|
| [svelte/block-lang](https://sveltejs.github.io/eslint-plugin-svelte/rules/block-lang/) | disallows the use of languages other than those specified in the configuration for the lang attribute of `<script>` and `<style>` blocks. | :bulb: |
| [svelte/button-has-type](https://sveltejs.github.io/eslint-plugin-svelte/rules/button-has-type/) | disallow usage of button without an explicit type attribute |  |
| [svelte/no-add-event-listener](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-add-event-listener/) | Warns against the use of `addEventListener` | :bulb: |
| [svelte/no-at-debug-tags](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-at-debug-tags/) | disallow the use of `{@debug}` | :star::bulb: |
| [svelte/no-ignored-unsubscribe](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-ignored-unsubscribe/) | disallow ignoring the unsubscribe method returned by the `subscribe()` on Svelte stores. |  |
| [svelte/no-immutable-reactive-statements](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-immutable-reactive-statements/) | disallow reactive statements that don't reference reactive values. | :star: |
| [svelte/no-inline-styles](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-inline-styles/) | disallow attributes and directives that produce inline styles |  |
| [svelte/no-inspect](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-inspect/) | Warns against the use of `$inspect` directive | :star: |
| [svelte/no-reactive-functions](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-reactive-functions/) | it's not necessary to define functions in reactive statements | :star::bulb: |
| [svelte/no-reactive-literals](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-reactive-literals/) | don't assign literal values in reactive statements | :star::bulb: |
| [svelte/no-svelte-internal](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-svelte-internal/) | svelte/internal will be removed in Svelte 6. | :star: |
| [svelte/no-unnecessary-state-wrap](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-unnecessary-state-wrap/) | Disallow unnecessary $state wrapping of reactive classes | :star::bulb: |
| [svelte/no-unused-class-name](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-unused-class-name/) | disallow the use of a class in the template without a corresponding style |  |
| [svelte/no-unused-props](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-unused-props/) | Warns about defined Props properties that are unused | :star: |
| [svelte/no-unused-svelte-ignore](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-unused-svelte-ignore/) | disallow unused svelte-ignore comments | :star: |
| [svelte/no-useless-children-snippet](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-useless-children-snippet/) | disallow explicit children snippet where it's not needed | :star: |
| [svelte/no-useless-mustaches](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-useless-mustaches/) | disallow unnecessary mustache interpolations | :star::wrench: |
| [svelte/prefer-const](https://sveltejs.github.io/eslint-plugin-svelte/rules/prefer-const/) | Require `const` declarations for variables that are never reassigned after declared | :wrench: |
| [svelte/prefer-destructured-store-props](https://sveltejs.github.io/eslint-plugin-svelte/rules/prefer-destructured-store-props/) | destructure values from object stores for better change tracking & fewer redraws | :bulb: |
| [svelte/prefer-writable-derived](https://sveltejs.github.io/eslint-plugin-svelte/rules/prefer-writable-derived/) | Prefer using writable $derived instead of $state and $effect | :star::bulb: |
| [svelte/require-each-key](https://sveltejs.github.io/eslint-plugin-svelte/rules/require-each-key/) | require keyed `{#each}` block | :star: |
| [svelte/require-event-dispatcher-types](https://sveltejs.github.io/eslint-plugin-svelte/rules/require-event-dispatcher-types/) | require type parameters for `createEventDispatcher` | :star: |
| [svelte/require-optimized-style-attribute](https://sveltejs.github.io/eslint-plugin-svelte/rules/require-optimized-style-attribute/) | require style attributes that can be optimized |  |
| [svelte/require-stores-init](https://sveltejs.github.io/eslint-plugin-svelte/rules/require-stores-init/) | require initial value in store |  |
| [svelte/valid-each-key](https://sveltejs.github.io/eslint-plugin-svelte/rules/valid-each-key/) | enforce keys to use variables defined in the `{#each}` block | :star: |

## Stylistic Issues

These rules relate to style guidelines, and are therefore quite subjective:

| Rule ID | Description |    |
|:--------|:------------|:---|
| [svelte/consistent-selector-style](https://sveltejs.github.io/eslint-plugin-svelte/rules/consistent-selector-style/) | enforce a consistent style for CSS selectors |  |
| [svelte/derived-has-same-inputs-outputs](https://sveltejs.github.io/eslint-plugin-svelte/rules/derived-has-same-inputs-outputs/) | derived store should use same variable names between values and callback | :bulb: |
| [svelte/first-attribute-linebreak](https://sveltejs.github.io/eslint-plugin-svelte/rules/first-attribute-linebreak/) | enforce the location of first attribute | :wrench: |
| [svelte/html-closing-bracket-new-line](https://sveltejs.github.io/eslint-plugin-svelte/rules/html-closing-bracket-new-line/) | Require or disallow a line break before tag's closing brackets | :wrench: |
| [svelte/html-closing-bracket-spacing](https://sveltejs.github.io/eslint-plugin-svelte/rules/html-closing-bracket-spacing/) | require or disallow a space before tag's closing brackets | :wrench: |
| [svelte/html-quotes](https://sveltejs.github.io/eslint-plugin-svelte/rules/html-quotes/) | enforce quotes style of HTML attributes | :wrench: |
| [svelte/html-self-closing](https://sveltejs.github.io/eslint-plugin-svelte/rules/html-self-closing/) | enforce self-closing style | :wrench: |
| [svelte/indent](https://sveltejs.github.io/eslint-plugin-svelte/rules/indent/) | enforce consistent indentation | :wrench: |
| [svelte/max-attributes-per-line](https://sveltejs.github.io/eslint-plugin-svelte/rules/max-attributes-per-line/) | enforce the maximum number of attributes per line | :wrench: |
| [svelte/max-lines-per-block](https://sveltejs.github.io/eslint-plugin-svelte/rules/max-lines-per-block/) | enforce maximum number of lines in svelte component blocks |  |
| [svelte/mustache-spacing](https://sveltejs.github.io/eslint-plugin-svelte/rules/mustache-spacing/) | enforce unified spacing in mustache | :wrench: |
| [svelte/no-extra-reactive-curlies](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-extra-reactive-curlies/) | disallow wrapping single reactive statements in curly braces | :bulb: |
| [svelte/no-restricted-html-elements](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-restricted-html-elements/) | disallow specific HTML elements |  |
| [svelte/no-spaces-around-equal-signs-in-attribute](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-spaces-around-equal-signs-in-attribute/) | disallow spaces around equal signs in attribute | :wrench: |
| [svelte/prefer-class-directive](https://sveltejs.github.io/eslint-plugin-svelte/rules/prefer-class-directive/) | require class directives instead of ternary expressions | :wrench: |
| [svelte/prefer-style-directive](https://sveltejs.github.io/eslint-plugin-svelte/rules/prefer-style-directive/) | require style directives instead of style attribute | :wrench: |
| [svelte/require-event-prefix](https://sveltejs.github.io/eslint-plugin-svelte/rules/require-event-prefix/) | require component event names to start with "on" |  |
| [svelte/shorthand-attribute](https://sveltejs.github.io/eslint-plugin-svelte/rules/shorthand-attribute/) | enforce use of shorthand syntax in attribute | :wrench: |
| [svelte/shorthand-directive](https://sveltejs.github.io/eslint-plugin-svelte/rules/shorthand-directive/) | enforce use of shorthand syntax in directives | :wrench: |
| [svelte/sort-attributes](https://sveltejs.github.io/eslint-plugin-svelte/rules/sort-attributes/) | enforce order of attributes | :wrench: |
| [svelte/spaced-html-comment](https://sveltejs.github.io/eslint-plugin-svelte/rules/spaced-html-comment/) | enforce consistent spacing after the `<!--` and before the `-->` in a HTML comment | :wrench: |

## Extension Rules

These rules extend the rules provided by ESLint itself, or other plugins to work well in Svelte:

| Rule ID | Description |    |
|:--------|:------------|:---|
| [svelte/no-inner-declarations](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-inner-declarations/) | disallow variable or `function` declarations in nested blocks | :star: |
| [svelte/no-trailing-spaces](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-trailing-spaces/) | disallow trailing whitespace at the end of lines | :wrench: |

## SvelteKit

These rules relate to SvelteKit and its best Practices.

| Rule ID | Description |    |
|:--------|:------------|:---|
| [svelte/no-export-load-in-svelte-module-in-kit-pages](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-export-load-in-svelte-module-in-kit-pages/) | disallow exporting load functions in `*.svelte` module in SvelteKit page components. | :star: |
| [svelte/no-navigation-without-resolve](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-navigation-without-resolve/) | disallow internal navigation (links, `goto()`, `pushState()`, `replaceState()`) without a `resolve()` | :star: |
| [svelte/valid-prop-names-in-kit-pages](https://sveltejs.github.io/eslint-plugin-svelte/rules/valid-prop-names-in-kit-pages/) | disallow props other than data or errors in SvelteKit page components. | :star: |

## Experimental

:warning: These rules are considered experimental and may change or be removed in the future:

| Rule ID | Description |    |
|:--------|:------------|:---|
| [svelte/experimental-require-slot-types](https://sveltejs.github.io/eslint-plugin-svelte/rules/experimental-require-slot-types/) | require slot type declaration using the `$$Slots` interface |  |
| [svelte/experimental-require-strict-events](https://sveltejs.github.io/eslint-plugin-svelte/rules/experimental-require-strict-events/) | require the strictEvents attribute on `<script>` tags |  |

## System

These rules relate to this plugin works:

| Rule ID | Description |    |
|:--------|:------------|:---|
| [svelte/comment-directive](https://sveltejs.github.io/eslint-plugin-svelte/rules/comment-directive/) | support comment-directives in HTML template | :star: |
| [svelte/system](https://sveltejs.github.io/eslint-plugin-svelte/rules/system/) | system rule for working this plugin | :star: |

## Deprecated

- :warning: We're going to remove deprecated rules in the next major release. Please migrate to successor/new rules.
- :innocent: We don't fix bugs which are in deprecated rules since we don't have enough resources.

| Rule ID | Replaced by |
|:--------|:------------|
| [svelte/@typescript-eslint/no-unnecessary-condition](https://sveltejs.github.io/eslint-plugin-svelte/rules/@typescript-eslint/no-unnecessary-condition/) | This rule is no longer needed when using svelte-eslint-parser>=v0.19.0. |
| [svelte/no-dynamic-slot-name](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-dynamic-slot-name/) | Now Svelte compiler itself throws an compile error. |
| [svelte/no-goto-without-base](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-goto-without-base/) | [svelte/no-navigation-without-resolve](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-navigation-without-resolve/) |
| [svelte/no-navigation-without-base](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-navigation-without-base/) | [svelte/no-navigation-without-resolve](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-navigation-without-resolve/) |

<!--RULES_TABLE_END-->
<!--RULES_SECTION_END-->
<!-- prettier-ignore-end -->

<!--DOCS_IGNORE_START-->

## Contributing

Contributions are welcome! Please open an issue or submit a PR. For more details, see [CONTRIBUTING.md](./CONTRIBUTING.md).\
Refer to [svelte-eslint-parser](https://github.com/sveltejs/svelte-eslint-parser) for AST details.

<!--DOCS_IGNORE_END-->

## License

See [LICENSE](LICENSE) (MIT).


================================================
FILE: docs/README.md
================================================
---
title: 'eslint-plugin-svelte'
---

## Introduction

`eslint-plugin-svelte` is the official [ESLint](https://eslint.org/) plugin for [Svelte](https://svelte.dev/).\
It leverages the AST generated by [svelte-eslint-parser](https://github.com/sveltejs/svelte-eslint-parser) to provide custom linting for Svelte.\

> [!NOTE]
>
> `eslint-plugin-svelte` and `svelte-eslint-parser` cannot be used alongside [eslint-plugin-svelte3](https://github.com/sveltejs/eslint-plugin-svelte3).

See [User Guide](./user-guide.md).

## Migration Guide

If you’re migrating from `eslint-plugin-svelte@1` or [`@ota-meshi/eslint-plugin-svelte`](https://www.npmjs.com/package/@ota-meshi/eslint-plugin-svelte), see the [migration guide](./migration.md).

## Versioning Policy

This project follows [Semantic Versioning](https://semver.org/). Unlike [ESLint’s versioning policy](https://github.com/eslint/eslint#semantic-versioning-policy), new rules may be added to the recommended config in minor releases. If these rules cause unwanted warnings, you can disable them.

<!--DOCS_IGNORE_END-->

## Rules

<!-- prettier-ignore-start -->
See [Available Rules](./rules.md).
<!-- prettier-ignore-end -->

## License

See [LICENSE](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/LICENSE) (MIT).


================================================
FILE: docs/migration.md
================================================
# Migration Guide

## From `eslint-plugin-svelte3`

You can not use both `eslint-plugin-svelte3` and `eslint-plugin-svelte` at same time.
So before start to use this plugin, you need to remove `eslint-plugin-svelte3`'s stuff from both `package.json` and `.eslintrc.*`.

> Note: If you want to know difference between `eslint-plugin-svelte` and `eslint-plugin-svelte3`, Please read the reason for deprecating `eslint-plugin-svelte3` in [eslint-plugin-svelte3 README](https://github.com/sveltejs/eslint-plugin-svelte3/blob/master/README.md).

> Note: If you're using TypeScript, maybe you get `Parsing error: "parserOptions.project" has been set for @typescript-eslint/parser.` error at some configuration files.<br>In this case, please refer [this GitHub comment](https://github.com/typescript-eslint/typescript-eslint/issues/1723#issuecomment-626766041) to solve it.

## From `eslint-plugin-svelte` v1 To v2

`eslint-plugin-svelte` v1 was an alias for [eslint-plugin-svelte3], but `eslint-plugin-svelte` v2 is now an independent eslint-plugin.

If you want the previous behavior, replace it with [eslint-plugin-svelte3].

[eslint-plugin-svelte3]: https://github.com/sveltejs/eslint-plugin-svelte3

## From `@ota-meshi/eslint-plugin-svelte`

`@ota-meshi/eslint-plugin-svelte` has been renamed to `eslint-plugin-svelte`.\
Therefore, you need to replace the package name, and the presets, rules, and settings specified in the configuration.

- `package.json`\
  Replace the package name.

  ```diff
  -  "@ota-meshi/eslint-plugin-svelte": "^0.X.X"
  +  "eslint-plugin-svelte": "^X.X.X"
  ```

- `.eslintrc.*`\
  Replace `@ota-meshi/svelte` with `svelte` as a string.\
  Examples:

  - Presets

    ```diff
      "extends": [
    -    "plugin:@ota-meshi/svelte/recommended"
    +    "plugin:svelte/recommended"
      ],
    ```

  - Rules

    ```diff
      "rules": {
    -    "@ota-meshi/svelte/no-dupe-else-if-blocks": "error",
    +    "svelte/no-dupe-else-if-blocks": "error",
    -    "@ota-meshi/svelte/button-has-type": "error",
    +    "svelte/button-has-type": "error",
      },
    ```

  - `settings`

    ```diff
      "settings": {
    -    "@ota-meshi/svelte": { ... }
    +    "svelte": { ... }
      },
    ```

## From `eslint-plugin-svelte` v2 To v3

This section explains the necessary changes when upgrading from `eslint-plugin-svelte` v2 to v3.\
v3 includes **support for ESLint Flat Config only**, **changes to the recommended rule set**, and other breaking changes.

---

## Breaking Changes

### 1. **Minimum Node.js Version Requirement**

v3 requires **one of the following Node.js versions**:

- `^18.20.4`
- `^20.18.0`
- `>=22.10.0`

### 2. **ESLint Flat Config Only**

- `.eslintrc.js` and `.eslintrc.json` are **no longer supported**.
- You must use **Flat Config (`eslint.config.js`)**.
- See [README](README.md) for more details.

### 3. **ESLint Version Requirement**

- v3 requires **ESLint 8.57.1 or later** (including v9.x).

### 4. **Changes to Recommended Rule Set**

- The following rules are now included in `recommended`:
  - `svelte/infinite-reactive-loop`
  - `svelte/no-dom-manipulating`
  - `svelte/no-dupe-on-directives`
  - `svelte/no-reactive-reassign`
  - `svelte/require-event-dispatcher-types`
  - Many others (See [Changelog](https://github.com/sveltejs/eslint-plugin-svelte/releases/tag/eslint-plugin-svelte%403.0.0-next.16) for more details)
- `svelte/valid-compile` has been **removed** from `recommended`.

### 5. **Deprecated Rules**

- `svelte/no-dynamic-slot-name` is **deprecated**.
- `svelte/no-goto-without-base` is **deprecated** and replaced with `svelte/no-navigation-without-base`.

---

## New Features & Improvements

### 1. **Support for Svelte 5**

- Rules such as `no-not-function-handler` and `valid-prop-names-in-kit-pages` now support **Svelte 5**.

### 2. **New Rules**

- `consistent-selector-style`: Enforce consistent selector styles.
- `no-useless-children-snippet`: Prevent unnecessary `{@children}` usage.
- `prefer-const`: Prefer `const` over `let`.
- `no-navigation-without-base`: Ensure proper usage of `goto()`.

---

## Migration Steps

### 1. **Upgrade Package**

```sh
npm install eslint-plugin-svelte@3
```

### 2. **Check Node.js Version**

```sh
node -v
```

- Ensure it is `v18.20.4` or later.

### 3. **Check ESLint Version**

```sh
npx eslint -v
```

- Ensure it is `8.57.1` or later (or `9.x`).

### 4. **Use Flat Config (`eslint.config.js`)**

- Remove `.eslintrc.js` and migrate to `eslint.config.js`.

### 5. **Apply the Updated Recommended Rules**

- If using `recommended`, check the impact of newly added rules.

### 6. **Replace Deprecated Rules**

- Replace `no-goto-without-base` with `no-navigation-without-base`.


================================================
FILE: docs/rules/@typescript-eslint/no-unnecessary-condition.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/@typescript-eslint/no-unnecessary-condition'
description: 'disallow conditionals where the type is always truthy or always falsy'
since: 'v2.9.0'
---

# svelte/@typescript-eslint/no-unnecessary-condition

> disallow conditionals where the type is always truthy or always falsy

- :warning: This rule was **deprecated**. This rule is no longer needed when using svelte-eslint-parser>=v0.19.0.
- :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.

## :book: Rule Details

**This rule is no longer needed when using svelte-eslint-parser>=v0.19.0.**

This rule extends the base `@typescript-eslint`'s [@typescript-eslint/no-unnecessary-condition] rule.
The [@typescript-eslint/no-unnecessary-condition] rule does not understand reactive or rerendering of Svelte components and has false positives when used with Svelte components. This rule understands reactive and rerendering of Svelte components.

<!--eslint-skip-->

```svelte
<script lang="ts">
  /* eslint svelte/@typescript-eslint/no-unnecessary-condition: "error" */
  export let foo: number | null = null;
  /* ✗ BAD */
  let b = foo || 42;
  /* ✓ GOOD */
  $: a = foo || 42;
</script>

<!-- ✓ GOOD -->
{foo || 42}
```

## :wrench: Options

```json
{
  "@typescript-eslint/no-unnecessary-condition": "off",
  "svelte/@typescript-eslint/no-unnecessary-condition": [
    "error",
    {
      "allowConstantLoopConditions": false,
      "allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing": false
    }
  ]
}
```

Same as [@typescript-eslint/no-unnecessary-condition] rule option. See [here](https://typescript-eslint.io/rules/no-unnecessary-condition/#options) for details.

## :couple: Related rules

- [@typescript-eslint/no-unnecessary-condition]

[@typescript-eslint/no-unnecessary-condition]: https://typescript-eslint.io/rules/no-unnecessary-condition/

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v2.9.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/@typescript-eslint/no-unnecessary-condition.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/@typescript-eslint/no-unnecessary-condition.ts)

<sup>Taken with ❤️ [from @typescript-eslint/eslint-plugin](https://typescript-eslint.io/rules/no-unnecessary-condition/)</sup>


================================================
FILE: docs/rules/block-lang.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/block-lang'
description: 'disallows the use of languages other than those specified in the configuration for the lang attribute of `<script>` and `<style>` blocks.'
since: 'v2.18.0'
---

# svelte/block-lang

> disallows the use of languages other than those specified in the configuration for the lang attribute of `<script>` and `<style>` blocks.

- :bulb: Some problems reported by this rule are manually fixable by editor [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions).

## :book: Rule Details

This rule enforces all svelte components to use the same set of languages for their scripts and styles.

<!--eslint-skip-->

```svelte
<!-- ✓ GOOD -->
<script lang="ts">
  /* eslint svelte/block-lang: ["error", { "script": "ts" }] */
</script>
```

<!--eslint-skip-->

```svelte
<!-- ✓ GOOD -->
<script>
  /* eslint svelte/block-lang: ["error", { "script": ["ts", null], "style": "scss" }] */
</script>

<style lang="scss">
</style>
```

<!--eslint-skip-->

```svelte
<!-- ✗ BAD -->
<script>
  /* eslint svelte/block-lang: ["error", { "script": ["ts"] }] */
</script>
```

## :wrench: Options

```json
{
  "svelte/block-lang": [
    "error",
    {
      "enforceScriptPresent": true,
      "enforceStylePresent": false,
      "script": ["ts", null], // a list of languages or null to signify no language specified
      "style": "scss" // same as for script, a single value can be used instead of an array.
    }
  ]
}
```

- `enforceScriptPresent` ... Whether to enforce the presence of a `<script>` block with one of the given languages. This may be useful as for example TypeScript checks some uses of a component if it is defined as being TypeScript. Default `false`.
- `enforceStylePresent` ... Whether to enforce the presence of a `<style>` block with one of the given languages. Default `false`.
- `script` ... A list of languages allowed for the `<script>` block. If `null` is included, no `lang` attribute is also allowed. A plain string or `null` can be used instead of one-item array. Default `null`.
- `style` ... A list of languages allowed for the `<style>` block. If `null` is included, no `lang` attribute is also allowed. A plain string or `null` can be used instead of one-item array. Default `null`.

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v2.18.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/block-lang.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/block-lang.ts)


================================================
FILE: docs/rules/button-has-type.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/button-has-type'
description: 'disallow usage of button without an explicit type attribute'
since: 'v0.0.4'
---

# svelte/button-has-type

> disallow usage of button without an explicit type attribute

## :book: Rule Details

This rule aims to warn if no type or an invalid type is used on a button type attribute.

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/button-has-type: "error" */
</script>

<!-- ✓ GOOD -->
<button type="button">Hello World</button>
<button type="submit">Hello World</button>
<button type="reset">Hello World</button>

<!-- ✗ BAD -->
<button>Hello World</button>
<button type="">Hello World</button>
<button type="foo">Hello World</button>
```

## :wrench: Options

```json
{
  "svelte/button-has-type": [
    "error",
    {
      "button": true,
      "submit": true,
      "reset": true
    }
  ]
}
```

- `button` ... `<button type="button"></button>`
  - `true` (default) ... allow value `button`.
  - `false` ... disallow value `button`.
- `submit` ... `<button type="submit"></button>`
  - `true` (default) ... allow value `submit`.
  - `false` ... disallow value `submit`.
- `reset` ... `<button type="reset"></button>`
  - `true` (default) ... allow value `reset`.
  - `false` ... disallow value `reset`.

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v0.0.4

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/button-has-type.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/button-has-type.ts)


================================================
FILE: docs/rules/comment-directive.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/comment-directive'
description: 'support comment-directives in HTML template'
since: 'v0.0.13'
---

# svelte/comment-directive

> support comment-directives in HTML template

- :gear: This rule is included in `"plugin:svelte/base"` and `"plugin:svelte/recommended"`.

Sole purpose of this rule is to provide `eslint-disable` functionality in the template HTML.
It supports usage of the following comments:

- `eslint-disable`
- `eslint-enable`
- `eslint-disable-line`
- `eslint-disable-next-line`

::: warning Note
We can't write HTML comments in tags.
:::

## :book: Rule Details

ESLint doesn't provide any API to enhance `eslint-disable` functionality and ESLint rules cannot affect other rules. But ESLint provides [processors API](https://eslint.org/docs/developer-guide/working-with-plugins#processors-in-plugins).

This rule sends all `eslint-disable`-like comments to the post-process of the `.svelte` file processor, then the post-process removes the reported errors in disabled areas.

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/comment-directive: "error", no-undef: "error" */
</script>

<!-- eslint-disable-next-line no-undef -->
<UndefComponent />
```

The `eslint-disable`-like comments can include descriptions to explain why the comment is necessary. The description must occur after the directive and is separated from the directive by two or more consecutive `-` characters. For example:

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/comment-directive: "error", no-undef: "error" */
</script>

<!-- eslint-disable-next-line no-undef -- Here's a description about why this disabling is necessary. -->
<UndefComponent />
```

## :wrench: Options

```json
{
  "svelte/comment-directive": [
    "error",
    {
      "reportUnusedDisableDirectives": false
    }
  ]
}
```

- `reportUnusedDisableDirectives` ... If `true`, to report unused `eslint-disable` HTML comments. default `false`

### `{ "reportUnusedDisableDirectives": true }`

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/comment-directive: ["error", { "reportUnusedDisableDirectives": true }], no-undef: "error" */
  import DefinedComponent from './DefinedComponent.svelte';
</script>

<!-- ✓ GOOD -->
<!-- eslint-disable-next-line no-undef -->
<UndefComponent />

<!-- ✗ BAD -->
<!-- eslint-disable-next-line no-undef -->
<DefinedComponent />
```

## :books: Further Reading

- [Disabling rules with inline comments]

[disabling rules with inline comments]: https://eslint.org/docs/user-guide/configuring#disabling-rules-with-inline-comments

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v0.0.13

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/comment-directive.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/comment-directive.ts)


================================================
FILE: docs/rules/consistent-selector-style.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/consistent-selector-style'
description: 'enforce a consistent style for CSS selectors'
since: 'v3.0.0-next.15'
---

# svelte/consistent-selector-style

> enforce a consistent style for CSS selectors

## :book: Rule Details

This rule allows you to set a preferred style for your CSS (& other style language) selectors. In CSS, there is a wide list of options for selecting elements, however, the three most basic types are:

- Selecting by element type (i.e. tag name), such as `a {}`
- Selecting by element ID, such as `#link {}`
- Selecting by element class, such as `.link {}`
  This rule allows you to set a preference for some of these three styles over others. Not all selectors can be used in all situations, however. While class selectors can be used in any situation, ID selectors can only be used to select a single element and type selectors are only applicable when the list of selected elements is the list of all elements of the particular type. To help with this, the rule accepts a list of selector style preferences and reports situations when the given selector can be rewritten using a more preferred style.

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/consistent-selector-style: ["error", { style: ["type", "id", "class"] }] */
</script>

<a class="link" id="firstLink">Click me!</a>

<a class="link cross">Click me too!</a>

<b class="bold cross">Text one</b>

<b>Text two</b>

<i id="italic">Text three</i>

<style>
  /* ✓ GOOD */

  a {
    color: green;
  }

  #firstLink {
    color: green;
  }

  .cross {
    color: green;
  }

  /* ✗ BAD */

  /* Can use a type selector */
  .link {
    color: red;
  }

  /* Can use an ID selector (but not a type selector) */
  .bold {
    color: red;
  }

  /* Can use a type selector */
  #italic {
    color: red;
  }
</style>
```

## :wrench: Options

```json
{
  "svelte/consistent-selector-style": [
    "error",
    {
      "checkGlobal": false,
      "style": ["type", "id", "class"]
    }
  ]
}
```

- `checkGlobal` ... Whether to check styles in `:global` blocks as well. Default `false`.
- `style` ... A list of style preferences. Default `["type", "id", "class"]`.

## :books: Further Reading

- [CSS selector documentation](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_selectors)

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v3.0.0-next.15

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/consistent-selector-style.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/consistent-selector-style.ts)


================================================
FILE: docs/rules/derived-has-same-inputs-outputs.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/derived-has-same-inputs-outputs'
description: 'derived store should use same variable names between values and callback'
since: 'v2.8.0'
---

# svelte/derived-has-same-inputs-outputs

> derived store should use same variable names between values and callback

- :bulb: Some problems reported by this rule are manually fixable by editor [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions).

## :book: Rule Details

This rule reports where variable names and callback function's argument names are different.
This is mainly a recommended rule to avoid implementation confusion.

<!--eslint-skip-->

```js
/* eslint svelte/derived-has-same-inputs-outputs: "error" */

import { derived } from 'svelte/store';

/* ✓ GOOD */
derived(a, ($a) => {});
derived(a, ($a, set) => {});
derived([a, b], ([$a, $b]) => {});

/* ✗ BAD */
derived(a, (b) => {});
derived(a, (b, set) => {});
derived([a, b], ([one, two]) => {});
```

## :wrench: Options

Nothing.

## :books: Further Reading

- [Svelte - Docs > RUN TIME > svelte/store > derived](https://svelte.dev/docs#run-time-svelte-store-derived)

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v2.8.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/derived-has-same-inputs-outputs.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/derived-has-same-inputs-outputs.ts)


================================================
FILE: docs/rules/experimental-require-slot-types.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/experimental-require-slot-types'
description: 'require slot type declaration using the `$$Slots` interface'
since: 'v2.18.0'
---

# svelte/experimental-require-slot-types

> require slot type declaration using the `$$Slots` interface

## :book: Rule Details

This rule enforces the presence of the `$$Slots` interface if any slots are present in the component. This interface declares all of the used slots and their props and enables typechecking both in the component itself as well as all components that include it.
The `$$Slots` interface is experimental and is documented in [svelte RFC #38](https://github.com/dummdidumm/rfcs/blob/ts-typedefs-within-svelte-components/text/ts-typing-props-slots-events.md#typing-slots).

<!--eslint-skip-->

```svelte
<!-- ✓ GOOD -->
<script lang="ts">
  /* eslint svelte/experimental-require-slot-types: "error" */
</script>

<b>No slots here!</b>
```

<!--eslint-skip-->

```svelte
<!-- ✓ GOOD -->
<script lang="ts">
  /* eslint svelte/experimental-require-slot-types: "error" */

  interface $$Slots {
    default: Record<string, never>;
  }
</script>

<slot />
```

<!--eslint-skip-->

```svelte
<!-- ✓ GOOD -->
<script lang="ts">
  /* eslint svelte/experimental-require-slot-types: "error" */

  interface $$Slots {
    default: { prop: boolean };
  }
</script>

<slot prop={true} />
```

<!--eslint-skip-->

```svelte
<!-- ✓ GOOD -->
<script lang="ts">
  /* eslint svelte/experimental-require-slot-types: "error" */

  interface $$Slots {
    named: Record<string, never>;
  }
</script>

<slot name="named" />
```

<!--eslint-skip-->

```svelte
<!-- ✗ BAD -->
<script lang="ts">
  /* eslint svelte/experimental-require-slot-types: "error" */
</script>

<slot />
```

## :wrench: Options

Nothing.

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v2.18.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/experimental-require-slot-types.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/experimental-require-slot-types.ts)


================================================
FILE: docs/rules/experimental-require-strict-events.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/experimental-require-strict-events'
description: 'require the strictEvents attribute on `<script>` tags'
since: 'v2.18.0'
---

# svelte/experimental-require-strict-events

> require the strictEvents attribute on `<script>` tags

## :book: Rule Details

This rule enforces the presence of the `strictEvents` attribute on the main `<script>` tag of all components. This attributes enforces typechecking of events dispatched by the component, e.g. making it a typescript error to listen to any non-existent events. Alternatively, the event types may be defined manually by declaring the `$$Events` interface. The `strictEvents` attribute and the `$$Events` interface are experimental and are documented in [svelte RFC #38](https://github.com/dummdidumm/rfcs/blob/ts-typedefs-within-svelte-components/text/ts-typing-props-slots-events.md#typing-events).

<!--eslint-skip-->

```svelte
<!-- ✓ GOOD -->
<script lang="ts" strictEvents>
  /* eslint svelte/experimental-require-strict-events: "error" */
</script>
```

<!--eslint-skip-->

```svelte
<!-- ✓ GOOD -->
<script lang="ts">
  /* eslint svelte/experimental-require-strict-events: "error" */
  interface $$Events {}
</script>
```

<!--eslint-skip-->

```svelte
<!-- ✗ BAD -->
<script lang="ts">
  /* eslint svelte/experimental-require-strict-events: "error" */
</script>
```

## :wrench: Options

Nothing.

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v2.18.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/experimental-require-strict-events.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/experimental-require-strict-events.ts)


================================================
FILE: docs/rules/first-attribute-linebreak.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/first-attribute-linebreak'
description: 'enforce the location of first attribute'
since: 'v0.6.0'
---

# svelte/first-attribute-linebreak

> enforce the location of first attribute

- :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.

## :book: Rule Details

This rule aims to enforce a consistent location for the first attribute.

<!-- prettier-ignore-start -->

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/first-attribute-linebreak: "error" */
</script>

<!-- ✓ GOOD -->
<input type="checkbox" />
<button
  type="button"
  on:click={click} />
<button type="button" on:click={click} />

<!-- ✗ BAD -->
<input
  type="checkbox" />
<button type="button"
  on:click={click} />
<button
  type="button" on:click={click} />
```

<!-- prettier-ignore-end -->

## :wrench: Options

```json
{
  "svelte/first-attribute-linebreak": [
    "error",
    {
      "multiline": "below", // or "beside"
      "singleline": "beside" // "below"
    }
  ]
}
```

- `multiline` ... The location of the first attribute when the attributes span multiple lines. Default is `"below"`.
  - `"below"` ... Requires a newline before the first attribute.
  - `"beside"` ... Disallows a newline before the first attribute.
- `singleline` ... The location of the first attribute when the attributes on single line. Default is `"beside"`.
  - `"below"` ... Requires a newline before the first attribute.
  - `"beside"` ... Disallows a newline before the first attribute.

## :couple: Related Rules

- [svelte/max-attributes-per-line]

[svelte/max-attributes-per-line]: ./max-attributes-per-line.md

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v0.6.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/first-attribute-linebreak.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/first-attribute-linebreak.ts)


================================================
FILE: docs/rules/html-closing-bracket-new-line.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/html-closing-bracket-new-line'
description: "Require or disallow a line break before tag's closing brackets"
since: 'v2.45.0'
---

# svelte/html-closing-bracket-new-line

> Require or disallow a line break before tag's closing brackets

- :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.

## :book: Rule Details

This rule enforces a line break (or no line break) before tag's closing brackets, which can also be configured to be enforced on self-closing tags.

<!-- prettier-ignore-start -->
<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/html-closing-bracket-new-line: "error" */
</script>

<!-- ✓ GOOD -->
<div></div>
<div
  multiline
>
  Children
</div>

<SelfClosing />
<SelfClosing
  multiline
/>

<!-- ✗ BAD -->

<div
></div>
<div
  multiline>
  Children
</div>

<SelfClosing
/>
<SelfClosing
  multiline/>
```

<!-- prettier-ignore-end -->

## :wrench: Options

```json
{
  "svelte/html-closing-bracket-new-line": [
    "error",
    {
      "singleline": "never", // ["never", "always"]
      "multiline": "always", // ["never", "always"]
      "selfClosingTag": {
        "singleline": "never", // ["never", "always"]
        "multiline": "always" // ["never", "always"]
      }
    }
  ]
}
```

- `singleline`: (`"never"` by default) Configuration for single-line elements. It's a single-line element if the element does not have attributes or the last attribute is on the same line as the opening bracket.
- `multiline`: (`"always"` by default) Configuration for multi-line elements. It's a multi-line element if the last attribute is not on the same line of the opening bracket.
- `selfClosingTag.singleline`: Configuration for single-line self closing elements.
- `selfClosingTag.multiline`: Configuration for multi-line self closing elements.

The `selfClosing` is optional, and by default it will use the same configuration as `singleline` and `multiline`, respectively.

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v2.45.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/html-closing-bracket-new-line.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/html-closing-bracket-new-line.ts)


================================================
FILE: docs/rules/html-closing-bracket-spacing.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/html-closing-bracket-spacing'
description: "require or disallow a space before tag's closing brackets"
since: 'v2.3.0'
---

# svelte/html-closing-bracket-spacing

> require or disallow a space before tag's closing brackets

- :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.

## :book: Rule Details

You can choose either two styles for spacing before closing bracket

- always: `<div />`
- never: `<div/>`

<!-- prettier-ignore-start -->
<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/html-closing-bracket-spacing: "error" */
</script>

<!-- ✓ GOOD -->
<div />
<p>Hello</p>
<div
 >
</div>

<!-- ✗ BAD -->
<div/>
<p >Hello</p >
<div  >
</div >
```

<!-- prettier-ignore-end -->

## :wrench: Options

```json
{
  "svelte/html-closing-bracket-spacing": [
    "error",
    {
      "startTag": "never", // or "always" or "ignore"
      "endTag": "never", // or "always" or "ignore"
      "selfClosingTag": "always" // or "never" or "ignore"
    }
  ]
}
```

- `startTag` (`"never"` by default)... Spacing in start tags
- `endTag` (`"never"` by default)... Spacing in end tags
- `selfClosingTag` (`"always"` by default)... Spacing in self closing tags

Every option can be set to

- "always" (`<div />`)
- "never" (`<div/>`)
- "ignore" (either `<div />` or `<div/>`)

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v2.3.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/html-closing-bracket-spacing.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/html-closing-bracket-spacing.ts)


================================================
FILE: docs/rules/html-quotes.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/html-quotes'
description: 'enforce quotes style of HTML attributes'
since: 'v0.5.0'
---

# svelte/html-quotes

> enforce quotes style of HTML attributes

- :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.

## :book: Rule Details

You can choose quotes of HTML attributes from:

- Double quotes: `<div class="foo">`
- Single quotes: `<div class='foo'>`
- No quotes: `<div class=foo>`

This rule enforces the quotes style of HTML attributes.

<!-- prettier-ignore-start -->
<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/html-quotes: "error" */
</script>

<!-- ✓ GOOD -->
<input type="text" bind:value={text} />
<img {src} alt="{name} dances." />

<!-- ✗ BAD -->
<input type=text bind:value="{text}" />
<img src="{src}" alt='{name} dances.' />
```

<!-- prettier-ignore-end -->

## :wrench: Options

```json
{
  "svelte/html-quotes": [
    "error",
    {
      "prefer": "double", // or "single"
      "dynamic": {
        "quoted": false,
        "avoidInvalidUnquotedInHTML": false
      }
    }
  ]
}
```

- `prefer` ... If `"double"`, requires double quotes. If `"single"`, requires single quotes.
- `dynamic` ... Settings for dynamic attribute values and directive values using curly braces.
  - `quoted` ... If `true`, enforce the use of quotes. If `false`, do not allow the use of quotes. The default is `false`.
  - `avoidInvalidUnquotedInHTML` ... If `true`, enforces the use of quotes if they are invalid as HTML attribute when not using quotes. The default is `false`.

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v0.5.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/html-quotes.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/html-quotes.ts)


================================================
FILE: docs/rules/html-self-closing.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/html-self-closing'
description: 'enforce self-closing style'
since: 'v2.5.0'
---

# svelte/html-self-closing

> enforce self-closing style

- :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.

## :book: Rule Details

You can choose either two styles for elements without content.

- always: `<SomeComponent />`
- never: `<SomeComponent></SomeComponent>`

<!-- prettier-ignore-start -->
<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/html-self-closing: "error" */
</script>

<!-- ✓ GOOD -->
<p>Hello</p>
<div></div>
<img />
<svelte:head />
<svg><path /></svg>
<math><msup></msup></math>
<SomeComponent />

<!-- ✗ BAD -->
<div />
<div><div /></div>
<svelte:body></svelte:body>
<svg><path></path></svg>
<math><msup /></math>
<SomeComponent></SomeComponent>
```

<!-- prettier-ignore-end -->

## :wrench: Options

presets:

```jsonc
{
  "svelte/html-self-closing": [
    "error",
    "default" // or "all" or "html" or "none"
  ]
}
```

config object:

```jsonc
{
  "svelte/html-self-closing": [
    "error",
    {
      "void": "always", // or "never" or "ignore"
      "normal": "never", // or "always" or "ignore"
      "svg": "always", // or "never" or "ignore"
      "never": "never", // or "always" or "ignore"
      "component": "always", // or "never" or "ignore"
      "svelte": "always" // or "never" or "ignore"
    }
  ]
}
```

presets:

- `default` - MathML and non-void HTML elements should have a closing tag; otherwise, they should be self-closing.
- `all` - all elements should be self-closing (unless they have children)
- `html` - html-compliant - only void elements and svelte special elements should be self-closing
- `none` - no elements should be self-closing

::: warning Note
We recommend selecting `default` as the preset. Choosing any other option may result in settings that are inconsistent with the compiler when using Svelte5.
:::

config object:

- `void` (`"always"` in default preset)... Style of HTML void elements
- `normal` (`"never"` in default preset)... Style of other elements
- `svg` (`"always"` in default preset)... Style of SVG
- `math` (`never` in default preset)... Style of MathML
- `component` (`"always"` in default preset)... Style of svelte components
- `svelte` (`"always"` in default preset)... Style of svelte special elements (`<svelte:head>`, `<svelte:self>`)

::: warning
`foreign` is removed in `eslint-plugin-svelte` v3.
:::

Every config object option can be set to

- "always" (`<SomeComponent />`)
- "never" (`<SomeComponent></SomeComponent>`)
- "ignore" (either `<SomeComponent />` or `<SomeComponent></SomeComponent>`)

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v2.5.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/html-self-closing.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/html-self-closing.ts)


================================================
FILE: docs/rules/indent.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/indent'
description: 'enforce consistent indentation'
since: 'v0.3.0'
---

# svelte/indent

> enforce consistent indentation

- :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.

## :book: Rule Details

This rule enforces a consistent indentation style in `.svelte`. The default style is 2 spaces.

- This rule checks all tags, also all expressions in directives and mustaches.
- In the expressions, this rule supports ECMAScript 2021 syntaxes and some TypeScript syntaxes. It ignores unknown AST nodes, but it might be confused by non-standard syntaxes.

<!-- prettier-ignore-start -->
<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/indent: "error" */
  function click() {}
</script>

<!-- ✓ GOOD -->
<button
  type="button"
  on:click={click}
  class="my-button primally"
>
  CLICK ME!
</button>

<!-- ✗ BAD -->
<button
type="button"
    on:click={click}
     class="my-button primally"
  >
CLICK ME!
</button>
```

<!-- prettier-ignore-end -->

::: warning Note
This rule only checks `.svelte` files and does not interfere with other `.js` files. Unfortunately the default `indent` rule when turned on will try to lint both, so in order to make them complementary you can use `overrides` setting and disable `indent` rule on `.svelte` files:
:::

```json
{
  "overrides": [
    {
      "files": ["*.svelte"],
      "rules": {
        "svelte/indent": "error",
        "indent": "off"
      }
    }
  ]
}
```

## :wrench: Options

```json
{
  "svelte/indent": [
    "error",
    {
      "indent": 2,
      "ignoredNodes": [],
      "switchCase": 1,
      "alignAttributesVertically": false
    }
  ]
}
```

- `indent` (`number | "tab"`) ... The type of indentation. Default is `2`. If this is a number, it's the number of spaces for one indent. If this is `"tab"`, it uses one tab for one indent.
- `indentScript` (`boolean`) ... If contents within a `<script>` block should be indented a level or not. Default is `true`.
- `ignoredNodes` ... Can be used to disable indentation checking for any AST node. This accepts an array of [selectors](https://eslint.org/docs/developer-guide/selectors). If an AST node is matched by any of the selectors, the indentation of tokens which are direct children of that node will be ignored. This can be used as an escape hatch to relax the rule if you disagree with the indentation that it enforces for a particular syntactic pattern.
- `switchCase` ... Enforces indentation level for case clauses in switch statements. Default is `1`.
- `alignAttributesVertically` ... Condition for whether attributes should be vertically aligned to the first attribute in multiline case or not. Default is `false`

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v0.3.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/indent.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/indent.ts)


================================================
FILE: docs/rules/infinite-reactive-loop.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/infinite-reactive-loop'
description: "Svelte runtime prevents calling the same reactive statement twice in a microtask. But between different microtask, it doesn't prevent."
since: 'v2.16.0'
---

# svelte/infinite-reactive-loop

> Svelte runtime prevents calling the same reactive statement twice in a microtask. But between different microtask, it doesn't prevent.

- :gear: This rule is included in `"plugin:svelte/recommended"`.

## :book: Rule Details

Svelte runtime prevents calling the same reactive statement twice in a microtask.<br/>
But between different microtask, it doesn't prevent.<br/>
This rule reports those possible infinite loop.

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/infinite-reactive-loop: "error" */
  import { count } from './store.js';
  import { tick } from 'svelte';
  let a = 0;

  // ✓ GOOD
  $: if (a < 10) {
    a += 1;
    $count += 1;
  }

  $: (async () => {
    // You can update a state in the same micro task.
    a += 1;
    $count += 1;
    await new Promise((resolve) => setTimeout(resolve, 100));
  })();

  $: (async () => {
    await doSomething_ok();
  })();

  const doSomething_ok = async () => {
    await fetchFromServer();
    // You can update a state even in different microtask
    // if you don't refer the state in reactive statement.
    a += 1;
  };

  // ✗ BAD
  $: (async () => {
    await doSomething();
    // Do not update a state in different micro task.
    a += 1;
    $count += 1;
  })();

  $: tick(() => {
    a = a + 1;
    $count += 1;
  });

  $: (async () => {
    console.log(a);
    // This rule checks caller function recursively.
    await doSomething_ng_1();
  })();

  const doSomething_ng_1 = async () => {
    a += 1;
    await fetchFromServer();
    doSomething_ng_2();
  };

  const doSomething_ng_2 = () => {
    a += 1;
  };
</script>
```

## :wrench: Options

Nothing.

## :books: Further Reading

- [Svelte - Docs > COMPONENT FORMAT > 3. $: marks a statement as reactive](https://svelte.dev/docs#component-format-script-3-$-marks-a-statement-as-reactive)
- [Svelte - Docs > COMPONENT FORMAT > 4. Prefix stores with $ to access their values](https://svelte.dev/docs#component-format-script-4-prefix-stores-with-$-to-access-their-values)

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v2.16.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/infinite-reactive-loop.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/infinite-reactive-loop.ts)


================================================
FILE: docs/rules/max-attributes-per-line.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/max-attributes-per-line'
description: 'enforce the maximum number of attributes per line'
since: 'v0.2.0'
---

# svelte/max-attributes-per-line

> enforce the maximum number of attributes per line

- :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.

## :book: Rule Details

Limits the maximum number of attributes/directives per line to improve readability.

This rule aims to enforce a number of attributes per line in templates.
It checks all the elements in a template and verifies that the number of attributes per line does not exceed the defined maximum.
An attribute is considered to be in a new line when there is a line break between two attributes.

There is a configurable number of attributes that are acceptable in one-line case (default 1), as well as how many attributes are acceptable per line in multi-line case (default 1).

<!-- prettier-ignore-start -->
<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/max-attributes-per-line: "error" */
</script>

<!-- ✓ GOOD -->
<input
  type="text"
  bind:value={text}
  {maxlength}
  {...attrs}
  readonly
  size="20"
/>
<button
  type="button"
  on:click={click}
  {maxlength}
  {...attrs}
  disabled
  data-my-data="foo"
/>

<!-- ✗ BAD -->
<input type="text" bind:value={text} {maxlength} {...attrs} readonly />
<button type="button" on:click={click} {maxlength} {...attrs}> CLICK ME! </button>
```

<!-- prettier-ignore-end -->

## :wrench: Options

```json
{
  "svelte/max-attributes-per-line": [
    "error",
    {
      "multiline": 1,
      "singleline": 1
    }
  ]
}
```

- `multiline` ... The number of maximum attributes per line when the opening tag is in multiple lines. Default is `1`.
- `singleline` ... The number of maximum attributes per line when the opening tag is in a single line. Default is `1`.

## :couple: Related Rules

- [svelte/first-attribute-linebreak]

[svelte/first-attribute-linebreak]: ./first-attribute-linebreak.md

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v0.2.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/max-attributes-per-line.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/max-attributes-per-line.ts)


================================================
FILE: docs/rules/max-lines-per-block.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/max-lines-per-block'
description: 'enforce maximum number of lines in svelte component blocks'
since: 'v3.16.0'
---

# svelte/max-lines-per-block

> enforce maximum number of lines in svelte component blocks

## :book: Rule Details

This rule enforces a maximum number of lines per block (`<script>`, `<style>`, or template) in Svelte single-file components, in order to aid in maintainability and reduce complexity.

ESLint's core `max-lines` rule counts all lines in a `.svelte` file including CSS in `<style>` blocks, which penalizes components for styling rather than logic complexity. This rule allows limiting each block independently — for example, enforcing script and template limits while leaving style unchecked.

## :bulb: Usage Example

If ESLint's `max-lines` rule triggers on your Svelte components because of large `<style>` blocks, you can replace it with this rule to check only the blocks that matter:

```jsonc
{
  // Before: counts ALL lines including CSS
  // "max-lines": ["error", { "max": 300 }]

  // After: only checks script and template, ignores style
  "svelte/max-lines-per-block": [
    "error",
    {
      "script": 300,
      "template": 200,
      "skipBlankLines": true,
      "skipComments": true
    }
  ]
}
```

## :wrench: Options

```json
{
  "svelte/max-lines-per-block": [
    "error",
    {
      "script": 300,
      "template": 400,
      "style": 500,
      "skipBlankLines": true,
      "skipComments": true
    }
  ]
}
```

- `script` ... Maximum number of inner lines in `<script>` blocks. Omit to skip checking.
- `template` ... Maximum number of lines in the template (markup) region. Lines inside `<script>`, `<style>`, and `<svelte:options>` are excluded. Omit to skip checking.
- `style` ... Maximum number of inner lines in `<style>` blocks. Omit to skip checking.
- `skipBlankLines` ... Ignore blank (whitespace-only) lines when counting. Default: `false`.
- `skipComments` ... Ignore comment lines when counting. Default: `false`.

Each block option is **optional**. If a block option is not specified, that block is not checked.

## :couple: Related Rules

- [ESLint core `max-lines`](https://eslint.org/docs/rules/max-lines)
- [vue/max-lines-per-block](https://eslint.vuejs.org/rules/max-lines-per-block)

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v3.16.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/max-lines-per-block.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/max-lines-per-block.ts)


================================================
FILE: docs/rules/mustache-spacing.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/mustache-spacing'
description: 'enforce unified spacing in mustache'
since: 'v0.15.0'
---

# svelte/mustache-spacing

> enforce unified spacing in mustache

- :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.

## :book: Rule Details

This rule aims at enforcing unified spacing in mustaches.

<!-- prettier-ignore-start -->
<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/mustache-spacing: "error" */
</script>

<!-- ✓ GOOD -->
{name}
<input bind:value={text} class="foo {bar}" />
<input {id} {...attrs} />
{@html page}
{@debug o1, o2}

{#if c1}...{:else if c2}...{:else}...{/if}

{#each list as item}...{/each}

{#await p}...{:then val}...{:catch err}...{/await}

{#key id}...{/key}

<!-- ✗ BAD -->
{ name }
<input bind:value={ text } class="foo { bar }" />
<input { id } { ...attrs } />
{ @html page }
{ @debug o1, o2 }

{ #if c1 }...{ :else if c2 }...{ :else }...{ /if }

{ #each list as item }...{ /each }

{ #await p }...{ :then val }...{ :catch err }...{ /await }

{ #key id }...{ /key }
```

<!-- prettier-ignore-end -->

## :wrench: Options

```json
{
  "svelte/mustache-spacing": [
    "error",
    {
      "textExpressions": "never", // or "always"
      "attributesAndProps": "never", // or "always"
      "directiveExpressions": "never", // or "always"
      "tags": {
        "openingBrace": "never", // or "always"
        "closingBrace": "never" // or "always" or "always-after-expression"
      }
    }
  ]
}
```

- `"never"` ... Expect no spaces between token and curly brackets. This is default.
- `"always"` ... Expect one space between token and curly brackets.
- `"always-after-expression"` ... Expect one space between expression and closing curly brackets, if the expression before the closing curly bracket.
- `textExpressions` ... Enforces the style of the mustache for the text expressions. e.g. `{text}`.
- `attributesAndProps` ... Enforces the style of the mustache for the attributes and props. e.g. `<input value={text}`.
- `directiveExpressions` ... Enforces the style of the mustache for the directive expressions. e.g. `<input bind:value={text}`.
- `tags` ... Enforces the style of the mustache for the mustache tags. e.g. `{#if condition}`.

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v0.15.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/mustache-spacing.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/mustache-spacing.ts)


================================================
FILE: docs/rules/no-add-event-listener.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-add-event-listener'
description: 'Warns against the use of `addEventListener`'
since: 'v3.6.0'
---

# svelte/no-add-event-listener

> Warns against the use of `addEventListener`

- :bulb: Some problems reported by this rule are manually fixable by editor [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions).

## :book: Rule Details

Svelte relies on event delegation for performance and predictable handler order. Calling `addEventListener` inside a component skips this mechanism. This rule reports any call to `addEventListener` suggests converting to the `on()` helper from `svelte/events`.

<!--eslint-skip-->

```svelte
<!-- ✓ GOOD -->
<script>
  /* eslint svelte/no-add-event-listener: "error" */
  on(window, 'resize', handler);
</script>
```

<!--eslint-skip-->

```svelte
<!-- ✗ BAD -->
<script>
  /* eslint svelte/no-add-event-listener: "error" */
  window.addEventListener('resize', handler);
</script>
```

## :books: Further reading

- [svelte - event delegation]
- [svelte/events `on` documentation]

[svelte - event delegation]: https://svelte.dev/docs/svelte/basic-markup#Events-Event-delegation
[svelte/events `on` documentation]: https://svelte.dev/docs/svelte/svelte-events#on

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v3.6.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-add-event-listener.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-add-event-listener.ts)


================================================
FILE: docs/rules/no-at-debug-tags.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-at-debug-tags'
description: 'disallow the use of `{@debug}`'
since: 'v0.0.1'
---

# svelte/no-at-debug-tags

> disallow the use of `{@debug}`

- :gear: This rule is included in `"plugin:svelte/recommended"`.
- :bulb: Some problems reported by this rule are manually fixable by editor [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions).

## :book: Rule Details

This rule reports all uses of `{@debug}`.

The `{@debug}` should be removed when you no longer need it after you use it for debugging.

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-at-debug-tags: "error" */
</script>

<!-- ✗ BAD -->
{@debug user}
{@debug user1, user2, user3}
{@debug}
```

## :wrench: Options

Nothing.

## :books: Further Reading

- [Svelte - Tutorial > 18. Debugging / The @debug tags](https://svelte.dev/tutorial/debug)

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v0.0.1

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-at-debug-tags.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-at-debug-tags.ts)


================================================
FILE: docs/rules/no-at-html-tags.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-at-html-tags'
description: 'disallow use of `{@html}` to prevent XSS attack'
since: 'v0.0.1'
---

# svelte/no-at-html-tags

> disallow use of `{@html}` to prevent XSS attack

- :gear: This rule is included in `"plugin:svelte/recommended"`.

## :book: Rule Details

This rule reports all uses of `{@html}` in order to reduce the risk of injecting potentially unsafe / unescaped html into the browser leading to Cross-Site Scripting (XSS) attacks.

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-at-html-tags: "error" */
</script>

<!-- ✓ GOOD -->
{foo}

<!-- ✗ BAD -->
{@html foo}
```

## :wrench: Options

Nothing.

## :mute: When Not To Use It

If you are certain the content passed to `{@html}` is sanitized HTML you can disable this rule.

## :books: Further Reading

- [Svelte - Tutorial > Basic Svelte / Introduction / HTML tags](https://svelte.dev/tutorial/svelte/html-tags)

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v0.0.1

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-at-html-tags.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-at-html-tags.ts)


================================================
FILE: docs/rules/no-dom-manipulating.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-dom-manipulating'
description: 'disallow DOM manipulating'
since: 'v2.13.0'
---

# svelte/no-dom-manipulating

> disallow DOM manipulating

- :gear: This rule is included in `"plugin:svelte/recommended"`.

## :book: Rule Details

In general, DOM manipulating should delegate to Svelte runtime. If you manipulate the DOM directly, the Svelte runtime may confuse because there is a difference between the actual DOM and the Svelte runtime's expected DOM.
Therefore this rule reports where you use DOM manipulating function.
We don't recommend but If you intentionally manipulate the DOM, simply you can ignore this ESLint report.

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-dom-manipulating: "error" */
  let foo, bar, show;

  /* ✓ GOOD */
  const toggle = () => (show = !show);

  /* ✗ BAD */
  const remove = () => foo.remove();
  const update = () => (bar.textContent = 'Update!');
</script>

{#if show}
  <div bind:this={foo}>Foo</div>
{/if}
<div bind:this={bar}>
  {#if show}
    Bar
  {/if}
</div>

<button on:click={() => toggle()}>Click Me (Good)</button>
<button on:click={() => remove()}>Click Me (Bad)</button>
<button on:click={() => update()}>Click Me (Bad)</button>
```

This rule only tracks and checks variables given with `bind:this={}`. In other words, it doesn't track things like function arguments given to `transition:` directives. These functions have been well tested and are often used more carefully.

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-dom-manipulating: "error" */
  let visible = false;

  function typewriter(node, { speed = 1 }) {
    const valid = node.childNodes.length === 1 && node.childNodes[0].nodeType === Node.TEXT_NODE;

    if (!valid) {
      throw new Error(`This transition only works on elements with a single text node child`);
    }

    const text = node.textContent;
    const duration = text.length / (speed * 0.01);

    return {
      duration,
      tick: (t) => {
        const i = Math.trunc(text.length * t);
        node.textContent = text.slice(0, i); // It does not report.
      }
    };
  }
</script>

<label>
  <input type="checkbox" bind:checked={visible} />
  visible
</label>

{#if visible}
  <p transition:typewriter>The quick brown fox jumps over the lazy dog</p>
{/if}
```

See also <https://svelte.dev/examples/custom-js-transitions>.

## :wrench: Options

Nothing.

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v2.13.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-dom-manipulating.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-dom-manipulating.ts)


================================================
FILE: docs/rules/no-dupe-else-if-blocks.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-dupe-else-if-blocks'
description: 'disallow duplicate conditions in `{#if}` / `{:else if}` chains'
since: 'v0.0.1'
---

# svelte/no-dupe-else-if-blocks

> disallow duplicate conditions in `{#if}` / `{:else if}` chains

- :gear: This rule is included in `"plugin:svelte/recommended"`.

## :book: Rule Details

This rule disallows duplicate conditions in the same `{#if}` / `{:else if}` chain.

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-dupe-else-if-blocks: "error" */
</script>

<!-- ✓ GOOD -->
{#if a}
  <div>foo</div>
{:else if b}
  <div>bar</div>
{:else if c}
  <div>baz</div>
{/if}

<!-- ✗ BAD -->
{#if a}
  <div>foo</div>
{:else if b}
  <div>bar</div>
{:else if b}
  <div>baz</div>
{/if}

{#if a}
  <div>foo</div>
{:else if b}
  <div>bar</div>
{:else}
  baz
  {#if b}
    <div>qux</div>
  {/if}
{/if}
```

This rule can also detect some cases where the conditions are not identical, but the branch can never execute due to the logic of `||` and `&&` operators.

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-dupe-else-if-blocks: "error" */
</script>

<!-- ✗ BAD -->
{#if a || b}
  1
{:else if a}
  2
{/if}

{#if a}
  1
{:else if b}
  2
{:else if a || b}
  3
{/if}

{#if a}
  1
{:else if a && b}
  2
{/if}

{#if a && b}
  1
{:else if a && b && c}
  2
{/if}

{#if a || b}
  1
{:else if b && c}
  2
{/if}

{#if a}
  1
{:else if b && c}
  2
{:else if d && ((c && e && b) || a)}
  3
{/if}
```

## :wrench: Options

Nothing.

## :couple: Related Rules

- [no-dupe-else-if]

[no-dupe-else-if]: https://eslint.org/docs/rules/no-dupe-else-if

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v0.0.1

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-dupe-else-if-blocks.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-dupe-else-if-blocks.ts)


================================================
FILE: docs/rules/no-dupe-on-directives.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-dupe-on-directives'
description: 'disallow duplicate `on:` directives'
since: 'v2.14.0'
---

# svelte/no-dupe-on-directives

> disallow duplicate `on:` directives

- :gear: This rule is included in `"plugin:svelte/recommended"`.

## :book: Rule Details

We can define any number of `on:` directive with the same event name, but duplicate directives with the exact same event name and expression are probably a mistake.
This rule reports reports `on:` directives with exactly the same event name and expression.

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-dupe-on-directives: "error" */
</script>

<!-- ✓ GOOD -->
<button on:click on:click={myHandler} />
<button on:click={foo} on:click={bar} />

<!-- ✗ BAD -->
<button on:click on:click />
<button on:click={myHandler} on:click={myHandler} />

<input
  on:focus|once
  on:focus
  on:keydown={() => console.log('foo')}
  on:keydown={() => console.log('foo')}
/>
```

## :wrench: Options

Nothing.

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v2.14.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-dupe-on-directives.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-dupe-on-directives.ts)


================================================
FILE: docs/rules/no-dupe-style-properties.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-dupe-style-properties'
description: 'disallow duplicate style properties'
since: 'v0.31.0'
---

# svelte/no-dupe-style-properties

> disallow duplicate style properties

- :gear: This rule is included in `"plugin:svelte/recommended"`.

## :book: Rule Details

This rule reports duplicate style properties.

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-dupe-style-properties: "error" */
  let red = 'red';
</script>

<!-- ✓ GOOD -->
<div style="background: green; background-color: {red};">...</div>
<div style:background="green" style="background-color: {red}">...</div>

<!-- ✗ BAD -->
<div style="background: green; background: {red};">...</div>
<div style:background="green" style="background: {red}">...</div>
```

## :wrench: Options

Nothing.

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v0.31.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-dupe-style-properties.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-dupe-style-properties.ts)


================================================
FILE: docs/rules/no-dupe-use-directives.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-dupe-use-directives'
description: 'disallow duplicate `use:` directives'
since: 'v2.14.0'
---

# svelte/no-dupe-use-directives

> disallow duplicate `use:` directives

- :gear: This rule is included in `"plugin:svelte/recommended"`.

## :book: Rule Details

We can define any number of `use:` directive with the same action, but duplicate directives with the exact same action and expression are probably a mistake.
This rule reports reports `use:` directives with exactly the same action and expression.

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-dupe-use-directives: "error" */
</script>

<!-- ✓ GOOD -->
<div use:clickOutside use:clickOutside={param} />
<div use:clickOutside={foo} use:clickOutside={bar} />

<!-- ✗ BAD -->
<div use:clickOutside use:clickOutside />
<div use:clickOutside={param} use:clickOutside={param} />
```

## :wrench: Options

Nothing.

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v2.14.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-dupe-use-directives.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-dupe-use-directives.ts)


================================================
FILE: docs/rules/no-dynamic-slot-name.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-dynamic-slot-name'
description: 'disallow dynamic slot name'
since: 'v0.14.0'
---

# svelte/no-dynamic-slot-name

> disallow dynamic slot name

- :warning: This rule was **deprecated**. Now Svelte compiler itself throws an compile error.
- :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.

## :book: Rule Details

This rule reports the dynamically specified `<slot>` name.\
Dynamic `<slot>` names are not allowed in Svelte, so you must use static names.

The auto-fix of this rule can be replaced with a static `<slot>` name if the expression given to the `<slot>` name is static and resolvable.

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-dynamic-slot-name: "error" */
  const SLOT_NAME = 'bad';
</script>

<!-- ✓ GOOD -->
<slot name="good" />

<!-- ✗ BAD -->
<slot name={SLOT_NAME} />
```

## :wrench: Options

Nothing.

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v0.14.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-dynamic-slot-name.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-dynamic-slot-name.ts)


================================================
FILE: docs/rules/no-export-load-in-svelte-module-in-kit-pages.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-export-load-in-svelte-module-in-kit-pages'
description: 'disallow exporting load functions in `*.svelte` module in SvelteKit page components.'
since: 'v2.12.0'
---

# svelte/no-export-load-in-svelte-module-in-kit-pages

> disallow exporting load functions in `*.svelte` module in SvelteKit page components.

- :gear: This rule is included in `"plugin:svelte/recommended"`.

## :book: Rule Details

This rule reports unexpected exported `load` function at `<script context="module">`.
At SvelteKit v1.0.0-next.405, `load` function has been moved into a separate file — `+page.js` for pages, `+layout.js` for layouts.
And the API has changed.

<!--eslint-skip-->

```svelte
<script context="module">
  /* eslint svelte/no-export-load-in-svelte-module-in-kit-pages: "error" */
  /* ✓ GOOD  */
  export function foo() {}
  export function bar() {}
  /* ✗ BAD  */
  export function load() {}
  // export const load = () => {}
</script>
```

## :wrench: Options

Nothing. But if you are not using the default routes folder, please set configuration according to the [user guide](../user-guide.md#settings-svelte).

## :books: Further Reading

- [SvelteKit Migration Guide (v1.0.0-next.405)](https://github.com/sveltejs/kit/discussions/5774#discussioncomment-3292693)

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v2.12.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-export-load-in-svelte-module-in-kit-pages.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-export-load-in-svelte-module-in-kit-pages.ts)


================================================
FILE: docs/rules/no-extra-reactive-curlies.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-extra-reactive-curlies'
description: 'disallow wrapping single reactive statements in curly braces'
since: 'v2.4.0'
---

# svelte/no-extra-reactive-curlies

> disallow wrapping single reactive statements in curly braces

- :bulb: Some problems reported by this rule are manually fixable by editor [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions).

## :book: Rule Details

This rule reports if curly brackets (`{` and `}`) are used unnecessarily around a reactive statement body containing only a single expression.

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-extra-reactive-curlies: "error" */

  /* ✓ GOOD */
  $: foo = 'red';

  /* ✗ BAD */
  $: {
    foo = 'red';
  }
</script>
```

## :wrench: Options

Nothing.

## :heart: Compatibility

This rule was taken from [@tivac/eslint-plugin-svelte].\
This rule is compatible with `@tivac/svelte/reactive-curlies` rule.

[@tivac/eslint-plugin-svelte]: https://github.com/tivac/eslint-plugin-svelte/

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v2.4.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-extra-reactive-curlies.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-extra-reactive-curlies.ts)


================================================
FILE: docs/rules/no-goto-without-base.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-goto-without-base'
description: 'disallow using goto() without the base path'
since: 'v2.36.0-next.9'
---

# svelte/no-goto-without-base

> disallow using goto() without the base path

- :warning: This rule was **deprecated** and replaced by [svelte/no-navigation-without-resolve](no-navigation-without-resolve.md) rule.

## :book: Rule Details

This rule reports navigation using SvelteKit's `goto()` function without prefixing a relative URL with the base path. If a non-prefixed relative URL is used for navigation, the `goto` function navigates away from the base path, which is usually not what you wanted to do (for external URLs, `window.location = url` should be used instead).

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-goto-without-base: "error" */

  import { goto } from '$app/navigation';
  import { base } from '$app/paths';
  import { base as baseAlias } from '$app/paths';

  // ✓ GOOD
  goto(base + '/foo/');
  goto(`${base}/foo/`);

  goto(baseAlias + '/foo/');
  goto(`${baseAlias}/foo/`);

  goto('https://localhost/foo/');

  // ✗ BAD
  goto('/foo');

  goto('/foo/' + base);
  goto(`/foo/${base}`);
</script>
```

## :wrench: Options

Nothing.

## :books: Further Reading

- [`goto()` documentation](https://kit.svelte.dev/docs/modules#$app-navigation-goto)
- [`base` documentation](https://kit.svelte.dev/docs/modules#$app-paths-base)

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v2.36.0-next.9

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-goto-without-base.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-goto-without-base.ts)


================================================
FILE: docs/rules/no-ignored-unsubscribe.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-ignored-unsubscribe'
description: 'disallow ignoring the unsubscribe method returned by the `subscribe()` on Svelte stores.'
since: 'v2.34.0'
---

# svelte/no-ignored-unsubscribe

> disallow ignoring the unsubscribe method returned by the `subscribe()` on Svelte stores.

## :book: Rule Details

This rule fails if an "unsubscriber" returned by call to `subscribe()` is neither assigned to a variable or property or passed to a function.

One should always unsubscribe from a store when it is no longer needed. Otherwise, the subscription will remain active and constitute a **memory leak**.
This rule helps to find such cases by ensuring that the unsubscriber (the return value from the store's `subscribe` method) is not ignored.

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-ignored-unsubscribe: "error" */

  import myStore from './my-stores';

  /* ✓ GOOD */
  const unsubscribe = myStore.subscribe(() => {});

  /* ✗ BAD */
  myStore.subscribe(() => {});
</script>
```

## :wrench: Options

Nothing.

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v2.34.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-ignored-unsubscribe.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-ignored-unsubscribe.ts)


================================================
FILE: docs/rules/no-immutable-reactive-statements.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-immutable-reactive-statements'
description: "disallow reactive statements that don't reference reactive values."
since: 'v2.27.0'
---

# svelte/no-immutable-reactive-statements

> disallow reactive statements that don't reference reactive values.

- :gear: This rule is included in `"plugin:svelte/recommended"`.

## :book: Rule Details

This rule reports if all variables referenced in reactive statements are immutable. That reactive statement is immutable and not reactive.

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-immutable-reactive-statements: "error" */
  import myStore from './my-stores';
  import myVar from './my-variables';
  let mutableVar = 'hello';
  export let prop;
  /* ✓ GOOD */
  $: computed1 = mutableVar + ' ' + mutableVar;
  $: computed2 = fn1(mutableVar);
  $: console.log(mutableVar);
  $: console.log(computed1);
  $: console.log($myStore);
  $: console.log(prop);

  const immutableVar = 'hello';
  /* ✗ BAD */
  $: computed3 = fn1(immutableVar);
  $: computed4 = fn2();
  $: console.log(immutableVar);
  $: console.log(myVar);

  /* ignore */
  $: console.log(unknown);

  function fn1(v) {
    return v + ' ' + v;
  }
  function fn2() {
    return mutableVar + ' ' + mutableVar;
  }
</script>

<input bind:value={mutableVar} />
```

## :wrench: Options

Nothing.

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v2.27.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-immutable-reactive-statements.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-immutable-reactive-statements.ts)


================================================
FILE: docs/rules/no-inline-styles.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-inline-styles'
description: 'disallow attributes and directives that produce inline styles'
since: 'v2.35.0'
---

# svelte/no-inline-styles

> disallow attributes and directives that produce inline styles

## :book: Rule Details

This rule reports all attributes and directives that would compile to inline styles. This is mainly useful when adding Content Security Policy to your app, as having inline styles requires the `style-src: 'unsafe-inline'` directive, which is generally discouraged and unsafe.

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-inline-styles: "error" */

  import { fade } from 'svelte/transition';

  export let classTwo;
  export let blockDisplay;
</script>

<!-- ✓ GOOD -->
<span class="one">Hello World!</span>

<span class:two={classTwo}>Hello World!</span>

<!-- ✗ BAD -->
<span style="display: block;">Hello World!</span>

<span style:display={blockDisplay ? 'block' : 'inline'}>Hello World!</span>

<span transition:fade>Hello World!</span>
```

## :wrench: Options

```json
{
  "svelte/no-inline-styles": [
    "error",
    {
      "allowTransitions": true
    }
  ]
}
```

- `allowTransitions` ... Some svelte transitions (including the built-in ones in Svelte 4 and older) use inline styles. This option allows transitions to be used. Default `true`.

## :books: Further Reading

- [CSP documentation](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP)

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v2.35.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-inline-styles.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-inline-styles.ts)


================================================
FILE: docs/rules/no-inner-declarations.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-inner-declarations'
description: 'disallow variable or `function` declarations in nested blocks'
since: 'v0.0.8'
---

# svelte/no-inner-declarations

> disallow variable or `function` declarations in nested blocks

- :gear: This rule is included in `"plugin:svelte/recommended"`.

## :book: Rule Details

This rule requires that function declarations and, optionally, variable declarations be in the root of a program or the body of a function.

This rule extends the base ESLint's [no-inner-declarations] rule. The AST generated by [svelte-eslint-parser] will false positives in [no-inner-declarations] rule because the root node of the script is not the `Program`.\
This rule supports [svelte-eslint-parser]'s AST.

[svelte-eslint-parser]: https://github.com/sveltejs/svelte-eslint-parser

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-inner-declarations: ["error", "functions", { blockScopedFunctions: "disallow" }] */

  /* ✓ GOOD */
  function doSomething() {}

  function doSomethingElse() {
    function doAnotherThing() {}
  }

  /* ✗ BAD */
  if (test) {
    function doSomethingBad() {}
  }
</script>
```

## :wrench: Options

```json
{
  "svelte/no-inner-declarations": [
    "error",
    "functions", // or "both"
    {
      "blockScopedFunctions": "allow" // or "disallow"
    }
  ]
}
```

Same as [no-inner-declarations] rule option. See [here](https://eslint.org/docs/rules/no-inner-declarations#options) for details.

## :couple: Related rules

- [no-inner-declarations]

[no-inner-declarations]: https://eslint.org/docs/rules/no-inner-declarations

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v0.0.8

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-inner-declarations.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-inner-declarations.ts)

<sup>Taken with ❤️ [from ESLint core](https://eslint.org/docs/rules/no-inner-declarations)</sup>


================================================
FILE: docs/rules/no-inspect.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-inspect'
description: 'Warns against the use of `$inspect` directive'
since: 'v2.45.0'
---

# svelte/no-inspect

> Warns against the use of `$inspect` directive

- :gear: This rule is included in `"plugin:svelte/recommended"`.

## :book: Rule Details

This rule reports usages of `$inspect`.

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-inspect: "error" */
  // ✗ BAD
  $inspect(1);
</script>
```

## :wrench: Options

Nothing.

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v2.45.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-inspect.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-inspect.ts)


================================================
FILE: docs/rules/no-navigation-without-base.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-navigation-without-base'
description: 'disallow using navigation (links, goto, pushState, replaceState) without the base path'
since: 'v2.36.0-next.9'
---

# svelte/no-navigation-without-base

> disallow using navigation (links, goto, pushState, replaceState) without the base path

- :warning: This rule was **deprecated** and replaced by [svelte/no-navigation-without-resolve](no-navigation-without-resolve.md) rule.

## :book: Rule Details

This rule reports navigation using HTML `<a>` tags, SvelteKit's `goto()`, `pushState()` and `replaceState()` functions without prefixing a relative URL with the base path. All four of these may be used for navigation, with `goto()`, `pushState()` and `replaceState()` being intended solely for internal navigation (i.e. not leaving the site), while `<a>` tags may be used for both internal and external navigation. When using any way of internal navigation, the base path must be prepended, otherwise the site may break. For programmatic navigation to external URLs, using `window.location` is advised.

This rule checks all 4 navigation options for the presence of the base path, with an exception for `<a>` links to absolute URLs, which are assumed to be used for external navigation and so do not require the base path, and for shallow routing functions with an empty string as the path, which keeps the current URL.

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-navigation-without-base: "error" */

  import { goto, pushState, replaceState } from '$app/navigation';
  import { base } from '$app/paths';

  // ✓ GOOD
  goto(base + '/foo/');
  goto(`${base}/foo/`);

  pushState(base + '/foo/', {});
  pushState(`${base}/foo/`, {});
  pushState('', {});

  replaceState(base + '/foo/', {});
  replaceState(`${base}/foo/`, {});
  replaceState('', {});

  // ✗ BAD
  goto('/foo');
  goto('/foo/' + base);

  pushState('/foo', {});
  replaceState('/foo', {});
</script>

<!-- ✓ GOOD -->
<a href={base + '/foo/'}>Click me!</a>
<a href={`${base}/foo/`}>Click me!</a>
<a href="https://svelte.dev">Click me!</a>

<!-- ✗ BAD -->
<a href="/foo">Click me!</a>
<a href={'/foo'}>Click me!</a>
```

## :wrench: Options

```json
{
  "svelte/no-navigation-without-base": [
    "error",
    {
      "ignoreGoto": false,
      "ignoreLinks": false,
      "ignorePushState": false,
      "ignoreReplaceState": false
    }
  ]
}
```

- `ignoreGoto` ... Whether to ignore all `goto()` calls. Default `false`.
- `ignoreLinks` ... Whether to ignore all `<a>` tags. Default `false`.
- `ignorePushState` ... Whether to ignore all `pushState()` calls. Default `false`.
- `ignoreReplaceState` ... Whether to ignore all `replaceState()` calls. Default `false`.

## :books: Further Reading

- [`base` documentation](https://svelte.dev/docs/kit/$app-paths#base)
- [Shallow routing](https://svelte.dev/docs/kit/shallow-routing)
- [`goto()` documentation](https://svelte.dev/docs/kit/$app-navigation#goto)
- [`pushState()` documentation](https://svelte.dev/docs/kit/$app-navigation#pushState)
- [`replaceState()` documentation](https://svelte.dev/docs/kit/$app-navigation#replaceState)

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v2.36.0-next.9

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-navigation-without-base.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-navigation-without-base.ts)


================================================
FILE: docs/rules/no-navigation-without-resolve.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-navigation-without-resolve'
description: 'disallow internal navigation (links, `goto()`, `pushState()`, `replaceState()`) without a `resolve()`'
since: 'v3.12.0'
---

# svelte/no-navigation-without-resolve

> disallow internal navigation (links, `goto()`, `pushState()`, `replaceState()`) without a `resolve()`

- :gear: This rule is included in `"plugin:svelte/recommended"`.

## :book: Rule Details

This rule ensures internal navigation via HTML `<a>` tags, SvelteKit's `goto()`, `pushState()` and `replaceState()` uses `resolve()`. `<a>` tags will skip this check when it has an absolute URL or `rel="external"`. For programmatic external navigation, use `window.location`. Enforcing this rule ensures the base path is prefixed and internal links are type-checked.

<!--eslint-skip-->

```svelte
<!-- ✓ GOOD -->
<script>
  /* eslint svelte/no-navigation-without-resolve: "error" */

  import { goto, pushState, replaceState } from '$app/navigation';
  import { resolve } from '$app/paths';

  goto(resolve('/foo/'));
  pushState(resolve('/foo/'), {});
  replaceState(resolve('/foo/'), {});

  // shallow routing
  pushState('', {});
  replaceState('', {});
</script>

<a href={resolve('/foo/')}>Click me!</a>
<a href="https://svelte.dev">Click me!</a>
<a href={someURL} rel="external">Click me!</a>
<a href="#top">Click me!</a>
```

```svelte
<!-- ✗ BAD -->
<script>
  /* eslint svelte/no-navigation-without-resolve: "error" */

  import { goto, pushState, replaceState } from '$app/navigation';
  import { resolve } from '$app/paths';

  goto('/foo');
  goto('/foo' + resolve('/bar'));
  goto(resolve('/foo') + '/bar');

  pushState('/foo', {});
  replaceState('/foo', {});
</script>

<a href="/foo">Click me!</a>
<a href={'/foo'}>Click me!</a>
```

## :wrench: Options

```json
{
  "svelte/no-navigation-without-resolve": [
    "error",
    {
      "ignoreGoto": false,
      "ignoreLinks": false,
      "ignorePushState": false,
      "ignoreReplaceState": false
    }
  ]
}
```

- `ignoreGoto` ... Whether to ignore all `goto()` calls. Default `false`.
- `ignoreLinks` ... Whether to ignore all `<a>` tags. Default `false`.
- `ignorePushState` ... Whether to ignore all `pushState()` calls. Default `false`.
- `ignoreReplaceState` ... Whether to ignore all `replaceState()` calls. Default `false`.

## :books: Further Reading

- [`resolve()` documentation](https://svelte.dev/docs/kit/$app-paths#resolve)
- [Shallow routing](https://svelte.dev/docs/kit/shallow-routing)
- [`goto()` documentation](https://svelte.dev/docs/kit/$app-navigation#goto)
- [`pushState()` documentation](https://svelte.dev/docs/kit/$app-navigation#pushState)
- [`replaceState()` documentation](https://svelte.dev/docs/kit/$app-navigation#replaceState)

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v3.12.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-navigation-without-resolve.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-navigation-without-resolve.ts)


================================================
FILE: docs/rules/no-not-function-handler.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-not-function-handler'
description: 'disallow use of not function in event handler'
since: 'v0.5.0'
---

# svelte/no-not-function-handler

> disallow use of not function in event handler

- :gear: This rule is included in `"plugin:svelte/recommended"`.

## :book: Rule Details

This rule reports where you used not function value in event handlers.\
If you use a non-function value for the event handler, it event handler will not be called. It's almost always a mistake. You may have written a lot of unnecessary curly braces.

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-not-function-handler: "error" */
  function foo() {
    /*  */
  }
  const bar = 42;
</script>

<!-- ✓ GOOD -->
<button onclick={foo} />
<button
  onclick={() => {
    /*  */
  }}
/>

<!-- ✗ BAD -->
<button onclick={{ foo }} />
<button onclick={bar} />
```

## :wrench: Options

Nothing.

## :couple: Related Rules

- [svelte/no-object-in-text-mustaches]

[svelte/no-object-in-text-mustaches]: ./no-object-in-text-mustaches.md

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v0.5.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-not-function-handler.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-not-function-handler.ts)


================================================
FILE: docs/rules/no-object-in-text-mustaches.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-object-in-text-mustaches'
description: 'disallow objects in text mustache interpolation'
since: 'v0.5.0'
---

# svelte/no-object-in-text-mustaches

> disallow objects in text mustache interpolation

- :gear: This rule is included in `"plugin:svelte/recommended"`.

## :book: Rule Details

This rule disallows the use of objects in text mustache interpolation.\
When you use an object for text interpolation, it is drawn as `[object Object]`. It's almost always a mistake. You may have written a lot of unnecessary curly braces.

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-object-in-text-mustaches: "error" */
</script>

<!-- ✓ GOOD -->
{foo}
<input class="{foo} bar" />
<MyComponent prop={{ foo }} />

<!-- ✗ BAD -->
{{ foo }}
<input class="{{ foo }} bar" />
```

## :wrench: Options

Nothing.

## :couple: Related Rules

- [svelte/no-not-function-handler]

[svelte/no-not-function-handler]: ./no-not-function-handler.md

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v0.5.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-object-in-text-mustaches.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-object-in-text-mustaches.ts)


================================================
FILE: docs/rules/no-raw-special-elements.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-raw-special-elements'
description: 'Checks for invalid raw HTML elements'
since: 'v3.0.0-next.1'
---

# svelte/no-raw-special-elements

> Checks for invalid raw HTML elements

- :gear: This rule is included in `"plugin:svelte/recommended"`.
- :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.

## :book: Rule Details

This rule reports the usage of `head`, `body`, `window`, `document`, `element` and `options` HTML elements. These elements are not valid in Svelte, despite them working in versions previous to v5. Such elements must be prefixed with `svelte:`.

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-raw-special-elements: "error" */
</script>

<!-- ✓ GOOD -->
<svelte:head>
  <title>Valid</title>
</svelte:head>

<!-- ✗ BAD -->
<head>
  <title>Invalid</title>
</head>
```

## :wrench: Options

Nothing.

## :books: Further Reading

- See special elements section in [Svelte docs](https://svelte.dev/docs/svelte/svelte-window)

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v3.0.0-next.1

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-raw-special-elements.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-raw-special-elements.ts)


================================================
FILE: docs/rules/no-reactive-functions.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-reactive-functions'
description: "it's not necessary to define functions in reactive statements"
since: 'v2.5.0'
---

# svelte/no-reactive-functions

> it's not necessary to define functions in reactive statements

- :gear: This rule is included in `"plugin:svelte/recommended"`.
- :bulb: Some problems reported by this rule are manually fixable by editor [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions).

## :book: Rule Details

This rule reports whenever a function is defined in a reactive statement. This isn't necessary, as each time the function is executed it'll already have access to the latest values necessary. Redefining the function in the reactive statement is just a waste of CPU cycles.

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-reactive-functions: "error" */

  /* ✓ GOOD */
  const arrowFn = () => {
    /* ... */
  };
  const func = function () {
    /* ... */
  };

  /* ✗ BAD */
  $: arrowFn = () => {
    /* ... */
  };
  $: func = function () {
    /* ... */
  };
</script>
```

## :wrench: Options

Nothing

## :heart: Compatibility

This rule was taken from [@tivac/eslint-plugin-svelte].\
This rule is compatible with `@tivac/svelte/reactive-functions` rule.

[@tivac/eslint-plugin-svelte]: https://github.com/tivac/eslint-plugin-svelte/

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v2.5.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-reactive-functions.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-reactive-functions.ts)


================================================
FILE: docs/rules/no-reactive-literals.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-reactive-literals'
description: "don't assign literal values in reactive statements"
since: 'v2.4.0'
---

# svelte/no-reactive-literals

> don't assign literal values in reactive statements

- :gear: This rule is included in `"plugin:svelte/recommended"`.
- :bulb: Some problems reported by this rule are manually fixable by editor [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions).

## :book: Rule Details

This rule reports on any assignment of a static, unchanging value within a reactive statement because it's not necessary.

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-reactive-literals: "error" */
  /* ✓ GOOD */
  let foo = 'bar';

  /* ✗ BAD */
  $: foo = 'bar';
</script>
```

## :wrench: Options

Nothing.

## :heart: Compatibility

This rule was taken from [@tivac/eslint-plugin-svelte].\
This rule is compatible with `@tivac/svelte/reactive-literals` rule.

[@tivac/eslint-plugin-svelte]: https://github.com/tivac/eslint-plugin-svelte/

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v2.4.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-reactive-literals.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-reactive-literals.ts)


================================================
FILE: docs/rules/no-reactive-reassign.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-reactive-reassign'
description: 'disallow reassigning reactive values'
since: 'v2.27.0'
---

# svelte/no-reactive-reassign

> disallow reassigning reactive values

- :gear: This rule is included in `"plugin:svelte/recommended"`.

## :book: Rule Details

This rule aims to prevent unintended behavior caused by modification or reassignment of reactive values.

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-reactive-reassign: "error" */
  let value = 0;
  $: reactiveValue = value * 2;

  function handleClick() {
    /* ✓ GOOD */
    value++;
    /* ✗ BAD */
    reactiveValue = value * 3;
    reactiveValue++;
  }
</script>

<!-- ✓ GOOD -->
<input type="number" bind:value />
<!-- ✗ BAD -->
<input type="number" bind:value={reactiveValue} />
```

## :wrench: Options

```json
{
  "svelte/no-reactive-reassign": [
    "error",
    {
      "props": true
    }
  ]
}
```

- `props` ... If set to `true`, this rule warns against the modification of reactive value properties. Default is `true`.

### `{ "props": true }`

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-reactive-reassign: ["error", { "props": true }] */
  let value = 0;
  $: reactiveValue = { value: value * 2 };

  function handleClick() {
    /* ✓ GOOD */
    value++;
    /* ✗ BAD */
    reactiveValue.value++;
    reactiveValue = { value: reactiveValue.value + 1 };
  }
</script>

<!-- ✓ GOOD -->
<input type="number" bind:value />
<!-- ✗ BAD -->
<input type="number" bind:value={reactiveValue.value} />
<MyComponent bind:objectValue={reactiveValue} />
```

### `{ "props": false }`

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-reactive-reassign: ["error", { "props": false }] */
  let value = 0;
  $: reactiveValue = { value: value * 2 };

  function handleClick() {
    /* ✓ GOOD */
    value++;
    /* OK */
    reactiveValue.value++;
    /* ✗ BAD */
    reactiveValue = { value: reactiveValue.value + 1 };
  }
</script>

<!-- ✓ GOOD -->
<input type="number" bind:value />
<!-- OK -->
<input type="number" bind:value={reactiveValue.value} />
<!-- ✗ BAD -->
<MyComponent bind:objectValue={reactiveValue} />
```

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v2.27.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-reactive-reassign.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-reactive-reassign.ts)


================================================
FILE: docs/rules/no-restricted-html-elements.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-restricted-html-elements'
description: 'disallow specific HTML elements'
since: 'v2.31.0'
---

# svelte/no-restricted-html-elements

> disallow specific HTML elements

## :book: Rule Details

This rule reports to usage of resticted HTML elements.

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-restricted-html-elements: ["error", "h1", "h2", "h3", "h4", "h5", "h6"] */
</script>

<!-- ✓ GOOD -->
<div>
  <p>Hi!</p>
</div>

<!-- ✗ BAD -->
<h1>foo</h1>

<div>
  <h2>bar</h2>
</div>
```

---

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-restricted-html-elements: ["error", { "elements": ["marquee"], "message": "Do not use deprecated HTML tags" }] */
</script>

<!-- ✓ GOOD -->
<div>
  <p>Hi!</p>
</div>

<!-- ✗ BAD -->
<marquee>foo</marquee>

<div>
  <marquee>bar</marquee>
</div>
```

## :wrench: Options

This rule takes a list of strings, where each string is an HTML element name to be restricted:

```json
{
  "svelte/no-restricted-html-elements": ["error", "h1", "h2", "h3", "h4", "h5", "h6"]
}
```

Alternatively, the rule also accepts objects.

```json
{
  "svelte/no-restricted-html-elements": [
    "error",
    {
      "elements": ["h1", "h2", "h3", "h4", "h5", "h6"],
      "message": "Prefer use of our custom <Heading /> component"
    },
    {
      "elements": ["marquee"],
      "message": "Do not use deprecated HTML tags"
    }
  ]
}
```

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v2.31.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-restricted-html-elements.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-restricted-html-elements.ts)


================================================
FILE: docs/rules/no-shorthand-style-property-overrides.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-shorthand-style-property-overrides'
description: 'disallow shorthand style properties that override related longhand properties'
since: 'v0.31.0'
---

# svelte/no-shorthand-style-property-overrides

> disallow shorthand style properties that override related longhand properties

- :gear: This rule is included in `"plugin:svelte/recommended"`.

## :book: Rule Details

This rule reports when a shorthand style property overrides a previously defined longhand property.

This rule was inspired by [Stylelint's declaration-block-no-shorthand-property-overrides rule](https://stylelint.io/user-guide/rules/list/declaration-block-no-shorthand-property-overrides/).

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-shorthand-style-property-overrides: "error" */
  let red = 'red';
</script>

<!-- ✓ GOOD -->
<div style:background-repeat="repeat" style:background-color="green">...</div>
<div style="background-repeat: repeat; background-color: {red};">...</div>
<div style:background-repeat="repeat" style="background-color: {red}">...</div>

<!-- ✗ BAD -->
<div style:background-repeat="repeat" style:background="green">...</div>
<div style="background-repeat: repeat; background: {red};">...</div>
<div style:background-repeat="repeat" style="background: {red}">...</div>
```

## :wrench: Options

Nothing.

## :books: Further reading

- [Stylelint - declaration-block-no-shorthand-property-overrides]

[stylelint - declaration-block-no-shorthand-property-overrides]: https://stylelint.io/user-guide/rules/list/declaration-block-no-shorthand-property-overrides/

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v0.31.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-shorthand-style-property-overrides.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-shorthand-style-property-overrides.ts)


================================================
FILE: docs/rules/no-spaces-around-equal-signs-in-attribute.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-spaces-around-equal-signs-in-attribute'
description: 'disallow spaces around equal signs in attribute'
since: 'v2.3.0'
---

# svelte/no-spaces-around-equal-signs-in-attribute

> disallow spaces around equal signs in attribute

- :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.

## :book: Rule Details

This rule disallows spaces around equal signs in attributes

<!-- prettier-ignore-start -->
<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-spaces-around-equal-signs-in-attribute: "error" */
</script>

<!-- ✓ GOOD -->
<div class=""/>
<p style="color: red;">hi</p>
<img src="img.png" alt="A photo of a very cute {animal}">

<!-- ✗ BAD -->
<div class = ""/>
<p style ="color: red;">hi</p>
<img src
    =
    "img.png" alt   = "A photo of a very cute {animal}">
```

<!-- prettier-ignore-end -->

## :wrench: Options

Nothing.

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v2.3.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-spaces-around-equal-signs-in-attribute.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-spaces-around-equal-signs-in-attribute.ts)


================================================
FILE: docs/rules/no-store-async.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-store-async'
description: 'disallow using async/await inside svelte stores because it causes issues with the auto-unsubscribing features'
since: 'v2.7.0'
---

# svelte/no-store-async

> disallow using async/await inside svelte stores because it causes issues with the auto-unsubscribing features

- :gear: This rule is included in `"plugin:svelte/recommended"`.

## :book: Rule Details

This rule reports all uses of async/await inside svelte stores.
Because it causes issues with the auto-unsubscribing features.

<!--eslint-skip-->

```js
/* eslint svelte/no-store-async: "error" */

import { writable, readable, derived } from 'svelte/store';

/* ✓ GOOD */
const w1 = writable(false, () => {});
const r1 = readable(false, () => {});
const d1 = derived(a1, ($a1) => {});

/* ✗ BAD */
const w2 = writable(false, async () => {});
const r2 = readable(false, async () => {});
const d2 = derived(a1, async ($a1) => {});
```

## :wrench: Options

Nothing.

## :books: Further Reading

- [Svelte - Docs > 4. Prefix stores with $ to access their values / Store contract](https://svelte.dev/docs#component-format-script-4-prefix-stores-with-$-to-access-their-values-store-contract)

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v2.7.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-store-async.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-store-async.ts)


================================================
FILE: docs/rules/no-svelte-internal.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-svelte-internal'
description: 'svelte/internal will be removed in Svelte 6.'
since: 'v2.39.0'
---

# svelte/no-svelte-internal

> svelte/internal will be removed in Svelte 6.

- :gear: This rule is included in `"plugin:svelte/recommended"`.

## :book: Rule Details

This rule reports the use of the deprecated API `svelte/internal` and `svelte/internal/xxx`. `svelte/internal` is deprecated in Svelte 5. And it will be deleted in Svelte 6. These APIs can change in breaking ways at any time without notice.

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-svelte-internal: "error" */
  // ✓ GOOD
  import { mount } from 'svelte';

  // ✗ BAD
  import { get_current_component } from 'svelte/internal';
  import { inspect } from 'svelte/internal/client';
  import('svelte/internal');
  import('svelte/internal/disclose-version');

  export * from 'svelte/internal';
  export { listen } from 'svelte/internal';
  export * from 'svelte/internal/server';
</script>
```

## :wrench: Options

Nothing.

## :books: Further Reading

<!--TODO: update here when relevant statements are added in Svelte 5 documentation -->

Nothing.

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v2.39.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-svelte-internal.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-svelte-internal.ts)


================================================
FILE: docs/rules/no-target-blank.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-target-blank'
description: 'disallow `target="_blank"` attribute without `rel="noopener noreferrer"`'
since: 'v0.0.4'
---

# svelte/no-target-blank

> disallow `target="_blank"` attribute without `rel="noopener noreferrer"`

## :book: Rule Details

This rule disallows using `target="_blank"` attribute without `rel="noopener noreferrer"` to avoid a security vulnerability in legacy browsers where a page can trigger a navigation in the opener regardless of origin ([see here for more details](https://mathiasbynens.github.io/rel-noopener/)).

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-target-blank: "error" */
</script>

<!-- ✓ GOOD -->
<a href="http://example.com" target="_blank" rel="noopener noreferrer">link</a>

<!-- ✗ BAD -->
<a href="http://example.com" target="_blank">link</a>
```

## :wrench: Options

```json
{
  "svelte/no-target-blank": [
    "error",
    {
      "allowReferrer": true,
      "enforceDynamicLinks": "always"
    }
  ]
}
```

- `allowReferrer` ... If `true`, allows the `Referrer` header to be sent by not requiring `noreferrer` to be present. default `false`
- `enforceDynamicLinks ("always" | "never")` ... If `always`, enforces the rule if the href is a dynamic link. default `always`

### `{ allowReferrer: false }` (default)

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-target-blank: ['error', { allowReferrer: false }] */
</script>

<!-- ✓ GOOD -->
<a href="http://example.com" target="_blank" rel="noopener noreferrer">link</a>

<!-- ✗ BAD -->
<a href="http://example.com" target="_blank" rel="noopener">link</a>
```

### `{ allowReferrer: true }`

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-target-blank: ['error', { allowReferrer: true }] */
</script>

<!-- ✓ GOOD -->
<a href="http://example.com" target="_blank" rel="noopener">link</a>

<!-- ✗ BAD -->
<a href="http://example.com" target="_blank">link</a>
```

### `{ "enforceDynamicLinks": "always" }` (default)

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-target-blank: ['error', { enforceDynamicLinks: 'always' }] */
</script>

<!-- ✓ GOOD -->
<a href={link} target="_blank" rel="noopener noreferrer">link</a>

<!-- ✗ BAD -->
<a href={link} target="_blank">link</a>
```

### `{ "enforceDynamicLinks": "never" }`

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-target-blank: ['error', { enforceDynamicLinks: 'never' }] */
</script>

<!-- ✓ GOOD -->
<a href={link} target="_blank">link</a>

<!-- ✗ BAD -->
<a href="http://example.com" target="_blank">link</a>
```

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v0.0.4

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-target-blank.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-target-blank.ts)


================================================
FILE: docs/rules/no-top-level-browser-globals.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-top-level-browser-globals'
description: 'disallow using top-level browser global variables'
since: 'v3.8.0'
---

# svelte/no-top-level-browser-globals

> disallow using top-level browser global variables

## :book: Rule Details

This rule reports top-level browser global variables in Svelte components.
This rule helps prevent the use of browser global variables that can cause errors in SSR (Server Side Rendering).

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-top-level-browser-globals: "error" */
  import { onMount } from 'svelte';
  import { browser } from '$app/environment';

  /* ✓ GOOD */
  onMount(() => {
    const a = localStorage.getItem('myCat');
    console.log(a);
  });

  /* ✓ GOOD */
  if (browser) {
    const a = localStorage.getItem('myCat');
    console.log(a);
  }

  /* ✓ GOOD */
  if (typeof localStorage !== 'undefined') {
    const a = localStorage.getItem('myCat');
    console.log(a);
  }

  /* ✗ BAD */
  const a = localStorage.getItem('myCat');
  console.log(a);
</script>
```

## :wrench: Options

Nothing.

## :books: Further Reading

- [`$app/environment` documentation > browser](https://svelte.dev/docs/kit/$app-environment#browser)

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v3.8.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-top-level-browser-globals.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-top-level-browser-globals.ts)


================================================
FILE: docs/rules/no-trailing-spaces.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-trailing-spaces'
description: 'disallow trailing whitespace at the end of lines'
since: 'v2.7.0'
---

# svelte/no-trailing-spaces

> disallow trailing whitespace at the end of lines

- :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.

## :book: Rule Details

This rule extends the base ESLint's [no-trailing-spaces] rule. The [no-trailing-spaces] rule does not understand HTML comments and will report trailing whitespace in HTML comments when using `ignoreComments` option.
This rule supports HTML comments generated by [svelte-eslint-parser].

[svelte-eslint-parser]: https://github.com/sveltejs/svelte-eslint-parser

<!-- prettier-ignore-start -->
<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-trailing-spaces: "error" */

  /* ✓ GOOD */
  var foo = 0;
  /* ✗ BAD */
  var foo = 0;  
</script>

<!-- ✓ GOOD -->
<div>
  Text
</div>

<!-- ✗ BAD -->
<div>  
  Text  
</div>
```

<!-- prettier-ignore-end -->

## :wrench: Options

```jsonc
{
  "no-trailing-spaces": "off", // Don't need ESLint's no-trailing-spaces rule, so turn it off.
  "svelte/no-trailing-spaces": [
    "error",
    {
      "skipBlankLines": false,
      "ignoreComments": false
    }
  ]
}
```

- `skipBlankLines` ... If `true`, allows trailing whitespace on empty lines.
- `ignoreComments` ... If `true`, allows trailing whitespace in comments.

Same as [no-trailing-spaces] rule option. See [here](https://eslint.org/docs/rules/no-trailing-spaces#options) for details.

## :couple: Related rules

- [no-trailing-spaces]

[no-trailing-spaces]: https://eslint.org/docs/rules/no-trailing-spaces

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v2.7.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-trailing-spaces.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-trailing-spaces.ts)

<sup>Taken with ❤️ [from ESLint core](https://eslint.org/docs/rules/no-trailing-spaces)</sup>


================================================
FILE: docs/rules/no-unknown-style-directive-property.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-unknown-style-directive-property'
description: 'disallow unknown `style:property`'
since: 'v0.31.0'
---

# svelte/no-unknown-style-directive-property

> disallow unknown `style:property`

- :gear: This rule is included in `"plugin:svelte/recommended"`.

## :book: Rule Details

This rule reports an unknown CSS property in style directive.

This rule was inspired by [Stylelint's property-no-unknown rule](https://stylelint.io/user-guide/rules/list/property-no-unknown/).

Note that this rule only checks the `style:property` directive. If you want to check inside the `style` attribute and `style` element, consider introducing [Stylelint](https://stylelint.io/).

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-unknown-style-directive-property: "error" */
  let red = 'red';
  let color = red;
</script>

<!-- ✓ GOOD -->
<div style:color={red}>...</div>
<div style:color>...</div>

<!-- ✗ BAD -->
<div style:unknown-color={red}>...</div>
<div style:red>...</div>
```

## :wrench: Options

```json
{
  "svelte/no-unknown-style-directive-property": [
    "error",
    {
      "ignoreProperties": [],
      "ignorePrefixed": true
    }
  ]
}
```

- `ignoreProperties` ... You can specify property names or patterns that you want to ignore from checking. When specifying a pattern, specify a string like a regex literal. e.g. `"/pattern/i"`
- `ignorePrefixed` ... If `true`, ignores properties with vendor prefix from checking. Default is `true`.

## :books: Further reading

- [Stylelint - property-no-unknown]

[stylelint - property-no-unknown]: https://stylelint.io/user-guide/rules/list/property-no-unknown/

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v0.31.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-unknown-style-directive-property.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-unknown-style-directive-property.ts)


================================================
FILE: docs/rules/no-unnecessary-state-wrap.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-unnecessary-state-wrap'
description: 'Disallow unnecessary $state wrapping of reactive classes'
since: 'v3.2.0'
---

# svelte/no-unnecessary-state-wrap

> Disallow unnecessary $state wrapping of reactive classes

- :gear: This rule is included in `"plugin:svelte/recommended"`.
- :bulb: Some problems reported by this rule are manually fixable by editor [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions).

## :book: Rule Details

In Svelte 5, several built-in classes from `svelte/reactivity` are already reactive by default:

- `SvelteSet`
- `SvelteMap`
- `SvelteURL`
- `SvelteURLSearchParams`
- `SvelteDate`
- `MediaQuery`

Therefore, wrapping them with `$state` is unnecessary and can lead to confusion.

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-unnecessary-state-wrap: "error" */
  import {
    SvelteSet,
    SvelteMap,
    SvelteURL,
    SvelteURLSearchParams,
    SvelteDate,
    MediaQuery
  } from 'svelte/reactivity';

  // ✓ GOOD
  const set1 = new SvelteSet();
  const map1 = new SvelteMap();
  const url1 = new SvelteURL('https://example.com');
  const params1 = new SvelteURLSearchParams('key=value');
  const date1 = new SvelteDate();
  const mediaQuery1 = new MediaQuery('(min-width: 800px)');

  // ✗ BAD
  const set2 = $state(new SvelteSet());
  const map2 = $state(new SvelteMap());
  const url2 = $state(new SvelteURL('https://example.com'));
  const params2 = $state(new SvelteURLSearchParams('key=value'));
  const date2 = $state(new SvelteDate());
  const mediaQuery2 = $state(new MediaQuery('(min-width: 800px)'));
</script>
```

## :wrench: Options

```json
{
  "svelte/no-unnecessary-state-wrap": [
    "error",
    {
      "additionalReactiveClasses": [],
      "allowReassign": false
    }
  ]
}
```

- `additionalReactiveClasses` ... An array of class names that should also be considered reactive. This is useful when you have custom classes that are inherently reactive. Default is `[]`.
- `allowReassign` ... If `true`, allows `$state` wrapping of reactive classes when the variable is reassigned. Default is `false`.

### Examples with Options

#### `additionalReactiveClasses`

```svelte
<script>
  /* eslint svelte/no-unnecessary-state-wrap: ["error", { "additionalReactiveClasses": ["MyReactiveClass"] }] */
  import { MyReactiveClass } from './foo';

  // ✓ GOOD
  const myState1 = new MyReactiveClass();

  // ✗ BAD
  const myState2 = $state(new MyReactiveClass());
</script>
```

#### `allowReassign`

```svelte
<script>
  /* eslint svelte/no-unnecessary-state-wrap: ["error", { "allowReassign": true }] */
  import { SvelteSet } from 'svelte/reactivity';

  // ✓ GOOD
  let set1 = $state(new SvelteSet());
  set1 = new SvelteSet([1, 2, 3]); // Variable is reassigned

  // ✗ BAD
  const set2 = $state(new SvelteSet()); // const cannot be reassigned
  let set3 = $state(new SvelteSet()); // Variable is never reassigned
</script>
```

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v3.2.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-unnecessary-state-wrap.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-unnecessary-state-wrap.ts)


================================================
FILE: docs/rules/no-unused-class-name.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-unused-class-name'
description: 'disallow the use of a class in the template without a corresponding style'
since: 'v2.31.0'
---

# svelte/no-unused-class-name

> disallow the use of a class in the template without a corresponding style

## :book: Rule Details

This rule is aimed at reducing unused classes in the HTML template. While `svelte-check` will produce the `css-unused-selector` if your `<style>` block includes any classes that aren't used in the template, this rule works the other way around - it reports cases wehre the template contains classes that aren't referred to in the `<style>` block.

<!--eslint-skip-->

```svelte
<script lang="ts">
  /* eslint svelte/no-unused-class-name: "error" */
</script>

<!-- ✓ GOOD -->
<div class="first-class">Hello</div>
<div class="second-class">Hello</div>
<div class="third-class fourth-class">Hello</div>

<!-- ✗ BAD -->
<div class="fifth-class">Hello</div>
<div class="sixth-class first-class">Hello</div>

<style>
  .first-class {
    color: red;
  }

  .second-class,
  .third-class {
    color: blue;
  }

  .fourth-class {
    color: green;
  }
</style>
```

## :wrench: Options

```json
{
  "svelte/no-unused-class-name": [
    "error",
    {
      "allowedClassNames": ["class-name-one", "class-name-two", "/^regex-.*$/"] // You can also use regex to match class names
    }
  ]
}
```

- `allowedClassNames` ... A list of class names that shouldn't be reported by this rule. Default `[]`.

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v2.31.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-unused-class-name.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-unused-class-name.ts)


================================================
FILE: docs/rules/no-unused-props.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-unused-props'
description: 'Warns about defined Props properties that are unused'
since: 'v3.2.0'
---

# svelte/no-unused-props

> Warns about defined Props properties that are unused

- :gear: This rule is included in `"plugin:svelte/recommended"`.

## :book: Rule Details

This rule reports properties that are defined in Props but never used in the component code.\
It helps to detect dead code and improve component clarity by ensuring that every declared prop is utilized.

This rule checks various usage patterns of props:

- Direct property access
- Destructuring assignment
- Method calls
- Computed property access
- Object spread
- Constructor calls (new expressions)
- Assignment to other variables
- Index signatures (e.g. `[key: string]: unknown`)

Additionally, this rule checks if index signatures are properly used. When an index signature is defined but not captured using the rest operator (`...`), the rule will suggest using it.

Note: Properties of class types are not checked for usage, as they might be used in other parts of the application.

:warning: This rule requires `@typescript-eslint/parser` to work. Make sure you have installed `@typescript-eslint/parser` and configured it in your ESLint configuration. Therefore, the rule violations cannot be seen in the examples on this page because this documentation does not use `@typescript-eslint/parser`.

<!--eslint-skip-->

```svelte
<!-- ✓ Good Examples -->
<script lang="ts">
  /* eslint svelte/no-unused-props: "error" */
  // Direct property access
  const props: { value: string } = $props();
  console.log(props.value);
</script>
```

```svelte
<!-- ✓ Good Examples -->
<script lang="ts">
  /* eslint svelte/no-unused-props: "error" */
  // Destructuring assignment
  const { width, height }: { width: number; height: number } = $props();
  console.log(width, height);
</script>
```

```svelte
<!-- ✓ Good Examples -->
<script lang="ts">
  /* eslint svelte/no-unused-props: "error" */
  // Class properties are not checked
  class User {
    constructor(
      public name: string,
      public age: number
    ) {}
  }
  type Props = {
    user: User;
  };
  const props: Props = $props();
  console.log(props.user.name); // age is not reported as unused
</script>
```

```svelte
<!-- ✓ Good Examples -->
<script lang="ts">
  /* eslint svelte/no-unused-props: "error" */
  // Method calls
  const props2: { callback: () => void } = $props();
  props2.callback();
</script>
```

```svelte
<!-- ✓ Good Examples -->
<script lang="ts">
  /* eslint svelte/no-unused-props: "error" */
  // Computed property access
  const props3: { 'data-value': string } = $props();
  const value = props3['data-value'];
</script>
```

```svelte
<!-- ✓ Good Examples -->
<script lang="ts">
  /* eslint svelte/no-unused-props: "error" */
  // Constructor calls
  const props4: { config: { new (): any } } = $props();
  new props4.config();
</script>
```

```svelte
<!-- ✓ Good Examples -->
<script lang="ts">
  /* eslint svelte/no-unused-props: "error" */
  // Using index signature with rest operator
  interface Props {
    a: number;
    [key: string]: unknown;
  }
  let { a, ...rest }: Props = $props();
  console.log(rest);
</script>
```

```svelte
<!-- ✗ Bad Examples -->
<script lang="ts">
  /* eslint svelte/no-unused-props: "error" */
  // Unused property 'b'
  const props: { a: string; b: number } = $props();
  console.log(props.a);
</script>
```

```svelte
<!-- ✗ Bad Examples -->
<script lang="ts">
  /* eslint svelte/no-unused-props: "error" */
  // Unused property in destructuring
  const { x }: { x: number; y: number } = $props();
  console.log(x);
</script>
```

```svelte
<!-- ✗ Bad Examples -->
<script lang="ts">
  /* eslint svelte/no-unused-props: "error" */
  // Unused index signature
  interface Props {
    a: number;
    [key: string]: unknown; // This will be reported
  }
  let { a }: Props = $props();
</script>
```

## :wrench: Options

```js
{
  "svelte/no-unused-props": ["error", {
    // Whether to check properties from imported types
    "checkImportedTypes": false,
    // Patterns to ignore when checking property types
    "ignoreTypePatterns": [],
    // Patterns to ignore when checking for unused props
    "ignorePropertyPatterns": [],
    // Whether to allow unused nested properties
    "allowUnusedNestedProperties": false
  }]
}
```

- `checkImportedTypes` ... Controls whether to check properties from types defined in external files. Default is `false`, meaning the rule only checks types defined within the component file itself. When set to `true`, the rule will also check properties from imported and extended types.
- `ignoreTypePatterns` ... Regular expression patterns for type names to exclude from checks. Default is `[]` (no exclusions). Most useful when `checkImportedTypes` is `true`, allowing you to exclude specific imported types (like utility types or third-party types) from being checked.
- `ignorePropertyPatterns` ... Regular expression patterns for property names to exclude from unused checks. Default is `[]` (no exclusions). Most useful when `checkImportedTypes` is `true`, allowing you to ignore specific properties from external types that shouldn't trigger warnings.
- `allowUnusedNestedProperties` ... Controls whether to allow unused nested properties. Default is `false`, meaning the rule will report unused properties from nested objects.

Examples:

```svelte
<!-- ✓ Good Examples -->
<script lang="ts">
  /* eslint svelte/no-unused-props: ["error", { "checkImportedTypes": true }] */
  // Check properties from imported types
  import type { BaseProps } from './types';
  interface Props extends BaseProps {
    age: number;
  }
  let { name, age }: Props = $props();
  console.log(name, age);
</script>
```

```svelte
<!-- ✓ Good Examples -->
<script lang="ts">
  /* eslint svelte/no-unused-props: ["error", { "ignoreTypePatterns": ["/^Internal/"] }] */
  // Ignore properties from types matching the pattern
  interface InternalConfig {
    secretKey: string;
    debugMode: boolean;
  }
  interface Props {
    config: InternalConfig;
    value: number;
  }
  let { config, value }: Props = $props();
  console.log(value, config.secretKey);
</script>
```

```svelte
<!-- ✓ Good Examples -->
<script lang="ts">
  /* eslint svelte/no-unused-props: ["error", { "ignorePropertyPatterns": ["/^_/"] }] */
  // Ignore properties with names matching the pattern
  interface Props {
    _internal: string;
    value: number;
  }
  let { value }: Props = $props();
  console.log(value);
</script>
```

```svelte
<!-- ✓ Good Example with allowUnusedNestedProperties: true -->
<script lang="ts">
  /* eslint svelte/no-unused-props: ["error", { "allowUnusedNestedProperties": true }] */
  interface Props {
    user: {
      name: string;
      age: number; // Won't be reported as unused
    };
  }
  let { user }: Props = $props();
  console.log(user.name);
</script>
```

## :gear: Required Configuration

This rule requires `@typescript-eslint/parser` to work. Please refer to the [User Guide](../user-guide.md) for more information.

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v3.2.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-unused-props.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-unused-props.ts)


================================================
FILE: docs/rules/no-unused-svelte-ignore.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-unused-svelte-ignore'
description: 'disallow unused svelte-ignore comments'
since: 'v0.19.0'
---

# svelte/no-unused-svelte-ignore

> disallow unused svelte-ignore comments

- :gear: This rule is included in `"plugin:svelte/recommended"`.

## :book: Rule Details

This rule warns unnecessary `svelte-ignore` comments.

`svelte-ignore` comments can include an explanatory note in parentheses after the warning names.
This rule checks only the warning names and ignores the explanatory note.

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-unused-svelte-ignore: "error" */
</script>

<!-- ✓ GOOD -->
<!-- svelte-ignore a11y-autofocus a11y-missing-attribute -->
<img src="https://example.com/img.png" autofocus />

<!-- svelte-ignore a11y-autofocus, a11y-missing-attribute (intentional for this example) -->
<img src="https://example.com/img.png" autofocus />

<!-- ✗ BAD -->
<!-- svelte-ignore a11y-autofocus a11y-missing-attribute -->
<img src="https://example.com/img.png" alt="Foo" />
```

## :wrench: Options

Nothing.

## :books: Further Reading

- [Svelte - Docs > Comments](https://svelte.dev/docs#template-syntax-comments)
- [Svelte - Compiler warnings](https://svelte.dev/docs/svelte/compiler-warnings)

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v0.19.0

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-unused-svelte-ignore.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-unused-svelte-ignore.ts)


================================================
FILE: docs/rules/no-useless-children-snippet.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-useless-children-snippet'
description: "disallow explicit children snippet where it's not needed"
since: 'v3.0.0-next.9'
---

# svelte/no-useless-children-snippet

> disallow explicit children snippet where it's not needed

- :gear: This rule is included in `"plugin:svelte/recommended"`.

## :book: Rule Details

Any content inside component tags that is not a snippet declaration implicitly becomes part of the children snippet. Thus, declaring the children snippet explicitly is only necessary when the snippet has parameters.

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-useless-children-snippet: "error" */

  import { Foo } from './Foo.svelte';
</script>

<!-- ✓ GOOD -->
<Foo>
  {#snippet bar()}
    Hello
  {/snippet}
</Foo>

<Foo>
  {#snippet children(val)}
    Hello {val}
  {/snippet}
</Foo>

<Foo>Hello</Foo>

<!-- ✗ BAD -->
<Foo>
  {#snippet children()}
    Hello
  {/snippet}
</Foo>
```

## :wrench: Options

Nothing.

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v3.0.0-next.9

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-useless-children-snippet.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-useless-children-snippet.ts)


================================================
FILE: docs/rules/no-useless-mustaches.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/no-useless-mustaches'
description: 'disallow unnecessary mustache interpolations'
since: 'v0.0.4'
---

# svelte/no-useless-mustaches

> disallow unnecessary mustache interpolations

- :gear: This rule is included in `"plugin:svelte/recommended"`.
- :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.

## :book: Rule Details

This rule reports mustache interpolation with a string literal value.\
The mustache interpolation with a string literal value can be changed to a static contents.

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-useless-mustaches: "error" */
</script>

<!-- ✓ GOOD -->
Lorem ipsum {foo}
<div data-text="Lorem ipsum" />
<div data-text={bar} />

<!-- ✗ BAD -->
{'Lorem ipsum'}
{'Lorem ipsum'}
{`Lorem ipsum`}
<div data-text={'Lorem ipsum'} />
```

## :wrench: Options

```json
{
  "svelte/no-useless-mustaches": [
    "error",
    {
      "ignoreIncludesComment": false,
      "ignoreStringEscape": false
    }
  ]
}
```

- `ignoreIncludesComment` ... If `true`, do not report expressions containing comments. default `false`.
- `ignoreStringEscape` ... If `true`, do not report string literals with useful escapes. default `false`.

### `"ignoreIncludesComment": true`

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/no-useless-mustaches: ["error", { "ignoreIncludesComment": true }] */
</script>

<!-- ✓ GOOD -->
<div data-text={/* comment */ 'Lorem ipsum'} />

<!-- ✗ BAD -->
<div data-text={'Lorem ipsum'} />
```

### `"ignoreStringEscape": true`

<!--eslint-skip-->

```svelte
<!-- ✓ GOOD -->
{'Lorem \n ipsum'}
<div data-text={'Lorem \n ipsum'} />
```

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v0.0.4

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/no-useless-mustaches.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/no-useless-mustaches.ts)


================================================
FILE: docs/rules/prefer-class-directive.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/prefer-class-directive'
description: 'require class directives instead of ternary expressions'
since: 'v0.0.1'
---

# svelte/prefer-class-directive

> require class directives instead of ternary expressions

- :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.

## :book: Rule Details

This rule aims to replace a class with ternary operator with the class directive.

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/prefer-class-directive: ["error", {"prefer": "empty"}] */
  const selected = true;
</script>

<!-- ✓ GOOD -->
<button class:selected>foo</button>
<button class:selected={current === 'foo'}>foo</button>

<!-- ✗ BAD -->
<button class={selected ? 'selected' : ''}>foo</button>
<button class={current === 'foo' ? 'selected' : ''}>foo</button>
```

You cannot enforce this style by using [prettier-plugin-svelte]. That is, this rule does not conflict with [prettier-plugin-svelte] and can be used with [prettier-plugin-svelte].

[prettier-plugin-svelte]: https://github.com/sveltejs/prettier-plugin-svelte

## :wrench: Options

```json
{
  "svelte/prefer-class-directive": [
    "error",
    {
      "prefer": "empty" // or "always"
    }
  ]
}
```

- `prefer` ... Whether to apply this rule always or just when there's an empty string. Default is `"empty"`.
  - `"empty"` ... Requires class directives only if one of the strings is empty.
  - `"always"` ... Requires class directives always rather than interpolation.

## :couple: Related Rules

- [svelte/prefer-style-directive]

[svelte/prefer-style-directive]: ./prefer-style-directive.md

## :books: Further Reading

- [Svelte - Tutorial > Basic Svelte / Classes and styles / The class atribute](https://svelte.dev/tutorial/svelte/classes)

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v0.0.1

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/prefer-class-directive.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/prefer-class-directive.ts)


================================================
FILE: docs/rules/prefer-const.md
================================================
---
pageClass: 'rule-details'
sidebarDepth: 0
title: 'svelte/prefer-const'
description: 'Require `const` declarations for variables that are never reassigned after declared'
since: 'v3.0.0-next.6'
---

# svelte/prefer-const

> Require `const` declarations for variables that are never reassigned after declared

- :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.

## :book: Rule Details

This rule reports the same as the base ESLint `prefer-const` rule, except that ignores Svelte reactive values such as `$derived` and `$props` as default. If this rule is active, make sure to disable the base `prefer-const` rule, as it will conflict with this rule.

<!--eslint-skip-->

```svelte
<script>
  /* eslint svelte/prefer-const: "error" */

  // ✓ GOOD
  const { a, b } = $props();
  let c = $state('');
  let d = $derived(a * 2);
  let e = $derived.by(() => b * 2);

  // ✗ BAD
  let obj = { a, b };
  let g = $state(0);
  let h = $state({ count: 1 });
</script>

<input bind:value={c} />
<input bind:value={h.count} />
```

## :wrench: Options

```json
{
  "svelte/prefer-const": [
    "error",
    {
      "destructuring": "any",
      "additionalProperties": false,
      "excludedRunes": ["$props", "$derived"]
    }
  ]
}
```

- `destructuring`: The kind of the way to address variables in destructuring. There are 2 values:
  - `any` (default) - If any variables in destructuring should be const, this rule warns for those variables.
  - `all`: If all variables in destructuring should be const, this rule warns the variables. Otherwise, ignores them.
- `ignoreReadBeforeAssign`: This is an option to avoid conflicting with `no-use-before-define` rule (without "nofunc" option). If `true` is specified, this rule will ignore variables that are read between the declaration and the first assignment. Default is `false`.
- `excludedRunes`: An array of rune names that should be ignored. Even if a rune is declared with `let`, it will still be ignored.

## :books: Further Reading

- See [ESLint prefer-const rule](https://eslint.org/docs/latest/rules/prefer-const) for more information about the base rule.

## :rocket: Version

This rule was introduced in eslint-plugin-svelte v3.0.0-next.6

## :mag: Implementation

- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/prefer-const.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/prefer-const.ts)

<sup>Taken with ❤
Download .txt
Showing preview only (240K chars total). Download the full file or copy to clipboard to get everything.
gitextract_0ybn3993/

├── .changeset/
│   ├── README.md
│   └── config.json
├── .devcontainer/
│   └── devcontainer.json
├── .editorconfig
├── .env-cmdrc.json
├── .gitattributes
├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.yml
│   │   ├── feature_request.yml
│   │   ├── new_rule_request.yml
│   │   └── other.md
│   └── workflows/
│       ├── GHPages.yml
│       ├── NodeCI.yml
│       ├── Release.yml
│       ├── pkg.pr.new-comment.yml
│       ├── pkg.pr.new.yml
│       └── stale.yml
├── .gitignore
├── .npmrc
├── .prettierignore
├── .vscode/
│   ├── extensions.json
│   └── settings.json
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── docs/
│   ├── README.md
│   ├── migration.md
│   ├── rules/
│   │   ├── @typescript-eslint/
│   │   │   └── no-unnecessary-condition.md
│   │   ├── block-lang.md
│   │   ├── button-has-type.md
│   │   ├── comment-directive.md
│   │   ├── consistent-selector-style.md
│   │   ├── derived-has-same-inputs-outputs.md
│   │   ├── experimental-require-slot-types.md
│   │   ├── experimental-require-strict-events.md
│   │   ├── first-attribute-linebreak.md
│   │   ├── html-closing-bracket-new-line.md
│   │   ├── html-closing-bracket-spacing.md
│   │   ├── html-quotes.md
│   │   ├── html-self-closing.md
│   │   ├── indent.md
│   │   ├── infinite-reactive-loop.md
│   │   ├── max-attributes-per-line.md
│   │   ├── max-lines-per-block.md
│   │   ├── mustache-spacing.md
│   │   ├── no-add-event-listener.md
│   │   ├── no-at-debug-tags.md
│   │   ├── no-at-html-tags.md
│   │   ├── no-dom-manipulating.md
│   │   ├── no-dupe-else-if-blocks.md
│   │   ├── no-dupe-on-directives.md
│   │   ├── no-dupe-style-properties.md
│   │   ├── no-dupe-use-directives.md
│   │   ├── no-dynamic-slot-name.md
│   │   ├── no-export-load-in-svelte-module-in-kit-pages.md
│   │   ├── no-extra-reactive-curlies.md
│   │   ├── no-goto-without-base.md
│   │   ├── no-ignored-unsubscribe.md
│   │   ├── no-immutable-reactive-statements.md
│   │   ├── no-inline-styles.md
│   │   ├── no-inner-declarations.md
│   │   ├── no-inspect.md
│   │   ├── no-navigation-without-base.md
│   │   ├── no-navigation-without-resolve.md
│   │   ├── no-not-function-handler.md
│   │   ├── no-object-in-text-mustaches.md
│   │   ├── no-raw-special-elements.md
│   │   ├── no-reactive-functions.md
│   │   ├── no-reactive-literals.md
│   │   ├── no-reactive-reassign.md
│   │   ├── no-restricted-html-elements.md
│   │   ├── no-shorthand-style-property-overrides.md
│   │   ├── no-spaces-around-equal-signs-in-attribute.md
│   │   ├── no-store-async.md
│   │   ├── no-svelte-internal.md
│   │   ├── no-target-blank.md
│   │   ├── no-top-level-browser-globals.md
│   │   ├── no-trailing-spaces.md
│   │   ├── no-unknown-style-directive-property.md
│   │   ├── no-unnecessary-state-wrap.md
│   │   ├── no-unused-class-name.md
│   │   ├── no-unused-props.md
│   │   ├── no-unused-svelte-ignore.md
│   │   ├── no-useless-children-snippet.md
│   │   ├── no-useless-mustaches.md
│   │   ├── prefer-class-directive.md
│   │   ├── prefer-const.md
│   │   ├── prefer-destructured-store-props.md
│   │   ├── prefer-style-directive.md
│   │   ├── prefer-svelte-reactivity.md
│   │   ├── prefer-writable-derived.md
│   │   ├── require-each-key.md
│   │   ├── require-event-dispatcher-types.md
│   │   ├── require-event-prefix.md
│   │   ├── require-optimized-style-attribute.md
│   │   ├── require-store-callbacks-use-set-param.md
│   │   ├── require-store-reactive-access.md
│   │   ├── require-stores-init.md
│   │   ├── shorthand-attribute.md
│   │   ├── shorthand-directive.md
│   │   ├── sort-attributes.md
│   │   ├── spaced-html-comment.md
│   │   ├── system.md
│   │   ├── valid-compile.md
│   │   ├── valid-each-key.md
│   │   ├── valid-prop-names-in-kit-pages.md
│   │   └── valid-style-parse.md
│   ├── rules.md
│   └── user-guide.md
├── docs-svelte-kit/
│   ├── eslint.config.mjs
│   ├── package.json
│   ├── src/
│   │   ├── app.css
│   │   ├── app.html
│   │   ├── lib/
│   │   │   ├── footer/
│   │   │   │   └── Footer.svelte
│   │   │   ├── header/
│   │   │   │   └── Header.svelte
│   │   │   ├── sidemenu/
│   │   │   │   ├── SideMenu.svelte
│   │   │   │   └── UlMenu.svelte
│   │   │   └── utils.js
│   │   ├── reset.css
│   │   └── routes/
│   │       ├── +error.svelte
│   │       ├── +layout.js
│   │       ├── +layout.svelte
│   │       └── 404/
│   │           └── +page.svelte
│   ├── svelte.config.js
│   ├── tools/
│   │   ├── generate-routes.mts
│   │   ├── highlight.mts
│   │   ├── markdown-it-container-option.mts
│   │   ├── markdown-it-markdown.mts
│   │   ├── markdown-it-replace-link.mts
│   │   ├── markdown-it-title.mts
│   │   └── vite-plugin-svelte-md-option.mts
│   ├── tsconfig.json
│   └── vite.config.ts
├── package.json
├── packages/
│   └── eslint-plugin-svelte/
│       ├── .env-cmdrc.json
│       ├── CHANGELOG.md
│       ├── LICENSE
│       ├── babel.config.cjs
│       ├── eslint.config.mjs
│       ├── internal-rules/
│       │   └── prefer-find-variable-safe.ts
│       ├── package.json
│       ├── postcss.config.cjs
│       ├── src/
│       │   ├── configs/
│       │   │   └── flat/
│       │   │       ├── all.ts
│       │   │       ├── base.ts
│       │   │       ├── prettier.ts
│       │   │       └── recommended.ts
│       │   ├── index.ts
│       │   ├── main.ts
│       │   ├── meta.ts
│       │   ├── processor/
│       │   │   └── index.ts
│       │   ├── rule-types.ts
│       │   ├── rules/
│       │   │   ├── @typescript-eslint/
│       │   │   │   └── no-unnecessary-condition.ts
│       │   │   ├── block-lang.ts
│       │   │   ├── button-has-type.ts
│       │   │   ├── comment-directive.ts
│       │   │   ├── consistent-selector-style.ts
│       │   │   ├── derived-has-same-inputs-outputs.ts
│       │   │   ├── experimental-require-slot-types.ts
│       │   │   ├── experimental-require-strict-events.ts
│       │   │   ├── first-attribute-linebreak.ts
│       │   │   ├── html-closing-bracket-new-line.ts
│       │   │   ├── html-closing-bracket-spacing.ts
│       │   │   ├── html-quotes.ts
│       │   │   ├── html-self-closing.ts
│       │   │   ├── indent-helpers/
│       │   │   │   ├── ast.ts
│       │   │   │   ├── commons.ts
│       │   │   │   ├── es.ts
│       │   │   │   ├── index.ts
│       │   │   │   ├── offset-context.ts
│       │   │   │   ├── svelte.ts
│       │   │   │   └── ts.ts
│       │   │   ├── indent.ts
│       │   │   ├── infinite-reactive-loop.ts
│       │   │   ├── max-attributes-per-line.ts
│       │   │   ├── max-lines-per-block.ts
│       │   │   ├── mustache-spacing.ts
│       │   │   ├── no-add-event-listener.ts
│       │   │   ├── no-at-debug-tags.ts
│       │   │   ├── no-at-html-tags.ts
│       │   │   ├── no-dom-manipulating.ts
│       │   │   ├── no-dupe-else-if-blocks.ts
│       │   │   ├── no-dupe-on-directives.ts
│       │   │   ├── no-dupe-style-properties.ts
│       │   │   ├── no-dupe-use-directives.ts
│       │   │   ├── no-dynamic-slot-name.ts
│       │   │   ├── no-export-load-in-svelte-module-in-kit-pages.ts
│       │   │   ├── no-extra-reactive-curlies.ts
│       │   │   ├── no-goto-without-base.ts
│       │   │   ├── no-ignored-unsubscribe.ts
│       │   │   ├── no-immutable-reactive-statements.ts
│       │   │   ├── no-inline-styles.ts
│       │   │   ├── no-inner-declarations.ts
│       │   │   ├── no-inspect.ts
│       │   │   ├── no-navigation-without-base.ts
│       │   │   ├── no-navigation-without-resolve.ts
│       │   │   ├── no-not-function-handler.ts
│       │   │   ├── no-object-in-text-mustaches.ts
│       │   │   ├── no-raw-special-elements.ts
│       │   │   ├── no-reactive-functions.ts
│       │   │   ├── no-reactive-literals.ts
│       │   │   ├── no-reactive-reassign.ts
│       │   │   ├── no-restricted-html-elements.ts
│       │   │   ├── no-shorthand-style-property-overrides.ts
│       │   │   ├── no-spaces-around-equal-signs-in-attribute.ts
│       │   │   ├── no-store-async.ts
│       │   │   ├── no-svelte-internal.ts
│       │   │   ├── no-target-blank.ts
│       │   │   ├── no-top-level-browser-globals.ts
│       │   │   ├── no-trailing-spaces.ts
│       │   │   ├── no-unknown-style-directive-property.ts
│       │   │   ├── no-unnecessary-state-wrap.ts
│       │   │   ├── no-unused-class-name.ts
│       │   │   ├── no-unused-props.ts
│       │   │   ├── no-unused-svelte-ignore.ts
│       │   │   ├── no-useless-children-snippet.ts
│       │   │   ├── no-useless-mustaches.ts
│       │   │   ├── prefer-class-directive.ts
│       │   │   ├── prefer-const.ts
│       │   │   ├── prefer-destructured-store-props.ts
│       │   │   ├── prefer-style-directive.ts
│       │   │   ├── prefer-svelte-reactivity.ts
│       │   │   ├── prefer-writable-derived.ts
│       │   │   ├── reference-helpers/
│       │   │   │   └── svelte-store.ts
│       │   │   ├── require-each-key.ts
│       │   │   ├── require-event-dispatcher-types.ts
│       │   │   ├── require-event-prefix.ts
│       │   │   ├── require-optimized-style-attribute.ts
│       │   │   ├── require-store-callbacks-use-set-param.ts
│       │   │   ├── require-store-reactive-access.ts
│       │   │   ├── require-stores-init.ts
│       │   │   ├── shorthand-attribute.ts
│       │   │   ├── shorthand-directive.ts
│       │   │   ├── sort-attributes.ts
│       │   │   ├── spaced-html-comment.ts
│       │   │   ├── system.ts
│       │   │   ├── valid-compile.ts
│       │   │   ├── valid-each-key.ts
│       │   │   ├── valid-prop-names-in-kit-pages.ts
│       │   │   └── valid-style-parse.ts
│       │   ├── shared/
│       │   │   ├── comment-directives.ts
│       │   │   ├── index.ts
│       │   │   ├── runes.ts
│       │   │   └── svelte-compile-warns/
│       │   │       ├── extract-leading-comments.ts
│       │   │       ├── ignore-comment.ts
│       │   │       ├── index.ts
│       │   │       └── transform/
│       │   │           ├── babel.ts
│       │   │           ├── less.ts
│       │   │           ├── postcss.ts
│       │   │           ├── sass.ts
│       │   │           ├── stylus.ts
│       │   │           ├── types.ts
│       │   │           └── typescript.ts
│       │   ├── type-defs/
│       │   │   ├── @eslint-community/
│       │   │   │   └── eslint-utils.d.ts
│       │   │   ├── estree.d.ts
│       │   │   ├── postcss/
│       │   │   │   └── lib/
│       │   │   │       └── tokenize.d.ts
│       │   │   └── postcss-safe-parser/
│       │   │       └── lib/
│       │   │           └── safe-parser.d.ts
│       │   ├── types-for-node.ts
│       │   ├── types.ts
│       │   └── utils/
│       │       ├── ast-utils.ts
│       │       ├── cache.ts
│       │       ├── css-utils/
│       │       │   ├── index.ts
│       │       │   ├── resource.ts
│       │       │   ├── style-attribute.ts
│       │       │   ├── template-safe-parser.ts
│       │       │   ├── template-tokenize.ts
│       │       │   └── utils.ts
│       │       ├── element-occurences.ts
│       │       ├── element-types.ts
│       │       ├── eslint-core.ts
│       │       ├── events.ts
│       │       ├── expression-affixes.ts
│       │       ├── get-node-module.ts
│       │       ├── get-package-json.ts
│       │       ├── index.ts
│       │       ├── lines-and-columns.ts
│       │       ├── load-module.ts
│       │       ├── regexp.ts
│       │       ├── rules.ts
│       │       ├── svelte-context.ts
│       │       └── ts-utils/
│       │           └── index.ts
│       ├── tests/
│       │   ├── fixtures/
│       │   │   └── rules/
│       │   │       ├── @typescript-eslint/
│       │   │       │   └── no-unnecessary-condition/
│       │   │       │       ├── invalid/
│       │   │       │       │   ├── binary-expression01-errors.yaml
│       │   │       │       │   ├── binary-expression01-input.svelte
│       │   │       │       │   ├── binary-expression01-output.svelte
│       │   │       │       │   ├── example-errors.yaml
│       │   │       │       │   ├── example-input.svelte
│       │   │       │       │   ├── example-output.svelte
│       │   │       │       │   ├── nullish-coalescing01-errors.yaml
│       │   │       │       │   ├── nullish-coalescing01-input.svelte
│       │   │       │       │   ├── nullish-coalescing01-output.svelte
│       │   │       │       │   ├── optional-chaining01-errors.yaml
│       │   │       │       │   ├── optional-chaining01-input.svelte
│       │   │       │       │   ├── optional-chaining01-output.svelte
│       │   │       │       │   ├── test01-errors.yaml
│       │   │       │       │   ├── test01-input.svelte
│       │   │       │       │   └── test01-output.svelte
│       │   │       │       └── valid/
│       │   │       │           ├── reactive-statement01-input.svelte
│       │   │       │           └── template01-input.svelte
│       │   │       ├── block-lang/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── script/
│       │   │       │   │   │   ├── enforce/
│       │   │       │   │   │   │   ├── _config.json
│       │   │       │   │   │   │   ├── no-script01-errors.yaml
│       │   │       │   │   │   │   └── no-script01-input.svelte
│       │   │       │   │   │   ├── javascript/
│       │   │       │   │   │   │   ├── _config.json
│       │   │       │   │   │   │   ├── javascript-as-style-lang01-errors.yaml
│       │   │       │   │   │   │   ├── javascript-as-style-lang01-input.svelte
│       │   │       │   │   │   │   ├── js01-errors.yaml
│       │   │       │   │   │   │   ├── js01-input.svelte
│       │   │       │   │   │   │   ├── null01-errors.yaml
│       │   │       │   │   │   │   ├── null01-input.svelte
│       │   │       │   │   │   │   ├── ts01-errors.yaml
│       │   │       │   │   │   │   ├── ts01-input.svelte
│       │   │       │   │   │   │   ├── typescript01-errors.yaml
│       │   │       │   │   │   │   └── typescript01-input.svelte
│       │   │       │   │   │   ├── js/
│       │   │       │   │   │   │   ├── _config.json
│       │   │       │   │   │   │   ├── javascript01-errors.yaml
│       │   │       │   │   │   │   ├── javascript01-input.svelte
│       │   │       │   │   │   │   ├── js-as-style-lang01-errors.yaml
│       │   │       │   │   │   │   ├── js-as-style-lang01-input.svelte
│       │   │       │   │   │   │   ├── null01-errors.yaml
│       │   │       │   │   │   │   ├── null01-input.svelte
│       │   │       │   │   │   │   ├── ts01-errors.yaml
│       │   │       │   │   │   │   ├── ts01-input.svelte
│       │   │       │   │   │   │   ├── typescript01-errors.yaml
│       │   │       │   │   │   │   └── typescript01-input.svelte
│       │   │       │   │   │   ├── module-context/
│       │   │       │   │   │   │   ├── _config.json
│       │   │       │   │   │   │   ├── javascript01-errors.yaml
│       │   │       │   │   │   │   ├── javascript01-input.svelte
│       │   │       │   │   │   │   ├── js01-errors.yaml
│       │   │       │   │   │   │   ├── js01-input.svelte
│       │   │       │   │   │   │   ├── null01-errors.yaml
│       │   │       │   │   │   │   ├── null01-input.svelte
│       │   │       │   │   │   │   ├── ts-as-style-lang01-errors.yaml
│       │   │       │   │   │   │   ├── ts-as-style-lang01-input.svelte
│       │   │       │   │   │   │   ├── typescript01-errors.yaml
│       │   │       │   │   │   │   └── typescript01-input.svelte
│       │   │       │   │   │   ├── multiple/
│       │   │       │   │   │   │   ├── _config.json
│       │   │       │   │   │   │   ├── javascript01-errors.yaml
│       │   │       │   │   │   │   ├── javascript01-input.svelte
│       │   │       │   │   │   │   ├── js01-errors.yaml
│       │   │       │   │   │   │   ├── js01-input.svelte
│       │   │       │   │   │   │   ├── null-as-style-lang01-errors.yaml
│       │   │       │   │   │   │   ├── null-as-style-lang01-input.svelte
│       │   │       │   │   │   │   ├── ts-as-style-lang01-errors.yaml
│       │   │       │   │   │   │   ├── ts-as-style-lang01-input.svelte
│       │   │       │   │   │   │   ├── typescript-as-style-lang01-errors.yaml
│       │   │       │   │   │   │   └── typescript-as-style-lang01-input.svelte
│       │   │       │   │   │   ├── null/
│       │   │       │   │   │   │   ├── _config.json
│       │   │       │   │   │   │   ├── javascript01-errors.yaml
│       │   │       │   │   │   │   ├── javascript01-input.svelte
│       │   │       │   │   │   │   ├── js01-errors.yaml
│       │   │       │   │   │   │   ├── js01-input.svelte
│       │   │       │   │   │   │   ├── null-as-style-lang01-errors.yaml
│       │   │       │   │   │   │   ├── null-as-style-lang01-input.svelte
│       │   │       │   │   │   │   ├── ts01-errors.yaml
│       │   │       │   │   │   │   ├── ts01-input.svelte
│       │   │       │   │   │   │   ├── typescript01-errors.yaml
│       │   │       │   │   │   │   └── typescript01-input.svelte
│       │   │       │   │   │   ├── shorthand/
│       │   │       │   │   │   │   ├── _config.json
│       │   │       │   │   │   │   ├── javascript01-errors.yaml
│       │   │       │   │   │   │   ├── javascript01-input.svelte
│       │   │       │   │   │   │   ├── js01-errors.yaml
│       │   │       │   │   │   │   ├── js01-input.svelte
│       │   │       │   │   │   │   ├── null01-errors.yaml
│       │   │       │   │   │   │   ├── null01-input.svelte
│       │   │       │   │   │   │   ├── ts-as-style-lang01-errors.yaml
│       │   │       │   │   │   │   ├── ts-as-style-lang01-input.svelte
│       │   │       │   │   │   │   ├── typescript01-errors.yaml
│       │   │       │   │   │   │   └── typescript01-input.svelte
│       │   │       │   │   │   ├── ts/
│       │   │       │   │   │   │   ├── _config.json
│       │   │       │   │   │   │   ├── javascript01-errors.yaml
│       │   │       │   │   │   │   ├── javascript01-input.svelte
│       │   │       │   │   │   │   ├── js01-errors.yaml
│       │   │       │   │   │   │   ├── js01-input.svelte
│       │   │       │   │   │   │   ├── null01-errors.yaml
│       │   │       │   │   │   │   ├── null01-input.svelte
│       │   │       │   │   │   │   ├── ts-as-style-lang01-errors.yaml
│       │   │       │   │   │   │   ├── ts-as-style-lang01-input.svelte
│       │   │       │   │   │   │   ├── typescript01-errors.yaml
│       │   │       │   │   │   │   └── typescript01-input.svelte
│       │   │       │   │   │   └── typescript/
│       │   │       │   │   │       ├── _config.json
│       │   │       │   │   │       ├── javascript01-errors.yaml
│       │   │       │   │   │       ├── javascript01-input.svelte
│       │   │       │   │   │       ├── js01-errors.yaml
│       │   │       │   │   │       ├── js01-input.svelte
│       │   │       │   │   │       ├── null01-errors.yaml
│       │   │       │   │   │       ├── null01-input.svelte
│       │   │       │   │   │       ├── ts01-errors.yaml
│       │   │       │   │   │       ├── ts01-input.svelte
│       │   │       │   │   │       ├── typescript-as-style-lang01-errors.yaml
│       │   │       │   │   │       └── typescript-as-style-lang01-input.svelte
│       │   │       │   │   └── style/
│       │   │       │   │       ├── enforce/
│       │   │       │   │       │   ├── _config.json
│       │   │       │   │       │   ├── no-style01-errors.yaml
│       │   │       │   │       │   └── no-style01-input.svelte
│       │   │       │   │       ├── null/
│       │   │       │   │       │   ├── _config.json
│       │   │       │   │       │   ├── null-as-script-lang01-errors.yaml
│       │   │       │   │       │   ├── null-as-script-lang01-input.svelte
│       │   │       │   │       │   ├── sass01-errors.yaml
│       │   │       │   │       │   ├── sass01-input.svelte
│       │   │       │   │       │   ├── scss01-errors.yaml
│       │   │       │   │       │   └── scss01-input.svelte
│       │   │       │   │       ├── sass/
│       │   │       │   │       │   ├── _config.json
│       │   │       │   │       │   ├── null01-errors.yaml
│       │   │       │   │       │   ├── null01-input.svelte
│       │   │       │   │       │   ├── sass-as-script-lang01-errors.yaml
│       │   │       │   │       │   ├── sass-as-script-lang01-input.svelte
│       │   │       │   │       │   ├── scss01-errors.yaml
│       │   │       │   │       │   └── scss01-input.svelte
│       │   │       │   │       └── scss/
│       │   │       │   │           ├── _config.json
│       │   │       │   │           ├── null01-errors.yaml
│       │   │       │   │           ├── null01-input.svelte
│       │   │       │   │           ├── sass01-errors.yaml
│       │   │       │   │           ├── sass01-input.svelte
│       │   │       │   │           ├── scss-as-script-lang01-errors.yaml
│       │   │       │   │           └── scss-as-script-lang01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── non-svelte/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   ├── non-svelte01-input.ts
│       │   │       │       │   └── non-svelte02-input.js
│       │   │       │       ├── script/
│       │   │       │       │   ├── enforce/
│       │   │       │       │   │   ├── _config.json
│       │   │       │       │   │   └── script-present01-input.svelte
│       │   │       │       │   ├── javascript/
│       │   │       │       │   │   ├── _config.json
│       │   │       │       │   │   ├── correct-lang01-input.svelte
│       │   │       │       │   │   ├── no-script01-input.svelte
│       │   │       │       │   │   └── style-lang01-input.svelte
│       │   │       │       │   ├── js/
│       │   │       │       │   │   ├── _config.json
│       │   │       │       │   │   ├── correct-lang01-input.svelte
│       │   │       │       │   │   ├── no-script01-input.svelte
│       │   │       │       │   │   └── style-lang01-input.svelte
│       │   │       │       │   ├── multiple/
│       │   │       │       │   │   ├── _config.json
│       │   │       │       │   │   ├── correct-lang01-input.svelte
│       │   │       │       │   │   ├── no-script01-input.svelte
│       │   │       │       │   │   └── style-lang01-input.svelte
│       │   │       │       │   ├── null/
│       │   │       │       │   │   ├── _config.json
│       │   │       │       │   │   ├── no-lang01-input.svelte
│       │   │       │       │   │   ├── no-script01-input.svelte
│       │   │       │       │   │   └── style-lang01-input.svelte
│       │   │       │       │   ├── shorthand/
│       │   │       │       │   │   ├── _config.json
│       │   │       │       │   │   ├── correct-lang01-input.svelte
│       │   │       │       │   │   ├── no-script01-input.svelte
│       │   │       │       │   │   └── style-lang01-input.svelte
│       │   │       │       │   ├── ts/
│       │   │       │       │   │   ├── _config.json
│       │   │       │       │   │   ├── correct-lang01-input.svelte
│       │   │       │       │   │   ├── correct-lang02-input.svelte
│       │   │       │       │   │   ├── correct-lang03-input.svelte
│       │   │       │       │   │   ├── no-script01-input.svelte
│       │   │       │       │   │   ├── style-lang01-input.svelte
│       │   │       │       │   │   ├── style-lang02-input.svelte
│       │   │       │       │   │   └── style-lang03-input.svelte
│       │   │       │       │   └── typescript/
│       │   │       │       │       ├── _config.json
│       │   │       │       │       ├── correct-lang01-input.svelte
│       │   │       │       │       ├── no-script01-input.svelte
│       │   │       │       │       └── style-lang01-input.svelte
│       │   │       │       └── style/
│       │   │       │           ├── enforce/
│       │   │       │           │   ├── _config.json
│       │   │       │           │   └── style-present01-input.svelte
│       │   │       │           ├── null/
│       │   │       │           │   ├── _config.json
│       │   │       │           │   ├── no-lang01-input.svelte
│       │   │       │           │   ├── no-style01-input.svelte
│       │   │       │           │   └── script-lang01-input.svelte
│       │   │       │           ├── sass/
│       │   │       │           │   ├── _config.json
│       │   │       │           │   ├── correct-lang01-input.svelte
│       │   │       │           │   ├── no-style01-input.svelte
│       │   │       │           │   └── script-lang01-input.svelte
│       │   │       │           └── scss/
│       │   │       │               ├── _config.json
│       │   │       │               ├── correct-lang01-input.svelte
│       │   │       │               ├── no-style01-input.svelte
│       │   │       │               └── script-lang01-input.svelte
│       │   │       ├── button-has-type/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── button-false/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── invalid-button-errors.yaml
│       │   │       │   │   │   └── invalid-button-input.svelte
│       │   │       │   │   ├── reset-false/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── invalid-reset-errors.yaml
│       │   │       │   │   │   └── invalid-reset-input.svelte
│       │   │       │   │   ├── submit-false/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── invalid-submit-errors.yaml
│       │   │       │   │   │   └── invalid-submit-input.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   └── test01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       └── test01-input.svelte
│       │   │       ├── consistent-selector-style/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── global/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── should-be-id01-errors.yaml
│       │   │       │   │   │   ├── should-be-id01-input.svelte
│       │   │       │   │   │   ├── should-be-type01-errors.yaml
│       │   │       │   │   │   └── should-be-type01-input.svelte
│       │   │       │   │   ├── id-class-type/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── should-be-id-combination01-errors.yaml
│       │   │       │   │   │   ├── should-be-id-combination01-input.svelte
│       │   │       │   │   │   ├── should-be-id01-errors.yaml
│       │   │       │   │   │   └── should-be-id01-input.svelte
│       │   │       │   │   ├── id-type-class/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── should-be-id01-errors.yaml
│       │   │       │   │   │   ├── should-be-id01-input.svelte
│       │   │       │   │   │   ├── should-be-type01-errors.yaml
│       │   │       │   │   │   └── should-be-type01-input.svelte
│       │   │       │   │   ├── type-class-id/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── should-be-type01-errors.yaml
│       │   │       │   │   │   └── should-be-type01-input.svelte
│       │   │       │   │   └── type-id-class/
│       │   │       │   │       ├── should-be-id-with-components01-errors.yaml
│       │   │       │   │       ├── should-be-id-with-components01-input.svelte
│       │   │       │   │       ├── should-be-id01-errors.yaml
│       │   │       │   │       ├── should-be-id01-input.svelte
│       │   │       │   │       ├── should-be-type-with-components01-errors.yaml
│       │   │       │   │       ├── should-be-type-with-components01-input.svelte
│       │   │       │   │       ├── should-be-type01-errors.yaml
│       │   │       │   │       └── should-be-type01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── class-id-type/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   ├── class-scss01-input.svelte
│       │   │       │       │   └── class01-input.svelte
│       │   │       │       ├── class-type-id/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   ├── class-scss01-input.svelte
│       │   │       │       │   └── class01-input.svelte
│       │   │       │       ├── id-class-type/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   ├── class01-input.svelte
│       │   │       │       │   ├── id-scss01-input.svelte
│       │   │       │       │   ├── id01-input.svelte
│       │   │       │       │   └── svelte-5/
│       │   │       │       │       ├── _requirements.json
│       │   │       │       │       └── class01-input.svelte
│       │   │       │       ├── id-type-class/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   ├── class01-input.svelte
│       │   │       │       │   ├── id-scss01-input.svelte
│       │   │       │       │   ├── id01-input.svelte
│       │   │       │       │   └── type01-input.svelte
│       │   │       │       ├── type/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   ├── class01-input.svelte
│       │   │       │       │   ├── id01-input.svelte
│       │   │       │       │   ├── type-scss01-input.svelte
│       │   │       │       │   └── type01-input.svelte
│       │   │       │       ├── type-class-id/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   ├── class01-input.svelte
│       │   │       │       │   ├── type-scss01-input.svelte
│       │   │       │       │   └── type01-input.svelte
│       │   │       │       ├── type-id/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   ├── class01-input.svelte
│       │   │       │       │   ├── id01-input.svelte
│       │   │       │       │   ├── type-scss01-input.svelte
│       │   │       │       │   └── type01-input.svelte
│       │   │       │       └── type-id-class/
│       │   │       │           ├── class-dynamic-prefix01-input.svelte
│       │   │       │           ├── class-dynamic-suffix01-input.svelte
│       │   │       │           ├── class-dynamic-universal01-input.svelte
│       │   │       │           ├── class01-input.svelte
│       │   │       │           ├── global01-input.svelte
│       │   │       │           ├── id-dynamic-prefix01-input.svelte
│       │   │       │           ├── id-dynamic-suffix01-input.svelte
│       │   │       │           ├── id-dynamic-universal01-input.svelte
│       │   │       │           ├── id01-input.svelte
│       │   │       │           ├── recursive-loop01-input.svelte
│       │   │       │           ├── type-scss01-input.svelte
│       │   │       │           └── type01-input.svelte
│       │   │       ├── derived-has-same-inputs-outputs/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   └── test01-input.js
│       │   │       │   └── valid/
│       │   │       │       └── test01-input.js
│       │   │       ├── experimental-require-slot-types/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── no-slot-types01-errors.yaml
│       │   │       │   │   └── no-slot-types01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── has-slot-types-with-alias01-input.svelte
│       │   │       │       ├── has-slot-types01-input.svelte
│       │   │       │       ├── named-slot01-input.svelte
│       │   │       │       ├── no-slots01-input.svelte
│       │   │       │       └── no-typescript01-input.svelte
│       │   │       ├── experimental-require-strict-events/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── _requirements.json
│       │   │       │   │   ├── no-strict-events01-errors.yaml
│       │   │       │   │   └── no-strict-events01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── _requirements.json
│       │   │       │       ├── has-events-interface01-input.svelte
│       │   │       │       ├── has-events-type-alias01-input.svelte
│       │   │       │       ├── has-strict-events01-input.svelte
│       │   │       │       ├── no-typescript01-input.svelte
│       │   │       │       └── script-module-context01-input.svelte
│       │   │       ├── first-attribute-linebreak/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── below/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── beside/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   └── test01-output.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── below/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── test01-input.svelte
│       │   │       │       ├── beside/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── test01-input.svelte
│       │   │       │       └── test01-input.svelte
│       │   │       ├── html-closing-bracket-new-line/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── multiline-never/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── self-closing/
│       │   │       │   │   │   ├── always/
│       │   │       │   │   │   │   ├── _config.json
│       │   │       │   │   │   │   ├── test-errors.yaml
│       │   │       │   │   │   │   ├── test-input.svelte
│       │   │       │   │   │   │   └── test-output.svelte
│       │   │       │   │   │   └── never/
│       │   │       │   │   │       ├── _config.json
│       │   │       │   │   │       ├── test-errors.yaml
│       │   │       │   │   │       ├── test-input.svelte
│       │   │       │   │   │       └── test-output.svelte
│       │   │       │   │   ├── singleline-always/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   ├── test01-output.svelte
│       │   │       │   │   ├── test02-errors.yaml
│       │   │       │   │   ├── test02-input.svelte
│       │   │       │   │   └── test02-output.svelte
│       │   │       │   └── valid/
│       │   │       │       └── test01-input.svelte
│       │   │       ├── html-closing-bracket-spacing/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── closing-ignore/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── closing-ignore-errors.yaml
│       │   │       │   │   │   ├── closing-ignore-input.svelte
│       │   │       │   │   │   └── closing-ignore-output.svelte
│       │   │       │   │   ├── end-ignore/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── end-ignore-errors.yaml
│       │   │       │   │   │   ├── end-ignore-input.svelte
│       │   │       │   │   │   └── end-ignore-output.svelte
│       │   │       │   │   ├── start-ignore/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── start-ignore-errors.yaml
│       │   │       │   │   │   ├── start-ignore-input.svelte
│       │   │       │   │   │   └── start-ignore-output.svelte
│       │   │       │   │   ├── test-01-errors.yaml
│       │   │       │   │   ├── test-01-input.svelte
│       │   │       │   │   └── test-01-output.svelte
│       │   │       │   └── valid/
│       │   │       │       └── test-01-input.svelte
│       │   │       ├── html-quotes/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── all-quotes/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   ├── test01-output.svelte
│       │   │       │   │   │   ├── test02-errors.yaml
│       │   │       │   │   │   ├── test02-input.svelte
│       │   │       │   │   │   └── test02-output.svelte
│       │   │       │   │   ├── avoid-invalid-unquoted-in-html/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── inline-handlers-errors.yaml
│       │   │       │   │   │   ├── inline-handlers-input.svelte
│       │   │       │   │   │   ├── inline-handlers-output.svelte
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   ├── test01-output.svelte
│       │   │       │   │   │   ├── test02-errors.yaml
│       │   │       │   │   │   ├── test02-input.svelte
│       │   │       │   │   │   └── test02-output.svelte
│       │   │       │   │   ├── single/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   └── test01-output.svelte
│       │   │       │   └── valid/
│       │   │       │       └── test01-input.svelte
│       │   │       ├── html-self-closing/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── component-never/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── component-never-errors.yaml
│       │   │       │   │   │   ├── component-never-input.svelte
│       │   │       │   │   │   └── component-never-output.svelte
│       │   │       │   │   ├── math-never/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── svelte-never-errors.yaml
│       │   │       │   │   │   ├── svelte-never-input.svelte
│       │   │       │   │   │   └── svelte-never-output.svelte
│       │   │       │   │   ├── normal-always/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── component-never-errors.yaml
│       │   │       │   │   │   ├── component-never-input.svelte
│       │   │       │   │   │   └── component-never-output.svelte
│       │   │       │   │   ├── normal-ignore/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── normal-any-errors.yaml
│       │   │       │   │   │   ├── normal-any-input.svelte
│       │   │       │   │   │   └── normal-any-output.svelte
│       │   │       │   │   ├── normal-never/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── component-never-errors.yaml
│       │   │       │   │   │   ├── component-never-input.svelte
│       │   │       │   │   │   └── component-never-output.svelte
│       │   │       │   │   ├── presets/
│       │   │       │   │   │   ├── html/
│       │   │       │   │   │   │   ├── _config.json
│       │   │       │   │   │   │   ├── preset-html-errors.yaml
│       │   │       │   │   │   │   ├── preset-html-input.svelte
│       │   │       │   │   │   │   └── preset-html-output.svelte
│       │   │       │   │   │   └── none/
│       │   │       │   │   │       ├── _config.json
│       │   │       │   │   │       ├── preset-none-errors.yaml
│       │   │       │   │   │       ├── preset-none-input.svelte
│       │   │       │   │   │       └── preset-none-output.svelte
│       │   │       │   │   ├── svelte-never/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── svelte-never-errors.yaml
│       │   │       │   │   │   ├── svelte-never-input.svelte
│       │   │       │   │   │   └── svelte-never-output.svelte
│       │   │       │   │   ├── svg-never/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── svelte-never-errors.yaml
│       │   │       │   │   │   ├── svelte-never-input.svelte
│       │   │       │   │   │   └── svelte-never-output.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   ├── test01-output.svelte
│       │   │       │   │   └── void-never/
│       │   │       │   │       ├── _config.json
│       │   │       │   │       ├── void-never-errors.yaml
│       │   │       │   │       ├── void-never-input.svelte
│       │   │       │   │       └── void-never-output.svelte
│       │   │       │   └── valid/
│       │   │       │       └── test01-input.svelte
│       │   │       ├── indent/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── 4-indent/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── align-attributes-vertically/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── attrs01-errors.yaml
│       │   │       │   │   │   ├── attrs01-input.svelte
│       │   │       │   │   │   └── attrs01-output.svelte
│       │   │       │   │   ├── await01-errors.yaml
│       │   │       │   │   ├── await01-input.svelte
│       │   │       │   │   ├── await01-output.svelte
│       │   │       │   │   ├── const-tag01-errors.yaml
│       │   │       │   │   ├── const-tag01-input.svelte
│       │   │       │   │   ├── const-tag01-output.svelte
│       │   │       │   │   ├── deubg-tag01-errors.yaml
│       │   │       │   │   ├── deubg-tag01-input.svelte
│       │   │       │   │   ├── deubg-tag01-output.svelte
│       │   │       │   │   ├── each01-errors.yaml
│       │   │       │   │   ├── each01-input.svelte
│       │   │       │   │   ├── each01-output.svelte
│       │   │       │   │   ├── html-text01-errors.yaml
│       │   │       │   │   ├── html-text01-input.svelte
│       │   │       │   │   ├── html-text01-output.svelte
│       │   │       │   │   ├── html-text02-errors.yaml
│       │   │       │   │   ├── html-text02-input.svelte
│       │   │       │   │   ├── html-text02-output.svelte
│       │   │       │   │   ├── if01-errors.yaml
│       │   │       │   │   ├── if01-input.svelte
│       │   │       │   │   ├── if01-output.svelte
│       │   │       │   │   ├── import-declaration01-errors.yaml
│       │   │       │   │   ├── import-declaration01-input.svelte
│       │   │       │   │   ├── import-declaration01-output.svelte
│       │   │       │   │   ├── indent-script/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── indent-script-errors.yaml
│       │   │       │   │   │   ├── indent-script-input.svelte
│       │   │       │   │   │   └── indent-script-output.svelte
│       │   │       │   │   ├── key01-errors.yaml
│       │   │       │   │   ├── key01-input.svelte
│       │   │       │   │   ├── key01-output.svelte
│       │   │       │   │   ├── script-array01-errors.yaml
│       │   │       │   │   ├── script-array01-input.svelte
│       │   │       │   │   ├── script-array01-output.svelte
│       │   │       │   │   ├── script-binary01-errors.yaml
│       │   │       │   │   ├── script-binary01-input.svelte
│       │   │       │   │   ├── script-binary01-output.svelte
│       │   │       │   │   ├── script-binary02-errors.yaml
│       │   │       │   │   ├── script-binary02-input.svelte
│       │   │       │   │   ├── script-binary02-output.svelte
│       │   │       │   │   ├── script-binary03-errors.yaml
│       │   │       │   │   ├── script-binary03-input.svelte
│       │   │       │   │   ├── script-binary03-output.svelte
│       │   │       │   │   ├── script-block01-errors.yaml
│       │   │       │   │   ├── script-block01-input.svelte
│       │   │       │   │   ├── script-block01-output.svelte
│       │   │       │   │   ├── script-break01-errors.yaml
│       │   │       │   │   ├── script-break01-input.svelte
│       │   │       │   │   ├── script-break01-output.svelte
│       │   │       │   │   ├── script-call01-errors.yaml
│       │   │       │   │   ├── script-call01-input.svelte
│       │   │       │   │   ├── script-call01-output.svelte
│       │   │       │   │   ├── script-class01-errors.yaml
│       │   │       │   │   ├── script-class01-input.svelte
│       │   │       │   │   ├── script-class01-output.svelte
│       │   │       │   │   ├── script-conditional01-errors.yaml
│       │   │       │   │   ├── script-conditional01-input.svelte
│       │   │       │   │   ├── script-conditional01-output.svelte
│       │   │       │   │   ├── script-do-while01-errors.yaml
│       │   │       │   │   ├── script-do-while01-input.svelte
│       │   │       │   │   ├── script-do-while01-output.svelte
│       │   │       │   │   ├── script-export01-errors.yaml
│       │   │       │   │   ├── script-export01-input.svelte
│       │   │       │   │   ├── script-export01-output.svelte
│       │   │       │   │   ├── script-export02-errors.yaml
│       │   │       │   │   ├── script-export02-input.svelte
│       │   │       │   │   ├── script-export02-output.svelte
│       │   │       │   │   ├── script-expr01-errors.yaml
│       │   │       │   │   ├── script-expr01-input.svelte
│       │   │       │   │   ├── script-expr01-output.svelte
│       │   │       │   │   ├── script-for01-errors.yaml
│       │   │       │   │   ├── script-for01-input.svelte
│       │   │       │   │   ├── script-for01-output.svelte
│       │   │       │   │   ├── script-function01-errors.yaml
│       │   │       │   │   ├── script-function01-input.svelte
│       │   │       │   │   ├── script-function01-output.svelte
│       │   │       │   │   ├── script-if01-errors.yaml
│       │   │       │   │   ├── script-if01-input.svelte
│       │   │       │   │   ├── script-if01-output.svelte
│       │   │       │   │   ├── script-import01-errors.yaml
│       │   │       │   │   ├── script-import01-input.svelte
│       │   │       │   │   ├── script-import01-output.svelte
│       │   │       │   │   ├── script-import02-errors.yaml
│       │   │       │   │   ├── script-import02-input.svelte
│       │   │       │   │   ├── script-import02-output.svelte
│       │   │       │   │   ├── script-member01-errors.yaml
│       │   │       │   │   ├── script-member01-input.svelte
│       │   │       │   │   ├── script-member01-output.svelte
│       │   │       │   │   ├── script-methods01-errors.yaml
│       │   │       │   │   ├── script-methods01-input.svelte
│       │   │       │   │   ├── script-methods01-output.svelte
│       │   │       │   │   ├── script-prop01-errors.yaml
│       │   │       │   │   ├── script-prop01-input.svelte
│       │   │       │   │   ├── script-prop01-output.svelte
│       │   │       │   │   ├── script-switch01-errors.yaml
│       │   │       │   │   ├── script-switch01-input.svelte
│       │   │       │   │   ├── script-switch01-output.svelte
│       │   │       │   │   ├── script-try01-errors.yaml
│       │   │       │   │   ├── script-try01-input.svelte
│       │   │       │   │   ├── script-try01-output.svelte
│       │   │       │   │   ├── script-unary01-errors.yaml
│       │   │       │   │   ├── script-unary01-input.svelte
│       │   │       │   │   ├── script-unary01-output.svelte
│       │   │       │   │   ├── script-yield-expression01-errors.yaml
│       │   │       │   │   ├── script-yield-expression01-input.svelte
│       │   │       │   │   ├── script-yield-expression01-output.svelte
│       │   │       │   │   ├── snippets01-errors.yaml
│       │   │       │   │   ├── snippets01-input.svelte
│       │   │       │   │   ├── snippets01-output.svelte
│       │   │       │   │   ├── snippets01-requirements.json
│       │   │       │   │   ├── style-directive01-errors.yaml
│       │   │       │   │   ├── style-directive01-input.svelte
│       │   │       │   │   ├── style-directive01-output.svelte
│       │   │       │   │   ├── switch-case/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── script-switch01-errors.yaml
│       │   │       │   │   │   ├── script-switch01-input.svelte
│       │   │       │   │   │   └── script-switch01-output.svelte
│       │   │       │   │   ├── tab-indent/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   ├── test01-output.svelte
│       │   │       │   │   │   ├── test02-errors.yaml
│       │   │       │   │   │   ├── test02-input.svelte
│       │   │       │   │   │   └── test02-output.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   ├── test01-output.svelte
│       │   │       │   │   ├── ts/
│       │   │       │   │   │   ├── ts-class01-errors.yaml
│       │   │       │   │   │   ├── ts-class01-input.svelte
│       │   │       │   │   │   ├── ts-class01-output.svelte
│       │   │       │   │   │   ├── ts-class02-errors.yaml
│       │   │       │   │   │   ├── ts-class02-input.svelte
│       │   │       │   │   │   ├── ts-class02-output.svelte
│       │   │       │   │   │   ├── ts-class03-errors.yaml
│       │   │       │   │   │   ├── ts-class03-input.svelte
│       │   │       │   │   │   ├── ts-class03-output.svelte
│       │   │       │   │   │   ├── ts-conditional-type01-errors.yaml
│       │   │       │   │   │   ├── ts-conditional-type01-input.svelte
│       │   │       │   │   │   ├── ts-conditional-type01-output.svelte
│       │   │       │   │   │   ├── ts-d-ts-eslint-errors.yaml
│       │   │       │   │   │   ├── ts-d-ts-eslint-input.svelte
│       │   │       │   │   │   ├── ts-d-ts-eslint-output.svelte
│       │   │       │   │   │   ├── ts-decorator01-errors.yaml
│       │   │       │   │   │   ├── ts-decorator01-input.svelte
│       │   │       │   │   │   ├── ts-decorator01-output.svelte
│       │   │       │   │   │   ├── ts-decorator02-errors.yaml
│       │   │       │   │   │   ├── ts-decorator02-input.svelte
│       │   │       │   │   │   ├── ts-decorator02-output.svelte
│       │   │       │   │   │   ├── ts-enum01-errors.yaml
│       │   │       │   │   │   ├── ts-enum01-input.svelte
│       │   │       │   │   │   ├── ts-enum01-output.svelte
│       │   │       │   │   │   ├── ts-function01-errors.yaml
│       │   │       │   │   │   ├── ts-function01-input.svelte
│       │   │       │   │   │   ├── ts-function01-output.svelte
│       │   │       │   │   │   ├── ts-function02-errors.yaml
│       │   │       │   │   │   ├── ts-function02-input.svelte
│       │   │       │   │   │   ├── ts-function02-output.svelte
│       │   │       │   │   │   ├── ts-import-export01-errors.yaml
│       │   │       │   │   │   ├── ts-import-export01-input.svelte
│       │   │       │   │   │   ├── ts-import-export01-output.svelte
│       │   │       │   │   │   ├── ts-import-type01-errors.yaml
│       │   │       │   │   │   ├── ts-import-type01-input.svelte
│       │   │       │   │   │   ├── ts-import-type01-output.svelte
│       │   │       │   │   │   ├── ts-import-type01-requirements.json
│       │   │       │   │   │   ├── ts-interface01-errors.yaml
│       │   │       │   │   │   ├── ts-interface01-input.svelte
│       │   │       │   │   │   ├── ts-interface01-output.svelte
│       │   │       │   │   │   ├── ts-interface02-errors.yaml
│       │   │       │   │   │   ├── ts-interface02-input.svelte
│       │   │       │   │   │   ├── ts-interface02-output.svelte
│       │   │       │   │   │   ├── ts-interface03-errors.yaml
│       │   │       │   │   │   ├── ts-interface03-input.svelte
│       │   │       │   │   │   ├── ts-interface03-output.svelte
│       │   │       │   │   │   ├── ts-static-block01-errors.yaml
│       │   │       │   │   │   ├── ts-static-block01-input.svelte
│       │   │       │   │   │   ├── ts-static-block01-output.svelte
│       │   │       │   │   │   ├── ts-template-literal-type01-errors.yaml
│       │   │       │   │   │   ├── ts-template-literal-type01-input.svelte
│       │   │       │   │   │   ├── ts-template-literal-type01-output.svelte
│       │   │       │   │   │   ├── ts-type-annotation01-errors.yaml
│       │   │       │   │   │   ├── ts-type-annotation01-input.svelte
│       │   │       │   │   │   ├── ts-type-annotation01-output.svelte
│       │   │       │   │   │   ├── ts-type-annotation02-errors.yaml
│       │   │       │   │   │   ├── ts-type-annotation02-input.svelte
│       │   │       │   │   │   ├── ts-type-annotation02-output.svelte
│       │   │       │   │   │   ├── ts-type-annotation03-errors.yaml
│       │   │       │   │   │   ├── ts-type-annotation03-input.svelte
│       │   │       │   │   │   ├── ts-type-annotation03-output.svelte
│       │   │       │   │   │   ├── ts-type-only-import-export01-errors.yaml
│       │   │       │   │   │   ├── ts-type-only-import-export01-input.svelte
│       │   │       │   │   │   ├── ts-type-only-import-export01-output.svelte
│       │   │       │   │   │   ├── ts-type-only-import-export02-errors.yaml
│       │   │       │   │   │   ├── ts-type-only-import-export02-input.svelte
│       │   │       │   │   │   ├── ts-type-only-import-export02-output.svelte
│       │   │       │   │   │   ├── ts-type-only-import-export03-errors.yaml
│       │   │       │   │   │   ├── ts-type-only-import-export03-input.svelte
│       │   │       │   │   │   ├── ts-type-only-import-export03-output.svelte
│       │   │       │   │   │   ├── ts-type-parameters01-errors.yaml
│       │   │       │   │   │   ├── ts-type-parameters01-input.svelte
│       │   │       │   │   │   ├── ts-type-parameters01-output.svelte
│       │   │       │   │   │   ├── ts-type-parameters02-errors.yaml
│       │   │       │   │   │   ├── ts-type-parameters02-input.svelte
│       │   │       │   │   │   ├── ts-type-parameters02-output.svelte
│       │   │       │   │   │   ├── ts-types01-errors.yaml
│       │   │       │   │   │   ├── ts-types01-input.svelte
│       │   │       │   │   │   ├── ts-types01-output.svelte
│       │   │       │   │   │   ├── ts-types02-errors.yaml
│       │   │       │   │   │   ├── ts-types02-input.svelte
│       │   │       │   │   │   ├── ts-types02-output.svelte
│       │   │       │   │   │   ├── ts-types03-errors.yaml
│       │   │       │   │   │   ├── ts-types03-input.svelte
│       │   │       │   │   │   ├── ts-types03-output.svelte
│       │   │       │   │   │   ├── ts-union01-errors.yaml
│       │   │       │   │   │   ├── ts-union01-input.svelte
│       │   │       │   │   │   ├── ts-union01-output.svelte
│       │   │       │   │   │   ├── ts-union02-errors.yaml
│       │   │       │   │   │   ├── ts-union02-input.svelte
│       │   │       │   │   │   └── ts-union02-output.svelte
│       │   │       │   │   └── ts-v5/
│       │   │       │   │       ├── ts-abstract-accessor-property-errors.yaml
│       │   │       │   │       ├── ts-abstract-accessor-property-input.svelte
│       │   │       │   │       ├── ts-abstract-accessor-property-output.svelte
│       │   │       │   │       ├── ts-accessor-property01-errors.yaml
│       │   │       │   │       ├── ts-accessor-property01-input.svelte
│       │   │       │   │       ├── ts-accessor-property01-output.svelte
│       │   │       │   │       ├── ts-accessor-property02-errors.yaml
│       │   │       │   │       ├── ts-accessor-property02-input.svelte
│       │   │       │   │       ├── ts-accessor-property02-output.svelte
│       │   │       │   │       ├── ts-accessor-property03-errors.yaml
│       │   │       │   │       ├── ts-accessor-property03-input.svelte
│       │   │       │   │       ├── ts-accessor-property03-output.svelte
│       │   │       │   │       ├── ts-accessor-property04-errors.yaml
│       │   │       │   │       ├── ts-accessor-property04-input.svelte
│       │   │       │   │       ├── ts-accessor-property04-output.svelte
│       │   │       │   │       ├── ts-accessor-property05-errors.yaml
│       │   │       │   │       ├── ts-accessor-property05-input.svelte
│       │   │       │   │       ├── ts-accessor-property05-output.svelte
│       │   │       │   │       ├── ts-import-assertion01-errors.yaml
│       │   │       │   │       ├── ts-import-assertion01-input.svelte
│       │   │       │   │       ├── ts-import-assertion01-output.svelte
│       │   │       │   │       ├── ts-import-assertion01-requirements.json
│       │   │       │   │       ├── ts-import-assertion02-errors.yaml
│       │   │       │   │       ├── ts-import-assertion02-input.svelte
│       │   │       │   │       ├── ts-import-assertion02-output.svelte
│       │   │       │   │       ├── ts-import-assertion03-errors.yaml
│       │   │       │   │       ├── ts-import-assertion03-input.svelte
│       │   │       │   │       ├── ts-import-assertion03-output.svelte
│       │   │       │   │       ├── ts-import-assertion03-requirements.json
│       │   │       │   │       ├── ts-import-assertion04-errors.yaml
│       │   │       │   │       ├── ts-import-assertion04-input.svelte
│       │   │       │   │       ├── ts-import-assertion04-output.svelte
│       │   │       │   │       ├── ts-import-assertion04-requirements.json
│       │   │       │   │       ├── ts-import-attributes01-errors.yaml
│       │   │       │   │       ├── ts-import-attributes01-input.svelte
│       │   │       │   │       ├── ts-import-attributes01-output.svelte
│       │   │       │   │       ├── ts-import-attributes01-requirements.json
│       │   │       │   │       ├── ts-import-attributes02-errors.yaml
│       │   │       │   │       ├── ts-import-attributes02-input.svelte
│       │   │       │   │       ├── ts-import-attributes02-output.svelte
│       │   │       │   │       ├── ts-import-attributes03-errors.yaml
│       │   │       │   │       ├── ts-import-attributes03-input.svelte
│       │   │       │   │       ├── ts-import-attributes03-output.svelte
│       │   │       │   │       ├── ts-import-attributes03-requirements.json
│       │   │       │   │       ├── ts-import-attributes04-errors.yaml
│       │   │       │   │       ├── ts-import-attributes04-input.svelte
│       │   │       │   │       ├── ts-import-attributes04-output.svelte
│       │   │       │   │       ├── ts-import-attributes04-requirements.json
│       │   │       │   │       ├── ts-instantiation-expression01-errors.yaml
│       │   │       │   │       ├── ts-instantiation-expression01-input.svelte
│       │   │       │   │       ├── ts-instantiation-expression01-output.svelte
│       │   │       │   │       ├── ts-satisfies-operators01-errors.yaml
│       │   │       │   │       ├── ts-satisfies-operators01-input.svelte
│       │   │       │   │       └── ts-satisfies-operators01-output.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── indent-script-input.svelte
│       │   │       │       ├── inline-style-tag-input.svelte
│       │   │       │       ├── pug01-input.svelte
│       │   │       │       ├── test01-input.svelte
│       │   │       │       └── ts/
│       │   │       │           ├── ts-import-type01-input.svelte
│       │   │       │           └── ts-import-type01-requirements.json
│       │   │       ├── infinite-reactive-loop/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── await/
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   └── test01-input.svelte
│       │   │       │   │   ├── function-call/
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   ├── test02-errors.yaml
│       │   │       │   │   │   ├── test02-input.svelte
│       │   │       │   │   │   ├── test03-errors.yaml
│       │   │       │   │   │   ├── test03-input.svelte
│       │   │       │   │   │   ├── test04-errors.yaml
│       │   │       │   │   │   ├── test04-input.svelte
│       │   │       │   │   │   ├── test05-errors.yaml
│       │   │       │   │   │   ├── test05-input.svelte
│       │   │       │   │   │   ├── test06-errors.yaml
│       │   │       │   │   │   ├── test06-input.svelte
│       │   │       │   │   │   ├── test07-errors.yaml
│       │   │       │   │   │   ├── test07-input.svelte
│       │   │       │   │   │   ├── test08-errors.yaml
│       │   │       │   │   │   ├── test08-input.svelte
│       │   │       │   │   │   ├── test09-errors.yaml
│       │   │       │   │   │   ├── test09-input.svelte
│       │   │       │   │   │   ├── test10-errors.yaml
│       │   │       │   │   │   ├── test10-input.svelte
│       │   │       │   │   │   ├── test11-errors.yaml
│       │   │       │   │   │   └── test11-input.svelte
│       │   │       │   │   ├── promise/
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   ├── test02-errors.yaml
│       │   │       │   │   │   ├── test02-input.svelte
│       │   │       │   │   │   ├── test03-errors.yaml
│       │   │       │   │   │   ├── test03-input.svelte
│       │   │       │   │   │   ├── test04-errors.yaml
│       │   │       │   │   │   ├── test04-input.svelte
│       │   │       │   │   │   ├── test05-errors.yaml
│       │   │       │   │   │   ├── test05-input.svelte
│       │   │       │   │   │   ├── test06-errors.yaml
│       │   │       │   │   │   └── test06-input.svelte
│       │   │       │   │   ├── queueMicrotask/
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   └── test01-input.svelte
│       │   │       │   │   ├── setInterval/
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   └── test01-input.svelte
│       │   │       │   │   ├── setTimeout/
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   ├── test02-errors.yaml
│       │   │       │   │   │   └── test02-input.svelte
│       │   │       │   │   └── tick/
│       │   │       │   │       ├── test01-errors.yaml
│       │   │       │   │       ├── test01-input.svelte
│       │   │       │   │       ├── test02-errors.yaml
│       │   │       │   │       └── test02-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── recursive-reference-input.svelte
│       │   │       │       ├── test01-input.svelte
│       │   │       │       ├── test02-input.svelte
│       │   │       │       ├── test03-input.svelte
│       │   │       │       ├── test04-input.svelte
│       │   │       │       ├── test05-input.svelte
│       │   │       │       ├── test06-input.svelte
│       │   │       │       ├── test07-input.svelte
│       │   │       │       └── test08-input.svelte
│       │   │       ├── max-attributes-per-line/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── max3/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   └── test01-output.svelte
│       │   │       │   └── valid/
│       │   │       │       └── test01-input.svelte
│       │   │       ├── max-lines-per-block/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── all-blocks-exceed/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── all01-errors.yaml
│       │   │       │   │   │   └── all01-input.svelte
│       │   │       │   │   ├── mixed-comment-code/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── mixed01-errors.yaml
│       │   │       │   │   │   └── mixed01-input.svelte
│       │   │       │   │   ├── script-too-long/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── script01-errors.yaml
│       │   │       │   │   │   └── script01-input.svelte
│       │   │       │   │   ├── skip-not-enough/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── skip01-errors.yaml
│       │   │       │   │   │   └── skip01-input.svelte
│       │   │       │   │   ├── style-too-long/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── style01-errors.yaml
│       │   │       │   │   │   └── style01-input.svelte
│       │   │       │   │   └── template-too-long/
│       │   │       │   │       ├── _config.json
│       │   │       │   │       ├── template01-errors.yaml
│       │   │       │   │       └── template01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── default-config.json
│       │   │       │       ├── default-input.svelte
│       │   │       │       ├── empty-block/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── empty01-input.svelte
│       │   │       │       ├── no-style/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── no-style01-input.svelte
│       │   │       │       ├── only-style/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── only-style01-input.svelte
│       │   │       │       ├── skip-blank-lines/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── skip-blank01-input.svelte
│       │   │       │       ├── skip-both/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── skip-both01-input.svelte
│       │   │       │       └── skip-comments/
│       │   │       │           ├── _config.json
│       │   │       │           └── skip-comments01-input.svelte
│       │   │       ├── mustache-spacing/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── always/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── snippet-render01-errors.yaml
│       │   │       │   │   │   ├── snippet-render01-input.svelte
│       │   │       │   │   │   ├── snippet-render01-output.svelte
│       │   │       │   │   │   ├── snippet-render01-requirements.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── always-after-expression/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── snippet-render01-errors.yaml
│       │   │       │   │   │   ├── snippet-render01-input.svelte
│       │   │       │   │   │   ├── snippet-render01-output.svelte
│       │   │       │   │   │   ├── snippet-render01-requirements.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── snippet-render01-errors.yaml
│       │   │       │   │   ├── snippet-render01-input.svelte
│       │   │       │   │   ├── snippet-render01-output.svelte
│       │   │       │   │   ├── snippet-render01-requirements.json
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   └── test01-output.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── always/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   ├── snippet-render01-input.svelte
│       │   │       │       │   ├── snippet-render01-requirements.json
│       │   │       │       │   └── test01-input.svelte
│       │   │       │       ├── snippet-render01-input.svelte
│       │   │       │       ├── snippet-render01-requirements.json
│       │   │       │       └── test01-input.svelte
│       │   │       ├── no-add-event-listener/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── _requirements.json
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   ├── typescript01-errors.yaml
│       │   │       │   │   └── typescript01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── _requirements.json
│       │   │       │       └── test01-input.svelte
│       │   │       ├── no-at-debug-tags/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── debug01-errors.yaml
│       │   │       │   │   ├── debug01-input.svelte
│       │   │       │   │   ├── debug02-errors.yaml
│       │   │       │   │   └── debug02-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── html-input.svelte
│       │   │       │       └── text-mustash-input.svelte
│       │   │       ├── no-at-html-tags/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── html-errors.yaml
│       │   │       │   │   └── html-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── debug01-input.svelte
│       │   │       │       ├── debug02-input.svelte
│       │   │       │       └── text-mustash-input.svelte
│       │   │       ├── no-dom-manipulating/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── chain01-errors.yaml
│       │   │       │   │   ├── chain01-input.svelte
│       │   │       │   │   ├── remove-text01-errors.yaml
│       │   │       │   │   ├── remove-text01-input.svelte
│       │   │       │   │   ├── remove01-errors.yaml
│       │   │       │   │   ├── remove01-input.svelte
│       │   │       │   │   ├── svelte-element01-errors.yaml
│       │   │       │   │   ├── svelte-element01-input.svelte
│       │   │       │   │   ├── well-known-method01-errors.yaml
│       │   │       │   │   ├── well-known-method01-input.svelte
│       │   │       │   │   ├── well-known-prop01-errors.yaml
│       │   │       │   │   └── well-known-prop01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── computed-member01-input.svelte
│       │   │       │       ├── loop01-input.svelte
│       │   │       │       ├── non-bind-this01-input.svelte
│       │   │       │       ├── non-element01-input.svelte
│       │   │       │       ├── read-prop01-input.svelte
│       │   │       │       ├── read-prop02-input.svelte
│       │   │       │       ├── remove-text01-input.svelte
│       │   │       │       ├── remove01-input.svelte
│       │   │       │       ├── unknown-method01-input.svelte
│       │   │       │       ├── unknown-prop01-input.svelte
│       │   │       │       └── unknown-var01-input.svelte
│       │   │       ├── no-dupe-else-if-blocks/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── simple-test01-errors.yaml
│       │   │       │   │   ├── simple-test01-input.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   ├── test02-errors.yaml
│       │   │       │   │   └── test02-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── test01-input.svelte
│       │   │       │       ├── test02-input.svelte
│       │   │       │       └── test03-input.svelte
│       │   │       ├── no-dupe-on-directives/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── inline-expression-errors.yaml
│       │   │       │   │   ├── inline-expression-input.svelte
│       │   │       │   │   ├── modifier-errors.yaml
│       │   │       │   │   ├── modifier-input.svelte
│       │   │       │   │   ├── multiple-element-errors.yaml
│       │   │       │   │   ├── multiple-element-input.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   ├── test02-errors.yaml
│       │   │       │   │   └── test02-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── test01-input.svelte
│       │   │       │       └── test02-input.svelte
│       │   │       ├── no-dupe-style-properties/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── ternary01-errors.yaml
│       │   │       │   │   ├── ternary01-input.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   └── test01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── empty01-input.svelte
│       │   │       │       ├── ternary01-input.svelte
│       │   │       │       ├── test01-input.svelte
│       │   │       │       └── test02-input.svelte
│       │   │       ├── no-dupe-use-directives/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── inline-expression-errors.yaml
│       │   │       │   │   ├── inline-expression-input.svelte
│       │   │       │   │   ├── multiple-element-errors.yaml
│       │   │       │   │   ├── multiple-element-input.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   ├── test02-errors.yaml
│       │   │       │   │   └── test02-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── inline-expression-input.svelte
│       │   │       │       └── test01-input.svelte
│       │   │       ├── no-dynamic-slot-name/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── bool-slot01-errors.yaml
│       │   │       │   │   ├── bool-slot01-input.svelte
│       │   │       │   │   ├── bool-slot01-output.svelte
│       │   │       │   │   ├── literal-slot01-errors.yaml
│       │   │       │   │   ├── literal-slot01-input.svelte
│       │   │       │   │   ├── literal-slot01-output.svelte
│       │   │       │   │   ├── multi-report01-errors.yaml
│       │   │       │   │   ├── multi-report01-input.svelte
│       │   │       │   │   ├── multi-report01-output.svelte
│       │   │       │   │   ├── recursive-loop01-errors.yaml
│       │   │       │   │   ├── recursive-loop01-input.svelte
│       │   │       │   │   ├── recursive-loop01-output.svelte
│       │   │       │   │   ├── var-slot01-errors.yaml
│       │   │       │   │   ├── var-slot01-input.svelte
│       │   │       │   │   └── var-slot01-output.svelte
│       │   │       │   └── valid/
│       │   │       │       └── slot01-input.svelte
│       │   │       ├── no-export-load-in-svelte-module-in-kit-pages/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── svelte-config/
│       │   │       │   │   │   └── test01/
│       │   │       │   │   │       ├── +page.svelte
│       │   │       │   │   │       ├── errors.yaml
│       │   │       │   │   │       └── svelte.config.js
│       │   │       │   │   ├── svelte-config-from-parser-options/
│       │   │       │   │   │   ├── +page.svelte
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   └── errors.yaml
│       │   │       │   │   ├── test01/
│       │   │       │   │   │   ├── +page.svelte
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   └── errors.yaml
│       │   │       │   │   └── test02/
│       │   │       │   │       ├── +page.svelte
│       │   │       │   │       ├── _config.json
│       │   │       │   │       └── errors.yaml
│       │   │       │   └── valid/
│       │   │       │       ├── not-page/
│       │   │       │       │   ├── +test01-input.svelte
│       │   │       │       │   ├── +test02-input.svelte
│       │   │       │       │   └── _config.json
│       │   │       │       ├── test01/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   └── _config.json
│       │   │       │       ├── test02/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   └── _config.json
│       │   │       │       ├── test03/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   └── _config.json
│       │   │       │       ├── test04/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   └── _config.json
│       │   │       │       ├── test05/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   └── _config.json
│       │   │       │       ├── test06/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   └── _config.json
│       │   │       │       ├── test07/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   └── _config.json
│       │   │       │       ├── test08/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   └── _config.json
│       │   │       │       ├── test09/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   └── _config.json
│       │   │       │       └── test10/
│       │   │       │           ├── +page.svelte
│       │   │       │           └── _config.json
│       │   │       ├── no-extra-reactive-curlies/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   ├── test02-errors.yaml
│       │   │       │   │   └── test02-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── test01-input.svelte
│       │   │       │       └── test02-input.svelte
│       │   │       ├── no-goto-without-base/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── aliased-goto01-errors.yaml
│       │   │       │   │   ├── aliased-goto01-input.svelte
│       │   │       │   │   ├── base-not-prefixed01-errors.yaml
│       │   │       │   │   ├── base-not-prefixed01-input.svelte
│       │   │       │   │   ├── no-base01-errors.yaml
│       │   │       │   │   └── no-base01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── absolute-uri01-input.svelte
│       │   │       │       ├── base-aliased01-input.svelte
│       │   │       │       └── base-prefixed01-input.svelte
│       │   │       ├── no-ignored-unsubscribe/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   └── test01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── test01-input.svelte
│       │   │       │       ├── test02-input.svelte
│       │   │       │       └── test03-input.svelte
│       │   │       ├── no-immutable-reactive-statements/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── immutable-let-errors.yaml
│       │   │       │   │   ├── immutable-let-input.svelte
│       │   │       │   │   ├── immutable01-errors.yaml
│       │   │       │   │   ├── immutable01-input.svelte
│       │   │       │   │   ├── readonly-export01-errors.yaml
│       │   │       │   │   └── readonly-export01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── builtin-vars01-input.svelte
│       │   │       │       ├── builtin-vars02-input.svelte
│       │   │       │       ├── mutable-member01-input.svelte
│       │   │       │       ├── mutable-member02-wth-bind-input.svelte
│       │   │       │       ├── mutable-member03-with-each-input.svelte
│       │   │       │       ├── mutable-member04-with-each-input.svelte
│       │   │       │       ├── mutable-member05-with-each-input.svelte
│       │   │       │       ├── mutable-member06-with-each-input.svelte
│       │   │       │       ├── mutable-member07-with-each-input.svelte
│       │   │       │       ├── mutable01-input.svelte
│       │   │       │       └── unknown01-input.svelte
│       │   │       ├── no-inline-styles/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── disallowed-transitions/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── transition01-errors.yaml
│       │   │       │   │   │   └── transition01-input.svelte
│       │   │       │   │   ├── style-attribute01-errors.yaml
│       │   │       │   │   ├── style-attribute01-input.svelte
│       │   │       │   │   ├── style-directive01-errors.yaml
│       │   │       │   │   └── style-directive01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── class-attribute01-input.svelte
│       │   │       │       ├── class-directive01-input.svelte
│       │   │       │       └── transition01-input.svelte
│       │   │       ├── no-inner-declarations/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── _config.json
│       │   │       │   │   ├── _requirements.json
│       │   │       │   │   ├── both/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── _requirements.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   └── test01-input.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   └── v8/
│       │   │       │   │       ├── _config.json
│       │   │       │   │       ├── _requirements.json
│       │   │       │   │       ├── both/
│       │   │       │   │       │   ├── _config.json
│       │   │       │   │       │   ├── _requirements.json
│       │   │       │   │       │   ├── test01-errors.yaml
│       │   │       │   │       │   └── test01-input.svelte
│       │   │       │   │       ├── test01-errors.yaml
│       │   │       │   │       └── test01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       └── test01-input.svelte
│       │   │       ├── no-inspect/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── _requirements.json
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   └── test01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── _requirements.json
│       │   │       │       └── test01-input.svelte
│       │   │       ├── no-navigation-without-base/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── goto-aliased01-errors.yaml
│       │   │       │   │   ├── goto-aliased01-input.svelte
│       │   │       │   │   ├── goto-base-not-as-prefix01-errors.yaml
│       │   │       │   │   ├── goto-base-not-as-prefix01-input.svelte
│       │   │       │   │   ├── goto-namespace-import01-errors.yaml
│       │   │       │   │   ├── goto-namespace-import01-input.svelte
│       │   │       │   │   ├── goto-no-base01-errors.yaml
│       │   │       │   │   ├── goto-no-base01-input.svelte
│       │   │       │   │   ├── link-base-not-as-prefix01-errors.yaml
│       │   │       │   │   ├── link-base-not-as-prefix01-input.svelte
│       │   │       │   │   ├── link-no-base01-errors.yaml
│       │   │       │   │   ├── link-no-base01-input.svelte
│       │   │       │   │   ├── link-with-fragment01-errors.yaml
│       │   │       │   │   ├── link-with-fragment01-input.svelte
│       │   │       │   │   ├── pushState-aliased01-errors.yaml
│       │   │       │   │   ├── pushState-aliased01-input.svelte
│       │   │       │   │   ├── pushState-base-not-as-prefix01-errors.yaml
│       │   │       │   │   ├── pushState-base-not-as-prefix01-input.svelte
│       │   │       │   │   ├── pushState-namespace-import01-errors.yaml
│       │   │       │   │   ├── pushState-namespace-import01-input.svelte
│       │   │       │   │   ├── pushState-no-base01-errors.yaml
│       │   │       │   │   ├── pushState-no-base01-input.svelte
│       │   │       │   │   ├── replaceState-aliased01-errors.yaml
│       │   │       │   │   ├── replaceState-aliased01-input.svelte
│       │   │       │   │   ├── replaceState-base-not-as-prefix01-errors.yaml
│       │   │       │   │   ├── replaceState-base-not-as-prefix01-input.svelte
│       │   │       │   │   ├── replaceState-namespace-import01-errors.yaml
│       │   │       │   │   ├── replaceState-namespace-import01-input.svelte
│       │   │       │   │   ├── replaceState-no-base01-errors.yaml
│       │   │       │   │   └── replaceState-no-base01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── goto-base-aliased01-input.svelte
│       │   │       │       ├── goto-base-namespace-import01-input.svelte
│       │   │       │       ├── goto-base-prefixed01-input.svelte
│       │   │       │       ├── ignoreGoto/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── goto-ignored01-input.svelte
│       │   │       │       ├── ignoreLinks/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── link-ignored01-input.svelte
│       │   │       │       ├── ignorePushState/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── pushState-ignored01-input.svelte
│       │   │       │       ├── ignoreReplaceState/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── replaceState-ignored01-input.svelte
│       │   │       │       ├── link-absolute-url01-input.svelte
│       │   │       │       ├── link-base-aliased01-input.svelte
│       │   │       │       ├── link-base-namespace-import01-input.svelte
│       │   │       │       ├── link-base-prefixed01-input.svelte
│       │   │       │       ├── link-fragment-url01-input.svelte
│       │   │       │       ├── pushState-base-aliased01-input.svelte
│       │   │       │       ├── pushState-base-namespace-import01-input.svelte
│       │   │       │       ├── pushState-base-prefixed01-input.svelte
│       │   │       │       ├── pushState-empty-url01-input.svelte
│       │   │       │       ├── replaceState-base-aliased01-input.svelte
│       │   │       │       ├── replaceState-base-namespace-import01-input.svelte
│       │   │       │       ├── replaceState-base-prefixed01-input.svelte
│       │   │       │       └── replaceState-empty-url01-input.svelte
│       │   │       ├── no-navigation-without-resolve/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── goto-aliased01-errors.yaml
│       │   │       │   │   ├── goto-aliased01-input.svelte
│       │   │       │   │   ├── goto-namespace-import01-errors.yaml
│       │   │       │   │   ├── goto-namespace-import01-input.svelte
│       │   │       │   │   ├── goto-partial-resolve01-errors.yaml
│       │   │       │   │   ├── goto-partial-resolve01-input.svelte
│       │   │       │   │   ├── goto-resolved-pathname-wrong-module01-errors.yaml
│       │   │       │   │   ├── goto-resolved-pathname-wrong-module01-input.svelte
│       │   │       │   │   ├── goto-string-prop01-errors.yaml
│       │   │       │   │   ├── goto-string-prop01-input.svelte
│       │   │       │   │   ├── goto-ternary-resolve-absolute01-errors.yaml
│       │   │       │   │   ├── goto-ternary-resolve-absolute01-input.svelte
│       │   │       │   │   ├── goto-ternary-resolve-empty01-errors.yaml
│       │   │       │   │   ├── goto-ternary-resolve-empty01-input.svelte
│       │   │       │   │   ├── goto-ternary-resolve-plain01-errors.yaml
│       │   │       │   │   ├── goto-ternary-resolve-plain01-input.svelte
│       │   │       │   │   ├── goto-unresolved-pathname01-errors.yaml
│       │   │       │   │   ├── goto-unresolved-pathname01-input.svelte
│       │   │       │   │   ├── goto-without-resolve01-errors.yaml
│       │   │       │   │   ├── goto-without-resolve01-input.svelte
│       │   │       │   │   ├── link-absolute-url-invalid-operator01-errors.yaml
│       │   │       │   │   ├── link-absolute-url-invalid-operator01-input.svelte
│       │   │       │   │   ├── link-fragment-url-invalid-operator01-errors.yaml
│       │   │       │   │   ├── link-fragment-url-invalid-operator01-input.svelte
│       │   │       │   │   ├── link-nullish-like-literal01-errors.yaml
│       │   │       │   │   ├── link-nullish-like-literal01-input.svelte
│       │   │       │   │   ├── link-partial-asset01-errors.yaml
│       │   │       │   │   ├── link-partial-asset01-input.svelte
│       │   │       │   │   ├── link-partial-resolve01-errors.yaml
│       │   │       │   │   ├── link-partial-resolve01-input.svelte
│       │   │       │   │   ├── link-resolved-pathname-wrong-module01-errors.yaml
│       │   │       │   │   ├── link-resolved-pathname-wrong-module01-input.svelte
│       │   │       │   │   ├── link-string-prop01-errors.yaml
│       │   │       │   │   ├── link-string-prop01-input.svelte
│       │   │       │   │   ├── link-ternary-asset-plain01-errors.yaml
│       │   │       │   │   ├── link-ternary-asset-plain01-input.svelte
│       │   │       │   │   ├── link-ternary-resolve-plain01-errors.yaml
│       │   │       │   │   ├── link-ternary-resolve-plain01-input.svelte
│       │   │       │   │   ├── link-unresolved-pathname01-errors.yaml
│       │   │       │   │   ├── link-unresolved-pathname01-input.svelte
│       │   │       │   │   ├── link-with-fragment01-errors.yaml
│       │   │       │   │   ├── link-with-fragment01-input.svelte
│       │   │       │   │   ├── link-without-resolve01-errors.yaml
│       │   │       │   │   ├── link-without-resolve01-input.svelte
│       │   │       │   │   ├── pushState-aliased01-errors.yaml
│       │   │       │   │   ├── pushState-aliased01-input.svelte
│       │   │       │   │   ├── pushState-namespace-import01-errors.yaml
│       │   │       │   │   ├── pushState-namespace-import01-input.svelte
│       │   │       │   │   ├── pushState-partial-resolve01-errors.yaml
│       │   │       │   │   ├── pushState-partial-resolve01-input.svelte
│       │   │       │   │   ├── pushState-resolved-pathname-wrong-module01-errors.yaml
│       │   │       │   │   ├── pushState-resolved-pathname-wrong-module01-input.svelte
│       │   │       │   │   ├── pushState-string-prop01-errors.yaml
│       │   │       │   │   ├── pushState-string-prop01-input.svelte
│       │   │       │   │   ├── pushState-ternary-resolve-absolute01-errors.yaml
│       │   │       │   │   ├── pushState-ternary-resolve-absolute01-input.svelte
│       │   │       │   │   ├── pushState-ternary-resolve-plain01-errors.yaml
│       │   │       │   │   ├── pushState-ternary-resolve-plain01-input.svelte
│       │   │       │   │   ├── pushState-unresolved-pathname01-errors.yaml
│       │   │       │   │   ├── pushState-unresolved-pathname01-input.svelte
│       │   │       │   │   ├── pushState-without-resolve01-errors.yaml
│       │   │       │   │   ├── pushState-without-resolve01-input.svelte
│       │   │       │   │   ├── recursive-loop01-errors.yaml
│       │   │       │   │   ├── recursive-loop01-input.svelte
│       │   │       │   │   ├── replaceState-aliased01-errors.yaml
│       │   │       │   │   ├── replaceState-aliased01-input.svelte
│       │   │       │   │   ├── replaceState-namespace-import01-errors.yaml
│       │   │       │   │   ├── replaceState-namespace-import01-input.svelte
│       │   │       │   │   ├── replaceState-partial-resolve01-errors.yaml
│       │   │       │   │   ├── replaceState-partial-resolve01-input.svelte
│       │   │       │   │   ├── replaceState-resolved-pathname-wrong-module01-errors.yaml
│       │   │       │   │   ├── replaceState-resolved-pathname-wrong-module01-input.svelte
│       │   │       │   │   ├── replaceState-string-prop01-errors.yaml
│       │   │       │   │   ├── replaceState-string-prop01-input.svelte
│       │   │       │   │   ├── replaceState-ternary-resolve-absolute01-errors.yaml
│       │   │       │   │   ├── replaceState-ternary-resolve-absolute01-input.svelte
│       │   │       │   │   ├── replaceState-ternary-resolve-plain01-errors.yaml
│       │   │       │   │   ├── replaceState-ternary-resolve-plain01-input.svelte
│       │   │       │   │   ├── replaceState-unresolved-pathname01-errors.yaml
│       │   │       │   │   ├── replaceState-unresolved-pathname01-input.svelte
│       │   │       │   │   ├── replaceState-without-resolve01-errors.yaml
│       │   │       │   │   └── replaceState-without-resolve01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── goto-namespace-import01-input.svelte
│       │   │       │       ├── goto-resolve-aliased01-input.svelte
│       │   │       │       ├── goto-resolved-pathname01-input.svelte
│       │   │       │       ├── goto-resolved-pathname02-input.svelte
│       │   │       │       ├── goto-resolved01-input.svelte
│       │   │       │       ├── goto-ternary-both-resolve01-input.svelte
│       │   │       │       ├── ignoreGoto/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── goto-ignored01-input.svelte
│       │   │       │       ├── ignoreLinks/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── link-ignored01-input.svelte
│       │   │       │       ├── ignorePushState/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── pushState-ignored01-input.svelte
│       │   │       │       ├── ignoreReplaceState/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── replaceState-ignored01-input.svelte
│       │   │       │       ├── link-absolute-url01-input.svelte
│       │   │       │       ├── link-asset-aliased01-input.svelte
│       │   │       │       ├── link-asset01-input.svelte
│       │   │       │       ├── link-fragment-url01-input.svelte
│       │   │       │       ├── link-namespace-import01-input.svelte
│       │   │       │       ├── link-nullish01-input.svelte
│       │   │       │       ├── link-rel-external01-input.svelte
│       │   │       │       ├── link-resolve-aliased01-input.svelte
│       │   │       │       ├── link-resolved-pathname01-input.svelte
│       │   │       │       ├── link-resolved-pathname02-input.svelte
│       │   │       │       ├── link-resolved01-input.svelte
│       │   │       │       ├── link-ternary-absolute-fragment01-input.svelte
│       │   │       │       ├── link-ternary-resolve-absolute01-input.svelte
│       │   │       │       ├── link-ternary-resolve-asset01-input.svelte
│       │   │       │       ├── link-ternary-resolve-fragment01-input.svelte
│       │   │       │       ├── link-ternary-resolve-nullish01-input.svelte
│       │   │       │       ├── pushState-empty-url01-input.svelte
│       │   │       │       ├── pushState-namespace-import01-input.svelte
│       │   │       │       ├── pushState-resolve-aliased01-input.svelte
│       │   │       │       ├── pushState-resolved-pathname01-input.svelte
│       │   │       │       ├── pushState-resolved-pathname02-input.svelte
│       │   │       │       ├── pushState-resolved01-input.svelte
│       │   │       │       ├── pushState-ternary-resolve-empty01-input.svelte
│       │   │       │       ├── replaceState-empty-url01-input.svelte
│       │   │       │       ├── replaceState-namespace-import01-input.svelte
│       │   │       │       ├── replaceState-resolve-aliased01-input.svelte
│       │   │       │       ├── replaceState-resolved-pathname01-input.svelte
│       │   │       │       ├── replaceState-resolved-pathname02-input.svelte
│       │   │       │       ├── replaceState-resolved01-input.svelte
│       │   │       │       └── replaceState-ternary-resolve-empty01-input.svelte
│       │   │       ├── no-not-function-handler/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── array01-errors.yaml
│       │   │       │   │   ├── array01-input.svelte
│       │   │       │   │   ├── class01-errors.yaml
│       │   │       │   │   ├── class01-input.svelte
│       │   │       │   │   ├── object01-errors.yaml
│       │   │       │   │   ├── object01-input.svelte
│       │   │       │   │   ├── string01-errors.yaml
│       │   │       │   │   ├── string01-input.svelte
│       │   │       │   │   ├── svelte5/
│       │   │       │   │   │   ├── array01-errors.yaml
│       │   │       │   │   │   ├── array01-input.svelte
│       │   │       │   │   │   ├── class01-errors.yaml
│       │   │       │   │   │   ├── class01-input.svelte
│       │   │       │   │   │   ├── object01-errors.yaml
│       │   │       │   │   │   ├── object01-input.svelte
│       │   │       │   │   │   ├── requirements.json
│       │   │       │   │   │   ├── string01-errors.yaml
│       │   │       │   │   │   ├── string01-input.svelte
│       │   │       │   │   │   ├── value01-errors.yaml
│       │   │       │   │   │   └── value01-input.svelte
│       │   │       │   │   ├── value01-errors.yaml
│       │   │       │   │   └── value01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── bind01-input.svelte
│       │   │       │       ├── function01-input.svelte
│       │   │       │       ├── null01-input.svelte
│       │   │       │       └── svelte5/
│       │   │       │           ├── function01-input.svelte
│       │   │       │           ├── null01-input.svelte
│       │   │       │           └── requirements.json
│       │   │       ├── no-object-in-text-mustaches/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── array01-errors.yaml
│       │   │       │   │   ├── array01-input.svelte
│       │   │       │   │   ├── class01-errors.yaml
│       │   │       │   │   ├── class01-input.svelte
│       │   │       │   │   ├── function01-errors.yaml
│       │   │       │   │   ├── function01-input.svelte
│       │   │       │   │   ├── object01-errors.yaml
│       │   │       │   │   └── object01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── object01-input.svelte
│       │   │       │       └── string01-input.svelte
│       │   │       ├── no-raw-special-elements/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   └── test01-output.svelte
│       │   │       │   └── valid/
│       │   │       │       └── test01-input.svelte
│       │   │       ├── no-reactive-functions/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   └── test01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       └── test01-input.svelte
│       │   │       ├── no-reactive-literals/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   └── test01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       └── test01-input.svelte
│       │   │       ├── no-reactive-reassign/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── array01-errors.yaml
│       │   │       │   │   ├── array01-input.svelte
│       │   │       │   │   ├── bind-dir01-errors.yaml
│       │   │       │   │   ├── bind-dir01-input.svelte
│       │   │       │   │   ├── conditional01-errors.yaml
│       │   │       │   │   ├── conditional01-input.svelte
│       │   │       │   │   ├── delete01-errors.yaml
│       │   │       │   │   ├── delete01-input.svelte
│       │   │       │   │   ├── destructure01-errors.yaml
│       │   │       │   │   ├── destructure01-input.svelte
│       │   │       │   │   ├── for-in01-errors.yaml
│       │   │       │   │   ├── for-in01-input.svelte
│       │   │       │   │   ├── for-of01-errors.yaml
│       │   │       │   │   ├── for-of01-input.svelte
│       │   │       │   │   ├── member01-errors.yaml
│       │   │       │   │   ├── member01-input.svelte
│       │   │       │   │   ├── props-false/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   └── test01-input.svelte
│       │   │       │   │   ├── props-true01-errors.yaml
│       │   │       │   │   ├── props-true01-input.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   └── test01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── array01-input.svelte
│       │   │       │       ├── assign-right01-input.svelte
│       │   │       │       ├── destructure01-input.svelte
│       │   │       │       ├── for-in01-input.svelte
│       │   │       │       ├── for-of01-input.svelte
│       │   │       │       ├── member-key01-input.svelte
│       │   │       │       ├── on-dir01-input.svelte
│       │   │       │       ├── props-false/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── props-false01-input.svelte
│       │   │       │       ├── reactive-like01-input.svelte
│       │   │       │       ├── reactive-like02-input.svelte
│       │   │       │       ├── test01-input.svelte
│       │   │       │       └── typeof01-input.svelte
│       │   │       ├── no-restricted-html-elements/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── array-config.json
│       │   │       │   │   ├── array-errors.yaml
│       │   │       │   │   ├── array-input.svelte
│       │   │       │   │   ├── object-config.json
│       │   │       │   │   ├── object-errors.yaml
│       │   │       │   │   └── object-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── array-config.json
│       │   │       │       ├── array-input.svelte
│       │   │       │       ├── object-config.json
│       │   │       │       └── object-input.svelte
│       │   │       ├── no-shorthand-style-property-overrides/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── ternary01-errors.yaml
│       │   │       │   │   ├── ternary01-input.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   └── test01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── empty01-input.svelte
│       │   │       │       ├── ternary01-input.svelte
│       │   │       │       ├── test01-input.svelte
│       │   │       │       └── test02-input.svelte
│       │   │       ├── no-spaces-around-equal-signs-in-attribute/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   └── test01-output.svelte
│       │   │       │   └── valid/
│       │   │       │       └── test-01-input.svelte
│       │   │       ├── no-store-async/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.js
│       │   │       │   │   ├── test02-errors.yaml
│       │   │       │   │   ├── test02-input.js
│       │   │       │   │   ├── test03-errors.yaml
│       │   │       │   │   ├── test03-input.js
│       │   │       │   │   ├── test04-errors.yaml
│       │   │       │   │   └── test04-input.js
│       │   │       │   └── valid/
│       │   │       │       └── test01-input.js
│       │   │       ├── no-svelte-internal/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── no-svelte-internal01-errors.yaml
│       │   │       │   │   ├── no-svelte-internal01-input.svelte
│       │   │       │   │   ├── no-svelte-internal02-errors.yaml
│       │   │       │   │   ├── no-svelte-internal02-input.svelte
│       │   │       │   │   ├── no-svelte-internal03-errors.yaml
│       │   │       │   │   ├── no-svelte-internal03-input.svelte
│       │   │       │   │   ├── no-svelte-internal04-errors.yaml
│       │   │       │   │   ├── no-svelte-internal04-input.svelte
│       │   │       │   │   ├── no-svelte-internal05-errors.yaml
│       │   │       │   │   ├── no-svelte-internal05-input.svelte
│       │   │       │   │   ├── no-svelte-internal06-errors.yaml
│       │   │       │   │   ├── no-svelte-internal06-input.svelte
│       │   │       │   │   ├── no-svelte-internal07-errors.yaml
│       │   │       │   │   └── no-svelte-internal07-input.svelte
│       │   │       │   └── valid/
│       │   │       │       └── no-svelte-internal01-input.svelte
│       │   │       ├── no-target-blank/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   └── test01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── allow-referrer/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── allow-referrer-test01-input.svelte
│       │   │       │       ├── enforce-dynamic-links/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── enforce-dynamic-links-test01-input.svelte
│       │   │       │       └── test01-input.svelte
│       │   │       ├── no-top-level-browser-globals/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── env01-errors.yaml
│       │   │       │   │   ├── env01-input.svelte
│       │   │       │   │   ├── env02-errors.yaml
│       │   │       │   │   ├── env02-input.svelte
│       │   │       │   │   ├── env03-errors.yaml
│       │   │       │   │   ├── env03-input.svelte
│       │   │       │   │   ├── guards01-errors.yaml
│       │   │       │   │   ├── guards01-input.svelte
│       │   │       │   │   ├── guards02-errors.yaml
│       │   │       │   │   ├── guards02-input.svelte
│       │   │       │   │   ├── guards03-errors.yaml
│       │   │       │   │   ├── guards03-input.svelte
│       │   │       │   │   ├── guards04-errors.yaml
│       │   │       │   │   ├── guards04-input.svelte
│       │   │       │   │   ├── guards05-errors.yaml
│       │   │       │   │   ├── guards05-input.svelte
│       │   │       │   │   ├── guards06-errors.yaml
│       │   │       │   │   ├── guards06-input.svelte
│       │   │       │   │   ├── guards07-errors.yaml
│       │   │       │   │   ├── guards07-input.svelte
│       │   │       │   │   ├── guards08-errors.yaml
│       │   │       │   │   ├── guards08-input.svelte
│       │   │       │   │   ├── in-template01-errors.yaml
│       │   │       │   │   ├── in-template01-input.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   ├── test02-errors.yaml
│       │   │       │   │   ├── test02-input.svelte
│       │   │       │   │   ├── test03-errors.yaml
│       │   │       │   │   └── test03-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── complex-guards01-input.svelte
│       │   │       │       ├── complex-guards02-input.svelte
│       │   │       │       ├── effect01-input.svelte
│       │   │       │       ├── env-guards01-input.svelte
│       │   │       │       ├── env01-input.svelte
│       │   │       │       ├── env02-input.svelte
│       │   │       │       ├── env03-input.svelte
│       │   │       │       ├── guards01-input.svelte
│       │   │       │       ├── guards02-input.svelte
│       │   │       │       ├── guards03-input.svelte
│       │   │       │       ├── guards04-input.svelte
│       │   │       │       ├── guards05-input.svelte
│       │   │       │       ├── guards06-input.svelte
│       │   │       │       ├── guards07-input.svelte
│       │   │       │       ├── guards08-input.svelte
│       │   │       │       ├── in-template01-input.svelte
│       │   │       │       ├── in-template02-input.svelte
│       │   │       │       ├── in-template02-requirements.json
│       │   │       │       ├── in-template03-input.svelte
│       │   │       │       ├── on-mount01-input.svelte
│       │   │       │       ├── state-generic-input.svelte
│       │   │       │       └── ts01-input.svelte
│       │   │       ├── no-trailing-spaces/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── ignoreComments/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── skipBlankLines/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   └── test01-output.svelte
│       │   │       │   └── valid/
│       │   │       │       └── test01-input.svelte
│       │   │       ├── no-unknown-style-directive-property/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── ignoreProperties/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   └── test01-input.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   └── test01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── test01-input.svelte
│       │   │       │       └── test02-input.svelte
│       │   │       ├── no-unnecessary-state-wrap/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── _requirements.json
│       │   │       │   │   ├── additional-class-config.json
│       │   │       │   │   ├── additional-class-errors.yaml
│       │   │       │   │   ├── additional-class-input.svelte
│       │   │       │   │   ├── allow-reassign-config.json
│       │   │       │   │   ├── allow-reassign-errors.yaml
│       │   │       │   │   ├── allow-reassign-input.svelte
│       │   │       │   │   ├── basic-errors.yaml
│       │   │       │   │   ├── basic-input.svelte
│       │   │       │   │   ├── import-alias-errors.yaml
│       │   │       │   │   └── import-alias-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── _requirements.json
│       │   │       │       ├── additional-class-config.json
│       │   │       │       ├── additional-class-input.svelte
│       │   │       │       ├── allow-reassign-bind1-config.json
│       │   │       │       ├── allow-reassign-bind1-input.svelte
│       │   │       │       ├── allow-reassign-bind2-config.json
│       │   │       │       ├── allow-reassign-bind2-input.svelte
│       │   │       │       ├── allow-reassign-config.json
│       │   │       │       ├── allow-reassign-input.svelte
│       │   │       │       └── basic-input.svelte
│       │   │       ├── no-unused-class-name/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── allowed-class-names/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── partially-allowed-class-name01-errors.yaml
│       │   │       │   │   │   └── partially-allowed-class-name01-input.svelte
│       │   │       │   │   ├── class-directive01-errors.yaml
│       │   │       │   │   ├── class-directive01-input.svelte
│       │   │       │   │   ├── duplicated-class-name-errors.yaml
│       │   │       │   │   ├── duplicated-class-name-input.svelte
│       │   │       │   │   ├── multiline-class-names01-errors.yaml
│       │   │       │   │   ├── multiline-class-names01-input.svelte
│       │   │       │   │   ├── multiple-class-names01-errors.yaml
│       │   │       │   │   ├── multiple-class-names01-input.svelte
│       │   │       │   │   ├── same-name-id01-errors.yaml
│       │   │       │   │   ├── same-name-id01-input.svelte
│       │   │       │   │   ├── unused-class-name01-errors.yaml
│       │   │       │   │   ├── unused-class-name01-input.svelte
│       │   │       │   │   ├── used-unrelated-class-name01-errors.yaml
│       │   │       │   │   └── used-unrelated-class-name01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── adjacent-sibling-combinator01-input.svelte
│       │   │       │       ├── allowed-class-names/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── allowed-class-name01-input.svelte
│       │   │       │       ├── child-combinator01-input.svelte
│       │   │       │       ├── descendant-combinator01-input.svelte
│       │   │       │       ├── general-sibling-combinator01-input.svelte
│       │   │       │       ├── invalid-style01-input.svelte
│       │   │       │       ├── multiple-class-names01-input.svelte
│       │   │       │       ├── no-class-name01-input.svelte
│       │   │       │       ├── pseudo-classes01-input.svelte
│       │   │       │       ├── pseudo-elements01-input.svelte
│       │   │       │       ├── scss-class-name01-input.svelte
│       │   │       │       ├── selector-list01-input.svelte
│       │   │       │       ├── test-input.js
│       │   │       │       ├── unknown-lang01-input.svelte
│       │   │       │       └── used-class-name01-input.svelte
│       │   │       ├── no-unused-props/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── _requirements.json
│       │   │       │   │   ├── alias-errors.yaml
│       │   │       │   │   ├── alias-input.svelte
│       │   │       │   │   ├── builtin-shadow-unused-errors.yaml
│       │   │       │   │   ├── builtin-shadow-unused-input.svelte
│       │   │       │   │   ├── builtin-types-unused-errors.yaml
│       │   │       │   │   ├── builtin-types-unused-input.svelte
│       │   │       │   │   ├── class-props-unused-errors.yaml
│       │   │       │   │   ├── class-props-unused-input.svelte
│       │   │       │   │   ├── custom-config-combination-config.json
│       │   │       │   │   ├── custom-config-combination-errors.yaml
│       │   │       │   │   ├── custom-config-combination-input.svelte
│       │   │       │   │   ├── extends-unused-errors.yaml
│       │   │       │   │   ├── extends-unused-input.svelte
│       │   │       │   │   ├── generic-props-unused-errors.yaml
│       │   │       │   │   ├── generic-props-unused-input.svelte
│       │   │       │   │   ├── ignore-external-type-errors.yaml
│       │   │       │   │   ├── ignore-external-type-input.svelte
│       │   │       │   │   ├── ignore-property-patterns-custom-config.json
│       │   │       │   │   ├── ignore-property-patterns-custom-errors.yaml
│       │   │       │   │   ├── ignore-property-patterns-custom-input.svelte
│       │   │       │   │   ├── ignored-type-patterns-custom-config.json
│       │   │       │   │   ├── ignored-type-patterns-custom-errors.yaml
│       │   │       │   │   ├── ignored-type-patterns-custom-input.svelte
│       │   │       │   │   ├── imported-type-check-config.json
│       │   │       │   │   ├── imported-type-check-errors.yaml
│       │   │       │   │   ├── imported-type-check-input.svelte
│       │   │       │   │   ├── imported-type-unused-errors.yaml
│       │   │       │   │   ├── imported-type-unused-input.svelte
│       │   │       │   │   ├── index-signature-no-rest-errors.yaml
│       │   │       │   │   ├── index-signature-no-rest-input.svelte
│       │   │       │   │   ├── intersection-unused-errors.yaml
│       │   │       │   │   ├── intersection-unused-input.svelte
│       │   │       │   │   ├── multiple-extends-unused-errors.yaml
│       │   │       │   │   ├── multiple-extends-unused-input.svelte
│       │   │       │   │   ├── nested-unused-errors.yaml
│       │   │       │   │   ├── nested-unused-input.svelte
│       │   │       │   │   ├── optional-unused-errors.yaml
│       │   │       │   │   ├── optional-unused-input.svelte
│       │   │       │   │   ├── parent-interface-unused-errors.yaml
│       │   │       │   │   ├── parent-interface-unused-input.svelte
│       │   │       │   │   ├── shared-types.ts
│       │   │       │   │   ├── simple-unused-errors.yaml
│       │   │       │   │   ├── simple-unused-input.svelte
│       │   │       │   │   ├── unused-index-signature-errors.yaml
│       │   │       │   │   └── unused-index-signature-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── _requirements.json
│       │   │       │       ├── alias-input.svelte
│       │   │       │       ├── any-input.svelte
│       │   │       │       ├── assignment-input.svelte
│       │   │       │       ├── basic-input.svelte
│       │   │       │       ├── bindable-input.svelte
│       │   │       │       ├── builtin-types-input.svelte
│       │   │       │       ├── component-props-any-input.svelte
│       │   │       │       ├── computed-member-input.svelte
│       │   │       │       ├── computed-property-input.svelte
│       │   │       │       ├── conditional-type-input.svelte
│       │   │       │       ├── custom-config-combination-config.json
│       │   │       │       ├── custom-config-combination-input.svelte
│       │   │       │       ├── default-value-input.svelte
│       │   │       │       ├── extends-input.svelte
│       │   │       │       ├── function-props-input.svelte
│       │   │       │       ├── ignore-external-type-input.svelte
│       │   │       │       ├── ignore-property-patterns-custom-config.json
│       │   │       │       ├── ignore-property-patterns-custom-input.svelte
│       │   │       │       ├── ignore-property-patterns-default-input.svelte
│       │   │       │       ├── ignored-type-patterns-custom-config.json
│       │   │       │       ├── ignored-type-patterns-custom-input.svelte
│       │   │       │       ├── ignored-type-patterns-custom2-config.json
│       │   │       │       ├── ignored-type-patterns-custom2-input.svelte
│       │   │       │       ├── imported-type-config.json
│       │   │       │       ├── imported-type-default-input.svelte
│       │   │       │       ├── imported-type-explicit-config.json
│       │   │       │       ├── imported-type-explicit-input.svelte
│       │   │       │       ├── imported-type-input.svelte
│       │   │       │       ├── index-signature-rest-input.svelte
│       │   │       │       ├── intersection-type-input.svelte
│       │   │       │       ├── js-basic-input.svelte
│       │   │       │       ├── js-jsdoc-input.svelte
│       │   │       │       ├── js-no-types-input.svelte
│       │   │       │       ├── member-input.svelte
│       │   │       │       ├── module-script-input.svelte
│       │   │       │       ├── multiple-index-signatures-input.svelte
│       │   │       │       ├── nested-props-input.svelte
│       │   │       │       ├── nested-props2-input.svelte
│       │   │       │       ├── nested-props3-input.svelte
│       │   │       │       ├── nested-props4-input.svelte
│       │   │       │       ├── nested-unused-config.json
│       │   │       │       ├── nested-unused-input.svelte
│       │   │       │       ├── nested-unused2-config.json
│       │   │       │       ├── nested-unused2-input.svelte
│       │   │       │       ├── new-expression-input.svelte
│       │   │       │       ├── optional-props-input.svelte
│       │   │       │       ├── record-type-input.svelte
│       │   │       │       ├── recursive-type-input.svelte
│       │   │       │       ├── rename-unused-input.svelte
│       │   │       │       ├── rest-and-index-input.svelte
│       │   │       │       ├── rest-with-index-input.svelte
│       │   │       │       ├── shared-types.ts
│       │   │       │       ├── spread-nested1-input.svelte
│       │   │       │       ├── spread-nested2-input.svelte
│       │   │       │       ├── spread-nested3-input.svelte
│       │   │       │       ├── spread-nested4-config.json
│       │   │       │       ├── spread-nested4-input.svelte
│       │   │       │       ├── spread-nested5-input.svelte
│       │   │       │       ├── spread-root1-input.svelte
│       │   │       │       ├── spread-root2-config.json
│       │   │       │       ├── spread-root2-input.svelte
│       │   │       │       ├── spread-root3-input.svelte
│       │   │       │       ├── template-usage-input.svelte
│       │   │       │       ├── ts-basic-input.svelte
│       │   │       │       ├── typed-props-input.svelte
│       │   │       │       ├── union-type-input.svelte
│       │   │       │       └── used-index-signature-input.svelte
│       │   │       ├── no-unused-svelte-ignore/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── html-comment-errors.yaml
│       │   │       │   │   ├── html-comment-input.svelte
│       │   │       │   │   ├── html-comment-requirements.json
│       │   │       │   │   ├── html-comment-svelte4-errors.yaml
│       │   │       │   │   ├── html-comment-svelte4-input.svelte
│       │   │       │   │   ├── invalid-svelte-ignore01-errors.yaml
│       │   │       │   │   ├── invalid-svelte-ignore01-input.svelte
│       │   │       │   │   ├── invalid-svelte-ignore01-requirements.json
│       │   │       │   │   ├── invalid-svelte-ignore01-svelte4-errors.yaml
│       │   │       │   │   ├── invalid-svelte-ignore01-svelte4-input.svelte
│       │   │       │   │   ├── invalid-svelte-ignore02-errors.yaml
│       │   │       │   │   ├── invalid-svelte-ignore02-input.svelte
│       │   │       │   │   ├── invalid-svelte-ignore02-requirements.json
│       │   │       │   │   ├── invalid-svelte-ignore02-svelte4-errors.yaml
│       │   │       │   │   ├── invalid-svelte-ignore02-svelte4-input.svelte
│       │   │       │   │   ├── invalid-svelte-ignore03-errors.yaml
│       │   │       │   │   ├── invalid-svelte-ignore03-input.svelte
│       │   │       │   │   ├── invalid-svelte-ignore03-requirements.json
│       │   │       │   │   ├── invalid-svelte-ignore03-svelte4-errors.yaml
│       │   │       │   │   ├── invalid-svelte-ignore03-svelte4-input.svelte
│       │   │       │   │   ├── missing-code-errors.yaml
│       │   │       │   │   ├── missing-code-input.svelte
│       │   │       │   │   ├── script-comment01-errors.yaml
│       │   │       │   │   ├── script-comment01-input.svelte
│       │   │       │   │   ├── script-comment01-requirements.json
│       │   │       │   │   ├── script-comment01-svelte4-errors.yaml
│       │   │       │   │   ├── script-comment01-svelte4-input.svelte
│       │   │       │   │   ├── script-comment02-svelte4-errors.yaml
│       │   │       │   │   ├── script-comment02-svelte4-input.svelte
│       │   │       │   │   ├── script-comment02-svelte4-requirements.json
│       │   │       │   │   ├── style-lang01-errors.yaml
│       │   │       │   │   ├── style-lang01-input.svelte
│       │   │       │   │   ├── style-lang02-errors.yaml
│       │   │       │   │   ├── style-lang02-input.svelte
│       │   │       │   │   ├── style-lang03-errors.yaml
│       │   │       │   │   ├── style-lang03-input.svelte
│       │   │       │   │   ├── style-lang04-errors.yaml
│       │   │       │   │   ├── style-lang04-input.svelte
│       │   │       │   │   ├── style-lang05-errors.yaml
│       │   │       │   │   ├── style-lang05-input.svelte
│       │   │       │   │   ├── style-lang06-errors.yaml
│       │   │       │   │   ├── style-lang06-input.svelte
│       │   │       │   │   ├── transform-test-errors.yaml
│       │   │       │   │   ├── transform-test-input.svelte
│       │   │       │   │   ├── transform-test-requirements.json
│       │   │       │   │   ├── transform-test-svelte4-errors.yaml
│       │   │       │   │   └── transform-test-svelte4-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── element-ignore01-input.svelte
│       │   │       │       ├── element-ignore01-requirements.json
│       │   │       │       ├── element-ignore01-svelte4-input.svelte
│       │   │       │       ├── has-error-svelte4-input.svelte
│       │   │       │       ├── html-comment-input.svelte
│       │   │       │       ├── html-comment-requirements.json
│       │   │       │       ├── html-comment-svelte4-input.svelte
│       │   │       │       ├── ignore-js-input.js
│       │   │       │       ├── kebab-ignore-input.svelte
│       │   │       │       ├── reactive-component-input.svelte
│       │   │       │       ├── reactive-component-requirements.json
│       │   │       │       ├── script-comment-input.svelte
│       │   │       │       ├── script-comment-requirements.json
│       │   │       │       ├── script-comment-svelte4-input.svelte
│       │   │       │       ├── script-comment-svelte4-requirements.json
│       │   │       │       ├── style-lang01-input.svelte
│       │   │       │       ├── style-lang01-requirements.json
│       │   │       │       ├── style-lang02-input.svelte
│       │   │       │       ├── style-lang02-requirements.json
│       │   │       │       ├── style-lang03-input.svelte
│       │   │       │       ├── style-lang03-requirements.json
│       │   │       │       ├── style-lang04-input.svelte
│       │   │       │       ├── style-lang04-requirements.json
│       │   │       │       ├── style-lang05-input.svelte
│       │   │       │       ├── style-lang05-requirements.json
│       │   │       │       ├── style-lang06-input.svelte
│       │   │       │       ├── style-lang06-requirements.json
│       │   │       │       ├── style-lang07-input.svelte
│       │   │       │       ├── svelte-ignore-comma-separated-input.svelte
│       │   │       │       ├── svelte-ignore-comma-separated-requirements.json
│       │   │       │       ├── svelte-ignore-note-input.svelte
│       │   │       │       ├── svelte-ignore-note-requirements.json
│       │   │       │       ├── svelte-ignore01-input.svelte
│       │   │       │       ├── svelte-ignore01-requirements.json
│       │   │       │       ├── svelte-ignore01-svelte4-input.svelte
│       │   │       │       ├── svelte-ignore02-input.svelte
│       │   │       │       ├── svelte-ignore02-requirements.json
│       │   │       │       ├── svelte-ignore02-svelte4-input.svelte
│       │   │       │       ├── svelte-ignore03-input.svelte
│       │   │       │       ├── svelte-ignore03-requirements.json
│       │   │       │       ├── svelte-ignore03-svelte4-input.svelte
│       │   │       │       ├── svelte-ignore04-input.svelte
│       │   │       │       ├── svelte-ignore04-requirements.json
│       │   │       │       ├── svelte-ignore04-svelte4-input.svelte
│       │   │       │       ├── svelte-ignore05-input.svelte
│       │   │       │       ├── svelte-ignore05-requirements.json
│       │   │       │       ├── svelte-ignore05-svelte4-input.svelte
│       │   │       │       ├── svelte-ignore06-input.svelte
│       │   │       │       ├── svelte-ignore06-requirements.json
│       │   │       │       ├── svelte-ignore06-svelte4-input.svelte
│       │   │       │       ├── svelte-ignore07-input.svelte
│       │   │       │       ├── svelte-ignore07-requirements.json
│       │   │       │       ├── svelte-ignore07-svelte4-input.svelte
│       │   │       │       ├── ts-lang01-input.svelte
│       │   │       │       ├── ts-lang01-requirements.json
│       │   │       │       └── ts-lang01-svelte4-input.svelte
│       │   │       ├── no-useless-children-snippet/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── _requirements.json
│       │   │       │   │   ├── children-snippet01-errors.yaml
│       │   │       │   │   └── children-snippet01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── _requirements.json
│       │   │       │       ├── implicit-snippet01-input.svelte
│       │   │       │       ├── named-snippet01-input.svelte
│       │   │       │       ├── snippet-with-params01-input.svelte
│       │   │       │       └── standalone-snippet01-input.svelte
│       │   │       ├── no-useless-mustaches/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── comments01-errors.yaml
│       │   │       │   │   ├── comments01-input.svelte
│       │   │       │   │   ├── comments01-output.svelte
│       │   │       │   │   ├── escape-test01-errors.yaml
│       │   │       │   │   ├── escape-test01-input.svelte
│       │   │       │   │   ├── escape-test01-output.svelte
│       │   │       │   │   ├── invalid-test01-errors.yaml
│       │   │       │   │   ├── invalid-test01-input.svelte
│       │   │       │   │   ├── invalid-test01-output.svelte
│       │   │       │   │   ├── quote-test01-errors.yaml
│       │   │       │   │   ├── quote-test01-input.svelte
│       │   │       │   │   ├── quote-test01-output.svelte
│       │   │       │   │   ├── quote-test02-errors.yaml
│       │   │       │   │   ├── quote-test02-input.svelte
│       │   │       │   │   ├── quote-test02-output.svelte
│       │   │       │   │   ├── spaces-test01-errors.yaml
│       │   │       │   │   ├── spaces-test01-input.svelte
│       │   │       │   │   ├── spaces-test01-output.svelte
│       │   │       │   │   ├── tag-test01-errors.yaml
│       │   │       │   │   ├── tag-test01-input.svelte
│       │   │       │   │   └── tag-test01-output.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── ignore-includes-comment/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── comments01-input.svelte
│       │   │       │       ├── ignore-string-escape/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── escape-test01-input.svelte
│       │   │       │       ├── valid-test01-input.svelte
│       │   │       │       └── valid-test02-input.svelte
│       │   │       ├── prefer-class-directive/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── _config.json
│       │   │       │   │   ├── empty/
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── simple-test01-errors.yaml
│       │   │       │   │   ├── simple-test01-input.svelte
│       │   │       │   │   ├── simple-test01-output.svelte
│       │   │       │   │   ├── svelte-element01-errors.yaml
│       │   │       │   │   ├── svelte-element01-input.svelte
│       │   │       │   │   ├── svelte-element01-output.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   ├── test01-output.svelte
│       │   │       │   │   ├── test02-errors.yaml
│       │   │       │   │   ├── test02-input.svelte
│       │   │       │   │   ├── test02-output.svelte
│       │   │       │   │   ├── test03-errors.yaml
│       │   │       │   │   ├── test03-input.svelte
│       │   │       │   │   ├── test03-output.svelte
│       │   │       │   │   ├── transform-test01-errors.yaml
│       │   │       │   │   ├── transform-test01-input.svelte
│       │   │       │   │   ├── transform-test01-output.svelte
│       │   │       │   │   ├── transform-test02-errors.yaml
│       │   │       │   │   ├── transform-test02-input.svelte
│       │   │       │   │   ├── transform-test02-output.svelte
│       │   │       │   │   ├── trim-test01-errors.yaml
│       │   │       │   │   ├── trim-test01-input.svelte
│       │   │       │   │   ├── trim-test01-output.svelte
│       │   │       │   │   ├── trim-test01.2-errors.yaml
│       │   │       │   │   ├── trim-test01.2-input.svelte
│       │   │       │   │   └── trim-test01.2-output.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── _config.json
│       │   │       │       ├── empty/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── ignore-test05-input.svelte
│       │   │       │       ├── ignore-component01-input.svelte
│       │   │       │       ├── ignore-svelte-self01-input.svelte
│       │   │       │       ├── ignore-test01-input.svelte
│       │   │       │       ├── ignore-test02-input.svelte
│       │   │       │       ├── ignore-test03-input.svelte
│       │   │       │       ├── ignore-test04-input.svelte
│       │   │       │       └── simple-test01-input.svelte
│       │   │       ├── prefer-const/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── option1/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── option2/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   └── test01-output.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── 1238/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── input.svelte
│       │   │       │       ├── option1/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── test01-input.svelte
│       │   │       │       ├── option2/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── test01-input.svelte
│       │   │       │       └── test01-input.svelte
│       │   │       ├── prefer-destructured-store-props/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── fixer-test01-errors.yaml
│       │   │       │   │   ├── fixer-test01-input.svelte
│       │   │       │   │   ├── member01-errors.yaml
│       │   │       │   │   ├── member01-input.svelte
│       │   │       │   │   ├── member02-errors.yaml
│       │   │       │   │   ├── member02-input.svelte
│       │   │       │   │   ├── member03-errors.yaml
│       │   │       │   │   ├── member03-input.svelte
│       │   │       │   │   ├── module-errors.yaml
│       │   │       │   │   ├── module-input.svelte
│       │   │       │   │   ├── runes-with-store01-errors.yaml
│       │   │       │   │   ├── runes-with-store01-input.svelte
│       │   │       │   │   ├── runes-with-store01-requirements.json
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   ├── test02-errors.yaml
│       │   │       │   │   ├── test02-input.svelte
│       │   │       │   │   ├── test03-errors.yaml
│       │   │       │   │   └── test03-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── builtin-vars01-input.svelte
│       │   │       │       ├── builtin-vars02-input.svelte
│       │   │       │       ├── runes01-input.svelte.js
│       │   │       │       ├── runes01-requirements.json
│       │   │       │       ├── script-test01-input.svelte
│       │   │       │       └── test01-input.svelte
│       │   │       ├── prefer-style-directive/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── complex-test01-errors.yaml
│       │   │       │   │   ├── complex-test01-input.svelte
│       │   │       │   │   ├── complex-test01-output.svelte
│       │   │       │   │   ├── svelte-element01-errors.yaml
│       │   │       │   │   ├── svelte-element01-input.svelte
│       │   │       │   │   ├── svelte-element01-output.svelte
│       │   │       │   │   ├── ternary01-errors.yaml
│       │   │       │   │   ├── ternary01-input.svelte
│       │   │       │   │   ├── ternary01-output.svelte
│       │   │       │   │   ├── ternary02-errors.yaml
│       │   │       │   │   ├── ternary02-input.svelte
│       │   │       │   │   ├── ternary02-output.svelte
│       │   │       │   │   ├── ternary03-errors.yaml
│       │   │       │   │   ├── ternary03-input.svelte
│       │   │       │   │   ├── ternary03-output.svelte
│       │   │       │   │   ├── ternary04-errors.yaml
│       │   │       │   │   ├── ternary04-input.svelte
│       │   │       │   │   ├── ternary04-output.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   ├── test01-output.svelte
│       │   │       │   │   ├── test02-errors.yaml
│       │   │       │   │   ├── test02-input.svelte
│       │   │       │   │   ├── test02-output.svelte
│       │   │       │   │   ├── test03-errors.yaml
│       │   │       │   │   ├── test03-input.svelte
│       │   │       │   │   ├── test03-output.svelte
│       │   │       │   │   ├── test04-errors.yaml
│       │   │       │   │   ├── test04-input.svelte
│       │   │       │   │   └── test04-output.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── empty01-input.svelte
│       │   │       │       ├── ignore-component01-input.svelte
│       │   │       │       ├── ignore-svelte-self01-input.svelte
│       │   │       │       ├── invalid-style01-input.svelte
│       │   │       │       └── test01-input.svelte
│       │   │       ├── prefer-svelte-reactivity/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── _requirements.json
│       │   │       │   │   ├── date/
│       │   │       │   │   │   ├── _requirements.json
│       │   │       │   │   │   ├── setDate01-errors.yaml
│       │   │       │   │   │   ├── setDate01-input.svelte
│       │   │       │   │   │   ├── setFullYear01-errors.yaml
│       │   │       │   │   │   ├── setFullYear01-input.svelte
│       │   │       │   │   │   ├── setFullYear02-errors.yaml
│       │   │       │   │   │   ├── setFullYear02-input.svelte
│       │   │       │   │   │   ├── setFullYear03-errors.yaml
│       │   │       │   │   │   ├── setFullYear03-input.svelte
│       │   │       │   │   │   ├── setHours01-errors.yaml
│       │   │       │   │   │   ├── setHours01-input.svelte
│       │   │       │   │   │   ├── setHours02-errors.yaml
│       │   │       │   │   │   ├── setHours02-input.svelte
│       │   │       │   │   │   ├── setHours03-errors.yaml
│       │   │       │   │   │   ├── setHours03-input.svelte
│       │   │       │   │   │   ├── setHours04-errors.yaml
│       │   │       │   │   │   ├── setHours04-input.svelte
│       │   │       │   │   │   ├── setMilliseconds01-errors.yaml
│       │   │       │   │   │   ├── setMilliseconds01-input.svelte
│       │   │       │   │   │   ├── setMinutes01-errors.yaml
│       │   │       │   │   │   ├── setMinutes01-input.svelte
│       │   │       │   │   │   ├── setMinutes02-errors.yaml
│       │   │       │   │   │   ├── setMinutes02-input.svelte
│       │   │       │   │   │   ├── setMinutes03-errors.yaml
│       │   │       │   │   │   ├── setMinutes03-input.svelte
│       │   │       │   │   │   ├── setMonth01-errors.yaml
│       │   │       │   │   │   ├── setMonth01-input.svelte
│       │   │       │   │   │   ├── setMonth02-errors.yaml
│       │   │       │   │   │   ├── setMonth02-input.svelte
│       │   │       │   │   │   ├── setSeconds01-errors.yaml
│       │   │       │   │   │   ├── setSeconds01-input.svelte
│       │   │       │   │   │   ├── setSeconds02-errors.yaml
│       │   │       │   │   │   ├── setSeconds02-input.svelte
│       │   │       │   │   │   ├── setTime01-errors.yaml
│       │   │       │   │   │   ├── setTime01-input.svelte
│       │   │       │   │   │   ├── setUTCDate01-errors.yaml
│       │   │       │   │   │   ├── setUTCDate01-input.svelte
│       │   │       │   │   │   ├── setUTCFullYear01-errors.yaml
│       │   │       │   │   │   ├── setUTCFullYear01-input.svelte
│       │   │       │   │   │   ├── setUTCFullYear02-errors.yaml
│       │   │       │   │   │   ├── setUTCFullYear02-input.svelte
│       │   │       │   │   │   ├── setUTCFullYear03-errors.yaml
│       │   │       │   │   │   ├── setUTCFullYear03-input.svelte
│       │   │       │   │   │   ├── setUTCHours01-errors.yaml
│       │   │       │   │   │   ├── setUTCHours01-input.svelte
│       │   │       │   │   │   ├── setUTCHours02-errors.yaml
│       │   │       │   │   │   ├── setUTCHours02-input.svelte
│       │   │       │   │   │   ├── setUTCHours03-errors.yaml
│       │   │       │   │   │   ├── setUTCHours03-input.svelte
│       │   │       │   │   │   ├── setUTCHours04-errors.yaml
│       │   │       │   │   │   ├── setUTCHours04-input.svelte
│       │   │       │   │   │   ├── setUTCMilliseconds01-errors.yaml
│       │   │       │   │   │   ├── setUTCMilliseconds01-input.svelte
│       │   │       │   │   │   ├── setUTCMinutes01-errors.yaml
│       │   │       │   │   │   ├── setUTCMinutes01-input.svelte
│       │   │       │   │   │   ├── setUTCMinutes02-errors.yaml
│       │   │       │   │   │   ├── setUTCMinutes02-input.svelte
│       │   │       │   │   │   ├── setUTCMinutes03-errors.yaml
│       │   │       │   │   │   ├── setUTCMinutes03-input.svelte
│       │   │       │   │   │   ├── setUTCMonth01-errors.yaml
│       │   │       │   │   │   ├── setUTCMonth01-input.svelte
│       │   │       │   │   │   ├── setUTCMonth02-errors.yaml
│       │   │       │   │   │   ├── setUTCMonth02-input.svelte
│       │   │       │   │   │   ├── setUTCSeconds01-errors.yaml
│       │   │       │   │   │   ├── setUTCSeconds01-input.svelte
│       │   │       │   │   │   ├── setUTCSeconds02-errors.yaml
│       │   │       │   │   │   ├── setUTCSeconds02-input.svelte
│       │   │       │   │   │   ├── setYear01-errors.yaml
│       │   │       │   │   │   └── setYear01-input.svelte
│       │   │       │   │   ├── exports01-errors.yaml
│       │   │       │   │   ├── exports01-input.svelte.js
│       │   │       │   │   ├── exports02-errors.yaml
│       │   │       │   │   ├── exports02-input.svelte.js
│       │   │       │   │   ├── exports03-errors.yaml
│       │   │       │   │   ├── exports03-input.svelte.js
│       │   │       │   │   ├── exports04-errors.yaml
│       │   │       │   │   ├── exports04-input.svelte.js
│       │   │       │   │   ├── map/
│       │   │       │   │   │   ├── _requirements.json
│       │   │       │   │   │   ├── clear01-errors.yaml
│       │   │       │   │   │   ├── clear01-input.svelte
│       │   │       │   │   │   ├── delete01-errors.yaml
│       │   │       │   │   │   ├── delete01-input.svelte
│       │   │       │   │   │   ├── set01-errors.yaml
│       │   │       │   │   │   └── set01-input.svelte
│       │   │       │   │   ├── set/
│       │   │       │   │   │   ├── _requirements.json
│       │   │       │   │   │   ├── add01-errors.yaml
│       │   │       │   │   │   ├── add01-input.svelte
│       │   │       │   │   │   ├── clear01-errors.yaml
│       │   │       │   │   │   ├── clear01-input.svelte
│       │   │       │   │   │   ├── delete01-errors.yaml
│       │   │       │   │   │   └── delete01-input.svelte
│       │   │       │   │   ├── url/
│       │   │       │   │   │   ├── _requirements.json
│       │   │       │   │   │   ├── hash01-errors.yaml
│       │   │       │   │   │   ├── hash01-input.svelte
│       │   │       │   │   │   ├── host01-errors.yaml
│       │   │       │   │   │   ├── host01-input.svelte
│       │   │       │   │   │   ├── hostname01-errors.yaml
│       │   │       │   │   │   ├── hostname01-input.svelte
│       │   │       │   │   │   ├── href01-errors.yaml
│       │   │       │   │   │   ├── href01-input.svelte
│       │   │       │   │   │   ├── password01-errors.yaml
│       │   │       │   │   │   ├── password01-input.svelte
│       │   │       │   │   │   ├── pathname01-errors.yaml
│       │   │       │   │   │   ├── pathname01-input.svelte
│       │   │       │   │   │   ├── port01-errors.yaml
│       │   │       │   │   │   ├── port01-input.svelte
│       │   │       │   │   │   ├── protocol01-errors.yaml
│       │   │       │   │   │   ├── protocol01-input.svelte
│       │   │       │   │   │   ├── search01-errors.yaml
│       │   │       │   │   │   ├── search01-input.svelte
│       │   │       │   │   │   ├── username01-errors.yaml
│       │   │       │   │   │   └── username01-input.svelte
│       │   │       │   │   └── url-search-params/
│       │   │       │   │       ├── _requirements.json
│       │   │       │   │       ├── append01-errors.yaml
│       │   │       │   │       ├── append01-input.svelte
│       │   │       │   │       ├── delete01-errors.yaml
│       │   │       │   │       ├── delete01-input.svelte
│       │   │       │   │       ├── delete02-errors.yaml
│       │   │       │   │       ├── delete02-input.svelte
│       │   │       │   │       ├── set01-errors.yaml
│       │   │       │   │       ├── set01-input.svelte
│       │   │       │   │       ├── sort01-errors.yaml
│       │   │       │   │       └── sort01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── _requirements.json
│       │   │       │       ├── aliased-date01-input.svelte
│       │   │       │       ├── aliased-map01-input.svelte
│       │   │       │       ├── aliased-set01-input.svelte
│       │   │       │       ├── aliased-url-search-params01-input.svelte
│       │   │       │       ├── aliased-url01-input.svelte
│       │   │       │       ├── date01-input.svelte
│       │   │       │       ├── map01-input.svelte
│       │   │       │       ├── set01-input.svelte
│       │   │       │       ├── svelte-date01-input.svelte
│       │   │       │       ├── svelte-map01-input.svelte
│       │   │       │       ├── svelte-set01-input.svelte
│       │   │       │       ├── svelte-url-search-params01-input.svelte
│       │   │       │       ├── svelte-url01-input.svelte
│       │   │       │       ├── unrelated-date01-input.svelte
│       │   │       │       ├── unrelated-map01-input.svelte
│       │   │       │       ├── unrelated-set01-input.svelte
│       │   │       │       ├── unrelated-url-search-params01-input.svelte
│       │   │       │       ├── unrelated-url01-input.svelte
│       │   │       │       ├── url-search-params01-input.svelte
│       │   │       │       └── url01-input.svelte
│       │   │       ├── prefer-writable-derived/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── _requirements.json
│       │   │       │   │   ├── basic1-errors.yaml
│       │   │       │   │   ├── basic1-input.svelte
│       │   │       │   │   ├── basic2-errors.yaml
│       │   │       │   │   ├── basic2-input.svelte
│       │   │       │   │   ├── effect-pre1-errors.yaml
│       │   │       │   │   ├── effect-pre1-input.svelte
│       │   │       │   │   ├── effect-pre2-errors.yaml
│       │   │       │   │   ├── effect-pre2-input.svelte
│       │   │       │   │   ├── multiple-reassign1-errors.yaml
│       │   │       │   │   ├── multiple-reassign1-input.svelte
│       │   │       │   │   ├── multiple-reassign2-errors.yaml
│       │   │       │   │   ├── multiple-reassign2-input.svelte
│       │   │       │   │   ├── multiple-reassign3-errors.yaml
│       │   │       │   │   └── multiple-reassign3-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── _requirements.json
│       │   │       │       ├── condition1-input.svelte
│       │   │       │       └── condition2-input.svelte
│       │   │       ├── require-each-key/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── each-block-without-key01-errors.yaml
│       │   │       │   │   └── each-block-without-key01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── keyed-each-block01-input.svelte
│       │   │       │       └── svelte5/
│       │   │       │           ├── _requirements.json
│       │   │       │           └── each-blocks-without-an-item-input.svelte
│       │   │       ├── require-event-dispatcher-types/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── _requirements.json
│       │   │       │   │   ├── import-alias01-errors.yaml
│       │   │       │   │   ├── import-alias01-input.svelte
│       │   │       │   │   ├── no-types01-errors.yaml
│       │   │       │   │   └── no-types01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── _requirements.json
│       │   │       │       ├── has-types01-input.svelte
│       │   │       │       ├── no-typescript01-input.svelte
│       │   │       │       └── non-svelte-dispatcher01-input.svelte
│       │   │       ├── require-event-prefix/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── _requirements.json
│       │   │       │   │   ├── checkAsyncFunctions/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── _requirements.json
│       │   │       │   │   │   ├── async-arrow01-errors.yaml
│       │   │       │   │   │   ├── async-arrow01-input.svelte
│       │   │       │   │   │   ├── async01-errors.yaml
│       │   │       │   │   │   └── async01-input.svelte
│       │   │       │   │   ├── no-prefix-arrow01-errors.yaml
│       │   │       │   │   ├── no-prefix-arrow01-input.svelte
│       │   │       │   │   ├── no-prefix-inline-type01-errors.yaml
│       │   │       │   │   ├── no-prefix-inline-type01-input.svelte
│       │   │       │   │   ├── no-prefix01-errors.yaml
│       │   │       │   │   └── no-prefix01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── _requirements.json
│       │   │       │       ├── any01-input.svelte
│       │   │       │       ├── async01-input.svelte
│       │   │       │       ├── non-function01-input.svelte
│       │   │       │       └── with-prefix01-input.svelte
│       │   │       ├── require-optimized-style-attribute/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── comment01-errors.yaml
│       │   │       │   │   ├── comment01-input.svelte
│       │   │       │   │   ├── key01-errors.yaml
│       │   │       │   │   ├── key01-input.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   └── test01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── empty01-input.svelte
│       │   │       │       └── test01-input.svelte
│       │   │       ├── require-store-callbacks-use-set-param/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   ├── test02-errors.yaml
│       │   │       │   │   └── test02-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── test01-input.svelte
│       │   │       │       └── test02-input.svelte
│       │   │       ├── require-store-reactive-access/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── attrs-store01-errors.yaml
│       │   │       │   │   ├── attrs-store01-input.svelte
│       │   │       │   │   ├── attrs-store01-output.svelte
│       │   │       │   │   ├── await01-errors.yaml
│       │   │       │   │   ├── await01-input.svelte
│       │   │       │   │   ├── await01-output.svelte
│       │   │       │   │   ├── calc01-errors.yaml
│       │   │       │   │   ├── calc01-input.svelte
│       │   │       │   │   ├── calc01-output.svelte
│       │   │       │   │   ├── calc01-requirements.json
│       │   │       │   │   ├── call01-errors.yaml
│       │   │       │   │   ├── call01-input.svelte
│       │   │       │   │   ├── call01-output.svelte
│       │   │       │   │   ├── condition01-errors.yaml
│       │   │       │   │   ├── condition01-input.svelte
│       │   │       │   │   ├── condition01-output.svelte
│       │   │       │   │   ├── directives-store01-errors.yaml
│       │   │       │   │   ├── directives-store01-input.svelte
│       │   │       │   │   ├── directives-store01-output.svelte
│       │   │       │   │   ├── for-in01-errors.yaml
│       │   │       │   │   ├── for-in01-input.svelte
│       │   │       │   │   ├── for-in01-output.svelte
│       │   │       │   │   ├── for-of01-errors.yaml
│       │   │       │   │   ├── for-of01-input.svelte
│       │   │       │   │   ├── for-of01-output.svelte
│       │   │       │   │   ├── if-block01-errors.yaml
│       │   │       │   │   ├── if-block01-input.svelte
│       │   │       │   │   ├── if-block01-output.svelte
│       │   │       │   │   ├── if-statement01-errors.yaml
│       │   │       │   │   ├── if-statement01-input.svelte
│       │   │       │   │   ├── if-statement01-output.svelte
│       │   │       │   │   ├── import01-errors.yaml
│       │   │       │   │   ├── import01-input.svelte
│       │   │       │   │   ├── import01-output.svelte
│       │   │       │   │   ├── properties01-errors.yaml
│       │   │       │   │   ├── properties01-input.svelte
│       │   │       │   │   ├── properties01-output.svelte
│       │   │       │   │   ├── props-store01-errors.yaml
│       │   │       │   │   ├── props-store01-input.svelte
│       │   │       │   │   ├── props-store01-output.svelte
│       │   │       │   │   ├── spread01-errors.yaml
│       │   │       │   │   ├── spread01-input.svelte
│       │   │       │   │   ├── spread01-output.svelte
│       │   │       │   │   ├── svelte-component01-errors.yaml
│       │   │       │   │   ├── svelte-component01-input.svelte
│       │   │       │   │   ├── svelte-component01-output.svelte
│       │   │       │   │   ├── svelte-element01-errors.yaml
│       │   │       │   │   ├── svelte-element01-input.svelte
│       │   │       │   │   ├── svelte-element01-output.svelte
│       │   │       │   │   ├── switch01-errors.yaml
│       │   │       │   │   ├── switch01-input.svelte
│       │   │       │   │   ├── switch01-output.svelte
│       │   │       │   │   ├── tagged01-errors.yaml
│       │   │       │   │   ├── tagged01-input.svelte
│       │   │       │   │   ├── tagged01-output.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   ├── test01-output.svelte
│       │   │       │   │   └── ts/
│       │   │       │   │       ├── ts-class-directives01-errors.yaml
│       │   │       │   │       ├── ts-class-directives01-input.svelte
│       │   │       │   │       ├── ts-class-directives01-output.svelte
│       │   │       │   │       ├── ts-i18n-errors.yaml
│       │   │       │   │       ├── ts-i18n-input.svelte
│       │   │       │   │       ├── ts-i18n-output.svelte
│       │   │       │   │       ├── ts-if-block01-errors.yaml
│       │   │       │   │       ├── ts-if-block01-input.svelte
│       │   │       │   │       ├── ts-if-block01-output.svelte
│       │   │       │   │       ├── ts-stores01-errors.yaml
│       │   │       │   │       ├── ts-stores01-input.svelte
│       │   │       │   │       ├── ts-stores01-output.svelte
│       │   │       │   │       ├── ts-test01-errors.yaml
│       │   │       │   │       ├── ts-test01-input.svelte
│       │   │       │   │       └── ts-test01-output.svelte
│       │   │       │   ├── ts/
│       │   │       │   │   ├── non-store.ts
│       │   │       │   │   └── store.ts
│       │   │       │   └── valid/
│       │   │       │       ├── attrs-store01-input.svelte
│       │   │       │       ├── await01-input.svelte
│       │   │       │       ├── calc01-input.svelte
│       │   │       │       ├── call01-input.svelte
│       │   │       │       ├── condition01-input.svelte
│       │   │       │       ├── directives-store01-input.svelte
│       │   │       │       ├── for-in01-input.svelte
│       │   │       │       ├── for-of01-input.svelte
│       │   │       │       ├── if-statement01-input.svelte
│       │   │       │       ├── import01-input.svelte
│       │   │       │       ├── properties01-input.svelte
│       │   │       │       ├── props-store01-input.svelte
│       │   │       │       ├── spread01-input.svelte
│       │   │       │       ├── svelte-component01-input.svelte
│       │   │       │       ├── svelte-element01-input.svelte
│       │   │       │       ├── switch01-input.svelte
│       │   │       │       ├── tagged01-input.svelte
│       │   │       │       ├── test01-input.svelte
│       │   │       │       ├── ts/
│       │   │       │       │   ├── ts-i18n-input.svelte
│       │   │       │       │   ├── ts-non-store01-input.svelte
│       │   │       │       │   ├── ts-non-store02-input.svelte
│       │   │       │       │   ├── ts-stores01-input.svelte
│       │   │       │       │   └── ts-test01-input.svelte
│       │   │       │       ├── unknown-values01-input.svelte
│       │   │       │       └── unknown-values02-input.svelte
│       │   │       ├── require-stores-init/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── no-init-in-js01-errors.yaml
│       │   │       │   │   ├── no-init-in-js01-input.js
│       │   │       │   │   ├── no-init01-errors.yaml
│       │   │       │   │   └── no-init01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── has-init-in-js01-input.js
│       │   │       │       ├── has-init01-input.svelte
│       │   │       │       ├── no-svelte-store01-input.svelte
│       │   │       │       └── spread01-input.svelte
│       │   │       ├── shorthand-attribute/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── always/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── never/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   └── test01-output.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── always/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── test01-input.svelte
│       │   │       │       ├── never/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── test01-input.svelte
│       │   │       │       └── test01-input.svelte
│       │   │       ├── shorthand-directive/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── always/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── never/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── test01-errors.yaml
│       │   │       │   │   │   ├── test01-input.svelte
│       │   │       │   │   │   └── test01-output.svelte
│       │   │       │   │   ├── test01-errors.yaml
│       │   │       │   │   ├── test01-input.svelte
│       │   │       │   │   └── test01-output.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── always/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── test01-input.svelte
│       │   │       │       ├── never/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── test01-input.svelte
│       │   │       │       └── test01-input.svelte
│       │   │       ├── sort-attributes/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── alphabetical-test-config.json
│       │   │       │   │   ├── alphabetical-test-errors.yaml
│       │   │       │   │   ├── alphabetical-test-input.svelte
│       │   │       │   │   ├── alphabetical-test-output.svelte
│       │   │       │   │   ├── attach-tag-errors.yaml
│       │   │       │   │   ├── attach-tag-input.svelte
│       │   │       │   │   ├── attach-tag-output.svelte
│       │   │       │   │   ├── attach-tag-requirements.json
│       │   │       │   │   ├── default/
│       │   │       │   │   │   ├── class-test-errors.yaml
│       │   │       │   │   │   ├── class-test-input.svelte
│       │   │       │   │   │   ├── class-test-output.svelte
│       │   │       │   │   │   ├── default-test01-errors.yaml
│       │   │       │   │   │   ├── default-test01-input.svelte
│       │   │       │   │   │   ├── default-test01-output.svelte
│       │   │       │   │   │   ├── default-test01fix1-errors.yaml
│       │   │       │   │   │   ├── default-test01fix1-input.svelte
│       │   │       │   │   │   ├── default-test01fix1-output.svelte
│       │   │       │   │   │   ├── default-test01fix2-errors.yaml
│       │   │       │   │   │   ├── default-test01fix2-input.svelte
│       │   │       │   │   │   ├── default-test01fix2-output.svelte
│       │   │       │   │   │   ├── default-test01fix3-errors.yaml
│       │   │       │   │   │   ├── default-test01fix3-input.svelte
│       │   │       │   │   │   ├── default-test01fix3-output.svelte
│       │   │       │   │   │   ├── default-test01fix4-errors.yaml
│       │   │       │   │   │   ├── default-test01fix4-input.svelte
│       │   │       │   │   │   ├── default-test01fix4-output.svelte
│       │   │       │   │   │   ├── in-out-test-errors.yaml
│       │   │       │   │   │   ├── in-out-test-input.svelte
│       │   │       │   │   │   ├── in-out-test-output.svelte
│       │   │       │   │   │   ├── let-test-errors.yaml
│       │   │       │   │   │   ├── let-test-input.svelte
│       │   │       │   │   │   ├── let-test-output.svelte
│       │   │       │   │   │   ├── slot-test-errors.yaml
│       │   │       │   │   │   ├── slot-test-input.svelte
│       │   │       │   │   │   ├── slot-test-output.svelte
│       │   │       │   │   │   ├── spread-test01-errors.yaml
│       │   │       │   │   │   ├── spread-test01-input.svelte
│       │   │       │   │   │   ├── spread-test01-output.svelte
│       │   │       │   │   │   ├── spread-test02-errors.yaml
│       │   │       │   │   │   ├── spread-test02-input.svelte
│       │   │       │   │   │   ├── spread-test02-output.svelte
│       │   │       │   │   │   ├── spread-test03-errors.yaml
│       │   │       │   │   │   ├── spread-test03-input.svelte
│       │   │       │   │   │   ├── spread-test03-output.svelte
│       │   │       │   │   │   ├── style-ptops-test-errors.yaml
│       │   │       │   │   │   ├── style-ptops-test-input.svelte
│       │   │       │   │   │   ├── style-ptops-test-output.svelte
│       │   │       │   │   │   ├── use-test-errors.yaml
│       │   │       │   │   │   ├── use-test-input.svelte
│       │   │       │   │   │   └── use-test-output.svelte
│       │   │       │   │   ├── ignore-no-order-test-config.json
│       │   │       │   │   ├── ignore-no-order-test-errors.yaml
│       │   │       │   │   ├── ignore-no-order-test-input.svelte
│       │   │       │   │   ├── ignore-no-order-test-output.svelte
│       │   │       │   │   ├── ignore-no-order-with-spread-test-config.json
│       │   │       │   │   ├── ignore-no-order-with-spread-test-errors.yaml
│       │   │       │   │   ├── ignore-no-order-with-spread-test-input.svelte
│       │   │       │   │   ├── ignore-no-order-with-spread-test-output.svelte
│       │   │       │   │   └── order/
│       │   │       │   │       ├── _config.json
│       │   │       │   │       ├── test01-errors.yaml
│       │   │       │   │       ├── test01-input.svelte
│       │   │       │   │       ├── test01-output.svelte
│       │   │       │   │       ├── test01fix1-errors.yaml
│       │   │       │   │       ├── test01fix1-input.svelte
│       │   │       │   │       ├── test01fix1-output.svelte
│       │   │       │   │       ├── test01fix2-errors.yaml
│       │   │       │   │       ├── test01fix2-input.svelte
│       │   │       │   │       ├── test01fix2-output.svelte
│       │   │       │   │       ├── test01fix3-errors.yaml
│       │   │       │   │       ├── test01fix3-input.svelte
│       │   │       │   │       ├── test01fix3-output.svelte
│       │   │       │   │       ├── test01fix4-errors.yaml
│       │   │       │   │       ├── test01fix4-input.svelte
│       │   │       │   │       ├── test01fix4-output.svelte
│       │   │       │   │       ├── test01fix5-errors.yaml
│       │   │       │   │       ├── test01fix5-input.svelte
│       │   │       │   │       ├── test01fix5-output.svelte
│       │   │       │   │       ├── test01fix6-errors.yaml
│       │   │       │   │       ├── test01fix6-input.svelte
│       │   │       │   │       ├── test01fix6-output.svelte
│       │   │       │   │       ├── test01fix7-errors.yaml
│       │   │       │   │       ├── test01fix7-input.svelte
│       │   │       │   │       └── test01fix7-output.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── alphabetical-test-config.json
│       │   │       │       ├── alphabetical-test-input.svelte
│       │   │       │       ├── attach-tag-input.svelte
│       │   │       │       ├── attach-tag-requirements.json
│       │   │       │       ├── default/
│       │   │       │       │   ├── bind-on-test01-input.svelte
│       │   │       │       │   ├── class-test-input.svelte
│       │   │       │       │   ├── default-test01-input.svelte
│       │   │       │       │   ├── ignore-spread-test-input.svelte
│       │   │       │       │   ├── in-out-test-input.svelte
│       │   │       │       │   ├── let-test-input.svelte
│       │   │       │       │   ├── slot-test-input.svelte
│       │   │       │       │   ├── spread-test01-input.svelte
│       │   │       │       │   ├── spread-test02-input.svelte
│       │   │       │       │   ├── style-ptops-test-input.svelte
│       │   │       │       │   ├── style-test-input.svelte
│       │   │       │       │   └── use-test-input.svelte
│       │   │       │       ├── ignore-no-order-test-config.json
│       │   │       │       ├── ignore-no-order-test-input.svelte
│       │   │       │       ├── ignore-no-order-with-spread-test-config.json
│       │   │       │       ├── ignore-no-order-with-spread-test-input.svelte
│       │   │       │       └── order/
│       │   │       │           ├── _config.json
│       │   │       │           └── test01-input.svelte
│       │   │       ├── spaced-html-comment/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── always/
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── always-invalid-errors.yaml
│       │   │       │   │   │   ├── always-invalid-input.svelte
│       │   │       │   │   │   └── always-invalid-output.svelte
│       │   │       │   │   ├── default/
│       │   │       │   │   │   ├── default-invalid-errors.yaml
│       │   │       │   │   │   ├── default-invalid-input.svelte
│       │   │       │   │   │   └── default-invalid-output.svelte
│       │   │       │   │   └── never/
│       │   │       │   │       ├── _config.json
│       │   │       │   │       ├── never-invalid-errors.yaml
│       │   │       │   │       ├── never-invalid-input.svelte
│       │   │       │   │       └── never-invalid-output.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── always/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── test01-input.svelte
│       │   │       │       ├── default/
│       │   │       │       │   └── test01-input.svelte
│       │   │       │       └── never/
│       │   │       │           ├── _config.json
│       │   │       │           └── test01-input.svelte
│       │   │       ├── sveltekit-types.d.ts
│       │   │       ├── tsconfig.json
│       │   │       ├── valid-compile/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── a11y01-errors.yaml
│       │   │       │   │   ├── a11y01-input.svelte
│       │   │       │   │   ├── a11y01-requirements.json
│       │   │       │   │   ├── a11y01-svelte4-errors.yaml
│       │   │       │   │   ├── a11y01-svelte4-input.svelte
│       │   │       │   │   ├── a11y01-svelte4-requirements.json
│       │   │       │   │   ├── custom_element_props_identifier-errors.yaml
│       │   │       │   │   ├── custom_element_props_identifier-input.svelte
│       │   │       │   │   ├── custom_element_props_identifier-requirements.json
│       │   │       │   │   ├── dyamic-slot01-errors.yaml
│       │   │       │   │   ├── dyamic-slot01-input.svelte
│       │   │       │   │   ├── dyamic-slot01-requirements.json
│       │   │       │   │   ├── experimental-async-disabled/
│       │   │       │   │   │   ├── top-level-await-errors.yaml
│       │   │       │   │   │   ├── top-level-await-input.svelte
│       │   │       │   │   │   └── top-level-await-requirements.json
│       │   │       │   │   ├── invalid-svelte-ignore01-errors.yaml
│       │   │       │   │   ├── invalid-svelte-ignore01-input.svelte
│       │   │       │   │   ├── invalid-svelte-ignore01-requirements.json
│       │   │       │   │   ├── invalid-svelte-ignore01-svelte4-errors.yaml
│       │   │       │   │   ├── invalid-svelte-ignore01-svelte4-input.svelte
│       │   │       │   │   ├── invalid-svelte-ignore01-svelte4-requirements.json
│       │   │       │   │   ├── invalid-svelte-ignore02-errors.yaml
│       │   │       │   │   ├── invalid-svelte-ignore02-input.svelte
│       │   │       │   │   ├── invalid-svelte-ignore02-requirements.json
│       │   │       │   │   ├── invalid-svelte-ignore02-svelte4-errors.yaml
│       │   │       │   │   ├── invalid-svelte-ignore02-svelte4-input.svelte
│       │   │       │   │   ├── invalid-svelte-ignore02-svelte4-requirements.json
│       │   │       │   │   ├── invalid-svelte-ignore03-errors.yaml
│       │   │       │   │   ├── invalid-svelte-ignore03-input.svelte
│       │   │       │   │   ├── invalid-svelte-ignore03-requirements.json
│       │   │       │   │   ├── invalid-svelte-ignore03-svelte4-errors.yaml
│       │   │       │   │   ├── invalid-svelte-ignore03-svelte4-input.svelte
│       │   │       │   │   ├── invalid-svelte-ignore03-svelte4-requirements.json
│       │   │       │   │   ├── style-lang01-errors.yaml
│       │   │       │   │   ├── style-lang01-input.svelte
│       │   │       │   │   ├── style-lang01-requirements.json
│       │   │       │   │   ├── style-without-global-01-errors.yaml
│       │   │       │   │   ├── style-without-global-01-input.svelte
│       │   │       │   │   ├── style-without-global-01-requirements.json
│       │   │       │   │   ├── style-without-global-02-errors.yaml
│       │   │       │   │   ├── style-without-global-02-input.svelte
│       │   │       │   │   ├── style-without-global-02-requirements.json
│       │   │       │   │   ├── svelte-config-custom-warn/
│       │   │       │   │   │   ├── _config.cjs
│       │   │       │   │   │   ├── a11y-errors.yaml
│       │   │       │   │   │   ├── a11y-input.svelte
│       │   │       │   │   │   ├── a11y-requirements.json
│       │   │       │   │   │   ├── a11y-svelte4-errors.yaml
│       │   │       │   │   │   ├── a11y-svelte4-input.svelte
│       │   │       │   │   │   └── a11y-svelte4-requirements.json
│       │   │       │   │   ├── svelte-config-onwarn/
│       │   │       │   │   │   ├── _config.cjs
│       │   │       │   │   │   ├── a11y-errors.yaml
│       │   │       │   │   │   ├── a11y-input.svelte
│       │   │       │   │   │   ├── a11y-requirements.json
│       │   │       │   │   │   ├── a11y-svelte4-errors.yaml
│       │   │       │   │   │   ├── a11y-svelte4-input.svelte
│       │   │       │   │   │   └── a11y-svelte4-requirements.json
│       │   │       │   │   ├── svelte-config-warning-filter/
│       │   │       │   │   │   ├── _config.cjs
│       │   │       │   │   │   ├── a11y-errors.yaml
│       │   │       │   │   │   ├── a11y-input.svelte
│       │   │       │   │   │   └── a11y-requirements.json
│       │   │       │   │   └── ts/
│       │   │       │   │       ├── enum01-errors.yaml
│       │   │       │   │       ├── enum01-input.svelte
│       │   │       │   │       ├── enum01-requirements.json
│       │   │       │   │       ├── enum01-svelte4-errors.yaml
│       │   │       │   │       ├── enum01-svelte4-input.svelte
│       │   │       │   │       └── enum01-svelte4-requirements.json
│       │   │       │   └── valid/
│       │   │       │       ├── babel/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   ├── babel-function-bind01-input.svelte
│       │   │       │       │   └── class01-input.svelte
│       │   │       │       ├── global-style-input.svelte
│       │   │       │       ├── ignore-warnings/
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── enum01-input.svelte
│       │   │       │       ├── ignore01-input.svelte
│       │   │       │       ├── ignore01-requirements.json
│       │   │       │       ├── ignore01-svelte4-input.svelte
│       │   │       │       ├── ignore01-svelte4-requirements.json
│       │   │       │       ├── ignore02-input.svelte
│       │   │       │       ├── ignore02-requirements.json
│       │   │       │       ├── ignore02-svelte4-input.svelte
│       │   │       │       ├── ignore02-svelte4-requirements.json
│       │   │       │       ├── no-false-custom_element_props_identifier-warning-without-custom-element-input.svelte
│       │   │       │       ├── no-false-custom_element_props_identifier-warning-without-custom-element-requirements.json
│       │   │       │       ├── script-comment-input.svelte
│       │   │       │       ├── script-comment-requirements.json
│       │   │       │       ├── script-comment-svelte4-input.svelte
│       │   │       │       ├── script-comment-svelte4-requirements.json
│       │   │       │       ├── style-lang01-input.svelte
│       │   │       │       ├── style-lang02-input.svelte
│       │   │       │       ├── style-lang03-input.svelte
│       │   │       │       ├── svelte-config-experimental-async/
│       │   │       │       │   ├── _config.cjs
│       │   │       │       │   ├── top-level-await-input.svelte
│       │   │       │       │   └── top-level-await-requirements.json
│       │   │       │       ├── svelte-config-onwarn/
│       │   │       │       │   ├── _config.cjs
│       │   │       │       │   └── a11y-input.svelte
│       │   │       │       ├── svelte-config-warning-filter/
│       │   │       │       │   ├── _config.cjs
│       │   │       │       │   └── a11y-input.svelte
│       │   │       │       ├── svelte-ignore01-input.svelte
│       │   │       │       ├── svelte-ignore01-requirements.json
│       │   │       │       ├── svelte-ignore01-svelte4-input.svelte
│       │   │       │       ├── svelte-ignore01-svelte4-requirements.json
│       │   │       │       ├── svelte-ignore02-input.svelte
│       │   │       │       ├── svelte-ignore02-requirements.json
│       │   │       │       ├── svelte-ignore02-svelte4-input.svelte
│       │   │       │       ├── svelte-ignore02-svelte4-requirements.json
│       │   │       │       ├── svelte-ignore03-input.svelte
│       │   │       │       ├── svelte-ignore03-requirements.json
│       │   │       │       ├── svelte-ignore03-svelte4-input.svelte
│       │   │       │       ├── svelte-ignore03-svelte4-requirements.json
│       │   │       │       ├── svelte-ignore04-input.svelte
│       │   │       │       ├── svelte-ignore04-requirements.json
│       │   │       │       ├── svelte-ignore04-svelte4-input.svelte
│       │   │       │       ├── svelte-ignore04-svelte4-requirements.json
│       │   │       │       ├── svelte-ignore05-input.svelte
│       │   │       │       ├── svelte-ignore05-requirements.json
│       │   │       │       ├── svelte-ignore05-svelte4-input.svelte
│       │   │       │       ├── svelte-ignore05-svelte4-requirements.json
│       │   │       │       ├── svelte-ignore06-input.svelte
│       │   │       │       ├── svelte-ignore06-requirements.json
│       │   │       │       ├── svelte-ignore06-svelte4-input.svelte
│       │   │       │       ├── svelte-ignore06-svelte4-requirements.json
│       │   │       │       ├── svelte-ignore07-input.svelte
│       │   │       │       ├── svelte-ignore07-requirements.json
│       │   │       │       ├── svelte-ignore07-svelte4-input.svelte
│       │   │       │       ├── svelte-ignore07-svelte4-requirements.json
│       │   │       │       ├── svelte-options-custom-element-input.svelte
│       │   │       │       ├── svelte-options-custom-element-requirements.json
│       │   │       │       ├── svelte3-options-custom-element-input.svelte
│       │   │       │       ├── svelte3-options-custom-element-requirements.json
│       │   │       │       ├── test01-input.svelte
│       │   │       │       ├── ts/
│       │   │       │       │   ├── class01-input.svelte
│       │   │       │       │   ├── script-comment-input.svelte
│       │   │       │       │   ├── script-comment-requirements.json
│       │   │       │       │   ├── script-comment-svelte4-input.svelte
│       │   │       │       │   ├── script-comment-svelte4-requirements.json
│       │   │       │       │   ├── test01-input.svelte
│       │   │       │       │   ├── ts-lang01-input-svete4-requirements.json
│       │   │       │       │   ├── ts-lang01-input-svete4.svelte
│       │   │       │       │   ├── ts-lang01-input.svelte
│       │   │       │       │   ├── ts-lang01-requirements.json
│       │   │       │       │   ├── ts-unused-in-script-input.svelte
│       │   │       │       │   ├── type-only-import01-input.svelte
│       │   │       │       │   └── type-only-import02-input.svelte
│       │   │       │       ├── undef01-input.svelte
│       │   │       │       ├── unuse01-input.svelte
│       │   │       │       ├── valid-custom-element-with-props-identifier-input.svelte
│       │   │       │       └── valid-custom-element-with-props-identifier-requirements.json
│       │   │       ├── valid-each-key/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── const-key01-errors.yaml
│       │   │       │   │   ├── const-key01-input.svelte
│       │   │       │   │   ├── out-vars-key01-errors.yaml
│       │   │       │   │   └── out-vars-key01-input.svelte
│       │   │       │   └── valid/
│       │   │       │       ├── call-key01-input.svelte
│       │   │       │       ├── destructure-key01-input.svelte
│       │   │       │       ├── expression-key01-input.svelte
│       │   │       │       ├── expression-key02-input.svelte
│       │   │       │       ├── index-key01-input.svelte
│       │   │       │       ├── member-key01-input.svelte
│       │   │       │       ├── svelte5-each-blocks-without-an-item-input.svelte
│       │   │       │       └── svelte5-each-blocks-without-an-item-requirements.json
│       │   │       ├── valid-prop-names-in-kit-pages/
│       │   │       │   ├── invalid/
│       │   │       │   │   ├── +page.svelte
│       │   │       │   │   ├── _config.json
│       │   │       │   │   ├── errors.yaml
│       │   │       │   │   ├── svelte-config/
│       │   │       │   │   │   ├── +page.svelte
│       │   │       │   │   │   ├── errors.yaml
│       │   │       │   │   │   └── svelte.config.js
│       │   │       │   │   ├── svelte-config-from-parser-options/
│       │   │       │   │   │   ├── +page.svelte
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   └── errors.yaml
│       │   │       │   │   ├── svelte4-children/
│       │   │       │   │   │   ├── +page.svelte
│       │   │       │   │   │   ├── _config.json
│       │   │       │   │   │   ├── errors.yaml
│       │   │       │   │   │   └── requirements.json
│       │   │       │   │   └── svelte5/
│       │   │       │   │       ├── +page.svelte
│       │   │       │   │       ├── _config.json
│       │   │       │   │       ├── errors.yaml
│       │   │       │   │       └── requirements.json
│       │   │       │   └── valid/
│       │   │       │       ├── _config.json
│       │   │       │       ├── not-page/
│       │   │       │       │   ├── svelte5/
│       │   │       │       │   │   ├── test01-input.svelte
│       │   │       │       │   │   └── test01-requirements.json
│       │   │       │       │   └── test01-input.svelte
│       │   │       │       ├── svelte5/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── requirements.json
│       │   │       │       ├── svelte5-typescript/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── requirements.json
│       │   │       │       ├── svelte5-without-runes/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   ├── _config.json
│       │   │       │       │   └── requirements.json
│       │   │       │       ├── test-for-form/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   └── _config.json
│       │   │       │       ├── test001/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   └── _config.json
│       │   │       │       ├── test002-1/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   └── _config.json
│       │   │       │       ├── test002-2/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   └── _config.json
│       │   │       │       ├── test003-1/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   └── _config.json
│       │   │       │       ├── test003-2/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   └── _config.json
│       │   │       │       ├── test004-1/
│       │   │       │       │   ├── +page.svelte
│       │   │       │       │   └── _config.json
│       │   │       │       └── test004-2/
│       │   │       │           ├── +page.svelte
│       │   │       │           └── _config.json
│       │   │       └── valid-style-parse/
│       │   │           ├── invalid/
│       │   │           │   ├── invalid-css01-errors.yaml
│       │   │           │   ├── invalid-css01-input.svelte
│       │   │           │   ├── invalid-scss01-errors.yaml
│       │   │           │   ├── invalid-scss01-input.svelte
│       │   │           │   ├── unknown-lang01-errors.yaml
│       │   │           │   └── unknown-lang01-input.svelte
│       │   │           └── valid/
│       │   │               ├── no-style01-input.svelte
│       │   │               ├── valid-css01-input.svelte
│       │   │               └── valid-scss01-input.svelte
│       │   ├── src/
│       │   │   ├── configs/
│       │   │   │   ├── all.ts
│       │   │   │   ├── base.ts
│       │   │   │   └── recommended.ts
│       │   │   ├── index.spec.ts
│       │   │   ├── integration/
│       │   │   │   └── no-unused-vars.ts
│       │   │   ├── meta.ts
│       │   │   ├── rules/
│       │   │   │   ├── @typescript-eslint/
│       │   │   │   │   ├── no-unnecessary-condition.ts
│       │   │   │   │   └── original-tests/
│       │   │   │   │       ├── fixtures/
│       │   │   │   │       │   ├── file.ts
│       │   │   │   │       │   ├── react.tsx
│       │   │   │   │       │   ├── tsconfig.json
│       │   │   │   │       │   └── unstrict/
│       │   │   │   │       │       ├── file.ts
│       │   │   │   │       │       ├── react.tsx
│       │   │   │   │       │       └── tsconfig.json
│       │   │   │   │       └── no-unnecessary-condition.ts
│       │   │   │   ├── block-lang.ts
│       │   │   │   ├── button-has-type.ts
│       │   │   │   ├── comment-directive.ts
│       │   │   │   ├── consistent-selector-style.ts
│       │   │   │   ├── derived-has-same-inputs-outputs.ts
│       │   │   │   ├── experimental-require-slot-types.ts
│       │   │   │   ├── experimental-require-strict-events.ts
│       │   │   │   ├── first-attribute-linebreak.ts
│       │   │   │   ├── html-closing-bracket-new-line.ts
│       │   │   │   ├── html-closing-bracket-spacing.ts
│       │   │   │   ├── html-quotes.ts
│       │   │   │   ├── html-self-closing.ts
│       │   │   │   ├── indent.ts
│       │   │   │   ├── infinite-reactive-loop.ts
│       │   │   │   ├── max-attributes-per-line.ts
│       │   │   │   ├── max-lines-per-block.ts
│       │   │   │   ├── mustache-spacing.ts
│       │   │   │   ├── no-add-event-listener.ts
│       │   │   │   ├── no-at-debug-tags.ts
│       │   │   │   ├── no-at-html-tags.ts
│       │   │   │   ├── no-dom-manipulating.ts
│       │   │   │   ├── no-dupe-else-if-blocks.ts
│       │   │   │   ├── no-dupe-on-directives.ts
│       │   │   │   ├── no-dupe-style-properties.ts
│       │   │   │   ├── no-dupe-use-directives.ts
│       │   │   │   ├── no-dynamic-slot-name.ts
│       │   │   │   ├── no-export-load-in-svelte-module-in-kit-pages.ts
│       │   │   │   ├── no-extra-reactive-curlies.ts
│       │   │   │   ├── no-goto-without-base.ts
│       │   │   │   ├── no-ignored-unsubscribe.ts
│       │   │   │   ├── no-immutable-reactive-statements.ts
│       │   │   │   ├── no-inline-styles.ts
│       │   │   │   ├── no-inner-declarations.ts
│       │   │   │   ├── no-inspect.ts
│       │   │   │   ├── no-navigation-without-base.ts
│       │   │   │   ├── no-navigation-without-resolve.ts
│       │   │   │   ├── no-not-function-handler.ts
│       │   │   │   ├── no-object-in-text-mustaches.ts
│       │   │   │   ├── no-raw-special-elements.ts
│       │   │   │   ├── no-reactive-functions.ts
│       │   │   │   ├── no-reactive-literals.ts
│       │   │   │   ├── no-reactive-reassign.ts
│       │   │   │   ├── no-restricted-html-elements.ts
│       │   │   │   ├── no-shorthand-style-property-overrides.ts
│       │   │   │   ├── no-spaces-around-equal-signs-in-attribute.ts
│       │   │   │   ├── no-store-async.ts
│       │   │   │   ├── no-svelte-internal.ts
│       │   │   │   ├── no-target-blank.ts
│       │   │   │   ├── no-top-level-browser-globals.ts
│       │   │   │   ├── no-trailing-spaces.ts
│       │   │   │   ├── no-unknown-style-directive-property.ts
│       │   │   │   ├── no-unnecessary-state-wrap.ts
│       │   │   │   ├── no-unused-class-name.ts
│       │   │   │   ├── no-unused-props.ts
│       │   │   │   ├── no-unused-svelte-ignore.ts
│       │   │   │   ├── no-useless-children-snippet.ts
│       │   │   │   ├── no-useless-mustaches.ts
│       │   │   │   ├── prefer-class-directive.ts
│       │   │   │   ├── prefer-const.ts
│       │   │   │   ├── prefer-destructured-store-props.ts
│       │   │   │   ├── prefer-style-directive.ts
│       │   │   │   ├── prefer-svelte-reactivity.ts
│       │   │   │   ├── prefer-writable-derived.ts
│       │   │   │   ├── require-each-key.ts
│       │   │   │   ├── require-event-dispatcher-types.ts
│       │   │   │   ├── require-event-prefix.ts
│       │   │   │   ├── require-optimized-style-attribute.ts
│       │   │   │   ├── require-store-callbacks-use-set-param.ts
│       │   │   │   ├── require-store-reactive-access.ts
│       │   │   │   ├── require-stores-init.ts
│       │   │   │   ├── shorthand-attribute.ts
│       │   │   │   ├── shorthand-directive.ts
│       │   │   │   ├── sort-attributes.ts
│       │   │   │   ├── spaced-html-comment.ts
│       │   │   │   ├── system.ts
│       │   │   │   ├── valid-compile.ts
│       │   │   │   ├── valid-each-key.ts
│       │   │   │   ├── valid-prop-names-in-kit-pages.ts
│       │   │   │   └── valid-style-parse.ts
│       │   │   └── settings/
│       │   │       └── ignore-warnings.ts
│       │   └── utils/
│       │       ├── eslint-compat.ts
│       │       ├── source-code-fixer.ts
│       │       └── utils.ts
│       ├── tools/
│       │   ├── lib/
│       │   │   ├── changesets-util.ts
│       │   │   ├── load-rules.ts
│       │   │   └── write.ts
│       │   ├── new-rule.ts
│       │   ├── render-rules.ts
│       │   ├── update-docs-rules-index.ts
│       │   ├── update-docs.ts
│       │   ├── update-meta.ts
│       │   ├── update-readme.ts
│       │   ├── update-rule-types.ts
│       │   ├── update-rules.ts
│       │   ├── update-rulesets.ts
│       │   ├── update-types-for-node.ts
│       │   └── update.ts
│       ├── tsconfig.build.json
│       └── tsconfig.json
├── pnpm-workspace.yaml
├── prettier.config.cjs
├── renovate.json
└── tools/
    └── pkg.pr.new-comment.mjs
Download .txt
SYMBOL INDEX (717 symbols across 154 files)

FILE: docs-svelte-kit/src/lib/utils.js
  function stripBaseUrl (line 8) | function stripBaseUrl(path) {
  constant SIDE_MENU (line 46) | const SIDE_MENU = {
  function isActive (line 65) | function isActive(path, $page) {
  function markdownPath (line 69) | function markdownPath(path) {
  function generateMenu (line 97) | function generateMenu($page, toc) {

FILE: docs-svelte-kit/src/routes/+layout.js
  function load (line 8) | async function load({ url }) {

FILE: docs-svelte-kit/vite.config.ts
  method warn (line 46) | warn(msg, options) {

FILE: packages/eslint-plugin-svelte/internal-rules/prefer-find-variable-safe.ts
  method create (line 21) | create(context: Rule.RuleContext): Rule.RuleListener {

FILE: packages/eslint-plugin-svelte/src/configs/flat/base.ts
  function setPluginObject (line 7) | function setPluginObject(plugin: ESLint.Plugin): void {
  method svelte (line 14) | get svelte(): ESLint.Plugin {

FILE: packages/eslint-plugin-svelte/src/processor/index.ts
  function preprocess (line 7) | function preprocess(code: string, filename: string): string[] {
  function postprocess (line 16) | function postprocess(
  function filter (line 31) | function filter(messages: Linter.LintMessage[], shared: Shared): Linter....

FILE: packages/eslint-plugin-svelte/src/rule-types.ts
  type RulesConfig (line 10) | interface RulesConfig extends RuleOptions {}
  type RuleOptions (line 16) | interface RuleOptions {
  type SvelteTypescriptEslintNoUnnecessaryCondition (line 425) | type SvelteTypescriptEslintNoUnnecessaryCondition = []|[{
  type SvelteBlockLang (line 432) | type SvelteBlockLang = []|[{
  type SvelteButtonHasType (line 439) | type SvelteButtonHasType = []|[{
  type SvelteCommentDirective (line 445) | type SvelteCommentDirective = []|[{
  type SvelteConsistentSelectorStyle (line 449) | type SvelteConsistentSelectorStyle = []|[{
  type SvelteFirstAttributeLinebreak (line 455) | type SvelteFirstAttributeLinebreak = []|[{
  type SvelteHtmlClosingBracketNewLine (line 460) | type SvelteHtmlClosingBracketNewLine = []|[{
  type SvelteHtmlClosingBracketSpacing (line 469) | type SvelteHtmlClosingBracketSpacing = []|[{
  type SvelteHtmlQuotes (line 475) | type SvelteHtmlQuotes = []|[{
  type SvelteHtmlSelfClosing (line 483) | type SvelteHtmlSelfClosing = []|[({
  type SvelteIndent (line 492) | type SvelteIndent = []|[{
  type SvelteMaxAttributesPerLine (line 504) | type SvelteMaxAttributesPerLine = []|[{
  type SvelteMaxLinesPerBlock (line 509) | type SvelteMaxLinesPerBlock = []|[{
  type SvelteMustacheSpacing (line 517) | type SvelteMustacheSpacing = []|[{
  type SvelteNoInlineStyles (line 527) | type SvelteNoInlineStyles = []|[{
  type SvelteNoInnerDeclarations (line 531) | type SvelteNoInnerDeclarations = []|[("functions" | "both")]|[("function...
  type SvelteNoNavigationWithoutBase (line 535) | type SvelteNoNavigationWithoutBase = []|[{
  type SvelteNoNavigationWithoutResolve (line 542) | type SvelteNoNavigationWithoutResolve = []|[{
  type SvelteNoReactiveReassign (line 549) | type SvelteNoReactiveReassign = []|[{
  type SvelteNoRestrictedHtmlElements (line 553) | type SvelteNoRestrictedHtmlElements = [(string | {
  type SvelteNoTargetBlank (line 563) | type SvelteNoTargetBlank = []|[{
  type SvelteNoTrailingSpaces (line 568) | type SvelteNoTrailingSpaces = []|[{
  type SvelteNoUnknownStyleDirectiveProperty (line 573) | type SvelteNoUnknownStyleDirectiveProperty = []|[{
  type SvelteNoUnnecessaryStateWrap (line 579) | type SvelteNoUnnecessaryStateWrap = []|[{
  type SvelteNoUnusedClassName (line 584) | type SvelteNoUnusedClassName = []|[{
  type SvelteNoUnusedProps (line 588) | type SvelteNoUnusedProps = []|[{
  type SvelteNoUselessMustaches (line 595) | type SvelteNoUselessMustaches = []|[{
  type SveltePreferClassDirective (line 600) | type SveltePreferClassDirective = []|[{
  type SveltePreferConst (line 604) | type SveltePreferConst = []|[{
  type SvelteRequireEventPrefix (line 611) | type SvelteRequireEventPrefix = []|[{
  type SvelteShorthandAttribute (line 615) | type SvelteShorthandAttribute = []|[{
  type SvelteShorthandDirective (line 619) | type SvelteShorthandDirective = []|[{
  type SvelteSortAttributes (line 623) | type SvelteSortAttributes = []|[{
  type SvelteSpacedHtmlComment (line 631) | type SvelteSpacedHtmlComment = []|[("always" | "never")]
  type SvelteValidCompile (line 633) | type SvelteValidCompile = []|[{

FILE: packages/eslint-plugin-svelte/src/rules/@typescript-eslint/no-unnecessary-condition.ts
  function unionTypeParts (line 32) | function unionTypeParts(type: TS.Type): TS.Type[] {
  function isPossiblyFalsy (line 52) | function isPossiblyFalsy(type: TS.Type, tsTools: TSTools): boolean {
  function isPossiblyTruthy (line 65) | function isPossiblyTruthy(type: TS.Type, tsTools: TSTools): boolean {
  function isPossiblyNullish (line 72) | function isPossiblyNullish(type: TS.Type, tsTools: TSTools): boolean {
  function isAlwaysNullish (line 79) | function isAlwaysNullish(type: TS.Type, tsTools: TSTools): boolean {
  function isLiteral (line 86) | function isLiteral(type: TS.Type, tsTools: TSTools): boolean {
  method create (line 144) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/block-lang.ts
  method create (line 60) | create(context) {
  function buildAddLangSuggestions (line 133) | function buildAddLangSuggestions(
  function buildReplaceLangSuggestions (line 154) | function buildReplaceLangSuggestions(
  function prettyPrintLangs (line 200) | function prettyPrintLangs(langs: (string | null)[]): string {
  function getLangAttributeText (line 216) | function getLangAttributeText(lang: string, prependWhitespace: boolean):...

FILE: packages/eslint-plugin-svelte/src/rules/button-has-type.ts
  type Options (line 10) | type Options = {
  method create (line 48) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/comment-directive.ts
  type RuleAndLocation (line 6) | type RuleAndLocation = {
  constant COMMENT_DIRECTIVE_B (line 14) | const COMMENT_DIRECTIVE_B = /^\s*(eslint-(?:en|dis)able)(?:\s+|$)/;
  constant COMMENT_DIRECTIVE_L (line 15) | const COMMENT_DIRECTIVE_L = /^\s*(eslint-disable(?:-next)?-line)(?:\s+|$)/;
  function stripDirectiveComment (line 25) | function stripDirectiveComment(value: string) {
  method create (line 55) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/consistent-selector-style.ts
  type Selections (line 17) | interface Selections {
  method create (line 61) | create(context) {
  function addToArrayMap (line 278) | function addToArrayMap<T>(
  function matchSelection (line 289) | function matchSelection(selections: Selections, key: string): [AST.Svelt...
  function canUseIdSelector (line 304) | function canUseIdSelector(selection: AST.SvelteHTMLElement[]): boolean {
  function canUseTypeSelector (line 315) | function canUseTypeSelector(
  function arrayEquals (line 347) | function arrayEquals(array1: AST.SvelteHTMLElement[], array2: AST.Svelte...

FILE: packages/eslint-plugin-svelte/src/rules/derived-has-same-inputs-outputs.ts
  function createFixer (line 8) | function createFixer(node: TSESTree.Node, variable: Variable | null, nam...
  method create (line 36) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/experimental-require-slot-types.ts
  constant SLOTS_TYPE_NAME (line 4) | const SLOTS_TYPE_NAME = '$$Slots';
  method create (line 28) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/experimental-require-strict-events.ts
  constant EVENTS_TYPE_NAME (line 6) | const EVENTS_TYPE_NAME = '$$Events';
  method create (line 26) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/first-attribute-linebreak.ts
  method create (line 29) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/html-closing-bracket-new-line.ts
  type ExpectedNode (line 5) | type ExpectedNode = AST.SvelteStartTag | AST.SvelteEndTag;
  type OptionValue (line 6) | type OptionValue = 'always' | 'never';
  type RuleOptions (line 7) | type RuleOptions = {
  function getPhrase (line 13) | function getPhrase(lineBreaks: number) {
  function getExpectedLineBreaks (line 27) | function getExpectedLineBreaks(
  type NodeData (line 40) | type NodeData = {
  function getSelfClosingData (line 47) | function getSelfClosingData(
  function getNodeData (line 67) | function getNodeData(
  method create (line 120) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/html-closing-bracket-spacing.ts
  method create (line 36) | create(ctx) {

FILE: packages/eslint-plugin-svelte/src/rules/html-quotes.ts
  constant QUOTE_CHARS (line 7) | const QUOTE_CHARS = {
  constant QUOTE_NAMES (line 11) | const QUOTE_NAMES = {
  method create (line 50) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/html-self-closing.ts
  constant TYPE_MESSAGES (line 10) | const TYPE_MESSAGES = {
  type ElementTypes (line 19) | type ElementTypes = 'normal' | 'void' | 'svg' | 'math' | 'component' | '...
  method create (line 68) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/indent-helpers/ast.ts
  type AnyToken (line 3) | type AnyToken = AST.Token | AST.Comment;
  function isWhitespace (line 7) | function isWhitespace(token: AnyToken | TSESTree.Comment | null | undefi...
  function isNotWhitespace (line 18) | function isNotWhitespace(token: AnyToken | TSESTree.Comment | null | und...

FILE: packages/eslint-plugin-svelte/src/rules/indent-helpers/commons.ts
  type AnyToken (line 7) | type AnyToken = AST.Token | AST.Comment;
  type MaybeNode (line 8) | type MaybeNode = {
  type IndentOptions (line 14) | type IndentOptions = {
  type IndentContext (line 23) | type IndentContext = {
  function getFirstAndLastTokens (line 34) | function getFirstAndLastTokens(
  function isBeginningOfLine (line 68) | function isBeginningOfLine(
  function isBeginningOfElement (line 83) | function isBeginningOfElement(node: AST.SvelteText): boolean {
  function assertNever (line 107) | function assertNever(value: never): never {

FILE: packages/eslint-plugin-svelte/src/rules/indent-helpers/es.ts
  type NodeListener (line 21) | type NodeListener = ESNodeListener;
  function defineVisitor (line 29) | function defineVisitor(context: IndentContext): NodeListener {
  function isOptionalToken (line 965) | function isOptionalToken(token: { type: string; value: string }): boolean {

FILE: packages/eslint-plugin-svelte/src/rules/indent-helpers/index.ts
  type IndentUserOptions (line 12) | type IndentUserOptions = {
  function parseOptions (line 27) | function parseOptions(
  function defineVisitor (line 76) | function defineVisitor(

FILE: packages/eslint-plugin-svelte/src/rules/indent-helpers/offset-context.ts
  type OffsetDataType (line 6) | const enum OffsetDataType {
  type OffsetData (line 11) | type OffsetData =
  class OffsetContext (line 30) | class OffsetContext {
    method constructor (line 39) | public constructor(arg: { sourceCode: SourceCode; options: IndentOptio...
    method setOffsetIndex (line 47) | public setOffsetIndex(index: number, offset: number, base: number): vo...
    method setAlignIndent (line 61) | private setAlignIndent(index: number, alignIndent: number, base: numbe...
    method setOffsetToken (line 75) | public setOffsetToken(
    method copyOffset (line 95) | public copyOffset(index: number, srcIndex: number): void {
    method setStartOffsetIndex (line 112) | public setStartOffsetIndex(index: number, offset: number): void {
    method setStartOffsetToken (line 122) | public setStartOffsetToken(
    method setOffsetElementList (line 138) | public setOffsetElementList(
    method _setOffsetElementList (line 164) | private _setOffsetElementList(
    method ignore (line 213) | public ignore(node: ASTNode): void {
    method getOffsetCalculator (line 219) | public getOffsetCalculator(): OffsetCalculator {
  class OffsetCalculator (line 229) | class OffsetCalculator {
    method constructor (line 236) | public constructor(arg: {
    method getExpectedIndentFromIndex (line 249) | private getExpectedIndentFromIndex(index: number): number | null {
    method getExpectedIndentFromToken (line 273) | public getExpectedIndentFromToken(token: AnyToken): number | null {
    method getExpectedIndentFromTokens (line 280) | public getExpectedIndentFromTokens(tokens: AnyToken[]): null | number {
    method saveExpectedIndent (line 295) | public saveExpectedIndent(tokens: AnyToken[], expectedIndent: number):...

FILE: packages/eslint-plugin-svelte/src/rules/indent-helpers/svelte.ts
  type NodeListener (line 11) | type NodeListener = SvelteNodeListener;
  constant PREFORMATTED_ELEMENT_NAMES (line 12) | const PREFORMATTED_ELEMENT_NAMES = ['pre', 'textarea', 'template'];
  function defineVisitor (line 20) | function defineVisitor(context: IndentContext): NodeListener {
  function isNotEmptyTextNode (line 541) | function isNotEmptyTextNode(node: ASTNode) {

FILE: packages/eslint-plugin-svelte/src/rules/indent-helpers/ts.ts
  type NodeListener (line 18) | type NodeListener = TSNodeListener;
  function defineVisitor (line 26) | function defineVisitor(context: IndentContext): NodeListener {

FILE: packages/eslint-plugin-svelte/src/rules/indent.ts
  method create (line 46) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/infinite-reactive-loop.ts
  function extractTickReferences (line 12) | function extractTickReferences(
  function extractTaskReferences (line 35) | function extractTaskReferences(
  function isChildNode (line 55) | function isChildNode(
  function isFunctionCall (line 70) | function isFunctionCall(node: TSESTree.Node): boolean {
  function isReactiveVariableNode (line 80) | function isReactiveVariableNode(
  function isNodeForAssign (line 93) | function isNodeForAssign(node: TSESTree.Identifier): boolean {
  function isPromiseThenOrCatchBody (line 110) | function isPromiseThenOrCatchBody(node: TSESTree.Node): boolean {
  function getReactiveVariableReferences (line 124) | function getReactiveVariableReferences(context: RuleContext) {
  function getTrackedVariableNodes (line 150) | function getTrackedVariableNodes(
  function getDeclarationBody (line 169) | function getDeclarationBody(
  function getFunctionDeclarationNode (line 194) | function getFunctionDeclarationNode(
  function isInsideOfFunction (line 231) | function isInsideOfFunction(node: TSESTree.Node) {
  function doLint (line 250) | function doLint(
  method create (line 391) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/max-attributes-per-line.ts
  function isSingleLine (line 7) | function isSingleLine(node: AST.SvelteStartTag) {
  function groupAttributesByLine (line 14) | function groupAttributesByLine(attributes: AST.SvelteStartTag['attribute...
  method create (line 57) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/max-lines-per-block.ts
  function isFullLineComment (line 7) | function isFullLineComment(line: string, lineNumber: number, loc: AST.So...
  function collectAstCommentLines (line 15) | function collectAstCommentLines(
  function collectCssCommentLines (line 38) | function collectCssCommentLines(
  function countLines (line 82) | function countLines(
  function isSvelteOptions (line 101) | function isSvelteOptions(node: AST.SvelteElement): boolean {
  method create (line 145) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/mustache-spacing.ts
  type DeepPartial (line 5) | type DeepPartial<T> = {
  type OptionValue (line 8) | type OptionValue = 'never' | 'always';
  type Options (line 9) | type Options = {
  constant VALUE_SCHEMA (line 19) | const VALUE_SCHEMA = { enum: ['never', 'always'] };
  function parseOptions (line 24) | function parseOptions(options: DeepPartial<Options> | undefined): Options {
  method create (line 74) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/no-add-event-listener.ts
  method create (line 26) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/no-at-debug-tags.ts
  method create (line 19) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/no-at-html-tags.ts
  method create (line 17) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/no-dom-manipulating.ts
  constant DOM_MANIPULATING_METHODS (line 8) | const DOM_MANIPULATING_METHODS = new Set([
  constant DOM_MANIPULATING_PROPERTIES (line 25) | const DOM_MANIPULATING_PROPERTIES = new Set([
  method create (line 47) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/no-dupe-else-if-blocks.ts
  type OrOperands (line 10) | type OrOperands = {
  type AndOperands (line 14) | type AndOperands = {
  function splitByLogicalOperator (line 25) | function splitByLogicalOperator(
  function splitByOr (line 41) | function splitByOr(node: TSESTree.Expression) {
  function splitByAnd (line 48) | function splitByAnd(node: TSESTree.Expression) {
  function buildOrOperands (line 55) | function buildOrOperands(node: TSESTree.Expression): OrOperands {
  method create (line 83) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/no-dupe-on-directives.ts
  method create (line 20) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/no-dupe-style-properties.ts
  method create (line 19) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/no-dupe-use-directives.ts
  method create (line 20) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/no-dynamic-slot-name.ts
  method create (line 29) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/no-export-load-in-svelte-module-in-kit-pages.ts
  method create (line 24) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/no-extra-reactive-curlies.ts
  method create (line 29) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/no-goto-without-base.ts
  method create (line 28) | create(context) {
  function checkBinaryExpression (line 57) | function checkBinaryExpression(
  function checkTemplateLiteral (line 67) | function checkTemplateLiteral(
  function checkLiteral (line 78) | function checkLiteral(context: RuleContext, path: TSESTree.Literal): void {
  function extractStartingIdentifier (line 84) | function extractStartingIdentifier(
  function extractGotoReferences (line 103) | function extractGotoReferences(referenceTracker: ReferenceTracker): TSES...
  function extractBasePathReferences (line 117) | function extractBasePathReferences(

FILE: packages/eslint-plugin-svelte/src/rules/no-immutable-reactive-statements.ts
  method create (line 30) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/no-inline-styles.ts
  method create (line 28) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/no-inner-declarations.ts
  method create (line 25) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/no-inspect.ts
  method create (line 25) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/no-navigation-without-base.ts
  method create (line 54) | create(context) {
  function extractBasePathReferences (line 123) | function extractBasePathReferences(
  function extractFunctionCallReferences (line 157) | function extractFunctionCallReferences(referenceTracker: ReferenceTracke...
  function checkGotoCall (line 193) | function checkGotoCall(
  function checkShallowNavigationCall (line 207) | function checkShallowNavigationCall(
  function expressionStartsWithBase (line 227) | function expressionStartsWithBase(
  function expressionIsEmpty (line 236) | function expressionIsEmpty(url: TSESTree.Expression): boolean {
  function expressionIsAbsolute (line 246) | function expressionIsAbsolute(url: AST.SvelteLiteral | TSESTree.Expressi...
  function binaryExpressionIsAbsolute (line 261) | function binaryExpressionIsAbsolute(url: TSESTree.BinaryExpression): boo...
  function templateLiteralIsAbsolute (line 268) | function templateLiteralIsAbsolute(url: TSESTree.TemplateLiteral): boole...
  function urlValueIsAbsolute (line 275) | function urlValueIsAbsolute(url: string): boolean {
  function expressionIsFragment (line 279) | function expressionIsFragment(url: AST.SvelteLiteral | TSESTree.Expressi...
  function binaryExpressionIsFragment (line 294) | function binaryExpressionIsFragment(url: TSESTree.BinaryExpression): boo...
  function templateLiteralIsFragment (line 298) | function templateLiteralIsFragment(url: TSESTree.TemplateLiteral): boole...
  function urlValueIsFragment (line 305) | function urlValueIsFragment(url: string): boolean {

FILE: packages/eslint-plugin-svelte/src/rules/no-navigation-without-resolve.ts
  method create (line 52) | create(context) {
  function extractResolveReferences (line 121) | function extractResolveReferences(
  function extractFunctionCallReferences (line 158) | function extractFunctionCallReferences(referenceTracker: ReferenceTracke...
  function checkGotoCall (line 194) | function checkGotoCall(
  function checkShallowNavigationCall (line 214) | function checkShallowNavigationCall(
  function checkLinkAttribute (line 237) | function checkLinkAttribute(
  function hasRelExternal (line 261) | function hasRelExternal(ctx: FindVariableContext, element: AST.SvelteSta...
  function isValueAllowed (line 296) | function isValueAllowed(
  function expressionIsResolvedPathname (line 350) | function expressionIsResolvedPathname(
  function expressionIsResolveCall (line 385) | function expressionIsResolveCall(
  function expressionIsEmpty (line 414) | function expressionIsEmpty(
  function expressionIsNullish (line 426) | function expressionIsNullish(
  function expressionIsAbsoluteUrl (line 439) | function expressionIsAbsoluteUrl(
  function binaryExpressionIsAbsoluteUrl (line 457) | function binaryExpressionIsAbsoluteUrl(
  function templateLiteralIsAbsoluteUrl (line 467) | function templateLiteralIsAbsoluteUrl(
  function valueIsAbsoluteUrl (line 477) | function valueIsAbsoluteUrl(node: string): boolean {
  function expressionStartsWith (line 481) | function expressionStartsWith(
  function binaryExpressionStartsWith (line 508) | function binaryExpressionStartsWith(
  function identifierStartsWith (line 516) | function identifierStartsWith(
  function templateLiteralStartsWith (line 533) | function templateLiteralStartsWith(

FILE: packages/eslint-plugin-svelte/src/rules/no-not-function-handler.ts
  constant PHRASES (line 7) | const PHRASES = {
  method Literal (line 11) | Literal(node: TSESTree.Literal): string | null {
  method create (line 38) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/no-object-in-text-mustaches.ts
  constant PHRASES (line 3) | const PHRASES = {
  method create (line 24) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/no-raw-special-elements.ts
  constant INVALID_HTML_ELEMENTS (line 4) | const INVALID_HTML_ELEMENTS = ['head', 'body', 'window', 'document', 'el...
  constant VALID_PREFIX (line 5) | const VALID_PREFIX = 'svelte:';
  method create (line 22) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/no-reactive-functions.ts
  method create (line 29) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/no-reactive-literals.ts
  method create (line 28) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/no-reactive-reassign.ts
  method create (line 39) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/no-restricted-html-elements.ts
  method create (line 40) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/no-shorthand-style-property-overrides.ts
  method create (line 24) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/no-spaces-around-equal-signs-in-attribute.ts
  method create (line 19) | create(ctx) {

FILE: packages/eslint-plugin-svelte/src/rules/no-store-async.ts
  method create (line 19) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/no-svelte-internal.ts
  method create (line 17) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/no-target-blank.ts
  function isTargetBlank (line 11) | function isTargetBlank(node: AST.SvelteAttribute) {
  function hasSecureRel (line 16) | function hasSecureRel(node: AST.SvelteAttribute['parent'], allowReferrer...
  function hasExternalLink (line 31) | function hasExternalLink(node: AST.SvelteAttribute['parent']) {
  function hasDynamicLink (line 43) | function hasDynamicLink(node: AST.SvelteAttribute['parent']) {
  method create (line 77) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/no-top-level-browser-globals.ts
  method create (line 23) | create(context) {
  function getBrowserGlobals (line 404) | function getBrowserGlobals() {
  function hasJumpStatementInAllPath (line 418) | function hasJumpStatementInAllPath(statement: TSESTree.Statement): boole...
  function isJumpStatement (line 442) | function isJumpStatement(statement: TSESTree.Statement) {

FILE: packages/eslint-plugin-svelte/src/rules/no-trailing-spaces.ts
  method create (line 29) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/no-unknown-style-directive-property.ts
  method create (line 35) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/no-unnecessary-state-wrap.ts
  constant REACTIVE_CLASSES (line 5) | const REACTIVE_CLASSES = [
  method create (line 52) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/no-unused-class-name.ts
  method create (line 33) | create(context) {
  function findClassesInPostCSSNode (line 85) | function findClassesInPostCSSNode(
  function findClassesInSelector (line 103) | function findClassesInSelector(node: SelectorNode): string[] {

FILE: packages/eslint-plugin-svelte/src/rules/no-unused-props.ts
  type PropertyPathArray (line 10) | type PropertyPathArray = string[];
  type DeclaredPropertyNames (line 11) | type DeclaredPropertyNames = Set<{ originalName: string; aliasName: stri...
  method create (line 66) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/no-unused-svelte-ignore.ts
  method create (line 23) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/no-useless-children-snippet.ts
  method create (line 21) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/no-useless-mustaches.ts
  function stripQuotes (line 7) | function stripQuotes(text: string) {
  method create (line 44) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/prefer-class-directive.ts
  method create (line 30) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/prefer-const.ts
  function findDeclarationCallee (line 11) | function findDeclarationCallee(node: TSESTree.Expression) {
  function shouldSkipDeclaration (line 24) | function shouldSkipDeclaration(declaration: TSESTree.Expression | null, ...
  method create (line 76) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/prefer-destructured-store-props.ts
  type StoreMemberExpression (line 11) | type StoreMemberExpression = TSESTree.MemberExpression & {
  method create (line 32) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/prefer-style-directive.ts
  function isStringLiteral (line 14) | function isStringLiteral(node: TSESTree.Expression): node is TSESTree.St...
  method create (line 33) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/prefer-svelte-reactivity.ts
  method create (line 33) | create(context) {
  function isDateMutable (line 138) | function isDateMutable(referenceTracker: ReferenceTracker, ctorNode: TSE...
  function isMapMutable (line 193) | function isMapMutable(referenceTracker: ReferenceTracker, ctorNode: TSES...
  function isSetMutable (line 209) | function isSetMutable(referenceTracker: ReferenceTracker, ctorNode: TSES...
  function isURLMutable (line 225) | function isURLMutable(referenceTracker: ReferenceTracker, ctorNode: TSES...
  function isURLSearchParamsMutable (line 265) | function isURLSearchParamsMutable(

FILE: packages/eslint-plugin-svelte/src/rules/prefer-writable-derived.ts
  type ValidFunctionType (line 10) | type ValidFunctionType = TSESTree.FunctionExpression | TSESTree.ArrowFun...
  type ValidFunction (line 11) | type ValidFunction = ValidFunctionType & {
  type ValidAssignmentExpression (line 15) | type ValidAssignmentExpression = TSESTree.AssignmentExpression & {
  type ValidExpressionStatement (line 20) | type ValidExpressionStatement = TSESTree.ExpressionStatement & {
  function isEffectOrEffectPre (line 24) | function isEffectOrEffectPre(node: TSESTree.CallExpression) {
  function isValidFunctionArgument (line 40) | function isValidFunctionArgument(argument: TSESTree.Node): argument is V...
  function isValidAssignment (line 55) | function isValidAssignment(statement: TSESTree.Statement): statement is ...
  function isStateVariable (line 66) | function isStateVariable(init: TSESTree.Expression | null): init is TSES...
  method create (line 95) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/reference-helpers/svelte-store.ts
  type StoreName (line 9) | type StoreName = 'writable' | 'readable' | 'derived';
  type StoreChecker (line 38) | type StoreChecker = (
  type StoreCheckerWithOptions (line 42) | type StoreCheckerWithOptions = (
  function createStoreChecker (line 50) | function createStoreChecker(context: RuleContext): StoreChecker {
  function createStoreCheckerForES (line 63) | function createStoreCheckerForES(context: RuleContext): StoreCheckerWith...
  function createStoreCheckerForTS (line 100) | function createStoreCheckerForTS(tools: TSTools): StoreCheckerWithOptions {
  function eachTypeCheck (line 172) | function eachTypeCheck(

FILE: packages/eslint-plugin-svelte/src/rules/require-each-key.ts
  method create (line 15) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/require-event-dispatcher-types.ts
  method create (line 24) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/require-event-prefix.ts
  method create (line 45) | create(context) {
  function getPropsType (line 81) | function getPropsType(node: CallExpression, tsTools: TSTools): Type | un...
  function isFunctionLike (line 98) | function isFunctionLike(functionSymbol: Symbol, tsTools: TSTools): boole...
  function isFunctionAsync (line 108) | function isFunctionAsync(functionSymbol: Symbol, tsTools: TSTools): bool...

FILE: packages/eslint-plugin-svelte/src/rules/require-optimized-style-attribute.ts
  method create (line 21) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/require-store-callbacks-use-set-param.ts
  method create (line 22) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/require-store-reactive-access.ts
  method create (line 22) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/require-stores-init.ts
  method create (line 19) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/shorthand-attribute.ts
  method create (line 28) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/shorthand-directive.ts
  method create (line 29) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/sort-attributes.ts
  type UserOrderObjectOption (line 6) | type UserOrderObjectOption = {
  type UserOrderOption (line 10) | type UserOrderOption = string | string[] | UserOrderObjectOption;
  type ParsedOption (line 12) | type ParsedOption = {
  type CompiledOption (line 17) | type CompiledOption = {
  type Attr (line 22) | type Attr = AST.SvelteStartTag['attributes'][number];
  type HasKeyAttr (line 23) | type HasKeyAttr = Exclude<Attr, AST.SvelteSpreadAttribute>;
  constant DEFAULT_ORDER (line 25) | const DEFAULT_ORDER: UserOrderOption[] = [
  function parseOption (line 66) | function parseOption(option?: { order: UserOrderOption[] }): ParsedOption {
  function compileOption (line 98) | function compileOption(option: UserOrderOption): CompiledOption {
  function compileMatcher (line 126) | function compileMatcher(pattern: string[]): (str: string) => boolean {
  method create (line 221) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/spaced-html-comment.ts
  method create (line 26) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/system.ts
  method create (line 16) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/valid-compile.ts
  function isGlobalStyleNode (line 10) | function isGlobalStyleNode(
  method create (line 46) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/valid-each-key.ts
  method create (line 18) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/valid-prop-names-in-kit-pages.ts
  constant EXPECTED_PROP_NAMES (line 7) | const EXPECTED_PROP_NAMES = ['data', 'errors', 'form', 'params', 'snapsh...
  constant EXPECTED_PROP_NAMES_SVELTE5 (line 8) | const EXPECTED_PROP_NAMES_SVELTE5 = [...EXPECTED_PROP_NAMES, 'children'];
  function checkProp (line 10) | function checkProp(
  function isModuleScript (line 31) | function isModuleScript(node: AST.SvelteAttribute) {
  method create (line 66) | create(context) {

FILE: packages/eslint-plugin-svelte/src/rules/valid-style-parse.ts
  method create (line 15) | create(context) {

FILE: packages/eslint-plugin-svelte/src/shared/comment-directives.ts
  constant COMPUTED (line 3) | const COMPUTED = Symbol();
  constant ALL (line 4) | const ALL = Symbol();
  type Define (line 6) | type Define = {
  type Block (line 9) | type Block = {
  type Line (line 16) | type Line = {
  class CommentDirectives (line 21) | class CommentDirectives {
    method constructor (line 30) | public constructor(options: { reportUnusedDisableDirectives?: boolean;...
    method filterMessages (line 35) | public filterMessages(messages: Linter.LintMessage[]): Linter.LintMess...
    method disableLine (line 130) | public disableLine(
    method disableBlock (line 156) | public disableBlock(
    method enableBlock (line 164) | public enableBlock(
    method block (line 172) | private block(
  function getFromRule (line 197) | function getFromRule<E>(map: Map<string | typeof COMPUTED, E>, ruleId: s...
  function locToKey (line 204) | function locToKey(location: AST.Position): string {
  function messageToKey (line 211) | function messageToKey(message: Linter.LintMessage): string {

FILE: packages/eslint-plugin-svelte/src/shared/index.ts
  class Shared (line 3) | class Shared {
    method newCommentDirectives (line 6) | public newCommentDirectives(
  function beginShared (line 16) | function beginShared(filename: string): void {
  function terminateShared (line 20) | function terminateShared(filename: string): Shared | null {
  function getShared (line 27) | function getShared(filename: string): Shared | null {

FILE: packages/eslint-plugin-svelte/src/shared/runes.ts
  constant SVELTE_RUNES (line 1) | const SVELTE_RUNES = new Set([

FILE: packages/eslint-plugin-svelte/src/shared/svelte-compile-warns/extract-leading-comments.ts
  function extractLeadingComments (line 7) | function extractLeadingComments(
  function isComment (line 34) | function isComment(token: AST.Token | AST.Comment): boolean {

FILE: packages/eslint-plugin-svelte/src/shared/svelte-compile-warns/ignore-comment.ts
  constant SVELTE_IGNORE_PATTERN (line 4) | const SVELTE_IGNORE_PATTERN = /^\s*svelte-ignore\s+/;
  constant PARENTHETICAL_NOTE_PATTERN (line 7) | const PARENTHETICAL_NOTE_PATTERN = /\([^)]*\)/gu;
  constant V5_REPLACEMENTS (line 13) | const V5_REPLACEMENTS: Record<string, string | undefined> = {
  type IgnoreItemWithoutCode (line 25) | type IgnoreItemWithoutCode = {
  type IgnoreItem (line 30) | type IgnoreItem = {
  function getSvelteIgnoreItems (line 38) | function getSvelteIgnoreItems(context: RuleContext): (IgnoreItem | Ignor...
  function extractSvelteIgnore (line 90) | function extractSvelteIgnore(
  function hasMissingCodeIgnore (line 132) | function hasMissingCodeIgnore(codeList: string) {

FILE: packages/eslint-plugin-svelte/src/shared/svelte-compile-warns/index.ts
  type WarningTargetNode (line 22) | type WarningTargetNode =
  type IgnoreTargetNode (line 27) | type IgnoreTargetNode =
  constant STYLE_TRANSFORMS (line 34) | const STYLE_TRANSFORMS: Record<string, typeof transformWithPostCSS | und...
  constant CSS_WARN_CODES (line 44) | const CSS_WARN_CODES = new Set([
  type SvelteCompileWarnings (line 51) | type SvelteCompileWarnings = {
  type Loc (line 57) | type Loc = {
  type Warning (line 69) | type Warning = (
  function getSvelteCompileWarnings (line 84) | function getSvelteCompileWarnings(context: RuleContext): SvelteCompileWa...
  function getSvelteCompileWarningsWithoutCache (line 98) | function getSvelteCompileWarningsWithoutCache(context: RuleContext): Sve...
  function buildStrippedText (line 337) | function buildStrippedText(
  function isCustomElement (line 386) | function isCustomElement(program: AST.SvelteProgram) {
  function getWarningsFromCode (line 404) | function getWarningsFromCode(
  function processIgnore (line 444) | function processIgnore(
  function isUseTypeScript (line 594) | function isUseTypeScript(context: RuleContext) {
  function isUseBabel (line 613) | function isUseBabel(context: RuleContext) {

FILE: packages/eslint-plugin-svelte/src/shared/svelte-compile-warns/transform/babel.ts
  type BabelCore (line 7) | type BabelCore = typeof babelCore;
  function transform (line 11) | function transform(
  function hasBabel (line 51) | function hasBabel(context: RuleContext): boolean {
  function loadBabel (line 58) | function loadBabel(context: RuleContext): BabelCore | null {

FILE: packages/eslint-plugin-svelte/src/shared/svelte-compile-warns/transform/less.ts
  type Less (line 7) | type Less = typeof less;
  function transform (line 11) | function transform(
  function loadLess (line 60) | function loadLess(context: RuleContext): Less | null {

FILE: packages/eslint-plugin-svelte/src/shared/svelte-compile-warns/transform/postcss.ts
  function transform (line 10) | function transform(

FILE: packages/eslint-plugin-svelte/src/shared/svelte-compile-warns/transform/sass.ts
  type Sass (line 7) | type Sass = typeof sass;
  function transform (line 11) | function transform(
  function loadSass (line 50) | function loadSass(context: RuleContext): Sass | null {

FILE: packages/eslint-plugin-svelte/src/shared/svelte-compile-warns/transform/stylus.ts
  type Stylus (line 8) | type Stylus = typeof stylus;
  function transform (line 12) | function transform(
  function loadStylus (line 55) | function loadStylus(context: RuleContext): Stylus | null {

FILE: packages/eslint-plugin-svelte/src/shared/svelte-compile-warns/transform/types.ts
  type TransformResult (line 2) | type TransformResult = {

FILE: packages/eslint-plugin-svelte/src/shared/svelte-compile-warns/transform/typescript.ts
  type TS (line 7) | type TS = typeof typescript;
  function transform (line 11) | function transform(
  function hasTypeScript (line 54) | function hasTypeScript(context: RuleContext): boolean {
  function loadTs (line 61) | function loadTs(context: RuleContext): TS | null {

FILE: packages/eslint-plugin-svelte/src/type-defs/@eslint-community/eslint-utils.d.ts
  type Token (line 16) | type Token = { type: string; value: string };
  class ReferenceTracker (line 62) | class ReferenceTracker {

FILE: packages/eslint-plugin-svelte/src/type-defs/estree.d.ts
  type Node (line 10) | type Node = TSESTree.Node;
  type Program (line 11) | type Program = TSESTree.Program;
  type Expression (line 12) | type Expression = TSESTree.Expression;
  type Statement (line 13) | type Statement = TSESTree.Statement;
  type Pattern (line 14) | type Pattern = TSESTree.DestructuringPattern;
  type AccessorProperty (line 15) | type AccessorProperty = TSESTree.AccessorProperty;
  type ArrayExpression (line 16) | type ArrayExpression = TSESTree.ArrayExpression;
  type ArrayPattern (line 17) | type ArrayPattern = TSESTree.ArrayPattern;
  type ArrowFunctionExpression (line 18) | type ArrowFunctionExpression = TSESTree.ArrowFunctionExpression;
  type AssignmentExpression (line 19) | type AssignmentExpression = TSESTree.AssignmentExpression;
  type AssignmentPattern (line 20) | type AssignmentPattern = TSESTree.AssignmentPattern;
  type AwaitExpression (line 21) | type AwaitExpression = TSESTree.AwaitExpression;
  type BinaryExpression (line 22) | type BinaryExpression = TSESTree.BinaryExpression;
  type BlockStatement (line 23) | type BlockStatement = TSESTree.BlockStatement;
  type BreakStatement (line 24) | type BreakStatement = TSESTree.BreakStatement;
  type CallExpression (line 25) | type CallExpression = TSESTree.CallExpression;
  type CatchClause (line 26) | type CatchClause = TSESTree.CatchClause;
  type ChainExpression (line 27) | type ChainExpression = TSESTree.ChainExpression;
  type ClassBody (line 28) | type ClassBody = TSESTree.ClassBody;
  type ClassDeclaration (line 29) | type ClassDeclaration = TSESTree.ClassDeclaration;
  type ClassExpression (line 30) | type ClassExpression = TSESTree.ClassExpression;
  type ConditionalExpression (line 31) | type ConditionalExpression = TSESTree.ConditionalExpression;
  type ContinueStatement (line 32) | type ContinueStatement = TSESTree.ContinueStatement;
  type DebuggerStatement (line 33) | type DebuggerStatement = TSESTree.DebuggerStatement;
  type DoWhileStatement (line 34) | type DoWhileStatement = TSESTree.DoWhileStatement;
  type EmptyStatement (line 35) | type EmptyStatement = TSESTree.EmptyStatement;
  type ExportAllDeclaration (line 36) | type ExportAllDeclaration = TSESTree.ExportAllDeclaration;
  type ExportDefaultDeclaration (line 37) | type ExportDefaultDeclaration = TSESTree.ExportDefaultDeclaration;
  type ExportNamedDeclaration (line 38) | type ExportNamedDeclaration = TSESTree.ExportNamedDeclaration;
  type ExportSpecifier (line 39) | type ExportSpecifier = TSESTree.ExportSpecifier;
  type ExpressionStatement (line 40) | type ExpressionStatement = TSESTree.ExpressionStatement;
  type ForInStatement (line 41) | type ForInStatement = TSESTree.ForInStatement;
  type ForOfStatement (line 42) | type ForOfStatement = TSESTree.ForOfStatement;
  type ForStatement (line 43) | type ForStatement = TSESTree.ForStatement;
  type FunctionDeclaration (line 44) | type FunctionDeclaration = TSESTree.FunctionDeclaration;
  type FunctionExpression (line 45) | type FunctionExpression = TSESTree.FunctionExpression;
  type Identifier (line 46) | type Identifier = TSESTree.Identifier;
  type IfStatement (line 47) | type IfStatement = TSESTree.IfStatement;
  type ImportDeclaration (line 48) | type ImportDeclaration = TSESTree.ImportDeclaration;
  type ImportDefaultSpecifier (line 49) | type ImportDefaultSpecifier = TSESTree.ImportDefaultSpecifier;
  type ImportExpression (line 50) | type ImportExpression = TSESTree.ImportExpression;
  type ImportNamespaceSpecifier (line 51) | type ImportNamespaceSpecifier = TSESTree.ImportNamespaceSpecifier;
  type ImportSpecifier (line 52) | type ImportSpecifier = TSESTree.ImportSpecifier;
  type LabeledStatement (line 53) | type LabeledStatement = TSESTree.LabeledStatement;
  type Literal (line 54) | type Literal = TSESTree.Literal;
  type LogicalExpression (line 55) | type LogicalExpression = TSESTree.LogicalExpression;
  type MemberExpression (line 56) | type MemberExpression = TSESTree.MemberExpression;
  type MetaProperty (line 57) | type MetaProperty = TSESTree.MetaProperty;
  type MethodDefinition (line 58) | type MethodDefinition = TSESTree.MethodDefinition;
  type NewExpression (line 59) | type NewExpression = TSESTree.NewExpression;
  type ObjectExpression (line 60) | type ObjectExpression = TSESTree.ObjectExpression;
  type ObjectPattern (line 61) | type ObjectPattern = TSESTree.ObjectPattern;
  type PrivateIdentifier (line 62) | type PrivateIdentifier = TSESTree.PrivateIdentifier;
  type Property (line 63) | type Property = TSESTree.Property;
  type PropertyDefinition (line 64) | type PropertyDefinition = TSESTree.PropertyDefinition;
  type RestElement (line 65) | type RestElement = TSESTree.RestElement;
  type ReturnStatement (line 66) | type ReturnStatement = TSESTree.ReturnStatement;
  type SequenceExpression (line 67) | type SequenceExpression = TSESTree.SequenceExpression;
  type SpreadElement (line 68) | type SpreadElement = TSESTree.SpreadElement;
  type Super (line 69) | type Super = TSESTree.Super;
  type SwitchCase (line 70) | type SwitchCase = TSESTree.SwitchCase;
  type SwitchStatement (line 71) | type SwitchStatement = TSESTree.SwitchStatement;
  type TaggedTemplateExpression (line 72) | type TaggedTemplateExpression = TSESTree.TaggedTemplateExpression;
  type TemplateElement (line 73) | type TemplateElement = TSESTree.TemplateElement;
  type TemplateLiteral (line 74) | type TemplateLiteral = TSESTree.TemplateLiteral;
  type ThisExpression (line 75) | type ThisExpression = TSESTree.ThisExpression;
  type ThrowStatement (line 76) | type ThrowStatement = TSESTree.ThrowStatement;
  type TryStatement (line 77) | type TryStatement = TSESTree.TryStatement;
  type UnaryExpression (line 78) | type UnaryExpression = TSESTree.UnaryExpression;
  type UpdateExpression (line 79) | type UpdateExpression = TSESTree.UpdateExpression;
  type VariableDeclaration (line 80) | type VariableDeclaration = TSESTree.VariableDeclaration;
  type VariableDeclarator (line 81) | type VariableDeclarator = TSESTree.VariableDeclarator;
  type WhileStatement (line 82) | type WhileStatement = TSESTree.WhileStatement;
  type WithStatement (line 83) | type WithStatement = TSESTree.WithStatement;
  type YieldExpression (line 84) | type YieldExpression = TSESTree.YieldExpression;

FILE: packages/eslint-plugin-svelte/src/type-defs/postcss-safe-parser/lib/safe-parser.d.ts
  class Parser (line 5) | class Parser {

FILE: packages/eslint-plugin-svelte/src/type-defs/postcss/lib/tokenize.d.ts
  type Token (line 3) | type Token = [string, string, number?, number?];
  type Tokenizer (line 4) | type Tokenizer = {

FILE: packages/eslint-plugin-svelte/src/types-for-node.ts
  type ASTNode (line 12) | type ASTNode =
  type ASTNodeWithParent (line 15) | type ASTNodeWithParent =
  type ASTNodeListener (line 19) | type ASTNodeListener = {
  type ESNodeListener (line 508) | type ESNodeListener = {
  type TSNodeListener (line 667) | type TSNodeListener = {
  type SvelteNodeListener (line 890) | type SvelteNodeListener = {

FILE: packages/eslint-plugin-svelte/src/types.ts
  type RuleListener (line 14) | interface RuleListener extends ASTNodeListener {
  type RuleModule (line 38) | interface RuleModule {
  type RuleCategory (line 43) | type RuleCategory =
  type RuleMetaData (line 53) | interface RuleMetaData {
  type PartialRuleModule (line 79) | interface PartialRuleModule {
  type PartialRuleMetaData (line 84) | interface PartialRuleMetaData {
  type RuleContext (line 126) | type RuleContext = {
  type NodeOrToken (line 167) | type NodeOrToken = {
  type ReportDescriptorOptionsBase (line 173) | interface ReportDescriptorOptionsBase {
  type SuggestionDescriptorMessage (line 179) | type SuggestionDescriptorMessage = { desc: string } | { messageId: strin...
  type SuggestionReportDescriptor (line 180) | type SuggestionReportDescriptor = SuggestionDescriptorMessage & ReportDe...
  type ReportDescriptorOptions (line 182) | interface ReportDescriptorOptions extends ReportDescriptorOptionsBase {
  type ReportDescriptor (line 186) | type ReportDescriptor = ReportDescriptorMessage &
  type ReportDescriptorMessage (line 189) | type ReportDescriptorMessage = { message: string } | { messageId: string };
  type ReportDescriptorLocation (line 190) | type ReportDescriptorLocation =
  type RuleFixer (line 194) | interface RuleFixer {
  type SourceCode (line 215) | interface SourceCode {

FILE: packages/eslint-plugin-svelte/src/utils/ast-utils.ts
  function equalTokens (line 15) | function equalTokens(left: ASTNode, right: ASTNode, sourceCode: SourceCo...
  function getStringIfConstant (line 34) | function getStringIfConstant(
  function needParentheses (line 75) | function needParentheses(node: TSESTree.Expression, kind: 'not' | 'logic...
  function isHTMLElementLike (line 94) | function isHTMLElementLike(
  function findAttribute (line 118) | function findAttribute<N extends string>(
  function findShorthandAttribute (line 143) | function findShorthandAttribute<N extends string>(
  function findBindDirective (line 169) | function findBindDirective<N extends string>(
  function getStaticAttributeValue (line 197) | function getStaticAttributeValue(node: SvAST.SvelteAttribute): string | ...
  function getLangValue (line 211) | function getLangValue(
  function findVariable (line 221) | function findVariable(context: RuleContext, node: TSESTree.Identifier): ...
  class FindVariableContext (line 241) | class FindVariableContext {
    method constructor (line 244) | public constructor(context: RuleContext) {
  function getScope (line 294) | function getScope(context: RuleContext, currentNode: TSESTree.Node): Sco...
  function getParent (line 313) | function getParent(node: TSESTree.Node): TSESTree.Node | null {
  type QuoteAndRange (line 318) | type QuoteAndRange = {
  function getAttributeValueQuoteAndRange (line 325) | function getAttributeValueQuoteAndRange(
  function getMustacheTokens (line 399) | function getMustacheTokens(
  function isWrappedInBraces (line 456) | function isWrappedInBraces(
  function getAttributeKeyText (line 481) | function getAttributeKeyText(
  function getDirectiveName (line 520) | function getDirectiveName(node: SvAST.SvelteDirective): string {
  function getAttributeValueRangeTokens (line 544) | function getAttributeValueRangeTokens(
  function findClassesInAttribute (line 576) | function findClassesInAttribute(
  function getNodeName (line 601) | function getNodeName(node: SvAST.SvelteElement): string {
  function isVoidHtmlElement (line 609) | function isVoidHtmlElement(node: SvAST.SvelteElement): boolean {
  function isForeignElement (line 616) | function isForeignElement(node: SvAST.SvelteElement): boolean {
  function isSvgElement (line 620) | function isSvgElement(node: SvAST.SvelteElement): boolean {
  function isMathMLElement (line 624) | function isMathMLElement(node: SvAST.SvelteElement): boolean {
  function isExpressionIdentifier (line 629) | function isExpressionIdentifier(node: TSESTree.Identifier): boolean {
  function getSimpleNameFromNode (line 685) | function getSimpleNameFromNode(
  function findVariableForReplacement (line 722) | function findVariableForReplacement(
  function isIn (line 752) | function isIn(needle: TSESTree.Node, haystack: TSESTree.Node): boolean {

FILE: packages/eslint-plugin-svelte/src/utils/cache.ts
  constant SKIP_TIME (line 7) | const SKIP_TIME = 5000;
  type CacheValue (line 9) | type CacheValue<T> = {
  function createCache (line 19) | function createCache<T>(): {

FILE: packages/eslint-plugin-svelte/src/utils/css-utils/resource.ts
  constant SHORTHAND_PROPERTIES (line 1) | const SHORTHAND_PROPERTIES = new Map<string, string[]>([

FILE: packages/eslint-plugin-svelte/src/utils/css-utils/style-attribute.ts
  function safeParseCss (line 9) | function safeParseCss(css: string): Root | null {
  function parseStyleAttributeValue (line 25) | function parseStyleAttributeValue(
  type SvelteStyleInterpolation (line 58) | type SvelteStyleInterpolation = AST.SvelteMustacheTagText | TSESTree.Exp...
  type SvelteStyleNode (line 60) | interface SvelteStyleNode<E extends SvelteStyleInterpolation> {
  type SvelteStyleRoot (line 65) | interface SvelteStyleRoot<E extends SvelteStyleInterpolation = SvelteSty...
  type SvelteStyleInline (line 69) | interface SvelteStyleInline<
  type SvelteStyleDeclaration (line 77) | interface SvelteStyleDeclaration<
  type SvelteStyleComment (line 97) | interface SvelteStyleComment extends SvelteStyleNode<never> {
  type SvelteStyleChildNode (line 102) | type SvelteStyleChildNode<E extends SvelteStyleInterpolation = SvelteSty...
  class IgnoreError (line 106) | class IgnoreError extends Error {}
  type Ctx (line 108) | type Ctx = {
  function isStringLiteral (line 115) | function isStringLiteral(node: TSESTree.Expression): node is TSESTree.Li...
  function convertRoot (line 120) | function convertRoot<E extends SvelteStyleInterpolation>(
  function convertChild (line 275) | function convertChild<E extends SvelteStyleInterpolation>(
  function convertRange (line 353) | function convertRange(node: AnyNode, ctx: Ctx): AST.Range {
  function toLoc (line 358) | function toLoc(range: AST.Range, ctx: Ctx): AST.SourceLocation {

FILE: packages/eslint-plugin-svelte/src/utils/css-utils/template-safe-parser.ts
  class TemplateSafeParser (line 3) | class TemplateSafeParser extends SafeParser {
    method createTokenizer (line 4) | protected createTokenizer(): void {

FILE: packages/eslint-plugin-svelte/src/utils/css-utils/template-tokenize.ts
  type Tokenize (line 4) | type Tokenize = typeof tokenize;
  function templateTokenize (line 7) | function templateTokenize(...args: Parameters<Tokenize>): Tokenizer {

FILE: packages/eslint-plugin-svelte/src/utils/css-utils/utils.ts
  function hasVendorPrefix (line 4) | function hasVendorPrefix(prop: string): boolean {
  function getVendorPrefix (line 11) | function getVendorPrefix(prop: string): string {
  function stripVendorPrefix (line 18) | function stripVendorPrefix(prop: string): string {

FILE: packages/eslint-plugin-svelte/src/utils/element-occurences.ts
  type ElementOccurenceCount (line 3) | enum ElementOccurenceCount {
  function multiplyCounts (line 9) | function multiplyCounts(
  function childElementOccurenceCount (line 25) | function childElementOccurenceCount(parent: AST.SvelteHTMLNode | null): ...
  function elementOccurrenceCount (line 50) | function elementOccurrenceCount(element: AST.SvelteHTMLNode): ElementOcc...

FILE: packages/eslint-plugin-svelte/src/utils/eslint-core.ts
  function defineWrapperListener (line 12) | function defineWrapperListener(
  function getProxyNode (line 29) | function getProxyNode(node: { type: string }, properties: any): any {
  function buildProxyListener (line 47) | function buildProxyListener(
  function getCoreRule (line 80) | function getCoreRule(ruleName: string): RuleModule {

FILE: packages/eslint-plugin-svelte/src/utils/events.ts
  constant EVENT_NAMES (line 2) | const EVENT_NAMES: string[] = [

FILE: packages/eslint-plugin-svelte/src/utils/expression-affixes.ts
  function extractExpressionPrefixVariable (line 6) | function extractExpressionPrefixVariable(
  function extractExpressionPrefixLiteral (line 13) | function extractExpressionPrefixLiteral(
  function extractExpressionSuffixLiteral (line 20) | function extractExpressionSuffixLiteral(
  function extractExpressionPrefixVariableInternal (line 29) | function extractExpressionPrefixVariableInternal(
  function extractBinaryExpressionPrefixVariable (line 47) | function extractBinaryExpressionPrefixVariable(
  function extractVariablePrefixVariable (line 56) | function extractVariablePrefixVariable(
  function extractMemberExpressionPrefixVariable (line 75) | function extractMemberExpressionPrefixVariable(
  function extractTemplateLiteralPrefixVariable (line 81) | function extractTemplateLiteralPrefixVariable(
  function extractExpressionPrefixLiteralInternal (line 103) | function extractExpressionPrefixLiteralInternal(
  function extractBinaryExpressionPrefixLiteral (line 123) | function extractBinaryExpressionPrefixLiteral(
  function extractVariablePrefixLiteral (line 132) | function extractVariablePrefixLiteral(
  function extractTemplateLiteralPrefixLiteral (line 148) | function extractTemplateLiteralPrefixLiteral(
  function extractExpressionSuffixLiteralInternal (line 170) | function extractExpressionSuffixLiteralInternal(
  function extractBinaryExpressionSuffixLiteral (line 190) | function extractBinaryExpressionSuffixLiteral(
  function extractVariableSuffixLiteral (line 197) | function extractVariableSuffixLiteral(
  function extractTemplateLiteralSuffixLiteral (line 213) | function extractTemplateLiteralSuffixLiteral(

FILE: packages/eslint-plugin-svelte/src/utils/get-node-module.ts
  function findPackageInNodeModules (line 12) | function findPackageInNodeModules(dir: string, packageName: string): str...
  function getNodeModule (line 33) | function getNodeModule(packageName: string, startPath = 'a.js'): string ...

FILE: packages/eslint-plugin-svelte/src/utils/get-package-json.ts
  type PackageJson (line 9) | type PackageJson = {
  function readPackageJson (line 28) | function readPackageJson(dir: string): PackageJson | null {
  function getPackageJsons (line 53) | function getPackageJsons(startPath = 'a.js'): PackageJson[] {

FILE: packages/eslint-plugin-svelte/src/utils/index.ts
  function doesNotSatisfy (line 4) | function doesNotSatisfy<T>(actual: T, expected?: T[]): boolean {
  function satisfiesCondition (line 12) | function satisfiesCondition(
  function shouldRun (line 30) | function shouldRun(
  function createRule (line 54) | function createRule(ruleName: string, rule: PartialRuleModule): RuleModu...

FILE: packages/eslint-plugin-svelte/src/utils/lines-and-columns.ts
  class LinesAndColumns (line 1) | class LinesAndColumns {
    method constructor (line 4) | public constructor(code: string) {
    method getLocFromIndex (line 22) | public getLocFromIndex(index: number): { line: number; column: number } {
    method getIndexFromLoc (line 30) | public getIndexFromLoc(loc: { line: number; column: number }): number {
  function sortedLastIndex (line 41) | function sortedLastIndex(array: number[], value: number): number {

FILE: packages/eslint-plugin-svelte/src/utils/load-module.ts
  function loadModule (line 10) | function loadModule<R>(context: RuleContext, name: string): R | null {

FILE: packages/eslint-plugin-svelte/src/utils/regexp.ts
  constant RE_REGEXP_STR (line 1) | const RE_REGEXP_STR = /^\/(.+)\/([A-Za-z]*)$/u;
  function toRegExp (line 11) | function toRegExp(string: string): { test(s: string): boolean } {
  function isRegExp (line 24) | function isRegExp(string: string): boolean {

FILE: packages/eslint-plugin-svelte/src/utils/svelte-context.ts
  type SvelteContext (line 11) | type SvelteContext = (
  function getSvelteFileType (line 51) | function getSvelteFileType(filePath: string): SvelteContext['svelteFileT...
  function getSvelteKitFileTypeFromFilePath (line 63) | function getSvelteKitFileTypeFromFilePath(filePath: string): SvelteConte...
  function extractMajorVersion (line 101) | function extractMajorVersion(version: string, recognizePrereleaseVersion...
  function getSvelteKitContext (line 121) | function getSvelteKitContext(
  function checkAndSetSvelteVersion (line 172) | function checkAndSetSvelteVersion(version: string): SvelteContext['svelt...
  function getSvelteVersion (line 183) | function getSvelteVersion(): SvelteContext['svelteVersion'] {
  function checkAndSetSvelteKitVersion (line 194) | function checkAndSetSvelteKitVersion(
  function getSvelteKitVersion (line 203) | function getSvelteKitVersion(filePath: string): SvelteContext['svelteKit...
  function getProjectRootDir (line 265) | function getProjectRootDir(filePath: string): string | null {
  function getSvelteContext (line 287) | function getSvelteContext(context: RuleContext): SvelteContext | null {

FILE: packages/eslint-plugin-svelte/src/utils/ts-utils/index.ts
  type TypeScript (line 4) | type TypeScript = typeof TS;
  type TSTools (line 7) | type TSTools = {
  function getTypeScriptTools (line 20) | function getTypeScriptTools(context: RuleContext): TSTools | null {
  function getTypeScript (line 52) | function getTypeScript(context: RuleContext): TypeScript | null {
  function isTruthyLiteral (line 71) | function isTruthyLiteral(type: TS.Type, tsTools: TSTools): boolean {
  function isFalsyType (line 85) | function isFalsyType(type: TS.Type, tsTools: TSTools): boolean {
  function isNullishType (line 104) | function isNullishType(type: TS.Type, ts: TypeScript): boolean {
  function isNullableType (line 114) | function isNullableType(type: TS.Type, ts: TypeScript): boolean {
  function isBooleanLiteralType (line 123) | function isBooleanLiteralType(type: TS.Type, ts: TypeScript): boolean {
  function isObjectType (line 130) | function isObjectType(type: TS.Type, ts: TypeScript): type is TS.ObjectT...
  function isReferenceObjectType (line 136) | function isReferenceObjectType(type: TS.Type, ts: TypeScript): type is T...
  function isTupleObjectType (line 142) | function isTupleObjectType(type: TS.Type, ts: TypeScript): type is TS.Tu...
  function isTupleType (line 149) | function isTupleType(type: TS.Type, ts: TypeScript): boolean {
  function isAnyType (line 159) | function isAnyType(type: TS.Type, ts: TypeScript): boolean {
  function isUnknownType (line 165) | function isUnknownType(type: TS.Type, ts: TypeScript): boolean {
  function isNeverType (line 171) | function isNeverType(type: TS.Type, ts: TypeScript): boolean {
  function isUndefinedType (line 177) | function isUndefinedType(type: TS.Type, ts: TypeScript): boolean {
  function isVoidType (line 183) | function isVoidType(type: TS.Type, ts: TypeScript): boolean {
  function isNullType (line 189) | function isNullType(type: TS.Type, ts: TypeScript): boolean {
  function isPossiblyFalsyType (line 195) | function isPossiblyFalsyType(type: TS.Type, ts: TypeScript): boolean {
  function getCallSignaturesOfType (line 208) | function getCallSignaturesOfType(type: TS.Type): readonly TS.Signature[] {
  function getConstrainedTypeAtLocation (line 235) | function getConstrainedTypeAtLocation(checker: TS.TypeChecker, node: TS....
  function getTypeName (line 251) | function getTypeName(type: TS.Type, tsTools: TSTools): string {
  function getTypeOfPropertyOfType (line 301) | function getTypeOfPropertyOfType(
  function isMethodSymbol (line 313) | function isMethodSymbol(type: TS.Symbol, ts: TypeScript): boolean {
  function isPropertySignatureKind (line 320) | function isPropertySignatureKind(
  function isFunctionTypeKind (line 330) | function isFunctionTypeKind(node: TS.Node, ts: TypeScript): node is TS.F...
  function isMethodSignatureKind (line 337) | function isMethodSignatureKind(node: TS.Node, ts: TypeScript): node is T...
  function isTypeReferenceKind (line 344) | function isTypeReferenceKind(node: TS.Node, ts: TypeScript): node is TS....
  function isIdentifierKind (line 351) | function isIdentifierKind(node: TS.Node, ts: TypeScript): node is TS.Ide...

FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/shared-types.ts
  type BaseProps (line 1) | interface BaseProps {
  type FooDTO (line 5) | interface FooDTO {
  type BazDTO (line 11) | interface BazDTO {

FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/shared-types.ts
  type BaseProps (line 1) | interface BaseProps {
  type FooDTO (line 6) | interface FooDTO {
  type BazDTO (line 12) | interface BazDTO {

FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-destructured-store-props/valid/runes01-input.svelte.js
  class Test (line 1) | class Test {
    method output (line 5) | output() {

FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/ts/store.ts
  type StoreLike (line 9) | interface StoreLike extends Writable<number> {

FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sveltekit-types.d.ts
  type Pathname (line 4) | type Pathname = "/" | "/test" | "/test/123" | "/test/123/456";
  type ResolvedPathname (line 5) | type ResolvedPathname = `${"" | `/${string}`}${Pathname}`;

FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/svelte-config-custom-warn/_config.cjs
  method onwarn (line 13) | onwarn(warning, handler) {

FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/svelte-config-onwarn/_config.cjs
  method onwarn (line 13) | onwarn(warning, handler) {

FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-config-onwarn/_config.cjs
  method onwarn (line 13) | onwarn(warning, handler) {

FILE: packages/eslint-plugin-svelte/tests/src/rules/@typescript-eslint/original-tests/no-unnecessary-condition.ts
  function getFixturesRootDir (line 15) | function getFixturesRootDir(): string {
  function withFileName (line 32) | function withFileName<

FILE: packages/eslint-plugin-svelte/tests/utils/eslint-compat.ts
  type MaybeHasRuleTester (line 4) | type MaybeHasRuleTester = {

FILE: packages/eslint-plugin-svelte/tests/utils/source-code-fixer.ts
  type Message (line 17) | type Message = {
  type HasFixMessage (line 21) | type HasFixMessage = Message & {
  function hasFixMessage (line 25) | function hasFixMessage(m: Message): m is HasFixMessage {
  constant BOM (line 32) | const BOM = '\uFEFF';
  function compareMessagesByFixRange (line 41) | function compareMessagesByFixRange(a: HasFixMessage, b: HasFixMessage) {
  function compareMessagesByLocation (line 52) | function compareMessagesByLocation(a: any, b: any) {
  function applyFixes (line 68) | function applyFixes<M extends Message>(

FILE: packages/eslint-plugin-svelte/tests/utils/utils.ts
  function unIndent (line 23) | function unIndent(strings: readonly string[]): string {
  function unIndentCodeAndOutput (line 34) | function unIndentCodeAndOutput([code]: readonly string[]): (args: readon...
  function getMinIndent (line 55) | function getMinIndent(lines: string[]) {
  constant FIXTURES_ROOT (line 62) | const FIXTURES_ROOT = path.resolve(__dirname, `../fixtures/`);
  constant RULES_PROJECT (line 63) | const RULES_PROJECT = path.resolve(FIXTURES_ROOT, './rules/tsconfig.json');
  function getRuleFixturesRoot (line 68) | function getRuleFixturesRoot(ruleName: string): string {
  function fileNameSuffix (line 72) | function fileNameSuffix(fileName: string): string {
  function isSvelteFile (line 78) | function isSvelteFile(fileName: string): boolean {
  function loadTestCases (line 85) | function loadTestCases(
  function listupInput (line 196) | function listupInput(rootDir: string) {
  function applySuggestion (line 219) | function applySuggestion(code: string, suggestion: LinterType.LintSugges...
  function writeFixtures (line 225) | function writeFixtures(
  function getConfig (line 307) | function getConfig(ruleName: string, inputFile: string) {
  function getRequirements (line 363) | function getRequirements(inputFile: string): Record<string, string> {

FILE: packages/eslint-plugin-svelte/tools/lib/changesets-util.ts
  function getNewVersion (line 7) | async function getNewVersion(): Promise<string> {

FILE: packages/eslint-plugin-svelte/tools/lib/load-rules.ts
  function readRules (line 11) | async function readRules() {

FILE: packages/eslint-plugin-svelte/tools/lib/write.ts
  function writeAndFormat (line 9) | async function writeAndFormat(fileURL: URL, content: string): Promise<vo...

FILE: packages/eslint-plugin-svelte/tools/new-rule.ts
  function getModulePath (line 148) | function getModulePath(from: URL, module: URL): string {
  function expectedArgs (line 156) | function expectedArgs(args: string[]) {

FILE: packages/eslint-plugin-svelte/tools/render-rules.ts
  function renderRulesTableContent (line 45) | function renderRulesTableContent(

FILE: packages/eslint-plugin-svelte/tools/update-docs.ts
  function formatItems (line 7) | function formatItems(items: string[]) {
  function yamlValue (line 14) | function yamlValue(val: unknown) {
  constant ROOT_URL (line 21) | const ROOT_URL = new URL('../../../docs/rules/', import.meta.url);
  function pickSince (line 23) | function pickSince(content: string): string | null | Promise<string> {
  class DocFile (line 43) | class DocFile {
    method constructor (line 52) | public constructor(rule: RuleModule) {
    method read (line 59) | public static read(rule: RuleModule) {
    method updateHeader (line 63) | public updateHeader() {
    method updateFooter (line 133) | public async updateFooter() {
    method updateCodeBlocks (line 168) | public updateCodeBlocks() {
    method adjustCodeBlocks (line 185) | public adjustCodeBlocks() {
    method updateFileIntro (line 192) | public async updateFileIntro() {
    method write (line 218) | public async write() {
  function main (line 228) | async function main() {

FILE: packages/eslint-plugin-svelte/tools/update-meta.ts
  constant META_URL (line 5) | const META_URL = new URL('../src/meta.ts', import.meta.url);
  function main (line 10) | async function main() {
  function getVersion (line 25) | function getVersion() {

FILE: packages/eslint-plugin-svelte/tools/update-rule-types.ts
  function main (line 6) | async function main() {

FILE: packages/eslint-plugin-svelte/tools/update-rules.ts
  function camelCase (line 8) | function camelCase(str: string) {
  function toIdentifier (line 15) | function toIdentifier(str: string) {

FILE: tools/pkg.pr.new-comment.mjs
  function getPullRequestNumber (line 68) | async function getPullRequestNumber() {
  function findBotComment (line 72) | async function findBotComment(issueNumber) {
  function createOrUpdateComment (line 83) | async function createOrUpdateComment(issueNumber) {
Condensed preview — 2914 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (2,876K chars).
[
  {
    "path": ".changeset/README.md",
    "chars": 510,
    "preview": "# Changesets\n\nHello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that wo"
  },
  {
    "path": ".changeset/config.json",
    "chars": 371,
    "preview": "{\n  \"$schema\": \"https://unpkg.com/@changesets/config/schema.json\",\n  \"changelog\": [\n    \"@changesets/changelog-github\",\n"
  },
  {
    "path": ".devcontainer/devcontainer.json",
    "chars": 1035,
    "preview": "// For format details, see https://aka.ms/devcontainer.json. For config options, see the\n// README at: https://github.co"
  },
  {
    "path": ".editorconfig",
    "chars": 269,
    "preview": "root = true\n\n[*]\nend_of_line = lf\nindent_size = 2\nindent_style = tab\ntrim_trailing_whitespace = true\n\n[docs/rules/no-tra"
  },
  {
    "path": ".env-cmdrc.json",
    "chars": 210,
    "preview": "{\n\t\"version\": {\n\t\t\"IN_VERSION_SCRIPT\": \"true\"\n\t},\n\t\"version-ci\": {\n\t\t\"IN_VERSION_CI_SCRIPT\": \"true\"\n\t},\n\t\"debug\": {\n\t\t\"D"
  },
  {
    "path": ".gitattributes",
    "chars": 18,
    "preview": "* text=auto eol=lf"
  },
  {
    "path": ".github/FUNDING.yml",
    "chars": 158,
    "preview": "# These are supported funding model platforms\n\nopen_collective: svelte\ngithub: [ota-meshi, JounQin]\npatreon: 1stG\ncustom"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.yml",
    "chars": 2906,
    "preview": "name: Bug report\ndescription: Create a report to help us improve.\n\nbody:\n  - type: markdown\n    attributes:\n      value:"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.yml",
    "chars": 306,
    "preview": "name: Feature request\ndescription: Suggest a new feature.\nlabels: [enhancement]\n\nbody:\n  - type: textarea\n    attributes"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/new_rule_request.yml",
    "chars": 976,
    "preview": "name: New rule request\ndescription: Propose a new rule to be added.\nlabels: [enhancement, new rule]\n\nbody:\n  - type: tex"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/other.md",
    "chars": 115,
    "preview": "---\nname: Other\nabout: An issue that doesn't fit into the other categories.\ntitle: ''\nlabels: ''\nassignees: ''\n---\n"
  },
  {
    "path": ".github/workflows/GHPages.yml",
    "chars": 1229,
    "preview": "name: GHPages\n\non:\n  workflow_dispatch: null\n  push:\n    branches: [main]\n\n# Sets permissions of the GITHUB_TOKEN to all"
  },
  {
    "path": ".github/workflows/NodeCI.yml",
    "chars": 5110,
    "preview": "name: CI\n\non:\n  push:\n    branches: [main]\n  pull_request:\n    branches: [main]\n\nenv:\n  project_root_path: ./packages/es"
  },
  {
    "path": ".github/workflows/Release.yml",
    "chars": 1391,
    "preview": "name: Release\n\non:\n  push:\n    branches:\n      - main\n\npermissions: {}\n\njobs:\n  release:\n    permissions:\n      contents"
  },
  {
    "path": ".github/workflows/pkg.pr.new-comment.yml",
    "chars": 1042,
    "preview": "name: Update pkg.pr.new comment\n\non:\n  workflow_run:\n    workflows: ['Publish to pkg.pr.new']\n    types:\n      - complet"
  },
  {
    "path": ".github/workflows/pkg.pr.new.yml",
    "chars": 1382,
    "preview": "name: Publish to pkg.pr.new\non:\n  pull_request:\n    branches: [main]\n  push:\n    branches: [main]\n    tags: ['!**']\n\njob"
  },
  {
    "path": ".github/workflows/stale.yml",
    "chars": 1387,
    "preview": "name: Close stale issues and PRs\non:\n  schedule:\n    - cron: '30 1 * * *'\n\npermissions:\n  issues: write\n  pull-requests:"
  },
  {
    "path": ".gitignore",
    "chars": 1933,
    "preview": "# Logs\nlogs\n*.log\nnpm-debug.log*\nyarn-debug.log*\nyarn-error.log*\nlerna-debug.log*\n\n# Diagnostic reports (https://nodejs."
  },
  {
    "path": ".npmrc",
    "chars": 29,
    "preview": "enable-pre-post-scripts=true\n"
  },
  {
    "path": ".prettierignore",
    "chars": 92,
    "preview": ".svelte-kit\n.type-coverage\nbuild\n/lib\n.npmrc\n/tests/fixtures/rules/indent/valid/\n.changeset\n"
  },
  {
    "path": ".vscode/extensions.json",
    "chars": 58,
    "preview": "{\n\t\"recommendations\": [\"rvest.vs-code-prettier-eslint\"]\n}\n"
  },
  {
    "path": ".vscode/settings.json",
    "chars": 493,
    "preview": "{\n\t\"eslint.validate\": [\"javascript\", \"typescript\", \"markdown\", \"svelte\", \"json\", \"jsonc\", \"yaml\"],\n\t\"editor.formatOnSave"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 2400,
    "preview": "# Contributing\n\nThank you for contributing!\n\n## Installation\n\n```sh\ngit clone https://github.com/sveltejs/eslint-plugin-"
  },
  {
    "path": "LICENSE",
    "chars": 1067,
    "preview": "MIT License\n\nCopyright (c) 2021 Yosuke Ota\n\nPermission is hereby granted, free of charge, to any person obtaining a copy"
  },
  {
    "path": "README.md",
    "chars": 27655,
    "preview": "<!--DOCS_IGNORE_START-->\n\n[![NPM license](https://img.shields.io/npm/l/eslint-plugin-svelte.svg)](https://www.npmjs.com/"
  },
  {
    "path": "docs/README.md",
    "chars": 1281,
    "preview": "---\ntitle: 'eslint-plugin-svelte'\n---\n\n## Introduction\n\n`eslint-plugin-svelte` is the official [ESLint](https://eslint.o"
  },
  {
    "path": "docs/migration.md",
    "chars": 4716,
    "preview": "# Migration Guide\n\n## From `eslint-plugin-svelte3`\n\nYou can not use both `eslint-plugin-svelte3` and `eslint-plugin-svel"
  },
  {
    "path": "docs/rules/@typescript-eslint/no-unnecessary-condition.md",
    "chars": 2581,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/@typescript-eslint/no-unnecessary-condition'\ndescription: '"
  },
  {
    "path": "docs/rules/block-lang.md",
    "chars": 2698,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/block-lang'\ndescription: 'disallows the use of languages ot"
  },
  {
    "path": "docs/rules/button-has-type.md",
    "chars": 1693,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/button-has-type'\ndescription: 'disallow usage of button wit"
  },
  {
    "path": "docs/rules/comment-directive.md",
    "chars": 3004,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/comment-directive'\ndescription: 'support comment-directives"
  },
  {
    "path": "docs/rules/consistent-selector-style.md",
    "chars": 2748,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/consistent-selector-style'\ndescription: 'enforce a consiste"
  },
  {
    "path": "docs/rules/derived-has-same-inputs-outputs.md",
    "chars": 1598,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/derived-has-same-inputs-outputs'\ndescription: 'derived stor"
  },
  {
    "path": "docs/rules/experimental-require-slot-types.md",
    "chars": 2217,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/experimental-require-slot-types'\ndescription: 'require slot"
  },
  {
    "path": "docs/rules/experimental-require-strict-events.md",
    "chars": 1835,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/experimental-require-strict-events'\ndescription: 'require t"
  },
  {
    "path": "docs/rules/first-attribute-linebreak.md",
    "chars": 2183,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/first-attribute-linebreak'\ndescription: 'enforce the locati"
  },
  {
    "path": "docs/rules/html-closing-bracket-new-line.md",
    "chars": 2508,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/html-closing-bracket-new-line'\ndescription: \"Require or dis"
  },
  {
    "path": "docs/rules/html-closing-bracket-spacing.md",
    "chars": 1882,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/html-closing-bracket-spacing'\ndescription: \"require or disa"
  },
  {
    "path": "docs/rules/html-quotes.md",
    "chars": 2064,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/html-quotes'\ndescription: 'enforce quotes style of HTML att"
  },
  {
    "path": "docs/rules/html-self-closing.md",
    "chars": 3177,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/html-self-closing'\ndescription: 'enforce self-closing style"
  },
  {
    "path": "docs/rules/indent.md",
    "chars": 3213,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/indent'\ndescription: 'enforce consistent indentation'\nsince"
  },
  {
    "path": "docs/rules/infinite-reactive-loop.md",
    "chars": 2698,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/infinite-reactive-loop'\ndescription: \"Svelte runtime preven"
  },
  {
    "path": "docs/rules/max-attributes-per-line.md",
    "chars": 2519,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/max-attributes-per-line'\ndescription: 'enforce the maximum "
  },
  {
    "path": "docs/rules/max-lines-per-block.md",
    "chars": 2716,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/max-lines-per-block'\ndescription: 'enforce maximum number o"
  },
  {
    "path": "docs/rules/mustache-spacing.md",
    "chars": 2770,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/mustache-spacing'\ndescription: 'enforce unified spacing in "
  },
  {
    "path": "docs/rules/no-add-event-listener.md",
    "chars": 1696,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-add-event-listener'\ndescription: 'Warns against the use "
  },
  {
    "path": "docs/rules/no-at-debug-tags.md",
    "chars": 1308,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-at-debug-tags'\ndescription: 'disallow the use of `{@debu"
  },
  {
    "path": "docs/rules/no-at-html-tags.md",
    "chars": 1339,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-at-html-tags'\ndescription: 'disallow use of `{@html}` to"
  },
  {
    "path": "docs/rules/no-dom-manipulating.md",
    "chars": 2830,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-dom-manipulating'\ndescription: 'disallow DOM manipulatin"
  },
  {
    "path": "docs/rules/no-dupe-else-if-blocks.md",
    "chars": 2029,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-dupe-else-if-blocks'\ndescription: 'disallow duplicate co"
  },
  {
    "path": "docs/rules/no-dupe-on-directives.md",
    "chars": 1421,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-dupe-on-directives'\ndescription: 'disallow duplicate `on"
  },
  {
    "path": "docs/rules/no-dupe-style-properties.md",
    "chars": 1228,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-dupe-style-properties'\ndescription: 'disallow duplicate "
  },
  {
    "path": "docs/rules/no-dupe-use-directives.md",
    "chars": 1340,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-dupe-use-directives'\ndescription: 'disallow duplicate `u"
  },
  {
    "path": "docs/rules/no-dynamic-slot-name.md",
    "chars": 1437,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-dynamic-slot-name'\ndescription: 'disallow dynamic slot n"
  },
  {
    "path": "docs/rules/no-export-load-in-svelte-module-in-kit-pages.md",
    "chars": 1764,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-export-load-in-svelte-module-in-kit-pages'\ndescription: "
  },
  {
    "path": "docs/rules/no-extra-reactive-curlies.md",
    "chars": 1476,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-extra-reactive-curlies'\ndescription: 'disallow wrapping "
  },
  {
    "path": "docs/rules/no-goto-without-base.md",
    "chars": 1839,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-goto-without-base'\ndescription: 'disallow using goto() w"
  },
  {
    "path": "docs/rules/no-ignored-unsubscribe.md",
    "chars": 1481,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-ignored-unsubscribe'\ndescription: 'disallow ignoring the"
  },
  {
    "path": "docs/rules/no-immutable-reactive-statements.md",
    "chars": 1791,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-immutable-reactive-statements'\ndescription: \"disallow re"
  },
  {
    "path": "docs/rules/no-inline-styles.md",
    "chars": 1855,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-inline-styles'\ndescription: 'disallow attributes and dir"
  },
  {
    "path": "docs/rules/no-inner-declarations.md",
    "chars": 2135,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-inner-declarations'\ndescription: 'disallow variable or `"
  },
  {
    "path": "docs/rules/no-inspect.md",
    "chars": 880,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-inspect'\ndescription: 'Warns against the use of `$inspec"
  },
  {
    "path": "docs/rules/no-navigation-without-base.md",
    "chars": 3591,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-navigation-without-base'\ndescription: 'disallow using na"
  },
  {
    "path": "docs/rules/no-navigation-without-resolve.md",
    "chars": 3208,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-navigation-without-resolve'\ndescription: 'disallow inter"
  },
  {
    "path": "docs/rules/no-not-function-handler.md",
    "chars": 1476,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-not-function-handler'\ndescription: 'disallow use of not "
  },
  {
    "path": "docs/rules/no-object-in-text-mustaches.md",
    "chars": 1407,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-object-in-text-mustaches'\ndescription: 'disallow objects"
  },
  {
    "path": "docs/rules/no-raw-special-elements.md",
    "chars": 1558,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-raw-special-elements'\ndescription: 'Checks for invalid r"
  },
  {
    "path": "docs/rules/no-reactive-functions.md",
    "chars": 1788,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-reactive-functions'\ndescription: \"it's not necessary to "
  },
  {
    "path": "docs/rules/no-reactive-literals.md",
    "chars": 1466,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-reactive-literals'\ndescription: \"don't assign literal va"
  },
  {
    "path": "docs/rules/no-reactive-reassign.md",
    "chars": 2581,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-reactive-reassign'\ndescription: 'disallow reassigning re"
  },
  {
    "path": "docs/rules/no-restricted-html-elements.md",
    "chars": 1856,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-restricted-html-elements'\ndescription: 'disallow specifi"
  },
  {
    "path": "docs/rules/no-shorthand-style-property-overrides.md",
    "chars": 2062,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-shorthand-style-property-overrides'\ndescription: 'disall"
  },
  {
    "path": "docs/rules/no-spaces-around-equal-signs-in-attribute.md",
    "chars": 1478,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-spaces-around-equal-signs-in-attribute'\ndescription: 'di"
  },
  {
    "path": "docs/rules/no-store-async.md",
    "chars": 1617,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-store-async'\ndescription: 'disallow using async/await in"
  },
  {
    "path": "docs/rules/no-svelte-internal.md",
    "chars": 1585,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-svelte-internal'\ndescription: 'svelte/internal will be r"
  },
  {
    "path": "docs/rules/no-target-blank.md",
    "chars": 2986,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-target-blank'\ndescription: 'disallow `target=\"_blank\"` a"
  },
  {
    "path": "docs/rules/no-top-level-browser-globals.md",
    "chars": 1658,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-top-level-browser-globals'\ndescription: 'disallow using "
  },
  {
    "path": "docs/rules/no-trailing-spaces.md",
    "chars": 2267,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-trailing-spaces'\ndescription: 'disallow trailing whitesp"
  },
  {
    "path": "docs/rules/no-unknown-style-directive-property.md",
    "chars": 2109,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-unknown-style-directive-property'\ndescription: 'disallow"
  },
  {
    "path": "docs/rules/no-unnecessary-state-wrap.md",
    "chars": 3403,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-unnecessary-state-wrap'\ndescription: 'Disallow unnecessa"
  },
  {
    "path": "docs/rules/no-unused-class-name.md",
    "chars": 1909,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-unused-class-name'\ndescription: 'disallow the use of a c"
  },
  {
    "path": "docs/rules/no-unused-props.md",
    "chars": 7522,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-unused-props'\ndescription: 'Warns about defined Props pr"
  },
  {
    "path": "docs/rules/no-unused-svelte-ignore.md",
    "chars": 1685,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-unused-svelte-ignore'\ndescription: 'disallow unused svel"
  },
  {
    "path": "docs/rules/no-useless-children-snippet.md",
    "chars": 1424,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-useless-children-snippet'\ndescription: \"disallow explici"
  },
  {
    "path": "docs/rules/no-useless-mustaches.md",
    "chars": 2196,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/no-useless-mustaches'\ndescription: 'disallow unnecessary mu"
  },
  {
    "path": "docs/rules/prefer-class-directive.md",
    "chars": 2312,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/prefer-class-directive'\ndescription: 'require class directi"
  },
  {
    "path": "docs/rules/prefer-const.md",
    "chars": 2721,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/prefer-const'\ndescription: 'Require `const` declarations fo"
  },
  {
    "path": "docs/rules/prefer-destructured-store-props.md",
    "chars": 1893,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/prefer-destructured-store-props'\ndescription: 'destructure "
  },
  {
    "path": "docs/rules/prefer-style-directive.md",
    "chars": 2142,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/prefer-style-directive'\ndescription: 'require style directi"
  },
  {
    "path": "docs/rules/prefer-svelte-reactivity.md",
    "chars": 3047,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/prefer-svelte-reactivity'\ndescription: 'disallow using muta"
  },
  {
    "path": "docs/rules/prefer-writable-derived.md",
    "chars": 2189,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/prefer-writable-derived'\ndescription: 'Prefer using writabl"
  },
  {
    "path": "docs/rules/require-each-key.md",
    "chars": 1249,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/require-each-key'\ndescription: 'require keyed `{#each}` blo"
  },
  {
    "path": "docs/rules/require-event-dispatcher-types.md",
    "chars": 1635,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/require-event-dispatcher-types'\ndescription: 'require type "
  },
  {
    "path": "docs/rules/require-event-prefix.md",
    "chars": 1775,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/require-event-prefix'\ndescription: 'require component event"
  },
  {
    "path": "docs/rules/require-optimized-style-attribute.md",
    "chars": 2724,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/require-optimized-style-attribute'\ndescription: 'require st"
  },
  {
    "path": "docs/rules/require-store-callbacks-use-set-param.md",
    "chars": 2266,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/require-store-callbacks-use-set-param'\ndescription: 'store "
  },
  {
    "path": "docs/rules/require-store-reactive-access.md",
    "chars": 2717,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/require-store-reactive-access'\ndescription: 'disallow to us"
  },
  {
    "path": "docs/rules/require-stores-init.md",
    "chars": 1365,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/require-stores-init'\ndescription: 'require initial value in"
  },
  {
    "path": "docs/rules/shorthand-attribute.md",
    "chars": 1614,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/shorthand-attribute'\ndescription: 'enforce use of shorthand"
  },
  {
    "path": "docs/rules/shorthand-directive.md",
    "chars": 1782,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/shorthand-directive'\ndescription: 'enforce use of shorthand"
  },
  {
    "path": "docs/rules/sort-attributes.md",
    "chars": 7788,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/sort-attributes'\ndescription: 'enforce order of attributes'"
  },
  {
    "path": "docs/rules/spaced-html-comment.md",
    "chars": 1749,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/spaced-html-comment'\ndescription: 'enforce consistent spaci"
  },
  {
    "path": "docs/rules/system.md",
    "chars": 867,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/system'\ndescription: 'system rule for working this plugin'\n"
  },
  {
    "path": "docs/rules/valid-compile.md",
    "chars": 2962,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/valid-compile'\ndescription: 'disallow warnings when compili"
  },
  {
    "path": "docs/rules/valid-each-key.md",
    "chars": 1569,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/valid-each-key'\ndescription: 'enforce keys to use variables"
  },
  {
    "path": "docs/rules/valid-prop-names-in-kit-pages.md",
    "chars": 1836,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/valid-prop-names-in-kit-pages'\ndescription: 'disallow props"
  },
  {
    "path": "docs/rules/valid-style-parse.md",
    "chars": 1417,
    "preview": "---\npageClass: 'rule-details'\nsidebarDepth: 0\ntitle: 'svelte/valid-style-parse'\ndescription: 'require valid style elemen"
  },
  {
    "path": "docs/rules.md",
    "chars": 23001,
    "preview": "---\nsidebarDepth: 0\n---\n\n# Available Rules\n\n:wrench: Indicates that the rule is fixable, and using `--fix` option on the"
  },
  {
    "path": "docs/user-guide.md",
    "chars": 7488,
    "preview": "# User Guide\n\n<!--USAGE_GUIDE_START-->\n\n## Installation\n\n### CLI\n\nThe recommended way to get started is to use the CLI.\n"
  },
  {
    "path": "docs-svelte-kit/eslint.config.mjs",
    "chars": 1072,
    "preview": "import * as myPlugin from '@ota-meshi/eslint-plugin';\nimport globals from 'globals';\n\n/**\n * @type {import('eslint').Lin"
  },
  {
    "path": "docs-svelte-kit/package.json",
    "chars": 2119,
    "preview": "{\n  \"name\": \"docs\",\n  \"private\": true,\n  \"type\": \"module\",\n  \"version\": \"0.0.0\",\n  \"scripts\": {\n    \"lint\": \"eslint --co"
  },
  {
    "path": "docs-svelte-kit/src/app.css",
    "chars": 3756,
    "preview": "@import '@fontsource/fira-mono';\n@import 'prismjs/themes/prism-tomorrow';\n@import '@shikijs/twoslash/style-rich.css';\n\n:"
  },
  {
    "path": "docs-svelte-kit/src/app.html",
    "chars": 819,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\" />\n    %sveltekit.head%\n    <meta name=\"description\""
  },
  {
    "path": "docs-svelte-kit/src/lib/footer/Footer.svelte",
    "chars": 3139,
    "preview": "<script>\n\timport { page } from '$app/stores';\n\timport { markdownPath, menuItems, isActive } from '../utils.js';\n\timport "
  },
  {
    "path": "docs-svelte-kit/src/lib/header/Header.svelte",
    "chars": 5402,
    "preview": "<script>\n\timport { createEventDispatcher } from 'svelte';\n\timport { isActive } from '../utils.js';\n\timport { page } from"
  },
  {
    "path": "docs-svelte-kit/src/lib/sidemenu/SideMenu.svelte",
    "chars": 887,
    "preview": "<script>\n\timport UlMenu from './UlMenu.svelte';\n\timport { menuItems } from '../utils.js';\n\n\texport let sidebarOpen = fal"
  },
  {
    "path": "docs-svelte-kit/src/lib/sidemenu/UlMenu.svelte",
    "chars": 2042,
    "preview": "<script>\n\timport { page } from '$app/stores';\n\timport { isActive, stripBaseUrl } from '../utils.js';\n\timport { resolve }"
  },
  {
    "path": "docs-svelte-kit/src/lib/utils.js",
    "chars": 2827,
    "preview": "/* globals RULES_META -- ignore */\nimport { readable, writable } from 'svelte/store';\nimport { page } from '$app/stores'"
  },
  {
    "path": "docs-svelte-kit/src/reset.css",
    "chars": 2066,
    "preview": "*,\n*::before,\n*::after {\n\tmargin: 0;\n\tpadding: 0;\n\tbox-sizing: border-box;\n}\n:where([hidden]:not([hidden='until-found'])"
  },
  {
    "path": "docs-svelte-kit/src/routes/+error.svelte",
    "chars": 225,
    "preview": "<script>\n\timport { resolve } from '$app/paths';\n\timport { page } from '$app/stores';\n</script>\n\n<h1>{$page.status}</h1>\n"
  },
  {
    "path": "docs-svelte-kit/src/routes/+layout.js",
    "chars": 497,
    "preview": "import { markdownPath } from '$lib/utils.js';\nconst docs = import.meta.glob('../../../docs/**/*.md');\n\nexport const prer"
  },
  {
    "path": "docs-svelte-kit/src/routes/+layout.svelte",
    "chars": 2009,
    "preview": "<script>\n\timport Header from '$lib/header/Header.svelte';\n\timport SideMenu from '$lib/sidemenu/SideMenu.svelte';\n\timport"
  },
  {
    "path": "docs-svelte-kit/src/routes/404/+page.svelte",
    "chars": 222,
    "preview": "<script>\n\timport { resolve } from '$app/paths';\n</script>\n\n<h1>404</h1>\n<blockquote>\n\t<p>Not Found</p>\n\t<p>Take me <a hr"
  },
  {
    "path": "docs-svelte-kit/svelte.config.js",
    "chars": 527,
    "preview": "import adapter from '@sveltejs/adapter-static';\n\nif (typeof self === 'undefined') {\n\tglobalThis.self = globalThis;\n}\n\n/*"
  },
  {
    "path": "docs-svelte-kit/tools/generate-routes.mts",
    "chars": 1263,
    "preview": "import path from 'path';\nimport fs from 'fs';\nimport { fileURLToPath } from 'url';\nconst dirname = path.dirname(fileURLT"
  },
  {
    "path": "docs-svelte-kit/tools/highlight.mts",
    "chars": 1257,
    "preview": "import prism from 'prismjs';\nimport loadLanguages from 'prismjs/components/index.js';\nimport escapeHtml from 'escape-htm"
  },
  {
    "path": "docs-svelte-kit/tools/markdown-it-container-option.mts",
    "chars": 1006,
    "preview": "import type containerPlugin from 'markdown-it-container';\ntype ContainerPluginOption = Parameters<typeof containerPlugin"
  },
  {
    "path": "docs-svelte-kit/tools/markdown-it-markdown.mts",
    "chars": 2657,
    "preview": "import path from 'path';\nimport spawn from 'cross-spawn';\nimport type Md from 'markdown-it';\n\ntype TreeItem = {\n\tchildre"
  },
  {
    "path": "docs-svelte-kit/tools/markdown-it-replace-link.mts",
    "chars": 1662,
    "preview": "import path from 'path';\nimport type Md from 'markdown-it';\nimport type Token from 'markdown-it/lib/token';\n\nexport defa"
  },
  {
    "path": "docs-svelte-kit/tools/markdown-it-title.mts",
    "chars": 860,
    "preview": "import type Md from 'markdown-it';\n/**\n * @param {import('markdown-it')} md\n */\nexport default (md: Md): void => {\n\tcons"
  },
  {
    "path": "docs-svelte-kit/tools/vite-plugin-svelte-md-option.mts",
    "chars": 2994,
    "preview": "import highlight from './highlight.mjs';\nimport replaceLinkPlugin from './markdown-it-replace-link.mjs';\nimport { full a"
  },
  {
    "path": "docs-svelte-kit/tsconfig.json",
    "chars": 577,
    "preview": "{\n\t\"extends\": \"./.svelte-kit/tsconfig.json\",\n\t\"compilerOptions\": {\n\t\t\"target\": \"es2020\",\n\t\t\"module\": \"NodeNext\",\n\t\t\"modu"
  },
  {
    "path": "docs-svelte-kit/vite.config.ts",
    "chars": 1526,
    "preview": "import { sveltekit } from '@sveltejs/kit/vite';\nimport path from 'path';\nimport svelteMd from 'vite-plugin-svelte-md';\ni"
  },
  {
    "path": "package.json",
    "chars": 2115,
    "preview": "{\n  \"name\": \"eslint-plugin-svelte-monorepo\",\n  \"description\": \"eslint-plugin-svelte monorepo\",\n  \"private\": true,\n  \"lic"
  },
  {
    "path": "packages/eslint-plugin-svelte/.env-cmdrc.json",
    "chars": 210,
    "preview": "{\n\t\"version\": {\n\t\t\"IN_VERSION_SCRIPT\": \"true\"\n\t},\n\t\"version-ci\": {\n\t\t\"IN_VERSION_CI_SCRIPT\": \"true\"\n\t},\n\t\"debug\": {\n\t\t\"D"
  },
  {
    "path": "packages/eslint-plugin-svelte/CHANGELOG.md",
    "chars": 101958,
    "preview": "# eslint-plugin-svelte\n\n## 3.17.1\n\n### Patch Changes\n\n- [#1321](https://github.com/sveltejs/eslint-plugin-svelte/pull/13"
  },
  {
    "path": "packages/eslint-plugin-svelte/LICENSE",
    "chars": 1067,
    "preview": "MIT License\n\nCopyright (c) 2021 Yosuke Ota\n\nPermission is hereby granted, free of charge, to any person obtaining a copy"
  },
  {
    "path": "packages/eslint-plugin-svelte/babel.config.cjs",
    "chars": 100,
    "preview": "'use strict';\n\n// for test\nmodule.exports = {\n\tplugins: ['@babel/plugin-proposal-function-bind']\n};\n"
  },
  {
    "path": "packages/eslint-plugin-svelte/eslint.config.mjs",
    "chars": 3698,
    "preview": "import * as myPlugin from '@ota-meshi/eslint-plugin';\nimport * as tseslint from 'typescript-eslint';\nimport { createJiti"
  },
  {
    "path": "packages/eslint-plugin-svelte/internal-rules/prefer-find-variable-safe.ts",
    "chars": 4942,
    "preview": "import type { Rule } from 'eslint';\nimport { ReferenceTracker, findVariable } from '@eslint-community/eslint-utils';\nimp"
  },
  {
    "path": "packages/eslint-plugin-svelte/package.json",
    "chars": 3999,
    "preview": "{\n  \"name\": \"eslint-plugin-svelte\",\n  \"version\": \"3.17.1\",\n  \"description\": \"ESLint plugin for Svelte using AST\",\n  \"rep"
  },
  {
    "path": "packages/eslint-plugin-svelte/postcss.config.cjs",
    "chars": 87,
    "preview": "'use strict';\n\n// for test\nmodule.exports = {\n\tplugins: [require('postcss-nested')]\n};\n"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/configs/flat/all.ts",
    "chars": 488,
    "preview": "import type { Linter } from 'eslint';\nimport { rules } from '../../utils/rules.js';\nimport base from './base.js';\nconst "
  },
  {
    "path": "packages/eslint-plugin-svelte/src/configs/flat/base.ts",
    "chars": 1387,
    "preview": "// IMPORTANT!\n// This file has been automatically generated,\n// in order to update its content execute \"pnpm run update\""
  },
  {
    "path": "packages/eslint-plugin-svelte/src/configs/flat/prettier.ts",
    "chars": 858,
    "preview": "// IMPORTANT!\n// This file has been automatically generated,\n// in order to update its content execute \"pnpm run update\""
  },
  {
    "path": "packages/eslint-plugin-svelte/src/configs/flat/recommended.ts",
    "chars": 2030,
    "preview": "// IMPORTANT!\n// This file has been automatically generated,\n// in order to update its content execute \"pnpm run update\""
  },
  {
    "path": "packages/eslint-plugin-svelte/src/index.ts",
    "chars": 171,
    "preview": "import * as plugin from './main.js';\nimport { setPluginObject } from './configs/flat/base.js';\nsetPluginObject(plugin);\n"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/main.ts",
    "chars": 1316,
    "preview": "import './rule-types.js';\nimport type { RuleModule } from './types.js';\nimport { rules as ruleList } from './utils/rules"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/meta.ts",
    "chars": 216,
    "preview": "// IMPORTANT!\n// This file has been automatically generated,\n// in order to update its content execute \"pnpm run update\""
  },
  {
    "path": "packages/eslint-plugin-svelte/src/processor/index.ts",
    "chars": 971,
    "preview": "import type { Linter } from 'eslint';\nimport type { Shared } from '../shared/index.js';\nimport { beginShared, terminateS"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rule-types.ts",
    "chars": 25212,
    "preview": "// IMPORTANT!\n// This file has been automatically generated,\n// in order to update its content execute \"pnpm run update\""
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/@typescript-eslint/no-unnecessary-condition.ts",
    "chars": 23823,
    "preview": "// This rule is based on typescript-eslint's no-unnecessary-condition rule\n// and modified to work well with Svelte comp"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/block-lang.ts",
    "chars": 6576,
    "preview": "import { createRule } from '../utils/index.js';\nimport { findAttribute, getLangValue } from '../utils/ast-utils.js';\nimp"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/button-has-type.ts",
    "chars": 3091,
    "preview": "import type { AST } from 'svelte-eslint-parser';\nimport { createRule } from '../utils/index.js';\nimport {\n\tfindAttribute"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/comment-directive.ts",
    "chars": 6049,
    "preview": "import type { AST } from 'svelte-eslint-parser';\nimport { getShared } from '../shared/index.js';\nimport type { CommentDi"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/consistent-selector-style.ts",
    "chars": 9912,
    "preview": "import type { AST } from 'svelte-eslint-parser';\nimport type { AnyNode } from 'postcss';\nimport type {\n\tClassName as Sel"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/derived-has-same-inputs-outputs.ts",
    "chars": 4438,
    "preview": "import type { TSESTree } from '@typescript-eslint/types';\nimport type { Variable } from '@typescript-eslint/scope-manage"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/experimental-require-slot-types.ts",
    "chars": 1458,
    "preview": "import { createRule } from '../utils/index.js';\nimport { getLangValue } from '../utils/ast-utils.js';\n\nconst SLOTS_TYPE_"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/experimental-require-strict-events.ts",
    "chars": 1496,
    "preview": "import type { AST } from 'svelte-eslint-parser';\n\nimport { createRule } from '../utils/index.js';\nimport { findAttribute"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/first-attribute-linebreak.ts",
    "chars": 2067,
    "preview": "import type { AST } from 'svelte-eslint-parser';\nimport { createRule } from '../utils/index.js';\n\nexport default createR"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/html-closing-bracket-new-line.ts",
    "chars": 4583,
    "preview": "import type { AST } from 'svelte-eslint-parser';\nimport { createRule } from '../utils/index.js';\nimport type { SourceCod"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/html-closing-bracket-spacing.ts",
    "chars": 2464,
    "preview": "import { createRule } from '../utils/index.js';\nimport type { AST } from 'svelte-eslint-parser';\n\nexport default createR"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/html-quotes.ts",
    "chars": 5994,
    "preview": "import type { AST } from 'svelte-eslint-parser';\nimport { createRule } from '../utils/index.js';\nimport type { QuoteAndR"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/html-self-closing.ts",
    "chars": 4874,
    "preview": "import type { AST } from 'svelte-eslint-parser';\nimport { createRule } from '../utils/index.js';\nimport {\n\tgetNodeName,\n"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/indent-helpers/ast.ts",
    "chars": 767,
    "preview": "import type { AST } from 'svelte-eslint-parser';\nimport type { TSESTree } from '@typescript-eslint/types';\ntype AnyToken"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/indent-helpers/commons.ts",
    "chars": 3289,
    "preview": "import type { ASTNode, SourceCode } from '../../types.js';\nimport type { AST } from 'svelte-eslint-parser';\nimport { isO"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/indent-helpers/es.ts",
    "chars": 34152,
    "preview": "import type { AST } from 'svelte-eslint-parser';\nimport type { TSESTree } from '@typescript-eslint/types';\nimport type {"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/indent-helpers/index.ts",
    "chars": 7883,
    "preview": "import type { AST } from 'svelte-eslint-parser';\nimport type { ASTNode, RuleContext, RuleListener } from '../../types.js"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/indent-helpers/offset-context.ts",
    "chars": 7919,
    "preview": "import type { ASTNode, SourceCode } from '../../types.js';\nimport { isNotWhitespace } from './ast.js';\nimport type { Any"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/indent-helpers/svelte.ts",
    "chars": 18957,
    "preview": "import type { AST } from 'svelte-eslint-parser';\nimport type { ASTNode } from '../../types.js';\nimport type { SvelteNode"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/indent-helpers/ts.ts",
    "chars": 38932,
    "preview": "import type { AST } from 'svelte-eslint-parser';\nimport type { TSESTree } from '@typescript-eslint/types';\nimport {\n\tisC"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/indent.ts",
    "chars": 1343,
    "preview": "import { createRule } from '../utils/index.js';\nimport { defineVisitor } from './indent-helpers/index.js';\n\nexport defau"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/infinite-reactive-loop.ts",
    "chars": 11638,
    "preview": "import type { TSESTree } from '@typescript-eslint/types';\nimport type { AST } from 'svelte-eslint-parser';\nimport { Refe"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/max-attributes-per-line.ts",
    "chars": 2929,
    "preview": "import type { AST } from 'svelte-eslint-parser';\nimport { createRule } from '../utils/index.js';\n\n/**\n * Check whether t"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/max-lines-per-block.ts",
    "chars": 7806,
    "preview": "import type { AST } from 'svelte-eslint-parser';\nimport { Input } from 'postcss';\nimport tokenize from 'postcss/lib/toke"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/mustache-spacing.ts",
    "chars": 12224,
    "preview": "import type { AST } from 'svelte-eslint-parser';\nimport { isClosingBraceToken, isOpeningBraceToken } from '@eslint-commu"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/no-add-event-listener.ts",
    "chars": 1619,
    "preview": "import type { TSESTree } from '@typescript-eslint/types';\n\nimport { createRule } from '../utils/index.js';\nimport type {"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/no-at-debug-tags.ts",
    "chars": 676,
    "preview": "import { createRule } from '../utils/index.js';\n\nexport default createRule('no-at-debug-tags', {\n\tmeta: {\n\t\tdocs: {\n\t\t\td"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/no-at-html-tags.ts",
    "chars": 599,
    "preview": "import type { AST } from 'svelte-eslint-parser';\nimport { createRule } from '../utils/index.js';\n\nexport default createR"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/no-dom-manipulating.ts",
    "chars": 4684,
    "preview": "import type { AST } from 'svelte-eslint-parser';\nimport type { TSESTree } from '@typescript-eslint/types';\nimport { crea"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/no-dupe-else-if-blocks.ts",
    "chars": 4907,
    "preview": "import type { AST } from 'svelte-eslint-parser';\nimport type { TSESTree } from '@typescript-eslint/types';\nimport { crea"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/no-dupe-on-directives.ts",
    "chars": 2054,
    "preview": "import type { AST } from 'svelte-eslint-parser';\nimport type { TSESTree } from '@typescript-eslint/types';\nimport { crea"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/no-dupe-style-properties.ts",
    "chars": 2758,
    "preview": "import type { AST } from 'svelte-eslint-parser';\nimport { createRule } from '../utils/index.js';\nimport type { SvelteSty"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/no-dupe-use-directives.ts",
    "chars": 2104,
    "preview": "import type { AST } from 'svelte-eslint-parser';\nimport type { TSESTree } from '@typescript-eslint/types';\nimport { crea"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/no-dynamic-slot-name.ts",
    "chars": 2464,
    "preview": "import type { AST } from 'svelte-eslint-parser';\nimport type { TSESTree } from '@typescript-eslint/types';\nimport { crea"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/no-export-load-in-svelte-module-in-kit-pages.ts",
    "chars": 1390,
    "preview": "import type { TSESTree } from '@typescript-eslint/types';\nimport { createRule } from '../utils/index.js';\n\nexport defaul"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/no-extra-reactive-curlies.ts",
    "chars": 1583,
    "preview": "import type { TSESTree } from '@typescript-eslint/types';\nimport { createRule } from '../utils/index.js';\n\nexport defaul"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/no-goto-without-base.ts",
    "chars": 3941,
    "preview": "import type { TSESTree } from '@typescript-eslint/types';\nimport { createRule } from '../utils/index.js';\nimport { Refer"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/no-ignored-unsubscribe.ts",
    "chars": 809,
    "preview": "import type { TSESTree } from '@typescript-eslint/types';\nimport { createRule } from '../utils/index.js';\n\nexport defaul"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/no-immutable-reactive-statements.ts",
    "chars": 6353,
    "preview": "import type { AST } from 'svelte-eslint-parser';\nimport { createRule } from '../utils/index.js';\nimport type { Scope, Va"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/no-inline-styles.ts",
    "chars": 1409,
    "preview": "import { createRule } from '../utils/index.js';\n\nexport default createRule('no-inline-styles', {\n\tmeta: {\n\t\tdocs: {\n\t\t\td"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/no-inner-declarations.ts",
    "chars": 1020,
    "preview": "import { createRule } from '../utils/index.js';\nimport {\n\tbuildProxyListener,\n\tdefineWrapperListener,\n\tgetCoreRule,\n\tget"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/no-inspect.ts",
    "chars": 709,
    "preview": "import type { TSESTree } from '@typescript-eslint/types';\n\nimport { createRule } from '../utils/index.js';\n\nexport defau"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/no-navigation-without-base.ts",
    "chars": 8758,
    "preview": "import type { TSESTree } from '@typescript-eslint/types';\nimport { createRule } from '../utils/index.js';\nimport { Refer"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/no-navigation-without-resolve.ts",
    "chars": 15456,
    "preview": "import type { TSESTree } from '@typescript-eslint/types';\n\nimport { createRule } from '../utils/index.js';\nimport { Refe"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/no-not-function-handler.ts",
    "chars": 2766,
    "preview": "import type { AST } from 'svelte-eslint-parser';\nimport type { TSESTree } from '@typescript-eslint/types';\nimport { crea"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/no-object-in-text-mustaches.ts",
    "chars": 1208,
    "preview": "import { createRule } from '../utils/index.js';\n\nconst PHRASES = {\n\tObjectExpression: 'object',\n\tArrayExpression: 'array"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/no-raw-special-elements.ts",
    "chars": 1221,
    "preview": "import type { AST } from 'svelte-eslint-parser';\nimport { createRule } from '../utils/index.js';\n\nconst INVALID_HTML_ELE"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/no-reactive-functions.ts",
    "chars": 1817,
    "preview": "import type { TSESTree } from '@typescript-eslint/types';\nimport type { AST } from 'svelte-eslint-parser';\nimport { crea"
  },
  {
    "path": "packages/eslint-plugin-svelte/src/rules/no-reactive-literals.ts",
    "chars": 1795,
    "preview": "import type { TSESTree } from '@typescript-eslint/types';\nimport { createRule } from '../utils/index.js';\n\nexport defaul"
  }
]

// ... and 2714 more files (download for full content)

About this extraction

This page contains the full source code of the sveltejs/eslint-plugin-svelte GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 2914 files (2.2 MB), approximately 793.8k tokens, and a symbol index with 717 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!