eslint-plugin-vue
Advanced tools
Comparing version 9.12.0 to 9.13.0
@@ -169,2 +169,3 @@ /* | ||
'padding-lines-in-component-definition': require('./rules/padding-lines-in-component-definition'), | ||
'prefer-define-options': require('./rules/prefer-define-options'), | ||
'prefer-import-from-vue': require('./rules/prefer-import-from-vue'), | ||
@@ -214,2 +215,3 @@ 'prefer-prop-type-boolean-first': require('./rules/prefer-prop-type-boolean-first'), | ||
'valid-define-emits': require('./rules/valid-define-emits'), | ||
'valid-define-options': require('./rules/valid-define-options'), | ||
'valid-define-props': require('./rules/valid-define-props'), | ||
@@ -216,0 +218,0 @@ 'valid-model-definition': require('./rules/valid-model-definition'), |
@@ -80,4 +80,3 @@ /** | ||
return Object.assign( | ||
{}, | ||
return utils.compositingVisitors( | ||
utils.executeOnCallVueComponent(context, (node) => { | ||
@@ -98,2 +97,13 @@ if (node.arguments.length === 2) { | ||
convertName(node.value) | ||
}), | ||
utils.defineScriptSetupVisitor(context, { | ||
onDefineOptionsEnter(node) { | ||
if (node.arguments.length === 0) return | ||
const define = node.arguments[0] | ||
if (define.type !== 'ObjectExpression') return | ||
const nameNode = utils.findProperty(define, 'name') | ||
if (!nameNode) return | ||
if (!canConvert(nameNode.value)) return | ||
convertName(nameNode.value) | ||
} | ||
}) | ||
@@ -100,0 +110,0 @@ ) |
@@ -11,3 +11,5 @@ /** | ||
const MACROS_PROPS = 'defineProps' | ||
const ORDER = [MACROS_EMITS, MACROS_PROPS] | ||
const MACROS_OPTIONS = 'defineOptions' | ||
const MACROS_SLOTS = 'defineSlots' | ||
const ORDER_SCHEMA = [MACROS_EMITS, MACROS_PROPS, MACROS_OPTIONS, MACROS_SLOTS] | ||
const DEFAULT_ORDER = [MACROS_PROPS, MACROS_EMITS] | ||
@@ -107,2 +109,8 @@ | ||
macrosNodes.set(MACROS_EMITS, getDefineMacrosStatement(node)) | ||
}, | ||
onDefineOptionsExit(node) { | ||
macrosNodes.set(MACROS_OPTIONS, getDefineMacrosStatement(node)) | ||
}, | ||
onDefineSlotsExit(node) { | ||
macrosNodes.set(MACROS_SLOTS, getDefineMacrosStatement(node)) | ||
} | ||
@@ -112,4 +120,7 @@ }), | ||
'Program:exit'(program) { | ||
const shouldFirstNode = macrosNodes.get(order[0]) | ||
const shouldSecondNode = macrosNodes.get(order[1]) | ||
/** | ||
* @typedef {object} OrderedData | ||
* @property {string} name | ||
* @property {ASTNode} node | ||
*/ | ||
const firstStatementIndex = getTargetStatementPosition( | ||
@@ -119,42 +130,25 @@ scriptSetup, | ||
) | ||
const firstStatement = program.body[firstStatementIndex] | ||
const orderedList = order | ||
.map((name) => ({ name, node: macrosNodes.get(name) })) | ||
.filter( | ||
/** @returns {data is OrderedData} */ | ||
(data) => utils.isDef(data.node) | ||
) | ||
// have both defineEmits and defineProps | ||
if (shouldFirstNode && shouldSecondNode) { | ||
const secondStatement = program.body[firstStatementIndex + 1] | ||
for (const [index, should] of orderedList.entries()) { | ||
const targetStatement = program.body[firstStatementIndex + index] | ||
// need move only first | ||
if (firstStatement === shouldSecondNode) { | ||
reportNotOnTop(order[0], shouldFirstNode, firstStatement) | ||
if (should.node !== targetStatement) { | ||
let moveTargetNodes = orderedList | ||
.slice(index) | ||
.map(({ node }) => node) | ||
const targetStatementIndex = | ||
moveTargetNodes.indexOf(targetStatement) | ||
if (targetStatementIndex >= 0) { | ||
moveTargetNodes = moveTargetNodes.slice(0, targetStatementIndex) | ||
} | ||
reportNotOnTop(should.name, moveTargetNodes, targetStatement) | ||
return | ||
} | ||
// need move both defineEmits and defineProps | ||
if (firstStatement !== shouldFirstNode) { | ||
reportBothNotOnTop( | ||
shouldFirstNode, | ||
shouldSecondNode, | ||
firstStatement | ||
) | ||
return | ||
} | ||
// need move only second | ||
if (secondStatement !== shouldSecondNode) { | ||
reportNotOnTop(order[1], shouldSecondNode, secondStatement) | ||
} | ||
return | ||
} | ||
// have only first and need to move it | ||
if (shouldFirstNode && firstStatement !== shouldFirstNode) { | ||
reportNotOnTop(order[0], shouldFirstNode, firstStatement) | ||
return | ||
} | ||
// have only second and need to move it | ||
if (shouldSecondNode && firstStatement !== shouldSecondNode) { | ||
reportNotOnTop(order[1], shouldSecondNode, firstStatement) | ||
} | ||
} | ||
@@ -165,32 +159,10 @@ } | ||
/** | ||
* @param {ASTNode} shouldFirstNode | ||
* @param {ASTNode} shouldSecondNode | ||
* @param {ASTNode} before | ||
*/ | ||
function reportBothNotOnTop(shouldFirstNode, shouldSecondNode, before) { | ||
context.report({ | ||
node: shouldFirstNode, | ||
loc: shouldFirstNode.loc, | ||
messageId: 'macrosNotOnTop', | ||
data: { | ||
macro: order[0] | ||
}, | ||
fix(fixer) { | ||
return [ | ||
...moveNodeBefore(fixer, shouldFirstNode, before), | ||
...moveNodeBefore(fixer, shouldSecondNode, before) | ||
] | ||
} | ||
}) | ||
} | ||
/** | ||
* @param {string} macro | ||
* @param {ASTNode} node | ||
* @param {ASTNode[]} nodes | ||
* @param {ASTNode} before | ||
*/ | ||
function reportNotOnTop(macro, node, before) { | ||
function reportNotOnTop(macro, nodes, before) { | ||
context.report({ | ||
node, | ||
loc: node.loc, | ||
node: nodes[0], | ||
loc: nodes[0].loc, | ||
messageId: 'macrosNotOnTop', | ||
@@ -200,4 +172,6 @@ data: { | ||
}, | ||
fix(fixer) { | ||
return moveNodeBefore(fixer, node, before) | ||
*fix(fixer) { | ||
for (const node of nodes) { | ||
yield* moveNodeBefore(fixer, node, before) | ||
} | ||
} | ||
@@ -297,3 +271,3 @@ }) | ||
items: { | ||
enum: Object.values(ORDER) | ||
enum: ORDER_SCHEMA | ||
}, | ||
@@ -300,0 +274,0 @@ uniqueItems: true, |
@@ -122,4 +122,3 @@ /** | ||
return Object.assign( | ||
{}, | ||
return utils.compositingVisitors( | ||
utils.executeOnCallVueComponent(context, (node) => { | ||
@@ -143,2 +142,14 @@ if (node.arguments.length === 2) { | ||
}), | ||
utils.defineScriptSetupVisitor(context, { | ||
onDefineOptionsEnter(node) { | ||
componentCount++ | ||
if (node.arguments.length === 0) return | ||
const define = node.arguments[0] | ||
if (define.type !== 'ObjectExpression') return | ||
const nameNode = utils.findProperty(define, 'name') | ||
if (!nameNode) return | ||
if (!canVerify(nameNode.value)) return | ||
verifyName(nameNode.value) | ||
} | ||
}), | ||
{ | ||
@@ -145,0 +156,0 @@ 'Program:exit'() { |
@@ -101,2 +101,13 @@ /** | ||
}), | ||
utils.defineScriptSetupVisitor(context, { | ||
onDefineOptionsEnter(node) { | ||
if (node.arguments.length === 0) return | ||
const define = node.arguments[0] | ||
if (define.type !== 'ObjectExpression') return | ||
const nameNode = utils.findProperty(define, 'name') | ||
if (!nameNode) return | ||
hasName = true | ||
validateName(nameNode.value) | ||
} | ||
}), | ||
{ | ||
@@ -103,0 +114,0 @@ /** @param {Program} node */ |
@@ -150,4 +150,3 @@ /** | ||
return Object.assign( | ||
{}, | ||
return utils.compositingVisitors( | ||
utils.executeOnCallVueComponent(context, (node) => { | ||
@@ -175,2 +174,13 @@ if (node.arguments.length === 2) { | ||
reportIfInvalid(node.value) | ||
}), | ||
utils.defineScriptSetupVisitor(context, { | ||
onDefineOptionsEnter(node) { | ||
if (node.arguments.length === 0) return | ||
const define = node.arguments[0] | ||
if (define.type !== 'ObjectExpression') return | ||
const nameNode = utils.findProperty(define, 'name') | ||
if (!nameNode) return | ||
if (!canVerify(nameNode.value)) return | ||
reportIfInvalid(nameNode.value) | ||
} | ||
}) | ||
@@ -177,0 +187,0 @@ ) |
@@ -176,9 +176,21 @@ /** | ||
return utils.defineVueVisitor(context, { | ||
onVueObjectEnter(node) { | ||
for (const option of options) { | ||
verify(node, option.test, option.message) | ||
return utils.compositingVisitors( | ||
utils.defineVueVisitor(context, { | ||
onVueObjectEnter(node) { | ||
for (const option of options) { | ||
verify(node, option.test, option.message) | ||
} | ||
} | ||
} | ||
}) | ||
}), | ||
utils.defineScriptSetupVisitor(context, { | ||
onDefineOptionsEnter(node) { | ||
if (node.arguments.length === 0) return | ||
const define = node.arguments[0] | ||
if (define.type !== 'ObjectExpression') return | ||
for (const option of options) { | ||
verify(define, option.test, option.message) | ||
} | ||
} | ||
}) | ||
) | ||
@@ -185,0 +197,0 @@ /** |
@@ -112,10 +112,13 @@ /** | ||
context.report({ | ||
node: prop.key, | ||
node: prop.type !== 'infer-type' ? prop.key : prop.node, | ||
messageId: 'restrictedProp', | ||
data: { message }, | ||
suggest: createSuggest( | ||
prop.key, | ||
option, | ||
withDefaultsProps && withDefaultsProps[prop.propName] | ||
) | ||
suggest: | ||
prop.type !== 'infer-type' | ||
? createSuggest( | ||
prop.key, | ||
option, | ||
withDefaultsProps && withDefaultsProps[prop.propName] | ||
) | ||
: null | ||
}) | ||
@@ -122,0 +125,0 @@ break |
@@ -35,3 +35,6 @@ /** | ||
'v-bind-prop-modifier-shorthand': require('./syntaxes/v-bind-prop-modifier-shorthand'), | ||
'v-bind-attr-modifier': require('./syntaxes/v-bind-attr-modifier') | ||
'v-bind-attr-modifier': require('./syntaxes/v-bind-attr-modifier'), | ||
// Vue.js 3.3.0+ | ||
'define-options': require('./syntaxes/define-options'), | ||
'define-slots': require('./syntaxes/define-slots') | ||
} | ||
@@ -119,3 +122,8 @@ | ||
forbiddenVBindAttrModifier: | ||
'`.attr` modifiers on `v-bind` are not supported until Vue.js "3.2.0".' | ||
'`.attr` modifiers on `v-bind` are not supported until Vue.js "3.2.0".', | ||
// Vue.js 3.3.0+ | ||
forbiddenDefineOptions: | ||
'`defineOptions()` macros are not supported until Vue.js "3.3.0".', | ||
forbiddenDefineSlots: | ||
'`defineSlots()` macros are not supported until Vue.js "3.3.0".' | ||
} | ||
@@ -122,0 +130,0 @@ }, |
@@ -33,3 +33,3 @@ /** | ||
* @property {GroupName} groupName | ||
* @property {'array' | 'type'} type | ||
* @property {'array' | 'type' | 'infer-type'} type | ||
* @property {ASTNode} node | ||
@@ -427,3 +427,3 @@ * | ||
groupName: 'props', | ||
node: prop.key | ||
node: prop.type !== 'infer-type' ? prop.key : prop.node | ||
}) | ||
@@ -430,0 +430,0 @@ } |
@@ -337,6 +337,16 @@ /** | ||
return utils.executeOnVue(context, (obj) => { | ||
checkOrder(obj.properties) | ||
}) | ||
return utils.compositingVisitors( | ||
utils.executeOnVue(context, (obj) => { | ||
checkOrder(obj.properties) | ||
}), | ||
utils.defineScriptSetupVisitor(context, { | ||
onDefineOptionsEnter(node) { | ||
if (node.arguments.length === 0) return | ||
const define = node.arguments[0] | ||
if (define.type !== 'ObjectExpression') return | ||
checkOrder(define.properties) | ||
} | ||
}) | ||
) | ||
} | ||
} |
@@ -9,2 +9,3 @@ /** | ||
* @typedef {import('../utils').ComponentProp} ComponentProp | ||
* @typedef {import('../utils').ComponentEmit} ComponentEmit | ||
* @typedef {import('../utils').GroupName} GroupName | ||
@@ -37,6 +38,15 @@ */ | ||
/** | ||
* @param {string} nodeType | ||
* @typedef {Exclude<ComponentProp | ComponentEmit, {type:'infer-type'}> & { node: {type: 'Property' | 'SpreadElement'} }} ValidComponentPropOrEmit | ||
*/ | ||
function isValidProperties(nodeType) { | ||
return ['Property', 'SpreadElement'].includes(nodeType) | ||
/** | ||
* @template {ComponentProp | ComponentEmit} T | ||
* @param {T} propOrEmit | ||
* @returns {propOrEmit is ValidComponentPropOrEmit & T} | ||
*/ | ||
function isValidProperties(propOrEmit) { | ||
return Boolean( | ||
propOrEmit.type !== 'infer-type' && | ||
propOrEmit.node && | ||
['Property', 'SpreadElement'].includes(propOrEmit.node.type) | ||
) | ||
} | ||
@@ -325,7 +335,5 @@ | ||
onDefinePropsEnter(_, props) { | ||
const propNodes = /** @type {(Property | SpreadElement)[]} */ ( | ||
props | ||
.filter((prop) => prop.node && isValidProperties(prop.node.type)) | ||
.map((prop) => prop.node) | ||
) | ||
const propNodes = props | ||
.filter(isValidProperties) | ||
.map((prop) => prop.node) | ||
@@ -343,7 +351,5 @@ const withinOption = parseOption(options, OptionKeys.WithinOption) | ||
onDefineEmitsEnter(_, emits) { | ||
const emitNodes = /** @type {(Property | SpreadElement)[]} */ ( | ||
emits | ||
.filter((emit) => emit.node && isValidProperties(emit.node.type)) | ||
.map((emit) => emit.node) | ||
) | ||
const emitNodes = emits | ||
.filter(isValidProperties) | ||
.map((emit) => emit.node) | ||
@@ -359,2 +365,12 @@ const withinOption = parseOption(options, OptionKeys.WithinOption) | ||
) | ||
}, | ||
onDefineOptionsEnter(node) { | ||
if (node.arguments.length === 0) return | ||
const define = node.arguments[0] | ||
if (define.type !== 'ObjectExpression') return | ||
verify( | ||
define.properties, | ||
parseOption(options, OptionKeys.BetweenOptions), | ||
parseOption(options, OptionKeys.WithinOption) | ||
) | ||
} | ||
@@ -361,0 +377,0 @@ }) |
@@ -70,2 +70,5 @@ /** | ||
function checkProperty(prop) { | ||
if (prop.type !== 'object') { | ||
return | ||
} | ||
const { value } = prop | ||
@@ -72,0 +75,0 @@ if (!value) { |
@@ -37,14 +37,18 @@ /** | ||
function checker(emit) { | ||
if (emit.type !== 'object' && emit.type !== 'array') { | ||
/** @type {Expression|null} */ | ||
let value = null | ||
let hasType = false | ||
if (emit.type === 'object') { | ||
value = emit.value | ||
hasType = | ||
value.type === 'ArrowFunctionExpression' || | ||
value.type === 'FunctionExpression' || | ||
// validator may from outer scope | ||
value.type === 'Identifier' | ||
} else if (emit.type !== 'array') { | ||
return | ||
} | ||
const { value, node, emitName } = emit | ||
const hasType = | ||
!!value && | ||
(value.type === 'ArrowFunctionExpression' || | ||
value.type === 'FunctionExpression' || | ||
// validator may from outer scope | ||
value.type === 'Identifier') | ||
if (!hasType) { | ||
const { node, emitName } = emit | ||
const name = | ||
@@ -56,2 +60,3 @@ emitName || | ||
if (value && value.type === 'Literal' && value.value === null) { | ||
const valueNode = value | ||
context.report({ | ||
@@ -64,3 +69,3 @@ node, | ||
messageId: 'emptyValidation', | ||
fix: (fixer) => fixer.replaceText(value, '() => true') | ||
fix: (fixer) => fixer.replaceText(valueNode, '() => true') | ||
} | ||
@@ -67,0 +72,0 @@ ] |
@@ -432,3 +432,6 @@ /** | ||
define.type === 'ObjectExpression' ? '`emits` option' : '`defineEmits`' | ||
const certainEmits = emits.filter((e) => e.key) | ||
const certainEmits = emits.filter( | ||
/** @returns {e is ComponentEmit & {type:'array'|'object'}} */ | ||
(e) => e.type === 'array' || e.type === 'object' | ||
) | ||
if (certainEmits.length > 0) { | ||
@@ -435,0 +438,0 @@ const last = certainEmits[certainEmits.length - 1] |
@@ -65,3 +65,3 @@ /** | ||
for (const prop of props) { | ||
if (!prop.propName) { | ||
if (!prop.propName || prop.type === 'infer-type') { | ||
continue | ||
@@ -68,0 +68,0 @@ } |
@@ -82,3 +82,3 @@ /** | ||
for (const prop of props) { | ||
if (!prop.value || prop.propName == null) { | ||
if (prop.type !== 'object' || prop.propName == null) { | ||
continue | ||
@@ -85,0 +85,0 @@ } |
@@ -54,8 +54,8 @@ /** | ||
} | ||
const { value, node, propName } = prop | ||
let hasType = true | ||
if (!value) { | ||
if (prop.type === 'array') { | ||
hasType = false | ||
} else { | ||
const { value } = prop | ||
switch (value.type) { | ||
@@ -81,2 +81,3 @@ case 'ObjectExpression': { | ||
if (!hasType) { | ||
const { node, propName } = prop | ||
const name = | ||
@@ -83,0 +84,0 @@ propName || |
@@ -10,5 +10,7 @@ /** | ||
/** | ||
* @typedef {import('../utils').ComponentProp} ComponentProp | ||
* @typedef {import('../utils').ComponentObjectProp} ComponentObjectProp | ||
* @typedef {import('../utils').ComponentArrayProp} ComponentArrayProp | ||
* @typedef {import('../utils').ComponentTypeProp} ComponentTypeProp | ||
* @typedef {import('../utils').ComponentInferTypeProp} ComponentInferTypeProp | ||
* @typedef {import('../utils').ComponentUnknownProp} ComponentUnknownProp | ||
@@ -112,3 +114,3 @@ * @typedef {import('../utils').VueObjectData} VueObjectData | ||
* @typedef {object} PropDefaultFunctionContext | ||
* @property {ComponentObjectProp | ComponentTypeProp} prop | ||
* @property {ComponentObjectProp | ComponentTypeProp | ComponentInferTypeProp} prop | ||
* @property {Set<string>} types | ||
@@ -230,3 +232,3 @@ * @property {FunctionValueType} default | ||
* @param {*} node | ||
* @param {ComponentObjectProp | ComponentTypeProp} prop | ||
* @param {ComponentObjectProp | ComponentTypeProp | ComponentInferTypeProp} prop | ||
* @param {Iterable<string>} expectedTypeNames | ||
@@ -251,3 +253,3 @@ */ | ||
/** | ||
* @param {(ComponentObjectDefineProp | ComponentTypeProp)[]} props | ||
* @param {(ComponentObjectDefineProp | ComponentTypeProp | ComponentInferTypeProp)[]} props | ||
* @param { { [key: string]: Expression | undefined } } withDefaults | ||
@@ -401,7 +403,6 @@ */ | ||
onDefinePropsEnter(node, baseProps) { | ||
/** @type {(ComponentObjectDefineProp | ComponentTypeProp)[]} */ | ||
const props = baseProps.filter( | ||
/** | ||
* @param {ComponentObjectProp | ComponentArrayProp | ComponentTypeProp | ComponentUnknownProp} prop | ||
* @returns {prop is ComponentObjectDefineProp | ComponentTypeProp} | ||
* @param {ComponentProp} prop | ||
* @returns {prop is ComponentObjectDefineProp | ComponentInferTypeProp | ComponentTypeProp} | ||
*/ | ||
@@ -411,2 +412,3 @@ (prop) => | ||
prop.type === 'type' || | ||
prop.type === 'infer-type' || | ||
(prop.type === 'object' && | ||
@@ -413,0 +415,0 @@ prop.value.type === 'ObjectExpression') |
@@ -68,3 +68,3 @@ /** | ||
for (const emit of emits) { | ||
if (!emit.value) { | ||
if (emit.type !== 'object' || !emit.value) { | ||
continue | ||
@@ -71,0 +71,0 @@ } |
@@ -23,3 +23,3 @@ /** | ||
referencingLocally: | ||
'`defineEmits` are referencing locally declared variables.', | ||
'`defineEmits` is referencing locally declared variables.', | ||
multiple: '`defineEmits` has been called multiple times.', | ||
@@ -89,3 +89,3 @@ notDefined: 'Custom events are not defined.', | ||
} | ||
//`defineEmits` are referencing locally declared variables. | ||
//`defineEmits` is referencing locally declared variables. | ||
context.report({ | ||
@@ -92,0 +92,0 @@ node, |
@@ -24,3 +24,3 @@ /** | ||
referencingLocally: | ||
'`defineProps` are referencing locally declared variables.', | ||
'`defineProps` is referencing locally declared variables.', | ||
multiple: '`defineProps` has been called multiple times.', | ||
@@ -90,3 +90,3 @@ notDefined: 'Props are not defined.', | ||
} | ||
//`defineProps` are referencing locally declared variables. | ||
//`defineProps` is referencing locally declared variables. | ||
context.report({ | ||
@@ -93,0 +93,0 @@ node, |
@@ -15,3 +15,3 @@ /** | ||
} = require('@eslint-community/eslint-utils') | ||
const { isTypeNode } = require('./ts-ast-utils') | ||
const { isTypeNode } = require('./ts-utils') | ||
@@ -231,3 +231,3 @@ /** | ||
/** | ||
* @param {TSESTreeNode} node | ||
* @param {ASTNode} node | ||
*/ | ||
@@ -234,0 +234,0 @@ // eslint-disable-next-line complexity -- ignore |
[ | ||
"compile", | ||
"createApp", | ||
"createSSRApp", | ||
"defineCustomElement", | ||
"defineSSRCustomElement", | ||
"hydrate", | ||
"render", | ||
"Transition", | ||
"TransitionGroup", | ||
"TransitionGroupProps", | ||
"TransitionProps", | ||
"useCssModule", | ||
"useCssVars", | ||
"vModelCheckbox", | ||
"vModelDynamic", | ||
"vModelRadio", | ||
"vModelSelect", | ||
"vModelText", | ||
"vShow", | ||
"VueElement", | ||
"VueElementConstructor", | ||
"withKeys", | ||
"withModifiers", | ||
"AllowedComponentProps", | ||
"App", | ||
"AppConfig", | ||
"AppContext", | ||
"AsyncComponentLoader", | ||
"AsyncComponentOptions", | ||
"BaseTransition", | ||
"BaseTransitionProps", | ||
"callWithAsyncErrorHandling", | ||
"callWithErrorHandling", | ||
"camelize", | ||
"capitalize", | ||
"cloneVNode", | ||
"Comment", | ||
"CompatVue", | ||
"Component", | ||
"ComponentCustomOptions", | ||
"ComponentCustomProperties", | ||
"ComponentCustomProps", | ||
"ComponentInjectOptions", | ||
"ComponentInternalInstance", | ||
"ComponentObjectPropsOptions", | ||
"ComponentOptions", | ||
"ComponentOptionsBase", | ||
"ComponentOptionsMixin", | ||
"ComponentOptionsWithArrayProps", | ||
"ComponentOptionsWithObjectProps", | ||
"ComponentOptionsWithoutProps", | ||
"ComponentPropsOptions", | ||
"ComponentProvideOptions", | ||
"ComponentPublicInstance", | ||
"computed", | ||
"ComputedGetter", | ||
"ComputedOptions", | ||
"ComputedRef", | ||
"ComputedSetter", | ||
"ConcreteComponent", | ||
"CreateAppFunction", | ||
"createBlock", | ||
"createCommentVNode", | ||
"CreateComponentPublicInstance", | ||
"createElementBlock", | ||
"createElementVNode", | ||
"createHydrationRenderer", | ||
"createRenderer", | ||
"createSlots", | ||
"createStaticVNode", | ||
"createTextVNode", | ||
"createVNode", | ||
"customRef", | ||
"CustomRefFactory", | ||
@@ -80,37 +10,27 @@ "DebuggerEvent", | ||
"DeepReadonly", | ||
"defineAsyncComponent", | ||
"DefineComponent", | ||
"defineComponent", | ||
"defineEmits", | ||
"defineExpose", | ||
"defineProps", | ||
"DeprecationTypes", | ||
"devtools", | ||
"Directive", | ||
"DirectiveArguments", | ||
"DirectiveBinding", | ||
"DirectiveHook", | ||
"effect", | ||
"EffectScheduler", | ||
"EffectScope", | ||
"MaybeRef", | ||
"MaybeRefOrGetter", | ||
"Raw", | ||
"ReactiveEffect", | ||
"ReactiveEffectOptions", | ||
"ReactiveEffectRunner", | ||
"ReactiveFlags", | ||
"Ref", | ||
"ShallowReactive", | ||
"ShallowRef", | ||
"ShallowUnwrapRef", | ||
"ToRef", | ||
"ToRefs", | ||
"TrackOpTypes", | ||
"TriggerOpTypes", | ||
"UnwrapNestedRefs", | ||
"UnwrapRef", | ||
"WritableComputedOptions", | ||
"WritableComputedRef", | ||
"customRef", | ||
"effect", | ||
"effectScope", | ||
"EmitsOptions", | ||
"ErrorCodes", | ||
"ExtractDefaultPropTypes", | ||
"ExtractPropTypes", | ||
"Fragment", | ||
"FunctionalComponent", | ||
"FunctionDirective", | ||
"getCurrentInstance", | ||
"getCurrentScope", | ||
"getTransitionRawChildren", | ||
"guardReactiveProps", | ||
"h", | ||
"handleError", | ||
"HMRRuntime", | ||
"HydrationRenderer", | ||
"initCustomFormatter", | ||
"inject", | ||
"InjectionKey", | ||
"isMemoSame", | ||
"isProxy", | ||
@@ -120,132 +40,219 @@ "isReactive", | ||
"isRef", | ||
"isRuntimeOnly", | ||
"isShallow", | ||
"isVNode", | ||
"KeepAlive", | ||
"KeepAliveProps", | ||
"LegacyConfig", | ||
"markRaw", | ||
"mergeProps", | ||
"MethodOptions", | ||
"nextTick", | ||
"onScopeDispose", | ||
"proxyRefs", | ||
"reactive", | ||
"readonly", | ||
"ref", | ||
"shallowReactive", | ||
"shallowReadonly", | ||
"shallowRef", | ||
"stop", | ||
"toRaw", | ||
"toRef", | ||
"toRefs", | ||
"toValue", | ||
"triggerRef", | ||
"unref", | ||
"camelize", | ||
"capitalize", | ||
"normalizeClass", | ||
"normalizeProps", | ||
"normalizeStyle", | ||
"ObjectDirective", | ||
"toDisplayString", | ||
"toHandlerKey", | ||
"computed", | ||
"Slot", | ||
"Slots", | ||
"SlotsType", | ||
"nextTick", | ||
"queuePostFlushCb", | ||
"ObjectEmitsOptions", | ||
"EmitsOptions", | ||
"ComponentCustomProperties", | ||
"CreateComponentPublicInstance", | ||
"ComponentPublicInstance", | ||
"SuspenseProps", | ||
"Suspense", | ||
"SuspenseBoundary", | ||
"RootHydrateFunction", | ||
"Renderer", | ||
"HydrationRenderer", | ||
"RootRenderFunction", | ||
"RendererOptions", | ||
"RendererNode", | ||
"RendererElement", | ||
"createRenderer", | ||
"createHydrationRenderer", | ||
"KeepAliveProps", | ||
"KeepAlive", | ||
"onActivated", | ||
"onDeactivated", | ||
"onBeforeMount", | ||
"onMounted", | ||
"onBeforeUpdate", | ||
"onUpdated", | ||
"onBeforeUnmount", | ||
"onBeforeUpdate", | ||
"onDeactivated", | ||
"onUnmounted", | ||
"onServerPrefetch", | ||
"onRenderTriggered", | ||
"onRenderTracked", | ||
"onErrorCaptured", | ||
"onMounted", | ||
"onRenderTracked", | ||
"onRenderTriggered", | ||
"onScopeDispose", | ||
"onServerPrefetch", | ||
"onUnmounted", | ||
"onUpdated", | ||
"openBlock", | ||
"OptionMergeFunction", | ||
"Plugin", | ||
"popScopeId", | ||
"ComponentPropsOptions", | ||
"ComponentObjectPropsOptions", | ||
"Prop", | ||
"PropType", | ||
"ExtractPropTypes", | ||
"ExtractPublicPropTypes", | ||
"ExtractDefaultPropTypes", | ||
"DirectiveBinding", | ||
"DirectiveHook", | ||
"ObjectDirective", | ||
"FunctionDirective", | ||
"Directive", | ||
"DirectiveArguments", | ||
"withDirectives", | ||
"DeprecationTypes", | ||
"ComponentCustomOptions", | ||
"RenderFunction", | ||
"ComponentOptionsBase", | ||
"RuntimeCompilerOptions", | ||
"ComponentOptionsWithoutProps", | ||
"ComponentOptionsWithArrayProps", | ||
"ComponentOptionsWithObjectProps", | ||
"ComponentOptions", | ||
"ComponentOptionsMixin", | ||
"ComputedOptions", | ||
"MethodOptions", | ||
"ComponentProvideOptions", | ||
"ComponentInjectOptions", | ||
"InjectionKey", | ||
"provide", | ||
"proxyRefs", | ||
"pushScopeId", | ||
"queuePostFlushCb", | ||
"Raw", | ||
"reactive", | ||
"ReactiveEffect", | ||
"ReactiveEffectOptions", | ||
"ReactiveEffectRunner", | ||
"ReactiveFlags", | ||
"readonly", | ||
"Ref", | ||
"ref", | ||
"registerRuntimeCompiler", | ||
"Renderer", | ||
"RendererElement", | ||
"RendererNode", | ||
"RendererOptions", | ||
"RenderFunction", | ||
"renderList", | ||
"renderSlot", | ||
"resolveComponent", | ||
"resolveDirective", | ||
"resolveDynamicComponent", | ||
"inject", | ||
"hasInjectionContext", | ||
"App", | ||
"OptionMergeFunction", | ||
"AppConfig", | ||
"AppContext", | ||
"Plugin", | ||
"CreateAppFunction", | ||
"BaseTransitionProps", | ||
"TransitionHooks", | ||
"TransitionState", | ||
"useTransitionState", | ||
"BaseTransitionPropsValidators", | ||
"BaseTransition", | ||
"resolveTransitionHooks", | ||
"RootHydrateFunction", | ||
"RootRenderFunction", | ||
"RuntimeCompilerOptions", | ||
"setBlockTracking", | ||
"setDevtoolsHook", | ||
"setTransitionHooks", | ||
"SetupContext", | ||
"ShallowReactive", | ||
"shallowReactive", | ||
"shallowReadonly", | ||
"ShallowRef", | ||
"shallowRef", | ||
"ShallowUnwrapRef", | ||
"Slot", | ||
"Slots", | ||
"ssrContextKey", | ||
"Static", | ||
"stop", | ||
"Suspense", | ||
"SuspenseBoundary", | ||
"SuspenseProps", | ||
"getTransitionRawChildren", | ||
"TeleportProps", | ||
"Teleport", | ||
"TeleportProps", | ||
"resolveComponent", | ||
"resolveDynamicComponent", | ||
"resolveDirective", | ||
"Fragment", | ||
"Text", | ||
"toDisplayString", | ||
"toHandlerKey", | ||
"toHandlers", | ||
"toRaw", | ||
"ToRef", | ||
"toRef", | ||
"ToRefs", | ||
"toRefs", | ||
"TrackOpTypes", | ||
"transformVNodeArgs", | ||
"TransitionHooks", | ||
"TransitionState", | ||
"TriggerOpTypes", | ||
"triggerRef", | ||
"unref", | ||
"UnwrapNestedRefs", | ||
"UnwrapRef", | ||
"useAttrs", | ||
"useSlots", | ||
"useSSRContext", | ||
"useTransitionState", | ||
"version", | ||
"VNode", | ||
"Comment", | ||
"Static", | ||
"VNodeTypes", | ||
"VNodeRef", | ||
"VNodeProps", | ||
"VNodeArrayChildren", | ||
"VNodeChild", | ||
"VNodeNormalizedChildren", | ||
"VNodeProps", | ||
"VNodeRef", | ||
"VNodeTypes", | ||
"warn", | ||
"watch", | ||
"VNode", | ||
"openBlock", | ||
"setBlockTracking", | ||
"createElementBlock", | ||
"createBlock", | ||
"isVNode", | ||
"transformVNodeArgs", | ||
"createBaseVNode", | ||
"createVNode", | ||
"guardReactiveProps", | ||
"cloneVNode", | ||
"createTextVNode", | ||
"createStaticVNode", | ||
"createCommentVNode", | ||
"mergeProps", | ||
"ComponentCustomProps", | ||
"AllowedComponentProps", | ||
"FunctionalComponent", | ||
"ConcreteComponent", | ||
"Component", | ||
"SetupContext", | ||
"ComponentInternalInstance", | ||
"getCurrentInstance", | ||
"registerRuntimeCompiler", | ||
"isRuntimeOnly", | ||
"WatchEffect", | ||
"WatchSource", | ||
"WatchCallback", | ||
"WatchEffect", | ||
"WatchOptionsBase", | ||
"WatchOptions", | ||
"WatchStopHandle", | ||
"watchEffect", | ||
"WatchOptions", | ||
"WatchOptionsBase", | ||
"watchPostEffect", | ||
"WatchSource", | ||
"WatchStopHandle", | ||
"watchSyncEffect", | ||
"watch", | ||
"DefineComponent", | ||
"defineComponent", | ||
"AsyncComponentLoader", | ||
"AsyncComponentOptions", | ||
"defineAsyncComponent", | ||
"defineProps", | ||
"defineEmits", | ||
"defineExpose", | ||
"defineOptions", | ||
"defineSlots", | ||
"defineModel", | ||
"withDefaults", | ||
"useSlots", | ||
"useAttrs", | ||
"useModel", | ||
"h", | ||
"ssrContextKey", | ||
"useSSRContext", | ||
"warn", | ||
"ErrorCodes", | ||
"callWithErrorHandling", | ||
"callWithAsyncErrorHandling", | ||
"handleError", | ||
"initCustomFormatter", | ||
"devtools", | ||
"setDevtoolsHook", | ||
"HMRRuntime", | ||
"pushScopeId", | ||
"popScopeId", | ||
"withScopeId", | ||
"withCtx", | ||
"withDefaults", | ||
"withDirectives", | ||
"renderList", | ||
"toHandlers", | ||
"renderSlot", | ||
"createSlots", | ||
"withMemo", | ||
"withScopeId", | ||
"WritableComputedOptions", | ||
"WritableComputedRef", | ||
"isMemoSame", | ||
"LegacyConfig", | ||
"CompatVue", | ||
"version", | ||
"createElementVNode", | ||
"VueElementConstructor", | ||
"defineCustomElement", | ||
"defineSSRCustomElement", | ||
"VueElement", | ||
"useCssModule", | ||
"useCssVars", | ||
"TransitionProps", | ||
"Transition", | ||
"TransitionGroupProps", | ||
"TransitionGroup", | ||
"vModelText", | ||
"vModelCheckbox", | ||
"vModelRadio", | ||
"vModelSelect", | ||
"vModelDynamic", | ||
"withModifiers", | ||
"withKeys", | ||
"vShow", | ||
"CSSProperties", | ||
@@ -305,3 +312,12 @@ "StyleValue", | ||
"SVGAttributes", | ||
"Events" | ||
"IntrinsicElementAttributes", | ||
"Events", | ||
"ReservedProps", | ||
"NativeElements", | ||
"render", | ||
"hydrate", | ||
"createApp", | ||
"createSSRApp", | ||
"compileToFunction", | ||
"compile" | ||
] |
{ | ||
"name": "eslint-plugin-vue", | ||
"version": "9.12.0", | ||
"version": "9.13.0", | ||
"description": "Official ESLint plugin for Vue.js", | ||
@@ -62,3 +62,3 @@ "main": "lib/index.js", | ||
"semver": "^7.3.5", | ||
"vue-eslint-parser": "^9.0.1", | ||
"vue-eslint-parser": "^9.3.0", | ||
"xml-name-validator": "^4.0.0" | ||
@@ -65,0 +65,0 @@ }, |
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1213704
287
39229
Updatedvue-eslint-parser@^9.3.0