diff --git a/lib/rules/attributes-order.js b/lib/rules/attributes-order.js index 96fb1ac1d..474d1e92f 100644 --- a/lib/rules/attributes-order.js +++ b/lib/rules/attributes-order.js @@ -346,18 +346,33 @@ module.exports = { url: 'https://eslint.vuejs.org/rules/attributes-order.html' }, fixable: 'code', - schema: { - type: 'array', - properties: { - order: { - items: { - type: 'string' + schema: [ + { + type: 'object', + properties: { + order: { + type: 'array', + items: { + anyOf: [ + { enum: Object.values(ATTRS) }, + { + type: 'array', + items: { + enum: Object.values(ATTRS), + uniqueItems: true, + additionalItems: false + } + } + ] + }, + uniqueItems: true, + additionalItems: false }, - maxItems: 10, - minItems: 10 - } + alphabetical: { type: 'boolean' } + }, + additionalProperties: false } - } + ] }, create } diff --git a/lib/rules/component-tags-order.js b/lib/rules/component-tags-order.js index b2a2692a8..dc7da9725 100644 --- a/lib/rules/component-tags-order.js +++ b/lib/rules/component-tags-order.js @@ -40,7 +40,8 @@ module.exports = { uniqueItems: true, additionalItems: false } - } + }, + additionalProperties: false } ], messages: { diff --git a/lib/rules/max-attributes-per-line.js b/lib/rules/max-attributes-per-line.js index 8cec63617..e379df47f 100644 --- a/lib/rules/max-attributes-per-line.js +++ b/lib/rules/max-attributes-per-line.js @@ -61,7 +61,8 @@ module.exports = { } ] } - } + }, + additionalProperties: false } ] }, diff --git a/lib/rules/new-line-between-multi-line-property.js b/lib/rules/new-line-between-multi-line-property.js index b48d78379..c1be3618f 100644 --- a/lib/rules/new-line-between-multi-line-property.js +++ b/lib/rules/new-line-between-multi-line-property.js @@ -68,7 +68,8 @@ module.exports = { type: 'number', minimum: 2 } - } + }, + additionalProperties: false } ] }, diff --git a/lib/rules/no-bare-strings-in-template.js b/lib/rules/no-bare-strings-in-template.js index e8dc5bfcd..899700036 100644 --- a/lib/rules/no-bare-strings-in-template.js +++ b/lib/rules/no-bare-strings-in-template.js @@ -149,7 +149,8 @@ module.exports = { items: { type: 'string', pattern: '^v-' }, uniqueItems: true } - } + }, + additionalProperties: false } ], messages: { diff --git a/lib/rules/no-duplicate-attributes.js b/lib/rules/no-duplicate-attributes.js index 83cc52d83..4a3309b0c 100644 --- a/lib/rules/no-duplicate-attributes.js +++ b/lib/rules/no-duplicate-attributes.js @@ -59,7 +59,8 @@ module.exports = { allowCoexistStyle: { type: 'boolean' } - } + }, + additionalProperties: false } ] }, diff --git a/lib/rules/no-potential-component-option-typo.js b/lib/rules/no-potential-component-option-typo.js index f3ac47363..cf3b33cdc 100644 --- a/lib/rules/no-potential-component-option-typo.js +++ b/lib/rules/no-potential-component-option-typo.js @@ -44,7 +44,8 @@ module.exports = { type: 'number', minimum: 1 } - } + }, + additionalProperties: false } ] }, diff --git a/lib/rules/no-reserved-component-names.js b/lib/rules/no-reserved-component-names.js index aecbe6020..890f1a306 100644 --- a/lib/rules/no-reserved-component-names.js +++ b/lib/rules/no-reserved-component-names.js @@ -84,7 +84,8 @@ module.exports = { disallowVue3BuiltInComponents: { type: 'boolean' } - } + }, + additionalProperties: false } ], messages: { diff --git a/lib/rules/no-use-v-if-with-v-for.js b/lib/rules/no-use-v-if-with-v-for.js index 187339260..47904629c 100644 --- a/lib/rules/no-use-v-if-with-v-for.js +++ b/lib/rules/no-use-v-if-with-v-for.js @@ -62,7 +62,8 @@ module.exports = { allowUsingIterationVar: { type: 'boolean' } - } + }, + additionalProperties: false } ] }, diff --git a/lib/rules/no-useless-mustaches.js b/lib/rules/no-useless-mustaches.js index b8a2057d8..845c42f9b 100644 --- a/lib/rules/no-useless-mustaches.js +++ b/lib/rules/no-useless-mustaches.js @@ -50,7 +50,8 @@ module.exports = { ignoreStringEscape: { type: 'boolean' } - } + }, + additionalProperties: false } ], type: 'suggestion' diff --git a/lib/rules/no-useless-v-bind.js b/lib/rules/no-useless-v-bind.js index 01549ca6e..5d4dc0067 100644 --- a/lib/rules/no-useless-v-bind.js +++ b/lib/rules/no-useless-v-bind.js @@ -30,7 +30,8 @@ module.exports = { ignoreStringEscape: { type: 'boolean' } - } + }, + additionalProperties: false } ], type: 'suggestion' diff --git a/lib/rules/valid-v-slot.js b/lib/rules/valid-v-slot.js index f5ff3a0e7..4914edef9 100644 --- a/lib/rules/valid-v-slot.js +++ b/lib/rules/valid-v-slot.js @@ -287,7 +287,8 @@ module.exports = { allowModifiers: { type: 'boolean' } - } + }, + additionalProperties: false } ], messages: { diff --git a/tests/lib/rules/attributes-order.js b/tests/lib/rules/attributes-order.js index 97c3b6e73..02bb0304b 100644 --- a/tests/lib/rules/attributes-order.js +++ b/tests/lib/rules/attributes-order.js @@ -259,7 +259,7 @@ tester.run('attributes-order', rule, {
@@ -273,7 +273,7 @@ tester.run('attributes-order', rule, { 'DEFINITION', 'EVENTS', 'UNIQUE', - ['BINDING', 'OTHER_ATTR'], + ['TWO_WAY_BINDING', 'OTHER_ATTR'], 'CONTENT', 'GLOBAL' ] @@ -705,7 +705,7 @@ tester.run('attributes-order', rule, {
@@ -719,7 +719,7 @@ tester.run('attributes-order', rule, { 'DEFINITION', 'EVENTS', 'UNIQUE', - ['BINDING', 'OTHER_ATTR'], + ['TWO_WAY_BINDING', 'OTHER_ATTR'], 'CONTENT', 'GLOBAL' ] @@ -729,7 +729,7 @@ tester.run('attributes-order', rule, {