lint-suite 2.0.2 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +542 -0
- package/README.md +228 -57
- package/eslint.d.ts +0 -1
- package/eslint.js +735 -7125
- package/lib/angular-template.d.ts +0 -1
- package/lib/angular.d.ts +0 -1
- package/lib/base-limits.d.ts +0 -1
- package/lib/base-practices.d.ts +0 -1
- package/lib/base-recommended.d.ts +0 -1
- package/lib/base.d.ts +0 -1
- package/lib/boundaries.d.ts +0 -1
- package/lib/javascript.d.ts +0 -1
- package/lib/json.d.ts +0 -1
- package/lib/line-length.const.d.ts +0 -1
- package/lib/playwright.d.ts +0 -1
- package/lib/prettier.d.ts +0 -1
- package/lib/rxjs.d.ts +0 -1
- package/lib/storybook.d.ts +0 -1
- package/lib/typescript-consistency.d.ts +0 -1
- package/lib/typescript-imports.d.ts +0 -1
- package/lib/typescript-local-plugin.d.ts +2 -2
- package/lib/typescript-overrides.d.ts +0 -1
- package/lib/typescript-recommended.d.ts +0 -1
- package/lib/typescript-safety.d.ts +0 -1
- package/lib/typescript.d.ts +0 -1
- package/lib/vitest.d.ts +0 -1
- package/package.json +30 -20
- package/prettier.d.ts +0 -1
- package/prettier.js +0 -1
- package/stylelint.d.ts +0 -1
- package/stylelint.js +11 -937
- package/eslint.cjs +0 -7376
- package/eslint.cjs.map +0 -7
- package/eslint.d.ts.map +0 -1
- package/eslint.js.map +0 -7
- package/lib/angular-template.d.ts.map +0 -1
- package/lib/angular.d.ts.map +0 -1
- package/lib/base-limits.d.ts.map +0 -1
- package/lib/base-practices.d.ts.map +0 -1
- package/lib/base-recommended.d.ts.map +0 -1
- package/lib/base.d.ts.map +0 -1
- package/lib/boundaries.d.ts.map +0 -1
- package/lib/javascript.d.ts.map +0 -1
- package/lib/json.d.ts.map +0 -1
- package/lib/line-length.const.d.ts.map +0 -1
- package/lib/playwright.d.ts.map +0 -1
- package/lib/prettier.d.ts.map +0 -1
- package/lib/rules/arrow-body-fits-line/arrow-body-fits-line.d.ts +0 -6
- package/lib/rules/arrow-body-fits-line/arrow-body-fits-line.d.ts.map +0 -1
- package/lib/rules/chain-fits-line/chain-fits-line.d.ts +0 -6
- package/lib/rules/chain-fits-line/chain-fits-line.d.ts.map +0 -1
- package/lib/rules/chain-receiver-is-name/chain-receiver-is-name.d.ts +0 -7
- package/lib/rules/chain-receiver-is-name/chain-receiver-is-name.d.ts.map +0 -1
- package/lib/rules/common/class-usage.type.d.ts +0 -26
- package/lib/rules/common/class-usage.type.d.ts.map +0 -1
- package/lib/rules/common/file-cache.type.d.ts +0 -11
- package/lib/rules/common/file-cache.type.d.ts.map +0 -1
- package/lib/rules/common/glob-matcher.type.d.ts +0 -2
- package/lib/rules/common/glob-matcher.type.d.ts.map +0 -1
- package/lib/rules/component-metadata.d.ts +0 -3
- package/lib/rules/component-metadata.d.ts.map +0 -1
- package/lib/rules/define-plugin.util.d.ts +0 -6
- package/lib/rules/define-plugin.util.d.ts.map +0 -1
- package/lib/rules/explicit-accessibility/common/explicit-accessibility.const.d.ts +0 -6
- package/lib/rules/explicit-accessibility/common/explicit-accessibility.const.d.ts.map +0 -1
- package/lib/rules/explicit-accessibility/common/explicit-accessibility.type.d.ts +0 -17
- package/lib/rules/explicit-accessibility/common/explicit-accessibility.type.d.ts.map +0 -1
- package/lib/rules/explicit-accessibility/explicit-accessibility.d.ts +0 -7
- package/lib/rules/explicit-accessibility/explicit-accessibility.d.ts.map +0 -1
- package/lib/rules/file-cache.d.ts +0 -14
- package/lib/rules/file-cache.d.ts.map +0 -1
- package/lib/rules/max-condition-operands/max-condition-operands.d.ts +0 -10
- package/lib/rules/max-condition-operands/max-condition-operands.d.ts.map +0 -1
- package/lib/rules/no-call-in-condition/common/no-call-in-condition.const.d.ts +0 -6
- package/lib/rules/no-call-in-condition/common/no-call-in-condition.const.d.ts.map +0 -1
- package/lib/rules/no-call-in-condition/common/no-call-in-condition.type.d.ts +0 -21
- package/lib/rules/no-call-in-condition/common/no-call-in-condition.type.d.ts.map +0 -1
- package/lib/rules/no-call-in-condition/no-call-in-condition.d.ts +0 -7
- package/lib/rules/no-call-in-condition/no-call-in-condition.d.ts.map +0 -1
- package/lib/rules/no-call-in-condition/utils/call-exemptions.util.d.ts +0 -4
- package/lib/rules/no-call-in-condition/utils/call-exemptions.util.d.ts.map +0 -1
- package/lib/rules/no-call-in-condition/utils/condition-calls.util.d.ts +0 -7
- package/lib/rules/no-call-in-condition/utils/condition-calls.util.d.ts.map +0 -1
- package/lib/rules/no-grouped-condition/no-grouped-condition.d.ts +0 -7
- package/lib/rules/no-grouped-condition/no-grouped-condition.d.ts.map +0 -1
- package/lib/rules/no-inline-object-types/no-inline-object-types.d.ts +0 -6
- package/lib/rules/no-inline-object-types/no-inline-object-types.d.ts.map +0 -1
- package/lib/rules/no-inline-return-object/no-inline-return-object.d.ts +0 -6
- package/lib/rules/no-inline-return-object/no-inline-return-object.d.ts.map +0 -1
- package/lib/rules/no-nested-object-value/common/no-nested-object-value.const.d.ts +0 -5
- package/lib/rules/no-nested-object-value/common/no-nested-object-value.const.d.ts.map +0 -1
- package/lib/rules/no-nested-object-value/common/no-nested-object-value.type.d.ts +0 -7
- package/lib/rules/no-nested-object-value/common/no-nested-object-value.type.d.ts.map +0 -1
- package/lib/rules/no-nested-object-value/no-nested-object-value.d.ts +0 -7
- package/lib/rules/no-nested-object-value/no-nested-object-value.d.ts.map +0 -1
- package/lib/rules/no-nested-object-value/utils/decorator-config.util.d.ts +0 -3
- package/lib/rules/no-nested-object-value/utils/decorator-config.util.d.ts.map +0 -1
- package/lib/rules/no-spread-expression/no-spread-expression.d.ts +0 -6
- package/lib/rules/no-spread-expression/no-spread-expression.d.ts.map +0 -1
- package/lib/rules/no-unstyled-classes/common/no-unstyled-classes.type.d.ts +0 -33
- package/lib/rules/no-unstyled-classes/common/no-unstyled-classes.type.d.ts.map +0 -1
- package/lib/rules/no-unstyled-classes/no-unstyled-classes.d.ts +0 -8
- package/lib/rules/no-unstyled-classes/no-unstyled-classes.d.ts.map +0 -1
- package/lib/rules/no-unstyled-classes/styles/component-stylesheets.d.ts +0 -4
- package/lib/rules/no-unstyled-classes/styles/component-stylesheets.d.ts.map +0 -1
- package/lib/rules/no-unstyled-classes/styles/linked-stylesheets.d.ts +0 -3
- package/lib/rules/no-unstyled-classes/styles/linked-stylesheets.d.ts.map +0 -1
- package/lib/rules/no-unstyled-classes/styles/stylesheet-classes.d.ts +0 -3
- package/lib/rules/no-unstyled-classes/styles/stylesheet-classes.d.ts.map +0 -1
- package/lib/rules/no-unstyled-classes/styles/stylesheet-collection.d.ts +0 -4
- package/lib/rules/no-unstyled-classes/styles/stylesheet-collection.d.ts.map +0 -1
- package/lib/rules/no-unstyled-classes/styles/stylesheet-imports.d.ts +0 -2
- package/lib/rules/no-unstyled-classes/styles/stylesheet-imports.d.ts.map +0 -1
- package/lib/rules/no-unstyled-classes/styles/template-stylesheets.d.ts +0 -3
- package/lib/rules/no-unstyled-classes/styles/template-stylesheets.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-component-discovery.d.ts +0 -5
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-component-discovery.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-component-scope.d.ts +0 -9
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-component-scope.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-decorator-kind.d.ts +0 -10
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-decorator-kind.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-directive-index.d.ts +0 -9
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-directive-index.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-metadata-values.d.ts +0 -12
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-metadata-values.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-resolved-path.d.ts +0 -3
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-resolved-path.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-template-read-chains.d.ts +0 -17
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-template-read-chains.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-template-read-resolution.d.ts +0 -7
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-template-read-resolution.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-template-reads.d.ts +0 -6
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-template-reads.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-template-references.d.ts +0 -5
- package/lib/rules/no-unused-angular-instance-fields/project-usage/angular/angular-template-references.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/common/project-index.type.d.ts +0 -52
- package/lib/rules/no-unused-angular-instance-fields/project-usage/common/project-index.type.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/common/project-usage.type.d.ts +0 -105
- package/lib/rules/no-unused-angular-instance-fields/project-usage/common/project-usage.type.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/project-file-entry.d.ts +0 -4
- package/lib/rules/no-unused-angular-instance-fields/project-usage/project-file-entry.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/project-index-classes.d.ts +0 -5
- package/lib/rules/no-unused-angular-instance-fields/project-usage/project-index-classes.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/project-index-reconciliation.d.ts +0 -4
- package/lib/rules/no-unused-angular-instance-fields/project-usage/project-index-reconciliation.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/project-index-staleness.d.ts +0 -14
- package/lib/rules/no-unused-angular-instance-fields/project-usage/project-index-staleness.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/project-usage.d.ts +0 -18
- package/lib/rules/no-unused-angular-instance-fields/project-usage/project-usage.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-angular-interface-methods.d.ts +0 -8
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-angular-interface-methods.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-assignment-pattern-elements.d.ts +0 -5
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-assignment-pattern-elements.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-binding-pattern-elements.d.ts +0 -6
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-binding-pattern-elements.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-candidate-names.d.ts +0 -4
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-candidate-names.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-destructuring-reads.d.ts +0 -4
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-destructuring-reads.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-reads.d.ts +0 -4
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-reads.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-symbol-reads.d.ts +0 -8
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-symbol-reads.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-type-dependencies.d.ts +0 -3
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-type-dependencies.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-write-targets.d.ts +0 -7
- package/lib/rules/no-unused-angular-instance-fields/project-usage/typescript/typescript-write-targets.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/utils/class-members.util.d.ts +0 -10
- package/lib/rules/no-unused-angular-instance-fields/project-usage/utils/class-members.util.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/utils/read-chain-text.util.d.ts +0 -4
- package/lib/rules/no-unused-angular-instance-fields/project-usage/utils/read-chain-text.util.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/utils/spec-file.util.d.ts +0 -2
- package/lib/rules/no-unused-angular-instance-fields/project-usage/utils/spec-file.util.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/project-usage/utils/type-property-symbols.util.d.ts +0 -4
- package/lib/rules/no-unused-angular-instance-fields/project-usage/utils/type-property-symbols.util.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/rule/angular/angular-class-fields.d.ts +0 -3
- package/lib/rules/no-unused-angular-instance-fields/rule/angular/angular-class-fields.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/rule/angular/angular-expression-reads.d.ts +0 -6
- package/lib/rules/no-unused-angular-instance-fields/rule/angular/angular-expression-reads.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/rule/angular/angular-imports.d.ts +0 -9
- package/lib/rules/no-unused-angular-instance-fields/rule/angular/angular-imports.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/rule/angular/angular-managed-fields.d.ts +0 -5
- package/lib/rules/no-unused-angular-instance-fields/rule/angular/angular-managed-fields.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/rule/angular/angular-member-candidates.d.ts +0 -6
- package/lib/rules/no-unused-angular-instance-fields/rule/angular/angular-member-candidates.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/rule/angular/angular-metadata-literals.d.ts +0 -5
- package/lib/rules/no-unused-angular-instance-fields/rule/angular/angular-metadata-literals.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/rule/angular/angular-metadata-reads.d.ts +0 -9
- package/lib/rules/no-unused-angular-instance-fields/rule/angular/angular-metadata-reads.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/rule/angular/angular-template-parsing.d.ts +0 -4
- package/lib/rules/no-unused-angular-instance-fields/rule/angular/angular-template-parsing.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/rule/common/no-unused-angular-instance-fields.type.d.ts +0 -55
- package/lib/rules/no-unused-angular-instance-fields/rule/common/no-unused-angular-instance-fields.type.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/rule/no-unused-angular-instance-fields.d.ts +0 -8
- package/lib/rules/no-unused-angular-instance-fields/rule/no-unused-angular-instance-fields.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/rule/typescript/typescript-class-read-visitor.d.ts +0 -4
- package/lib/rules/no-unused-angular-instance-fields/rule/typescript/typescript-class-read-visitor.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/rule/typescript/typescript-field-reads.d.ts +0 -8
- package/lib/rules/no-unused-angular-instance-fields/rule/typescript/typescript-field-reads.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/rule/typescript/typescript-lexical-this.d.ts +0 -3
- package/lib/rules/no-unused-angular-instance-fields/rule/typescript/typescript-lexical-this.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/rule/typescript/typescript-write-targets.d.ts +0 -3
- package/lib/rules/no-unused-angular-instance-fields/rule/typescript/typescript-write-targets.d.ts.map +0 -1
- package/lib/rules/no-unused-angular-instance-fields/utils/angular-read-target.util.d.ts +0 -4
- package/lib/rules/no-unused-angular-instance-fields/utils/angular-read-target.util.d.ts.map +0 -1
- package/lib/rules/no-unused-classes/common/no-unused-classes.type.d.ts +0 -24
- package/lib/rules/no-unused-classes/common/no-unused-classes.type.d.ts.map +0 -1
- package/lib/rules/no-unused-classes/no-unused-classes.d.ts +0 -8
- package/lib/rules/no-unused-classes/no-unused-classes.d.ts.map +0 -1
- package/lib/rules/no-unused-classes/styles/linked-templates.d.ts +0 -9
- package/lib/rules/no-unused-classes/styles/linked-templates.d.ts.map +0 -1
- package/lib/rules/no-unused-classes/styles/stylesheet-components.d.ts +0 -3
- package/lib/rules/no-unused-classes/styles/stylesheet-components.d.ts.map +0 -1
- package/lib/rules/no-unused-classes/template/template-usage.d.ts +0 -3
- package/lib/rules/no-unused-classes/template/template-usage.d.ts.map +0 -1
- package/lib/rules/no-unused-exports/common/no-unused-exports.const.d.ts +0 -7
- package/lib/rules/no-unused-exports/common/no-unused-exports.const.d.ts.map +0 -1
- package/lib/rules/no-unused-exports/common/no-unused-exports.type.d.ts +0 -70
- package/lib/rules/no-unused-exports/common/no-unused-exports.type.d.ts.map +0 -1
- package/lib/rules/no-unused-exports/export-index.d.ts +0 -6
- package/lib/rules/no-unused-exports/export-index.d.ts.map +0 -1
- package/lib/rules/no-unused-exports/no-unused-exports.d.ts +0 -7
- package/lib/rules/no-unused-exports/no-unused-exports.d.ts.map +0 -1
- package/lib/rules/no-unused-exports/report-unused-exports.d.ts +0 -12
- package/lib/rules/no-unused-exports/report-unused-exports.d.ts.map +0 -1
- package/lib/rules/no-unused-exports/utils/aggregate-update.util.d.ts +0 -4
- package/lib/rules/no-unused-exports/utils/aggregate-update.util.d.ts.map +0 -1
- package/lib/rules/no-unused-exports/utils/export-edges.util.d.ts +0 -5
- package/lib/rules/no-unused-exports/utils/export-edges.util.d.ts.map +0 -1
- package/lib/rules/no-unused-exports/utils/export-nodes.util.d.ts +0 -5
- package/lib/rules/no-unused-exports/utils/export-nodes.util.d.ts.map +0 -1
- package/lib/rules/no-unused-exports/utils/export-usage.util.d.ts +0 -4
- package/lib/rules/no-unused-exports/utils/export-usage.util.d.ts.map +0 -1
- package/lib/rules/no-unused-exports/utils/exported-names.util.d.ts +0 -3
- package/lib/rules/no-unused-exports/utils/exported-names.util.d.ts.map +0 -1
- package/lib/rules/no-unused-exports/utils/file-changes.util.d.ts +0 -4
- package/lib/rules/no-unused-exports/utils/file-changes.util.d.ts.map +0 -1
- package/lib/rules/no-unused-exports/utils/module-edges.util.d.ts +0 -4
- package/lib/rules/no-unused-exports/utils/module-edges.util.d.ts.map +0 -1
- package/lib/rules/no-unused-exports/utils/module-target.util.d.ts +0 -4
- package/lib/rules/no-unused-exports/utils/module-target.util.d.ts.map +0 -1
- package/lib/rules/no-unused-exports/utils/public-exports.util.d.ts +0 -3
- package/lib/rules/no-unused-exports/utils/public-exports.util.d.ts.map +0 -1
- package/lib/rules/one-line-guard/one-line-guard.d.ts +0 -10
- package/lib/rules/one-line-guard/one-line-guard.d.ts.map +0 -1
- package/lib/rules/readonly-type-properties/readonly-type-properties.d.ts +0 -7
- package/lib/rules/readonly-type-properties/readonly-type-properties.d.ts.map +0 -1
- package/lib/rules/selector-classes.d.ts +0 -7
- package/lib/rules/selector-classes.d.ts.map +0 -1
- package/lib/rules/ternary-branch-shape/ternary-branch-shape.d.ts +0 -6
- package/lib/rules/ternary-branch-shape/ternary-branch-shape.d.ts.map +0 -1
- package/lib/rules/test-file-shape/common/test-file-shape.const.d.ts +0 -14
- package/lib/rules/test-file-shape/common/test-file-shape.const.d.ts.map +0 -1
- package/lib/rules/test-file-shape/common/test-file-shape.type.d.ts +0 -7
- package/lib/rules/test-file-shape/common/test-file-shape.type.d.ts.map +0 -1
- package/lib/rules/test-file-shape/mock-exports.d.ts +0 -7
- package/lib/rules/test-file-shape/mock-exports.d.ts.map +0 -1
- package/lib/rules/test-file-shape/stub-exports.d.ts +0 -7
- package/lib/rules/test-file-shape/stub-exports.d.ts.map +0 -1
- package/lib/rules/test-file-shape/test-file-shape.d.ts +0 -7
- package/lib/rules/test-file-shape/test-file-shape.d.ts.map +0 -1
- package/lib/rules/type-placement/common/type-placement.const.d.ts +0 -5
- package/lib/rules/type-placement/common/type-placement.const.d.ts.map +0 -1
- package/lib/rules/type-placement/common/type-placement.type.d.ts +0 -7
- package/lib/rules/type-placement/common/type-placement.type.d.ts.map +0 -1
- package/lib/rules/type-placement/type-placement.d.ts +0 -7
- package/lib/rules/type-placement/type-placement.d.ts.map +0 -1
- package/lib/rules/util-purity/common/util-purity.const.d.ts +0 -10
- package/lib/rules/util-purity/common/util-purity.const.d.ts.map +0 -1
- package/lib/rules/util-purity/common/util-purity.type.d.ts +0 -7
- package/lib/rules/util-purity/common/util-purity.type.d.ts.map +0 -1
- package/lib/rules/util-purity/util-purity.d.ts +0 -7
- package/lib/rules/util-purity/util-purity.d.ts.map +0 -1
- package/lib/rules/utils/class-expression-literals.util.d.ts +0 -4
- package/lib/rules/utils/class-expression-literals.util.d.ts.map +0 -1
- package/lib/rules/utils/enclosing-statement.util.d.ts +0 -3
- package/lib/rules/utils/enclosing-statement.util.d.ts.map +0 -1
- package/lib/rules/utils/glob-matcher.util.d.ts +0 -3
- package/lib/rules/utils/glob-matcher.util.d.ts.map +0 -1
- package/lib/rules/utils/indent-of.util.d.ts +0 -3
- package/lib/rules/utils/indent-of.util.d.ts.map +0 -1
- package/lib/rules/utils/resolved-rules.util.d.ts +0 -5
- package/lib/rules/utils/resolved-rules.util.d.ts.map +0 -1
- package/lib/rules/utils/template-classes.util.d.ts +0 -5
- package/lib/rules/utils/template-classes.util.d.ts.map +0 -1
- package/lib/rules/utils/template-links.util.d.ts +0 -2
- package/lib/rules/utils/template-links.util.d.ts.map +0 -1
- package/lib/rules/utils/to-regexp.util.d.ts +0 -2
- package/lib/rules/utils/to-regexp.util.d.ts.map +0 -1
- package/lib/rxjs.d.ts.map +0 -1
- package/lib/storybook.d.ts.map +0 -1
- package/lib/typescript-consistency.d.ts.map +0 -1
- package/lib/typescript-imports.d.ts.map +0 -1
- package/lib/typescript-local-plugin.d.ts.map +0 -1
- package/lib/typescript-overrides.d.ts.map +0 -1
- package/lib/typescript-recommended.d.ts.map +0 -1
- package/lib/typescript-safety.d.ts.map +0 -1
- package/lib/typescript.d.ts.map +0 -1
- package/lib/vitest.d.ts.map +0 -1
- package/prettier.cjs +0 -50
- package/prettier.cjs.map +0 -7
- package/prettier.d.ts.map +0 -1
- package/prettier.js.map +0 -7
- package/stylelint.cjs +0 -968
- package/stylelint.cjs.map +0 -7
- package/stylelint.d.ts.map +0 -1
- package/stylelint.js.map +0 -7
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,542 @@
|
|
|
1
|
+
## 2.1.1 (2026-09-11)
|
|
2
|
+
|
|
3
|
+
### 🚀 Features
|
|
4
|
+
|
|
5
|
+
- ⚠️ **lint-suite:** ✨ extract custom rules into standalone packages ([b25ded1](https://github.com/F0rty-Tw0/lint-suite/commit/b25ded1))
|
|
6
|
+
|
|
7
|
+
### ⚠️ Breaking Changes
|
|
8
|
+
|
|
9
|
+
- **lint-suite:** ✨ extract custom rules into standalone packages ([b25ded1](https://github.com/F0rty-Tw0/lint-suite/commit/b25ded1))
|
|
10
|
+
|
|
11
|
+
### 🧱 Updated Dependencies
|
|
12
|
+
|
|
13
|
+
- Updated eslint-plugin-arrow-body-fits-line to 1.0.0
|
|
14
|
+
- Updated eslint-plugin-chain-fits-line to 1.0.0
|
|
15
|
+
- Updated eslint-plugin-chain-receiver-is-name to 1.0.0
|
|
16
|
+
- Updated eslint-plugin-explicit-accessibility to 1.0.0
|
|
17
|
+
- Updated eslint-plugin-max-condition-operands to 1.0.0
|
|
18
|
+
- Updated eslint-plugin-no-call-in-condition to 1.0.0
|
|
19
|
+
- Updated eslint-plugin-no-grouped-condition to 1.0.0
|
|
20
|
+
- Updated eslint-plugin-no-inline-object-types to 1.0.0
|
|
21
|
+
- Updated eslint-plugin-no-inline-return-object to 1.0.0
|
|
22
|
+
- Updated eslint-plugin-no-nested-object-value to 1.0.0
|
|
23
|
+
- Updated eslint-plugin-no-spread-expression to 1.0.0
|
|
24
|
+
- Updated eslint-plugin-no-unused-exports to 1.0.0
|
|
25
|
+
- Updated eslint-plugin-one-line-guard to 1.0.0
|
|
26
|
+
- Updated eslint-plugin-readonly-type-properties to 1.0.0
|
|
27
|
+
- Updated eslint-plugin-ternary-branch-shape to 1.0.0
|
|
28
|
+
- Updated eslint-plugin-test-file-shape to 1.0.0
|
|
29
|
+
- Updated eslint-plugin-type-placement to 1.0.0
|
|
30
|
+
- Updated eslint-plugin-util-purity to 1.0.0
|
|
31
|
+
- Updated eslint-plugin-no-unused-angular-instance-fields to 1.0.0
|
|
32
|
+
- Updated eslint-plugin-no-unstyled-classes to 1.0.0
|
|
33
|
+
- Updated stylelint-no-unused-classes to 1.0.0
|
|
34
|
+
|
|
35
|
+
### ❤️ Thank You
|
|
36
|
+
|
|
37
|
+
- Artiom Tofan
|
|
38
|
+
|
|
39
|
+
# Changelog
|
|
40
|
+
|
|
41
|
+
## [Unreleased]
|
|
42
|
+
|
|
43
|
+
### Features
|
|
44
|
+
|
|
45
|
+
- All 21 custom rules are independently installable as scoped ESLint and
|
|
46
|
+
Stylelint packages. The umbrella composes them without changing existing
|
|
47
|
+
entrypoints, rule IDs, severity/options, or parser configuration.
|
|
48
|
+
- Each scoped package has an independent release version. The umbrella
|
|
49
|
+
adopts exact versions of affected rule packages.
|
|
50
|
+
|
|
51
|
+
### Fixes
|
|
52
|
+
|
|
53
|
+
- Template and Stylelint disk caches are isolated by the owning public
|
|
54
|
+
plugin's package name and version, including when both share a directory.
|
|
55
|
+
- Stylelint preset dependencies resolve from the installed umbrella, including
|
|
56
|
+
ESM-only presets, without requiring pnpm consumers to install those
|
|
57
|
+
transitive configuration packages directly.
|
|
58
|
+
|
|
59
|
+
## [2.1.0] - 2026-09-08
|
|
60
|
+
|
|
61
|
+
### Breaking Changes
|
|
62
|
+
|
|
63
|
+
- **CommonJS entry removed**: `lint-suite/eslint`, `lint-suite/stylelint`, and `lint-suite/prettier`
|
|
64
|
+
ship as ESM only; the `require` export condition and the `.cjs` bundles are gone. They had not
|
|
65
|
+
loaded since `@eslint/json` arrived (`Cannot read properties of undefined (reading 'recommended')`),
|
|
66
|
+
because the bundler's CommonJS interop put `module.exports` in `.default`. A CommonJS config file
|
|
67
|
+
can still `require()` the ESM entries on Node 20.19+ / 22.12+.
|
|
68
|
+
|
|
69
|
+
### Fixes
|
|
70
|
+
|
|
71
|
+
- **`local/no-unused-exports`**: a file created after an import of it was written (or imported while
|
|
72
|
+
still empty) stayed "never imported" in the editor until ESLint restarted. Specifiers the checker
|
|
73
|
+
cannot resolve are now resolved on disk, and re-read on every Program until they resolve.
|
|
74
|
+
- **`lint-suite-angular/no-unused-instance-fields`**: a member read through an import that resolved
|
|
75
|
+
to no module yet stayed "never read" in the editor until ESLint restarted. Such a file now counts
|
|
76
|
+
every candidate member it mentions as read, and is re-indexed on every Program until it resolves.
|
|
77
|
+
- **`lint-suite-angular/no-unused-instance-fields`**: a component whose `templateUrl` file did not
|
|
78
|
+
exist yet stayed in name fallback after the file was created; a missing template is now remembered
|
|
79
|
+
and re-read once it exists.
|
|
80
|
+
- **`lint-suite-angular-template/no-unstyled-classes`**: a partial created after the `@use`,
|
|
81
|
+
`@import`, or `@forward` that names it was written stayed invisible, also across restarts through
|
|
82
|
+
the disk cache, until the importing stylesheet changed. Import targets are now resolved on every
|
|
83
|
+
read; the cache keeps only the specifier.
|
|
84
|
+
- **Disk cache**: the `lint-suite` version that keys every entry is read from this package's own
|
|
85
|
+
`package.json`, not resolved from `process.cwd()`. A monorepo root that does not itself depend on
|
|
86
|
+
`lint-suite` used the placeholder `dev` and never invalidated on upgrade.
|
|
87
|
+
|
|
88
|
+
## [2.0.2] - 2026-09-07
|
|
89
|
+
|
|
90
|
+
### Features
|
|
91
|
+
|
|
92
|
+
- **`local/no-unstyled-classes`, `local/no-unused-classes`**: `routerLinkActive`, `animate.enter`, and
|
|
93
|
+
`animate.leave` are read as class lists, static or bound, so a class named only there counts as used.
|
|
94
|
+
|
|
95
|
+
### Fixes
|
|
96
|
+
|
|
97
|
+
- **Disk cache**: entries are keyed by the installed `lint-suite` version, so an upgrade that changes what a parser reads (like `routerLinkActive` support) no longer serves stale results from `node_modules/.cache/lint-suite`.
|
|
98
|
+
- **`local/no-unused-classes`**: a rule that only wraps nested rules, like `.dialog` in
|
|
99
|
+
`.dialog { &__name {} }`, emits no selector of its own and is no longer reported; `.shell` in
|
|
100
|
+
`.shell { .inner {} }` still is, because `.shell .inner` reaches the output.
|
|
101
|
+
- **TypeScript**: `@typescript-eslint/no-inferrable-types` is off for `**/*.stub.ts`; `local/test-file-shape`
|
|
102
|
+
requires `STUB: Type` there, which the two rules otherwise fight over for literal stubs.
|
|
103
|
+
|
|
104
|
+
## [2.0.1] - 2026-09-06
|
|
105
|
+
|
|
106
|
+
### Fixes
|
|
107
|
+
|
|
108
|
+
- **`local/type-placement`**: `*.schema.ts` files are exempt (an inferred type lives beside its schema), and
|
|
109
|
+
an `import type` from a `*.schema.ts` file passes.
|
|
110
|
+
|
|
111
|
+
## [2.0.0] - 2026-09-06
|
|
112
|
+
|
|
113
|
+
### Breaking
|
|
114
|
+
|
|
115
|
+
- **TypeScript**: `@typescript-eslint/consistent-type-assertions` now uses `assertionStyle: 'never'`: every
|
|
116
|
+
`as` cast except `as const` is an error. Narrow with type predicates or fix the declared type.
|
|
117
|
+
- **TypeScript**: `@typescript-eslint/parameter-properties` is on, and `no-restricted-syntax` bans non-ambient
|
|
118
|
+
`enum` and `namespace` declarations (erasable syntax only).
|
|
119
|
+
- **TypeScript**: `local/no-inline-object-types` now reports every object type literal that is not the body
|
|
120
|
+
of a type alias (parameter and return types, generic arguments, `satisfies`, interface and class members,
|
|
121
|
+
`declare module` members), not only literals nested inside an alias.
|
|
122
|
+
- **TypeScript**: `local/readonly-type-properties` also reports and fixes `readonly T[]` and
|
|
123
|
+
`ReadonlyArray<T>` to `T[]`.
|
|
124
|
+
- **TypeScript**: sixteen new `local/*` rules are enabled in the `typescript` preset (see the README
|
|
125
|
+
sections "Statement shape rules", "Project layout rules", "No unused exports"): `no-call-in-condition`,
|
|
126
|
+
`max-condition-operands`, `no-grouped-condition`, `ternary-branch-shape`, `chain-receiver-is-name`,
|
|
127
|
+
`chain-fits-line`, `arrow-body-fits-line`, `no-nested-object-value`,
|
|
128
|
+
`no-spread-expression`, `no-inline-return-object`, `type-placement`, `util-purity`,
|
|
129
|
+
`test-file-shape`, `no-unused-exports`.
|
|
130
|
+
|
|
131
|
+
### Features
|
|
132
|
+
|
|
133
|
+
- **`local/no-unused-exports`**: project-wide unused export and unused module detection built on the
|
|
134
|
+
program typescript-eslint already holds. No extra parsing or filesystem access; per-file results are
|
|
135
|
+
cached on the `ts.SourceFile`, the usage map per `ts.Program`, and re-exports (`export { x } from`,
|
|
136
|
+
`export * from`, `export * as ns from`) are followed to the declaring file. Names re-exported by an
|
|
137
|
+
entry point (`index.ts`, `public-api.ts`, ...) are public API and never reported; `*.config.mts`,
|
|
138
|
+
`*.config.cts`, `main.*.ts`, and `environment*.ts` are entry points too. A dynamic `import()` anywhere
|
|
139
|
+
in a file (lazy routes) marks its target as used.
|
|
140
|
+
|
|
141
|
+
### Fixes
|
|
142
|
+
|
|
143
|
+
- **`local/type-placement`**: `internalPatterns` defaults to `[]`. The old alias list made every
|
|
144
|
+
`import type` from a workspace alias an error that Nx module boundaries left no way to satisfy.
|
|
145
|
+
- **`local/no-nested-object-value`**: `**/*.schema.ts` is a config file by default (zod, yup, valibot
|
|
146
|
+
schemas are settings literals, like a decorator argument).
|
|
147
|
+
- **`local/type-placement`**: an `import type` from a `common` barrel (`../common`, `./common/index.ts`,
|
|
148
|
+
`@shared/common`) passes; `state.type.ts` files (any prefix) are exempt.
|
|
149
|
+
- **TypeScript**: `@typescript-eslint/parameter-properties` is off for `**/*.action.ts`; class actions
|
|
150
|
+
carry their payload as constructor parameter properties.
|
|
151
|
+
- **Base**: the `max-lines` block no longer claims `**/*.html`. Without the `angularTemplate` preset
|
|
152
|
+
every HTML file in scope was parsed as JavaScript and reported a fatal parsing error; the template
|
|
153
|
+
preset now carries the same 150-line limit for HTML.
|
|
154
|
+
|
|
155
|
+
## [1.6.3] - 2026-09-05
|
|
156
|
+
|
|
157
|
+
### Features
|
|
158
|
+
|
|
159
|
+
- **Angular templates**: new rule `lint-suite-angular-template/no-unstyled-classes` (enabled in the
|
|
160
|
+
`angularTemplate` preset): reports a class used in a template that no stylesheet of that component selects.
|
|
161
|
+
It reads `class="a b"` tokens, `[class.name]` bindings, and the literal class names inside `[class]="..."`
|
|
162
|
+
expressions and `class="a {{ b }}"` interpolations; `[ngClass]` is not analysed. Stylesheets come from
|
|
163
|
+
`styleUrl`/`styleUrls`/`styles` in the `@Component` metadata, a sibling `.scss`/`.css` file, or a
|
|
164
|
+
`<link rel="stylesheet" href="...">` in the template itself (relative hrefs only, so a plain HTML page
|
|
165
|
+
without a component is judged against the stylesheets it links), and are parsed with `postcss-scss`, so `&` nesting, `@media` blocks, selector lists, and `@use`/`@import`/`@forward`
|
|
166
|
+
partials all resolve. Options: `ignoreClassPatterns` (default `['^(js|qa|mat|cdk|mdc)-']`) and `globalStyles`
|
|
167
|
+
(default `[]`). Custom elements are skipped, and a template with no parseable stylesheet reports nothing.
|
|
168
|
+
- **Stylelint**: new rule `lint-suite/no-unused-classes` (enabled in the `stylelint` preset): reports a class
|
|
169
|
+
selector in a component stylesheet that no template of that component uses. Templates come from the
|
|
170
|
+
`@Component` metadata beside the stylesheet (`styleUrl`/`styleUrls` match, then `templateUrl` or the inline
|
|
171
|
+
`template` literal), a sibling `.html` file, or any `.html` file under the working directory that links the
|
|
172
|
+
stylesheet with `<link rel="stylesheet" href="...">`, and a stylesheet shared by several components is judged
|
|
173
|
+
against all of their templates. Selectors are parsed with `postcss-scss`, so `&` nesting, `@media` blocks,
|
|
174
|
+
and selector lists resolve and each name is reported on the rule that declares it; `:host(...)` /
|
|
175
|
+
`:host-context(...)` arguments and everything after `::ng-deep` are skipped, interpolated selectors are
|
|
176
|
+
never reported, and `@extend .base` counts `base` as used. Unlike the ESLint dual it also reads `[ngClass]`
|
|
177
|
+
and does not skip custom elements. Option: `ignoreClassPatterns` (default `['^(js|qa|mat|cdk|mdc)-']`).
|
|
178
|
+
A stylesheet with no template, or one whose template holds a class source the rule cannot read
|
|
179
|
+
(`[class]="expr()"`, `{{ expr }}` as a whole token), reports nothing.
|
|
180
|
+
- **TypeScript**: new autofixable rule `local/one-line-guard` (enabled in the `typescript` preset with
|
|
181
|
+
`maxLineLength` = the preset print width, 135): a lone `return`/`throw`/`continue`/`break` guard drops its
|
|
182
|
+
braces when the whole `if` fits on one line.
|
|
183
|
+
|
|
184
|
+
### Changed
|
|
185
|
+
|
|
186
|
+
- **Performance**: `no-unstyled-classes`, `no-unused-classes`, and `no-unused-instance-fields` now share one
|
|
187
|
+
mtime-keyed file cache for parsed `@Component` metadata, stylesheets, and templates, so a lint run only
|
|
188
|
+
re-parses a file that changed on disk. `no-unstyled-classes` also keeps the merged class set of a template's
|
|
189
|
+
stylesheet chain and only rebuilds it when one of those files changes; `no-unused-classes` caches directory
|
|
190
|
+
listings by directory mtime. Freshness is unchanged: every lint still stats each file it reads.
|
|
191
|
+
- **Performance**: parsed `@Component` metadata, stylesheet class entries, template class usage, and template
|
|
192
|
+
stylesheet links are also mirrored to disk in `node_modules/.cache/lint-suite/*.json` (keyed by path, mtime, and
|
|
193
|
+
size), so a fresh ESLint or stylelint process, a CI run, or an editor's first lint skips every parse of a file
|
|
194
|
+
that did not change since the last run. `LINT_SUITE_CACHE_DIR` moves the directory; `LINT_SUITE_CACHE=0`
|
|
195
|
+
disables the disk copy (the in-memory cache stays).
|
|
196
|
+
- **Performance** (`no-unused-instance-fields`, project analysis): the project index is now incremental per edit
|
|
197
|
+
instead of per session. Reads of `this.member` and of a lone template `member` that the class declares itself
|
|
198
|
+
resolve syntactically (the type checker is only asked for inherited, indexed, or chained reads); a newly seen
|
|
199
|
+
member name re-indexes only files that read that exact name (was: any file whose text contained it as a
|
|
200
|
+
substring); the directive index is rebuilt only when a selector actually changes; per-lint bookkeeping no longer
|
|
201
|
+
rebuilds the usage set or path-normalizes every dependency. Templates are parsed without whitespace and trivia
|
|
202
|
+
spans. On a synthetic 10k-file project (3,300 components): first-open index build 10.2s → 6.6s, cost added per
|
|
203
|
+
editor save 106ms → 7ms, and adding a field or a component no longer triggers a full re-index. Freshness: the
|
|
204
|
+
templates of the linted file and of every component in its folder are checked on every lint; templates in
|
|
205
|
+
other folders are checked on the existing throttled schedule (100× the duration of the last check).
|
|
206
|
+
|
|
207
|
+
## [1.6.2] - 2026-09-04
|
|
208
|
+
|
|
209
|
+
### Changed
|
|
210
|
+
|
|
211
|
+
- **Internal**: the class-usage helpers shared by `no-unstyled-classes` and `no-unused-classes` (component
|
|
212
|
+
metadata reading, template class collection, class-expression literals, selector class resolution, resolved
|
|
213
|
+
rule walking) moved to `src/lib/rules/common/`. No public API change.
|
|
214
|
+
- **Angular**: `lint-suite-angular/no-unused-instance-fields` project analysis now keeps an incremental
|
|
215
|
+
per-tsconfig index instead of rebuilding the whole project index whenever the TypeScript Program changes.
|
|
216
|
+
In editors every save produces a new Program; only the saved file and the files whose reads depended on it
|
|
217
|
+
are re-indexed, so lint feedback after a save drops from seconds to milliseconds (300-component benchmark:
|
|
218
|
+
2.5 s → 0.05 s per save). Full lints are faster too: template reads are resolved with `@angular/compiler`
|
|
219
|
+
directly instead of running a whole-program `@angular/compiler-cli` analysis (rule time 4.0 s → 2.4 s on
|
|
220
|
+
the same project). Template references (`#ref`, `#ref="exportAs"`) resolve within a standalone component's
|
|
221
|
+
`imports` when those resolve to Program classes, and against every matching component or directive in the
|
|
222
|
+
Program otherwise (NgModule scopes, `hostDirectives`); extra candidates can only add reads, never reports.
|
|
223
|
+
See `packages/lint-suite/benchmarks/` to reproduce.
|
|
224
|
+
- **Angular**: `lint-suite-angular/no-unused-instance-fields` project analysis reads `template`, `templateUrl`,
|
|
225
|
+
`selector`, and `exportAs` given as string constants (local or imported) through the type checker instead of
|
|
226
|
+
failing closed on anything but a literal.
|
|
227
|
+
- **Angular**: `lint-suite-angular/no-unused-instance-fields` project analysis no longer goes silent for the
|
|
228
|
+
whole project when one file cannot be indexed. Such a file falls back to name matching (every member whose
|
|
229
|
+
name it mentions counts as read); set `LINT_SUITE_DEBUG=1` to see which files fell back and why.
|
|
230
|
+
|
|
231
|
+
### Bug Fixes
|
|
232
|
+
|
|
233
|
+
- **Dependencies**: Dropped `@angular/compiler-cli`; project analysis only needs `@angular/compiler`.
|
|
234
|
+
|
|
235
|
+
## [1.6.1] - 2026-09-02
|
|
236
|
+
|
|
237
|
+
### Breaking Changes
|
|
238
|
+
|
|
239
|
+
- **Angular**: The `angular` preset now requires typed parser services (`projectService: true`) and runs
|
|
240
|
+
`lint-suite-angular/no-unused-instance-fields` in project mode. It recognizes exact reads in the configured
|
|
241
|
+
TypeScript/Angular Program, including external parent templates/TypeScript, subclasses, and Angular interface
|
|
242
|
+
implementations. Project mode now reports unused public/protected directive members. Direct rule usage remains
|
|
243
|
+
local by default, and `allowEffectFields` remains opt-in. After cross-file or template changes, do not use
|
|
244
|
+
ESLint `--cache` for correctness gates; run a full non-cached lint.
|
|
245
|
+
|
|
246
|
+
### Changed
|
|
247
|
+
|
|
248
|
+
- **TypeScript**: `local/explicit-accessibility` auto-fix now inserts `public` by default (was `private`); `defaultAccessibility` still configures it (new value `'none'` reports without an auto-fix), and IDE suggestions offer the remaining levels.
|
|
249
|
+
- **TypeScript**: The `typescript` preset no longer enables `@typescript-eslint/explicit-member-accessibility` alongside `local/explicit-accessibility`; every missing modifier was reported twice.
|
|
250
|
+
- **Angular**: `lint-suite-angular/no-unused-instance-fields` project analysis reuses the ESLint program's parsed source files for the Angular compiler and checks external template freshness at an amortized rate instead of once per linted file, cutting project-mode overhead by roughly two thirds.
|
|
251
|
+
|
|
252
|
+
### Features
|
|
253
|
+
|
|
254
|
+
- **Angular**: Extended `lint-suite-angular/no-unused-instance-fields` with optional project-wide TypeScript and Angular template usage analysis, auto-cleaned effect handling, and signal query recognition.
|
|
255
|
+
- **TypeScript**: Added `local/readonly-type-properties`, an auto-fixable rule reporting primitive-typed `type`, interface, and inline object type properties that are not marked `readonly`; array-, object-, and reference-typed properties are left untouched. Enabled in the `typescript` preset.
|
|
256
|
+
- **TypeScript**: Added `local/no-inline-object-types`, reporting object type literals nested inside a `type` alias declaration (only the alias's direct body may be an object literal). Enabled in the `typescript` preset.
|
|
257
|
+
|
|
258
|
+
### Bug Fixes
|
|
259
|
+
|
|
260
|
+
- **Dependencies**: Added `@angular/compiler-cli` and pinned `@angular/compiler` for Angular project analysis.
|
|
261
|
+
- **Angular**: `lint-suite-angular/no-unused-instance-fields` local analysis no longer reports non-private members of `abstract` components/directives, nor `ControlValueAccessor`/`Validator`/`AsyncValidator` methods on classes that implement them.
|
|
262
|
+
- **TypeScript**: `local/explicit-accessibility` no longer fixes constructors to `private`, no longer reports `#private` members, no longer inserts a doubled space before fixed methods, and now reports abstract and `accessor` members.
|
|
263
|
+
- **Angular**: Excluded fields typed with Angular's `ComponentRef` from `no-unused-instance-fields` reports without exempting unrelated same-named local types.
|
|
264
|
+
|
|
265
|
+
## [1.6.0] - 2026-08-30
|
|
266
|
+
|
|
267
|
+
### Features
|
|
268
|
+
|
|
269
|
+
- **Angular**: Added `lint-suite-angular/no-unused-instance-fields` to report unused component and directive fields and methods while recognizing reads from TypeScript, templates, and host expressions.
|
|
270
|
+
|
|
271
|
+
### Bug Fixes
|
|
272
|
+
|
|
273
|
+
- **TypeScript**: Corrected the test-file override id `@typescript-eslint/no-unbound-method` → `@typescript-eslint/unbound-method`. The mistyped (non-existent) id meant `unbound-method` was never actually disabled in `*.spec` / `*.test` / `*.e2e` files.
|
|
274
|
+
- **Dependencies**: Updated compatible Angular, Nx, ESLint, TypeScript ESLint, test, and Stylelint dependencies and regenerated the lockfile to remove known transitive vulnerabilities.
|
|
275
|
+
|
|
276
|
+
## [1.5.0] - 2026-07-16
|
|
277
|
+
|
|
278
|
+
### Breaking Changes
|
|
279
|
+
|
|
280
|
+
- **Angular**: Upgraded `angular-eslint` ^21.4.0 → ^22.1.0 (Angular 22, TypeScript 6, ESLint 9+ flat config only). Removed the `no-conflicting-lifecycle` rule from the `angular` config — the rule was deleted upstream in v22. `prefer-on-push-component-change-detection` changed semantics: it now reports only components that explicitly opt out of OnPush (omitting `changeDetection` means OnPush in Angular v22).
|
|
281
|
+
- **Boundaries**: Upgraded `eslint-plugin-boundaries` 6.0.2 → 7.0.2 and migrated the config to the v7 entity model: `rules` option renamed to `policies`, flat element selectors wrapped as entity selectors (`from: { element: { type: ... } }`), and the custom message migrated from the legacy `${...}` to the `{{...}}` template syntax (`{{to.element.types}}` / `{{from.element.types}}`). Report behavior is unchanged; default report messages from the plugin now include entity information, so exact-string assertions may need re-recording.
|
|
282
|
+
- **JSON**: Upgraded `@eslint/json` ^1.2.0 → ^2.0.1.
|
|
283
|
+
|
|
284
|
+
### Bug Fixes
|
|
285
|
+
|
|
286
|
+
- **Stylelint**: Added an empty top-level `rules: {}` to the shared `stylelint` config. Stylelint 17 resolves the configuration for the working directory when picking a formatter, and an overrides-only config failed there with `ConfigurationError: No rules found within configuration`.
|
|
287
|
+
- **Dependencies**: Migrated the workspace to Nx 23.1 and bumped `@nx/eslint-plugin` 22.7.3 → 23.1.0, `typescript-eslint` and `@typescript-eslint/utils` 8.59.4 → 8.64.0, `@vitest/eslint-plugin` 1.6.18 → 1.6.23, `eslint-import-resolver-typescript` 4.4.4 → 4.4.5, `eslint-plugin-import-x` 4.16.2 → 4.17.1, `eslint-plugin-playwright` 2.10.4 → 2.10.5, `eslint-plugin-storybook` 10.4.1 → 10.5.2, `globals` 17.6.0 → 17.7.0, `stylelint` 17.12.0 → 17.14.0, and `stylelint-scss` 7.1.1 → 7.2.0.
|
|
288
|
+
- **Workspace**: Migrated to pnpm 11.13.1 — the removed `onlyBuiltDependencies` setting was replaced with `allowBuilds` in `pnpm-workspace.yaml`. Adopted the TypeScript 6 defaults by dropping the `ignoreDeprecations`/`esModuleInterop: false`/`types: ["*"]`/`noUncheckedSideEffectImports: false` pins the Nx migration had written into the tsconfigs (`module: nodenext` already implies `esModuleInterop`). Fixed `nx.json` `defaultBase` from `main` to the actual `master` branch. CI/release workflows: pnpm 10.33.0 → 11.13.1, `actions/checkout` v4 → v7.0.0, `actions/setup-node` v4 → v7.0.0, `pnpm/action-setup` v6.0.3 → v6.0.9 (all SHA-pinned).
|
|
289
|
+
|
|
290
|
+
## [1.4.0] - 2026-06-16
|
|
291
|
+
|
|
292
|
+
### Features
|
|
293
|
+
|
|
294
|
+
- **Stylelint**: Added a shared `stylelint` config as a named export on subpath `lint-suite/stylelint` (`import { stylelint } from 'lint-suite/stylelint'`) for SCSS — extends `stylelint-config-standard`, `stylelint-config-standard-scss`, `stylelint-config-recess-order` with BEM selector enforcement, scoped to `**/*.scss`.
|
|
295
|
+
- **Prettier**: Added a shared `prettier` config as a named export on subpath `lint-suite/prettier` (`import { prettier } from 'lint-suite/prettier'`) with the suite's house formatting defaults and Angular/HTML template overrides.
|
|
296
|
+
|
|
297
|
+
### Breaking Changes
|
|
298
|
+
|
|
299
|
+
- **ESLint**: Moved all ESLint configs to the `lint-suite/eslint` subpath; the root `lint-suite` import no longer exports them. Update imports to `import { recommended } from 'lint-suite/eslint'`.
|
|
300
|
+
- **Jest**: Removed the `jest` config module and the `eslint-plugin-jest` dependency. The `jest` export is gone and `recommended` no longer applies Jest rules to `**/*.spec.{ts,js}`. Consumers relying on Jest linting should use the `vitest` config or pin `lint-suite@1.3.11`.
|
|
301
|
+
|
|
302
|
+
## [1.3.11] - 2026-05-25
|
|
303
|
+
|
|
304
|
+
### Features
|
|
305
|
+
|
|
306
|
+
- **Angular**: Downgraded `no-developer-preview` and `no-experimental` from `error` to `warn` so consumers can adopt Angular preview/experimental APIs without disabling the rules.
|
|
307
|
+
|
|
308
|
+
### Bug Fixes
|
|
309
|
+
|
|
310
|
+
- **Boundaries**: Migrated config to `eslint-plugin-boundaries` v6. Renamed `boundaries/element-types` to `boundaries/dependencies` and converted legacy string selectors to object-based form (`from: { type: ... }`, `allow: [{ to: { type: ... } }]`). Silences the v5→v6 deprecation warnings.
|
|
311
|
+
- **Dependencies**: Bumped `@nx/eslint-plugin` 22.7.1 → 22.7.3, `@typescript-eslint/utils` and `typescript-eslint` 8.59.2 → 8.59.4, `@vitest/eslint-plugin` 1.6.16 → 1.6.18, `eslint-plugin-playwright` 2.10.2 → 2.10.4, `eslint-plugin-storybook` 10.3.6 → 10.4.1, `angular-eslint` ^21.3.1 → ^21.4.0, and `eslint` ^10.3.0 → ^10.4.0.
|
|
312
|
+
|
|
313
|
+
## [1.3.10] - 2026-05-07
|
|
314
|
+
|
|
315
|
+
### Breaking Changes
|
|
316
|
+
|
|
317
|
+
- **JSON**: Replaced `eslint-plugin-json` with the official `@eslint/json` plugin. `eslint-plugin-json@4` is incompatible with ESLint 10 (uses removed `context.getFilename()` API). Consumers using the `json` config module continue to get `**/*.json` and `**/tsconfig*.json` / `**/.vscode/*.json` (JSONC) coverage, now via `language: 'json/json'` and `language: 'json/jsonc'`.
|
|
318
|
+
|
|
319
|
+
## [1.3.9] - 2026-05-07
|
|
320
|
+
|
|
321
|
+
### Bug Fixes
|
|
322
|
+
|
|
323
|
+
- **Dependencies**: Declared `@eslint/js` as a runtime dependency. `@nx/eslint-plugin` requires it via `require('@eslint/js')` without declaring it itself, so consumers were crashing with `Cannot find module '@eslint/js'` whenever `@eslint/js` was not transitively hoisted from elsewhere.
|
|
324
|
+
|
|
325
|
+
## [1.3.8] - 2026-05-06
|
|
326
|
+
|
|
327
|
+
### Features
|
|
328
|
+
|
|
329
|
+
- **Angular**: Added new rules for safer components — `computed-must-return`, `no-conflicting-lifecycle`, `no-duplicates-in-metadata-arrays`, `no-lifecycle-call`, `require-lifecycle-on-prototype`, `relative-url-prefix`, `use-component-selector`, `no-developer-preview`, and `no-experimental`.
|
|
330
|
+
- **Angular Templates**: Added `no-non-null-assertion` to forbid `!` assertions in templates and `no-inline-styles` to forbid inline `style="..."` attributes.
|
|
331
|
+
|
|
332
|
+
### Bug Fixes
|
|
333
|
+
|
|
334
|
+
- **TypeScript**: Fixed `explicit-member-accessibility` autofix inserting accessibility modifiers in the wrong position in some cases.
|
|
335
|
+
|
|
336
|
+
## [1.3.7] - 2026-03-30
|
|
337
|
+
|
|
338
|
+
### Bug Fixes
|
|
339
|
+
|
|
340
|
+
- **Imports**: Fixed import resolver failing to find `tsconfig` in consuming projects — resolver now auto-discovers tsconfig files instead of requiring a hardcoded path
|
|
341
|
+
|
|
342
|
+
## [1.3.4] - 2026-03-30
|
|
343
|
+
|
|
344
|
+
### Bug Fixes
|
|
345
|
+
|
|
346
|
+
- **Imports**: Fixed import resolver failing to find `tsconfig` in consuming projects when using `eslint-import-resolver-typescript`
|
|
347
|
+
|
|
348
|
+
## [1.3.2] - 2026-02-14
|
|
349
|
+
|
|
350
|
+
### Improvements
|
|
351
|
+
|
|
352
|
+
- **TypeScript**: Relaxed `@typescript-eslint/no-confusing-void-expression` — enabled `ignoreArrowShorthand` and `ignoreVoidOperator` options to allow common patterns like `() => void doSomething()` and shorthand arrow returns
|
|
353
|
+
|
|
354
|
+
## 1.3.1 (2026-02-14)
|
|
355
|
+
|
|
356
|
+
### Improvements
|
|
357
|
+
|
|
358
|
+
- **RxJS**: Disabled `rxjs/no-subscribe-handlers` in test files — subscribe handlers are acceptable in tests
|
|
359
|
+
- **TypeScript**: Disabled `@typescript-eslint/no-extraneous-class` in `.action.ts` files — NgRx action classes are intentionally empty
|
|
360
|
+
|
|
361
|
+
### Removed
|
|
362
|
+
|
|
363
|
+
- **Boundaries**: Removed `boundaries/no-unknown` rule — too noisy for most projects
|
|
364
|
+
- **Vitest**: Removed `vitest/no-conditional-in-test` — overly strict for real-world test scenarios
|
|
365
|
+
|
|
366
|
+
## 1.3.0 (2026-02-13)
|
|
367
|
+
|
|
368
|
+
### Features
|
|
369
|
+
|
|
370
|
+
- **Prettier**: Added new `prettier` configuration module using `eslint-config-prettier` to disable formatting rules that conflict with Prettier. Must be last in the configuration array.
|
|
371
|
+
- **Angular Templates**: Added Angular 21+ control flow rules (`prefer-at-else`, `prefer-at-empty`, `prefer-contextual-for-variables`, `no-empty-control-flow`).
|
|
372
|
+
- **Angular Templates**: Added performance rules (`prefer-class-binding`, `prefer-static-string-properties`, `no-call-expression`, `conditional-complexity`).
|
|
373
|
+
- **Angular**: Added Angular 21.2.0 rules (`no-implicit-take-until-destroyed`, `no-async-lifecycle-method`, `prefer-output-readonly`, `prefer-output-emitter-ref`, `sort-lifecycle-methods`).
|
|
374
|
+
- **TypeScript**: Added v8 type-safety replacements for deprecated `ban-types` (`no-empty-object-type`, `no-unsafe-function-type`, `no-wrapper-object-types`).
|
|
375
|
+
- **TypeScript**: Added strict type-checked rules (`no-unnecessary-condition`, `no-confusing-void-expression`, `no-dynamic-delete`, `no-extraneous-class`, `no-invalid-void-type`, `unified-signatures`, `no-non-null-asserted-nullish-coalescing`).
|
|
376
|
+
- **TypeScript**: Added stylistic type-checked rules (`prefer-find`, `prefer-for-of`, `prefer-includes`, `prefer-string-starts-ends-with`, `prefer-regexp-exec`).
|
|
377
|
+
- **TypeScript**: Replaced deprecated rules — `no-var-requires` → `no-require-imports`, `no-throw-literal` → `only-throw-error`.
|
|
378
|
+
- **TypeScript**: Added `no-array-delete` and `return-await` (in-try-catch) for safer code patterns.
|
|
379
|
+
- **Imports**: Added `no-self-import`, `no-cycle` (max depth 2), `consistent-type-specifier-style`, and `no-anonymous-default-export`.
|
|
380
|
+
- **Imports**: Enhanced `no-useless-path-segments` with `noUselessIndex` option.
|
|
381
|
+
- **Jest**: Overhauled configuration — switched from `flat/all` to `flat/recommended` with curated best-practice rules (`consistent-test-it`, `prefer-comparison-matcher`, `prefer-hooks-on-top`, `no-conditional-in-test`, and more).
|
|
382
|
+
- **Vitest**: Expanded rule set with matcher improvements, test quality rules, and `prefer-mock-promise-shorthand`.
|
|
383
|
+
- **Playwright**: Expanded rule set with locator best practices (`prefer-locator`, `prefer-native-locators`), matcher improvements, and test structure rules.
|
|
384
|
+
- **RxJS**: Added `no-exposed-subjects`, `no-cyclic-action`, and `no-subscribe-handlers` for better observable hygiene.
|
|
385
|
+
- **Storybook**: Added `csf-component` and `no-stories-of` rules to enforce modern CSF patterns.
|
|
386
|
+
- **Boundaries**: Added `no-unknown` and `no-unknown-files` warnings for uncategorized imports/files.
|
|
387
|
+
- **JSON**: Added `recommended-with-comments` config for `tsconfig*.json` and `.vscode/*.json` files.
|
|
388
|
+
- **Base**: Added `no-useless-assignment` (ESLint v9) and `no-object-constructor` rules.
|
|
389
|
+
|
|
390
|
+
### Breaking Changes
|
|
391
|
+
|
|
392
|
+
- **Jest**: Changed from `flat/all` to `flat/recommended` as the base preset. Projects relying on rules from `flat/all` that are not explicitly re-enabled may see rules disappear. Review the curated rule list if migrating.
|
|
393
|
+
- **Base**: Removed `no-return-await` (replaced by TypeScript-aware `@typescript-eslint/return-await`).
|
|
394
|
+
- **TypeScript**: `no-var-requires` replaced by `no-require-imports`; `no-throw-literal` replaced by `only-throw-error`.
|
|
395
|
+
|
|
396
|
+
## 1.2.3 (2025-12-25)
|
|
397
|
+
|
|
398
|
+
### Bug Fixes
|
|
399
|
+
|
|
400
|
+
- **Imports**: Resolved `import-x/order` configuration issue where internal aliases were misclassified as external packages.
|
|
401
|
+
- **Imports**: Updated `pathGroupsExcludedImportTypes` to strictly exclude `builtin` modules, ensuring correct sorting for internal path aliases.
|
|
402
|
+
|
|
403
|
+
## 1.2.0 (2025-12-25)
|
|
404
|
+
|
|
405
|
+
### Features
|
|
406
|
+
|
|
407
|
+
- **Angular**: Added support for Angular 19+ Signal inputs (`prefer-signal-model`).
|
|
408
|
+
- **Angular**: Enforced explicit signal invocation in templates (`no-uncalled-signals`).
|
|
409
|
+
- **Angular**: Updated host binding preference to `host` property (`prefer-host-metadata-property`).
|
|
410
|
+
- **Angular Templates**: Added comprehensive formatting and performance rules (`prefer-empty-for`, `no-call-expression`, `prefer-built-in-pipes`).
|
|
411
|
+
- **Imports**: Enhanced `sort-imports` and `import/order` configuration for better grouping ensuring local and external libraries are properly separated.
|
|
412
|
+
- **Boundaries**: Integrated `eslint-plugin-boundaries` to enforce architecture rules (feature, data-access, ui, domain-logic, etc.).
|
|
413
|
+
|
|
414
|
+
### Improvements
|
|
415
|
+
|
|
416
|
+
- **General**: Configured `max-lines-per-function` to ignore comments and blank lines, providing a more accurate complexity metric.
|
|
417
|
+
|
|
418
|
+
## 10.10.1 (2025-10-23)
|
|
419
|
+
|
|
420
|
+
- Added playwright and vitest plugins
|
|
421
|
+
|
|
422
|
+
## 1.0.8 (2025-05-12)
|
|
423
|
+
|
|
424
|
+
- Updated dependencies to latest versions
|
|
425
|
+
|
|
426
|
+
## 1.0.7 (2025-05-12)
|
|
427
|
+
|
|
428
|
+
- Added strict typescript support
|
|
429
|
+
- Added angular 20 rules
|
|
430
|
+
|
|
431
|
+
## 1.0.4 (2025-04-02)
|
|
432
|
+
|
|
433
|
+
- Removed unnecessary Prettier plugin from the base configuration, NX handles that
|
|
434
|
+
|
|
435
|
+
## 1.0.3 (2025-04-02)
|
|
436
|
+
|
|
437
|
+
- Fixed rxjs plugin
|
|
438
|
+
|
|
439
|
+
## 1.0.2 (2025-04-02)
|
|
440
|
+
|
|
441
|
+
- Fixed the parser issues
|
|
442
|
+
- Added new @stylistic support for prettier
|
|
443
|
+
|
|
444
|
+
## 1.0.1 (2025-03-31)
|
|
445
|
+
|
|
446
|
+
- Updated README.md to have badges
|
|
447
|
+
|
|
448
|
+
## 1.0.0 (2025-03-31)
|
|
449
|
+
|
|
450
|
+
### Features
|
|
451
|
+
|
|
452
|
+
#### Base Configuration
|
|
453
|
+
|
|
454
|
+
- Added flat ESLint configuration support
|
|
455
|
+
- Integrated stylistic plugin for consistent code formatting
|
|
456
|
+
- Configured import plugin with recommended settings
|
|
457
|
+
- Set maximum line length to 135 characters
|
|
458
|
+
- Limited file size to 150 lines (300 for test files)
|
|
459
|
+
- Implemented structured comment formatting
|
|
460
|
+
- Configured comma dangle rules for different contexts
|
|
461
|
+
- Set up proper indentation with special handling for complex cases
|
|
462
|
+
- Added import sorting with configurable groups
|
|
463
|
+
- Enforced class-methods-use-this rule
|
|
464
|
+
|
|
465
|
+
#### TypeScript Configuration
|
|
466
|
+
|
|
467
|
+
- Configured TypeScript-specific rules from @typescript-eslint
|
|
468
|
+
- Added explicit member accessibility requirement
|
|
469
|
+
- Enforced consistent type imports
|
|
470
|
+
- Added warnings for missing function return types
|
|
471
|
+
- Implemented readonly property enforcement
|
|
472
|
+
- Prohibited empty functions
|
|
473
|
+
- Added special configurations for action files (allowing multiple classes)
|
|
474
|
+
- Configured state files to bypass class-methods-use-this rule
|
|
475
|
+
- Added relaxed rules for spec files
|
|
476
|
+
|
|
477
|
+
#### Angular Configuration
|
|
478
|
+
|
|
479
|
+
- Integrated @nx/eslint-plugin angular configurations
|
|
480
|
+
- Enforced OnPush change detection strategy
|
|
481
|
+
|
|
482
|
+
#### Angular Template Configuration
|
|
483
|
+
|
|
484
|
+
- Comprehensive accessibility rules for templates
|
|
485
|
+
- Button type requirements
|
|
486
|
+
- Tabindex validation
|
|
487
|
+
- ARIA attribute validation
|
|
488
|
+
- Alt text requirements
|
|
489
|
+
- Proper element content validation
|
|
490
|
+
- Keyboard event handling alongside mouse events
|
|
491
|
+
- Table scope enforcement
|
|
492
|
+
- Autofocus prevention
|
|
493
|
+
- Removal of distracting elements
|
|
494
|
+
- Modern control flow syntax preference
|
|
495
|
+
- Self-closing tags standardization
|
|
496
|
+
- ngSrc usage recommendation
|
|
497
|
+
- Structured attributes ordering with customizable configuration
|
|
498
|
+
|
|
499
|
+
#### RxJS Configuration
|
|
500
|
+
|
|
501
|
+
- Integrated @smarttools/eslint-plugin-rxjs
|
|
502
|
+
- Set up Observer pattern usage enforcement
|
|
503
|
+
- Configured Finnish notation warnings
|
|
504
|
+
- Implemented error handling rules
|
|
505
|
+
- Added unsafe operator prevention (switchMap, takeUntil, catch, first)
|
|
506
|
+
- Prohibited toPromise() usage
|
|
507
|
+
- Enforced proper error throwing patterns
|
|
508
|
+
- Relaxed subscription rules for test files
|
|
509
|
+
|
|
510
|
+
#### Testing Support
|
|
511
|
+
|
|
512
|
+
- Integrated Jest plugin with recommended and style configurations
|
|
513
|
+
- Disabled done callback restriction
|
|
514
|
+
|
|
515
|
+
#### Additional Features
|
|
516
|
+
|
|
517
|
+
- Added JSON file linting via eslint-plugin-json
|
|
518
|
+
- Configured Storybook support
|
|
519
|
+
- Created specialized module declaration files for plugins
|
|
520
|
+
|
|
521
|
+
### Documentation
|
|
522
|
+
|
|
523
|
+
- Added detailed type definitions for eslint plugins
|
|
524
|
+
- Provided comprehensive configuration examples
|
|
525
|
+
|
|
526
|
+
[Unreleased]: https://github.com/F0rty-Tw0/lint-suite/compare/v2.1.0...HEAD
|
|
527
|
+
[1.3.4]: https://github.com/F0rty-Tw0/lint-suite/compare/v1.3.2...v1.3.4
|
|
528
|
+
[2.1.0]: https://github.com/F0rty-Tw0/lint-suite/compare/v2.0.2...v2.1.0
|
|
529
|
+
[2.0.2]: https://github.com/F0rty-Tw0/lint-suite/compare/v2.0.1...v2.0.2
|
|
530
|
+
[2.0.1]: https://github.com/F0rty-Tw0/lint-suite/compare/v2.0.0...v2.0.1
|
|
531
|
+
[2.0.0]: https://github.com/F0rty-Tw0/lint-suite/compare/v1.6.3...v2.0.0
|
|
532
|
+
[1.6.3]: https://github.com/F0rty-Tw0/lint-suite/compare/v1.6.2...v1.6.3
|
|
533
|
+
[1.6.2]: https://github.com/F0rty-Tw0/lint-suite/compare/v1.6.1...v1.6.2
|
|
534
|
+
[1.6.1]: https://github.com/F0rty-Tw0/lint-suite/compare/v1.6.0...v1.6.1
|
|
535
|
+
[1.6.0]: https://github.com/F0rty-Tw0/lint-suite/compare/v1.5.0...v1.6.0
|
|
536
|
+
[1.5.0]: https://github.com/F0rty-Tw0/lint-suite/compare/v1.4.0...v1.5.0
|
|
537
|
+
[1.4.0]: https://github.com/F0rty-Tw0/lint-suite/compare/v1.3.11...v1.4.0
|
|
538
|
+
[1.3.11]: https://github.com/F0rty-Tw0/lint-suite/compare/v1.3.11...v1.3.11
|
|
539
|
+
[1.3.10]: https://github.com/F0rty-Tw0/lint-suite/compare/v1.3.9...v1.3.10
|
|
540
|
+
[1.3.9]: https://github.com/F0rty-Tw0/lint-suite/compare/v1.3.8...v1.3.9
|
|
541
|
+
[1.3.8]: https://github.com/F0rty-Tw0/lint-suite/compare/v1.3.7...v1.3.8
|
|
542
|
+
[1.3.7]: https://github.com/F0rty-Tw0/lint-suite/compare/v1.3.4...v1.3.7
|