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 9.12.0 to 9.13.0

lib/rules/prefer-define-options.js

2

lib/index.js

@@ -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 @@ )

108

lib/rules/define-macros-order.js

@@ -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

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