diff --git a/.eslint-doc-generatorrc.js b/.eslint-doc-generatorrc.js index 34497c6e7e..c1a2b28925 100644 --- a/.eslint-doc-generatorrc.js +++ b/.eslint-doc-generatorrc.js @@ -7,11 +7,7 @@ const END_HEADER_MARKER = ''; /** @type {import('eslint-doc-generator').GenerateOptions} */ module.exports = { - configEmoji: [ - ['recommended-gjs', '![gjs logo](/docs/svgs/gjs.svg)'], - ['recommended-gts', '![gts logo](/docs/svgs/gts.svg)'], - ['template-lint-migration', 'πŸ“‹'], - ], + configEmoji: [['template-lint-migration', 'πŸ“‹']], ruleDocSectionInclude: ['Examples'], ruleDocTitleFormat: 'prefix-name', ruleListSplit: 'meta.docs.category', diff --git a/README.md b/README.md index 2354e1f034..3aa1bd2167 100644 --- a/README.md +++ b/README.md @@ -61,6 +61,8 @@ gjs/gts support is provided by the [ember-eslint-parser](https://github.com/Null > [!NOTE] > if you import .gts files in .ts files, then `ember-eslint-parser` is required for .ts as well to enable typed linting +The `recommended` config covers gjs and gts. It scopes the rules for each with a `files` glob, so a separate config per file type is not necessary. You still need the parser block, because a parser cannot come from a shared config here. + ```js // .eslintrc.js module.exports = { @@ -86,7 +88,6 @@ module.exports = { 'eslint:recommended', 'plugin:@typescript-eslint/recommended', 'plugin:ember/recommended', - 'plugin:ember/recommended-gts', ], }, { @@ -96,7 +97,6 @@ module.exports = { extends: [ 'eslint:recommended', 'plugin:ember/recommended', - 'plugin:ember/recommended-gjs', ], }, { @@ -152,7 +152,9 @@ rules in templates can be disabled with eslint directives with mustache or html ## Migrating from ember-template-lint -If you are replacing `ember-template-lint` with this plugin, use the `template-lint-migration` config to get the equivalent set of rules: +If you are replacing `ember-template-lint` with this plugin, `recommended` already covers `.gjs`/`.gts` files: it enables every template rule from the `ember-template-lint` `recommended` preset that a strict-mode template can violate. + +For `.hbs` files, add the `template-lint-migration` config. It keeps the full parity set, including the loose-mode-only rules that `recommended` leaves out: ```js // eslint.config.js (flat config) @@ -172,7 +174,7 @@ export default [ ]; ``` -`template-lint-migration` mirrors the ember-template-lint `recommended` preset. +`template-lint-migration` mirrors the ember-template-lint `recommended` preset. Applying it after `recommended` is harmless for `.gjs`/`.gts` files, since both set the same rules to `error`. ### Linting `.hbs` files @@ -234,13 +236,11 @@ To disable a rule for an entire `.gjs`/`.gts` file, use a regular ESLint file-le -| | Name | -| :------------------------------ | :------------------------ | -| | `base` | -| βœ… | `recommended` | -| ![gjs logo](/docs/svgs/gjs.svg) | `recommended-gjs` | -| ![gts logo](/docs/svgs/gts.svg) | `recommended-gts` | -| πŸ“‹ | `template-lint-migration` | +| | Name | +| :- | :------------------------ | +| | `base` | +| βœ… | `recommended` | +| πŸ“‹ | `template-lint-migration` | @@ -250,128 +250,126 @@ To disable a rule for an entire `.gjs`/`.gts` file, use a regular ESLint file-le πŸ’Ό [Configurations](https://github.com/ember-cli/eslint-plugin-ember#-configurations) enabled in.\ βœ… Set in the `recommended` [configuration](https://github.com/ember-cli/eslint-plugin-ember#-configurations).\ -![gjs logo](/docs/svgs/gjs.svg) Set in the `recommended-gjs` [configuration](https://github.com/ember-cli/eslint-plugin-ember#-configurations).\ -![gts logo](/docs/svgs/gts.svg) Set in the `recommended-gts` [configuration](https://github.com/ember-cli/eslint-plugin-ember#-configurations).\ πŸ“‹ Set in the `template-lint-migration` [configuration](https://github.com/ember-cli/eslint-plugin-ember#-configurations).\ πŸ”§ Automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/user-guide/command-line-interface#--fix).\ πŸ’‘ Manually fixable by [editor suggestions](https://eslint.org/docs/latest/use/core-concepts#rule-suggestions). ### Accessibility -| NameΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  | Description | πŸ’Ό | πŸ”§ | πŸ’‘ | -| :--------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------- | :- | :- | :- | -| [template-link-href-attributes](docs/rules/template-link-href-attributes.md) | require href attribute on link elements | πŸ“‹ | | | -| [template-no-abstract-roles](docs/rules/template-no-abstract-roles.md) | disallow abstract ARIA roles | πŸ“‹ | | | -| [template-no-accesskey-attribute](docs/rules/template-no-accesskey-attribute.md) | disallow accesskey attribute | πŸ“‹ | πŸ”§ | | -| [template-no-aria-hidden-body](docs/rules/template-no-aria-hidden-body.md) | disallow aria-hidden on body element | πŸ“‹ | πŸ”§ | | -| [template-no-aria-unsupported-elements](docs/rules/template-no-aria-unsupported-elements.md) | disallow ARIA roles, states, and properties on elements that do not support them | πŸ“‹ | | | -| [template-no-autofocus-attribute](docs/rules/template-no-autofocus-attribute.md) | disallow autofocus attribute | πŸ“‹ | πŸ”§ | | -| [template-no-duplicate-landmark-elements](docs/rules/template-no-duplicate-landmark-elements.md) | disallow duplicate landmark elements without unique labels | πŸ“‹ | | | -| [template-no-empty-headings](docs/rules/template-no-empty-headings.md) | disallow empty heading elements | πŸ“‹ | | | -| [template-no-heading-inside-button](docs/rules/template-no-heading-inside-button.md) | disallow heading elements inside button elements | πŸ“‹ | | | -| [template-no-invalid-aria-attributes](docs/rules/template-no-invalid-aria-attributes.md) | disallow invalid aria-* attributes | πŸ“‹ | | | -| [template-no-invalid-interactive](docs/rules/template-no-invalid-interactive.md) | disallow non-interactive elements with interactive handlers | πŸ“‹ | | | -| [template-no-invalid-link-text](docs/rules/template-no-invalid-link-text.md) | disallow invalid or uninformative link text content | πŸ“‹ | | | -| [template-no-invalid-link-title](docs/rules/template-no-invalid-link-title.md) | disallow invalid title attributes on link elements | πŸ“‹ | | | -| [template-no-invalid-role](docs/rules/template-no-invalid-role.md) | disallow invalid ARIA roles | πŸ“‹ | | | -| [template-no-nested-interactive](docs/rules/template-no-nested-interactive.md) | disallow nested interactive elements | πŸ“‹ | | | -| [template-no-nested-landmark](docs/rules/template-no-nested-landmark.md) | disallow nested landmark elements | πŸ“‹ | | | -| [template-no-pointer-down-event-binding](docs/rules/template-no-pointer-down-event-binding.md) | disallow pointer down event bindings | πŸ“‹ | | | -| [template-no-positive-tabindex](docs/rules/template-no-positive-tabindex.md) | disallow positive tabindex values | πŸ“‹ | | | -| [template-no-redundant-role](docs/rules/template-no-redundant-role.md) | disallow redundant role attributes | πŸ“‹ | πŸ”§ | | -| [template-no-unsupported-role-attributes](docs/rules/template-no-unsupported-role-attributes.md) | disallow ARIA attributes that are not supported by the element role | πŸ“‹ | πŸ”§ | | -| [template-no-whitespace-within-word](docs/rules/template-no-whitespace-within-word.md) | disallow excess whitespace within words (e.g. "W e l c o m e") | πŸ“‹ | | | -| [template-require-aria-activedescendant-tabindex](docs/rules/template-require-aria-activedescendant-tabindex.md) | require non-interactive elements with aria-activedescendant to have tabindex | πŸ“‹ | πŸ”§ | | -| [template-require-context-role](docs/rules/template-require-context-role.md) | require ARIA roles to be used in appropriate context | πŸ“‹ | | | -| [template-require-iframe-title](docs/rules/template-require-iframe-title.md) | require iframe elements to have a title attribute | πŸ“‹ | | | -| [template-require-input-label](docs/rules/template-require-input-label.md) | require label for form input elements | πŸ“‹ | | | -| [template-require-lang-attribute](docs/rules/template-require-lang-attribute.md) | require lang attribute on html element | πŸ“‹ | | | -| [template-require-mandatory-role-attributes](docs/rules/template-require-mandatory-role-attributes.md) | require mandatory ARIA attributes for ARIA roles | πŸ“‹ | | | -| [template-require-media-caption](docs/rules/template-require-media-caption.md) | require captions for audio and video elements | πŸ“‹ | | | -| [template-require-presentational-children](docs/rules/template-require-presentational-children.md) | require presentational elements to only contain presentational children | πŸ“‹ | | | -| [template-require-valid-alt-text](docs/rules/template-require-valid-alt-text.md) | require valid alt text for images and other elements | πŸ“‹ | | | -| [template-require-valid-form-groups](docs/rules/template-require-valid-form-groups.md) | require grouped form controls to have fieldset/legend or WAI-ARIA group labeling | | | | -| [template-table-groups](docs/rules/template-table-groups.md) | require table elements to use table grouping elements | πŸ“‹ | | | +| NameΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  | Description | πŸ’Ό | πŸ”§ | πŸ’‘ | +| :--------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------- | :--- | :- | :- | +| [template-link-href-attributes](docs/rules/template-link-href-attributes.md) | require href attribute on link elements | βœ… πŸ“‹ | | | +| [template-no-abstract-roles](docs/rules/template-no-abstract-roles.md) | disallow abstract ARIA roles | βœ… πŸ“‹ | | | +| [template-no-accesskey-attribute](docs/rules/template-no-accesskey-attribute.md) | disallow accesskey attribute | βœ… πŸ“‹ | πŸ”§ | | +| [template-no-aria-hidden-body](docs/rules/template-no-aria-hidden-body.md) | disallow aria-hidden on body element | βœ… πŸ“‹ | πŸ”§ | | +| [template-no-aria-unsupported-elements](docs/rules/template-no-aria-unsupported-elements.md) | disallow ARIA roles, states, and properties on elements that do not support them | βœ… πŸ“‹ | | | +| [template-no-autofocus-attribute](docs/rules/template-no-autofocus-attribute.md) | disallow autofocus attribute | βœ… πŸ“‹ | πŸ”§ | | +| [template-no-duplicate-landmark-elements](docs/rules/template-no-duplicate-landmark-elements.md) | disallow duplicate landmark elements without unique labels | βœ… πŸ“‹ | | | +| [template-no-empty-headings](docs/rules/template-no-empty-headings.md) | disallow empty heading elements | βœ… πŸ“‹ | | | +| [template-no-heading-inside-button](docs/rules/template-no-heading-inside-button.md) | disallow heading elements inside button elements | βœ… πŸ“‹ | | | +| [template-no-invalid-aria-attributes](docs/rules/template-no-invalid-aria-attributes.md) | disallow invalid aria-* attributes | βœ… πŸ“‹ | | | +| [template-no-invalid-interactive](docs/rules/template-no-invalid-interactive.md) | disallow non-interactive elements with interactive handlers | βœ… πŸ“‹ | | | +| [template-no-invalid-link-text](docs/rules/template-no-invalid-link-text.md) | disallow invalid or uninformative link text content | βœ… πŸ“‹ | | | +| [template-no-invalid-link-title](docs/rules/template-no-invalid-link-title.md) | disallow invalid title attributes on link elements | βœ… πŸ“‹ | | | +| [template-no-invalid-role](docs/rules/template-no-invalid-role.md) | disallow invalid ARIA roles | βœ… πŸ“‹ | | | +| [template-no-nested-interactive](docs/rules/template-no-nested-interactive.md) | disallow nested interactive elements | βœ… πŸ“‹ | | | +| [template-no-nested-landmark](docs/rules/template-no-nested-landmark.md) | disallow nested landmark elements | βœ… πŸ“‹ | | | +| [template-no-pointer-down-event-binding](docs/rules/template-no-pointer-down-event-binding.md) | disallow pointer down event bindings | βœ… πŸ“‹ | | | +| [template-no-positive-tabindex](docs/rules/template-no-positive-tabindex.md) | disallow positive tabindex values | βœ… πŸ“‹ | | | +| [template-no-redundant-role](docs/rules/template-no-redundant-role.md) | disallow redundant role attributes | βœ… πŸ“‹ | πŸ”§ | | +| [template-no-unsupported-role-attributes](docs/rules/template-no-unsupported-role-attributes.md) | disallow ARIA attributes that are not supported by the element role | βœ… πŸ“‹ | πŸ”§ | | +| [template-no-whitespace-within-word](docs/rules/template-no-whitespace-within-word.md) | disallow excess whitespace within words (e.g. "W e l c o m e") | βœ… πŸ“‹ | | | +| [template-require-aria-activedescendant-tabindex](docs/rules/template-require-aria-activedescendant-tabindex.md) | require non-interactive elements with aria-activedescendant to have tabindex | βœ… πŸ“‹ | πŸ”§ | | +| [template-require-context-role](docs/rules/template-require-context-role.md) | require ARIA roles to be used in appropriate context | βœ… πŸ“‹ | | | +| [template-require-iframe-title](docs/rules/template-require-iframe-title.md) | require iframe elements to have a title attribute | βœ… πŸ“‹ | | | +| [template-require-input-label](docs/rules/template-require-input-label.md) | require label for form input elements | βœ… πŸ“‹ | | | +| [template-require-lang-attribute](docs/rules/template-require-lang-attribute.md) | require lang attribute on html element | βœ… πŸ“‹ | | | +| [template-require-mandatory-role-attributes](docs/rules/template-require-mandatory-role-attributes.md) | require mandatory ARIA attributes for ARIA roles | βœ… πŸ“‹ | | | +| [template-require-media-caption](docs/rules/template-require-media-caption.md) | require captions for audio and video elements | βœ… πŸ“‹ | | | +| [template-require-presentational-children](docs/rules/template-require-presentational-children.md) | require presentational elements to only contain presentational children | βœ… πŸ“‹ | | | +| [template-require-valid-alt-text](docs/rules/template-require-valid-alt-text.md) | require valid alt text for images and other elements | βœ… πŸ“‹ | | | +| [template-require-valid-form-groups](docs/rules/template-require-valid-form-groups.md) | require grouped form controls to have fieldset/legend or WAI-ARIA group labeling | | | | +| [template-table-groups](docs/rules/template-table-groups.md) | require table elements to use table grouping elements | βœ… πŸ“‹ | | | ### Best Practices -| NameΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  | Description | πŸ’Ό | πŸ”§ | πŸ’‘ | -| :----------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------- | :- | :- | :- | -| [no-modifier-without-element-usage](docs/rules/no-modifier-without-element-usage.md) | disallow modifiers that never use their element | | | | -| [template-builtin-component-arguments](docs/rules/template-builtin-component-arguments.md) | disallow setting certain attributes on builtin components | πŸ“‹ | | | -| [template-no-action-modifiers](docs/rules/template-no-action-modifiers.md) | disallow usage of {{action}} modifiers | | πŸ”§ | | -| [template-no-action-on-submit-button](docs/rules/template-no-action-on-submit-button.md) | disallow action attribute on submit buttons | πŸ“‹ | | | -| [template-no-args-paths](docs/rules/template-no-args-paths.md) | disallow args.foo paths in templates, use @foo instead | πŸ“‹ | πŸ”§ | | -| [template-no-arguments-for-html-elements](docs/rules/template-no-arguments-for-html-elements.md) | disallow @arguments on HTML elements | πŸ“‹ | | | -| [template-no-array-prototype-extensions](docs/rules/template-no-array-prototype-extensions.md) | disallow usage of Ember Array prototype extensions | πŸ“‹ | πŸ”§ | | -| [template-no-at-ember-render-modifiers](docs/rules/template-no-at-ember-render-modifiers.md) | disallow usage of @ember/render-modifiers | πŸ“‹ | | | -| [template-no-bare-strings](docs/rules/template-no-bare-strings.md) | disallow bare strings in templates (require translation/localization) | | | | -| [template-no-bare-yield](docs/rules/template-no-bare-yield.md) | disallow templates whose only meaningful content is a bare {{yield}} | | | | -| [template-no-block-params-for-html-elements](docs/rules/template-no-block-params-for-html-elements.md) | disallow block params on HTML elements | πŸ“‹ | | | -| [template-no-builtin-form-components](docs/rules/template-no-builtin-form-components.md) | disallow usage of built-in form components | πŸ“‹ | | | -| [template-no-capital-arguments](docs/rules/template-no-capital-arguments.md) | disallow capital arguments (use lowercase @arg instead of @Arg) | πŸ“‹ | | | -| [template-no-chained-this](docs/rules/template-no-chained-this.md) | disallow redundant `this.this` in templates | | πŸ”§ | | -| [template-no-class-bindings](docs/rules/template-no-class-bindings.md) | disallow passing classBinding or classNameBindings as arguments in templates | πŸ“‹ | | | -| [template-no-curly-component-invocation](docs/rules/template-no-curly-component-invocation.md) | disallow curly component invocation, use angle bracket syntax instead | πŸ“‹ | πŸ”§ | | -| [template-no-debugger](docs/rules/template-no-debugger.md) | disallow {{debugger}} in templates | πŸ“‹ | | | -| [template-no-duplicate-attributes](docs/rules/template-no-duplicate-attributes.md) | disallow duplicate attribute names in templates | πŸ“‹ | πŸ”§ | | -| [template-no-duplicate-id](docs/rules/template-no-duplicate-id.md) | disallow duplicate id attributes | πŸ“‹ | | | -| [template-no-dynamic-subexpression-invocations](docs/rules/template-no-dynamic-subexpression-invocations.md) | disallow dynamic subexpression invocations | | | | -| [template-no-element-event-actions](docs/rules/template-no-element-event-actions.md) | disallow element event actions (use {{on}} modifier instead) | | | | -| [template-no-forbidden-elements](docs/rules/template-no-forbidden-elements.md) | disallow specific HTML elements | πŸ“‹ | | | -| [template-no-html-comments](docs/rules/template-no-html-comments.md) | disallow HTML comments in templates | πŸ“‹ | πŸ”§ | | -| [template-no-implicit-this](docs/rules/template-no-implicit-this.md) | require explicit `this` in property access | πŸ“‹ | | | -| [template-no-index-component-invocation](docs/rules/template-no-index-component-invocation.md) | disallow index component invocations | πŸ“‹ | | | -| [template-no-inline-event-handlers](docs/rules/template-no-inline-event-handlers.md) | disallow DOM event handler attributes | | | | -| [template-no-inline-linkto](docs/rules/template-no-inline-linkto.md) | disallow inline form of LinkTo component | | πŸ”§ | | -| [template-no-inline-styles](docs/rules/template-no-inline-styles.md) | disallow inline styles | πŸ“‹ | | | -| [template-no-input-block](docs/rules/template-no-input-block.md) | disallow block usage of {{input}} helper | πŸ“‹ | | | -| [template-no-input-tagname](docs/rules/template-no-input-tagname.md) | disallow tagName attribute on {{input}} helper | πŸ“‹ | | | -| [template-no-invalid-meta](docs/rules/template-no-invalid-meta.md) | disallow invalid meta tags | πŸ“‹ | | | -| [template-no-log](docs/rules/template-no-log.md) | disallow {{log}} in templates | πŸ“‹ | | | -| [template-no-model-argument-in-route-templates](docs/rules/template-no-model-argument-in-route-templates.md) | disallow @model argument in route templates | | πŸ”§ | | -| [template-no-multiple-empty-lines](docs/rules/template-no-multiple-empty-lines.md) | disallow multiple consecutive empty lines in templates | | πŸ”§ | | -| [template-no-mut-helper](docs/rules/template-no-mut-helper.md) | disallow usage of (mut) helper | | | | -| [template-no-negated-condition](docs/rules/template-no-negated-condition.md) | disallow negated conditions in if/unless | πŸ“‹ | πŸ”§ | | -| [template-no-nested-splattributes](docs/rules/template-no-nested-splattributes.md) | disallow nested ...attributes usage | πŸ“‹ | | | -| [template-no-obscure-array-access](docs/rules/template-no-obscure-array-access.md) | disallow obscure array access patterns like `objectPath.@each.property` | πŸ“‹ | πŸ”§ | | -| [template-no-obsolete-elements](docs/rules/template-no-obsolete-elements.md) | disallow obsolete HTML elements | πŸ“‹ | | | -| [template-no-outlet-outside-routes](docs/rules/template-no-outlet-outside-routes.md) | disallow {{outlet}} outside of route templates | πŸ“‹ | | | -| [template-no-page-title-component](docs/rules/template-no-page-title-component.md) | disallow usage of ember-page-title component | | | | -| [template-no-passed-in-event-handlers](docs/rules/template-no-passed-in-event-handlers.md) | disallow passing event handlers directly as component arguments | πŸ“‹ | | | -| [template-no-positional-data-test-selectors](docs/rules/template-no-positional-data-test-selectors.md) | disallow positional data-test-* params in curly invocations | πŸ“‹ | πŸ”§ | | -| [template-no-potential-path-strings](docs/rules/template-no-potential-path-strings.md) | disallow potential path strings in attribute values | πŸ“‹ | | | -| [template-no-redundant-fn](docs/rules/template-no-redundant-fn.md) | disallow unnecessary usage of (fn) helper | πŸ“‹ | πŸ”§ | | -| [template-no-restricted-invocations](docs/rules/template-no-restricted-invocations.md) | disallow certain components, helpers or modifiers from being used | | | | -| [template-no-splattributes-with-class](docs/rules/template-no-splattributes-with-class.md) | disallow splattributes with class attribute | | | | -| [template-no-template-lint-directives](docs/rules/template-no-template-lint-directives.md) | disallow `{{! template-lint-* }}` directives (use the `{{! eslint-* }}` equivalents) | πŸ“‹ | πŸ”§ | | -| [template-no-this-in-template-only-components](docs/rules/template-no-this-in-template-only-components.md) | disallow this in template-only components | | πŸ”§ | | -| [template-no-trailing-spaces](docs/rules/template-no-trailing-spaces.md) | disallow trailing whitespace at the end of lines in templates | | πŸ”§ | | -| [template-no-unavailable-this](docs/rules/template-no-unavailable-this.md) | disallow `this` in templates that are not inside a class or function | | | | -| [template-no-unnecessary-component-helper](docs/rules/template-no-unnecessary-component-helper.md) | disallow unnecessary component helper | πŸ“‹ | πŸ”§ | | -| [template-no-unnecessary-concat](docs/rules/template-no-unnecessary-concat.md) | disallow unnecessary string concatenation | | πŸ”§ | | -| [template-no-unnecessary-curly-parens](docs/rules/template-no-unnecessary-curly-parens.md) | disallow unnecessary parentheses enclosing statements in curlies | πŸ“‹ | πŸ”§ | | -| [template-no-unused-block-params](docs/rules/template-no-unused-block-params.md) | disallow unused block parameters in templates | πŸ“‹ | | | -| [template-no-valueless-arguments](docs/rules/template-no-valueless-arguments.md) | disallow valueless named arguments | πŸ“‹ | | | -| [template-no-whitespace-for-layout](docs/rules/template-no-whitespace-for-layout.md) | disallow using whitespace for layout purposes | πŸ“‹ | | | -| [template-no-yield-block-params-to-else-inverse](docs/rules/template-no-yield-block-params-to-else-inverse.md) | disallow yielding block params to else or inverse block | | | | -| [template-no-yield-only](docs/rules/template-no-yield-only.md) | disallow components that only yield | πŸ“‹ | | | -| [template-no-yield-to-default](docs/rules/template-no-yield-to-default.md) | disallow yield to default block | πŸ“‹ | | | -| [template-require-button-type](docs/rules/template-require-button-type.md) | require button elements to have a valid type attribute | πŸ“‹ | πŸ”§ | | -| [template-require-each-key](docs/rules/template-require-each-key.md) | require key attribute in {{#each}} loops | | πŸ”§ | | -| [template-require-form-method](docs/rules/template-require-form-method.md) | require form method attribute | | πŸ”§ | | -| [template-require-has-block-helper](docs/rules/template-require-has-block-helper.md) | require (has-block) helper usage instead of hasBlock property | πŸ“‹ | πŸ”§ | | -| [template-require-iframe-src-attribute](docs/rules/template-require-iframe-src-attribute.md) | require iframe elements to have src attribute | | πŸ”§ | | -| [template-require-input-type](docs/rules/template-require-input-type.md) | require input elements to have a valid type attribute | | πŸ”§ | | -| [template-require-splattributes](docs/rules/template-require-splattributes.md) | require splattributes usage in component templates | | | | -| [template-require-strict-mode](docs/rules/template-require-strict-mode.md) | require templates to be in strict mode | | | | -| [template-require-valid-named-block-naming-format](docs/rules/template-require-valid-named-block-naming-format.md) | require valid named block naming format | πŸ“‹ | πŸ”§ | | -| [template-self-closing-void-elements](docs/rules/template-self-closing-void-elements.md) | require self-closing on void elements | | πŸ”§ | | -| [template-simple-modifiers](docs/rules/template-simple-modifiers.md) | require simple modifier syntax | πŸ“‹ | | | -| [template-simple-unless](docs/rules/template-simple-unless.md) | require simple conditions in unless blocks | πŸ“‹ | πŸ”§ | | -| [template-sort-invocations](docs/rules/template-sort-invocations.md) | require sorted attributes and modifiers | | πŸ”§ | | -| [template-splat-attributes-only](docs/rules/template-splat-attributes-only.md) | disallow ...spread other than ...attributes | πŸ“‹ | | | -| [template-style-concatenation](docs/rules/template-style-concatenation.md) | disallow string concatenation in inline styles | πŸ“‹ | | | +| NameΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  | Description | πŸ’Ό | πŸ”§ | πŸ’‘ | +| :----------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------- | :--- | :- | :- | +| [no-modifier-without-element-usage](docs/rules/no-modifier-without-element-usage.md) | disallow modifiers that never use their element | βœ… | | | +| [template-builtin-component-arguments](docs/rules/template-builtin-component-arguments.md) | disallow setting certain attributes on builtin components | βœ… πŸ“‹ | | | +| [template-no-action-modifiers](docs/rules/template-no-action-modifiers.md) | disallow usage of {{action}} modifiers | | πŸ”§ | | +| [template-no-action-on-submit-button](docs/rules/template-no-action-on-submit-button.md) | disallow action attribute on submit buttons | βœ… πŸ“‹ | | | +| [template-no-args-paths](docs/rules/template-no-args-paths.md) | disallow args.foo paths in templates, use @foo instead | βœ… πŸ“‹ | πŸ”§ | | +| [template-no-arguments-for-html-elements](docs/rules/template-no-arguments-for-html-elements.md) | disallow @arguments on HTML elements | βœ… πŸ“‹ | | | +| [template-no-array-prototype-extensions](docs/rules/template-no-array-prototype-extensions.md) | disallow usage of Ember Array prototype extensions | βœ… πŸ“‹ | πŸ”§ | | +| [template-no-at-ember-render-modifiers](docs/rules/template-no-at-ember-render-modifiers.md) | disallow usage of @ember/render-modifiers | βœ… πŸ“‹ | | | +| [template-no-bare-strings](docs/rules/template-no-bare-strings.md) | disallow bare strings in templates (require translation/localization) | | | | +| [template-no-bare-yield](docs/rules/template-no-bare-yield.md) | disallow templates whose only meaningful content is a bare {{yield}} | | | | +| [template-no-block-params-for-html-elements](docs/rules/template-no-block-params-for-html-elements.md) | disallow block params on HTML elements | βœ… πŸ“‹ | | | +| [template-no-builtin-form-components](docs/rules/template-no-builtin-form-components.md) | disallow usage of built-in form components | βœ… πŸ“‹ | | | +| [template-no-capital-arguments](docs/rules/template-no-capital-arguments.md) | disallow capital arguments (use lowercase @arg instead of @Arg) | βœ… πŸ“‹ | | | +| [template-no-chained-this](docs/rules/template-no-chained-this.md) | disallow redundant `this.this` in templates | | πŸ”§ | | +| [template-no-class-bindings](docs/rules/template-no-class-bindings.md) | disallow passing classBinding or classNameBindings as arguments in templates | βœ… πŸ“‹ | | | +| [template-no-curly-component-invocation](docs/rules/template-no-curly-component-invocation.md) | disallow curly component invocation, use angle bracket syntax instead | πŸ“‹ | πŸ”§ | | +| [template-no-debugger](docs/rules/template-no-debugger.md) | disallow {{debugger}} in templates | βœ… πŸ“‹ | | | +| [template-no-duplicate-attributes](docs/rules/template-no-duplicate-attributes.md) | disallow duplicate attribute names in templates | βœ… πŸ“‹ | πŸ”§ | | +| [template-no-duplicate-id](docs/rules/template-no-duplicate-id.md) | disallow duplicate id attributes | βœ… πŸ“‹ | | | +| [template-no-dynamic-subexpression-invocations](docs/rules/template-no-dynamic-subexpression-invocations.md) | disallow dynamic subexpression invocations | | | | +| [template-no-element-event-actions](docs/rules/template-no-element-event-actions.md) | disallow element event actions (use {{on}} modifier instead) | | | | +| [template-no-forbidden-elements](docs/rules/template-no-forbidden-elements.md) | disallow specific HTML elements | βœ… πŸ“‹ | | | +| [template-no-html-comments](docs/rules/template-no-html-comments.md) | disallow HTML comments in templates | βœ… πŸ“‹ | πŸ”§ | | +| [template-no-implicit-this](docs/rules/template-no-implicit-this.md) | require explicit `this` in property access | πŸ“‹ | | | +| [template-no-index-component-invocation](docs/rules/template-no-index-component-invocation.md) | disallow index component invocations | βœ… πŸ“‹ | | | +| [template-no-inline-event-handlers](docs/rules/template-no-inline-event-handlers.md) | disallow DOM event handler attributes | | | | +| [template-no-inline-linkto](docs/rules/template-no-inline-linkto.md) | disallow inline form of LinkTo component | | πŸ”§ | | +| [template-no-inline-styles](docs/rules/template-no-inline-styles.md) | disallow inline styles | βœ… πŸ“‹ | | | +| [template-no-input-block](docs/rules/template-no-input-block.md) | disallow block usage of {{input}} helper | πŸ“‹ | | | +| [template-no-input-tagname](docs/rules/template-no-input-tagname.md) | disallow tagName attribute on {{input}} helper | πŸ“‹ | | | +| [template-no-invalid-meta](docs/rules/template-no-invalid-meta.md) | disallow invalid meta tags | βœ… πŸ“‹ | | | +| [template-no-log](docs/rules/template-no-log.md) | disallow {{log}} in templates | βœ… πŸ“‹ | | | +| [template-no-model-argument-in-route-templates](docs/rules/template-no-model-argument-in-route-templates.md) | disallow @model argument in route templates | | πŸ”§ | | +| [template-no-multiple-empty-lines](docs/rules/template-no-multiple-empty-lines.md) | disallow multiple consecutive empty lines in templates | | πŸ”§ | | +| [template-no-mut-helper](docs/rules/template-no-mut-helper.md) | disallow usage of (mut) helper | | | | +| [template-no-negated-condition](docs/rules/template-no-negated-condition.md) | disallow negated conditions in if/unless | βœ… πŸ“‹ | πŸ”§ | | +| [template-no-nested-splattributes](docs/rules/template-no-nested-splattributes.md) | disallow nested ...attributes usage | βœ… πŸ“‹ | | | +| [template-no-obscure-array-access](docs/rules/template-no-obscure-array-access.md) | disallow obscure array access patterns like `objectPath.@each.property` | βœ… πŸ“‹ | πŸ”§ | | +| [template-no-obsolete-elements](docs/rules/template-no-obsolete-elements.md) | disallow obsolete HTML elements | βœ… πŸ“‹ | | | +| [template-no-outlet-outside-routes](docs/rules/template-no-outlet-outside-routes.md) | disallow {{outlet}} outside of route templates | βœ… πŸ“‹ | | | +| [template-no-page-title-component](docs/rules/template-no-page-title-component.md) | disallow usage of ember-page-title component | | | | +| [template-no-passed-in-event-handlers](docs/rules/template-no-passed-in-event-handlers.md) | disallow passing event handlers directly as component arguments | βœ… πŸ“‹ | | | +| [template-no-positional-data-test-selectors](docs/rules/template-no-positional-data-test-selectors.md) | disallow positional data-test-* params in curly invocations | βœ… πŸ“‹ | πŸ”§ | | +| [template-no-potential-path-strings](docs/rules/template-no-potential-path-strings.md) | disallow potential path strings in attribute values | βœ… πŸ“‹ | | | +| [template-no-redundant-fn](docs/rules/template-no-redundant-fn.md) | disallow unnecessary usage of (fn) helper | βœ… πŸ“‹ | πŸ”§ | | +| [template-no-restricted-invocations](docs/rules/template-no-restricted-invocations.md) | disallow certain components, helpers or modifiers from being used | | | | +| [template-no-splattributes-with-class](docs/rules/template-no-splattributes-with-class.md) | disallow splattributes with class attribute | | | | +| [template-no-template-lint-directives](docs/rules/template-no-template-lint-directives.md) | disallow `{{! template-lint-* }}` directives (use the `{{! eslint-* }}` equivalents) | βœ… πŸ“‹ | πŸ”§ | | +| [template-no-this-in-template-only-components](docs/rules/template-no-this-in-template-only-components.md) | disallow this in template-only components | | πŸ”§ | | +| [template-no-trailing-spaces](docs/rules/template-no-trailing-spaces.md) | disallow trailing whitespace at the end of lines in templates | | πŸ”§ | | +| [template-no-unavailable-this](docs/rules/template-no-unavailable-this.md) | disallow `this` in templates that are not inside a class or function | | | | +| [template-no-unnecessary-component-helper](docs/rules/template-no-unnecessary-component-helper.md) | disallow unnecessary component helper | βœ… πŸ“‹ | πŸ”§ | | +| [template-no-unnecessary-concat](docs/rules/template-no-unnecessary-concat.md) | disallow unnecessary string concatenation | | πŸ”§ | | +| [template-no-unnecessary-curly-parens](docs/rules/template-no-unnecessary-curly-parens.md) | disallow unnecessary parentheses enclosing statements in curlies | βœ… πŸ“‹ | πŸ”§ | | +| [template-no-unused-block-params](docs/rules/template-no-unused-block-params.md) | disallow unused block parameters in templates | βœ… πŸ“‹ | | | +| [template-no-valueless-arguments](docs/rules/template-no-valueless-arguments.md) | disallow valueless named arguments | βœ… πŸ“‹ | | | +| [template-no-whitespace-for-layout](docs/rules/template-no-whitespace-for-layout.md) | disallow using whitespace for layout purposes | βœ… πŸ“‹ | | | +| [template-no-yield-block-params-to-else-inverse](docs/rules/template-no-yield-block-params-to-else-inverse.md) | disallow yielding block params to else or inverse block | | | | +| [template-no-yield-only](docs/rules/template-no-yield-only.md) | disallow components that only yield | βœ… πŸ“‹ | | | +| [template-no-yield-to-default](docs/rules/template-no-yield-to-default.md) | disallow yield to default block | βœ… πŸ“‹ | | | +| [template-require-button-type](docs/rules/template-require-button-type.md) | require button elements to have a valid type attribute | βœ… πŸ“‹ | πŸ”§ | | +| [template-require-each-key](docs/rules/template-require-each-key.md) | require key attribute in {{#each}} loops | | πŸ”§ | | +| [template-require-form-method](docs/rules/template-require-form-method.md) | require form method attribute | | πŸ”§ | | +| [template-require-has-block-helper](docs/rules/template-require-has-block-helper.md) | require (has-block) helper usage instead of hasBlock property | βœ… πŸ“‹ | πŸ”§ | | +| [template-require-iframe-src-attribute](docs/rules/template-require-iframe-src-attribute.md) | require iframe elements to have src attribute | | πŸ”§ | | +| [template-require-input-type](docs/rules/template-require-input-type.md) | require input elements to have a valid type attribute | | πŸ”§ | | +| [template-require-splattributes](docs/rules/template-require-splattributes.md) | require splattributes usage in component templates | | | | +| [template-require-strict-mode](docs/rules/template-require-strict-mode.md) | require templates to be in strict mode | | | | +| [template-require-valid-named-block-naming-format](docs/rules/template-require-valid-named-block-naming-format.md) | require valid named block naming format | βœ… πŸ“‹ | πŸ”§ | | +| [template-self-closing-void-elements](docs/rules/template-self-closing-void-elements.md) | require self-closing on void elements | | πŸ”§ | | +| [template-simple-modifiers](docs/rules/template-simple-modifiers.md) | require simple modifier syntax | βœ… πŸ“‹ | | | +| [template-simple-unless](docs/rules/template-simple-unless.md) | require simple conditions in unless blocks | βœ… πŸ“‹ | πŸ”§ | | +| [template-sort-invocations](docs/rules/template-sort-invocations.md) | require sorted attributes and modifiers | | πŸ”§ | | +| [template-splat-attributes-only](docs/rules/template-splat-attributes-only.md) | disallow ...spread other than ...attributes | βœ… πŸ“‹ | | | +| [template-style-concatenation](docs/rules/template-style-concatenation.md) | disallow string concatenation in inline styles | βœ… πŸ“‹ | | | ### Components @@ -379,7 +377,7 @@ To disable a rule for an entire `.gjs`/`.gts` file, use a regular ESLint file-le | :------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------- | :- | :- | :- | | [no-attrs-in-components](docs/rules/no-attrs-in-components.md) | disallow usage of `this.attrs` in components | βœ… | | | | [no-attrs-snapshot](docs/rules/no-attrs-snapshot.md) | disallow use of attrs snapshot in the `didReceiveAttrs` and `didUpdateAttrs` component hooks | βœ… | | | -| [no-builtin-form-components](docs/rules/no-builtin-form-components.md) | disallow usage of built-in form components | | | | +| [no-builtin-form-components](docs/rules/no-builtin-form-components.md) | disallow usage of built-in form components | βœ… | | | | [no-classic-components](docs/rules/no-classic-components.md) | enforce using Glimmer components | βœ… | | | | [no-component-lifecycle-hooks](docs/rules/no-component-lifecycle-hooks.md) | disallow usage of "classic" ember component lifecycle hooks. Render modifiers or custom functional modifiers should be used instead. | βœ… | | | | [no-on-calls-in-components](docs/rules/no-on-calls-in-components.md) | disallow usage of `on` to call lifecycle hooks in components | βœ… | | | @@ -393,13 +391,13 @@ To disable a rule for an entire `.gjs`/`.gts` file, use a regular ESLint file-le | [no-arrow-function-computed-properties](docs/rules/no-arrow-function-computed-properties.md) | disallow arrow functions in computed properties | βœ… | | | | [no-assignment-of-untracked-properties-used-in-tracking-contexts](docs/rules/no-assignment-of-untracked-properties-used-in-tracking-contexts.md) | disallow assignment of untracked properties that are used as computed property dependencies | βœ… | πŸ”§ | | | [no-computed-properties-in-native-classes](docs/rules/no-computed-properties-in-native-classes.md) | disallow using computed properties in native classes | βœ… | | | -| [no-deeply-nested-dependent-keys-with-each](docs/rules/no-deeply-nested-dependent-keys-with-each.md) | disallow usage of deeply-nested computed property dependent keys with `@each` | βœ… | | | +| [no-deeply-nested-dependent-keys-with-each](docs/rules/no-deeply-nested-dependent-keys-with-each.md) | disallow usage of deeply-nested computed property dependent keys with `@each` | | | | | [no-duplicate-dependent-keys](docs/rules/no-duplicate-dependent-keys.md) | disallow repeating computed property dependent keys | βœ… | πŸ”§ | | | [no-incorrect-computed-macros](docs/rules/no-incorrect-computed-macros.md) | disallow incorrect usage of computed property macros | βœ… | πŸ”§ | | | [no-invalid-dependent-keys](docs/rules/no-invalid-dependent-keys.md) | disallow invalid dependent keys in computed properties | βœ… | πŸ”§ | | | [no-legacy-computed](docs/rules/no-legacy-computed.md) | disallow use of legacy computed properties and computed macros | | | | | [no-side-effects](docs/rules/no-side-effects.md) | disallow unexpected side effects in computed properties | βœ… | | | -| [no-volatile-computed-properties](docs/rules/no-volatile-computed-properties.md) | disallow volatile computed properties | βœ… | | | +| [no-volatile-computed-properties](docs/rules/no-volatile-computed-properties.md) | disallow volatile computed properties | | | | | [require-computed-macros](docs/rules/require-computed-macros.md) | require using computed property macros when possible | βœ… | πŸ”§ | | | [require-computed-property-dependencies](docs/rules/require-computed-property-dependencies.md) | require dependencies to be declared statically in computed properties | βœ… | πŸ”§ | | | [require-return-from-computed](docs/rules/require-return-from-computed.md) | disallow missing return statements in computed properties | βœ… | | | @@ -410,35 +408,35 @@ To disable a rule for an entire `.gjs`/`.gts` file, use a regular ESLint file-le | Name | Description | πŸ’Ό | πŸ”§ | πŸ’‘ | | :--------------------------------------------------------------------------------- | :------------------------------------ | :- | :- | :- | | [alias-model-in-controller](docs/rules/alias-model-in-controller.md) | enforce aliasing model in controllers | | | | -| [avoid-using-needs-in-controllers](docs/rules/avoid-using-needs-in-controllers.md) | disallow using `needs` in controllers | βœ… | | | +| [avoid-using-needs-in-controllers](docs/rules/avoid-using-needs-in-controllers.md) | disallow using `needs` in controllers | | | | | [no-controllers](docs/rules/no-controllers.md) | disallow non-essential controllers | | | | ### Deprecations -| NameΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  | Description | πŸ’Ό | πŸ”§ | πŸ’‘ | -| :----------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------- | :- | :- | :- | -| [closure-actions](docs/rules/closure-actions.md) | enforce usage of closure actions | βœ… | | | -| [new-module-imports](docs/rules/new-module-imports.md) | enforce using "New Module Imports" from Ember RFC #176 | βœ… | | | -| [no-array-prototype-extensions](docs/rules/no-array-prototype-extensions.md) | disallow usage of Ember's `Array` prototype extensions | | πŸ”§ | | -| [no-at-ember-render-modifiers](docs/rules/no-at-ember-render-modifiers.md) | disallow importing from @ember/render-modifiers | βœ… | | | -| [no-deprecated-router-transition-methods](docs/rules/no-deprecated-router-transition-methods.md) | enforce usage of router service transition methods | βœ… | πŸ”§ | | -| [no-function-prototype-extensions](docs/rules/no-function-prototype-extensions.md) | disallow usage of Ember's `function` prototype extensions | βœ… | | | -| [no-implicit-injections](docs/rules/no-implicit-injections.md) | enforce usage of implicit service injections | βœ… | πŸ”§ | | -| [no-legacy-helper-imports](docs/rules/no-legacy-helper-imports.md) | disallow importing helpers and modifiers that are built-in template keywords in Ember 7.1+ | | πŸ”§ | | -| [no-mixins](docs/rules/no-mixins.md) | disallow the usage of mixins | βœ… | | | -| [no-new-mixins](docs/rules/no-new-mixins.md) | disallow the creation of new mixins | βœ… | | | -| [no-observers](docs/rules/no-observers.md) | disallow usage of observers | βœ… | | | -| [no-old-shims](docs/rules/no-old-shims.md) | disallow usage of old shims for modules | βœ… | πŸ”§ | | -| [no-string-prototype-extensions](docs/rules/no-string-prototype-extensions.md) | disallow usage of `String` prototype extensions | βœ… | | | -| [template-deprecated-inline-view-helper](docs/rules/template-deprecated-inline-view-helper.md) | disallow inline {{view}} helper | πŸ“‹ | πŸ”§ | | -| [template-deprecated-render-helper](docs/rules/template-deprecated-render-helper.md) | disallow {{render}} helper | πŸ“‹ | πŸ”§ | | -| [template-no-action](docs/rules/template-no-action.md) | disallow {{action}} helper | πŸ“‹ | | | -| [template-no-attrs-in-components](docs/rules/template-no-attrs-in-components.md) | disallow attrs in component templates | πŸ“‹ | | | -| [template-no-link-to-positional-params](docs/rules/template-no-link-to-positional-params.md) | disallow positional params in LinkTo component | πŸ“‹ | | | -| [template-no-link-to-tagname](docs/rules/template-no-link-to-tagname.md) | disallow tagName attribute on LinkTo component | πŸ“‹ | | | -| [template-no-route-action](docs/rules/template-no-route-action.md) | disallow usage of route-action helper | πŸ“‹ | | | -| [template-no-unbound](docs/rules/template-no-unbound.md) | disallow {{unbound}} helper | πŸ“‹ | | | -| [template-no-with](docs/rules/template-no-with.md) | disallow {{with}} helper | πŸ“‹ | | | +| NameΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  | Description | πŸ’Ό | πŸ”§ | πŸ’‘ | +| :----------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------- | :--- | :- | :- | +| [closure-actions](docs/rules/closure-actions.md) | enforce usage of closure actions | | | | +| [new-module-imports](docs/rules/new-module-imports.md) | enforce using "New Module Imports" from Ember RFC #176 | βœ… | | | +| [no-array-prototype-extensions](docs/rules/no-array-prototype-extensions.md) | disallow usage of Ember's `Array` prototype extensions | | πŸ”§ | | +| [no-at-ember-render-modifiers](docs/rules/no-at-ember-render-modifiers.md) | disallow importing from @ember/render-modifiers | βœ… | | | +| [no-deprecated-router-transition-methods](docs/rules/no-deprecated-router-transition-methods.md) | enforce usage of router service transition methods | | πŸ”§ | | +| [no-function-prototype-extensions](docs/rules/no-function-prototype-extensions.md) | disallow usage of Ember's `function` prototype extensions | | | | +| [no-implicit-injections](docs/rules/no-implicit-injections.md) | enforce usage of implicit service injections | | πŸ”§ | | +| [no-legacy-helper-imports](docs/rules/no-legacy-helper-imports.md) | disallow importing helpers and modifiers that are built-in template keywords in Ember 7.1+ | | πŸ”§ | | +| [no-mixins](docs/rules/no-mixins.md) | disallow the usage of mixins | βœ… | | | +| [no-new-mixins](docs/rules/no-new-mixins.md) | disallow the creation of new mixins | βœ… | | | +| [no-observers](docs/rules/no-observers.md) | disallow usage of observers | βœ… | | | +| [no-old-shims](docs/rules/no-old-shims.md) | disallow usage of old shims for modules | | πŸ”§ | | +| [no-string-prototype-extensions](docs/rules/no-string-prototype-extensions.md) | disallow usage of `String` prototype extensions | | | | +| [template-deprecated-inline-view-helper](docs/rules/template-deprecated-inline-view-helper.md) | disallow inline {{view}} helper | πŸ“‹ | πŸ”§ | | +| [template-deprecated-render-helper](docs/rules/template-deprecated-render-helper.md) | disallow {{render}} helper | πŸ“‹ | πŸ”§ | | +| [template-no-action](docs/rules/template-no-action.md) | disallow {{action}} helper | πŸ“‹ | | | +| [template-no-attrs-in-components](docs/rules/template-no-attrs-in-components.md) | disallow attrs in component templates | βœ… πŸ“‹ | | | +| [template-no-link-to-positional-params](docs/rules/template-no-link-to-positional-params.md) | disallow positional params in LinkTo component | βœ… πŸ“‹ | | | +| [template-no-link-to-tagname](docs/rules/template-no-link-to-tagname.md) | disallow tagName attribute on LinkTo component | βœ… πŸ“‹ | | | +| [template-no-route-action](docs/rules/template-no-route-action.md) | disallow usage of route-action helper | πŸ“‹ | | | +| [template-no-unbound](docs/rules/template-no-unbound.md) | disallow {{unbound}} helper | βœ… πŸ“‹ | | | +| [template-no-with](docs/rules/template-no-with.md) | disallow {{with}} helper | πŸ“‹ | | | ### Ember Data @@ -454,27 +452,27 @@ To disable a rule for an entire `.gjs`/`.gts` file, use a regular ESLint file-le | :----------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------- | :- | :- | :- | | [avoid-leaking-state-in-ember-objects](docs/rules/avoid-leaking-state-in-ember-objects.md) | disallow state leakage | βœ… | | | | [no-get](docs/rules/no-get.md) | require using ES5 getters instead of Ember's `get` / `getProperties` functions | βœ… | πŸ”§ | | -| [no-get-with-default](docs/rules/no-get-with-default.md) | disallow usage of the Ember's `getWithDefault` function | βœ… | πŸ”§ | | +| [no-get-with-default](docs/rules/no-get-with-default.md) | disallow usage of the Ember's `getWithDefault` function | | πŸ”§ | | | [no-modifier-argument-destructuring](docs/rules/no-modifier-argument-destructuring.md) | disallow destructuring of modifier arguments to avoid consuming tracked data too early | | | | | [no-proxies](docs/rules/no-proxies.md) | disallow using array or object proxies | | | | -| [no-try-invoke](docs/rules/no-try-invoke.md) | disallow usage of the Ember's `tryInvoke` util | βœ… | | | +| [no-try-invoke](docs/rules/no-try-invoke.md) | disallow usage of the Ember's `tryInvoke` util | | | | | [require-super-in-lifecycle-hooks](docs/rules/require-super-in-lifecycle-hooks.md) | require super to be called in lifecycle hooks | βœ… | πŸ”§ | | | [use-ember-get-and-set](docs/rules/use-ember-get-and-set.md) | enforce usage of `Ember.get` and `Ember.set` | | πŸ”§ | | ### Ember Octane -| NameΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  | Description | πŸ’Ό | πŸ”§ | πŸ’‘ | -| :----------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------- | :- | :- | -| [classic-decorator-hooks](docs/rules/classic-decorator-hooks.md) | enforce using correct hooks for both classic and non-classic classes | βœ… | | | -| [classic-decorator-no-classic-methods](docs/rules/classic-decorator-no-classic-methods.md) | disallow usage of classic APIs such as `get`/`set` in classes that aren't explicitly decorated with `@classic` | βœ… | | | -| [no-actions-hash](docs/rules/no-actions-hash.md) | disallow the actions hash in components, controllers, and routes | βœ… | | | -| [no-classic-classes](docs/rules/no-classic-classes.md) | disallow "classic" classes in favor of native JS classes | βœ… | | | -| [no-ember-super-in-es-classes](docs/rules/no-ember-super-in-es-classes.md) | disallow use of `this._super` in ES class methods | βœ… | πŸ”§ | | -| [no-empty-glimmer-component-classes](docs/rules/no-empty-glimmer-component-classes.md) | disallow empty backing classes for Glimmer components | βœ… | | | -| [no-tracked-built-ins](docs/rules/no-tracked-built-ins.md) | enforce usage of `@ember/reactive/collections` imports instead of `tracked-built-ins` | | πŸ”§ | | -| [no-tracked-properties-from-args](docs/rules/no-tracked-properties-from-args.md) | disallow creating @tracked properties from this.args | βœ… | | | -| [template-no-deprecated](docs/rules/template-no-deprecated.md) | disallow using deprecated Glimmer components, helpers, and modifiers in templates | | | | -| [template-no-let-reference](docs/rules/template-no-let-reference.md) | disallow referencing let variables in \ | ![gjs logo](/docs/svgs/gjs.svg) ![gts logo](/docs/svgs/gts.svg) | | | +| NameΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  | Description | πŸ’Ό | πŸ”§ | πŸ’‘ | +| :----------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------- | :- | :- | :- | +| [classic-decorator-hooks](docs/rules/classic-decorator-hooks.md) | enforce using correct hooks for both classic and non-classic classes | βœ… | | | +| [classic-decorator-no-classic-methods](docs/rules/classic-decorator-no-classic-methods.md) | disallow usage of classic APIs such as `get`/`set` in classes that aren't explicitly decorated with `@classic` | βœ… | | | +| [no-actions-hash](docs/rules/no-actions-hash.md) | disallow the actions hash in components, controllers, and routes | βœ… | | | +| [no-classic-classes](docs/rules/no-classic-classes.md) | disallow "classic" classes in favor of native JS classes | βœ… | | | +| [no-ember-super-in-es-classes](docs/rules/no-ember-super-in-es-classes.md) | disallow use of `this._super` in ES class methods | βœ… | πŸ”§ | | +| [no-empty-glimmer-component-classes](docs/rules/no-empty-glimmer-component-classes.md) | disallow empty backing classes for Glimmer components | βœ… | | | +| [no-tracked-built-ins](docs/rules/no-tracked-built-ins.md) | enforce usage of `@ember/reactive/collections` imports instead of `tracked-built-ins` | | πŸ”§ | | +| [no-tracked-properties-from-args](docs/rules/no-tracked-properties-from-args.md) | disallow creating @tracked properties from this.args | βœ… | | | +| [template-no-deprecated](docs/rules/template-no-deprecated.md) | disallow using deprecated Glimmer components, helpers, and modifiers in templates | | | | +| [template-no-let-reference](docs/rules/template-no-let-reference.md) | disallow referencing let variables in \ | βœ… | | | ### jQuery @@ -498,14 +496,14 @@ To disable a rule for an entire `.gjs`/`.gts` file, use a regular ESLint file-le ### Possible Errors -| NameΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  | Description | πŸ’Ό | πŸ”§ | πŸ’‘ | -| :------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------- | :- | :- | :- | -| [template-no-extra-mut-helper-argument](docs/rules/template-no-extra-mut-helper-argument.md) | disallow passing more than one argument to the mut helper | πŸ“‹ | | | -| [template-no-jsx-attributes](docs/rules/template-no-jsx-attributes.md) | disallow JSX-style camelCase attributes | | πŸ”§ | | -| [template-no-scope-outside-table-headings](docs/rules/template-no-scope-outside-table-headings.md) | disallow scope attribute outside th elements | πŸ“‹ | | | -| [template-no-shadowed-elements](docs/rules/template-no-shadowed-elements.md) | disallow ambiguity with block param names shadowing HTML elements | πŸ“‹ | | | -| [template-no-unbalanced-curlies](docs/rules/template-no-unbalanced-curlies.md) | disallow unbalanced mustache curlies | πŸ“‹ | | | -| [template-no-unknown-arguments-for-builtin-components](docs/rules/template-no-unknown-arguments-for-builtin-components.md) | disallow unknown arguments for built-in components | πŸ“‹ | πŸ”§ | | +| NameΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  | Description | πŸ’Ό | πŸ”§ | πŸ’‘ | +| :------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------- | :--- | :- | :- | +| [template-no-extra-mut-helper-argument](docs/rules/template-no-extra-mut-helper-argument.md) | disallow passing more than one argument to the mut helper | βœ… πŸ“‹ | | | +| [template-no-jsx-attributes](docs/rules/template-no-jsx-attributes.md) | disallow JSX-style camelCase attributes | | πŸ”§ | | +| [template-no-scope-outside-table-headings](docs/rules/template-no-scope-outside-table-headings.md) | disallow scope attribute outside th elements | βœ… πŸ“‹ | | | +| [template-no-shadowed-elements](docs/rules/template-no-shadowed-elements.md) | disallow ambiguity with block param names shadowing HTML elements | βœ… πŸ“‹ | | | +| [template-no-unbalanced-curlies](docs/rules/template-no-unbalanced-curlies.md) | disallow unbalanced mustache curlies | βœ… πŸ“‹ | | | +| [template-no-unknown-arguments-for-builtin-components](docs/rules/template-no-unknown-arguments-for-builtin-components.md) | disallow unknown arguments for built-in components | βœ… πŸ“‹ | πŸ”§ | | ### Routes @@ -518,14 +516,14 @@ To disable a rule for an entire `.gjs`/`.gts` file, use a regular ESLint file-le | [no-unnecessary-index-route](docs/rules/no-unnecessary-index-route.md) | disallow unnecessary `index` route definition | | | | | [no-unnecessary-route-path-option](docs/rules/no-unnecessary-route-path-option.md) | disallow unnecessary usage of the route `path` option | βœ… | πŸ”§ | | | [route-path-style](docs/rules/route-path-style.md) | enforce usage of kebab-case (instead of snake_case or camelCase) in route paths | | | πŸ’‘ | -| [routes-segments-snake-case](docs/rules/routes-segments-snake-case.md) | enforce usage of snake_cased dynamic segments in routes | βœ… | | | +| [routes-segments-snake-case](docs/rules/routes-segments-snake-case.md) | enforce usage of snake_cased dynamic segments in routes | | | | ### Security -| NameΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  | Description | πŸ’Ό | πŸ”§ | πŸ’‘ | -| :--------------------------------------------------------------------- | :-------------------------------------------------------------- | :- | :- | :- | -| [template-link-rel-noopener](docs/rules/template-link-rel-noopener.md) | require rel="noopener noreferrer" on links with target="_blank" | πŸ“‹ | πŸ”§ | | -| [template-no-triple-curlies](docs/rules/template-no-triple-curlies.md) | disallow usage of triple curly brackets (unescaped variables) | πŸ“‹ | | | +| NameΒ Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  | Description | πŸ’Ό | πŸ”§ | πŸ’‘ | +| :--------------------------------------------------------------------- | :-------------------------------------------------------------- | :--- | :- | :- | +| [template-link-rel-noopener](docs/rules/template-link-rel-noopener.md) | require rel="noopener noreferrer" on links with target="_blank" | βœ… πŸ“‹ | πŸ”§ | | +| [template-no-triple-curlies](docs/rules/template-no-triple-curlies.md) | disallow usage of triple curly brackets (unescaped variables) | βœ… πŸ“‹ | | | ### Services @@ -538,10 +536,10 @@ To disable a rule for an entire `.gjs`/`.gts` file, use a regular ESLint file-le ### Style -| Name | Description | πŸ’Ό | πŸ”§ | πŸ’‘ | -| :------------------------------------------------------------------------------------------- | :--------------------------------------------------------- | :- | :- | :- | -| [template-no-quoteless-attributes](docs/rules/template-no-quoteless-attributes.md) | require quotes on all attribute values | πŸ“‹ | πŸ”§ | | -| [template-no-unnecessary-curly-strings](docs/rules/template-no-unnecessary-curly-strings.md) | disallow unnecessary curly braces in string interpolations | πŸ“‹ | πŸ”§ | | +| Name | Description | πŸ’Ό | πŸ”§ | πŸ’‘ | +| :------------------------------------------------------------------------------------------- | :--------------------------------------------------------- | :--- | :- | :- | +| [template-no-quoteless-attributes](docs/rules/template-no-quoteless-attributes.md) | require quotes on all attribute values | βœ… πŸ“‹ | πŸ”§ | | +| [template-no-unnecessary-curly-strings](docs/rules/template-no-unnecessary-curly-strings.md) | disallow unnecessary curly braces in string interpolations | βœ… πŸ“‹ | πŸ”§ | | ### Stylistic Issues @@ -576,7 +574,7 @@ To disable a rule for an entire `.gjs`/`.gts` file, use a regular ESLint file-le | [no-settled-after-test-helper](docs/rules/no-settled-after-test-helper.md) | disallow usage of `await settled()` right after test helper that calls it internally | βœ… | πŸ”§ | | | [no-test-and-then](docs/rules/no-test-and-then.md) | disallow usage of the `andThen` test wait helper | βœ… | | | | [no-test-import-export](docs/rules/no-test-import-export.md) | disallow importing of "-test.js" in a test file and exporting from a test file | βœ… | | | -| [no-test-module-for](docs/rules/no-test-module-for.md) | disallow usage of `moduleFor`, `moduleForComponent`, etc | βœ… | | | +| [no-test-module-for](docs/rules/no-test-module-for.md) | disallow usage of `moduleFor`, `moduleForComponent`, etc | | | | | [no-test-support-import](docs/rules/no-test-support-import.md) | disallow importing of "test-support" files in production code. | βœ… | | | | [no-test-this-render](docs/rules/no-test-this-render.md) | disallow usage of the `this.render` in tests, recommending to use @ember/test-helpers' `render` instead. | βœ… | | | | [no-test-this-set-get](docs/rules/no-test-this-set-get.md) | disallow usage of `this.set`, `this.get`, `this.setProperties`, and `this.getProperties` in `.gjs`/`.gts` tests | | | | diff --git a/docs/rules/avoid-using-needs-in-controllers.md b/docs/rules/avoid-using-needs-in-controllers.md index c3d9ef60ad..83efe8658f 100644 --- a/docs/rules/avoid-using-needs-in-controllers.md +++ b/docs/rules/avoid-using-needs-in-controllers.md @@ -1,7 +1,5 @@ # ember/avoid-using-needs-in-controllers -πŸ’Ό This rule is enabled in the βœ… `recommended` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). - Avoid using `needs` to load other controllers. Inject the required controller instead. `needs` was deprecated in ember 1.x and removed in 2.0. diff --git a/docs/rules/closure-actions.md b/docs/rules/closure-actions.md index 1df35095dd..2658a8e396 100644 --- a/docs/rules/closure-actions.md +++ b/docs/rules/closure-actions.md @@ -1,7 +1,5 @@ # ember/closure-actions -πŸ’Ό This rule is enabled in the βœ… `recommended` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). - Always use closure actions (according to DDAU convention). Exception: only when you need bubbling. diff --git a/docs/rules/no-builtin-form-components.md b/docs/rules/no-builtin-form-components.md index 2a5ab9dfe6..737320a538 100644 --- a/docs/rules/no-builtin-form-components.md +++ b/docs/rules/no-builtin-form-components.md @@ -1,5 +1,7 @@ # ember/no-builtin-form-components +πŸ’Ό This rule is enabled in the βœ… `recommended` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). + This rule disallows the use of Ember's built-in form components (`Input` and `Textarea`) from `@ember/component` and encourages using native HTML elements instead. diff --git a/docs/rules/no-deeply-nested-dependent-keys-with-each.md b/docs/rules/no-deeply-nested-dependent-keys-with-each.md index f0700b6f03..4b3b8b076e 100644 --- a/docs/rules/no-deeply-nested-dependent-keys-with-each.md +++ b/docs/rules/no-deeply-nested-dependent-keys-with-each.md @@ -1,7 +1,5 @@ # ember/no-deeply-nested-dependent-keys-with-each -πŸ’Ό This rule is enabled in the βœ… `recommended` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). - Disallows usage of deeply-nested computed property dependent keys with `@each`. diff --git a/docs/rules/no-deprecated-router-transition-methods.md b/docs/rules/no-deprecated-router-transition-methods.md index 3d077c3dfc..243455b262 100644 --- a/docs/rules/no-deprecated-router-transition-methods.md +++ b/docs/rules/no-deprecated-router-transition-methods.md @@ -1,7 +1,5 @@ # ember/no-deprecated-router-transition-methods -πŸ’Ό This rule is enabled in the βœ… `recommended` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). - πŸ”§ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). diff --git a/docs/rules/no-function-prototype-extensions.md b/docs/rules/no-function-prototype-extensions.md index 126a33536c..bbcae02f56 100644 --- a/docs/rules/no-function-prototype-extensions.md +++ b/docs/rules/no-function-prototype-extensions.md @@ -1,7 +1,5 @@ # ember/no-function-prototype-extensions -πŸ’Ό This rule is enabled in the βœ… `recommended` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). - By default, Ember extends certain native JavaScript objects with additional methods. This can lead to problems in some situations. One example is relying on these methods in an addon that is used inside an app that has the extensions disabled. diff --git a/docs/rules/no-get-with-default.md b/docs/rules/no-get-with-default.md index 3b06f78f72..3b0e393e6a 100644 --- a/docs/rules/no-get-with-default.md +++ b/docs/rules/no-get-with-default.md @@ -1,7 +1,5 @@ # ember/no-get-with-default -πŸ’Ό This rule is enabled in the βœ… `recommended` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). - πŸ”§ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). diff --git a/docs/rules/no-implicit-injections.md b/docs/rules/no-implicit-injections.md index 8f91b30906..a7fd116121 100644 --- a/docs/rules/no-implicit-injections.md +++ b/docs/rules/no-implicit-injections.md @@ -1,7 +1,5 @@ # ember/no-implicit-injections -πŸ’Ό This rule is enabled in the βœ… `recommended` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). - πŸ”§ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). diff --git a/docs/rules/no-modifier-without-element-usage.md b/docs/rules/no-modifier-without-element-usage.md index 4ee2544e44..b6ee8ac6a6 100644 --- a/docs/rules/no-modifier-without-element-usage.md +++ b/docs/rules/no-modifier-without-element-usage.md @@ -1,5 +1,7 @@ # ember/no-modifier-without-element-usage +πŸ’Ό This rule is enabled in the βœ… `recommended` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). + Disallow modifiers that never use their element. diff --git a/docs/rules/no-old-shims.md b/docs/rules/no-old-shims.md index 3651848c6f..58aa150a3f 100644 --- a/docs/rules/no-old-shims.md +++ b/docs/rules/no-old-shims.md @@ -1,7 +1,5 @@ # ember/no-old-shims -πŸ’Ό This rule is enabled in the βœ… `recommended` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). - πŸ”§ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). diff --git a/docs/rules/no-string-prototype-extensions.md b/docs/rules/no-string-prototype-extensions.md index 5872e339ad..9f7d812fb7 100644 --- a/docs/rules/no-string-prototype-extensions.md +++ b/docs/rules/no-string-prototype-extensions.md @@ -1,7 +1,5 @@ # ember/no-string-prototype-extensions -πŸ’Ό This rule is enabled in the βœ… `recommended` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). - By default, Ember extends certain native JavaScript objects with additional methods. This can lead to problems in some situations. One example is relying on these methods in an addon that is used inside an app that has the extensions disabled. diff --git a/docs/rules/no-test-module-for.md b/docs/rules/no-test-module-for.md index 0810c2eb1f..b9b74054d6 100644 --- a/docs/rules/no-test-module-for.md +++ b/docs/rules/no-test-module-for.md @@ -1,7 +1,5 @@ # ember/no-test-module-for -πŸ’Ό This rule is enabled in the βœ… `recommended` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). - Use `module` instead of `moduleFor`. diff --git a/docs/rules/no-try-invoke.md b/docs/rules/no-try-invoke.md index 4fe281a116..9332fa3d0d 100644 --- a/docs/rules/no-try-invoke.md +++ b/docs/rules/no-try-invoke.md @@ -1,7 +1,5 @@ # ember/no-try-invoke -πŸ’Ό This rule is enabled in the βœ… `recommended` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). - This rule will catch and prevent the use of `tryInvoke`. diff --git a/docs/rules/no-volatile-computed-properties.md b/docs/rules/no-volatile-computed-properties.md index 4e282ff126..c471e027e1 100644 --- a/docs/rules/no-volatile-computed-properties.md +++ b/docs/rules/no-volatile-computed-properties.md @@ -1,7 +1,5 @@ # ember/no-volatile-computed-properties -πŸ’Ό This rule is enabled in the βœ… `recommended` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). - Volatile computed properties are deprecated as of Ember 3.9. diff --git a/docs/rules/routes-segments-snake-case.md b/docs/rules/routes-segments-snake-case.md index f3b7133560..833178dcff 100644 --- a/docs/rules/routes-segments-snake-case.md +++ b/docs/rules/routes-segments-snake-case.md @@ -1,7 +1,5 @@ # ember/routes-segments-snake-case -πŸ’Ό This rule is enabled in the βœ… `recommended` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). - Dynamic segments in routes should use _snake case_, so Ember doesn't have to do extra serialization in order to resolve promises. diff --git a/docs/rules/template-builtin-component-arguments.md b/docs/rules/template-builtin-component-arguments.md index 347fe4d2af..df5a1b32d2 100644 --- a/docs/rules/template-builtin-component-arguments.md +++ b/docs/rules/template-builtin-component-arguments.md @@ -1,6 +1,6 @@ # ember/template-builtin-component-arguments -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-link-href-attributes.md b/docs/rules/template-link-href-attributes.md index fad3ac5766..ce7ee1153c 100644 --- a/docs/rules/template-link-href-attributes.md +++ b/docs/rules/template-link-href-attributes.md @@ -1,6 +1,6 @@ # ember/template-link-href-attributes -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-link-rel-noopener.md b/docs/rules/template-link-rel-noopener.md index d0994e7b3d..1e9bbcd66a 100644 --- a/docs/rules/template-link-rel-noopener.md +++ b/docs/rules/template-link-rel-noopener.md @@ -1,6 +1,6 @@ # ember/template-link-rel-noopener -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. πŸ”§ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). diff --git a/docs/rules/template-no-abstract-roles.md b/docs/rules/template-no-abstract-roles.md index 1cbdd93957..3b80f3f08c 100644 --- a/docs/rules/template-no-abstract-roles.md +++ b/docs/rules/template-no-abstract-roles.md @@ -1,6 +1,6 @@ # ember/template-no-abstract-roles -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-accesskey-attribute.md b/docs/rules/template-no-accesskey-attribute.md index 9f6f0c6d7b..f7b7118a3e 100644 --- a/docs/rules/template-no-accesskey-attribute.md +++ b/docs/rules/template-no-accesskey-attribute.md @@ -1,6 +1,6 @@ # ember/template-no-accesskey-attribute -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. πŸ”§ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). diff --git a/docs/rules/template-no-action-on-submit-button.md b/docs/rules/template-no-action-on-submit-button.md index d742958d9b..e8b6bb0514 100644 --- a/docs/rules/template-no-action-on-submit-button.md +++ b/docs/rules/template-no-action-on-submit-button.md @@ -1,6 +1,6 @@ # ember/template-no-action-on-submit-button -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-args-paths.md b/docs/rules/template-no-args-paths.md index d3762c2466..cfd75381dc 100644 --- a/docs/rules/template-no-args-paths.md +++ b/docs/rules/template-no-args-paths.md @@ -1,6 +1,6 @@ # ember/template-no-args-paths -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. πŸ”§ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). diff --git a/docs/rules/template-no-arguments-for-html-elements.md b/docs/rules/template-no-arguments-for-html-elements.md index d6e61b3f59..2b3462dd21 100644 --- a/docs/rules/template-no-arguments-for-html-elements.md +++ b/docs/rules/template-no-arguments-for-html-elements.md @@ -1,6 +1,6 @@ # ember/template-no-arguments-for-html-elements -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-aria-hidden-body.md b/docs/rules/template-no-aria-hidden-body.md index 36dd0f0061..254309be2f 100644 --- a/docs/rules/template-no-aria-hidden-body.md +++ b/docs/rules/template-no-aria-hidden-body.md @@ -1,6 +1,6 @@ # ember/template-no-aria-hidden-body -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. πŸ”§ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). diff --git a/docs/rules/template-no-aria-unsupported-elements.md b/docs/rules/template-no-aria-unsupported-elements.md index 1697654f55..b22fa23d7d 100644 --- a/docs/rules/template-no-aria-unsupported-elements.md +++ b/docs/rules/template-no-aria-unsupported-elements.md @@ -1,6 +1,6 @@ # ember/template-no-aria-unsupported-elements -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-array-prototype-extensions.md b/docs/rules/template-no-array-prototype-extensions.md index 8de0e45736..ba3793ec1f 100644 --- a/docs/rules/template-no-array-prototype-extensions.md +++ b/docs/rules/template-no-array-prototype-extensions.md @@ -1,6 +1,6 @@ # ember/template-no-array-prototype-extensions -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. πŸ”§ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). diff --git a/docs/rules/template-no-at-ember-render-modifiers.md b/docs/rules/template-no-at-ember-render-modifiers.md index 7c9e462529..1caffe9a9c 100644 --- a/docs/rules/template-no-at-ember-render-modifiers.md +++ b/docs/rules/template-no-at-ember-render-modifiers.md @@ -1,6 +1,6 @@ # ember/template-no-at-ember-render-modifiers -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-attrs-in-components.md b/docs/rules/template-no-attrs-in-components.md index 2601e79b67..a881cd626e 100644 --- a/docs/rules/template-no-attrs-in-components.md +++ b/docs/rules/template-no-attrs-in-components.md @@ -1,6 +1,6 @@ # ember/template-no-attrs-in-components -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-autofocus-attribute.md b/docs/rules/template-no-autofocus-attribute.md index b257beac98..9b37c6f1a0 100644 --- a/docs/rules/template-no-autofocus-attribute.md +++ b/docs/rules/template-no-autofocus-attribute.md @@ -1,6 +1,6 @@ # ember/template-no-autofocus-attribute -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. πŸ”§ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). diff --git a/docs/rules/template-no-block-params-for-html-elements.md b/docs/rules/template-no-block-params-for-html-elements.md index d637e99de0..26f288bd98 100644 --- a/docs/rules/template-no-block-params-for-html-elements.md +++ b/docs/rules/template-no-block-params-for-html-elements.md @@ -1,6 +1,6 @@ # ember/template-no-block-params-for-html-elements -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-builtin-form-components.md b/docs/rules/template-no-builtin-form-components.md index a3ac657c22..950ffae1b1 100644 --- a/docs/rules/template-no-builtin-form-components.md +++ b/docs/rules/template-no-builtin-form-components.md @@ -1,6 +1,6 @@ # ember/template-no-builtin-form-components -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-capital-arguments.md b/docs/rules/template-no-capital-arguments.md index e328ceb6f3..8f298993c8 100644 --- a/docs/rules/template-no-capital-arguments.md +++ b/docs/rules/template-no-capital-arguments.md @@ -1,6 +1,6 @@ # ember/template-no-capital-arguments -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-class-bindings.md b/docs/rules/template-no-class-bindings.md index fd7ad41418..a531567374 100644 --- a/docs/rules/template-no-class-bindings.md +++ b/docs/rules/template-no-class-bindings.md @@ -1,6 +1,6 @@ # ember/template-no-class-bindings -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. > **HBS Only**: This rule applies to classic `.hbs` template files only (loose mode). It is not relevant for `gjs`/`gts` files (strict mode), where these patterns cannot occur. diff --git a/docs/rules/template-no-debugger.md b/docs/rules/template-no-debugger.md index a29fdcb223..eb7977377b 100644 --- a/docs/rules/template-no-debugger.md +++ b/docs/rules/template-no-debugger.md @@ -1,6 +1,6 @@ # ember/template-no-debugger -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-duplicate-attributes.md b/docs/rules/template-no-duplicate-attributes.md index 63a39c7cf6..1026fca735 100644 --- a/docs/rules/template-no-duplicate-attributes.md +++ b/docs/rules/template-no-duplicate-attributes.md @@ -1,6 +1,6 @@ # ember/template-no-duplicate-attributes -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. πŸ”§ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). diff --git a/docs/rules/template-no-duplicate-id.md b/docs/rules/template-no-duplicate-id.md index 57aff10cb2..76dbe25752 100644 --- a/docs/rules/template-no-duplicate-id.md +++ b/docs/rules/template-no-duplicate-id.md @@ -1,6 +1,6 @@ # ember/template-no-duplicate-id -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-duplicate-landmark-elements.md b/docs/rules/template-no-duplicate-landmark-elements.md index 53f8f34bb7..6a641bc99f 100644 --- a/docs/rules/template-no-duplicate-landmark-elements.md +++ b/docs/rules/template-no-duplicate-landmark-elements.md @@ -1,6 +1,6 @@ # ember/template-no-duplicate-landmark-elements -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-empty-headings.md b/docs/rules/template-no-empty-headings.md index 69c07cd083..6388d90ff9 100644 --- a/docs/rules/template-no-empty-headings.md +++ b/docs/rules/template-no-empty-headings.md @@ -1,6 +1,6 @@ # ember/template-no-empty-headings -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-extra-mut-helper-argument.md b/docs/rules/template-no-extra-mut-helper-argument.md index 3e18f04b2c..49460374c6 100644 --- a/docs/rules/template-no-extra-mut-helper-argument.md +++ b/docs/rules/template-no-extra-mut-helper-argument.md @@ -1,6 +1,6 @@ # ember/template-no-extra-mut-helper-argument -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. > **HBS Only**: This rule applies to classic `.hbs` template files only (loose mode). It is not relevant for `gjs`/`gts` files (strict mode), where these patterns cannot occur. diff --git a/docs/rules/template-no-forbidden-elements.md b/docs/rules/template-no-forbidden-elements.md index 50fa03fa7d..95fdc63f75 100644 --- a/docs/rules/template-no-forbidden-elements.md +++ b/docs/rules/template-no-forbidden-elements.md @@ -1,6 +1,6 @@ # ember/template-no-forbidden-elements -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-heading-inside-button.md b/docs/rules/template-no-heading-inside-button.md index 584955e8f8..11ea1be1a7 100644 --- a/docs/rules/template-no-heading-inside-button.md +++ b/docs/rules/template-no-heading-inside-button.md @@ -1,6 +1,6 @@ # ember/template-no-heading-inside-button -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-html-comments.md b/docs/rules/template-no-html-comments.md index 091302a285..5d1596bdf5 100644 --- a/docs/rules/template-no-html-comments.md +++ b/docs/rules/template-no-html-comments.md @@ -1,6 +1,6 @@ # ember/template-no-html-comments -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. πŸ”§ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). diff --git a/docs/rules/template-no-index-component-invocation.md b/docs/rules/template-no-index-component-invocation.md index 1e315cd66e..753767a243 100644 --- a/docs/rules/template-no-index-component-invocation.md +++ b/docs/rules/template-no-index-component-invocation.md @@ -1,6 +1,6 @@ # ember/template-no-index-component-invocation -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-inline-styles.md b/docs/rules/template-no-inline-styles.md index 437aa5d86e..807f69aa66 100644 --- a/docs/rules/template-no-inline-styles.md +++ b/docs/rules/template-no-inline-styles.md @@ -1,6 +1,6 @@ # ember/template-no-inline-styles -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-invalid-aria-attributes.md b/docs/rules/template-no-invalid-aria-attributes.md index 99983ffdad..09b111d306 100644 --- a/docs/rules/template-no-invalid-aria-attributes.md +++ b/docs/rules/template-no-invalid-aria-attributes.md @@ -1,6 +1,6 @@ # ember/template-no-invalid-aria-attributes -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-invalid-interactive.md b/docs/rules/template-no-invalid-interactive.md index 0570c2408f..54f18d25e4 100644 --- a/docs/rules/template-no-invalid-interactive.md +++ b/docs/rules/template-no-invalid-interactive.md @@ -1,6 +1,6 @@ # ember/template-no-invalid-interactive -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-invalid-link-text.md b/docs/rules/template-no-invalid-link-text.md index c0c0ef344f..38eef0f1d3 100644 --- a/docs/rules/template-no-invalid-link-text.md +++ b/docs/rules/template-no-invalid-link-text.md @@ -1,6 +1,6 @@ # ember/template-no-invalid-link-text -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-invalid-link-title.md b/docs/rules/template-no-invalid-link-title.md index ccdf192c27..d71578449e 100644 --- a/docs/rules/template-no-invalid-link-title.md +++ b/docs/rules/template-no-invalid-link-title.md @@ -1,6 +1,6 @@ # ember/template-no-invalid-link-title -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-invalid-meta.md b/docs/rules/template-no-invalid-meta.md index e79c57c41d..3d802132a2 100644 --- a/docs/rules/template-no-invalid-meta.md +++ b/docs/rules/template-no-invalid-meta.md @@ -1,6 +1,6 @@ # ember/template-no-invalid-meta -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-invalid-role.md b/docs/rules/template-no-invalid-role.md index 50dd109a53..5032914f38 100644 --- a/docs/rules/template-no-invalid-role.md +++ b/docs/rules/template-no-invalid-role.md @@ -1,6 +1,6 @@ # ember/template-no-invalid-role -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-let-reference.md b/docs/rules/template-no-let-reference.md index 3387eb51ef..6fbb61ff01 100644 --- a/docs/rules/template-no-let-reference.md +++ b/docs/rules/template-no-let-reference.md @@ -1,6 +1,6 @@ # ember/template-no-let-reference -πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): ![gjs logo](/docs/svgs/gjs.svg) `recommended-gjs`, ![gts logo](/docs/svgs/gts.svg) `recommended-gts`. +πŸ’Ό This rule is enabled in the βœ… `recommended` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). diff --git a/docs/rules/template-no-link-to-positional-params.md b/docs/rules/template-no-link-to-positional-params.md index a4e90d70d1..b0a0275b17 100644 --- a/docs/rules/template-no-link-to-positional-params.md +++ b/docs/rules/template-no-link-to-positional-params.md @@ -1,6 +1,6 @@ # ember/template-no-link-to-positional-params -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-link-to-tagname.md b/docs/rules/template-no-link-to-tagname.md index 81e7003155..3a858b4cb6 100644 --- a/docs/rules/template-no-link-to-tagname.md +++ b/docs/rules/template-no-link-to-tagname.md @@ -1,6 +1,6 @@ # ember/template-no-link-to-tagname -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-log.md b/docs/rules/template-no-log.md index 32b15b3d49..31916e952a 100644 --- a/docs/rules/template-no-log.md +++ b/docs/rules/template-no-log.md @@ -1,6 +1,6 @@ # ember/template-no-log -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-negated-condition.md b/docs/rules/template-no-negated-condition.md index 0a566f5761..a5a6ee2d65 100644 --- a/docs/rules/template-no-negated-condition.md +++ b/docs/rules/template-no-negated-condition.md @@ -1,6 +1,6 @@ # ember/template-no-negated-condition -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. πŸ”§ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). diff --git a/docs/rules/template-no-nested-interactive.md b/docs/rules/template-no-nested-interactive.md index 12494776ec..3b752f53f5 100644 --- a/docs/rules/template-no-nested-interactive.md +++ b/docs/rules/template-no-nested-interactive.md @@ -1,6 +1,6 @@ # ember/template-no-nested-interactive -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-nested-landmark.md b/docs/rules/template-no-nested-landmark.md index 098ce4a8b1..74a1f34ccf 100644 --- a/docs/rules/template-no-nested-landmark.md +++ b/docs/rules/template-no-nested-landmark.md @@ -1,6 +1,6 @@ # ember/template-no-nested-landmark -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-nested-splattributes.md b/docs/rules/template-no-nested-splattributes.md index aed479a6ed..c8a54f4e4c 100644 --- a/docs/rules/template-no-nested-splattributes.md +++ b/docs/rules/template-no-nested-splattributes.md @@ -1,6 +1,6 @@ # ember/template-no-nested-splattributes -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-obscure-array-access.md b/docs/rules/template-no-obscure-array-access.md index 8e2836dc8c..270e6cbaa2 100644 --- a/docs/rules/template-no-obscure-array-access.md +++ b/docs/rules/template-no-obscure-array-access.md @@ -1,6 +1,6 @@ # ember/template-no-obscure-array-access -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. πŸ”§ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). diff --git a/docs/rules/template-no-obsolete-elements.md b/docs/rules/template-no-obsolete-elements.md index c9a7ea27c8..1154e51888 100644 --- a/docs/rules/template-no-obsolete-elements.md +++ b/docs/rules/template-no-obsolete-elements.md @@ -1,6 +1,6 @@ # ember/template-no-obsolete-elements -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-outlet-outside-routes.md b/docs/rules/template-no-outlet-outside-routes.md index 6a168fa709..59179b3395 100644 --- a/docs/rules/template-no-outlet-outside-routes.md +++ b/docs/rules/template-no-outlet-outside-routes.md @@ -1,6 +1,6 @@ # ember/template-no-outlet-outside-routes -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-passed-in-event-handlers.md b/docs/rules/template-no-passed-in-event-handlers.md index daba3e6256..9438845e3e 100644 --- a/docs/rules/template-no-passed-in-event-handlers.md +++ b/docs/rules/template-no-passed-in-event-handlers.md @@ -1,6 +1,6 @@ # ember/template-no-passed-in-event-handlers -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-pointer-down-event-binding.md b/docs/rules/template-no-pointer-down-event-binding.md index ed1929d9f1..6c67e2562b 100644 --- a/docs/rules/template-no-pointer-down-event-binding.md +++ b/docs/rules/template-no-pointer-down-event-binding.md @@ -1,6 +1,6 @@ # ember/template-no-pointer-down-event-binding -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-positional-data-test-selectors.md b/docs/rules/template-no-positional-data-test-selectors.md index 594412c3a6..20fdd99409 100644 --- a/docs/rules/template-no-positional-data-test-selectors.md +++ b/docs/rules/template-no-positional-data-test-selectors.md @@ -1,6 +1,6 @@ # ember/template-no-positional-data-test-selectors -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. πŸ”§ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). diff --git a/docs/rules/template-no-positive-tabindex.md b/docs/rules/template-no-positive-tabindex.md index dd5cb20cbe..f1487743d0 100644 --- a/docs/rules/template-no-positive-tabindex.md +++ b/docs/rules/template-no-positive-tabindex.md @@ -1,6 +1,6 @@ # ember/template-no-positive-tabindex -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-potential-path-strings.md b/docs/rules/template-no-potential-path-strings.md index dc823f2c30..d466b5811c 100644 --- a/docs/rules/template-no-potential-path-strings.md +++ b/docs/rules/template-no-potential-path-strings.md @@ -1,6 +1,6 @@ # ember/template-no-potential-path-strings -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-quoteless-attributes.md b/docs/rules/template-no-quoteless-attributes.md index c3ecbc7df9..6132da234c 100644 --- a/docs/rules/template-no-quoteless-attributes.md +++ b/docs/rules/template-no-quoteless-attributes.md @@ -1,6 +1,6 @@ # ember/template-no-quoteless-attributes -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. πŸ”§ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). diff --git a/docs/rules/template-no-redundant-fn.md b/docs/rules/template-no-redundant-fn.md index 5d0f5d89e5..9890476aed 100644 --- a/docs/rules/template-no-redundant-fn.md +++ b/docs/rules/template-no-redundant-fn.md @@ -1,6 +1,6 @@ # ember/template-no-redundant-fn -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. πŸ”§ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). diff --git a/docs/rules/template-no-redundant-role.md b/docs/rules/template-no-redundant-role.md index 56f3cec20a..955efc2693 100644 --- a/docs/rules/template-no-redundant-role.md +++ b/docs/rules/template-no-redundant-role.md @@ -1,6 +1,6 @@ # ember/template-no-redundant-role -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. πŸ”§ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). diff --git a/docs/rules/template-no-scope-outside-table-headings.md b/docs/rules/template-no-scope-outside-table-headings.md index 98f83510e1..90ea11b261 100644 --- a/docs/rules/template-no-scope-outside-table-headings.md +++ b/docs/rules/template-no-scope-outside-table-headings.md @@ -1,6 +1,6 @@ # ember/template-no-scope-outside-table-headings -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-shadowed-elements.md b/docs/rules/template-no-shadowed-elements.md index 76cc407017..ed40e0cb9a 100644 --- a/docs/rules/template-no-shadowed-elements.md +++ b/docs/rules/template-no-shadowed-elements.md @@ -1,6 +1,6 @@ # ember/template-no-shadowed-elements -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-template-lint-directives.md b/docs/rules/template-no-template-lint-directives.md index 13caf9737d..7464f2398b 100644 --- a/docs/rules/template-no-template-lint-directives.md +++ b/docs/rules/template-no-template-lint-directives.md @@ -1,6 +1,6 @@ # ember/template-no-template-lint-directives -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. πŸ”§ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). diff --git a/docs/rules/template-no-triple-curlies.md b/docs/rules/template-no-triple-curlies.md index c131fb6dfb..a845af8b82 100644 --- a/docs/rules/template-no-triple-curlies.md +++ b/docs/rules/template-no-triple-curlies.md @@ -1,6 +1,6 @@ # ember/template-no-triple-curlies -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-unbalanced-curlies.md b/docs/rules/template-no-unbalanced-curlies.md index cd6f028554..4dcf3d5928 100644 --- a/docs/rules/template-no-unbalanced-curlies.md +++ b/docs/rules/template-no-unbalanced-curlies.md @@ -1,6 +1,6 @@ # ember/template-no-unbalanced-curlies -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-unbound.md b/docs/rules/template-no-unbound.md index aece8a9f01..6a6a3d1d6d 100644 --- a/docs/rules/template-no-unbound.md +++ b/docs/rules/template-no-unbound.md @@ -1,6 +1,6 @@ # ember/template-no-unbound -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-unknown-arguments-for-builtin-components.md b/docs/rules/template-no-unknown-arguments-for-builtin-components.md index 5360a9f921..d4c52a2431 100644 --- a/docs/rules/template-no-unknown-arguments-for-builtin-components.md +++ b/docs/rules/template-no-unknown-arguments-for-builtin-components.md @@ -1,6 +1,6 @@ # ember/template-no-unknown-arguments-for-builtin-components -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. πŸ”§ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). diff --git a/docs/rules/template-no-unnecessary-component-helper.md b/docs/rules/template-no-unnecessary-component-helper.md index 23b551b6b8..6a3f32b2b3 100644 --- a/docs/rules/template-no-unnecessary-component-helper.md +++ b/docs/rules/template-no-unnecessary-component-helper.md @@ -1,6 +1,6 @@ # ember/template-no-unnecessary-component-helper -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. πŸ”§ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). diff --git a/docs/rules/template-no-unnecessary-curly-parens.md b/docs/rules/template-no-unnecessary-curly-parens.md index 146664900b..5e7f083fb7 100644 --- a/docs/rules/template-no-unnecessary-curly-parens.md +++ b/docs/rules/template-no-unnecessary-curly-parens.md @@ -1,6 +1,6 @@ # ember/template-no-unnecessary-curly-parens -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. πŸ”§ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). diff --git a/docs/rules/template-no-unnecessary-curly-strings.md b/docs/rules/template-no-unnecessary-curly-strings.md index 7c3028a719..5ce9b1eb05 100644 --- a/docs/rules/template-no-unnecessary-curly-strings.md +++ b/docs/rules/template-no-unnecessary-curly-strings.md @@ -1,6 +1,6 @@ # ember/template-no-unnecessary-curly-strings -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. πŸ”§ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). diff --git a/docs/rules/template-no-unsupported-role-attributes.md b/docs/rules/template-no-unsupported-role-attributes.md index 3c3640cf2f..85c99ce49e 100644 --- a/docs/rules/template-no-unsupported-role-attributes.md +++ b/docs/rules/template-no-unsupported-role-attributes.md @@ -1,6 +1,6 @@ # ember/template-no-unsupported-role-attributes -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. πŸ”§ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). diff --git a/docs/rules/template-no-unused-block-params.md b/docs/rules/template-no-unused-block-params.md index 9f16a1bd45..0da5203abe 100644 --- a/docs/rules/template-no-unused-block-params.md +++ b/docs/rules/template-no-unused-block-params.md @@ -1,6 +1,6 @@ # ember/template-no-unused-block-params -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-valueless-arguments.md b/docs/rules/template-no-valueless-arguments.md index afa3081217..9b1a468841 100644 --- a/docs/rules/template-no-valueless-arguments.md +++ b/docs/rules/template-no-valueless-arguments.md @@ -1,6 +1,6 @@ # ember/template-no-valueless-arguments -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-whitespace-for-layout.md b/docs/rules/template-no-whitespace-for-layout.md index 92c51ea5db..1e49d031cf 100644 --- a/docs/rules/template-no-whitespace-for-layout.md +++ b/docs/rules/template-no-whitespace-for-layout.md @@ -1,6 +1,6 @@ # ember/template-no-whitespace-for-layout -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-whitespace-within-word.md b/docs/rules/template-no-whitespace-within-word.md index b4273e0cc4..bdaab77ad8 100644 --- a/docs/rules/template-no-whitespace-within-word.md +++ b/docs/rules/template-no-whitespace-within-word.md @@ -1,6 +1,6 @@ # ember/template-no-whitespace-within-word -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-yield-only.md b/docs/rules/template-no-yield-only.md index e95bd5f112..a8187b534b 100644 --- a/docs/rules/template-no-yield-only.md +++ b/docs/rules/template-no-yield-only.md @@ -1,6 +1,6 @@ # ember/template-no-yield-only -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-no-yield-to-default.md b/docs/rules/template-no-yield-to-default.md index 8401f7c2cc..09ddd833dd 100644 --- a/docs/rules/template-no-yield-to-default.md +++ b/docs/rules/template-no-yield-to-default.md @@ -1,6 +1,6 @@ # ember/template-no-yield-to-default -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-require-aria-activedescendant-tabindex.md b/docs/rules/template-require-aria-activedescendant-tabindex.md index 155e50ce8d..6f9cd54bcd 100644 --- a/docs/rules/template-require-aria-activedescendant-tabindex.md +++ b/docs/rules/template-require-aria-activedescendant-tabindex.md @@ -1,6 +1,6 @@ # ember/template-require-aria-activedescendant-tabindex -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. πŸ”§ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). diff --git a/docs/rules/template-require-button-type.md b/docs/rules/template-require-button-type.md index 237f0f1d25..fb8d2e28f5 100644 --- a/docs/rules/template-require-button-type.md +++ b/docs/rules/template-require-button-type.md @@ -1,6 +1,6 @@ # ember/template-require-button-type -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. πŸ”§ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). diff --git a/docs/rules/template-require-context-role.md b/docs/rules/template-require-context-role.md index 75677ad2b6..da9075dd89 100644 --- a/docs/rules/template-require-context-role.md +++ b/docs/rules/template-require-context-role.md @@ -1,6 +1,6 @@ # ember/template-require-context-role -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-require-has-block-helper.md b/docs/rules/template-require-has-block-helper.md index 95e4559fbc..786c4f1490 100644 --- a/docs/rules/template-require-has-block-helper.md +++ b/docs/rules/template-require-has-block-helper.md @@ -1,6 +1,6 @@ # ember/template-require-has-block-helper -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. πŸ”§ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). diff --git a/docs/rules/template-require-iframe-title.md b/docs/rules/template-require-iframe-title.md index fec30d7a63..0406139b6a 100644 --- a/docs/rules/template-require-iframe-title.md +++ b/docs/rules/template-require-iframe-title.md @@ -1,6 +1,6 @@ # ember/template-require-iframe-title -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-require-input-label.md b/docs/rules/template-require-input-label.md index 49eb11a78f..71cfe25714 100644 --- a/docs/rules/template-require-input-label.md +++ b/docs/rules/template-require-input-label.md @@ -1,6 +1,6 @@ # ember/template-require-input-label -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-require-lang-attribute.md b/docs/rules/template-require-lang-attribute.md index 797b530d70..0f6b78cc99 100644 --- a/docs/rules/template-require-lang-attribute.md +++ b/docs/rules/template-require-lang-attribute.md @@ -1,6 +1,6 @@ # ember/template-require-lang-attribute -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-require-mandatory-role-attributes.md b/docs/rules/template-require-mandatory-role-attributes.md index 79540c81b3..536819d289 100644 --- a/docs/rules/template-require-mandatory-role-attributes.md +++ b/docs/rules/template-require-mandatory-role-attributes.md @@ -1,6 +1,6 @@ # ember/template-require-mandatory-role-attributes -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-require-media-caption.md b/docs/rules/template-require-media-caption.md index 8fd173aed8..d3b582e154 100644 --- a/docs/rules/template-require-media-caption.md +++ b/docs/rules/template-require-media-caption.md @@ -1,6 +1,6 @@ # ember/template-require-media-caption -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-require-presentational-children.md b/docs/rules/template-require-presentational-children.md index b669872d23..c0fa4bd447 100644 --- a/docs/rules/template-require-presentational-children.md +++ b/docs/rules/template-require-presentational-children.md @@ -1,6 +1,6 @@ # ember/template-require-presentational-children -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-require-valid-alt-text.md b/docs/rules/template-require-valid-alt-text.md index fe7ea43cd8..eed8ca5281 100644 --- a/docs/rules/template-require-valid-alt-text.md +++ b/docs/rules/template-require-valid-alt-text.md @@ -1,6 +1,6 @@ # ember/template-require-valid-alt-text -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-require-valid-named-block-naming-format.md b/docs/rules/template-require-valid-named-block-naming-format.md index bc9269cc03..44c4843fd5 100644 --- a/docs/rules/template-require-valid-named-block-naming-format.md +++ b/docs/rules/template-require-valid-named-block-naming-format.md @@ -1,6 +1,6 @@ # ember/template-require-valid-named-block-naming-format -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. πŸ”§ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). diff --git a/docs/rules/template-simple-modifiers.md b/docs/rules/template-simple-modifiers.md index 9e1be07bf5..a17792835c 100644 --- a/docs/rules/template-simple-modifiers.md +++ b/docs/rules/template-simple-modifiers.md @@ -1,6 +1,6 @@ # ember/template-simple-modifiers -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-simple-unless.md b/docs/rules/template-simple-unless.md index 30234871da..6851a7b846 100644 --- a/docs/rules/template-simple-unless.md +++ b/docs/rules/template-simple-unless.md @@ -1,6 +1,6 @@ # ember/template-simple-unless -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. πŸ”§ This rule is automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/latest/user-guide/command-line-interface#--fix). diff --git a/docs/rules/template-splat-attributes-only.md b/docs/rules/template-splat-attributes-only.md index 82c7e6070c..b52892c390 100644 --- a/docs/rules/template-splat-attributes-only.md +++ b/docs/rules/template-splat-attributes-only.md @@ -1,6 +1,6 @@ # ember/template-splat-attributes-only -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-style-concatenation.md b/docs/rules/template-style-concatenation.md index 4bdb91c64a..cad24f6b45 100644 --- a/docs/rules/template-style-concatenation.md +++ b/docs/rules/template-style-concatenation.md @@ -1,6 +1,6 @@ # ember/template-style-concatenation -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/docs/rules/template-table-groups.md b/docs/rules/template-table-groups.md index 5bc89b4755..8ec7fcc55a 100644 --- a/docs/rules/template-table-groups.md +++ b/docs/rules/template-table-groups.md @@ -1,6 +1,6 @@ # ember/template-table-groups -πŸ’Ό This rule is enabled in the πŸ“‹ `template-lint-migration` [config](https://github.com/ember-cli/eslint-plugin-ember#-configurations). +πŸ’Ό This rule is enabled in the following [configs](https://github.com/ember-cli/eslint-plugin-ember#-configurations): βœ… `recommended`, πŸ“‹ `template-lint-migration`. diff --git a/lib/config-legacy/recommended-gjs.js b/lib/config-legacy/recommended-gjs.js deleted file mode 100644 index 924c05ff2e..0000000000 --- a/lib/config-legacy/recommended-gjs.js +++ /dev/null @@ -1,7 +0,0 @@ -const base = require('./base'); -const gjsRules = require('../recommended-rules-gjs'); - -module.exports = { - ...base, - rules: gjsRules, -}; diff --git a/lib/config-legacy/recommended-gts.js b/lib/config-legacy/recommended-gts.js deleted file mode 100644 index c29d094dd3..0000000000 --- a/lib/config-legacy/recommended-gts.js +++ /dev/null @@ -1,7 +0,0 @@ -const base = require('./base'); -const gtsRules = require('../recommended-rules-gts'); - -module.exports = { - ...base, - rules: gtsRules, -}; diff --git a/lib/config-legacy/recommended.js b/lib/config-legacy/recommended.js index 7f83b5711c..b67b7f772c 100644 --- a/lib/config-legacy/recommended.js +++ b/lib/config-legacy/recommended.js @@ -1,7 +1,15 @@ const base = require('./base'); const rules = require('../recommended-rules'); +const gjsRules = require('../recommended-rules-gjs'); +const gtsRules = require('../recommended-rules-gts'); +const tsEslintRecommended = require('../ts-eslint-recommended'); module.exports = { ...base, rules, + overrides: [ + ...base.overrides, + { files: ['**/*.gjs'], rules: gjsRules }, + { files: ['**/*.gts'], rules: { ...gtsRules, ...tsEslintRecommended } }, + ], }; diff --git a/lib/config/base.js b/lib/config/base.js index c6bdf52381..659953c1d3 100644 --- a/lib/config/base.js +++ b/lib/config/base.js @@ -3,6 +3,7 @@ const emberEslintParser = require('ember-eslint-parser'); module.exports = [ { + name: 'ember:plugin', plugins: { ember: plugin }, }, @@ -11,6 +12,7 @@ module.exports = [ * it's only relevant on gjs and gts files to detect if eslint config is correctly setup for this files. */ { + name: 'ember:parser', files: ['**/*.{gts,gjs}'], languageOptions: { parser: emberEslintParser, diff --git a/lib/config/recommended-gjs.js b/lib/config/recommended-gjs.js deleted file mode 100644 index f47466d291..0000000000 --- a/lib/config/recommended-gjs.js +++ /dev/null @@ -1,4 +0,0 @@ -const base = require('./base'); -const gjsRules = require('../recommended-rules-gjs'); - -module.exports = [...base, { rules: gjsRules }]; diff --git a/lib/config/recommended.js b/lib/config/recommended.js index ae7d5718d9..90343c104e 100644 --- a/lib/config/recommended.js +++ b/lib/config/recommended.js @@ -1,4 +1,16 @@ const base = require('./base'); const rules = require('../recommended-rules'); +const gjsRules = require('../recommended-rules-gjs'); +const gtsRules = require('../recommended-rules-gts'); +const tsEslintRecommended = require('../ts-eslint-recommended'); -module.exports = [...base, { rules }]; +module.exports = [ + ...base, + { name: 'ember:recommended', rules }, + { name: 'ember:recommended-gjs', files: ['**/*.gjs'], rules: gjsRules }, + { + name: 'ember:recommended-gts', + files: ['**/*.gts'], + rules: { ...gtsRules, ...tsEslintRecommended }, + }, +]; diff --git a/lib/config/template-lint-migration.js b/lib/config/template-lint-migration.js index f31183e594..f29f5b5882 100644 --- a/lib/config/template-lint-migration.js +++ b/lib/config/template-lint-migration.js @@ -3,6 +3,7 @@ const base = require('./base'); module.exports = [ ...base, { + name: 'ember:template-lint-migration', rules: { 'ember/template-builtin-component-arguments': 'error', 'ember/template-deprecated-inline-view-helper': 'error', diff --git a/lib/recommended-rules-gjs.js b/lib/recommended-rules-gjs.js index 477063c8c9..6650741680 100644 --- a/lib/recommended-rules-gjs.js +++ b/lib/recommended-rules-gjs.js @@ -5,5 +5,92 @@ * definitions, execute "npm run update" */ module.exports = { + 'ember/template-builtin-component-arguments': 'error', + 'ember/template-link-href-attributes': 'error', + 'ember/template-link-rel-noopener': 'error', + 'ember/template-no-abstract-roles': 'error', + 'ember/template-no-accesskey-attribute': 'error', + 'ember/template-no-action-on-submit-button': 'error', + 'ember/template-no-args-paths': 'error', + 'ember/template-no-arguments-for-html-elements': 'error', + 'ember/template-no-aria-hidden-body': 'error', + 'ember/template-no-aria-unsupported-elements': 'error', + 'ember/template-no-array-prototype-extensions': 'error', + 'ember/template-no-at-ember-render-modifiers': 'error', + 'ember/template-no-attrs-in-components': 'error', + 'ember/template-no-autofocus-attribute': 'error', + 'ember/template-no-block-params-for-html-elements': 'error', + 'ember/template-no-builtin-form-components': 'error', + 'ember/template-no-capital-arguments': 'error', + 'ember/template-no-class-bindings': 'error', + 'ember/template-no-debugger': 'error', + 'ember/template-no-duplicate-attributes': 'error', + 'ember/template-no-duplicate-id': 'error', + 'ember/template-no-duplicate-landmark-elements': 'error', + 'ember/template-no-empty-headings': 'error', + 'ember/template-no-extra-mut-helper-argument': 'error', + 'ember/template-no-forbidden-elements': 'error', + 'ember/template-no-heading-inside-button': 'error', + 'ember/template-no-html-comments': 'error', + 'ember/template-no-index-component-invocation': 'error', + 'ember/template-no-inline-styles': 'error', + 'ember/template-no-invalid-aria-attributes': 'error', + 'ember/template-no-invalid-interactive': 'error', + 'ember/template-no-invalid-link-text': 'error', + 'ember/template-no-invalid-link-title': 'error', + 'ember/template-no-invalid-meta': 'error', + 'ember/template-no-invalid-role': 'error', 'ember/template-no-let-reference': 'error', + 'ember/template-no-link-to-positional-params': 'error', + 'ember/template-no-link-to-tagname': 'error', + 'ember/template-no-log': 'error', + 'ember/template-no-negated-condition': 'error', + 'ember/template-no-nested-interactive': 'error', + 'ember/template-no-nested-landmark': 'error', + 'ember/template-no-nested-splattributes': 'error', + 'ember/template-no-obscure-array-access': 'error', + 'ember/template-no-obsolete-elements': 'error', + 'ember/template-no-outlet-outside-routes': 'error', + 'ember/template-no-passed-in-event-handlers': 'error', + 'ember/template-no-pointer-down-event-binding': 'error', + 'ember/template-no-positional-data-test-selectors': 'error', + 'ember/template-no-positive-tabindex': 'error', + 'ember/template-no-potential-path-strings': 'error', + 'ember/template-no-quoteless-attributes': 'error', + 'ember/template-no-redundant-fn': 'error', + 'ember/template-no-redundant-role': 'error', + 'ember/template-no-scope-outside-table-headings': 'error', + 'ember/template-no-shadowed-elements': 'error', + 'ember/template-no-template-lint-directives': 'error', + 'ember/template-no-triple-curlies': 'error', + 'ember/template-no-unbalanced-curlies': 'error', + 'ember/template-no-unbound': 'error', + 'ember/template-no-unknown-arguments-for-builtin-components': 'error', + 'ember/template-no-unnecessary-component-helper': 'error', + 'ember/template-no-unnecessary-curly-parens': 'error', + 'ember/template-no-unnecessary-curly-strings': 'error', + 'ember/template-no-unsupported-role-attributes': 'error', + 'ember/template-no-unused-block-params': 'error', + 'ember/template-no-valueless-arguments': 'error', + 'ember/template-no-whitespace-for-layout': 'error', + 'ember/template-no-whitespace-within-word': 'error', + 'ember/template-no-yield-only': 'error', + 'ember/template-no-yield-to-default': 'error', + 'ember/template-require-aria-activedescendant-tabindex': 'error', + 'ember/template-require-button-type': 'error', + 'ember/template-require-context-role': 'error', + 'ember/template-require-has-block-helper': 'error', + 'ember/template-require-iframe-title': 'error', + 'ember/template-require-input-label': 'error', + 'ember/template-require-lang-attribute': 'error', + 'ember/template-require-mandatory-role-attributes': 'error', + 'ember/template-require-media-caption': 'error', + 'ember/template-require-presentational-children': 'error', + 'ember/template-require-valid-alt-text': 'error', + 'ember/template-require-valid-named-block-naming-format': 'error', + 'ember/template-simple-modifiers': 'error', + 'ember/template-simple-unless': 'error', + 'ember/template-splat-attributes-only': 'error', + 'ember/template-style-concatenation': 'error', + 'ember/template-table-groups': 'error', }; diff --git a/lib/recommended-rules-gts.js b/lib/recommended-rules-gts.js index 477063c8c9..6650741680 100644 --- a/lib/recommended-rules-gts.js +++ b/lib/recommended-rules-gts.js @@ -5,5 +5,92 @@ * definitions, execute "npm run update" */ module.exports = { + 'ember/template-builtin-component-arguments': 'error', + 'ember/template-link-href-attributes': 'error', + 'ember/template-link-rel-noopener': 'error', + 'ember/template-no-abstract-roles': 'error', + 'ember/template-no-accesskey-attribute': 'error', + 'ember/template-no-action-on-submit-button': 'error', + 'ember/template-no-args-paths': 'error', + 'ember/template-no-arguments-for-html-elements': 'error', + 'ember/template-no-aria-hidden-body': 'error', + 'ember/template-no-aria-unsupported-elements': 'error', + 'ember/template-no-array-prototype-extensions': 'error', + 'ember/template-no-at-ember-render-modifiers': 'error', + 'ember/template-no-attrs-in-components': 'error', + 'ember/template-no-autofocus-attribute': 'error', + 'ember/template-no-block-params-for-html-elements': 'error', + 'ember/template-no-builtin-form-components': 'error', + 'ember/template-no-capital-arguments': 'error', + 'ember/template-no-class-bindings': 'error', + 'ember/template-no-debugger': 'error', + 'ember/template-no-duplicate-attributes': 'error', + 'ember/template-no-duplicate-id': 'error', + 'ember/template-no-duplicate-landmark-elements': 'error', + 'ember/template-no-empty-headings': 'error', + 'ember/template-no-extra-mut-helper-argument': 'error', + 'ember/template-no-forbidden-elements': 'error', + 'ember/template-no-heading-inside-button': 'error', + 'ember/template-no-html-comments': 'error', + 'ember/template-no-index-component-invocation': 'error', + 'ember/template-no-inline-styles': 'error', + 'ember/template-no-invalid-aria-attributes': 'error', + 'ember/template-no-invalid-interactive': 'error', + 'ember/template-no-invalid-link-text': 'error', + 'ember/template-no-invalid-link-title': 'error', + 'ember/template-no-invalid-meta': 'error', + 'ember/template-no-invalid-role': 'error', 'ember/template-no-let-reference': 'error', + 'ember/template-no-link-to-positional-params': 'error', + 'ember/template-no-link-to-tagname': 'error', + 'ember/template-no-log': 'error', + 'ember/template-no-negated-condition': 'error', + 'ember/template-no-nested-interactive': 'error', + 'ember/template-no-nested-landmark': 'error', + 'ember/template-no-nested-splattributes': 'error', + 'ember/template-no-obscure-array-access': 'error', + 'ember/template-no-obsolete-elements': 'error', + 'ember/template-no-outlet-outside-routes': 'error', + 'ember/template-no-passed-in-event-handlers': 'error', + 'ember/template-no-pointer-down-event-binding': 'error', + 'ember/template-no-positional-data-test-selectors': 'error', + 'ember/template-no-positive-tabindex': 'error', + 'ember/template-no-potential-path-strings': 'error', + 'ember/template-no-quoteless-attributes': 'error', + 'ember/template-no-redundant-fn': 'error', + 'ember/template-no-redundant-role': 'error', + 'ember/template-no-scope-outside-table-headings': 'error', + 'ember/template-no-shadowed-elements': 'error', + 'ember/template-no-template-lint-directives': 'error', + 'ember/template-no-triple-curlies': 'error', + 'ember/template-no-unbalanced-curlies': 'error', + 'ember/template-no-unbound': 'error', + 'ember/template-no-unknown-arguments-for-builtin-components': 'error', + 'ember/template-no-unnecessary-component-helper': 'error', + 'ember/template-no-unnecessary-curly-parens': 'error', + 'ember/template-no-unnecessary-curly-strings': 'error', + 'ember/template-no-unsupported-role-attributes': 'error', + 'ember/template-no-unused-block-params': 'error', + 'ember/template-no-valueless-arguments': 'error', + 'ember/template-no-whitespace-for-layout': 'error', + 'ember/template-no-whitespace-within-word': 'error', + 'ember/template-no-yield-only': 'error', + 'ember/template-no-yield-to-default': 'error', + 'ember/template-require-aria-activedescendant-tabindex': 'error', + 'ember/template-require-button-type': 'error', + 'ember/template-require-context-role': 'error', + 'ember/template-require-has-block-helper': 'error', + 'ember/template-require-iframe-title': 'error', + 'ember/template-require-input-label': 'error', + 'ember/template-require-lang-attribute': 'error', + 'ember/template-require-mandatory-role-attributes': 'error', + 'ember/template-require-media-caption': 'error', + 'ember/template-require-presentational-children': 'error', + 'ember/template-require-valid-alt-text': 'error', + 'ember/template-require-valid-named-block-naming-format': 'error', + 'ember/template-simple-modifiers': 'error', + 'ember/template-simple-unless': 'error', + 'ember/template-splat-attributes-only': 'error', + 'ember/template-style-concatenation': 'error', + 'ember/template-table-groups': 'error', }; diff --git a/lib/recommended-rules.js b/lib/recommended-rules.js index dba43e3de6..9a664d2d05 100644 --- a/lib/recommended-rules.js +++ b/lib/recommended-rules.js @@ -6,10 +6,8 @@ */ module.exports = { "ember/avoid-leaking-state-in-ember-objects": "error", - "ember/avoid-using-needs-in-controllers": "error", "ember/classic-decorator-hooks": "error", "ember/classic-decorator-no-classic-methods": "error", - "ember/closure-actions": "error", "ember/jquery-ember-run": "error", "ember/new-module-imports": "error", "ember/no-actions-hash": "error", @@ -18,23 +16,19 @@ module.exports = { "ember/no-at-ember-render-modifiers": "error", "ember/no-attrs-in-components": "error", "ember/no-attrs-snapshot": "error", + "ember/no-builtin-form-components": "error", "ember/no-capital-letters-in-routes": "error", "ember/no-classic-classes": "error", "ember/no-classic-components": "error", "ember/no-component-lifecycle-hooks": "error", "ember/no-computed-properties-in-native-classes": "error", "ember/no-controller-access-in-routes": "error", - "ember/no-deeply-nested-dependent-keys-with-each": "error", - "ember/no-deprecated-router-transition-methods": "error", "ember/no-duplicate-dependent-keys": "error", "ember/no-ember-super-in-es-classes": "error", "ember/no-ember-testing-in-module-scope": "error", "ember/no-empty-glimmer-component-classes": "error", - "ember/no-function-prototype-extensions": "error", - "ember/no-get-with-default": "error", "ember/no-get": "error", "ember/no-global-jquery": "error", - "ember/no-implicit-injections": "error", "ember/no-incorrect-calls-with-inline-anonymous-functions": "error", "ember/no-incorrect-computed-macros": "error", "ember/no-invalid-debug-function-arguments": "error", @@ -43,10 +37,10 @@ module.exports = { "ember/no-jquery": "error", "ember/no-legacy-test-waiters": "error", "ember/no-mixins": "error", + "ember/no-modifier-without-element-usage": "error", "ember/no-new-mixins": "error", "ember/no-noop-setup-on-error-in-before": "error", "ember/no-observers": "error", - "ember/no-old-shims": "error", "ember/no-on-calls-in-components": "error", "ember/no-pause-test": "error", "ember/no-private-routing-service": "error", @@ -55,16 +49,12 @@ module.exports = { "ember/no-settled-after-test-helper": "error", "ember/no-shadow-route-definition": "error", "ember/no-side-effects": "error", - "ember/no-string-prototype-extensions": "error", "ember/no-test-and-then": "error", "ember/no-test-import-export": "error", - "ember/no-test-module-for": "error", "ember/no-test-support-import": "error", "ember/no-test-this-render": "error", "ember/no-tracked-properties-from-args": "error", - "ember/no-try-invoke": "error", "ember/no-unnecessary-route-path-option": "error", - "ember/no-volatile-computed-properties": "error", "ember/prefer-ember-test-helpers": "error", "ember/require-computed-macros": "error", "ember/require-computed-property-dependencies": "error", @@ -72,7 +62,6 @@ module.exports = { "ember/require-super-in-lifecycle-hooks": "error", "ember/require-tagless-components": "error", "ember/require-valid-css-selector-in-test-helpers": "error", - "ember/routes-segments-snake-case": "error", "ember/use-brace-expansion": "error", "ember/use-ember-data-rfc-395-imports": "error" }; diff --git a/lib/recommended.mjs b/lib/recommended.mjs index 4e0a095b2c..aae42f9e01 100644 --- a/lib/recommended.mjs +++ b/lib/recommended.mjs @@ -2,6 +2,7 @@ import emberPlugin from './index.js'; import baseRules from './recommended-rules.js'; import gjsRules from './recommended-rules-gjs.js'; import gtsRules from './recommended-rules-gts.js'; +import tsEslintRecommended from './ts-eslint-recommended.js'; import emberParser from 'ember-eslint-parser'; import emberHbsParser from 'ember-eslint-parser/hbs'; @@ -52,6 +53,7 @@ export const gts = { rules: { ...base.rules, ...gtsRules, + ...tsEslintRecommended, }, }; diff --git a/lib/rules/avoid-using-needs-in-controllers.js b/lib/rules/avoid-using-needs-in-controllers.js index 228250d9b6..5ebf8173b6 100644 --- a/lib/rules/avoid-using-needs-in-controllers.js +++ b/lib/rules/avoid-using-needs-in-controllers.js @@ -13,7 +13,7 @@ module.exports = { docs: { description: 'disallow using `needs` in controllers', category: 'Controllers', - recommended: true, + recommended: false, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/avoid-using-needs-in-controllers.md', }, fixable: null, diff --git a/lib/rules/closure-actions.js b/lib/rules/closure-actions.js index 03fa6c5705..0c5c7058e3 100644 --- a/lib/rules/closure-actions.js +++ b/lib/rules/closure-actions.js @@ -15,7 +15,7 @@ module.exports = { docs: { description: 'enforce usage of closure actions', category: 'Deprecations', - recommended: true, + recommended: false, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/closure-actions.md', }, fixable: null, diff --git a/lib/rules/no-builtin-form-components.js b/lib/rules/no-builtin-form-components.js index 06554ccf7a..f74ebeb828 100644 --- a/lib/rules/no-builtin-form-components.js +++ b/lib/rules/no-builtin-form-components.js @@ -12,7 +12,7 @@ module.exports = { docs: { description: 'disallow usage of built-in form components', category: 'Components', - recommended: false, + recommended: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/no-builtin-form-components.md', }, fixable: null, diff --git a/lib/rules/no-deeply-nested-dependent-keys-with-each.js b/lib/rules/no-deeply-nested-dependent-keys-with-each.js index 638d47c43a..6d47a5b148 100644 --- a/lib/rules/no-deeply-nested-dependent-keys-with-each.js +++ b/lib/rules/no-deeply-nested-dependent-keys-with-each.js @@ -17,7 +17,7 @@ module.exports = { docs: { description: 'disallow usage of deeply-nested computed property dependent keys with `@each`', category: 'Computed Properties', - recommended: true, + recommended: false, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/no-deeply-nested-dependent-keys-with-each.md', }, fixable: null, diff --git a/lib/rules/no-deprecated-router-transition-methods.js b/lib/rules/no-deprecated-router-transition-methods.js index 519795f8a4..d32c12104e 100644 --- a/lib/rules/no-deprecated-router-transition-methods.js +++ b/lib/rules/no-deprecated-router-transition-methods.js @@ -61,7 +61,7 @@ module.exports = { docs: { description: 'enforce usage of router service transition methods', category: 'Deprecations', - recommended: true, + recommended: false, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/no-deprecated-router-transition-methods.md', }, fixable: 'code', diff --git a/lib/rules/no-function-prototype-extensions.js b/lib/rules/no-function-prototype-extensions.js index c3a1776b1d..21275a4def 100644 --- a/lib/rules/no-function-prototype-extensions.js +++ b/lib/rules/no-function-prototype-extensions.js @@ -13,7 +13,7 @@ module.exports = { docs: { description: "disallow usage of Ember's `function` prototype extensions", category: 'Deprecations', - recommended: true, + recommended: false, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/no-function-prototype-extensions.md', }, fixable: null, diff --git a/lib/rules/no-get-with-default.js b/lib/rules/no-get-with-default.js index 35814d4210..9c15921262 100644 --- a/lib/rules/no-get-with-default.js +++ b/lib/rules/no-get-with-default.js @@ -13,7 +13,7 @@ module.exports = { docs: { description: "disallow usage of the Ember's `getWithDefault` function", category: 'Ember Object', - recommended: true, + recommended: false, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/no-get-with-default.md', }, fixable: 'code', diff --git a/lib/rules/no-implicit-injections.js b/lib/rules/no-implicit-injections.js index 2bcb1db58d..ddef7df63f 100644 --- a/lib/rules/no-implicit-injections.js +++ b/lib/rules/no-implicit-injections.js @@ -63,7 +63,7 @@ module.exports = { docs: { description: 'enforce usage of implicit service injections', category: 'Deprecations', - recommended: true, + recommended: false, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/no-implicit-injections.md', }, fixable: 'code', diff --git a/lib/rules/no-modifier-without-element-usage.js b/lib/rules/no-modifier-without-element-usage.js index 6665552b38..b1bb083357 100644 --- a/lib/rules/no-modifier-without-element-usage.js +++ b/lib/rules/no-modifier-without-element-usage.js @@ -91,7 +91,7 @@ module.exports = { docs: { description: 'disallow modifiers that never use their element', category: 'Best Practices', - recommended: false, + recommended: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/no-modifier-without-element-usage.md', }, fixable: null, diff --git a/lib/rules/no-old-shims.js b/lib/rules/no-old-shims.js index fbaf660a8b..b1e8a51bb5 100644 --- a/lib/rules/no-old-shims.js +++ b/lib/rules/no-old-shims.js @@ -255,7 +255,7 @@ module.exports = { docs: { description: 'disallow usage of old shims for modules', category: 'Deprecations', - recommended: true, + recommended: false, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/no-old-shims.md', }, fixable: 'code', diff --git a/lib/rules/no-string-prototype-extensions.js b/lib/rules/no-string-prototype-extensions.js index 399ad3d5a2..679d318080 100644 --- a/lib/rules/no-string-prototype-extensions.js +++ b/lib/rules/no-string-prototype-extensions.js @@ -23,7 +23,7 @@ module.exports = { docs: { description: 'disallow usage of `String` prototype extensions', category: 'Deprecations', - recommended: true, + recommended: false, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/no-string-prototype-extensions.md', }, fixable: null, diff --git a/lib/rules/no-test-module-for.js b/lib/rules/no-test-module-for.js index 8a85f6ffb0..24870ce14a 100644 --- a/lib/rules/no-test-module-for.js +++ b/lib/rules/no-test-module-for.js @@ -18,7 +18,7 @@ module.exports = { docs: { description: 'disallow usage of `moduleFor`, `moduleForComponent`, etc', category: 'Testing', - recommended: true, + recommended: false, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/no-test-module-for.md', }, fixable: null, diff --git a/lib/rules/no-try-invoke.js b/lib/rules/no-try-invoke.js index b1dfc0ac35..34ceaaf8ed 100644 --- a/lib/rules/no-try-invoke.js +++ b/lib/rules/no-try-invoke.js @@ -13,7 +13,7 @@ module.exports = { docs: { description: "disallow usage of the Ember's `tryInvoke` util", category: 'Ember Object', - recommended: true, + recommended: false, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/no-try-invoke.md', }, fixable: null, diff --git a/lib/rules/no-volatile-computed-properties.js b/lib/rules/no-volatile-computed-properties.js index 26b73da2c1..3ffea90115 100644 --- a/lib/rules/no-volatile-computed-properties.js +++ b/lib/rules/no-volatile-computed-properties.js @@ -15,7 +15,7 @@ module.exports = { docs: { description: 'disallow volatile computed properties', category: 'Computed Properties', - recommended: true, + recommended: false, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/no-volatile-computed-properties.md', }, schema: [], diff --git a/lib/rules/routes-segments-snake-case.js b/lib/rules/routes-segments-snake-case.js index abe987594b..33a6c5f74c 100644 --- a/lib/rules/routes-segments-snake-case.js +++ b/lib/rules/routes-segments-snake-case.js @@ -20,7 +20,7 @@ module.exports = { docs: { description: 'enforce usage of snake_cased dynamic segments in routes', category: 'Routes', - recommended: true, + recommended: false, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/routes-segments-snake-case.md', }, fixable: null, diff --git a/lib/rules/template-builtin-component-arguments.js b/lib/rules/template-builtin-component-arguments.js index 6cc7873827..0d8f23b72e 100644 --- a/lib/rules/template-builtin-component-arguments.js +++ b/lib/rules/template-builtin-component-arguments.js @@ -15,6 +15,8 @@ module.exports = { description: 'disallow setting certain attributes on builtin components', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-builtin-component-arguments.md', }, fixable: null, diff --git a/lib/rules/template-link-href-attributes.js b/lib/rules/template-link-href-attributes.js index 8d1e378117..3c4188c661 100644 --- a/lib/rules/template-link-href-attributes.js +++ b/lib/rules/template-link-href-attributes.js @@ -6,6 +6,8 @@ module.exports = { description: 'require href attribute on link elements', category: 'Accessibility', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-link-href-attributes.md', }, fixable: null, diff --git a/lib/rules/template-link-rel-noopener.js b/lib/rules/template-link-rel-noopener.js index 257eccb632..9812c9a977 100644 --- a/lib/rules/template-link-rel-noopener.js +++ b/lib/rules/template-link-rel-noopener.js @@ -6,6 +6,8 @@ module.exports = { description: 'require rel="noopener noreferrer" on links with target="_blank"', category: 'Security', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-link-rel-noopener.md', }, fixable: 'code', diff --git a/lib/rules/template-no-abstract-roles.js b/lib/rules/template-no-abstract-roles.js index 1bb8a882e8..4433486dee 100644 --- a/lib/rules/template-no-abstract-roles.js +++ b/lib/rules/template-no-abstract-roles.js @@ -15,6 +15,8 @@ module.exports = { description: 'disallow abstract ARIA roles', category: 'Accessibility', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-abstract-roles.md', }, fixable: null, diff --git a/lib/rules/template-no-accesskey-attribute.js b/lib/rules/template-no-accesskey-attribute.js index 2027823769..16773029bb 100644 --- a/lib/rules/template-no-accesskey-attribute.js +++ b/lib/rules/template-no-accesskey-attribute.js @@ -6,6 +6,8 @@ module.exports = { description: 'disallow accesskey attribute', category: 'Accessibility', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-accesskey-attribute.md', }, fixable: 'code', diff --git a/lib/rules/template-no-action-on-submit-button.js b/lib/rules/template-no-action-on-submit-button.js index 4e930148be..ab7b49e6fc 100644 --- a/lib/rules/template-no-action-on-submit-button.js +++ b/lib/rules/template-no-action-on-submit-button.js @@ -63,6 +63,8 @@ module.exports = { docs: { description: 'disallow action attribute on submit buttons', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-action-on-submit-button.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-args-paths.js b/lib/rules/template-no-args-paths.js index e687bcb112..044667e7bc 100644 --- a/lib/rules/template-no-args-paths.js +++ b/lib/rules/template-no-args-paths.js @@ -5,6 +5,8 @@ module.exports = { docs: { description: 'disallow args.foo paths in templates, use @foo instead', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-args-paths.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-arguments-for-html-elements.js b/lib/rules/template-no-arguments-for-html-elements.js index 101e2c7232..2a94113c87 100644 --- a/lib/rules/template-no-arguments-for-html-elements.js +++ b/lib/rules/template-no-arguments-for-html-elements.js @@ -8,6 +8,8 @@ module.exports = { description: 'disallow @arguments on HTML elements', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-arguments-for-html-elements.md', }, fixable: null, diff --git a/lib/rules/template-no-aria-hidden-body.js b/lib/rules/template-no-aria-hidden-body.js index 0b15480490..b2a0ac4dae 100644 --- a/lib/rules/template-no-aria-hidden-body.js +++ b/lib/rules/template-no-aria-hidden-body.js @@ -6,6 +6,8 @@ module.exports = { description: 'disallow aria-hidden on body element', category: 'Accessibility', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-aria-hidden-body.md', }, fixable: 'code', diff --git a/lib/rules/template-no-aria-unsupported-elements.js b/lib/rules/template-no-aria-unsupported-elements.js index 48a0703bf0..bb9bb95fcc 100644 --- a/lib/rules/template-no-aria-unsupported-elements.js +++ b/lib/rules/template-no-aria-unsupported-elements.js @@ -16,6 +16,8 @@ module.exports = { 'disallow ARIA roles, states, and properties on elements that do not support them', category: 'Accessibility', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-aria-unsupported-elements.md', }, fixable: null, diff --git a/lib/rules/template-no-array-prototype-extensions.js b/lib/rules/template-no-array-prototype-extensions.js index c9e03e5cd7..ecc5eaa83a 100644 --- a/lib/rules/template-no-array-prototype-extensions.js +++ b/lib/rules/template-no-array-prototype-extensions.js @@ -81,6 +81,8 @@ module.exports = { description: 'disallow usage of Ember Array prototype extensions', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-array-prototype-extensions.md', }, fixable: 'code', diff --git a/lib/rules/template-no-at-ember-render-modifiers.js b/lib/rules/template-no-at-ember-render-modifiers.js index fa93b2c776..bf70668026 100644 --- a/lib/rules/template-no-at-ember-render-modifiers.js +++ b/lib/rules/template-no-at-ember-render-modifiers.js @@ -22,6 +22,8 @@ module.exports = { docs: { description: 'disallow usage of @ember/render-modifiers', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-at-ember-render-modifiers.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-attrs-in-components.js b/lib/rules/template-no-attrs-in-components.js index db9b3e730b..14eb1b9462 100644 --- a/lib/rules/template-no-attrs-in-components.js +++ b/lib/rules/template-no-attrs-in-components.js @@ -12,6 +12,8 @@ module.exports = { docs: { description: 'disallow attrs in component templates', category: 'Deprecations', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-attrs-in-components.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-autofocus-attribute.js b/lib/rules/template-no-autofocus-attribute.js index b63768b9f1..b636eed90a 100644 --- a/lib/rules/template-no-autofocus-attribute.js +++ b/lib/rules/template-no-autofocus-attribute.js @@ -83,6 +83,8 @@ module.exports = { description: 'disallow autofocus attribute', category: 'Accessibility', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-autofocus-attribute.md', }, fixable: 'code', diff --git a/lib/rules/template-no-block-params-for-html-elements.js b/lib/rules/template-no-block-params-for-html-elements.js index 711441140b..c200ac2e99 100644 --- a/lib/rules/template-no-block-params-for-html-elements.js +++ b/lib/rules/template-no-block-params-for-html-elements.js @@ -8,6 +8,8 @@ module.exports = { description: 'disallow block params on HTML elements', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-block-params-for-html-elements.md', }, fixable: null, diff --git a/lib/rules/template-no-builtin-form-components.js b/lib/rules/template-no-builtin-form-components.js index 10fc257cf0..4f0717ab05 100644 --- a/lib/rules/template-no-builtin-form-components.js +++ b/lib/rules/template-no-builtin-form-components.js @@ -5,6 +5,8 @@ module.exports = { docs: { description: 'disallow usage of built-in form components', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-builtin-form-components.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-capital-arguments.js b/lib/rules/template-no-capital-arguments.js index f39fe4dfdf..160e21fe11 100644 --- a/lib/rules/template-no-capital-arguments.js +++ b/lib/rules/template-no-capital-arguments.js @@ -9,6 +9,8 @@ module.exports = { description: 'disallow capital arguments (use lowercase @arg instead of @Arg)', category: 'Best Practices', recommended: false, + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-capital-arguments.md', }, fixable: null, diff --git a/lib/rules/template-no-class-bindings.js b/lib/rules/template-no-class-bindings.js index 026028af31..6558baf563 100644 --- a/lib/rules/template-no-class-bindings.js +++ b/lib/rules/template-no-class-bindings.js @@ -5,6 +5,8 @@ module.exports = { docs: { description: 'disallow passing classBinding or classNameBindings as arguments in templates', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-class-bindings.md', templateMode: 'loose', }, diff --git a/lib/rules/template-no-debugger.js b/lib/rules/template-no-debugger.js index c755a815a7..0544e519e2 100644 --- a/lib/rules/template-no-debugger.js +++ b/lib/rules/template-no-debugger.js @@ -5,6 +5,8 @@ module.exports = { docs: { description: 'disallow {{debugger}} in templates', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-debugger.md', }, fixable: null, diff --git a/lib/rules/template-no-duplicate-attributes.js b/lib/rules/template-no-duplicate-attributes.js index 750b3d9a86..13bb3b72b1 100644 --- a/lib/rules/template-no-duplicate-attributes.js +++ b/lib/rules/template-no-duplicate-attributes.js @@ -5,6 +5,8 @@ module.exports = { docs: { description: 'disallow duplicate attribute names in templates', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-duplicate-attributes.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-duplicate-id.js b/lib/rules/template-no-duplicate-id.js index 57dfedbf75..dd789d4bfa 100644 --- a/lib/rules/template-no-duplicate-id.js +++ b/lib/rules/template-no-duplicate-id.js @@ -33,6 +33,8 @@ module.exports = { docs: { description: 'disallow duplicate id attributes', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-duplicate-id.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-duplicate-landmark-elements.js b/lib/rules/template-no-duplicate-landmark-elements.js index 03fdec0b76..a93e63cc53 100644 --- a/lib/rules/template-no-duplicate-landmark-elements.js +++ b/lib/rules/template-no-duplicate-landmark-elements.js @@ -11,6 +11,8 @@ module.exports = { docs: { description: 'disallow duplicate landmark elements without unique labels', category: 'Accessibility', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-duplicate-landmark-elements.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-empty-headings.js b/lib/rules/template-no-empty-headings.js index 2abd303558..b976cb871e 100644 --- a/lib/rules/template-no-empty-headings.js +++ b/lib/rules/template-no-empty-headings.js @@ -98,6 +98,8 @@ module.exports = { description: 'disallow empty heading elements', category: 'Accessibility', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-empty-headings.md', }, schema: [], diff --git a/lib/rules/template-no-extra-mut-helper-argument.js b/lib/rules/template-no-extra-mut-helper-argument.js index 8fda9ca18e..e723f65cf9 100644 --- a/lib/rules/template-no-extra-mut-helper-argument.js +++ b/lib/rules/template-no-extra-mut-helper-argument.js @@ -6,6 +6,8 @@ module.exports = { description: 'disallow passing more than one argument to the mut helper', category: 'Possible Errors', recommended: false, + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-extra-mut-helper-argument.md', templateMode: 'loose', }, diff --git a/lib/rules/template-no-forbidden-elements.js b/lib/rules/template-no-forbidden-elements.js index c9780a93b1..8d9fe4a8f7 100644 --- a/lib/rules/template-no-forbidden-elements.js +++ b/lib/rules/template-no-forbidden-elements.js @@ -7,8 +7,8 @@ module.exports = { docs: { description: 'disallow specific HTML elements', category: 'Best Practices', - recommendedGjs: false, - recommendedGts: false, + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-forbidden-elements.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-heading-inside-button.js b/lib/rules/template-no-heading-inside-button.js index 8c48cfdcc0..52b8ff2ec1 100644 --- a/lib/rules/template-no-heading-inside-button.js +++ b/lib/rules/template-no-heading-inside-button.js @@ -27,6 +27,8 @@ module.exports = { description: 'disallow heading elements inside button elements', category: 'Accessibility', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-heading-inside-button.md', }, schema: [], diff --git a/lib/rules/template-no-html-comments.js b/lib/rules/template-no-html-comments.js index bbb86a35da..e32a46a6d9 100644 --- a/lib/rules/template-no-html-comments.js +++ b/lib/rules/template-no-html-comments.js @@ -5,6 +5,8 @@ module.exports = { docs: { description: 'disallow HTML comments in templates', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-html-comments.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-index-component-invocation.js b/lib/rules/template-no-index-component-invocation.js index a3f71e98ec..e40d276a63 100644 --- a/lib/rules/template-no-index-component-invocation.js +++ b/lib/rules/template-no-index-component-invocation.js @@ -7,6 +7,8 @@ module.exports = { description: 'disallow index component invocations', category: 'Best Practices', recommended: false, + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-index-component-invocation.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-inline-styles.js b/lib/rules/template-no-inline-styles.js index 2a43da2e0a..e25bb6b82d 100644 --- a/lib/rules/template-no-inline-styles.js +++ b/lib/rules/template-no-inline-styles.js @@ -5,8 +5,8 @@ module.exports = { docs: { description: 'disallow inline styles', category: 'Best Practices', - recommendedGjs: false, - recommendedGts: false, + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-inline-styles.md', }, schema: [ diff --git a/lib/rules/template-no-invalid-aria-attributes.js b/lib/rules/template-no-invalid-aria-attributes.js index 6eead8bf76..d143bebf13 100644 --- a/lib/rules/template-no-invalid-aria-attributes.js +++ b/lib/rules/template-no-invalid-aria-attributes.js @@ -114,6 +114,8 @@ module.exports = { docs: { description: 'disallow invalid aria-* attributes', category: 'Accessibility', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-invalid-aria-attributes.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-invalid-interactive.js b/lib/rules/template-no-invalid-interactive.js index 8498cc6bc2..6f9ee75868 100644 --- a/lib/rules/template-no-invalid-interactive.js +++ b/lib/rules/template-no-invalid-interactive.js @@ -44,6 +44,8 @@ module.exports = { description: 'disallow non-interactive elements with interactive handlers', category: 'Accessibility', templateMode: 'both', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-invalid-interactive.md', }, schema: [ diff --git a/lib/rules/template-no-invalid-link-text.js b/lib/rules/template-no-invalid-link-text.js index b90bfaa3cd..4108a50051 100644 --- a/lib/rules/template-no-invalid-link-text.js +++ b/lib/rules/template-no-invalid-link-text.js @@ -78,6 +78,8 @@ module.exports = { docs: { description: 'disallow invalid or uninformative link text content', category: 'Accessibility', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-invalid-link-text.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-invalid-link-title.js b/lib/rules/template-no-invalid-link-title.js index 93cf517c23..ee018f59a3 100644 --- a/lib/rules/template-no-invalid-link-title.js +++ b/lib/rules/template-no-invalid-link-title.js @@ -29,6 +29,8 @@ module.exports = { docs: { description: 'disallow invalid title attributes on link elements', category: 'Accessibility', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-invalid-link-title.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-invalid-meta.js b/lib/rules/template-no-invalid-meta.js index 1d42a41aba..43f9a370d9 100644 --- a/lib/rules/template-no-invalid-meta.js +++ b/lib/rules/template-no-invalid-meta.js @@ -5,6 +5,8 @@ module.exports = { docs: { description: 'disallow invalid meta tags', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-invalid-meta.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-invalid-role.js b/lib/rules/template-no-invalid-role.js index 4c694db747..e7fded5ce6 100644 --- a/lib/rules/template-no-invalid-role.js +++ b/lib/rules/template-no-invalid-role.js @@ -118,6 +118,8 @@ module.exports = { docs: { description: 'disallow invalid ARIA roles', category: 'Accessibility', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-invalid-role.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-link-to-positional-params.js b/lib/rules/template-no-link-to-positional-params.js index a40a1e11ce..5256927609 100644 --- a/lib/rules/template-no-link-to-positional-params.js +++ b/lib/rules/template-no-link-to-positional-params.js @@ -5,6 +5,8 @@ module.exports = { docs: { description: 'disallow positional params in LinkTo component', category: 'Deprecations', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-link-to-positional-params.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-link-to-tagname.js b/lib/rules/template-no-link-to-tagname.js index 67a04b154a..1f9551b4dd 100644 --- a/lib/rules/template-no-link-to-tagname.js +++ b/lib/rules/template-no-link-to-tagname.js @@ -5,6 +5,8 @@ module.exports = { docs: { description: 'disallow tagName attribute on LinkTo component', category: 'Deprecations', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-link-to-tagname.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-log.js b/lib/rules/template-no-log.js index 1ea57ee4b8..e7ff1119ba 100644 --- a/lib/rules/template-no-log.js +++ b/lib/rules/template-no-log.js @@ -5,6 +5,8 @@ module.exports = { docs: { description: 'disallow {{log}} in templates', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-log.md', }, fixable: null, diff --git a/lib/rules/template-no-negated-condition.js b/lib/rules/template-no-negated-condition.js index c1a64731bc..8b3e0873d8 100644 --- a/lib/rules/template-no-negated-condition.js +++ b/lib/rules/template-no-negated-condition.js @@ -53,6 +53,8 @@ module.exports = { docs: { description: 'disallow negated conditions in if/unless', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-negated-condition.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-nested-interactive.js b/lib/rules/template-no-nested-interactive.js index 2c5360f052..6f879abee4 100644 --- a/lib/rules/template-no-nested-interactive.js +++ b/lib/rules/template-no-nested-interactive.js @@ -119,6 +119,8 @@ module.exports = { docs: { description: 'disallow nested interactive elements', category: 'Accessibility', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-nested-interactive.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-nested-landmark.js b/lib/rules/template-no-nested-landmark.js index ba27c44fe6..7453299eb4 100644 --- a/lib/rules/template-no-nested-landmark.js +++ b/lib/rules/template-no-nested-landmark.js @@ -43,6 +43,8 @@ module.exports = { docs: { description: 'disallow nested landmark elements', category: 'Accessibility', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-nested-landmark.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-nested-splattributes.js b/lib/rules/template-no-nested-splattributes.js index 9dd4258917..596cd3afc8 100644 --- a/lib/rules/template-no-nested-splattributes.js +++ b/lib/rules/template-no-nested-splattributes.js @@ -5,6 +5,8 @@ module.exports = { docs: { description: 'disallow nested ...attributes usage', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-nested-splattributes.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-obscure-array-access.js b/lib/rules/template-no-obscure-array-access.js index f12fa40b93..e6921b14f5 100644 --- a/lib/rules/template-no-obscure-array-access.js +++ b/lib/rules/template-no-obscure-array-access.js @@ -32,6 +32,8 @@ module.exports = { docs: { description: 'disallow obscure array access patterns like `objectPath.@each.property`', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-obscure-array-access.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-obsolete-elements.js b/lib/rules/template-no-obsolete-elements.js index 31f97a07e3..e6c7fb4ab9 100644 --- a/lib/rules/template-no-obsolete-elements.js +++ b/lib/rules/template-no-obsolete-elements.js @@ -46,6 +46,8 @@ module.exports = { docs: { description: 'disallow obsolete HTML elements', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-obsolete-elements.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-outlet-outside-routes.js b/lib/rules/template-no-outlet-outside-routes.js index 3fcc6dcbb6..9c6ee05796 100644 --- a/lib/rules/template-no-outlet-outside-routes.js +++ b/lib/rules/template-no-outlet-outside-routes.js @@ -35,6 +35,8 @@ module.exports = { docs: { description: 'disallow {{outlet}} outside of route templates', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-outlet-outside-routes.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-passed-in-event-handlers.js b/lib/rules/template-no-passed-in-event-handlers.js index aff8e15c01..4225a0f49f 100644 --- a/lib/rules/template-no-passed-in-event-handlers.js +++ b/lib/rules/template-no-passed-in-event-handlers.js @@ -40,6 +40,8 @@ module.exports = { docs: { description: 'disallow passing event handlers directly as component arguments', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-passed-in-event-handlers.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-pointer-down-event-binding.js b/lib/rules/template-no-pointer-down-event-binding.js index b33b41a41d..d568b72558 100644 --- a/lib/rules/template-no-pointer-down-event-binding.js +++ b/lib/rules/template-no-pointer-down-event-binding.js @@ -5,6 +5,8 @@ module.exports = { docs: { description: 'disallow pointer down event bindings', category: 'Accessibility', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-pointer-down-event-binding.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-positional-data-test-selectors.js b/lib/rules/template-no-positional-data-test-selectors.js index d308da5dcd..896a489835 100644 --- a/lib/rules/template-no-positional-data-test-selectors.js +++ b/lib/rules/template-no-positional-data-test-selectors.js @@ -70,6 +70,8 @@ module.exports = { docs: { description: 'disallow positional data-test-* params in curly invocations', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-positional-data-test-selectors.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-positive-tabindex.js b/lib/rules/template-no-positive-tabindex.js index 6764634a43..6ae0433f9f 100644 --- a/lib/rules/template-no-positive-tabindex.js +++ b/lib/rules/template-no-positive-tabindex.js @@ -95,6 +95,8 @@ module.exports = { docs: { description: 'disallow positive tabindex values', category: 'Accessibility', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-positive-tabindex.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-potential-path-strings.js b/lib/rules/template-no-potential-path-strings.js index 2dd83d94b5..4850709325 100644 --- a/lib/rules/template-no-potential-path-strings.js +++ b/lib/rules/template-no-potential-path-strings.js @@ -7,6 +7,8 @@ module.exports = { docs: { description: 'disallow potential path strings in attribute values', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-potential-path-strings.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-quoteless-attributes.js b/lib/rules/template-no-quoteless-attributes.js index 821ec40005..9b29b9c37c 100644 --- a/lib/rules/template-no-quoteless-attributes.js +++ b/lib/rules/template-no-quoteless-attributes.js @@ -5,6 +5,8 @@ module.exports = { docs: { description: 'require quotes on all attribute values', category: 'Style', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-quoteless-attributes.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-redundant-fn.js b/lib/rules/template-no-redundant-fn.js index d4c2a4a883..e4f589ff32 100644 --- a/lib/rules/template-no-redundant-fn.js +++ b/lib/rules/template-no-redundant-fn.js @@ -5,6 +5,8 @@ module.exports = { docs: { description: 'disallow unnecessary usage of (fn) helper', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-redundant-fn.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-redundant-role.js b/lib/rules/template-no-redundant-role.js index 712f2a223f..a598639d7f 100644 --- a/lib/rules/template-no-redundant-role.js +++ b/lib/rules/template-no-redundant-role.js @@ -131,6 +131,8 @@ module.exports = { docs: { description: 'disallow redundant role attributes', category: 'Accessibility', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-redundant-role.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-scope-outside-table-headings.js b/lib/rules/template-no-scope-outside-table-headings.js index 16a5a8c1fb..e8f5a02580 100644 --- a/lib/rules/template-no-scope-outside-table-headings.js +++ b/lib/rules/template-no-scope-outside-table-headings.js @@ -9,6 +9,8 @@ module.exports = { docs: { description: 'disallow scope attribute outside th elements', category: 'Possible Errors', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-scope-outside-table-headings.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-shadowed-elements.js b/lib/rules/template-no-shadowed-elements.js index fa63d08852..627ac999da 100644 --- a/lib/rules/template-no-shadowed-elements.js +++ b/lib/rules/template-no-shadowed-elements.js @@ -35,6 +35,8 @@ module.exports = { docs: { description: 'disallow ambiguity with block param names shadowing HTML elements', category: 'Possible Errors', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-shadowed-elements.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-template-lint-directives.js b/lib/rules/template-no-template-lint-directives.js index 041e6d9cea..89911766b8 100644 --- a/lib/rules/template-no-template-lint-directives.js +++ b/lib/rules/template-no-template-lint-directives.js @@ -11,6 +11,8 @@ module.exports = { description: 'disallow `{{! template-lint-* }}` directives (use the `{{! eslint-* }}` equivalents)', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-template-lint-directives.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-triple-curlies.js b/lib/rules/template-no-triple-curlies.js index 8b7abf1013..b84f305f9f 100644 --- a/lib/rules/template-no-triple-curlies.js +++ b/lib/rules/template-no-triple-curlies.js @@ -5,6 +5,8 @@ module.exports = { docs: { description: 'disallow usage of triple curly brackets (unescaped variables)', category: 'Security', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-triple-curlies.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-unbalanced-curlies.js b/lib/rules/template-no-unbalanced-curlies.js index cefd70857b..f654be30e7 100644 --- a/lib/rules/template-no-unbalanced-curlies.js +++ b/lib/rules/template-no-unbalanced-curlies.js @@ -10,6 +10,8 @@ module.exports = { docs: { description: 'disallow unbalanced mustache curlies', category: 'Possible Errors', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-unbalanced-curlies.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-unbound.js b/lib/rules/template-no-unbound.js index 22b6d83a4a..aaa3ec4212 100644 --- a/lib/rules/template-no-unbound.js +++ b/lib/rules/template-no-unbound.js @@ -5,6 +5,8 @@ module.exports = { docs: { description: 'disallow {{unbound}} helper', category: 'Deprecations', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-unbound.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-unknown-arguments-for-builtin-components.js b/lib/rules/template-no-unknown-arguments-for-builtin-components.js index 043e73a110..258d1e33e8 100644 --- a/lib/rules/template-no-unknown-arguments-for-builtin-components.js +++ b/lib/rules/template-no-unknown-arguments-for-builtin-components.js @@ -400,6 +400,8 @@ module.exports = { docs: { description: 'disallow unknown arguments for built-in components', category: 'Possible Errors', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-unknown-arguments-for-builtin-components.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-unnecessary-component-helper.js b/lib/rules/template-no-unnecessary-component-helper.js index 4fd60988cf..b379b76939 100644 --- a/lib/rules/template-no-unnecessary-component-helper.js +++ b/lib/rules/template-no-unnecessary-component-helper.js @@ -52,6 +52,8 @@ module.exports = { docs: { description: 'disallow unnecessary component helper', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-unnecessary-component-helper.md', templateMode: 'loose', }, diff --git a/lib/rules/template-no-unnecessary-curly-parens.js b/lib/rules/template-no-unnecessary-curly-parens.js index d656ed75cc..b52ed0aebf 100644 --- a/lib/rules/template-no-unnecessary-curly-parens.js +++ b/lib/rules/template-no-unnecessary-curly-parens.js @@ -15,6 +15,8 @@ module.exports = { docs: { description: 'disallow unnecessary parentheses enclosing statements in curlies', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-unnecessary-curly-parens.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-unnecessary-curly-strings.js b/lib/rules/template-no-unnecessary-curly-strings.js index af24bfb793..47be24727e 100644 --- a/lib/rules/template-no-unnecessary-curly-strings.js +++ b/lib/rules/template-no-unnecessary-curly-strings.js @@ -5,6 +5,8 @@ module.exports = { docs: { description: 'disallow unnecessary curly braces in string interpolations', category: 'Style', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-unnecessary-curly-strings.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-unsupported-role-attributes.js b/lib/rules/template-no-unsupported-role-attributes.js index ffe4eb142e..57eeacaa07 100644 --- a/lib/rules/template-no-unsupported-role-attributes.js +++ b/lib/rules/template-no-unsupported-role-attributes.js @@ -136,6 +136,8 @@ module.exports = { docs: { description: 'disallow ARIA attributes that are not supported by the element role', category: 'Accessibility', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-unsupported-role-attributes.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-unused-block-params.js b/lib/rules/template-no-unused-block-params.js index 833e309571..5c11b763fe 100644 --- a/lib/rules/template-no-unused-block-params.js +++ b/lib/rules/template-no-unused-block-params.js @@ -173,6 +173,8 @@ module.exports = { docs: { description: 'disallow unused block parameters in templates', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-unused-block-params.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-valueless-arguments.js b/lib/rules/template-no-valueless-arguments.js index d7c1befb40..43805238f9 100644 --- a/lib/rules/template-no-valueless-arguments.js +++ b/lib/rules/template-no-valueless-arguments.js @@ -9,6 +9,8 @@ module.exports = { docs: { description: 'disallow valueless named arguments', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-valueless-arguments.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-whitespace-for-layout.js b/lib/rules/template-no-whitespace-for-layout.js index 04ca3f5f87..71d37517f3 100644 --- a/lib/rules/template-no-whitespace-for-layout.js +++ b/lib/rules/template-no-whitespace-for-layout.js @@ -7,6 +7,8 @@ module.exports = { docs: { description: 'disallow using whitespace for layout purposes', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-whitespace-for-layout.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-whitespace-within-word.js b/lib/rules/template-no-whitespace-within-word.js index 10a7048986..5243cdf3c2 100644 --- a/lib/rules/template-no-whitespace-within-word.js +++ b/lib/rules/template-no-whitespace-within-word.js @@ -71,6 +71,8 @@ module.exports = { docs: { description: 'disallow excess whitespace within words (e.g. "W e l c o m e")', category: 'Accessibility', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-whitespace-within-word.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-yield-only.js b/lib/rules/template-no-yield-only.js index b4b423b662..b3b99473fd 100644 --- a/lib/rules/template-no-yield-only.js +++ b/lib/rules/template-no-yield-only.js @@ -24,6 +24,8 @@ module.exports = { docs: { description: 'disallow components that only yield', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-yield-only.md', templateMode: 'both', }, diff --git a/lib/rules/template-no-yield-to-default.js b/lib/rules/template-no-yield-to-default.js index 52a0eccc22..6ab422be9b 100644 --- a/lib/rules/template-no-yield-to-default.js +++ b/lib/rules/template-no-yield-to-default.js @@ -7,6 +7,8 @@ module.exports = { docs: { description: 'disallow yield to default block', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-no-yield-to-default.md', templateMode: 'both', }, diff --git a/lib/rules/template-require-aria-activedescendant-tabindex.js b/lib/rules/template-require-aria-activedescendant-tabindex.js index 27e1cdf897..aaac0cd848 100644 --- a/lib/rules/template-require-aria-activedescendant-tabindex.js +++ b/lib/rules/template-require-aria-activedescendant-tabindex.js @@ -50,6 +50,8 @@ module.exports = { docs: { description: 'require non-interactive elements with aria-activedescendant to have tabindex', category: 'Accessibility', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-require-aria-activedescendant-tabindex.md', templateMode: 'both', }, diff --git a/lib/rules/template-require-button-type.js b/lib/rules/template-require-button-type.js index 604726bd96..fa6ca12757 100644 --- a/lib/rules/template-require-button-type.js +++ b/lib/rules/template-require-button-type.js @@ -16,6 +16,8 @@ module.exports = { docs: { description: 'require button elements to have a valid type attribute', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-require-button-type.md', templateMode: 'both', }, diff --git a/lib/rules/template-require-context-role.js b/lib/rules/template-require-context-role.js index c09de8df1b..2da009a53e 100644 --- a/lib/rules/template-require-context-role.js +++ b/lib/rules/template-require-context-role.js @@ -21,6 +21,8 @@ module.exports = { docs: { description: 'require ARIA roles to be used in appropriate context', category: 'Accessibility', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-require-context-role.md', templateMode: 'both', }, diff --git a/lib/rules/template-require-has-block-helper.js b/lib/rules/template-require-has-block-helper.js index 256ff70a1f..efc3d1f9bc 100644 --- a/lib/rules/template-require-has-block-helper.js +++ b/lib/rules/template-require-has-block-helper.js @@ -36,6 +36,8 @@ module.exports = { description: 'require (has-block) helper usage instead of hasBlock property', category: 'Best Practices', fixable: true, + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-require-has-block-helper.md', templateMode: 'both', }, diff --git a/lib/rules/template-require-iframe-title.js b/lib/rules/template-require-iframe-title.js index 0be3d19f7d..79a636ae0f 100644 --- a/lib/rules/template-require-iframe-title.js +++ b/lib/rules/template-require-iframe-title.js @@ -45,6 +45,8 @@ module.exports = { docs: { description: 'require iframe elements to have a title attribute', category: 'Accessibility', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-require-iframe-title.md', templateMode: 'both', }, diff --git a/lib/rules/template-require-input-label.js b/lib/rules/template-require-input-label.js index df540ed0ce..3530497a06 100644 --- a/lib/rules/template-require-input-label.js +++ b/lib/rules/template-require-input-label.js @@ -43,6 +43,8 @@ module.exports = { docs: { description: 'require label for form input elements', category: 'Accessibility', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-require-input-label.md', templateMode: 'both', }, diff --git a/lib/rules/template-require-lang-attribute.js b/lib/rules/template-require-lang-attribute.js index fd5ac85185..61bb7b0e12 100644 --- a/lib/rules/template-require-lang-attribute.js +++ b/lib/rules/template-require-lang-attribute.js @@ -33,6 +33,8 @@ module.exports = { docs: { description: 'require lang attribute on html element', category: 'Accessibility', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-require-lang-attribute.md', templateMode: 'both', }, diff --git a/lib/rules/template-require-mandatory-role-attributes.js b/lib/rules/template-require-mandatory-role-attributes.js index b2b70bf884..ea42d253d0 100644 --- a/lib/rules/template-require-mandatory-role-attributes.js +++ b/lib/rules/template-require-mandatory-role-attributes.js @@ -192,6 +192,8 @@ module.exports = { docs: { description: 'require mandatory ARIA attributes for ARIA roles', category: 'Accessibility', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-require-mandatory-role-attributes.md', templateMode: 'both', }, diff --git a/lib/rules/template-require-media-caption.js b/lib/rules/template-require-media-caption.js index 8b93ded7d4..7a967e4165 100644 --- a/lib/rules/template-require-media-caption.js +++ b/lib/rules/template-require-media-caption.js @@ -5,6 +5,8 @@ module.exports = { docs: { description: 'require captions for audio and video elements', category: 'Accessibility', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-require-media-caption.md', templateMode: 'both', }, diff --git a/lib/rules/template-require-presentational-children.js b/lib/rules/template-require-presentational-children.js index 45676a9194..22954c969d 100644 --- a/lib/rules/template-require-presentational-children.js +++ b/lib/rules/template-require-presentational-children.js @@ -75,6 +75,8 @@ module.exports = { docs: { description: 'require presentational elements to only contain presentational children', category: 'Accessibility', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-require-presentational-children.md', templateMode: 'both', }, diff --git a/lib/rules/template-require-valid-alt-text.js b/lib/rules/template-require-valid-alt-text.js index c08d6a65b1..e921e1502b 100644 --- a/lib/rules/template-require-valid-alt-text.js +++ b/lib/rules/template-require-valid-alt-text.js @@ -93,6 +93,8 @@ module.exports = { docs: { description: 'require valid alt text for images and other elements', category: 'Accessibility', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-require-valid-alt-text.md', templateMode: 'both', }, diff --git a/lib/rules/template-require-valid-named-block-naming-format.js b/lib/rules/template-require-valid-named-block-naming-format.js index 918e02c4f7..cc5a74d0c2 100644 --- a/lib/rules/template-require-valid-named-block-naming-format.js +++ b/lib/rules/template-require-valid-named-block-naming-format.js @@ -63,6 +63,8 @@ module.exports = { description: 'require valid named block naming format', category: 'Best Practices', recommended: false, + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-require-valid-named-block-naming-format.md', templateMode: 'both', }, diff --git a/lib/rules/template-simple-modifiers.js b/lib/rules/template-simple-modifiers.js index 4cd377bf08..5fedb1ae6a 100644 --- a/lib/rules/template-simple-modifiers.js +++ b/lib/rules/template-simple-modifiers.js @@ -15,6 +15,8 @@ module.exports = { docs: { description: 'require simple modifier syntax', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-simple-modifiers.md', templateMode: 'both', }, diff --git a/lib/rules/template-simple-unless.js b/lib/rules/template-simple-unless.js index d35ab18c26..ff21c11b8f 100644 --- a/lib/rules/template-simple-unless.js +++ b/lib/rules/template-simple-unless.js @@ -13,6 +13,8 @@ module.exports = { docs: { description: 'require simple conditions in unless blocks', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-simple-unless.md', templateMode: 'both', }, diff --git a/lib/rules/template-splat-attributes-only.js b/lib/rules/template-splat-attributes-only.js index 8b54765578..0dde9657f7 100644 --- a/lib/rules/template-splat-attributes-only.js +++ b/lib/rules/template-splat-attributes-only.js @@ -5,6 +5,8 @@ module.exports = { docs: { description: 'disallow ...spread other than ...attributes', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-splat-attributes-only.md', templateMode: 'both', }, diff --git a/lib/rules/template-style-concatenation.js b/lib/rules/template-style-concatenation.js index a8e9b23195..f6ca096edc 100644 --- a/lib/rules/template-style-concatenation.js +++ b/lib/rules/template-style-concatenation.js @@ -5,6 +5,8 @@ module.exports = { docs: { description: 'disallow string concatenation in inline styles', category: 'Best Practices', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-style-concatenation.md', templateMode: 'both', }, diff --git a/lib/rules/template-table-groups.js b/lib/rules/template-table-groups.js index 617a94c9ea..c452d09a87 100644 --- a/lib/rules/template-table-groups.js +++ b/lib/rules/template-table-groups.js @@ -102,6 +102,8 @@ module.exports = { docs: { description: 'require table elements to use table grouping elements', category: 'Accessibility', + recommendedGjs: true, + recommendedGts: true, url: 'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/template-table-groups.md', templateMode: 'both', }, diff --git a/lib/config/recommended-gts.js b/lib/ts-eslint-recommended.js similarity index 83% rename from lib/config/recommended-gts.js rename to lib/ts-eslint-recommended.js index 47f25dce30..26b744c9c1 100644 --- a/lib/config/recommended-gts.js +++ b/lib/ts-eslint-recommended.js @@ -1,9 +1,9 @@ -const base = require('./base'); -const gtsRules = require('../recommended-rules-gts'); - +// Core rules that TypeScript already reports, plus the ones TS makes strictly +// better. Mirrors typescript-eslint's `eslint-recommended` for gts, which our +// configs cannot pull in for us because .gts needs our parser. // see https://github.com/typescript-eslint/typescript-eslint/issues/8607 // https://github.com/typescript-eslint/typescript-eslint/blob/v7.4.0/packages/eslint-plugin/src/configs/eslint-recommended-raw.ts -const tsRecommended = { +module.exports = { 'constructor-super': 'off', // ts(2335) & ts(2377) 'getter-return': 'off', // ts(2378) 'no-const-assign': 'off', // ts(2588) @@ -25,5 +25,3 @@ const tsRecommended = { 'prefer-rest-params': 'error', // ts provides better types with rest args over arguments 'prefer-spread': 'error', // ts transpiles spread to apply, so no need for manual apply }; - -module.exports = [...base, { rules: { ...gtsRules, ...tsRecommended } }]; diff --git a/tests/__snapshots__/recommended.js.snap b/tests/__snapshots__/recommended.js.snap index ad4387392f..07f7cc4ef3 100644 --- a/tests/__snapshots__/recommended.js.snap +++ b/tests/__snapshots__/recommended.js.snap @@ -2,23 +2,195 @@ exports[`recommended rules > gjs config has the right list 1`] = ` [ + "template-builtin-component-arguments", + "template-link-href-attributes", + "template-link-rel-noopener", + "template-no-abstract-roles", + "template-no-accesskey-attribute", + "template-no-action-on-submit-button", + "template-no-args-paths", + "template-no-arguments-for-html-elements", + "template-no-aria-hidden-body", + "template-no-aria-unsupported-elements", + "template-no-array-prototype-extensions", + "template-no-at-ember-render-modifiers", + "template-no-attrs-in-components", + "template-no-autofocus-attribute", + "template-no-block-params-for-html-elements", + "template-no-builtin-form-components", + "template-no-capital-arguments", + "template-no-class-bindings", + "template-no-debugger", + "template-no-duplicate-attributes", + "template-no-duplicate-id", + "template-no-duplicate-landmark-elements", + "template-no-empty-headings", + "template-no-extra-mut-helper-argument", + "template-no-forbidden-elements", + "template-no-heading-inside-button", + "template-no-html-comments", + "template-no-index-component-invocation", + "template-no-inline-styles", + "template-no-invalid-aria-attributes", + "template-no-invalid-interactive", + "template-no-invalid-link-text", + "template-no-invalid-link-title", + "template-no-invalid-meta", + "template-no-invalid-role", "template-no-let-reference", + "template-no-link-to-positional-params", + "template-no-link-to-tagname", + "template-no-log", + "template-no-negated-condition", + "template-no-nested-interactive", + "template-no-nested-landmark", + "template-no-nested-splattributes", + "template-no-obscure-array-access", + "template-no-obsolete-elements", + "template-no-outlet-outside-routes", + "template-no-passed-in-event-handlers", + "template-no-pointer-down-event-binding", + "template-no-positional-data-test-selectors", + "template-no-positive-tabindex", + "template-no-potential-path-strings", + "template-no-quoteless-attributes", + "template-no-redundant-fn", + "template-no-redundant-role", + "template-no-scope-outside-table-headings", + "template-no-shadowed-elements", + "template-no-template-lint-directives", + "template-no-triple-curlies", + "template-no-unbalanced-curlies", + "template-no-unbound", + "template-no-unknown-arguments-for-builtin-components", + "template-no-unnecessary-component-helper", + "template-no-unnecessary-curly-parens", + "template-no-unnecessary-curly-strings", + "template-no-unsupported-role-attributes", + "template-no-unused-block-params", + "template-no-valueless-arguments", + "template-no-whitespace-for-layout", + "template-no-whitespace-within-word", + "template-no-yield-only", + "template-no-yield-to-default", + "template-require-aria-activedescendant-tabindex", + "template-require-button-type", + "template-require-context-role", + "template-require-has-block-helper", + "template-require-iframe-title", + "template-require-input-label", + "template-require-lang-attribute", + "template-require-mandatory-role-attributes", + "template-require-media-caption", + "template-require-presentational-children", + "template-require-valid-alt-text", + "template-require-valid-named-block-naming-format", + "template-simple-modifiers", + "template-simple-unless", + "template-splat-attributes-only", + "template-style-concatenation", + "template-table-groups", ] `; exports[`recommended rules > gts config has the right list 1`] = ` [ + "template-builtin-component-arguments", + "template-link-href-attributes", + "template-link-rel-noopener", + "template-no-abstract-roles", + "template-no-accesskey-attribute", + "template-no-action-on-submit-button", + "template-no-args-paths", + "template-no-arguments-for-html-elements", + "template-no-aria-hidden-body", + "template-no-aria-unsupported-elements", + "template-no-array-prototype-extensions", + "template-no-at-ember-render-modifiers", + "template-no-attrs-in-components", + "template-no-autofocus-attribute", + "template-no-block-params-for-html-elements", + "template-no-builtin-form-components", + "template-no-capital-arguments", + "template-no-class-bindings", + "template-no-debugger", + "template-no-duplicate-attributes", + "template-no-duplicate-id", + "template-no-duplicate-landmark-elements", + "template-no-empty-headings", + "template-no-extra-mut-helper-argument", + "template-no-forbidden-elements", + "template-no-heading-inside-button", + "template-no-html-comments", + "template-no-index-component-invocation", + "template-no-inline-styles", + "template-no-invalid-aria-attributes", + "template-no-invalid-interactive", + "template-no-invalid-link-text", + "template-no-invalid-link-title", + "template-no-invalid-meta", + "template-no-invalid-role", "template-no-let-reference", + "template-no-link-to-positional-params", + "template-no-link-to-tagname", + "template-no-log", + "template-no-negated-condition", + "template-no-nested-interactive", + "template-no-nested-landmark", + "template-no-nested-splattributes", + "template-no-obscure-array-access", + "template-no-obsolete-elements", + "template-no-outlet-outside-routes", + "template-no-passed-in-event-handlers", + "template-no-pointer-down-event-binding", + "template-no-positional-data-test-selectors", + "template-no-positive-tabindex", + "template-no-potential-path-strings", + "template-no-quoteless-attributes", + "template-no-redundant-fn", + "template-no-redundant-role", + "template-no-scope-outside-table-headings", + "template-no-shadowed-elements", + "template-no-template-lint-directives", + "template-no-triple-curlies", + "template-no-unbalanced-curlies", + "template-no-unbound", + "template-no-unknown-arguments-for-builtin-components", + "template-no-unnecessary-component-helper", + "template-no-unnecessary-curly-parens", + "template-no-unnecessary-curly-strings", + "template-no-unsupported-role-attributes", + "template-no-unused-block-params", + "template-no-valueless-arguments", + "template-no-whitespace-for-layout", + "template-no-whitespace-within-word", + "template-no-yield-only", + "template-no-yield-to-default", + "template-require-aria-activedescendant-tabindex", + "template-require-button-type", + "template-require-context-role", + "template-require-has-block-helper", + "template-require-iframe-title", + "template-require-input-label", + "template-require-lang-attribute", + "template-require-mandatory-role-attributes", + "template-require-media-caption", + "template-require-presentational-children", + "template-require-valid-alt-text", + "template-require-valid-named-block-naming-format", + "template-simple-modifiers", + "template-simple-unless", + "template-splat-attributes-only", + "template-style-concatenation", + "template-table-groups", ] `; exports[`recommended rules > has the right list 1`] = ` [ "avoid-leaking-state-in-ember-objects", - "avoid-using-needs-in-controllers", "classic-decorator-hooks", "classic-decorator-no-classic-methods", - "closure-actions", "jquery-ember-run", "new-module-imports", "no-actions-hash", @@ -27,23 +199,19 @@ exports[`recommended rules > has the right list 1`] = ` "no-at-ember-render-modifiers", "no-attrs-in-components", "no-attrs-snapshot", + "no-builtin-form-components", "no-capital-letters-in-routes", "no-classic-classes", "no-classic-components", "no-component-lifecycle-hooks", "no-computed-properties-in-native-classes", "no-controller-access-in-routes", - "no-deeply-nested-dependent-keys-with-each", - "no-deprecated-router-transition-methods", "no-duplicate-dependent-keys", "no-ember-super-in-es-classes", "no-ember-testing-in-module-scope", "no-empty-glimmer-component-classes", - "no-function-prototype-extensions", - "no-get-with-default", "no-get", "no-global-jquery", - "no-implicit-injections", "no-incorrect-calls-with-inline-anonymous-functions", "no-incorrect-computed-macros", "no-invalid-debug-function-arguments", @@ -52,10 +220,10 @@ exports[`recommended rules > has the right list 1`] = ` "no-jquery", "no-legacy-test-waiters", "no-mixins", + "no-modifier-without-element-usage", "no-new-mixins", "no-noop-setup-on-error-in-before", "no-observers", - "no-old-shims", "no-on-calls-in-components", "no-pause-test", "no-private-routing-service", @@ -64,16 +232,12 @@ exports[`recommended rules > has the right list 1`] = ` "no-settled-after-test-helper", "no-shadow-route-definition", "no-side-effects", - "no-string-prototype-extensions", "no-test-and-then", "no-test-import-export", - "no-test-module-for", "no-test-support-import", "no-test-this-render", "no-tracked-properties-from-args", - "no-try-invoke", "no-unnecessary-route-path-option", - "no-volatile-computed-properties", "prefer-ember-test-helpers", "require-computed-macros", "require-computed-property-dependencies", @@ -81,7 +245,6 @@ exports[`recommended rules > has the right list 1`] = ` "require-super-in-lifecycle-hooks", "require-tagless-components", "require-valid-css-selector-in-test-helpers", - "routes-segments-snake-case", "use-brace-expansion", "use-ember-data-rfc-395-imports", ] diff --git a/tests/lib/rules-preprocessor/gjs-gts-parser-test.js b/tests/lib/rules-preprocessor/gjs-gts-parser-test.js index 5c63d199af..56497352ce 100644 --- a/tests/lib/rules-preprocessor/gjs-gts-parser-test.js +++ b/tests/lib/rules-preprocessor/gjs-gts-parser-test.js @@ -14,6 +14,17 @@ const { join } = require('node:path'); const gjsGtsParser = require.resolve('ember-eslint-parser'); +/** + * These fixtures exercise the preprocessor, not the template rules that + * `recommended` enables for gjs/gts. The gts override re-extends + * `recommended`, so it needs the same rules turned off. + */ +const OFF_FOR_FIXTURES = { + 'ember/template-no-html-comments': 'off', + 'ember/template-no-invalid-interactive': 'off', + 'ember/template-no-unused-block-params': 'off', +}; + /** * Helper function which creates ESLint instance with enabled/disabled autofix feature. * @@ -52,6 +63,7 @@ function initESLint(parser = gjsGtsParser) { ], rules: { 'no-trailing-spaces': 'error', + ...OFF_FOR_FIXTURES, }, }, ], @@ -65,6 +77,7 @@ function initESLint(parser = gjsGtsParser) { 'ember/no-get': 'off', 'ember/no-array-prototype-extensions': 'error', 'ember/no-unused-services': 'error', + ...OFF_FOR_FIXTURES, }, }, }); diff --git a/tests/plugin-exports.js b/tests/plugin-exports.js index 7d382796ca..dec96e3d32 100644 --- a/tests/plugin-exports.js +++ b/tests/plugin-exports.js @@ -4,8 +4,6 @@ const plugin = require('../lib'); const ember = require('../lib/utils/ember'); const base = require('../lib/config-legacy/base'); const recommended = require('../lib/config-legacy/recommended'); -const recommendedGjs = require('../lib/config-legacy/recommended-gjs'); -const recommendedGts = require('../lib/config-legacy/recommended-gts'); const templateLintMigration = require('../lib/config-legacy/template-lint-migration'); describe('plugin exports', () => { @@ -20,8 +18,6 @@ describe('plugin exports', () => { expect(plugin.configs).toStrictEqual({ base, recommended, - 'recommended-gjs': recommendedGjs, - 'recommended-gts': recommendedGts, 'template-lint-migration': templateLintMigration, }); });