Socket
Socket
Sign inDemoInstall

eslint-plugin-vue

Package Overview
Dependencies
Maintainers
5
Versions
170
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

eslint-plugin-vue - npm Package Compare versions

Comparing version 6.0.2 to 6.1.0

lib/rules/component-definition-name-casing.js

1

lib/configs/no-layout-rules.js

@@ -22,2 +22,3 @@ /*

'vue/max-attributes-per-line': 'off',
'vue/max-len': 'off',
'vue/multiline-html-element-content-newline': 'off',

@@ -24,0 +25,0 @@ 'vue/mustache-interpolation-spacing': 'off',

@@ -19,3 +19,5 @@ /*

'comment-directive': require('./rules/comment-directive'),
'component-definition-name-casing': require('./rules/component-definition-name-casing'),
'component-name-in-template-casing': require('./rules/component-name-in-template-casing'),
'component-tags-order': require('./rules/component-tags-order'),
'dot-location': require('./rules/dot-location'),

@@ -34,2 +36,3 @@ 'eqeqeq': require('./rules/eqeqeq'),

'max-attributes-per-line': require('./rules/max-attributes-per-line'),
'max-len': require('./rules/max-len'),
'multiline-html-element-content-newline': require('./rules/multiline-html-element-content-newline'),

@@ -42,7 +45,11 @@ 'mustache-interpolation-spacing': require('./rules/mustache-interpolation-spacing'),

'no-deprecated-scope-attribute': require('./rules/no-deprecated-scope-attribute'),
'no-deprecated-slot-attribute': require('./rules/no-deprecated-slot-attribute'),
'no-deprecated-slot-scope-attribute': require('./rules/no-deprecated-slot-scope-attribute'),
'no-dupe-keys': require('./rules/no-dupe-keys'),
'no-duplicate-attributes': require('./rules/no-duplicate-attributes'),
'no-empty-pattern': require('./rules/no-empty-pattern'),
'no-irregular-whitespace': require('./rules/no-irregular-whitespace'),
'no-multi-spaces': require('./rules/no-multi-spaces'),
'no-parsing-error': require('./rules/no-parsing-error'),
'no-reserved-component-names': require('./rules/no-reserved-component-names'),
'no-reserved-keys': require('./rules/no-reserved-keys'),

@@ -53,5 +60,7 @@ 'no-restricted-syntax': require('./rules/no-restricted-syntax'),

'no-spaces-around-equal-signs-in-attribute': require('./rules/no-spaces-around-equal-signs-in-attribute'),
'no-static-inline-styles': require('./rules/no-static-inline-styles'),
'no-template-key': require('./rules/no-template-key'),
'no-template-shadow': require('./rules/no-template-shadow'),
'no-textarea-mustache': require('./rules/no-textarea-mustache'),
'no-unsupported-features': require('./rules/no-unsupported-features'),
'no-unused-components': require('./rules/no-unused-components'),

@@ -67,2 +76,3 @@ 'no-unused-vars': require('./rules/no-unused-vars'),

'require-direct-export': require('./rules/require-direct-export'),
'require-name-property': require('./rules/require-name-property'),
'require-prop-type-constructor': require('./rules/require-prop-type-constructor'),

@@ -78,2 +88,3 @@ 'require-prop-types': require('./rules/require-prop-types'),

'space-unary-ops': require('./rules/space-unary-ops'),
'static-class-names-order': require('./rules/static-class-names-order'),
'this-in-template': require('./rules/this-in-template'),

@@ -86,2 +97,3 @@ 'use-v-on-exact': require('./rules/use-v-on-exact'),

'valid-template-root': require('./rules/valid-template-root'),
'valid-v-bind-sync': require('./rules/valid-v-bind-sync'),
'valid-v-bind': require('./rules/valid-v-bind'),

@@ -88,0 +100,0 @@ 'valid-v-cloak': require('./rules/valid-v-cloak'),

39

lib/rules/attributes-order.js

@@ -11,2 +11,15 @@ /**

// ------------------------------------------------------------------------------
const ATTRS = {
DEFINITION: 'DEFINITION',
LIST_RENDERING: 'LIST_RENDERING',
CONDITIONALS: 'CONDITIONALS',
RENDER_MODIFIERS: 'RENDER_MODIFIERS',
GLOBAL: 'GLOBAL',
UNIQUE: 'UNIQUE',
TWO_WAY_BINDING: 'TWO_WAY_BINDING',
OTHER_DIRECTIVES: 'OTHER_DIRECTIVES',
OTHER_ATTR: 'OTHER_ATTR',
EVENTS: 'EVENTS',
CONTENT: 'CONTENT'
}

@@ -21,27 +34,27 @@ function getAttributeType (attribute, sourceCode) {

if (name === 'for') {
return 'LIST_RENDERING'
return ATTRS.LIST_RENDERING
} else if (name === 'if' || name === 'else-if' || name === 'else' || name === 'show' || name === 'cloak') {
return 'CONDITIONALS'
return ATTRS.CONDITIONALS
} else if (name === 'pre' || name === 'once') {
return 'RENDER_MODIFIERS'
return ATTRS.RENDER_MODIFIERS
} else if (name === 'model') {
return 'TWO_WAY_BINDING'
return ATTRS.TWO_WAY_BINDING
} else if (name === 'on') {
return 'EVENTS'
return ATTRS.EVENTS
} else if (name === 'html' || name === 'text') {
return 'CONTENT'
return ATTRS.CONTENT
} else if (name === 'slot') {
return 'UNIQUE'
return ATTRS.UNIQUE
} else {
return 'OTHER_DIRECTIVES'
return ATTRS.OTHER_DIRECTIVES
}
} else {
if (name === 'is') {
return 'DEFINITION'
return ATTRS.DEFINITION
} else if (name === 'id') {
return 'GLOBAL'
return ATTRS.GLOBAL
} else if (name === 'ref' || name === 'key' || name === 'slot' || name === 'slot-scope') {
return 'UNIQUE'
return ATTRS.UNIQUE
} else {
return 'OTHER_ATTR'
return ATTRS.OTHER_ATTR
}

@@ -58,3 +71,3 @@ }

const sourceCode = context.getSourceCode()
let attributeOrder = ['DEFINITION', 'LIST_RENDERING', 'CONDITIONALS', 'RENDER_MODIFIERS', 'GLOBAL', 'UNIQUE', 'TWO_WAY_BINDING', 'OTHER_DIRECTIVES', 'OTHER_ATTR', 'EVENTS', 'CONTENT']
let attributeOrder = [ATTRS.DEFINITION, ATTRS.LIST_RENDERING, ATTRS.CONDITIONALS, ATTRS.RENDER_MODIFIERS, ATTRS.GLOBAL, ATTRS.UNIQUE, ATTRS.TWO_WAY_BINDING, ATTRS.OTHER_DIRECTIVES, ATTRS.OTHER_ATTR, ATTRS.EVENTS, ATTRS.CONTENT]
if (context.options[0] && context.options[0].order) {

@@ -61,0 +74,0 @@ attributeOrder = context.options[0].order

@@ -23,2 +23,4 @@ /**

},
// deprecated: true, // TODO Change with major version.
// replacedBy: ['component-definition-name-casing'], // TODO Change with major version.
fixable: 'code', // or "code" or "whitespace"

@@ -25,0 +27,0 @@ schema: [

@@ -121,5 +121,5 @@ /**

node.type !== 'ArrayExpression' &&
(node.type !== 'UnaryExpression' || ['!', '~', '+', '-', 'typeof'].indexOf(node.operator) < 0) &&
(node.type !== 'BinaryExpression' || ALL_BINARY_OPERATORS.indexOf(node.operator) < 0) &&
(node.type !== 'LogicalExpression' || LOGICAL_OPERATORS.indexOf(node.operator) < 0) &&
(node.type !== 'UnaryExpression' || !['!', '~', '+', '-', 'typeof'].includes(node.operator)) &&
(node.type !== 'BinaryExpression' || !ALL_BINARY_OPERATORS.includes(node.operator)) &&
(node.type !== 'LogicalExpression' || !LOGICAL_OPERATORS.includes(node.operator)) &&
node.type !== 'MemberExpression' &&

@@ -126,0 +126,0 @@ node.type !== 'ConditionalExpression' &&

@@ -81,2 +81,4 @@ /**

category: undefined, // strongly-recommended
// TODO Change with major version.
// category: 'strongly-recommended',
url: 'https://eslint.vuejs.org/rules/v-slot-style.html'

@@ -83,0 +85,0 @@ },

@@ -146,2 +146,4 @@ /**

category: undefined, // essential
// TODO Change with major version.
// category: 'essential',
url: 'https://eslint.vuejs.org/rules/valid-v-slot.html'

@@ -148,0 +150,0 @@ },

@@ -281,3 +281,3 @@ /**

const offsets = new Map()
const preformattedTokens = new Set()
const ignoreTokens = new Set()

@@ -345,5 +345,5 @@ /**

for (const token of tokenStore.getTokensBetween(node.startTag, endToken, option)) {
preformattedTokens.add(token)
ignoreTokens.add(token)
}
preformattedTokens.add(endToken)
ignoreTokens.add(endToken)
}

@@ -514,2 +514,7 @@

while (node.parent.type === type) {
const prevToken = tokenStore.getTokenBefore(node)
if (isLeftParen(prevToken)) {
// The chaining is broken by parentheses.
break
}
node = node.parent

@@ -543,3 +548,11 @@ }

if (t === 'VExpressionContainer') {
return node.range[0] === token.range[0]
if (node.range[0] !== token.range[0]) {
return false
}
const prevToken = tokenStore.getTokenBefore(belongingNode)
if (isLeftParen(prevToken)) {
// It is not the first token because it is enclosed in parentheses.
return false
}
return true
}

@@ -594,2 +607,3 @@ if (t === 'CallExpression' || t === 'NewExpression') {

offsets.delete(token)
ignoreTokens.add(token)
}

@@ -856,4 +870,4 @@ }

// It does not validate preformatted tokens.
if (preformattedTokens.has(firstToken)) {
// It does not validate ignore tokens.
if (ignoreTokens.has(firstToken)) {
return

@@ -860,0 +874,0 @@ }

{
"name": "eslint-plugin-vue",
"version": "6.0.2",
"version": "6.1.0",
"description": "Official ESLint plugin for Vue.js",

@@ -10,2 +10,3 @@ "main": "lib/index.js",

"test": "nyc npm run test:base -- \"tests/integrations/*.js\" --timeout 60000",
"debug": "mocha --inspect-brk \"tests/lib/**/*.js\" --reporter dot --timeout 60000",
"lint": "eslint . --rulesdir eslint-internal-rules",

@@ -50,3 +51,3 @@ "pretest": "npm run lint",

"dependencies": {
"vue-eslint-parser": "^6.0.5"
"vue-eslint-parser": "^7.0.0"
},

@@ -53,0 +54,0 @@ "devDependencies": {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc