): boolean {
if (
node.type === 'CallExpression' &&
((node.callee.type === 'Identifier' && resolveReferences.has(node.callee)) ||
(node.callee.type === 'MemberExpression' &&
node.callee.property.type === 'Identifier' &&
resolveReferences.has(node.callee.property)))
) {
return true;
}
if (node.type !== 'Identifier') {
return false;
}
const variable = ctx.findVariable(node);
if (
variable === null ||
variable.identifiers.length === 0 ||
variable.identifiers[0].parent.type !== 'VariableDeclarator' ||
variable.identifiers[0].parent.init === null
) {
return false;
}
return expressionIsResolveCall(ctx, variable.identifiers[0].parent.init, resolveReferences);
}
function expressionIsEmpty(
node: TSESTree.CallExpressionArgument | TSESTree.Expression | AST.SvelteLiteral
): boolean {
return (
(node.type === 'Literal' && node.value === '') ||
(node.type === 'TemplateLiteral' &&
node.expressions.length === 0 &&
node.quasis.length === 1 &&
node.quasis[0].value.raw === '')
);
}
function expressionIsNullish(
node: TSESTree.CallExpressionArgument | TSESTree.Expression | AST.SvelteLiteral
): boolean {
switch (node.type) {
case 'Identifier':
return node.name === 'undefined';
case 'Literal':
return node.value === null; // Undefined is an Identifier in ESTree, null is a Literal
default:
return false;
}
}
function expressionIsAbsoluteUrl(
ctx: FindVariableContext,
node: TSESTree.CallExpressionArgument | TSESTree.Expression | AST.SvelteLiteral
): boolean {
switch (node.type) {
case 'BinaryExpression':
return binaryExpressionIsAbsoluteUrl(ctx, node);
case 'Literal':
return typeof node.value === 'string' && valueIsAbsoluteUrl(node.value);
case 'SvelteLiteral':
return valueIsAbsoluteUrl(node.value);
case 'TemplateLiteral':
return templateLiteralIsAbsoluteUrl(ctx, node);
default:
return false;
}
}
function binaryExpressionIsAbsoluteUrl(
ctx: FindVariableContext,
node: TSESTree.BinaryExpression
): boolean {
return (
node.operator === '+' &&
(expressionIsAbsoluteUrl(ctx, node.left) || expressionIsAbsoluteUrl(ctx, node.right))
);
}
function templateLiteralIsAbsoluteUrl(
ctx: FindVariableContext,
node: TSESTree.TemplateLiteral
): boolean {
return (
node.expressions.some((expression) => expressionIsAbsoluteUrl(ctx, expression)) ||
node.quasis.some((quasi) => valueIsAbsoluteUrl(quasi.value.raw))
);
}
function valueIsAbsoluteUrl(node: string): boolean {
return /^[+a-z]*:/i.test(node);
}
function expressionStartsWith(
ctx: FindVariableContext,
node:
| TSESTree.CallExpressionArgument
| TSESTree.Expression
| TSESTree.TemplateElement
| AST.SvelteLiteral,
prefix: string
): boolean {
switch (node.type) {
case 'BinaryExpression':
return binaryExpressionStartsWith(ctx, node, prefix);
case 'Identifier':
return identifierStartsWith(ctx, node, prefix);
case 'Literal':
return typeof node.value === 'string' && node.value.startsWith(prefix);
case 'SvelteLiteral':
return node.value.startsWith(prefix);
case 'TemplateElement':
return node.value.raw.startsWith(prefix);
case 'TemplateLiteral':
return templateLiteralStartsWith(ctx, node, prefix);
default:
return false;
}
}
function binaryExpressionStartsWith(
ctx: FindVariableContext,
node: TSESTree.BinaryExpression,
prefix: string
): boolean {
return node.operator === '+' && expressionStartsWith(ctx, node.left, prefix);
}
function identifierStartsWith(
ctx: FindVariableContext,
node: TSESTree.Identifier,
prefix: string
): boolean {
const variable = ctx.findVariable(node);
if (
variable === null ||
variable.identifiers.length === 0 ||
variable.identifiers[0].parent.type !== 'VariableDeclarator' ||
variable.identifiers[0].parent.init === null
) {
return false;
}
return expressionStartsWith(ctx, variable.identifiers[0].parent.init, prefix);
}
function templateLiteralStartsWith(
ctx: FindVariableContext,
node: TSESTree.TemplateLiteral,
prefix: string
): boolean {
return (
(node.expressions.length >= 1 && expressionStartsWith(ctx, node.expressions[0], prefix)) ||
(node.quasis.length >= 1 && expressionStartsWith(ctx, node.quasis[0], prefix))
);
}
================================================
FILE: packages/eslint-plugin-svelte/src/rules/no-not-function-handler.ts
================================================
import type { AST } from 'svelte-eslint-parser';
import type { TSESTree } from '@typescript-eslint/types';
import { createRule } from '../utils/index.js';
import { EVENT_NAMES } from '../utils/events.js';
import { FindVariableContext } from '../utils/ast-utils.js';
const PHRASES = {
ObjectExpression: 'object',
ArrayExpression: 'array',
ClassExpression: 'class',
Literal(node: TSESTree.Literal): string | null {
if ('regex' in node) {
return 'regex value';
}
if ('bigint' in node) {
return 'bigint value';
}
if (node.value == null) {
return null;
}
return `${typeof node.value} value`;
},
TemplateLiteral: 'string value'
};
export default createRule('no-not-function-handler', {
meta: {
docs: {
description: 'disallow use of not function in event handler',
category: 'Possible Errors',
recommended: true
},
schema: [],
messages: {
unexpected: 'Unexpected {{phrase}} in event handler.'
},
type: 'problem'
},
create(context) {
/** Find data expression */
function findRootExpression(
ctx: FindVariableContext,
node: TSESTree.Expression
): TSESTree.Expression {
if (node.type !== 'Identifier') {
return node;
}
const variable = ctx.findVariable(node);
if (!variable || variable.defs.length !== 1) {
return node;
}
const def = variable.defs[0];
if (def.type === 'Variable') {
if (def.parent.kind === 'const' && def.node.init) {
const init = def.node.init;
return findRootExpression(ctx, init);
}
}
return node;
}
/** Verify for `on:` directive value */
function verify(node: AST.SvelteEventHandlerDirective['expression']) {
if (!node) {
return;
}
const expression = findRootExpression(new FindVariableContext(context), node);
if (
expression.type !== 'ObjectExpression' &&
expression.type !== 'ArrayExpression' &&
expression.type !== 'ClassExpression' &&
expression.type !== 'Literal' &&
expression.type !== 'TemplateLiteral'
) {
return;
}
const phraseValue = PHRASES[expression.type];
const phrase =
typeof phraseValue === 'function' ? phraseValue(expression as never) : phraseValue;
if (phrase == null) {
return;
}
context.report({
node,
messageId: 'unexpected',
data: {
phrase
}
});
}
return {
SvelteDirective(node) {
if (node.kind !== 'EventHandler') {
return;
}
verify(node.expression);
},
SvelteAttribute(node) {
if (node.key.type === 'SvelteName' && EVENT_NAMES.includes(node.key.name)) {
const { value } = node;
if (Array.isArray(value)) {
for (const v of value) {
if (v.type === 'SvelteMustacheTag') {
verify(v.expression);
}
}
}
}
}
};
}
});
================================================
FILE: packages/eslint-plugin-svelte/src/rules/no-object-in-text-mustaches.ts
================================================
import { createRule } from '../utils/index.js';
const PHRASES = {
ObjectExpression: 'object',
ArrayExpression: 'array',
ArrowFunctionExpression: 'function',
FunctionExpression: 'function',
ClassExpression: 'class'
};
export default createRule('no-object-in-text-mustaches', {
meta: {
docs: {
description: 'disallow objects in text mustache interpolation',
category: 'Possible Errors',
recommended: true
},
schema: [],
messages: {
unexpected: 'Unexpected {{phrase}} in text mustache interpolation.'
},
type: 'problem'
},
create(context) {
return {
SvelteMustacheTag(node) {
const { expression } = node;
if (
expression.type !== 'ObjectExpression' &&
expression.type !== 'ArrayExpression' &&
expression.type !== 'ArrowFunctionExpression' &&
expression.type !== 'FunctionExpression' &&
expression.type !== 'ClassExpression'
) {
return;
}
if (node.parent.type === 'SvelteAttribute') {
if (node.parent.value.length === 1) {
// Maybe props
return;
}
}
context.report({
node,
messageId: 'unexpected',
data: {
phrase: PHRASES[expression.type]
}
});
}
};
}
});
================================================
FILE: packages/eslint-plugin-svelte/src/rules/no-raw-special-elements.ts
================================================
import type { AST } from 'svelte-eslint-parser';
import { createRule } from '../utils/index.js';
const INVALID_HTML_ELEMENTS = ['head', 'body', 'window', 'document', 'element', 'options'];
const VALID_PREFIX = 'svelte:';
export default createRule('no-raw-special-elements', {
meta: {
docs: {
description: 'Checks for invalid raw HTML elements',
category: 'Possible Errors',
recommended: true
},
schema: [],
messages: {
deprecatedElement:
'Special {{name}} element is deprecated in v5, use svelte:{{name}} instead.'
},
type: 'problem', // 'problem', or 'layout',
fixable: 'code'
},
create(context) {
return {
'SvelteElement[kind="html"]'(node: AST.SvelteHTMLElement) {
const { name } = node.name;
if (INVALID_HTML_ELEMENTS.includes(name)) {
context.report({
node,
messageId: 'deprecatedElement',
data: { name },
*fix(fixer) {
const { endTag } = node;
yield fixer.insertTextBeforeRange([node.range[0] + 1, node.range[1]], VALID_PREFIX);
if (endTag) {
yield fixer.insertTextBeforeRange(
[endTag.range[0] + 2, endTag.range[1]],
VALID_PREFIX
);
}
}
});
}
}
};
}
});
================================================
FILE: packages/eslint-plugin-svelte/src/rules/no-reactive-functions.ts
================================================
import type { TSESTree } from '@typescript-eslint/types';
import type { AST } from 'svelte-eslint-parser';
import { createRule } from '../utils/index.js';
export default createRule('no-reactive-functions', {
meta: {
docs: {
description: "it's not necessary to define functions in reactive statements",
category: 'Best Practices',
recommended: true
},
hasSuggestions: true,
schema: [],
messages: {
noReactiveFns: `Do not create functions inside reactive statements unless absolutely necessary.`,
fixReactiveFns: `Move the function out of the reactive statement`
},
type: 'suggestion',
conditions: [
{
svelteVersions: ['3/4']
},
{
svelteVersions: ['5'],
runes: [false, 'undetermined']
}
]
},
create(context) {
return {
// $: foo = () => { ... }
[`SvelteReactiveStatement > ExpressionStatement > AssignmentExpression > :function`](
node: TSESTree.ArrowFunctionExpression
) {
// Move upwards to include the entire label
const parent = node.parent?.parent?.parent;
if (!parent) {
return false;
}
const source = context.sourceCode;
return context.report({
node: parent,
loc: parent.loc,
messageId: 'noReactiveFns',
suggest: [
{
messageId: 'fixReactiveFns',
fix(fixer) {
const tokens = source.getFirstTokens(parent, {
includeComments: false,
count: 3
});
const noExtraSpace = source.isSpaceBetweenTokens(
tokens[1] as AST.Token,
tokens[2] as AST.Token
);
// Replace the entire reactive label with "const"
return fixer.replaceTextRange(
[tokens[0].range[0], tokens[1].range[1]],
noExtraSpace ? 'const' : 'const '
);
}
}
]
});
}
};
}
});
================================================
FILE: packages/eslint-plugin-svelte/src/rules/no-reactive-literals.ts
================================================
import type { TSESTree } from '@typescript-eslint/types';
import { createRule } from '../utils/index.js';
export default createRule('no-reactive-literals', {
meta: {
docs: {
description: "don't assign literal values in reactive statements",
category: 'Best Practices',
recommended: true
},
hasSuggestions: true,
schema: [],
messages: {
noReactiveLiterals: `Do not assign literal values inside reactive statements unless absolutely necessary.`,
fixReactiveLiteral: `Move the literal out of the reactive statement into an assignment`
},
type: 'suggestion',
conditions: [
{
svelteVersions: ['3/4']
},
{
svelteVersions: ['5'],
runes: [false, 'undetermined']
}
]
},
create(context) {
return {
[`SvelteReactiveStatement > ExpressionStatement > AssignmentExpression:matches(${[
// $: foo = "foo";
// $: foo = 1;
`[right.type="Literal"]`,
// $: foo = [];
`[right.type="ArrayExpression"][right.elements.length=0]`,
// $: foo = {};
`[right.type="ObjectExpression"][right.properties.length=0]`
].join(',')})`](node: TSESTree.AssignmentExpression) {
// Move upwards to include the entire reactive statement
const parent = node.parent?.parent;
if (!parent) {
return false;
}
const source = context.sourceCode;
return context.report({
node: parent,
loc: parent.loc,
messageId: 'noReactiveLiterals',
suggest: [
{
messageId: 'fixReactiveLiteral',
fix(fixer) {
return [
// Insert "let" + whatever was in there
fixer.insertTextBefore(parent, `let ${source.getText(node)}`),
// Remove the original reactive statement
fixer.remove(parent)
];
}
}
]
});
}
};
}
});
================================================
FILE: packages/eslint-plugin-svelte/src/rules/no-reactive-reassign.ts
================================================
import type { TSESTree } from '@typescript-eslint/types';
import type { AST } from 'svelte-eslint-parser';
import { createRule } from '../utils/index.js';
import { getPropertyName } from '@eslint-community/eslint-utils';
export default createRule('no-reactive-reassign', {
meta: {
docs: {
description: 'disallow reassigning reactive values',
category: 'Possible Errors',
recommended: true
},
schema: [
{
type: 'object',
properties: {
props: {
type: 'boolean'
}
},
additionalProperties: false
}
],
messages: {
assignmentToReactiveValue: "Assignment to reactive value '{{name}}'.",
assignmentToReactiveValueProp: "Assignment to property of reactive value '{{name}}'."
},
type: 'problem',
conditions: [
{
svelteVersions: ['3/4']
},
{
svelteVersions: ['5'],
runes: [false, 'undetermined']
}
]
},
create(context) {
const props = context.options[0]?.props !== false; // default true
const sourceCode = context.sourceCode;
const scopeManager = sourceCode.scopeManager;
const globalScope = scopeManager.globalScope;
const toplevelScope =
globalScope?.childScopes.find((scope) => scope.type === 'module') || globalScope;
if (!globalScope || !toplevelScope) {
return {};
}
type CheckContext = {
node: TSESTree.Expression;
parent: P;
pathNodes: TSESTree.MemberExpression[];
};
const CHECK_REASSIGN: {
[key in TSESTree.Node['type'] | 'SvelteDirective']?: (
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- Ignore
ctx: CheckContext
) =>
| null // The given expression does not reassign.
// The given expression will reassign.
| {
type: 'reassign';
node: TSESTree.Node | AST.SvelteNode;
pathNodes?: TSESTree.MemberExpression[];
}
// The context to check next.
| {
type: 'check';
node: TSESTree.Expression;
pathNodes?: TSESTree.MemberExpression[];
};
} = {
UpdateExpression:
// e.g. foo ++, foo --
({ parent }) => ({ type: 'reassign', node: parent }),
UnaryExpression: ({ parent }: CheckContext) => {
if (parent.operator === 'delete') {
// e.g. delete foo.prop
return { type: 'reassign', node: parent };
}
return null;
},
AssignmentExpression: ({ node, parent }: CheckContext) => {
if (parent.left === node) {
// e.g. foo = 42, foo += 42, foo -= 42
return { type: 'reassign', node: parent };
}
return null;
},
ForInStatement: ({ node, parent }: CheckContext) => {
if (parent.left === node) {
// e.g. for (foo in itr)
return { type: 'reassign', node: parent };
}
return null;
},
ForOfStatement: ({ node, parent }: CheckContext) => {
if (parent.left === node) {
// e.g. for (foo of itr)
return { type: 'reassign', node: parent };
}
return null;
},
CallExpression: ({ node, parent, pathNodes }: CheckContext) => {
if (pathNodes.length > 0 && parent.callee === node) {
const mem = pathNodes[pathNodes.length - 1];
const callName = getPropertyName(mem);
if (
callName &&
/^(?:push|pop|shift|unshift|reverse|splice|sort|copyWithin|fill)$/u.test(callName)
) {
// e.g. foo.push()
return {
type: 'reassign',
node: parent,
pathNodes: pathNodes.slice(0, -1)
};
}
}
return null;
},
MemberExpression: ({ node, parent, pathNodes }: CheckContext) => {
if (parent.object === node) {
// The context to check next.
return {
type: 'check',
node: parent,
pathNodes: [...pathNodes, parent]
};
}
return null;
},
ChainExpression: ({ parent }: CheckContext) => {
// e.g. `foo?.prop`
// The context to check next.
return { type: 'check', node: parent };
},
ConditionalExpression: ({ node, parent }: CheckContext) => {
if (parent.test === node) {
return null;
}
// The context to check next for `(test ? foo : bar).prop`.
return { type: 'check', node: parent };
},
Property: ({ node, parent }: CheckContext) => {
if (parent.value === node && parent.parent && parent.parent.type === 'ObjectPattern') {
// The context to check next for `({a: foo} = obj)`.
return { type: 'check', node: parent.parent };
}
return null;
},
ArrayPattern: ({ node, parent }: CheckContext) => {
if (parent.elements.includes(node as TSESTree.DestructuringPattern)) {
// The context to check next for `([foo] = obj)`.
return { type: 'check', node: parent };
}
return null;
},
RestElement: ({ node, parent }: CheckContext) => {
if (parent.argument === node && parent.parent) {
// The context to check next for `({...foo} = obj)`.
return {
type: 'check',
node: parent.parent as TSESTree.ArrayPattern | TSESTree.ObjectPattern
};
}
return null;
},
SvelteDirective: ({ node, parent }: CheckContext) => {
if (parent.kind !== 'Binding') {
return null;
}
if (parent.shorthand || parent.expression === node) {
return {
type: 'reassign',
node: parent
};
}
return null;
}
};
/**
* Returns the reassign information for the given expression node if it has a reassign.
*/
function getReassignData(expr: TSESTree.Expression) {
let pathNodes: TSESTree.MemberExpression[] = [];
let node: TSESTree.Expression = expr;
let parent;
while ((parent = node.parent)) {
const check = CHECK_REASSIGN[parent.type];
if (!check) {
return null;
}
const result = check({ node, parent, pathNodes });
if (!result) {
return null;
}
pathNodes = result.pathNodes || pathNodes;
if (result.type === 'reassign') {
return {
node: result.node,
pathNodes
};
}
node = result.node;
}
return null;
}
return {
SvelteReactiveStatement(node: AST.SvelteReactiveStatement) {
if (
node.body.type !== 'ExpressionStatement' ||
node.body.expression.type !== 'AssignmentExpression' ||
node.body.expression.operator !== '='
) {
return;
}
const assignment = node.body.expression;
for (const variable of toplevelScope.variables) {
if (!variable.defs.some((def) => def.node === assignment)) {
continue;
}
for (const reference of variable.references) {
const id = reference.identifier;
if (
(assignment.left.range[0] <= id.range[0] &&
id.range[1] <= assignment.left.range[1]) ||
id.type === 'JSXIdentifier'
) {
continue;
}
const reassign = getReassignData(id);
if (!reassign) {
continue;
}
// Suppresses reporting if the props option is set to `false` and reassigned to properties.
if (!props && reassign.pathNodes.length > 0) continue;
context.report({
node: reassign.node,
messageId:
reassign.pathNodes.length === 0
? 'assignmentToReactiveValue'
: 'assignmentToReactiveValueProp',
data: {
name: id.name
}
});
}
}
}
};
}
});
================================================
FILE: packages/eslint-plugin-svelte/src/rules/no-restricted-html-elements.ts
================================================
import { createRule } from '../utils/index.js';
export default createRule('no-restricted-html-elements', {
meta: {
docs: {
description: 'disallow specific HTML elements',
category: 'Stylistic Issues',
recommended: false,
conflictWithPrettier: false
},
schema: {
type: 'array',
items: {
oneOf: [
{ type: 'string' },
{
type: 'object',
properties: {
elements: {
type: 'array',
items: {
type: ['string']
},
uniqueItems: true,
minItems: 1
},
message: { type: 'string', minLength: 1 }
},
additionalProperties: false,
minItems: 1
}
]
},
uniqueItems: true,
minItems: 1
},
messages: {},
type: 'suggestion'
},
create(context) {
return {
SvelteElement(node) {
if (node.kind !== 'html') return;
const { name } = node;
if (name.type !== 'SvelteName') return;
for (const option of context.options) {
const message =
option.message || `Unexpected use of forbidden HTML element ${name.name}.`;
const elements = option.elements || [option];
for (const element of elements) {
if (element === name.name) {
context.report({
message,
node: node.startTag
});
}
}
}
}
};
}
});
================================================
FILE: packages/eslint-plugin-svelte/src/rules/no-shorthand-style-property-overrides.ts
================================================
import type { AST } from 'svelte-eslint-parser';
import { createRule } from '../utils/index.js';
import type { SvelteStyleInterpolation, SvelteStyleRoot } from '../utils/css-utils/index.js';
import {
getVendorPrefix,
stripVendorPrefix,
parseStyleAttributeValue,
SHORTHAND_PROPERTIES
} from '../utils/css-utils/index.js';
export default createRule('no-shorthand-style-property-overrides', {
meta: {
docs: {
description: 'disallow shorthand style properties that override related longhand properties',
category: 'Possible Errors',
recommended: true
},
schema: [],
messages: {
unexpected: "Unexpected shorthand '{{shorthand}}' after '{{original}}'."
},
type: 'problem'
},
create(context) {
type StyleDecl = {
prop: string;
loc: AST.SourceLocation;
};
type StyleDeclSet = {
decls: StyleDecl[];
};
return {
SvelteStartTag(node: AST.SvelteStartTag) {
const beforeDeclarations = new Set();
for (const { decls } of iterateStyleDeclSetFromAttrs(node.attributes)) {
for (const decl of decls) {
const normalized = stripVendorPrefix(decl.prop);
const prefix = getVendorPrefix(decl.prop);
const longhandProps = SHORTHAND_PROPERTIES.get(normalized);
if (!longhandProps) {
continue;
}
for (const longhandProp of longhandProps) {
const longhandPropWithPrefix = prefix + longhandProp;
if (!beforeDeclarations.has(longhandPropWithPrefix)) {
continue;
}
context.report({
node,
loc: decl.loc,
messageId: 'unexpected',
data: {
shorthand: decl.prop,
original: longhandPropWithPrefix
}
});
}
}
for (const decl of decls) {
beforeDeclarations.add(decl.prop);
}
}
}
};
/** Iterate the style decl set from attrs */
function* iterateStyleDeclSetFromAttrs(
attrs: AST.SvelteStartTag['attributes']
): Iterable {
for (const attr of attrs) {
if (attr.type === 'SvelteStyleDirective') {
yield {
decls: [{ prop: attr.key.name.name, loc: attr.key.name.loc }]
};
} else if (attr.type === 'SvelteAttribute') {
if (attr.key.name !== 'style') {
continue;
}
const root = parseStyleAttributeValue(attr, context);
if (!root) {
continue;
}
yield* iterateStyleDeclSetFromStyleRoot(root);
}
}
}
/** Iterate the style decl set from style root */
function* iterateStyleDeclSetFromStyleRoot(
root: SvelteStyleRoot
): Iterable {
for (const child of root.nodes) {
if (child.type === 'decl') {
yield {
decls: [
{
prop: child.prop.name,
get loc() {
return child.prop.loc;
}
}
]
};
} else if (child.type === 'inline') {
const decls: StyleDecl[] = [];
for (const root of child.getAllInlineStyles().values()) {
for (const set of iterateStyleDeclSetFromStyleRoot(root)) {
decls.push(...set.decls);
}
}
yield { decls };
}
}
}
}
});
================================================
FILE: packages/eslint-plugin-svelte/src/rules/no-spaces-around-equal-signs-in-attribute.ts
================================================
import { createRule } from '../utils/index.js';
import type { AST } from 'svelte-eslint-parser';
export default createRule('no-spaces-around-equal-signs-in-attribute', {
meta: {
docs: {
description: 'disallow spaces around equal signs in attribute',
category: 'Stylistic Issues',
recommended: false,
conflictWithPrettier: true
},
schema: [],
fixable: 'whitespace',
messages: {
noSpaces: 'Unexpected spaces found around equal signs.'
},
type: 'layout'
},
create(ctx) {
const source = ctx.sourceCode;
/**
* Returns source text between attribute key and value, and range of that source
*/
function getAttrEq(
node:
| AST.SvelteAttribute
| AST.SvelteDirective
| AST.SvelteStyleDirective
| AST.SvelteSpecialDirective
): [string, AST.Range] {
const keyRange = node.key.range;
const eqSource = /^[\s=]*/u.exec(source.text.slice(keyRange[1], node.range[1]))![0];
const valueStart = keyRange[1] + eqSource.length;
return [eqSource, [keyRange[1], valueStart]];
}
/**
* Returns true if string contains whitespace characters
*/
function containsWhitespace(string: string): boolean {
return /\s/u.test(string);
}
return {
'SvelteAttribute, SvelteDirective, SvelteStyleDirective, SvelteSpecialDirective'(
node:
| AST.SvelteAttribute
| AST.SvelteDirective
| AST.SvelteStyleDirective
| AST.SvelteSpecialDirective
) {
const [eqSource, range] = getAttrEq(node);
if (!containsWhitespace(eqSource)) return;
const loc = {
start: source.getLocFromIndex(range[0]),
end: source.getLocFromIndex(range[1])
};
ctx.report({
loc,
messageId: 'noSpaces',
*fix(fixer) {
yield fixer.replaceTextRange(range, '=');
}
});
}
};
}
});
================================================
FILE: packages/eslint-plugin-svelte/src/rules/no-store-async.ts
================================================
import { createRule } from '../utils/index.js';
import { extractStoreReferences } from './reference-helpers/svelte-store.js';
export default createRule('no-store-async', {
meta: {
docs: {
description:
'disallow using async/await inside svelte stores because it causes issues with the auto-unsubscribing features',
category: 'Possible Errors',
recommended: true,
default: 'error'
},
schema: [],
messages: {
unexpected: 'Do not pass async functions to svelte stores.'
},
type: 'problem'
},
create(context) {
return {
Program() {
for (const { node } of extractStoreReferences(context)) {
const [, fn] = node.arguments;
if (
!fn ||
(fn.type !== 'ArrowFunctionExpression' && fn.type !== 'FunctionExpression') ||
!fn.async
) {
continue;
}
const start = fn.loc.start;
context.report({
node: fn,
loc: {
start,
end: {
line: start.line,
column: start.column + 5
}
},
messageId: 'unexpected'
});
}
}
};
}
});
================================================
FILE: packages/eslint-plugin-svelte/src/rules/no-svelte-internal.ts
================================================
import { createRule } from '../utils/index.js';
import type { TSESTree } from '@typescript-eslint/types';
export default createRule('no-svelte-internal', {
meta: {
docs: {
description: 'svelte/internal will be removed in Svelte 6.',
category: 'Best Practices',
recommended: true
},
schema: [],
messages: {
unexpected: 'Using svelte/internal is prohibited. This will be removed in Svelte 6.'
},
type: 'problem'
},
create(context) {
function report(node: TSESTree.Node) {
context.report({
node,
messageId: 'unexpected'
});
}
function isSvelteInternal(value: string) {
return value === 'svelte/internal' || value.startsWith('svelte/internal/');
}
return {
ImportDeclaration(node) {
if (node.source && isSvelteInternal(node.source.value)) {
report(node);
}
},
ImportExpression(node) {
if (
node.source &&
node.source.type === 'Literal' &&
typeof node.source.value === 'string' &&
isSvelteInternal(node.source.value)
) {
report(node);
}
},
ExportNamedDeclaration(node) {
if (node.source && isSvelteInternal(node.source.value)) {
report(node);
}
},
ExportAllDeclaration(node) {
if (node.source && isSvelteInternal(node.source.value)) {
report(node);
}
}
};
}
});
================================================
FILE: packages/eslint-plugin-svelte/src/rules/no-target-blank.ts
================================================
import type { AST } from 'svelte-eslint-parser';
import { createRule } from '../utils/index.js';
import {
findAttribute,
findBindDirective,
findShorthandAttribute,
getStaticAttributeValue
} from '../utils/ast-utils.js';
/** Checks wether the given attr node is target="_blank" */
function isTargetBlank(node: AST.SvelteAttribute) {
return node.key.name === 'target' && getStaticAttributeValue(node) === '_blank';
}
/** Checks wether the given element node has secure rel="..." */
function hasSecureRel(node: AST.SvelteAttribute['parent'], allowReferrer: boolean) {
const attr = findAttribute(node, 'rel');
if (attr) {
const tags = [];
for (const value of attr.value) {
if (value.type === 'SvelteLiteral') {
tags.push(...value.value.toLowerCase().split(' '));
}
}
return tags && tags.includes('noopener') && (allowReferrer || tags.includes('noreferrer'));
}
return false;
}
/** Checks wether the given element node has external link */
function hasExternalLink(node: AST.SvelteAttribute['parent']) {
return node.attributes.some(
(attr) =>
attr.type === 'SvelteAttribute' &&
attr.key.name === 'href' &&
attr.value.length >= 1 &&
attr.value[0].type === 'SvelteLiteral' &&
/^(?:\w+:|\/\/)/.test(attr.value[0].value)
);
}
/** Checks wether the given element node has dynamic link */
function hasDynamicLink(node: AST.SvelteAttribute['parent']) {
const attr = findAttribute(node, 'href');
if (attr) {
return attr.value.some((v) => v.type === 'SvelteMustacheTag');
}
return Boolean(findShorthandAttribute(node, 'href')) || Boolean(findBindDirective(node, 'href'));
}
export default createRule('no-target-blank', {
meta: {
docs: {
description: 'disallow `target="_blank"` attribute without `rel="noopener noreferrer"`',
category: 'Security Vulnerability',
recommended: false
},
schema: [
{
type: 'object',
properties: {
allowReferrer: {
type: 'boolean'
},
enforceDynamicLinks: {
enum: ['always', 'never']
}
},
additionalProperties: false
}
],
messages: {
disallow: 'Using target="_blank" without rel="noopener noreferrer" is a security risk.'
},
type: 'problem'
},
create(context) {
const configuration: {
allowReferrer?: boolean;
enforceDynamicLinks?: 'always' | 'never';
} = context.options[0] || {};
const allowReferrer = Boolean(configuration.allowReferrer) || false;
const enforceDynamicLinks: 'always' | 'never' = configuration.enforceDynamicLinks || 'always';
return {
SvelteAttribute(node) {
if (!isTargetBlank(node) || hasSecureRel(node.parent, allowReferrer)) {
return;
}
const hasDangerHref =
hasExternalLink(node.parent) ||
(enforceDynamicLinks === 'always' && hasDynamicLink(node.parent));
if (hasDangerHref) {
context.report({
node,
message: 'Using target="_blank" without rel="noopener noreferrer" is a security risk.'
});
}
}
};
}
});
================================================
FILE: packages/eslint-plugin-svelte/src/rules/no-top-level-browser-globals.ts
================================================
import type { TrackedReferences } from '@eslint-community/eslint-utils';
import { ReferenceTracker, getStaticValue } from '@eslint-community/eslint-utils';
import { createRule } from '../utils/index.js';
import globals from 'globals';
import type { TSESTree } from '@typescript-eslint/types';
import { findVariable, getScope } from '../utils/ast-utils.js';
import type { AST } from 'svelte-eslint-parser';
export default createRule('no-top-level-browser-globals', {
meta: {
docs: {
description: 'disallow using top-level browser global variables',
category: 'Possible Errors',
recommended: false
},
schema: [],
messages: {
unexpectedGlobal: 'Unexpected top-level browser global variable "{{name}}".'
},
type: 'problem',
conditions: [{ svelteFileTypes: ['.svelte', '.svelte.[js|ts]'] }]
},
create(context) {
const sourceCode = context.sourceCode;
const blowerGlobals = getBrowserGlobals();
const referenceTracker = new ReferenceTracker(sourceCode.scopeManager.globalScope!, {
// Specifies the global variables that are allowed to prevent `window.window` from being iterated over.
globalObjectNames: ['globalThis']
});
type MaybeGuard = {
reference?: { node: TSESTree.Node; name: string };
isAvailableLocation: (node: TSESTree.Node) => boolean;
// The guard that checks whether the browser environment is set to true.
browserEnvironment: boolean;
};
const maybeGuards: MaybeGuard[] = [];
const functions: (TSESTree.FunctionLike | AST.SvelteSnippetBlock)[] = [];
const typeAnnotations: (
| TSESTree.TypeNode
| TSESTree.TSTypeAnnotation
| TSESTree.TSTypeParameterInstantiation
)[] = [];
function enterFunction(node: TSESTree.FunctionLike | AST.SvelteSnippetBlock) {
if (isTopLevelLocation(node)) {
functions.push(node);
}
}
function enterTypeAnnotation(node: TSESTree.TypeNode | TSESTree.TSTypeParameterInstantiation) {
if (!isInTypeAnnotation(node)) {
typeAnnotations.push(node);
}
}
function enterMetaProperty(node: TSESTree.MetaProperty) {
if (node.meta.name !== 'import' || node.property.name !== 'meta') return;
for (const ref of referenceTracker.iteratePropertyReferences(node, {
env: {
// See https://vite.dev/guide/ssr#conditional-logic
SSR: {
[ReferenceTracker.READ]: true
}
}
})) {
if (ref.node.type === 'Identifier' || ref.node.type === 'MemberExpression') {
const guardChecker = getGuardChecker({ node: ref.node, not: true });
if (guardChecker) {
maybeGuards.push({
isAvailableLocation: guardChecker,
browserEnvironment: true
});
}
}
}
}
function verifyGlobalReferences() {
// Collects guarded location checkers by checking module references
// that can check the browser environment.
for (const referenceNode of iterateBrowserCheckerModuleReferences()) {
if (!isTopLevelLocation(referenceNode)) continue;
const guardChecker = getGuardChecker({ node: referenceNode });
if (guardChecker) {
maybeGuards.push({
isAvailableLocation: guardChecker,
browserEnvironment: true
});
}
}
const reportCandidates: TrackedReferences[] = [];
// Collects references to global variables.
for (const ref of iterateBrowserGlobalReferences()) {
if (!isTopLevelLocation(ref.node) || isInTypeAnnotation(ref.node)) continue;
const guardChecker = getGuardCheckerFromReference(ref.node);
if (guardChecker) {
const name = ref.path.join('.');
maybeGuards.push({
reference: { node: ref.node, name },
isAvailableLocation: guardChecker,
browserEnvironment: name === 'window' || name === 'document'
});
} else {
reportCandidates.push(ref);
}
}
for (const ref of reportCandidates) {
const name = ref.path.join('.');
if (isAvailableLocation({ node: ref.node, name })) {
continue;
}
context.report({
node: ref.node,
messageId: 'unexpectedGlobal',
data: { name }
});
}
}
return {
':function': enterFunction,
SvelteSnippetBlock: enterFunction,
'*.typeAnnotation': enterTypeAnnotation,
'*.typeArguments': enterTypeAnnotation,
MetaProperty: enterMetaProperty,
'Program:exit': verifyGlobalReferences
};
/**
* Checks whether the node is in a location where the expression is available or not.
* @returns `true` if the expression is available.
*/
function isAvailableLocation(ref: { node: TSESTree.Node; name: string }) {
for (const guard of maybeGuards.reverse()) {
if (guard.isAvailableLocation(ref.node)) {
if (guard.browserEnvironment || guard.reference?.name === ref.name) {
return true;
}
}
}
return false;
}
/**
* Checks whether the node is in a top-level location.
* @returns `true` if the node is in a top-level location.
*/
function isTopLevelLocation(node: TSESTree.Node | AST.SvelteSnippetBlock) {
for (const func of functions) {
if (func.range[0] <= node.range[0] && node.range[1] <= func.range[1]) {
return false;
}
}
return true;
}
/**
* Checks whether the node is in type annotation.
* @returns `true` if the node is in type annotation.
*/
function isInTypeAnnotation(node: TSESTree.Node) {
for (const typeAnnotation of typeAnnotations) {
if (typeAnnotation.range[0] <= node.range[0] && node.range[1] <= typeAnnotation.range[1]) {
return true;
}
}
return false;
}
/**
* Iterate over the references of modules that can check the browser environment.
*/
function* iterateBrowserCheckerModuleReferences(): Iterable {
for (const ref of referenceTracker.iterateEsmReferences({
'esm-env': {
[ReferenceTracker.ESM]: true,
// See https://www.npmjs.com/package/esm-env
BROWSER: {
[ReferenceTracker.READ]: true
}
},
'$app/environment': {
[ReferenceTracker.ESM]: true,
// See https://svelte.dev/docs/kit/$app-environment#browser
browser: {
[ReferenceTracker.READ]: true
}
}
})) {
if (ref.node.type === 'Identifier' || ref.node.type === 'MemberExpression') {
yield ref.node;
} else if (ref.node.type === 'ImportSpecifier') {
const variable = findVariable(context, ref.node.local);
if (variable) {
for (const reference of variable.references) {
if (reference.isRead() && reference.identifier.type === 'Identifier') {
yield reference.identifier;
}
}
}
}
}
}
/**
* Iterate over the used references of global variables.
*/
function* iterateBrowserGlobalReferences(): Iterable> {
yield* referenceTracker.iterateGlobalReferences(
Object.fromEntries(
blowerGlobals.map((name) => [
name,
{
[ReferenceTracker.READ]: true
}
])
)
);
}
/**
* If the node is a reference used in a guard clause that checks if the node is in a browser environment,
* it returns information about the expression that checks if the browser variable is available.
* @returns The guard info.
*/
function getGuardCheckerFromReference(
node: TSESTree.Node
): ((node: TSESTree.Node) => boolean) | null {
const parent = node.parent;
if (!parent) return null;
if (parent.type === 'BinaryExpression') {
if (
parent.operator === 'instanceof' &&
parent.left === node &&
node.type === 'MemberExpression'
) {
// e.g. if (globalThis.window instanceof X)
return getGuardChecker({ node: parent });
}
const operand =
parent.left === node ? parent.right : parent.right === node ? parent.left : null;
if (!operand) return null;
const staticValue = getStaticValue(operand, getScope(context, operand));
if (!staticValue) return null;
if (staticValue.value === undefined && node.type === 'MemberExpression') {
if (parent.operator === '!==' || parent.operator === '!=') {
// e.g. if (globalThis.window !== undefined), if (globalThis.window != undefined)
return getGuardChecker({ node: parent });
} else if (parent.operator === '===' || parent.operator === '==') {
// e.g. if (globalThis.window === undefined), if (globalThis.window == undefined)
return getGuardChecker({ node: parent, not: true });
}
} else if (staticValue.value === null && node.type === 'MemberExpression') {
if (parent.operator === '!=') {
// e.g. if (globalThis.window != null)
return getGuardChecker({ node: parent });
} else if (parent.operator === '==') {
// e.g. if (globalThis.window == null)
return getGuardChecker({ node: parent, not: true });
}
}
return null;
}
if (
parent.type === 'UnaryExpression' &&
parent.operator === 'typeof' &&
parent.argument === node
) {
const pp = parent.parent;
if (!pp || pp.type !== 'BinaryExpression') {
return null;
}
const staticValue = getStaticValue(
pp.left === parent ? pp.right : pp.left,
getScope(context, node)
);
if (!staticValue) return null;
if (staticValue.value !== 'undefined' && staticValue.value !== 'object') {
return null;
}
if (pp.operator === '!==' || pp.operator === '!=') {
if (staticValue.value === 'undefined') {
// e.g. if (typeof window !== "undefined"), if (typeof window != "undefined")
return getGuardChecker({ node: pp });
}
// e.g. if (typeof window !== "object"), if (typeof window != "object")
return getGuardChecker({ node: pp, not: true });
} else if (pp.operator === '===' || pp.operator === '==') {
if (staticValue.value === 'undefined') {
// e.g. if (typeof window === "undefined"), if (typeof window == "undefined")
return getGuardChecker({ node: pp, not: true });
}
// e.g. if (typeof window === "object"), if (typeof window == "object")
return getGuardChecker({ node: pp });
}
return null;
}
if (node.type === 'MemberExpression') {
if (
((parent.type === 'CallExpression' && parent.callee === node) ||
(parent.type === 'MemberExpression' && parent.object === node)) &&
parent.optional
) {
// e.g. globalThis.location?.href
return (n) => n === node;
}
// e.g. if (globalThis.window)
return getGuardChecker({ node });
}
return null;
}
/**
* If the node is a guard clause checking,
* returns a function to check if the node is available.
*/
function getGuardChecker(guardInfo: {
node: TSESTree.Expression;
not?: boolean;
}): ((node: TSESTree.Node) => boolean) | null {
const parent = guardInfo.node.parent as TSESTree.Node | AST.SvelteNode;
if (!parent) return null;
if (parent.type === 'ConditionalExpression') {
const block = guardInfo.not ? parent.alternate : parent.consequent;
return (n) => block.range[0] <= n.range[0] && n.range[1] <= block.range[1];
}
if (parent.type === 'UnaryExpression' && parent.operator === '!') {
return getGuardChecker({ not: !guardInfo.not, node: parent });
}
if (parent.type === 'SvelteIfBlock' && parent.expression === guardInfo.node) {
if (!guardInfo.not) {
if (parent.children.length === 0) {
return null; // No block to check
}
const first = parent.children[0];
const last = parent.children.at(-1)!;
return (n) => first.range[0] <= n.range[0] && n.range[1] <= last.range[1];
}
// not
if (parent.else) {
const block = parent.else;
return (n) => block.range[0] <= n.range[0] && n.range[1] <= block.range[1];
}
return null;
}
if (parent.type === 'IfStatement' && parent.test === guardInfo.node) {
if (!guardInfo.not) {
const block = parent.consequent;
return (n) => block.range[0] <= n.range[0] && n.range[1] <= block.range[1];
}
if (parent.alternate) {
const block = parent.alternate;
return (n) => block.range[0] <= n.range[0] && n.range[1] <= block.range[1];
}
if (!hasJumpStatementInAllPath(parent.consequent)) {
return null;
}
const pp = parent.parent;
if (!pp || (pp.type !== 'BlockStatement' && pp.type !== 'Program')) {
return null;
}
const start = parent.range[1];
const end = pp.range[1];
return (n) => start <= n.range[0] && n.range[1] <= end;
}
if (parent.type === 'LogicalExpression') {
if (!guardInfo.not && parent.operator === '&&') {
const parentChecker = getGuardChecker({ not: guardInfo.not, node: parent });
if (parent.left === guardInfo.node) {
const block = parent.right;
return (n) => {
if (parentChecker?.(n)) {
return true;
}
return block.range[0] <= n.range[0] && n.range[1] <= block.range[1];
};
}
return parentChecker;
}
if (guardInfo.not && parent.operator === '||') {
return getGuardChecker({ not: guardInfo.not, node: parent });
}
}
return null;
}
}
});
/**
* Get the list of browser-specific globals.
*/
function getBrowserGlobals() {
const nodeGlobals = new Set(Object.keys(globals.node));
return [
'window',
'document',
...Object.keys(globals.browser).filter((name) => !nodeGlobals.has(name))
];
}
/**
* Checks whether all paths of a given statement have jump statements.
* @param {Statement} statement
* @returns {boolean}
*/
function hasJumpStatementInAllPath(statement: TSESTree.Statement): boolean {
if (isJumpStatement(statement)) {
return true;
}
if (statement.type === 'BlockStatement') {
return statement.body.some(hasJumpStatementInAllPath);
}
if (statement.type === 'IfStatement') {
if (!statement.alternate) {
return false;
}
return (
hasJumpStatementInAllPath(statement.alternate) &&
hasJumpStatementInAllPath(statement.consequent)
);
}
return false;
}
/**
* Checks whether the given statement is a jump statement.
* @param {Statement} statement
* @returns {statement is JumpStatement}
*/
function isJumpStatement(statement: TSESTree.Statement) {
return (
statement.type === 'ReturnStatement' ||
statement.type === 'ContinueStatement' ||
statement.type === 'BreakStatement'
);
}
================================================
FILE: packages/eslint-plugin-svelte/src/rules/no-trailing-spaces.ts
================================================
import type { AST } from 'svelte-eslint-parser';
import { createRule } from '../utils/index.js';
export default createRule('no-trailing-spaces', {
meta: {
type: 'layout',
docs: {
description: 'disallow trailing whitespace at the end of lines',
category: 'Extension Rules',
recommended: false,
extensionRule: 'no-trailing-spaces',
conflictWithPrettier: true
},
fixable: 'whitespace',
schema: [
{
type: 'object',
properties: {
skipBlankLines: { type: 'boolean' },
ignoreComments: { type: 'boolean' }
},
additionalProperties: false
}
],
messages: {
trailingSpace: 'Trailing spaces not allowed.'
}
},
create(context) {
const options: { skipBlankLines?: boolean; ignoreComments?: boolean } | undefined =
context.options[0];
const skipBlankLines = options?.skipBlankLines || false;
const ignoreComments = options?.ignoreComments || false;
const sourceCode = context.sourceCode;
const ignoreLineNumbers = new Set();
if (ignoreComments) {
for (const { type, loc } of sourceCode.getAllComments()) {
const endLine = type === 'Block' ? loc.end.line - 1 : loc.end.line;
for (let i = loc.start.line; i <= endLine; i++) {
ignoreLineNumbers.add(i);
}
}
}
/**
* Reports a given location.
*/
function report(loc: AST.SourceLocation) {
context.report({
loc,
messageId: 'trailingSpace',
fix(fixer) {
return fixer.removeRange([
sourceCode.getIndexFromLoc(loc.start),
sourceCode.getIndexFromLoc(loc.end)
]);
}
});
}
/**
* Collects the location of the given node as the ignore line numbers.
*/
function collectIgnoreLineNumbers({ loc }: { loc: AST.SourceLocation }) {
const endLine = loc.end.line - 1;
for (let i = loc.start.line; i <= endLine; i++) {
ignoreLineNumbers.add(i);
}
}
return {
TemplateElement: collectIgnoreLineNumbers,
...(ignoreComments
? {
SvelteHTMLComment: collectIgnoreLineNumbers
}
: {}),
'Program:exit'() {
const lines = sourceCode.lines;
for (let lineIndex = 0; lineIndex < lines.length; lineIndex++) {
const line = lines[lineIndex];
if (skipBlankLines && !line.trim()) {
continue;
}
const lineNumber = lineIndex + 1;
if (ignoreLineNumbers.has(lineNumber)) {
continue;
}
const trimmed = line.trimEnd();
if (trimmed === line) {
continue;
}
report({
start: { line: lineNumber, column: trimmed.length },
end: { line: lineNumber, column: line.length }
});
}
}
};
}
});
================================================
FILE: packages/eslint-plugin-svelte/src/rules/no-unknown-style-directive-property.ts
================================================
import { createRule } from '../utils/index.js';
import { all as allKnownCSSProperties } from 'known-css-properties';
import { toRegExp } from '../utils/regexp.js';
import { hasVendorPrefix } from '../utils/css-utils/index.js';
export default createRule('no-unknown-style-directive-property', {
meta: {
docs: {
description: 'disallow unknown `style:property`',
category: 'Possible Errors',
recommended: true
},
schema: [
{
type: 'object',
properties: {
ignoreProperties: {
type: 'array',
items: {
type: 'string'
},
uniqueItems: true,
minItems: 1
},
ignorePrefixed: { type: 'boolean' }
},
additionalProperties: false
}
],
messages: {
unknown: "Unexpected unknown style directive property '{{property}}'."
},
type: 'problem'
},
create(context) {
const ignoreProperties = [...(context.options[0]?.ignoreProperties ?? [])].map(toRegExp);
const ignorePrefixed: boolean = context.options[0]?.ignorePrefixed ?? true;
const knownProperties = new Set(allKnownCSSProperties);
/** Checks whether given name is valid */
function validName(name: string) {
return (
name.startsWith('--') ||
knownProperties.has(name) ||
ignoreProperties.some((r) => r.test(name)) ||
(ignorePrefixed && hasVendorPrefix(name))
);
}
return {
SvelteStyleDirective(node) {
const prop = node.key.name;
if (validName(prop.name)) {
return;
}
context.report({
node: prop,
messageId: 'unknown',
data: {
property: prop.name
}
});
}
};
}
});
================================================
FILE: packages/eslint-plugin-svelte/src/rules/no-unnecessary-state-wrap.ts
================================================
import { createRule } from '../utils/index.js';
import { ReferenceTracker } from '@eslint-community/eslint-utils';
import type { TSESTree } from '@typescript-eslint/types';
const REACTIVE_CLASSES = [
'SvelteSet',
'SvelteMap',
'SvelteURL',
'SvelteURLSearchParams',
'SvelteDate',
'MediaQuery'
];
export default createRule('no-unnecessary-state-wrap', {
meta: {
docs: {
description: 'Disallow unnecessary $state wrapping of reactive classes',
category: 'Best Practices',
recommended: true
},
schema: [
{
type: 'object',
properties: {
additionalReactiveClasses: {
type: 'array',
items: {
type: 'string'
},
uniqueItems: true
},
allowReassign: {
type: 'boolean'
}
},
additionalProperties: false
}
],
messages: {
unnecessaryStateWrap: '{{className}} is already reactive, $state wrapping is unnecessary.',
suggestRemoveStateWrap: 'Remove unnecessary $state wrapping'
},
type: 'suggestion',
hasSuggestions: true,
conditions: [
{
svelteVersions: ['5'],
runes: [true, 'undetermined']
}
]
},
create(context) {
const options = context.options[0] ?? {};
const additionalReactiveClasses = options.additionalReactiveClasses ?? [];
const allowReassign = options.allowReassign ?? false;
const { globalScope } = context.sourceCode.scopeManager;
if (globalScope == null) {
return {};
}
const referenceTracker = new ReferenceTracker(globalScope);
const traceMap: Record> = {};
for (const reactiveClass of REACTIVE_CLASSES) {
traceMap[reactiveClass] = {
[ReferenceTracker.CALL]: true,
[ReferenceTracker.CONSTRUCT]: true
};
}
// Track all reactive class imports and their aliases
const references = referenceTracker.iterateEsmReferences({
'svelte/reactivity': {
[ReferenceTracker.ESM]: true,
...traceMap
}
});
const referenceNodeAndNames = Array.from(references).map(({ node, path }) => {
return {
node,
name: path[path.length - 1]
};
});
function isReassigned(identifier: TSESTree.Identifier): boolean {
const references = context.sourceCode.scopeManager
.getDeclaredVariables(identifier.parent)
.flatMap((v) => v.references);
return references.some((ref) => {
return ref.isWrite() && ref.identifier !== identifier;
});
}
function reportUnnecessaryStateWrap(
stateNode: TSESTree.Node,
targetNode: TSESTree.Node,
className: string,
identifier?: TSESTree.Identifier
) {
if (allowReassign && identifier && isReassigned(identifier)) {
return;
}
context.report({
node: targetNode,
messageId: 'unnecessaryStateWrap',
data: {
className
},
suggest: [
{
messageId: 'suggestRemoveStateWrap',
fix(fixer) {
return fixer.replaceText(stateNode, context.sourceCode.getText(targetNode));
}
}
]
});
}
return {
CallExpression(node: TSESTree.CallExpression) {
if (node.callee.type !== 'Identifier' || node.callee.name !== '$state') {
return;
}
for (const arg of node.arguments) {
if (
(arg.type === 'NewExpression' || arg.type === 'CallExpression') &&
arg.callee.type === 'Identifier'
) {
const name = arg.callee.name;
if (additionalReactiveClasses.includes(name)) {
const parent = node.parent;
if (parent?.type === 'VariableDeclarator' && parent.id.type === 'Identifier') {
reportUnnecessaryStateWrap(node, arg, name, parent.id);
}
}
}
}
},
'Program:exit': () => {
for (const { node, name } of referenceNodeAndNames) {
if (
node.parent?.type === 'CallExpression' &&
node.parent.callee.type === 'Identifier' &&
node.parent.callee.name === '$state'
) {
const parent = node.parent.parent;
if (parent?.type === 'VariableDeclarator' && parent.id.type === 'Identifier') {
reportUnnecessaryStateWrap(node.parent, node, name, parent.id);
}
}
}
}
};
}
});
================================================
FILE: packages/eslint-plugin-svelte/src/rules/no-unused-class-name.ts
================================================
import { createRule } from '../utils/index.js';
import type { AST } from 'svelte-eslint-parser';
import type { AnyNode } from 'postcss';
import type { Node as SelectorNode } from 'postcss-selector-parser';
import { findClassesInAttribute } from '../utils/ast-utils.js';
import type { SourceCode } from '../types.js';
import { toRegExp } from '../utils/regexp.js';
export default createRule('no-unused-class-name', {
meta: {
docs: {
description: 'disallow the use of a class in the template without a corresponding style',
category: 'Best Practices',
recommended: false
},
schema: [
{
type: 'object',
properties: {
allowedClassNames: {
type: 'array',
items: {
type: 'string'
}
}
},
additionalProperties: false
}
],
messages: {},
type: 'suggestion'
},
create(context) {
const sourceCode = context.sourceCode;
if (!sourceCode.parserServices.isSvelte) {
return {};
}
const allowedClassNames = context.options[0]?.allowedClassNames ?? [];
const classesUsedInTemplate: {
className: string;
loc: AST.SourceLocation;
}[] = [];
return {
SvelteElement(node) {
if (node.kind !== 'html') {
return;
}
const classes = node.startTag.attributes.flatMap(findClassesInAttribute);
for (const className of classes) {
classesUsedInTemplate.push({ className, loc: node.startTag.loc });
}
},
'Program:exit'() {
const styleContext = sourceCode.parserServices.getStyleContext!();
if (styleContext.status === 'parse-error' || styleContext.status === 'unknown-lang') {
return;
}
const classesUsedInStyle =
styleContext.status === 'success'
? findClassesInPostCSSNode(styleContext.sourceAst, sourceCode.parserServices)
: [];
for (const { className, loc } of classesUsedInTemplate) {
if (
!allowedClassNames.some((allowedClassName: string) =>
toRegExp(allowedClassName).test(className)
) &&
!classesUsedInStyle.includes(className)
) {
context.report({
loc,
message: `Unused class "${className}".`
});
}
}
}
};
}
});
/**
* Extract all class names used in a PostCSS node.
*/
function findClassesInPostCSSNode(
node: AnyNode,
parserServices: SourceCode['parserServices']
): string[] {
if (node.type === 'rule') {
let classes = node.nodes.flatMap((node) => findClassesInPostCSSNode(node, parserServices));
classes = classes.concat(findClassesInSelector(parserServices.getStyleSelectorAST!(node)));
return classes;
}
if ((node.type === 'root' || node.type === 'atrule') && node.nodes !== undefined) {
return node.nodes.flatMap((node) => findClassesInPostCSSNode(node, parserServices));
}
return [];
}
/**
* Extract all class names used in a PostCSS selector.
*/
function findClassesInSelector(node: SelectorNode): string[] {
if (node.type === 'class') {
return [node.value];
}
if (node.type === 'pseudo' || node.type === 'root' || node.type === 'selector') {
return node.nodes.flatMap(findClassesInSelector);
}
return [];
}
================================================
FILE: packages/eslint-plugin-svelte/src/rules/no-unused-props.ts
================================================
import { createRule } from '../utils/index.js';
import { getTypeScriptTools, isAnyType } from '../utils/ts-utils/index.js';
import type { TSESTree } from '@typescript-eslint/types';
import type ts from 'typescript';
import { findVariable } from '../utils/ast-utils.js';
import { toRegExp } from '../utils/regexp.js';
import { normalize } from 'path';
import type { AST as SvAST } from 'svelte-eslint-parser';
type PropertyPathArray = string[];
type DeclaredPropertyNames = Set<{ originalName: string; aliasName: string }>;
let isRemovedWarningShown = false;
export default createRule('no-unused-props', {
meta: {
docs: {
description: 'Warns about defined Props properties that are unused',
category: 'Best Practices',
recommended: true
},
schema: [
{
type: 'object',
properties: {
checkImportedTypes: {
type: 'boolean',
default: false
},
ignoreTypePatterns: {
type: 'array',
items: {
type: 'string'
},
default: []
},
ignorePropertyPatterns: {
type: 'array',
items: {
type: 'string'
},
default: []
},
allowUnusedNestedProperties: {
type: 'boolean',
default: false
}
},
additionalProperties: false
}
],
messages: {
unusedProp: "'{{name}}' is an unused Props property.",
unusedNestedProp: "'{{name}}' in '{{parent}}' is an unused property.",
unusedIndexSignature:
'Index signature is unused. Consider using rest operator (...) to capture remaining properties.'
},
type: 'suggestion',
conditions: [
{
svelteVersions: ['5'],
runes: [true, 'undetermined']
}
]
},
create(context) {
const fileName = context.filename;
const tools = getTypeScriptTools(context);
if (!tools) {
return {};
}
const typeChecker = tools.service.program.getTypeChecker();
if (!typeChecker) {
return {};
}
const options = context.options[0] ?? {};
// TODO: Remove in v4
// MEMO: `ignorePatterns` was a property that only existed from v3.2.0 to v3.2.2.
// From v3.3.0, it was replaced with `ignorePropertyPatterns` and `ignoreTypePatterns`.
if (options.ignorePatterns != null && !isRemovedWarningShown) {
console.warn(
'eslint-plugin-svelte: The `ignorePatterns` option in the `no-unused-props` rule has been removed. Please use `ignorePropertyPatterns` or/and `ignoreTypePatterns` instead.'
);
isRemovedWarningShown = true;
}
const checkImportedTypes = options.checkImportedTypes ?? false;
const ignoreTypePatterns = (options.ignoreTypePatterns ?? []).map((p: string | RegExp) => {
if (typeof p === 'string') {
return toRegExp(p);
}
return p;
});
const ignorePropertyPatterns = (options.ignorePropertyPatterns ?? []).map(
(p: string | RegExp) => {
if (typeof p === 'string') {
return toRegExp(p);
}
return p;
}
);
function shouldIgnoreProperty(name: string): boolean {
return ignorePropertyPatterns.some((pattern: RegExp) => pattern.test(name));
}
function shouldIgnoreType(type: ts.Type): boolean {
function isMatched(name: string): boolean {
return ignoreTypePatterns.some((pattern: RegExp) => pattern.test(name));
}
const typeStr = typeChecker.typeToString(type);
const symbol = type.getSymbol();
const symbolName = symbol?.getName();
return isMatched(typeStr) || (symbolName ? isMatched(symbolName) : false);
}
function isInternalProperty(symbol: ts.Symbol): boolean {
const declarations = symbol.getDeclarations();
if (!declarations || declarations.length === 0) return false;
// TypeScript declaration file name is normalized to support Windows style paths
return declarations.every((decl) => normalize(decl.getSourceFile().fileName) === fileName);
}
/**
* Extracts property paths from member expressions.
*/
function getPropertyPath(node: TSESTree.Identifier): {
paths: PropertyPathArray;
isSpread: boolean;
} {
const paths: PropertyPathArray = [];
let isSpread = false;
let currentNode: TSESTree.Node | SvAST.SvelteSpreadAttribute = node;
let parentNode: TSESTree.Node | SvAST.SvelteSpreadAttribute | null =
currentNode.parent ?? null;
while (parentNode) {
if (parentNode.type === 'MemberExpression' && parentNode.object === currentNode) {
const property = parentNode.property;
if (property.type === 'Identifier') {
paths.push(property.name);
} else if (property.type === 'Literal' && typeof property.value === 'string') {
paths.push(property.value);
}
} else {
if (parentNode.type === 'SpreadElement' || parentNode.type === 'SvelteSpreadAttribute') {
isSpread = true;
}
break;
}
currentNode = parentNode;
parentNode = (currentNode.parent as TSESTree.Node | SvAST.SvelteSpreadAttribute) ?? null;
}
return { paths, isSpread };
}
/**
* Finds all property access paths for a given variable.
*/
function getUsedNestedPropertyPathsArray(node: TSESTree.Identifier): {
paths: PropertyPathArray[];
spreadPaths: PropertyPathArray[];
} {
const variable = findVariable(context, node);
if (!variable) return { paths: [], spreadPaths: [] };
const pathsArray: PropertyPathArray[] = [];
const spreadPathsArray: PropertyPathArray[] = [];
for (const reference of variable.references) {
if (
'identifier' in reference &&
reference.identifier.type === 'Identifier' &&
(reference.identifier.range[0] !== node.range[0] ||
reference.identifier.range[1] !== node.range[1])
) {
const { paths, isSpread } = getPropertyPath(reference.identifier);
if (isSpread) {
spreadPathsArray.push(paths);
} else {
pathsArray.push(paths);
}
}
}
return { paths: pathsArray, spreadPaths: spreadPathsArray };
}
/**
* Checks if a property is from TypeScript's built-in type definitions.
* These properties should be ignored as they are not user-defined props.
*/
function isBuiltInProperty(prop: ts.Symbol): boolean {
const declarations = prop.getDeclarations();
if (!declarations || declarations.length === 0) return false;
const declaration = declarations[0];
const sourceFile = declaration.getSourceFile();
if (!sourceFile) return false;
return sourceFile.fileName.includes('node_modules/typescript/lib/');
}
function getUsedPropertyNamesFromPattern(
pattern: TSESTree.ObjectPattern
): DeclaredPropertyNames {
const usedProps: DeclaredPropertyNames = new Set();
for (const prop of pattern.properties) {
if (prop.type === 'Property') {
if (prop.key.type === 'Identifier') {
usedProps.add({ originalName: prop.key.name, aliasName: prop.key.name });
} else if (
prop.key.type === 'Literal' &&
typeof prop.key.value === 'string' &&
prop.value.type === 'Identifier'
) {
usedProps.add({ originalName: prop.key.value, aliasName: prop.value.name });
}
} else if (prop.type === 'RestElement') {
// If there's a rest element, all properties are potentially used
return new Set();
}
}
return usedProps;
}
/**
* Check if the type is a class type (has constructor or prototype)
*/
function isClassType(type: ts.Type): boolean {
if (!type) return false;
// Check if it's a class instance type
if (type.isClass()) return true;
// Check for constructor signatures
const constructorType = type.getConstructSignatures();
if (constructorType.length > 0) return true;
// Check if it has a prototype property
const symbol = type.getSymbol();
if (symbol?.members?.has('prototype' as ts.__String)) return true;
return false;
}
/**
* Recursively checks for unused properties in a type.
*/
function checkUnusedProperties({
propsType,
usedPropertyPaths,
usedSpreadPropertyPaths,
declaredPropertyNames,
reportNode,
parentPath,
checkedPropsTypes,
reportedPropertyPaths
}: {
propsType: ts.Type;
usedPropertyPaths: string[];
usedSpreadPropertyPaths: string[];
declaredPropertyNames: DeclaredPropertyNames;
reportNode: TSESTree.Node;
parentPath: string[];
checkedPropsTypes: Set;
reportedPropertyPaths: Set;
}) {
// Skip checking if the type itself is a class
if (isClassType(propsType)) return;
const typeStr = typeChecker.typeToString(propsType);
if (checkedPropsTypes.has(typeStr)) return;
checkedPropsTypes.add(typeStr);
if (shouldIgnoreType(propsType)) return;
const properties = typeChecker.getPropertiesOfType(propsType);
const propsBaseTypes = propsType.getBaseTypes();
if (!properties.length && (!propsBaseTypes || propsBaseTypes.length === 0)) {
return;
}
if (propsBaseTypes) {
for (const propsBaseType of propsBaseTypes) {
checkUnusedProperties({
propsType: propsBaseType,
usedPropertyPaths,
usedSpreadPropertyPaths,
declaredPropertyNames,
reportNode,
parentPath,
checkedPropsTypes,
reportedPropertyPaths
});
}
}
for (const prop of properties) {
if (isBuiltInProperty(prop)) continue;
if (!checkImportedTypes && !isInternalProperty(prop)) continue;
const propName = prop.getName();
if (shouldIgnoreProperty(propName)) continue;
const currentPath = [...parentPath, propName];
const currentPathStr = currentPath.join('.');
if (reportedPropertyPaths.has(currentPathStr)) continue;
const propType = typeChecker.getTypeOfSymbol(prop);
const isUsedThisInPath =
usedPropertyPaths.includes(currentPathStr) ||
usedSpreadPropertyPaths.some((path) => {
return path === '' || path === currentPathStr || path.startsWith(`${currentPathStr}.`);
});
const isUsedInPath = usedPropertyPaths.some((path) => {
return path.startsWith(`${currentPathStr}.`);
});
if (isUsedThisInPath && !isUsedInPath) {
continue;
}
const isUsedInProps = Array.from(declaredPropertyNames).some((p) => {
return p.originalName === propName;
});
if (!isUsedInPath && !isUsedInProps) {
reportedPropertyPaths.add(currentPathStr);
context.report({
node: reportNode,
messageId: parentPath.length ? 'unusedNestedProp' : 'unusedProp',
data: {
name: propName,
parent: parentPath.join('.')
}
});
continue;
}
const isUsedNested = usedPropertyPaths.some((path) => {
return path.startsWith(`${currentPathStr}.`);
});
if (isUsedNested || isUsedInProps) {
checkUnusedProperties({
propsType: propType,
usedPropertyPaths,
usedSpreadPropertyPaths,
declaredPropertyNames,
reportNode,
parentPath: currentPath,
checkedPropsTypes,
reportedPropertyPaths
});
}
}
// Check for unused index signatures only at the root level
if (parentPath.length === 0) {
const indexType = propsType.getStringIndexType();
const numberIndexType = propsType.getNumberIndexType();
const hasIndexSignature =
Boolean(indexType && !isAnyType(indexType, tools!.ts)) ||
Boolean(numberIndexType && !isAnyType(numberIndexType, tools!.ts));
if (hasIndexSignature && !hasRestElement(declaredPropertyNames)) {
context.report({
node: reportNode,
messageId: 'unusedIndexSignature'
});
}
}
}
/**
* Returns true if the destructuring pattern includes a rest element,
* which means all remaining properties are potentially used.
*/
function hasRestElement(declaredPropertyNames: DeclaredPropertyNames): boolean {
return declaredPropertyNames.size === 0;
}
function normalizeUsedPaths(
paths: PropertyPathArray[],
allowUnusedNestedProperties: boolean
): PropertyPathArray[] {
const normalized: PropertyPathArray[] = [];
for (const path of paths.sort((a, b) => a.length - b.length)) {
if (normalized.some((p) => p.every((part, idx) => part === path[idx]))) {
continue;
}
normalized.push(path);
}
return normalized.map((path) => {
// If we allow unused nested properties, only return first level properties
if (allowUnusedNestedProperties) return [path[0]];
return path;
});
}
return {
'VariableDeclaration > VariableDeclarator': (node: TSESTree.VariableDeclarator) => {
// Only check $props declarations
if (
node.init?.type !== 'CallExpression' ||
node.init.callee.type !== 'Identifier' ||
node.init.callee.name !== '$props'
) {
return;
}
const tsNode = tools.service.esTreeNodeToTSNodeMap.get(node) as ts.VariableDeclaration;
if (!tsNode || !tsNode.type) return;
const propsType = typeChecker.getTypeFromTypeNode(tsNode.type);
const usedPropertyPathsArray: PropertyPathArray[] = [];
const usedSpreadPropertyPathsArray: PropertyPathArray[] = [];
let declaredPropertyNames: DeclaredPropertyNames = new Set();
if (node.id.type === 'ObjectPattern') {
declaredPropertyNames = getUsedPropertyNamesFromPattern(node.id);
if (declaredPropertyNames.size === 0) return;
const identifiers: TSESTree.Identifier[] = [];
for (const p of node.id.properties) {
if (p.type !== 'Property') {
continue;
}
if (p.value.type === 'Identifier') {
identifiers.push(p.value);
} else if (p.value.type === 'AssignmentPattern' && p.value.left.type === 'Identifier') {
identifiers.push(p.value.left);
}
}
for (const identifier of identifiers) {
const { paths, spreadPaths } = getUsedNestedPropertyPathsArray(identifier);
usedPropertyPathsArray.push(...paths.map((path) => [identifier.name, ...path]));
usedSpreadPropertyPathsArray.push(
...spreadPaths.map((path) => [identifier.name, ...path])
);
}
} else if (node.id.type === 'Identifier') {
const { paths, spreadPaths } = getUsedNestedPropertyPathsArray(node.id);
usedPropertyPathsArray.push(...paths);
usedSpreadPropertyPathsArray.push(...spreadPaths);
}
function runNormalizeUsedPaths(paths: PropertyPathArray[]) {
return normalizeUsedPaths(paths, options.allowUnusedNestedProperties).map((pathArray) => {
return pathArray.join('.');
});
}
checkUnusedProperties({
propsType,
usedPropertyPaths: runNormalizeUsedPaths(usedPropertyPathsArray),
usedSpreadPropertyPaths: runNormalizeUsedPaths(usedSpreadPropertyPathsArray),
declaredPropertyNames,
reportNode: node.id,
parentPath: [],
checkedPropsTypes: new Set(),
reportedPropertyPaths: new Set()
});
}
};
}
});
================================================
FILE: packages/eslint-plugin-svelte/src/rules/no-unused-svelte-ignore.ts
================================================
import { getSvelteCompileWarnings } from '../shared/svelte-compile-warns/index.js';
import { createRule } from '../utils/index.js';
import type { IgnoreItem } from '../shared/svelte-compile-warns/ignore-comment.js';
import { getSvelteIgnoreItems } from '../shared/svelte-compile-warns/ignore-comment.js';
import { VERSION as SVELTE_VERSION } from 'svelte/compiler';
import semver from 'semver';
export default createRule('no-unused-svelte-ignore', {
meta: {
docs: {
description: 'disallow unused svelte-ignore comments',
category: 'Best Practices',
recommended: true
},
schema: [],
messages: {
unused: 'svelte-ignore comment is used, but not warned',
missingCode: 'svelte-ignore comment must include the code'
},
type: 'suggestion'
},
create(context) {
const sourceCode = context.sourceCode;
if (!sourceCode.parserServices.isSvelte) {
return {};
}
const ignoreComments: IgnoreItem[] = [];
for (const item of getSvelteIgnoreItems(context)) {
if (item.code == null) {
context.report({
node: item.token,
messageId: 'missingCode'
});
} else {
ignoreComments.push(item);
}
}
if (!ignoreComments.length) {
return {};
}
const warnings = getSvelteCompileWarnings(context);
if (warnings.kind === 'error') {
return {};
}
for (const unused of warnings.unusedIgnores) {
if (unused.code === 'reactive-component' && semver.satisfies(SVELTE_VERSION, '<5')) {
// Svelte v4 `reactive-component` warnings are not emitted
// when we use the `generate: false` compiler option.
// This is probably not the intended behavior of Svelte v4, but it's not going to be fixed,
// so as a workaround we'll ignore the `reactive-component` warnings.
// See https://github.com/sveltejs/eslint-plugin-svelte/issues/1192
continue;
}
context.report({
loc: {
start: sourceCode.getLocFromIndex(unused.range[0]),
end: sourceCode.getLocFromIndex(unused.range[1])
},
messageId: 'unused'
});
}
return {};
}
});
================================================
FILE: packages/eslint-plugin-svelte/src/rules/no-useless-children-snippet.ts
================================================
import { createRule } from '../utils/index.js';
export default createRule('no-useless-children-snippet', {
meta: {
docs: {
description: "disallow explicit children snippet where it's not needed",
category: 'Best Practices',
recommended: true
},
schema: [],
messages: {
uselessSnippet: 'Found an unnecessary children snippet.'
},
type: 'suggestion',
conditions: [
{
svelteVersions: ['5']
}
]
},
create(context) {
return {
SvelteSnippetBlock(node) {
if (
node.parent.type === 'SvelteElement' &&
node.id.name === 'children' &&
node.params.length === 0
) {
context.report({ node, messageId: 'uselessSnippet' });
}
}
};
}
});
================================================
FILE: packages/eslint-plugin-svelte/src/rules/no-useless-mustaches.ts
================================================
import type { AST } from 'svelte-eslint-parser';
import { createRule } from '../utils/index.js';
/**
* Strip quotes string
*/
function stripQuotes(text: string) {
if (
(text.startsWith('"') || text.startsWith("'") || text.startsWith('`')) &&
text.endsWith(text[0])
) {
return text.slice(1, -1);
}
return null;
}
export default createRule('no-useless-mustaches', {
meta: {
docs: {
description: 'disallow unnecessary mustache interpolations',
category: 'Best Practices',
recommended: true
},
fixable: 'code',
schema: [
{
type: 'object',
properties: {
ignoreIncludesComment: {
type: 'boolean'
},
ignoreStringEscape: {
type: 'boolean'
}
},
additionalProperties: false
}
],
messages: {
unexpected: 'Unexpected mustache interpolation with a string literal value.'
},
type: 'suggestion' // "problem",
},
create(context) {
const opts = context.options[0] || {};
const ignoreIncludesComment = Boolean(opts.ignoreIncludesComment);
const ignoreStringEscape = Boolean(opts.ignoreStringEscape);
const sourceCode = context.sourceCode;
/**
* Report if the value expression is string literals
* @param node the node to check
*/
function verify(node: AST.SvelteMustacheTag) {
if (node.kind === 'raw') {
return;
}
const { expression } = node;
let strValue: string, rawValue: string;
if (expression.type === 'Literal') {
if (typeof expression.value !== 'string') {
return;
}
strValue = expression.value;
rawValue = sourceCode.getText(expression).slice(1, -1);
} else if (expression.type === 'TemplateLiteral') {
if (expression.expressions.length > 0) {
return;
}
strValue = expression.quasis[0].value.cooked!;
rawValue = expression.quasis[0].value.raw;
} else {
return;
}
const hasComment = sourceCode
.getTokens(node, { includeComments: true })
.some((t) => t.type === 'Block' || t.type === 'Line');
if (ignoreIncludesComment && hasComment) {
return;
}
if (expression.type === 'TemplateLiteral' && /[\n\r]/.test(rawValue)) {
return;
}
if (rawValue.includes('{')) {
return;
}
let hasEscape = false;
if (rawValue !== strValue) {
// check escapes
const chars = [...rawValue];
let c = chars.shift();
while (c) {
if (c === '\\') {
c = chars.shift();
if (
c == null ||
// ignore "\\", '"', "'", "`" and "$"
'nrvtbfux'.includes(c)
) {
// has useful escape.
hasEscape = true;
break;
}
}
c = chars.shift();
}
}
if (ignoreStringEscape && hasEscape) {
return;
}
context.report({
node,
messageId: 'unexpected',
fix(fixer) {
if (hasComment || hasEscape) {
// cannot fix
return null;
}
const text = stripQuotes(sourceCode.getText(expression));
if (text == null) {
// unknowns
return null;
}
if (text.includes('\n') || /^\s|\s$/u.test(text)) {
// It doesn't autofix because another rule like indent or eol space might remove spaces.
return null;
}
const unescaped = text.replace(/\\([\s\S])/g, '$1');
if (
node.parent.type === 'SvelteAttribute' ||
node.parent.type === 'SvelteStyleDirective'
) {
const div = sourceCode.text.slice(
node.parent.key.range[1],
node.parent.value[0].range[0]
);
const quote = div.endsWith('"') ? 'quot' : div.endsWith("'") ? 'apos' : null;
if (!quote) {
return [
fixer.insertTextBefore(node.parent.value[0], '"'),
fixer.replaceText(node, unescaped.replace(/"/gu, '"')),
fixer.insertTextAfter(node.parent.value[node.parent.value.length - 1], '"')
];
}
return fixer.replaceText(
node,
quote === 'quot'
? unescaped.replace(/"/gu, '"')
: unescaped.replace(/'/gu, ''')
);
}
return fixer.replaceText(node, unescaped.replace(//gu, '>'));
}
});
}
return {
SvelteMustacheTag: verify
};
}
});
================================================
FILE: packages/eslint-plugin-svelte/src/rules/prefer-class-directive.ts
================================================
import type { AST } from 'svelte-eslint-parser';
import type { TSESTree } from '@typescript-eslint/types';
import { createRule } from '../utils/index.js';
import { getStringIfConstant, isHTMLElementLike, needParentheses } from '../utils/ast-utils.js';
import type { Rule } from 'eslint';
export default createRule('prefer-class-directive', {
meta: {
docs: {
description: 'require class directives instead of ternary expressions',
category: 'Stylistic Issues',
recommended: false,
conflictWithPrettier: false
},
fixable: 'code',
schema: [
{
type: 'object',
properties: {
prefer: { enum: ['always', 'empty'] }
},
additionalProperties: false
}
],
messages: {
unexpected: 'Unexpected class using the ternary operator.'
},
type: 'suggestion'
},
create(context) {
const sourceCode = context.sourceCode;
const preferEmpty = context.options[0]?.prefer !== 'always';
type Expr = {
not?: true;
node: TSESTree.Expression;
chains?: Expr;
};
/**
* Returns a map of expressions and strings from ConditionalExpression.
* Returns null if it has an unknown string.
*/
function parseConditionalExpression(
node: TSESTree.ConditionalExpression
): Map | null {
const result = new Map();
if (
!processItems(
{
node: node.test
},
node.consequent
)
) {
return null;
}
if (
!processItems(
{
not: true,
node: node.test
},
node.alternate
)
) {
return null;
}
return result;
/** Process items */
function processItems(key: Expr, e: TSESTree.Expression) {
if (e.type === 'ConditionalExpression') {
const sub = parseConditionalExpression(e);
if (sub == null) {
return false;
}
for (const [expr, str] of sub) {
result.set(
{
...key,
chains: expr
},
str
);
}
} else {
const str = getStringIfConstant(e);
if (str == null) {
return false;
}
result.set(key, str);
}
return true;
}
}
/**
* Expr to string
*/
function exprToString({ node, not }: Expr): string {
let text = sourceCode.text.slice(...node.range);
// *Currently not supported.
// if (chains) {
// if (needParentheses(node, "logical")) {
// text = `(${text})`
// }
// let chainsText = exprToString(chains)
// const needParenForChains =
// !/^[!(]/u.test(chainsText) && needParentheses(chains.node, "logical")
// if (needParenForChains) {
// chainsText = `(${chainsText})`
// }
// text = `${text} && ${chainsText}`
// if (not) {
// text = `!(${text})`
// }
// return text
// }
if (not) {
if (node.type === 'BinaryExpression') {
if (
node.operator === '===' ||
node.operator === '==' ||
node.operator === '!==' ||
node.operator === '!='
) {
const left = sourceCode.text.slice(...node.left.range);
const op = sourceCode.text.slice(node.left.range[1], node.right.range[0]);
const right = sourceCode.text.slice(...node.right.range);
return `${left}${
node.operator === '===' || node.operator === '=='
? op.replace(/[=](={1,2})/g, '!$1')
: op.replace(/!(={1,2})/g, '=$1')
}${right}`;
}
} else if (node.type === 'UnaryExpression') {
if (node.operator === '!' && node.prefix) {
return sourceCode.text.slice(...node.argument.range);
}
}
if (needParentheses(node, 'not')) {
text = `(${text})`;
}
text = `!${text}`;
}
return text;
}
/**
* Returns all possible strings.
*/
function getStrings(node: AST.SvelteAttribute['value'][number]) {
if (node.type === 'SvelteLiteral') {
return [node.value];
}
if (node.expression.type === 'ConditionalExpression') {
const values = parseConditionalExpression(node.expression);
if (values == null) {
// unknown
return null;
}
return [...values.values()];
}
const str = getStringIfConstant(node.expression);
if (str == null) {
// unknown
return null;
}
return [str];
}
/**
* Checks if the last character is a non word.
*/
function endsWithNonWord(node: AST.SvelteAttribute, index: number): boolean {
for (let i = index; i >= 0; i--) {
const valueNode = node.value[i];
const strings = getStrings(valueNode);
if (strings == null) {
// unknown
return false;
}
for (const str of strings) {
if (str) {
return !str[str.length - 1].trim();
}
}
// If the string is empty, check the previous string.
}
return true;
}
/**
* Checks if the first character is a non word.
*/
function startsWithNonWord(node: AST.SvelteAttribute, index: number): boolean {
for (let i = index; i < node.value.length; i++) {
const valueNode = node.value[i];
const strings = getStrings(valueNode);
if (strings == null) {
// unknown
return false;
}
for (const str of strings) {
if (str) {
return !str[0].trim();
}
}
// If the string is empty, check the previous string.
}
return true;
}
/** Report */
function report(
node: AST.SvelteMustacheTagText,
map: Map,
attr: AST.SvelteAttribute
) {
context.report({
node,
messageId: 'unexpected',
*fix(fixer) {
const classDirectives: string[] = [];
let space = ' ';
for (const [expr, className] of map) {
const trimmedClassName = className.trim();
if (trimmedClassName) {
classDirectives.push(`class:${trimmedClassName}={${exprToString(expr)}}`);
} else {
space = className;
}
}
const fixesBuffer: Rule.Fix[] = [];
const index = attr.value.indexOf(node);
const beforeAttrValues = attr.value.slice(0, index);
const afterAttrValues = attr.value.slice(index + 1);
let valueNode;
while ((valueNode = beforeAttrValues[beforeAttrValues.length - 1])) {
if (valueNode.type === 'SvelteLiteral') {
if (!valueNode.value.trim()) {
// Before spaces
beforeAttrValues.pop();
fixesBuffer.push(fixer.remove(valueNode));
continue;
}
if (valueNode.value.trimEnd() !== valueNode.value) {
// Before spaces
fixesBuffer.push(fixer.replaceText(valueNode, valueNode.value.trimEnd()));
}
}
break;
}
while ((valueNode = afterAttrValues[0])) {
if (valueNode.type === 'SvelteLiteral') {
if (!valueNode.value.trim()) {
// After spaces
afterAttrValues.shift();
fixesBuffer.push(fixer.remove(valueNode));
continue;
}
if (valueNode.value.trimStart() !== valueNode.value) {
// After spaces
fixesBuffer.push(fixer.replaceText(valueNode, valueNode.value.trimStart()));
}
}
break;
}
if (!beforeAttrValues.length && !afterAttrValues.length) {
yield fixer.replaceText(attr, classDirectives.join(' '));
} else {
yield* fixesBuffer;
if (beforeAttrValues.length && afterAttrValues.length) {
yield fixer.replaceText(node, space || ' ');
} else {
yield fixer.remove(node);
}
yield fixer.insertTextAfterRange(
[attr.range[1], attr.range[1]],
` ${classDirectives.join(' ')}`
);
}
}
});
}
/** verify */
function verify(node: AST.SvelteMustacheTagText, index: number, attr: AST.SvelteAttribute) {
if (node.expression.type !== 'ConditionalExpression') {
return;
}
const map = parseConditionalExpression(node.expression);
if (map == null) {
// has unknown
return;
}
if (map.size > 2) {
// It's too complicated.
return;
}
if (preferEmpty && [...map.values()].every((x) => x.trim())) {
// We prefer directives when there's an empty string, but they're all not empty
return;
}
const prevIsWord = !startsWithNonWord(attr, index + 1);
const nextIsWord = !endsWithNonWord(attr, index - 1);
let canTransform = true;
for (const className of map.values()) {
if (className) {
if (!/^[\w-]*$/u.test(className.trim())) {
// Cannot be transformed to an attribute.
canTransform = false;
break;
}
if (
(className[0].trim() && prevIsWord) ||
(className[className.length - 1].trim() && nextIsWord)
) {
// The previous or next may be connected to this element.
canTransform = false;
break;
}
} else if (prevIsWord && nextIsWord) {
// The previous and next may be connected.
canTransform = false;
break;
}
}
if (!canTransform) {
return;
}
report(node, map, attr);
}
return {
'SvelteStartTag > SvelteAttribute'(
node: AST.SvelteAttribute & {
parent: AST.SvelteStartTag;
}
) {
if (!isHTMLElementLike(node.parent.parent) || node.key.name !== 'class') {
return;
}
for (let index = 0; index < node.value.length; index++) {
const valueElement = node.value[index];
if (valueElement.type !== 'SvelteMustacheTag') {
continue;
}
verify(valueElement, index, node);
}
}
};
}
});
================================================
FILE: packages/eslint-plugin-svelte/src/rules/prefer-const.ts
================================================
import type { TSESTree } from '@typescript-eslint/types';
import { createRule } from '../utils/index.js';
import { defineWrapperListener, getCoreRule } from '../utils/eslint-core.js';
const coreRule = getCoreRule('prefer-const');
/**
* Finds and returns the callee of a declaration node within variable declarations or object patterns.
*/
function findDeclarationCallee(node: TSESTree.Expression) {
const { parent } = node;
if (parent.type === 'VariableDeclarator' && parent.init?.type === 'CallExpression') {
return parent.init.callee;
}
return null;
}
/**
* Determines if a declaration should be skipped in the const preference analysis.
* Specifically checks for Svelte's state management utilities ($props, $derived).
*/
function shouldSkipDeclaration(declaration: TSESTree.Expression | null, excludedRunes: string[]) {
if (!declaration) {
return false;
}
const callee = findDeclarationCallee(declaration);
if (!callee) {
return false;
}
if (callee.type === 'Identifier' && excludedRunes.includes(callee.name)) {
return true;
}
if (callee.type !== 'MemberExpression' || callee.object.type !== 'Identifier') {
return false;
}
if (excludedRunes.includes(callee.object.name)) {
return true;
}
return false;
}
export default createRule('prefer-const', {
meta: {
...coreRule.meta,
docs: {
description: coreRule.meta.docs.description,
category: 'Best Practices',
recommended: false,
extensionRule: 'prefer-const'
},
schema: [
{
type: 'object',
properties: {
destructuring: { enum: ['any', 'all'] },
ignoreReadBeforeAssign: { type: 'boolean' },
excludedRunes: {
type: 'array',
items: {
type: 'string'
}
}
},
// Allow ESLint core rule properties in case new options are added in the future.
additionalProperties: true
}
]
},
create(context) {
const config = context.options[0] ?? {};
const excludedRunes = config.excludedRunes ?? ['$props', '$derived'];
return defineWrapperListener(coreRule, context, {
createListenerProxy(coreListener) {
return {
...coreListener,
VariableDeclaration(node) {
for (const decl of node.declarations) {
if (shouldSkipDeclaration(decl.init, excludedRunes)) {
return;
}
}
coreListener.VariableDeclaration?.(node);
}
};
}
});
}
});
================================================
FILE: packages/eslint-plugin-svelte/src/rules/prefer-destructured-store-props.ts
================================================
import type { TSESTree } from '@typescript-eslint/types';
import { getPropertyName } from '@eslint-community/eslint-utils';
import type { AST } from 'svelte-eslint-parser';
import { keyword } from 'esutils';
import type { SuggestionReportDescriptor } from '../types.js';
import { createRule } from '../utils/index.js';
import { findAttribute, isExpressionIdentifier, findVariable } from '../utils/ast-utils.js';
import { getSvelteContext } from '../utils/svelte-context.js';
import { SVELTE_RUNES } from '../shared/runes.js';
type StoreMemberExpression = TSESTree.MemberExpression & {
object: TSESTree.Identifier & { name: string };
};
export default createRule('prefer-destructured-store-props', {
meta: {
docs: {
description:
'destructure values from object stores for better change tracking & fewer redraws',
category: 'Best Practices',
recommended: false
},
hasSuggestions: true,
schema: [],
messages: {
useDestructuring: `Destructure {{property}} from {{store}} for better change tracking & fewer redraws`,
fixUseDestructuring: `Using destructuring like $: ({ {{property}} } = {{store}}); will run faster`,
fixUseVariable: `Using the predefined reactive variable {{variable}}`
},
type: 'suggestion'
},
create(context) {
let mainScript: AST.SvelteScriptElement | null = null;
const svelteContext = getSvelteContext(context);
// Store off instances of probably-destructurable statements
const reports: StoreMemberExpression[] = [];
let inScriptElement = false;
const storeMemberAccessStack: {
node: StoreMemberExpression;
// A list of Identifiers that make up the member expression.
identifiers: TSESTree.Identifier[];
}[] = [];
/** Find for defined reactive variables. */
function* findReactiveVariable(
object: TSESTree.Identifier,
propName: string
): Iterable {
const storeVar = findVariable(context, object);
if (!storeVar) {
return;
}
for (const reference of storeVar.references) {
const id = reference.identifier;
if (id.name !== object.name) continue;
if (isReactiveVariableDefinitionWithMemberExpression(id)) {
// $: target = $store.prop
yield id.parent.parent.left;
} else if (isReactiveVariableDefinitionWithDestructuring(id)) {
const prop = id.parent.left.properties.find(
(prop): prop is TSESTree.Property & { value: TSESTree.Identifier } =>
prop.type === 'Property' &&
prop.value.type === 'Identifier' &&
getPropertyName(prop) === propName
);
if (prop) {
// $: ({prop: target} = $store)
yield prop.value;
}
}
}
/** Checks whether the given node is reactive variable definition with member expression. */
function isReactiveVariableDefinitionWithMemberExpression(
node: TSESTree.Identifier | TSESTree.JSXIdentifier
): node is TSESTree.Identifier & {
parent: TSESTree.MemberExpression & {
parent: TSESTree.AssignmentExpression & { left: TSESTree.Identifier };
};
} {
return (
node.type === 'Identifier' &&
node.parent?.type === 'MemberExpression' &&
node.parent.object === node &&
getPropertyName(node.parent) === propName &&
node.parent.parent?.type === 'AssignmentExpression' &&
node.parent.parent.right === node.parent &&
node.parent.parent.left.type === 'Identifier' &&
node.parent.parent.parent?.type === 'ExpressionStatement' &&
(node.parent.parent.parent.parent as never as AST.SvelteReactiveStatement)?.type ===
'SvelteReactiveStatement'
);
}
/** Checks whether the given node is reactive variable definition with destructuring. */
function isReactiveVariableDefinitionWithDestructuring(
node: TSESTree.Identifier | TSESTree.JSXIdentifier
): node is TSESTree.Identifier & {
parent: TSESTree.AssignmentExpression & {
left: TSESTree.ObjectPattern;
};
} {
return (
node.type === 'Identifier' &&
node.parent?.type === 'AssignmentExpression' &&
node.parent.right === node &&
node.parent.left.type === 'ObjectPattern' &&
node.parent.parent?.type === 'ExpressionStatement' &&
(node.parent.parent.parent as never as AST.SvelteReactiveStatement)?.type ===
'SvelteReactiveStatement'
);
}
}
/** Checks whether the given name is already defined as a variable. */
function hasTopLevelVariable(name: string) {
const scopeManager = context.sourceCode.scopeManager;
if (scopeManager.globalScope?.set.has(name)) {
return true;
}
const moduleScope = scopeManager.globalScope?.childScopes.find((s) => s.type === 'module');
return moduleScope?.set.has(name) || false;
}
return {
SvelteScriptElement(node) {
inScriptElement = true;
const scriptContext = findAttribute(node, 'context');
const contextValue = scriptContext?.value.length === 1 && scriptContext.value[0];
if (
contextValue &&
contextValue.type === 'SvelteLiteral' &&
contextValue.value === 'module'
) {
// It is
'Program > SvelteScriptElement:exit': () => {
isScript = false;
},
// Svelte3,4
'ExportNamedDeclaration > VariableDeclaration > VariableDeclarator': (
node: TSESTree.VariableDeclarator
) => {
if (!isScript) return;
// export let foo
if (node.id.type === 'Identifier') {
if (!expectedPropNames.includes(node.id.name)) {
context.report({
node,
loc: node.loc,
messageId: 'unexpected'
});
}
return;
}
// export let { xxx, yyy } = zzz
checkProp(node, context, expectedPropNames);
},
// Svelte5
// let { foo, bar } = $props();
'VariableDeclaration > VariableDeclarator': (node: TSESTree.VariableDeclarator) => {
if (!isScript) return;
if (
node.init?.type !== 'CallExpression' ||
node.init.callee?.type !== 'Identifier' ||
node.init.callee?.name !== '$props'
) {
return;
}
checkProp(node, context, expectedPropNames);
}
};
}
});
================================================
FILE: packages/eslint-plugin-svelte/src/rules/valid-style-parse.ts
================================================
import { createRule } from '../utils/index.js';
import path from 'path';
export default createRule('valid-style-parse', {
meta: {
docs: {
description: 'require valid style element parsing',
category: 'Possible Errors',
recommended: false
},
schema: [],
messages: {},
type: 'problem'
},
create(context) {
const sourceCode = context.sourceCode;
if (!sourceCode.parserServices.isSvelte) {
return {};
}
const cwd = `${context.cwd ?? process.cwd()}${path.sep}`;
return {
SvelteStyleElement(node) {
const styleContext = sourceCode.parserServices.getStyleContext!();
if (styleContext.status === 'parse-error') {
// This will replace backslashes to forward slashes only
// if Node.js reports Windows style path separators
let message = styleContext.error.message.replace(cwd, '');
if (path.sep === '\\') message = message.replace(/\\/g, '/');
context.report({
loc: node.loc,
message: `Error parsing style element. Error message: "${message}"`
});
}
if (styleContext.status === 'unknown-lang') {
context.report({
loc: node.loc,
message: `Found unsupported style element language "${styleContext.sourceLang}"`
});
}
}
};
}
});
================================================
FILE: packages/eslint-plugin-svelte/src/shared/comment-directives.ts
================================================
import type { AST } from 'svelte-eslint-parser';
import type { Linter } from 'eslint';
const COMPUTED = Symbol();
const ALL = Symbol();
type Define = {
loc: AST.Position;
};
type Block = {
loc: AST.Position;
rule: (ruleId: string) => boolean;
kind: 'enable' | 'disable';
define: Define;
targetRule: string | typeof ALL;
};
type Line = {
line: number;
rule: (ruleId: string) => boolean;
define: Define;
};
export class CommentDirectives {
private readonly reportUnusedDisableDirectives: boolean;
private readonly ruleId: string;
private readonly lineDisableDirectives = new Map>();
private readonly blockDirectives = new Map();
public constructor(options: { reportUnusedDisableDirectives?: boolean; ruleId: string }) {
this.ruleId = options.ruleId;
this.reportUnusedDisableDirectives = Boolean(options?.reportUnusedDisableDirectives);
}
public filterMessages(messages: Linter.LintMessage[]): Linter.LintMessage[] {
const { lineDisableDirectives, blockDirectives, reportUnusedDisableDirectives } = this;
const usedDirectives = new Set();
if (reportUnusedDisableDirectives) {
const allBlocks = [];
for (const bs of blockDirectives.values()) {
for (const b of bs) {
allBlocks.push(b);
}
}
const blockEnableDirectives = new Set();
for (const block of allBlocks.sort((a, b) => comparePos(b.loc, a.loc))) {
if (block.kind === 'enable') {
if (block.targetRule === ALL) {
blockEnableDirectives.clear();
}
blockEnableDirectives.add(block);
} else if (block.kind === 'disable') {
if (block.targetRule === ALL) {
for (const b of blockEnableDirectives) {
usedDirectives.add(b);
}
blockEnableDirectives.clear();
} else {
for (const b of [...blockEnableDirectives]) {
if (block.targetRule === b.targetRule || b.targetRule === ALL) {
usedDirectives.add(b);
blockEnableDirectives.delete(b);
}
}
}
}
}
}
let filteredMessages = messages.filter(isEnable);
if (reportUnusedDisableDirectives) {
const usedDirectiveKeys = new Set([...usedDirectives].map((d) => locToKey(d.define.loc)));
filteredMessages = filteredMessages.filter((m) => {
if (m.ruleId !== this.ruleId) {
return true;
}
if (usedDirectiveKeys.has(messageToKey(m))) {
return false;
}
return true;
});
}
return filteredMessages;
/** Checks wether given rule is enable */
function isEnable(message: Linter.LintMessage) {
if (!message.ruleId) {
// Maybe fatal error
return true;
}
for (const disableLines of getFromRule(lineDisableDirectives, message.ruleId)) {
for (const disableLine of disableLines.get(message.line) ?? []) {
if (!disableLine.rule(message.ruleId)) {
continue;
}
usedDirectives.add(disableLine);
return false;
}
}
const blocks = getFromRule(blockDirectives, message.ruleId)
.reduce((p, c) => p.concat(c), [])
.sort((a, b) => comparePos(b.loc, a.loc));
for (const block of blocks) {
if (comparePos(message, block.loc) < 0) {
continue;
}
if (!block.rule(message.ruleId)) {
continue;
}
if (block.kind === 'enable') {
return true;
}
// block.kind === "disable"
usedDirectives.add(block);
return false;
}
return true;
}
/** Compare locations */
function comparePos(a: AST.Position, b: AST.Position) {
return a.line - b.line || a.column - b.column;
}
}
public disableLine(
line: number,
rule: string | ((ruleId: string) => boolean),
define: Define
): void {
const key = typeof rule === 'string' ? rule : COMPUTED;
let disableLines = this.lineDisableDirectives.get(key);
if (!disableLines) {
disableLines = new Map();
this.lineDisableDirectives.set(key, disableLines);
}
let disableLine = disableLines.get(line);
if (!disableLine) {
disableLine = [];
disableLines.set(line, disableLine);
}
const disable: Line = {
line,
rule: typeof rule === 'string' ? (id) => id === rule : rule,
define
};
disableLine.push(disable);
}
public disableBlock(
pos: AST.Position,
rule: string | ((ruleId: string) => boolean),
define: Define
): void {
this.block(pos, rule, define, 'disable');
}
public enableBlock(
pos: AST.Position,
rule: string | ((ruleId: string) => boolean),
define: Define
): void {
this.block(pos, rule, define, 'enable');
}
private block(
pos: AST.Position,
rule: string | ((ruleId: string) => boolean),
define: Define,
kind: 'disable' | 'enable'
): void {
const key = typeof rule === 'string' ? rule : COMPUTED;
let blocks = this.blockDirectives.get(key);
if (!blocks) {
blocks = [];
this.blockDirectives.set(key, blocks);
}
const disable: Block = {
loc: pos,
rule: typeof rule === 'string' ? (id) => id === rule : rule,
kind,
targetRule: typeof rule === 'string' ? rule : ALL,
define
};
blocks.push(disable);
}
}
/** Get the list of directives from given rule */
function getFromRule(map: Map, ruleId: string): E[] {
return [map.get(ruleId), map.get(COMPUTED)].filter((a): a is E => Boolean(a));
}
/**
* Gets the key of location
*/
function locToKey(location: AST.Position): string {
return `line:${location.line},column${location.column}`;
}
/**
* Gets the key of message location
*/
function messageToKey(message: Linter.LintMessage): string {
return `line:${message.line},column${
// -1 because +1 by ESLint's `report-translator`.
message.column - 1
}`;
}
================================================
FILE: packages/eslint-plugin-svelte/src/shared/index.ts
================================================
import { CommentDirectives } from './comment-directives.js';
export class Shared {
public readonly commentDirectives: CommentDirectives[] = [];
public newCommentDirectives(
options: ConstructorParameters[0]
): CommentDirectives {
const directives = new CommentDirectives(options);
this.commentDirectives.push(directives);
return directives;
}
}
const sharedMap = new Map();
/** Start sharing and make the data available. */
export function beginShared(filename: string): void {
sharedMap.set(filename, new Shared());
}
/** Get the shared data and end the sharing. */
export function terminateShared(filename: string): Shared | null {
const result = sharedMap.get(filename);
sharedMap.delete(filename);
return result ?? null;
}
/** If sharing has started, get the shared data. */
export function getShared(filename: string): Shared | null {
return sharedMap.get(filename) ?? null;
}
================================================
FILE: packages/eslint-plugin-svelte/src/shared/runes.ts
================================================
export const SVELTE_RUNES = new Set([
'$state',
'$derived',
'$effect',
'$props',
'$bindable',
'$inspect',
'$host'
]);
================================================
FILE: packages/eslint-plugin-svelte/src/shared/svelte-compile-warns/extract-leading-comments.ts
================================================
import { isOpeningParenToken } from '@eslint-community/eslint-utils';
import type { AST } from 'svelte-eslint-parser';
import type { RuleContext } from '../../types.js';
import type { ASTNodeWithParent } from '../../types-for-node.js';
/** Extract comments */
export function extractLeadingComments(
context: RuleContext,
node: ASTNodeWithParent
): (AST.Token | AST.Comment)[] {
const sourceCode = context.sourceCode;
const beforeToken = sourceCode.getTokenBefore(node, {
includeComments: false,
filter(token) {
if (isOpeningParenToken(token)) {
return false;
}
const astToken = token as AST.Token;
if (astToken.type === 'HTMLText') {
return false;
}
return astToken.type !== 'HTMLComment';
}
});
if (beforeToken) {
return sourceCode
.getTokensBetween(beforeToken, node, { includeComments: true })
.filter(isComment);
}
return sourceCode.getTokensBefore(node, { includeComments: true }).filter(isComment);
}
/** Checks whether given token is comment token */
function isComment(token: AST.Token | AST.Comment): boolean {
return token.type === 'HTMLComment' || token.type === 'Block' || token.type === 'Line';
}
================================================
FILE: packages/eslint-plugin-svelte/src/shared/svelte-compile-warns/ignore-comment.ts
================================================
import type { AST } from 'svelte-eslint-parser';
import type { RuleContext } from '../../types.js';
const SVELTE_IGNORE_PATTERN = /^\s*svelte-ignore\s+/;
/** Matches parenthetical notes in svelte-ignore comments, e.g. "(because of reasons)" */
const PARENTHETICAL_NOTE_PATTERN = /\([^)]*\)/gu;
/**
* Map of legacy code -> new code
* See https://github.com/sveltejs/svelte/blob/c9202a889612df3c2fcb369096a5573668be99d6/packages/svelte/src/compiler/utils/extract_svelte_ignore.js#L6
*/
const V5_REPLACEMENTS: Record = {
'non-top-level-reactive-declaration': 'reactive_declaration_invalid_placement',
'module-script-reactive-declaration': 'reactive_declaration_module_script',
'empty-block': 'block_empty',
'avoid-is': 'attribute_avoid_is',
'invalid-html-attribute': 'attribute_invalid_property_name',
'a11y-structure': 'a11y_figcaption_parent',
'illegal-attribute-character': 'attribute_illegal_colon',
'invalid-rest-eachblock-binding': 'bind_invalid_each_rest',
'unused-export-let': 'export_let_unused'
};
export type IgnoreItemWithoutCode = {
range: [number, number];
code: null;
token: AST.Token | AST.Comment;
};
export type IgnoreItem = {
range: [number, number];
code: string;
codeForV5: string; // Code targeting Svelte v5.
token: AST.Token | AST.Comment;
};
/** Extract all svelte-ignore comment items */
export function getSvelteIgnoreItems(context: RuleContext): (IgnoreItem | IgnoreItemWithoutCode)[] {
const sourceCode = context.sourceCode;
const ignoreComments: (IgnoreItem | IgnoreItemWithoutCode)[] = [];
for (const comment of sourceCode.getAllComments()) {
const match = SVELTE_IGNORE_PATTERN.exec(comment.value);
if (!match) {
continue;
}
const codeListStart = match.index + match[0].length;
const codeList = comment.value.slice(codeListStart);
if (hasMissingCodeIgnore(codeList)) {
ignoreComments.push({
range: comment.range,
code: null,
token: comment
});
} else {
const ignores = extractSvelteIgnore(comment.range[0] + 2, comment, codeList, codeListStart);
if (ignores) {
ignoreComments.push(...ignores);
}
}
}
for (const token of sourceCode.ast.tokens) {
if (token.type === 'HTMLComment') {
const text = token.value.slice(4, -3);
const match = SVELTE_IGNORE_PATTERN.exec(text);
if (!match) {
continue;
}
const codeListStart = match.index + match[0].length;
const codeList = text.slice(codeListStart);
if (hasMissingCodeIgnore(codeList)) {
ignoreComments.push({
range: token.range,
code: null,
token
});
} else {
const ignores = extractSvelteIgnore(token.range[0] + 4, token, codeList, codeListStart);
if (ignores) {
ignoreComments.push(...ignores);
}
}
}
}
ignoreComments.sort((a, b) => b.range[0] - a.range[0]);
return ignoreComments;
}
/** Extract svelte-ignore rule names */
function extractSvelteIgnore(
startIndex: number,
token: AST.Token | AST.Comment,
codeList: string,
ignoreStart: number
): IgnoreItem[] | null {
const start = startIndex + ignoreStart;
const results: IgnoreItem[] = [];
// Replace parenthetical notes (e.g., "(because of reasons)") with spaces of the same length
// to preserve character positions while preventing note words from being treated as rule names.
const processedCodeList = codeList.replace(PARENTHETICAL_NOTE_PATTERN, (match) =>
' '.repeat(match.length)
);
const separatorPattern = /\s*[\s,]\s*/g;
const separators = processedCodeList.matchAll(separatorPattern);
let lastSeparatorEnd = 0;
for (const separator of separators) {
const code = processedCodeList.slice(lastSeparatorEnd, separator.index);
if (code) {
results.push({
code,
codeForV5: V5_REPLACEMENTS[code] || code.replace(/-/gu, '_'),
range: [start + lastSeparatorEnd, start + separator.index],
token
});
}
lastSeparatorEnd = separator.index + separator[0].length;
}
if (results.length === 0) {
const code = processedCodeList;
results.push({
code,
codeForV5: V5_REPLACEMENTS[code] || code.replace(/-/gu, '_'),
range: [start, start + code.length],
token
});
}
return results;
}
/** Checks whether given comment has missing code svelte-ignore */
function hasMissingCodeIgnore(codeList: string) {
return !codeList.replace(PARENTHETICAL_NOTE_PATTERN, '').trim();
}
================================================
FILE: packages/eslint-plugin-svelte/src/shared/svelte-compile-warns/index.ts
================================================
import type { AST } from 'svelte-eslint-parser';
import * as compiler from 'svelte/compiler';
import type { SourceMapMappings } from '@jridgewell/sourcemap-codec';
import { decode } from '@jridgewell/sourcemap-codec';
import type { ASTNodeWithParent, RuleContext } from '../../types.js';
import { LinesAndColumns } from '../../utils/lines-and-columns.js';
import type { TransformResult } from './transform/types.js';
import { hasTypeScript, transform as transformWithTypescript } from './transform/typescript.js';
import { transform as transformWithBabel } from './transform/babel.js';
import { transform as transformWithPostCSS } from './transform/postcss.js';
import { transform as transformWithSass } from './transform/sass.js';
import { transform as transformWithLess } from './transform/less.js';
import { transform as transformWithStylus } from './transform/stylus.js';
import type { IgnoreItem } from './ignore-comment.js';
import { getSvelteIgnoreItems } from './ignore-comment.js';
import { extractLeadingComments } from './extract-leading-comments.js';
import { findAttribute, getLangValue } from '../../utils/ast-utils.js';
import { getSvelteVersion } from '../../utils/svelte-context.js';
import path from 'path';
import fs from 'fs';
type WarningTargetNode =
| (AST.SvelteProgram & ASTNodeWithParent)
| (AST.SvelteElement & ASTNodeWithParent)
| (AST.SvelteStyleElement & ASTNodeWithParent)
| (AST.SvelteScriptElement['body'][number] & ASTNodeWithParent);
type IgnoreTargetNode =
| WarningTargetNode
| (AST.SvelteIfBlock & ASTNodeWithParent)
| (AST.SvelteKeyBlock & ASTNodeWithParent)
| (AST.SvelteEachBlock & ASTNodeWithParent)
| (AST.SvelteAwaitBlock & ASTNodeWithParent);
const STYLE_TRANSFORMS: Record = {
postcss: transformWithPostCSS,
pcss: transformWithPostCSS,
scss: (node, text, context) => transformWithSass(node, text, context, 'scss'),
sass: (node, text, context) => transformWithSass(node, text, context, 'sass'),
less: transformWithLess,
stylus: transformWithStylus,
styl: transformWithStylus
};
const CSS_WARN_CODES = new Set([
'css-unused-selector',
'css_unused_selector',
'css-invalid-global',
'css-invalid-global-selector'
]);
const cacheAll = new WeakMap();
export type SvelteCompileWarnings = {
warnings: Warning[];
unusedIgnores: IgnoreItem[];
kind: 'warn' | 'error';
stripStyleElements: AST.SvelteStyleElement[];
};
export type Loc = {
start?: {
line: number;
column: number;
character: number;
};
end?: {
line: number;
column: number;
character: number;
};
};
export type Warning = (
| {
code: string;
message: string;
}
| {
code?: undefined;
message: string;
}
) &
Loc;
/**
* Get svelte compile warnings
*/
export function getSvelteCompileWarnings(context: RuleContext): SvelteCompileWarnings {
const sourceCode = context.sourceCode;
const cache = cacheAll.get(sourceCode.ast);
if (cache) {
return cache;
}
const result = getSvelteCompileWarningsWithoutCache(context);
cacheAll.set(sourceCode.ast, result);
return result;
}
/**
* Get svelte compile warnings
*/
function getSvelteCompileWarningsWithoutCache(context: RuleContext): SvelteCompileWarnings {
const sourceCode = context.sourceCode;
// Process for styles
const styleElementsWithNotCSS = [...extractStyleElementsWithLangOtherThanCSS(context)];
const stripStyleElements: AST.SvelteStyleElement[] = [];
const transformResults: TransformResult[] = [];
for (const style of styleElementsWithNotCSS) {
const transform = STYLE_TRANSFORMS[style.lang];
if (transform) {
const result = transform(style.node, context.sourceCode.text, context);
if (result) {
transformResults.push(result);
continue;
}
}
stripStyleElements.push(style.node);
}
const stripStyleTokens = stripStyleElements.flatMap((e) => e.children);
const ignoreComments = getSvelteIgnoreItems(context).filter(
(item): item is IgnoreItem => item.code != null
);
const text = buildStrippedText(context, ignoreComments, stripStyleTokens);
transformResults.push(...transformScripts(context, text));
if (!transformResults.length) {
const warnings = getWarningsFromCode(text, context);
return {
...processIgnore(
warnings.warnings,
warnings.kind,
stripStyleElements,
ignoreComments,
context
),
kind: warnings.kind,
stripStyleElements
};
}
class RemapContext {
private originalStart = 0;
private code = '';
private locs: LinesAndColumns | null = null;
private readonly mapIndexes: {
range: [number, number];
remap: (index: number) => number;
}[] = [];
public appendOriginal(endIndex: number) {
const codeStart = this.code.length;
const start = this.originalStart;
this.code += text.slice(start, endIndex);
this.originalStart = endIndex;
const offset = start - codeStart;
this.mapIndexes.push({
range: [codeStart, this.code.length],
remap(index) {
return index + offset;
}
});
}
public postprocess(): string {
this.appendOriginal(text.length);
return this.code;
}
public appendTranspile(output: TransformResult) {
const endIndex: number = output.inputRange[1];
const codeStart = this.code.length;
const start = this.originalStart;
const inputText = text.slice(start, endIndex);
const outputText = `${output.output}\n`;
this.code += outputText;
this.originalStart = endIndex;
let outputLocs: LinesAndColumns | null = null;
let inputLocs: LinesAndColumns | null = null;
let decoded: SourceMapMappings | null = null;
this.mapIndexes.push({
range: [codeStart, this.code.length],
remap: (index) => {
outputLocs = outputLocs ?? new LinesAndColumns(outputText);
inputLocs = inputLocs ?? new LinesAndColumns(inputText);
const outputCodePos = outputLocs.getLocFromIndex(index - codeStart);
const inputCodePos = remapPosition(outputCodePos);
return inputLocs.getIndexFromLoc(inputCodePos) + start;
}
});
/** Remapping source position */
function remapPosition(pos: { line: number; column: number }): {
line: number;
column: number;
} {
decoded = decoded ?? decode(output.mappings);
const lineMaps = decoded[pos.line - 1];
if (!lineMaps?.length) {
for (let line = pos.line - 1; line >= 0; line--) {
const prevLineMaps = decoded[line];
if (prevLineMaps?.length) {
const [, , sourceCodeLine, sourceCodeColumn] = prevLineMaps[prevLineMaps.length - 1];
return {
line: sourceCodeLine! + 1,
column: sourceCodeColumn!
};
}
}
return { line: -1, column: -1 };
}
for (let index = 0; index < lineMaps.length - 1; index++) {
const [generateCodeColumn, , sourceCodeLine, sourceCodeColumn] = lineMaps[index];
if (generateCodeColumn <= pos.column && pos.column < lineMaps[index + 1][0]) {
return {
line: sourceCodeLine! + 1,
column: sourceCodeColumn! + (pos.column - generateCodeColumn)
};
}
}
const [generateCodeColumn, , sourceCodeLine, sourceCodeColumn] =
lineMaps[lineMaps.length - 1];
return {
line: sourceCodeLine! + 1,
column: sourceCodeColumn! + (pos.column - generateCodeColumn)
};
}
}
public remapLocs(points: Loc): Loc {
const mapIndexes = this.mapIndexes;
const locs = (this.locs = this.locs ?? new LinesAndColumns(this.code));
let start: Loc['start'] | undefined = undefined;
let end: Loc['end'] | undefined = undefined;
if (points.start) {
const index = locs.getIndexFromLoc(points.start);
const remapped = remapIndex(index);
if (remapped) {
start = { ...sourceCode.getLocFromIndex(remapped), character: remapped };
}
}
if (points.end) {
const index = locs.getIndexFromLoc(points.end);
const remapped = remapIndex(index - 1 /* include index */);
if (remapped) {
const character = remapped + 1; /* restore */
end = { ...sourceCode.getLocFromIndex(character), character };
}
}
return { start, end };
/** remap index */
function remapIndex(index: number) {
for (const mapIndex of mapIndexes) {
if (mapIndex.range[0] <= index && index < mapIndex.range[1]) {
return mapIndex.remap(index);
}
}
return null;
}
}
}
const remapContext = new RemapContext();
for (const result of transformResults.sort((a, b) => a.inputRange[0] - b.inputRange[0])) {
remapContext.appendOriginal(result.inputRange[0]);
remapContext.appendTranspile(result);
}
const code = remapContext.postprocess();
const baseWarnings = getWarningsFromCode(code, context);
const warnings: Warning[] = [];
for (const warn of baseWarnings.warnings) {
let loc: Loc | null = null;
/** Get re-mapped location */
// eslint-disable-next-line func-style -- ignore
const getLoc = function getLoc() {
if (loc) {
return loc;
}
return (loc = remapContext.remapLocs(warn));
};
warnings.push({
code: warn.code,
message: warn.message,
get start() {
return getLoc().start;
},
get end() {
return getLoc().end;
}
});
}
return {
...processIgnore(warnings, baseWarnings.kind, stripStyleElements, ignoreComments, context),
kind: baseWarnings.kind,
stripStyleElements
};
}
/**
* Extracts the style with the lang attribute other than CSS.
*/
function* extractStyleElementsWithLangOtherThanCSS(context: RuleContext): Iterable<{
node: AST.SvelteStyleElement;
readonly lang: string;
}> {
const sourceCode = context.sourceCode;
const root = sourceCode.ast;
for (const node of root.body) {
if (node.type === 'SvelteStyleElement') {
const lang = getLangValue(node);
if (lang != null && lang.toLowerCase() !== 'css') {
yield { node, lang: lang.toLowerCase() };
}
}
}
}
/**
* Build the text stripped of tokens that are not needed for compilation.
*/
function buildStrippedText(
context: RuleContext,
ignoreComments: IgnoreItem[],
stripStyleTokens: AST.SvelteText[]
) {
const sourceCode = context.sourceCode;
const baseText = sourceCode.text;
const stripTokens = new Set([...ignoreComments.map((item) => item.token), ...stripStyleTokens]);
if (!stripTokens.size) {
return baseText;
}
let code = '';
let start = 0;
for (const token of [...stripTokens].sort((a, b) => a.range[0] - b.range[0])) {
code +=
baseText.slice(start, token.range[0]) +
baseText.slice(...token.range).replace(/[^\t\n\r ]/g, ' ');
start = token.range[1];
}
code += baseText.slice(start);
return code;
}
/** Returns the result of transforming the required script for the transform. */
function* transformScripts(context: RuleContext, text: string) {
const transform = isUseTypeScript(context)
? hasTypeScript(context)
? transformWithTypescript
: transformWithBabel
: isUseBabel(context)
? transformWithBabel
: null;
const sourceCode = context.sourceCode;
if (transform) {
const root = sourceCode.ast;
for (const node of root.body) {
if (node.type === 'SvelteScriptElement') {
const result = transform(node, text, context);
if (result) {
yield result;
}
}
}
}
}
function isCustomElement(program: AST.SvelteProgram) {
return program.body.some((body) => {
if (body.type !== 'SvelteElement' || body.kind !== 'special') {
return false;
}
if (body.name.name !== 'svelte:options') {
return false;
}
return Boolean(findAttribute(body, 'tag')) || Boolean(findAttribute(body, 'customElement'));
});
}
const svelteVersion = getSvelteVersion();
/**
* Get compile warnings
*/
function getWarningsFromCode(
code: string,
context: RuleContext
): {
warnings: Warning[];
kind: 'warn' | 'error';
} {
try {
const svelteConfig = context.sourceCode.parserServices.svelteParseContext?.svelteConfig;
const compilerOptions = svelteConfig?.compilerOptions ?? {};
const result = compiler.compile(code, {
...(svelteVersion === '5'
? {
experimental: {
async: compilerOptions.experimental?.async
}
}
: {}),
generate: false,
...(isCustomElement(context.sourceCode.ast) ? { customElement: true } : {})
});
return { warnings: result.warnings as Warning[], kind: 'warn' };
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- ignore
} catch (e: any) {
return {
warnings: [
{
code: e.code,
message: e.message,
start: e.start,
end: e.end
}
],
kind: 'error'
};
}
}
/** Ignore process */
function processIgnore(
warnings: Warning[],
kind: 'warn' | 'error',
stripStyleElements: AST.SvelteStyleElement[],
ignoreComments: IgnoreItem[],
context: RuleContext
): {
warnings: Warning[];
unusedIgnores: IgnoreItem[];
} {
if (kind === 'error') {
return {
warnings,
unusedIgnores: ignoreComments
};
}
const sourceCode = context.sourceCode;
const unusedIgnores = new Set(ignoreComments);
const remainingWarning = new Set(warnings);
for (const warning of warnings) {
if (!warning.code) {
continue;
}
let node: IgnoreTargetNode | null = getWarningNode(warning);
while (node) {
for (const comment of extractLeadingComments(context, node).reverse()) {
const ignoreItem = ignoreComments.find(
(item) =>
item.token === comment &&
(item.code === warning.code || item.codeForV5 === warning.code)
);
if (ignoreItem) {
unusedIgnores.delete(ignoreItem);
remainingWarning.delete(warning);
break;
}
}
node = getIgnoreParent(node);
}
}
// Stripped styles are ignored from compilation and cannot determine css errors.
for (const node of stripStyleElements) {
for (const comment of extractLeadingComments(context, node).reverse()) {
const ignoreItem = ignoreComments.find(
(item) =>
item.token === comment &&
(CSS_WARN_CODES.has(item.code) || CSS_WARN_CODES.has(item.codeForV5))
);
if (ignoreItem) {
unusedIgnores.delete(ignoreItem);
break;
}
}
}
return {
warnings: [...remainingWarning],
unusedIgnores: [...unusedIgnores]
};
/** Get ignore target parent node */
function getIgnoreParent(node: IgnoreTargetNode): IgnoreTargetNode | null {
if (
node.type !== 'SvelteElement' &&
node.type !== 'SvelteIfBlock' &&
node.type !== 'SvelteKeyBlock' &&
node.type !== 'SvelteEachBlock' &&
node.type !== 'SvelteAwaitBlock'
) {
return null;
}
const parent = node.parent;
if (parent.type === 'SvelteElseBlock') {
return parent.parent; // SvelteIfBlock or SvelteEachBlock
}
if (
parent.type === 'SvelteAwaitPendingBlock' ||
parent.type === 'SvelteAwaitThenBlock' ||
parent.type === 'SvelteAwaitCatchBlock'
) {
return parent.parent; // SvelteAwaitBlock
}
if (
parent.type !== 'SvelteElement' &&
parent.type !== 'SvelteIfBlock' &&
parent.type !== 'SvelteKeyBlock' &&
parent.type !== 'SvelteEachBlock'
// && parent.type !== "SvelteAwaitBlock"
) {
return null;
}
return parent;
}
/** Get warning node */
function getWarningNode(warning: Warning): WarningTargetNode | null {
const indexes = getWarningIndexes(warning);
if (indexes.start != null) {
const node = getWarningTargetNodeFromIndex(indexes.start);
if (node) {
return node;
}
if (indexes.end != null) {
const center = Math.floor(indexes.start + (indexes.end - indexes.start) / 2);
return getWarningTargetNodeFromIndex(center);
}
}
if (indexes.end != null) {
return getWarningTargetNodeFromIndex(indexes.end);
}
return null;
}
/**
* Get warning target node from the given index
*/
function getWarningTargetNodeFromIndex(index: number): WarningTargetNode | null {
let targetNode = sourceCode.getNodeByRangeIndex(index);
while (targetNode) {
if (targetNode.type === 'SvelteElement' || targetNode.type === 'SvelteStyleElement') {
return targetNode;
}
if (targetNode.parent) {
if (
targetNode.parent.type === 'Program' ||
targetNode.parent.type === 'SvelteScriptElement'
) {
return targetNode as WarningTargetNode;
}
} else {
return null;
}
targetNode = targetNode.parent || null;
}
return null;
}
/** Get warning index */
function getWarningIndexes(warning: Warning) {
const start = warning.start && sourceCode.getIndexFromLoc(warning.start);
const end = warning.end && sourceCode.getIndexFromLoc(warning.end);
return { start, end };
}
}
/**
* Check if using TypeScript.
*/
function isUseTypeScript(context: RuleContext) {
const sourceCode = context.sourceCode;
if (sourceCode.parserServices.esTreeNodeToTSNodeMap) return true;
const root = sourceCode.ast;
for (const node of root.body) {
if (node.type === 'SvelteScriptElement') {
const lang = getLangValue(node)?.toLowerCase();
if (lang === 'ts' || lang === 'typescript') {
return true;
}
}
}
return false;
}
/**
* Check if using Babel.
*/
function isUseBabel(context: RuleContext) {
const parser = context.parserOptions?.parser;
if (!parser) {
return false;
}
const sourceCode = context.sourceCode;
const root = sourceCode.ast;
let scriptLang = 'js';
for (const node of root.body) {
if (node.type === 'SvelteScriptElement') {
const lang = getLangValue(node)?.toLowerCase();
if (lang === 'ts' || lang === 'typescript') {
scriptLang = lang;
break;
}
}
}
const parserName = getParserName(scriptLang, parser);
if (!parserName) {
return false;
}
if (parserName === '@babel/eslint-parser') {
return true;
}
if (parserName.includes('@babel/eslint-parser')) {
let targetPath = parserName;
while (targetPath) {
const pkgPath = path.join(targetPath, 'package.json');
if (fs.existsSync(pkgPath)) {
try {
return JSON.parse(fs.readFileSync(pkgPath, 'utf-8'))?.name === '@babel/eslint-parser';
} catch {
return false;
}
}
const parent = path.dirname(targetPath);
if (targetPath === parent) {
break;
}
targetPath = parent;
}
}
return false;
/** Get script parser name */
function getParserName(lang: string, parser: string | Record): string | null {
if (typeof parser === 'string') {
return parser;
} else if (typeof parser === 'object') {
const name = parser[lang];
if (typeof name === 'string') {
return name;
}
}
return null;
}
}
================================================
FILE: packages/eslint-plugin-svelte/src/shared/svelte-compile-warns/transform/babel.ts
================================================
import type { AST } from 'svelte-eslint-parser';
import type babelCore from '@babel/core';
import type { RuleContext } from '../../../types.js';
import type { TransformResult } from './types.js';
import { loadModule } from '../../../utils/load-module.js';
type BabelCore = typeof babelCore;
/**
* Transpile with babel
*/
export function transform(
node: AST.SvelteScriptElement,
text: string,
context: RuleContext
): TransformResult | null {
const babel = loadBabel(context);
if (!babel) {
return null;
}
let inputRange: AST.Range;
if (node.endTag) {
inputRange = [node.startTag.range[1], node.endTag.range[0]];
} else {
inputRange = [node.startTag.range[1], node.range[1]];
}
const code = text.slice(...inputRange);
try {
const output = babel.transformSync(code, {
sourceType: 'module',
sourceMaps: true,
minified: false,
ast: false,
code: true,
cwd: context.cwd ?? process.cwd()
});
if (!output) {
return null;
}
return {
inputRange,
output: output.code!,
mappings: output.map!.mappings
};
} catch {
return null;
}
}
/** Check if project has Babel. */
export function hasBabel(context: RuleContext): boolean {
return Boolean(loadBabel(context));
}
/**
* Load babel
*/
function loadBabel(context: RuleContext): BabelCore | null {
return loadModule(context, '@babel/core');
}
================================================
FILE: packages/eslint-plugin-svelte/src/shared/svelte-compile-warns/transform/less.ts
================================================
import type { AST } from 'svelte-eslint-parser';
import type less from 'less';
import type { RuleContext } from '../../../types.js';
import type { TransformResult } from './types.js';
import { loadModule } from '../../../utils/load-module.js';
type Less = typeof less;
/**
* Transpile with less
*/
export function transform(
node: AST.SvelteStyleElement,
text: string,
context: RuleContext
): TransformResult | null {
const less = loadLess(context);
if (!less) {
return null;
}
let inputRange: AST.Range;
if (node.endTag) {
inputRange = [node.startTag.range[1], node.endTag.range[0]];
} else {
inputRange = [node.startTag.range[1], node.range[1]];
}
const code = text.slice(...inputRange);
const filename = `${context.filename}.less`;
try {
let output: Awaited> | undefined;
less.render(
code,
{
sourceMap: {},
syncImport: true,
filename,
lint: false
},
(_error, result) => {
output = result;
}
);
if (!output) {
return null;
}
return {
inputRange,
output: output.css,
mappings: JSON.parse(output.map).mappings
};
} catch {
return null;
}
}
/**
* Load less
*/
function loadLess(context: RuleContext): Less | null {
return loadModule(context, 'less');
}
================================================
FILE: packages/eslint-plugin-svelte/src/shared/svelte-compile-warns/transform/postcss.ts
================================================
import type { AST } from 'svelte-eslint-parser';
import postcss from 'postcss';
import postcssLoadConfig from 'postcss-load-config';
import type { RuleContext } from '../../../types.js';
import type { TransformResult } from './types.js';
/**
* Transform with postcss
*/
export function transform(
node: AST.SvelteStyleElement,
text: string,
context: RuleContext
): TransformResult | null {
const postcssConfig = context.settings?.svelte?.compileOptions?.postcss;
if (postcssConfig === false) {
return null;
}
let inputRange: AST.Range;
if (node.endTag) {
inputRange = [node.startTag.range[1], node.endTag.range[0]];
} else {
inputRange = [node.startTag.range[1], node.range[1]];
}
const code = text.slice(...inputRange);
const filename = `${context.filename}.css`;
try {
const configFilePath = postcssConfig?.configFilePath;
const config = postcssLoadConfig.sync(
{
cwd: context.cwd ?? process.cwd(),
from: filename
},
typeof configFilePath === 'string' ? configFilePath : undefined
);
const result = postcss(config.plugins).process(code, {
...config.options,
map: {
inline: false
}
});
return {
inputRange,
output: result.content,
mappings: result.map.toJSON().mappings
};
} catch {
// console.log(e)
return null;
}
}
================================================
FILE: packages/eslint-plugin-svelte/src/shared/svelte-compile-warns/transform/sass.ts
================================================
import type { AST } from 'svelte-eslint-parser';
import type sass from 'sass';
import type { RuleContext } from '../../../types.js';
import type { TransformResult } from './types.js';
import { loadModule } from '../../../utils/load-module.js';
type Sass = typeof sass;
/**
* Transpile with sass
*/
export function transform(
node: AST.SvelteStyleElement,
text: string,
context: RuleContext,
type: 'scss' | 'sass'
): TransformResult | null {
const sass = loadSass(context);
if (!sass) {
return null;
}
let inputRange: AST.Range;
if (node.endTag) {
inputRange = [node.startTag.range[1], node.endTag.range[0]];
} else {
inputRange = [node.startTag.range[1], node.range[1]];
}
const code = text.slice(...inputRange);
try {
const output = sass.compileString(code, {
sourceMap: true,
syntax: type === 'sass' ? 'indented' : undefined
});
if (!output) {
return null;
}
return {
inputRange,
output: output.css,
mappings: output.sourceMap!.mappings
};
} catch {
return null;
}
}
/**
* Load sass
*/
function loadSass(context: RuleContext): Sass | null {
return loadModule(context, 'sass');
}
================================================
FILE: packages/eslint-plugin-svelte/src/shared/svelte-compile-warns/transform/stylus.ts
================================================
import type { AST } from 'svelte-eslint-parser';
import type stylus from 'stylus';
import type { RawSourceMap } from 'source-map-js';
import type { RuleContext } from '../../../types.js';
import type { TransformResult } from './types.js';
import { loadModule } from '../../../utils/load-module.js';
type Stylus = typeof stylus;
/**
* Transpile with stylus
*/
export function transform(
node: AST.SvelteStyleElement,
text: string,
context: RuleContext
): TransformResult | null {
const stylus = loadStylus(context);
if (!stylus) {
return null;
}
let inputRange: AST.Range;
if (node.endTag) {
inputRange = [node.startTag.range[1], node.endTag.range[0]];
} else {
inputRange = [node.startTag.range[1], node.range[1]];
}
const code = text.slice(...inputRange);
const filename = `${context.filename}.stylus`;
try {
let output: string | undefined;
const style = stylus(code, {
filename
}).set('sourcemap', {});
style.render((_error, code) => {
output = code;
});
if (output == null) {
return null;
}
return {
inputRange,
output,
mappings: (style as unknown as { sourcemap: RawSourceMap }).sourcemap.mappings
};
} catch {
return null;
}
}
/**
* Load stylus
*/
function loadStylus(context: RuleContext): Stylus | null {
return loadModule(context, 'stylus');
}
================================================
FILE: packages/eslint-plugin-svelte/src/shared/svelte-compile-warns/transform/types.ts
================================================
import type { AST } from 'svelte-eslint-parser';
export type TransformResult = {
inputRange: AST.Range;
output: string;
mappings: string;
};
================================================
FILE: packages/eslint-plugin-svelte/src/shared/svelte-compile-warns/transform/typescript.ts
================================================
import type { AST } from 'svelte-eslint-parser';
import type typescript from 'typescript';
import type { RuleContext } from '../../../types.js';
import type { TransformResult } from './types.js';
import { loadModule } from '../../../utils/load-module.js';
type TS = typeof typescript;
/**
* Transpile with typescript
*/
export function transform(
node: AST.SvelteScriptElement,
text: string,
context: RuleContext
): TransformResult | null {
const ts = loadTs(context);
if (!ts) {
return null;
}
let inputRange: AST.Range;
if (node.endTag) {
inputRange = [node.startTag.range[1], node.endTag.range[0]];
} else {
inputRange = [node.startTag.range[1], node.range[1]];
}
const code = text.slice(...inputRange);
try {
const output = ts.transpileModule(code, {
reportDiagnostics: false,
compilerOptions: {
target:
context.sourceCode.parserServices.program?.getCompilerOptions()?.target ||
ts.ScriptTarget.ESNext,
module: ts.ModuleKind.ESNext,
importsNotUsedAsValues: ts.ImportsNotUsedAsValues.Preserve,
preserveValueImports: true,
verbatimModuleSyntax: true,
sourceMap: true
}
});
return {
inputRange,
output: output.outputText,
mappings: JSON.parse(output.sourceMapText!).mappings
};
} catch {
return null;
}
}
/** Check if project has TypeScript. */
export function hasTypeScript(context: RuleContext): boolean {
return Boolean(loadTs(context));
}
/**
* Load typescript
*/
function loadTs(context: RuleContext): TS | null {
return loadModule(context, 'typescript');
}
================================================
FILE: packages/eslint-plugin-svelte/src/type-defs/@eslint-community/eslint-utils.d.ts
================================================
import type {
CALL,
CONSTRUCT,
ESM,
READ,
StaticValue,
TraceMap,
TrackedReferences,
ReferenceTrackerOptions
} from '../../../node_modules/@eslint-community/eslint-utils/index.mjs';
import type { AST } from 'svelte-eslint-parser';
import type { TSESTree } from '@typescript-eslint/types';
import type { Scope } from '@typescript-eslint/scope-manager';
declare module '@eslint-community/eslint-utils' {
type Token = { type: string; value: string };
export function isArrowToken(token: Token): boolean;
export function isCommaToken(token: Token): boolean;
export function isSemicolonToken(token: Token): boolean;
export function isColonToken(token: Token): boolean;
export function isOpeningParenToken(token: Token): boolean;
export function isClosingParenToken(token: Token): boolean;
export function isOpeningBracketToken(token: Token): boolean;
export function isClosingBracketToken(token: Token): boolean;
export function isOpeningBraceToken(token: Token): boolean;
export function isClosingBraceToken(token: Token): boolean;
export function isCommentToken(token: Token): token is AST.Comment;
export function isNotArrowToken(token: Token): boolean;
export function isNotCommaToken(token: Token): boolean;
export function isNotSemicolonToken(token: Token): boolean;
export function isNotColonToken(token: Token): boolean;
export function isNotOpeningParenToken(token: Token): boolean;
export function isNotClosingParenToken(token: Token): boolean;
export function isNotOpeningBracketToken(token: Token): boolean;
export function isNotClosingBracketToken(token: Token): boolean;
export function isNotOpeningBraceToken(token: Token): boolean;
export function isNotClosingBraceToken(token: Token): boolean;
export function isNotCommentToken(token: Token): boolean;
export function findVariable(
initialScope: Scope,
nameOrNode: TSESTree.Identifier | string
): Scope.Variable;
/**
* Get the property name from a MemberExpression node or a Property node.
*/
export function getPropertyName(
node:
| TSESTree.MemberExpression
| TSESTree.MethodDefinition
| TSESTree.Property
| TSESTree.PropertyDefinition,
initialScope?: Scope
): string | null;
/**
* Get the innermost scope which contains a given location.
*/
export function getInnermostScope(initialScope: Scope, node: TSESTree.Node): Scope;
export class ReferenceTracker {
public static readonly CALL: typeof CALL;
public static readonly CONSTRUCT: typeof CONSTRUCT;
public static readonly ESM: typeof ESM;
public static readonly READ: typeof READ;
public constructor(globalScope: Scope, options?: ReferenceTrackerOptions);
/**
* Iterate the references of CommonJS modules.
*/
public iterateCjsReferences(
traceMap: TraceMap
): IterableIterator>;
/**
* Iterate the references of ES modules.
*/
public iterateEsmReferences(
traceMap: TraceMap
): IterableIterator>;
/**
* Iterate the references of global variables.
*/
public iterateGlobalReferences(
traceMap: TraceMap
): IterableIterator>;
/**
* Iterate the property references for a given expression AST node.
*/
public iteratePropertyReferences(
node: TSESTree.Expression,
traceMap: TraceMap
): IterableIterator>;
}
export function getStaticValue(
node: TSESTree.Node,
initialScope?: Scope | null | undefined
): StaticValue | null;
}
================================================
FILE: packages/eslint-plugin-svelte/src/type-defs/estree.d.ts
================================================
// IMPORTANT!
// This file has been automatically generated,
// in order to update its content execute "pnpm run update"
//
// Replace type information to use "@typescript-eslint/types" instead of "estree".
//
declare module 'estree' {
import type { TSESTree } from '@typescript-eslint/types';
export type Node = TSESTree.Node;
export type Program = TSESTree.Program;
export type Expression = TSESTree.Expression;
export type Statement = TSESTree.Statement;
export type Pattern = TSESTree.DestructuringPattern;
export type AccessorProperty = TSESTree.AccessorProperty;
export type ArrayExpression = TSESTree.ArrayExpression;
export type ArrayPattern = TSESTree.ArrayPattern;
export type ArrowFunctionExpression = TSESTree.ArrowFunctionExpression;
export type AssignmentExpression = TSESTree.AssignmentExpression;
export type AssignmentPattern = TSESTree.AssignmentPattern;
export type AwaitExpression = TSESTree.AwaitExpression;
export type BinaryExpression = TSESTree.BinaryExpression;
export type BlockStatement = TSESTree.BlockStatement;
export type BreakStatement = TSESTree.BreakStatement;
export type CallExpression = TSESTree.CallExpression;
export type CatchClause = TSESTree.CatchClause;
export type ChainExpression = TSESTree.ChainExpression;
export type ClassBody = TSESTree.ClassBody;
export type ClassDeclaration = TSESTree.ClassDeclaration;
export type ClassExpression = TSESTree.ClassExpression;
export type ConditionalExpression = TSESTree.ConditionalExpression;
export type ContinueStatement = TSESTree.ContinueStatement;
export type DebuggerStatement = TSESTree.DebuggerStatement;
export type DoWhileStatement = TSESTree.DoWhileStatement;
export type EmptyStatement = TSESTree.EmptyStatement;
export type ExportAllDeclaration = TSESTree.ExportAllDeclaration;
export type ExportDefaultDeclaration = TSESTree.ExportDefaultDeclaration;
export type ExportNamedDeclaration = TSESTree.ExportNamedDeclaration;
export type ExportSpecifier = TSESTree.ExportSpecifier;
export type ExpressionStatement = TSESTree.ExpressionStatement;
export type ForInStatement = TSESTree.ForInStatement;
export type ForOfStatement = TSESTree.ForOfStatement;
export type ForStatement = TSESTree.ForStatement;
export type FunctionDeclaration = TSESTree.FunctionDeclaration;
export type FunctionExpression = TSESTree.FunctionExpression;
export type Identifier = TSESTree.Identifier;
export type IfStatement = TSESTree.IfStatement;
export type ImportDeclaration = TSESTree.ImportDeclaration;
export type ImportDefaultSpecifier = TSESTree.ImportDefaultSpecifier;
export type ImportExpression = TSESTree.ImportExpression;
export type ImportNamespaceSpecifier = TSESTree.ImportNamespaceSpecifier;
export type ImportSpecifier = TSESTree.ImportSpecifier;
export type LabeledStatement = TSESTree.LabeledStatement;
export type Literal = TSESTree.Literal;
export type LogicalExpression = TSESTree.LogicalExpression;
export type MemberExpression = TSESTree.MemberExpression;
export type MetaProperty = TSESTree.MetaProperty;
export type MethodDefinition = TSESTree.MethodDefinition;
export type NewExpression = TSESTree.NewExpression;
export type ObjectExpression = TSESTree.ObjectExpression;
export type ObjectPattern = TSESTree.ObjectPattern;
export type PrivateIdentifier = TSESTree.PrivateIdentifier;
export type Property = TSESTree.Property;
export type PropertyDefinition = TSESTree.PropertyDefinition;
export type RestElement = TSESTree.RestElement;
export type ReturnStatement = TSESTree.ReturnStatement;
export type SequenceExpression = TSESTree.SequenceExpression;
export type SpreadElement = TSESTree.SpreadElement;
export type Super = TSESTree.Super;
export type SwitchCase = TSESTree.SwitchCase;
export type SwitchStatement = TSESTree.SwitchStatement;
export type TaggedTemplateExpression = TSESTree.TaggedTemplateExpression;
export type TemplateElement = TSESTree.TemplateElement;
export type TemplateLiteral = TSESTree.TemplateLiteral;
export type ThisExpression = TSESTree.ThisExpression;
export type ThrowStatement = TSESTree.ThrowStatement;
export type TryStatement = TSESTree.TryStatement;
export type UnaryExpression = TSESTree.UnaryExpression;
export type UpdateExpression = TSESTree.UpdateExpression;
export type VariableDeclaration = TSESTree.VariableDeclaration;
export type VariableDeclarator = TSESTree.VariableDeclarator;
export type WhileStatement = TSESTree.WhileStatement;
export type WithStatement = TSESTree.WithStatement;
export type YieldExpression = TSESTree.YieldExpression;
}
================================================
FILE: packages/eslint-plugin-svelte/src/type-defs/postcss/lib/tokenize.d.ts
================================================
declare module 'postcss/lib/tokenize' {
import type { Input } from 'postcss';
export type Token = [string, string, number?, number?];
export type Tokenizer = {
back: (token: Token) => void;
nextToken: (opts?: { ignoreUnclosed?: boolean }) => Token | undefined;
endOfFile: () => boolean;
position: () => number;
};
export default function tokenizer(input: Input, options?: { ignoreErrors?: boolean }): Tokenizer;
}
================================================
FILE: packages/eslint-plugin-svelte/src/type-defs/postcss-safe-parser/lib/safe-parser.d.ts
================================================
declare module 'postcss-safe-parser/lib/safe-parser.js' {
import type { Tokenizer } from 'postcss/lib/tokenize';
import type { Root, Input } from 'postcss';
declare class Parser {
protected input: Input;
public root: Root;
protected tokenizer: Tokenizer;
public constructor(input: Input);
public parse(): void;
protected createTokenizer(): void;
}
export default Parser;
}
================================================
FILE: packages/eslint-plugin-svelte/src/types-for-node.ts
================================================
// IMPORTANT!
// This file has been automatically generated,
// in order to update its content execute "pnpm run update"
//
// The information here can be calculated by calculating the type,
// but is pre-defined to avoid the computational cost.
//
import type { TSESTree, AST_NODE_TYPES } from '@typescript-eslint/types';
import type { AST } from 'svelte-eslint-parser';
export type ASTNode =
| AST.SvelteNode
| Exclude, { type: AST.SvelteNode['type'] }>;
export type ASTNodeWithParent =
| (Exclude & { parent: ASTNodeWithParent })
| AST.SvelteProgram;
export type ASTNodeListener = {
AccessorProperty?: (node: TSESTree.AccessorProperty & ASTNodeWithParent) => void;
'AccessorProperty:exit'?: (node: TSESTree.AccessorProperty & ASTNodeWithParent) => void;
ArrayExpression?: (node: TSESTree.ArrayExpression & ASTNodeWithParent) => void;
'ArrayExpression:exit'?: (node: TSESTree.ArrayExpression & ASTNodeWithParent) => void;
ArrayPattern?: (node: TSESTree.ArrayPattern & ASTNodeWithParent) => void;
'ArrayPattern:exit'?: (node: TSESTree.ArrayPattern & ASTNodeWithParent) => void;
ArrowFunctionExpression?: (node: TSESTree.ArrowFunctionExpression & ASTNodeWithParent) => void;
'ArrowFunctionExpression:exit'?: (
node: TSESTree.ArrowFunctionExpression & ASTNodeWithParent
) => void;
AssignmentExpression?: (node: TSESTree.AssignmentExpression & ASTNodeWithParent) => void;
'AssignmentExpression:exit'?: (node: TSESTree.AssignmentExpression & ASTNodeWithParent) => void;
AssignmentPattern?: (node: TSESTree.AssignmentPattern & ASTNodeWithParent) => void;
'AssignmentPattern:exit'?: (node: TSESTree.AssignmentPattern & ASTNodeWithParent) => void;
AwaitExpression?: (node: TSESTree.AwaitExpression & ASTNodeWithParent) => void;
'AwaitExpression:exit'?: (node: TSESTree.AwaitExpression & ASTNodeWithParent) => void;
BinaryExpression?: (node: TSESTree.BinaryExpression & ASTNodeWithParent) => void;
'BinaryExpression:exit'?: (node: TSESTree.BinaryExpression & ASTNodeWithParent) => void;
BlockStatement?: (node: TSESTree.BlockStatement & ASTNodeWithParent) => void;
'BlockStatement:exit'?: (node: TSESTree.BlockStatement & ASTNodeWithParent) => void;
BreakStatement?: (node: TSESTree.BreakStatement & ASTNodeWithParent) => void;
'BreakStatement:exit'?: (node: TSESTree.BreakStatement & ASTNodeWithParent) => void;
CallExpression?: (node: TSESTree.CallExpression & ASTNodeWithParent) => void;
'CallExpression:exit'?: (node: TSESTree.CallExpression & ASTNodeWithParent) => void;
CatchClause?: (node: TSESTree.CatchClause & ASTNodeWithParent) => void;
'CatchClause:exit'?: (node: TSESTree.CatchClause & ASTNodeWithParent) => void;
ChainExpression?: (node: TSESTree.ChainExpression & ASTNodeWithParent) => void;
'ChainExpression:exit'?: (node: TSESTree.ChainExpression & ASTNodeWithParent) => void;
ClassBody?: (node: TSESTree.ClassBody & ASTNodeWithParent) => void;
'ClassBody:exit'?: (node: TSESTree.ClassBody & ASTNodeWithParent) => void;
ClassDeclaration?: (node: TSESTree.ClassDeclaration & ASTNodeWithParent) => void;
'ClassDeclaration:exit'?: (node: TSESTree.ClassDeclaration & ASTNodeWithParent) => void;
ClassExpression?: (node: TSESTree.ClassExpression & ASTNodeWithParent) => void;
'ClassExpression:exit'?: (node: TSESTree.ClassExpression & ASTNodeWithParent) => void;
ConditionalExpression?: (node: TSESTree.ConditionalExpression & ASTNodeWithParent) => void;
'ConditionalExpression:exit'?: (node: TSESTree.ConditionalExpression & ASTNodeWithParent) => void;
ContinueStatement?: (node: TSESTree.ContinueStatement & ASTNodeWithParent) => void;
'ContinueStatement:exit'?: (node: TSESTree.ContinueStatement & ASTNodeWithParent) => void;
DebuggerStatement?: (node: TSESTree.DebuggerStatement & ASTNodeWithParent) => void;
'DebuggerStatement:exit'?: (node: TSESTree.DebuggerStatement & ASTNodeWithParent) => void;
Decorator?: (node: TSESTree.Decorator & ASTNodeWithParent) => void;
'Decorator:exit'?: (node: TSESTree.Decorator & ASTNodeWithParent) => void;
DoWhileStatement?: (node: TSESTree.DoWhileStatement & ASTNodeWithParent) => void;
'DoWhileStatement:exit'?: (node: TSESTree.DoWhileStatement & ASTNodeWithParent) => void;
EmptyStatement?: (node: TSESTree.EmptyStatement & ASTNodeWithParent) => void;
'EmptyStatement:exit'?: (node: TSESTree.EmptyStatement & ASTNodeWithParent) => void;
ExportAllDeclaration?: (node: TSESTree.ExportAllDeclaration & ASTNodeWithParent) => void;
'ExportAllDeclaration:exit'?: (node: TSESTree.ExportAllDeclaration & ASTNodeWithParent) => void;
ExportDefaultDeclaration?: (node: TSESTree.ExportDefaultDeclaration & ASTNodeWithParent) => void;
'ExportDefaultDeclaration:exit'?: (
node: TSESTree.ExportDefaultDeclaration & ASTNodeWithParent
) => void;
ExportNamedDeclaration?: (node: TSESTree.ExportNamedDeclaration & ASTNodeWithParent) => void;
'ExportNamedDeclaration:exit'?: (
node: TSESTree.ExportNamedDeclaration & ASTNodeWithParent
) => void;
ExportSpecifier?: (node: TSESTree.ExportSpecifier & ASTNodeWithParent) => void;
'ExportSpecifier:exit'?: (node: TSESTree.ExportSpecifier & ASTNodeWithParent) => void;
ExpressionStatement?: (node: TSESTree.ExpressionStatement & ASTNodeWithParent) => void;
'ExpressionStatement:exit'?: (node: TSESTree.ExpressionStatement & ASTNodeWithParent) => void;
ForInStatement?: (node: TSESTree.ForInStatement & ASTNodeWithParent) => void;
'ForInStatement:exit'?: (node: TSESTree.ForInStatement & ASTNodeWithParent) => void;
ForOfStatement?: (node: TSESTree.ForOfStatement & ASTNodeWithParent) => void;
'ForOfStatement:exit'?: (node: TSESTree.ForOfStatement & ASTNodeWithParent) => void;
ForStatement?: (node: TSESTree.ForStatement & ASTNodeWithParent) => void;
'ForStatement:exit'?: (node: TSESTree.ForStatement & ASTNodeWithParent) => void;
FunctionDeclaration?: (node: TSESTree.FunctionDeclaration & ASTNodeWithParent) => void;
'FunctionDeclaration:exit'?: (node: TSESTree.FunctionDeclaration & ASTNodeWithParent) => void;
FunctionExpression?: (node: TSESTree.FunctionExpression & ASTNodeWithParent) => void;
'FunctionExpression:exit'?: (node: TSESTree.FunctionExpression & ASTNodeWithParent) => void;
Identifier?: (node: TSESTree.Identifier & ASTNodeWithParent) => void;
'Identifier:exit'?: (node: TSESTree.Identifier & ASTNodeWithParent) => void;
IfStatement?: (node: TSESTree.IfStatement & ASTNodeWithParent) => void;
'IfStatement:exit'?: (node: TSESTree.IfStatement & ASTNodeWithParent) => void;
ImportAttribute?: (node: TSESTree.ImportAttribute & ASTNodeWithParent) => void;
'ImportAttribute:exit'?: (node: TSESTree.ImportAttribute & ASTNodeWithParent) => void;
ImportDeclaration?: (node: TSESTree.ImportDeclaration & ASTNodeWithParent) => void;
'ImportDeclaration:exit'?: (node: TSESTree.ImportDeclaration & ASTNodeWithParent) => void;
ImportDefaultSpecifier?: (node: TSESTree.ImportDefaultSpecifier & ASTNodeWithParent) => void;
'ImportDefaultSpecifier:exit'?: (
node: TSESTree.ImportDefaultSpecifier & ASTNodeWithParent
) => void;
ImportExpression?: (node: TSESTree.ImportExpression & ASTNodeWithParent) => void;
'ImportExpression:exit'?: (node: TSESTree.ImportExpression & ASTNodeWithParent) => void;
ImportNamespaceSpecifier?: (node: TSESTree.ImportNamespaceSpecifier & ASTNodeWithParent) => void;
'ImportNamespaceSpecifier:exit'?: (
node: TSESTree.ImportNamespaceSpecifier & ASTNodeWithParent
) => void;
ImportSpecifier?: (node: TSESTree.ImportSpecifier & ASTNodeWithParent) => void;
'ImportSpecifier:exit'?: (node: TSESTree.ImportSpecifier & ASTNodeWithParent) => void;
JSXAttribute?: (node: TSESTree.JSXAttribute & ASTNodeWithParent) => void;
'JSXAttribute:exit'?: (node: TSESTree.JSXAttribute & ASTNodeWithParent) => void;
JSXClosingElement?: (node: TSESTree.JSXClosingElement & ASTNodeWithParent) => void;
'JSXClosingElement:exit'?: (node: TSESTree.JSXClosingElement & ASTNodeWithParent) => void;
JSXClosingFragment?: (node: TSESTree.JSXClosingFragment & ASTNodeWithParent) => void;
'JSXClosingFragment:exit'?: (node: TSESTree.JSXClosingFragment & ASTNodeWithParent) => void;
JSXElement?: (node: TSESTree.JSXElement & ASTNodeWithParent) => void;
'JSXElement:exit'?: (node: TSESTree.JSXElement & ASTNodeWithParent) => void;
JSXEmptyExpression?: (node: TSESTree.JSXEmptyExpression & ASTNodeWithParent) => void;
'JSXEmptyExpression:exit'?: (node: TSESTree.JSXEmptyExpression & ASTNodeWithParent) => void;
JSXExpressionContainer?: (node: TSESTree.JSXExpressionContainer & ASTNodeWithParent) => void;
'JSXExpressionContainer:exit'?: (
node: TSESTree.JSXExpressionContainer & ASTNodeWithParent
) => void;
JSXFragment?: (node: TSESTree.JSXFragment & ASTNodeWithParent) => void;
'JSXFragment:exit'?: (node: TSESTree.JSXFragment & ASTNodeWithParent) => void;
JSXIdentifier?: (node: TSESTree.JSXIdentifier & ASTNodeWithParent) => void;
'JSXIdentifier:exit'?: (node: TSESTree.JSXIdentifier & ASTNodeWithParent) => void;
JSXMemberExpression?: (node: TSESTree.JSXMemberExpression & ASTNodeWithParent) => void;
'JSXMemberExpression:exit'?: (node: TSESTree.JSXMemberExpression & ASTNodeWithParent) => void;
JSXNamespacedName?: (node: TSESTree.JSXNamespacedName & ASTNodeWithParent) => void;
'JSXNamespacedName:exit'?: (node: TSESTree.JSXNamespacedName & ASTNodeWithParent) => void;
JSXOpeningElement?: (node: TSESTree.JSXOpeningElement & ASTNodeWithParent) => void;
'JSXOpeningElement:exit'?: (node: TSESTree.JSXOpeningElement & ASTNodeWithParent) => void;
JSXOpeningFragment?: (node: TSESTree.JSXOpeningFragment & ASTNodeWithParent) => void;
'JSXOpeningFragment:exit'?: (node: TSESTree.JSXOpeningFragment & ASTNodeWithParent) => void;
JSXSpreadAttribute?: (node: TSESTree.JSXSpreadAttribute & ASTNodeWithParent) => void;
'JSXSpreadAttribute:exit'?: (node: TSESTree.JSXSpreadAttribute & ASTNodeWithParent) => void;
JSXSpreadChild?: (node: TSESTree.JSXSpreadChild & ASTNodeWithParent) => void;
'JSXSpreadChild:exit'?: (node: TSESTree.JSXSpreadChild & ASTNodeWithParent) => void;
JSXText?: (node: TSESTree.JSXText & ASTNodeWithParent) => void;
'JSXText:exit'?: (node: TSESTree.JSXText & ASTNodeWithParent) => void;
LabeledStatement?: (node: TSESTree.LabeledStatement & ASTNodeWithParent) => void;
'LabeledStatement:exit'?: (node: TSESTree.LabeledStatement & ASTNodeWithParent) => void;
Literal?: (node: TSESTree.Literal & ASTNodeWithParent) => void;
'Literal:exit'?: (node: TSESTree.Literal & ASTNodeWithParent) => void;
LogicalExpression?: (node: TSESTree.LogicalExpression & ASTNodeWithParent) => void;
'LogicalExpression:exit'?: (node: TSESTree.LogicalExpression & ASTNodeWithParent) => void;
MemberExpression?: (node: TSESTree.MemberExpression & ASTNodeWithParent) => void;
'MemberExpression:exit'?: (node: TSESTree.MemberExpression & ASTNodeWithParent) => void;
MetaProperty?: (node: TSESTree.MetaProperty & ASTNodeWithParent) => void;
'MetaProperty:exit'?: (node: TSESTree.MetaProperty & ASTNodeWithParent) => void;
MethodDefinition?: (node: TSESTree.MethodDefinition & ASTNodeWithParent) => void;
'MethodDefinition:exit'?: (node: TSESTree.MethodDefinition & ASTNodeWithParent) => void;
NewExpression?: (node: TSESTree.NewExpression & ASTNodeWithParent) => void;
'NewExpression:exit'?: (node: TSESTree.NewExpression & ASTNodeWithParent) => void;
ObjectExpression?: (node: TSESTree.ObjectExpression & ASTNodeWithParent) => void;
'ObjectExpression:exit'?: (node: TSESTree.ObjectExpression & ASTNodeWithParent) => void;
ObjectPattern?: (node: TSESTree.ObjectPattern & ASTNodeWithParent) => void;
'ObjectPattern:exit'?: (node: TSESTree.ObjectPattern & ASTNodeWithParent) => void;
PrivateIdentifier?: (node: TSESTree.PrivateIdentifier & ASTNodeWithParent) => void;
'PrivateIdentifier:exit'?: (node: TSESTree.PrivateIdentifier & ASTNodeWithParent) => void;
Property?: (node: TSESTree.Property & ASTNodeWithParent) => void;
'Property:exit'?: (node: TSESTree.Property & ASTNodeWithParent) => void;
PropertyDefinition?: (node: TSESTree.PropertyDefinition & ASTNodeWithParent) => void;
'PropertyDefinition:exit'?: (node: TSESTree.PropertyDefinition & ASTNodeWithParent) => void;
RestElement?: (node: TSESTree.RestElement & ASTNodeWithParent) => void;
'RestElement:exit'?: (node: TSESTree.RestElement & ASTNodeWithParent) => void;
ReturnStatement?: (node: TSESTree.ReturnStatement & ASTNodeWithParent) => void;
'ReturnStatement:exit'?: (node: TSESTree.ReturnStatement & ASTNodeWithParent) => void;
SequenceExpression?: (node: TSESTree.SequenceExpression & ASTNodeWithParent) => void;
'SequenceExpression:exit'?: (node: TSESTree.SequenceExpression & ASTNodeWithParent) => void;
SpreadElement?: (node: TSESTree.SpreadElement & ASTNodeWithParent) => void;
'SpreadElement:exit'?: (node: TSESTree.SpreadElement & ASTNodeWithParent) => void;
StaticBlock?: (node: TSESTree.StaticBlock & ASTNodeWithParent) => void;
'StaticBlock:exit'?: (node: TSESTree.StaticBlock & ASTNodeWithParent) => void;
Super?: (node: TSESTree.Super & ASTNodeWithParent) => void;
'Super:exit'?: (node: TSESTree.Super & ASTNodeWithParent) => void;
SwitchCase?: (node: TSESTree.SwitchCase & ASTNodeWithParent) => void;
'SwitchCase:exit'?: (node: TSESTree.SwitchCase & ASTNodeWithParent) => void;
SwitchStatement?: (node: TSESTree.SwitchStatement & ASTNodeWithParent) => void;
'SwitchStatement:exit'?: (node: TSESTree.SwitchStatement & ASTNodeWithParent) => void;
TaggedTemplateExpression?: (node: TSESTree.TaggedTemplateExpression & ASTNodeWithParent) => void;
'TaggedTemplateExpression:exit'?: (
node: TSESTree.TaggedTemplateExpression & ASTNodeWithParent
) => void;
TemplateElement?: (node: TSESTree.TemplateElement & ASTNodeWithParent) => void;
'TemplateElement:exit'?: (node: TSESTree.TemplateElement & ASTNodeWithParent) => void;
TemplateLiteral?: (node: TSESTree.TemplateLiteral & ASTNodeWithParent) => void;
'TemplateLiteral:exit'?: (node: TSESTree.TemplateLiteral & ASTNodeWithParent) => void;
ThisExpression?: (node: TSESTree.ThisExpression & ASTNodeWithParent) => void;
'ThisExpression:exit'?: (node: TSESTree.ThisExpression & ASTNodeWithParent) => void;
ThrowStatement?: (node: TSESTree.ThrowStatement & ASTNodeWithParent) => void;
'ThrowStatement:exit'?: (node: TSESTree.ThrowStatement & ASTNodeWithParent) => void;
TryStatement?: (node: TSESTree.TryStatement & ASTNodeWithParent) => void;
'TryStatement:exit'?: (node: TSESTree.TryStatement & ASTNodeWithParent) => void;
UnaryExpression?: (node: TSESTree.UnaryExpression & ASTNodeWithParent) => void;
'UnaryExpression:exit'?: (node: TSESTree.UnaryExpression & ASTNodeWithParent) => void;
UpdateExpression?: (node: TSESTree.UpdateExpression & ASTNodeWithParent) => void;
'UpdateExpression:exit'?: (node: TSESTree.UpdateExpression & ASTNodeWithParent) => void;
VariableDeclaration?: (node: TSESTree.VariableDeclaration & ASTNodeWithParent) => void;
'VariableDeclaration:exit'?: (node: TSESTree.VariableDeclaration & ASTNodeWithParent) => void;
VariableDeclarator?: (node: TSESTree.VariableDeclarator & ASTNodeWithParent) => void;
'VariableDeclarator:exit'?: (node: TSESTree.VariableDeclarator & ASTNodeWithParent) => void;
WhileStatement?: (node: TSESTree.WhileStatement & ASTNodeWithParent) => void;
'WhileStatement:exit'?: (node: TSESTree.WhileStatement & ASTNodeWithParent) => void;
WithStatement?: (node: TSESTree.WithStatement & ASTNodeWithParent) => void;
'WithStatement:exit'?: (node: TSESTree.WithStatement & ASTNodeWithParent) => void;
YieldExpression?: (node: TSESTree.YieldExpression & ASTNodeWithParent) => void;
'YieldExpression:exit'?: (node: TSESTree.YieldExpression & ASTNodeWithParent) => void;
TSAbstractAccessorProperty?: (
node: TSESTree.TSAbstractAccessorProperty & ASTNodeWithParent
) => void;
'TSAbstractAccessorProperty:exit'?: (
node: TSESTree.TSAbstractAccessorProperty & ASTNodeWithParent
) => void;
TSAbstractKeyword?: (node: TSESTree.TSAbstractKeyword & ASTNodeWithParent) => void;
'TSAbstractKeyword:exit'?: (node: TSESTree.TSAbstractKeyword & ASTNodeWithParent) => void;
TSAbstractMethodDefinition?: (
node: TSESTree.TSAbstractMethodDefinition & ASTNodeWithParent
) => void;
'TSAbstractMethodDefinition:exit'?: (
node: TSESTree.TSAbstractMethodDefinition & ASTNodeWithParent
) => void;
TSAbstractPropertyDefinition?: (
node: TSESTree.TSAbstractPropertyDefinition & ASTNodeWithParent
) => void;
'TSAbstractPropertyDefinition:exit'?: (
node: TSESTree.TSAbstractPropertyDefinition & ASTNodeWithParent
) => void;
TSAnyKeyword?: (node: TSESTree.TSAnyKeyword & ASTNodeWithParent) => void;
'TSAnyKeyword:exit'?: (node: TSESTree.TSAnyKeyword & ASTNodeWithParent) => void;
TSArrayType?: (node: TSESTree.TSArrayType & ASTNodeWithParent) => void;
'TSArrayType:exit'?: (node: TSESTree.TSArrayType & ASTNodeWithParent) => void;
TSAsExpression?: (node: TSESTree.TSAsExpression & ASTNodeWithParent) => void;
'TSAsExpression:exit'?: (node: TSESTree.TSAsExpression & ASTNodeWithParent) => void;
TSAsyncKeyword?: (node: TSESTree.TSAsyncKeyword & ASTNodeWithParent) => void;
'TSAsyncKeyword:exit'?: (node: TSESTree.TSAsyncKeyword & ASTNodeWithParent) => void;
TSBigIntKeyword?: (node: TSESTree.TSBigIntKeyword & ASTNodeWithParent) => void;
'TSBigIntKeyword:exit'?: (node: TSESTree.TSBigIntKeyword & ASTNodeWithParent) => void;
TSBooleanKeyword?: (node: TSESTree.TSBooleanKeyword & ASTNodeWithParent) => void;
'TSBooleanKeyword:exit'?: (node: TSESTree.TSBooleanKeyword & ASTNodeWithParent) => void;
TSCallSignatureDeclaration?: (
node: TSESTree.TSCallSignatureDeclaration & ASTNodeWithParent
) => void;
'TSCallSignatureDeclaration:exit'?: (
node: TSESTree.TSCallSignatureDeclaration & ASTNodeWithParent
) => void;
TSClassImplements?: (node: TSESTree.TSClassImplements & ASTNodeWithParent) => void;
'TSClassImplements:exit'?: (node: TSESTree.TSClassImplements & ASTNodeWithParent) => void;
TSConditionalType?: (node: TSESTree.TSConditionalType & ASTNodeWithParent) => void;
'TSConditionalType:exit'?: (node: TSESTree.TSConditionalType & ASTNodeWithParent) => void;
TSConstructorType?: (node: TSESTree.TSConstructorType & ASTNodeWithParent) => void;
'TSConstructorType:exit'?: (node: TSESTree.TSConstructorType & ASTNodeWithParent) => void;
TSConstructSignatureDeclaration?: (
node: TSESTree.TSConstructSignatureDeclaration & ASTNodeWithParent
) => void;
'TSConstructSignatureDeclaration:exit'?: (
node: TSESTree.TSConstructSignatureDeclaration & ASTNodeWithParent
) => void;
TSDeclareFunction?: (node: TSESTree.TSDeclareFunction & ASTNodeWithParent) => void;
'TSDeclareFunction:exit'?: (node: TSESTree.TSDeclareFunction & ASTNodeWithParent) => void;
TSDeclareKeyword?: (node: TSESTree.TSDeclareKeyword & ASTNodeWithParent) => void;
'TSDeclareKeyword:exit'?: (node: TSESTree.TSDeclareKeyword & ASTNodeWithParent) => void;
TSEmptyBodyFunctionExpression?: (
node: TSESTree.TSEmptyBodyFunctionExpression & ASTNodeWithParent
) => void;
'TSEmptyBodyFunctionExpression:exit'?: (
node: TSESTree.TSEmptyBodyFunctionExpression & ASTNodeWithParent
) => void;
TSEnumBody?: (node: TSESTree.TSEnumBody & ASTNodeWithParent) => void;
'TSEnumBody:exit'?: (node: TSESTree.TSEnumBody & ASTNodeWithParent) => void;
TSEnumDeclaration?: (node: TSESTree.TSEnumDeclaration & ASTNodeWithParent) => void;
'TSEnumDeclaration:exit'?: (node: TSESTree.TSEnumDeclaration & ASTNodeWithParent) => void;
TSEnumMember?: (node: TSESTree.TSEnumMember & ASTNodeWithParent) => void;
'TSEnumMember:exit'?: (node: TSESTree.TSEnumMember & ASTNodeWithParent) => void;
TSExportAssignment?: (node: TSESTree.TSExportAssignment & ASTNodeWithParent) => void;
'TSExportAssignment:exit'?: (node: TSESTree.TSExportAssignment & ASTNodeWithParent) => void;
TSExportKeyword?: (node: TSESTree.TSExportKeyword & ASTNodeWithParent) => void;
'TSExportKeyword:exit'?: (node: TSESTree.TSExportKeyword & ASTNodeWithParent) => void;
TSExternalModuleReference?: (
node: TSESTree.TSExternalModuleReference & ASTNodeWithParent
) => void;
'TSExternalModuleReference:exit'?: (
node: TSESTree.TSExternalModuleReference & ASTNodeWithParent
) => void;
TSFunctionType?: (node: TSESTree.TSFunctionType & ASTNodeWithParent) => void;
'TSFunctionType:exit'?: (node: TSESTree.TSFunctionType & ASTNodeWithParent) => void;
TSImportEqualsDeclaration?: (
node: TSESTree.TSImportEqualsDeclaration & ASTNodeWithParent
) => void;
'TSImportEqualsDeclaration:exit'?: (
node: TSESTree.TSImportEqualsDeclaration & ASTNodeWithParent
) => void;
TSImportType?: (node: TSESTree.TSImportType & ASTNodeWithParent) => void;
'TSImportType:exit'?: (node: TSESTree.TSImportType & ASTNodeWithParent) => void;
TSIndexedAccessType?: (node: TSESTree.TSIndexedAccessType & ASTNodeWithParent) => void;
'TSIndexedAccessType:exit'?: (node: TSESTree.TSIndexedAccessType & ASTNodeWithParent) => void;
TSIndexSignature?: (node: TSESTree.TSIndexSignature & ASTNodeWithParent) => void;
'TSIndexSignature:exit'?: (node: TSESTree.TSIndexSignature & ASTNodeWithParent) => void;
TSInferType?: (node: TSESTree.TSInferType & ASTNodeWithParent) => void;
'TSInferType:exit'?: (node: TSESTree.TSInferType & ASTNodeWithParent) => void;
TSInstantiationExpression?: (
node: TSESTree.TSInstantiationExpression & ASTNodeWithParent
) => void;
'TSInstantiationExpression:exit'?: (
node: TSESTree.TSInstantiationExpression & ASTNodeWithParent
) => void;
TSInterfaceBody?: (node: TSESTree.TSInterfaceBody & ASTNodeWithParent) => void;
'TSInterfaceBody:exit'?: (node: TSESTree.TSInterfaceBody & ASTNodeWithParent) => void;
TSInterfaceDeclaration?: (node: TSESTree.TSInterfaceDeclaration & ASTNodeWithParent) => void;
'TSInterfaceDeclaration:exit'?: (
node: TSESTree.TSInterfaceDeclaration & ASTNodeWithParent
) => void;
TSInterfaceHeritage?: (node: TSESTree.TSInterfaceHeritage & ASTNodeWithParent) => void;
'TSInterfaceHeritage:exit'?: (node: TSESTree.TSInterfaceHeritage & ASTNodeWithParent) => void;
TSIntersectionType?: (node: TSESTree.TSIntersectionType & ASTNodeWithParent) => void;
'TSIntersectionType:exit'?: (node: TSESTree.TSIntersectionType & ASTNodeWithParent) => void;
TSIntrinsicKeyword?: (
node: TSESTree.Node & { type: AST_NODE_TYPES.TSIntrinsicKeyword } & ASTNodeWithParent
) => void;
'TSIntrinsicKeyword:exit'?: (
node: TSESTree.Node & { type: AST_NODE_TYPES.TSIntrinsicKeyword } & ASTNodeWithParent
) => void;
TSLiteralType?: (node: TSESTree.TSLiteralType & ASTNodeWithParent) => void;
'TSLiteralType:exit'?: (node: TSESTree.TSLiteralType & ASTNodeWithParent) => void;
TSMappedType?: (node: TSESTree.TSMappedType & ASTNodeWithParent) => void;
'TSMappedType:exit'?: (node: TSESTree.TSMappedType & ASTNodeWithParent) => void;
TSMethodSignature?: (node: TSESTree.TSMethodSignature & ASTNodeWithParent) => void;
'TSMethodSignature:exit'?: (node: TSESTree.TSMethodSignature & ASTNodeWithParent) => void;
TSModuleBlock?: (node: TSESTree.TSModuleBlock & ASTNodeWithParent) => void;
'TSModuleBlock:exit'?: (node: TSESTree.TSModuleBlock & ASTNodeWithParent) => void;
TSModuleDeclaration?: (node: TSESTree.TSModuleDeclaration & ASTNodeWithParent) => void;
'TSModuleDeclaration:exit'?: (node: TSESTree.TSModuleDeclaration & ASTNodeWithParent) => void;
TSNamedTupleMember?: (node: TSESTree.TSNamedTupleMember & ASTNodeWithParent) => void;
'TSNamedTupleMember:exit'?: (node: TSESTree.TSNamedTupleMember & ASTNodeWithParent) => void;
TSNamespaceExportDeclaration?: (
node: TSESTree.TSNamespaceExportDeclaration & ASTNodeWithParent
) => void;
'TSNamespaceExportDeclaration:exit'?: (
node: TSESTree.TSNamespaceExportDeclaration & ASTNodeWithParent
) => void;
TSNeverKeyword?: (node: TSESTree.TSNeverKeyword & ASTNodeWithParent) => void;
'TSNeverKeyword:exit'?: (node: TSESTree.TSNeverKeyword & ASTNodeWithParent) => void;
TSNonNullExpression?: (node: TSESTree.TSNonNullExpression & ASTNodeWithParent) => void;
'TSNonNullExpression:exit'?: (node: TSESTree.TSNonNullExpression & ASTNodeWithParent) => void;
TSNullKeyword?: (node: TSESTree.TSNullKeyword & ASTNodeWithParent) => void;
'TSNullKeyword:exit'?: (node: TSESTree.TSNullKeyword & ASTNodeWithParent) => void;
TSNumberKeyword?: (node: TSESTree.TSNumberKeyword & ASTNodeWithParent) => void;
'TSNumberKeyword:exit'?: (node: TSESTree.TSNumberKeyword & ASTNodeWithParent) => void;
TSObjectKeyword?: (node: TSESTree.TSObjectKeyword & ASTNodeWithParent) => void;
'TSObjectKeyword:exit'?: (node: TSESTree.TSObjectKeyword & ASTNodeWithParent) => void;
TSOptionalType?: (node: TSESTree.TSOptionalType & ASTNodeWithParent) => void;
'TSOptionalType:exit'?: (node: TSESTree.TSOptionalType & ASTNodeWithParent) => void;
TSParameterProperty?: (node: TSESTree.TSParameterProperty & ASTNodeWithParent) => void;
'TSParameterProperty:exit'?: (node: TSESTree.TSParameterProperty & ASTNodeWithParent) => void;
TSPrivateKeyword?: (node: TSESTree.TSPrivateKeyword & ASTNodeWithParent) => void;
'TSPrivateKeyword:exit'?: (node: TSESTree.TSPrivateKeyword & ASTNodeWithParent) => void;
TSPropertySignature?: (node: TSESTree.TSPropertySignature & ASTNodeWithParent) => void;
'TSPropertySignature:exit'?: (node: TSESTree.TSPropertySignature & ASTNodeWithParent) => void;
TSProtectedKeyword?: (node: TSESTree.TSProtectedKeyword & ASTNodeWithParent) => void;
'TSProtectedKeyword:exit'?: (node: TSESTree.TSProtectedKeyword & ASTNodeWithParent) => void;
TSPublicKeyword?: (node: TSESTree.TSPublicKeyword & ASTNodeWithParent) => void;
'TSPublicKeyword:exit'?: (node: TSESTree.TSPublicKeyword & ASTNodeWithParent) => void;
TSQualifiedName?: (node: TSESTree.TSQualifiedName & ASTNodeWithParent) => void;
'TSQualifiedName:exit'?: (node: TSESTree.TSQualifiedName & ASTNodeWithParent) => void;
TSReadonlyKeyword?: (node: TSESTree.TSReadonlyKeyword & ASTNodeWithParent) => void;
'TSReadonlyKeyword:exit'?: (node: TSESTree.TSReadonlyKeyword & ASTNodeWithParent) => void;
TSRestType?: (node: TSESTree.TSRestType & ASTNodeWithParent) => void;
'TSRestType:exit'?: (node: TSESTree.TSRestType & ASTNodeWithParent) => void;
TSSatisfiesExpression?: (node: TSESTree.TSSatisfiesExpression & ASTNodeWithParent) => void;
'TSSatisfiesExpression:exit'?: (node: TSESTree.TSSatisfiesExpression & ASTNodeWithParent) => void;
TSStaticKeyword?: (node: TSESTree.TSStaticKeyword & ASTNodeWithParent) => void;
'TSStaticKeyword:exit'?: (node: TSESTree.TSStaticKeyword & ASTNodeWithParent) => void;
TSStringKeyword?: (node: TSESTree.TSStringKeyword & ASTNodeWithParent) => void;
'TSStringKeyword:exit'?: (node: TSESTree.TSStringKeyword & ASTNodeWithParent) => void;
TSSymbolKeyword?: (node: TSESTree.TSSymbolKeyword & ASTNodeWithParent) => void;
'TSSymbolKeyword:exit'?: (node: TSESTree.TSSymbolKeyword & ASTNodeWithParent) => void;
TSTemplateLiteralType?: (node: TSESTree.TSTemplateLiteralType & ASTNodeWithParent) => void;
'TSTemplateLiteralType:exit'?: (node: TSESTree.TSTemplateLiteralType & ASTNodeWithParent) => void;
TSThisType?: (node: TSESTree.TSThisType & ASTNodeWithParent) => void;
'TSThisType:exit'?: (node: TSESTree.TSThisType & ASTNodeWithParent) => void;
TSTupleType?: (node: TSESTree.TSTupleType & ASTNodeWithParent) => void;
'TSTupleType:exit'?: (node: TSESTree.TSTupleType & ASTNodeWithParent) => void;
TSTypeAliasDeclaration?: (node: TSESTree.TSTypeAliasDeclaration & ASTNodeWithParent) => void;
'TSTypeAliasDeclaration:exit'?: (
node: TSESTree.TSTypeAliasDeclaration & ASTNodeWithParent
) => void;
TSTypeAnnotation?: (node: TSESTree.TSTypeAnnotation & ASTNodeWithParent) => void;
'TSTypeAnnotation:exit'?: (node: TSESTree.TSTypeAnnotation & ASTNodeWithParent) => void;
TSTypeAssertion?: (node: TSESTree.TSTypeAssertion & ASTNodeWithParent) => void;
'TSTypeAssertion:exit'?: (node: TSESTree.TSTypeAssertion & ASTNodeWithParent) => void;
TSTypeLiteral?: (node: TSESTree.TSTypeLiteral & ASTNodeWithParent) => void;
'TSTypeLiteral:exit'?: (node: TSESTree.TSTypeLiteral & ASTNodeWithParent) => void;
TSTypeOperator?: (node: TSESTree.TSTypeOperator & ASTNodeWithParent) => void;
'TSTypeOperator:exit'?: (node: TSESTree.TSTypeOperator & ASTNodeWithParent) => void;
TSTypeParameter?: (node: TSESTree.TSTypeParameter & ASTNodeWithParent) => void;
'TSTypeParameter:exit'?: (node: TSESTree.TSTypeParameter & ASTNodeWithParent) => void;
TSTypeParameterDeclaration?: (
node: TSESTree.TSTypeParameterDeclaration & ASTNodeWithParent
) => void;
'TSTypeParameterDeclaration:exit'?: (
node: TSESTree.TSTypeParameterDeclaration & ASTNodeWithParent
) => void;
TSTypeParameterInstantiation?: (
node: TSESTree.TSTypeParameterInstantiation & ASTNodeWithParent
) => void;
'TSTypeParameterInstantiation:exit'?: (
node: TSESTree.TSTypeParameterInstantiation & ASTNodeWithParent
) => void;
TSTypePredicate?: (node: TSESTree.TSTypePredicate & ASTNodeWithParent) => void;
'TSTypePredicate:exit'?: (node: TSESTree.TSTypePredicate & ASTNodeWithParent) => void;
TSTypeQuery?: (node: TSESTree.TSTypeQuery & ASTNodeWithParent) => void;
'TSTypeQuery:exit'?: (node: TSESTree.TSTypeQuery & ASTNodeWithParent) => void;
TSTypeReference?: (node: TSESTree.TSTypeReference & ASTNodeWithParent) => void;
'TSTypeReference:exit'?: (node: TSESTree.TSTypeReference & ASTNodeWithParent) => void;
TSUndefinedKeyword?: (node: TSESTree.TSUndefinedKeyword & ASTNodeWithParent) => void;
'TSUndefinedKeyword:exit'?: (node: TSESTree.TSUndefinedKeyword & ASTNodeWithParent) => void;
TSUnionType?: (node: TSESTree.TSUnionType & ASTNodeWithParent) => void;
'TSUnionType:exit'?: (node: TSESTree.TSUnionType & ASTNodeWithParent) => void;
TSUnknownKeyword?: (node: TSESTree.TSUnknownKeyword & ASTNodeWithParent) => void;
'TSUnknownKeyword:exit'?: (node: TSESTree.TSUnknownKeyword & ASTNodeWithParent) => void;
TSVoidKeyword?: (node: TSESTree.TSVoidKeyword & ASTNodeWithParent) => void;
'TSVoidKeyword:exit'?: (node: TSESTree.TSVoidKeyword & ASTNodeWithParent) => void;
Program?: (node: AST.SvelteProgram & ASTNodeWithParent) => void;
'Program:exit'?: (node: AST.SvelteProgram & ASTNodeWithParent) => void;
SvelteScriptElement?: (node: AST.SvelteScriptElement & ASTNodeWithParent) => void;
'SvelteScriptElement:exit'?: (node: AST.SvelteScriptElement & ASTNodeWithParent) => void;
SvelteStyleElement?: (node: AST.SvelteStyleElement & ASTNodeWithParent) => void;
'SvelteStyleElement:exit'?: (node: AST.SvelteStyleElement & ASTNodeWithParent) => void;
SvelteElement?: (node: AST.SvelteElement & ASTNodeWithParent) => void;
'SvelteElement:exit'?: (node: AST.SvelteElement & ASTNodeWithParent) => void;
SvelteStartTag?: (node: AST.SvelteStartTag & ASTNodeWithParent) => void;
'SvelteStartTag:exit'?: (node: AST.SvelteStartTag & ASTNodeWithParent) => void;
SvelteEndTag?: (node: AST.SvelteEndTag & ASTNodeWithParent) => void;
'SvelteEndTag:exit'?: (node: AST.SvelteEndTag & ASTNodeWithParent) => void;
SvelteName?: (node: AST.SvelteName & ASTNodeWithParent) => void;
'SvelteName:exit'?: (node: AST.SvelteName & ASTNodeWithParent) => void;
SvelteMemberExpressionName?: (node: AST.SvelteMemberExpressionName & ASTNodeWithParent) => void;
'SvelteMemberExpressionName:exit'?: (
node: AST.SvelteMemberExpressionName & ASTNodeWithParent
) => void;
SvelteLiteral?: (node: AST.SvelteLiteral & ASTNodeWithParent) => void;
'SvelteLiteral:exit'?: (node: AST.SvelteLiteral & ASTNodeWithParent) => void;
SvelteMustacheTag?: (node: AST.SvelteMustacheTag & ASTNodeWithParent) => void;
'SvelteMustacheTag:exit'?: (node: AST.SvelteMustacheTag & ASTNodeWithParent) => void;
SvelteDebugTag?: (node: AST.SvelteDebugTag & ASTNodeWithParent) => void;
'SvelteDebugTag:exit'?: (node: AST.SvelteDebugTag & ASTNodeWithParent) => void;
SvelteConstTag?: (node: AST.SvelteConstTag & ASTNodeWithParent) => void;
'SvelteConstTag:exit'?: (node: AST.SvelteConstTag & ASTNodeWithParent) => void;
SvelteRenderTag?: (node: AST.SvelteRenderTag & ASTNodeWithParent) => void;
'SvelteRenderTag:exit'?: (node: AST.SvelteRenderTag & ASTNodeWithParent) => void;
SvelteIfBlock?: (node: AST.SvelteIfBlock & ASTNodeWithParent) => void;
'SvelteIfBlock:exit'?: (node: AST.SvelteIfBlock & ASTNodeWithParent) => void;
SvelteElseBlock?: (node: AST.SvelteElseBlock & ASTNodeWithParent) => void;
'SvelteElseBlock:exit'?: (node: AST.SvelteElseBlock & ASTNodeWithParent) => void;
SvelteEachBlock?: (node: AST.SvelteEachBlock & ASTNodeWithParent) => void;
'SvelteEachBlock:exit'?: (node: AST.SvelteEachBlock & ASTNodeWithParent) => void;
SvelteAwaitBlock?: (node: AST.SvelteAwaitBlock & ASTNodeWithParent) => void;
'SvelteAwaitBlock:exit'?: (node: AST.SvelteAwaitBlock & ASTNodeWithParent) => void;
SvelteAwaitPendingBlock?: (node: AST.SvelteAwaitPendingBlock & ASTNodeWithParent) => void;
'SvelteAwaitPendingBlock:exit'?: (node: AST.SvelteAwaitPendingBlock & ASTNodeWithParent) => void;
SvelteAwaitThenBlock?: (node: AST.SvelteAwaitThenBlock & ASTNodeWithParent) => void;
'SvelteAwaitThenBlock:exit'?: (node: AST.SvelteAwaitThenBlock & ASTNodeWithParent) => void;
SvelteAwaitCatchBlock?: (node: AST.SvelteAwaitCatchBlock & ASTNodeWithParent) => void;
'SvelteAwaitCatchBlock:exit'?: (node: AST.SvelteAwaitCatchBlock & ASTNodeWithParent) => void;
SvelteKeyBlock?: (node: AST.SvelteKeyBlock & ASTNodeWithParent) => void;
'SvelteKeyBlock:exit'?: (node: AST.SvelteKeyBlock & ASTNodeWithParent) => void;
SvelteSnippetBlock?: (node: AST.SvelteSnippetBlock & ASTNodeWithParent) => void;
'SvelteSnippetBlock:exit'?: (node: AST.SvelteSnippetBlock & ASTNodeWithParent) => void;
SvelteAttribute?: (node: AST.SvelteAttribute & ASTNodeWithParent) => void;
'SvelteAttribute:exit'?: (node: AST.SvelteAttribute & ASTNodeWithParent) => void;
SvelteShorthandAttribute?: (node: AST.SvelteShorthandAttribute & ASTNodeWithParent) => void;
'SvelteShorthandAttribute:exit'?: (
node: AST.SvelteShorthandAttribute & ASTNodeWithParent
) => void;
SvelteSpreadAttribute?: (node: AST.SvelteSpreadAttribute & ASTNodeWithParent) => void;
'SvelteSpreadAttribute:exit'?: (node: AST.SvelteSpreadAttribute & ASTNodeWithParent) => void;
SvelteAttachTag?: (node: AST.SvelteAttachTag & ASTNodeWithParent) => void;
'SvelteAttachTag:exit'?: (node: AST.SvelteAttachTag & ASTNodeWithParent) => void;
SvelteDirective?: (node: AST.SvelteDirective & ASTNodeWithParent) => void;
'SvelteDirective:exit'?: (node: AST.SvelteDirective & ASTNodeWithParent) => void;
SvelteStyleDirective?: (node: AST.SvelteStyleDirective & ASTNodeWithParent) => void;
'SvelteStyleDirective:exit'?: (node: AST.SvelteStyleDirective & ASTNodeWithParent) => void;
SvelteSpecialDirective?: (node: AST.SvelteSpecialDirective & ASTNodeWithParent) => void;
'SvelteSpecialDirective:exit'?: (node: AST.SvelteSpecialDirective & ASTNodeWithParent) => void;
SvelteGenericsDirective?: (node: AST.SvelteGenericsDirective & ASTNodeWithParent) => void;
'SvelteGenericsDirective:exit'?: (node: AST.SvelteGenericsDirective & ASTNodeWithParent) => void;
SvelteDirectiveKey?: (node: AST.SvelteDirectiveKey & ASTNodeWithParent) => void;
'SvelteDirectiveKey:exit'?: (node: AST.SvelteDirectiveKey & ASTNodeWithParent) => void;
SvelteSpecialDirectiveKey?: (node: AST.SvelteSpecialDirectiveKey & ASTNodeWithParent) => void;
'SvelteSpecialDirectiveKey:exit'?: (
node: AST.SvelteSpecialDirectiveKey & ASTNodeWithParent
) => void;
SvelteText?: (node: AST.SvelteText & ASTNodeWithParent) => void;
'SvelteText:exit'?: (node: AST.SvelteText & ASTNodeWithParent) => void;
SvelteHTMLComment?: (node: AST.SvelteHTMLComment & ASTNodeWithParent) => void;
'SvelteHTMLComment:exit'?: (node: AST.SvelteHTMLComment & ASTNodeWithParent) => void;
SvelteReactiveStatement?: (node: AST.SvelteReactiveStatement & ASTNodeWithParent) => void;
'SvelteReactiveStatement:exit'?: (node: AST.SvelteReactiveStatement & ASTNodeWithParent) => void;
SvelteFunctionBindingsExpression?: (
node: AST.SvelteFunctionBindingsExpression & ASTNodeWithParent
) => void;
'SvelteFunctionBindingsExpression:exit'?: (
node: AST.SvelteFunctionBindingsExpression & ASTNodeWithParent
) => void;
};
export type ESNodeListener = {
AccessorProperty?: (node: TSESTree.AccessorProperty & ASTNodeWithParent) => void;
'AccessorProperty:exit'?: (node: TSESTree.AccessorProperty & ASTNodeWithParent) => void;
ArrayExpression?: (node: TSESTree.ArrayExpression & ASTNodeWithParent) => void;
'ArrayExpression:exit'?: (node: TSESTree.ArrayExpression & ASTNodeWithParent) => void;
ArrayPattern?: (node: TSESTree.ArrayPattern & ASTNodeWithParent) => void;
'ArrayPattern:exit'?: (node: TSESTree.ArrayPattern & ASTNodeWithParent) => void;
ArrowFunctionExpression?: (node: TSESTree.ArrowFunctionExpression & ASTNodeWithParent) => void;
'ArrowFunctionExpression:exit'?: (
node: TSESTree.ArrowFunctionExpression & ASTNodeWithParent
) => void;
AssignmentExpression?: (node: TSESTree.AssignmentExpression & ASTNodeWithParent) => void;
'AssignmentExpression:exit'?: (node: TSESTree.AssignmentExpression & ASTNodeWithParent) => void;
AssignmentPattern?: (node: TSESTree.AssignmentPattern & ASTNodeWithParent) => void;
'AssignmentPattern:exit'?: (node: TSESTree.AssignmentPattern & ASTNodeWithParent) => void;
AwaitExpression?: (node: TSESTree.AwaitExpression & ASTNodeWithParent) => void;
'AwaitExpression:exit'?: (node: TSESTree.AwaitExpression & ASTNodeWithParent) => void;
BinaryExpression?: (node: TSESTree.BinaryExpression & ASTNodeWithParent) => void;
'BinaryExpression:exit'?: (node: TSESTree.BinaryExpression & ASTNodeWithParent) => void;
BlockStatement?: (node: TSESTree.BlockStatement & ASTNodeWithParent) => void;
'BlockStatement:exit'?: (node: TSESTree.BlockStatement & ASTNodeWithParent) => void;
BreakStatement?: (node: TSESTree.BreakStatement & ASTNodeWithParent) => void;
'BreakStatement:exit'?: (node: TSESTree.BreakStatement & ASTNodeWithParent) => void;
CallExpression?: (node: TSESTree.CallExpression & ASTNodeWithParent) => void;
'CallExpression:exit'?: (node: TSESTree.CallExpression & ASTNodeWithParent) => void;
CatchClause?: (node: TSESTree.CatchClause & ASTNodeWithParent) => void;
'CatchClause:exit'?: (node: TSESTree.CatchClause & ASTNodeWithParent) => void;
ChainExpression?: (node: TSESTree.ChainExpression & ASTNodeWithParent) => void;
'ChainExpression:exit'?: (node: TSESTree.ChainExpression & ASTNodeWithParent) => void;
ClassBody?: (node: TSESTree.ClassBody & ASTNodeWithParent) => void;
'ClassBody:exit'?: (node: TSESTree.ClassBody & ASTNodeWithParent) => void;
ClassDeclaration?: (node: TSESTree.ClassDeclaration & ASTNodeWithParent) => void;
'ClassDeclaration:exit'?: (node: TSESTree.ClassDeclaration & ASTNodeWithParent) => void;
ClassExpression?: (node: TSESTree.ClassExpression & ASTNodeWithParent) => void;
'ClassExpression:exit'?: (node: TSESTree.ClassExpression & ASTNodeWithParent) => void;
ConditionalExpression?: (node: TSESTree.ConditionalExpression & ASTNodeWithParent) => void;
'ConditionalExpression:exit'?: (node: TSESTree.ConditionalExpression & ASTNodeWithParent) => void;
ContinueStatement?: (node: TSESTree.ContinueStatement & ASTNodeWithParent) => void;
'ContinueStatement:exit'?: (node: TSESTree.ContinueStatement & ASTNodeWithParent) => void;
DebuggerStatement?: (node: TSESTree.DebuggerStatement & ASTNodeWithParent) => void;
'DebuggerStatement:exit'?: (node: TSESTree.DebuggerStatement & ASTNodeWithParent) => void;
DoWhileStatement?: (node: TSESTree.DoWhileStatement & ASTNodeWithParent) => void;
'DoWhileStatement:exit'?: (node: TSESTree.DoWhileStatement & ASTNodeWithParent) => void;
EmptyStatement?: (node: TSESTree.EmptyStatement & ASTNodeWithParent) => void;
'EmptyStatement:exit'?: (node: TSESTree.EmptyStatement & ASTNodeWithParent) => void;
ExportAllDeclaration?: (node: TSESTree.ExportAllDeclaration & ASTNodeWithParent) => void;
'ExportAllDeclaration:exit'?: (node: TSESTree.ExportAllDeclaration & ASTNodeWithParent) => void;
ExportDefaultDeclaration?: (node: TSESTree.ExportDefaultDeclaration & ASTNodeWithParent) => void;
'ExportDefaultDeclaration:exit'?: (
node: TSESTree.ExportDefaultDeclaration & ASTNodeWithParent
) => void;
ExportNamedDeclaration?: (node: TSESTree.ExportNamedDeclaration & ASTNodeWithParent) => void;
'ExportNamedDeclaration:exit'?: (
node: TSESTree.ExportNamedDeclaration & ASTNodeWithParent
) => void;
ExportSpecifier?: (node: TSESTree.ExportSpecifier & ASTNodeWithParent) => void;
'ExportSpecifier:exit'?: (node: TSESTree.ExportSpecifier & ASTNodeWithParent) => void;
ExpressionStatement?: (node: TSESTree.ExpressionStatement & ASTNodeWithParent) => void;
'ExpressionStatement:exit'?: (node: TSESTree.ExpressionStatement & ASTNodeWithParent) => void;
ForInStatement?: (node: TSESTree.ForInStatement & ASTNodeWithParent) => void;
'ForInStatement:exit'?: (node: TSESTree.ForInStatement & ASTNodeWithParent) => void;
ForOfStatement?: (node: TSESTree.ForOfStatement & ASTNodeWithParent) => void;
'ForOfStatement:exit'?: (node: TSESTree.ForOfStatement & ASTNodeWithParent) => void;
ForStatement?: (node: TSESTree.ForStatement & ASTNodeWithParent) => void;
'ForStatement:exit'?: (node: TSESTree.ForStatement & ASTNodeWithParent) => void;
FunctionDeclaration?: (node: TSESTree.FunctionDeclaration & ASTNodeWithParent) => void;
'FunctionDeclaration:exit'?: (node: TSESTree.FunctionDeclaration & ASTNodeWithParent) => void;
FunctionExpression?: (node: TSESTree.FunctionExpression & ASTNodeWithParent) => void;
'FunctionExpression:exit'?: (node: TSESTree.FunctionExpression & ASTNodeWithParent) => void;
Identifier?: (node: TSESTree.Identifier & ASTNodeWithParent) => void;
'Identifier:exit'?: (node: TSESTree.Identifier & ASTNodeWithParent) => void;
IfStatement?: (node: TSESTree.IfStatement & ASTNodeWithParent) => void;
'IfStatement:exit'?: (node: TSESTree.IfStatement & ASTNodeWithParent) => void;
ImportDeclaration?: (node: TSESTree.ImportDeclaration & ASTNodeWithParent) => void;
'ImportDeclaration:exit'?: (node: TSESTree.ImportDeclaration & ASTNodeWithParent) => void;
ImportDefaultSpecifier?: (node: TSESTree.ImportDefaultSpecifier & ASTNodeWithParent) => void;
'ImportDefaultSpecifier:exit'?: (
node: TSESTree.ImportDefaultSpecifier & ASTNodeWithParent
) => void;
ImportExpression?: (node: TSESTree.ImportExpression & ASTNodeWithParent) => void;
'ImportExpression:exit'?: (node: TSESTree.ImportExpression & ASTNodeWithParent) => void;
ImportNamespaceSpecifier?: (node: TSESTree.ImportNamespaceSpecifier & ASTNodeWithParent) => void;
'ImportNamespaceSpecifier:exit'?: (
node: TSESTree.ImportNamespaceSpecifier & ASTNodeWithParent
) => void;
ImportSpecifier?: (node: TSESTree.ImportSpecifier & ASTNodeWithParent) => void;
'ImportSpecifier:exit'?: (node: TSESTree.ImportSpecifier & ASTNodeWithParent) => void;
LabeledStatement?: (node: TSESTree.LabeledStatement & ASTNodeWithParent) => void;
'LabeledStatement:exit'?: (node: TSESTree.LabeledStatement & ASTNodeWithParent) => void;
Literal?: (node: TSESTree.Literal & ASTNodeWithParent) => void;
'Literal:exit'?: (node: TSESTree.Literal & ASTNodeWithParent) => void;
LogicalExpression?: (node: TSESTree.LogicalExpression & ASTNodeWithParent) => void;
'LogicalExpression:exit'?: (node: TSESTree.LogicalExpression & ASTNodeWithParent) => void;
MemberExpression?: (node: TSESTree.MemberExpression & ASTNodeWithParent) => void;
'MemberExpression:exit'?: (node: TSESTree.MemberExpression & ASTNodeWithParent) => void;
MetaProperty?: (node: TSESTree.MetaProperty & ASTNodeWithParent) => void;
'MetaProperty:exit'?: (node: TSESTree.MetaProperty & ASTNodeWithParent) => void;
MethodDefinition?: (node: TSESTree.MethodDefinition & ASTNodeWithParent) => void;
'MethodDefinition:exit'?: (node: TSESTree.MethodDefinition & ASTNodeWithParent) => void;
NewExpression?: (node: TSESTree.NewExpression & ASTNodeWithParent) => void;
'NewExpression:exit'?: (node: TSESTree.NewExpression & ASTNodeWithParent) => void;
ObjectExpression?: (node: TSESTree.ObjectExpression & ASTNodeWithParent) => void;
'ObjectExpression:exit'?: (node: TSESTree.ObjectExpression & ASTNodeWithParent) => void;
ObjectPattern?: (node: TSESTree.ObjectPattern & ASTNodeWithParent) => void;
'ObjectPattern:exit'?: (node: TSESTree.ObjectPattern & ASTNodeWithParent) => void;
PrivateIdentifier?: (node: TSESTree.PrivateIdentifier & ASTNodeWithParent) => void;
'PrivateIdentifier:exit'?: (node: TSESTree.PrivateIdentifier & ASTNodeWithParent) => void;
Property?: (node: TSESTree.Property & ASTNodeWithParent) => void;
'Property:exit'?: (node: TSESTree.Property & ASTNodeWithParent) => void;
PropertyDefinition?: (node: TSESTree.PropertyDefinition & ASTNodeWithParent) => void;
'PropertyDefinition:exit'?: (node: TSESTree.PropertyDefinition & ASTNodeWithParent) => void;
RestElement?: (node: TSESTree.RestElement & ASTNodeWithParent) => void;
'RestElement:exit'?: (node: TSESTree.RestElement & ASTNodeWithParent) => void;
ReturnStatement?: (node: TSESTree.ReturnStatement & ASTNodeWithParent) => void;
'ReturnStatement:exit'?: (node: TSESTree.ReturnStatement & ASTNodeWithParent) => void;
SequenceExpression?: (node: TSESTree.SequenceExpression & ASTNodeWithParent) => void;
'SequenceExpression:exit'?: (node: TSESTree.SequenceExpression & ASTNodeWithParent) => void;
SpreadElement?: (node: TSESTree.SpreadElement & ASTNodeWithParent) => void;
'SpreadElement:exit'?: (node: TSESTree.SpreadElement & ASTNodeWithParent) => void;
Super?: (node: TSESTree.Super & ASTNodeWithParent) => void;
'Super:exit'?: (node: TSESTree.Super & ASTNodeWithParent) => void;
SwitchCase?: (node: TSESTree.SwitchCase & ASTNodeWithParent) => void;
'SwitchCase:exit'?: (node: TSESTree.SwitchCase & ASTNodeWithParent) => void;
SwitchStatement?: (node: TSESTree.SwitchStatement & ASTNodeWithParent) => void;
'SwitchStatement:exit'?: (node: TSESTree.SwitchStatement & ASTNodeWithParent) => void;
TaggedTemplateExpression?: (node: TSESTree.TaggedTemplateExpression & ASTNodeWithParent) => void;
'TaggedTemplateExpression:exit'?: (
node: TSESTree.TaggedTemplateExpression & ASTNodeWithParent
) => void;
TemplateElement?: (node: TSESTree.TemplateElement & ASTNodeWithParent) => void;
'TemplateElement:exit'?: (node: TSESTree.TemplateElement & ASTNodeWithParent) => void;
TemplateLiteral?: (node: TSESTree.TemplateLiteral & ASTNodeWithParent) => void;
'TemplateLiteral:exit'?: (node: TSESTree.TemplateLiteral & ASTNodeWithParent) => void;
ThisExpression?: (node: TSESTree.ThisExpression & ASTNodeWithParent) => void;
'ThisExpression:exit'?: (node: TSESTree.ThisExpression & ASTNodeWithParent) => void;
ThrowStatement?: (node: TSESTree.ThrowStatement & ASTNodeWithParent) => void;
'ThrowStatement:exit'?: (node: TSESTree.ThrowStatement & ASTNodeWithParent) => void;
TryStatement?: (node: TSESTree.TryStatement & ASTNodeWithParent) => void;
'TryStatement:exit'?: (node: TSESTree.TryStatement & ASTNodeWithParent) => void;
UnaryExpression?: (node: TSESTree.UnaryExpression & ASTNodeWithParent) => void;
'UnaryExpression:exit'?: (node: TSESTree.UnaryExpression & ASTNodeWithParent) => void;
UpdateExpression?: (node: TSESTree.UpdateExpression & ASTNodeWithParent) => void;
'UpdateExpression:exit'?: (node: TSESTree.UpdateExpression & ASTNodeWithParent) => void;
VariableDeclaration?: (node: TSESTree.VariableDeclaration & ASTNodeWithParent) => void;
'VariableDeclaration:exit'?: (node: TSESTree.VariableDeclaration & ASTNodeWithParent) => void;
VariableDeclarator?: (node: TSESTree.VariableDeclarator & ASTNodeWithParent) => void;
'VariableDeclarator:exit'?: (node: TSESTree.VariableDeclarator & ASTNodeWithParent) => void;
WhileStatement?: (node: TSESTree.WhileStatement & ASTNodeWithParent) => void;
'WhileStatement:exit'?: (node: TSESTree.WhileStatement & ASTNodeWithParent) => void;
WithStatement?: (node: TSESTree.WithStatement & ASTNodeWithParent) => void;
'WithStatement:exit'?: (node: TSESTree.WithStatement & ASTNodeWithParent) => void;
YieldExpression?: (node: TSESTree.YieldExpression & ASTNodeWithParent) => void;
'YieldExpression:exit'?: (node: TSESTree.YieldExpression & ASTNodeWithParent) => void;
Program?: (node: AST.SvelteProgram & ASTNodeWithParent) => void;
'Program:exit'?: (node: AST.SvelteProgram & ASTNodeWithParent) => void;
SvelteReactiveStatement?: (node: AST.SvelteReactiveStatement & ASTNodeWithParent) => void;
'SvelteReactiveStatement:exit'?: (node: AST.SvelteReactiveStatement & ASTNodeWithParent) => void;
};
export type TSNodeListener = {
Decorator?: (node: TSESTree.Decorator & ASTNodeWithParent) => void;
'Decorator:exit'?: (node: TSESTree.Decorator & ASTNodeWithParent) => void;
ImportAttribute?: (node: TSESTree.ImportAttribute & ASTNodeWithParent) => void;
'ImportAttribute:exit'?: (node: TSESTree.ImportAttribute & ASTNodeWithParent) => void;
StaticBlock?: (node: TSESTree.StaticBlock & ASTNodeWithParent) => void;
'StaticBlock:exit'?: (node: TSESTree.StaticBlock & ASTNodeWithParent) => void;
TSAbstractAccessorProperty?: (
node: TSESTree.TSAbstractAccessorProperty & ASTNodeWithParent
) => void;
'TSAbstractAccessorProperty:exit'?: (
node: TSESTree.TSAbstractAccessorProperty & ASTNodeWithParent
) => void;
TSAbstractKeyword?: (node: TSESTree.TSAbstractKeyword & ASTNodeWithParent) => void;
'TSAbstractKeyword:exit'?: (node: TSESTree.TSAbstractKeyword & ASTNodeWithParent) => void;
TSAbstractMethodDefinition?: (
node: TSESTree.TSAbstractMethodDefinition & ASTNodeWithParent
) => void;
'TSAbstractMethodDefinition:exit'?: (
node: TSESTree.TSAbstractMethodDefinition & ASTNodeWithParent
) => void;
TSAbstractPropertyDefinition?: (
node: TSESTree.TSAbstractPropertyDefinition & ASTNodeWithParent
) => void;
'TSAbstractPropertyDefinition:exit'?: (
node: TSESTree.TSAbstractPropertyDefinition & ASTNodeWithParent
) => void;
TSAnyKeyword?: (node: TSESTree.TSAnyKeyword & ASTNodeWithParent) => void;
'TSAnyKeyword:exit'?: (node: TSESTree.TSAnyKeyword & ASTNodeWithParent) => void;
TSArrayType?: (node: TSESTree.TSArrayType & ASTNodeWithParent) => void;
'TSArrayType:exit'?: (node: TSESTree.TSArrayType & ASTNodeWithParent) => void;
TSAsExpression?: (node: TSESTree.TSAsExpression & ASTNodeWithParent) => void;
'TSAsExpression:exit'?: (node: TSESTree.TSAsExpression & ASTNodeWithParent) => void;
TSAsyncKeyword?: (node: TSESTree.TSAsyncKeyword & ASTNodeWithParent) => void;
'TSAsyncKeyword:exit'?: (node: TSESTree.TSAsyncKeyword & ASTNodeWithParent) => void;
TSBigIntKeyword?: (node: TSESTree.TSBigIntKeyword & ASTNodeWithParent) => void;
'TSBigIntKeyword:exit'?: (node: TSESTree.TSBigIntKeyword & ASTNodeWithParent) => void;
TSBooleanKeyword?: (node: TSESTree.TSBooleanKeyword & ASTNodeWithParent) => void;
'TSBooleanKeyword:exit'?: (node: TSESTree.TSBooleanKeyword & ASTNodeWithParent) => void;
TSCallSignatureDeclaration?: (
node: TSESTree.TSCallSignatureDeclaration & ASTNodeWithParent
) => void;
'TSCallSignatureDeclaration:exit'?: (
node: TSESTree.TSCallSignatureDeclaration & ASTNodeWithParent
) => void;
TSClassImplements?: (node: TSESTree.TSClassImplements & ASTNodeWithParent) => void;
'TSClassImplements:exit'?: (node: TSESTree.TSClassImplements & ASTNodeWithParent) => void;
TSConditionalType?: (node: TSESTree.TSConditionalType & ASTNodeWithParent) => void;
'TSConditionalType:exit'?: (node: TSESTree.TSConditionalType & ASTNodeWithParent) => void;
TSConstructorType?: (node: TSESTree.TSConstructorType & ASTNodeWithParent) => void;
'TSConstructorType:exit'?: (node: TSESTree.TSConstructorType & ASTNodeWithParent) => void;
TSConstructSignatureDeclaration?: (
node: TSESTree.TSConstructSignatureDeclaration & ASTNodeWithParent
) => void;
'TSConstructSignatureDeclaration:exit'?: (
node: TSESTree.TSConstructSignatureDeclaration & ASTNodeWithParent
) => void;
TSDeclareFunction?: (node: TSESTree.TSDeclareFunction & ASTNodeWithParent) => void;
'TSDeclareFunction:exit'?: (node: TSESTree.TSDeclareFunction & ASTNodeWithParent) => void;
TSDeclareKeyword?: (node: TSESTree.TSDeclareKeyword & ASTNodeWithParent) => void;
'TSDeclareKeyword:exit'?: (node: TSESTree.TSDeclareKeyword & ASTNodeWithParent) => void;
TSEmptyBodyFunctionExpression?: (
node: TSESTree.TSEmptyBodyFunctionExpression & ASTNodeWithParent
) => void;
'TSEmptyBodyFunctionExpression:exit'?: (
node: TSESTree.TSEmptyBodyFunctionExpression & ASTNodeWithParent
) => void;
TSEnumBody?: (node: TSESTree.TSEnumBody & ASTNodeWithParent) => void;
'TSEnumBody:exit'?: (node: TSESTree.TSEnumBody & ASTNodeWithParent) => void;
TSEnumDeclaration?: (node: TSESTree.TSEnumDeclaration & ASTNodeWithParent) => void;
'TSEnumDeclaration:exit'?: (node: TSESTree.TSEnumDeclaration & ASTNodeWithParent) => void;
TSEnumMember?: (node: TSESTree.TSEnumMember & ASTNodeWithParent) => void;
'TSEnumMember:exit'?: (node: TSESTree.TSEnumMember & ASTNodeWithParent) => void;
TSExportAssignment?: (node: TSESTree.TSExportAssignment & ASTNodeWithParent) => void;
'TSExportAssignment:exit'?: (node: TSESTree.TSExportAssignment & ASTNodeWithParent) => void;
TSExportKeyword?: (node: TSESTree.TSExportKeyword & ASTNodeWithParent) => void;
'TSExportKeyword:exit'?: (node: TSESTree.TSExportKeyword & ASTNodeWithParent) => void;
TSExternalModuleReference?: (
node: TSESTree.TSExternalModuleReference & ASTNodeWithParent
) => void;
'TSExternalModuleReference:exit'?: (
node: TSESTree.TSExternalModuleReference & ASTNodeWithParent
) => void;
TSFunctionType?: (node: TSESTree.TSFunctionType & ASTNodeWithParent) => void;
'TSFunctionType:exit'?: (node: TSESTree.TSFunctionType & ASTNodeWithParent) => void;
TSImportEqualsDeclaration?: (
node: TSESTree.TSImportEqualsDeclaration & ASTNodeWithParent
) => void;
'TSImportEqualsDeclaration:exit'?: (
node: TSESTree.TSImportEqualsDeclaration & ASTNodeWithParent
) => void;
TSImportType?: (node: TSESTree.TSImportType & ASTNodeWithParent) => void;
'TSImportType:exit'?: (node: TSESTree.TSImportType & ASTNodeWithParent) => void;
TSIndexedAccessType?: (node: TSESTree.TSIndexedAccessType & ASTNodeWithParent) => void;
'TSIndexedAccessType:exit'?: (node: TSESTree.TSIndexedAccessType & ASTNodeWithParent) => void;
TSIndexSignature?: (node: TSESTree.TSIndexSignature & ASTNodeWithParent) => void;
'TSIndexSignature:exit'?: (node: TSESTree.TSIndexSignature & ASTNodeWithParent) => void;
TSInferType?: (node: TSESTree.TSInferType & ASTNodeWithParent) => void;
'TSInferType:exit'?: (node: TSESTree.TSInferType & ASTNodeWithParent) => void;
TSInstantiationExpression?: (
node: TSESTree.TSInstantiationExpression & ASTNodeWithParent
) => void;
'TSInstantiationExpression:exit'?: (
node: TSESTree.TSInstantiationExpression & ASTNodeWithParent
) => void;
TSInterfaceBody?: (node: TSESTree.TSInterfaceBody & ASTNodeWithParent) => void;
'TSInterfaceBody:exit'?: (node: TSESTree.TSInterfaceBody & ASTNodeWithParent) => void;
TSInterfaceDeclaration?: (node: TSESTree.TSInterfaceDeclaration & ASTNodeWithParent) => void;
'TSInterfaceDeclaration:exit'?: (
node: TSESTree.TSInterfaceDeclaration & ASTNodeWithParent
) => void;
TSInterfaceHeritage?: (node: TSESTree.TSInterfaceHeritage & ASTNodeWithParent) => void;
'TSInterfaceHeritage:exit'?: (node: TSESTree.TSInterfaceHeritage & ASTNodeWithParent) => void;
TSIntersectionType?: (node: TSESTree.TSIntersectionType & ASTNodeWithParent) => void;
'TSIntersectionType:exit'?: (node: TSESTree.TSIntersectionType & ASTNodeWithParent) => void;
TSIntrinsicKeyword?: (
node: TSESTree.Node & { type: AST_NODE_TYPES.TSIntrinsicKeyword } & ASTNodeWithParent
) => void;
'TSIntrinsicKeyword:exit'?: (
node: TSESTree.Node & { type: AST_NODE_TYPES.TSIntrinsicKeyword } & ASTNodeWithParent
) => void;
TSLiteralType?: (node: TSESTree.TSLiteralType & ASTNodeWithParent) => void;
'TSLiteralType:exit'?: (node: TSESTree.TSLiteralType & ASTNodeWithParent) => void;
TSMappedType?: (node: TSESTree.TSMappedType & ASTNodeWithParent) => void;
'TSMappedType:exit'?: (node: TSESTree.TSMappedType & ASTNodeWithParent) => void;
TSMethodSignature?: (node: TSESTree.TSMethodSignature & ASTNodeWithParent) => void;
'TSMethodSignature:exit'?: (node: TSESTree.TSMethodSignature & ASTNodeWithParent) => void;
TSModuleBlock?: (node: TSESTree.TSModuleBlock & ASTNodeWithParent) => void;
'TSModuleBlock:exit'?: (node: TSESTree.TSModuleBlock & ASTNodeWithParent) => void;
TSModuleDeclaration?: (node: TSESTree.TSModuleDeclaration & ASTNodeWithParent) => void;
'TSModuleDeclaration:exit'?: (node: TSESTree.TSModuleDeclaration & ASTNodeWithParent) => void;
TSNamedTupleMember?: (node: TSESTree.TSNamedTupleMember & ASTNodeWithParent) => void;
'TSNamedTupleMember:exit'?: (node: TSESTree.TSNamedTupleMember & ASTNodeWithParent) => void;
TSNamespaceExportDeclaration?: (
node: TSESTree.TSNamespaceExportDeclaration & ASTNodeWithParent
) => void;
'TSNamespaceExportDeclaration:exit'?: (
node: TSESTree.TSNamespaceExportDeclaration & ASTNodeWithParent
) => void;
TSNeverKeyword?: (node: TSESTree.TSNeverKeyword & ASTNodeWithParent) => void;
'TSNeverKeyword:exit'?: (node: TSESTree.TSNeverKeyword & ASTNodeWithParent) => void;
TSNonNullExpression?: (node: TSESTree.TSNonNullExpression & ASTNodeWithParent) => void;
'TSNonNullExpression:exit'?: (node: TSESTree.TSNonNullExpression & ASTNodeWithParent) => void;
TSNullKeyword?: (node: TSESTree.TSNullKeyword & ASTNodeWithParent) => void;
'TSNullKeyword:exit'?: (node: TSESTree.TSNullKeyword & ASTNodeWithParent) => void;
TSNumberKeyword?: (node: TSESTree.TSNumberKeyword & ASTNodeWithParent) => void;
'TSNumberKeyword:exit'?: (node: TSESTree.TSNumberKeyword & ASTNodeWithParent) => void;
TSObjectKeyword?: (node: TSESTree.TSObjectKeyword & ASTNodeWithParent) => void;
'TSObjectKeyword:exit'?: (node: TSESTree.TSObjectKeyword & ASTNodeWithParent) => void;
TSOptionalType?: (node: TSESTree.TSOptionalType & ASTNodeWithParent) => void;
'TSOptionalType:exit'?: (node: TSESTree.TSOptionalType & ASTNodeWithParent) => void;
TSParameterProperty?: (node: TSESTree.TSParameterProperty & ASTNodeWithParent) => void;
'TSParameterProperty:exit'?: (node: TSESTree.TSParameterProperty & ASTNodeWithParent) => void;
TSPrivateKeyword?: (node: TSESTree.TSPrivateKeyword & ASTNodeWithParent) => void;
'TSPrivateKeyword:exit'?: (node: TSESTree.TSPrivateKeyword & ASTNodeWithParent) => void;
TSPropertySignature?: (node: TSESTree.TSPropertySignature & ASTNodeWithParent) => void;
'TSPropertySignature:exit'?: (node: TSESTree.TSPropertySignature & ASTNodeWithParent) => void;
TSProtectedKeyword?: (node: TSESTree.TSProtectedKeyword & ASTNodeWithParent) => void;
'TSProtectedKeyword:exit'?: (node: TSESTree.TSProtectedKeyword & ASTNodeWithParent) => void;
TSPublicKeyword?: (node: TSESTree.TSPublicKeyword & ASTNodeWithParent) => void;
'TSPublicKeyword:exit'?: (node: TSESTree.TSPublicKeyword & ASTNodeWithParent) => void;
TSQualifiedName?: (node: TSESTree.TSQualifiedName & ASTNodeWithParent) => void;
'TSQualifiedName:exit'?: (node: TSESTree.TSQualifiedName & ASTNodeWithParent) => void;
TSReadonlyKeyword?: (node: TSESTree.TSReadonlyKeyword & ASTNodeWithParent) => void;
'TSReadonlyKeyword:exit'?: (node: TSESTree.TSReadonlyKeyword & ASTNodeWithParent) => void;
TSRestType?: (node: TSESTree.TSRestType & ASTNodeWithParent) => void;
'TSRestType:exit'?: (node: TSESTree.TSRestType & ASTNodeWithParent) => void;
TSSatisfiesExpression?: (node: TSESTree.TSSatisfiesExpression & ASTNodeWithParent) => void;
'TSSatisfiesExpression:exit'?: (node: TSESTree.TSSatisfiesExpression & ASTNodeWithParent) => void;
TSStaticKeyword?: (node: TSESTree.TSStaticKeyword & ASTNodeWithParent) => void;
'TSStaticKeyword:exit'?: (node: TSESTree.TSStaticKeyword & ASTNodeWithParent) => void;
TSStringKeyword?: (node: TSESTree.TSStringKeyword & ASTNodeWithParent) => void;
'TSStringKeyword:exit'?: (node: TSESTree.TSStringKeyword & ASTNodeWithParent) => void;
TSSymbolKeyword?: (node: TSESTree.TSSymbolKeyword & ASTNodeWithParent) => void;
'TSSymbolKeyword:exit'?: (node: TSESTree.TSSymbolKeyword & ASTNodeWithParent) => void;
TSTemplateLiteralType?: (node: TSESTree.TSTemplateLiteralType & ASTNodeWithParent) => void;
'TSTemplateLiteralType:exit'?: (node: TSESTree.TSTemplateLiteralType & ASTNodeWithParent) => void;
TSThisType?: (node: TSESTree.TSThisType & ASTNodeWithParent) => void;
'TSThisType:exit'?: (node: TSESTree.TSThisType & ASTNodeWithParent) => void;
TSTupleType?: (node: TSESTree.TSTupleType & ASTNodeWithParent) => void;
'TSTupleType:exit'?: (node: TSESTree.TSTupleType & ASTNodeWithParent) => void;
TSTypeAliasDeclaration?: (node: TSESTree.TSTypeAliasDeclaration & ASTNodeWithParent) => void;
'TSTypeAliasDeclaration:exit'?: (
node: TSESTree.TSTypeAliasDeclaration & ASTNodeWithParent
) => void;
TSTypeAnnotation?: (node: TSESTree.TSTypeAnnotation & ASTNodeWithParent) => void;
'TSTypeAnnotation:exit'?: (node: TSESTree.TSTypeAnnotation & ASTNodeWithParent) => void;
TSTypeAssertion?: (node: TSESTree.TSTypeAssertion & ASTNodeWithParent) => void;
'TSTypeAssertion:exit'?: (node: TSESTree.TSTypeAssertion & ASTNodeWithParent) => void;
TSTypeLiteral?: (node: TSESTree.TSTypeLiteral & ASTNodeWithParent) => void;
'TSTypeLiteral:exit'?: (node: TSESTree.TSTypeLiteral & ASTNodeWithParent) => void;
TSTypeOperator?: (node: TSESTree.TSTypeOperator & ASTNodeWithParent) => void;
'TSTypeOperator:exit'?: (node: TSESTree.TSTypeOperator & ASTNodeWithParent) => void;
TSTypeParameter?: (node: TSESTree.TSTypeParameter & ASTNodeWithParent) => void;
'TSTypeParameter:exit'?: (node: TSESTree.TSTypeParameter & ASTNodeWithParent) => void;
TSTypeParameterDeclaration?: (
node: TSESTree.TSTypeParameterDeclaration & ASTNodeWithParent
) => void;
'TSTypeParameterDeclaration:exit'?: (
node: TSESTree.TSTypeParameterDeclaration & ASTNodeWithParent
) => void;
TSTypeParameterInstantiation?: (
node: TSESTree.TSTypeParameterInstantiation & ASTNodeWithParent
) => void;
'TSTypeParameterInstantiation:exit'?: (
node: TSESTree.TSTypeParameterInstantiation & ASTNodeWithParent
) => void;
TSTypePredicate?: (node: TSESTree.TSTypePredicate & ASTNodeWithParent) => void;
'TSTypePredicate:exit'?: (node: TSESTree.TSTypePredicate & ASTNodeWithParent) => void;
TSTypeQuery?: (node: TSESTree.TSTypeQuery & ASTNodeWithParent) => void;
'TSTypeQuery:exit'?: (node: TSESTree.TSTypeQuery & ASTNodeWithParent) => void;
TSTypeReference?: (node: TSESTree.TSTypeReference & ASTNodeWithParent) => void;
'TSTypeReference:exit'?: (node: TSESTree.TSTypeReference & ASTNodeWithParent) => void;
TSUndefinedKeyword?: (node: TSESTree.TSUndefinedKeyword & ASTNodeWithParent) => void;
'TSUndefinedKeyword:exit'?: (node: TSESTree.TSUndefinedKeyword & ASTNodeWithParent) => void;
TSUnionType?: (node: TSESTree.TSUnionType & ASTNodeWithParent) => void;
'TSUnionType:exit'?: (node: TSESTree.TSUnionType & ASTNodeWithParent) => void;
TSUnknownKeyword?: (node: TSESTree.TSUnknownKeyword & ASTNodeWithParent) => void;
'TSUnknownKeyword:exit'?: (node: TSESTree.TSUnknownKeyword & ASTNodeWithParent) => void;
TSVoidKeyword?: (node: TSESTree.TSVoidKeyword & ASTNodeWithParent) => void;
'TSVoidKeyword:exit'?: (node: TSESTree.TSVoidKeyword & ASTNodeWithParent) => void;
};
export type SvelteNodeListener = {
SvelteScriptElement?: (node: AST.SvelteScriptElement & ASTNodeWithParent) => void;
'SvelteScriptElement:exit'?: (node: AST.SvelteScriptElement & ASTNodeWithParent) => void;
SvelteStyleElement?: (node: AST.SvelteStyleElement & ASTNodeWithParent) => void;
'SvelteStyleElement:exit'?: (node: AST.SvelteStyleElement & ASTNodeWithParent) => void;
SvelteElement?: (node: AST.SvelteElement & ASTNodeWithParent) => void;
'SvelteElement:exit'?: (node: AST.SvelteElement & ASTNodeWithParent) => void;
SvelteStartTag?: (node: AST.SvelteStartTag & ASTNodeWithParent) => void;
'SvelteStartTag:exit'?: (node: AST.SvelteStartTag & ASTNodeWithParent) => void;
SvelteEndTag?: (node: AST.SvelteEndTag & ASTNodeWithParent) => void;
'SvelteEndTag:exit'?: (node: AST.SvelteEndTag & ASTNodeWithParent) => void;
SvelteName?: (node: AST.SvelteName & ASTNodeWithParent) => void;
'SvelteName:exit'?: (node: AST.SvelteName & ASTNodeWithParent) => void;
SvelteMemberExpressionName?: (node: AST.SvelteMemberExpressionName & ASTNodeWithParent) => void;
'SvelteMemberExpressionName:exit'?: (
node: AST.SvelteMemberExpressionName & ASTNodeWithParent
) => void;
SvelteLiteral?: (node: AST.SvelteLiteral & ASTNodeWithParent) => void;
'SvelteLiteral:exit'?: (node: AST.SvelteLiteral & ASTNodeWithParent) => void;
SvelteMustacheTag?: (node: AST.SvelteMustacheTag & ASTNodeWithParent) => void;
'SvelteMustacheTag:exit'?: (node: AST.SvelteMustacheTag & ASTNodeWithParent) => void;
SvelteDebugTag?: (node: AST.SvelteDebugTag & ASTNodeWithParent) => void;
'SvelteDebugTag:exit'?: (node: AST.SvelteDebugTag & ASTNodeWithParent) => void;
SvelteConstTag?: (node: AST.SvelteConstTag & ASTNodeWithParent) => void;
'SvelteConstTag:exit'?: (node: AST.SvelteConstTag & ASTNodeWithParent) => void;
SvelteRenderTag?: (node: AST.SvelteRenderTag & ASTNodeWithParent) => void;
'SvelteRenderTag:exit'?: (node: AST.SvelteRenderTag & ASTNodeWithParent) => void;
SvelteIfBlock?: (node: AST.SvelteIfBlock & ASTNodeWithParent) => void;
'SvelteIfBlock:exit'?: (node: AST.SvelteIfBlock & ASTNodeWithParent) => void;
SvelteElseBlock?: (node: AST.SvelteElseBlock & ASTNodeWithParent) => void;
'SvelteElseBlock:exit'?: (node: AST.SvelteElseBlock & ASTNodeWithParent) => void;
SvelteEachBlock?: (node: AST.SvelteEachBlock & ASTNodeWithParent) => void;
'SvelteEachBlock:exit'?: (node: AST.SvelteEachBlock & ASTNodeWithParent) => void;
SvelteAwaitBlock?: (node: AST.SvelteAwaitBlock & ASTNodeWithParent) => void;
'SvelteAwaitBlock:exit'?: (node: AST.SvelteAwaitBlock & ASTNodeWithParent) => void;
SvelteAwaitPendingBlock?: (node: AST.SvelteAwaitPendingBlock & ASTNodeWithParent) => void;
'SvelteAwaitPendingBlock:exit'?: (node: AST.SvelteAwaitPendingBlock & ASTNodeWithParent) => void;
SvelteAwaitThenBlock?: (node: AST.SvelteAwaitThenBlock & ASTNodeWithParent) => void;
'SvelteAwaitThenBlock:exit'?: (node: AST.SvelteAwaitThenBlock & ASTNodeWithParent) => void;
SvelteAwaitCatchBlock?: (node: AST.SvelteAwaitCatchBlock & ASTNodeWithParent) => void;
'SvelteAwaitCatchBlock:exit'?: (node: AST.SvelteAwaitCatchBlock & ASTNodeWithParent) => void;
SvelteKeyBlock?: (node: AST.SvelteKeyBlock & ASTNodeWithParent) => void;
'SvelteKeyBlock:exit'?: (node: AST.SvelteKeyBlock & ASTNodeWithParent) => void;
SvelteSnippetBlock?: (node: AST.SvelteSnippetBlock & ASTNodeWithParent) => void;
'SvelteSnippetBlock:exit'?: (node: AST.SvelteSnippetBlock & ASTNodeWithParent) => void;
SvelteAttribute?: (node: AST.SvelteAttribute & ASTNodeWithParent) => void;
'SvelteAttribute:exit'?: (node: AST.SvelteAttribute & ASTNodeWithParent) => void;
SvelteShorthandAttribute?: (node: AST.SvelteShorthandAttribute & ASTNodeWithParent) => void;
'SvelteShorthandAttribute:exit'?: (
node: AST.SvelteShorthandAttribute & ASTNodeWithParent
) => void;
SvelteSpreadAttribute?: (node: AST.SvelteSpreadAttribute & ASTNodeWithParent) => void;
'SvelteSpreadAttribute:exit'?: (node: AST.SvelteSpreadAttribute & ASTNodeWithParent) => void;
SvelteAttachTag?: (node: AST.SvelteAttachTag & ASTNodeWithParent) => void;
'SvelteAttachTag:exit'?: (node: AST.SvelteAttachTag & ASTNodeWithParent) => void;
SvelteDirective?: (node: AST.SvelteDirective & ASTNodeWithParent) => void;
'SvelteDirective:exit'?: (node: AST.SvelteDirective & ASTNodeWithParent) => void;
SvelteStyleDirective?: (node: AST.SvelteStyleDirective & ASTNodeWithParent) => void;
'SvelteStyleDirective:exit'?: (node: AST.SvelteStyleDirective & ASTNodeWithParent) => void;
SvelteSpecialDirective?: (node: AST.SvelteSpecialDirective & ASTNodeWithParent) => void;
'SvelteSpecialDirective:exit'?: (node: AST.SvelteSpecialDirective & ASTNodeWithParent) => void;
SvelteGenericsDirective?: (node: AST.SvelteGenericsDirective & ASTNodeWithParent) => void;
'SvelteGenericsDirective:exit'?: (node: AST.SvelteGenericsDirective & ASTNodeWithParent) => void;
SvelteDirectiveKey?: (node: AST.SvelteDirectiveKey & ASTNodeWithParent) => void;
'SvelteDirectiveKey:exit'?: (node: AST.SvelteDirectiveKey & ASTNodeWithParent) => void;
SvelteSpecialDirectiveKey?: (node: AST.SvelteSpecialDirectiveKey & ASTNodeWithParent) => void;
'SvelteSpecialDirectiveKey:exit'?: (
node: AST.SvelteSpecialDirectiveKey & ASTNodeWithParent
) => void;
SvelteText?: (node: AST.SvelteText & ASTNodeWithParent) => void;
'SvelteText:exit'?: (node: AST.SvelteText & ASTNodeWithParent) => void;
SvelteHTMLComment?: (node: AST.SvelteHTMLComment & ASTNodeWithParent) => void;
'SvelteHTMLComment:exit'?: (node: AST.SvelteHTMLComment & ASTNodeWithParent) => void;
SvelteFunctionBindingsExpression?: (
node: AST.SvelteFunctionBindingsExpression & ASTNodeWithParent
) => void;
'SvelteFunctionBindingsExpression:exit'?: (
node: AST.SvelteFunctionBindingsExpression & ASTNodeWithParent
) => void;
};
================================================
FILE: packages/eslint-plugin-svelte/src/types.ts
================================================
import type { JSONSchema4 } from 'json-schema';
import type { Linter, Rule, SourceCode as ESLintSourceCode } from 'eslint';
import type { AST, StyleContext, SvelteConfig } from 'svelte-eslint-parser';
import type { TSESTree } from '@typescript-eslint/types';
import type { ScopeManager, Scope, Variable } from '@typescript-eslint/scope-manager';
import type { Rule as StyleRule, Node } from 'postcss';
import type { Root as SelectorRoot, Node as SelectorNode } from 'postcss-selector-parser';
import type { ASTNode, ASTNodeWithParent, ASTNodeListener } from './types-for-node.js';
import type * as TS from 'typescript';
import type { SourceLocation } from 'svelte-eslint-parser/lib/ast/common.js';
import type { SvelteContext } from './utils/svelte-context.js';
export type { ASTNode, ASTNodeWithParent, ASTNodeListener };
export interface RuleListener extends ASTNodeListener {
onCodePathStart?(codePath: Rule.CodePath, node: never): void;
onCodePathEnd?(codePath: Rule.CodePath, node: never): void;
onCodePathSegmentStart?(segment: Rule.CodePathSegment, node: never): void;
onCodePathSegmentEnd?(segment: Rule.CodePathSegment, node: never): void;
onCodePathSegmentLoop?(
fromSegment: Rule.CodePathSegment,
toSegment: Rule.CodePathSegment,
node: never
): void;
[key: string]:
| ((codePath: Rule.CodePath, node: never) => void)
| ((segment: Rule.CodePathSegment, node: never) => void)
| ((fromSegment: Rule.CodePathSegment, toSegment: Rule.CodePathSegment, node: never) => void)
| ASTNodeListener[keyof ASTNodeListener]
| ((node: never) => void)
| undefined;
}
export interface RuleModule {
meta: RuleMetaData;
create: (context: RuleContext) => RuleListener;
}
export type RuleCategory =
| 'Possible Errors'
| 'Security Vulnerability'
| 'Best Practices'
| 'Stylistic Issues'
| 'Extension Rules'
| 'SvelteKit'
| 'Experimental'
| 'System';
export interface RuleMetaData {
docs: {
description: string;
category: RuleCategory;
recommended: boolean | 'base';
extensionRule?:
| string
| {
plugin: string;
url: string;
};
url: string;
ruleId: string;
ruleName: string;
default?: 'error' | 'warn';
conflictWithPrettier?: boolean;
};
messages: { [messageId: string]: string };
fixable?: 'code' | 'whitespace';
hasSuggestions?: boolean;
schema: JSONSchema4 | JSONSchema4[];
deprecated?: boolean;
replacedBy?: string[] | { note: string };
type: 'problem' | 'suggestion' | 'layout';
}
export interface PartialRuleModule {
meta: PartialRuleMetaData;
create: (context: RuleContext) => RuleListener;
}
export interface PartialRuleMetaData {
docs: {
description: string;
recommended: boolean | 'base';
extensionRule?:
| string
| {
plugin: string;
url: string;
};
default?: 'error' | 'warn';
} & (
| {
category: Exclude;
conflictWithPrettier?: boolean;
}
| {
category: 'Stylistic Issues';
conflictWithPrettier: boolean;
}
);
messages: { [messageId: string]: string };
fixable?: 'code' | 'whitespace';
hasSuggestions?: boolean;
schema: JSONSchema4 | JSONSchema4[];
deprecated?: boolean;
replacedBy?: string[] | { note: string };
type: 'problem' | 'suggestion' | 'layout';
/**
* Conditions to determine whether this rule should be applied.
* Multiple conditions can be specified as array, and the rule will be applied if any one of them matches (logical OR).
* If not specified, the rule will be applied to all files.
*/
conditions?: {
svelteVersions?: SvelteContext['svelteVersion'][];
svelteFileTypes?: SvelteContext['svelteFileType'][];
runes?: SvelteContext['runes'][];
svelteKitVersions?: SvelteContext['svelteKitVersion'][];
svelteKitFileTypes?: SvelteContext['svelteKitFileType'][];
}[];
}
export type RuleContext = {
id: string;
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- ignore
options: any[];
settings?: {
svelte?: {
ignoreWarnings?: unknown;
compileOptions?: {
babel?: boolean;
postcss?: false | { configFilePath?: unknown };
};
kit?: {
files?: {
routes?: string;
};
};
};
};
parserPath: string;
parserOptions: Linter.ParserOptions;
parserServices: ESLintSourceCode.ParserServices;
getAncestors(): ASTNode[];
getDeclaredVariables(node: TSESTree.Node): Variable[];
filename: string;
getScope(): Scope;
sourceCode: SourceCode;
markVariableAsUsed(name: string): boolean;
report(descriptor: ReportDescriptor): void;
cwd?: string;
physicalFilename: string;
};
export type NodeOrToken = {
type: string;
loc?: AST.SourceLocation | null;
range?: [number, number];
};
interface ReportDescriptorOptionsBase {
data?: { [key: string]: string };
fix?: null | ((fixer: RuleFixer) => null | Rule.Fix | IterableIterator | Rule.Fix[]);
}
type SuggestionDescriptorMessage = { desc: string } | { messageId: string };
export type SuggestionReportDescriptor = SuggestionDescriptorMessage & ReportDescriptorOptionsBase;
interface ReportDescriptorOptions extends ReportDescriptorOptionsBase {
suggest?: SuggestionReportDescriptor[] | null;
}
type ReportDescriptor = ReportDescriptorMessage &
ReportDescriptorLocation &
ReportDescriptorOptions;
type ReportDescriptorMessage = { message: string } | { messageId: string };
type ReportDescriptorLocation =
| { node: NodeOrToken }
| { loc: AST.SourceLocation | { line: number; column: number } };
export interface RuleFixer {
insertTextAfter(nodeOrToken: NodeOrToken, text: string): Rule.Fix;
insertTextAfterRange(range: AST.Range, text: string): Rule.Fix;
insertTextBefore(nodeOrToken: NodeOrToken, text: string): Rule.Fix;
insertTextBeforeRange(range: AST.Range, text: string): Rule.Fix;
remove(nodeOrToken: NodeOrToken): Rule.Fix;
removeRange(range: AST.Range): Rule.Fix;
replaceText(nodeOrToken: NodeOrToken, text: string): Rule.Fix;
replaceTextRange(range: AST.Range, text: string): Rule.Fix;
}
// eslint-disable-next-line @typescript-eslint/no-namespace -- ignore
export declare namespace SourceCode {
export function splitLines(text: string): string[];
}
export interface SourceCode {
text: string;
ast: AST.SvelteProgram;
lines: string[];
hasBOM: boolean;
parserServices: {
isSvelte?: boolean;
isSvelteScript?: boolean;
getSvelteHtmlAst?: () => unknown;
getStyleContext?: () => StyleContext;
getStyleSelectorAST?: (rule: StyleRule) => SelectorRoot;
styleNodeLoc?: (node: Node) => Partial;
styleNodeRange?: (node: Node) => [number | undefined, number | undefined];
styleSelectorNodeLoc?: (node: SelectorNode) => Partial;
svelteParseContext?: {
/**
* Whether to use Runes mode.
* May be `true` if the user is using Svelte v5.
* Resolved from `svelte.config.js` or `parserOptions`, but may be overridden by ``.
*/
runes?: boolean;
/** The version of "svelte/compiler". */
compilerVersion?: string;
/** The result of static analysis of `svelte.config.js`. */
svelteConfig?: SvelteConfig | null;
};
program?: TS.Program;
esTreeNodeToTSNodeMap?: ReadonlyMap;
tsNodeToESTreeNodeMap?: ReadonlyMap;
hasFullTypeInformation?: boolean; // Old typescript-eslint
[key: string]: unknown;
};
scopeManager: ScopeManager;
visitorKeys: ESLintSourceCode.VisitorKeys;
getText(node?: NodeOrToken, beforeCount?: number, afterCount?: number): string;
getLines(): string[];
getDeclaredVariables(node: TSESTree.Node): Variable[];
getAllComments(): AST.Comment[];
getComments(node: NodeOrToken): {
leading: AST.Comment[];
trailing: AST.Comment[];
};
getJSDocComment(node: NodeOrToken): AST.Comment | null;
getNodeByRangeIndex(index: number): ASTNodeWithParent | null;
isSpaceBetweenTokens(first: AST.Token, second: AST.Token): boolean;
getLocFromIndex(index: number): AST.Position;
getIndexFromLoc(location: AST.Position): number;
// Inherited methods from TokenStore
// ---------------------------------
getTokenByRangeStart(
offset: number,
options?: { includeComments?: boolean }
): AST.Token | AST.Comment | null;
getFirstToken(node: NodeOrToken): AST.Token;
getFirstToken(
node: NodeOrToken,
options?: Parameters[1]
): AST.Token | AST.Comment | null;
getFirstTokens(
node: NodeOrToken,
options?: Parameters[1]
): (AST.Token | AST.Comment)[];
getLastToken(node: NodeOrToken): AST.Token;
getLastToken(
node: NodeOrToken,
options?: Parameters[1]
): AST.Token | AST.Comment | null;
getLastTokens(
node: NodeOrToken,
options?: Parameters[1]
): (AST.Token | AST.Comment)[];
getTokenBefore(node: NodeOrToken): AST.Token | null;
getTokenBefore(
node: NodeOrToken,
options?: Parameters[1]
): AST.Token | AST.Comment | null;
getTokensBefore(
node: NodeOrToken,
options?: Parameters[1]
): (AST.Token | AST.Comment)[];
getTokenAfter(node: NodeOrToken): AST.Token | null;
getTokenAfter(
node: NodeOrToken,
options?: Parameters[1]
): AST.Token | AST.Comment | null;
getTokensAfter(
node: NodeOrToken,
options?: Parameters[1]
): (AST.Token | AST.Comment)[];
getFirstTokenBetween(
left: NodeOrToken,
right: NodeOrToken,
options?: Parameters[2]
): AST.Token | AST.Comment | null;
getFirstTokensBetween(
left: NodeOrToken,
right: NodeOrToken,
options?: Parameters[2]
): (AST.Token | AST.Comment)[];
getLastTokenBetween(
left: NodeOrToken,
right: NodeOrToken,
options?: Parameters[2]
): AST.Token | AST.Comment | null;
getLastTokensBetween(
left: NodeOrToken,
right: NodeOrToken,
options?: Parameters[2]
): (AST.Token | AST.Comment)[];
getTokensBetween(
left: NodeOrToken,
right: NodeOrToken,
padding?: Parameters[2]
): (AST.Token | AST.Comment)[];
getTokens(node: NodeOrToken, beforeCount?: number, afterCount?: number): AST.Token[];
getTokens(
node: NodeOrToken,
options: Parameters[1]
): (AST.Token | AST.Comment)[];
commentsExistBetween(left: NodeOrToken, right: NodeOrToken): boolean;
getCommentsBefore(nodeOrToken: NodeOrToken | AST.Token): AST.Comment[];
getCommentsAfter(nodeOrToken: NodeOrToken | AST.Token): AST.Comment[];
getCommentsInside(node: NodeOrToken): AST.Comment[];
}
================================================
FILE: packages/eslint-plugin-svelte/src/utils/ast-utils.ts
================================================
import type { ASTNode, RuleContext, SourceCode } from '../types.js';
import type { TSESTree } from '@typescript-eslint/types';
import type { Scope, Variable } from '@typescript-eslint/scope-manager';
import type { AST as SvAST } from 'svelte-eslint-parser';
import * as eslintUtils from '@eslint-community/eslint-utils';
import { voidElements, svgElements, mathmlElements } from './element-types.js';
/**
* Checks whether or not the tokens of two given nodes are same.
* @param left A node 1 to compare.
* @param right A node 2 to compare.
* @param sourceCode The ESLint source code object.
* @returns the source code for the given node.
*/
export function equalTokens(left: ASTNode, right: ASTNode, sourceCode: SourceCode): boolean {
const tokensL = sourceCode.getTokens(left);
const tokensR = sourceCode.getTokens(right);
if (tokensL.length !== tokensR.length) {
return false;
}
for (let i = 0; i < tokensL.length; ++i) {
if (tokensL[i].type !== tokensR[i].type || tokensL[i].value !== tokensR[i].value) {
return false;
}
}
return true;
}
/**
* Get the value of a given node if it's a literal or a template literal.
*/
export function getStringIfConstant(
node: TSESTree.Expression | TSESTree.PrivateIdentifier
): string | null {
if (node.type === 'Literal') {
if (typeof node.value === 'string') return node.value;
} else if (node.type === 'TemplateLiteral') {
let str = '';
const quasis = [...node.quasis];
const expressions = [...node.expressions];
let quasi: TSESTree.TemplateElement | undefined, expr: TSESTree.Expression | undefined;
while ((quasi = quasis.shift())) {
str += quasi.value.cooked;
expr = expressions.shift();
if (expr) {
const exprStr = getStringIfConstant(expr);
if (exprStr == null) {
return null;
}
str += exprStr;
}
}
return str;
} else if (node.type === 'BinaryExpression') {
if (node.operator === '+') {
const left = getStringIfConstant(node.left);
if (left == null) {
return null;
}
const right = getStringIfConstant(node.right);
if (right == null) {
return null;
}
return left + right;
}
}
return null;
}
/**
* Check if it need parentheses.
*/
export function needParentheses(node: TSESTree.Expression, kind: 'not' | 'logical'): boolean {
if (
node.type === 'ArrowFunctionExpression' ||
node.type === 'AssignmentExpression' ||
node.type === 'BinaryExpression' ||
node.type === 'ConditionalExpression' ||
node.type === 'LogicalExpression' ||
node.type === 'SequenceExpression' ||
node.type === 'UnaryExpression' ||
node.type === 'UpdateExpression'
)
return true;
if (kind === 'logical') {
return node.type === 'FunctionExpression';
}
return false;
}
/** Checks whether the given node is the html element node or node. */
export function isHTMLElementLike(
node: SvAST.SvelteElement | SvAST.SvelteScriptElement | SvAST.SvelteStyleElement
): node is
| SvAST.SvelteHTMLElement
| (SvAST.SvelteSpecialElement & {
name: SvAST.SvelteName & { name: 'svelte:element' };
}) {
if (node.type !== 'SvelteElement') {
return false;
}
switch (node.kind) {
case 'html':
return true;
case 'special':
return node.name.name === 'svelte:element';
default:
return false;
}
}
/**
* Find the attribute from the given element node
*/
export function findAttribute(
node:
| SvAST.SvelteElement
| SvAST.SvelteScriptElement
| SvAST.SvelteStyleElement
| SvAST.SvelteStartTag,
name: N
):
| (SvAST.SvelteAttribute & {
key: SvAST.SvelteAttribute['key'] & { name: N };
})
| null {
const startTag = node.type === 'SvelteStartTag' ? node : node.startTag;
for (const attr of startTag.attributes) {
if (attr.type === 'SvelteAttribute') {
if (attr.key.name === name) {
return attr as never;
}
}
}
return null;
}
/**
* Find the shorthand attribute from the given element node
*/
export function findShorthandAttribute(
node:
| SvAST.SvelteElement
| SvAST.SvelteScriptElement
| SvAST.SvelteStyleElement
| SvAST.SvelteStartTag,
name: N
):
| (SvAST.SvelteShorthandAttribute & {
key: SvAST.SvelteShorthandAttribute['key'] & { name: N };
})
| null {
const startTag = node.type === 'SvelteStartTag' ? node : node.startTag;
for (const attr of startTag.attributes) {
if (attr.type === 'SvelteShorthandAttribute') {
if (attr.key.name === name) {
return attr as never;
}
}
}
return null;
}
/**
* Find the bind directive from the given element node
*/
export function findBindDirective(
node:
| SvAST.SvelteElement
| SvAST.SvelteScriptElement
| SvAST.SvelteStyleElement
| SvAST.SvelteStartTag,
name: N
):
| (SvAST.SvelteBindingDirective & {
key: SvAST.SvelteDirectiveKey & {
name: SvAST.SvelteDirectiveKey['name'] & { name: N };
};
})
| null {
const startTag = node.type === 'SvelteStartTag' ? node : node.startTag;
for (const attr of startTag.attributes) {
if (attr.type === 'SvelteDirective') {
if (attr.kind === 'Binding' && attr.key.name.name === name) {
return attr as never;
}
}
}
return null;
}
/**
* Get the static attribute value from given attribute
*/
export function getStaticAttributeValue(node: SvAST.SvelteAttribute): string | null {
let str = '';
for (const value of node.value) {
if (value.type === 'SvelteLiteral') {
str += value.value;
} else {
return null;
}
}
return str;
}
/**
* Get the static attribute value from given attribute
*/
export function getLangValue(
node: SvAST.SvelteScriptElement | SvAST.SvelteStyleElement
): string | null {
const langAttr = findAttribute(node, 'lang');
return langAttr && getStaticAttributeValue(langAttr);
}
/**
* Find the variable of a given name.
*/
export function findVariable(context: RuleContext, node: TSESTree.Identifier): Variable | null {
const initialScope = eslintUtils.getInnermostScope(getScope(context, node), node);
const variable = eslintUtils.findVariable(initialScope, node);
if (variable) {
return variable;
}
if (!node.name.startsWith('$')) {
return variable;
}
// Remove the $ and search for the variable again, as it may be a store access variable.
return eslintUtils.findVariable(initialScope, node.name.slice(1));
}
/**
* Context for safely finding variables, avoiding infinite recursion.
* This should be used when the caller function may be called recursively, instead of `findVariable()`.
*
* Create an instance of this class at the top of the call stack where you want to start searching for identifiers,
* and then use it within the recursion.
*/
export class FindVariableContext {
public readonly findVariable: (node: TSESTree.Identifier) => Variable | null;
public constructor(context: RuleContext) {
const visited = new Set();
this.findVariable = (node: TSESTree.Identifier) => {
if (visited.has(node)) {
return null;
}
visited.add(node);
return findVariable(context, node);
};
}
}
/**
* Iterate the identifiers of a given pattern node.
*/
export function* iterateIdentifiers(
node: TSESTree.DestructuringPattern
): Iterable {
const buffer = [node];
let pattern: TSESTree.DestructuringPattern | undefined;
while ((pattern = buffer.shift())) {
if (pattern.type === 'Identifier') {
yield pattern;
} else if (pattern.type === 'ArrayPattern') {
for (const element of pattern.elements) {
if (element) {
buffer.push(element);
}
}
} else if (pattern.type === 'ObjectPattern') {
for (const property of pattern.properties) {
if (property.type === 'Property') {
buffer.push(property.value as TSESTree.DestructuringPattern);
} else if (property.type === 'RestElement') {
buffer.push(property);
}
}
} else if (pattern.type === 'AssignmentPattern') {
buffer.push(pattern.left);
} else if (pattern.type === 'RestElement') {
buffer.push(pattern.argument);
} else if (pattern.type === 'MemberExpression') {
// noop
}
}
}
/**
* Gets the scope for the current node
*/
export function getScope(context: RuleContext, currentNode: TSESTree.Node): Scope {
const scopeManager = context.sourceCode.scopeManager;
let node: TSESTree.Node | null = currentNode;
for (; node; node = node.parent || null) {
const scope = scopeManager.acquire(node, false);
if (scope) {
if (scope.type === 'function-expression-name') {
return scope.childScopes[0];
}
return scope;
}
}
return scopeManager.scopes[0];
}
/** Get the parent node from the given node */
export function getParent(node: TSESTree.Node): TSESTree.Node | null {
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- ignore
return (node as any).parent || null;
}
export type QuoteAndRange = {
quote: 'unquoted' | 'double' | 'single';
range: [number, number];
firstToken: SvAST.Token | SvAST.Comment;
lastToken: SvAST.Token | SvAST.Comment;
};
/** Get the quote and range from given attribute values */
export function getAttributeValueQuoteAndRange(
attr:
| SvAST.SvelteAttribute
| SvAST.SvelteDirective
| SvAST.SvelteStyleDirective
| SvAST.SvelteSpecialDirective,
sourceCode: SourceCode
): QuoteAndRange | null {
const valueTokens = getAttributeValueRangeTokens(attr, sourceCode);
if (valueTokens == null) {
return null;
}
const { firstToken: valueFirstToken, lastToken: valueLastToken } = valueTokens;
const eqToken = sourceCode.getTokenAfter(attr.key);
if (!eqToken || eqToken.value !== '=' || valueFirstToken.range[0] < eqToken.range[1]) {
// invalid
return null;
}
const beforeTokens = sourceCode.getTokensBetween(eqToken, valueFirstToken);
if (beforeTokens.length === 0) {
return {
quote: 'unquoted',
range: [valueFirstToken.range[0], valueLastToken.range[1]],
firstToken: valueFirstToken,
lastToken: valueLastToken
};
} else if (
beforeTokens.length > 1 ||
(beforeTokens[0].value !== '"' && beforeTokens[0].value !== "'")
) {
// invalid
return null;
}
const beforeToken = beforeTokens[0];
const afterToken = sourceCode.getTokenAfter(valueLastToken);
if (!afterToken || afterToken.value !== beforeToken.value) {
// invalid
return null;
}
return {
quote: beforeToken.value === '"' ? 'double' : 'single',
range: [beforeToken.range[0], afterToken.range[1]],
firstToken: beforeToken,
lastToken: afterToken
};
}
export function getMustacheTokens(
node:
| SvAST.SvelteMustacheTag
| SvAST.SvelteShorthandAttribute
| SvAST.SvelteSpreadAttribute
| SvAST.SvelteDebugTag
| SvAST.SvelteRenderTag,
sourceCode: SourceCode
): {
openToken: SvAST.Token;
closeToken: SvAST.Token;
};
export function getMustacheTokens(
node:
| SvAST.SvelteDirective
| SvAST.SvelteSpecialDirective
| SvAST.SvelteMustacheTag
| SvAST.SvelteShorthandAttribute
| SvAST.SvelteSpreadAttribute
| SvAST.SvelteDebugTag
| SvAST.SvelteRenderTag,
sourceCode: SourceCode
): {
openToken: SvAST.Token;
closeToken: SvAST.Token;
} | null;
/** Get the mustache tokens from given node */
export function getMustacheTokens(
node:
| SvAST.SvelteDirective
| SvAST.SvelteSpecialDirective
| SvAST.SvelteMustacheTag
| SvAST.SvelteShorthandAttribute
| SvAST.SvelteSpreadAttribute
| SvAST.SvelteDebugTag
| SvAST.SvelteRenderTag,
sourceCode: SourceCode
): {
openToken: SvAST.Token;
closeToken: SvAST.Token;
} | null {
if (isWrappedInBraces(node)) {
const openToken = sourceCode.getFirstToken(node);
const closeToken = sourceCode.getLastToken(node);
return {
openToken,
closeToken
};
}
if (node.expression == null) {
return null;
}
if (
node.key.range[0] <= node.expression.range[0] &&
node.expression.range[1] <= node.key.range[1]
) {
// shorthand
return null;
}
let openToken = sourceCode.getTokenBefore(node.expression);
let closeToken = sourceCode.getTokenAfter(node.expression);
while (
openToken &&
closeToken &&
eslintUtils.isOpeningParenToken(openToken) &&
eslintUtils.isClosingParenToken(closeToken)
) {
openToken = sourceCode.getTokenBefore(openToken);
closeToken = sourceCode.getTokenAfter(closeToken);
}
if (
!openToken ||
!closeToken ||
eslintUtils.isNotOpeningBraceToken(openToken) ||
eslintUtils.isNotClosingBraceToken(closeToken)
) {
return null;
}
return {
openToken,
closeToken
};
}
function isWrappedInBraces(
node:
| SvAST.SvelteDirective
| SvAST.SvelteSpecialDirective
| SvAST.SvelteMustacheTag
| SvAST.SvelteShorthandAttribute
| SvAST.SvelteSpreadAttribute
| SvAST.SvelteDebugTag
| SvAST.SvelteRenderTag
): node is
| SvAST.SvelteMustacheTag
| SvAST.SvelteShorthandAttribute
| SvAST.SvelteSpreadAttribute
| SvAST.SvelteDebugTag
| SvAST.SvelteRenderTag {
return (
node.type === 'SvelteMustacheTag' ||
node.type === 'SvelteShorthandAttribute' ||
node.type === 'SvelteSpreadAttribute' ||
node.type === 'SvelteDebugTag' ||
node.type === 'SvelteRenderTag'
);
}
/** Get attribute key text */
export function getAttributeKeyText(
node:
| SvAST.SvelteAttribute
| SvAST.SvelteShorthandAttribute
| SvAST.SvelteStyleDirective
| SvAST.SvelteDirective
| SvAST.SvelteSpecialDirective
| SvAST.SvelteGenericsDirective
| SvAST.SvelteAttachTag,
context: RuleContext
): string {
switch (node.type) {
case 'SvelteAttribute':
case 'SvelteShorthandAttribute':
case 'SvelteGenericsDirective':
return node.key.name;
case 'SvelteStyleDirective':
return `style:${node.key.name.name}`;
case 'SvelteSpecialDirective':
return node.kind;
case 'SvelteDirective': {
const dir = getDirectiveName(node);
return `${dir}:${getSimpleNameFromNode(node.key.name, context)}${
node.key.modifiers.length ? `|${node.key.modifiers.join('|')}` : ''
}`;
}
case 'SvelteAttachTag':
return '@attach';
default:
throw new Error(
`Unknown node type: ${
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- error
(node as any).type
}`
);
}
}
/** Get directive name */
export function getDirectiveName(node: SvAST.SvelteDirective): string {
switch (node.kind) {
case 'Action':
return 'use';
case 'Animation':
return 'animate';
case 'Binding':
return 'bind';
case 'Class':
return 'class';
case 'EventHandler':
return 'on';
case 'Let':
return 'let';
case 'Transition':
return node.intro && node.outro ? 'transition' : node.intro ? 'in' : 'out';
case 'Ref':
return 'ref';
default:
throw new Error('Unknown directive kind');
}
}
/** Get the value tokens from given attribute */
function getAttributeValueRangeTokens(
attr:
| SvAST.SvelteAttribute
| SvAST.SvelteDirective
| SvAST.SvelteStyleDirective
| SvAST.SvelteSpecialDirective,
sourceCode: SourceCode
) {
if (attr.type === 'SvelteAttribute' || attr.type === 'SvelteStyleDirective') {
if (!attr.value.length) {
return null;
}
const first = attr.value[0];
const last = attr.value[attr.value.length - 1];
return {
firstToken: sourceCode.getFirstToken(first),
lastToken: sourceCode.getLastToken(last)
};
}
const tokens = getMustacheTokens(attr, sourceCode);
if (!tokens) {
return null;
}
return {
firstToken: tokens.openToken,
lastToken: tokens.closeToken
};
}
/**
* Extract all class names used in a HTML element attribute.
*/
export function findClassesInAttribute(
attribute:
| SvAST.SvelteAttribute
| SvAST.SvelteShorthandAttribute
| SvAST.SvelteSpreadAttribute
| SvAST.SvelteDirective
| SvAST.SvelteStyleDirective
| SvAST.SvelteSpecialDirective
| SvAST.SvelteGenericsDirective
| SvAST.SvelteAttachTag
): string[] {
if (attribute.type === 'SvelteAttribute' && attribute.key.name === 'class') {
return attribute.value.flatMap((value) =>
value.type === 'SvelteLiteral' ? value.value.trim().split(/\s+/u) : []
);
}
if (attribute.type === 'SvelteDirective' && attribute.kind === 'Class') {
return [attribute.key.name.name];
}
return [];
}
/**
* Returns name of SvelteElement
*/
export function getNodeName(node: SvAST.SvelteElement): string {
return getSimpleNameFromNode(node.name);
}
/**
* Returns true if element is known void element
* {@link https://developer.mozilla.org/en-US/docs/Glossary/Empty_element}
*/
export function isVoidHtmlElement(node: SvAST.SvelteElement): boolean {
return voidElements.includes(getNodeName(node));
}
/**
* Returns true if element is known foreign (SVG or MathML) element
*/
export function isForeignElement(node: SvAST.SvelteElement): boolean {
return svgElements.includes(getNodeName(node)) || mathmlElements.includes(getNodeName(node));
}
export function isSvgElement(node: SvAST.SvelteElement): boolean {
return svgElements.includes(getNodeName(node));
}
export function isMathMLElement(node: SvAST.SvelteElement): boolean {
return mathmlElements.includes(getNodeName(node));
}
/** Checks whether the given identifier node is used as an expression. */
export function isExpressionIdentifier(node: TSESTree.Identifier): boolean {
const parent = node.parent;
if (!parent) {
return true;
}
if (parent.type === 'MemberExpression') {
return !parent.computed || parent.property !== node;
}
if (
parent.type === 'Property' ||
parent.type === 'MethodDefinition' ||
parent.type === 'PropertyDefinition'
) {
return !parent.computed || parent.key !== node;
}
if (
parent.type === 'FunctionDeclaration' ||
parent.type === 'FunctionExpression' ||
parent.type === 'ClassDeclaration' ||
parent.type === 'ClassExpression'
) {
return parent.id !== node;
}
if (
parent.type === 'LabeledStatement' ||
parent.type === 'BreakStatement' ||
parent.type === 'ContinueStatement'
) {
return parent.label !== node;
}
if (parent.type === 'MetaProperty') {
return parent.property !== node;
}
if (parent.type === 'ImportSpecifier') {
return parent.imported !== node;
}
if (parent.type === 'ExportSpecifier') {
return parent.exported !== node;
}
return true;
}
function getSimpleNameFromNode(
node: SvAST.SvelteName | SvAST.SvelteMemberExpressionName | TSESTree.Identifier,
context?: RuleContext
): string;
function getSimpleNameFromNode(
node:
| SvAST.SvelteName
| SvAST.SvelteMemberExpressionName
| TSESTree.PrivateIdentifier
| TSESTree.Expression,
context: RuleContext
): string;
/** Get simple name from give node */
function getSimpleNameFromNode(
node:
| SvAST.SvelteName
| SvAST.SvelteMemberExpressionName
| TSESTree.PrivateIdentifier
| TSESTree.Expression,
context: RuleContext | undefined
): string {
if (node.type === 'Identifier' || node.type === 'SvelteName') {
return node.name;
}
if (
node.type === 'SvelteMemberExpressionName' ||
(node.type === 'MemberExpression' && !node.computed)
) {
return `${getSimpleNameFromNode(node.object, context!)}.${getSimpleNameFromNode(
node.property,
context!
)}`;
}
// No nodes other than those listed above are currently expected to be used in names.
if (!context) {
throw new Error('Rule context is required');
}
return context.sourceCode.getText(node);
}
/**
* Finds the variable for a given name in the specified node's scope.
* Also determines if the replacement name is already in use.
*
* If the `name` is set to null, this assumes you're adding a new variable
* and reports if it is already in use.
*/
export function findVariableForReplacement(
context: RuleContext,
node: TSESTree.Node,
name: string | null,
replacementName: string
): { hasConflict: boolean; variable: Variable | null } {
const scope = getScope(context, node);
let variable: Variable | null = null;
for (const ref of scope.references) {
if (ref.identifier.name === replacementName) {
return { hasConflict: true, variable: null };
}
}
for (const v of scope.variables) {
if (v.name === replacementName) {
return { hasConflict: true, variable: null };
}
if (v.name === name) {
variable = v;
}
}
return { hasConflict: false, variable };
}
/**
* Check if one node is contained withing the subtree of another node.
*/
export function isIn(needle: TSESTree.Node, haystack: TSESTree.Node): boolean {
if (needle === haystack) {
return true;
}
if (needle.parent == null) {
return false;
}
return isIn(needle.parent, haystack);
}
================================================
FILE: packages/eslint-plugin-svelte/src/utils/cache.ts
================================================
/**
* Simple cache manager.
*
* refer: https://github.com/mysticatea/eslint-plugin-node/blob/f45c6149be7235c0f7422d1179c25726afeecd83/lib/util/cache.js
*/
const SKIP_TIME = 5000;
type CacheValue = {
expire: number;
value: T;
};
/**
* The cache will dispose of each value if the value has not been accessed
* during 5 seconds.
* @returns getter and setter ofr the cache.
*/
export function createCache(): {
get: (key: string) => T | null;
set: (key: string, value: T) => void;
} {
const map: Map> = new Map();
/**
* Get the cached value of the given key.
* @param key The key to get.
* @returns The cached value or null.
*/
function get(key: string): T | null {
const entry = map.get(key);
const now = Date.now();
if (entry) {
if (entry.expire > now) {
entry.expire = now + SKIP_TIME;
return entry.value;
}
map.delete(key);
}
return null;
}
/**
* Set the value of the given key.
* @param key The key to set.
* @param value The value to set.
* @returns
*/
function set(key: string, value: T): void {
const entry = map.get(key);
const expire = Date.now() + SKIP_TIME;
if (entry) {
entry.value = value;
entry.expire = expire;
} else {
map.set(key, { value, expire });
}
}
return { get, set };
}
================================================
FILE: packages/eslint-plugin-svelte/src/utils/css-utils/index.ts
================================================
export * from './style-attribute.js';
export * from './resource.js';
export * from './utils.js';
================================================
FILE: packages/eslint-plugin-svelte/src/utils/css-utils/resource.ts
================================================
export const SHORTHAND_PROPERTIES = new Map([
['margin', ['margin-top', 'margin-bottom', 'margin-left', 'margin-right']],
['padding', ['padding-top', 'padding-bottom', 'padding-left', 'padding-right']],
[
'background',
[
'background-image',
'background-size',
'background-position',
'background-repeat',
'background-origin',
'background-clip',
'background-attachment',
'background-color'
]
],
[
'font',
[
'font-style',
'font-variant',
'font-weight',
'font-stretch',
'font-size',
'font-family',
'line-height'
]
],
[
'border',
[
'border-top-width',
'border-bottom-width',
'border-left-width',
'border-right-width',
'border-top-style',
'border-bottom-style',
'border-left-style',
'border-right-style',
'border-top-color',
'border-bottom-color',
'border-left-color',
'border-right-color'
]
],
['border-top', ['border-top-width', 'border-top-style', 'border-top-color']],
['border-bottom', ['border-bottom-width', 'border-bottom-style', 'border-bottom-color']],
['border-left', ['border-left-width', 'border-left-style', 'border-left-color']],
['border-right', ['border-right-width', 'border-right-style', 'border-right-color']],
[
'border-width',
['border-top-width', 'border-bottom-width', 'border-left-width', 'border-right-width']
],
[
'border-style',
['border-top-style', 'border-bottom-style', 'border-left-style', 'border-right-style']
],
[
'border-color',
['border-top-color', 'border-bottom-color', 'border-left-color', 'border-right-color']
],
['list-style', ['list-style-type', 'list-style-position', 'list-style-image']],
[
'border-radius',
[
'border-top-right-radius',
'border-top-left-radius',
'border-bottom-right-radius',
'border-bottom-left-radius'
]
],
[
'transition',
['transition-delay', 'transition-duration', 'transition-property', 'transition-timing-function']
],
[
'animation',
[
'animation-name',
'animation-duration',
'animation-timing-function',
'animation-delay',
'animation-iteration-count',
'animation-direction',
'animation-fill-mode',
'animation-play-state'
]
],
[
'border-block-end',
['border-block-end-width', 'border-block-end-style', 'border-block-end-color']
],
[
'border-block-start',
['border-block-start-width', 'border-block-start-style', 'border-block-start-color']
],
[
'border-image',
[
'border-image-source',
'border-image-slice',
'border-image-width',
'border-image-outset',
'border-image-repeat'
]
],
[
'border-inline-end',
['border-inline-end-width', 'border-inline-end-style', 'border-inline-end-color']
],
[
'border-inline-start',
['border-inline-start-width', 'border-inline-start-style', 'border-inline-start-color']
],
['column-rule', ['column-rule-width', 'column-rule-style', 'column-rule-color']],
['columns', ['column-width', 'column-count']],
['flex', ['flex-grow', 'flex-shrink', 'flex-basis']],
['flex-flow', ['flex-direction', 'flex-wrap']],
[
'grid',
[
'grid-template-rows',
'grid-template-columns',
'grid-template-areas',
'grid-auto-rows',
'grid-auto-columns',
'grid-auto-flow',
'grid-column-gap',
'grid-row-gap'
]
],
['grid-area', ['grid-row-start', 'grid-column-start', 'grid-row-end', 'grid-column-end']],
['grid-column', ['grid-column-start', 'grid-column-end']],
['grid-gap', ['grid-row-gap', 'grid-column-gap']],
['grid-row', ['grid-row-start', 'grid-row-end']],
['grid-template', ['grid-template-columns', 'grid-template-rows', 'grid-template-areas']],
['outline', ['outline-color', 'outline-style', 'outline-width']],
['text-decoration', ['text-decoration-color', 'text-decoration-style', 'text-decoration-line']],
['text-emphasis', ['text-emphasis-style', 'text-emphasis-color']],
[
'mask',
[
'mask-image',
'mask-mode',
'mask-position',
'mask-size',
'mask-repeat',
'mask-origin',
'mask-clip',
'mask-composite'
]
]
]);
================================================
FILE: packages/eslint-plugin-svelte/src/utils/css-utils/style-attribute.ts
================================================
import type { AST } from 'svelte-eslint-parser';
import type { RuleContext } from '../../types.js';
import Parser from './template-safe-parser.js';
import type { Root, ChildNode, AnyNode } from 'postcss';
import { Input } from 'postcss';
import type { TSESTree } from '@typescript-eslint/types';
/** Parse for CSS */
function safeParseCss(css: string): Root | null {
try {
const input = new Input(css);
const parser = new Parser(input);
parser.parse();
return parser.root;
} catch {
return null;
}
}
const cache = new WeakMap();
/**
* Parse style attribute value
*/
export function parseStyleAttributeValue(
node: AST.SvelteAttribute,
context: RuleContext
): SvelteStyleRoot | null {
if (cache.has(node)) {
return cache.get(node) || null;
}
cache.set(node, null);
if (!node.value?.length) {
return null;
}
const startOffset = node.value[0].range[0];
const sourceCode = context.sourceCode;
const cssCode = node.value.map((value) => sourceCode.getText(value)).join('');
const root = safeParseCss(cssCode);
if (!root) {
return root;
}
const ctx: Ctx = {
startOffset,
value: node.value,
context
};
const mustacheTags = node.value.filter(
(v): v is AST.SvelteMustacheTagText => v.type === 'SvelteMustacheTag'
);
const converted = convertRoot(root, mustacheTags, (e) => e.range, ctx);
cache.set(node, converted);
return converted;
}
export type SvelteStyleInterpolation = AST.SvelteMustacheTagText | TSESTree.Expression;
export interface SvelteStyleNode {
nodes?: SvelteStyleChildNode[];
range: AST.Range;
loc: AST.SourceLocation;
}
export interface SvelteStyleRoot {
type: 'root';
nodes: (SvelteStyleChildNode | SvelteStyleInline)[];
}
export interface SvelteStyleInline<
E extends SvelteStyleInterpolation = SvelteStyleInterpolation
> extends SvelteStyleNode {
type: 'inline';
node: E;
getInlineStyle(node: TSESTree.Expression): SvelteStyleRoot | null;
getAllInlineStyles(): Map>;
}
export interface SvelteStyleDeclaration<
E extends SvelteStyleInterpolation = SvelteStyleInterpolation
> extends SvelteStyleNode {
type: 'decl';
prop: {
name: string;
range: AST.Range;
loc: AST.SourceLocation;
interpolations: E[];
};
value: {
value: string;
range: AST.Range;
loc: AST.SourceLocation;
interpolations: E[];
};
important: boolean;
addInterpolation: (tagOrExpr: E) => void;
unknownInterpolations: E[];
}
export interface SvelteStyleComment extends SvelteStyleNode {
type: 'comment';
addInterpolation: (tagOrExpr: SvelteStyleInterpolation) => void;
}
export type SvelteStyleChildNode =
| SvelteStyleDeclaration
| SvelteStyleComment;
class IgnoreError extends Error {}
type Ctx = {
startOffset: number;
value: AST.SvelteAttribute['value'];
context: RuleContext;
};
/** Checks wether the given node is string literal or not */
function isStringLiteral(node: TSESTree.Expression): node is TSESTree.Literal & { value: string } {
return node.type === 'Literal' && typeof node.value === 'string';
}
/** convert root node */
function convertRoot(
root: Root,
interpolations: E[],
getRange: (e: E) => AST.Range,
ctx: Ctx
): SvelteStyleRoot | null {
const nodes: (SvelteStyleChildNode | SvelteStyleInline)[] = [];
for (const child of root.nodes) {
const converted = convertChild(child, ctx);
if (!converted) {
return null;
}
while (interpolations[0]) {
const tagOrExpr = interpolations[0];
if (tagOrExpr.range[1] <= converted.range[0]) {
nodes.push(buildSvelteStyleInline(tagOrExpr));
interpolations.shift();
continue;
}
if (tagOrExpr.range[0] < converted.range[1]) {
try {
converted.addInterpolation(tagOrExpr);
} catch (e) {
if (e instanceof IgnoreError) return null;
throw e;
}
interpolations.shift();
continue;
}
break;
}
nodes.push(converted);
}
nodes.push(...interpolations.map(buildSvelteStyleInline));
return {
type: 'root',
nodes
};
/** Build SvelteStyleInline */
function buildSvelteStyleInline(tagOrExpr: E): SvelteStyleInline {
const inlineStyles = new Map<
TSESTree.Expression,
SvelteStyleRoot | null
>();
let range: AST.Range | null = null;
/** Get range */
function getRangeForInline() {
if (range) {
return range;
}
return range ?? (range = getRange(tagOrExpr));
}
return {
type: 'inline',
node: tagOrExpr,
get range() {
return getRangeForInline();
},
get loc() {
return toLoc(getRangeForInline(), ctx);
},
getInlineStyle(node) {
return getInlineStyle(node);
},
getAllInlineStyles() {
const allInlineStyles = new Map<
TSESTree.Expression,
SvelteStyleRoot
>();
for (const node of extractExpressions(tagOrExpr)) {
const style = getInlineStyle(node);
if (style) {
allInlineStyles.set(node, style);
}
}
return allInlineStyles;
}
};
/** Get inline style node */
function getInlineStyle(
node: SvelteStyleInterpolation
): SvelteStyleRoot | null {
if (node.type === 'SvelteMustacheTag') {
return getInlineStyle(node.expression);
}
if (inlineStyles.has(node)) {
return inlineStyles.get(node) || null;
}
const sourceCode = ctx.context.sourceCode;
inlineStyles.set(node, null);
let converted: SvelteStyleRoot | null;
if (isStringLiteral(node)) {
const root = safeParseCss(sourceCode.getText(node).slice(1, -1));
if (!root) {
return null;
}
converted = convertRoot(root, [], () => [0, 0], {
...ctx,
startOffset: node.range[0] + 1
});
} else if (node.type === 'TemplateLiteral') {
const root = safeParseCss(sourceCode.getText(node).slice(1, -1));
if (!root) {
return null;
}
converted = convertRoot(
root,
[...node.expressions],
(e) => {
const index = node.expressions.indexOf(e);
return [node.quasis[index].range[1] - 2, node.quasis[index + 1].range[0] + 1];
},
{
...ctx,
startOffset: node.range[0] + 1
}
);
} else {
return null;
}
inlineStyles.set(node, converted);
return converted;
}
/** Extract all expressions */
function* extractExpressions(
node: SvelteStyleInterpolation
): Iterable {
if (node.type === 'SvelteMustacheTag') {
yield* extractExpressions(node.expression);
} else if (isStringLiteral(node)) {
yield node;
} else if (node.type === 'TemplateLiteral') {
yield node;
} else if (node.type === 'ConditionalExpression') {
yield* extractExpressions(node.consequent);
yield* extractExpressions(node.alternate);
} else if (node.type === 'LogicalExpression') {
yield* extractExpressions(node.left);
yield* extractExpressions(node.right);
}
}
}
}
/** convert child node */
function convertChild(
node: ChildNode,
ctx: Ctx
): SvelteStyleChildNode | null {
const range = convertRange(node, ctx);
if (node.type === 'decl') {
const propRange: AST.Range = [range[0], range[0] + node.prop.length];
const declValueStartIndex = propRange[1] + (node.raws.between || '').length;
const valueRange: AST.Range = [
declValueStartIndex,
declValueStartIndex + (node.raws.value?.value || node.value).length
];
const prop: SvelteStyleDeclaration['prop'] = {
name: node.prop,
range: propRange,
get loc() {
return toLoc(propRange, ctx);
},
interpolations: []
};
const value: SvelteStyleDeclaration['value'] = {
value: node.value,
range: valueRange,
get loc() {
return toLoc(valueRange, ctx);
},
interpolations: []
};
const unknownInterpolations: E[] = [];
return {
type: 'decl',
prop,
value,
important: node.important,
range,
get loc() {
return toLoc(range, ctx);
},
addInterpolation(tagOrExpr) {
const index = tagOrExpr.range[0];
if (prop.range[0] <= index && index < prop.range[1]) {
prop.interpolations.push(tagOrExpr);
return;
}
if (value.range[0] <= index && index < value.range[1]) {
value.interpolations.push(tagOrExpr);
return;
}
unknownInterpolations.push(tagOrExpr);
},
unknownInterpolations
};
}
if (node.type === 'comment') {
return {
type: 'comment',
range,
get loc() {
return toLoc(range, ctx);
},
addInterpolation: () => {
throw new IgnoreError();
}
};
}
if (node.type === 'atrule') {
// unexpected node
return null;
}
if (node.type === 'rule') {
// unexpected node
return null;
}
// unknown node
return null;
}
/** convert range */
function convertRange(node: AnyNode, ctx: Ctx): AST.Range {
return [ctx.startOffset + node.source!.start!.offset, ctx.startOffset + node.source!.end!.offset];
}
/** convert range */
function toLoc(range: AST.Range, ctx: Ctx): AST.SourceLocation {
return {
start: ctx.context.sourceCode.getLocFromIndex(range[0]),
end: ctx.context.sourceCode.getLocFromIndex(range[1])
};
}
================================================
FILE: packages/eslint-plugin-svelte/src/utils/css-utils/template-safe-parser.ts
================================================
import SafeParser from 'postcss-safe-parser/lib/safe-parser.js';
import templateTokenize from './template-tokenize.js';
class TemplateSafeParser extends SafeParser {
protected createTokenizer(): void {
this.tokenizer = templateTokenize(this.input, { ignoreErrors: true });
}
}
export default TemplateSafeParser;
================================================
FILE: packages/eslint-plugin-svelte/src/utils/css-utils/template-tokenize.ts
================================================
import type { Tokenizer, Token } from 'postcss/lib/tokenize';
import tokenize from 'postcss/lib/tokenize';
type Tokenize = typeof tokenize;
/** Tokenize */
function templateTokenize(...args: Parameters): Tokenizer {
const tokenizer = tokenize(...args);
/** nextToken */
function nextToken(
...args: Parameters
): ReturnType {
const returned = [];
let token: Token | undefined, lastPos;
let depth = 0;
while ((token = tokenizer.nextToken(...args))) {
if (token[0] !== 'word') {
if (token[0] === '{') {
++depth;
} else if (token[0] === '}') {
--depth;
}
}
if (depth || returned.length) {
lastPos = token[3] || token[2] || lastPos;
returned.push(token);
}
if (!depth) {
break;
}
}
if (returned.length) {
token = ['word', returned.map((token) => token[1]).join(''), returned[0][2], lastPos];
}
return token;
}
return Object.assign({}, tokenizer, {
nextToken
});
}
export default templateTokenize;
================================================
FILE: packages/eslint-plugin-svelte/src/utils/css-utils/utils.ts
================================================
/**
* Checks whether given property name has vender prefix
*/
export function hasVendorPrefix(prop: string): boolean {
return Boolean(getVendorPrefix(prop));
}
/**
* Get the vender prefix from given property name
*/
export function getVendorPrefix(prop: string): string {
return /^-\w+-/u.exec(prop)?.[0] || '';
}
/**
* Strip the vender prefix
*/
export function stripVendorPrefix(prop: string): string {
return prop.slice(getVendorPrefix(prop).length);
}
================================================
FILE: packages/eslint-plugin-svelte/src/utils/element-occurences.ts
================================================
import type { AST } from 'svelte-eslint-parser';
export enum ElementOccurenceCount {
ZeroOrOne,
One,
ZeroToInf
}
function multiplyCounts(
left: ElementOccurenceCount,
right: ElementOccurenceCount
): ElementOccurenceCount {
if (left === ElementOccurenceCount.One) {
return right;
}
if (right === ElementOccurenceCount.One) {
return left;
}
if (left === right) {
return left;
}
return ElementOccurenceCount.ZeroToInf;
}
function childElementOccurenceCount(parent: AST.SvelteHTMLNode | null): ElementOccurenceCount {
if (parent === null) {
return ElementOccurenceCount.One;
}
if (
[
'SvelteIfBlock',
'SvelteElseBlock',
'SvelteAwaitBlock',
'SvelteAwaitPendingBlock',
'SvelteAwaitThenBlock',
'SvelteAwaitCatchBlock'
].includes(parent.type)
) {
return ElementOccurenceCount.ZeroOrOne;
}
if (
['SvelteEachBlock', 'SvelteSnippetBlock'].includes(parent.type) ||
(parent.type === 'SvelteElement' && parent.kind === 'component')
) {
return ElementOccurenceCount.ZeroToInf;
}
return ElementOccurenceCount.One;
}
export function elementOccurrenceCount(element: AST.SvelteHTMLNode): ElementOccurenceCount {
const parentCount =
element.parent !== null ? elementOccurrenceCount(element.parent) : ElementOccurenceCount.One;
const parentChildCount = childElementOccurenceCount(element.parent);
return multiplyCounts(parentCount, parentChildCount);
}
================================================
FILE: packages/eslint-plugin-svelte/src/utils/element-types.ts
================================================
export const voidElements = [
'area',
'base',
'br',
'col',
'embed',
'hr',
'img',
'input',
'keygen',
'link',
'menuitem',
'meta',
'param',
'source',
'track',
'wbr'
];
export const svgElements = [
'altGlyph',
'altGlyphDef',
'altGlyphItem',
'animate',
'animateColor',
'animateMotion',
'animateTransform',
'circle',
'clipPath',
'color-profile',
'cursor',
'defs',
'desc',
'discard',
'ellipse',
'feBlend',
'feColorMatrix',
'feComponentTransfer',
'feComposite',
'feConvolveMatrix',
'feDiffuseLighting',
'feDisplacementMap',
'feDistantLight',
'feDropShadow',
'feFlood',
'feFuncA',
'feFuncB',
'feFuncG',
'feFuncR',
'feGaussianBlur',
'feImage',
'feMerge',
'feMergeNode',
'feMorphology',
'feOffset',
'fePointLight',
'feSpecularLighting',
'feSpotLight',
'feTile',
'feTurbulence',
'filter',
'font',
'font-face',
'font-face-format',
'font-face-name',
'font-face-src',
'font-face-uri',
'foreignObject',
'g',
'glyph',
'glyphRef',
'hatch',
'hatchpath',
'hkern',
'image',
'line',
'linearGradient',
'marker',
'mask',
'mesh',
'meshgradient',
'meshpatch',
'meshrow',
'metadata',
'missing-glyph',
'mpath',
'path',
'pattern',
'polygon',
'polyline',
'radialGradient',
'rect',
'set',
'solidcolor',
'stop',
'svg',
'switch',
'symbol',
'text',
'textPath',
'tref',
'tspan',
'unknown',
'use',
'view',
'vkern'
];
export const mathmlElements = [
'annotation',
'annotation-xml',
'maction',
'math',
'merror',
'mfrac',
'mi',
'mmultiscripts',
'mn',
'mo',
'mover',
'mpadded',
'mphantom',
'mprescripts',
'mroot',
'mrow',
'ms',
'mspace',
'msqrt',
'mstyle',
'msub',
'msubsup',
'msup',
'mtable',
'mtd',
'mtext',
'mtr',
'munder',
'munderover',
'semantics'
];
================================================
FILE: packages/eslint-plugin-svelte/src/utils/eslint-core.ts
================================================
/* eslint @typescript-eslint/no-explicit-any: off -- util */
import type { RuleListener, RuleContext, RuleModule } from '../types.js';
import type { TSESTree } from '@typescript-eslint/types';
import type { AST as SvAST } from 'svelte-eslint-parser';
import { Linter } from 'eslint';
import Module from 'module';
const require = Module.createRequire(import.meta.url);
/**
* Define the wrapped core rule.
*/
export function defineWrapperListener(
coreRule: RuleModule,
context: RuleContext,
proxyOptions: {
createListenerProxy?: (listener: RuleListener) => RuleListener;
}
): RuleListener {
const listener = coreRule.create(context as any);
const svelteListener = proxyOptions.createListenerProxy?.(listener) ?? listener;
return svelteListener;
}
/**
* Get the proxy node
*/
export function getProxyNode(node: { type: string }, properties: any): any {
const cache: any = {};
return new Proxy(node, {
get(_t, key) {
if (key in cache) {
return cache[key];
}
if (key in properties) {
return (cache[key] = properties[key]);
}
return (node as any)[key];
}
});
}
/**
* Build the proxy rule listener
*/
export function buildProxyListener(
base: RuleListener,
convertNode: (
node: SvAST.SvelteNode | (TSESTree.Node & { parent: SvAST.SvelteNode | TSESTree.Node | null })
) => any
): RuleListener {
const listeners: RuleListener = {};
for (const [key, listener] of Object.entries(base)) {
listeners[key] = function (...args: [any, any, any]) {
(listener! as any).call(
this,
...args.map((arg) => {
if (
typeof arg === 'object' &&
'type' in arg &&
typeof arg.type === 'string' &&
'range' in arg
) {
return convertNode(arg);
}
return arg;
})
);
};
}
return listeners;
}
let ruleMap: Map | null = null;
/**
* Get the core rule implementation from the rule name
*/
export function getCoreRule(ruleName: string): RuleModule {
try {
const map: Map = ruleMap
? ruleMap
: (ruleMap = (new Linter() as any).getRules());
return map.get(ruleName)!;
} catch {
// getRules() is no longer available in flat config.
}
const { builtinRules } = require('eslint/use-at-your-own-risk');
ruleMap = builtinRules;
return builtinRules.get(ruleName) || null;
}
================================================
FILE: packages/eslint-plugin-svelte/src/utils/events.ts
================================================
// see: https://github.com/sveltejs/svelte/blob/a129592e5b248a734a68da6e9028941803a3d063/packages/svelte/elements.d.ts#L83
export const EVENT_NAMES: string[] = [
// Clipboard Events
'on:copy',
'oncopy',
'oncopycapture',
'on:cut',
'oncut',
'oncutcapture',
'on:paste',
'onpaste',
'onpastecapture',
// Composition Events
'on:compositionend',
'oncompositionend',
'oncompositionendcapture',
'on:compositionstart',
'oncompositionstart',
'oncompositionstartcapture',
'on:compositionupdate',
'oncompositionupdate',
'oncompositionupdatecapture',
// Focus Events
'on:focus',
'onfocus',
'onfocuscapture',
'on:focusin',
'onfocusin',
'onfocusincapture',
'on:focusout',
'onfocusout',
'onfocusoutcapture',
'on:blur',
'onblur',
'onblurcapture',
// Form Events
'on:change',
'onchange',
'onchangecapture',
'on:beforeinput',
'onbeforeinput',
'onbeforeinputcapture',
// oninput can be either an InputEvent or an Event, depending on the target element (input, textarea etc).
'on:input',
'oninput',
'oninputcapture',
'on:reset',
'onreset',
'onresetcapture',
'on:submit',
'onsubmit',
'onsubmitcapture',
'on:invalid',
'oninvalid',
'oninvalidcapture',
'on:formdata',
'onformdata',
'onformdatacapture',
// Image Events
'on:load',
'onload',
'onloadcapture',
'on:error',
'onerror',
'onerrorcapture',
// Popover Events
'on:beforetoggle',
'onbeforetoggle',
'onbeforetogglecapture',
'on:toggle',
'ontoggle',
'ontogglecapture',
// Content visibility Events
'on:contentvisibilityautostatechange',
'oncontentvisibilityautostatechange',
'oncontentvisibilityautostatechangecapture',
// Keyboard Events
'on:keydown',
'onkeydown',
'onkeydowncapture',
'on:keypress',
'onkeypress',
'onkeypresscapture',
'on:keyup',
'onkeyup',
'onkeyupcapture',
// Media Events
'on:abort',
'onabort',
'onabortcapture',
'on:canplay',
'oncanplay',
'oncanplaycapture',
'on:canplaythrough',
'oncanplaythrough',
'oncanplaythroughcapture',
'on:cuechange',
'oncuechange',
'oncuechangecapture',
'on:durationchange',
'ondurationchange',
'ondurationchangecapture',
'on:emptied',
'onemptied',
'onemptiedcapture',
'on:encrypted',
'onencrypted',
'onencryptedcapture',
'on:ended',
'onended',
'onendedcapture',
'on:loadeddata',
'onloadeddata',
'onloadeddatacapture',
'on:loadedmetadata',
'onloadedmetadata',
'onloadedmetadatacapture',
'on:loadstart',
'onloadstart',
'onloadstartcapture',
'on:pause',
'onpause',
'onpausecapture',
'on:play',
'onplay',
'onplaycapture',
'on:playing',
'onplaying',
'onplayingcapture',
'on:progress',
'onprogress',
'onprogresscapture',
'on:ratechange',
'onratechange',
'onratechangecapture',
'on:seeked',
'onseeked',
'onseekedcapture',
'on:seeking',
'onseeking',
'onseekingcapture',
'on:stalled',
'onstalled',
'onstalledcapture',
'on:suspend',
'onsuspend',
'onsuspendcapture',
'on:timeupdate',
'ontimeupdate',
'ontimeupdatecapture',
'on:volumechange',
'onvolumechange',
'onvolumechangecapture',
'on:waiting',
'onwaiting',
'onwaitingcapture',
// MouseEvents
'on:auxclick',
'onauxclick',
'onauxclickcapture',
'on:click',
'onclick',
'onclickcapture',
'on:contextmenu',
'oncontextmenu',
'oncontextmenucapture',
'on:dblclick',
'ondblclick',
'ondblclickcapture',
'on:drag',
'ondrag',
'ondragcapture',
'on:dragend',
'ondragend',
'ondragendcapture',
'on:dragenter',
'ondragenter',
'ondragentercapture',
'on:dragexit',
'ondragexit',
'ondragexitcapture',
'on:dragleave',
'ondragleave',
'ondragleavecapture',
'on:dragover',
'ondragover',
'ondragovercapture',
'on:dragstart',
'ondragstart',
'ondragstartcapture',
'on:drop',
'ondrop',
'ondropcapture',
'on:mousedown',
'onmousedown',
'onmousedowncapture',
'on:mouseenter',
'onmouseenter',
'on:mouseleave',
'onmouseleave',
'on:mousemove',
'onmousemove',
'onmousemovecapture',
'on:mouseout',
'onmouseout',
'onmouseoutcapture',
'on:mouseover',
'onmouseover',
'onmouseovercapture',
'on:mouseup',
'onmouseup',
'onmouseupcapture',
// Selection Events
'on:select',
'onselect',
'onselectcapture',
'on:selectionchange',
'onselectionchange',
'onselectionchangecapture',
'on:selectstart',
'onselectstart',
'onselectstartcapture',
// Touch Events
'on:touchcancel',
'ontouchcancel',
'ontouchcancelcapture',
'on:touchend',
'ontouchend',
'ontouchendcapture',
'on:touchmove',
'ontouchmove',
'ontouchmovecapture',
'on:touchstart',
'ontouchstart',
'ontouchstartcapture',
// Pointer Events
'on:gotpointercapture',
'ongotpointercapture',
'ongotpointercapturecapture',
'on:pointercancel',
'onpointercancel',
'onpointercancelcapture',
'on:pointerdown',
'onpointerdown',
'onpointerdowncapture',
'on:pointerenter',
'onpointerenter',
'onpointerentercapture',
'on:pointerleave',
'onpointerleave',
'onpointerleavecapture',
'on:pointermove',
'onpointermove',
'onpointermovecapture',
'on:pointerout',
'onpointerout',
'onpointeroutcapture',
'on:pointerover',
'onpointerover',
'onpointerovercapture',
'on:pointerup',
'onpointerup',
'onpointerupcapture',
'on:lostpointercapture',
'onlostpointercapture',
'onlostpointercapturecapture',
// Gamepad Events
'on:gamepadconnected',
'ongamepadconnected',
'on:gamepaddisconnected',
'ongamepaddisconnected',
// UI Events
'on:scroll',
'onscroll',
'onscrollcapture',
'on:scrollend',
'onscrollend',
'onscrollendcapture',
'on:resize',
'onresize',
'onresizecapture',
// Wheel Events
'on:wheel',
'onwheel',
'onwheelcapture',
// Animation Events
'on:animationstart',
'onanimationstart',
'onanimationstartcapture',
'on:animationend',
'onanimationend',
'onanimationendcapture',
'on:animationiteration',
'onanimationiteration',
'onanimationiterationcapture',
// Transition Events
'on:transitionstart',
'ontransitionstart',
'ontransitionstartcapture',
'on:transitionrun',
'ontransitionrun',
'ontransitionruncapture',
'on:transitionend',
'ontransitionend',
'ontransitionendcapture',
'on:transitioncancel',
'ontransitioncancel',
'ontransitioncancelcapture',
// Svelte Transition Events
'on:outrostart',
'onoutrostart',
'onoutrostartcapture',
'on:outroend',
'onoutroend',
'onoutroendcapture',
'on:introstart',
'onintrostart',
'onintrostartcapture',
'on:introend',
'onintroend',
'onintroendcapture',
// Message Events
'on:message',
'onmessage',
'onmessagecapture',
'on:messageerror',
'onmessageerror',
'onmessageerrorcapture',
// Document Events
'on:visibilitychange',
'onvisibilitychange',
'onvisibilitychangecapture',
// Global Events
'on:beforematch',
'onbeforematch',
'onbeforematchcapture',
'on:cancel',
'oncancel',
'oncancelcapture',
'on:close',
'onclose',
'onclosecapture',
'on:fullscreenchange',
'onfullscreenchange',
'onfullscreenchangecapture',
'on:fullscreenerror',
'onfullscreenerror',
'onfullscreenerrorcapture'
] as const;
================================================
FILE: packages/eslint-plugin-svelte/src/utils/expression-affixes.ts
================================================
import type { TSESTree } from '@typescript-eslint/types';
import type { RuleContext } from '../types.js';
import type { AST } from 'svelte-eslint-parser';
import { FindVariableContext } from './ast-utils.js';
export function extractExpressionPrefixVariable(
context: RuleContext,
expression: TSESTree.Expression
): TSESTree.Identifier | null {
return extractExpressionPrefixVariableInternal(new FindVariableContext(context), expression);
}
export function extractExpressionPrefixLiteral(
context: RuleContext,
expression: AST.SvelteLiteral | TSESTree.Node
): string | null {
return extractExpressionPrefixLiteralInternal(new FindVariableContext(context), expression);
}
export function extractExpressionSuffixLiteral(
context: RuleContext,
expression: AST.SvelteLiteral | TSESTree.Node
): string | null {
return extractExpressionSuffixLiteralInternal(new FindVariableContext(context), expression);
}
// Variable prefix extraction
function extractExpressionPrefixVariableInternal(
context: FindVariableContext,
expression: TSESTree.Expression
): TSESTree.Identifier | null {
switch (expression.type) {
case 'BinaryExpression':
return extractBinaryExpressionPrefixVariable(context, expression);
case 'Identifier':
return extractVariablePrefixVariable(context, expression);
case 'MemberExpression':
return extractMemberExpressionPrefixVariable(expression);
case 'TemplateLiteral':
return extractTemplateLiteralPrefixVariable(context, expression);
default:
return null;
}
}
function extractBinaryExpressionPrefixVariable(
context: FindVariableContext,
expression: TSESTree.BinaryExpression
): TSESTree.Identifier | null {
return expression.left.type !== 'PrivateIdentifier'
? extractExpressionPrefixVariableInternal(context, expression.left)
: null;
}
function extractVariablePrefixVariable(
context: FindVariableContext,
expression: TSESTree.Identifier
): TSESTree.Identifier | null {
const variable = context.findVariable(expression);
if (
variable === null ||
variable.identifiers.length !== 1 ||
variable.identifiers[0].parent.type !== 'VariableDeclarator' ||
variable.identifiers[0].parent.init === null
) {
return expression;
}
return (
extractExpressionPrefixVariableInternal(context, variable.identifiers[0].parent.init) ??
expression
);
}
function extractMemberExpressionPrefixVariable(
expression: TSESTree.MemberExpression
): TSESTree.Identifier | null {
return expression.property.type === 'Identifier' ? expression.property : null;
}
function extractTemplateLiteralPrefixVariable(
context: FindVariableContext,
expression: TSESTree.TemplateLiteral
): TSESTree.Identifier | null {
const literalParts = [...expression.expressions, ...expression.quasis].sort((a, b) =>
a.range[0] < b.range[0] ? -1 : 1
);
for (const part of literalParts) {
if (part.type === 'TemplateElement' && part.value.raw === '') {
// Skip empty quasi in the begining
continue;
}
if (part.type !== 'TemplateElement') {
return extractExpressionPrefixVariableInternal(context, part);
}
return null;
}
return null;
}
// Literal prefix extraction
function extractExpressionPrefixLiteralInternal(
context: FindVariableContext,
expression: AST.SvelteLiteral | TSESTree.Node
): string | null {
switch (expression.type) {
case 'BinaryExpression':
return extractBinaryExpressionPrefixLiteral(context, expression);
case 'Identifier':
return extractVariablePrefixLiteral(context, expression);
case 'Literal':
return typeof expression.value === 'string' ? expression.value : null;
case 'SvelteLiteral':
return expression.value;
case 'TemplateLiteral':
return extractTemplateLiteralPrefixLiteral(context, expression);
default:
return null;
}
}
function extractBinaryExpressionPrefixLiteral(
context: FindVariableContext,
expression: TSESTree.BinaryExpression
): string | null {
return expression.left.type !== 'PrivateIdentifier'
? extractExpressionPrefixLiteralInternal(context, expression.left)
: null;
}
function extractVariablePrefixLiteral(
context: FindVariableContext,
expression: TSESTree.Identifier
): string | null {
const variable = context.findVariable(expression);
if (
variable === null ||
variable.identifiers.length !== 1 ||
variable.identifiers[0].parent.type !== 'VariableDeclarator' ||
variable.identifiers[0].parent.init === null
) {
return null;
}
return extractExpressionPrefixLiteralInternal(context, variable.identifiers[0].parent.init);
}
function extractTemplateLiteralPrefixLiteral(
context: FindVariableContext,
expression: TSESTree.TemplateLiteral
): string | null {
const literalParts = [...expression.expressions, ...expression.quasis].sort((a, b) =>
a.range[0] < b.range[0] ? -1 : 1
);
for (const part of literalParts) {
if (part.type === 'TemplateElement') {
if (part.value.raw === '') {
// Skip empty quasi
continue;
}
return part.value.raw;
}
return extractExpressionPrefixLiteralInternal(context, part);
}
return null;
}
// Literal suffix extraction
function extractExpressionSuffixLiteralInternal(
context: FindVariableContext,
expression: AST.SvelteLiteral | TSESTree.Node
): string | null {
switch (expression.type) {
case 'BinaryExpression':
return extractBinaryExpressionSuffixLiteral(context, expression);
case 'Identifier':
return extractVariableSuffixLiteral(context, expression);
case 'Literal':
return typeof expression.value === 'string' ? expression.value : null;
case 'SvelteLiteral':
return expression.value;
case 'TemplateLiteral':
return extractTemplateLiteralSuffixLiteral(context, expression);
default:
return null;
}
}
function extractBinaryExpressionSuffixLiteral(
context: FindVariableContext,
expression: TSESTree.BinaryExpression
): string | null {
return extractExpressionSuffixLiteralInternal(context, expression.right);
}
function extractVariableSuffixLiteral(
context: FindVariableContext,
expression: TSESTree.Identifier
): string | null {
const variable = context.findVariable(expression);
if (
variable === null ||
variable.identifiers.length !== 1 ||
variable.identifiers[0].parent.type !== 'VariableDeclarator' ||
variable.identifiers[0].parent.init === null
) {
return null;
}
return extractExpressionSuffixLiteralInternal(context, variable.identifiers[0].parent.init);
}
function extractTemplateLiteralSuffixLiteral(
context: FindVariableContext,
expression: TSESTree.TemplateLiteral
): string | null {
const literalParts = [...expression.expressions, ...expression.quasis].sort((a, b) =>
a.range[0] < b.range[0] ? -1 : 1
);
for (const part of literalParts.reverse()) {
if (part.type === 'TemplateElement') {
if (part.value.raw === '') {
// Skip empty quasi
continue;
}
return part.value.raw;
}
return extractExpressionSuffixLiteralInternal(context, part);
}
return null;
}
================================================
FILE: packages/eslint-plugin-svelte/src/utils/get-node-module.ts
================================================
import fs from 'fs';
import path from 'path';
import { createCache } from './cache.js';
const isRunOnBrowser = !fs.readFileSync;
const nodeModuleCache = createCache();
const nodeModulesCache = createCache();
/**
* Find package directory in node_modules
*/
function findPackageInNodeModules(dir: string, packageName: string): string | null {
if (isRunOnBrowser) return null;
const nodeModulesPath = path.join(dir, 'node_modules');
const packagePath = path.join(nodeModulesPath, packageName);
try {
const stats = fs.statSync(packagePath);
if (stats.isDirectory()) {
return packagePath;
}
} catch {
// ignore if directory not found
}
return null;
}
/**
* Get first found package path from node_modules
*/
export function getNodeModule(packageName: string, startPath = 'a.js'): string | null {
if (isRunOnBrowser) return null;
const cacheKey = `${startPath}:${packageName}`;
const cached = nodeModulesCache.get(cacheKey);
if (cached) {
return cached[0] ?? null;
}
const startDir = path.dirname(path.resolve(startPath));
let dir = startDir;
let prevDir = '';
do {
// check cache
const cachePath = nodeModuleCache.get(`${dir}:${packageName}`);
if (cachePath) {
if (cachePath !== null) {
nodeModulesCache.set(cacheKey, [cachePath]);
return cachePath;
}
} else {
// search new
const packagePath = findPackageInNodeModules(dir, packageName);
nodeModuleCache.set(`${dir}:${packageName}`, packagePath);
if (packagePath) {
nodeModulesCache.set(cacheKey, [packagePath]);
return packagePath;
}
}
// go to parent
prevDir = dir;
dir = path.resolve(dir, '..');
} while (dir !== prevDir);
nodeModulesCache.set(cacheKey, []);
return null;
}
================================================
FILE: packages/eslint-plugin-svelte/src/utils/get-package-json.ts
================================================
/**
* refer: https://github.com/mysticatea/eslint-plugin-node/blob/f45c6149be7235c0f7422d1179c25726afeecd83/lib/util/get-package-json.js
*/
import fs from 'fs';
import path from 'path';
import { createCache } from './cache.js';
type PackageJson = {
name?: unknown;
dependencies?: { [key in string]?: unknown };
devDependencies?: { [key in string]?: unknown };
filePath: string;
};
const isRunOnBrowser = !fs.readFileSync;
const packageJsonCache = createCache();
const packageJsonsCache = createCache();
/**
* Reads the `package.json` data in a given path.
*
* Don't cache the data.
*
* @param dir The path to a directory to read.
* @returns The read `package.json` data, or null.
*/
function readPackageJson(dir: string): PackageJson | null {
if (isRunOnBrowser) return null;
const filePath = path.join(dir, 'package.json');
try {
const text = fs.readFileSync(filePath, 'utf8');
const data = JSON.parse(text);
if (typeof data === 'object' && data !== null) {
data.filePath = filePath;
return data;
}
} catch {
// do nothing.
}
return null;
}
/**
* Gets a `package.json` data.
* The data is cached if found, then it's used after.
* @param startPath A file path to lookup.
* @returns A found `package.json` data or `null`.
* This object have additional property `filePath`.
*/
export function getPackageJsons(startPath = 'a.js'): PackageJson[] {
if (isRunOnBrowser) return [];
const cached = packageJsonsCache.get(startPath);
if (cached) {
return cached;
}
const packageJsons: PackageJson[] = [];
const startDir = path.dirname(path.resolve(startPath));
let dir = startDir;
let prevDir = '';
let data = null;
do {
data = packageJsonCache.get(dir);
if (data) {
packageJsons.push(data);
}
data = readPackageJson(dir);
if (data) {
packageJsonCache.set(dir, data);
packageJsons.push(data);
}
// Go to next.
prevDir = dir;
dir = path.resolve(dir, '..');
} while (dir !== prevDir);
packageJsonsCache.set(startDir, packageJsons);
return packageJsons;
}
================================================
FILE: packages/eslint-plugin-svelte/src/utils/index.ts
================================================
import type { RuleModule, PartialRuleModule, PartialRuleMetaData, RuleContext } from '../types.js';
import { getSvelteContext, type SvelteContext } from '../utils/svelte-context.js';
function doesNotSatisfy(actual: T, expected?: T[]): boolean {
if (expected == null || expected.length === 0) {
return false;
}
return !expected.includes(actual);
}
function satisfiesCondition(
condition: NonNullable[number],
svelteContext: SvelteContext
): boolean {
if (
doesNotSatisfy(svelteContext.svelteVersion, condition.svelteVersions) ||
doesNotSatisfy(svelteContext.svelteFileType, condition.svelteFileTypes) ||
doesNotSatisfy(svelteContext.runes, condition.runes) ||
doesNotSatisfy(svelteContext.svelteKitVersion, condition.svelteKitVersions) ||
doesNotSatisfy(svelteContext.svelteKitFileType, condition.svelteKitFileTypes)
) {
return false;
}
return true;
}
// export for testing
export function shouldRun(
svelteContext: SvelteContext | null,
conditions: PartialRuleMetaData['conditions']
): boolean {
// If svelteContext is null, it means the rule might be executed based on the analysis result of a different parser.
// In this case, always execute the rule.
if (svelteContext == null || conditions == null || conditions.length === 0) {
return true;
}
for (const condition of conditions) {
if (satisfiesCondition(condition, svelteContext)) {
return true;
}
}
return false;
}
/**
* Define the rule.
* @param ruleName ruleName
* @param rule rule module
*/
export function createRule(ruleName: string, rule: PartialRuleModule): RuleModule {
return {
meta: {
...rule.meta,
docs: {
...rule.meta.docs,
url: `https://sveltejs.github.io/eslint-plugin-svelte/rules/${ruleName}/`,
ruleId: `svelte/${ruleName}`,
ruleName
}
},
create(context: RuleContext) {
const { conditions } = rule.meta;
const svelteContext = getSvelteContext(context);
if (!shouldRun(svelteContext, conditions)) {
return {};
}
return rule.create(context);
}
};
}
================================================
FILE: packages/eslint-plugin-svelte/src/utils/lines-and-columns.ts
================================================
export class LinesAndColumns {
private readonly lineStartIndices: number[];
public constructor(code: string) {
const len = code.length;
const lineStartIndices = [0];
for (let index = 0; index < len; index++) {
const c = code[index];
if (c === '\r') {
const next = code[index + 1] || '';
if (next === '\n') {
index++;
}
lineStartIndices.push(index + 1);
} else if (c === '\n') {
lineStartIndices.push(index + 1);
}
}
this.lineStartIndices = lineStartIndices;
}
public getLocFromIndex(index: number): { line: number; column: number } {
const lineNumber = sortedLastIndex(this.lineStartIndices, index);
return {
line: lineNumber,
column: index - this.lineStartIndices[lineNumber - 1]
};
}
public getIndexFromLoc(loc: { line: number; column: number }): number {
const lineStartIndex = this.lineStartIndices[loc.line - 1];
const positionIndex = lineStartIndex + loc.column;
return positionIndex;
}
}
/**
* Uses a binary search to determine the highest index at which value should be inserted into array in order to maintain its sort order.
*/
function sortedLastIndex(array: number[], value: number): number {
let lower = 0;
let upper = array.length;
while (lower < upper) {
const mid = Math.floor(lower + (upper - lower) / 2);
const target = array[mid];
if (target < value) {
lower = mid + 1;
} else if (target > value) {
upper = mid;
} else {
return mid + 1;
}
}
return upper;
}
================================================
FILE: packages/eslint-plugin-svelte/src/utils/load-module.ts
================================================
import type { AST } from 'svelte-eslint-parser';
import Module from 'module';
import path from 'path';
import type { RuleContext } from '../types.js';
const cache = new WeakMap>();
const cache4b = new Map();
/**
* Load module
*/
export function loadModule(context: RuleContext, name: string): R | null {
const key = context.sourceCode.ast;
let modules = cache.get(key);
if (!modules) {
modules = {};
cache.set(key, modules);
}
const mod = modules[name] || cache4b.get(name);
if (mod) return mod as R;
try {
// load from cwd
const cwd = context.cwd ?? process.cwd();
const relativeTo = path.join(cwd, '__placeholder__.js');
return (modules[name] = Module.createRequire(relativeTo)(name) as R);
} catch {
// ignore
}
for (const relativeTo of [
// load from lint file name
context.filename,
// load from lint file name (physical)
context.physicalFilename,
// load from this plugin module
typeof __filename !== 'undefined' ? __filename : ''
]) {
if (relativeTo) {
try {
return (modules[name] = Module.createRequire(relativeTo)(name) as R);
} catch {
// ignore
}
}
}
return null;
}
================================================
FILE: packages/eslint-plugin-svelte/src/utils/regexp.ts
================================================
const RE_REGEXP_STR = /^\/(.+)\/([A-Za-z]*)$/u;
/**
* Convert a string to the `RegExp`.
* Normal strings (e.g. `"foo"`) is converted to `/^foo$/` of `RegExp`.
* Strings like `"/^foo/i"` are converted to `/^foo/i` of `RegExp`.
*
* @param {string} string The string to convert.
* @returns {RegExp} Returns the `RegExp`.
*/
export function toRegExp(string: string): { test(s: string): boolean } {
const parts = RE_REGEXP_STR.exec(string);
if (parts) {
return new RegExp(parts[1], parts[2]);
}
return { test: (s) => s === string };
}
/**
* Checks whether given string is regexp string
* @param {string} string
* @returns {boolean}
*/
export function isRegExp(string: string): boolean {
return Boolean(RE_REGEXP_STR.test(string));
}
================================================
FILE: packages/eslint-plugin-svelte/src/utils/rules.ts
================================================
// IMPORTANT!
// This file has been automatically generated,
// in order to update its content execute "pnpm run update"
import type { RuleModule } from '../types.js';
import typescriptEslintNoUnnecessaryCondition from '../rules/@typescript-eslint/no-unnecessary-condition.js';
import blockLang from '../rules/block-lang.js';
import buttonHasType from '../rules/button-has-type.js';
import commentDirective from '../rules/comment-directive.js';
import consistentSelectorStyle from '../rules/consistent-selector-style.js';
import derivedHasSameInputsOutputs from '../rules/derived-has-same-inputs-outputs.js';
import experimentalRequireSlotTypes from '../rules/experimental-require-slot-types.js';
import experimentalRequireStrictEvents from '../rules/experimental-require-strict-events.js';
import firstAttributeLinebreak from '../rules/first-attribute-linebreak.js';
import htmlClosingBracketNewLine from '../rules/html-closing-bracket-new-line.js';
import htmlClosingBracketSpacing from '../rules/html-closing-bracket-spacing.js';
import htmlQuotes from '../rules/html-quotes.js';
import htmlSelfClosing from '../rules/html-self-closing.js';
import indent from '../rules/indent.js';
import infiniteReactiveLoop from '../rules/infinite-reactive-loop.js';
import maxAttributesPerLine from '../rules/max-attributes-per-line.js';
import maxLinesPerBlock from '../rules/max-lines-per-block.js';
import mustacheSpacing from '../rules/mustache-spacing.js';
import noAddEventListener from '../rules/no-add-event-listener.js';
import noAtDebugTags from '../rules/no-at-debug-tags.js';
import noAtHtmlTags from '../rules/no-at-html-tags.js';
import noDomManipulating from '../rules/no-dom-manipulating.js';
import noDupeElseIfBlocks from '../rules/no-dupe-else-if-blocks.js';
import noDupeOnDirectives from '../rules/no-dupe-on-directives.js';
import noDupeStyleProperties from '../rules/no-dupe-style-properties.js';
import noDupeUseDirectives from '../rules/no-dupe-use-directives.js';
import noDynamicSlotName from '../rules/no-dynamic-slot-name.js';
import noExportLoadInSvelteModuleInKitPages from '../rules/no-export-load-in-svelte-module-in-kit-pages.js';
import noExtraReactiveCurlies from '../rules/no-extra-reactive-curlies.js';
import noGotoWithoutBase from '../rules/no-goto-without-base.js';
import noIgnoredUnsubscribe from '../rules/no-ignored-unsubscribe.js';
import noImmutableReactiveStatements from '../rules/no-immutable-reactive-statements.js';
import noInlineStyles from '../rules/no-inline-styles.js';
import noInnerDeclarations from '../rules/no-inner-declarations.js';
import noInspect from '../rules/no-inspect.js';
import noNavigationWithoutBase from '../rules/no-navigation-without-base.js';
import noNavigationWithoutResolve from '../rules/no-navigation-without-resolve.js';
import noNotFunctionHandler from '../rules/no-not-function-handler.js';
import noObjectInTextMustaches from '../rules/no-object-in-text-mustaches.js';
import noRawSpecialElements from '../rules/no-raw-special-elements.js';
import noReactiveFunctions from '../rules/no-reactive-functions.js';
import noReactiveLiterals from '../rules/no-reactive-literals.js';
import noReactiveReassign from '../rules/no-reactive-reassign.js';
import noRestrictedHtmlElements from '../rules/no-restricted-html-elements.js';
import noShorthandStylePropertyOverrides from '../rules/no-shorthand-style-property-overrides.js';
import noSpacesAroundEqualSignsInAttribute from '../rules/no-spaces-around-equal-signs-in-attribute.js';
import noStoreAsync from '../rules/no-store-async.js';
import noSvelteInternal from '../rules/no-svelte-internal.js';
import noTargetBlank from '../rules/no-target-blank.js';
import noTopLevelBrowserGlobals from '../rules/no-top-level-browser-globals.js';
import noTrailingSpaces from '../rules/no-trailing-spaces.js';
import noUnknownStyleDirectiveProperty from '../rules/no-unknown-style-directive-property.js';
import noUnnecessaryStateWrap from '../rules/no-unnecessary-state-wrap.js';
import noUnusedClassName from '../rules/no-unused-class-name.js';
import noUnusedProps from '../rules/no-unused-props.js';
import noUnusedSvelteIgnore from '../rules/no-unused-svelte-ignore.js';
import noUselessChildrenSnippet from '../rules/no-useless-children-snippet.js';
import noUselessMustaches from '../rules/no-useless-mustaches.js';
import preferClassDirective from '../rules/prefer-class-directive.js';
import preferConst from '../rules/prefer-const.js';
import preferDestructuredStoreProps from '../rules/prefer-destructured-store-props.js';
import preferStyleDirective from '../rules/prefer-style-directive.js';
import preferSvelteReactivity from '../rules/prefer-svelte-reactivity.js';
import preferWritableDerived from '../rules/prefer-writable-derived.js';
import requireEachKey from '../rules/require-each-key.js';
import requireEventDispatcherTypes from '../rules/require-event-dispatcher-types.js';
import requireEventPrefix from '../rules/require-event-prefix.js';
import requireOptimizedStyleAttribute from '../rules/require-optimized-style-attribute.js';
import requireStoreCallbacksUseSetParam from '../rules/require-store-callbacks-use-set-param.js';
import requireStoreReactiveAccess from '../rules/require-store-reactive-access.js';
import requireStoresInit from '../rules/require-stores-init.js';
import shorthandAttribute from '../rules/shorthand-attribute.js';
import shorthandDirective from '../rules/shorthand-directive.js';
import sortAttributes from '../rules/sort-attributes.js';
import spacedHtmlComment from '../rules/spaced-html-comment.js';
import system from '../rules/system.js';
import validCompile from '../rules/valid-compile.js';
import validEachKey from '../rules/valid-each-key.js';
import validPropNamesInKitPages from '../rules/valid-prop-names-in-kit-pages.js';
import validStyleParse from '../rules/valid-style-parse.js';
export const rules = [
typescriptEslintNoUnnecessaryCondition,
blockLang,
buttonHasType,
commentDirective,
consistentSelectorStyle,
derivedHasSameInputsOutputs,
experimentalRequireSlotTypes,
experimentalRequireStrictEvents,
firstAttributeLinebreak,
htmlClosingBracketNewLine,
htmlClosingBracketSpacing,
htmlQuotes,
htmlSelfClosing,
indent,
infiniteReactiveLoop,
maxAttributesPerLine,
maxLinesPerBlock,
mustacheSpacing,
noAddEventListener,
noAtDebugTags,
noAtHtmlTags,
noDomManipulating,
noDupeElseIfBlocks,
noDupeOnDirectives,
noDupeStyleProperties,
noDupeUseDirectives,
noDynamicSlotName,
noExportLoadInSvelteModuleInKitPages,
noExtraReactiveCurlies,
noGotoWithoutBase,
noIgnoredUnsubscribe,
noImmutableReactiveStatements,
noInlineStyles,
noInnerDeclarations,
noInspect,
noNavigationWithoutBase,
noNavigationWithoutResolve,
noNotFunctionHandler,
noObjectInTextMustaches,
noRawSpecialElements,
noReactiveFunctions,
noReactiveLiterals,
noReactiveReassign,
noRestrictedHtmlElements,
noShorthandStylePropertyOverrides,
noSpacesAroundEqualSignsInAttribute,
noStoreAsync,
noSvelteInternal,
noTargetBlank,
noTopLevelBrowserGlobals,
noTrailingSpaces,
noUnknownStyleDirectiveProperty,
noUnnecessaryStateWrap,
noUnusedClassName,
noUnusedProps,
noUnusedSvelteIgnore,
noUselessChildrenSnippet,
noUselessMustaches,
preferClassDirective,
preferConst,
preferDestructuredStoreProps,
preferStyleDirective,
preferSvelteReactivity,
preferWritableDerived,
requireEachKey,
requireEventDispatcherTypes,
requireEventPrefix,
requireOptimizedStyleAttribute,
requireStoreCallbacksUseSetParam,
requireStoreReactiveAccess,
requireStoresInit,
shorthandAttribute,
shorthandDirective,
sortAttributes,
spacedHtmlComment,
system,
validCompile,
validEachKey,
validPropNamesInKitPages,
validStyleParse
] as RuleModule[];
================================================
FILE: packages/eslint-plugin-svelte/src/utils/svelte-context.ts
================================================
import type { RuleContext } from '../types.js';
import fs from 'fs';
import path from 'path';
import { getPackageJsons } from './get-package-json.js';
import { getNodeModule } from './get-node-module.js';
import { createCache } from './cache.js';
import { VERSION as SVELTE_VERSION } from 'svelte/compiler';
const isRunInBrowser = !fs.readFileSync;
export type SvelteContext = (
| {
svelteVersion: '3/4';
svelteFileType: '.svelte' | null;
runes: null;
}
| ({
svelteVersion: '5';
} & (
| {
svelteFileType: '.svelte' | '.svelte.[js|ts]';
/** If a user uses a parser other than `svelte-eslint-parser`, `undetermined` will be set. */
runes: boolean | 'undetermined';
}
| {
/** e.g. `foo.js` / `package.json` */
svelteFileType: null;
runes: null;
}
))
| {
/** For projects that do not use Svelte. */
svelteVersion: null;
svelteFileType: null;
runes: null;
}
) & {
svelteKitVersion: '1.0.0-next' | '1' | '2' | null;
svelteKitFileType:
| '+page.svelte'
| '+page.[js|ts]'
| '+page.server.[js|ts]'
| '+error.svelte'
| '+layout.svelte'
| '+layout.[js|ts]'
| '+layout.server.[js|ts]'
| '+server.[js|ts]'
| null;
};
function getSvelteFileType(filePath: string): SvelteContext['svelteFileType'] {
if (filePath.endsWith('.svelte')) {
return '.svelte';
}
if (filePath.endsWith('.svelte.js') || filePath.endsWith('.svelte.ts')) {
return '.svelte.[js|ts]';
}
return null;
}
function getSvelteKitFileTypeFromFilePath(filePath: string): SvelteContext['svelteKitFileType'] {
const fileName = filePath.split(/[/\\]/).pop();
switch (fileName) {
case '+page.svelte': {
return '+page.svelte';
}
case '+page.js':
case '+page.ts': {
return '+page.[js|ts]';
}
case '+page.server.js':
case '+page.server.ts': {
return '+page.server.[js|ts]';
}
case '+error.svelte': {
return '+error.svelte';
}
case '+layout.svelte': {
return '+layout.svelte';
}
case '+layout.js':
case '+layout.ts': {
return '+layout.[js|ts]';
}
case '+layout.server.js':
case '+layout.server.ts': {
return '+layout.server.[js|ts]';
}
case '+server.js':
case '+server.ts': {
return '+server.[js|ts]';
}
default: {
return null;
}
}
}
function extractMajorVersion(version: string, recognizePrereleaseVersion: boolean): string | null {
if (recognizePrereleaseVersion) {
const match = /^(?:\^|~)?(\d+\.0\.0-next)/.exec(version);
if (match && match[1]) {
return match[1];
}
}
const match = /^(?:\^|~)?(\d+)\./.exec(version);
if (match && match[1]) {
return match[1];
}
return null;
}
const svelteKitContextCache = createCache | null>();
function getSvelteKitContext(
context: RuleContext
): Pick {
const filePath = context.filename;
const cached = svelteKitContextCache.get(filePath);
if (cached) return cached;
const svelteKitVersion = getSvelteKitVersion(filePath);
if (svelteKitVersion == null) {
const result: Pick = {
svelteKitFileType: null,
svelteKitVersion: null
};
svelteKitContextCache.set(filePath, result);
return result;
}
if (isRunInBrowser) {
const result: Pick = {
svelteKitVersion,
// Judge by only file path if it runs in browser.
svelteKitFileType: getSvelteKitFileTypeFromFilePath(filePath)
};
svelteKitContextCache.set(filePath, result);
return result;
}
const routes =
(
context.settings?.svelte?.kit?.files?.routes ??
context.sourceCode.parserServices.svelteParseContext?.svelteConfig?.kit?.files?.routes
)?.replace(/^\//, '') ?? 'src/routes';
const projectRootDir = getProjectRootDir(context.filename) ?? '';
if (!filePath.startsWith(path.join(projectRootDir, routes))) {
const result: Pick = {
svelteKitVersion,
svelteKitFileType: null
};
svelteKitContextCache.set(filePath, result);
return result;
}
const result: Pick = {
svelteKitVersion,
svelteKitFileType: getSvelteKitFileTypeFromFilePath(filePath)
};
svelteKitContextCache.set(filePath, result);
return result;
}
function checkAndSetSvelteVersion(version: string): SvelteContext['svelteVersion'] | null {
const major = extractMajorVersion(version, false);
if (major == null) {
return null;
}
if (major === '3' || major === '4') {
return '3/4';
}
return major as SvelteContext['svelteVersion'];
}
export function getSvelteVersion(): SvelteContext['svelteVersion'] {
// Hack: if it runs in browser, it regards as Svelte project.
if (isRunInBrowser) {
return '5';
}
return checkAndSetSvelteVersion(SVELTE_VERSION);
}
const svelteKitVersionCache = createCache();
function checkAndSetSvelteKitVersion(
version: string,
filePath: string
): SvelteContext['svelteKitVersion'] {
const major = extractMajorVersion(version, true) as SvelteContext['svelteKitVersion'];
svelteKitVersionCache.set(filePath, major);
return major;
}
function getSvelteKitVersion(filePath: string): SvelteContext['svelteKitVersion'] {
const cached = svelteKitVersionCache.get(filePath);
if (cached) return cached;
// Hack: if it runs in browser, it regards as SvelteKit project.
if (isRunInBrowser) {
svelteKitVersionCache.set(filePath, '2');
return '2';
}
const nodeModule = getNodeModule('@sveltejs/kit', filePath);
if (nodeModule) {
try {
const packageJson = JSON.parse(
fs.readFileSync(path.join(nodeModule, 'package.json'), 'utf8')
);
const result = checkAndSetSvelteKitVersion(packageJson.version, filePath);
if (result != null) {
return result;
}
} catch {
/** do nothing */
}
}
try {
const packageJsons = getPackageJsons(filePath);
if (packageJsons.length > 0) {
if (packageJsons[0].name === 'eslint-plugin-svelte') {
// Hack: CI removes `@sveltejs/kit` and it returns false and test failed.
// So always it returns 2 if it runs on the package.
svelteKitVersionCache.set(filePath, '2');
return '2';
}
for (const packageJson of packageJsons) {
const version =
packageJson.dependencies?.['@sveltejs/kit'] ??
packageJson.devDependencies?.['@sveltejs/kit'];
if (typeof version === 'string') {
const result = checkAndSetSvelteKitVersion(version, filePath);
if (result != null) {
return result;
}
}
}
}
} catch {
/** do nothing */
}
svelteKitVersionCache.set(filePath, null);
return null;
}
const projectRootDirCache = createCache();
/**
* Gets a project root folder path.
* @param filePath A file path to lookup.
* @returns A found project root folder path or null.
*/
function getProjectRootDir(filePath: string): string | null {
if (isRunInBrowser) return null;
const cached = projectRootDirCache.get(filePath);
if (cached) return cached;
const packageJsons = getPackageJsons(filePath);
if (packageJsons.length === 0) {
projectRootDirCache.set(filePath, null);
return null;
}
const packageJsonFilePath = packageJsons[0].filePath;
if (!packageJsonFilePath) {
projectRootDirCache.set(filePath, null);
return null;
}
const projectRootDir = path.dirname(path.resolve(packageJsonFilePath));
projectRootDirCache.set(filePath, projectRootDir);
return projectRootDir;
}
const svelteContextCache = createCache();
export function getSvelteContext(context: RuleContext): SvelteContext | null {
const { parserServices } = context.sourceCode;
const { svelteParseContext } = parserServices;
const filePath = context.filename;
const cached = svelteContextCache.get(filePath);
if (cached) return cached;
const svelteKitContext = getSvelteKitContext(context);
const svelteVersion = getSvelteVersion();
const svelteFileType = getSvelteFileType(filePath);
if (svelteVersion == null) {
const result: SvelteContext = {
svelteVersion: null,
svelteFileType: null,
runes: null,
svelteKitVersion: svelteKitContext.svelteKitVersion,
svelteKitFileType: svelteKitContext.svelteKitFileType
};
svelteContextCache.set(filePath, result);
return result;
}
if (svelteVersion === '3/4') {
const result: SvelteContext = {
svelteVersion,
svelteFileType: svelteFileType === '.svelte' ? '.svelte' : null,
runes: null,
svelteKitVersion: svelteKitContext.svelteKitVersion,
svelteKitFileType: svelteKitContext.svelteKitFileType
};
svelteContextCache.set(filePath, result);
return result;
}
if (svelteFileType == null) {
const result: SvelteContext = {
svelteVersion,
svelteFileType: null,
runes: null,
svelteKitVersion: svelteKitContext.svelteKitVersion,
svelteKitFileType: svelteKitContext.svelteKitFileType
};
svelteContextCache.set(filePath, result);
return result;
}
const result: SvelteContext = {
svelteVersion,
runes: svelteParseContext?.runes ?? 'undetermined',
svelteFileType,
svelteKitVersion: svelteKitContext.svelteKitVersion,
svelteKitFileType: svelteKitContext.svelteKitFileType
};
svelteContextCache.set(filePath, result);
return result;
}
================================================
FILE: packages/eslint-plugin-svelte/src/utils/ts-utils/index.ts
================================================
import type { RuleContext, ASTNode } from '../../types.js';
import type * as TS from 'typescript';
import { loadModule } from '../load-module.js';
export type TypeScript = typeof TS;
export type { TS };
export type TSTools = {
service: {
esTreeNodeToTSNodeMap: ReadonlyMap;
tsNodeToESTreeNodeMap: ReadonlyMap;
program: TS.Program;
hasFullTypeInformation: boolean;
};
ts: TypeScript;
};
/**
* Get TypeScript tools
*/
export function getTypeScriptTools(context: RuleContext): TSTools | null {
const ts = getTypeScript(context);
if (!ts) {
return null;
}
const sourceCode = context.sourceCode;
const { program, esTreeNodeToTSNodeMap, tsNodeToESTreeNodeMap } = sourceCode.parserServices;
if (!program || !esTreeNodeToTSNodeMap || !tsNodeToESTreeNodeMap) {
return null;
}
const hasFullTypeInformation = sourceCode.parserServices.hasFullTypeInformation ?? true;
if (!hasFullTypeInformation) {
// Full type information is required. User must specify parserOptions.project.
return null;
}
return {
service: {
esTreeNodeToTSNodeMap,
tsNodeToESTreeNodeMap,
hasFullTypeInformation,
program
},
ts
};
}
let cacheTypeScript: TypeScript | null = null;
/**
* Get TypeScript tools
*/
export function getTypeScript(context: RuleContext): TypeScript | null {
if (cacheTypeScript) {
return cacheTypeScript;
}
cacheTypeScript = loadModule(context, 'typescript');
if (cacheTypeScript) {
return cacheTypeScript;
}
try {
// eslint-disable-next-line @typescript-eslint/no-require-imports -- ignore
cacheTypeScript ??= require('typescript');
} catch {
// ignore
}
return cacheTypeScript;
}
/**
* Check whether the given type is a truthy literal type or not.
*/
export function isTruthyLiteral(type: TS.Type, tsTools: TSTools): boolean {
if (type.isUnion()) {
return type.types.every((t) => isTruthyLiteral(t, tsTools));
}
return (
(isBooleanLiteralType(type, tsTools.ts) &&
tsTools.service.program.getTypeChecker().typeToString(type) === 'true') ||
(type.isLiteral() && Boolean(type.value))
);
}
/**
* Check whether the given type is a falsy type or not.
*/
export function isFalsyType(type: TS.Type, tsTools: TSTools): boolean {
if (type.isUnion()) {
return type.types.every((t) => isFalsyType(t, tsTools));
}
if (
isUndefinedType(type, tsTools.ts) ||
isNullType(type, tsTools.ts) ||
isVoidType(type, tsTools.ts)
)
return true;
if (type.isLiteral()) return !type.value;
return (
isBooleanLiteralType(type, tsTools.ts) &&
tsTools.service.program.getTypeChecker().typeToString(type) === 'false'
);
}
/**
* Check whether the given type is a nullish type or not.
*/
export function isNullishType(type: TS.Type, ts: TypeScript): boolean {
if (type.isUnion()) {
return type.types.every((t) => isNullishType(t, ts));
}
return isNullType(type, ts) || isUndefinedType(type, ts);
}
/**
* Checks whether the given type is nullable or not.
*/
export function isNullableType(type: TS.Type, ts: TypeScript): boolean {
if (type.isUnion()) {
return type.types.some((t) => isNullableType(t, ts));
}
return isNullType(type, ts) || isUndefinedType(type, ts);
}
/**
* Check whether the given type is a boolean literal type or not.
*/
export function isBooleanLiteralType(type: TS.Type, ts: TypeScript): boolean {
return (type.flags & ts.TypeFlags.BooleanLiteral) !== 0;
}
/**
* Check whether the given type is an object type or not.
*/
export function isObjectType(type: TS.Type, ts: TypeScript): type is TS.ObjectType {
return (type.flags & ts.TypeFlags.Object) !== 0;
}
/**
* Check whether the given type is a reference type or not.
*/
export function isReferenceObjectType(type: TS.Type, ts: TypeScript): type is TS.TypeReference {
return isObjectType(type, ts) && (type.objectFlags & ts.ObjectFlags.Reference) !== 0;
}
/**
* Check whether the given type is a tuple type or not.
*/
export function isTupleObjectType(type: TS.Type, ts: TypeScript): type is TS.TupleType {
return isObjectType(type, ts) && (type.objectFlags & ts.ObjectFlags.Tuple) !== 0;
}
/**
* Check whether the given type is a tuple type or not.
* Unlike isTupleObjectType, it also refers to reference types.
*/
export function isTupleType(type: TS.Type, ts: TypeScript): boolean {
return (
isTupleObjectType(type, ts) ||
(isReferenceObjectType(type, ts) && isTupleObjectType(type.target, ts))
);
}
/**
* Check whether the given type is an any type or not.
*/
export function isAnyType(type: TS.Type, ts: TypeScript): boolean {
return (type.flags & ts.TypeFlags.Any) !== 0;
}
/**
* Check whether the given type is an unknown type or not.
*/
export function isUnknownType(type: TS.Type, ts: TypeScript): boolean {
return (type.flags & ts.TypeFlags.Unknown) !== 0;
}
/**
* Check whether the given type is a never type or not.
*/
export function isNeverType(type: TS.Type, ts: TypeScript): boolean {
return (type.flags & ts.TypeFlags.Never) !== 0;
}
/**
* Check whether the given type is an undefined type or not.
*/
export function isUndefinedType(type: TS.Type, ts: TypeScript): boolean {
return (type.flags & ts.TypeFlags.Undefined) !== 0;
}
/**
* Check whether the given type is a void type or not.
*/
export function isVoidType(type: TS.Type, ts: TypeScript): boolean {
return (type.flags & ts.TypeFlags.Void) !== 0;
}
/**
* Check whether the given type is a null type or not.
*/
export function isNullType(type: TS.Type, ts: TypeScript): boolean {
return (type.flags & ts.TypeFlags.Null) !== 0;
}
/**
* Check whether the given type is a possibly falsy type or not.
*/
export function isPossiblyFalsyType(type: TS.Type, ts: TypeScript): boolean {
if (type.isUnion()) {
return type.types.some((t) => isPossiblyFalsyType(t, ts));
}
return (type.flags & ts.TypeFlags.PossiblyFalsy) !== 0;
}
/**
* Get the call signatures from the given type.
* This method is heavily inspired by tsutils. https://github.com/ajafff/tsutils
* The MIT License (MIT) Copyright (c) 2017 Klaus Meinhardt
* https://github.com/ajafff/tsutils/blob/master/LICENSE
*/
export function getCallSignaturesOfType(type: TS.Type): readonly TS.Signature[] {
if (type.isUnion()) {
return type.types.flatMap((t) => getCallSignaturesOfType(t));
}
if (type.isIntersection()) {
let signatures: readonly TS.Signature[] = [];
for (const t of type.types) {
const sig = getCallSignaturesOfType(t);
if (sig.length !== 0) {
if (signatures.length) {
// if more than one type of the intersection has call signatures, none of them is useful for inference
return [];
}
signatures = sig;
}
}
return signatures;
}
return type.getCallSignatures();
}
/**
* Resolves the given node's type. Will resolve to the type's generic constraint, if it has one.
* Copied this method from @typescript-eslint/type-utils. https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/type-utils
* The MIT License (MIT) Copyright (c) 2021 TypeScript ESLint and other contributors
* https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/type-utils/LICENSE
*/
export function getConstrainedTypeAtLocation(checker: TS.TypeChecker, node: TS.Node): TS.Type {
const nodeType = checker.getTypeAtLocation(node);
const constrained = checker.getBaseConstraintOfType(nodeType);
return constrained ?? nodeType;
}
/**
* Get the type name of a given type.
*
* Copied this method from @typescript-eslint/type-utils. https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/type-utils
* The MIT License (MIT) Copyright (c) 2021 TypeScript ESLint and other contributors
* https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/type-utils/LICENSE
*
* @param type The type to get the name of.
*/
export function getTypeName(type: TS.Type, tsTools: TSTools): string {
const { ts } = tsTools;
// It handles `string` and string literal types as string.
if ((type.flags & ts.TypeFlags.StringLike) !== 0) {
return 'string';
}
const typeChecker = tsTools.service.program.getTypeChecker();
// If the type is a type parameter which extends primitive string types,
// but it was not recognized as a string like. So check the constraint
// type of the type parameter.
if ((type.flags & ts.TypeFlags.TypeParameter) !== 0) {
// `type.getConstraint()` method doesn't return the constraint type of
// the type parameter for some reason. So this gets the constraint type
// via AST.
const symbol = type.getSymbol();
const decls = symbol?.getDeclarations();
const typeParamDecl = decls?.[0] as TS.TypeParameterDeclaration;
if (ts.isTypeParameterDeclaration(typeParamDecl) && typeParamDecl.constraint != null) {
return getTypeName(typeChecker.getTypeFromTypeNode(typeParamDecl.constraint), tsTools);
}
}
// If the type is a union and all types in the union are string like,
// return `string`. For example:
// - `"a" | "b"` is string.
// - `string | string[]` is not string.
if (
type.isUnion() &&
type.types.map((value) => getTypeName(value, tsTools)).every((t) => t === 'string')
) {
return 'string';
}
// If the type is an intersection and a type in the intersection is string
// like, return `string`. For example: `string & {__htmlEscaped: void}`
if (
type.isIntersection() &&
type.types.map((value) => getTypeName(value, tsTools)).some((t) => t === 'string')
) {
return 'string';
}
return typeChecker.typeToString(type);
}
/**
* Return the type of the given property in the given type, or undefined if no such property exists
*/
export function getTypeOfPropertyOfType(
type: TS.Type,
name: string,
checker: TS.TypeChecker
): TS.Type | undefined {
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- getTypeOfPropertyOfType is an internal API of TS.
return (checker as any).getTypeOfPropertyOfType(type, name);
}
/**
* Check whether the given symbol is a method type or not.
*/
export function isMethodSymbol(type: TS.Symbol, ts: TypeScript): boolean {
return (type.getFlags() & ts.SymbolFlags.Method) !== 0;
}
/**
* Check whether the given node is a property signature kind or not.
*/
export function isPropertySignatureKind(
node: TS.Node,
ts: TypeScript
): node is TS.PropertySignature {
return node.kind === ts.SyntaxKind.PropertySignature;
}
/**
* Check whether the given node is a function type kind or not.
*/
export function isFunctionTypeKind(node: TS.Node, ts: TypeScript): node is TS.FunctionTypeNode {
return node.kind === ts.SyntaxKind.FunctionType;
}
/**
* Check whether the given node is a method signature kind or not.
*/
export function isMethodSignatureKind(node: TS.Node, ts: TypeScript): node is TS.MethodSignature {
return node.kind === ts.SyntaxKind.MethodSignature;
}
/**
* Check whether the given node is a type reference kind or not.
*/
export function isTypeReferenceKind(node: TS.Node, ts: TypeScript): node is TS.TypeReferenceNode {
return node.kind === ts.SyntaxKind.TypeReference;
}
/**
* Check whether the given node is an identifier kind or not.
*/
export function isIdentifierKind(node: TS.Node, ts: TypeScript): node is TS.Identifier {
return node.kind === ts.SyntaxKind.Identifier;
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/@typescript-eslint/no-unnecessary-condition/invalid/binary-expression01-errors.yaml
================================================
- message: Unnecessary conditional, both sides of the expression are literal values.
line: 4
column: 13
suggestions: null
- message: Unnecessary conditional, both sides of the expression are literal values.
line: 8
column: 9
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/@typescript-eslint/no-unnecessary-condition/invalid/binary-expression01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/@typescript-eslint/no-unnecessary-condition/invalid/binary-expression01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/@typescript-eslint/no-unnecessary-condition/invalid/example-errors.yaml
================================================
- message: Unnecessary conditional, value is always falsy.
line: 4
column: 11
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/@typescript-eslint/no-unnecessary-condition/invalid/example-input.svelte
================================================
{foo || 42}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/@typescript-eslint/no-unnecessary-condition/invalid/example-output.svelte
================================================
{foo || 42}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/@typescript-eslint/no-unnecessary-condition/invalid/nullish-coalescing01-errors.yaml
================================================
- message: Unnecessary conditional, left-hand side of `??` operator is always
`null` or `undefined`.
line: 5
column: 13
suggestions: null
- message: Unnecessary conditional, left-hand side of `??` operator is always
`null` or `undefined`.
line: 9
column: 9
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/@typescript-eslint/no-unnecessary-condition/invalid/nullish-coalescing01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/@typescript-eslint/no-unnecessary-condition/invalid/nullish-coalescing01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/@typescript-eslint/no-unnecessary-condition/invalid/optional-chaining01-errors.yaml
================================================
- message: Unnecessary optional chain on a non-nullish value.
line: 4
column: 16
suggestions: null
- message: Unnecessary optional chain on a non-nullish value.
line: 8
column: 12
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/@typescript-eslint/no-unnecessary-condition/invalid/optional-chaining01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/@typescript-eslint/no-unnecessary-condition/invalid/optional-chaining01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/@typescript-eslint/no-unnecessary-condition/invalid/test01-errors.yaml
================================================
- message: Unnecessary conditional, value is always truthy.
line: 5
column: 14
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/@typescript-eslint/no-unnecessary-condition/invalid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/@typescript-eslint/no-unnecessary-condition/invalid/test01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/@typescript-eslint/no-unnecessary-condition/valid/reactive-statement01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/@typescript-eslint/no-unnecessary-condition/valid/template01-input.svelte
================================================
(foo = !foo)} />
{#if !foo}
{bar}
{/if}
{#if !foo && bar}
{bar}
{/if}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/enforce/_config.json
================================================
{
"options": [{ "enforceScriptPresent": true }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/enforce/no-script01-errors.yaml
================================================
- message: The
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/javascript/javascript-as-style-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/javascript/js01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/javascript/js01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/javascript/null01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/javascript/null01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/javascript/ts01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/javascript/ts01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/javascript/typescript01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/javascript/typescript01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/js/_config.json
================================================
{
"options": [{ "script": ["js"], "style": ["js", null] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/js/javascript01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/js/javascript01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/js/js-as-style-lang01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/js/js-as-style-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/js/null01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/js/null01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/js/ts01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/js/ts01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/js/typescript01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/js/typescript01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/module-context/_config.json
================================================
{
"options": [{ "script": ["ts"], "style": ["ts", null] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/module-context/javascript01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/module-context/javascript01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/module-context/js01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/module-context/js01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/module-context/null01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/module-context/null01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/module-context/ts-as-style-lang01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/module-context/ts-as-style-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/module-context/typescript01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/module-context/typescript01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/multiple/_config.json
================================================
{
"options": [
{
"script": ["ts", "typescript", null],
"style": ["ts", "typescript", null]
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/multiple/javascript01-errors.yaml
================================================
- message: The lang attribute of the
- desc: Replace a
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/multiple/javascript01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/multiple/js01-errors.yaml
================================================
- message: The lang attribute of the
- desc: Replace a
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/multiple/js01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/multiple/null-as-style-lang01-errors.yaml
================================================
- message: The lang attribute of the
- desc: Replace a
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/multiple/null-as-style-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/multiple/ts-as-style-lang01-errors.yaml
================================================
- message: The lang attribute of the
- desc: Replace a
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/multiple/ts-as-style-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/multiple/typescript-as-style-lang01-errors.yaml
================================================
- message: The lang attribute of the
- desc: Replace a
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/multiple/typescript-as-style-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/null/_config.json
================================================
{
"options": [{ "script": [null] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/null/javascript01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/null/javascript01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/null/js01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/null/js01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/null/null-as-style-lang01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/null/null-as-style-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/null/ts01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/null/ts01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/null/typescript01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/null/typescript01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/shorthand/_config.json
================================================
{
"options": [{ "script": "ts", "style": ["ts", null] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/shorthand/javascript01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/shorthand/javascript01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/shorthand/js01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/shorthand/js01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/shorthand/null01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/shorthand/null01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/shorthand/ts-as-style-lang01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/shorthand/ts-as-style-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/shorthand/typescript01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/shorthand/typescript01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/ts/_config.json
================================================
{
"options": [{ "script": ["ts"], "style": ["ts", null] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/ts/javascript01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/ts/javascript01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/ts/js01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/ts/js01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/ts/null01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/ts/null01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/ts/ts-as-style-lang01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/ts/ts-as-style-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/ts/typescript01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/ts/typescript01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/typescript/_config.json
================================================
{
"options": [{ "script": ["typescript"], "style": ["typescript", null] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/typescript/javascript01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/typescript/javascript01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/typescript/js01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/typescript/js01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/typescript/null01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/typescript/null01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/typescript/ts01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/typescript/ts01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/typescript/typescript-as-style-lang01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/script/typescript/typescript-as-style-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/style/enforce/_config.json
================================================
{
"options": [{ "enforceStylePresent": true }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/style/enforce/no-style01-errors.yaml
================================================
- message: The
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/style/null/null-as-script-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/style/null/sass01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/style/null/sass01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/style/null/scss01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/style/null/scss01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/style/sass/_config.json
================================================
{
"options": [{ "script": ["sass", null], "style": ["sass"] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/style/sass/null01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/style/sass/null01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/style/sass/sass-as-script-lang01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/style/sass/sass-as-script-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/style/sass/scss01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/style/sass/scss01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/style/scss/_config.json
================================================
{
"options": [{ "script": ["scss", null], "style": ["scss"] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/style/scss/null01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/style/scss/null01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/style/scss/sass01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/style/scss/sass01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/style/scss/scss-as-script-lang01-errors.yaml
================================================
- message: The lang attribute of the
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/invalid/style/scss/scss-as-script-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/non-svelte/_config.json
================================================
{
"options": [
{
"enforceScriptPresent": true,
"enforceStylePresent": true,
"script": "ts",
"style": "scss"
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/non-svelte/non-svelte01-input.ts
================================================
export const value: boolean | number = false;
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/non-svelte/non-svelte02-input.js
================================================
export const value = false;
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/script/enforce/_config.json
================================================
{
"options": [{ "enforceScriptPresent": true }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/script/enforce/script-present01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/script/javascript/_config.json
================================================
{
"options": [{ "script": ["javascript"], "style": ["scss", null] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/script/javascript/correct-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/script/javascript/no-script01-input.svelte
================================================
Hello World!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/script/javascript/style-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/script/js/_config.json
================================================
{
"options": [{ "script": ["js"], "style": ["scss", null] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/script/js/correct-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/script/js/no-script01-input.svelte
================================================
Hello World!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/script/js/style-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/script/multiple/_config.json
================================================
{
"options": [{ "script": ["ts"], "style": ["scss", null] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/script/multiple/correct-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/script/multiple/no-script01-input.svelte
================================================
Hello World!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/script/multiple/style-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/script/null/_config.json
================================================
{
"options": [{ "script": [null], "style": ["scss", null] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/script/null/no-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/script/null/no-script01-input.svelte
================================================
Hello World!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/script/null/style-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/script/shorthand/_config.json
================================================
{
"options": [{ "script": "ts", "style": ["scss", null] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/script/shorthand/correct-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/script/shorthand/no-script01-input.svelte
================================================
Hello World!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/script/shorthand/style-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/script/ts/_config.json
================================================
{
"options": [{ "script": ["ts", "typescript", null], "style": ["scss", null] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/script/ts/correct-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/script/ts/correct-lang02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/script/ts/correct-lang03-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/script/ts/no-script01-input.svelte
================================================
Hello World!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/script/ts/style-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/script/ts/style-lang02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/script/ts/style-lang03-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/script/typescript/_config.json
================================================
{
"options": [{ "script": ["typescript"], "style": ["scss", null] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/script/typescript/correct-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/script/typescript/no-script01-input.svelte
================================================
Hello World!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/script/typescript/style-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/style/enforce/_config.json
================================================
{
"options": [{ "enforceStylePresent": true }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/style/enforce/style-present01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/style/null/_config.json
================================================
{
"options": [{ "script": ["js", null], "style": [null] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/style/null/no-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/style/null/no-style01-input.svelte
================================================
Hello World!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/style/null/script-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/style/sass/_config.json
================================================
{
"options": [{ "script": ["ts", null], "style": ["sass"] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/style/sass/correct-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/style/sass/no-style01-input.svelte
================================================
Hello World!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/style/sass/script-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/style/scss/_config.json
================================================
{
"options": [{ "script": ["js", null], "style": ["scss"] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/style/scss/correct-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/style/scss/no-style01-input.svelte
================================================
Hello World!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/block-lang/valid/style/scss/script-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/button-has-type/invalid/button-false/_config.json
================================================
{
"options": [{ "button": false }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/button-has-type/invalid/button-false/invalid-button-errors.yaml
================================================
- message: button is a forbidden value for button type attribute.
line: 1
column: 9
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/button-has-type/invalid/button-false/invalid-button-input.svelte
================================================
Hello World
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/button-has-type/invalid/reset-false/_config.json
================================================
{
"options": [{ "reset": false }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/button-has-type/invalid/reset-false/invalid-reset-errors.yaml
================================================
- message: reset is a forbidden value for button type attribute.
line: 1
column: 9
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/button-has-type/invalid/reset-false/invalid-reset-input.svelte
================================================
Hello World
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/button-has-type/invalid/submit-false/_config.json
================================================
{
"options": [{ "submit": false }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/button-has-type/invalid/submit-false/invalid-submit-errors.yaml
================================================
- message: submit is a forbidden value for button type attribute.
line: 1
column: 9
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/button-has-type/invalid/submit-false/invalid-submit-input.svelte
================================================
Hello World
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/button-has-type/invalid/test01-errors.yaml
================================================
- message: Missing an explicit type attribute for button.
line: 1
column: 1
suggestions: null
- message: A value must be set for button type attribute.
line: 2
column: 9
suggestions: null
- message: A value must be set for button type attribute.
line: 3
column: 9
suggestions: null
- message: foo is an invalid value for button type attribute.
line: 4
column: 9
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/button-has-type/invalid/test01-input.svelte
================================================
Hello World
Hello World
Hello World
Hello World
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/button-has-type/valid/test01-input.svelte
================================================
Hello World
Hello World
Hello World
Hello World
Hello World
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/invalid/global/_config.json
================================================
{
"options": [{ "checkGlobal": true }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/invalid/global/should-be-id01-errors.yaml
================================================
- message: Selector should select by ID instead of class
line: 10
column: 11
suggestions: null
- message: Selector should select by ID instead of class
line: 14
column: 11
suggestions: null
- message: Selector should select by ID instead of class
line: 18
column: 11
suggestions: null
- message: Selector should select by ID instead of class
line: 22
column: 11
suggestions: null
- message: Selector should select by ID instead of class
line: 22
column: 19
suggestions: null
- message: Selector should select by ID instead of class
line: 26
column: 11
suggestions: null
- message: Selector should select by ID instead of class
line: 30
column: 11
suggestions: null
- message: Selector should select by ID instead of class
line: 35
column: 5
suggestions: null
- message: Selector should select by ID instead of class
line: 39
column: 5
suggestions: null
- message: Selector should select by ID instead of class
line: 43
column: 5
suggestions: null
- message: Selector should select by ID instead of class
line: 47
column: 5
suggestions: null
- message: Selector should select by ID instead of class
line: 47
column: 13
suggestions: null
- message: Selector should select by ID instead of class
line: 51
column: 5
suggestions: null
- message: Selector should select by ID instead of class
line: 55
column: 5
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/invalid/global/should-be-id01-input.svelte
================================================
Click me!
Click me two!
Text 1
Text 3
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/invalid/global/should-be-type01-errors.yaml
================================================
- message: Selector should select by element type instead of class
line: 12
column: 11
suggestions: null
- message: Selector should select by element type instead of class
line: 16
column: 11
suggestions: null
- message: Selector should select by element type instead of class
line: 20
column: 11
suggestions: null
- message: Selector should select by element type instead of class
line: 24
column: 11
suggestions: null
- message: Selector should select by element type instead of class
line: 24
column: 28
suggestions: null
- message: Selector should select by element type instead of class
line: 28
column: 11
suggestions: null
- message: Selector should select by element type instead of class
line: 32
column: 11
suggestions: null
- message: Selector should select by element type instead of ID
line: 36
column: 11
suggestions: null
- message: Selector should select by element type instead of ID
line: 40
column: 11
suggestions: null
- message: Selector should select by element type instead of ID
line: 44
column: 15
suggestions: null
- message: Selector should select by element type instead of ID
line: 48
column: 11
suggestions: null
- message: Selector should select by element type instead of class
line: 53
column: 5
suggestions: null
- message: Selector should select by element type instead of class
line: 57
column: 5
suggestions: null
- message: Selector should select by element type instead of class
line: 61
column: 5
suggestions: null
- message: Selector should select by element type instead of class
line: 65
column: 5
suggestions: null
- message: Selector should select by element type instead of class
line: 65
column: 13
suggestions: null
- message: Selector should select by element type instead of class
line: 69
column: 5
suggestions: null
- message: Selector should select by element type instead of class
line: 73
column: 5
suggestions: null
- message: Selector should select by element type instead of ID
line: 77
column: 5
suggestions: null
- message: Selector should select by element type instead of ID
line: 81
column: 5
suggestions: null
- message: Selector should select by element type instead of ID
line: 85
column: 9
suggestions: null
- message: Selector should select by element type instead of ID
line: 89
column: 5
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/invalid/global/should-be-type01-input.svelte
================================================
Click me!
Click me two!
Text 1
Text 2
Italic
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/invalid/id-class-type/_config.json
================================================
{
"options": [{ "style": ["id", "class", "type"] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/invalid/id-class-type/should-be-id-combination01-errors.yaml
================================================
- message: Selector should select by ID instead of class
line: 12
column: 3
suggestions: null
- message: Selector should select by ID instead of class
line: 13
column: 3
suggestions: null
- message: Selector should select by ID instead of class
line: 14
column: 3
suggestions: null
- message: Selector should select by ID instead of class
line: 15
column: 3
suggestions: null
- message: Selector should select by ID instead of class
line: 15
column: 11
suggestions: null
- message: Selector should select by ID instead of class
line: 16
column: 3
suggestions: null
- message: Selector should select by ID instead of class
line: 17
column: 3
suggestions: null
- message: Selector should select by ID instead of element type
line: 18
column: 3
suggestions: null
- message: Selector should select by ID instead of element type
line: 19
column: 3
suggestions: null
- message: Selector should select by ID instead of class
line: 20
column: 3
suggestions: null
- message: Selector should select by ID instead of element type
line: 20
column: 11
suggestions: null
- message: Selector should select by ID instead of element type
line: 21
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/invalid/id-class-type/should-be-id-combination01-input.svelte
================================================
Click me!
Click me two!
Text 1
Text 3
Italic
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/invalid/id-class-type/should-be-id01-errors.yaml
================================================
- message: Selector should select by ID instead of class
line: 12
column: 3
suggestions: null
- message: Selector should select by ID instead of class
line: 16
column: 3
suggestions: null
- message: Selector should select by ID instead of class
line: 20
column: 3
suggestions: null
- message: Selector should select by ID instead of class
line: 24
column: 3
suggestions: null
- message: Selector should select by ID instead of class
line: 24
column: 11
suggestions: null
- message: Selector should select by ID instead of class
line: 28
column: 3
suggestions: null
- message: Selector should select by ID instead of class
line: 32
column: 3
suggestions: null
- message: Selector should select by ID instead of element type
line: 36
column: 3
suggestions: null
- message: Selector should select by ID instead of element type
line: 40
column: 3
suggestions: null
- message: Selector should select by ID instead of class
line: 44
column: 3
suggestions: null
- message: Selector should select by ID instead of element type
line: 44
column: 11
suggestions: null
- message: Selector should select by ID instead of element type
line: 48
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/invalid/id-class-type/should-be-id01-input.svelte
================================================
Click me!
Click me two!
Text 1
Text 3
Italic
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/invalid/id-type-class/_config.json
================================================
{
"options": [{ "style": ["id", "type", "class"] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/invalid/id-type-class/should-be-id01-errors.yaml
================================================
- message: Selector should select by ID instead of class
line: 12
column: 3
suggestions: null
- message: Selector should select by ID instead of class
line: 16
column: 3
suggestions: null
- message: Selector should select by ID instead of class
line: 20
column: 3
suggestions: null
- message: Selector should select by ID instead of class
line: 24
column: 3
suggestions: null
- message: Selector should select by ID instead of class
line: 24
column: 11
suggestions: null
- message: Selector should select by ID instead of class
line: 28
column: 3
suggestions: null
- message: Selector should select by ID instead of class
line: 32
column: 3
suggestions: null
- message: Selector should select by ID instead of element type
line: 36
column: 3
suggestions: null
- message: Selector should select by ID instead of element type
line: 40
column: 3
suggestions: null
- message: Selector should select by ID instead of class
line: 44
column: 3
suggestions: null
- message: Selector should select by ID instead of element type
line: 44
column: 11
suggestions: null
- message: Selector should select by ID instead of element type
line: 48
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/invalid/id-type-class/should-be-id01-input.svelte
================================================
Click me!
Click me two!
Text 1
Text 3
Italic
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/invalid/id-type-class/should-be-type01-errors.yaml
================================================
- message: Selector should select by element type instead of class
line: 10
column: 3
suggestions: null
- message: Selector should select by element type instead of class
line: 14
column: 3
suggestions: null
- message: Selector should select by element type instead of class
line: 18
column: 3
suggestions: null
- message: Selector should select by element type instead of class
line: 22
column: 3
suggestions: null
- message: Selector should select by element type instead of class
line: 22
column: 11
suggestions: null
- message: Selector should select by element type instead of class
line: 26
column: 3
suggestions: null
- message: Selector should select by element type instead of class
line: 30
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/invalid/id-type-class/should-be-type01-input.svelte
================================================
Click me!
Click me two!
Text 1
Text 2
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/invalid/type-class-id/_config.json
================================================
{
"options": [{ "style": ["type", "class", "id"] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/invalid/type-class-id/should-be-type01-errors.yaml
================================================
- message: Selector should select by element type instead of class
line: 12
column: 3
suggestions: null
- message: Selector should select by element type instead of class
line: 16
column: 3
suggestions: null
- message: Selector should select by element type instead of class
line: 20
column: 3
suggestions: null
- message: Selector should select by element type instead of class
line: 24
column: 3
suggestions: null
- message: Selector should select by element type instead of class
line: 24
column: 11
suggestions: null
- message: Selector should select by element type instead of class
line: 28
column: 3
suggestions: null
- message: Selector should select by element type instead of class
line: 32
column: 3
suggestions: null
- message: Selector should select by element type instead of ID
line: 36
column: 3
suggestions: null
- message: Selector should select by element type instead of ID
line: 40
column: 3
suggestions: null
- message: Selector should select by element type instead of ID
line: 44
column: 7
suggestions: null
- message: Selector should select by element type instead of ID
line: 48
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/invalid/type-class-id/should-be-type01-input.svelte
================================================
Click me!
Click me two!
Text 1
Text 2
Italic
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/invalid/type-id-class/should-be-id-with-components01-errors.yaml
================================================
- message: Selector should select by ID instead of class
line: 18
column: 3
suggestions: null
- message: Selector should select by ID instead of class
line: 22
column: 3
suggestions: null
- message: Selector should select by ID instead of class
line: 26
column: 3
suggestions: null
- message: Selector should select by ID instead of class
line: 30
column: 3
suggestions: null
- message: Selector should select by ID instead of class
line: 30
column: 11
suggestions: null
- message: Selector should select by ID instead of class
line: 34
column: 3
suggestions: null
- message: Selector should select by ID instead of class
line: 38
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/invalid/type-id-class/should-be-id-with-components01-input.svelte
================================================
Click me!
Component
Click me two!
Text 1
Component
Text 3
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/invalid/type-id-class/should-be-id01-errors.yaml
================================================
- message: Selector should select by ID instead of class
line: 10
column: 3
suggestions: null
- message: Selector should select by ID instead of class
line: 14
column: 3
suggestions: null
- message: Selector should select by ID instead of class
line: 18
column: 3
suggestions: null
- message: Selector should select by ID instead of class
line: 22
column: 3
suggestions: null
- message: Selector should select by ID instead of class
line: 22
column: 11
suggestions: null
- message: Selector should select by ID instead of class
line: 26
column: 3
suggestions: null
- message: Selector should select by ID instead of class
line: 30
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/invalid/type-id-class/should-be-id01-input.svelte
================================================
Click me!
Click me two!
Text 1
Text 3
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/invalid/type-id-class/should-be-type-with-components01-errors.yaml
================================================
- message: Selector should select by element type instead of class
line: 22
column: 3
suggestions: null
- message: Selector should select by element type instead of class
line: 26
column: 3
suggestions: null
- message: Selector should select by element type instead of class
line: 30
column: 3
suggestions: null
- message: Selector should select by element type instead of class
line: 34
column: 3
suggestions: null
- message: Selector should select by element type instead of class
line: 34
column: 11
suggestions: null
- message: Selector should select by element type instead of class
line: 38
column: 3
suggestions: null
- message: Selector should select by element type instead of class
line: 42
column: 3
suggestions: null
- message: Selector should select by element type instead of ID
line: 46
column: 3
suggestions: null
- message: Selector should select by element type instead of ID
line: 50
column: 3
suggestions: null
- message: Selector should select by element type instead of ID
line: 54
column: 7
suggestions: null
- message: Selector should select by element type instead of ID
line: 58
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/invalid/type-id-class/should-be-type-with-components01-input.svelte
================================================
Click me!
Click me two!
Component
Text 1
Text 2
Component
Italic
Component
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/invalid/type-id-class/should-be-type01-errors.yaml
================================================
- message: Selector should select by element type instead of class
line: 12
column: 3
suggestions: null
- message: Selector should select by element type instead of class
line: 16
column: 3
suggestions: null
- message: Selector should select by element type instead of class
line: 20
column: 3
suggestions: null
- message: Selector should select by element type instead of class
line: 24
column: 3
suggestions: null
- message: Selector should select by element type instead of class
line: 24
column: 11
suggestions: null
- message: Selector should select by element type instead of class
line: 28
column: 3
suggestions: null
- message: Selector should select by element type instead of class
line: 32
column: 3
suggestions: null
- message: Selector should select by element type instead of ID
line: 36
column: 3
suggestions: null
- message: Selector should select by element type instead of ID
line: 40
column: 3
suggestions: null
- message: Selector should select by element type instead of ID
line: 44
column: 7
suggestions: null
- message: Selector should select by element type instead of ID
line: 48
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/invalid/type-id-class/should-be-type01-input.svelte
================================================
Click me!
Click me two!
Text 1
Text 2
Italic
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/class-id-type/_config.json
================================================
{
"options": [{ "style": ["class", "id", "type"] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/class-id-type/class-scss01-input.svelte
================================================
Click me!
Text 1
Text 2
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/class-id-type/class01-input.svelte
================================================
Click me!
Text 1
Text 2
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/class-type-id/_config.json
================================================
{
"options": [{ "style": ["class", "type", "id"] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/class-type-id/class-scss01-input.svelte
================================================
Click me!
Text 1
Text 2
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/class-type-id/class01-input.svelte
================================================
Click me!
Text 1
Text 2
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/id-class-type/_config.json
================================================
{
"options": [{ "style": ["id", "class", "type"] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/id-class-type/class01-input.svelte
================================================
Click me!
Click me two!
Text 1
Text 2
Text 2
Text 3
{#each ["one", "two"] as iter}
{iter}
{/each}
Text 5
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/id-class-type/id-scss01-input.svelte
================================================
Click me!
Text 1
Text 2
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/id-class-type/id01-input.svelte
================================================
Click me!
Text 1
Text 2
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/id-class-type/svelte-5/_requirements.json
================================================
{
"svelte": ">=5.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/id-class-type/svelte-5/class01-input.svelte
================================================
Outside
{#snippet iterated()}
Text 4
{/snippet}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/id-type-class/_config.json
================================================
{
"options": [{ "style": ["id", "type", "class"] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/id-type-class/class01-input.svelte
================================================
Click me!
Click me two!
Text 1
Text 2
Text 2
Text 3
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/id-type-class/id-scss01-input.svelte
================================================
Click me!
Text 1
Text 2
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/id-type-class/id01-input.svelte
================================================
Click me!
Text 1
Text 2
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/id-type-class/type01-input.svelte
================================================
Click me!
Click me two!
Text 1
Text 2
Text 2
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/type/_config.json
================================================
{
"options": [{ "style": ["type"] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/type/class01-input.svelte
================================================
Click me!
Click me two!
Click me three!
Click me three!
Text 1
Text 2
Text 3
Text 4
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/type/id01-input.svelte
================================================
Click me!
Click me too!
Text 1
Text 2
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/type/type-scss01-input.svelte
================================================
Click me!
Text 1
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/type/type01-input.svelte
================================================
Click me!
Click me two!
Text 1
Text 2
Text 2
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/type-class-id/_config.json
================================================
{
"options": [{ "style": ["type", "class", "id"] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/type-class-id/class01-input.svelte
================================================
Click me!
Click me two!
Text 1
Text 2
Text 3
Text 4
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/type-class-id/type-scss01-input.svelte
================================================
Click me!
Text 1
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/type-class-id/type01-input.svelte
================================================
Click me!
Click me two!
Text 1
Text 2
Text 2
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/type-id/_config.json
================================================
{
"options": [{ "style": ["type", "id"] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/type-id/class01-input.svelte
================================================
Click me!
Click me two!
Click me three!
Text 1
Text 2
Text 3
Text 4
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/type-id/id01-input.svelte
================================================
Click me!
Click me too!
Text 1
Text 2
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/type-id/type-scss01-input.svelte
================================================
Click me!
Text 1
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/type-id/type01-input.svelte
================================================
Click me!
Click me two!
Text 1
Text 2
Text 2
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/type-id-class/class-dynamic-prefix01-input.svelte
================================================
Click me!
Click me two!
Click me two!
Click me three!
Click me three!
Click me four!
Click me four!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/type-id-class/class-dynamic-suffix01-input.svelte
================================================
Click me!
Click me two!
Click me two!
Click me three!
Click me three!
Click me four!
Click me four!
{#each ["one", "two"] as count}
Bold in each
{/each}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/type-id-class/class-dynamic-universal01-input.svelte
================================================
Click me!
Click me two!
Click me two!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/type-id-class/class01-input.svelte
================================================
Click me!
Click me two!
Click me three!
Text 1
Text 2
Text 3
Text 4
Text 5
Text 6
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/type-id-class/global01-input.svelte
================================================
Click me!
Click me two!
Text 1
Text 2
Text 2
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/type-id-class/id-dynamic-prefix01-input.svelte
================================================
Click me!
Click me two!
Click me three!
Click me four!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/type-id-class/id-dynamic-suffix01-input.svelte
================================================
Click me!
Click me two!
Click me three!
Click me four!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/type-id-class/id-dynamic-universal01-input.svelte
================================================
Click me!
Click me two!
Click me two!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/type-id-class/id01-input.svelte
================================================
Click me!
Click me too!
Text 1
Text 2
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/type-id-class/recursive-loop01-input.svelte
================================================
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/type-id-class/type-scss01-input.svelte
================================================
Click me!
Text 1
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/consistent-selector-style/valid/type-id-class/type01-input.svelte
================================================
Click me!
Click me two!
Text 1
Text 2
Text 2
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/derived-has-same-inputs-outputs/invalid/test01-errors.yaml
================================================
- message: The argument name should be '$a'.
line: 3
column: 13
suggestions:
- desc: Rename the parameter from b to $a.
messageId: renameParam
output: |
import { derived } from 'svelte/store';
derived(a, ($a) => {
/** do nothing */
});
derived(c, (d, set) => {
/** do nothing */
});
derived([e, f], ([g, h]) => {
/** do nothing */
});
derived([i, j], ([k, l], set) => {
/** do nothing */
});
derived([null, l], ([$m, $n]) => {
/** do nothing */
});
derived([o, null], ([$p, $q]) => {
/** do nothing */
});
derived(a, (b) => {
doSomethingWith(b);
somethingWithACallback(() => {
b;
});
});
derived(a, (b) => {
b;
somethingWithACallback(() => {
// purposely shadow the var, this should not be updated
const b = 303;
b;
});
});
derived([e, f], ([g, h]) => {
g;
h;
somethingWithACallback(() => {
g;
h;
});
});
derived([e, f], ([g, h]) => {
g;
h;
somethingWithACallback(() => {
const g = 303;
const h = 808;
g;
h;
});
});
derived(a, (b) => {
// cause a conflict in names so the suggestion can't work
const $a = 303;
$a;
});
somethingWithACallback(() => {
const $a = 303;
derived(a, (b) => {
$a;
});
});
- message: The argument name should be '$c'.
line: 6
column: 13
suggestions:
- desc: Rename the parameter from d to $c.
messageId: renameParam
output: |
import { derived } from 'svelte/store';
derived(a, (b) => {
/** do nothing */
});
derived(c, ($c, set) => {
/** do nothing */
});
derived([e, f], ([g, h]) => {
/** do nothing */
});
derived([i, j], ([k, l], set) => {
/** do nothing */
});
derived([null, l], ([$m, $n]) => {
/** do nothing */
});
derived([o, null], ([$p, $q]) => {
/** do nothing */
});
derived(a, (b) => {
doSomethingWith(b);
somethingWithACallback(() => {
b;
});
});
derived(a, (b) => {
b;
somethingWithACallback(() => {
// purposely shadow the var, this should not be updated
const b = 303;
b;
});
});
derived([e, f], ([g, h]) => {
g;
h;
somethingWithACallback(() => {
g;
h;
});
});
derived([e, f], ([g, h]) => {
g;
h;
somethingWithACallback(() => {
const g = 303;
const h = 808;
g;
h;
});
});
derived(a, (b) => {
// cause a conflict in names so the suggestion can't work
const $a = 303;
$a;
});
somethingWithACallback(() => {
const $a = 303;
derived(a, (b) => {
$a;
});
});
- message: The argument name should be '$e'.
line: 9
column: 19
suggestions:
- desc: Rename the parameter from g to $e.
messageId: renameParam
output: |
import { derived } from 'svelte/store';
derived(a, (b) => {
/** do nothing */
});
derived(c, (d, set) => {
/** do nothing */
});
derived([e, f], ([$e, h]) => {
/** do nothing */
});
derived([i, j], ([k, l], set) => {
/** do nothing */
});
derived([null, l], ([$m, $n]) => {
/** do nothing */
});
derived([o, null], ([$p, $q]) => {
/** do nothing */
});
derived(a, (b) => {
doSomethingWith(b);
somethingWithACallback(() => {
b;
});
});
derived(a, (b) => {
b;
somethingWithACallback(() => {
// purposely shadow the var, this should not be updated
const b = 303;
b;
});
});
derived([e, f], ([g, h]) => {
g;
h;
somethingWithACallback(() => {
g;
h;
});
});
derived([e, f], ([g, h]) => {
g;
h;
somethingWithACallback(() => {
const g = 303;
const h = 808;
g;
h;
});
});
derived(a, (b) => {
// cause a conflict in names so the suggestion can't work
const $a = 303;
$a;
});
somethingWithACallback(() => {
const $a = 303;
derived(a, (b) => {
$a;
});
});
- message: The argument name should be '$f'.
line: 9
column: 22
suggestions:
- desc: Rename the parameter from h to $f.
messageId: renameParam
output: |
import { derived } from 'svelte/store';
derived(a, (b) => {
/** do nothing */
});
derived(c, (d, set) => {
/** do nothing */
});
derived([e, f], ([g, $f]) => {
/** do nothing */
});
derived([i, j], ([k, l], set) => {
/** do nothing */
});
derived([null, l], ([$m, $n]) => {
/** do nothing */
});
derived([o, null], ([$p, $q]) => {
/** do nothing */
});
derived(a, (b) => {
doSomethingWith(b);
somethingWithACallback(() => {
b;
});
});
derived(a, (b) => {
b;
somethingWithACallback(() => {
// purposely shadow the var, this should not be updated
const b = 303;
b;
});
});
derived([e, f], ([g, h]) => {
g;
h;
somethingWithACallback(() => {
g;
h;
});
});
derived([e, f], ([g, h]) => {
g;
h;
somethingWithACallback(() => {
const g = 303;
const h = 808;
g;
h;
});
});
derived(a, (b) => {
// cause a conflict in names so the suggestion can't work
const $a = 303;
$a;
});
somethingWithACallback(() => {
const $a = 303;
derived(a, (b) => {
$a;
});
});
- message: The argument name should be '$i'.
line: 12
column: 19
suggestions:
- desc: Rename the parameter from k to $i.
messageId: renameParam
output: |
import { derived } from 'svelte/store';
derived(a, (b) => {
/** do nothing */
});
derived(c, (d, set) => {
/** do nothing */
});
derived([e, f], ([g, h]) => {
/** do nothing */
});
derived([i, j], ([$i, l], set) => {
/** do nothing */
});
derived([null, l], ([$m, $n]) => {
/** do nothing */
});
derived([o, null], ([$p, $q]) => {
/** do nothing */
});
derived(a, (b) => {
doSomethingWith(b);
somethingWithACallback(() => {
b;
});
});
derived(a, (b) => {
b;
somethingWithACallback(() => {
// purposely shadow the var, this should not be updated
const b = 303;
b;
});
});
derived([e, f], ([g, h]) => {
g;
h;
somethingWithACallback(() => {
g;
h;
});
});
derived([e, f], ([g, h]) => {
g;
h;
somethingWithACallback(() => {
const g = 303;
const h = 808;
g;
h;
});
});
derived(a, (b) => {
// cause a conflict in names so the suggestion can't work
const $a = 303;
$a;
});
somethingWithACallback(() => {
const $a = 303;
derived(a, (b) => {
$a;
});
});
- message: The argument name should be '$j'.
line: 12
column: 22
suggestions:
- desc: Rename the parameter from l to $j.
messageId: renameParam
output: |
import { derived } from 'svelte/store';
derived(a, (b) => {
/** do nothing */
});
derived(c, (d, set) => {
/** do nothing */
});
derived([e, f], ([g, h]) => {
/** do nothing */
});
derived([i, j], ([k, $j], set) => {
/** do nothing */
});
derived([null, l], ([$m, $n]) => {
/** do nothing */
});
derived([o, null], ([$p, $q]) => {
/** do nothing */
});
derived(a, (b) => {
doSomethingWith(b);
somethingWithACallback(() => {
b;
});
});
derived(a, (b) => {
b;
somethingWithACallback(() => {
// purposely shadow the var, this should not be updated
const b = 303;
b;
});
});
derived([e, f], ([g, h]) => {
g;
h;
somethingWithACallback(() => {
g;
h;
});
});
derived([e, f], ([g, h]) => {
g;
h;
somethingWithACallback(() => {
const g = 303;
const h = 808;
g;
h;
});
});
derived(a, (b) => {
// cause a conflict in names so the suggestion can't work
const $a = 303;
$a;
});
somethingWithACallback(() => {
const $a = 303;
derived(a, (b) => {
$a;
});
});
- message: The argument name should be '$l'.
line: 15
column: 26
suggestions:
- desc: Rename the parameter from $n to $l.
messageId: renameParam
output: |
import { derived } from 'svelte/store';
derived(a, (b) => {
/** do nothing */
});
derived(c, (d, set) => {
/** do nothing */
});
derived([e, f], ([g, h]) => {
/** do nothing */
});
derived([i, j], ([k, l], set) => {
/** do nothing */
});
derived([null, l], ([$m, $l]) => {
/** do nothing */
});
derived([o, null], ([$p, $q]) => {
/** do nothing */
});
derived(a, (b) => {
doSomethingWith(b);
somethingWithACallback(() => {
b;
});
});
derived(a, (b) => {
b;
somethingWithACallback(() => {
// purposely shadow the var, this should not be updated
const b = 303;
b;
});
});
derived([e, f], ([g, h]) => {
g;
h;
somethingWithACallback(() => {
g;
h;
});
});
derived([e, f], ([g, h]) => {
g;
h;
somethingWithACallback(() => {
const g = 303;
const h = 808;
g;
h;
});
});
derived(a, (b) => {
// cause a conflict in names so the suggestion can't work
const $a = 303;
$a;
});
somethingWithACallback(() => {
const $a = 303;
derived(a, (b) => {
$a;
});
});
- message: The argument name should be '$o'.
line: 18
column: 22
suggestions:
- desc: Rename the parameter from $p to $o.
messageId: renameParam
output: |
import { derived } from 'svelte/store';
derived(a, (b) => {
/** do nothing */
});
derived(c, (d, set) => {
/** do nothing */
});
derived([e, f], ([g, h]) => {
/** do nothing */
});
derived([i, j], ([k, l], set) => {
/** do nothing */
});
derived([null, l], ([$m, $n]) => {
/** do nothing */
});
derived([o, null], ([$o, $q]) => {
/** do nothing */
});
derived(a, (b) => {
doSomethingWith(b);
somethingWithACallback(() => {
b;
});
});
derived(a, (b) => {
b;
somethingWithACallback(() => {
// purposely shadow the var, this should not be updated
const b = 303;
b;
});
});
derived([e, f], ([g, h]) => {
g;
h;
somethingWithACallback(() => {
g;
h;
});
});
derived([e, f], ([g, h]) => {
g;
h;
somethingWithACallback(() => {
const g = 303;
const h = 808;
g;
h;
});
});
derived(a, (b) => {
// cause a conflict in names so the suggestion can't work
const $a = 303;
$a;
});
somethingWithACallback(() => {
const $a = 303;
derived(a, (b) => {
$a;
});
});
- message: The argument name should be '$a'.
line: 21
column: 13
suggestions:
- desc: Rename the parameter from b to $a.
messageId: renameParam
output: |
import { derived } from 'svelte/store';
derived(a, (b) => {
/** do nothing */
});
derived(c, (d, set) => {
/** do nothing */
});
derived([e, f], ([g, h]) => {
/** do nothing */
});
derived([i, j], ([k, l], set) => {
/** do nothing */
});
derived([null, l], ([$m, $n]) => {
/** do nothing */
});
derived([o, null], ([$p, $q]) => {
/** do nothing */
});
derived(a, ($a) => {
doSomethingWith($a);
somethingWithACallback(() => {
$a;
});
});
derived(a, (b) => {
b;
somethingWithACallback(() => {
// purposely shadow the var, this should not be updated
const b = 303;
b;
});
});
derived([e, f], ([g, h]) => {
g;
h;
somethingWithACallback(() => {
g;
h;
});
});
derived([e, f], ([g, h]) => {
g;
h;
somethingWithACallback(() => {
const g = 303;
const h = 808;
g;
h;
});
});
derived(a, (b) => {
// cause a conflict in names so the suggestion can't work
const $a = 303;
$a;
});
somethingWithACallback(() => {
const $a = 303;
derived(a, (b) => {
$a;
});
});
- message: The argument name should be '$a'.
line: 28
column: 13
suggestions:
- desc: Rename the parameter from b to $a.
messageId: renameParam
output: |
import { derived } from 'svelte/store';
derived(a, (b) => {
/** do nothing */
});
derived(c, (d, set) => {
/** do nothing */
});
derived([e, f], ([g, h]) => {
/** do nothing */
});
derived([i, j], ([k, l], set) => {
/** do nothing */
});
derived([null, l], ([$m, $n]) => {
/** do nothing */
});
derived([o, null], ([$p, $q]) => {
/** do nothing */
});
derived(a, (b) => {
doSomethingWith(b);
somethingWithACallback(() => {
b;
});
});
derived(a, ($a) => {
$a;
somethingWithACallback(() => {
// purposely shadow the var, this should not be updated
const b = 303;
b;
});
});
derived([e, f], ([g, h]) => {
g;
h;
somethingWithACallback(() => {
g;
h;
});
});
derived([e, f], ([g, h]) => {
g;
h;
somethingWithACallback(() => {
const g = 303;
const h = 808;
g;
h;
});
});
derived(a, (b) => {
// cause a conflict in names so the suggestion can't work
const $a = 303;
$a;
});
somethingWithACallback(() => {
const $a = 303;
derived(a, (b) => {
$a;
});
});
- message: The argument name should be '$e'.
line: 37
column: 19
suggestions:
- desc: Rename the parameter from g to $e.
messageId: renameParam
output: |
import { derived } from 'svelte/store';
derived(a, (b) => {
/** do nothing */
});
derived(c, (d, set) => {
/** do nothing */
});
derived([e, f], ([g, h]) => {
/** do nothing */
});
derived([i, j], ([k, l], set) => {
/** do nothing */
});
derived([null, l], ([$m, $n]) => {
/** do nothing */
});
derived([o, null], ([$p, $q]) => {
/** do nothing */
});
derived(a, (b) => {
doSomethingWith(b);
somethingWithACallback(() => {
b;
});
});
derived(a, (b) => {
b;
somethingWithACallback(() => {
// purposely shadow the var, this should not be updated
const b = 303;
b;
});
});
derived([e, f], ([$e, h]) => {
$e;
h;
somethingWithACallback(() => {
$e;
h;
});
});
derived([e, f], ([g, h]) => {
g;
h;
somethingWithACallback(() => {
const g = 303;
const h = 808;
g;
h;
});
});
derived(a, (b) => {
// cause a conflict in names so the suggestion can't work
const $a = 303;
$a;
});
somethingWithACallback(() => {
const $a = 303;
derived(a, (b) => {
$a;
});
});
- message: The argument name should be '$f'.
line: 37
column: 22
suggestions:
- desc: Rename the parameter from h to $f.
messageId: renameParam
output: |
import { derived } from 'svelte/store';
derived(a, (b) => {
/** do nothing */
});
derived(c, (d, set) => {
/** do nothing */
});
derived([e, f], ([g, h]) => {
/** do nothing */
});
derived([i, j], ([k, l], set) => {
/** do nothing */
});
derived([null, l], ([$m, $n]) => {
/** do nothing */
});
derived([o, null], ([$p, $q]) => {
/** do nothing */
});
derived(a, (b) => {
doSomethingWith(b);
somethingWithACallback(() => {
b;
});
});
derived(a, (b) => {
b;
somethingWithACallback(() => {
// purposely shadow the var, this should not be updated
const b = 303;
b;
});
});
derived([e, f], ([g, $f]) => {
g;
$f;
somethingWithACallback(() => {
g;
$f;
});
});
derived([e, f], ([g, h]) => {
g;
h;
somethingWithACallback(() => {
const g = 303;
const h = 808;
g;
h;
});
});
derived(a, (b) => {
// cause a conflict in names so the suggestion can't work
const $a = 303;
$a;
});
somethingWithACallback(() => {
const $a = 303;
derived(a, (b) => {
$a;
});
});
- message: The argument name should be '$e'.
line: 46
column: 19
suggestions:
- desc: Rename the parameter from g to $e.
messageId: renameParam
output: |
import { derived } from 'svelte/store';
derived(a, (b) => {
/** do nothing */
});
derived(c, (d, set) => {
/** do nothing */
});
derived([e, f], ([g, h]) => {
/** do nothing */
});
derived([i, j], ([k, l], set) => {
/** do nothing */
});
derived([null, l], ([$m, $n]) => {
/** do nothing */
});
derived([o, null], ([$p, $q]) => {
/** do nothing */
});
derived(a, (b) => {
doSomethingWith(b);
somethingWithACallback(() => {
b;
});
});
derived(a, (b) => {
b;
somethingWithACallback(() => {
// purposely shadow the var, this should not be updated
const b = 303;
b;
});
});
derived([e, f], ([g, h]) => {
g;
h;
somethingWithACallback(() => {
g;
h;
});
});
derived([e, f], ([$e, h]) => {
$e;
h;
somethingWithACallback(() => {
const g = 303;
const h = 808;
g;
h;
});
});
derived(a, (b) => {
// cause a conflict in names so the suggestion can't work
const $a = 303;
$a;
});
somethingWithACallback(() => {
const $a = 303;
derived(a, (b) => {
$a;
});
});
- message: The argument name should be '$f'.
line: 46
column: 22
suggestions:
- desc: Rename the parameter from h to $f.
messageId: renameParam
output: |
import { derived } from 'svelte/store';
derived(a, (b) => {
/** do nothing */
});
derived(c, (d, set) => {
/** do nothing */
});
derived([e, f], ([g, h]) => {
/** do nothing */
});
derived([i, j], ([k, l], set) => {
/** do nothing */
});
derived([null, l], ([$m, $n]) => {
/** do nothing */
});
derived([o, null], ([$p, $q]) => {
/** do nothing */
});
derived(a, (b) => {
doSomethingWith(b);
somethingWithACallback(() => {
b;
});
});
derived(a, (b) => {
b;
somethingWithACallback(() => {
// purposely shadow the var, this should not be updated
const b = 303;
b;
});
});
derived([e, f], ([g, h]) => {
g;
h;
somethingWithACallback(() => {
g;
h;
});
});
derived([e, f], ([g, $f]) => {
g;
$f;
somethingWithACallback(() => {
const g = 303;
const h = 808;
g;
h;
});
});
derived(a, (b) => {
// cause a conflict in names so the suggestion can't work
const $a = 303;
$a;
});
somethingWithACallback(() => {
const $a = 303;
derived(a, (b) => {
$a;
});
});
- message: The argument name should be '$a'.
line: 57
column: 13
suggestions: null
- message: The argument name should be '$a'.
line: 64
column: 14
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/derived-has-same-inputs-outputs/invalid/test01-input.js
================================================
import { derived } from 'svelte/store';
derived(a, (b) => {
/** do nothing */
});
derived(c, (d, set) => {
/** do nothing */
});
derived([e, f], ([g, h]) => {
/** do nothing */
});
derived([i, j], ([k, l], set) => {
/** do nothing */
});
derived([null, l], ([$m, $n]) => {
/** do nothing */
});
derived([o, null], ([$p, $q]) => {
/** do nothing */
});
derived(a, (b) => {
doSomethingWith(b);
somethingWithACallback(() => {
b;
});
});
derived(a, (b) => {
b;
somethingWithACallback(() => {
// purposely shadow the var, this should not be updated
const b = 303;
b;
});
});
derived([e, f], ([g, h]) => {
g;
h;
somethingWithACallback(() => {
g;
h;
});
});
derived([e, f], ([g, h]) => {
g;
h;
somethingWithACallback(() => {
const g = 303;
const h = 808;
g;
h;
});
});
derived(a, (b) => {
// cause a conflict in names so the suggestion can't work
const $a = 303;
$a;
});
somethingWithACallback(() => {
const $a = 303;
derived(a, (b) => {
$a;
});
});
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/derived-has-same-inputs-outputs/valid/test01-input.js
================================================
import { derived } from 'svelte/store';
derived(a, ($a) => {
/** do nothing */
});
derived(c, ($c, set) => {
/** do nothing */
});
derived([e, f], ([$e, $f]) => {
/** do nothing */
});
derived([i, j], ([$i, $j], set) => {
/** do nothing */
});
derived(null, ($null, set) => {
/** do nothing */
});
derived(null, ($k, set) => {
/** do nothing */
});
derived([null, l], ([$m, $l]) => {
/** do nothing */
});
derived([n, null], ([$n, $o]) => {
/** do nothing */
});
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/experimental-require-slot-types/invalid/no-slot-types01-errors.yaml
================================================
- message: The component must define the $$Slots interface.
line: 1
column: 2
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/experimental-require-slot-types/invalid/no-slot-types01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/experimental-require-slot-types/valid/has-slot-types-with-alias01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/experimental-require-slot-types/valid/has-slot-types01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/experimental-require-slot-types/valid/named-slot01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/experimental-require-slot-types/valid/no-slots01-input.svelte
================================================
content
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/experimental-require-slot-types/valid/no-typescript01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/experimental-require-strict-events/invalid/_requirements.json
================================================
{
"svelte": "^4"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/experimental-require-strict-events/invalid/no-strict-events01-errors.yaml
================================================
- message: The component must have the strictEvents attribute on its
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/experimental-require-strict-events/valid/_requirements.json
================================================
{
"svelte": "^4"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/experimental-require-strict-events/valid/has-events-interface01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/experimental-require-strict-events/valid/has-events-type-alias01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/experimental-require-strict-events/valid/has-strict-events01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/experimental-require-strict-events/valid/no-typescript01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/experimental-require-strict-events/valid/script-module-context01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/first-attribute-linebreak/invalid/below/_config.json
================================================
{
"options": [{ "multiline": "below", "singleline": "below" }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/first-attribute-linebreak/invalid/below/test01-errors.yaml
================================================
- message: Expected a linebreak before this attribute.
line: 9
column: 9
suggestions: null
- message: Expected a linebreak before this attribute.
line: 13
column: 8
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/first-attribute-linebreak/invalid/below/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/first-attribute-linebreak/invalid/below/test01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/first-attribute-linebreak/invalid/beside/_config.json
================================================
{
"options": [{ "multiline": "beside", "singleline": "beside" }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/first-attribute-linebreak/invalid/beside/test01-errors.yaml
================================================
- message: Expected no linebreak before this attribute.
line: 7
column: 3
suggestions: null
- message: Expected no linebreak before this attribute.
line: 16
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/first-attribute-linebreak/invalid/beside/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/first-attribute-linebreak/invalid/beside/test01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/first-attribute-linebreak/invalid/test01-errors.yaml
================================================
- message: Expected no linebreak before this attribute.
line: 7
column: 3
suggestions: null
- message: Expected a linebreak before this attribute.
line: 9
column: 9
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/first-attribute-linebreak/invalid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/first-attribute-linebreak/invalid/test01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/first-attribute-linebreak/valid/below/_config.json
================================================
{
"options": [{ "multiline": "below", "singleline": "below" }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/first-attribute-linebreak/valid/below/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/first-attribute-linebreak/valid/beside/_config.json
================================================
{
"options": [{ "multiline": "beside", "singleline": "beside" }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/first-attribute-linebreak/valid/beside/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/first-attribute-linebreak/valid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-new-line/invalid/multiline-never/_config.json
================================================
{
"options": [{ "multiline": "never" }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-new-line/invalid/multiline-never/test01-errors.yaml
================================================
- message: Expected no line breaks before closing bracket, but 1 line break found.
line: 2
column: 12
suggestions: null
- message: Expected no line breaks before closing bracket, but 1 line break found.
line: 7
column: 12
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-new-line/invalid/multiline-never/test01-input.svelte
================================================
Children
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-new-line/invalid/multiline-never/test01-output.svelte
================================================
Children
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-new-line/invalid/self-closing/always/_config.json
================================================
{
"options": [{ "selfClosingTag": { "singleline": "always", "multiline": "always" } }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-new-line/invalid/self-closing/always/test-errors.yaml
================================================
- message: Expected 1 line break before closing bracket, but no line breaks found.
line: 1
column: 18
suggestions: null
- message: Expected 1 line break before closing bracket, but 2 line breaks found.
line: 6
column: 12
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-new-line/invalid/self-closing/always/test-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-new-line/invalid/self-closing/always/test-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-new-line/invalid/self-closing/never/_config.json
================================================
{
"options": [{ "selfClosingTag": { "singleline": "never", "multiline": "never" } }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-new-line/invalid/self-closing/never/test-errors.yaml
================================================
- message: Expected no line breaks before closing bracket, but 1 line break found.
line: 3
column: 12
suggestions: null
- message: Expected no line breaks before closing bracket, but 2 line breaks found.
line: 6
column: 12
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-new-line/invalid/self-closing/never/test-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-new-line/invalid/self-closing/never/test-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-new-line/invalid/singleline-always/_config.json
================================================
{
"options": [{ "singleline": "always" }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-new-line/invalid/singleline-always/test01-errors.yaml
================================================
- message: Expected 1 line break before closing bracket, but no line breaks found.
line: 1
column: 5
suggestions: null
- message: Expected 1 line break before closing bracket, but no line breaks found.
line: 2
column: 5
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-new-line/invalid/singleline-always/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-new-line/invalid/singleline-always/test01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-new-line/invalid/test01-errors.yaml
================================================
- message: Expected no line breaks before closing bracket, but 3 line breaks found.
line: 3
column: 8
suggestions: null
- message: Expected no line breaks before closing bracket, but 1 line break found.
line: 8
column: 5
suggestions: null
- message: Expected 1 line break before closing bracket, but no line breaks found.
line: 11
column: 14
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-new-line/invalid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-new-line/invalid/test01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-new-line/invalid/test02-errors.yaml
================================================
- message: Expected 1 line break before closing bracket, but 2 line breaks found.
line: 3
column: 14
suggestions: null
- message: Expected no line breaks before closing bracket, but 2 line breaks found.
line: 7
column: 5
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-new-line/invalid/test02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-new-line/invalid/test02-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-new-line/valid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-spacing/invalid/closing-ignore/_config.json
================================================
{
"options": [
{
"selfClosingTag": "ignore"
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-spacing/invalid/closing-ignore/closing-ignore-errors.yaml
================================================
- message: Expected no space before '>', but found.
line: 2
column: 3
suggestions: null
- message: Expected no space before '>', but found.
line: 2
column: 14
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-spacing/invalid/closing-ignore/closing-ignore-input.svelte
================================================
Hello
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-spacing/invalid/closing-ignore/closing-ignore-output.svelte
================================================
Hello
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-spacing/invalid/end-ignore/_config.json
================================================
{
"options": [
{
"endTag": "ignore"
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-spacing/invalid/end-ignore/end-ignore-errors.yaml
================================================
- message: Expected no space before '>', but found.
line: 2
column: 3
suggestions: null
- message: Expected space before '>', but not found.
line: 5
column: 5
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-spacing/invalid/end-ignore/end-ignore-input.svelte
================================================
Hello
Hi
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-spacing/invalid/end-ignore/end-ignore-output.svelte
================================================
Hello
Hi
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-spacing/invalid/start-ignore/_config.json
================================================
{
"options": [
{
"startTag": "ignore"
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-spacing/invalid/start-ignore/start-ignore-errors.yaml
================================================
- message: Expected no space before '>', but found.
line: 2
column: 14
suggestions: null
- message: Expected space before '>', but not found.
line: 5
column: 5
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-spacing/invalid/start-ignore/start-ignore-input.svelte
================================================
Hello
Hi
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-spacing/invalid/start-ignore/start-ignore-output.svelte
================================================
Hello
Hi
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-spacing/invalid/test-01-errors.yaml
================================================
- message: Expected no space before '>', but found.
line: 2
column: 3
suggestions: null
- message: Expected no space before '>', but found.
line: 2
column: 14
suggestions: null
- message: Expected space before '>', but not found.
line: 4
column: 5
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-spacing/invalid/test-01-input.svelte
================================================
Hello
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-spacing/invalid/test-01-output.svelte
================================================
Hello
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-closing-bracket-spacing/valid/test-01-input.svelte
================================================
Hello
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-quotes/invalid/all-quotes/_config.json
================================================
{
"options": [{ "dynamic": { "quoted": true } }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-quotes/invalid/all-quotes/test01-errors.yaml
================================================
- message: Expected to be enclosed by double quotes.
line: 9
column: 13
suggestions: null
- message: Expected to be enclosed by double quotes.
line: 12
column: 13
suggestions: null
- message: Expected to be enclosed by double quotes.
line: 18
column: 10
suggestions: null
- message: Expected to be enclosed by quotes.
line: 20
column: 10
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-quotes/invalid/all-quotes/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-quotes/invalid/all-quotes/test01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-quotes/invalid/all-quotes/test02-errors.yaml
================================================
- message: Expected to be enclosed by double quotes.
line: 6
column: 13
suggestions: null
- message: Expected to be enclosed by double quotes.
line: 6
column: 29
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-quotes/invalid/all-quotes/test02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-quotes/invalid/all-quotes/test02-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-quotes/invalid/avoid-invalid-unquoted-in-html/_config.json
================================================
{
"options": [{ "dynamic": { "avoidInvalidUnquotedInHTML": true } }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-quotes/invalid/avoid-invalid-unquoted-in-html/inline-handlers-errors.yaml
================================================
- message: Expected to be enclosed by double quotes.
line: 5
column: 19
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-quotes/invalid/avoid-invalid-unquoted-in-html/inline-handlers-input.svelte
================================================
(m = { x: e.clientX, y: e.clientY })}>
The mouse position is {m.x} x {m.y}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-quotes/invalid/avoid-invalid-unquoted-in-html/inline-handlers-output.svelte
================================================
The mouse position is {m.x} x {m.y}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-quotes/invalid/avoid-invalid-unquoted-in-html/test01-errors.yaml
================================================
- message: Expected to be enclosed by double quotes.
line: 9
column: 13
suggestions: null
- message: Unexpected to be enclosed by any quotes.
line: 9
column: 29
suggestions: null
- message: Expected to be enclosed by double quotes.
line: 12
column: 13
suggestions: null
- message: Unexpected to be enclosed by any quotes.
line: 12
column: 31
suggestions: null
- message: Unexpected to be enclosed by any quotes.
line: 16
column: 10
suggestions: null
- message: Expected to be enclosed by quotes.
line: 20
column: 10
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-quotes/invalid/avoid-invalid-unquoted-in-html/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-quotes/invalid/avoid-invalid-unquoted-in-html/test01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-quotes/invalid/avoid-invalid-unquoted-in-html/test02-errors.yaml
================================================
- message: Expected to be enclosed by double quotes.
line: 7
column: 42
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-quotes/invalid/avoid-invalid-unquoted-in-html/test02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-quotes/invalid/avoid-invalid-unquoted-in-html/test02-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-quotes/invalid/single/_config.json
================================================
{
"options": [{ "prefer": "single" }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-quotes/invalid/single/test01-errors.yaml
================================================
- message: Expected to be enclosed by single quotes.
line: 9
column: 13
suggestions: null
- message: Unexpected to be enclosed by any quotes.
line: 9
column: 29
suggestions: null
- message: Expected to be enclosed by single quotes.
line: 10
column: 13
suggestions: null
- message: Unexpected to be enclosed by any quotes.
line: 12
column: 31
suggestions: null
- message: Expected to be enclosed by single quotes.
line: 14
column: 16
suggestions: null
- message: Unexpected to be enclosed by any quotes.
line: 16
column: 10
suggestions: null
- message: Expected to be enclosed by single quotes.
line: 16
column: 22
suggestions: null
- message: Expected to be enclosed by single quotes.
line: 18
column: 20
suggestions: null
- message: Expected to be enclosed by single quotes.
line: 20
column: 42
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-quotes/invalid/single/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-quotes/invalid/single/test01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-quotes/invalid/test01-errors.yaml
================================================
- message: Expected to be enclosed by double quotes.
line: 9
column: 13
suggestions: null
- message: Unexpected to be enclosed by any quotes.
line: 9
column: 29
suggestions: null
- message: Expected to be enclosed by double quotes.
line: 12
column: 13
suggestions: null
- message: Unexpected to be enclosed by any quotes.
line: 12
column: 31
suggestions: null
- message: Unexpected to be enclosed by any quotes.
line: 14
column: 20
suggestions: null
- message: Unexpected to be enclosed by any quotes.
line: 18
column: 10
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-quotes/invalid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-quotes/invalid/test01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-quotes/valid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/component-never/_config.json
================================================
{
"options": [
{
"component": "never"
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/component-never/component-never-errors.yaml
================================================
- message: Disallow self-closing on Svelte custom components.
line: 3
column: 18
suggestions: null
- message: Disallow self-closing on Svelte custom components.
line: 4
column: 15
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/component-never/component-never-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/component-never/component-never-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/math-never/_config.json
================================================
{
"options": [
{
"math": "never"
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/math-never/svelte-never-errors.yaml
================================================
- message: Disallow self-closing on MathML elements.
line: 3
column: 13
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/math-never/svelte-never-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/math-never/svelte-never-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/normal-always/_config.json
================================================
{
"options": [
{
"normal": "always"
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/normal-always/component-never-errors.yaml
================================================
- message: Require self-closing on HTML elements.
line: 3
column: 7
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/normal-always/component-never-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/normal-always/component-never-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/normal-ignore/_config.json
================================================
{
"options": [
{
"normal": "ignore"
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/normal-ignore/normal-any-errors.yaml
================================================
- message: Require self-closing on HTML void elements.
line: 5
column: 7
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/normal-ignore/normal-any-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/normal-ignore/normal-any-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/normal-never/_config.json
================================================
{
"options": [
{
"normal": "never"
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/normal-never/component-never-errors.yaml
================================================
- message: Disallow self-closing on HTML elements.
line: 3
column: 8
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/normal-never/component-never-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/normal-never/component-never-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/presets/html/_config.json
================================================
{
"options": ["html"]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/presets/html/preset-html-errors.yaml
================================================
- message: Disallow self-closing on HTML elements.
line: 3
column: 8
suggestions: null
- message: Require self-closing on HTML void elements.
line: 4
column: 7
suggestions: null
- message: Disallow self-closing on Svelte custom components.
line: 5
column: 18
suggestions: null
- message: Require self-closing on SVG elements.
line: 6
column: 13
suggestions: null
- message: Disallow self-closing on MathML elements.
line: 7
column: 14
suggestions: null
- message: Require self-closing on Svelte special elements.
line: 10
column: 13
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/presets/html/preset-html-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/presets/html/preset-html-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/presets/none/_config.json
================================================
{
"options": ["none"]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/presets/none/preset-none-errors.yaml
================================================
- message: Disallow self-closing on HTML elements.
line: 3
column: 8
suggestions: null
- message: Disallow self-closing on Svelte custom components.
line: 4
column: 18
suggestions: null
- message: Disallow self-closing on HTML void elements.
line: 5
column: 8
suggestions: null
- message: Disallow self-closing on SVG elements.
line: 6
column: 14
suggestions: null
- message: Disallow self-closing on MathML elements.
line: 7
column: 15
suggestions: null
- message: Disallow self-closing on Svelte special elements.
line: 10
column: 14
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/presets/none/preset-none-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/presets/none/preset-none-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/svelte-never/_config.json
================================================
{
"options": [
{
"svelte": "never"
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/svelte-never/svelte-never-errors.yaml
================================================
- message: Disallow self-closing on Svelte special elements.
line: 2
column: 14
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/svelte-never/svelte-never-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/svelte-never/svelte-never-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/svg-never/_config.json
================================================
{
"options": [
{
"svg": "never"
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/svg-never/svelte-never-errors.yaml
================================================
- message: Disallow self-closing on SVG elements.
line: 2
column: 12
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/svg-never/svelte-never-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/svg-never/svelte-never-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/test01-errors.yaml
================================================
- message: Disallow self-closing on HTML elements.
line: 3
column: 7
suggestions: null
- message: Require self-closing on Svelte custom components.
line: 4
column: 17
suggestions: null
- message: Require self-closing on HTML void elements.
line: 5
column: 7
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/test01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/void-never/_config.json
================================================
{
"options": [
{
"void": "never"
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/void-never/void-never-errors.yaml
================================================
- message: Disallow self-closing on HTML void elements.
line: 3
column: 8
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/void-never/void-never-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/invalid/void-never/void-never-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/html-self-closing/valid/test01-input.svelte
================================================
hello
{#if true}
{/if}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/4-indent/_config.json
================================================
{
"options": [{ "indent": 4 }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/4-indent/test01-errors.yaml
================================================
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 25
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 30
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 32
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 33
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 35
column: 1
suggestions: null
- message: Expected indentation of 12 spaces but found 0 spaces.
line: 36
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 37
column: 1
suggestions: null
- message: Expected indentation of 12 spaces but found 0 spaces.
line: 38
column: 1
suggestions: null
- message: Expected indentation of 16 spaces but found 0 spaces.
line: 39
column: 1
suggestions: null
- message: Expected indentation of 20 spaces but found 0 spaces.
line: 40
column: 1
suggestions: null
- message: Expected indentation of 20 spaces but found 0 spaces.
line: 41
column: 1
suggestions: null
- message: Expected indentation of 16 spaces but found 0 spaces.
line: 42
column: 1
suggestions: null
- message: Expected indentation of 20 spaces but found 0 spaces.
line: 43
column: 1
suggestions: null
- message: Expected indentation of 24 spaces but found 0 spaces.
line: 44
column: 1
suggestions: null
- message: Expected indentation of 24 spaces but found 0 spaces.
line: 45
column: 1
suggestions: null
- message: Expected indentation of 20 spaces but found 0 spaces.
line: 46
column: 1
suggestions: null
- message: Expected indentation of 16 spaces but found 0 spaces.
line: 47
column: 1
suggestions: null
- message: Expected indentation of 20 spaces but found 0 spaces.
line: 48
column: 1
suggestions: null
- message: Expected indentation of 20 spaces but found 0 spaces.
line: 49
column: 1
suggestions: null
- message: Expected indentation of 24 spaces but found 0 spaces.
line: 50
column: 1
suggestions: null
- message: Expected indentation of 20 spaces but found 0 spaces.
line: 51
column: 1
suggestions: null
- message: Expected indentation of 16 spaces but found 0 spaces.
line: 52
column: 1
suggestions: null
- message: Expected indentation of 20 spaces but found 0 spaces.
line: 53
column: 1
suggestions: null
- message: Expected indentation of 16 spaces but found 0 spaces.
line: 54
column: 1
suggestions: null
- message: Expected indentation of 16 spaces but found 0 spaces.
line: 55
column: 1
suggestions: null
- message: Expected indentation of 20 spaces but found 0 spaces.
line: 56
column: 1
suggestions: null
- message: Expected indentation of 16 spaces but found 0 spaces.
line: 57
column: 1
suggestions: null
- message: Expected indentation of 16 spaces but found 0 spaces.
line: 58
column: 1
suggestions: null
- message: Expected indentation of 12 spaces but found 0 spaces.
line: 59
column: 1
suggestions: null
- message: Expected indentation of 12 spaces but found 0 spaces.
line: 60
column: 1
suggestions: null
- message: Expected indentation of 12 spaces but found 0 spaces.
line: 61
column: 1
suggestions: null
- message: Expected indentation of 16 spaces but found 0 spaces.
line: 62
column: 1
suggestions: null
- message: Expected indentation of 16 spaces but found 0 spaces.
line: 63
column: 1
suggestions: null
- message: Expected indentation of 20 spaces but found 0 spaces.
line: 64
column: 1
suggestions: null
- message: Expected indentation of 16 spaces but found 0 spaces.
line: 65
column: 1
suggestions: null
- message: Expected indentation of 16 spaces but found 0 spaces.
line: 66
column: 1
suggestions: null
- message: Expected indentation of 20 spaces but found 0 spaces.
line: 67
column: 1
suggestions: null
- message: Expected indentation of 16 spaces but found 0 spaces.
line: 68
column: 1
suggestions: null
- message: Expected indentation of 16 spaces but found 0 spaces.
line: 69
column: 1
suggestions: null
- message: Expected indentation of 20 spaces but found 0 spaces.
line: 70
column: 1
suggestions: null
- message: Expected indentation of 16 spaces but found 0 spaces.
line: 71
column: 1
suggestions: null
- message: Expected indentation of 12 spaces but found 0 spaces.
line: 72
column: 1
suggestions: null
- message: Expected indentation of 16 spaces but found 0 spaces.
line: 73
column: 1
suggestions: null
- message: Expected indentation of 16 spaces but found 0 spaces.
line: 74
column: 1
suggestions: null
- message: Expected indentation of 12 spaces but found 0 spaces.
line: 75
column: 1
suggestions: null
- message: Expected indentation of 12 spaces but found 0 spaces.
line: 76
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 77
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 78
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 79
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 80
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 81
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 82
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 83
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 84
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 85
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/4-indent/test01-input.svelte
================================================
CLICK ME!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/4-indent/test01-output.svelte
================================================
CLICK ME!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/align-attributes-vertically/_config.json
================================================
{
"options": [{ "alignAttributesVertically": true }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/align-attributes-vertically/attrs01-errors.yaml
================================================
- message: Expected indentation of 5 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 5 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 5 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 5 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 7 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 5 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 5 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 7 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 7 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 7 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 7 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 7 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 9 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 7 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 7 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 9 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 7 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/align-attributes-vertically/attrs01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/align-attributes-vertically/attrs01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/await01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 28
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 30
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 31
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 32
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 33
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 35
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 36
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 37
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 38
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 39
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 40
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 41
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 42
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 43
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 44
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 45
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 46
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 47
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 48
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 50
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 51
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 52
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 53
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 54
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 55
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 56
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 57
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 58
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 59
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 60
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 61
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 62
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 64
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 65
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 66
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 67
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 68
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 69
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 70
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 71
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 72
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 73
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 75
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 76
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 77
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 78
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 79
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 80
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 81
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 82
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 83
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 84
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/await01-input.svelte
================================================
{#await expression}
...
{:then name}
...
{:catch name}
...
{/await}
{#await expression}
...
{:then name}
...
{/await}
{#await expression then name}
...
{/await}
{#await expression catch name}
...
{/await}
{
#await
expression
}
...
{
:then
name
}
...
{
:catch
name
}
...
{
/await
}
{
#await
expression
}
...
{
:then
name
}
...
{
/await
}
{
#await
expression
then
name
}
...
{
/await
}
{
#await
expression
catch
name
}
...
{
/await
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/await01-output.svelte
================================================
{#await expression}
...
{:then name}
...
{:catch name}
...
{/await}
{#await expression}
...
{:then name}
...
{/await}
{#await expression then name}
...
{/await}
{#await expression catch name}
...
{/await}
{
#await
expression
}
...
{
:then
name
}
...
{
:catch
name
}
...
{
/await
}
{
#await
expression
}
...
{
:then
name
}
...
{
/await
}
{
#await
expression
then
name
}
...
{
/await
}
{
#await
expression
catch
name
}
...
{
/await
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/const-tag01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/const-tag01-input.svelte
================================================
{#each boxes as box}
{
@const
area
=
box.width
*
box.height
}
{box.width} * {box.height} = {area}
{/each}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/const-tag01-output.svelte
================================================
{#each boxes as box}
{
@const
area
=
box.width
*
box.height
}
{box.width} * {box.height} = {area}
{/each}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/deubg-tag01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/deubg-tag01-input.svelte
================================================
{
@debug
var1
,
var2
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/deubg-tag01-output.svelte
================================================
{
@debug
var1
,
var2
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/each01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 25
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 28
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 29
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 30
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 31
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 32
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 33
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 35
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 36
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 37
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 38
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 39
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 40
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 41
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 42
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 43
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 44
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 45
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 46
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 47
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 48
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 49
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 50
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 51
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 52
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 53
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 54
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 55
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 56
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 57
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 58
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 59
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 60
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 61
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 62
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 63
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 64
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 65
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 66
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 67
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 68
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 69
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 70
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 71
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 72
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 73
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 74
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/each01-input.svelte
================================================
The Famous Cats of YouTube
{
#each
cats
as
{
id,
name
}
,
i
}
{i + 1}: {name}
{
/each
}
{
#each
cats
as
c
,
index
(
c
.
id
)
}
{
c
}
{
index
}
{
/each
}
{
#each
cats
as
cat
}
{cat.name}
{
:else
}
...
{
/each
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/each01-output.svelte
================================================
The Famous Cats of YouTube
{
#each
cats
as
{
id,
name
}
,
i
}
{i + 1}: {name}
{
/each
}
{
#each
cats
as
c
,
index
(
c
.
id
)
}
{
c
}
{
index
}
{
/each
}
{
#each
cats
as
cat
}
{cat.name}
{
:else
}
...
{
/each
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/html-text01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 1 whitespace.
line: 2
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/html-text01-input.svelte
================================================
{name}a
b
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/html-text01-output.svelte
================================================
{name}a
b
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/html-text02-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/html-text02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/html-text02-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/if01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 25
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 28
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 29
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 30
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 31
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 32
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 33
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 35
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 36
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 37
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/if01-input.svelte
================================================
{#if a}
{/if}
{
#if
a
}
{
/if
}
{
#if
a
}
{
:else
if
b
}
{
:else
}
{
/if
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/if01-output.svelte
================================================
{#if a}
{/if}
{
#if
a
}
{
/if
}
{
#if
a
}
{
:else
if
b
}
{
:else
}
{
/if
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/import-declaration01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/import-declaration01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/import-declaration01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/indent-script/_config.json
================================================
{
"options": [{ "indentScript": false }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/indent-script/indent-script-errors.yaml
================================================
- message: Expected indentation of 0 spaces but found 2 spaces.
line: 3
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/indent-script/indent-script-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/indent-script/indent-script-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/key01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/key01-input.svelte
================================================
{#key value}
{/key}
{
#key
value
}
{
/key
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/key01-output.svelte
================================================
{#key value}
{/key}
{
#key
value
}
{
/key
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-array01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-array01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-array01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-binary01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 25
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 28
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 29
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 30
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 31
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 33
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 35
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 36
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 37
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 38
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 39
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 40
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 41
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 42
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 43
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 44
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 45
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-binary01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-binary01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-binary02-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 25
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 28
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 29
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 30
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 31
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 32
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 33
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 35
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 36
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 37
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 38
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 39
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 40
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 41
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 42
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 43
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 44
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 45
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 46
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 47
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 48
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 49
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 50
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 51
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 52
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 53
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 54
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 55
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 56
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 57
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 58
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 59
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 60
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 61
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 62
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 63
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 64
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 65
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 66
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 67
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 68
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 69
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 70
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 71
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 72
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 73
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 74
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 75
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 76
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 77
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 78
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-binary02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-binary02-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-binary03-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-binary03-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-binary03-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-block01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-block01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-block01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-break01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 12 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 12 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 12 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 12 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 25
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-break01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-break01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-call01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 25
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 28
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 29
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 30
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 31
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 32
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 33
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 35
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 36
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 37
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 39
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 40
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-call01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-call01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-class01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 25
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 28
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 29
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 30
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 31
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 32
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 33
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 35
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 36
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 37
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 38
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 39
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 40
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 41
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 42
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 43
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 44
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 45
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 46
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 47
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 48
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 49
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 50
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 51
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 52
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 53
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 54
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-class01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-class01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-conditional01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 25
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 28
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 29
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 30
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 31
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 32
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 33
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 35
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 36
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 37
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 38
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 39
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 40
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 41
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 42
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 43
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 44
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 45
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 46
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 47
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 48
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 49
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 50
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 51
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 52
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-conditional01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-conditional01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-do-while01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-do-while01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-do-while01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-export01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 25
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 28
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 29
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 30
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 31
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 32
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 33
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 35
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 36
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 37
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 38
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 39
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 40
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 41
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 42
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 43
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 44
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 45
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 46
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 47
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 48
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-export01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-export01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-export02-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-export02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-export02-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-expr01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 25
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 28
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 29
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 30
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-expr01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-expr01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-for01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 25
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 28
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 29
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 30
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 31
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 32
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 33
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 35
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 36
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 37
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 38
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 39
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 40
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 41
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 42
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 43
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 44
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 45
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 46
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 47
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 48
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 49
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 50
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 51
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 52
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 53
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 54
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 55
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 56
column: 1
suggestions: null
- message: Expected indentation of 12 spaces but found 4 spaces.
line: 57
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 58
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 59
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 60
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-for01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-for01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-function01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 25
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 28
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 29
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 30
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 31
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 32
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 33
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 35
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 36
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 37
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 38
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 39
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 41
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 42
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 43
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 44
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 45
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 46
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 47
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 48
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 49
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 50
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 51
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-function01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-function01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-if01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 25
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 28
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 29
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 30
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 31
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 32
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 33
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 36
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 37
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 38
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 39
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 40
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 41
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 42
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 43
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 44
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 45
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 46
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 47
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 48
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 49
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 50
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 52
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 53
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 54
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 55
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 56
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 57
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 58
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 59
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 60
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 61
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 62
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 63
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 64
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 65
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-if01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-if01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-import01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 28
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 29
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 30
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 31
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 32
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 35
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 36
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 37
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 38
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 39
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 40
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 41
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 43
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 44
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 45
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 46
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 47
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 48
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 50
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 51
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 52
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 53
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 54
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 55
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-import01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-import01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-import02-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-import02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-import02-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-member01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 28
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 29
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 30
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 31
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 32
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 33
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 35
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-member01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-member01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-methods01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-methods01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-methods01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-prop01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 25
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 28
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 29
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 30
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-prop01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-prop01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-switch01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-switch01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-switch01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-try01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 25
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 28
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 29
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 30
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 31
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 32
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 33
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 35
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 36
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 37
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 38
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 39
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 40
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 41
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 42
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-try01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-try01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-unary01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 25
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 28
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-unary01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-unary01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-yield-expression01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-yield-expression01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/script-yield-expression01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/snippets01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 2 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 25
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 28
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 31
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 32
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 36
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 38
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/snippets01-input.svelte
================================================
{#snippet
foo(
{
a
}
)
}
{/snippet}
{@render
foo(
{
a
}
)
}
{#snippet example()}
{/snippet}
{
#snippet example_2()
}
{
/snippet
}
{
#snippet example_3
(
)
}
{
/snippet
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/snippets01-output.svelte
================================================
{#snippet
foo(
{
a
}
)
}
{/snippet}
{@render
foo(
{
a
}
)
}
{#snippet example()}
{/snippet}
{
#snippet example_2()
}
{
/snippet
}
{
#snippet example_3
(
)
}
{
/snippet
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/snippets01-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/style-directive01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 25
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 28
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 33
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 35
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 40
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 41
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 42
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 43
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 44
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/style-directive01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/style-directive01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/switch-case/_config.json
================================================
{
"options": [{ "switchCase": 0 }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/switch-case/script-switch01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/switch-case/script-switch01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/switch-case/script-switch01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/tab-indent/_config.json
================================================
{
"options": [{ "indent": "tab" }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/tab-indent/test01-errors.yaml
================================================
- message: Expected indentation of 1 tab but found 0 tabs.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 0 tabs.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 0 tabs.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 0 tabs.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 0 tabs.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 0 tabs.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 2 tabs but found 0 tabs.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 2 tabs but found 0 tabs.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 0 tabs.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 0 tabs.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 0 tabs.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 0 tabs.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 0 tabs.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 0 tabs.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 0 tabs.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 0 tabs.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 0 tabs.
line: 25
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 0 tabs.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 0 tabs.
line: 30
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 0 tabs.
line: 32
column: 1
suggestions: null
- message: Expected indentation of 2 tabs but found 0 tabs.
line: 33
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 0 tabs.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 2 tabs but found 0 tabs.
line: 35
column: 1
suggestions: null
- message: Expected indentation of 3 tabs but found 0 tabs.
line: 36
column: 1
suggestions: null
- message: Expected indentation of 2 tabs but found 0 tabs.
line: 37
column: 1
suggestions: null
- message: Expected indentation of 3 tabs but found 0 tabs.
line: 38
column: 1
suggestions: null
- message: Expected indentation of 4 tabs but found 0 tabs.
line: 39
column: 1
suggestions: null
- message: Expected indentation of 5 tabs but found 0 tabs.
line: 40
column: 1
suggestions: null
- message: Expected indentation of 5 tabs but found 0 tabs.
line: 41
column: 1
suggestions: null
- message: Expected indentation of 4 tabs but found 0 tabs.
line: 42
column: 1
suggestions: null
- message: Expected indentation of 5 tabs but found 0 tabs.
line: 43
column: 1
suggestions: null
- message: Expected indentation of 6 tabs but found 0 tabs.
line: 44
column: 1
suggestions: null
- message: Expected indentation of 6 tabs but found 0 tabs.
line: 45
column: 1
suggestions: null
- message: Expected indentation of 5 tabs but found 0 tabs.
line: 46
column: 1
suggestions: null
- message: Expected indentation of 4 tabs but found 0 tabs.
line: 47
column: 1
suggestions: null
- message: Expected indentation of 5 tabs but found 0 tabs.
line: 48
column: 1
suggestions: null
- message: Expected indentation of 5 tabs but found 0 tabs.
line: 49
column: 1
suggestions: null
- message: Expected indentation of 6 tabs but found 0 tabs.
line: 50
column: 1
suggestions: null
- message: Expected indentation of 5 tabs but found 0 tabs.
line: 51
column: 1
suggestions: null
- message: Expected indentation of 4 tabs but found 0 tabs.
line: 52
column: 1
suggestions: null
- message: Expected indentation of 5 tabs but found 0 tabs.
line: 53
column: 1
suggestions: null
- message: Expected indentation of 4 tabs but found 0 tabs.
line: 54
column: 1
suggestions: null
- message: Expected indentation of 4 tabs but found 0 tabs.
line: 55
column: 1
suggestions: null
- message: Expected indentation of 5 tabs but found 0 tabs.
line: 56
column: 1
suggestions: null
- message: Expected indentation of 4 tabs but found 0 tabs.
line: 57
column: 1
suggestions: null
- message: Expected indentation of 4 tabs but found 0 tabs.
line: 58
column: 1
suggestions: null
- message: Expected indentation of 3 tabs but found 0 tabs.
line: 59
column: 1
suggestions: null
- message: Expected indentation of 3 tabs but found 0 tabs.
line: 60
column: 1
suggestions: null
- message: Expected indentation of 3 tabs but found 0 tabs.
line: 61
column: 1
suggestions: null
- message: Expected indentation of 4 tabs but found 0 tabs.
line: 62
column: 1
suggestions: null
- message: Expected indentation of 4 tabs but found 0 tabs.
line: 63
column: 1
suggestions: null
- message: Expected indentation of 5 tabs but found 0 tabs.
line: 64
column: 1
suggestions: null
- message: Expected indentation of 4 tabs but found 0 tabs.
line: 65
column: 1
suggestions: null
- message: Expected indentation of 4 tabs but found 0 tabs.
line: 66
column: 1
suggestions: null
- message: Expected indentation of 5 tabs but found 0 tabs.
line: 67
column: 1
suggestions: null
- message: Expected indentation of 4 tabs but found 0 tabs.
line: 68
column: 1
suggestions: null
- message: Expected indentation of 4 tabs but found 0 tabs.
line: 69
column: 1
suggestions: null
- message: Expected indentation of 5 tabs but found 0 tabs.
line: 70
column: 1
suggestions: null
- message: Expected indentation of 4 tabs but found 0 tabs.
line: 71
column: 1
suggestions: null
- message: Expected indentation of 3 tabs but found 0 tabs.
line: 72
column: 1
suggestions: null
- message: Expected indentation of 4 tabs but found 0 tabs.
line: 73
column: 1
suggestions: null
- message: Expected indentation of 4 tabs but found 0 tabs.
line: 74
column: 1
suggestions: null
- message: Expected indentation of 3 tabs but found 0 tabs.
line: 75
column: 1
suggestions: null
- message: Expected indentation of 3 tabs but found 0 tabs.
line: 76
column: 1
suggestions: null
- message: Expected indentation of 2 tabs but found 0 tabs.
line: 77
column: 1
suggestions: null
- message: Expected indentation of 2 tabs but found 0 tabs.
line: 78
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 0 tabs.
line: 79
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 0 tabs.
line: 80
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 0 tabs.
line: 81
column: 1
suggestions: null
- message: Expected indentation of 2 tabs but found 0 tabs.
line: 82
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 0 tabs.
line: 83
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 0 tabs.
line: 84
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 0 tabs.
line: 85
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/tab-indent/test01-input.svelte
================================================
CLICK ME!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/tab-indent/test01-output.svelte
================================================
CLICK ME!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/tab-indent/test02-errors.yaml
================================================
- message: Expected indentation of 1 tab but found 4 whitespaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 4 whitespaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 4 whitespaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 4 whitespaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 4 whitespaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 4 whitespaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 2 tabs but found 8 whitespaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 2 tabs but found 8 whitespaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 4 whitespaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 4 whitespaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 4 whitespaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 4 whitespaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 4 whitespaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 4 whitespaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 4 whitespaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 4 whitespaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 4 whitespaces.
line: 25
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 4 whitespaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 4 whitespaces.
line: 30
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 4 whitespaces.
line: 32
column: 1
suggestions: null
- message: Expected indentation of 2 tabs but found 8 whitespaces.
line: 33
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 4 whitespaces.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 2 tabs but found 8 whitespaces.
line: 35
column: 1
suggestions: null
- message: Expected indentation of 3 tabs but found 12 whitespaces.
line: 36
column: 1
suggestions: null
- message: Expected indentation of 2 tabs but found 8 whitespaces.
line: 37
column: 1
suggestions: null
- message: Expected indentation of 3 tabs but found 12 whitespaces.
line: 38
column: 1
suggestions: null
- message: Expected indentation of 4 tabs but found 16 whitespaces.
line: 39
column: 1
suggestions: null
- message: Expected indentation of 5 tabs but found 20 whitespaces.
line: 40
column: 1
suggestions: null
- message: Expected indentation of 5 tabs but found 20 whitespaces.
line: 41
column: 1
suggestions: null
- message: Expected indentation of 4 tabs but found 16 whitespaces.
line: 42
column: 1
suggestions: null
- message: Expected indentation of 5 tabs but found 20 whitespaces.
line: 43
column: 1
suggestions: null
- message: Expected indentation of 6 tabs but found 24 whitespaces.
line: 44
column: 1
suggestions: null
- message: Expected indentation of 6 tabs but found 24 whitespaces.
line: 45
column: 1
suggestions: null
- message: Expected indentation of 5 tabs but found 20 whitespaces.
line: 46
column: 1
suggestions: null
- message: Expected indentation of 4 tabs but found 16 whitespaces.
line: 47
column: 1
suggestions: null
- message: Expected indentation of 5 tabs but found 20 whitespaces.
line: 48
column: 1
suggestions: null
- message: Expected indentation of 5 tabs but found 20 whitespaces.
line: 49
column: 1
suggestions: null
- message: Expected indentation of 6 tabs but found 24 whitespaces.
line: 50
column: 1
suggestions: null
- message: Expected indentation of 5 tabs but found 20 whitespaces.
line: 51
column: 1
suggestions: null
- message: Expected indentation of 4 tabs but found 16 whitespaces.
line: 52
column: 1
suggestions: null
- message: Expected indentation of 5 tabs but found 20 whitespaces.
line: 53
column: 1
suggestions: null
- message: Expected indentation of 4 tabs but found 16 whitespaces.
line: 54
column: 1
suggestions: null
- message: Expected indentation of 4 tabs but found 16 whitespaces.
line: 55
column: 1
suggestions: null
- message: Expected indentation of 5 tabs but found 20 whitespaces.
line: 56
column: 1
suggestions: null
- message: Expected indentation of 4 tabs but found 16 whitespaces.
line: 57
column: 1
suggestions: null
- message: Expected indentation of 4 tabs but found 16 whitespaces.
line: 58
column: 1
suggestions: null
- message: Expected indentation of 3 tabs but found 12 whitespaces.
line: 59
column: 1
suggestions: null
- message: Expected indentation of 3 tabs but found 12 whitespaces.
line: 60
column: 1
suggestions: null
- message: Expected indentation of 3 tabs but found 12 whitespaces.
line: 61
column: 1
suggestions: null
- message: Expected indentation of 4 tabs but found 16 whitespaces.
line: 62
column: 1
suggestions: null
- message: Expected indentation of 4 tabs but found 16 whitespaces.
line: 63
column: 1
suggestions: null
- message: Expected indentation of 5 tabs but found 20 whitespaces.
line: 64
column: 1
suggestions: null
- message: Expected indentation of 4 tabs but found 16 whitespaces.
line: 65
column: 1
suggestions: null
- message: Expected indentation of 4 tabs but found 16 whitespaces.
line: 66
column: 1
suggestions: null
- message: Expected indentation of 5 tabs but found 20 whitespaces.
line: 67
column: 1
suggestions: null
- message: Expected indentation of 4 tabs but found 16 whitespaces.
line: 68
column: 1
suggestions: null
- message: Expected indentation of 4 tabs but found 16 whitespaces.
line: 69
column: 1
suggestions: null
- message: Expected indentation of 5 tabs but found 20 whitespaces.
line: 70
column: 1
suggestions: null
- message: Expected indentation of 4 tabs but found 16 whitespaces.
line: 71
column: 1
suggestions: null
- message: Expected indentation of 3 tabs but found 12 whitespaces.
line: 72
column: 1
suggestions: null
- message: Expected indentation of 4 tabs but found 16 whitespaces.
line: 73
column: 1
suggestions: null
- message: Expected indentation of 4 tabs but found 16 whitespaces.
line: 74
column: 1
suggestions: null
- message: Expected indentation of 3 tabs but found 12 whitespaces.
line: 75
column: 1
suggestions: null
- message: Expected indentation of 3 tabs but found 12 whitespaces.
line: 76
column: 1
suggestions: null
- message: Expected indentation of 2 tabs but found 8 whitespaces.
line: 77
column: 1
suggestions: null
- message: Expected indentation of 2 tabs but found 8 whitespaces.
line: 78
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 4 whitespaces.
line: 79
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 4 whitespaces.
line: 80
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 4 whitespaces.
line: 81
column: 1
suggestions: null
- message: Expected indentation of 2 tabs but found 8 whitespaces.
line: 82
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 4 whitespaces.
line: 83
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 4 whitespaces.
line: 84
column: 1
suggestions: null
- message: Expected indentation of 1 tab but found 4 whitespaces.
line: 85
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/tab-indent/test02-input.svelte
================================================
CLICK ME!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/tab-indent/test02-output.svelte
================================================
CLICK ME!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/test01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 25
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 30
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 32
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 33
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 35
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 36
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 37
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 38
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 39
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 40
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 41
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 42
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 43
column: 1
suggestions: null
- message: Expected indentation of 12 spaces but found 0 spaces.
line: 44
column: 1
suggestions: null
- message: Expected indentation of 12 spaces but found 0 spaces.
line: 45
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 46
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 47
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 48
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 49
column: 1
suggestions: null
- message: Expected indentation of 12 spaces but found 0 spaces.
line: 50
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 51
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 52
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 53
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 54
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 55
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 56
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 57
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 58
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 59
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 60
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 61
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 62
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 63
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 64
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 65
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 66
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 67
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 68
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 69
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 70
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 71
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 72
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 73
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 74
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 75
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 76
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 77
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 78
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 79
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 80
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 81
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 82
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 83
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 84
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 85
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/test01-input.svelte
================================================
CLICK ME!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/test01-output.svelte
================================================
CLICK ME!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-class01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 25
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 28
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 29
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 30
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 31
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 32
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 33
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 35
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 36
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 37
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 38
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 39
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 40
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 41
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 42
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 43
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 45
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 46
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 47
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 48
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 49
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 50
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 51
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 52
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 53
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 54
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 55
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 56
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 57
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 58
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 59
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-class01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-class01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-class02-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 12 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 12 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 25
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 12 spaces but found 0 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 28
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 29
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 30
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 31
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 32
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 33
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 35
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-class02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-class02-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-class03-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-class03-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-class03-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-conditional-type01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-conditional-type01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-conditional-type01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-d-ts-eslint-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 25
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 28
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 29
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 30
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 33
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 35
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 36
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 40
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 41
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 47
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 48
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 49
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 50
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 52
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 54
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 56
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 57
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 59
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 61
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 65
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 66
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 67
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 68
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 69
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 70
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 71
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 72
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 73
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 74
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 75
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 76
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 77
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 78
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 79
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 80
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 81
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 82
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 83
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 84
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 85
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 86
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 90
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 91
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 92
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 93
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 97
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 98
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 99
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 100
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 101
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 103
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 105
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 107
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 109
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 111
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 115
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 116
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 117
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 118
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 119
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 14 spaces.
line: 120
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 14 spaces.
line: 121
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 14 spaces.
line: 122
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 10 spaces.
line: 123
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 124
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 14 spaces.
line: 125
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 14 spaces.
line: 126
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 14 spaces.
line: 127
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 10 spaces.
line: 128
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 129
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 130
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 133
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 135
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 137
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 202
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 205
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 206
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 214
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 216
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 218
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 219
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 220
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 221
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 222
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 228
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 232
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 233
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 234
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 235
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 236
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 237
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 238
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 239
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 240
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 241
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 242
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 243
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 244
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 245
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 246
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 247
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 248
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 249
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 250
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 251
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 252
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 253
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 254
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 255
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 256
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 257
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 258
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 259
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 260
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 264
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 265
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 266
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 267
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 268
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 269
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 270
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 271
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 272
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 273
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 274
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 275
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 276
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 277
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 278
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 279
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 280
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 281
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 282
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 283
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 284
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 285
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 286
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 287
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 288
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 289
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 290
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 291
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 292
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 296
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 297
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 298
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 299
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 300
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 301
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 302
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 303
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 304
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 305
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 306
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 307
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 308
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 309
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 310
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 311
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 312
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 313
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 314
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 315
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 316
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 317
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 318
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 319
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 320
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 321
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 322
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 323
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 324
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 328
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 329
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 330
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 331
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 332
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 333
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 334
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 335
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 336
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 337
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 338
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 339
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 340
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 341
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 342
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 343
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 344
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 345
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 346
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 347
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 348
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 349
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 350
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 351
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 352
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 353
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 354
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 355
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 356
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 360
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 361
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 362
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 363
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 364
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 365
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 366
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 367
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 368
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 369
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 370
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 371
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 372
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 373
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 374
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 375
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 376
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 377
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 378
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 379
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 380
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 381
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 382
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 383
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 384
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 385
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 386
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 387
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 388
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 389
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 390
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 391
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 392
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 396
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 397
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 398
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 399
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 400
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 401
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 402
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 403
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 404
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 405
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 406
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 407
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 408
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 409
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 410
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 411
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 412
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 413
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 414
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 415
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 416
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 417
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 418
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 419
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 420
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 421
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 422
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 423
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 424
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 425
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 16 spaces.
line: 426
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 427
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 428
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 430
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 432
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 434
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 436
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 437
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 442
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 443
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 444
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 445
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 446
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 447
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 448
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 449
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 450
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 451
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 452
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 453
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 454
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 455
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 456
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 457
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 458
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 459
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 460
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 461
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 462
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 463
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 464
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 465
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 466
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 467
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 468
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 469
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 470
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 471
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 472
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 473
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 474
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 475
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 476
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 477
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 478
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 479
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 480
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 481
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 482
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 483
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 484
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 485
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 486
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 487
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 488
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 489
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 490
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 491
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 492
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 493
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 494
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 495
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 496
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 497
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 498
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 499
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 500
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 501
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 502
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 503
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 504
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 505
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 506
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 507
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 508
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 509
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 513
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 518
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 520
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 522
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 524
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 526
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 528
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 529
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 530
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 531
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 532
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 533
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 534
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 538
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 539
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 540
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 541
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 542
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 543
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 544
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 545
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 549
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 550
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 551
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 552
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 556
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 557
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 558
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 559
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 560
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 561
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 562
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 563
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 564
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 565
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 566
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 567
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 568
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 569
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 570
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 571
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 572
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 576
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 577
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 578
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 579
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 580
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 581
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 583
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 585
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 587
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 589
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 591
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 593
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 595
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 597
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 601
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 603
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 610
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 616
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 617
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 620
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 622
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 624
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 626
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 628
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 630
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 632
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 634
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 638
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 639
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 641
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 643
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 645
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 667
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 669
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 678
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 682
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 686
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 687
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 688
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 689
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 690
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 691
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 692
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 693
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 694
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 695
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 696
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 697
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 701
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 702
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 707
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 708
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 712
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 713
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 714
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 715
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 716
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 717
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 718
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 719
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 720
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 721
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 725
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 726
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 727
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 728
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 729
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 730
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 731
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 735
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 736
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 737
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 741
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 742
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 743
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 744
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 745
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 746
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 747
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 748
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 749
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 750
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 751
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 752
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 753
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 754
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 758
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 762
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 763
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 764
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 768
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 14 spaces.
line: 769
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 10 spaces.
line: 770
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 771
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 14 spaces.
line: 772
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 10 spaces.
line: 773
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 776
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 777
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 778
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 779
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 783
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 784
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 789
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 790
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 791
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 793
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 795
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 799
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 817
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 819
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 821
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 822
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 823
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 824
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 825
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 826
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 827
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 829
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 830
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 831
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 832
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 833
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 834
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 835
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 836
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 837
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 838
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 840
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 841
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 842
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 844
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 845
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 846
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 847
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 851
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 852
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 853
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 854
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 855
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 856
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 857
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 858
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 859
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 863
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 864
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 865
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 869
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 870
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 874
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 879
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 881
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 886
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 912
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 914
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 915
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 917
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 918
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 919
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 920
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 921
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 922
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 923
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 924
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 925
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 926
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 927
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 928
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 929
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 930
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 931
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 932
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 933
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 934
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 935
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 936
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 937
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 938
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 939
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 940
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 941
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 942
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 950
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 951
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 952
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 953
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 954
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 955
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 961
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 963
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 967
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 971
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 972
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 973
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 974
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 12 spaces.
line: 975
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 976
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 978
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 980
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 982
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 983
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 984
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 985
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 986
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 987
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 988
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 992
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 993
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 994
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 995
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 999
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 1000
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 1004
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 1005
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 1006
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 1007
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 1008
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 1009
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 1010
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 1011
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 8 spaces.
line: 1012
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 1014
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-d-ts-eslint-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-d-ts-eslint-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-decorator01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 25
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 28
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 29
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 30
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 32
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 33
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 35
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 36
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 37
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 38
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 39
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 40
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 41
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 42
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 43
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 44
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 45
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 46
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 48
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 49
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 50
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 51
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 52
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 53
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 54
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 55
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 56
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 57
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 58
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 59
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 60
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 61
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 62
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 63
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 64
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 65
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 66
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 67
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 68
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 70
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 71
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 72
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 73
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 74
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 75
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 76
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 77
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 78
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 79
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 80
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 81
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 82
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 83
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 84
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 85
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 86
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 88
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 89
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 90
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 91
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 92
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 93
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 94
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 96
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 97
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 98
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 99
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 100
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 101
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 102
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 103
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 104
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 105
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 106
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 107
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 109
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 110
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 111
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 112
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 113
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 114
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 115
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 116
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 117
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 118
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 119
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 120
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 121
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 123
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 124
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 125
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 126
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 127
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 128
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 129
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 130
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 131
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 132
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 133
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 134
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 135
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 136
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 137
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 138
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 139
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 140
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 142
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 143
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 144
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 146
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 147
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 148
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 150
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 151
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 152
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 153
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 154
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 155
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 156
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 157
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 158
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 159
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 160
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 161
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 162
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 163
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 164
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 165
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 166
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 168
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 169
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 170
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 171
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 172
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 173
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 174
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 175
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 176
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 177
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 178
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 179
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 180
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 181
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 182
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 183
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 184
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 185
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 186
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 187
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 188
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 189
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 190
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 191
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 192
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 193
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 194
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 195
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 196
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 197
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 198
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 199
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 200
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 201
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 202
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 203
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 204
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-decorator01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-decorator01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-decorator02-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-decorator02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-decorator02-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-enum01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-enum01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-enum01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-function01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 25
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 28
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 29
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 31
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 32
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 33
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 35
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 36
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 37
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 38
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 39
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 40
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-function01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-function01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-function02-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-function02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-function02-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-import-export01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-import-export01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-import-export01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-import-type01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-import-type01-input.svelte
================================================
{@render children()}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-import-type01-output.svelte
================================================
{@render children()}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-import-type01-requirements.json
================================================
{
"svelte": ">=5"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-interface01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 25
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 28
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 29
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 30
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 31
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 32
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 33
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 35
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 36
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 37
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 39
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 40
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 41
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 42
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 43
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 44
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 45
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 46
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 47
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 48
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 49
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 50
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 51
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 52
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 53
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 54
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 55
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 56
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 57
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 58
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-interface01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-interface01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-interface02-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 28
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 29
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 30
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 31
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 32
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 33
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 35
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 36
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 37
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 38
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 39
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 40
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 42
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 43
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 44
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 45
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 46
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 47
column: 1
suggestions: null
- message: Expected indentation of 12 spaces but found 0 spaces.
line: 48
column: 1
suggestions: null
- message: Expected indentation of 12 spaces but found 0 spaces.
line: 49
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 50
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 51
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 52
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 53
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 54
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-interface02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-interface02-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-interface03-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-interface03-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-interface03-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-static-block01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-static-block01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-static-block01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-template-literal-type01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 25
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 28
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 29
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 30
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 31
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 32
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 33
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 35
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 36
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 37
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 38
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 39
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-template-literal-type01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-template-literal-type01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-type-annotation01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 28
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 29
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 30
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-type-annotation01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-type-annotation01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-type-annotation02-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 28
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 29
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 30
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 31
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 33
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 35
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 36
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 37
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 38
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 39
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 40
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-type-annotation02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-type-annotation02-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-type-annotation03-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 25
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 28
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 29
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 30
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 31
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 32
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 33
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 36
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 37
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 38
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 39
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 40
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 41
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 42
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 43
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 44
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 45
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 46
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 47
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-type-annotation03-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-type-annotation03-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-type-only-import-export01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-type-only-import-export01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-type-only-import-export01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-type-only-import-export02-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-type-only-import-export02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-type-only-import-export02-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-type-only-import-export03-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 25
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-type-only-import-export03-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-type-only-import-export03-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-type-parameters01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-type-parameters01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-type-parameters01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-type-parameters02-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-type-parameters02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-type-parameters02-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-types01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 25
column: 1
suggestions: null
- message: Expected indentation of 12 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 14 spaces but found 0 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 12 spaces but found 0 spaces.
line: 28
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 29
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 30
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 31
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 32
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 33
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 35
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 36
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 37
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 38
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 39
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 40
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 41
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 42
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 43
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 44
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 45
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 46
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 47
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 48
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 49
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 50
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 51
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 52
column: 1
suggestions: null
- message: Expected indentation of 12 spaces but found 0 spaces.
line: 53
column: 1
suggestions: null
- message: Expected indentation of 12 spaces but found 0 spaces.
line: 54
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 55
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 56
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 57
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 58
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 59
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 60
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 61
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 62
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 63
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 64
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 65
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 66
column: 1
suggestions: null
- message: Expected indentation of 12 spaces but found 0 spaces.
line: 67
column: 1
suggestions: null
- message: Expected indentation of 12 spaces but found 0 spaces.
line: 68
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 69
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 70
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 71
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 72
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 73
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 74
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-types01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-types01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-types02-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 25
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 28
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 29
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 30
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 31
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 32
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 33
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 35
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 36
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 37
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 38
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 39
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 40
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 41
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 42
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 43
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 44
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 45
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 46
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 48
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 49
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 50
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 51
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 52
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 53
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 54
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 55
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 56
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 57
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 58
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 59
column: 1
suggestions: null
- message: Expected indentation of 12 spaces but found 0 spaces.
line: 60
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 61
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 62
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 63
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 64
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 65
column: 1
suggestions: null
- message: Expected indentation of 12 spaces but found 0 spaces.
line: 66
column: 1
suggestions: null
- message: Expected indentation of 14 spaces but found 0 spaces.
line: 67
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 68
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 69
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 70
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 71
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 72
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 73
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-types02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-types02-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-types03-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 25
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 29
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 30
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 31
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 32
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 33
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 35
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 36
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 37
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-types03-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-types03-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-union01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 25
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 28
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 29
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 30
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 31
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 32
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 33
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 36
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 37
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 38
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 39
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 40
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 41
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 42
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 43
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 44
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 45
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 46
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 47
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 48
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 49
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 50
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 51
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 52
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 53
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-union01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-union01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-union02-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 15
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 16
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 17
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 18
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 19
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 20
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 21
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 22
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 23
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 24
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 25
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 26
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 27
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 28
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 29
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 30
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 31
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 32
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 33
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 34
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 36
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 37
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 38
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 39
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 40
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 41
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 42
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 43
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 44
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 45
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 46
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 47
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 48
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 49
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 50
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 51
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 52
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 53
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-union02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts/ts-union02-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-abstract-accessor-property-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-abstract-accessor-property-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-abstract-accessor-property-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-accessor-property01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-accessor-property01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-accessor-property01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-accessor-property02-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-accessor-property02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-accessor-property02-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-accessor-property03-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-accessor-property03-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-accessor-property03-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-accessor-property04-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-accessor-property04-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-accessor-property04-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-accessor-property05-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-accessor-property05-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-accessor-property05-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-import-assertion01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-import-assertion01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-import-assertion01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-import-assertion01-requirements.json
================================================
{
"@typescript-eslint/parser": "<6.11.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-import-assertion02-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 12 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 12 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-import-assertion02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-import-assertion02-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-import-assertion03-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-import-assertion03-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-import-assertion03-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-import-assertion03-requirements.json
================================================
{
"@typescript-eslint/parser": "<6.11.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-import-assertion04-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-import-assertion04-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-import-assertion04-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-import-assertion04-requirements.json
================================================
{
"@typescript-eslint/parser": "<6.11.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-import-attributes01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-import-attributes01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-import-attributes01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-import-attributes01-requirements.json
================================================
{
"typescript": ">=5.3.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-import-attributes02-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 10 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
- message: Expected indentation of 12 spaces but found 0 spaces.
line: 10
column: 1
suggestions: null
- message: Expected indentation of 12 spaces but found 0 spaces.
line: 11
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 12
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 13
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 14
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-import-attributes02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-import-attributes02-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-import-attributes03-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-import-attributes03-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-import-attributes03-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-import-attributes03-requirements.json
================================================
{
"typescript": ">=5.3.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-import-attributes04-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 8 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 8
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 9
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-import-attributes04-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-import-attributes04-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-import-attributes04-requirements.json
================================================
{
"typescript": ">=5.3.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-instantiation-expression01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-instantiation-expression01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-instantiation-expression01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-satisfies-operators01-errors.yaml
================================================
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 3
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 4
column: 1
suggestions: null
- message: Expected indentation of 6 spaces but found 0 spaces.
line: 5
column: 1
suggestions: null
- message: Expected indentation of 2 spaces but found 0 spaces.
line: 6
column: 1
suggestions: null
- message: Expected indentation of 4 spaces but found 0 spaces.
line: 7
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-satisfies-operators01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/invalid/ts-v5/ts-satisfies-operators01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/valid/indent-script-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/valid/inline-style-tag-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/valid/pug01-input.svelte
================================================
div Posts +each('posts as post')
a(href="{ post.url }") {post.title}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/valid/test01-input.svelte
================================================
CLICK ME!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/valid/ts/ts-import-type01-input.svelte
================================================
{@render children()}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/indent/valid/ts/ts-import-type01-requirements.json
================================================
{
"svelte": ">=5"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/await/test01-errors.yaml
================================================
- message: Possibly it may occur an infinite reactive loop.
line: 7
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/await/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/function-call/test01-errors.yaml
================================================
- message: Possibly it may occur an infinite reactive loop.
line: 6
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/function-call/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/function-call/test02-errors.yaml
================================================
- message: Possibly it may occur an infinite reactive loop.
line: 8
column: 4
suggestions: null
- message: Possibly it may occur an infinite reactive loop because this function
may update `a`.
line: 14
column: 9
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/function-call/test02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/function-call/test03-errors.yaml
================================================
- message: Possibly it may occur an infinite reactive loop.
line: 8
column: 3
suggestions: null
- message: Possibly it may occur an infinite reactive loop because this function
may update `a`.
line: 13
column: 9
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/function-call/test03-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/function-call/test04-errors.yaml
================================================
- message: Possibly it may occur an infinite reactive loop.
line: 6
column: 3
suggestions: null
- message: Possibly it may occur an infinite reactive loop.
line: 11
column: 3
suggestions: null
- message: Possibly it may occur an infinite reactive loop because this function
may update `a`.
line: 17
column: 9
suggestions: null
- message: Possibly it may occur an infinite reactive loop because this function
may update `a`.
line: 18
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/function-call/test04-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/function-call/test05-errors.yaml
================================================
- message: Possibly it may occur an infinite reactive loop.
line: 6
column: 3
suggestions: null
- message: Possibly it may occur an infinite reactive loop because this function
may update `a`.
line: 12
column: 9
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/function-call/test05-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/function-call/test06-errors.yaml
================================================
- message: Possibly it may occur an infinite reactive loop.
line: 5
column: 3
suggestions: null
- message: Possibly it may occur an infinite reactive loop because this function
may update `obj`.
line: 9
column: 9
suggestions: null
- message: Possibly it may occur an infinite reactive loop.
line: 10
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/function-call/test06-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/function-call/test07-errors.yaml
================================================
- message: Possibly it may occur an infinite reactive loop.
line: 5
column: 3
suggestions: null
- message: Possibly it may occur an infinite reactive loop because this function
may update `$store`.
line: 11
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/function-call/test07-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/function-call/test08-errors.yaml
================================================
- message: Possibly it may occur an infinite reactive loop.
line: 6
column: 3
suggestions: null
- message: Possibly it may occur an infinite reactive loop because this function
may update `foo`.
line: 12
column: 9
suggestions: null
- message: Possibly it may occur an infinite reactive loop.
line: 13
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/function-call/test08-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/function-call/test09-errors.yaml
================================================
- message: Possibly it may occur an infinite reactive loop.
line: 10
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/function-call/test09-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/function-call/test10-errors.yaml
================================================
- message: Possibly it may occur an infinite reactive loop.
line: 9
column: 28
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/function-call/test10-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/function-call/test11-errors.yaml
================================================
- message: Possibly it may occur an infinite reactive loop.
line: 8
column: 4
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/function-call/test11-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/promise/test01-errors.yaml
================================================
- message: Possibly it may occur an infinite reactive loop.
line: 6
column: 4
suggestions: null
- message: Possibly it may occur an infinite reactive loop.
line: 7
column: 4
suggestions: null
- message: Possibly it may occur an infinite reactive loop.
line: 11
column: 4
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/promise/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/promise/test02-errors.yaml
================================================
- message: Possibly it may occur an infinite reactive loop.
line: 10
column: 5
suggestions: null
- message: Possibly it may occur an infinite reactive loop.
line: 13
column: 5
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/promise/test02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/promise/test03-errors.yaml
================================================
- message: Possibly it may occur an infinite reactive loop.
line: 8
column: 5
suggestions: null
- message: Possibly it may occur an infinite reactive loop.
line: 11
column: 5
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/promise/test03-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/promise/test04-errors.yaml
================================================
- message: Possibly it may occur an infinite reactive loop.
line: 7
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/promise/test04-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/promise/test05-errors.yaml
================================================
- message: Possibly it may occur an infinite reactive loop.
line: 7
column: 5
suggestions: null
- message: Possibly it may occur an infinite reactive loop.
line: 10
column: 5
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/promise/test05-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/promise/test06-errors.yaml
================================================
- message: Possibly it may occur an infinite reactive loop.
line: 7
column: 5
suggestions: null
- message: Possibly it may occur an infinite reactive loop.
line: 10
column: 5
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/promise/test06-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/queueMicrotask/test01-errors.yaml
================================================
- message: Possibly it may occur an infinite reactive loop.
line: 7
column: 4
suggestions: null
- message: Possibly it may occur an infinite reactive loop.
line: 13
column: 4
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/queueMicrotask/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/setInterval/test01-errors.yaml
================================================
- message: Possibly it may occur an infinite reactive loop.
line: 7
column: 4
suggestions: null
- message: Possibly it may occur an infinite reactive loop.
line: 13
column: 4
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/setInterval/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/setTimeout/test01-errors.yaml
================================================
- message: Possibly it may occur an infinite reactive loop.
line: 11
column: 4
suggestions: null
- message: Possibly it may occur an infinite reactive loop.
line: 17
column: 4
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/setTimeout/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/setTimeout/test02-errors.yaml
================================================
- message: Possibly it may occur an infinite reactive loop.
line: 5
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/setTimeout/test02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/tick/test01-errors.yaml
================================================
- message: Possibly it may occur an infinite reactive loop.
line: 8
column: 4
suggestions: null
- message: Possibly it may occur an infinite reactive loop.
line: 14
column: 4
suggestions: null
- message: Possibly it may occur an infinite reactive loop.
line: 20
column: 3
suggestions: null
- message: Possibly it may occur an infinite reactive loop.
line: 25
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/tick/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/tick/test02-errors.yaml
================================================
- message: Possibly it may occur an infinite reactive loop.
line: 17
column: 4
suggestions: null
- message: Possibly it may occur an infinite reactive loop.
line: 23
column: 3
suggestions: null
- message: Possibly it may occur an infinite reactive loop.
line: 28
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/invalid/tick/test02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/valid/recursive-reference-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/valid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/valid/test02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/valid/test03-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/valid/test04-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/valid/test05-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/valid/test06-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/valid/test07-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/infinite-reactive-loop/valid/test08-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-attributes-per-line/invalid/max3/_config.json
================================================
{
"options": [{ "multiline": 3, "singleline": 3 }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-attributes-per-line/invalid/max3/test01-errors.yaml
================================================
- message: "'{...attrs}' should be on a new line."
line: 8
column: 50
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-attributes-per-line/invalid/max3/test01-input.svelte
================================================
CLICK ME!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-attributes-per-line/invalid/max3/test01-output.svelte
================================================
CLICK ME!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-attributes-per-line/invalid/test01-errors.yaml
================================================
- message: "'bind:value' should be on a new line."
line: 8
column: 20
suggestions: null
- message: "'on:click' should be on a new line."
line: 10
column: 23
suggestions: null
- message: "'{...attrs}' should be on a new line."
line: 11
column: 15
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-attributes-per-line/invalid/test01-input.svelte
================================================
CLICK ME!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-attributes-per-line/invalid/test01-output.svelte
================================================
CLICK ME!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-attributes-per-line/valid/test01-input.svelte
================================================
CLICK ME!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-lines-per-block/invalid/all-blocks-exceed/_config.json
================================================
{
"options": [{ "script": 1, "style": 1, "template": 1 }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-lines-per-block/invalid/all-blocks-exceed/all01-errors.yaml
================================================
- message: "
{a}
{b}
{c}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-lines-per-block/invalid/mixed-comment-code/_config.json
================================================
{
"options": [{ "script": 1, "style": 1, "skipComments": true }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-lines-per-block/invalid/mixed-comment-code/mixed01-errors.yaml
================================================
- message: '
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-lines-per-block/invalid/script-too-long/_config.json
================================================
{
"options": [{ "script": 3 }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-lines-per-block/invalid/script-too-long/script01-errors.yaml
================================================
- message: "
Hello {name}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-lines-per-block/invalid/skip-not-enough/_config.json
================================================
{
"options": [{ "script": 2, "skipComments": true }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-lines-per-block/invalid/skip-not-enough/skip01-errors.yaml
================================================
- message: "
Hello
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-lines-per-block/invalid/style-too-long/_config.json
================================================
{
"options": [{ "style": 5 }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-lines-per-block/invalid/style-too-long/style01-errors.yaml
================================================
- message: "
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-lines-per-block/invalid/template-too-long/_config.json
================================================
{
"options": [{ "template": 3 }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-lines-per-block/invalid/template-too-long/template01-errors.yaml
================================================
- message: "template block has too many lines (10). Maximum allowed is 3."
line: 3
column: 10
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-lines-per-block/invalid/template-too-long/template01-input.svelte
================================================
Hello {name}
Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-lines-per-block/valid/default-config.json
================================================
{
"options": [{ "script": 10, "style": 10, "template": 10 }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-lines-per-block/valid/default-input.svelte
================================================
Count: {count}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-lines-per-block/valid/empty-block/_config.json
================================================
{
"options": [{ "script": 1, "style": 1, "template": 5 }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-lines-per-block/valid/empty-block/empty01-input.svelte
================================================
Hello
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-lines-per-block/valid/no-style/_config.json
================================================
{
"options": [{ "script": 5, "template": 5 }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-lines-per-block/valid/no-style/no-style01-input.svelte
================================================
Hello {name}!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-lines-per-block/valid/only-style/_config.json
================================================
{
"options": [{ "script": 10 }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-lines-per-block/valid/only-style/only-style01-input.svelte
================================================
{name}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-lines-per-block/valid/skip-blank-lines/_config.json
================================================
{
"options": [{ "script": 4, "skipBlankLines": true }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-lines-per-block/valid/skip-blank-lines/skip-blank01-input.svelte
================================================
{count}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-lines-per-block/valid/skip-both/_config.json
================================================
{
"options": [{ "script": 4, "style": 3, "template": 2, "skipBlankLines": true, "skipComments": true }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-lines-per-block/valid/skip-both/skip-both01-input.svelte
================================================
{count}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-lines-per-block/valid/skip-comments/_config.json
================================================
{
"options": [{ "script": 1, "style": 3, "skipComments": true }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/max-lines-per-block/valid/skip-comments/skip-comments01-input.svelte
================================================
{count}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/mustache-spacing/invalid/always/_config.json
================================================
{
"options": [
{
"textExpressions": "always",
"attributesAndProps": "always",
"directiveExpressions": "always",
"tags": {
"openingBrace": "always",
"closingBrace": "always"
}
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/mustache-spacing/invalid/always/snippet-render01-errors.yaml
================================================
- message: Expected 1 space after '{', but not found.
line: 2
column: 1
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 2
column: 16
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 3
column: 1
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 3
column: 10
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 4
column: 1
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 4
column: 15
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/mustache-spacing/invalid/always/snippet-render01-input.svelte
================================================
{#snippet foo()}
{/snippet}
{@render foo()}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/mustache-spacing/invalid/always/snippet-render01-output.svelte
================================================
{ #snippet foo() }
{ /snippet }
{ @render foo() }
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/mustache-spacing/invalid/always/snippet-render01-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/mustache-spacing/invalid/always/test01-errors.yaml
================================================
- message: Expected 1 space after '{', but not found.
line: 18
column: 1
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 18
column: 5
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 19
column: 19
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 19
column: 24
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 19
column: 31
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 19
column: 37
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 19
column: 50
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 19
column: 58
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 20
column: 19
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 20
column: 22
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 21
column: 8
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 21
column: 17
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 22
column: 1
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 22
column: 11
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 23
column: 1
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 23
column: 11
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 24
column: 1
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 24
column: 15
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 26
column: 1
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 26
column: 16
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 26
column: 20
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 26
column: 24
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 27
column: 1
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 27
column: 16
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 27
column: 20
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 27
column: 40
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 27
column: 44
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 27
column: 48
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 28
column: 1
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 28
column: 16
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 28
column: 20
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 28
column: 26
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 28
column: 30
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 28
column: 34
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 29
column: 1
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 29
column: 16
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 29
column: 17
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 29
column: 23
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 29
column: 24
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 29
column: 28
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 31
column: 1
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 31
column: 20
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 31
column: 24
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 31
column: 30
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 32
column: 1
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 32
column: 27
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 32
column: 31
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 32
column: 37
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 33
column: 1
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 33
column: 31
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 33
column: 35
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 33
column: 41
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 34
column: 1
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 34
column: 38
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 34
column: 42
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 34
column: 48
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 35
column: 1
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 35
column: 20
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 35
column: 24
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 35
column: 30
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 35
column: 34
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 35
column: 40
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 37
column: 1
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 37
column: 19
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 37
column: 23
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 37
column: 34
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 37
column: 38
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 37
column: 50
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 37
column: 54
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 37
column: 61
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 38
column: 1
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 38
column: 19
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 38
column: 23
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 38
column: 34
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 38
column: 38
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 38
column: 45
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 39
column: 1
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 39
column: 29
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 39
column: 33
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 39
column: 40
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 41
column: 1
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 41
column: 30
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 41
column: 34
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 41
column: 41
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 42
column: 1
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 42
column: 24
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 42
column: 28
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 42
column: 35
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 44
column: 1
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 44
column: 25
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 44
column: 29
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 44
column: 36
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 46
column: 1
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 46
column: 19
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 46
column: 23
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 46
column: 33
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 46
column: 44
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 46
column: 51
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 48
column: 1
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 48
column: 17
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 48
column: 21
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 48
column: 26
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/mustache-spacing/invalid/always/test01-input.svelte
================================================
{foo}
{@html bar}
{@debug o1}
{@debug o1, o2}
{#if expression}...{/if}
{#if expression}...{:else if expression}...{/if}
{#if expression}...{:else}...{/if}
{#if expression}{:else}{/if}
{#each list as item}...{/each}
{#each list as item, index}...{/each}
{#each list as item (item.key)}...{/each}
{#each list as item, index (item.key)}...{/each}
{#each list as item}...{:else}...{/each}
{#await expression}...{:then name}...{:catch name}...{/await}
{#await expression}...{:then name}...{/await}
{#await expression then name}...{/await}
{#await expression catch name}...{/await}
{#await expression then}...{/await}
{#await expression catch}...{/await}
{#await expression}...{:then}...{:catch}...{/await}
{#key expression}...{/key}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/mustache-spacing/invalid/always/test01-output.svelte
================================================
{ foo }
{ @html bar }
{ @debug o1 }
{ @debug o1, o2 }
{ #if expression }...{ /if }
{ #if expression }...{ :else if expression }...{ /if }
{ #if expression }...{ :else }...{ /if }
{ #if expression }{ :else }{ /if }
{ #each list as item }...{ /each }
{ #each list as item, index }...{ /each }
{ #each list as item (item.key) }...{ /each }
{ #each list as item, index (item.key) }...{ /each }
{ #each list as item }...{ :else }...{ /each }
{ #await expression }...{ :then name }...{ :catch name }...{ /await }
{ #await expression }...{ :then name }...{ /await }
{ #await expression then name }...{ /await }
{ #await expression catch name }...{ /await }
{ #await expression then }...{ /await }
{ #await expression catch }...{ /await }
{ #await expression }...{ :then}...{ :catch}...{ /await }
{ #key expression }...{ /key }
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/mustache-spacing/invalid/always-after-expression/_config.json
================================================
{
"options": [
{
"textExpressions": "always",
"attributesAndProps": "always",
"directiveExpressions": "always",
"tags": {
"openingBrace": "never",
"closingBrace": "always-after-expression"
}
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/mustache-spacing/invalid/always-after-expression/snippet-render01-errors.yaml
================================================
- message: Expected 1 space before '}', but not found.
line: 2
column: 16
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 4
column: 15
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/mustache-spacing/invalid/always-after-expression/snippet-render01-input.svelte
================================================
{#snippet foo()}
{/snippet}
{@render foo()}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/mustache-spacing/invalid/always-after-expression/snippet-render01-output.svelte
================================================
{#snippet foo() }
{/snippet}
{@render foo() }
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/mustache-spacing/invalid/always-after-expression/snippet-render01-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/mustache-spacing/invalid/always-after-expression/test01-errors.yaml
================================================
- message: Expected 1 space after '{', but not found.
line: 18
column: 1
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 18
column: 5
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 19
column: 19
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 19
column: 24
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 19
column: 31
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 19
column: 37
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 19
column: 50
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 19
column: 58
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 20
column: 19
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 20
column: 22
suggestions: null
- message: Expected 1 space after '{', but not found.
line: 21
column: 8
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 21
column: 17
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 22
column: 11
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 23
column: 11
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 24
column: 15
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 26
column: 16
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 27
column: 16
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 27
column: 40
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 28
column: 16
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 29
column: 16
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 31
column: 20
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 32
column: 27
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 33
column: 31
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 34
column: 38
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 35
column: 20
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 37
column: 19
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 37
column: 34
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 37
column: 50
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 38
column: 19
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 38
column: 34
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 39
column: 29
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 41
column: 30
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 46
column: 19
suggestions: null
- message: Expected 1 space before '}', but not found.
line: 48
column: 17
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/mustache-spacing/invalid/always-after-expression/test01-input.svelte
================================================
{foo}
{@html bar}
{@debug o1}
{@debug o1, o2}
{#if expression}...{/if}
{#if expression}...{:else if expression}...{/if}
{#if expression}...{:else}...{/if}
{#if expression}{:else}{/if}
{#each list as item}...{/each}
{#each list as item, index}...{/each}
{#each list as item (item.key)}...{/each}
{#each list as item, index (item.key)}...{/each}
{#each list as item}...{:else}...{/each}
{#await expression}...{:then name}...{:catch name}...{/await}
{#await expression}...{:then name}...{/await}
{#await expression then name}...{/await}
{#await expression catch name}...{/await}
{#await expression then}...{/await}
{#await expression catch}...{/await}
{#await expression}...{:then}...{:catch}...{/await}
{#key expression}...{/key}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/mustache-spacing/invalid/always-after-expression/test01-output.svelte
================================================
{ foo }
{@html bar }
{@debug o1 }
{@debug o1, o2 }
{#if expression }...{/if}
{#if expression }...{:else if expression }...{/if}
{#if expression }...{:else}...{/if}
{#if expression }{:else}{/if}
{#each list as item }...{/each}
{#each list as item, index }...{/each}
{#each list as item (item.key) }...{/each}
{#each list as item, index (item.key) }...{/each}
{#each list as item }...{:else}...{/each}
{#await expression }...{:then name }...{:catch name }...{/await}
{#await expression }...{:then name }...{/await}
{#await expression then name }...{/await}
{#await expression catch name }...{/await}
{#await expression then}...{/await}
{#await expression catch}...{/await}
{#await expression }...{:then}...{:catch}...{/await}
{#key expression }...{/key}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/mustache-spacing/invalid/snippet-render01-errors.yaml
================================================
- message: Expected no space after '{', but found.
line: 2
column: 1
suggestions: null
- message: Expected no space before '}', but found.
line: 2
column: 17
suggestions: null
- message: Expected no space after '{', but found.
line: 3
column: 1
suggestions: null
- message: Expected no space before '}', but found.
line: 3
column: 11
suggestions: null
- message: Expected no space after '{', but found.
line: 4
column: 1
suggestions: null
- message: Expected no space before '}', but found.
line: 4
column: 16
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/mustache-spacing/invalid/snippet-render01-input.svelte
================================================
{ #snippet foo() }
{ /snippet }
{ @render foo() }
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/mustache-spacing/invalid/snippet-render01-output.svelte
================================================
{#snippet foo()}
{/snippet}
{@render foo()}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/mustache-spacing/invalid/snippet-render01-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/mustache-spacing/invalid/test01-errors.yaml
================================================
- message: Expected no space after '{', but found.
line: 20
column: 1
suggestions: null
- message: Expected no space before '}', but found.
line: 20
column: 6
suggestions: null
- message: Expected no space after '{', but found.
line: 21
column: 19
suggestions: null
- message: Expected no space before '}', but found.
line: 21
column: 25
suggestions: null
- message: Expected no space after '{', but found.
line: 21
column: 33
suggestions: null
- message: Expected no space before '}', but found.
line: 21
column: 40
suggestions: null
- message: Expected no space after '{', but found.
line: 21
column: 54
suggestions: null
- message: Expected no space before '}', but found.
line: 21
column: 63
suggestions: null
- message: Expected no space after '{', but found.
line: 22
column: 19
suggestions: null
- message: Expected no space before '}', but found.
line: 22
column: 23
suggestions: null
- message: Expected no space after '{', but found.
line: 23
column: 8
suggestions: null
- message: Expected no space before '}', but found.
line: 23
column: 18
suggestions: null
- message: Expected no space after '{', but found.
line: 24
column: 1
suggestions: null
- message: Expected no space before '}', but found.
line: 24
column: 12
suggestions: null
- message: Expected no space after '{', but found.
line: 25
column: 1
suggestions: null
- message: Expected no space before '}', but found.
line: 25
column: 12
suggestions: null
- message: Expected no space after '{', but found.
line: 26
column: 1
suggestions: null
- message: Expected no space before '}', but found.
line: 26
column: 16
suggestions: null
- message: Expected no space after '{', but found.
line: 28
column: 1
suggestions: null
- message: Expected no space before '}', but found.
line: 28
column: 17
suggestions: null
- message: Expected no space after '{', but found.
line: 28
column: 22
suggestions: null
- message: Expected no space before '}', but found.
line: 28
column: 27
suggestions: null
- message: Expected no space after '{', but found.
line: 29
column: 1
suggestions: null
- message: Expected no space before '}', but found.
line: 29
column: 17
suggestions: null
- message: Expected no space after '{', but found.
line: 29
column: 22
suggestions: null
- message: Expected no space before '}', but found.
line: 29
column: 43
suggestions: null
- message: Expected no space after '{', but found.
line: 29
column: 48
suggestions: null
- message: Expected no space before '}', but found.
line: 29
column: 53
suggestions: null
- message: Expected no space after '{', but found.
line: 30
column: 1
suggestions: null
- message: Expected no space before '}', but found.
line: 30
column: 17
suggestions: null
- message: Expected no space after '{', but found.
line: 30
column: 22
suggestions: null
- message: Expected no space before '}', but found.
line: 30
column: 29
suggestions: null
- message: Expected no space after '{', but found.
line: 30
column: 34
suggestions: null
- message: Expected no space before '}', but found.
line: 30
column: 39
suggestions: null
- message: Expected no space after '{', but found.
line: 31
column: 1
suggestions: null
- message: Expected no space before '}', but found.
line: 31
column: 17
suggestions: null
- message: Expected no space after '{', but found.
line: 31
column: 19
suggestions: null
- message: Expected no space before '}', but found.
line: 31
column: 26
suggestions: null
- message: Expected no space after '{', but found.
line: 31
column: 28
suggestions: null
- message: Expected no space before '}', but found.
line: 31
column: 33
suggestions: null
- message: Expected no space after '{', but found.
line: 33
column: 1
suggestions: null
- message: Expected no space before '}', but found.
line: 33
column: 21
suggestions: null
- message: Expected no space after '{', but found.
line: 33
column: 26
suggestions: null
- message: Expected no space before '}', but found.
line: 33
column: 33
suggestions: null
- message: Expected no space after '{', but found.
line: 34
column: 1
suggestions: null
- message: Expected no space before '}', but found.
line: 34
column: 28
suggestions: null
- message: Expected no space after '{', but found.
line: 34
column: 33
suggestions: null
- message: Expected no space before '}', but found.
line: 34
column: 40
suggestions: null
- message: Expected no space after '{', but found.
line: 35
column: 1
suggestions: null
- message: Expected no space before '}', but found.
line: 35
column: 32
suggestions: null
- message: Expected no space after '{', but found.
line: 35
column: 37
suggestions: null
- message: Expected no space before '}', but found.
line: 35
column: 44
suggestions: null
- message: Expected no space after '{', but found.
line: 36
column: 1
suggestions: null
- message: Expected no space before '}', but found.
line: 36
column: 39
suggestions: null
- message: Expected no space after '{', but found.
line: 36
column: 44
suggestions: null
- message: Expected no space before '}', but found.
line: 36
column: 51
suggestions: null
- message: Expected no space after '{', but found.
line: 37
column: 1
suggestions: null
- message: Expected no space before '}', but found.
line: 37
column: 21
suggestions: null
- message: Expected no space after '{', but found.
line: 37
column: 26
suggestions: null
- message: Expected no space before '}', but found.
line: 37
column: 33
suggestions: null
- message: Expected no space after '{', but found.
line: 37
column: 38
suggestions: null
- message: Expected no space before '}', but found.
line: 37
column: 45
suggestions: null
- message: Expected no space after '{', but found.
line: 39
column: 1
suggestions: null
- message: Expected no space before '}', but found.
line: 39
column: 20
suggestions: null
- message: Expected no space after '{', but found.
line: 39
column: 25
suggestions: null
- message: Expected no space before '}', but found.
line: 39
column: 37
suggestions: null
- message: Expected no space after '{', but found.
line: 39
column: 42
suggestions: null
- message: Expected no space before '}', but found.
line: 39
column: 55
suggestions: null
- message: Expected no space after '{', but found.
line: 39
column: 60
suggestions: null
- message: Expected no space before '}', but found.
line: 39
column: 68
suggestions: null
- message: Expected no space after '{', but found.
line: 40
column: 1
suggestions: null
- message: Expected no space before '}', but found.
line: 40
column: 20
suggestions: null
- message: Expected no space after '{', but found.
line: 40
column: 25
suggestions: null
- message: Expected no space before '}', but found.
line: 40
column: 37
suggestions: null
- message: Expected no space after '{', but found.
line: 40
column: 42
suggestions: null
- message: Expected no space before '}', but found.
line: 40
column: 50
suggestions: null
- message: Expected no space after '{', but found.
line: 41
column: 1
suggestions: null
- message: Expected no space before '}', but found.
line: 41
column: 30
suggestions: null
- message: Expected no space after '{', but found.
line: 41
column: 35
suggestions: null
- message: Expected no space before '}', but found.
line: 41
column: 43
suggestions: null
- message: Expected no space after '{', but found.
line: 42
column: 1
suggestions: null
- message: Expected no space before '}', but found.
line: 42
column: 31
suggestions: null
- message: Expected no space after '{', but found.
line: 42
column: 36
suggestions: null
- message: Expected no space before '}', but found.
line: 42
column: 44
suggestions: null
- message: Expected no space after '{', but found.
line: 43
column: 1
suggestions: null
- message: Expected no space before '}', but found.
line: 43
column: 25
suggestions: null
- message: Expected no space after '{', but found.
line: 43
column: 30
suggestions: null
- message: Expected no space before '}', but found.
line: 43
column: 38
suggestions: null
- message: Expected no space after '{', but found.
line: 44
column: 1
suggestions: null
- message: Expected no space before '}', but found.
line: 44
column: 26
suggestions: null
- message: Expected no space after '{', but found.
line: 44
column: 31
suggestions: null
- message: Expected no space before '}', but found.
line: 44
column: 39
suggestions: null
- message: Expected no space after '{', but found.
line: 45
column: 1
suggestions: null
- message: Expected no space before '}', but found.
line: 45
column: 20
suggestions: null
- message: Expected no space after '{', but found.
line: 45
column: 25
suggestions: null
- message: Expected no space after '{', but found.
line: 45
column: 36
suggestions: null
- message: Expected no space after '{', but found.
line: 45
column: 48
suggestions: null
- message: Expected no space before '}', but found.
line: 45
column: 56
suggestions: null
- message: Expected no space after '{', but found.
line: 47
column: 1
suggestions: null
- message: Expected no space before '}', but found.
line: 47
column: 18
suggestions: null
- message: Expected no space after '{', but found.
line: 47
column: 23
suggestions: null
- message: Expected no space before '}', but found.
line: 47
column: 29
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/mustache-spacing/invalid/test01-input.svelte
================================================
{ foo }
{ @html bar }
{ @debug o1 }
{ @debug o1, o2 }
{ #if expression }...{ /if }
{ #if expression }...{ :else if expression }...{ /if }
{ #if expression }...{ :else }...{ /if }
{ #if expression }{ :else }{ /if }
{ #each list as item }...{ /each }
{ #each list as item, index }...{ /each }
{ #each list as item (item.key) }...{ /each }
{ #each list as item, index (item.key) }...{ /each }
{ #each list as item }...{ :else }...{ /each }
{ #await expression }...{ :then name }...{ :catch name }...{ /await }
{ #await expression }...{ :then name }...{ /await }
{ #await expression then name }...{ /await }
{ #await expression catch name }...{ /await }
{ #await expression then }...{ /await }
{ #await expression catch }...{ /await }
{ #await expression }...{ :then}...{ :catch}...{ /await }
{ #key expression }...{ /key }
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/mustache-spacing/invalid/test01-output.svelte
================================================
{foo}
{@html bar}
{@debug o1}
{@debug o1, o2}
{#if expression}...{/if}
{#if expression}...{:else if expression}...{/if}
{#if expression}...{:else}...{/if}
{#if expression}{:else}{/if}
{#each list as item}...{/each}
{#each list as item, index}...{/each}
{#each list as item (item.key)}...{/each}
{#each list as item, index (item.key)}...{/each}
{#each list as item}...{:else}...{/each}
{#await expression}...{:then name}...{:catch name}...{/await}
{#await expression}...{:then name}...{/await}
{#await expression then name}...{/await}
{#await expression catch name}...{/await}
{#await expression then}...{/await}
{#await expression catch}...{/await}
{#await expression}...{:then}...{:catch}...{/await}
{#key expression}...{/key}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/mustache-spacing/valid/always/_config.json
================================================
{
"options": [
{
"textExpressions": "always",
"attributesAndProps": "always",
"directiveExpressions": "always",
"tags": {
"openingBrace": "always",
"closingBrace": "always"
}
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/mustache-spacing/valid/always/snippet-render01-input.svelte
================================================
{ #snippet foo() }
{ /snippet }
{ @render foo() }
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/mustache-spacing/valid/always/snippet-render01-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/mustache-spacing/valid/always/test01-input.svelte
================================================
{ foo }
{ @html bar }
{ @debug o1 }
{ @debug o1, o2 }
{ #if expression }...{ /if }
{ #if expression }...{ :else if expression }...{ /if }
{ #if expression }...{ :else }...{ /if }
{ #if expression }{ :else }{ /if }
{ #each list as item }...{ /each }
{ #each list as item, index }...{ /each }
{ #each list as item (item.key) }...{ /each }
{ #each list as item, index (item.key) }...{ /each }
{ #each list as item }...{ :else }...{ /each }
{ #await expression }...{ :then name }...{ :catch name }...{ /await }
{ #await expression }...{ :then name }...{ /await }
{ #await expression then name }...{ /await }
{ #await expression catch name }...{ /await }
{ #await expression then }...{ /await }
{ #await expression catch }...{ /await }
{ #await expression }...{ :then}...{ :catch}...{ /await }
{ #key expression }...{ /key }
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/mustache-spacing/valid/snippet-render01-input.svelte
================================================
{#snippet foo()}
{/snippet}
{@render foo()}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/mustache-spacing/valid/snippet-render01-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/mustache-spacing/valid/test01-input.svelte
================================================
{foo}
{@html bar}
{@debug o1}
{@debug o1, o2}
{#if expression}...{/if}
{#if expression}...{:else if expression}...{/if}
{#if expression}...{:else}...{/if}
{#if expression}{:else}{/if}
{#each list as item}...{/each}
{#each list as item, index}...{/each}
{#each list as item (item.key)}...{/each}
{#each list as item, index (item.key)}...{/each}
{#each list as item}...{:else}...{/each}
{#await expression}...{:then name}...{:catch name}...{/await}
{#await expression}...{:then name}...{/await}
{#await expression then name}...{/await}
{#await expression catch name}...{/await}
{#await expression then}...{/await}
{#await expression catch}...{/await}
{#await expression}...{:then}...{:catch}...{/await}
{#key expression}...{/key}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-add-event-listener/invalid/_requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-add-event-listener/invalid/test01-errors.yaml
================================================
- message: Do not use `addEventListener`. Use the `on` function from
`svelte/events` instead.
line: 17
column: 3
suggestions:
- desc: Use `on` from `svelte/events` instead
output: |
Hello
- message: Do not use `addEventListener`. Use the `on` function from
`svelte/events` instead.
line: 18
column: 3
suggestions:
- desc: Use `on` from `svelte/events` instead
output: |
Hello
- message: Do not use `addEventListener`. Use the `on` function from
`svelte/events` instead.
line: 21
column: 2
suggestions:
- desc: Use `on` from `svelte/events` instead
output: |
Hello
- message: Do not use `addEventListener`. Use the `on` function from
`svelte/events` instead.
line: 22
column: 2
suggestions:
- desc: Use `on` from `svelte/events` instead
output: |
Hello
- message: Do not use `addEventListener`. Use the `on` function from
`svelte/events` instead.
line: 23
column: 2
suggestions:
- desc: Use `on` from `svelte/events` instead
output: |
Hello
- message: Do not use `addEventListener`. Use the `on` function from
`svelte/events` instead.
line: 26
column: 2
suggestions:
- desc: Use `on` from `svelte/events` instead
output: |
Hello
- message: Do not use `addEventListener`. Use the `on` function from
`svelte/events` instead.
line: 28
column: 2
suggestions:
- desc: Use `on` from `svelte/events` instead
output: |
Hello
- message: Do not use `addEventListener`. Use the `on` function from
`svelte/events` instead.
line: 31
column: 2
suggestions:
- desc: Use `on` from `svelte/events` instead
output: |
Hello
- message: Do not use `addEventListener`. Use the `on` function from
`svelte/events` instead.
line: 34
column: 2
suggestions:
- desc: Use `on` from `svelte/events` instead
output: |
Hello
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-add-event-listener/invalid/test01-input.svelte
================================================
Hello
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-add-event-listener/invalid/typescript01-errors.yaml
================================================
- message: Do not use `addEventListener`. Use the `on` function from
`svelte/events` instead.
line: 6
column: 2
suggestions:
- desc: Use `on` from `svelte/events` instead
output: |
Hello
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-add-event-listener/invalid/typescript01-input.svelte
================================================
Hello
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-add-event-listener/valid/_requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-add-event-listener/valid/test01-input.svelte
================================================
Hello
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-debug-tags/invalid/debug01-errors.yaml
================================================
- message: Unexpected `{@debug}`.
line: 11
column: 1
suggestions:
- desc: Remove `{@debug}` from the source
messageId: suggestRemove
output: |
Hello {user.firstname}!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-debug-tags/invalid/debug01-input.svelte
================================================
{@debug}
Hello {user.firstname}!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-debug-tags/invalid/debug02-errors.yaml
================================================
- message: Unexpected `{@debug}`.
line: 11
column: 1
suggestions:
- desc: Remove `{@debug}` from the source
messageId: suggestRemove
output: |
Hello {user.firstname}!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-debug-tags/invalid/debug02-input.svelte
================================================
{@debug user}
Hello {user.firstname}!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-debug-tags/valid/html-input.svelte
================================================
{@html string}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-debug-tags/valid/text-mustash-input.svelte
================================================
{string}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-html-tags/invalid/html-errors.yaml
================================================
- message: "`{@html}` can lead to XSS attack."
line: 5
column: 4
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-html-tags/invalid/html-input.svelte
================================================
{@html string}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-html-tags/valid/debug01-input.svelte
================================================
{@debug}
Hello {user.firstname}!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-html-tags/valid/debug02-input.svelte
================================================
{@debug user}
Hello {user.firstname}!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-at-html-tags/valid/text-mustash-input.svelte
================================================
{string}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dom-manipulating/invalid/chain01-errors.yaml
================================================
- message: Don't manipulate the DOM directly. The Svelte runtime can get confused
if there is a difference between the actual DOM and the DOM expected by the
Svelte runtime.
line: 5
column: 3
suggestions: null
- message: Don't manipulate the DOM directly. The Svelte runtime can get confused
if there is a difference between the actual DOM and the DOM expected by the
Svelte runtime.
line: 8
column: 4
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dom-manipulating/invalid/chain01-input.svelte
================================================
div
remove1()}>Click Me
remove2()}>Click Me
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dom-manipulating/invalid/remove-text01-errors.yaml
================================================
- message: Don't manipulate the DOM directly. The Svelte runtime can get confused
if there is a difference between the actual DOM and the DOM expected by the
Svelte runtime.
line: 9
column: 24
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dom-manipulating/invalid/remove-text01-input.svelte
================================================
{#if show}
div
{/if}
toggle()}>Click Me (Good)
update()}>Click Me (Bad)
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dom-manipulating/invalid/remove01-errors.yaml
================================================
- message: Don't manipulate the DOM directly. The Svelte runtime can get confused
if there is a difference between the actual DOM and the DOM expected by the
Svelte runtime.
line: 9
column: 23
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dom-manipulating/invalid/remove01-input.svelte
================================================
{#if show}
div
{/if}
toggle()}>Click Me (Good)
remove()}>Click Me (Bad)
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dom-manipulating/invalid/svelte-element01-errors.yaml
================================================
- message: Don't manipulate the DOM directly. The Svelte runtime can get confused
if there is a difference between the actual DOM and the DOM expected by the
Svelte runtime.
line: 7
column: 3
suggestions: null
- message: Don't manipulate the DOM directly. The Svelte runtime can get confused
if there is a difference between the actual DOM and the DOM expected by the
Svelte runtime.
line: 8
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dom-manipulating/invalid/svelte-element01-input.svelte
================================================
div
div
remove()}>Click Me
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dom-manipulating/invalid/well-known-method01-errors.yaml
================================================
- message: Don't manipulate the DOM directly. The Svelte runtime can get confused
if there is a difference between the actual DOM and the DOM expected by the
Svelte runtime.
line: 6
column: 3
suggestions: null
- message: Don't manipulate the DOM directly. The Svelte runtime can get confused
if there is a difference between the actual DOM and the DOM expected by the
Svelte runtime.
line: 7
column: 3
suggestions: null
- message: Don't manipulate the DOM directly. The Svelte runtime can get confused
if there is a difference between the actual DOM and the DOM expected by the
Svelte runtime.
line: 8
column: 3
suggestions: null
- message: Don't manipulate the DOM directly. The Svelte runtime can get confused
if there is a difference between the actual DOM and the DOM expected by the
Svelte runtime.
line: 9
column: 3
suggestions: null
- message: Don't manipulate the DOM directly. The Svelte runtime can get confused
if there is a difference between the actual DOM and the DOM expected by the
Svelte runtime.
line: 10
column: 3
suggestions: null
- message: Don't manipulate the DOM directly. The Svelte runtime can get confused
if there is a difference between the actual DOM and the DOM expected by the
Svelte runtime.
line: 11
column: 3
suggestions: null
- message: Don't manipulate the DOM directly. The Svelte runtime can get confused
if there is a difference between the actual DOM and the DOM expected by the
Svelte runtime.
line: 12
column: 3
suggestions: null
- message: Don't manipulate the DOM directly. The Svelte runtime can get confused
if there is a difference between the actual DOM and the DOM expected by the
Svelte runtime.
line: 13
column: 3
suggestions: null
- message: Don't manipulate the DOM directly. The Svelte runtime can get confused
if there is a difference between the actual DOM and the DOM expected by the
Svelte runtime.
line: 14
column: 3
suggestions: null
- message: Don't manipulate the DOM directly. The Svelte runtime can get confused
if there is a difference between the actual DOM and the DOM expected by the
Svelte runtime.
line: 15
column: 3
suggestions: null
- message: Don't manipulate the DOM directly. The Svelte runtime can get confused
if there is a difference between the actual DOM and the DOM expected by the
Svelte runtime.
line: 16
column: 3
suggestions: null
- message: Don't manipulate the DOM directly. The Svelte runtime can get confused
if there is a difference between the actual DOM and the DOM expected by the
Svelte runtime.
line: 17
column: 3
suggestions: null
- message: Don't manipulate the DOM directly. The Svelte runtime can get confused
if there is a difference between the actual DOM and the DOM expected by the
Svelte runtime.
line: 18
column: 3
suggestions: null
- message: Don't manipulate the DOM directly. The Svelte runtime can get confused
if there is a difference between the actual DOM and the DOM expected by the
Svelte runtime.
line: 19
column: 3
suggestions: null
- message: Don't manipulate the DOM directly. The Svelte runtime can get confused
if there is a difference between the actual DOM and the DOM expected by the
Svelte runtime.
line: 20
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dom-manipulating/invalid/well-known-method01-input.svelte
================================================
update()}>Click Me
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dom-manipulating/invalid/well-known-prop01-errors.yaml
================================================
- message: Don't manipulate the DOM directly. The Svelte runtime can get confused
if there is a difference between the actual DOM and the DOM expected by the
Svelte runtime.
line: 4
column: 3
suggestions: null
- message: Don't manipulate the DOM directly. The Svelte runtime can get confused
if there is a difference between the actual DOM and the DOM expected by the
Svelte runtime.
line: 5
column: 3
suggestions: null
- message: Don't manipulate the DOM directly. The Svelte runtime can get confused
if there is a difference between the actual DOM and the DOM expected by the
Svelte runtime.
line: 6
column: 3
suggestions: null
- message: Don't manipulate the DOM directly. The Svelte runtime can get confused
if there is a difference between the actual DOM and the DOM expected by the
Svelte runtime.
line: 7
column: 3
suggestions: null
- message: Don't manipulate the DOM directly. The Svelte runtime can get confused
if there is a difference between the actual DOM and the DOM expected by the
Svelte runtime.
line: 8
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dom-manipulating/invalid/well-known-prop01-input.svelte
================================================
div
update()}>Click Me
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dom-manipulating/valid/computed-member01-input.svelte
================================================
div
remove()}>Click Me
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dom-manipulating/valid/loop01-input.svelte
================================================
{#each list as item}
{/each}
remove()}>Click Me
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dom-manipulating/valid/non-bind-this01-input.svelte
================================================
remove()}>Click Me
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dom-manipulating/valid/non-element01-input.svelte
================================================
div
div
remove()}>Click Me
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dom-manipulating/valid/read-prop01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dom-manipulating/valid/read-prop02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dom-manipulating/valid/remove-text01-input.svelte
================================================
{#if show}
div
{/if}
toggle()}>Click Me
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dom-manipulating/valid/remove01-input.svelte
================================================
{#if show}
div
{/if}
toggle()}>Click Me
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dom-manipulating/valid/unknown-method01-input.svelte
================================================
div
remove()}>Click Me
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dom-manipulating/valid/unknown-prop01-input.svelte
================================================
div
remove()}>Click Me
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dom-manipulating/valid/unknown-var01-input.svelte
================================================
remove()}>Click Me
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-else-if-blocks/invalid/simple-test01-errors.yaml
================================================
- message: This branch can never execute. Its condition is a duplicate or covered
by previous conditions in the `{#if}` / `{:else if}` chain.
line: 7
column: 11
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-else-if-blocks/invalid/simple-test01-input.svelte
================================================
{#if foo}
if
{:else if foo}
else if
{/if}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-else-if-blocks/invalid/test01-errors.yaml
================================================
- message: This branch can never execute. Its condition is a duplicate or covered
by previous conditions in the `{#if}` / `{:else if}` chain.
line: 21
column: 11
suggestions: null
- message: This branch can never execute. Its condition is a duplicate or covered
by previous conditions in the `{#if}` / `{:else if}` chain.
line: 31
column: 7
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-else-if-blocks/invalid/test01-input.svelte
================================================
{#if a}
foo
{:else if b}
bar
{:else if c}
baz
{/if}
{#if a}
foo
{:else if b}
bar
{:else if b}
baz
{/if}
{#if a}
foo
{:else if b}
bar
{:else}
baz
{#if b}
qux
{/if}
{/if}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-else-if-blocks/invalid/test02-errors.yaml
================================================
- message: This branch can never execute. Its condition is a duplicate or covered
by previous conditions in the `{#if}` / `{:else if}` chain.
line: 12
column: 11
suggestions: null
- message: This branch can never execute. Its condition is a duplicate or covered
by previous conditions in the `{#if}` / `{:else if}` chain.
line: 20
column: 11
suggestions: null
- message: This branch can never execute. Its condition is a duplicate or covered
by previous conditions in the `{#if}` / `{:else if}` chain.
line: 26
column: 11
suggestions: null
- message: This branch can never execute. Its condition is a duplicate or covered
by previous conditions in the `{#if}` / `{:else if}` chain.
line: 32
column: 11
suggestions: null
- message: This branch can never execute. Its condition is a duplicate or covered
by previous conditions in the `{#if}` / `{:else if}` chain.
line: 38
column: 11
suggestions: null
- message: This branch can never execute. Its condition is a duplicate or covered
by previous conditions in the `{#if}` / `{:else if}` chain.
line: 46
column: 17
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-else-if-blocks/invalid/test02-input.svelte
================================================
{#if a || b}
1
{:else if a}
2
{/if}
{#if a}
1
{:else if b}
2
{:else if a || b}
3
{/if}
{#if a}
1
{:else if a && b}
2
{/if}
{#if a && b}
1
{:else if a && b && c}
2
{/if}
{#if a || b}
1
{:else if b && c}
2
{/if}
{#if a}
1
{:else if b && c}
2
{:else if d && ((c && e && b) || a)}
3
{/if}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-else-if-blocks/valid/test01-input.svelte
================================================
{#if a}
foo
{:else if b}
bar
{:else if c}
baz
{/if}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-else-if-blocks/valid/test02-input.svelte
================================================
{#if a}
foo
{:else if b}
bar
{:else}baz
{/if}
{#if b}baz
{/if}
{#if a}
foo
{:else if b}
{#each list as b}
{#if b}
baz
{/if}
{/each}
{/if}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-else-if-blocks/valid/test03-input.svelte
================================================
{#if b && c}
foo
{:else if b || c}
bar
{:else if a || c}
bar
{/if}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-on-directives/invalid/inline-expression-errors.yaml
================================================
- message: This `on:keydown` directive is the same and duplicate directives in L1.
line: 1
column: 9
suggestions: null
- message: This `on:keydown` directive is the same and duplicate directives in L1.
line: 1
column: 47
suggestions: null
- message: This `on:keydown` directive is the same and duplicate directives in L7.
line: 4
column: 2
suggestions: null
- message: This `on:keydown` directive is the same and duplicate directives in L4.
line: 7
column: 2
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-on-directives/invalid/inline-expression-input.svelte
================================================
console.log('foo')} on:keydown={() => console.log('foo')} />
// foo
console.log('foo')}
on:keydown={() =>
console
// bar
.log('foo')}
/>
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-on-directives/invalid/modifier-errors.yaml
================================================
- message: This `on:click` directive is the same and duplicate directives in L1.
line: 1
column: 9
suggestions: null
- message: This `on:click` directive is the same and duplicate directives in L1.
line: 1
column: 23
suggestions: null
- message: This `on:click` directive is the same and duplicate directives in L1.
line: 1
column: 32
suggestions: null
- message: This `on:click` directive is the same and duplicate directives in L1.
line: 1
column: 46
suggestions: null
- message: This `on:click` directive is the same and duplicate directives in L1.
line: 1
column: 63
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-on-directives/invalid/modifier-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-on-directives/invalid/multiple-element-errors.yaml
================================================
- message: This `on:mousemove` directive is the same and duplicate directives in L1.
line: 1
column: 6
suggestions: null
- message: This `on:mousemove` directive is the same and duplicate directives in L1.
line: 1
column: 19
suggestions: null
- message: This `on:mousemove` directive is the same and duplicate directives in L2.
line: 2
column: 7
suggestions: null
- message: This `on:mousemove` directive is the same and duplicate directives in L2.
line: 2
column: 20
suggestions: null
- message: This `on:mousemove` directive is the same and duplicate directives in L4.
line: 4
column: 8
suggestions: null
- message: This `on:mousemove` directive is the same and duplicate directives in L4.
line: 4
column: 21
suggestions: null
- message: This `on:mousemove` directive is the same and duplicate directives in L6.
line: 6
column: 8
suggestions: null
- message: This `on:mousemove` directive is the same and duplicate directives in L6.
line: 6
column: 21
suggestions: null
- message: This `on:mousemove` directive is the same and duplicate directives in L10.
line: 10
column: 8
suggestions: null
- message: This `on:mousemove` directive is the same and duplicate directives in L10.
line: 10
column: 21
suggestions: null
- message: This `on:mousemove` directive is the same and duplicate directives in L12.
line: 12
column: 8
suggestions: null
- message: This `on:mousemove` directive is the same and duplicate directives in L12.
line: 12
column: 21
suggestions: null
- message: This `on:mousemove` directive is the same and duplicate directives in L14.
line: 14
column: 8
suggestions: null
- message: This `on:mousemove` directive is the same and duplicate directives in L14.
line: 14
column: 21
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-on-directives/invalid/multiple-element-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-on-directives/invalid/test01-errors.yaml
================================================
- message: This `on:click` directive is the same and duplicate directives in L12.
line: 12
column: 9
suggestions: null
- message: This `on:click` directive is the same and duplicate directives in L12.
line: 12
column: 18
suggestions: null
- message: This `on:click` directive is the same and duplicate directives in L13.
line: 13
column: 9
suggestions: null
- message: This `on:click` directive is the same and duplicate directives in L13.
line: 13
column: 30
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-on-directives/invalid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-on-directives/invalid/test02-errors.yaml
================================================
- message: This `on:click` directive is the same and duplicate directives in L1.
line: 1
column: 9
suggestions: null
- message: This `on:click` directive is the same and duplicate directives in L1.
line: 1
column: 18
suggestions: null
- message: This `on:click` directive is the same and duplicate directives in L1.
line: 1
column: 27
suggestions: null
- message: This `on:click` directive is the same and duplicate directives in L1.
line: 1
column: 36
suggestions: null
- message: This `on:click` directive is the same and duplicate directives in L1.
line: 1
column: 45
suggestions: null
- message: This `on:click` directive is the same and duplicate directives in L1.
line: 1
column: 54
suggestions: null
- message: This `on:click` directive is the same and duplicate directives in L1.
line: 1
column: 63
suggestions: null
- message: This `on:click` directive is the same and duplicate directives in L1.
line: 1
column: 72
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-on-directives/invalid/test02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-on-directives/valid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-on-directives/valid/test02-input.svelte
================================================
console.log(evt)}
on:keydown={() => console.log('foo')}
on:keydown={(evt) => console.log(evt)}
/>
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-style-properties/invalid/ternary01-errors.yaml
================================================
- message: Duplicate property 'background'.
line: 7
column: 5
suggestions: null
- message: Duplicate property 'background'.
line: 8
column: 13
suggestions: null
- message: Duplicate property 'background'.
line: 8
column: 36
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-style-properties/invalid/ternary01-input.svelte
================================================
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-style-properties/invalid/test01-errors.yaml
================================================
- message: Duplicate property 'background'.
line: 10
column: 13
suggestions: null
- message: Duplicate property 'background'.
line: 10
column: 32
suggestions: null
- message: Duplicate property 'background'.
line: 11
column: 12
suggestions: null
- message: Duplicate property 'background'.
line: 11
column: 38
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-style-properties/invalid/test01-input.svelte
================================================
...
...
...
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-style-properties/valid/empty01-input.svelte
================================================
...
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-style-properties/valid/ternary01-input.svelte
================================================
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-style-properties/valid/test01-input.svelte
================================================
...
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-style-properties/valid/test02-input.svelte
================================================
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-use-directives/invalid/inline-expression-errors.yaml
================================================
- message: This `use:foo` directive is the same and duplicate directives in L6.
line: 6
column: 9
suggestions: null
- message: This `use:foo` directive is the same and duplicate directives in L6.
line: 6
column: 44
suggestions: null
- message: This `use:bar` directive is the same and duplicate directives in L12.
line: 9
column: 2
suggestions: null
- message: This `use:bar` directive is the same and duplicate directives in L9.
line: 12
column: 2
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-use-directives/invalid/inline-expression-input.svelte
================================================
console.log('foo')} use:foo={() => console.log('foo')} />
// foo
console.log('foo')}
use:bar={() =>
console
// bar
.log('foo')}
/>
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-use-directives/invalid/multiple-element-errors.yaml
================================================
- message: This `use:foo` directive is the same and duplicate directives in L5.
line: 5
column: 6
suggestions: null
- message: This `use:foo` directive is the same and duplicate directives in L5.
line: 5
column: 14
suggestions: null
- message: This `use:foo` directive is the same and duplicate directives in L6.
line: 6
column: 7
suggestions: null
- message: This `use:foo` directive is the same and duplicate directives in L6.
line: 6
column: 15
suggestions: null
- message: This `use:foo` directive is the same and duplicate directives in L8.
line: 8
column: 8
suggestions: null
- message: This `use:foo` directive is the same and duplicate directives in L8.
line: 8
column: 16
suggestions: null
- message: This `use:foo` directive is the same and duplicate directives in L10.
line: 10
column: 8
suggestions: null
- message: This `use:foo` directive is the same and duplicate directives in L10.
line: 10
column: 16
suggestions: null
- message: This `use:foo` directive is the same and duplicate directives in L14.
line: 14
column: 8
suggestions: null
- message: This `use:foo` directive is the same and duplicate directives in L14.
line: 14
column: 16
suggestions: null
- message: This `use:foo` directive is the same and duplicate directives in L16.
line: 16
column: 8
suggestions: null
- message: This `use:foo` directive is the same and duplicate directives in L16.
line: 16
column: 16
suggestions: null
- message: This `use:foo` directive is the same and duplicate directives in L18.
line: 18
column: 8
suggestions: null
- message: This `use:foo` directive is the same and duplicate directives in L18.
line: 18
column: 16
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-use-directives/invalid/multiple-element-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-use-directives/invalid/test01-errors.yaml
================================================
- message: This `use:clickOutside` directive is the same and duplicate directives
in L13.
line: 13
column: 6
suggestions: null
- message: This `use:clickOutside` directive is the same and duplicate directives
in L13.
line: 13
column: 23
suggestions: null
- message: This `use:clickOutside` directive is the same and duplicate directives
in L14.
line: 14
column: 6
suggestions: null
- message: This `use:clickOutside` directive is the same and duplicate directives
in L14.
line: 14
column: 31
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-use-directives/invalid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-use-directives/invalid/test02-errors.yaml
================================================
- message: This `use:x` directive is the same and duplicate directives in L5.
line: 5
column: 6
suggestions: null
- message: This `use:x` directive is the same and duplicate directives in L5.
line: 5
column: 12
suggestions: null
- message: This `use:x` directive is the same and duplicate directives in L5.
line: 5
column: 18
suggestions: null
- message: This `use:x` directive is the same and duplicate directives in L5.
line: 5
column: 24
suggestions: null
- message: This `use:x` directive is the same and duplicate directives in L5.
line: 5
column: 30
suggestions: null
- message: This `use:x` directive is the same and duplicate directives in L5.
line: 5
column: 36
suggestions: null
- message: This `use:x` directive is the same and duplicate directives in L5.
line: 5
column: 42
suggestions: null
- message: This `use:x` directive is the same and duplicate directives in L5.
line: 5
column: 48
suggestions: null
- message: This `use:x` directive is the same and duplicate directives in L5.
line: 5
column: 54
suggestions: null
- message: This `use:x` directive is the same and duplicate directives in L5.
line: 5
column: 60
suggestions: null
- message: This `use:x` directive is the same and duplicate directives in L5.
line: 5
column: 66
suggestions: null
- message: This `use:x` directive is the same and duplicate directives in L5.
line: 5
column: 72
suggestions: null
- message: This `use:x` directive is the same and duplicate directives in L5.
line: 5
column: 78
suggestions: null
- message: This `use:x` directive is the same and duplicate directives in L5.
line: 5
column: 84
suggestions: null
- message: This `use:x` directive is the same and duplicate directives in L5.
line: 5
column: 90
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-use-directives/invalid/test02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-use-directives/valid/inline-expression-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dupe-use-directives/valid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dynamic-slot-name/invalid/bool-slot01-errors.yaml
================================================
- message: "`` name requires a value."
line: 1
column: 7
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dynamic-slot-name/invalid/bool-slot01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dynamic-slot-name/invalid/bool-slot01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dynamic-slot-name/invalid/literal-slot01-errors.yaml
================================================
- message: "`` name cannot be dynamic."
line: 1
column: 12
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dynamic-slot-name/invalid/literal-slot01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dynamic-slot-name/invalid/literal-slot01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dynamic-slot-name/invalid/multi-report01-errors.yaml
================================================
- message: "`` name cannot be dynamic."
line: 6
column: 12
suggestions: null
- message: "`` name cannot be dynamic."
line: 7
column: 12
suggestions: null
- message: "`` name cannot be dynamic."
line: 8
column: 12
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dynamic-slot-name/invalid/multi-report01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dynamic-slot-name/invalid/multi-report01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dynamic-slot-name/invalid/recursive-loop01-errors.yaml
================================================
- message: "`` name cannot be dynamic."
line: 6
column: 12
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dynamic-slot-name/invalid/recursive-loop01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dynamic-slot-name/invalid/recursive-loop01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dynamic-slot-name/invalid/var-slot01-errors.yaml
================================================
- message: "`` name cannot be dynamic."
line: 5
column: 12
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dynamic-slot-name/invalid/var-slot01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dynamic-slot-name/invalid/var-slot01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-dynamic-slot-name/valid/slot01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/invalid/svelte-config/test01/+page.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/invalid/svelte-config/test01/errors.yaml
================================================
- message: disallow exporting load functions in `*.svelte` module in SvelteKit
page components.
line: 2
column: 18
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/invalid/svelte-config/test01/svelte.config.js
================================================
export default {
kit: {
files: {
routes:
'tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/invalid/svelte-config'
}
}
};
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/invalid/svelte-config-from-parser-options/+page.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/invalid/svelte-config-from-parser-options/_config.json
================================================
{
"languageOptions": {
"parserOptions": {
"svelteConfig": {
"kit": {
"files": {
"routes": "tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/invalid/svelte-config-from-parser-options"
}
}
}
}
}
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/invalid/svelte-config-from-parser-options/errors.yaml
================================================
- message: disallow exporting load functions in `*.svelte` module in SvelteKit
page components.
line: 2
column: 18
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/invalid/test01/+page.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/invalid/test01/_config.json
================================================
{
"settings": {
"svelte": {
"kit": {
"files": {
"routes": "tests/fixtures"
}
}
}
}
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/invalid/test01/errors.yaml
================================================
- message: disallow exporting load functions in `*.svelte` module in SvelteKit
page components.
line: 2
column: 18
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/invalid/test02/+page.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/invalid/test02/_config.json
================================================
{
"settings": {
"svelte": {
"kit": {
"files": {
"routes": "tests/fixtures"
}
}
}
}
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/invalid/test02/errors.yaml
================================================
- message: disallow exporting load functions in `*.svelte` module in SvelteKit
page components.
line: 2
column: 15
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/not-page/+test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/not-page/+test02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/not-page/_config.json
================================================
{
"settings": {
"svelte": {
"kit": {
"files": {
"routes": "some-path"
}
}
}
}
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test01/+page.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test01/_config.json
================================================
{
"languageOptions": {
"parserOptions": {
"svelteConfig": {
"kit": {
"files": {
"routes": "tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test01"
}
}
}
}
}
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test02/+page.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test02/_config.json
================================================
{
"languageOptions": {
"parserOptions": {
"svelteConfig": {
"kit": {
"files": {
"routes": "tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test02"
}
}
}
}
}
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test03/+page.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test03/_config.json
================================================
{
"languageOptions": {
"parserOptions": {
"svelteConfig": {
"kit": {
"files": {
"routes": "tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test03"
}
}
}
}
}
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test04/+page.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test04/_config.json
================================================
{
"languageOptions": {
"parserOptions": {
"svelteConfig": {
"kit": {
"files": {
"routes": "tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test04"
}
}
}
}
}
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test05/+page.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test05/_config.json
================================================
{
"languageOptions": {
"parserOptions": {
"svelteConfig": {
"kit": {
"files": {
"routes": "tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test05"
}
}
}
}
}
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test06/+page.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test06/_config.json
================================================
{
"languageOptions": {
"parserOptions": {
"svelteConfig": {
"kit": {
"files": {
"routes": "tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test06"
}
}
}
}
}
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test07/+page.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test07/_config.json
================================================
{
"languageOptions": {
"parserOptions": {
"svelteConfig": {
"kit": {
"files": {
"routes": "tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test07"
}
}
}
}
}
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test08/+page.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test08/_config.json
================================================
{
"languageOptions": {
"parserOptions": {
"svelteConfig": {
"kit": {
"files": {
"routes": "tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid"
}
}
}
}
}
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test09/+page.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test09/_config.json
================================================
{
"languageOptions": {
"parserOptions": {
"svelteConfig": {
"kit": {
"files": {
"routes": "tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test09"
}
}
}
}
}
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test10/+page.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test10/_config.json
================================================
{
"languageOptions": {
"parserOptions": {
"svelteConfig": {
"kit": {
"files": {
"routes": "tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test10"
}
}
}
}
}
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-extra-reactive-curlies/invalid/test01-errors.yaml
================================================
- message: Do not wrap reactive statements in curly braces unless necessary.
line: 2
column: 5
suggestions:
- desc: Remove the unnecessary curly braces.
messageId: removeExtraCurlies
output: |
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-extra-reactive-curlies/invalid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-extra-reactive-curlies/invalid/test02-errors.yaml
================================================
- message: Do not wrap reactive statements in curly braces unless necessary.
line: 3
column: 6
suggestions:
- desc: Remove the unnecessary curly braces.
messageId: removeExtraCurlies
output: |
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-extra-reactive-curlies/invalid/test02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-extra-reactive-curlies/valid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-extra-reactive-curlies/valid/test02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-goto-without-base/invalid/aliased-goto01-errors.yaml
================================================
- message: Found a goto() call with a url that isn't prefixed with the base path.
line: 4
column: 8
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-goto-without-base/invalid/aliased-goto01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-goto-without-base/invalid/base-not-prefixed01-errors.yaml
================================================
- message: Found a goto() call with a url that isn't prefixed with the base path.
line: 5
column: 7
suggestions: null
- message: Found a goto() call with a url that isn't prefixed with the base path.
line: 6
column: 7
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-goto-without-base/invalid/base-not-prefixed01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-goto-without-base/invalid/no-base01-errors.yaml
================================================
- message: Found a goto() call with a url that isn't prefixed with the base path.
line: 4
column: 7
suggestions: null
- message: Found a goto() call with a url that isn't prefixed with the base path.
line: 5
column: 7
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-goto-without-base/invalid/no-base01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-goto-without-base/valid/absolute-uri01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-goto-without-base/valid/base-aliased01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-goto-without-base/valid/base-prefixed01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-ignored-unsubscribe/invalid/test01-errors.yaml
================================================
- message: Ignoring returned value of the subscribe method is forbidden.
line: 6
column: 6
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-ignored-unsubscribe/invalid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-ignored-unsubscribe/valid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-ignored-unsubscribe/valid/test02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-ignored-unsubscribe/valid/test03-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-immutable-reactive-statements/invalid/immutable-let-errors.yaml
================================================
- message: This statement is not reactive because all variables referenced in the
reactive statement are immutable.
line: 3
column: 17
suggestions: null
- message: This statement is not reactive because all variables referenced in the
reactive statement are immutable.
line: 4
column: 17
suggestions: null
- message: This statement is not reactive because all variables referenced in the
reactive statement are immutable.
line: 5
column: 5
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-immutable-reactive-statements/invalid/immutable-let-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-immutable-reactive-statements/invalid/immutable01-errors.yaml
================================================
- message: This statement is not reactive because all variables referenced in the
reactive statement are immutable.
line: 7
column: 17
suggestions: null
- message: This statement is not reactive because all variables referenced in the
reactive statement are immutable.
line: 8
column: 17
suggestions: null
- message: This statement is not reactive because all variables referenced in the
reactive statement are immutable.
line: 9
column: 5
suggestions: null
- message: This statement is not reactive because all variables referenced in the
reactive statement are immutable.
line: 10
column: 5
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-immutable-reactive-statements/invalid/immutable01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-immutable-reactive-statements/invalid/readonly-export01-errors.yaml
================================================
- message: This statement is not reactive because all variables referenced in the
reactive statement are immutable.
line: 12
column: 16
suggestions: null
- message: This statement is not reactive because all variables referenced in the
reactive statement are immutable.
line: 13
column: 16
suggestions: null
- message: This statement is not reactive because all variables referenced in the
reactive statement are immutable.
line: 14
column: 16
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-immutable-reactive-statements/invalid/readonly-export01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-immutable-reactive-statements/valid/builtin-vars01-input.svelte
================================================
{#if desc}
{/if}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-immutable-reactive-statements/valid/builtin-vars02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-immutable-reactive-statements/valid/mutable-member01-input.svelte
================================================
{a}{b}
(array[0] = 2)}>Foo
(object.b = 2)}>Foo
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-immutable-reactive-statements/valid/mutable-member02-wth-bind-input.svelte
================================================
{first}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-immutable-reactive-statements/valid/mutable-member03-with-each-input.svelte
================================================
{first}
{#each values as value}
{/each}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-immutable-reactive-statements/valid/mutable-member04-with-each-input.svelte
================================================
{first}
{#each values as a}
{#each a as value}
{/each}
{/each}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-immutable-reactive-statements/valid/mutable-member05-with-each-input.svelte
================================================
{first}
{values}
{#each values as value}
(value = 'foo')}>Foo
{/each}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-immutable-reactive-statements/valid/mutable-member06-with-each-input.svelte
================================================
{first}
{#each values as { a }}
{/each}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-immutable-reactive-statements/valid/mutable-member07-with-each-input.svelte
================================================
{first}
{#each values as [value]}
{/each}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-immutable-reactive-statements/valid/mutable01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-immutable-reactive-statements/valid/unknown01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-inline-styles/invalid/disallowed-transitions/_config.json
================================================
{
"options": [
{
"allowTransitions": false
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-inline-styles/invalid/disallowed-transitions/transition01-errors.yaml
================================================
- message: Found disallowed transition.
line: 5
column: 7
suggestions: null
- message: Found disallowed transition.
line: 7
column: 7
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-inline-styles/invalid/disallowed-transitions/transition01-input.svelte
================================================
Hello World!
Hello World!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-inline-styles/invalid/style-attribute01-errors.yaml
================================================
- message: Found disallowed style attribute.
line: 1
column: 7
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-inline-styles/invalid/style-attribute01-input.svelte
================================================
Hello World!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-inline-styles/invalid/style-directive01-errors.yaml
================================================
- message: Found disallowed style directive.
line: 5
column: 7
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-inline-styles/invalid/style-directive01-input.svelte
================================================
Hello World!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-inline-styles/valid/class-attribute01-input.svelte
================================================
Hello World!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-inline-styles/valid/class-directive01-input.svelte
================================================
Hello World!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-inline-styles/valid/transition01-input.svelte
================================================
Hello World!
Hello World!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-inner-declarations/invalid/_config.json
================================================
{
"options": ["functions", { "blockScopedFunctions": "disallow" }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-inner-declarations/invalid/_requirements.json
================================================
{
"eslint": "^9.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-inner-declarations/invalid/both/_config.json
================================================
{
"options": ["both", { "blockScopedFunctions": "disallow" }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-inner-declarations/invalid/both/_requirements.json
================================================
{
"eslint": "^9.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-inner-declarations/invalid/both/test01-errors.yaml
================================================
- message: Move function declaration to program root.
line: 3
column: 3
suggestions: null
- message: Move variable declaration to program root.
line: 5
column: 11
suggestions: null
- message: Move variable declaration to program root.
line: 6
column: 31
suggestions: null
- message: Move function declaration to program root.
line: 8
column: 3
suggestions: null
- message: Move variable declaration to function body root.
line: 10
column: 5
suggestions: null
- message: Move function declaration to program root.
line: 15
column: 3
suggestions: null
- message: Move variable declaration to function body root.
line: 16
column: 13
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-inner-declarations/invalid/both/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-inner-declarations/invalid/test01-errors.yaml
================================================
- message: Move function declaration to program root.
line: 3
column: 3
suggestions: null
- message: Move function declaration to program root.
line: 8
column: 3
suggestions: null
- message: Move function declaration to program root.
line: 15
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-inner-declarations/invalid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-inner-declarations/invalid/v8/_config.json
================================================
{
"options": ["functions"]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-inner-declarations/invalid/v8/_requirements.json
================================================
{
"eslint": "<=8"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-inner-declarations/invalid/v8/both/_config.json
================================================
{
"options": ["both"]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-inner-declarations/invalid/v8/both/_requirements.json
================================================
{
"eslint": "<=8"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-inner-declarations/invalid/v8/both/test01-errors.yaml
================================================
- message: Move function declaration to program root.
line: 3
column: 3
suggestions: null
- message: Move variable declaration to program root.
line: 5
column: 11
suggestions: null
- message: Move variable declaration to program root.
line: 6
column: 31
suggestions: null
- message: Move function declaration to program root.
line: 8
column: 3
suggestions: null
- message: Move variable declaration to function body root.
line: 10
column: 5
suggestions: null
- message: Move function declaration to program root.
line: 15
column: 3
suggestions: null
- message: Move variable declaration to function body root.
line: 16
column: 13
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-inner-declarations/invalid/v8/both/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-inner-declarations/invalid/v8/test01-errors.yaml
================================================
- message: Move function declaration to program root.
line: 3
column: 3
suggestions: null
- message: Move function declaration to program root.
line: 8
column: 3
suggestions: null
- message: Move function declaration to program root.
line: 15
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-inner-declarations/invalid/v8/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-inner-declarations/valid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-inspect/invalid/_requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-inspect/invalid/test01-errors.yaml
================================================
- message: Do not use $inspect directive
line: 2
column: 3
suggestions: null
- message: Do not use $inspect directive
line: 5
column: 13
suggestions: null
- message: Do not use $inspect directive
line: 8
column: 5
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-inspect/invalid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-inspect/valid/_requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-inspect/valid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/invalid/goto-aliased01-errors.yaml
================================================
- message: Found a goto() call with a url that isn't prefixed with the base path.
line: 4
column: 8
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/invalid/goto-aliased01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/invalid/goto-base-not-as-prefix01-errors.yaml
================================================
- message: Found a goto() call with a url that isn't prefixed with the base path.
line: 5
column: 7
suggestions: null
- message: Found a goto() call with a url that isn't prefixed with the base path.
line: 6
column: 7
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/invalid/goto-base-not-as-prefix01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/invalid/goto-namespace-import01-errors.yaml
================================================
- message: Found a goto() call with a url that isn't prefixed with the base path.
line: 4
column: 18
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/invalid/goto-namespace-import01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/invalid/goto-no-base01-errors.yaml
================================================
- message: Found a goto() call with a url that isn't prefixed with the base path.
line: 6
column: 7
suggestions: null
- message: Found a goto() call with a url that isn't prefixed with the base path.
line: 7
column: 7
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/invalid/goto-no-base01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/invalid/link-base-not-as-prefix01-errors.yaml
================================================
- message: Found a link with a url that isn't prefixed with the base path.
line: 5
column: 9
suggestions: null
- message: Found a link with a url that isn't prefixed with the base path.
line: 6
column: 9
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/invalid/link-base-not-as-prefix01-input.svelte
================================================
Click me!
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/invalid/link-no-base01-errors.yaml
================================================
- message: Found a link with a url that isn't prefixed with the base path.
line: 4
column: 10
suggestions: null
- message: Found a link with a url that isn't prefixed with the base path.
line: 5
column: 9
suggestions: null
- message: Found a link with a url that isn't prefixed with the base path.
line: 6
column: 9
suggestions: null
- message: Found a link with a url that isn't prefixed with the base path.
line: 7
column: 9
suggestions: null
- message: Found a link with a url that isn't prefixed with the base path.
line: 8
column: 9
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/invalid/link-no-base01-input.svelte
================================================
Click me!
Click me!
Click me!
Click me!
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/invalid/link-with-fragment01-errors.yaml
================================================
- message: Found a link with a url that isn't prefixed with the base path.
line: 4
column: 10
suggestions: null
- message: Found a link with a url that isn't prefixed with the base path.
line: 5
column: 9
suggestions: null
- message: Found a link with a url that isn't prefixed with the base path.
line: 6
column: 9
suggestions: null
- message: Found a link with a url that isn't prefixed with the base path.
line: 7
column: 9
suggestions: null
- message: Found a link with a url that isn't prefixed with the base path.
line: 8
column: 9
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/invalid/link-with-fragment01-input.svelte
================================================
Click me!
Click me!
Click me!
Click me!
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/invalid/pushState-aliased01-errors.yaml
================================================
- message: Found a pushState() call with a url that isn't prefixed with the base path.
line: 4
column: 8
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/invalid/pushState-aliased01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/invalid/pushState-base-not-as-prefix01-errors.yaml
================================================
- message: Found a pushState() call with a url that isn't prefixed with the base path.
line: 5
column: 12
suggestions: null
- message: Found a pushState() call with a url that isn't prefixed with the base path.
line: 6
column: 12
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/invalid/pushState-base-not-as-prefix01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/invalid/pushState-namespace-import01-errors.yaml
================================================
- message: Found a pushState() call with a url that isn't prefixed with the base path.
line: 4
column: 23
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/invalid/pushState-namespace-import01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/invalid/pushState-no-base01-errors.yaml
================================================
- message: Found a pushState() call with a url that isn't prefixed with the base path.
line: 6
column: 12
suggestions: null
- message: Found a pushState() call with a url that isn't prefixed with the base path.
line: 7
column: 12
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/invalid/pushState-no-base01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/invalid/replaceState-aliased01-errors.yaml
================================================
- message: Found a replaceState() call with a url that isn't prefixed with the
base path.
line: 4
column: 8
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/invalid/replaceState-aliased01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/invalid/replaceState-base-not-as-prefix01-errors.yaml
================================================
- message: Found a replaceState() call with a url that isn't prefixed with the
base path.
line: 5
column: 15
suggestions: null
- message: Found a replaceState() call with a url that isn't prefixed with the
base path.
line: 6
column: 15
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/invalid/replaceState-base-not-as-prefix01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/invalid/replaceState-namespace-import01-errors.yaml
================================================
- message: Found a replaceState() call with a url that isn't prefixed with the
base path.
line: 4
column: 26
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/invalid/replaceState-namespace-import01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/invalid/replaceState-no-base01-errors.yaml
================================================
- message: Found a replaceState() call with a url that isn't prefixed with the
base path.
line: 6
column: 15
suggestions: null
- message: Found a replaceState() call with a url that isn't prefixed with the
base path.
line: 7
column: 15
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/invalid/replaceState-no-base01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/valid/goto-base-aliased01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/valid/goto-base-namespace-import01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/valid/goto-base-prefixed01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/valid/ignoreGoto/_config.json
================================================
{
"options": [
{
"ignoreGoto": true
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/valid/ignoreGoto/goto-ignored01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/valid/ignoreLinks/_config.json
================================================
{
"options": [
{
"ignoreLinks": true
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/valid/ignoreLinks/link-ignored01-input.svelte
================================================
Click me!
Click me!
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/valid/ignorePushState/_config.json
================================================
{
"options": [
{
"ignorePushState": true
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/valid/ignorePushState/pushState-ignored01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/valid/ignoreReplaceState/_config.json
================================================
{
"options": [
{
"ignoreReplaceState": true
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/valid/ignoreReplaceState/replaceState-ignored01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/valid/link-absolute-url01-input.svelte
================================================
Click me!
Click me!
Click me!
Click me!
Click me!
Click me!
Click me!
Click me!
Click me!
Click me!
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/valid/link-base-aliased01-input.svelte
================================================
Click me! ;
Click me! ;
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/valid/link-base-namespace-import01-input.svelte
================================================
Click me! ;
Click me! ;
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/valid/link-base-prefixed01-input.svelte
================================================
Click me!
Click me!
Click me!
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/valid/link-fragment-url01-input.svelte
================================================
Click me!
Click me!
Click me!
Click me!
Click me!
Click me!
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/valid/pushState-base-aliased01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/valid/pushState-base-namespace-import01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/valid/pushState-base-prefixed01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/valid/pushState-empty-url01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/valid/replaceState-base-aliased01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/valid/replaceState-base-namespace-import01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/valid/replaceState-base-prefixed01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-base/valid/replaceState-empty-url01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/goto-aliased01-errors.yaml
================================================
- message: Unexpected goto() call without resolve().
line: 4
column: 8
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/goto-aliased01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/goto-namespace-import01-errors.yaml
================================================
- message: Unexpected goto() call without resolve().
line: 4
column: 18
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/goto-namespace-import01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/goto-partial-resolve01-errors.yaml
================================================
- message: Unexpected goto() call without resolve().
line: 5
column: 7
suggestions: null
- message: Unexpected goto() call without resolve().
line: 6
column: 7
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/goto-partial-resolve01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/goto-resolved-pathname-wrong-module01-errors.yaml
================================================
- message: Unexpected goto() call without resolve().
line: 12
column: 7
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/goto-resolved-pathname-wrong-module01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/goto-string-prop01-errors.yaml
================================================
- message: Unexpected goto() call without resolve().
line: 10
column: 7
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/goto-string-prop01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/goto-ternary-resolve-absolute01-errors.yaml
================================================
- message: Unexpected goto() call without resolve().
line: 7
column: 7
suggestions: null
- message: Unexpected goto() call without resolve().
line: 8
column: 7
suggestions: null
- message: Unexpected goto() call without resolve().
line: 9
column: 7
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/goto-ternary-resolve-absolute01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/goto-ternary-resolve-empty01-errors.yaml
================================================
- message: Unexpected goto() call without resolve().
line: 7
column: 7
suggestions: null
- message: Unexpected goto() call without resolve().
line: 8
column: 7
suggestions: null
- message: Unexpected goto() call without resolve().
line: 9
column: 7
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/goto-ternary-resolve-empty01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/goto-ternary-resolve-plain01-errors.yaml
================================================
- message: Unexpected goto() call without resolve().
line: 7
column: 7
suggestions: null
- message: Unexpected goto() call without resolve().
line: 8
column: 7
suggestions: null
- message: Unexpected goto() call without resolve().
line: 9
column: 7
suggestions: null
- message: Unexpected goto() call without resolve().
line: 11
column: 7
suggestions: null
- message: Unexpected goto() call without resolve().
line: 13
column: 7
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/goto-ternary-resolve-plain01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/goto-unresolved-pathname01-errors.yaml
================================================
- message: Unexpected goto() call without resolve().
line: 12
column: 7
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/goto-unresolved-pathname01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/goto-without-resolve01-errors.yaml
================================================
- message: Unexpected goto() call without resolve().
line: 6
column: 7
suggestions: null
- message: Unexpected goto() call without resolve().
line: 7
column: 7
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/goto-without-resolve01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/link-absolute-url-invalid-operator01-errors.yaml
================================================
- message: Unexpected href link without resolve().
line: 1
column: 4
suggestions: null
- message: Unexpected href link without resolve().
line: 2
column: 4
suggestions: null
- message: Unexpected href link without resolve().
line: 3
column: 4
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/link-absolute-url-invalid-operator01-input.svelte
================================================
Click me!
Click me!
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/link-fragment-url-invalid-operator01-errors.yaml
================================================
- message: Unexpected href link without resolve().
line: 1
column: 4
suggestions: null
- message: Unexpected href link without resolve().
line: 2
column: 4
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/link-fragment-url-invalid-operator01-input.svelte
================================================
Click me!
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/link-nullish-like-literal01-errors.yaml
================================================
- message: Unexpected href link without resolve().
line: 6
column: 4
suggestions: null
- message: Unexpected href link without resolve().
line: 7
column: 4
suggestions: null
- message: Unexpected href link without resolve().
line: 8
column: 4
suggestions: null
- message: Unexpected href link without resolve().
line: 9
column: 4
suggestions: null
- message: Unexpected href link without resolve().
line: 10
column: 4
suggestions: null
- message: Unexpected href link without resolve().
line: 11
column: 4
suggestions: null
- message: Unexpected href link without resolve().
line: 12
column: 4
suggestions: null
- message: Unexpected href link without resolve().
line: 13
column: 4
suggestions: null
- message: Unexpected href link without resolve().
line: 14
column: 4
suggestions: null
- message: Unexpected href link without resolve().
line: 15
column: 4
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/link-nullish-like-literal01-input.svelte
================================================
Click me!
Click me!
Click me!
Click me!
Click me!
Click me!
Click me!
Click me!
Click me!
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/link-partial-asset01-errors.yaml
================================================
- message: Unexpected href link without resolve().
line: 5
column: 4
suggestions: null
- message: Unexpected href link without resolve().
line: 6
column: 4
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/link-partial-asset01-input.svelte
================================================
Click me!
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/link-partial-resolve01-errors.yaml
================================================
- message: Unexpected href link without resolve().
line: 8
column: 4
suggestions: null
- message: Unexpected href link without resolve().
line: 9
column: 4
suggestions: null
- message: Unexpected href link without resolve().
line: 10
column: 4
suggestions: null
- message: Unexpected href link without resolve().
line: 11
column: 4
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/link-partial-resolve01-input.svelte
================================================
Click me!
Click me!
Click me!
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/link-resolved-pathname-wrong-module01-errors.yaml
================================================
- message: Unexpected href link without resolve().
line: 11
column: 4
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/link-resolved-pathname-wrong-module01-input.svelte
================================================
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/link-string-prop01-errors.yaml
================================================
- message: Unexpected href link without resolve().
line: 9
column: 4
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/link-string-prop01-input.svelte
================================================
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/link-ternary-asset-plain01-errors.yaml
================================================
- message: Unexpected href link without resolve().
line: 7
column: 4
suggestions: null
- message: Unexpected href link without resolve().
line: 8
column: 4
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/link-ternary-asset-plain01-input.svelte
================================================
Click me!
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/link-ternary-resolve-plain01-errors.yaml
================================================
- message: Unexpected href link without resolve().
line: 9
column: 4
suggestions: null
- message: Unexpected href link without resolve().
line: 10
column: 4
suggestions: null
- message: Unexpected href link without resolve().
line: 11
column: 4
suggestions: null
- message: Unexpected href link without resolve().
line: 12
column: 4
suggestions: null
- message: Unexpected href link without resolve().
line: 13
column: 4
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/link-ternary-resolve-plain01-input.svelte
================================================
Click me!
Click me!
Click me!
Click me!
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/link-unresolved-pathname01-errors.yaml
================================================
- message: Unexpected href link without resolve().
line: 11
column: 4
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/link-unresolved-pathname01-input.svelte
================================================
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/link-with-fragment01-errors.yaml
================================================
- message: Unexpected href link without resolve().
line: 6
column: 4
suggestions: null
- message: Unexpected href link without resolve().
line: 7
column: 4
suggestions: null
- message: Unexpected href link without resolve().
line: 8
column: 4
suggestions: null
- message: Unexpected href link without resolve().
line: 9
column: 4
suggestions: null
- message: Unexpected href link without resolve().
line: 10
column: 4
suggestions: null
- message: Unexpected href link without resolve().
line: 11
column: 4
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/link-with-fragment01-input.svelte
================================================
Click me!
Click me!
Click me!
Click me!
Click me!
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/link-without-resolve01-errors.yaml
================================================
- message: Unexpected href link without resolve().
line: 6
column: 4
suggestions: null
- message: Unexpected href link without resolve().
line: 7
column: 4
suggestions: null
- message: Unexpected href link without resolve().
line: 8
column: 4
suggestions: null
- message: Unexpected href link without resolve().
line: 9
column: 4
suggestions: null
- message: Unexpected href link without resolve().
line: 10
column: 4
suggestions: null
- message: Unexpected href link without resolve().
line: 11
column: 4
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/link-without-resolve01-input.svelte
================================================
Click me!
Click me!
Click me!
Click me!
Click me!
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/pushState-aliased01-errors.yaml
================================================
- message: Unexpected pushState() call without resolve().
line: 4
column: 8
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/pushState-aliased01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/pushState-namespace-import01-errors.yaml
================================================
- message: Unexpected pushState() call without resolve().
line: 4
column: 23
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/pushState-namespace-import01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/pushState-partial-resolve01-errors.yaml
================================================
- message: Unexpected pushState() call without resolve().
line: 5
column: 12
suggestions: null
- message: Unexpected pushState() call without resolve().
line: 6
column: 12
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/pushState-partial-resolve01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/pushState-resolved-pathname-wrong-module01-errors.yaml
================================================
- message: Unexpected pushState() call without resolve().
line: 12
column: 12
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/pushState-resolved-pathname-wrong-module01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/pushState-string-prop01-errors.yaml
================================================
- message: Unexpected pushState() call without resolve().
line: 10
column: 12
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/pushState-string-prop01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/pushState-ternary-resolve-absolute01-errors.yaml
================================================
- message: Unexpected pushState() call without resolve().
line: 7
column: 12
suggestions: null
- message: Unexpected pushState() call without resolve().
line: 8
column: 12
suggestions: null
- message: Unexpected pushState() call without resolve().
line: 9
column: 12
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/pushState-ternary-resolve-absolute01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/pushState-ternary-resolve-plain01-errors.yaml
================================================
- message: Unexpected pushState() call without resolve().
line: 7
column: 12
suggestions: null
- message: Unexpected pushState() call without resolve().
line: 8
column: 12
suggestions: null
- message: Unexpected pushState() call without resolve().
line: 9
column: 12
suggestions: null
- message: Unexpected pushState() call without resolve().
line: 11
column: 12
suggestions: null
- message: Unexpected pushState() call without resolve().
line: 13
column: 12
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/pushState-ternary-resolve-plain01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/pushState-unresolved-pathname01-errors.yaml
================================================
- message: Unexpected pushState() call without resolve().
line: 12
column: 12
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/pushState-unresolved-pathname01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/pushState-without-resolve01-errors.yaml
================================================
- message: Unexpected pushState() call without resolve().
line: 6
column: 12
suggestions: null
- message: Unexpected pushState() call without resolve().
line: 7
column: 12
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/pushState-without-resolve01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/recursive-loop01-errors.yaml
================================================
- message: Unexpected href link without resolve().
line: 6
column: 4
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/recursive-loop01-input.svelte
================================================
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/replaceState-aliased01-errors.yaml
================================================
- message: Unexpected replaceState() call without resolve().
line: 4
column: 8
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/replaceState-aliased01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/replaceState-namespace-import01-errors.yaml
================================================
- message: Unexpected replaceState() call without resolve().
line: 4
column: 26
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/replaceState-namespace-import01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/replaceState-partial-resolve01-errors.yaml
================================================
- message: Unexpected replaceState() call without resolve().
line: 5
column: 15
suggestions: null
- message: Unexpected replaceState() call without resolve().
line: 6
column: 15
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/replaceState-partial-resolve01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/replaceState-resolved-pathname-wrong-module01-errors.yaml
================================================
- message: Unexpected replaceState() call without resolve().
line: 12
column: 15
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/replaceState-resolved-pathname-wrong-module01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/replaceState-string-prop01-errors.yaml
================================================
- message: Unexpected replaceState() call without resolve().
line: 10
column: 15
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/replaceState-string-prop01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/replaceState-ternary-resolve-absolute01-errors.yaml
================================================
- message: Unexpected replaceState() call without resolve().
line: 7
column: 15
suggestions: null
- message: Unexpected replaceState() call without resolve().
line: 8
column: 15
suggestions: null
- message: Unexpected replaceState() call without resolve().
line: 9
column: 15
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/replaceState-ternary-resolve-absolute01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/replaceState-ternary-resolve-plain01-errors.yaml
================================================
- message: Unexpected replaceState() call without resolve().
line: 7
column: 15
suggestions: null
- message: Unexpected replaceState() call without resolve().
line: 8
column: 15
suggestions: null
- message: Unexpected replaceState() call without resolve().
line: 9
column: 15
suggestions: null
- message: Unexpected replaceState() call without resolve().
line: 11
column: 15
suggestions: null
- message: Unexpected replaceState() call without resolve().
line: 13
column: 15
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/replaceState-ternary-resolve-plain01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/replaceState-unresolved-pathname01-errors.yaml
================================================
- message: Unexpected replaceState() call without resolve().
line: 12
column: 15
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/replaceState-unresolved-pathname01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/replaceState-without-resolve01-errors.yaml
================================================
- message: Unexpected replaceState() call without resolve().
line: 6
column: 15
suggestions: null
- message: Unexpected replaceState() call without resolve().
line: 7
column: 15
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/invalid/replaceState-without-resolve01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/goto-namespace-import01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/goto-resolve-aliased01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/goto-resolved-pathname01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/goto-resolved-pathname02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/goto-resolved01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/goto-ternary-both-resolve01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/ignoreGoto/_config.json
================================================
{
"options": [
{
"ignoreGoto": true
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/ignoreGoto/goto-ignored01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/ignoreLinks/_config.json
================================================
{
"options": [
{
"ignoreLinks": true
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/ignoreLinks/link-ignored01-input.svelte
================================================
Click me!
Click me!
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/ignorePushState/_config.json
================================================
{
"options": [
{
"ignorePushState": true
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/ignorePushState/pushState-ignored01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/ignoreReplaceState/_config.json
================================================
{
"options": [
{
"ignoreReplaceState": true
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/ignoreReplaceState/replaceState-ignored01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/link-absolute-url01-input.svelte
================================================
Click me!
Click me!
Click me!
Click me!
Click me!
Click me!
Click me!
Click me!
Click me!
Click me!
Click me!
Click me!
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/link-asset-aliased01-input.svelte
================================================
Click me! ;
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/link-asset01-input.svelte
================================================
Click me!
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/link-fragment-url01-input.svelte
================================================
Click me!
Click me!
Click me!
Click me!
Click me!
Click me!
Click me!
Click me!
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/link-namespace-import01-input.svelte
================================================
Click me! ;
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/link-nullish01-input.svelte
================================================
Click me!
Click me!
Click me!
Click me!
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/link-rel-external01-input.svelte
================================================
Click me!
Click me!
Click me!
Click me!
Click me!
Click me!
Click me!
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/link-resolve-aliased01-input.svelte
================================================
Click me! ;
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/link-resolved-pathname01-input.svelte
================================================
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/link-resolved-pathname02-input.svelte
================================================
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/link-resolved01-input.svelte
================================================
Click me!
Click me!
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/link-ternary-absolute-fragment01-input.svelte
================================================
Click me!
Click me!
Click me!
Click me!
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/link-ternary-resolve-absolute01-input.svelte
================================================
Click me!
Click me!
Click me!
Click me!
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/link-ternary-resolve-asset01-input.svelte
================================================
Click me!
Click me!
Click me!
Click me!
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/link-ternary-resolve-fragment01-input.svelte
================================================
Click me!
Click me!
Click me!
Click me!
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/link-ternary-resolve-nullish01-input.svelte
================================================
Click me!
Click me!
Click me!
Click me!
Click me!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/pushState-empty-url01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/pushState-namespace-import01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/pushState-resolve-aliased01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/pushState-resolved-pathname01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/pushState-resolved-pathname02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/pushState-resolved01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/pushState-ternary-resolve-empty01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/replaceState-empty-url01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/replaceState-namespace-import01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/replaceState-resolve-aliased01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/replaceState-resolved-pathname01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/replaceState-resolved-pathname02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/replaceState-resolved01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-navigation-without-resolve/valid/replaceState-ternary-resolve-empty01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-not-function-handler/invalid/array01-errors.yaml
================================================
- message: Unexpected array in event handler.
line: 5
column: 19
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-not-function-handler/invalid/array01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-not-function-handler/invalid/class01-errors.yaml
================================================
- message: Unexpected class in event handler.
line: 4
column: 19
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-not-function-handler/invalid/class01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-not-function-handler/invalid/object01-errors.yaml
================================================
- message: Unexpected object in event handler.
line: 5
column: 19
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-not-function-handler/invalid/object01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-not-function-handler/invalid/string01-errors.yaml
================================================
- message: Unexpected string value in event handler.
line: 6
column: 19
suggestions: null
- message: Unexpected string value in event handler.
line: 7
column: 19
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-not-function-handler/invalid/string01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-not-function-handler/invalid/svelte5/array01-errors.yaml
================================================
- message: Unexpected array in event handler.
line: 5
column: 18
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-not-function-handler/invalid/svelte5/array01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-not-function-handler/invalid/svelte5/class01-errors.yaml
================================================
- message: Unexpected class in event handler.
line: 4
column: 18
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-not-function-handler/invalid/svelte5/class01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-not-function-handler/invalid/svelte5/object01-errors.yaml
================================================
- message: Unexpected object in event handler.
line: 5
column: 18
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-not-function-handler/invalid/svelte5/object01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-not-function-handler/invalid/svelte5/requirements.json
================================================
{
"svelte": "^5.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-not-function-handler/invalid/svelte5/string01-errors.yaml
================================================
- message: Unexpected string value in event handler.
line: 6
column: 18
suggestions: null
- message: Unexpected string value in event handler.
line: 7
column: 18
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-not-function-handler/invalid/svelte5/string01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-not-function-handler/invalid/svelte5/value01-errors.yaml
================================================
- message: Unexpected number value in event handler.
line: 7
column: 18
suggestions: null
- message: Unexpected bigint value in event handler.
line: 8
column: 18
suggestions: null
- message: Unexpected regex value in event handler.
line: 9
column: 18
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-not-function-handler/invalid/svelte5/value01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-not-function-handler/invalid/value01-errors.yaml
================================================
- message: Unexpected number value in event handler.
line: 7
column: 19
suggestions: null
- message: Unexpected bigint value in event handler.
line: 8
column: 19
suggestions: null
- message: Unexpected regex value in event handler.
line: 9
column: 19
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-not-function-handler/invalid/value01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-not-function-handler/valid/bind01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-not-function-handler/valid/function01-input.svelte
================================================
a} />
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-not-function-handler/valid/null01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-not-function-handler/valid/svelte5/function01-input.svelte
================================================
a} />
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-not-function-handler/valid/svelte5/null01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-not-function-handler/valid/svelte5/requirements.json
================================================
{
"svelte": "^5.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-object-in-text-mustaches/invalid/array01-errors.yaml
================================================
- message: Unexpected array in text mustache interpolation.
line: 5
column: 1
suggestions: null
- message: Unexpected array in text mustache interpolation.
line: 6
column: 15
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-object-in-text-mustaches/invalid/array01-input.svelte
================================================
{[a]}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-object-in-text-mustaches/invalid/class01-errors.yaml
================================================
- message: Unexpected class in text mustache interpolation.
line: 4
column: 1
suggestions: null
- message: Unexpected class in text mustache interpolation.
line: 6
column: 15
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-object-in-text-mustaches/invalid/class01-input.svelte
================================================
{class A {}}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-object-in-text-mustaches/invalid/function01-errors.yaml
================================================
- message: Unexpected function in text mustache interpolation.
line: 5
column: 1
suggestions: null
- message: Unexpected function in text mustache interpolation.
line: 6
column: 1
suggestions: null
- message: Unexpected function in text mustache interpolation.
line: 9
column: 15
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-object-in-text-mustaches/invalid/function01-input.svelte
================================================
{() => a}
{function () {
return a;
}}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-object-in-text-mustaches/invalid/object01-errors.yaml
================================================
- message: Unexpected object in text mustache interpolation.
line: 5
column: 1
suggestions: null
- message: Unexpected object in text mustache interpolation.
line: 6
column: 15
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-object-in-text-mustaches/invalid/object01-input.svelte
================================================
{{ a }}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-object-in-text-mustaches/valid/object01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-object-in-text-mustaches/valid/string01-input.svelte
================================================
{a}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-raw-special-elements/invalid/test01-errors.yaml
================================================
- message: Special head element is deprecated in v5, use svelte:head instead.
line: 1
column: 1
suggestions: null
- message: Special body element is deprecated in v5, use svelte:body instead.
line: 2
column: 1
suggestions: null
- message: Special window element is deprecated in v5, use svelte:window instead.
line: 3
column: 1
suggestions: null
- message: Special document element is deprecated in v5, use svelte:document instead.
line: 4
column: 1
suggestions: null
- message: Special element element is deprecated in v5, use svelte:element instead.
line: 5
column: 1
suggestions: null
- message: Special options element is deprecated in v5, use svelte:options instead.
line: 6
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-raw-special-elements/invalid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-raw-special-elements/invalid/test01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-raw-special-elements/valid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-functions/invalid/test01-errors.yaml
================================================
- message: Do not create functions inside reactive statements unless absolutely
necessary.
line: 3
column: 5
suggestions:
- desc: Move the function out of the reactive statement
messageId: fixReactiveFns
output: |
- message: Do not create functions inside reactive statements unless absolutely
necessary.
line: 4
column: 5
suggestions:
- desc: Move the function out of the reactive statement
messageId: fixReactiveFns
output: |
- message: Do not create functions inside reactive statements unless absolutely
necessary.
line: 5
column: 5
suggestions:
- desc: Move the function out of the reactive statement
messageId: fixReactiveFns
output: |
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-functions/invalid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-functions/valid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-literals/invalid/test01-errors.yaml
================================================
- message: Do not assign literal values inside reactive statements unless
absolutely necessary.
line: 3
column: 5
suggestions:
- desc: Move the literal out of the reactive statement into an assignment
messageId: fixReactiveLiteral
output: |
- message: Do not assign literal values inside reactive statements unless
absolutely necessary.
line: 4
column: 5
suggestions:
- desc: Move the literal out of the reactive statement into an assignment
messageId: fixReactiveLiteral
output: |
- message: Do not assign literal values inside reactive statements unless
absolutely necessary.
line: 5
column: 5
suggestions:
- desc: Move the literal out of the reactive statement into an assignment
messageId: fixReactiveLiteral
output: |
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-literals/invalid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-literals/valid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/invalid/array01-errors.yaml
================================================
- message: Assignment to reactive value 'array1'.
line: 15
column: 3
suggestions: null
- message: Assignment to reactive value 'array2'.
line: 16
column: 3
suggestions: null
- message: Assignment to reactive value 'array3'.
line: 17
column: 3
suggestions: null
- message: Assignment to reactive value 'array4'.
line: 18
column: 3
suggestions: null
- message: Assignment to reactive value 'array5'.
line: 19
column: 3
suggestions: null
- message: Assignment to reactive value 'array6'.
line: 20
column: 3
suggestions: null
- message: Assignment to reactive value 'array7'.
line: 21
column: 3
suggestions: null
- message: Assignment to reactive value 'array8'.
line: 22
column: 3
suggestions: null
- message: Assignment to reactive value 'array9'.
line: 23
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/invalid/array01-input.svelte
================================================
Click Me
{JSON.stringify(array1) +
JSON.stringify(array2) +
JSON.stringify(array3) +
JSON.stringify(array4) +
JSON.stringify(array5) +
JSON.stringify(array6) +
JSON.stringify(array7) +
JSON.stringify(array8) +
JSON.stringify(array9) +
rerender}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/invalid/bind-dir01-errors.yaml
================================================
- message: Assignment to reactive value 'reactiveValue'.
line: 6
column: 22
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/invalid/bind-dir01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/invalid/conditional01-errors.yaml
================================================
- message: Assignment to property of reactive value 'reactiveValue'.
line: 7
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/invalid/conditional01-input.svelte
================================================
{reactiveValue}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/invalid/delete01-errors.yaml
================================================
- message: Assignment to property of reactive value 'reactiveValue'.
line: 7
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/invalid/delete01-input.svelte
================================================
{reactiveValue}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/invalid/destructure01-errors.yaml
================================================
- message: Assignment to reactive value 'reactiveValue'.
line: 9
column: 4
suggestions: null
- message: Assignment to reactive value 'reactiveObject'.
line: 10
column: 4
suggestions: null
- message: Assignment to reactive value 'reactiveValue'.
line: 12
column: 3
suggestions: null
- message: Assignment to reactive value 'reactiveArray'.
line: 13
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/invalid/destructure01-input.svelte
================================================
{reactiveValue}
{JSON.stringify(reactiveObject)}
{JSON.stringify(reactiveArray)}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/invalid/for-in01-errors.yaml
================================================
- message: Assignment to property of reactive value 'reactiveValue'.
line: 8
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/invalid/for-in01-input.svelte
================================================
Click Me
{reactiveValue.key + rerender}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/invalid/for-of01-errors.yaml
================================================
- message: Assignment to property of reactive value 'reactiveValue'.
line: 8
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/invalid/for-of01-input.svelte
================================================
Click Me
{reactiveValue.key + rerender}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/invalid/member01-errors.yaml
================================================
- message: Assignment to property of reactive value 'reactiveValue'.
line: 6
column: 3
suggestions: null
- message: Assignment to property of reactive value 'reactiveValue'.
line: 7
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/invalid/member01-input.svelte
================================================
{reactiveValue}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/invalid/props-false/_config.json
================================================
{
"options": [
{
"props": false
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/invalid/props-false/test01-errors.yaml
================================================
- message: Assignment to reactive value 'reactiveValue'.
line: 7
column: 3
suggestions: null
- message: Assignment to reactive value 'reactiveValue'.
line: 15
column: 22
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/invalid/props-false/test01-input.svelte
================================================
Click Me
{reactiveValue}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/invalid/props-true01-errors.yaml
================================================
- message: Assignment to property of reactive value 'reactiveValue'.
line: 9
column: 3
suggestions: null
- message: Assignment to property of reactive value 'reactiveValue'.
line: 16
column: 22
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/invalid/props-true01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/invalid/test01-errors.yaml
================================================
- message: Assignment to reactive value 'reactiveValue'.
line: 7
column: 3
suggestions: null
- message: Assignment to reactive value 'reactiveValue'.
line: 8
column: 3
suggestions: null
- message: Assignment to reactive value 'reactiveValue'.
line: 16
column: 22
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/invalid/test01-input.svelte
================================================
Click Me
{reactiveValue}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/valid/array01-input.svelte
================================================
Click Me
{JSON.stringify(array1) +
JSON.stringify(array2) +
JSON.stringify(array3) +
JSON.stringify(array4) +
JSON.stringify(array5) +
JSON.stringify(array6) +
JSON.stringify(array7) +
JSON.stringify(array8) +
JSON.stringify(array9) +
rerender}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/valid/assign-right01-input.svelte
================================================
{reactiveValue}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/valid/destructure01-input.svelte
================================================
{reactiveValue}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/valid/for-in01-input.svelte
================================================
Click Me
{reactiveValue.key + rerender}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/valid/for-of01-input.svelte
================================================
Click Me
{reactiveValue[0] + rerender}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/valid/member-key01-input.svelte
================================================
{reactiveValue}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/valid/on-dir01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/valid/props-false/_config.json
================================================
{
"options": [
{
"props": false
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/valid/props-false/props-false01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/valid/reactive-like01-input.svelte
================================================
Click Me
{reactiveLikeValue}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/valid/reactive-like02-input.svelte
================================================
Click Me
{reactiveLikeValue}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/valid/test01-input.svelte
================================================
Click Me
{reactiveValue}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-reactive-reassign/valid/typeof01-input.svelte
================================================
{reactiveValue}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-restricted-html-elements/invalid/array-config.json
================================================
{
"options": ["h1", "h2", "h3", "h4", "h5", "h6"]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-restricted-html-elements/invalid/array-errors.yaml
================================================
- message: Unexpected use of forbidden HTML element h1.
line: 1
column: 1
suggestions: null
- message: Unexpected use of forbidden HTML element h2.
line: 2
column: 1
suggestions: null
- message: Unexpected use of forbidden HTML element h3.
line: 3
column: 1
suggestions: null
- message: Unexpected use of forbidden HTML element h4.
line: 4
column: 1
suggestions: null
- message: Unexpected use of forbidden HTML element h5.
line: 5
column: 1
suggestions: null
- message: Unexpected use of forbidden HTML element h6.
line: 6
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-restricted-html-elements/invalid/array-input.svelte
================================================
Main Title - H1
Subtitle - H2
Subsection Title - H3
Sub-Subsection Title - H4
Minor Title - H5
Minor Subtitle - H6
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-restricted-html-elements/invalid/object-config.json
================================================
{
"options": [
{
"elements": ["h1", "h2", "h3", "h4", "h5", "h6"],
"message": "Prefer use of our custom component"
},
{
"elements": ["marquee"],
"message": "Do not use deprecated HTML tags"
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-restricted-html-elements/invalid/object-errors.yaml
================================================
- message: Prefer use of our custom component
line: 1
column: 1
suggestions: null
- message: Prefer use of our custom component
line: 2
column: 1
suggestions: null
- message: Prefer use of our custom component
line: 3
column: 1
suggestions: null
- message: Prefer use of our custom component
line: 4
column: 1
suggestions: null
- message: Prefer use of our custom component
line: 5
column: 1
suggestions: null
- message: Prefer use of our custom component
line: 6
column: 1
suggestions: null
- message: Do not use deprecated HTML tags
line: 8
column: 1
suggestions: null
- message: Do not use deprecated HTML tags
line: 10
column: 1
suggestions: null
- message: Do not use deprecated HTML tags
line: 12
column: 1
suggestions: null
- message: Do not use deprecated HTML tags
line: 13
column: 2
suggestions: null
- message: Do not use deprecated HTML tags
line: 17
column: 2
suggestions: null
- message: Prefer use of our custom component
line: 21
column: 2
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-restricted-html-elements/invalid/object-input.svelte
================================================
Main Title - H1
Subtitle - H2
Subsection Title - H3
Sub-Subsection Title - H4
Minor Title - H5
Minor Subtitle - H6
This text will scroll from right to left
This text will scroll from bottom to top
This text will bounce
This text will scroll from right to left
Minor Subtitle - H6
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-restricted-html-elements/valid/array-config.json
================================================
{
"options": ["h1", "h2", "h3", "h4", "h5", "h6"]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-restricted-html-elements/valid/array-input.svelte
================================================
This is a title
This is a subtitle
This is a paragraph. Some sample text goes here.
Table Cell 1
Table Cell 2
Table Cell 3
Table Cell 4
This is a hyperlink to example.com
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-restricted-html-elements/valid/object-config.json
================================================
{
"options": [
{
"elements": ["h1", "h2", "h3", "h4", "h5", "h6"],
"message": "Prefer use of our custom component"
},
{
"elements": ["marquee"],
"message": "Do not use deprecated HTML tags"
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-restricted-html-elements/valid/object-input.svelte
================================================
This is a title
This is a subtitle
This is a paragraph. Some sample text goes here.
Table Cell 1
Table Cell 2
Table Cell 3
Table Cell 4
This is a hyperlink to example.com
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-shorthand-style-property-overrides/invalid/ternary01-errors.yaml
================================================
- message: Unexpected shorthand 'background' after 'background-repeat'.
line: 8
column: 13
suggestions: null
- message: Unexpected shorthand 'background' after 'background-repeat'.
line: 8
column: 36
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-shorthand-style-property-overrides/invalid/ternary01-input.svelte
================================================
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-shorthand-style-property-overrides/invalid/test01-errors.yaml
================================================
- message: Unexpected shorthand 'background' after 'background-repeat'.
line: 5
column: 45
suggestions: null
- message: Unexpected shorthand 'background' after 'background-repeat'.
line: 6
column: 45
suggestions: null
- message: Unexpected shorthand 'background' after 'background-repeat'.
line: 10
column: 5
suggestions: null
- message: Unexpected shorthand 'background' after 'background-repeat'.
line: 18
column: 5
suggestions: null
- message: Unexpected shorthand 'background' after 'background-repeat'.
line: 23
column: 46
suggestions: null
- message: Unexpected shorthand 'background' after 'background-repeat'.
line: 24
column: 46
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-shorthand-style-property-overrides/invalid/test01-input.svelte
================================================
...
...
...
...
...
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-shorthand-style-property-overrides/valid/empty01-input.svelte
================================================
...
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-shorthand-style-property-overrides/valid/ternary01-input.svelte
================================================
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-shorthand-style-property-overrides/valid/test01-input.svelte
================================================
...
...
...
...
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-shorthand-style-property-overrides/valid/test02-input.svelte
================================================
...
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-spaces-around-equal-signs-in-attribute/invalid/test01-errors.yaml
================================================
- message: Unexpected spaces found around equal signs.
line: 3
column: 11
suggestions: null
- message: Unexpected spaces found around equal signs.
line: 4
column: 11
suggestions: null
- message: Unexpected spaces found around equal signs.
line: 5
column: 11
suggestions: null
- message: Unexpected spaces found around equal signs.
line: 6
column: 11
suggestions: null
- message: Unexpected spaces found around equal signs.
line: 8
column: 11
suggestions: null
- message: Unexpected spaces found around equal signs.
line: 10
column: 11
suggestions: null
- message: Unexpected spaces found around equal signs.
line: 11
column: 11
suggestions: null
- message: Unexpected spaces found around equal signs.
line: 12
column: 11
suggestions: null
- message: Unexpected spaces found around equal signs.
line: 13
column: 15
suggestions: null
- message: Unexpected spaces found around equal signs.
line: 13
column: 35
suggestions: null
- message: Unexpected spaces found around equal signs.
line: 14
column: 17
suggestions: null
- message: Unexpected spaces found around equal signs.
line: 16
column: 10
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-spaces-around-equal-signs-in-attribute/invalid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-spaces-around-equal-signs-in-attribute/invalid/test01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-spaces-around-equal-signs-in-attribute/valid/test-01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-store-async/invalid/test01-errors.yaml
================================================
- message: Do not pass async functions to svelte stores.
line: 3
column: 28
suggestions: null
- message: Do not pass async functions to svelte stores.
line: 6
column: 28
suggestions: null
- message: Do not pass async functions to svelte stores.
line: 9
column: 24
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-store-async/invalid/test01-input.js
================================================
import { writable, readable, derived } from 'svelte/store';
const w2 = writable(false, async () => {
/** do nothing */
});
const r2 = readable(false, async () => {
/** do nothing */
});
const d2 = derived(a1, async ($a1) => {
/** do nothing */
});
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-store-async/invalid/test02-errors.yaml
================================================
- message: Do not pass async functions to svelte stores.
line: 3
column: 35
suggestions: null
- message: Do not pass async functions to svelte stores.
line: 6
column: 35
suggestions: null
- message: Do not pass async functions to svelte stores.
line: 9
column: 31
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-store-async/invalid/test02-input.js
================================================
import * as stores from 'svelte/store';
const w2 = stores.writable(false, async () => {
/** do nothing */
});
const r2 = stores.readable(false, async () => {
/** do nothing */
});
const d2 = stores.derived(a1, async ($a1) => {
/** do nothing */
});
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-store-async/invalid/test03-errors.yaml
================================================
- message: Do not pass async functions to svelte stores.
line: 3
column: 21
suggestions: null
- message: Do not pass async functions to svelte stores.
line: 6
column: 21
suggestions: null
- message: Do not pass async functions to svelte stores.
line: 9
column: 18
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-store-async/invalid/test03-input.js
================================================
import { writable as A, readable as B, derived as C } from 'svelte/store';
const w2 = A(false, async () => {
/** do nothing */
});
const r2 = B(false, async () => {
/** do nothing */
});
const d2 = C(a1, async ($a1) => {
/** do nothing */
});
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-store-async/invalid/test04-errors.yaml
================================================
- message: Do not pass async functions to svelte stores.
line: 3
column: 28
suggestions: null
- message: Do not pass async functions to svelte stores.
line: 6
column: 28
suggestions: null
- message: Do not pass async functions to svelte stores.
line: 9
column: 24
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-store-async/invalid/test04-input.js
================================================
import { writable, readable, derived } from 'svelte/store';
const w2 = writable(false, async function () {
/** do nothing */
});
const r2 = readable(false, async function () {
/** do nothing */
});
const d2 = derived(a1, async function ($a1) {
/** do nothing */
});
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-store-async/valid/test01-input.js
================================================
import { writable, readable, derived } from 'svelte/store';
const w1 = writable(false, () => {
/** do nothing */
});
const w2 = writable(false);
const r1 = readable(false, () => {
/** do nothing */
});
const r2 = readable(false);
const d1 = derived(a1, ($a1) => {
/** do nothing */
});
const d2 = derived(a1);
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-svelte-internal/invalid/no-svelte-internal01-errors.yaml
================================================
- message: Using svelte/internal is prohibited. This will be removed in Svelte 6.
line: 2
column: 2
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-svelte-internal/invalid/no-svelte-internal01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-svelte-internal/invalid/no-svelte-internal02-errors.yaml
================================================
- message: Using svelte/internal is prohibited. This will be removed in Svelte 6.
line: 2
column: 2
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-svelte-internal/invalid/no-svelte-internal02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-svelte-internal/invalid/no-svelte-internal03-errors.yaml
================================================
- message: Using svelte/internal is prohibited. This will be removed in Svelte 6.
line: 2
column: 2
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-svelte-internal/invalid/no-svelte-internal03-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-svelte-internal/invalid/no-svelte-internal04-errors.yaml
================================================
- message: Using svelte/internal is prohibited. This will be removed in Svelte 6.
line: 2
column: 2
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-svelte-internal/invalid/no-svelte-internal04-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-svelte-internal/invalid/no-svelte-internal05-errors.yaml
================================================
- message: Using svelte/internal is prohibited. This will be removed in Svelte 6.
line: 2
column: 2
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-svelte-internal/invalid/no-svelte-internal05-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-svelte-internal/invalid/no-svelte-internal06-errors.yaml
================================================
- message: Using svelte/internal is prohibited. This will be removed in Svelte 6.
line: 2
column: 2
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-svelte-internal/invalid/no-svelte-internal06-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-svelte-internal/invalid/no-svelte-internal07-errors.yaml
================================================
- message: Using svelte/internal is prohibited. This will be removed in Svelte 6.
line: 2
column: 2
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-svelte-internal/invalid/no-svelte-internal07-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-svelte-internal/valid/no-svelte-internal01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-target-blank/invalid/test01-errors.yaml
================================================
- message: Using target="_blank" without rel="noopener noreferrer" is a security risk.
line: 5
column: 31
suggestions: null
- message: Using target="_blank" without rel="noopener noreferrer" is a security risk.
line: 6
column: 31
suggestions: null
- message: Using target="_blank" without rel="noopener noreferrer" is a security risk.
line: 7
column: 16
suggestions: null
- message: Using target="_blank" without rel="noopener noreferrer" is a security risk.
line: 8
column: 16
suggestions: null
- message: Using target="_blank" without rel="noopener noreferrer" is a security risk.
line: 9
column: 31
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-target-blank/invalid/test01-input.svelte
================================================
link
link
link
link
link
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-target-blank/valid/allow-referrer/_config.json
================================================
{
"options": [{ "allowReferrer": true }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-target-blank/valid/allow-referrer/allow-referrer-test01-input.svelte
================================================
link ,
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-target-blank/valid/enforce-dynamic-links/_config.json
================================================
{
"options": [{ "enforceDynamicLinks": "never" }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-target-blank/valid/enforce-dynamic-links/enforce-dynamic-links-test01-input.svelte
================================================
link
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-target-blank/valid/test01-input.svelte
================================================
link
link
link
link
link
link
link
link
link
link
link
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/invalid/env01-errors.yaml
================================================
- message: Unexpected top-level browser global variable "location".
line: 8
column: 15
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 13
column: 15
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/invalid/env01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/invalid/env02-errors.yaml
================================================
- message: Unexpected top-level browser global variable "location".
line: 8
column: 15
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 13
column: 15
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/invalid/env02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/invalid/env03-errors.yaml
================================================
- message: Unexpected top-level browser global variable "location".
line: 3
column: 15
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/invalid/env03-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/invalid/guards01-errors.yaml
================================================
- message: Unexpected top-level browser global variable "location".
line: 5
column: 15
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 10
column: 15
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 15
column: 15
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 18
column: 15
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 23
column: 15
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 30
column: 15
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 35
column: 15
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 38
column: 15
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 43
column: 15
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 50
column: 15
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 55
column: 15
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/invalid/guards01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/invalid/guards02-errors.yaml
================================================
- message: Unexpected top-level browser global variable "location".
line: 5
column: 15
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 10
column: 15
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 15
column: 15
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 18
column: 15
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/invalid/guards02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/invalid/guards03-errors.yaml
================================================
- message: Unexpected top-level browser global variable "location".
line: 5
column: 15
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 10
column: 15
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 15
column: 15
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 18
column: 15
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 25
column: 15
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 28
column: 15
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 35
column: 15
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 38
column: 15
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 42
column: 6
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 44
column: 15
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 46
column: 15
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 48
column: 6
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 50
column: 15
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 52
column: 15
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 57
column: 15
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/invalid/guards03-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/invalid/guards04-errors.yaml
================================================
- message: Unexpected top-level browser global variable "location".
line: 5
column: 15
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 10
column: 15
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 15
column: 15
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/invalid/guards04-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/invalid/guards05-errors.yaml
================================================
- message: Unexpected top-level browser global variable "location".
line: 3
column: 31
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 4
column: 25
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/invalid/guards05-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/invalid/guards06-errors.yaml
================================================
- message: Unexpected top-level browser global variable "location".
line: 9
column: 15
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 13
column: 16
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/invalid/guards06-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/invalid/guards07-errors.yaml
================================================
- message: Unexpected top-level browser global variable "location".
line: 13
column: 15
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 17
column: 16
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 28
column: 16
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 33
column: 15
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/invalid/guards07-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/invalid/guards08-errors.yaml
================================================
- message: Unexpected top-level browser global variable "location".
line: 3
column: 21
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 3
column: 49
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 5
column: 14
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 5
column: 37
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 7
column: 14
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/invalid/guards08-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/invalid/in-template01-errors.yaml
================================================
- message: Unexpected top-level browser global variable "location".
line: 5
column: 2
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 12
column: 3
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 18
column: 3
suggestions: null
- message: Unexpected top-level browser global variable "location".
line: 22
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/invalid/in-template01-input.svelte
================================================
{location.href}
{#if browser}
{location.href}
{/if}
{#if !browser}
{location.href}
{/if}
{#if browser}
{location.href}
{:else}
{location.href}
{/if}
{#if !browser}
{location.href}
{:else}
{location.href}
{/if}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/invalid/test01-errors.yaml
================================================
- message: Unexpected top-level browser global variable "window".
line: 2
column: 12
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/invalid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/invalid/test02-errors.yaml
================================================
- message: Unexpected top-level browser global variable "location".
line: 2
column: 14
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/invalid/test02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/invalid/test03-errors.yaml
================================================
- message: Unexpected top-level browser global variable "localStorage".
line: 2
column: 12
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/invalid/test03-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/valid/complex-guards01-input.svelte
================================================
{#if browser && dev}
{localStorage.getItem('myCat')}
{/if}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/valid/complex-guards02-input.svelte
================================================
{#if !browser || !dev}
DEV
{:else}
{localStorage.getItem('myCat')}
{/if}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/valid/effect01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/valid/env-guards01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/valid/env01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/valid/env02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/valid/env03-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/valid/guards01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/valid/guards02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/valid/guards03-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/valid/guards04-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/valid/guards05-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/valid/guards06-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/valid/guards07-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/valid/guards08-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/valid/in-template01-input.svelte
================================================
{#if browser}
{location.href}
{/if}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/valid/in-template02-input.svelte
================================================
{#snippet f()}
{location.href}
{/snippet}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/valid/in-template02-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/valid/in-template03-input.svelte
================================================
{#if !browser}
Server-side.
{:else}
{location.href}
{/if}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/valid/on-mount01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/valid/state-generic-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-top-level-browser-globals/valid/ts01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-trailing-spaces/invalid/ignoreComments/_config.json
================================================
{
"options": [
{
"ignoreComments": true
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-trailing-spaces/invalid/ignoreComments/test01-errors.yaml
================================================
- message: Trailing spaces not allowed.
line: 5
column: 2
suggestions: null
- message: Trailing spaces not allowed.
line: 9
column: 6
suggestions: null
- message: Trailing spaces not allowed.
line: 14
column: 1
suggestions: null
- message: Trailing spaces not allowed.
line: 23
column: 12
suggestions: null
- message: Trailing spaces not allowed.
line: 26
column: 7
suggestions: null
- message: Trailing spaces not allowed.
line: 27
column: 7
suggestions: null
- message: Trailing spaces not allowed.
line: 30
column: 7
suggestions: null
- message: Trailing spaces not allowed.
line: 33
column: 7
suggestions: null
- message: Trailing spaces not allowed.
line: 34
column: 23
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-trailing-spaces/invalid/ignoreComments/test01-input.svelte
================================================
Text
Text
Text
Text
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-trailing-spaces/invalid/ignoreComments/test01-output.svelte
================================================
Text
Text
Text
Text
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-trailing-spaces/invalid/skipBlankLines/_config.json
================================================
{
"options": [
{
"skipBlankLines": true
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-trailing-spaces/invalid/skipBlankLines/test01-errors.yaml
================================================
- message: Trailing spaces not allowed.
line: 5
column: 2
suggestions: null
- message: Trailing spaces not allowed.
line: 6
column: 18
suggestions: null
- message: Trailing spaces not allowed.
line: 7
column: 6
suggestions: null
- message: Trailing spaces not allowed.
line: 8
column: 19
suggestions: null
- message: Trailing spaces not allowed.
line: 9
column: 6
suggestions: null
- message: Trailing spaces not allowed.
line: 11
column: 20
suggestions: null
- message: Trailing spaces not allowed.
line: 18
column: 5
suggestions: null
- message: Trailing spaces not allowed.
line: 19
column: 15
suggestions: null
- message: Trailing spaces not allowed.
line: 23
column: 12
suggestions: null
- message: Trailing spaces not allowed.
line: 26
column: 7
suggestions: null
- message: Trailing spaces not allowed.
line: 27
column: 7
suggestions: null
- message: Trailing spaces not allowed.
line: 30
column: 7
suggestions: null
- message: Trailing spaces not allowed.
line: 33
column: 7
suggestions: null
- message: Trailing spaces not allowed.
line: 34
column: 23
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-trailing-spaces/invalid/skipBlankLines/test01-input.svelte
================================================
Text
Text
Text
Text
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-trailing-spaces/invalid/skipBlankLines/test01-output.svelte
================================================
Text
Text
Text
Text
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-trailing-spaces/invalid/test01-errors.yaml
================================================
- message: Trailing spaces not allowed.
line: 5
column: 2
suggestions: null
- message: Trailing spaces not allowed.
line: 6
column: 18
suggestions: null
- message: Trailing spaces not allowed.
line: 7
column: 6
suggestions: null
- message: Trailing spaces not allowed.
line: 8
column: 19
suggestions: null
- message: Trailing spaces not allowed.
line: 9
column: 6
suggestions: null
- message: Trailing spaces not allowed.
line: 11
column: 20
suggestions: null
- message: Trailing spaces not allowed.
line: 14
column: 1
suggestions: null
- message: Trailing spaces not allowed.
line: 18
column: 5
suggestions: null
- message: Trailing spaces not allowed.
line: 19
column: 15
suggestions: null
- message: Trailing spaces not allowed.
line: 23
column: 12
suggestions: null
- message: Trailing spaces not allowed.
line: 26
column: 7
suggestions: null
- message: Trailing spaces not allowed.
line: 27
column: 7
suggestions: null
- message: Trailing spaces not allowed.
line: 30
column: 7
suggestions: null
- message: Trailing spaces not allowed.
line: 33
column: 7
suggestions: null
- message: Trailing spaces not allowed.
line: 34
column: 23
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-trailing-spaces/invalid/test01-input.svelte
================================================
Text
Text
Text
Text
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-trailing-spaces/invalid/test01-output.svelte
================================================
Text
Text
Text
Text
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-trailing-spaces/valid/test01-input.svelte
================================================
Text
Text
Text
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unknown-style-directive-property/invalid/ignoreProperties/_config.json
================================================
{
"options": [{ "ignoreProperties": ["foo", "/^bar/"] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unknown-style-directive-property/invalid/ignoreProperties/test01-errors.yaml
================================================
- message: Unexpected unknown style directive property 'unknown-color'.
line: 8
column: 12
suggestions: null
- message: Unexpected unknown style directive property 'unknown'.
line: 9
column: 12
suggestions: null
- message: Unexpected unknown style directive property 'foo-bar'.
line: 15
column: 12
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unknown-style-directive-property/invalid/ignoreProperties/test01-input.svelte
================================================
...
...
...
...
...
...
...
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unknown-style-directive-property/invalid/test01-errors.yaml
================================================
- message: Unexpected unknown style directive property 'unknown-color'.
line: 6
column: 12
suggestions: null
- message: Unexpected unknown style directive property 'unknown'.
line: 7
column: 12
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unknown-style-directive-property/invalid/test01-input.svelte
================================================
...
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unknown-style-directive-property/valid/test01-input.svelte
================================================
...
...
...
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unknown-style-directive-property/valid/test02-input.svelte
================================================
...
...
...
...
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unnecessary-state-wrap/invalid/_requirements.json
================================================
{
"svelte": ">=5.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unnecessary-state-wrap/invalid/additional-class-config.json
================================================
{
"options": [
{
"additionalReactiveClasses": ["CustomReactiveClass1", "CustomReactiveClass2"]
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unnecessary-state-wrap/invalid/additional-class-errors.yaml
================================================
- message: CustomReactiveClass1 is already reactive, $state wrapping is unnecessary.
line: 5
column: 25
suggestions:
- desc: Remove unnecessary $state wrapping
messageId: suggestRemoveStateWrap
output: |
- message: CustomReactiveClass2 is already reactive, $state wrapping is unnecessary.
line: 6
column: 25
suggestions:
- desc: Remove unnecessary $state wrapping
messageId: suggestRemoveStateWrap
output: |
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unnecessary-state-wrap/invalid/additional-class-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unnecessary-state-wrap/invalid/allow-reassign-config.json
================================================
{
"options": [
{
"allowReassign": true
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unnecessary-state-wrap/invalid/allow-reassign-errors.yaml
================================================
- message: SvelteSet is already reactive, $state wrapping is unnecessary.
line: 6
column: 21
suggestions:
- desc: Remove unnecessary $state wrapping
messageId: suggestRemoveStateWrap
output: |
- message: SvelteMap is already reactive, $state wrapping is unnecessary.
line: 7
column: 19
suggestions:
- desc: Remove unnecessary $state wrapping
messageId: suggestRemoveStateWrap
output: |
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unnecessary-state-wrap/invalid/allow-reassign-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unnecessary-state-wrap/invalid/basic-errors.yaml
================================================
- message: SvelteSet is already reactive, $state wrapping is unnecessary.
line: 12
column: 21
suggestions:
- desc: Remove unnecessary $state wrapping
messageId: suggestRemoveStateWrap
output: |
- message: SvelteMap is already reactive, $state wrapping is unnecessary.
line: 13
column: 21
suggestions:
- desc: Remove unnecessary $state wrapping
messageId: suggestRemoveStateWrap
output: |
- message: SvelteURL is already reactive, $state wrapping is unnecessary.
line: 14
column: 21
suggestions:
- desc: Remove unnecessary $state wrapping
messageId: suggestRemoveStateWrap
output: |
- message: SvelteURLSearchParams is already reactive, $state wrapping is unnecessary.
line: 15
column: 24
suggestions:
- desc: Remove unnecessary $state wrapping
messageId: suggestRemoveStateWrap
output: |
- message: SvelteDate is already reactive, $state wrapping is unnecessary.
line: 16
column: 22
suggestions:
- desc: Remove unnecessary $state wrapping
messageId: suggestRemoveStateWrap
output: |
- message: MediaQuery is already reactive, $state wrapping is unnecessary.
line: 17
column: 28
suggestions:
- desc: Remove unnecessary $state wrapping
messageId: suggestRemoveStateWrap
output: |
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unnecessary-state-wrap/invalid/basic-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unnecessary-state-wrap/invalid/import-alias-errors.yaml
================================================
- message: SvelteSet is already reactive, $state wrapping is unnecessary.
line: 5
column: 21
suggestions:
- desc: Remove unnecessary $state wrapping
messageId: suggestRemoveStateWrap
output: >
- message: SvelteMap is already reactive, $state wrapping is unnecessary.
line: 6
column: 21
suggestions:
- desc: Remove unnecessary $state wrapping
messageId: suggestRemoveStateWrap
output: >
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unnecessary-state-wrap/invalid/import-alias-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unnecessary-state-wrap/valid/_requirements.json
================================================
{
"svelte": ">=5.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unnecessary-state-wrap/valid/additional-class-config.json
================================================
{
"options": [
{
"additionalReactiveClasses": ["CustomReactiveClass1", "CustomReactiveClass2"]
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unnecessary-state-wrap/valid/additional-class-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unnecessary-state-wrap/valid/allow-reassign-bind1-config.json
================================================
{
"options": [
{
"allowReassign": true
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unnecessary-state-wrap/valid/allow-reassign-bind1-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unnecessary-state-wrap/valid/allow-reassign-bind2-config.json
================================================
{
"options": [
{
"allowReassign": true
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unnecessary-state-wrap/valid/allow-reassign-bind2-input.svelte
================================================
svelteSet, (v) => (svelteSet = v)} />
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unnecessary-state-wrap/valid/allow-reassign-config.json
================================================
{
"options": [
{
"allowReassign": true
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unnecessary-state-wrap/valid/allow-reassign-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unnecessary-state-wrap/valid/basic-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/invalid/allowed-class-names/_config.json
================================================
{
"options": [{ "allowedClassNames": ["div-class", "/^p-\\d{1,2}$/"] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/invalid/allowed-class-names/partially-allowed-class-name01-errors.yaml
================================================
- message: Unused class "span-class".
line: 3
column: 1
suggestions: null
- message: Unused class "p-100".
line: 5
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/invalid/allowed-class-names/partially-allowed-class-name01-input.svelte
================================================
Hello
World!
Regex!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/invalid/class-directive01-errors.yaml
================================================
- message: Unused class "first".
line: 1
column: 1
suggestions: null
- message: Unused class "second".
line: 3
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/invalid/class-directive01-input.svelte
================================================
Hello
World!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/invalid/duplicated-class-name-errors.yaml
================================================
- message: Unused class "div-class".
line: 1
column: 1
suggestions: null
- message: Unused class "div-class".
line: 3
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/invalid/duplicated-class-name-input.svelte
================================================
Hello
World!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/invalid/multiline-class-names01-errors.yaml
================================================
- message: Unused class "div-class-two".
line: 2
column: 1
suggestions: null
- message: Unused class "span-class-two".
line: 4
column: 1
suggestions: null
- message: Unused class "span-class-three".
line: 4
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/invalid/multiline-class-names01-input.svelte
================================================
Hello
World!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/invalid/multiple-class-names01-errors.yaml
================================================
- message: Unused class "div-class-two".
line: 1
column: 1
suggestions: null
- message: Unused class "span-class-two".
line: 3
column: 1
suggestions: null
- message: Unused class "span-class-three".
line: 3
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/invalid/multiple-class-names01-input.svelte
================================================
Hello
World!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/invalid/same-name-id01-errors.yaml
================================================
- message: Unused class "div-class".
line: 1
column: 1
suggestions: null
- message: Unused class "span-class".
line: 3
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/invalid/same-name-id01-input.svelte
================================================
Hello
World!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/invalid/unused-class-name01-errors.yaml
================================================
- message: Unused class "div-class".
line: 1
column: 1
suggestions: null
- message: Unused class "span-class".
line: 3
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/invalid/unused-class-name01-input.svelte
================================================
Hello
World!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/invalid/used-unrelated-class-name01-errors.yaml
================================================
- message: Unused class "div-class".
line: 1
column: 1
suggestions: null
- message: Unused class "span-class".
line: 3
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/invalid/used-unrelated-class-name01-input.svelte
================================================
Hello
World!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/valid/adjacent-sibling-combinator01-input.svelte
================================================
Hello
World!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/valid/allowed-class-names/_config.json
================================================
{
"options": [{ "allowedClassNames": ["div-class", "span-class", "/^p-\\d{1,2}$/"] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/valid/allowed-class-names/allowed-class-name01-input.svelte
================================================
Hello
World!
Regex!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/valid/child-combinator01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/valid/descendant-combinator01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/valid/general-sibling-combinator01-input.svelte
================================================
Hello
World!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/valid/invalid-style01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/valid/multiple-class-names01-input.svelte
================================================
Hello
World!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/valid/no-class-name01-input.svelte
================================================
Hello
World!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/valid/pseudo-classes01-input.svelte
================================================
Hello
World
!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/valid/pseudo-elements01-input.svelte
================================================
Hello
World!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/valid/scss-class-name01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/valid/selector-list01-input.svelte
================================================
Hello
World!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/valid/test-input.js
================================================
console.log('a');
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/valid/unknown-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-class-name/valid/used-class-name01-input.svelte
================================================
Hello
World!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/_requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/alias-errors.yaml
================================================
- message: "'test' is an unused Props property."
line: 7
column: 8
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/alias-input.svelte
================================================
{foo}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/builtin-shadow-unused-errors.yaml
================================================
- message: "'toString' is an unused Props property."
line: 5
column: 6
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/builtin-shadow-unused-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/builtin-types-unused-errors.yaml
================================================
- message: "'regexp' is an unused Props property."
line: 10
column: 8
suggestions: null
- message: "'promise' is an unused Props property."
line: 10
column: 8
suggestions: null
- message: "'map' is an unused Props property."
line: 10
column: 8
suggestions: null
- message: "'set' is an unused Props property."
line: 10
column: 8
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/builtin-types-unused-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/class-props-unused-errors.yaml
================================================
- message: "'data' is an unused Props property."
line: 16
column: 8
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/class-props-unused-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/custom-config-combination-config.json
================================================
{
"options": [
{
"checkImportedTypes": true,
"ignoreTypePatterns": ["BaseProps"],
"ignorePropertyPatterns": ["/^(_|baz)/"]
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/custom-config-combination-errors.yaml
================================================
- message: "'base' is an unused Props property."
line: 10
column: 6
suggestions: null
- message: "'bar' in 'my_foo' is an unused property."
line: 10
column: 6
suggestions: null
- message: "'qux' is an unused Props property."
line: 10
column: 6
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/custom-config-combination-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/extends-unused-errors.yaml
================================================
- message: "'role' is an unused Props property."
line: 13
column: 6
suggestions: null
- message: "'email' is an unused Props property."
line: 13
column: 6
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/extends-unused-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/generic-props-unused-errors.yaml
================================================
- message: "'extra' is an unused Props property."
line: 6
column: 6
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/generic-props-unused-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/ignore-external-type-errors.yaml
================================================
- message: "'child2' is an unused Props property."
line: 9
column: 6
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/ignore-external-type-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/ignore-property-patterns-custom-config.json
================================================
{
"options": [
{
"ignorePropertyPatterns": ["^foo$"]
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/ignore-property-patterns-custom-errors.yaml
================================================
- message: "'foo' is an unused Props property."
line: 8
column: 8
suggestions: null
- message: "'_foo' is an unused Props property."
line: 8
column: 8
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/ignore-property-patterns-custom-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/ignored-type-patterns-custom-config.json
================================================
{
"options": [
{
"ignoreTypePatterns": [".*DTO$"]
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/ignored-type-patterns-custom-errors.yaml
================================================
- message: "'metadata' is an unused Props property."
line: 12
column: 8
suggestions: null
- message: "'description' is an unused Props property."
line: 12
column: 8
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/ignored-type-patterns-custom-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/imported-type-check-config.json
================================================
{
"options": [
{
"checkImportedTypes": true
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/imported-type-check-errors.yaml
================================================
- message: "'name' is an unused Props property."
line: 6
column: 6
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/imported-type-check-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/imported-type-unused-errors.yaml
================================================
- message: "'role' is an unused Props property."
line: 6
column: 6
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/imported-type-unused-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/index-signature-no-rest-errors.yaml
================================================
- message: "'role' is an unused Props property."
line: 8
column: 6
suggestions: null
- message: Index signature is unused. Consider using rest operator (...) to
capture remaining properties.
line: 8
column: 6
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/index-signature-no-rest-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/intersection-unused-errors.yaml
================================================
- message: "'version' is an unused Props property."
line: 17
column: 8
suggestions: null
- message: "'updatedAt' is an unused Props property."
line: 17
column: 8
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/intersection-unused-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/multiple-extends-unused-errors.yaml
================================================
- message: "'email' is an unused Props property."
line: 17
column: 6
suggestions: null
- message: "'permissions' is an unused Props property."
line: 17
column: 6
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/multiple-extends-unused-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/nested-unused-errors.yaml
================================================
- message: "'location' in 'user' is an unused property."
line: 8
column: 6
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/nested-unused-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/optional-unused-errors.yaml
================================================
- message: "'optionalCallback' is an unused Props property."
line: 9
column: 8
suggestions: null
- message: "'optionalData' is an unused Props property."
line: 9
column: 8
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/optional-unused-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/parent-interface-unused-errors.yaml
================================================
- message: "'id' is an unused Props property."
line: 11
column: 6
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/parent-interface-unused-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/shared-types.ts
================================================
export interface BaseProps {
name: string;
}
export interface FooDTO {
foo: string;
bar: number;
baz: BazDTO;
}
interface BazDTO {
qux: string;
quux: number;
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/simple-unused-errors.yaml
================================================
- message: "'age' is an unused Props property."
line: 6
column: 6
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/simple-unused-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/unused-index-signature-errors.yaml
================================================
- message: Index signature is unused. Consider using rest operator (...) to
capture remaining properties.
line: 7
column: 6
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/invalid/unused-index-signature-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/_requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/alias-input.svelte
================================================
{test}
svelte/no-unused-props does not always respect aliases
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/any-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/assignment-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/basic-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/bindable-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/builtin-types-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/component-props-any-input.svelte
================================================
{a}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/computed-member-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/computed-property-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/conditional-type-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/custom-config-combination-config.json
================================================
{
"options": [
{
"checkImportedTypes": true,
"ignoreTypePatterns": ["BaseProps"],
"ignorePropertyPatterns": ["/^(_|baz)/"]
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/custom-config-combination-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/default-value-input.svelte
================================================
{newTaskAttributes.attribute}
{newTaskAttributes.attribute2}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/extends-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/function-props-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/ignore-external-type-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/ignore-property-patterns-custom-config.json
================================================
{
"options": [
{
"ignorePropertyPatterns": ["/^[#$@_~]/"]
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/ignore-property-patterns-custom-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/ignore-property-patterns-default-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/ignored-type-patterns-custom-config.json
================================================
{
"options": [
{
"ignoreTypePatterns": ["/^Conditional/"]
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/ignored-type-patterns-custom-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/ignored-type-patterns-custom2-config.json
================================================
{
"options": [
{
"ignoreTypePatterns": ["/^Internal/"]
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/ignored-type-patterns-custom2-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/imported-type-config.json
================================================
{
"options": [
{
"checkImportedTypes": true
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/imported-type-default-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/imported-type-explicit-config.json
================================================
{
"options": [
{
"checkImportedTypes": false
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/imported-type-explicit-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/imported-type-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/index-signature-rest-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/intersection-type-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/js-basic-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/js-jsdoc-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/js-no-types-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/member-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/module-script-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/multiple-index-signatures-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/nested-props-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/nested-props2-input.svelte
================================================
Test
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/nested-props3-input.svelte
================================================
Test
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/nested-props4-input.svelte
================================================
Test
Test
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/nested-unused-config.json
================================================
{
"options": [
{
"allowUnusedNestedProperties": true
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/nested-unused-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/nested-unused2-config.json
================================================
{
"options": [
{
"allowUnusedNestedProperties": true
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/nested-unused2-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/new-expression-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/optional-props-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/record-type-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/recursive-type-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/rename-unused-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/rest-and-index-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/rest-with-index-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/shared-types.ts
================================================
export interface BaseProps {
name: string;
age: number;
}
export interface FooDTO {
foo: string;
bar: number;
baz: BazDTO;
}
interface BazDTO {
qux: string;
quux: number;
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/spread-nested1-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/spread-nested2-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/spread-nested3-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/spread-nested4-config.json
================================================
{
"options": [
{
"allowUnusedNestedProperties": true
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/spread-nested4-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/spread-nested5-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/spread-root1-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/spread-root2-config.json
================================================
{
"options": [
{
"allowUnusedNestedProperties": true
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/spread-root2-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/spread-root3-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/template-usage-input.svelte
================================================
{props.title}
{props.description}
{#each props.items as item}
{item}
{/each}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/ts-basic-input.svelte
================================================
{myObjectProp.value} {myObjectProp.value2}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/typed-props-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/union-type-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-props/valid/used-index-signature-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/html-comment-errors.yaml
================================================
- message: svelte-ignore comment is used, but not warned
line: 1
column: 20
suggestions: null
- message: svelte-ignore comment is used, but not warned
line: 1
column: 35
suggestions: null
- message: svelte-ignore comment is used, but not warned
line: 4
column: 35
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/html-comment-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/html-comment-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/html-comment-svelte4-errors.yaml
================================================
- message: svelte-ignore comment is used, but not warned
line: 1
column: 20
suggestions: null
- message: svelte-ignore comment is used, but not warned
line: 1
column: 35
suggestions: null
- message: svelte-ignore comment is used, but not warned
line: 4
column: 35
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/html-comment-svelte4-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/invalid-svelte-ignore01-errors.yaml
================================================
- message: svelte-ignore comment is used, but not warned
line: 4
column: 22
suggestions: null
- message: svelte-ignore comment is used, but not warned
line: 4
column: 56
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/invalid-svelte-ignore01-input.svelte
================================================
{#if true}
A
{:else}
Click
{/if}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/invalid-svelte-ignore01-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/invalid-svelte-ignore01-svelte4-errors.yaml
================================================
- message: svelte-ignore comment is used, but not warned
line: 4
column: 22
suggestions: null
- message: svelte-ignore comment is used, but not warned
line: 4
column: 56
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/invalid-svelte-ignore01-svelte4-input.svelte
================================================
{#if true}
A
{:else}
Click
{/if}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/invalid-svelte-ignore02-errors.yaml
================================================
- message: svelte-ignore comment is used, but not warned
line: 4
column: 22
suggestions: null
- message: svelte-ignore comment is used, but not warned
line: 4
column: 56
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/invalid-svelte-ignore02-input.svelte
================================================
{#each [] as e}
A
{:else}
Click
{/each}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/invalid-svelte-ignore02-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/invalid-svelte-ignore02-svelte4-errors.yaml
================================================
- message: svelte-ignore comment is used, but not warned
line: 4
column: 22
suggestions: null
- message: svelte-ignore comment is used, but not warned
line: 4
column: 56
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/invalid-svelte-ignore02-svelte4-input.svelte
================================================
{#each [] as e}
A
{:else}
Click
{/each}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/invalid-svelte-ignore03-errors.yaml
================================================
- message: svelte-ignore comment is used, but not warned
line: 3
column: 22
suggestions: null
- message: svelte-ignore comment is used, but not warned
line: 3
column: 56
suggestions: null
- message: svelte-ignore comment is used, but not warned
line: 7
column: 22
suggestions: null
- message: svelte-ignore comment is used, but not warned
line: 7
column: 56
suggestions: null
- message: svelte-ignore comment is used, but not warned
line: 15
column: 22
suggestions: null
- message: svelte-ignore comment is used, but not warned
line: 15
column: 56
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/invalid-svelte-ignore03-input.svelte
================================================
{#await Promise.resolve(42)}
{:then name}
Click
{:catch name}
Click
{/await}
{#await Promise.resolve(42)}
{:then name}
Click
{/await}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/invalid-svelte-ignore03-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/invalid-svelte-ignore03-svelte4-errors.yaml
================================================
- message: svelte-ignore comment is used, but not warned
line: 3
column: 22
suggestions: null
- message: svelte-ignore comment is used, but not warned
line: 3
column: 56
suggestions: null
- message: svelte-ignore comment is used, but not warned
line: 7
column: 22
suggestions: null
- message: svelte-ignore comment is used, but not warned
line: 7
column: 56
suggestions: null
- message: svelte-ignore comment is used, but not warned
line: 15
column: 22
suggestions: null
- message: svelte-ignore comment is used, but not warned
line: 15
column: 56
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/invalid-svelte-ignore03-svelte4-input.svelte
================================================
{#await Promise.resolve(42)}
{:then name}
Click
{:catch name}
Click
{/await}
{#await Promise.resolve(42)}
{:then name}
Click
{/await}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/missing-code-errors.yaml
================================================
- message: svelte-ignore comment must include the code
line: 1
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/missing-code-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/script-comment01-errors.yaml
================================================
- message: svelte-ignore comment is used, but not warned
line: 4
column: 19
suggestions: null
- message: svelte-ignore comment is used, but not warned
line: 7
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/script-comment01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/script-comment01-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/script-comment01-svelte4-errors.yaml
================================================
- message: svelte-ignore comment is used, but not warned
line: 3
column: 19
suggestions: null
- message: svelte-ignore comment is used, but not warned
line: 5
column: 19
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/script-comment01-svelte4-input.svelte
================================================
{used}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/script-comment02-svelte4-errors.yaml
================================================
- message: svelte-ignore comment is used, but not warned
line: 12
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/script-comment02-svelte4-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/script-comment02-svelte4-requirements.json
================================================
{
"svelte": "^3.0.0 || ^4.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/style-lang01-errors.yaml
================================================
- message: svelte-ignore comment is used, but not warned
line: 5
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/style-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/style-lang02-errors.yaml
================================================
- message: svelte-ignore comment is used, but not warned
line: 5
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/style-lang02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/style-lang03-errors.yaml
================================================
- message: svelte-ignore comment is used, but not warned
line: 5
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/style-lang03-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/style-lang04-errors.yaml
================================================
- message: svelte-ignore comment is used, but not warned
line: 5
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/style-lang04-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/style-lang05-errors.yaml
================================================
- message: svelte-ignore comment is used, but not warned
line: 5
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/style-lang05-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/style-lang06-errors.yaml
================================================
- message: svelte-ignore comment is used, but not warned
line: 5
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/style-lang06-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/transform-test-errors.yaml
================================================
- message: svelte-ignore comment is used, but not warned
line: 9
column: 20
suggestions: null
- message: svelte-ignore comment is used, but not warned
line: 9
column: 35
suggestions: null
- message: svelte-ignore comment is used, but not warned
line: 16
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/transform-test-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/transform-test-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/transform-test-svelte4-errors.yaml
================================================
- message: svelte-ignore comment is used, but not warned
line: 9
column: 20
suggestions: null
- message: svelte-ignore comment is used, but not warned
line: 9
column: 35
suggestions: null
- message: svelte-ignore comment is used, but not warned
line: 16
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/invalid/transform-test-svelte4-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/element-ignore01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/element-ignore01-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/element-ignore01-svelte4-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/has-error-svelte4-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/html-comment-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/html-comment-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/html-comment-svelte4-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/ignore-js-input.js
================================================
//
//
/* svelte-ignore a11y-autofocus a11y-missing-attribute */
//
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/kebab-ignore-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/reactive-component-input.svelte
================================================
{#if MyComponent}
{/if}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/reactive-component-requirements.json
================================================
{
"svelte": "^4"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/script-comment-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/script-comment-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/script-comment-svelte4-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/script-comment-svelte4-requirements.json
================================================
{
"svelte": "^3.0.0 || ^4.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/style-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/style-lang01-requirements.json
================================================
{
"FIXME": "It seems that unused selectors are not checked yet in Svelte v5.",
"svelte": "^4 || ^3"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/style-lang02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/style-lang02-requirements.json
================================================
{
"FIXME": "It seems that unused selectors are not checked yet in Svelte v5.",
"svelte": "^4 || ^3"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/style-lang03-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/style-lang03-requirements.json
================================================
{
"FIXME": "It seems that unused selectors are not checked yet in Svelte v5.",
"svelte": "^4 || ^3"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/style-lang04-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/style-lang04-requirements.json
================================================
{
"FIXME": "It seems that unused selectors are not checked yet in Svelte v5.",
"svelte": "^4 || ^3"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/style-lang05-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/style-lang05-requirements.json
================================================
{
"FIXME": "It seems that unused selectors are not checked yet in Svelte v5.",
"svelte": "^4 || ^3"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/style-lang06-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/style-lang06-requirements.json
================================================
{
"FIXME": "It seems that unused selectors are not checked yet in Svelte v5.",
"svelte": "^4 || ^3"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/style-lang07-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/svelte-ignore-comma-separated-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/svelte-ignore-comma-separated-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/svelte-ignore-note-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/svelte-ignore-note-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/svelte-ignore01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/svelte-ignore01-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/svelte-ignore01-svelte4-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/svelte-ignore02-input.svelte
================================================
TEXT
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/svelte-ignore02-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/svelte-ignore02-svelte4-input.svelte
================================================
TEXT
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/svelte-ignore03-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/svelte-ignore03-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/svelte-ignore03-svelte4-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/svelte-ignore04-input.svelte
================================================
{#if true}
A
{:else}
Click
{/if}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/svelte-ignore04-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/svelte-ignore04-svelte4-input.svelte
================================================
{#if true}
A
{:else}
Click
{/if}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/svelte-ignore05-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/svelte-ignore05-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/svelte-ignore05-svelte4-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/svelte-ignore06-input.svelte
================================================
{#each [] as e}
Click
{/each}
{#each [] as e}
A
{:else}
Click
{/each}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/svelte-ignore06-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/svelte-ignore06-svelte4-input.svelte
================================================
{#each [] as e}
Click
{/each}
{#each [] as e}
A
{:else}
Click
{/each}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/svelte-ignore07-input.svelte
================================================
{#await Promise.resolve(42)}
Click
{/await}
{#await Promise.resolve(42)}
Click
{:then name}
Click
{:catch name}
Click
{/await}
{#await Promise.resolve(42)}
Click
{:then name}
Click
{/await}
{#await Promise.resolve(42) then n}
Click
{/await}
{#await Promise.resolve(42) catch n}
Click
{/await}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/svelte-ignore07-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/svelte-ignore07-svelte4-input.svelte
================================================
{#await Promise.resolve(42)}
Click
{/await}
{#await Promise.resolve(42)}
Click
{:then name}
Click
{:catch name}
Click
{/await}
{#await Promise.resolve(42)}
Click
{:then name}
Click
{/await}
{#await Promise.resolve(42) then n}
Click
{/await}
{#await Promise.resolve(42) catch n}
Click
{/await}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/ts-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/ts-lang01-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-unused-svelte-ignore/valid/ts-lang01-svelte4-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-children-snippet/invalid/_requirements.json
================================================
{
"svelte": ">=5.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-children-snippet/invalid/children-snippet01-errors.yaml
================================================
- message: Found an unnecessary children snippet.
line: 2
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-children-snippet/invalid/children-snippet01-input.svelte
================================================
{#snippet children()}
Hello
{/snippet}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-children-snippet/valid/_requirements.json
================================================
{
"svelte": ">=5.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-children-snippet/valid/implicit-snippet01-input.svelte
================================================
Hello
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-children-snippet/valid/named-snippet01-input.svelte
================================================
{#snippet bar()}
Hello
{/snippet}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-children-snippet/valid/snippet-with-params01-input.svelte
================================================
{#snippet children(val)}
Hello {val}
{/snippet}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-children-snippet/valid/standalone-snippet01-input.svelte
================================================
{#snippet children()}
Hello
{/snippet}
{@render children()}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-mustaches/invalid/comments01-errors.yaml
================================================
- message: Unexpected mustache interpolation with a string literal value.
line: 2
column: 13
suggestions: null
- message: Unexpected mustache interpolation with a string literal value.
line: 2
column: 39
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-mustaches/invalid/comments01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-mustaches/invalid/comments01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-mustaches/invalid/escape-test01-errors.yaml
================================================
- message: Unexpected mustache interpolation with a string literal value.
line: 1
column: 1
suggestions: null
- message: Unexpected mustache interpolation with a string literal value.
line: 2
column: 1
suggestions: null
- message: Unexpected mustache interpolation with a string literal value.
line: 4
column: 17
suggestions: null
- message: Unexpected mustache interpolation with a string literal value.
line: 4
column: 24
suggestions: null
- message: Unexpected mustache interpolation with a string literal value.
line: 6
column: 1
suggestions: null
- message: Unexpected mustache interpolation with a string literal value.
line: 7
column: 1
suggestions: null
- message: Unexpected mustache interpolation with a string literal value.
line: 8
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-mustaches/invalid/escape-test01-input.svelte
================================================
{'\n'}
{'\r'}
{'\\\\'}
{'\\r'}
{'\\'}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-mustaches/invalid/escape-test01-output.svelte
================================================
{'\n'}
{'\r'}
\\
\r
\
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-mustaches/invalid/invalid-test01-errors.yaml
================================================
- message: Unexpected mustache interpolation with a string literal value.
line: 1
column: 1
suggestions: null
- message: Unexpected mustache interpolation with a string literal value.
line: 2
column: 1
suggestions: null
- message: Unexpected mustache interpolation with a string literal value.
line: 3
column: 1
suggestions: null
- message: Unexpected mustache interpolation with a string literal value.
line: 4
column: 1
suggestions: null
- message: Unexpected mustache interpolation with a string literal value.
line: 6
column: 17
suggestions: null
- message: Unexpected mustache interpolation with a string literal value.
line: 6
column: 28
suggestions: null
- message: Unexpected mustache interpolation with a string literal value.
line: 6
column: 39
suggestions: null
- message: Unexpected mustache interpolation with a string literal value.
line: 6
column: 51
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-mustaches/invalid/invalid-test01-input.svelte
================================================
{'space '}
{' space'}
{' space '}
{' '}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-mustaches/invalid/invalid-test01-output.svelte
================================================
{'space '}
{' space'}
{' space '}
{' '}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-mustaches/invalid/quote-test01-errors.yaml
================================================
- message: Unexpected mustache interpolation with a string literal value.
line: 1
column: 16
suggestions: null
- message: Unexpected mustache interpolation with a string literal value.
line: 2
column: 16
suggestions: null
- message: Unexpected mustache interpolation with a string literal value.
line: 3
column: 18
suggestions: null
- message: Unexpected mustache interpolation with a string literal value.
line: 5
column: 17
suggestions: null
- message: Unexpected mustache interpolation with a string literal value.
line: 6
column: 16
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-mustaches/invalid/quote-test01-input.svelte
================================================
"'} />
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-mustaches/invalid/quote-test01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-mustaches/invalid/quote-test02-errors.yaml
================================================
- message: Unexpected mustache interpolation with a string literal value.
line: 2
column: 17
suggestions: null
- message: Unexpected mustache interpolation with a string literal value.
line: 4
column: 17
suggestions: null
- message: Unexpected mustache interpolation with a string literal value.
line: 6
column: 17
suggestions: null
- message: Unexpected mustache interpolation with a string literal value.
line: 8
column: 17
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-mustaches/invalid/quote-test02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-mustaches/invalid/quote-test02-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-mustaches/invalid/spaces-test01-errors.yaml
================================================
- message: Unexpected mustache interpolation with a string literal value.
line: 1
column: 1
suggestions: null
- message: Unexpected mustache interpolation with a string literal value.
line: 2
column: 1
suggestions: null
- message: Unexpected mustache interpolation with a string literal value.
line: 4
column: 17
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-mustaches/invalid/spaces-test01-input.svelte
================================================
{'foo'}
{`foo`}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-mustaches/invalid/spaces-test01-output.svelte
================================================
foo
foo
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-mustaches/invalid/tag-test01-errors.yaml
================================================
- message: Unexpected mustache interpolation with a string literal value.
line: 1
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-mustaches/invalid/tag-test01-input.svelte
================================================
{'
'}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-mustaches/invalid/tag-test01-output.svelte
================================================
<br>
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-mustaches/valid/ignore-includes-comment/_config.json
================================================
{
"options": [{ "ignoreIncludesComment": true }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-mustaches/valid/ignore-includes-comment/comments01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-mustaches/valid/ignore-string-escape/_config.json
================================================
{
"options": [{ "ignoreStringEscape": true }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-mustaches/valid/ignore-string-escape/escape-test01-input.svelte
================================================
{'\n'}
{'\r'}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-mustaches/valid/valid-test01-input.svelte
================================================
foo 'foo'
{foo}
{'foo' || 'bar'}
{1}
{null}
{`foo${foo}`}
{'{foo'}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/no-useless-mustaches/valid/valid-test02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/invalid/_config.json
================================================
{
"options": [{ "prefer": "always" }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/invalid/empty/test01-errors.yaml
================================================
- message: Unexpected class using the ternary operator.
line: 6
column: 15
suggestions: null
- message: Unexpected class using the ternary operator.
line: 7
column: 18
suggestions: null
- message: Unexpected class using the ternary operator.
line: 8
column: 17
suggestions: null
- message: Unexpected class using the ternary operator.
line: 10
column: 20
suggestions: null
- message: Unexpected class using the ternary operator.
line: 11
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/invalid/empty/test01-input.svelte
================================================
foo
foo
foo
foo
foo
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/invalid/empty/test01-output.svelte
================================================
foo
foo
foo
1}>foo
foo
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/invalid/simple-test01-errors.yaml
================================================
- message: Unexpected class using the ternary operator.
line: 5
column: 15
suggestions: null
- message: Unexpected class using the ternary operator.
line: 7
column: 15
suggestions: null
- message: Unexpected class using the ternary operator.
line: 9
column: 15
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/invalid/simple-test01-input.svelte
================================================
(current = 'foo')}>foo
(current = 'bar')}>bar
(current = 'baz')}>baz
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/invalid/simple-test01-output.svelte
================================================
(current = 'foo')}>foo
(current = 'bar')}>bar
(current = 'baz')}>baz
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/invalid/svelte-element01-errors.yaml
================================================
- message: Unexpected class using the ternary operator.
line: 6
column: 41
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/invalid/svelte-element01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/invalid/svelte-element01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/invalid/test01-errors.yaml
================================================
- message: Unexpected class using the ternary operator.
line: 5
column: 15
suggestions: null
- message: Unexpected class using the ternary operator.
line: 6
column: 18
suggestions: null
- message: Unexpected class using the ternary operator.
line: 7
column: 17
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/invalid/test01-input.svelte
================================================
foo
foo
foo
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/invalid/test01-output.svelte
================================================
foo
foo
foo
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/invalid/test02-errors.yaml
================================================
- message: Unexpected class using the ternary operator.
line: 8
column: 44
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/invalid/test02-input.svelte
================================================
foo
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/invalid/test02-output.svelte
================================================
foo
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/invalid/test03-errors.yaml
================================================
- message: Unexpected class using the ternary operator.
line: 7
column: 15
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/invalid/test03-input.svelte
================================================
foo
foo
foo
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/invalid/test03-output.svelte
================================================
foo
foo
foo
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/invalid/transform-test01-errors.yaml
================================================
- message: Unexpected class using the ternary operator.
line: 8
column: 15
suggestions: null
- message: Unexpected class using the ternary operator.
line: 9
column: 15
suggestions: null
- message: Unexpected class using the ternary operator.
line: 10
column: 15
suggestions: null
- message: Unexpected class using the ternary operator.
line: 11
column: 15
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/invalid/transform-test01-input.svelte
================================================
foo
foo
foo
foo
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/invalid/transform-test01-output.svelte
================================================
foo
foo
foo
foo
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/invalid/transform-test02-errors.yaml
================================================
- message: Unexpected class using the ternary operator.
line: 8
column: 15
suggestions: null
- message: Unexpected class using the ternary operator.
line: 9
column: 15
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/invalid/transform-test02-input.svelte
================================================
foo
foo
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/invalid/transform-test02-output.svelte
================================================
foo
foo
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/invalid/trim-test01-errors.yaml
================================================
- message: Unexpected class using the ternary operator.
line: 6
column: 16
suggestions: null
- message: Unexpected class using the ternary operator.
line: 6
column: 41
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/invalid/trim-test01-input.svelte
================================================
foo
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/invalid/trim-test01-output.svelte
================================================
foo
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/invalid/trim-test01.2-errors.yaml
================================================
- message: Unexpected class using the ternary operator.
line: 6
column: 15
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/invalid/trim-test01.2-input.svelte
================================================
foo
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/invalid/trim-test01.2-output.svelte
================================================
foo
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/valid/_config.json
================================================
{
"options": [{ "prefer": "always" }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/valid/empty/_config.json
================================================
{
"options": [{ "prefer": "empty" }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/valid/empty/ignore-test05-input.svelte
================================================
foo
foo
foo
foo
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/valid/ignore-component01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/valid/ignore-svelte-self01-input.svelte
================================================
{#if foo > 0.5}
{/if}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/valid/ignore-test01-input.svelte
================================================
foo
foo
foo
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/valid/ignore-test02-input.svelte
================================================
foo
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/valid/ignore-test03-input.svelte
================================================
foo
foo
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/valid/ignore-test04-input.svelte
================================================
foo
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-class-directive/valid/simple-test01-input.svelte
================================================
(current = 'foo')}>foo
(current = 'bar')}>bar
(current = 'baz')}>baz
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-const/invalid/option1/_config.json
================================================
{
"options": [{ "excludedRunes": [] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-const/invalid/option1/test01-errors.yaml
================================================
- message: "'prop1' is never reassigned. Use 'const' instead."
line: 2
column: 8
suggestions: null
- message: "'prop2' is never reassigned. Use 'const' instead."
line: 2
column: 15
suggestions: null
- message: "'zero' is never reassigned. Use 'const' instead."
line: 3
column: 6
suggestions: null
- message: "'derived' is never reassigned. Use 'const' instead."
line: 4
column: 6
suggestions: null
- message: "'derivedBy' is never reassigned. Use 'const' instead."
line: 5
column: 6
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-const/invalid/option1/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-const/invalid/option1/test01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-const/invalid/option2/_config.json
================================================
{
"options": [{ "excludedRunes": ["$state"] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-const/invalid/option2/test01-errors.yaml
================================================
- message: "'prop1' is never reassigned. Use 'const' instead."
line: 2
column: 8
suggestions: null
- message: "'prop2' is never reassigned. Use 'const' instead."
line: 2
column: 15
suggestions: null
- message: "'derived' is never reassigned. Use 'const' instead."
line: 4
column: 6
suggestions: null
- message: "'derivedBy' is never reassigned. Use 'const' instead."
line: 5
column: 6
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-const/invalid/option2/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-const/invalid/option2/test01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-const/invalid/test01-errors.yaml
================================================
- message: "'zero' is never reassigned. Use 'const' instead."
line: 3
column: 6
suggestions: null
- message: "'state' is never reassigned. Use 'const' instead."
line: 4
column: 6
suggestions: null
- message: "'raw' is never reassigned. Use 'const' instead."
line: 5
column: 6
suggestions: null
- message: "'doubled' is never reassigned. Use 'const' instead."
line: 6
column: 6
suggestions: null
- message: "'calculated' is never reassigned. Use 'const' instead."
line: 8
column: 6
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-const/invalid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-const/invalid/test01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-const/valid/1238/_config.json
================================================
{
"options": [
{
"destructuring": "all",
"additionalProperties": true
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-const/valid/1238/input.svelte
================================================
123
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-const/valid/option1/_config.json
================================================
{
"options": [{ "excludedRunes": [] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-const/valid/option1/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-const/valid/option2/_config.json
================================================
{
"options": [{ "excludedRunes": ["$props", "$derived", "$state"] }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-const/valid/option2/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-const/valid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-destructured-store-props/invalid/fixer-test01-errors.yaml
================================================
- message: Destructure $foo from $store for better change tracking & fewer redraws
line: 5
column: 8
suggestions:
- desc: "Using destructuring like $: ({ $foo } = $store); will run faster"
messageId: fixUseDestructuring
output: |
$foo: {foo}
bar: {$store.bar}
baz: {$store.baz}
var: {$store.var}
null: {$store.null}
undefined: {$store.undefined}
- message: Destructure bar from $store for better change tracking & fewer redraws
line: 6
column: 7
suggestions:
- desc: "Using destructuring like $: ({ bar } = $store); will run faster"
messageId: fixUseDestructuring
output: |
$foo: {$store.$foo}
bar: {bar}
baz: {$store.baz}
var: {$store.var}
null: {$store.null}
undefined: {$store.undefined}
- message: Destructure baz from $store for better change tracking & fewer redraws
line: 7
column: 7
suggestions:
- desc: "Using destructuring like $: ({ baz } = $store); will run faster"
messageId: fixUseDestructuring
output: |
$foo: {$store.$foo}
bar: {$store.bar}
baz: {baz}
var: {$store.var}
null: {$store.null}
undefined: {$store.undefined}
- message: Destructure var from $store for better change tracking & fewer redraws
line: 8
column: 7
suggestions:
- desc: "Using destructuring like $: ({ var } = $store); will run faster"
messageId: fixUseDestructuring
output: |
$foo: {$store.$foo}
bar: {$store.bar}
baz: {$store.baz}
var: {var1}
null: {$store.null}
undefined: {$store.undefined}
- message: Destructure null from $store for better change tracking & fewer redraws
line: 9
column: 8
suggestions:
- desc: "Using destructuring like $: ({ null } = $store); will run faster"
messageId: fixUseDestructuring
output: |
$foo: {$store.$foo}
bar: {$store.bar}
baz: {$store.baz}
var: {$store.var}
null: {null1}
undefined: {$store.undefined}
- message: Destructure undefined from $store for better change tracking & fewer redraws
line: 10
column: 13
suggestions:
- desc: "Using destructuring like $: ({ undefined } = $store); will run faster"
messageId: fixUseDestructuring
output: |
$foo: {$store.$foo}
bar: {$store.bar}
baz: {$store.baz}
var: {$store.var}
null: {$store.null}
undefined: {undefined1}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-destructured-store-props/invalid/fixer-test01-input.svelte
================================================
$foo: {$store.$foo}
bar: {$store.bar}
baz: {$store.baz}
var: {$store.var}
null: {$store.null}
undefined: {$store.undefined}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-destructured-store-props/invalid/member01-errors.yaml
================================================
- message: Destructure foo from $store for better change tracking & fewer redraws
line: 5
column: 11
suggestions:
- desc: "Using destructuring like $: ({ foo } = $store); will run faster"
messageId: fixUseDestructuring
output: |
foo.bar: {foo.bar}
foo.baz: {$store.foo.baz}
- message: Destructure foo from $store for better change tracking & fewer redraws
line: 6
column: 11
suggestions:
- desc: "Using destructuring like $: ({ foo } = $store); will run faster"
messageId: fixUseDestructuring
output: |
foo.bar: {$store.foo.bar}
foo.baz: {foo.baz}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-destructured-store-props/invalid/member01-input.svelte
================================================
foo.bar: {$store.foo.bar}
foo.baz: {$store.foo.baz}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-destructured-store-props/invalid/member02-errors.yaml
================================================
- message: Destructure foo from $store for better change tracking & fewer redraws
line: 8
column: 11
suggestions:
- desc: Using the predefined reactive variable foo
messageId: fixUseVariable
output: |
foo.bar: {foo.bar}
foo.baz: {foo.baz}
bar.foo: {b.foo}
bar.baz: {$store.bar.baz}
baz.foo: {bbb.foo}
baz.bar: {$store.baz.bar}
- desc: "Using destructuring like $: ({ foo } = $store); will run faster"
messageId: fixUseDestructuring
output: |
foo.bar: {foo.bar}
foo.baz: {foo1.baz}
bar.foo: {b.foo}
bar.baz: {$store.bar.baz}
baz.foo: {bbb.foo}
baz.bar: {$store.baz.bar}
- message: Destructure bar from $store for better change tracking & fewer redraws
line: 11
column: 11
suggestions:
- desc: Using the predefined reactive variable b
messageId: fixUseVariable
output: |
foo.bar: {foo.bar}
foo.baz: {$store.foo.baz}
bar.foo: {b.foo}
bar.baz: {b.baz}
baz.foo: {bbb.foo}
baz.bar: {$store.baz.bar}
- desc: "Using destructuring like $: ({ bar } = $store); will run faster"
messageId: fixUseDestructuring
output: |
foo.bar: {foo.bar}
foo.baz: {$store.foo.baz}
bar.foo: {b.foo}
bar.baz: {bar.baz}
baz.foo: {bbb.foo}
baz.bar: {$store.baz.bar}
- message: Destructure baz from $store for better change tracking & fewer redraws
line: 14
column: 11
suggestions:
- desc: Using the predefined reactive variable bbb
messageId: fixUseVariable
output: |
foo.bar: {foo.bar}
foo.baz: {$store.foo.baz}
bar.foo: {b.foo}
bar.baz: {$store.bar.baz}
baz.foo: {bbb.foo}
baz.bar: {bbb.bar}
- desc: "Using destructuring like $: ({ baz } = $store); will run faster"
messageId: fixUseDestructuring
output: |
foo.bar: {foo.bar}
foo.baz: {$store.foo.baz}
bar.foo: {b.foo}
bar.baz: {$store.bar.baz}
baz.foo: {bbb.foo}
baz.bar: {baz.bar}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-destructured-store-props/invalid/member02-input.svelte
================================================
foo.bar: {foo.bar}
foo.baz: {$store.foo.baz}
bar.foo: {b.foo}
bar.baz: {$store.bar.baz}
baz.foo: {bbb.foo}
baz.bar: {$store.baz.bar}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-destructured-store-props/invalid/member03-errors.yaml
================================================
- message: Destructure foo from $store for better change tracking & fewer redraws
line: 9
column: 11
suggestions:
- desc: "Using destructuring like $: ({ foo } = $store); will run faster"
messageId: fixUseDestructuring
output: |
foo.bar: {foo.bar}
foo.baz: {foo1.baz}
bar.foo: {b.foo}
bar.baz: {$store.bar.baz}
baz.foo: {bbb.foo}
baz.bar: {$store.baz.bar}
- message: Destructure bar from $store for better change tracking & fewer redraws
line: 12
column: 11
suggestions:
- desc: "Using destructuring like $: ({ bar } = $store); will run faster"
messageId: fixUseDestructuring
output: |
foo.bar: {foo.bar}
foo.baz: {$store.foo.baz}
bar.foo: {b.foo}
bar.baz: {bar.baz}
baz.foo: {bbb.foo}
baz.bar: {$store.baz.bar}
- message: Destructure baz from $store for better change tracking & fewer redraws
line: 15
column: 11
suggestions:
- desc: "Using destructuring like $: ({ baz } = $store); will run faster"
messageId: fixUseDestructuring
output: |
foo.bar: {foo.bar}
foo.baz: {$store.foo.baz}
bar.foo: {b.foo}
bar.baz: {$store.bar.baz}
baz.foo: {bbb.foo}
baz.bar: {baz.bar}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-destructured-store-props/invalid/member03-input.svelte
================================================
foo.bar: {foo.bar}
foo.baz: {$store.foo.baz}
bar.foo: {b.foo}
bar.baz: {$store.bar.baz}
baz.foo: {bbb.foo}
baz.bar: {$store.baz.bar}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-destructured-store-props/invalid/module-errors.yaml
================================================
- message: Destructure bar from $foo for better change tracking & fewer redraws
line: 4
column: 2
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-destructured-store-props/invalid/module-input.svelte
================================================
{$foo.bar}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-destructured-store-props/invalid/runes-with-store01-errors.yaml
================================================
- message: Destructure foo from $store for better change tracking & fewer redraws
line: 10
column: 18
suggestions:
- desc: 'Using destructuring like $: ({ foo } = $store); will run faster'
messageId: fixUseDestructuring
output: |
Count: {count}
Doubled: {doubled}
Store value: {foo}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-destructured-store-props/invalid/runes-with-store01-input.svelte
================================================
Count: {count}
Doubled: {doubled}
Store value: {$store.foo}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-destructured-store-props/invalid/runes-with-store01-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-destructured-store-props/invalid/test01-errors.yaml
================================================
- message: Destructure bar from $foo for better change tracking & fewer redraws
line: 4
column: 2
suggestions:
- desc: "Using destructuring like $: ({ bar } = $foo); will run faster"
messageId: fixUseDestructuring
output: |
{bar}
{$foo[baz]}
{$foo['qux']}
- message: Destructure baz from $foo for better change tracking & fewer redraws
line: 6
column: 2
suggestions: null
- message: Destructure 'qux' from $foo for better change tracking & fewer redraws
line: 9
column: 2
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-destructured-store-props/invalid/test01-input.svelte
================================================
{$foo.bar}
{$foo[baz]}
{$foo['qux']}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-destructured-store-props/invalid/test02-errors.yaml
================================================
- message: Destructure bar from $foo for better change tracking & fewer redraws
line: 1
column: 2
suggestions: null
- message: Destructure bar from $foo for better change tracking & fewer redraws
line: 3
column: 2
suggestions: null
- message: Destructure 'bar' from $foo for better change tracking & fewer redraws
line: 6
column: 2
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-destructured-store-props/invalid/test02-input.svelte
================================================
{$foo.bar}
{$foo[bar]}
{$foo['bar']}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-destructured-store-props/invalid/test03-errors.yaml
================================================
- message: Destructure baz from $store for better change tracking & fewer redraws
line: 18
column: 8
suggestions:
- desc: "Using destructuring like $: ({ baz } = $store); will run faster"
messageId: fixUseDestructuring
output: |
foo: {`${foo} ${Date.now()}`}
bar: {`${bar} ${Date.now()}`}
baz: {baz}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-destructured-store-props/invalid/test03-input.svelte
================================================
foo: {`${foo} ${Date.now()}`}
bar: {`${bar} ${Date.now()}`}
baz: {$store.baz}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-destructured-store-props/valid/builtin-vars01-input.svelte
================================================
{#if $$slots.description}
{/if}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-destructured-store-props/valid/builtin-vars02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-destructured-store-props/valid/runes01-input.svelte.js
================================================
export class Test {
a = $state(0);
b = $derived.by(() => this.a * 2);
output() {
console.log(this.a, this.b);
}
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-destructured-store-props/valid/runes01-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-destructured-store-props/valid/script-test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-destructured-store-props/valid/test01-input.svelte
================================================
{foo$.bar}
{f$oo.bar}
{#each list as baz}
{$foo[`bar${baz}`]}
{/each}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/invalid/complex-test01-errors.yaml
================================================
- message: Can use style directives instead.
line: 1
column: 13
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/invalid/complex-test01-input.svelte
================================================
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/invalid/complex-test01-output.svelte
================================================
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/invalid/svelte-element01-errors.yaml
================================================
- message: Can use style directives instead.
line: 5
column: 42
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/invalid/svelte-element01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/invalid/svelte-element01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/invalid/ternary01-errors.yaml
================================================
- message: Can use style directives instead.
line: 3
column: 5
suggestions: null
- message: Can use style directives instead.
line: 4
column: 6
suggestions: null
- message: Can use style directives instead.
line: 5
column: 6
suggestions: null
- message: Can use style directives instead.
line: 9
column: 13
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/invalid/ternary01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/invalid/ternary01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/invalid/ternary02-errors.yaml
================================================
- message: Can use style directives instead.
line: 3
column: 5
suggestions: null
- message: Can use style directives instead.
line: 4
column: 6
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/invalid/ternary02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/invalid/ternary02-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/invalid/ternary03-errors.yaml
================================================
- message: Can use style directives instead.
line: 3
column: 6
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/invalid/ternary03-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/invalid/ternary03-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/invalid/ternary04-errors.yaml
================================================
- message: Can use style directives instead.
line: 1
column: 13
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/invalid/ternary04-input.svelte
================================================
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/invalid/ternary04-output.svelte
================================================
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/invalid/test01-errors.yaml
================================================
- message: Can use style directives instead.
line: 10
column: 13
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/invalid/test01-input.svelte
================================================
...
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/invalid/test01-output.svelte
================================================
...
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/invalid/test02-errors.yaml
================================================
- message: Can use style directives instead.
line: 1
column: 13
suggestions: null
- message: Can use style directives instead.
line: 1
column: 27
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/invalid/test02-input.svelte
================================================
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/invalid/test02-output.svelte
================================================
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/invalid/test03-errors.yaml
================================================
- message: Can use style directives instead.
line: 1
column: 13
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/invalid/test03-input.svelte
================================================
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/invalid/test03-output.svelte
================================================
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/invalid/test04-errors.yaml
================================================
- message: Can use style directives instead.
line: 1
column: 13
suggestions: null
- message: Can use style directives instead.
line: 1
column: 28
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/invalid/test04-input.svelte
================================================
foo
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/invalid/test04-output.svelte
================================================
foo
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/valid/empty01-input.svelte
================================================
...
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/valid/ignore-component01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/valid/ignore-svelte-self01-input.svelte
================================================
{#if foo > 0.5}
{/if}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/valid/invalid-style01-input.svelte
================================================
...
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-style-directive/valid/test01-input.svelte
================================================
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/_requirements.json
================================================
{
"svelte": ">=5.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/_requirements.json
================================================
{
"svelte": ">=5.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setDate01-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setDate01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setFullYear01-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setFullYear01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setFullYear02-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setFullYear02-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setFullYear03-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setFullYear03-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setHours01-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setHours01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setHours02-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setHours02-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setHours03-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setHours03-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setHours04-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setHours04-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setMilliseconds01-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setMilliseconds01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setMinutes01-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setMinutes01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setMinutes02-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setMinutes02-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setMinutes03-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setMinutes03-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setMonth01-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setMonth01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setMonth02-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setMonth02-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setSeconds01-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setSeconds01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setSeconds02-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setSeconds02-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setTime01-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setTime01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setUTCDate01-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setUTCDate01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setUTCFullYear01-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setUTCFullYear01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setUTCFullYear02-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setUTCFullYear02-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setUTCFullYear03-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setUTCFullYear03-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setUTCHours01-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setUTCHours01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setUTCHours02-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setUTCHours02-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setUTCHours03-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setUTCHours03-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setUTCHours04-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setUTCHours04-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setUTCMilliseconds01-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setUTCMilliseconds01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setUTCMinutes01-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setUTCMinutes01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setUTCMinutes02-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setUTCMinutes02-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setUTCMinutes03-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setUTCMinutes03-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setUTCMonth01-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setUTCMonth01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setUTCMonth02-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setUTCMonth02-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setUTCSeconds01-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setUTCSeconds01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setUTCSeconds02-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setUTCSeconds02-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setYear01-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/date/setYear01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/exports01-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 1
column: 19
suggestions: null
- message: Found a mutable instance of the built-in Map class. Use SvelteMap instead.
line: 2
column: 19
suggestions: null
- message: Found a mutable instance of the built-in Set class. Use SvelteSet instead.
line: 3
column: 19
suggestions: null
- message: Found a mutable instance of the built-in URLSearchParams class. Use
SvelteURLSearchParams instead.
line: 4
column: 19
suggestions: null
- message: Found a mutable instance of the built-in URL class. Use SvelteURL instead.
line: 5
column: 19
suggestions: null
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 6
column: 19
suggestions: null
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 10
column: 26
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/exports01-input.svelte.js
================================================
const variable1 = new Date(8.64e15);
const variable2 = new Map([[1, "one"], [2, "two"]]);
const variable3 = new Set([1, 2, 1, 3, 3]);
const variable4 = new URLSearchParams("foo=1&bar=2");
const variable5 = new URL("https://svelte.dev/");
const variable6 = new Date(8.64e15);
export {variable1, variable2, variable3, variable4, variable5, variable6 as var};
export const variable7 = new Date(8.64e15);
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/exports02-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 1
column: 19
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/exports02-input.svelte.js
================================================
const variable1 = new Date(8.64e15);
export default variable1;
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/exports03-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 1
column: 16
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/exports03-input.svelte.js
================================================
export default new Date(8.64e15);
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/exports04-errors.yaml
================================================
- message: Found a mutable instance of the built-in Date class. Use SvelteDate instead.
line: 1
column: 19
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/exports04-input.svelte.js
================================================
const variable1 = new Date(8.64e15);
export { variable1 as default };
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/map/_requirements.json
================================================
{
"svelte": ">=5.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/map/clear01-errors.yaml
================================================
- message: Found a mutable instance of the built-in Map class. Use SvelteMap instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/map/clear01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/map/delete01-errors.yaml
================================================
- message: Found a mutable instance of the built-in Map class. Use SvelteMap instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/map/delete01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/map/set01-errors.yaml
================================================
- message: Found a mutable instance of the built-in Map class. Use SvelteMap instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/map/set01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/set/_requirements.json
================================================
{
"svelte": ">=5.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/set/add01-errors.yaml
================================================
- message: Found a mutable instance of the built-in Set class. Use SvelteSet instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/set/add01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/set/clear01-errors.yaml
================================================
- message: Found a mutable instance of the built-in Set class. Use SvelteSet instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/set/clear01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/set/delete01-errors.yaml
================================================
- message: Found a mutable instance of the built-in Set class. Use SvelteSet instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/set/delete01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/url/_requirements.json
================================================
{
"svelte": ">=5.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/url/hash01-errors.yaml
================================================
- message: Found a mutable instance of the built-in URL class. Use SvelteURL instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/url/hash01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/url/host01-errors.yaml
================================================
- message: Found a mutable instance of the built-in URL class. Use SvelteURL instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/url/host01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/url/hostname01-errors.yaml
================================================
- message: Found a mutable instance of the built-in URL class. Use SvelteURL instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/url/hostname01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/url/href01-errors.yaml
================================================
- message: Found a mutable instance of the built-in URL class. Use SvelteURL instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/url/href01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/url/password01-errors.yaml
================================================
- message: Found a mutable instance of the built-in URL class. Use SvelteURL instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/url/password01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/url/pathname01-errors.yaml
================================================
- message: Found a mutable instance of the built-in URL class. Use SvelteURL instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/url/pathname01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/url/port01-errors.yaml
================================================
- message: Found a mutable instance of the built-in URL class. Use SvelteURL instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/url/port01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/url/protocol01-errors.yaml
================================================
- message: Found a mutable instance of the built-in URL class. Use SvelteURL instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/url/protocol01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/url/search01-errors.yaml
================================================
- message: Found a mutable instance of the built-in URL class. Use SvelteURL instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/url/search01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/url/username01-errors.yaml
================================================
- message: Found a mutable instance of the built-in URL class. Use SvelteURL instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/url/username01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/url-search-params/_requirements.json
================================================
{
"svelte": ">=5.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/url-search-params/append01-errors.yaml
================================================
- message: Found a mutable instance of the built-in URLSearchParams class. Use
SvelteURLSearchParams instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/url-search-params/append01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/url-search-params/delete01-errors.yaml
================================================
- message: Found a mutable instance of the built-in URLSearchParams class. Use
SvelteURLSearchParams instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/url-search-params/delete01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/url-search-params/delete02-errors.yaml
================================================
- message: Found a mutable instance of the built-in URLSearchParams class. Use
SvelteURLSearchParams instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/url-search-params/delete02-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/url-search-params/set01-errors.yaml
================================================
- message: Found a mutable instance of the built-in URLSearchParams class. Use
SvelteURLSearchParams instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/url-search-params/set01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/url-search-params/sort01-errors.yaml
================================================
- message: Found a mutable instance of the built-in URLSearchParams class. Use
SvelteURLSearchParams instead.
line: 2
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/invalid/url-search-params/sort01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/valid/_requirements.json
================================================
{
"svelte": ">=5.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/valid/aliased-date01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/valid/aliased-map01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/valid/aliased-set01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/valid/aliased-url-search-params01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/valid/aliased-url01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/valid/date01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/valid/map01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/valid/set01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/valid/svelte-date01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/valid/svelte-map01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/valid/svelte-set01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/valid/svelte-url-search-params01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/valid/svelte-url01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/valid/unrelated-date01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/valid/unrelated-map01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/valid/unrelated-set01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/valid/unrelated-url-search-params01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/valid/unrelated-url01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/valid/url-search-params01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-svelte-reactivity/valid/url01-input.svelte
================================================
{variable}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-writable-derived/invalid/_requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-writable-derived/invalid/basic1-errors.yaml
================================================
- message: Prefer using writable $derived instead of $state and $effect
line: 4
column: 6
suggestions:
- desc: Rewrite $state and $effect to $derived
messageId: suggestRewrite
output: |
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-writable-derived/invalid/basic1-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-writable-derived/invalid/basic2-errors.yaml
================================================
- message: Prefer using writable $derived instead of $state and $effect
line: 4
column: 6
suggestions:
- desc: Rewrite $state and $effect to $derived
messageId: suggestRewrite
output: |
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-writable-derived/invalid/basic2-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-writable-derived/invalid/effect-pre1-errors.yaml
================================================
- message: Prefer using writable $derived instead of $state and $effect
line: 4
column: 6
suggestions:
- desc: Rewrite $state and $effect to $derived
messageId: suggestRewrite
output: |
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-writable-derived/invalid/effect-pre1-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-writable-derived/invalid/effect-pre2-errors.yaml
================================================
- message: Prefer using writable $derived instead of $state and $effect
line: 4
column: 6
suggestions:
- desc: Rewrite $state and $effect to $derived
messageId: suggestRewrite
output: |
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-writable-derived/invalid/effect-pre2-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-writable-derived/invalid/multiple-reassign1-errors.yaml
================================================
- message: Prefer using writable $derived instead of $state and $effect
line: 4
column: 6
suggestions:
- desc: Rewrite $state and $effect to $derived
messageId: suggestRewrite
output: |
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-writable-derived/invalid/multiple-reassign1-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-writable-derived/invalid/multiple-reassign2-errors.yaml
================================================
- message: Prefer using writable $derived instead of $state and $effect
line: 4
column: 6
suggestions:
- desc: Rewrite $state and $effect to $derived
messageId: suggestRewrite
output: |
{
newAlbumName = value;
}}
/>
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-writable-derived/invalid/multiple-reassign2-input.svelte
================================================
{
newAlbumName = value;
}}
/>
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-writable-derived/invalid/multiple-reassign3-errors.yaml
================================================
- message: Prefer using writable $derived instead of $state and $effect
line: 4
column: 6
suggestions:
- desc: Rewrite $state and $effect to $derived
messageId: suggestRewrite
output: |
- message: Prefer using writable $derived instead of $state and $effect
line: 4
column: 6
suggestions:
- desc: Rewrite $state and $effect to $derived
messageId: suggestRewrite
output: |
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-writable-derived/invalid/multiple-reassign3-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-writable-derived/valid/_requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-writable-derived/valid/condition1-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/prefer-writable-derived/valid/condition2-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-each-key/invalid/each-block-without-key01-errors.yaml
================================================
- message: Each block should have a key
line: 19
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-each-key/invalid/each-block-without-key01-input.svelte
================================================
Remove first thing
{#each things as thing}
{/each}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-each-key/valid/keyed-each-block01-input.svelte
================================================
Remove first thing
{#each things as thing (thing.id)}
{/each}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-each-key/valid/svelte5/_requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-each-key/valid/svelte5/each-blocks-without-an-item-input.svelte
================================================
{#each { length: 8 }, rank}
{#each { length: 8 }}
{rank}
{/each}
{/each}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-event-dispatcher-types/invalid/_requirements.json
================================================
{
"svelte": "^3.0.0 || ^4.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-event-dispatcher-types/invalid/import-alias01-errors.yaml
================================================
- message: Type parameters missing for the `createEventDispatcher` function call.
line: 4
column: 19
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-event-dispatcher-types/invalid/import-alias01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-event-dispatcher-types/invalid/no-types01-errors.yaml
================================================
- message: Type parameters missing for the `createEventDispatcher` function call.
line: 4
column: 19
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-event-dispatcher-types/invalid/no-types01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-event-dispatcher-types/valid/_requirements.json
================================================
{
"svelte": "^3.0.0 || ^4.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-event-dispatcher-types/valid/has-types01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-event-dispatcher-types/valid/no-typescript01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-event-dispatcher-types/valid/non-svelte-dispatcher01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-event-prefix/invalid/_requirements.json
================================================
{
"svelte": ">=5.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-event-prefix/invalid/checkAsyncFunctions/_config.json
================================================
{
"options": [{ "checkAsyncFunctions": true }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-event-prefix/invalid/checkAsyncFunctions/_requirements.json
================================================
{
"svelte": ">=5.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-event-prefix/invalid/checkAsyncFunctions/async-arrow01-errors.yaml
================================================
- message: Component event name must start with "on".
line: 3
column: 5
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-event-prefix/invalid/checkAsyncFunctions/async-arrow01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-event-prefix/invalid/checkAsyncFunctions/async01-errors.yaml
================================================
- message: Component event name must start with "on".
line: 3
column: 5
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-event-prefix/invalid/checkAsyncFunctions/async01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-event-prefix/invalid/no-prefix-arrow01-errors.yaml
================================================
- message: Component event name must start with "on".
line: 3
column: 5
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-event-prefix/invalid/no-prefix-arrow01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-event-prefix/invalid/no-prefix-inline-type01-errors.yaml
================================================
- message: Component event name must start with "on".
line: 2
column: 21
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-event-prefix/invalid/no-prefix-inline-type01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-event-prefix/invalid/no-prefix01-errors.yaml
================================================
- message: Component event name must start with "on".
line: 3
column: 5
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-event-prefix/invalid/no-prefix01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-event-prefix/valid/_requirements.json
================================================
{
"svelte": ">=5.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-event-prefix/valid/any01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-event-prefix/valid/async01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-event-prefix/valid/non-function01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-event-prefix/valid/with-prefix01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-optimized-style-attribute/invalid/comment01-errors.yaml
================================================
- message: It cannot be optimized because contains comments.
line: 5
column: 30
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-optimized-style-attribute/invalid/comment01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-optimized-style-attribute/invalid/key01-errors.yaml
================================================
- message: It cannot be optimized because property of style declaration contain
interpolation.
line: 6
column: 30
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-optimized-style-attribute/invalid/key01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-optimized-style-attribute/invalid/test01-errors.yaml
================================================
- message: It cannot be optimized because too complex.
line: 12
column: 12
suggestions: null
- message: It cannot be optimized because too complex.
line: 15
column: 46
suggestions: null
- message: It cannot be optimized because contains comments.
line: 18
column: 30
suggestions: null
- message: It cannot be optimized because property of style declaration contain
interpolation.
line: 19
column: 30
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-optimized-style-attribute/invalid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-optimized-style-attribute/valid/empty01-input.svelte
================================================
...
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-optimized-style-attribute/valid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-callbacks-use-set-param/invalid/test01-errors.yaml
================================================
- message: Store callbacks must use `set` param.
line: 4
column: 18
suggestions:
- desc: Add a `set` parameter.
messageId: addParam
output: |
- message: Store callbacks must use `set` param.
line: 5
column: 18
suggestions:
- desc: Rename parameter from foo to `set`.
messageId: updateParam
output: |
- message: Store callbacks must use `set` param.
line: 7
column: 18
suggestions:
- desc: Add a `set` parameter.
messageId: addParam
output: |
- message: Store callbacks must use `set` param.
line: 8
column: 18
suggestions:
- desc: Rename parameter from foo to `set`.
messageId: updateParam
output: |
- message: Store callbacks must use `set` param.
line: 10
column: 18
suggestions:
- desc: Rename parameter from foo to `set`.
messageId: updateParam
output: |
- message: Store callbacks must use `set` param.
line: 21
column: 18
suggestions: null
- message: Store callbacks must use `set` param.
line: 27
column: 19
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-callbacks-use-set-param/invalid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-callbacks-use-set-param/invalid/test02-errors.yaml
================================================
- message: Store callbacks must use `set` param.
line: 4
column: 18
suggestions:
- desc: Add a `set` parameter.
messageId: addParam
output: |
- message: Store callbacks must use `set` param.
line: 5
column: 18
suggestions:
- desc: Rename parameter from foo to `set`.
messageId: updateParam
output: |
- message: Store callbacks must use `set` param.
line: 7
column: 18
suggestions:
- desc: Add a `set` parameter.
messageId: addParam
output: |
- message: Store callbacks must use `set` param.
line: 8
column: 18
suggestions:
- desc: Rename parameter from foo to `set`.
messageId: updateParam
output: |
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-callbacks-use-set-param/invalid/test02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-callbacks-use-set-param/valid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-callbacks-use-set-param/valid/test02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/attrs-store01-errors.yaml
================================================
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 7
column: 19
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 8
column: 12
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 9
column: 7
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 10
column: 10
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 11
column: 17
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 12
column: 13
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/attrs-store01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/attrs-store01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/await01-errors.yaml
================================================
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 7
column: 30
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/await01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/await01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/calc01-errors.yaml
================================================
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 7
column: 14
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 8
column: 14
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 9
column: 16
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 10
column: 16
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 13
column: 15
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 15
column: 15
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 17
column: 15
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 19
column: 15
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 20
column: 21
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 25
column: 2
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 26
column: 9
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 30
column: 14
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 31
column: 19
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 36
column: 14
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 37
column: 14
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 38
column: 14
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 39
column: 14
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 43
column: 14
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/calc01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/calc01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/calc01-requirements.json
================================================
{
"svelte": "^3.0.0 || ^4.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/call01-errors.yaml
================================================
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 5
column: 11
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 6
column: 11
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/call01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/call01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/condition01-errors.yaml
================================================
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 5
column: 26
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 6
column: 16
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 6
column: 32
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/condition01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/condition01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/directives-store01-errors.yaml
================================================
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 11
column: 19
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 12
column: 19
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 13
column: 12
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 14
column: 10
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 15
column: 17
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 16
column: 9
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 17
column: 10
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 19
column: 15
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 21
column: 18
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 22
column: 12
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/directives-store01-input.svelte
================================================
{#each list as e (e)}
{/each}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/directives-store01-output.svelte
================================================
{#each list as e (e)}
{/each}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/for-in01-errors.yaml
================================================
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 5
column: 18
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 8
column: 18
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/for-in01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/for-in01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/for-of01-errors.yaml
================================================
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 5
column: 18
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 8
column: 18
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/for-of01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/for-of01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/if-block01-errors.yaml
================================================
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 11
column: 6
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 12
column: 18
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/if-block01-input.svelte
================================================
{#if store}
{/if}
{#if constStore}
{/if}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/if-block01-output.svelte
================================================
{#if store}
{/if}
{#if $constStore}
{/if}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/if-statement01-errors.yaml
================================================
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 8
column: 6
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/if-statement01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/if-statement01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/import01-errors.yaml
================================================
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 7
column: 24
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 7
column: 45
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/import01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/import01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/properties01-errors.yaml
================================================
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 7
column: 4
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 8
column: 4
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 11
column: 4
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 13
column: 4
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 15
column: 4
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 19
column: 4
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/properties01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/properties01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/props-store01-errors.yaml
================================================
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 7
column: 27
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 8
column: 25
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 9
column: 30
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 10
column: 18
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/props-store01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/props-store01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/spread01-errors.yaml
================================================
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 6
column: 17
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 7
column: 17
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/spread01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/spread01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/svelte-component01-errors.yaml
================================================
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 8
column: 25
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 8
column: 49
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 9
column: 25
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 9
column: 47
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 10
column: 25
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 10
column: 52
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 11
column: 25
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 11
column: 40
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/svelte-component01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/svelte-component01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/svelte-element01-errors.yaml
================================================
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 9
column: 23
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 9
column: 41
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 10
column: 23
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 10
column: 34
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 11
column: 23
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 11
column: 29
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 12
column: 23
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 12
column: 32
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 13
column: 23
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 13
column: 39
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 14
column: 23
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 14
column: 35
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/svelte-element01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/svelte-element01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/switch01-errors.yaml
================================================
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 5
column: 10
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 12
column: 10
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/switch01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/switch01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/tagged01-errors.yaml
================================================
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 6
column: 14
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 7
column: 14
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/tagged01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/tagged01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/test01-errors.yaml
================================================
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 17
column: 5
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 18
column: 5
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 19
column: 5
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/test01-input.svelte
================================================
{$storeValue1}
{get(storeValue1)}
{$storeValue2}
{get(storeValue2)}
{$storeValue3}
{get(storeValue3)}
{storeValue1}
{storeValue2}
{storeValue3}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/test01-output.svelte
================================================
{$storeValue1}
{get(storeValue1)}
{$storeValue2}
{get(storeValue2)}
{$storeValue3}
{get(storeValue3)}
{$storeValue1}
{$storeValue2}
{$storeValue3}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/ts/ts-class-directives01-errors.yaml
================================================
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 7
column: 19
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 8
column: 18
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 9
column: 12
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/ts/ts-class-directives01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/ts/ts-class-directives01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/ts/ts-i18n-errors.yaml
================================================
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 5
column: 6
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/ts/ts-i18n-input.svelte
================================================
{_('page.home.title')}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/ts/ts-i18n-output.svelte
================================================
{$_('page.home.title')}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/ts/ts-if-block01-errors.yaml
================================================
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 9
column: 18
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 11
column: 6
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 12
column: 18
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/ts/ts-if-block01-input.svelte
================================================
{#if store}
{/if}
{#if constStore}
{/if}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/ts/ts-if-block01-output.svelte
================================================
{#if store}
{/if}
{#if $constStore}
{/if}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/ts/ts-stores01-errors.yaml
================================================
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 6
column: 5
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 7
column: 5
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 8
column: 5
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 9
column: 5
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 10
column: 5
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 11
column: 5
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/ts/ts-stores01-input.svelte
================================================
{stores.wStore}
{stores.rStore}
{stores.dStore}
{stores.unionStore}
{stores.storeLike}
{stores.stores.w}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/ts/ts-stores01-output.svelte
================================================
{stores.wStore}
{stores.rStore}
{stores.dStore}
{stores.unionStore}
{stores.storeLike}
{stores.stores.w}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/ts/ts-test01-errors.yaml
================================================
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 20
column: 5
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 21
column: 5
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 22
column: 5
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 23
column: 5
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 24
column: 5
suggestions: null
- message: Use the $ prefix or the get function to access reactive values instead
of accessing the raw store.
line: 25
column: 5
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/ts/ts-test01-input.svelte
================================================
{$wStore}
{get(wStore)}
{$rStore}
{get(rStore)}
{$dStore}
{get(dStore)}
{$unionStore}
{get(unionStore)}
{$storeLike}
{get(storeLike)}
{get(stores.w)}
{wStore}
{rStore}
{dStore}
{unionStore}
{storeLike}
{stores.w}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/invalid/ts/ts-test01-output.svelte
================================================
{$wStore}
{get(wStore)}
{$rStore}
{get(rStore)}
{$dStore}
{get(dStore)}
{$unionStore}
{get(unionStore)}
{$storeLike}
{get(storeLike)}
{get(stores.w)}
{$wStore}
{$rStore}
{$dStore}
{$unionStore}
{$storeLike}
{stores.w}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/ts/non-store.ts
================================================
export const numValue = 42;
export const strValue = 'string';
export let anyValue: any;
export let nullableValue: null | { foo: number };
export const hasSubscribe1 = { subscribe: 42 };
export const hasSubscribe2 = {
subscribe: (): void => {
// noop
}
};
export const hasSubscribe3 = {
subscribe: (_fn: () => void): void => {
// noop
}
};
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/ts/store.ts
================================================
import type { Subscriber, Unsubscriber, Writable } from 'svelte/store';
import { writable, readable, derived } from 'svelte/store';
export const wStore = writable(0);
export const rStore = readable(0);
export const dStore = derived(wStore, () => {
//
});
export let unionStore: null | Writable;
interface StoreLike extends Writable {
subscribe(
run: Subscriber,
invalidate?: (value?: number) => void,
additional?: string
): Unsubscriber;
}
export let storeLike: StoreLike;
export const stores = {
w: wStore,
r: rStore,
d: dStore
};
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/valid/attrs-store01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/valid/await01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/valid/calc01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/valid/call01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/valid/condition01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/valid/directives-store01-input.svelte
================================================
{#each list as e (e)}
{/each}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/valid/for-in01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/valid/for-of01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/valid/if-statement01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/valid/import01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/valid/properties01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/valid/props-store01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/valid/spread01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/valid/svelte-component01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/valid/svelte-element01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/valid/switch01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/valid/tagged01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/valid/test01-input.svelte
================================================
{$storeValue1}
{get(storeValue1)}
{$storeValue2}
{get(storeValue2)}
{$storeValue3}
{get(storeValue3)}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/valid/ts/ts-i18n-input.svelte
================================================
{$_('page.home.title')}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/valid/ts/ts-non-store01-input.svelte
================================================
{numValue}
{strValue}
{anyValue}
{nullableValue}
{hasSubscribe1}
{hasSubscribe2}
{hasSubscribe3}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/valid/ts/ts-non-store02-input.svelte
================================================
{nonStore.numValue}
{nonStore.strValue}
{nonStore.anyValue}
{nonStore.nullableValue}
{nonStore.hasSubscribe1}
{nonStore.hasSubscribe2}
{nonStore.hasSubscribe3}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/valid/ts/ts-stores01-input.svelte
================================================
{get(stores.wStore)}
{get(stores.rStore)}
{get(stores.dStore)}
{get(stores.unionStore)}
{get(stores.storeLike)}
{get(stores.stores.w)}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/valid/ts/ts-test01-input.svelte
================================================
{$wStore}
{get(wStore)}
{$rStore}
{get(rStore)}
{$dStore}
{get(dStore)}
{$unionStore}
{get(unionStore)}
{$storeLike}
{get(storeLike)}
{get(stores.w)}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/valid/unknown-values01-input.svelte
================================================
{numValue}
{strValue}
{anyValue}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-store-reactive-access/valid/unknown-values02-input.svelte
================================================
{value}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-stores-init/invalid/no-init-in-js01-errors.yaml
================================================
- message: Always set a default value for svelte stores.
line: 2
column: 18
suggestions: null
- message: Always set a default value for svelte stores.
line: 3
column: 18
suggestions: null
- message: Always set a default value for svelte stores.
line: 4
column: 18
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-stores-init/invalid/no-init-in-js01-input.js
================================================
import { writable, readable, derived } from 'svelte/store';
export const w = writable();
export const r = readable();
export const d = derived([a, b], () => {});
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-stores-init/invalid/no-init01-errors.yaml
================================================
- message: Always set a default value for svelte stores.
line: 3
column: 12
suggestions: null
- message: Always set a default value for svelte stores.
line: 4
column: 12
suggestions: null
- message: Always set a default value for svelte stores.
line: 5
column: 12
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-stores-init/invalid/no-init01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-stores-init/valid/has-init-in-js01-input.js
================================================
import { writable, readable, derived } from 'svelte/store';
export const w = writable(false);
export const r = readable({});
export const d = derived([a, b], () => {}, false);
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-stores-init/valid/has-init01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-stores-init/valid/no-svelte-store01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/require-stores-init/valid/spread01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/shorthand-attribute/invalid/always/_config.json
================================================
{
"options": [{ "prefer": "always" }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/shorthand-attribute/invalid/always/test01-errors.yaml
================================================
- message: Expected shorthand attribute.
line: 6
column: 9
suggestions: null
- message: Expected shorthand attribute.
line: 10
column: 9
suggestions: null
- message: Expected shorthand attribute.
line: 13
column: 9
suggestions: null
- message: Expected shorthand attribute.
line: 15
column: 9
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/shorthand-attribute/invalid/always/test01-input.svelte
================================================
...
...
...
...
...
...
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/shorthand-attribute/invalid/always/test01-output.svelte
================================================
...
...
...
...
...
...
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/shorthand-attribute/invalid/never/_config.json
================================================
{
"options": [{ "prefer": "never" }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/shorthand-attribute/invalid/never/test01-errors.yaml
================================================
- message: Expected regular attribute syntax.
line: 7
column: 9
suggestions: null
- message: Expected regular attribute syntax.
line: 11
column: 9
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/shorthand-attribute/invalid/never/test01-input.svelte
================================================
...
...
...
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/shorthand-attribute/invalid/never/test01-output.svelte
================================================
...
...
...
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/shorthand-attribute/invalid/test01-errors.yaml
================================================
- message: Expected shorthand attribute.
line: 6
column: 9
suggestions: null
- message: Expected shorthand attribute.
line: 10
column: 9
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/shorthand-attribute/invalid/test01-input.svelte
================================================
...
...
...
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/shorthand-attribute/invalid/test01-output.svelte
================================================
...
...
...
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/shorthand-attribute/valid/always/_config.json
================================================
{
"options": [{ "prefer": "always" }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/shorthand-attribute/valid/always/test01-input.svelte
================================================
...
...
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/shorthand-attribute/valid/never/_config.json
================================================
{
"options": [{ "prefer": "never" }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/shorthand-attribute/valid/never/test01-input.svelte
================================================
...
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/shorthand-attribute/valid/test01-input.svelte
================================================
...
...
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/shorthand-directive/invalid/always/_config.json
================================================
{
"options": [{ "prefer": "always" }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/shorthand-directive/invalid/always/test01-errors.yaml
================================================
- message: Expected shorthand directive.
line: 14
column: 8
suggestions: null
- message: Expected shorthand directive.
line: 16
column: 6
suggestions: null
- message: Expected shorthand directive.
line: 18
column: 6
suggestions: null
- message: Expected shorthand directive.
line: 21
column: 6
suggestions: null
- message: Expected shorthand directive.
line: 23
column: 6
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/shorthand-directive/invalid/always/test01-input.svelte
================================================
...
...
...
...
...
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/shorthand-directive/invalid/always/test01-output.svelte
================================================
...
...
...
...
...
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/shorthand-directive/invalid/never/_config.json
================================================
{
"options": [{ "prefer": "never" }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/shorthand-directive/invalid/never/test01-errors.yaml
================================================
- message: Expected regular directive syntax.
line: 8
column: 8
suggestions: null
- message: Expected regular directive syntax.
line: 9
column: 6
suggestions: null
- message: Expected regular directive syntax.
line: 10
column: 6
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/shorthand-directive/invalid/never/test01-input.svelte
================================================
...
...
...
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/shorthand-directive/invalid/never/test01-output.svelte
================================================
...
...
...
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/shorthand-directive/invalid/test01-errors.yaml
================================================
- message: Expected shorthand directive.
line: 14
column: 8
suggestions: null
- message: Expected shorthand directive.
line: 16
column: 6
suggestions: null
- message: Expected shorthand directive.
line: 18
column: 6
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/shorthand-directive/invalid/test01-input.svelte
================================================
...
...
...
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/shorthand-directive/invalid/test01-output.svelte
================================================
...
...
...
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/shorthand-directive/valid/always/_config.json
================================================
{
"options": [{ "prefer": "always" }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/shorthand-directive/valid/always/test01-input.svelte
================================================
...
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/shorthand-directive/valid/never/_config.json
================================================
{
"options": [{ "prefer": "never" }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/shorthand-directive/valid/never/test01-input.svelte
================================================
...
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/shorthand-directive/valid/test01-input.svelte
================================================
...
...
...
...
...
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/alphabetical-test-config.json
================================================
{
"options": [
{
"order": [
{
"match": ["/^c-/u"],
"sort": "alphabetical"
},
"/^b-/u",
{
"match": ["/^a-/u"],
"sort": "ignore"
}
]
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/alphabetical-test-errors.yaml
================================================
- message: Attribute 'b-foo' should go before 'a-foo'.
line: 1
column: 12
suggestions: null
- message: Attribute 'c-foo' should go before 'a-foo'.
line: 1
column: 18
suggestions: null
- message: Attribute 'c-b' should go before 'c-c'.
line: 4
column: 10
suggestions: null
- message: Attribute 'c-a' should go before 'c-c'.
line: 4
column: 14
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/alphabetical-test-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/alphabetical-test-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/attach-tag-errors.yaml
================================================
- message: Attribute '@attach' should go before 'foo'.
line: 14
column: 10
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/attach-tag-input.svelte
================================================
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/attach-tag-output.svelte
================================================
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/attach-tag-requirements.json
================================================
{
"svelte": "^5.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/class-test-errors.yaml
================================================
- message: Attribute 'class:a' should go before 'class:b'.
line: 6
column: 26
suggestions: null
- message: Attribute 'class' should go before 'class:a'.
line: 7
column: 14
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/class-test-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/class-test-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/default-test01-errors.yaml
================================================
- message: Attribute 'this' should go before 'bind:value'.
line: 19
column: 3
suggestions: null
- message: Attribute 'def' should go before 'bind:value'.
line: 21
column: 3
suggestions: null
- message: Attribute 'data-foo' should go before 'bind:value'.
line: 22
column: 3
suggestions: null
- message: Attribute 'abc' should go before 'bind:value'.
line: 23
column: 3
suggestions: null
- message: Attribute '--style-props' should go before 'bind:value'.
line: 25
column: 3
suggestions: null
- message: Attribute 'bind:this' should go before 'id'.
line: 29
column: 2
suggestions: null
- message: Attribute 'class:disable' should go before 'class:enable'.
line: 34
column: 2
suggestions: null
- message: Attribute 'use:action' should go before 'animate:name'.
line: 36
column: 2
suggestions: null
- message: Attribute 'transition:fn' should go before 'animate:name'.
line: 37
column: 2
suggestions: null
- message: Attribute 'bind:value' should go before 'animate:name'.
line: 38
column: 2
suggestions: null
- message: Attribute 'in:fn' should go before 'animate:name'.
line: 39
column: 2
suggestions: null
- message: Attribute 'out:fn' should go before 'animate:name'.
line: 40
column: 2
suggestions: null
- message: Attribute 'abc' should go before 'def'.
line: 42
column: 28
suggestions: null
- message: Attribute 'data-foo' should go before 'def'.
line: 42
column: 34
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/default-test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/default-test01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/default-test01fix1-errors.yaml
================================================
- message: Attribute 'def' should go before 'bind:value'.
line: 20
column: 2
suggestions: null
- message: Attribute 'data-foo' should go before 'bind:value'.
line: 21
column: 2
suggestions: null
- message: Attribute 'abc' should go before 'bind:value'.
line: 22
column: 2
suggestions: null
- message: Attribute '--style-props' should go before 'bind:value'.
line: 24
column: 2
suggestions: null
- message: Attribute 'transition:fn' should go before 'animate:name'.
line: 36
column: 2
suggestions: null
- message: Attribute 'bind:value' should go before 'use:action'.
line: 37
column: 2
suggestions: null
- message: Attribute 'in:fn' should go before 'animate:name'.
line: 38
column: 2
suggestions: null
- message: Attribute 'out:fn' should go before 'animate:name'.
line: 39
column: 2
suggestions: null
- message: Attribute 'data-foo' should go before 'def'.
line: 41
column: 34
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/default-test01fix1-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/default-test01fix1-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/default-test01fix2-errors.yaml
================================================
- message: Attribute 'data-foo' should go before 'def'.
line: 21
column: 2
suggestions: null
- message: Attribute 'abc' should go before 'def'.
line: 22
column: 2
suggestions: null
- message: Attribute '--style-props' should go before 'def'.
line: 24
column: 2
suggestions: null
- message: Attribute 'transition:fn' should go before 'animate:name'.
line: 37
column: 2
suggestions: null
- message: Attribute 'in:fn' should go before 'animate:name'.
line: 38
column: 2
suggestions: null
- message: Attribute 'out:fn' should go before 'animate:name'.
line: 39
column: 2
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/default-test01fix2-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/default-test01fix2-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/default-test01fix3-errors.yaml
================================================
- message: Attribute 'abc' should go before 'data-foo'.
line: 22
column: 2
suggestions: null
- message: Attribute '--style-props' should go before 'data-foo'.
line: 24
column: 2
suggestions: null
- message: Attribute 'in:fn' should go before 'animate:name'.
line: 38
column: 2
suggestions: null
- message: Attribute 'out:fn' should go before 'animate:name'.
line: 39
column: 2
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/default-test01fix3-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/default-test01fix3-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/default-test01fix4-errors.yaml
================================================
- message: Attribute '--style-props' should go before 'abc'.
line: 24
column: 2
suggestions: null
- message: Attribute 'out:fn' should go before 'animate:name'.
line: 39
column: 2
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/default-test01fix4-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/default-test01fix4-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/in-out-test-errors.yaml
================================================
- message: Attribute 'in:b' should go before 'out:a'.
line: 6
column: 12
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/in-out-test-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/in-out-test-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/let-test-errors.yaml
================================================
- message: Attribute 'items' should go before 'let:a'.
line: 6
column: 26
suggestions: null
- message: Attribute 'items' should go before 'let:a'.
line: 10
column: 41
suggestions: null
- message: Attribute 'let:a' should go before 'let:b'.
line: 14
column: 35
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/let-test-input.svelte
================================================
{thing.text}
{thing.text}
{thing.text}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/let-test-output.svelte
================================================
{thing.text}
{thing.text}
{thing.text}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/slot-test-errors.yaml
================================================
- message: Attribute 'slot' should go before 'let:item'.
line: 7
column: 29
suggestions: null
- message: Attribute 'slot' should go before 'class'.
line: 8
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/slot-test-input.svelte
================================================
{item.text}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/slot-test-output.svelte
================================================
{item.text}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/spread-test01-errors.yaml
================================================
- message: Attribute 'c' should go before 'd'.
line: 5
column: 8
suggestions: null
- message: Attribute 'a' should go before 'b'.
line: 5
column: 23
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/spread-test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/spread-test01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/spread-test02-errors.yaml
================================================
- message: Attribute 'id' should go before 'a'.
line: 5
column: 23
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/spread-test02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/spread-test02-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/spread-test03-errors.yaml
================================================
- message: Attribute 'e' should go before 'f'.
line: 5
column: 8
suggestions: null
- message: Attribute 'c' should go before 'd'.
line: 5
column: 23
suggestions: null
- message: Attribute 'a' should go before 'b'.
line: 5
column: 39
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/spread-test03-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/spread-test03-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/style-ptops-test-errors.yaml
================================================
- message: Attribute '--a' should go before '--b'.
line: 6
column: 26
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/style-ptops-test-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/style-ptops-test-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/use-test-errors.yaml
================================================
- message: Attribute 'use:a' should go before 'use:b'.
line: 6
column: 12
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/use-test-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/default/use-test-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/ignore-no-order-test-config.json
================================================
{
"options": [
{
"order": [
{
"match": ["/^order-/u"],
"sort": "alphabetical"
}
]
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/ignore-no-order-test-errors.yaml
================================================
- message: Attribute 'order-a' should go before 'order-b'.
line: 1
column: 22
suggestions: null
- message: Attribute 'order-a' should go before 'order-b'.
line: 4
column: 24
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/ignore-no-order-test-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/ignore-no-order-test-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/ignore-no-order-with-spread-test-config.json
================================================
{
"options": [
{
"order": [
{
"match": ["/^order-/u"],
"sort": "alphabetical"
}
]
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/ignore-no-order-with-spread-test-errors.yaml
================================================
- message: Attribute 'order-a' should go before 'order-c'.
line: 5
column: 33
suggestions: null
- message: Attribute 'order-a' should go before 'order-c'.
line: 8
column: 47
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/ignore-no-order-with-spread-test-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/ignore-no-order-with-spread-test-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/order/_config.json
================================================
{
"options": [
{
"order": [
"id",
"class",
"/^class:/u",
"value",
"src",
"/^data-/u",
"style",
"/^style:/u",
"/^on:/u",
"/^use:/u",
"/^animate:/u",
"/^transition:/u",
"/^in:/u",
"/^out:/u",
"bind:this",
["/^bind:/u", "!bind:this"],
{
"match": ["!/:/u", "!/^(?:id|class|value|src|style)$/u", "!/^data-/u"],
"sort": "alphabetical"
}
]
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/order/test01-errors.yaml
================================================
- message: Attribute 'bind:this' should go before 'bind:data'.
line: 11
column: 24
suggestions: null
- message: Attribute 'data-foo' should go before 'bind:data'.
line: 11
column: 53
suggestions: null
- message: Attribute 'class' should go before 'class:bar'.
line: 14
column: 2
suggestions: null
- message: Attribute 'id' should go before 'class:bar'.
line: 15
column: 2
suggestions: null
- message: Attribute 'value' should go before 'bind:this'.
line: 17
column: 2
suggestions: null
- message: Attribute 'style:color' should go before 'bind:this'.
line: 18
column: 2
suggestions: null
- message: Attribute 'style' should go before 'bind:this'.
line: 19
column: 2
suggestions: null
- message: Attribute 'data-value' should go before 'bind:this'.
line: 20
column: 2
suggestions: null
- message: Attribute 'animate:name' should go before 'bind:this'.
line: 21
column: 2
suggestions: null
- message: Attribute 'in:fn' should go before 'bind:this'.
line: 22
column: 2
suggestions: null
- message: Attribute 'out:fn' should go before 'bind:this'.
line: 23
column: 2
suggestions: null
- message: Attribute 'transition:fn' should go before 'bind:this'.
line: 24
column: 2
suggestions: null
- message: Attribute 'src' should go before 'alt'.
line: 26
column: 16
suggestions: null
- message: Attribute 'id' should go before 'alt'.
line: 26
column: 22
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/order/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/order/test01-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/order/test01fix1-errors.yaml
================================================
- message: Attribute 'data-foo' should go before 'bind:this'.
line: 11
column: 53
suggestions: null
- message: Attribute 'id' should go before 'class'.
line: 15
column: 2
suggestions: null
- message: Attribute 'style:color' should go before 'bind:this'.
line: 18
column: 2
suggestions: null
- message: Attribute 'style' should go before 'bind:this'.
line: 19
column: 2
suggestions: null
- message: Attribute 'data-value' should go before 'bind:this'.
line: 20
column: 2
suggestions: null
- message: Attribute 'animate:name' should go before 'bind:this'.
line: 21
column: 2
suggestions: null
- message: Attribute 'in:fn' should go before 'bind:this'.
line: 22
column: 2
suggestions: null
- message: Attribute 'out:fn' should go before 'bind:this'.
line: 23
column: 2
suggestions: null
- message: Attribute 'transition:fn' should go before 'bind:this'.
line: 24
column: 2
suggestions: null
- message: Attribute 'id' should go before 'src'.
line: 26
column: 22
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/order/test01fix1-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/order/test01fix1-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/order/test01fix2-errors.yaml
================================================
- message: Attribute 'style' should go before 'style:color'.
line: 19
column: 2
suggestions: null
- message: Attribute 'data-value' should go before 'style:color'.
line: 20
column: 2
suggestions: null
- message: Attribute 'animate:name' should go before 'bind:this'.
line: 21
column: 2
suggestions: null
- message: Attribute 'in:fn' should go before 'bind:this'.
line: 22
column: 2
suggestions: null
- message: Attribute 'out:fn' should go before 'bind:this'.
line: 23
column: 2
suggestions: null
- message: Attribute 'transition:fn' should go before 'bind:this'.
line: 24
column: 2
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/order/test01fix2-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/order/test01fix2-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/order/test01fix3-errors.yaml
================================================
- message: Attribute 'data-value' should go before 'style'.
line: 20
column: 2
suggestions: null
- message: Attribute 'animate:name' should go before 'bind:this'.
line: 21
column: 2
suggestions: null
- message: Attribute 'in:fn' should go before 'bind:this'.
line: 22
column: 2
suggestions: null
- message: Attribute 'out:fn' should go before 'bind:this'.
line: 23
column: 2
suggestions: null
- message: Attribute 'transition:fn' should go before 'bind:this'.
line: 24
column: 2
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/order/test01fix3-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/order/test01fix3-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/order/test01fix4-errors.yaml
================================================
- message: Attribute 'animate:name' should go before 'bind:this'.
line: 21
column: 2
suggestions: null
- message: Attribute 'in:fn' should go before 'bind:this'.
line: 22
column: 2
suggestions: null
- message: Attribute 'out:fn' should go before 'bind:this'.
line: 23
column: 2
suggestions: null
- message: Attribute 'transition:fn' should go before 'bind:this'.
line: 24
column: 2
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/order/test01fix4-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/order/test01fix4-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/order/test01fix5-errors.yaml
================================================
- message: Attribute 'in:fn' should go before 'bind:this'.
line: 22
column: 2
suggestions: null
- message: Attribute 'out:fn' should go before 'bind:this'.
line: 23
column: 2
suggestions: null
- message: Attribute 'transition:fn' should go before 'bind:this'.
line: 24
column: 2
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/order/test01fix5-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/order/test01fix5-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/order/test01fix6-errors.yaml
================================================
- message: Attribute 'out:fn' should go before 'bind:this'.
line: 23
column: 2
suggestions: null
- message: Attribute 'transition:fn' should go before 'in:fn'.
line: 24
column: 2
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/order/test01fix6-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/order/test01fix6-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/order/test01fix7-errors.yaml
================================================
- message: Attribute 'out:fn' should go before 'bind:this'.
line: 24
column: 2
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/order/test01fix7-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/invalid/order/test01fix7-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/valid/alphabetical-test-config.json
================================================
{
"options": [
{
"order": [
{
"match": ["/^c-/u"],
"sort": "alphabetical"
},
"/^b-/u",
{
"match": ["/^a-/u"],
"sort": "ignore"
}
]
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/valid/alphabetical-test-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/valid/attach-tag-input.svelte
================================================
...
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/valid/attach-tag-requirements.json
================================================
{
"svelte": "^5.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/valid/default/bind-on-test01-input.svelte
================================================
console.log('Old value:', value)}
bind:value
on:input={() => console.log('New value:', value)}
/>
console.log('Old value:', value)} bind:value />
console.log('New value:', value)} />
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/valid/default/class-test-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/valid/default/default-test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/valid/default/ignore-spread-test-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/valid/default/in-out-test-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/valid/default/let-test-input.svelte
================================================
{thing.text}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/valid/default/slot-test-input.svelte
================================================
{item.text}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/valid/default/spread-test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/valid/default/spread-test02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/valid/default/style-ptops-test-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/valid/default/style-test-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/valid/default/use-test-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/valid/ignore-no-order-test-config.json
================================================
{
"options": [
{
"order": [
{
"match": ["/^order-/u"],
"sort": "alphabetical"
}
]
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/valid/ignore-no-order-test-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/valid/ignore-no-order-with-spread-test-config.json
================================================
{
"options": [
{
"order": [
{
"match": ["/^order-/u"],
"sort": "alphabetical"
}
]
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/valid/ignore-no-order-with-spread-test-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/valid/order/_config.json
================================================
{
"options": [
{
"order": [
"id",
"class",
"/^class:/u",
"value",
"src",
"/^data-/u",
"style",
"/^style:/u",
"/^on:/u",
"/^use:/u",
"/^animate:/u",
"/^transition:/u",
"/^in:/u",
"/^out:/u",
"bind:this",
["/^bind:/u", "!bind:this"],
{
"match": ["!/:/u", "!/^(?:id|class|value|src|style)$/u", "!/^data-/u"],
"sort": "alphabetical"
}
]
}
]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sort-attributes/valid/order/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/spaced-html-comment/invalid/always/_config.json
================================================
{
"options": ["always"]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/spaced-html-comment/invalid/always/always-invalid-errors.yaml
================================================
- message: Expected space or tab after '' in comment.
line: 1
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/spaced-html-comment/invalid/always/always-invalid-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/spaced-html-comment/invalid/always/always-invalid-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/spaced-html-comment/invalid/default/default-invalid-errors.yaml
================================================
- message: Expected space or tab after '' in comment.
line: 1
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/spaced-html-comment/invalid/default/default-invalid-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/spaced-html-comment/invalid/default/default-invalid-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/spaced-html-comment/invalid/never/_config.json
================================================
{
"options": ["never"]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/spaced-html-comment/invalid/never/never-invalid-errors.yaml
================================================
- message: Unexpected space or tab after '' in comment.
line: 2
column: 1
suggestions: null
- message: Unexpected space or tab after '
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/spaced-html-comment/invalid/never/never-invalid-output.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/spaced-html-comment/valid/always/_config.json
================================================
{
"options": ["always"]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/spaced-html-comment/valid/always/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/spaced-html-comment/valid/default/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/spaced-html-comment/valid/never/_config.json
================================================
{
"options": ["never"]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/spaced-html-comment/valid/never/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/sveltekit-types.d.ts
================================================
// Type stubs for SvelteKit's $app modules
declare module '$app/types' {
export type Pathname = "/" | "/test" | "/test/123" | "/test/123/456";
export type ResolvedPathname = `${"" | `/${string}`}${Pathname}`;
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/tsconfig.json
================================================
{
"compilerOptions": {
"jsx": "preserve",
"target": "es5",
"strict": true,
"esModuleInterop": true,
"lib": ["es2015", "es2017", "esnext"],
"experimentalDecorators": true
},
"include": ["**/*.svelte", "**/*.ts"]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/a11y01-errors.yaml
================================================
- message: |-
` ` element should have an alt attribute
https://svelte.dev/e/a11y_missing_attribute(a11y_missing_attribute)
line: 5
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/a11y01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/a11y01-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/a11y01-svelte4-errors.yaml
================================================
- message: 'A11y: element should have an alt attribute(a11y-missing-attribute)'
line: 5
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/a11y01-svelte4-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/a11y01-svelte4-requirements.json
================================================
{
"svelte": "^3.0.0 || ^4.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/custom_element_props_identifier-errors.yaml
================================================
- message: |-
Using a rest element or a non-destructured declaration with `$props()` means that Svelte can't infer what properties to expose when creating a custom element. Consider destructuring all the props or explicitly specifying the `customElement.props` option.
https://svelte.dev/e/custom_element_props_identifier(custom_element_props_identifier)
line: 4
column: 6
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/custom_element_props_identifier-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/custom_element_props_identifier-requirements.json
================================================
{
"svelte": ">=5.33.4"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/dyamic-slot01-errors.yaml
================================================
- message: name cannot be dynamic(dynamic-slot-name)
line: 5
column: 7
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/dyamic-slot01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/dyamic-slot01-requirements.json
================================================
{
"svelte": "^3.0.0 || ^4.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/experimental-async-disabled/top-level-await-errors.yaml
================================================
- message: |-
Cannot use `await` in deriveds and template expressions, or at the top level of a component, unless the `experimental.async` compiler option is `true`
https://svelte.dev/e/experimental_async(experimental_async)
line: 2
column: 2
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/experimental-async-disabled/top-level-await-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/experimental-async-disabled/top-level-await-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/invalid-svelte-ignore01-errors.yaml
================================================
- message: |-
noninteractive element cannot have nonnegative tabIndex value
https://svelte.dev/e/a11y_no_noninteractive_tabindex(a11y_no_noninteractive_tabindex)
line: 6
column: 3
suggestions: null
- message: |-
A form label must be associated with a control
https://svelte.dev/e/a11y_label_has_associated_control(a11y_label_has_associated_control)
line: 6
column: 3
suggestions: null
- message: |-
noninteractive element cannot have nonnegative tabIndex value
https://svelte.dev/e/a11y_no_noninteractive_tabindex(a11y_no_noninteractive_tabindex)
line: 7
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/invalid-svelte-ignore01-input.svelte
================================================
{#if true}
A
{:else}
Click
{/if}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/invalid-svelte-ignore01-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/invalid-svelte-ignore01-svelte4-errors.yaml
================================================
- message: 'A11y: noninteractive element cannot have nonnegative tabIndex
value(a11y-no-noninteractive-tabindex)'
line: 6
column: 3
suggestions: null
- message: 'A11y: A form label must be associated with a
control.(a11y-label-has-associated-control)'
line: 6
column: 3
suggestions: null
- message: 'A11y: noninteractive element cannot have nonnegative tabIndex
value(a11y-no-noninteractive-tabindex)'
line: 7
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/invalid-svelte-ignore01-svelte4-input.svelte
================================================
{#if true}
A
{:else}
Click
{/if}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/invalid-svelte-ignore01-svelte4-requirements.json
================================================
{
"svelte": "^3.0.0 || ^4.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/invalid-svelte-ignore02-errors.yaml
================================================
- message: |-
noninteractive element cannot have nonnegative tabIndex value
https://svelte.dev/e/a11y_no_noninteractive_tabindex(a11y_no_noninteractive_tabindex)
line: 6
column: 3
suggestions: null
- message: |-
A form label must be associated with a control
https://svelte.dev/e/a11y_label_has_associated_control(a11y_label_has_associated_control)
line: 6
column: 3
suggestions: null
- message: |-
noninteractive element cannot have nonnegative tabIndex value
https://svelte.dev/e/a11y_no_noninteractive_tabindex(a11y_no_noninteractive_tabindex)
line: 7
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/invalid-svelte-ignore02-input.svelte
================================================
{#each [] as e}
A
{:else}
Click
{/each}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/invalid-svelte-ignore02-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/invalid-svelte-ignore02-svelte4-errors.yaml
================================================
- message: 'A11y: noninteractive element cannot have nonnegative tabIndex
value(a11y-no-noninteractive-tabindex)'
line: 6
column: 3
suggestions: null
- message: 'A11y: A form label must be associated with a
control.(a11y-label-has-associated-control)'
line: 6
column: 3
suggestions: null
- message: 'A11y: noninteractive element cannot have nonnegative tabIndex
value(a11y-no-noninteractive-tabindex)'
line: 7
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/invalid-svelte-ignore02-svelte4-input.svelte
================================================
{#each [] as e}
A
{:else}
Click
{/each}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/invalid-svelte-ignore02-svelte4-requirements.json
================================================
{
"svelte": "^3.0.0 || ^4.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/invalid-svelte-ignore03-errors.yaml
================================================
- message: |-
Empty block
https://svelte.dev/e/block_empty(block_empty)
line: 2
column: 30
suggestions: null
- message: |-
noninteractive element cannot have nonnegative tabIndex value
https://svelte.dev/e/a11y_no_noninteractive_tabindex(a11y_no_noninteractive_tabindex)
line: 5
column: 3
suggestions: null
- message: |-
A form label must be associated with a control
https://svelte.dev/e/a11y_label_has_associated_control(a11y_label_has_associated_control)
line: 5
column: 3
suggestions: null
- message: |-
noninteractive element cannot have nonnegative tabIndex value
https://svelte.dev/e/a11y_no_noninteractive_tabindex(a11y_no_noninteractive_tabindex)
line: 6
column: 3
suggestions: null
- message: |-
noninteractive element cannot have nonnegative tabIndex value
https://svelte.dev/e/a11y_no_noninteractive_tabindex(a11y_no_noninteractive_tabindex)
line: 9
column: 3
suggestions: null
- message: |-
A form label must be associated with a control
https://svelte.dev/e/a11y_label_has_associated_control(a11y_label_has_associated_control)
line: 9
column: 3
suggestions: null
- message: |-
noninteractive element cannot have nonnegative tabIndex value
https://svelte.dev/e/a11y_no_noninteractive_tabindex(a11y_no_noninteractive_tabindex)
line: 10
column: 3
suggestions: null
- message: |-
Empty block
https://svelte.dev/e/block_empty(block_empty)
line: 14
column: 30
suggestions: null
- message: |-
noninteractive element cannot have nonnegative tabIndex value
https://svelte.dev/e/a11y_no_noninteractive_tabindex(a11y_no_noninteractive_tabindex)
line: 17
column: 3
suggestions: null
- message: |-
A form label must be associated with a control
https://svelte.dev/e/a11y_label_has_associated_control(a11y_label_has_associated_control)
line: 17
column: 3
suggestions: null
- message: |-
noninteractive element cannot have nonnegative tabIndex value
https://svelte.dev/e/a11y_no_noninteractive_tabindex(a11y_no_noninteractive_tabindex)
line: 18
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/invalid-svelte-ignore03-input.svelte
================================================
{#await Promise.resolve(42)}
{:then name}
Click
{:catch name}
Click
{/await}
{#await Promise.resolve(42)}
{:then name}
Click
{/await}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/invalid-svelte-ignore03-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/invalid-svelte-ignore03-svelte4-errors.yaml
================================================
- message: Empty block(empty-block)
line: 2
column: 30
suggestions: null
- message: 'A11y: noninteractive element cannot have nonnegative tabIndex
value(a11y-no-noninteractive-tabindex)'
line: 5
column: 3
suggestions: null
- message: 'A11y: A form label must be associated with a
control.(a11y-label-has-associated-control)'
line: 5
column: 3
suggestions: null
- message: 'A11y: noninteractive element cannot have nonnegative tabIndex
value(a11y-no-noninteractive-tabindex)'
line: 6
column: 3
suggestions: null
- message: 'A11y: noninteractive element cannot have nonnegative tabIndex
value(a11y-no-noninteractive-tabindex)'
line: 9
column: 3
suggestions: null
- message: 'A11y: A form label must be associated with a
control.(a11y-label-has-associated-control)'
line: 9
column: 3
suggestions: null
- message: 'A11y: noninteractive element cannot have nonnegative tabIndex
value(a11y-no-noninteractive-tabindex)'
line: 10
column: 3
suggestions: null
- message: Empty block(empty-block)
line: 14
column: 30
suggestions: null
- message: 'A11y: noninteractive element cannot have nonnegative tabIndex
value(a11y-no-noninteractive-tabindex)'
line: 17
column: 3
suggestions: null
- message: 'A11y: A form label must be associated with a
control.(a11y-label-has-associated-control)'
line: 17
column: 3
suggestions: null
- message: 'A11y: noninteractive element cannot have nonnegative tabIndex
value(a11y-no-noninteractive-tabindex)'
line: 18
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/invalid-svelte-ignore03-svelte4-input.svelte
================================================
{#await Promise.resolve(42)}
{:then name}
Click
{:catch name}
Click
{/await}
{#await Promise.resolve(42)}
{:then name}
Click
{/await}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/invalid-svelte-ignore03-svelte4-requirements.json
================================================
{
"svelte": "^3.0.0 || ^4.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/style-lang01-errors.yaml
================================================
- message: Unused CSS selector ".foo .foo"(css-unused-selector)
line: 9
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/style-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/style-lang01-requirements.json
================================================
{
"svelte": "^3.0.0 || ^4.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/style-without-global-01-errors.yaml
================================================
- message: Unused CSS selector "input"(css-unused-selector)
line: 2
column: 2
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/style-without-global-01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/style-without-global-01-requirements.json
================================================
{
"svelte": "^3.0.0 || ^4.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/style-without-global-02-errors.yaml
================================================
- message: |-
Unused CSS selector "input"
https://svelte.dev/e/css_unused_selector(css_unused_selector)
line: 2
column: 2
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/style-without-global-02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/style-without-global-02-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/svelte-config-custom-warn/_config.cjs
================================================
/**
* @typedef {import("svelte/compiler").Warning} Warning
*/
module.exports = {
languageOptions: {
parserOptions: {
svelteConfig: {
/**
* @param {Warning} warning
* @param {(warning: Warning) => void} handler
* @returns {void}
*/
onwarn(warning, handler) {
// transform code
handler({ ...warning, message: warning.message, code: 'foo' });
}
}
}
}
};
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/svelte-config-custom-warn/a11y-errors.yaml
================================================
- message: |-
` ` element should have an alt attribute
https://svelte.dev/e/a11y_missing_attribute(foo)
line: 5
column: 1
suggestions: null
- message: |-
Avoid using autofocus
https://svelte.dev/e/a11y_autofocus(foo)
line: 5
column: 12
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/svelte-config-custom-warn/a11y-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/svelte-config-custom-warn/a11y-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/svelte-config-custom-warn/a11y-svelte4-errors.yaml
================================================
- message: 'A11y: element should have an alt attribute(foo)'
line: 5
column: 1
suggestions: null
- message: 'A11y: Avoid using autofocus(foo)'
line: 5
column: 12
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/svelte-config-custom-warn/a11y-svelte4-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/svelte-config-custom-warn/a11y-svelte4-requirements.json
================================================
{
"svelte": "^3.0.0 || ^4.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/svelte-config-onwarn/_config.cjs
================================================
/**
* @typedef {import("svelte/compiler").Warning} Warning
*/
module.exports = {
languageOptions: {
parserOptions: {
svelteConfig: {
/**
* @param {Warning} warning
* @param {(warning: Warning) => void} handler
* @returns {void}
*/
onwarn(warning, handler) {
if (
warning.code === 'a11y_missing_attribute' ||
warning.code === 'a11y-missing-attribute'
)
return;
handler(warning);
}
}
}
}
};
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/svelte-config-onwarn/a11y-errors.yaml
================================================
- message: |-
Avoid using autofocus
https://svelte.dev/e/a11y_autofocus(a11y_autofocus)
line: 5
column: 12
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/svelte-config-onwarn/a11y-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/svelte-config-onwarn/a11y-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/svelte-config-onwarn/a11y-svelte4-errors.yaml
================================================
- message: 'A11y: Avoid using autofocus(a11y-autofocus)'
line: 5
column: 12
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/svelte-config-onwarn/a11y-svelte4-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/svelte-config-onwarn/a11y-svelte4-requirements.json
================================================
{
"svelte": "^3.0.0 || ^4.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/svelte-config-warning-filter/_config.cjs
================================================
/**
* @typedef {import("svelte/compiler").Warning} Warning
*/
module.exports = {
languageOptions: {
parserOptions: {
svelteConfig: {
warningFilter: (warning) => {
return (
warning.code !== 'a11y_missing_attribute' && warning.code !== 'a11y-missing-attribute'
);
}
}
}
}
};
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/svelte-config-warning-filter/a11y-errors.yaml
================================================
- message: |-
Avoid using autofocus
https://svelte.dev/e/a11y_autofocus(a11y_autofocus)
line: 5
column: 12
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/svelte-config-warning-filter/a11y-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/svelte-config-warning-filter/a11y-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/ts/enum01-errors.yaml
================================================
- message: |-
The $ prefix is reserved, and cannot be used for variables and imports
https://svelte.dev/e/dollar_prefix_invalid(dollar_prefix_invalid)
line: 2
column: 8
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/ts/enum01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/ts/enum01-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/ts/enum01-svelte4-errors.yaml
================================================
- message: The $ prefix is reserved, and cannot be used for variable and import
names(illegal-declaration)
line: 2
column: 3
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/ts/enum01-svelte4-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/invalid/ts/enum01-svelte4-requirements.json
================================================
{
"svelte": "^3.0.0 || ^4.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/babel/_config.json
================================================
{
"languageOptions": {
"parserOptions": {
"parser": "@babel/eslint-parser"
}
}
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/babel/babel-function-bind01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/babel/class01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/global-style-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/ignore-warnings/_config.json
================================================
{
"options": [{ "ignoreWarnings": true }]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/ignore-warnings/enum01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/ignore01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/ignore01-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/ignore01-svelte4-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/ignore01-svelte4-requirements.json
================================================
{
"svelte": "^3.0.0 || ^4.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/ignore02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/ignore02-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/ignore02-svelte4-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/ignore02-svelte4-requirements.json
================================================
{
"svelte": "^3.0.0 || ^4.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/no-false-custom_element_props_identifier-warning-without-custom-element-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/no-false-custom_element_props_identifier-warning-without-custom-element-requirements.json
================================================
{
"svelte": ">=5.33.4"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/script-comment-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/script-comment-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/script-comment-svelte4-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/script-comment-svelte4-requirements.json
================================================
{
"svelte": "^3.0.0 || ^4.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/style-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/style-lang02-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/style-lang03-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-config-experimental-async/_config.cjs
================================================
module.exports = {
languageOptions: {
parserOptions: {
svelteConfig: {
compilerOptions: {
experimental: {
async: true
}
}
}
}
}
};
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-config-experimental-async/top-level-await-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-config-experimental-async/top-level-await-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-config-onwarn/_config.cjs
================================================
/**
* @typedef {import("svelte/compiler").Warning} Warning
*/
module.exports = {
languageOptions: {
parserOptions: {
svelteConfig: {
/**
* @param {Warning} warning
* @param {(warning: Warning) => void} handler
* @returns {void}
*/
onwarn(warning, handler) {
if (
warning.code === 'a11y_missing_attribute' ||
warning.code === 'a11y-missing-attribute'
)
return;
handler(warning);
}
}
}
}
};
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-config-onwarn/a11y-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-config-warning-filter/_config.cjs
================================================
/**
* @typedef {import("svelte/compiler").Warning} Warning
*/
module.exports = {
languageOptions: {
parserOptions: {
svelteConfig: {
warningFilter: (warning) => {
return (
warning.code !== 'a11y_missing_attribute' && warning.code !== 'a11y-missing-attribute'
);
}
}
}
}
};
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-config-warning-filter/a11y-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-ignore01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-ignore01-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-ignore01-svelte4-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-ignore01-svelte4-requirements.json
================================================
{
"svelte": "^3.0.0 || ^4.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-ignore02-input.svelte
================================================
TEXT
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-ignore02-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-ignore02-svelte4-input.svelte
================================================
TEXT
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-ignore02-svelte4-requirements.json
================================================
{
"svelte": "^3.0.0 || ^4.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-ignore03-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-ignore03-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-ignore03-svelte4-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-ignore03-svelte4-requirements.json
================================================
{
"svelte": "^3.0.0 || ^4.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-ignore04-input.svelte
================================================
{#if true}
A
{:else}
Click
{/if}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-ignore04-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-ignore04-svelte4-input.svelte
================================================
{#if true}
A
{:else}
Click
{/if}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-ignore04-svelte4-requirements.json
================================================
{
"svelte": "^3.0.0 || ^4.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-ignore05-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-ignore05-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-ignore05-svelte4-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-ignore05-svelte4-requirements.json
================================================
{
"svelte": "^3.0.0 || ^4.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-ignore06-input.svelte
================================================
{#each [] as e}
Click
{/each}
{#each [] as e}
A
{:else}
Click
{/each}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-ignore06-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-ignore06-svelte4-input.svelte
================================================
{#each [] as e}
Click
{/each}
{#each [] as e}
A
{:else}
Click
{/each}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-ignore06-svelte4-requirements.json
================================================
{
"svelte": "^3.0.0 || ^4.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-ignore07-input.svelte
================================================
{#await Promise.resolve(42)}
Click
{/await}
{#await Promise.resolve(42)}
Click
{:then name}
Click
{:catch name}
Click
{/await}
{#await Promise.resolve(42)}
Click
{:then name}
Click
{/await}
{#await Promise.resolve(42) then n}
Click
{/await}
{#await Promise.resolve(42) catch n}
Click
{/await}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-ignore07-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-ignore07-svelte4-input.svelte
================================================
{#await Promise.resolve(42)}
Click
{/await}
{#await Promise.resolve(42)}
Click
{:then name}
Click
{:catch name}
Click
{/await}
{#await Promise.resolve(42)}
Click
{:then name}
Click
{/await}
{#await Promise.resolve(42) then n}
Click
{/await}
{#await Promise.resolve(42) catch n}
Click
{/await}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-ignore07-svelte4-requirements.json
================================================
{
"svelte": "^3.0.0 || ^4.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-options-custom-element-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte-options-custom-element-requirements.json
================================================
{
"svelte": ">=4.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte3-options-custom-element-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/svelte3-options-custom-element-requirements.json
================================================
{
"svelte": "^3.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/ts/class01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/ts/script-comment-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/ts/script-comment-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/ts/script-comment-svelte4-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/ts/script-comment-svelte4-requirements.json
================================================
{
"svelte": "^3.0.0 || ^4.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/ts/test01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/ts/ts-lang01-input-svete4-requirements.json
================================================
{
"svelte": "^3.0.0 || ^4.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/ts/ts-lang01-input-svete4.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/ts/ts-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/ts/ts-lang01-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/ts/ts-unused-in-script-input.svelte
================================================
{$page}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/ts/type-only-import01-input.svelte
================================================
{{ $a }}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/ts/type-only-import02-input.svelte
================================================
{{ $a }}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/undef01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/unuse01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/valid-custom-element-with-props-identifier-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-compile/valid/valid-custom-element-with-props-identifier-requirements.json
================================================
{
"svelte": ">=5.33.4"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-each-key/invalid/const-key01-errors.yaml
================================================
- message: Expected key to use the variables which are defined by the `{#each}` block.
line: 11
column: 25
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-each-key/invalid/const-key01-input.svelte
================================================
{#each things as thing (key)}
{@const key = thing.id}
{thing.name}
{/each}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-each-key/invalid/out-vars-key01-errors.yaml
================================================
- message: Expected key to use the variables which are defined by the `{#each}` block.
line: 12
column: 25
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-each-key/invalid/out-vars-key01-input.svelte
================================================
{#each things as thing (foo)}
{thing.name}
{/each}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-each-key/valid/call-key01-input.svelte
================================================
{#each things as thing (fn(thing))}
{thing.name}
{/each}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-each-key/valid/destructure-key01-input.svelte
================================================
{#each things as { id, name } (id)}
{name}
{/each}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-each-key/valid/expression-key01-input.svelte
================================================
{#each things as thing (`thing_id=${thing.id}`)}
{thing.name}
{/each}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-each-key/valid/expression-key02-input.svelte
================================================
{#each things as thing (foo + thing.id)}
{thing.name}
{/each}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-each-key/valid/index-key01-input.svelte
================================================
{#each things as thing, index (index)}
{thing.name}
{/each}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-each-key/valid/member-key01-input.svelte
================================================
{#each things as thing (thing.id)}
{thing.name}
{/each}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-each-key/valid/svelte5-each-blocks-without-an-item-input.svelte
================================================
{#each { length: 8 }, rank}
{#each { length: 8 }}
{rank}
{/each}
{/each}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-each-key/valid/svelte5-each-blocks-without-an-item-requirements.json
================================================
{
"svelte": "^5.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/invalid/+page.svelte
================================================
{foo}, {bar}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/invalid/_config.json
================================================
{
"settings": {
"svelte": {
"kit": {
"files": {
"routes": "tests/fixtures"
}
}
}
}
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/invalid/errors.yaml
================================================
- message: disallow props other than data or errors in SvelteKit page components.
line: 2
column: 13
suggestions: null
- message: disallow props other than data or errors in SvelteKit page components.
line: 3
column: 13
suggestions: null
- message: disallow props other than data or errors in SvelteKit page components.
line: 4
column: 15
suggestions: null
- message: disallow props other than data or errors in SvelteKit page components.
line: 4
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/invalid/svelte-config/+page.svelte
================================================
{foo}, {bar}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/invalid/svelte-config/errors.yaml
================================================
- message: disallow props other than data or errors in SvelteKit page components.
line: 2
column: 13
suggestions: null
- message: disallow props other than data or errors in SvelteKit page components.
line: 3
column: 13
suggestions: null
- message: disallow props other than data or errors in SvelteKit page components.
line: 4
column: 15
suggestions: null
- message: disallow props other than data or errors in SvelteKit page components.
line: 4
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/invalid/svelte-config/svelte.config.js
================================================
export default {
kit: {
files: {
routes: 'tests/fixtures/rules/valid-prop-names-in-kit-pages/invalid/svelte-config'
}
}
};
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/invalid/svelte-config-from-parser-options/+page.svelte
================================================
{foo}, {bar}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/invalid/svelte-config-from-parser-options/_config.json
================================================
{
"languageOptions": {
"parserOptions": {
"svelteConfig": {
"kit": {
"files": {
"routes": "tests/fixtures/rules/valid-prop-names-in-kit-pages/invalid/svelte-config-from-parser-options"
}
}
}
}
}
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/invalid/svelte-config-from-parser-options/errors.yaml
================================================
- message: disallow props other than data or errors in SvelteKit page components.
line: 2
column: 13
suggestions: null
- message: disallow props other than data or errors in SvelteKit page components.
line: 3
column: 13
suggestions: null
- message: disallow props other than data or errors in SvelteKit page components.
line: 4
column: 15
suggestions: null
- message: disallow props other than data or errors in SvelteKit page components.
line: 4
column: 20
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/invalid/svelte4-children/+page.svelte
================================================
{children}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/invalid/svelte4-children/_config.json
================================================
{
"languageOptions": {
"parserOptions": {
"svelteConfig": {
"kit": {
"files": {
"routes": "tests/fixtures/rules/valid-prop-names-in-kit-pages/invalid/svelte4-children"
}
}
}
}
}
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/invalid/svelte4-children/errors.yaml
================================================
- message: disallow props other than data or errors in SvelteKit page components.
line: 2
column: 13
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/invalid/svelte4-children/requirements.json
================================================
{
"svelte": "^3.0.0 || ^4.0.0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/invalid/svelte5/+page.svelte
================================================
{foo}, {bar}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/invalid/svelte5/_config.json
================================================
{
"languageOptions": {
"parserOptions": {
"svelteConfig": {
"kit": {
"files": {
"routes": "tests/fixtures/rules/valid-prop-names-in-kit-pages/invalid/svelte5"
}
}
}
}
}
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/invalid/svelte5/errors.yaml
================================================
- message: disallow props other than data or errors in SvelteKit page components.
line: 2
column: 8
suggestions: null
- message: disallow props other than data or errors in SvelteKit page components.
line: 2
column: 13
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/invalid/svelte5/requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/_config.json
================================================
{
"settings": {
"svelte": {
"kit": {
"files": {
"routes": "tests/fixtures"
}
}
}
}
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/not-page/svelte5/test01-input.svelte
================================================
{data}, {errors}, {foo}, {bar}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/not-page/svelte5/test01-requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/not-page/test01-input.svelte
================================================
{data}, {errors}, {foo}, {bar}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/svelte5/+page.svelte
================================================
{data}, {errors}
{#if form?.success}
Successfully logged in! Welcome back, {data.user.name}
{/if}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/svelte5/_config.json
================================================
{
"languageOptions": {
"parserOptions": {
"svelteConfig": {
"kit": {
"files": {
"routes": "tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/svelte5"
}
}
}
}
}
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/svelte5/requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/svelte5-typescript/+page.svelte
================================================
{pageData}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/svelte5-typescript/_config.json
================================================
{
"languageOptions": {
"parserOptions": {
"svelteConfig": {
"kit": {
"files": {
"routes": "tests/fixtures/rules/valid-prop-names-in-kit-pages/invalid/svelte5"
}
}
}
}
}
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/svelte5-typescript/requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/svelte5-without-runes/+page.svelte
================================================
{data}, {errors}
{#if form?.success}
Successfully logged in! Welcome back, {data.user.name}
{/if}
Post comment
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/svelte5-without-runes/_config.json
================================================
{
"languageOptions": {
"parserOptions": {
"svelteConfig": {
"kit": {
"files": {
"routes": "tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/svelte5-without-runes"
}
}
}
}
}
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/svelte5-without-runes/requirements.json
================================================
{
"svelte": ">=5.0.0-0"
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/test-for-form/+page.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/test-for-form/_config.json
================================================
{
"settings": {
"svelte": {
"kit": {
"files": {
"routes": "tests/fixtures"
}
}
}
}
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/test001/+page.svelte
================================================
{data}, {errors}
{#if form?.success}
Successfully logged in! Welcome back, {data.user.name}
{/if}
Post comment
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/test001/_config.json
================================================
{
"settings": {
"svelte": {
"kit": {
"files": {
"routes": "tests/fixtures"
}
}
}
}
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/test002-1/+page.svelte
================================================
{data}, {errors}, {foo}, {bar}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/test002-1/_config.json
================================================
{
"settings": {
"svelte": {
"kit": {
"files": {
"routes": "tests/fixtures"
}
}
}
}
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/test002-2/+page.svelte
================================================
{data}, {errors}, {foo}, {bar}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/test002-2/_config.json
================================================
{
"settings": {
"svelte": {
"kit": {
"files": {
"routes": "tests/fixtures"
}
}
}
}
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/test003-1/+page.svelte
================================================
{data}, {errors}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/test003-1/_config.json
================================================
{
"settings": {
"svelte": {
"kit": {
"files": {
"routes": "tests/fixtures"
}
}
}
}
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/test003-2/+page.svelte
================================================
{data}, {errors}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/test003-2/_config.json
================================================
{
"settings": {
"svelte": {
"kit": {
"files": {
"routes": "tests/fixtures"
}
}
}
}
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/test004-1/+page.svelte
================================================
{data}, {errors}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/test004-1/_config.json
================================================
{
"settings": {
"svelte": {
"kit": {
"files": {
"routes": "tests/fixtures"
}
}
}
}
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/test004-2/+page.svelte
================================================
{data}, {errors}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/test004-2/_config.json
================================================
{
"settings": {
"svelte": {
"kit": {
"files": {
"routes": "tests/fixtures"
}
}
}
}
}
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-style-parse/invalid/invalid-css01-errors.yaml
================================================
- message: 'Error parsing style element. Error message:
"tests/fixtures/rules/valid-style-parse/invalid/invalid-css01-input.svelte:4:11:
Unknown word .div-class/35"'
line: 7
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-style-parse/invalid/invalid-css01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-style-parse/invalid/invalid-scss01-errors.yaml
================================================
- message: 'Error parsing style element. Error message:
"tests/fixtures/rules/valid-style-parse/invalid/invalid-scss01-input.svelte:4:11:
Unknown word .div-class/35"'
line: 7
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-style-parse/invalid/invalid-scss01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-style-parse/invalid/unknown-lang01-errors.yaml
================================================
- message: Found unsupported style element language "invalid-lang"
line: 7
column: 1
suggestions: null
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-style-parse/invalid/unknown-lang01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-style-parse/valid/no-style01-input.svelte
================================================
Hello
World!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-style-parse/valid/valid-css01-input.svelte
================================================
Hello
World!
================================================
FILE: packages/eslint-plugin-svelte/tests/fixtures/rules/valid-style-parse/valid/valid-scss01-input.svelte
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/src/configs/all.ts
================================================
import assert from 'assert';
import plugin from '../../../src/index.js';
import { loadESLint, type ESLint as ESLintClass } from 'eslint';
describe('`all` config', () => {
let ESLint: typeof ESLintClass;
before(async () => {
ESLint = await loadESLint({ useFlatConfig: true });
});
it('`all` config should work. ', async () => {
const code = `{@html a+b}`;
const linter = new ESLint({
overrideConfigFile: true,
overrideConfig: plugin.configs['flat/all']
});
const result = await linter.lintText(code, { filePath: 'test.svelte' });
const messages = result[0].messages;
assert.deepStrictEqual(
messages.map((m) => ({ ruleId: m.ruleId, line: m.line, message: m.message })),
[
{
ruleId: 'svelte/no-at-html-tags',
message: '`{@html}` can lead to XSS attack.',
line: 1
}
]
);
});
});
================================================
FILE: packages/eslint-plugin-svelte/tests/src/configs/base.ts
================================================
import assert from 'assert';
import plugin from '../../../src/index.js';
import { loadESLint, type ESLint as ESLintClass } from 'eslint';
describe('`base` config', () => {
let ESLint: typeof ESLintClass;
before(async () => {
ESLint = await loadESLint({ useFlatConfig: true });
});
it('`base` config should work. ', async () => {
const code = `
{@html a+b}
{@html a+b}`;
const linter = new ESLint({
overrideConfigFile: true,
overrideConfig: [
...plugin.configs['flat/base'],
{
rules: {
'svelte/no-at-html-tags': 'error'
}
}
]
});
const result = await linter.lintText(code, { filePath: 'test.svelte' });
const messages = result[0].messages;
assert.deepStrictEqual(
messages.map((m) => ({ ruleId: m.ruleId, line: m.line, message: m.message })),
[
{
ruleId: 'svelte/no-at-html-tags',
message: '`{@html}` can lead to XSS attack.',
line: 4
}
]
);
const resultWithJs = await linter.lintText(';', { filePath: 'test.js' });
const messagesWithJs = resultWithJs[0].messages;
assert.deepStrictEqual(
messagesWithJs.map((m) => ({
ruleId: m.ruleId,
line: m.line,
message: m.message
})),
[]
);
});
});
================================================
FILE: packages/eslint-plugin-svelte/tests/src/configs/recommended.ts
================================================
import assert from 'assert';
import plugin from '../../../src/index.js';
import { loadESLint, type ESLint as ESLintClass } from 'eslint';
describe('`recommended` config', () => {
let ESLint: typeof ESLintClass;
before(async () => {
ESLint = await loadESLint({ useFlatConfig: true });
});
it('`recommended` config should work. ', async () => {
const code = `{@html a+b}`;
const linter = new ESLint({
overrideConfigFile: true,
overrideConfig: plugin.configs['flat/recommended']
});
const result = await linter.lintText(code, { filePath: 'test.svelte' });
const messages = result[0].messages;
assert.deepStrictEqual(
messages.map((m) => ({ ruleId: m.ruleId, line: m.line, message: m.message })),
[
{
ruleId: 'svelte/no-at-html-tags',
message: '`{@html}` can lead to XSS attack.',
line: 1
}
]
);
const resultWithJs = await linter.lintText(';', { filePath: 'test.js' });
const messagesWithJs = resultWithJs[0].messages;
assert.deepStrictEqual(
messagesWithJs.map((m) => ({
ruleId: m.ruleId,
line: m.line,
message: m.message
})),
[]
);
});
});
================================================
FILE: packages/eslint-plugin-svelte/tests/src/index.spec.ts
================================================
import assert from 'assert';
import { shouldRun } from '../../src/utils/index.js';
const actualSvelte3: Parameters[0] = {
svelteVersion: '3/4',
svelteFileType: '.svelte',
runes: null,
svelteKitVersion: null,
svelteKitFileType: null
};
const actualSvelte5: Parameters[0] = {
svelteVersion: '5',
svelteFileType: '.svelte',
runes: true,
svelteKitVersion: null,
svelteKitFileType: null
};
const actualUndetermined: Parameters[0] = {
svelteVersion: '5',
svelteFileType: '.svelte',
runes: 'undetermined',
svelteKitVersion: null,
svelteKitFileType: null
};
const actualSvelte5Script: Parameters[0] = {
svelteVersion: '5',
svelteFileType: '.svelte.[js|ts]',
runes: true,
svelteKitVersion: null,
svelteKitFileType: null
};
const actualSvelteKit: Parameters[0] = {
svelteVersion: '5',
svelteFileType: '.svelte',
runes: true,
svelteKitVersion: '2',
svelteKitFileType: '+page.svelte'
};
const actualSvelteKitNotRoute: Parameters[0] = {
svelteVersion: '5',
svelteFileType: '.svelte',
runes: true,
svelteKitVersion: '2',
svelteKitFileType: null
};
describe('shouldRun', () => {
it('no condition1', () => {
assert.strictEqual(shouldRun(actualSvelte3, []), true);
});
it('no condition2', () => {
assert.strictEqual(shouldRun(actualSvelte3, [{}]), true);
});
it('no condition3', () => {
assert.strictEqual(
shouldRun(actualSvelte3, [
{
svelteVersions: undefined
}
]),
true
);
});
it('no condition4', () => {
assert.strictEqual(
shouldRun(actualSvelte3, [
{
svelteVersions: []
}
]),
true
);
});
it('simple true', () => {
assert.strictEqual(
shouldRun(actualSvelte3, [
{
svelteVersions: ['3/4']
}
]),
true
);
});
it('simple false', () => {
assert.strictEqual(
shouldRun(actualSvelte3, [
{
svelteVersions: ['5']
}
]),
false
);
});
it('or true', () => {
assert.strictEqual(
shouldRun(actualSvelte3, [
{
svelteVersions: ['3/4']
},
{
svelteVersions: ['5']
}
]),
true
);
});
it('or false', () => {
assert.strictEqual(
shouldRun(actualSvelteKit, [
{
svelteKitFileTypes: ['+page.[js|ts]']
},
{
svelteKitFileTypes: ['+page.server.[js|ts]']
}
]),
false
);
});
it('and true', () => {
assert.strictEqual(
shouldRun(actualSvelte5, [
{
svelteVersions: ['5'],
runes: [true]
}
]),
true
);
});
it('and false', () => {
assert.strictEqual(
shouldRun(actualSvelte5, [
{
svelteVersions: ['5'],
runes: [false]
}
]),
false
);
});
it('undetermined true', () => {
assert.strictEqual(
shouldRun(actualUndetermined, [
{
svelteVersions: ['5'],
runes: ['undetermined']
}
]),
true
);
});
it('real - svelte3', () => {
assert.strictEqual(
shouldRun(actualSvelte3, [
{
svelteVersions: ['3/4']
}
]),
true
);
});
it('real - Svelte5 with runes', () => {
assert.strictEqual(
shouldRun(actualSvelte5, [
{
svelteVersions: ['5'],
svelteFileTypes: ['.svelte'],
runes: [true]
}
]),
true
);
});
it('real - Svelte5 without runes', () => {
assert.strictEqual(
shouldRun(actualSvelte5, [
{
svelteVersions: ['5'],
svelteFileTypes: ['.svelte'],
runes: [false]
}
]),
false
);
});
it('real - Svelte5 script', () => {
assert.strictEqual(
shouldRun(actualSvelte5Script, [
{
svelteVersions: ['5'],
svelteFileTypes: ['.svelte.[js|ts]'],
runes: [true]
}
]),
true
);
});
it('real - SvelteKit1', () => {
assert.strictEqual(
shouldRun(actualSvelteKit, [
{
svelteKitVersions: ['2'],
svelteKitFileTypes: ['+page.svelte']
}
]),
true
);
});
it('real - SvelteKit2', () => {
assert.strictEqual(
shouldRun(actualSvelteKit, [
{
svelteKitVersions: [null]
}
]),
false
);
});
it('real - SvelteKit3', () => {
assert.strictEqual(
shouldRun(actualSvelteKit, [
{
svelteKitVersions: ['2'],
svelteKitFileTypes: [null]
}
]),
false
);
});
it('real - SvelteKit not route1', () => {
assert.strictEqual(
shouldRun(actualSvelteKitNotRoute, [
{
svelteKitVersions: ['2'],
svelteKitFileTypes: [null]
}
]),
true
);
});
it('real - SvelteKit not route2', () => {
assert.strictEqual(
shouldRun(actualSvelteKitNotRoute, [
{
svelteKitVersions: ['2'],
svelteKitFileTypes: ['+page.svelte']
}
]),
false
);
});
});
================================================
FILE: packages/eslint-plugin-svelte/tests/src/integration/no-unused-vars.ts
================================================
import type { Rule } from 'eslint';
import { getCoreRule } from '../../../src/utils/eslint-core.js';
import { RuleTester } from '../../utils/eslint-compat.js';
import * as parser from 'svelte-eslint-parser';
describe('Integration test for no-unused-vars', () => {
const ruleNoUnusedVars = getCoreRule('no-unused-vars') as unknown as Rule.RuleModule;
const tester = new RuleTester({
languageOptions: {
parser: parser,
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('no-unused-vars', ruleNoUnusedVars, {
valid: [
`
`,
`
`,
`
`,
`
`
],
invalid: [
{
code: `
`,
errors: 1
},
{
code: `
`,
errors: 1
},
{
code: `
`,
errors: 1
},
{
code: `
`,
errors: 1
}
]
});
});
================================================
FILE: packages/eslint-plugin-svelte/tests/src/meta.ts
================================================
import assert from 'assert';
import plugin from '../../src/index.js';
import { version } from '../../package.json';
const expectedMeta = {
name: 'eslint-plugin-svelte',
version
};
describe('Test for meta object', () => {
it('A plugin should have a meta object.', () => {
assert.strictEqual(plugin.meta.name, expectedMeta.name);
assert.strictEqual(typeof plugin.meta.version, 'string');
});
for (const [name, processor] of Object.entries(plugin.processors)) {
it(`"${name}" processor should have a meta object.`, () => {
assert.strictEqual(processor.meta.name, expectedMeta.name);
assert.strictEqual(typeof processor.meta.version, 'string');
});
}
});
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/@typescript-eslint/no-unnecessary-condition.ts
================================================
import { RuleTester } from '../../../utils/eslint-compat.js';
import rule from '../../../../src/rules/@typescript-eslint/no-unnecessary-condition.js';
import { loadTestCases, RULES_PROJECT } from '../../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module',
parserOptions: {
parser: {
ts: '@typescript-eslint/parser',
js: 'espree'
},
project: RULES_PROJECT,
disallowAutomaticSingleRunInference: true
}
}
});
tester.run(
'@typescript-eslint/no-unnecessary-condition',
rule as any,
loadTestCases('@typescript-eslint/no-unnecessary-condition')
);
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/@typescript-eslint/original-tests/fixtures/file.ts
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/@typescript-eslint/original-tests/fixtures/react.tsx
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/@typescript-eslint/original-tests/fixtures/tsconfig.json
================================================
{
"compilerOptions": {
"jsx": "preserve",
"target": "es5",
"module": "commonjs",
"strict": true,
"esModuleInterop": true,
"lib": ["es2015", "es2017", "esnext"],
"experimentalDecorators": true
},
"include": ["file.ts", "react.tsx"]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/@typescript-eslint/original-tests/fixtures/unstrict/file.ts
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/@typescript-eslint/original-tests/fixtures/unstrict/react.tsx
================================================
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/@typescript-eslint/original-tests/fixtures/unstrict/tsconfig.json
================================================
{
"compilerOptions": {
"jsx": "preserve",
"target": "es5",
"module": "commonjs",
"strict": false,
"esModuleInterop": true,
"lib": ["es2015", "es2017", "esnext"],
"experimentalDecorators": true
},
"include": ["file.ts", "react.tsx"]
}
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/@typescript-eslint/original-tests/no-unnecessary-condition.ts
================================================
// Original test cases
// https://github.com/typescript-eslint/typescript-eslint/blob/78467fc1bde9bd2db1e08b3d19f151f4adaff8a9/packages/eslint-plugin/tests/rules/no-unnecessary-condition.test.ts
/* eslint func-style: off, eslint-plugin/consistent-output: off -- respect original */
import * as path from 'path';
import { fileURLToPath } from 'url';
import { RuleTester } from '../../../../utils/eslint-compat.js';
import type * as eslint from 'eslint';
import * as typescriptParser from '@typescript-eslint/parser';
import rule from '../../../../../src/rules/@typescript-eslint/no-unnecessary-condition.js';
const url = new URL(import.meta.url);
const __dirname = path.dirname(fileURLToPath(url));
function getFixturesRootDir(): string {
return path.join(__dirname, 'fixtures');
}
const rootPath = getFixturesRootDir();
const ruleTester = new RuleTester({
languageOptions: {
parser: typescriptParser,
parserOptions: {
tsconfigRootDir: rootPath,
project: './tsconfig.json',
disallowAutomaticSingleRunInference: true
}
}
});
function withFileName<
TestCase extends eslint.RuleTester.ValidTestCase | eslint.RuleTester.InvalidTestCase
>(list: (string | TestCase)[]): TestCase[] {
return list.map((e: any) => {
if (typeof e === 'string') {
return { code: e, filename: path.join(rootPath, 'file.ts') } as TestCase;
}
if (e.filename) return e;
return {
...e,
filename: e.languageOptions?.parserOptions?.tsconfigRootDir
? path.join(e.languageOptions?.parserOptions.tsconfigRootDir, 'file.ts')
: path.join(rootPath, 'file.ts')
} as TestCase;
});
}
const ruleError = (
line: number,
column: number,
messageId: string
): {
messageId: string;
line: number;
column: number;
} => ({
messageId,
line,
column
});
const necessaryConditionTest = (condition: string): string => `
declare const b1: ${condition};
declare const b2: boolean;
const t1 = b1 && b2;
`;
const unnecessaryConditionTest = (
condition: string,
messageId: string
): eslint.RuleTester.InvalidTestCase => ({
code: necessaryConditionTest(condition),
errors: [ruleError(4, 12, messageId)]
});
ruleTester.run('no-unnecessary-conditionals', rule as any, {
valid: withFileName([
`
declare const b1: boolean;
declare const b2: boolean;
const t1 = b1 && b2;
const t2 = b1 || b2;
if (b1 && b2) {
}
while (b1 && b2) {}
for (let i = 0; b1 && b2; i++) {
break;
}
const t1 = b1 && b2 ? 'yes' : 'no';
if (b1 && b2) {
}
while (b1 && b2) {}
for (let i = 0; b1 && b2; i++) {
break;
}
const t1 = b1 && b2 ? 'yes' : 'no';
for (;;) {}
`,
necessaryConditionTest('false | 5'), // Truthy literal and falsy literal
necessaryConditionTest('boolean | "foo"'), // boolean and truthy literal
necessaryConditionTest('0 | boolean'), // boolean and falsy literal
necessaryConditionTest('boolean | object'), // boolean and always-truthy type
necessaryConditionTest('false | object'), // always truthy type and falsy literal
// always falsy type and always truthy type
necessaryConditionTest('null | object'),
necessaryConditionTest('undefined | true'),
necessaryConditionTest('void | true'),
necessaryConditionTest('any'), // any
necessaryConditionTest('unknown'), // unknown
// Generic type params
`
function test(t: T) {
return t ? 'yes' : 'no';
}
`,
`
// Naked type param
function test(t: T) {
return t ? 'yes' : 'no';
}
`,
`
// Naked type param in union
function test(t: T | []) {
return t ? 'yes' : 'no';
}
`,
// Boolean expressions
`
function test(a: string) {
const t1 = a === 'a';
const t2 = 'a' === a;
}
`,
`
function test(a?: string) {
const t1 = a === undefined;
const t2 = undefined === a;
const t1 = a !== undefined;
const t2 = undefined !== a;
}
`,
`
function test(a: null | string) {
const t1 = a === null;
const t2 = null === a;
const t1 = a !== null;
const t2 = null !== a;
}
`,
`
function test(a?: null | string) {
const t1 = a == null;
const t2 = null == a;
const t3 = a != null;
const t4 = null != a;
const t5 = a == undefined;
const t6 = undefined == a;
const t7 = a != undefined;
const t8 = undefined != a;
}
`,
`
function test(a?: string) {
const t1 = a == null;
const t2 = null == a;
const t3 = a != null;
const t4 = null != a;
const t5 = a == undefined;
const t6 = undefined == a;
const t7 = a != undefined;
const t8 = undefined != a;
}
`,
`
function test(a: null | string) {
const t1 = a == null;
const t2 = null == a;
const t3 = a != null;
const t4 = null != a;
const t5 = a == undefined;
const t6 = undefined == a;
const t7 = a != undefined;
const t8 = undefined != a;
}
`,
`
function test(a: any) {
const t1 = a == null;
const t2 = null == a;
const t3 = a != null;
const t4 = null != a;
const t5 = a == undefined;
const t6 = undefined == a;
const t7 = a != undefined;
const t8 = undefined != a;
const t9 = a === null;
const t10 = null === a;
const t11 = a !== null;
const t12 = null !== a;
const t13 = a === undefined;
const t14 = undefined === a;
const t15 = a !== undefined;
const t16 = undefined !== a;
}
`,
`
function test(a: unknown) {
const t1 = a == null;
const t2 = null == a;
const t3 = a != null;
const t4 = null != a;
const t5 = a == undefined;
const t6 = undefined == a;
const t7 = a != undefined;
const t8 = undefined != a;
const t9 = a === null;
const t10 = null === a;
const t11 = a !== null;
const t12 = null !== a;
const t13 = a === undefined;
const t14 = undefined === a;
const t15 = a !== undefined;
const t16 = undefined !== a;
}
`,
`
function test(a: T) {
const t1 = a == null;
const t2 = null == a;
const t3 = a != null;
const t4 = null != a;
const t5 = a == undefined;
const t6 = undefined == a;
const t7 = a != undefined;
const t8 = undefined != a;
const t9 = a === null;
const t10 = null === a;
const t11 = a !== null;
const t12 = null !== a;
const t13 = a === undefined;
const t14 = undefined === a;
const t15 = a !== undefined;
const t16 = undefined !== a;
}
`,
//
// Predicate functions
//
`
// with literal arrow function
[0, 1, 2].filter(x => x);
// filter with named function
function length(x: string) {
return x.length;
}
['a', 'b', ''].filter(length);
// with non-literal array
function nonEmptyStrings(x: string[]) {
return x.filter(length);
}
// filter-like predicate
function count(
list: string[],
predicate: (value: string, index: number, array: string[]) => unknown,
) {
return list.filter(predicate).length;
}
`,
// Ignores non-array methods of the same name
`
const notArray = {
filter: (func: () => boolean) => func(),
find: (func: () => boolean) => func(),
};
notArray.filter(() => true);
notArray.find(() => true);
`,
// Nullish coalescing operator
`
function test(a: string | null) {
return a ?? 'default';
}
`,
`
function test(a: string | undefined) {
return a ?? 'default';
}
`,
`
function test(a: string | null | undefined) {
return a ?? 'default';
}
`,
`
function test(a: unknown) {
return a ?? 'default';
}
`,
// Indexing cases
`
declare const arr: object[];
if (arr[42]) {
} // looks unnecessary from the types, but isn't
const tuple = [{}] as [object];
declare const n: number;
if (tuple[n]) {
}
`,
// Optional-chaining indexing
`
declare const arr: Array<{ value: string } & (() => void)>;
if (arr[42]?.value) {
}
arr[41]?.();
// An array access can "infect" deeper into the chain
declare const arr2: Array<{ x: { y: { z: object } } }>;
arr2[42]?.x?.y?.z;
const tuple = ['foo'] as const;
declare const n: number;
tuple[n]?.toUpperCase();
`,
`
if (arr?.[42]) {
}
`,
`
declare const returnsArr: undefined | (() => string[]);
if (returnsArr?.()[42]) {
}
returnsArr?.()[42]?.toUpperCase();
`,
// nullish + array index
`
declare const arr: string[][];
arr[x] ?? [];
`,
// nullish + optional array index
`
declare const arr: { foo: number }[];
const bar = arr[42]?.foo ?? 0;
`,
// Doesn't check the right-hand side of a logical expression
// in a non-conditional context
`
declare const b1: boolean;
declare const b2: true;
const x = b1 && b2;
`,
{
code: `
while (true) {}
for (; true; ) {}
do {} while (true);
`,
options: [{ allowConstantLoopConditions: true }]
},
`
let foo: undefined | { bar: true };
foo?.bar;
`,
`
let foo: null | { bar: true };
foo?.bar;
`,
`
let foo: undefined;
foo?.bar;
`,
`
let foo: undefined;
foo?.bar.baz;
`,
`
let foo: null;
foo?.bar;
`,
`
let anyValue: any;
anyValue?.foo;
`,
`
let unknownValue: unknown;
unknownValue?.foo;
`,
`
let foo: undefined | (() => {});
foo?.();
`,
`
let foo: null | (() => {});
foo?.();
`,
`
let foo: undefined;
foo?.();
`,
`
let foo: undefined;
foo?.().bar;
`,
`
let foo: null;
foo?.();
`,
`
let anyValue: any;
anyValue?.();
`,
`
let unknownValue: unknown;
unknownValue?.();
`,
'const foo = [1, 2, 3][0];',
`
declare const foo: { bar?: { baz: { c: string } } } | null;
foo?.bar?.baz;
`,
`
foo?.bar?.baz?.qux;
`,
`
declare const foo: { bar: { baz: string } };
foo.bar.qux?.();
`,
`
type Foo = { baz: number } | null;
type Bar = { baz: null | string | { qux: string } };
declare const foo: { fooOrBar: Foo | Bar } | null;
foo?.fooOrBar?.baz?.qux;
`,
`
type Foo = { [key: string]: string } | null;
declare const foo: Foo;
const key = '1';
foo?.[key]?.trim();
`,
`
type Foo = { [key: string]: string; foo: 'foo'; bar: 'bar' } | null;
type Key = 'bar' | 'foo';
declare const foo: Foo;
declare const key: Key;
foo?.[key].trim();
`,
`
interface Outer {
inner?: {
[key: string]: string | undefined;
};
}
function Foo(outer: Outer, key: string): number | undefined {
return outer.inner?.[key]?.charCodeAt(0);
}
`,
`
interface Outer {
inner?: {
[key: string]: string | undefined;
bar: 'bar';
};
}
type Foo = 'foo';
function Foo(outer: Outer, key: Foo): number | undefined {
return outer.inner?.[key]?.charCodeAt(0);
}
`,
`
type Foo = { [key: string]: string; foo: 'foo'; bar: 'bar' } | null;
type Key = 'bar' | 'foo' | 'baz';
declare const foo: Foo;
declare const key: Key;
foo?.[key]?.trim();
`,
`
let latencies: number[][] = [];
function recordData(): void {
if (!latencies[0]) latencies[0] = [];
latencies[0].push(4);
}
recordData();
`,
`
let latencies: number[][] = [];
function recordData(): void {
if (latencies[0]) latencies[0] = [];
latencies[0].push(4);
}
recordData();
`,
`
function test(testVal?: boolean) {
if (testVal ?? true) {
console.log('test');
}
}
`,
`
declare const x: string[];
if (!x[0]) {
}
`,
// https://github.com/typescript-eslint/typescript-eslint/issues/2421
`
const isEven = (val: number) => val % 2 === 0;
if (!isEven(1)) {
}
`,
`
declare const booleanTyped: boolean;
declare const unknownTyped: unknown;
if (!(booleanTyped || unknownTyped)) {
}
`,
{
code: `
declare const x: string[] | null;
// eslint-disable-next-line
if (x) {
}
`,
options: [
{
allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing: true
}
],
languageOptions: {
parserOptions: {
tsconfigRootDir: path.join(rootPath, 'unstrict')
}
}
}
]),
invalid: withFileName([
// Ensure that it's checking in all the right places
{
code: `
const b1 = true;
declare const b2: boolean;
const t1 = b1 && b2;
const t2 = b1 || b2;
if (b1 && b2) {
}
if (b2 && b1) {
}
while (b1 && b2) {}
while (b2 && b1) {}
for (let i = 0; b1 && b2; i++) {
break;
}
const t1 = b1 && b2 ? 'yes' : 'no';
const t1 = b2 && b1 ? 'yes' : 'no';
`,
errors: [
ruleError(4, 12, 'alwaysTruthy'),
ruleError(5, 12, 'alwaysTruthy'),
ruleError(6, 5, 'alwaysTruthy'),
ruleError(8, 11, 'alwaysTruthy'),
ruleError(10, 8, 'alwaysTruthy'),
ruleError(11, 14, 'alwaysTruthy'),
ruleError(12, 17, 'alwaysTruthy'),
ruleError(15, 12, 'alwaysTruthy'),
ruleError(16, 18, 'alwaysTruthy')
]
},
// Ensure that it's complaining about the right things
unnecessaryConditionTest('object', 'alwaysTruthy'),
unnecessaryConditionTest('object | true', 'alwaysTruthy'),
unnecessaryConditionTest('"" | false', 'alwaysFalsy'), // Two falsy literals
unnecessaryConditionTest('"always truthy"', 'alwaysTruthy'),
unnecessaryConditionTest(`undefined`, 'alwaysFalsy'),
unnecessaryConditionTest('null', 'alwaysFalsy'),
unnecessaryConditionTest('void', 'alwaysFalsy'),
unnecessaryConditionTest('never', 'never'),
// More complex logical expressions
{
code: `
declare const b1: boolean;
declare const b2: boolean;
if (true && b1 && b2) {
}
if (b1 && false && b2) {
}
if (b1 || b2 || true) {
}
`,
errors: [
ruleError(4, 5, 'alwaysTruthy'),
ruleError(6, 11, 'alwaysFalsy'),
ruleError(8, 17, 'alwaysTruthy')
]
},
// Generic type params
{
code: `
function test(t: T) {
return t ? 'yes' : 'no';
}
`,
errors: [ruleError(3, 10, 'alwaysTruthy')]
},
{
code: `
function test(t: T) {
return t ? 'yes' : 'no';
}
`,
errors: [ruleError(3, 10, 'alwaysFalsy')]
},
{
code: `
function test(t: T) {
return t ? 'yes' : 'no';
}
`,
errors: [ruleError(3, 10, 'alwaysTruthy')]
},
// Boolean expressions
{
code: `
function test(a: 'a') {
return a === 'a';
}
`,
errors: [ruleError(3, 10, 'literalBooleanExpression')]
},
{
code: `
const y = 1;
if (y === 0) {
}
`,
errors: [ruleError(3, 5, 'literalBooleanExpression')]
},
{
code: `
enum Foo {
a = 1,
b = 2,
}
const x = Foo.a;
if (x === Foo.a) {
}
`,
errors: [ruleError(8, 5, 'literalBooleanExpression')]
},
// Workaround https://github.com/microsoft/TypeScript/issues/37160
{
code: `
function test(a: string) {
const t1 = a === undefined;
const t2 = undefined === a;
const t3 = a !== undefined;
const t4 = undefined !== a;
const t5 = a === null;
const t6 = null === a;
const t7 = a !== null;
const t8 = null !== a;
}
`,
errors: [
ruleError(3, 14, 'noOverlapBooleanExpression'),
ruleError(4, 14, 'noOverlapBooleanExpression'),
ruleError(5, 14, 'noOverlapBooleanExpression'),
ruleError(6, 14, 'noOverlapBooleanExpression'),
ruleError(7, 14, 'noOverlapBooleanExpression'),
ruleError(8, 14, 'noOverlapBooleanExpression'),
ruleError(9, 14, 'noOverlapBooleanExpression'),
ruleError(10, 14, 'noOverlapBooleanExpression')
]
},
{
code: `
function test(a?: string) {
const t1 = a === undefined;
const t2 = undefined === a;
const t3 = a !== undefined;
const t4 = undefined !== a;
const t5 = a === null;
const t6 = null === a;
const t7 = a !== null;
const t8 = null !== a;
}
`,
errors: [
ruleError(7, 14, 'noOverlapBooleanExpression'),
ruleError(8, 14, 'noOverlapBooleanExpression'),
ruleError(9, 14, 'noOverlapBooleanExpression'),
ruleError(10, 14, 'noOverlapBooleanExpression')
]
},
{
code: `
function test(a: null | string) {
const t1 = a === undefined;
const t2 = undefined === a;
const t3 = a !== undefined;
const t4 = undefined !== a;
const t5 = a === null;
const t6 = null === a;
const t7 = a !== null;
const t8 = null !== a;
}
`,
errors: [
ruleError(3, 14, 'noOverlapBooleanExpression'),
ruleError(4, 14, 'noOverlapBooleanExpression'),
ruleError(5, 14, 'noOverlapBooleanExpression'),
ruleError(6, 14, 'noOverlapBooleanExpression')
]
},
{
code: `
function test(a: T) {
const t1 = a == null;
const t2 = null == a;
const t3 = a != null;
const t4 = null != a;
const t5 = a == undefined;
const t6 = undefined == a;
const t7 = a != undefined;
const t8 = undefined != a;
const t9 = a === null;
const t10 = null === a;
const t11 = a !== null;
const t12 = null !== a;
const t13 = a === undefined;
const t14 = undefined === a;
const t15 = a !== undefined;
const t16 = undefined !== a;
}
`,
errors: [
ruleError(3, 14, 'noOverlapBooleanExpression'),
ruleError(4, 14, 'noOverlapBooleanExpression'),
ruleError(5, 14, 'noOverlapBooleanExpression'),
ruleError(6, 14, 'noOverlapBooleanExpression'),
ruleError(7, 14, 'noOverlapBooleanExpression'),
ruleError(8, 14, 'noOverlapBooleanExpression'),
ruleError(9, 14, 'noOverlapBooleanExpression'),
ruleError(10, 14, 'noOverlapBooleanExpression'),
ruleError(11, 14, 'noOverlapBooleanExpression'),
ruleError(12, 15, 'noOverlapBooleanExpression'),
ruleError(13, 15, 'noOverlapBooleanExpression'),
ruleError(14, 15, 'noOverlapBooleanExpression'),
ruleError(15, 15, 'noOverlapBooleanExpression'),
ruleError(16, 15, 'noOverlapBooleanExpression'),
ruleError(17, 15, 'noOverlapBooleanExpression'),
ruleError(18, 15, 'noOverlapBooleanExpression')
]
},
// Nullish coalescing operator
{
code: `
function test(a: string) {
return a ?? 'default';
}
`,
errors: [ruleError(3, 10, 'neverNullish')]
},
{
code: `
function test(a: string | false) {
return a ?? 'default';
}
`,
errors: [ruleError(3, 10, 'neverNullish')]
},
// nullish + array index without optional chaining
{
code: `
function test(a: { foo: string }[]) {
return a[0].foo ?? 'default';
}
`,
errors: [ruleError(3, 10, 'neverNullish')]
},
{
code: `
function test(a: null) {
return a ?? 'default';
}
`,
errors: [ruleError(3, 10, 'alwaysNullish')]
},
{
code: `
function test(a: null[]) {
return a[0] ?? 'default';
}
`,
errors: [ruleError(3, 10, 'alwaysNullish')]
},
{
code: `
function test(a: never) {
return a ?? 'default';
}
`,
errors: [ruleError(3, 10, 'never')]
},
// Predicate functions
{
code: `
[1, 3, 5].filter(() => true);
[1, 2, 3].find(() => {
return false;
});
// with non-literal array
function nothing(x: string[]) {
return x.filter(() => false);
}
// with readonly array
function nothing2(x: readonly string[]) {
return x.filter(() => false);
}
// with tuple
function nothing3(x: [string, string]) {
return x.filter(() => false);
}
`,
errors: [
ruleError(2, 24, 'alwaysTruthy'),
ruleError(4, 10, 'alwaysFalsy'),
ruleError(9, 25, 'alwaysFalsy'),
ruleError(13, 25, 'alwaysFalsy'),
ruleError(17, 25, 'alwaysFalsy')
]
},
// Indexing cases
{
// This is an error because 'dict' doesn't represent
// the potential for undefined in its types
code: `
declare const dict: Record;
if (dict['mightNotExist']) {
}
`,
errors: [ruleError(3, 5, 'alwaysTruthy')]
},
{
// Should still check tuples when accessed with literal numbers, since they don't have
// unsound index signatures
code: `
const x = [{}] as [{ foo: string }];
if (x[0]) {
}
if (x[0]?.foo) {
}
`,
output: `
const x = [{}] as [{ foo: string }];
if (x[0]) {
}
if (x[0].foo) {
}
`,
errors: [ruleError(3, 5, 'alwaysTruthy'), ruleError(5, 9, 'neverOptionalChain')]
},
{
// Shouldn't mistake this for an array indexing case
code: `
declare const arr: object[];
if (arr.filter) {
}
`,
errors: [ruleError(3, 5, 'alwaysTruthy')]
},
{
code: `
function truthy() {
return [];
}
function falsy() {}
[1, 3, 5].filter(truthy);
[1, 2, 3].find(falsy);
`,
errors: [ruleError(6, 18, 'alwaysTruthyFunc'), ruleError(7, 16, 'alwaysFalsyFunc')]
},
// Supports generics
// TODO: fix this
// {
// code: `
// const isTruthy = (t: T) => T;
// // Valid: numbers can be truthy or falsy (0).
// [0,1,2,3].filter(isTruthy);
// // Invalid: arrays are always falsy.
// [[1,2], [3,4]].filter(isTruthy);
// `,
// errors: [ruleError(6, 23, 'alwaysTruthyFunc')],
// },
{
code: `
while (true) {}
for (; true; ) {}
do {} while (true);
`,
options: [{ allowConstantLoopConditions: false }],
errors: [
ruleError(2, 8, 'alwaysTruthy'),
ruleError(3, 8, 'alwaysTruthy'),
ruleError(4, 14, 'alwaysTruthy')
]
},
{
code: `
let foo = { bar: true };
foo?.bar;
foo ?. bar;
foo ?.
bar;
foo
?. bar;
`,
output: `
let foo = { bar: true };
foo.bar;
foo . bar;
foo .
bar;
foo
. bar;
`,
errors: [
{
messageId: 'neverOptionalChain',
line: 3,
column: 4,
endLine: 3,
endColumn: 6
},
{
messageId: 'neverOptionalChain',
line: 4,
column: 5,
endLine: 4,
endColumn: 7
},
{
messageId: 'neverOptionalChain',
line: 5,
column: 5,
endLine: 5,
endColumn: 7
},
{
messageId: 'neverOptionalChain',
line: 8,
column: 3,
endLine: 8,
endColumn: 5
}
]
},
{
code: `
let foo = () => {};
foo?.();
foo ?. ();
foo ?.
();
foo
?. ();
`,
output: `
let foo = () => {};
foo();
foo ();
foo${' '}
();
foo
();
`,
errors: [
{
messageId: 'neverOptionalChain',
line: 3,
column: 4,
endLine: 3,
endColumn: 6
},
{
messageId: 'neverOptionalChain',
line: 4,
column: 5,
endLine: 4,
endColumn: 7
},
{
messageId: 'neverOptionalChain',
line: 5,
column: 5,
endLine: 5,
endColumn: 7
},
{
messageId: 'neverOptionalChain',
line: 8,
column: 3,
endLine: 8,
endColumn: 5
}
]
},
{
code: `
let foo = () => {};
foo?.(bar);
foo ?. (bar);
foo ?.
(bar);
foo
?. (bar);
`,
output: `
let foo = () => {};
foo(bar);
foo (bar);
foo${' '}
(bar);
foo
(bar);
`,
errors: [
{
messageId: 'neverOptionalChain',
line: 3,
column: 4,
endLine: 3,
endColumn: 6
},
{
messageId: 'neverOptionalChain',
line: 4,
column: 5,
endLine: 4,
endColumn: 7
},
{
messageId: 'neverOptionalChain',
line: 5,
column: 5,
endLine: 5,
endColumn: 7
},
{
messageId: 'neverOptionalChain',
line: 8,
column: 3,
endLine: 8,
endColumn: 5
}
]
},
{
code: 'const foo = [1, 2, 3]?.[0];',
output: 'const foo = [1, 2, 3][0];',
errors: [
{
messageId: 'neverOptionalChain',
line: 1,
endLine: 1,
column: 22,
endColumn: 24
}
]
},
{
code: `
declare const x: { a?: { b: string } };
x?.a?.b;
`,
output: `
declare const x: { a?: { b: string } };
x.a?.b;
`,
errors: [
{
messageId: 'neverOptionalChain',
line: 3,
endLine: 3,
column: 2,
endColumn: 4
}
]
},
{
code: `
declare const x: { a: { b?: { c: string } } };
x.a?.b?.c;
`,
output: `
declare const x: { a: { b?: { c: string } } };
x.a.b?.c;
`,
errors: [
{
messageId: 'neverOptionalChain',
line: 3,
endLine: 3,
column: 4,
endColumn: 6
}
]
},
{
code: `
let x: { a?: string };
x?.a;
`,
output: `
let x: { a?: string };
x.a;
`,
errors: [
{
messageId: 'neverOptionalChain',
line: 3,
endLine: 3,
column: 2,
endColumn: 4
}
]
},
{
code: `
declare const foo: { bar: { baz: { c: string } } } | null;
foo?.bar?.baz;
`,
output: `
declare const foo: { bar: { baz: { c: string } } } | null;
foo?.bar.baz;
`,
errors: [
{
messageId: 'neverOptionalChain',
line: 3,
endLine: 3,
column: 9,
endColumn: 11
}
]
},
{
code: `
declare const foo: { bar?: { baz: { qux: string } } } | null;
foo?.bar?.baz?.qux;
`,
output: `
declare const foo: { bar?: { baz: { qux: string } } } | null;
foo?.bar?.baz.qux;
`,
errors: [
{
messageId: 'neverOptionalChain',
line: 3,
endLine: 3,
column: 14,
endColumn: 16
}
]
},
{
code: `
declare const foo: { bar: { baz: { qux?: () => {} } } } | null;
foo?.bar?.baz?.qux?.();
`,
output: `
declare const foo: { bar: { baz: { qux?: () => {} } } } | null;
foo?.bar.baz.qux?.();
`,
errors: [
{
messageId: 'neverOptionalChain',
line: 3,
endLine: 3,
column: 9,
endColumn: 11
},
{
messageId: 'neverOptionalChain',
line: 3,
endLine: 3,
column: 14,
endColumn: 16
}
]
},
{
code: `
declare const foo: { bar: { baz: { qux: () => {} } } } | null;
foo?.bar?.baz?.qux?.();
`,
output: `
declare const foo: { bar: { baz: { qux: () => {} } } } | null;
foo?.bar.baz.qux();
`,
errors: [
{
messageId: 'neverOptionalChain',
line: 3,
endLine: 3,
column: 9,
endColumn: 11
},
{
messageId: 'neverOptionalChain',
line: 3,
endLine: 3,
column: 14,
endColumn: 16
},
{
messageId: 'neverOptionalChain',
line: 3,
endLine: 3,
column: 19,
endColumn: 21
}
]
},
{
code: `
type baz = () => { qux: () => {} };
declare const foo: { bar: { baz: baz } } | null;
foo?.bar?.baz?.().qux?.();
`,
output: `
type baz = () => { qux: () => {} };
declare const foo: { bar: { baz: baz } } | null;
foo?.bar.baz().qux();
`,
errors: [
{
messageId: 'neverOptionalChain',
line: 4,
endLine: 4,
column: 9,
endColumn: 11
},
{
messageId: 'neverOptionalChain',
line: 4,
endLine: 4,
column: 14,
endColumn: 16
},
{
messageId: 'neverOptionalChain',
line: 4,
endLine: 4,
column: 22,
endColumn: 24
}
]
},
{
code: `
type baz = null | (() => { qux: () => {} });
declare const foo: { bar: { baz: baz } } | null;
foo?.bar?.baz?.().qux?.();
`,
output: `
type baz = null | (() => { qux: () => {} });
declare const foo: { bar: { baz: baz } } | null;
foo?.bar.baz?.().qux();
`,
errors: [
{
messageId: 'neverOptionalChain',
line: 4,
endLine: 4,
column: 9,
endColumn: 11
},
{
messageId: 'neverOptionalChain',
line: 4,
endLine: 4,
column: 22,
endColumn: 24
}
]
},
{
code: `
type baz = null | (() => { qux: () => {} } | null);
declare const foo: { bar: { baz: baz } } | null;
foo?.bar?.baz?.()?.qux?.();
`,
output: `
type baz = null | (() => { qux: () => {} } | null);
declare const foo: { bar: { baz: baz } } | null;
foo?.bar.baz?.()?.qux();
`,
errors: [
{
messageId: 'neverOptionalChain',
line: 4,
endLine: 4,
column: 9,
endColumn: 11
},
{
messageId: 'neverOptionalChain',
line: 4,
endLine: 4,
column: 23,
endColumn: 25
}
]
},
{
code: `
type Foo = { baz: number };
type Bar = { baz: null | string | { qux: string } };
declare const foo: { fooOrBar: Foo | Bar } | null;
foo?.fooOrBar?.baz?.qux;
`,
output: `
type Foo = { baz: number };
type Bar = { baz: null | string | { qux: string } };
declare const foo: { fooOrBar: Foo | Bar } | null;
foo?.fooOrBar.baz?.qux;
`,
errors: [
{
messageId: 'neverOptionalChain',
line: 5,
endLine: 5,
column: 14,
endColumn: 16
}
]
},
{
code: `
declare const x: { a: { b: number } }[];
x[0].a?.b;
`,
output: `
declare const x: { a: { b: number } }[];
x[0].a.b;
`,
errors: [ruleError(3, 7, 'neverOptionalChain')]
},
{
code: `
type Foo = { [key: string]: string; foo: 'foo'; bar: 'bar' } | null;
type Key = 'bar' | 'foo';
declare const foo: Foo;
declare const key: Key;
foo?.[key]?.trim();
`,
output: `
type Foo = { [key: string]: string; foo: 'foo'; bar: 'bar' } | null;
type Key = 'bar' | 'foo';
declare const foo: Foo;
declare const key: Key;
foo?.[key].trim();
`,
errors: [
{
messageId: 'neverOptionalChain',
line: 7,
endLine: 7,
column: 11,
endColumn: 13
}
]
},
{
code: `
type Foo = { [key: string]: string; foo: 'foo'; bar: 'bar' } | null;
declare const foo: Foo;
const key = 'bar';
foo?.[key]?.trim();
`,
output: `
type Foo = { [key: string]: string; foo: 'foo'; bar: 'bar' } | null;
declare const foo: Foo;
const key = 'bar';
foo?.[key].trim();
`,
errors: [
{
messageId: 'neverOptionalChain',
line: 5,
endLine: 5,
column: 11,
endColumn: 13
}
]
},
{
code: `
interface Outer {
inner?: {
[key: string]: string | undefined;
bar: 'bar';
};
}
export function test(outer: Outer): number | undefined {
const key = 'bar';
return outer.inner?.[key]?.charCodeAt(0);
}
`,
output: `
interface Outer {
inner?: {
[key: string]: string | undefined;
bar: 'bar';
};
}
export function test(outer: Outer): number | undefined {
const key = 'bar';
return outer.inner?.[key].charCodeAt(0);
}
`,
errors: [
{
messageId: 'neverOptionalChain',
line: 11,
endLine: 11,
column: 28,
endColumn: 30
}
]
},
{
code: `
interface Outer {
inner?: {
[key: string]: string | undefined;
bar: 'bar';
};
}
type Bar = 'bar';
function Foo(outer: Outer, key: Bar): number | undefined {
return outer.inner?.[key]?.charCodeAt(0);
}
`,
output: `
interface Outer {
inner?: {
[key: string]: string | undefined;
bar: 'bar';
};
}
type Bar = 'bar';
function Foo(outer: Outer, key: Bar): number | undefined {
return outer.inner?.[key].charCodeAt(0);
}
`,
errors: [
{
messageId: 'neverOptionalChain',
line: 11,
endLine: 11,
column: 28,
endColumn: 30
}
]
},
// https://github.com/typescript-eslint/typescript-eslint/issues/2384
{
code: `
function test(testVal?: true) {
if (testVal ?? true) {
console.log('test');
}
}
`,
output: null,
errors: [
{
messageId: 'alwaysTruthy',
line: 3,
endLine: 3,
column: 7,
endColumn: 22
}
]
},
// https://github.com/typescript-eslint/typescript-eslint/issues/2255
{
code: `
const a = null;
if (!a) {
}
`,
errors: [ruleError(3, 6, 'alwaysTruthy')]
},
{
code: `
const a = true;
if (!a) {
}
`,
errors: [ruleError(3, 6, 'alwaysFalsy')]
},
{
code: `
function sayHi(): void {
console.log('Hi!');
}
let speech: never = sayHi();
if (!speech) {
}
`,
errors: [ruleError(7, 6, 'never')]
},
{
code: `
declare const x: string[] | null;
if (x) {
}
`,
languageOptions: {
parserOptions: {
tsconfigRootDir: path.join(rootPath, 'unstrict')
}
},
errors: [
{
messageId: 'noStrictNullCheck',
line: 0,
column: 1
},
{
messageId: 'alwaysTruthy',
line: 3,
column: 5
}
]
}
])
});
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/block-lang.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/block-lang.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('block-lang', rule as any, loadTestCases('block-lang'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/button-has-type.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/button-has-type.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('button-has-type', rule as any, loadTestCases('button-has-type'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/comment-directive.ts
================================================
import assert from 'assert';
import plugin from '../../../src/index.js';
import { loadESLint, type ESLint as ESLintClass } from 'eslint';
import * as svelteParser from 'svelte-eslint-parser';
// -----------------------------------------------------------------------------
// Tests
// -----------------------------------------------------------------------------
describe('comment-directive', () => {
let ESLint: typeof ESLintClass;
let linter: InstanceType;
before(async () => {
ESLint = await loadESLint({ useFlatConfig: true });
linter = new ESLint({
baseConfig: {
languageOptions: {
parser: svelteParser,
ecmaVersion:"latest"
},
plugins: {
svelte: plugin
},
rules: {
'no-undef': 'error',
'space-infix-ops': 'error',
'svelte/no-at-html-tags': 'error',
'svelte/comment-directive': 'error'
},
processor: 'svelte/svelte',
files: ['**']
},
overrideConfigFile: true
});
});
describe('eslint-disable/eslint-enable', () => {
it('disable all rules if ', async () => {
const code = `
{@html a+b}
`;
const result = await linter.lintText(code, { filePath: 'test.svelte' });
const messages = result[0].messages;
assert.strictEqual(messages.length, 0);
});
it('disable specific rules if ', async () => {
const code = `
{@html a+b}
`;
const result = await linter.lintText(code, { filePath: 'test.svelte' });
const messages = result[0].messages;
assert.strictEqual(messages.length, 3);
assert.strictEqual(messages[0].ruleId, 'svelte/no-at-html-tags');
assert.strictEqual(messages[1].ruleId, 'no-undef');
assert.strictEqual(messages[2].ruleId, 'no-undef');
});
it('enable all rules if ', async () => {
const code = `
{@html a+b}
{@html a+b}
`;
const result = await linter.lintText(code, { filePath: 'test.svelte' });
const messages = result[0].messages;
assert.strictEqual(messages.length, 4);
assert.strictEqual(messages[0].ruleId, 'svelte/no-at-html-tags');
assert.strictEqual(messages[0].line, 5);
assert.strictEqual(messages[1].ruleId, 'no-undef');
assert.strictEqual(messages[1].line, 5);
assert.strictEqual(messages[2].ruleId, 'space-infix-ops');
assert.strictEqual(messages[2].line, 5);
assert.strictEqual(messages[3].ruleId, 'no-undef');
assert.strictEqual(messages[3].line, 5);
});
it('enable specific rules if ', async () => {
const code = `
{@html a+b}
{@html a+b}
`;
const result = await linter.lintText(code, { filePath: 'test.svelte' });
const messages = result[0].messages;
assert.strictEqual(messages.length, 5);
assert.strictEqual(messages[0].ruleId, 'no-undef');
assert.strictEqual(messages[0].line, 3);
assert.strictEqual(messages[1].ruleId, 'no-undef');
assert.strictEqual(messages[1].line, 3);
assert.strictEqual(messages[2].ruleId, 'no-undef');
assert.strictEqual(messages[2].line, 5);
assert.strictEqual(messages[3].ruleId, 'space-infix-ops');
assert.strictEqual(messages[3].line, 5);
assert.strictEqual(messages[4].ruleId, 'no-undef');
assert.strictEqual(messages[4].line, 5);
});
it('should not affect to the code in
`;
const result = await linter.lintText(code, { filePath: 'test.svelte' });
const messages = result[0].messages;
assert.strictEqual(messages.length, 1);
assert.strictEqual(messages[0].ruleId, 'no-undef');
});
it('disable specific rules if ', async () => {
const code = `
{@html a+b}
`;
const result = await linter.lintText(code, { filePath: 'test.svelte' });
const messages = result[0].messages;
assert.strictEqual(messages.length, 2);
assert.strictEqual(messages[0].ruleId, 'no-undef');
assert.strictEqual(messages[1].ruleId, 'no-undef');
});
});
describe('eslint-disable-line', () => {
it('disable all rules if ', async () => {
const code = `
{@html a+b}
`;
const result = await linter.lintText(code, { filePath: 'test.svelte' });
const messages = result[0].messages;
assert.strictEqual(messages.length, 0);
});
it('disable specific rules if ', async () => {
const code = `
{@html a+b}
`;
const result = await linter.lintText(code, { filePath: 'test.svelte' });
const messages = result[0].messages;
assert.strictEqual(messages.length, 3);
assert.strictEqual(messages[0].ruleId, 'svelte/no-at-html-tags');
assert.strictEqual(messages[1].ruleId, 'no-undef');
assert.strictEqual(messages[2].ruleId, 'no-undef');
});
it("don't disable rules if is on another line", async () => {
const code = `
{@html a+b}
`;
const result = await linter.lintText(code, { filePath: 'test.svelte' });
const messages = result[0].messages;
assert.strictEqual(messages.length, 4);
assert.strictEqual(messages[0].ruleId, 'svelte/no-at-html-tags');
assert.strictEqual(messages[1].ruleId, 'no-undef');
assert.strictEqual(messages[2].ruleId, 'space-infix-ops');
assert.strictEqual(messages[3].ruleId, 'no-undef');
});
});
describe('eslint-disable-next-line', () => {
it('disable all rules if ', async () => {
const code = `
{@html a+b}
`;
const result = await linter.lintText(code, { filePath: 'test.svelte' });
const messages = result[0].messages;
assert.strictEqual(messages.length, 0);
});
it('disable specific rules if ', async () => {
const code = `
{@html a+b}
`;
const result = await linter.lintText(code, { filePath: 'test.svelte' });
const messages = result[0].messages;
assert.strictEqual(messages.length, 3);
assert.strictEqual(messages[0].ruleId, 'svelte/no-at-html-tags');
assert.strictEqual(messages[1].ruleId, 'no-undef');
assert.strictEqual(messages[2].ruleId, 'no-undef');
});
it("don't disable rules if is on another line", async () => {
const code = `
{@html a+b}
`;
const result = await linter.lintText(code, { filePath: 'test.svelte' });
const messages = result[0].messages;
assert.strictEqual(messages.length, 4);
assert.strictEqual(messages[0].ruleId, 'svelte/no-at-html-tags');
assert.strictEqual(messages[0].line, 4);
assert.strictEqual(messages[1].ruleId, 'no-undef');
assert.strictEqual(messages[1].line, 4);
assert.strictEqual(messages[2].ruleId, 'space-infix-ops');
assert.strictEqual(messages[2].line, 4);
assert.strictEqual(messages[3].ruleId, 'no-undef');
assert.strictEqual(messages[3].line, 4);
});
it('should affect only the next line', async () => {
const code = `
{@html a+b}
{@html a+b}
`;
const result = await linter.lintText(code, { filePath: 'test.svelte' });
const messages = result[0].messages;
assert.strictEqual(messages.length, 6);
assert.strictEqual(messages[0].ruleId, 'no-undef');
assert.strictEqual(messages[0].line, 3);
assert.strictEqual(messages[1].ruleId, 'no-undef');
assert.strictEqual(messages[1].line, 3);
assert.strictEqual(messages[2].ruleId, 'svelte/no-at-html-tags');
assert.strictEqual(messages[2].line, 4);
assert.strictEqual(messages[3].ruleId, 'no-undef');
assert.strictEqual(messages[3].line, 4);
assert.strictEqual(messages[4].ruleId, 'space-infix-ops');
assert.strictEqual(messages[4].line, 4);
assert.strictEqual(messages[5].ruleId, 'no-undef');
assert.strictEqual(messages[5].line, 4);
});
});
describe('allow description', () => {
it('disable all rules if ', async () => {
const code = `
{@html a+b}
`;
const result = await linter.lintText(code, { filePath: 'test.svelte' });
const messages = result[0].messages;
assert.strictEqual(messages.length, 0);
});
it('enable all rules if ', async () => {
const code = `
{@html a+b}
{@html a+b}
`;
const result = await linter.lintText(code, { filePath: 'test.svelte' });
const messages = result[0].messages;
assert.strictEqual(messages.length, 4);
assert.strictEqual(messages[0].ruleId, 'svelte/no-at-html-tags');
assert.strictEqual(messages[0].line, 5);
assert.strictEqual(messages[1].ruleId, 'no-undef');
assert.strictEqual(messages[1].line, 5);
assert.strictEqual(messages[2].ruleId, 'space-infix-ops');
assert.strictEqual(messages[2].line, 5);
assert.strictEqual(messages[3].ruleId, 'no-undef');
assert.strictEqual(messages[3].line, 5);
});
it('enable specific rules if ', async () => {
const code = `
{@html a+b}
{@html a+b}
`;
const result = await linter.lintText(code, { filePath: 'test.svelte' });
const messages = result[0].messages;
assert.strictEqual(messages.length, 5);
assert.strictEqual(messages[0].ruleId, 'no-undef');
assert.strictEqual(messages[0].line, 3);
assert.strictEqual(messages[1].ruleId, 'no-undef');
assert.strictEqual(messages[1].line, 3);
assert.strictEqual(messages[2].ruleId, 'no-undef');
assert.strictEqual(messages[2].line, 5);
assert.strictEqual(messages[3].ruleId, 'space-infix-ops');
assert.strictEqual(messages[3].line, 5);
assert.strictEqual(messages[4].ruleId, 'no-undef');
assert.strictEqual(messages[4].line, 5);
});
it('disable all rules if ', async () => {
const code = `
{@html a+b}
`;
const result = await linter.lintText(code, { filePath: 'test.svelte' });
const messages = result[0].messages;
assert.strictEqual(messages.length, 0);
});
it('disable specific rules if ', async () => {
const code = `
{@html a+b}
`;
const result = await linter.lintText(code, { filePath: 'test.svelte' });
const messages = result[0].messages;
assert.strictEqual(messages.length, 3);
assert.strictEqual(messages[0].ruleId, 'svelte/no-at-html-tags');
assert.strictEqual(messages[1].ruleId, 'no-undef');
assert.strictEqual(messages[2].ruleId, 'no-undef');
});
it('disable all rules if ', async () => {
const code = `
{@html a+b}
`;
const result = await linter.lintText(code, { filePath: 'test.svelte' });
const messages = result[0].messages;
assert.strictEqual(messages.length, 0);
});
it('disable specific rules if ', async () => {
const code = `
{@html a+b}
`;
const result = await linter.lintText(code, { filePath: 'test.svelte' });
const messages = result[0].messages;
assert.strictEqual(messages.length, 3);
assert.strictEqual(messages[0].ruleId, 'svelte/no-at-html-tags');
assert.strictEqual(messages[1].ruleId, 'no-undef');
assert.strictEqual(messages[2].ruleId, 'no-undef');
});
});
describe('reportUnusedDisableDirectives', () => {
before(() => {
linter = new ESLint({
baseConfig: {
languageOptions: {
parser: svelteParser,
ecmaVersion:"latest"
},
plugins: {
svelte: plugin
},
rules: {
'no-unused-vars': 'error',
'svelte/comment-directive': ['error', { reportUnusedDisableDirectives: true }],
'svelte/no-at-html-tags': 'error',
'svelte/no-at-debug-tags': 'error'
},
files: ['**'],
processor: 'svelte/svelte'
},
overrideConfigFile: true
});
});
it('report unused ', async () => {
const code = `
Hello
`;
const messages = (await linter.lintText(code, { filePath: 'test.svelte' }))[0].messages;
assert.strictEqual(messages.length, 1);
assert.strictEqual(messages[0].ruleId, 'svelte/comment-directive');
assert.strictEqual(
messages[0].message,
'Unused eslint-disable directive (no problems were reported).'
);
assert.strictEqual(messages[0].line, 2);
assert.strictEqual(messages[0].column, 9);
});
it('dont report unused ', async () => {
const code = `
{@html foo}{@debug foo}
`;
const messages = (await linter.lintText(code, { filePath: 'test.svelte' }))[0].messages;
assert.strictEqual(messages.length, 0);
});
it('disable and report unused ', async () => {
const code = `
{@html foo}{@debug foo}
Hello
`;
const messages = (await linter.lintText(code, { filePath: 'test.svelte' }))[0].messages;
assert.strictEqual(messages.length, 1);
assert.strictEqual(messages[0].ruleId, 'svelte/comment-directive');
assert.strictEqual(
messages[0].message,
'Unused eslint-disable directive (no problems were reported).'
);
assert.strictEqual(messages[0].line, 5);
assert.strictEqual(messages[0].column, 9);
});
it('report unused ', async () => {
const code = `
Hello
`;
const messages = (await linter.lintText(code, { filePath: 'test.svelte' }))[0].messages;
assert.strictEqual(messages.length, 2);
assert.strictEqual(messages[0].ruleId, 'svelte/comment-directive');
assert.strictEqual(
messages[0].message,
"Unused eslint-disable directive (no problems were reported from 'svelte/no-at-debug-tags')."
);
assert.strictEqual(messages[0].line, 2);
assert.strictEqual(messages[0].column, 29);
assert.strictEqual(messages[1].ruleId, 'svelte/comment-directive');
assert.strictEqual(
messages[1].message,
"Unused eslint-disable directive (no problems were reported from 'svelte/no-at-html-tags')."
);
assert.strictEqual(messages[1].line, 2);
assert.strictEqual(messages[1].column, 54);
});
it('report unused ', async () => {
const code = `
Hello
{@html foo}{@debug foo}
`;
const messages = (await linter.lintText(code, { filePath: 'test.svelte' }))[0].messages;
assert.strictEqual(messages.length, 4);
assert.strictEqual(messages[0].ruleId, 'svelte/comment-directive');
assert.strictEqual(
messages[0].message,
"Unused eslint-disable-next-line directive (no problems were reported from 'svelte/no-at-debug-tags')."
);
assert.strictEqual(messages[0].line, 2);
assert.strictEqual(messages[0].column, 39);
assert.strictEqual(messages[1].ruleId, 'svelte/comment-directive');
assert.strictEqual(
messages[1].message,
"Unused eslint-disable-next-line directive (no problems were reported from 'svelte/no-at-html-tags')."
);
assert.strictEqual(messages[1].line, 2);
assert.strictEqual(messages[1].column, 64);
assert.strictEqual(messages[2].ruleId, 'svelte/no-at-html-tags');
assert.strictEqual(messages[2].line, 4);
assert.strictEqual(messages[3].ruleId, 'svelte/no-at-debug-tags');
assert.strictEqual(messages[3].line, 4);
});
it('dont report used ', async () => {
const code = `
{@html foo}{@debug foo}
`;
const messages = (await linter.lintText(code, { filePath: 'test.svelte' }))[0].messages;
assert.deepStrictEqual(messages, []);
});
it('dont report used, with duplicate eslint-disable', async () => {
const code = `
{@html foo}
`;
const messages = (await linter.lintText(code, { filePath: 'test.svelte' }))[0].messages;
assert.deepStrictEqual(messages, []);
});
it('report unused ', async () => {
const code = `
`;
const messages = (await linter.lintText(code, { filePath: 'test.svelte' }))[0].messages;
assert.strictEqual(messages.length, 1);
assert.strictEqual(messages[0].ruleId, 'svelte/comment-directive');
assert.strictEqual(
messages[0].message,
'Unused eslint-enable directive (reporting is not suppressed).'
);
assert.strictEqual(messages[0].line, 2);
assert.strictEqual(messages[0].column, 9);
});
it('report unused ', async () => {
const code = `
{@html foo}
`;
const messages = (await linter.lintText(code, { filePath: 'test.svelte' }))[0].messages;
assert.strictEqual(messages.length, 1);
assert.strictEqual(messages[0].ruleId, 'svelte/comment-directive');
assert.strictEqual(
messages[0].message,
"Unused eslint-enable directive (reporting from 'svelte/no-at-debug-tags' is not suppressed)."
);
assert.strictEqual(messages[0].line, 4);
assert.strictEqual(messages[0].column, 28);
});
});
});
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/consistent-selector-style.ts
================================================
import { RuleTester } from '../../utils/eslint-compat';
import rule from '../../../src/rules/consistent-selector-style';
import { loadTestCases } from '../../utils/utils';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('consistent-selector-style', rule as any, loadTestCases('consistent-selector-style'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/derived-has-same-inputs-outputs.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/derived-has-same-inputs-outputs.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run(
'derived-has-same-inputs-outputs',
rule as any,
loadTestCases('derived-has-same-inputs-outputs')
);
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/experimental-require-slot-types.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/experimental-require-slot-types.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run(
'experimental-require-slot-types',
rule as any,
loadTestCases('experimental-require-slot-types')
);
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/experimental-require-strict-events.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/experimental-require-strict-events.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run(
'experimental-require-strict-events',
rule as any,
loadTestCases('experimental-require-strict-events')
);
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/first-attribute-linebreak.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/first-attribute-linebreak.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('first-attribute-linebreak', rule as any, loadTestCases('first-attribute-linebreak'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/html-closing-bracket-new-line.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/html-closing-bracket-new-line.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run(
'html-closing-bracket-new-line',
rule as any,
loadTestCases('html-closing-bracket-new-line')
);
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/html-closing-bracket-spacing.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/html-closing-bracket-spacing.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run(
'html-closing-bracket-spacing',
rule as any,
loadTestCases('html-closing-bracket-spacing')
);
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/html-quotes.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/html-quotes.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('html-quotes', rule as any, loadTestCases('html-quotes'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/html-self-closing.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/html-self-closing.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('html-self-closing', rule as any, loadTestCases('html-self-closing'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/indent.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/indent.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module',
parserOptions: {
parser: {
ts: '@typescript-eslint/parser',
js: 'espree'
}
}
}
});
tester.run('indent', rule as any, loadTestCases('indent'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/infinite-reactive-loop.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/infinite-reactive-loop.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('infinite-reactive-loop', rule as any, loadTestCases('infinite-reactive-loop'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/max-attributes-per-line.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/max-attributes-per-line.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('max-attributes-per-line', rule as any, loadTestCases('max-attributes-per-line'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/max-lines-per-block.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/max-lines-per-block.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion: 'latest',
sourceType: 'module'
}
});
tester.run('max-lines-per-block', rule as any, loadTestCases('max-lines-per-block'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/mustache-spacing.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/mustache-spacing.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('mustache-spacing', rule as any, loadTestCases('mustache-spacing'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-add-event-listener.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-add-event-listener.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('no-add-event-listener', rule as any, loadTestCases('no-add-event-listener'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-at-debug-tags.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-at-debug-tags.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('no-at-debug-tags', rule as any, loadTestCases('no-at-debug-tags'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-at-html-tags.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-at-html-tags.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('no-at-html-tags', rule as any, loadTestCases('no-at-html-tags'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-dom-manipulating.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-dom-manipulating.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('no-dom-manipulating', rule as any, loadTestCases('no-dom-manipulating'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-dupe-else-if-blocks.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-dupe-else-if-blocks.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('no-dupe-else-if-blocks', rule as any, loadTestCases('no-dupe-else-if-blocks'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-dupe-on-directives.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-dupe-on-directives.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('no-dupe-on-directives', rule as any, loadTestCases('no-dupe-on-directives'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-dupe-style-properties.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-dupe-style-properties.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('no-dupe-style-properties', rule as any, loadTestCases('no-dupe-style-properties'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-dupe-use-directives.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-dupe-use-directives.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('no-dupe-use-directives', rule as any, loadTestCases('no-dupe-use-directives'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-dynamic-slot-name.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-dynamic-slot-name.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('no-dynamic-slot-name', rule as any, loadTestCases('no-dynamic-slot-name'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-export-load-in-svelte-module-in-kit-pages.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-export-load-in-svelte-module-in-kit-pages.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run(
'no-export-load-in-svelte-module-in-kit-pages',
rule as any,
loadTestCases('no-export-load-in-svelte-module-in-kit-pages')
);
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-extra-reactive-curlies.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-extra-reactive-curlies.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('no-extra-reactive-curlies', rule as any, loadTestCases('no-extra-reactive-curlies'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-goto-without-base.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-goto-without-base.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('no-goto-without-base', rule as any, loadTestCases('no-goto-without-base'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-ignored-unsubscribe.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-ignored-unsubscribe.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('no-ignored-unsubscribe', rule as any, loadTestCases('no-ignored-unsubscribe'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-immutable-reactive-statements.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-immutable-reactive-statements.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run(
'no-immutable-reactive-statements',
rule as any,
loadTestCases('no-immutable-reactive-statements')
);
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-inline-styles.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-inline-styles.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('no-inline-styles', rule as any, loadTestCases('no-inline-styles'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-inner-declarations.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-inner-declarations.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('no-inner-declarations', rule as any, loadTestCases('no-inner-declarations'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-inspect.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-inspect.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('no-inspect', rule as any, loadTestCases('no-inspect'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-navigation-without-base.ts
================================================
import { RuleTester } from '../../utils/eslint-compat';
import rule from '../../../src/rules/no-navigation-without-base';
import { loadTestCases } from '../../utils/utils';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('no-navigation-without-base', rule as any, loadTestCases('no-navigation-without-base'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-navigation-without-resolve.ts
================================================
import { RuleTester } from '../../utils/eslint-compat';
import rule from '../../../src/rules/no-navigation-without-resolve';
import { loadTestCases } from '../../utils/utils';
const tester = new RuleTester({
languageOptions: {
ecmaVersion: "latest",
sourceType: 'module'
}
});
tester.run('no-navigation-without-resolve', rule as any, loadTestCases('no-navigation-without-resolve'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-not-function-handler.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-not-function-handler.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('no-not-function-handler', rule as any, loadTestCases('no-not-function-handler'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-object-in-text-mustaches.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-object-in-text-mustaches.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run(
'no-object-in-text-mustaches',
rule as any,
loadTestCases('no-object-in-text-mustaches')
);
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-raw-special-elements.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-raw-special-elements.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run(
'no-raw-special-elements',
rule as any,
loadTestCases('no-raw-special-elements')
);
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-reactive-functions.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-reactive-functions.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('no-reactive-functions', rule as any, loadTestCases('no-reactive-functions'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-reactive-literals.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-reactive-literals.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('no-reactive-literals', rule as any, loadTestCases('no-reactive-literals'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-reactive-reassign.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-reactive-reassign.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('no-reactive-reassign', rule as any, loadTestCases('no-reactive-reassign'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-restricted-html-elements.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-restricted-html-elements.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run(
'no-restricted-html-elements',
rule as any,
loadTestCases('no-restricted-html-elements')
);
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-shorthand-style-property-overrides.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-shorthand-style-property-overrides.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run(
'no-shorthand-style-property-overrides',
rule as any,
loadTestCases('no-shorthand-style-property-overrides')
);
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-spaces-around-equal-signs-in-attribute.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-spaces-around-equal-signs-in-attribute.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run(
'no-spaces-around-equal-signs-in-attribute',
rule as any,
loadTestCases('no-spaces-around-equal-signs-in-attribute')
);
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-store-async.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-store-async.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('no-store-async', rule as any, loadTestCases('no-store-async'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-svelte-internal.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-svelte-internal.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('no-svelte-internal', rule as any, loadTestCases('no-svelte-internal'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-target-blank.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-target-blank.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('no-target-blank', rule as any, loadTestCases('no-target-blank'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-top-level-browser-globals.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-top-level-browser-globals.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion: 'latest',
sourceType: 'module'
}
});
tester.run(
'no-top-level-browser-globals',
rule as any,
loadTestCases('no-top-level-browser-globals')
);
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-trailing-spaces.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-trailing-spaces.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('no-trailing-spaces', rule as any, loadTestCases('no-trailing-spaces'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-unknown-style-directive-property.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-unknown-style-directive-property.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run(
'no-unknown-style-directive-property',
rule as any,
loadTestCases('no-unknown-style-directive-property')
);
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-unnecessary-state-wrap.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-unnecessary-state-wrap.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('no-unnecessary-state-wrap', rule as any, loadTestCases('no-unnecessary-state-wrap'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-unused-class-name.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-unused-class-name.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('no-unused-class-name', rule as any, loadTestCases('no-unused-class-name'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-unused-props.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-unused-props.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('no-unused-props', rule as any, loadTestCases('no-unused-props'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-unused-svelte-ignore.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-unused-svelte-ignore.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('no-unused-svelte-ignore', rule as any, loadTestCases('no-unused-svelte-ignore'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-useless-children-snippet.ts
================================================
import { RuleTester } from '../../utils/eslint-compat';
import rule from '../../../src/rules/no-useless-children-snippet';
import { loadTestCases } from '../../utils/utils';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('no-useless-children-snippet', rule as any, loadTestCases('no-useless-children-snippet'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/no-useless-mustaches.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/no-useless-mustaches.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('no-useless-mustaches', rule as any, loadTestCases('no-useless-mustaches'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/prefer-class-directive.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/prefer-class-directive.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('prefer-class-directive', rule as any, loadTestCases('prefer-class-directive'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/prefer-const.ts
================================================
import { RuleTester } from '../../utils/eslint-compat';
import rule from '../../../src/rules/prefer-const';
import { loadTestCases } from '../../utils/utils';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
},
});
tester.run('prefer-const', rule as any, loadTestCases('prefer-const'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/prefer-destructured-store-props.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/prefer-destructured-store-props.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run(
'prefer-destructured-store-props',
rule as any,
loadTestCases('prefer-destructured-store-props')
);
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/prefer-style-directive.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/prefer-style-directive.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('prefer-style-directive', rule as any, loadTestCases('prefer-style-directive'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/prefer-svelte-reactivity.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/prefer-svelte-reactivity.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('prefer-svelte-reactivity', rule as any, loadTestCases('prefer-svelte-reactivity'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/prefer-writable-derived.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/prefer-writable-derived.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('prefer-writable-derived', rule as any, loadTestCases('prefer-writable-derived'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/require-each-key.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/require-each-key.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('require-each-key', rule as any, loadTestCases('require-each-key'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/require-event-dispatcher-types.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/require-event-dispatcher-types.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run(
'require-event-dispatcher-types',
rule as any,
loadTestCases('require-event-dispatcher-types')
);
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/require-event-prefix.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/require-event-prefix.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('require-event-prefix', rule as any, loadTestCases('require-event-prefix'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/require-optimized-style-attribute.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/require-optimized-style-attribute.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run(
'require-optimized-style-attribute',
rule as any,
loadTestCases('require-optimized-style-attribute')
);
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/require-store-callbacks-use-set-param.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/require-store-callbacks-use-set-param.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run(
'require-store-callbacks-use-set-param',
rule as any,
loadTestCases('require-store-callbacks-use-set-param')
);
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/require-store-reactive-access.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/require-store-reactive-access.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run(
'require-store-reactive-access',
rule as any,
loadTestCases('require-store-reactive-access')
);
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/require-stores-init.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/require-stores-init.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('require-stores-init', rule as any, loadTestCases('require-stores-init'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/shorthand-attribute.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/shorthand-attribute.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('shorthand-attribute', rule as any, loadTestCases('shorthand-attribute'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/shorthand-directive.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/shorthand-directive.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('shorthand-directive', rule as any, loadTestCases('shorthand-directive'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/sort-attributes.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/sort-attributes.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('sort-attributes', rule as any, loadTestCases('sort-attributes'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/spaced-html-comment.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/spaced-html-comment.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('spaced-html-comment', rule as any, loadTestCases('spaced-html-comment'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/system.ts
================================================
/* noop */
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/valid-compile.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/valid-compile.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module',
parserOptions: {
parser: '@typescript-eslint/parser'
}
}
});
tester.run('valid-compile', rule as any, loadTestCases('valid-compile'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/valid-each-key.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/valid-each-key.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('valid-each-key', rule as any, loadTestCases('valid-each-key'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/valid-prop-names-in-kit-pages.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/valid-prop-names-in-kit-pages.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run(
'valid-prop-names-in-kit-pages',
rule as any,
loadTestCases('valid-prop-names-in-kit-pages')
);
================================================
FILE: packages/eslint-plugin-svelte/tests/src/rules/valid-style-parse.ts
================================================
import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '../../../src/rules/valid-style-parse.js';
import { loadTestCases } from '../../utils/utils.js';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('valid-style-parse', rule as any, loadTestCases('valid-style-parse'));
================================================
FILE: packages/eslint-plugin-svelte/tests/src/settings/ignore-warnings.ts
================================================
import assert from 'assert';
import plugin from '../../../src/index.js';
import { loadESLint, type ESLint as ESLintClass } from 'eslint';
import * as svelteParser from 'svelte-eslint-parser';
describe('ignore-warnings', () => {
let ESLint: typeof ESLintClass;
before(async () => {
ESLint = await loadESLint({ useFlatConfig: true });
});
it('disable rules if ignoreWarnings: [ruleName]', async () => {
const code = `
{@html a+b}
{@debug a}
{@html a+b}
{@debug a}
`;
const linter = new ESLint({
baseConfig: {
files: ['**'],
languageOptions: {
parser: svelteParser,
ecmaVersion:"latest"
},
plugins: {
svelte: plugin as never
},
rules: {
'no-undef': 'error',
'space-infix-ops': 'error',
'svelte/no-at-html-tags': 'error',
'svelte/no-at-debug-tags': 'error',
'svelte/system': 'error'
},
settings: {
svelte: {
ignoreWarnings: ['no-undef', 'space-infix-ops', 'svelte/no-at-debug-tags']
}
},
processor: 'svelte/svelte'
},
overrideConfigFile: true
});
const result = await linter.lintText(code, { filePath: 'test.svelte' });
const messages = result[0].messages;
assert.deepStrictEqual(
messages.map((m) => ({ ruleId: m.ruleId, line: m.line })),
[
{
ruleId: 'svelte/no-at-html-tags',
line: 2
},
{
ruleId: 'no-undef',
line: 5
},
{
ruleId: 'space-infix-ops',
line: 5
},
{
ruleId: 'no-undef',
line: 5
},
{
ruleId: 'svelte/no-at-html-tags',
line: 7
}
]
);
});
it('disable rules if ignoreWarnings: [regexp]', async () => {
const code = `
{@html a+b}
{@debug a}
{@html a+b}
{@debug a}
`;
const linter = new ESLint({
baseConfig: {
files: ['**'],
languageOptions: {
parser: svelteParser,
ecmaVersion:"latest"
},
plugins: {
svelte: plugin as never
},
rules: {
'no-undef': 'error',
'space-infix-ops': 'error',
'svelte/no-at-html-tags': 'error',
'svelte/no-at-debug-tags': 'error',
'svelte/system': 'error'
},
settings: {
svelte: {
ignoreWarnings: ['no-undef', '/debug/', '/^space/']
}
},
processor: 'svelte/svelte'
},
overrideConfigFile: true
});
const result = await linter.lintText(code, { filePath: 'test.svelte' });
const messages = result[0].messages;
assert.deepStrictEqual(
messages.map((m) => ({ ruleId: m.ruleId, line: m.line })),
[
{
line: 2,
ruleId: 'svelte/no-at-html-tags'
},
{
ruleId: 'no-undef',
line: 5
},
{
ruleId: 'space-infix-ops',
line: 5
},
{
ruleId: 'no-undef',
line: 5
},
{
ruleId: 'svelte/no-at-html-tags',
line: 7
}
]
);
});
it('without settings', async () => {
const code = `
{@html a+b}
{@debug a}
{@html a+b}
{@debug a}
`;
const linter = new ESLint({
baseConfig: {
files: ['**'],
languageOptions: {
parser: svelteParser,
ecmaVersion:"latest"
},
plugins: {
svelte: plugin as never
},
rules: {
'svelte/system': 'error'
},
processor: 'svelte/svelte'
},
overrideConfigFile: true
});
const result = await linter.lintText(code, { filePath: 'test.svelte' });
const messages = result[0].messages;
assert.deepStrictEqual(
messages.map((m) => ({ ruleId: m.ruleId, line: m.line })),
[]
);
});
});
================================================
FILE: packages/eslint-plugin-svelte/tests/utils/eslint-compat.ts
================================================
import * as eslint from 'eslint';
import * as experimental from 'eslint/use-at-your-own-risk';
type MaybeHasRuleTester = {
FlatRuleTester?: typeof eslint.RuleTester;
};
export const RuleTester =
(experimental as never as MaybeHasRuleTester).FlatRuleTester ?? eslint.RuleTester;
================================================
FILE: packages/eslint-plugin-svelte/tests/utils/source-code-fixer.ts
================================================
/**
* Copy from https://github.com/eslint/eslint/blob/master/lib/linter/source-code-fixer.js
* @see https://github.com/eslint/eslint/issues/14936
*/
/**
* @fileoverview An object that caches and applies source code fixes.
* @author Nicholas C. Zakas
*/
import type { Linter } from 'eslint';
// ------------------------------------------------------------------------------
// Requirements
// ------------------------------------------------------------------------------
// const debug = require("debug")("eslint:source-code-fixer");
type Message = {
fix?: Linter.LintMessage['fix'];
};
type HasFixMessage = Message & {
fix: NonNullable;
};
function hasFixMessage(m: Message): m is HasFixMessage {
return Boolean(m.fix);
}
// ------------------------------------------------------------------------------
// Helpers
// ------------------------------------------------------------------------------
const BOM = '\uFEFF';
/**
* Compares items in a messages array by range.
* @param {Message} a The first message.
* @param {Message} b The second message.
* @returns {int} -1 if a comes before b, 1 if a comes after b, 0 if equal.
* @private
*/
function compareMessagesByFixRange(a: HasFixMessage, b: HasFixMessage) {
return a.fix.range[0] - b.fix.range[0] || a.fix.range[1] - b.fix.range[1];
}
/**
* Compares items in a messages array by line and column.
* @param {Message} a The first message.
* @param {Message} b The second message.
* @returns {int} -1 if a comes before b, 1 if a comes after b, 0 if equal.
* @private
*/
function compareMessagesByLocation(a: any, b: any) {
return a.line - b.line || a.column - b.column;
}
// ------------------------------------------------------------------------------
// Public Interface
// ------------------------------------------------------------------------------
/**
* Applies the fixes specified by the messages to the given text. Tries to be
* smart about the fixes and won't apply fixes over the same area in the text.
* @param {string} sourceText The text to apply the changes to.
* @param {Message[]} messages The array of messages reported by ESLint.
* @param {boolean|Function} [shouldFix=true] Determines whether each message should be fixed
* @returns {Object} An object containing the fixed text and any unfixed messages.
*/
export function applyFixes(
sourceText: string,
messages: M[],
shouldFix: boolean | ((m: M) => boolean) = true
): {
fixed: boolean;
messages: M[];
output: string;
} {
// debug("Applying fixes");
if (shouldFix === false) {
// debug("shouldFix parameter was false, not attempting fixes");
return {
fixed: false,
messages,
output: sourceText
};
}
// clone the array
const remainingMessages: M[] = [];
const fixes: (HasFixMessage & M)[] = [];
const bom = sourceText.startsWith(BOM) ? BOM : '';
const text = bom ? sourceText.slice(1) : sourceText;
let lastPos = Number.NEGATIVE_INFINITY;
let output = bom;
/**
* Try to use the 'fix' from a problem.
* @param {Message} problem The message object to apply fixes from
* @returns {boolean} Whether fix was successfully applied
*/
function attemptFix(problem: HasFixMessage) {
const fix = problem.fix;
const start = fix.range[0];
const end = fix.range[1];
// Remain it as a problem if it's overlapped or it's a negative range
if (lastPos >= start || start > end) {
remainingMessages.push(problem as M);
return false;
}
// Remove BOM.
if ((start < 0 && end >= 0) || (start === 0 && fix.text.startsWith(BOM))) {
output = '';
}
// Make output to this fix.
output += text.slice(Math.max(0, lastPos), Math.max(0, start));
output += fix.text;
lastPos = end;
return true;
}
messages.forEach((problem) => {
if (hasFixMessage(problem)) {
fixes.push(problem);
} else {
remainingMessages.push(problem);
}
});
if (fixes.length) {
// debug("Found fixes to apply");
let fixesWereApplied = false;
for (const problem of fixes.sort(compareMessagesByFixRange)) {
if (typeof shouldFix !== 'function' || shouldFix(problem)) {
attemptFix(problem);
// The only time attemptFix will fail is if a previous fix was
// applied which conflicts with it. So we can mark this as true.
fixesWereApplied = true;
} else {
remainingMessages.push(problem);
}
}
output += text.slice(Math.max(0, lastPos));
return {
fixed: fixesWereApplied,
messages: remainingMessages.sort(compareMessagesByLocation),
output
};
}
// debug("No fixes to apply");
return {
fixed: false,
messages,
output: bom + text
};
}
================================================
FILE: packages/eslint-plugin-svelte/tests/utils/utils.ts
================================================
import fs from 'fs';
import path from 'path';
import type { RuleTester } from 'eslint';
import type { Linter as LinterType } from 'eslint';
import plugin from '../../src/index.js';
import { applyFixes } from './source-code-fixer.js';
import { parse as parseYaml, stringify as stringifyYaml } from 'yaml';
import semver from 'semver';
import { writeAndFormat } from '../../tools/lib/write.js';
import { Linter } from 'eslint';
import * as svelteParser from 'svelte-eslint-parser';
import * as typescriptParser from '@typescript-eslint/parser';
import Module from 'module';
import globals from 'globals';
import { fileURLToPath } from 'url';
const __dirname = path.dirname(fileURLToPath(new URL(import.meta.url)));
const require = Module.createRequire(import.meta.url);
/**
* Prevents leading spaces in a multiline template literal from appearing in the resulting string
*/
export function unIndent(strings: readonly string[]): string {
const templateValue = strings[0];
const lines = templateValue.split('\n');
const minLineIndent = getMinIndent(lines);
return lines.map((line) => line.slice(minLineIndent)).join('\n');
}
/**
* for `code` and `output`
*/
export function unIndentCodeAndOutput([code]: readonly string[]): (args: readonly string[]) => {
code: string;
output: string;
} {
const codeLines = code.split('\n');
const codeMinLineIndent = getMinIndent(codeLines);
return ([output]: readonly string[]) => {
const outputLines = output.split('\n');
const minLineIndent = Math.min(getMinIndent(outputLines), codeMinLineIndent);
return {
code: codeLines.map((line) => line.slice(minLineIndent)).join('\n'),
output: outputLines.map((line) => line.slice(minLineIndent)).join('\n')
};
};
}
/**
* Get number of minimum indent
*/
function getMinIndent(lines: string[]) {
const lineIndents = lines
.filter((line) => line.trim())
.map((line) => / */u.exec(line)![0].length);
return Math.min(...lineIndents);
}
export const FIXTURES_ROOT = path.resolve(__dirname, `../fixtures/`);
export const RULES_PROJECT = path.resolve(FIXTURES_ROOT, './rules/tsconfig.json');
/**
* Get the rule fixtures root directory
*/
export function getRuleFixturesRoot(ruleName: string): string {
return path.resolve(FIXTURES_ROOT, `./rules/${ruleName}`);
}
function fileNameSuffix(fileName: string): string {
return fileName.match(/\.svelte\.(?:j|t)s$/u)
? fileName.slice(fileName.length - 10)
: path.extname(fileName);
}
function isSvelteFile(fileName: string): boolean {
return Boolean(fileName.match(/\.svelte(?:\.(?:j|t)s)?$/u));
}
/**
* Load test cases
*/
export function loadTestCases(
ruleName: string,
options?: {
additionals?: {
valid?: (RuleTester.ValidTestCase | string)[];
invalid?: RuleTester.InvalidTestCase[];
};
filter?: (file: string) => boolean;
}
): {
valid: RuleTester.ValidTestCase[];
invalid: RuleTester.InvalidTestCase[];
} {
const rootDir = getRuleFixturesRoot(ruleName);
const validFixtureRoot = path.resolve(rootDir, `./valid/`);
const invalidFixtureRoot = path.resolve(rootDir, `./invalid/`);
const fileNameFilter = options?.filter ?? (() => true);
function filter(inputFile: string) {
if (!fileNameFilter(inputFile)) {
return false;
}
const requirements = getRequirements(inputFile);
if (
Object.entries(requirements).some(([pkgName, pkgVersion]) => {
if (pkgName === 'FIXME') return false; // Comments
const pkg =
pkgName === 'node' ? { version: process.version } : require(`${pkgName}/package.json`);
return !semver.satisfies(pkg.version, pkgVersion);
})
) {
return false;
}
return true;
}
const valid = listupInput(validFixtureRoot)
.filter(filter)
.map((inputFile) => getConfig(ruleName, inputFile));
const fixable = plugin.rules[ruleName].meta?.fixable != null;
const invalid = listupInput(invalidFixtureRoot)
.filter(filter)
.map((inputFile) => {
const config = getConfig(ruleName, inputFile);
const errorFile = inputFile.replace(/(input|\+.+)(?:\.[a-z]+)+$/u, 'errors.yaml');
const outputSuffix = fileNameSuffix(inputFile);
const outputFile = inputFile.replace(
/(input|\+.+)(?:\.[a-z]+)+$/u,
`output.${outputSuffix.slice(1)}`
);
if (!fs.existsSync(errorFile)) {
writeFixtures(ruleName, inputFile, outputFile);
} else if (
// eslint-disable-next-line no-process-env -- tool
process.env.UPDATE_FIXTURES
) {
writeFixtures(ruleName, inputFile, outputFile, { force: true });
}
const errors = fs.readFileSync(errorFile, 'utf8');
config.errors = parseYaml(errors);
for (const error of config.errors) {
if (error.suggestions) {
error.suggestions = error.suggestions?.map((s: any) => ({
output: s.output,
desc: s.desc
}));
}
}
if (fixable) {
let output;
try {
output = fs.readFileSync(outputFile, 'utf8');
} catch (_e) {
writeFixtures(ruleName, inputFile, outputFile);
output = fs.readFileSync(outputFile, 'utf8');
}
config.output = output === config.code ? null : output;
}
return config;
});
if (options?.additionals) {
if (options.additionals.valid) {
valid.push(...options.additionals.valid);
}
if (options.additionals.invalid) {
invalid.push(...options.additionals.invalid);
}
}
for (const test of valid) {
if (!test.code) {
throw new Error(`Empty code: ${test.filename}`);
}
}
for (const test of invalid) {
if (!test.code) {
throw new Error(`Empty code: ${test.filename}`);
}
}
return {
valid,
invalid
};
}
function listupInput(rootDir: string) {
return [...itrListupInput(rootDir)];
}
function* itrListupInput(rootDir: string): IterableIterator {
for (const filename of fs.readdirSync(rootDir)) {
if (filename.startsWith('_')) {
// ignore
continue;
}
const abs = path.join(rootDir, filename);
const baseName = path.basename(filename);
const baseFileName = baseName.slice(0, baseName.length - fileNameSuffix(baseName).length);
if (baseFileName.endsWith('input') || baseFileName.startsWith('+')) {
yield abs;
} else if (fs.statSync(abs).isDirectory()) {
yield* itrListupInput(abs);
}
}
}
// Necessary because of this:
// https://github.com/eslint/eslint/issues/14936#issuecomment-906746754
function applySuggestion(code: string, suggestion: LinterType.LintSuggestion) {
const { fix } = suggestion;
return `${code.slice(0, fix.range[0])}${fix.text}${code.slice(fix.range[1])}`;
}
function writeFixtures(
ruleName: string,
inputFile: string,
outputFile: string,
{ force }: { force?: boolean } = {}
) {
const linter = new Linter();
const errorFile = inputFile.replace(/(input|\+.+)(?:\.[a-z]+)+$/u, 'errors.yaml');
const config = getConfig(ruleName, inputFile);
const parser = isSvelteFile(inputFile)
? svelteParser
: path.extname(inputFile) === '.ts'
? typescriptParser
: undefined;
const { code, filename, options, only, ...verifyConfig } = config;
const resolvedParser = verifyConfig.languageOptions?.parser ?? parser;
const result = linter.verify(
code,
{
files: ['**'],
...verifyConfig,
plugins: {
svelte: plugin
},
rules: {
[`svelte/${ruleName}`]: ['error', ...(options || [])]
},
languageOptions: {
globals: globals.browser,
ecmaVersion: 'latest',
sourceType: 'module',
...verifyConfig?.languageOptions,
parserOptions: {
project: RULES_PROJECT,
parser: {
ts: '@typescript-eslint/parser',
js: 'espree'
},
...verifyConfig.languageOptions?.parserOptions
},
...(resolvedParser
? {
parser: resolvedParser
}
: {})
}
},
filename
);
if (force || !fs.existsSync(errorFile)) {
void writeAndFormat(
errorFile,
`${stringifyYaml(
result.map((m) => ({
message: m.message,
line: m.line,
column: m.column,
suggestions: m.suggestions
? m.suggestions.map((s) => ({
desc: s.desc,
messageId: s.messageId,
// Need to have this be the *fixed* output, not just the fix content or anything
output: applySuggestion(config.code, s)
}))
: null
}))
)}`
);
}
if (force || !fs.existsSync(outputFile)) {
const output = applyFixes(config.code, result).output;
if (plugin.rules[ruleName].meta?.fixable != null) {
fs.writeFileSync(outputFile, output, 'utf8');
}
}
}
function getConfig(ruleName: string, inputFile: string) {
// ruleName is normalized to support Windows style paths
const filename = inputFile.slice(inputFile.indexOf(path.normalize(ruleName)));
const code = fs.readFileSync(inputFile, 'utf8');
let config;
let configFile = [
inputFile.replace(/(input|\+.+)(?:\.[a-z]+)+$/u, 'config.json'),
path.join(path.dirname(inputFile), '_config.json'),
inputFile.replace(/(input|\+.+)(?:\.[a-z]+)+$/u, 'config.js'),
path.join(path.dirname(inputFile), '_config.js'),
inputFile.replace(/(input|\+.+)(?:\.[a-z]+)+$/u, 'config.cjs'),
path.join(path.dirname(inputFile), '_config.cjs')
].find((f) => fs.existsSync(f));
if (configFile) {
config =
configFile.endsWith('.js') || configFile.endsWith('.cjs')
? require(configFile)
: JSON.parse(fs.readFileSync(configFile, 'utf8'));
}
const parser = isSvelteFile(filename)
? svelteParser
: path.extname(inputFile) === '.ts'
? typescriptParser
: undefined;
const resolvedParser = config?.languageOptions?.parser
? require(config.languageOptions.parser)
: parser;
return Object.assign(
{
...config,
languageOptions: {
globals: globals.browser,
ecmaVersion: 'latest',
sourceType: 'module',
...config?.languageOptions,
parserOptions: {
project: RULES_PROJECT,
parser: {
ts: '@typescript-eslint/parser',
js: 'espree'
},
extraFileExtensions: ['.svelte'],
...config?.languageOptions?.parserOptions
},
...(resolvedParser
? {
parser: resolvedParser
}
: {})
}
},
{ code, filename: inputFile }
);
}
function getRequirements(inputFile: string): Record {
let requirementsFile: string = inputFile.replace(
/(input|\+.+)(?:\.[a-z]+)+$/u,
'requirements.json'
);
if (!fs.existsSync(requirementsFile)) {
requirementsFile = path.join(path.dirname(inputFile), '_requirements.json');
}
if (fs.existsSync(requirementsFile)) {
return JSON.parse(fs.readFileSync(requirementsFile, 'utf8'));
}
return {};
}
================================================
FILE: packages/eslint-plugin-svelte/tools/lib/changesets-util.ts
================================================
import getReleasePlan from '@changesets/get-release-plan';
import { fileURLToPath } from 'url';
const cwdURL = new URL('../../../..', import.meta.url);
/** Get new version string from changesets */
export async function getNewVersion(): Promise {
const releasePlan = await getReleasePlan(fileURLToPath(cwdURL));
return releasePlan.releases.find(({ name }) => name === 'eslint-plugin-svelte')!.newVersion;
}
================================================
FILE: packages/eslint-plugin-svelte/tools/lib/load-rules.ts
================================================
import path from 'path';
import fs from 'fs';
import type { RuleModule } from '../../src/types.js';
const rulesLibRootURL = new URL('../../src/rules/', import.meta.url);
/**
* Get the all rules
* @returns {Array} The all rules
*/
async function readRules() {
const rules: RuleModule[] = [];
for (const name of iterateTsFiles()) {
const module = await import(new URL(name, rulesLibRootURL).href);
const rule: RuleModule = module && module.default;
if (!rule || typeof rule.create !== 'function') {
continue;
}
rules.push(rule);
}
return rules;
}
export const rules = await readRules();
/** Iterate ts files */
function* iterateTsFiles() {
const files = fs.readdirSync(rulesLibRootURL);
while (files.length) {
const file = files.shift()!;
if (file.endsWith('.ts')) {
yield file;
continue;
}
const filePathURL = new URL(file, rulesLibRootURL);
if (!fs.statSync(filePathURL).isDirectory()) {
continue;
}
files.unshift(...fs.readdirSync(filePathURL).map((n) => path.join(file, n)));
}
}
================================================
FILE: packages/eslint-plugin-svelte/tools/lib/write.ts
================================================
import fs from 'fs';
import { ESLint } from 'eslint';
import prettier from 'prettier';
import { fileURLToPath } from 'url';
/**
* Write file and format it with ESLint
*/
export async function writeAndFormat(fileURL: URL, content: string): Promise {
fs.writeFileSync(fileURL, content, 'utf8');
const filePath = fileURLToPath(fileURL);
return prettier
.resolveConfig(fileURL)
.then((prettierrc) => {
if (!prettierrc) {
return content;
}
return prettier.format(content, { filepath: filePath, ...prettierrc });
})
.then((formatted) => {
fs.writeFileSync(fileURL, formatted, 'utf8');
const eslint = new ESLint({ fix: true });
return eslint.lintText(formatted, { filePath });
})
.then(([result]) => {
if (result.output) {
fs.writeFileSync(fileURL, result.output, 'utf8');
}
});
}
================================================
FILE: packages/eslint-plugin-svelte/tools/new-rule.ts
================================================
import path from 'node:path';
import fs from 'node:fs';
import cp from 'node:child_process';
import { writeAndFormat } from './lib/write.js';
import { fileURLToPath } from 'node:url';
const logger = console;
// main
void (async ([ruleId, ...args]) => {
if (ruleId == null) {
logger.error('Usage: pnpm run new ');
process.exitCode = 1;
return;
}
if (!/^[\w\-/@]+$/u.test(ruleId)) {
logger.error("Invalid RuleID '%s'.", ruleId);
process.exitCode = 1;
return;
}
const utilsURL = new URL(`../src/utils/index.ts`, import.meta.url);
const testUtilsURL = new URL(`../tests/utils/utils.ts`, import.meta.url);
const ruleFileURL = new URL(`../src/rules/${ruleId}.ts`, import.meta.url);
const testFileURL = new URL(`../tests/src/rules/${ruleId}.ts`, import.meta.url);
const docFileURL = new URL(`../../../docs/rules/${ruleId}.md`, import.meta.url);
const fixturesRootURL = new URL(`../tests/fixtures/rules/${ruleId}/`, import.meta.url);
try {
fs.mkdirSync(new URL('./', ruleFileURL), { recursive: true });
} catch {
// ignore
}
try {
fs.mkdirSync(new URL('./', testFileURL), { recursive: true });
} catch {
// ignore
}
try {
fs.mkdirSync(new URL('./', docFileURL), { recursive: true });
} catch {
// ignore
}
try {
fs.mkdirSync(new URL('./valid', fixturesRootURL), { recursive: true });
fs.mkdirSync(new URL('./invalid', fixturesRootURL), { recursive: true });
} catch {
// ignore
}
await writeAndFormat(
ruleFileURL,
`import { AST } from 'svelte-eslint-parser';
import { createRule } from '${getModulePath(ruleFileURL, utilsURL)}';
export default createRule('${ruleId}', {
meta: {
docs: {
description: '',
category: '',
recommended: false,
},
schema: [],
messages: {},
type: 'suggestion', // 'problem', or 'layout',
conditions: [], // Conditions for applying this rule. Leave empty to always execute.
},
create(context) {
return {}
},
});
`
);
await writeAndFormat(
testFileURL,
`import { RuleTester } from '../../utils/eslint-compat.js';
import rule from '${getModulePath(testFileURL, ruleFileURL)}';
import { loadTestCases } from '${getModulePath(testFileURL, testUtilsURL)}';
const tester = new RuleTester({
languageOptions: {
ecmaVersion:"latest",
sourceType: 'module'
}
});
tester.run('${ruleId}', rule as any, loadTestCases('${ruleId}'));
`
);
await writeAndFormat(
docFileURL,
`# (svelte/${ruleId})
> description
## :book: Rule Details
This rule reports ???.
\`\`\`svelte
\`\`\`
## :wrench: Options
\`\`\`json
{
"svelte/${ruleId}": ["error", {
}]
}
\`\`\`
-
## :books: Further Reading
-
`
);
const { code } = expectedArgs(args);
if (!code) {
return;
}
try {
// Use code -v to know if vscode is installed and do not print anything to the console
cp.execSync('code -v', { stdio: 'ignore' });
cp.execSync(`code "${fileURLToPath(ruleFileURL)}"`);
cp.execSync(`code "${fileURLToPath(testFileURL)}"`);
cp.execSync(`code "${fileURLToPath(docFileURL)}"`);
} catch {
logger.error('Unable to find code command. Will not open files with VSCode.');
}
})(process.argv.slice(2));
/** Get module path */
function getModulePath(from: URL, module: URL): string {
const fromDir = fileURLToPath(new URL('./', from));
const modulePath = fileURLToPath(module);
return path.relative(fromDir, modulePath).replace(/\\/g, '/').replace(/.ts$/u, '.js');
}
/** Argument parsing */
function expectedArgs(args: string[]) {
const result = { code: false };
for (let i = 0; i < args.length; i++) {
const arg = args[i];
const split = args[i].split('=');
if (arg === '--code') {
// Passing --code alone is the same as --code=true
result.code = args[i + 1] === 'true' || args[i + 1] === undefined;
} else if (split.length === 2) {
result.code = split[1] === 'true';
} else if (split.length > 2) {
logger.error('Usage: pnpm run new <--code=boolean>');
}
}
return result;
}
================================================
FILE: packages/eslint-plugin-svelte/tools/render-rules.ts
================================================
import type { RuleModule } from '../src/types.js';
import { rules } from '../src/utils/rules.js';
const categories = [
'Possible Errors',
'Security Vulnerability',
'Best Practices',
'Stylistic Issues',
'Extension Rules',
'SvelteKit',
'Experimental',
'System'
] as const;
const descriptions: Record<(typeof categories)[number], string> = {
'Possible Errors': 'These rules relate to possible syntax or logic errors in Svelte code:',
'Security Vulnerability': 'These rules relate to security vulnerabilities in Svelte code:',
'Best Practices': 'These rules relate to better ways of doing things to help you avoid problems:',
'Stylistic Issues': 'These rules relate to style guidelines, and are therefore quite subjective:',
'Extension Rules':
'These rules extend the rules provided by ESLint itself, or other plugins to work well in Svelte:',
SvelteKit: 'These rules relate to SvelteKit and its best Practices.',
Experimental:
':warning: These rules are considered experimental and may change or be removed in the future:',
System: 'These rules relate to this plugin works:'
};
const activeRules = rules.filter((rule) => !rule.meta.deprecated);
const svelteRules = activeRules;
const deprecatedRules = rules.filter((rule) => rule.meta.deprecated);
activeRules.forEach((rule) => {
if (!categories.includes(rule.meta.docs.category)) {
throw new Error(`missing categories:${rule.meta.docs.category}`);
}
});
const categoryRules = categories.map((cat) => {
return {
title: cat,
rules: svelteRules.filter((rule) => rule.meta.docs.category === cat)
};
});
export default function renderRulesTableContent(
buildRulePath = (ruleName: string) => `./rules/${ruleName}.md`
): string {
// -----------------------------------------------------------------------------
function toRuleRow(rule: RuleModule) {
const mark = `${rule.meta.docs.recommended ? ':star:' : ''}${
rule.meta.fixable ? ':wrench:' : ''
}${rule.meta.hasSuggestions ? ':bulb:' : ''}${rule.meta.deprecated ? ':warning:' : ''}`;
const link = `[${rule.meta.docs.ruleId}](${buildRulePath(rule.meta.docs.ruleName || '')})`;
const description = rule.meta.docs.description || '(no description)';
return `| ${link} | ${description} | ${mark} |`;
}
function toDeprecatedRuleRow(rule: RuleModule) {
const link = `[${rule.meta.docs.ruleId}](${buildRulePath(rule.meta.docs.ruleName || '')})`;
const replacedRules = rule.meta.replacedBy || [];
const replacedBy = Array.isArray(replacedRules)
? replacedRules.map((name) => `[svelte/${name}](${buildRulePath(name)})`).join(', ')
: replacedRules.note;
return `| ${link} | ${replacedBy || '(no replacement)'} |`;
}
// -----------------------------------------------------------------------------
let rulesTableContent = categoryRules
.map((cat) => {
return `
## ${cat.title}
${descriptions[cat.title]}
| Rule ID | Description | |
|:--------|:------------|:---|
${cat.rules.map(toRuleRow).join('\n')}
`;
})
.join('');
// -----------------------------------------------------------------------------
if (deprecatedRules.length >= 1) {
rulesTableContent += `
## Deprecated
- :warning: We're going to remove deprecated rules in the next major release. Please migrate to successor/new rules.
- :innocent: We don't fix bugs which are in deprecated rules since we don't have enough resources.
| Rule ID | Replaced by |
|:--------|:------------|
${deprecatedRules.map(toDeprecatedRuleRow).join('\n')}
`;
}
return rulesTableContent;
}
================================================
FILE: packages/eslint-plugin-svelte/tools/update-docs-rules-index.ts
================================================
import renderRulesTableContent from './render-rules.js';
import { writeAndFormat } from './lib/write.js';
// -----------------------------------------------------------------------------
const readmeFileURL = new URL('../../../docs/rules.md', import.meta.url);
void writeAndFormat(
readmeFileURL,
`---
sidebarDepth: 0
---
# Available Rules
:wrench: Indicates that the rule is fixable, and using \`--fix\` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the reported problems.\\
:bulb: Indicates that some problems reported by the rule are manually fixable by editor [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions).\\
:star: Indicates that the rule is included in the \`plugin:svelte/recommended\` config.
${renderRulesTableContent()}`
);
================================================
FILE: packages/eslint-plugin-svelte/tools/update-docs.ts
================================================
import fs from 'fs';
import { rules } from '../src/utils/rules.js';
import type { RuleModule } from '../src/types.js';
import { getNewVersion } from './lib/changesets-util.js';
import { writeAndFormat } from './lib/write.js';
function formatItems(items: string[]) {
if (items.length <= 2) {
return items.join(' and ');
}
return `all of ${items.slice(0, -1).join(', ')} and ${items[items.length - 1]}`;
}
function yamlValue(val: unknown) {
if (typeof val === 'string') {
return `"${val.replace(/\\/gu, '\\\\').replace(/"/gu, '\\"')}"`;
}
return val;
}
const ROOT_URL = new URL('../../../docs/rules/', import.meta.url);
function pickSince(content: string): string | null | Promise {
const fileIntro = /^---\n((?:.*\n)+)---\n*/.exec(content);
if (fileIntro) {
const since = /since: ["']?(v\d+\.\d+\.\d+(?:-[\w.]+)?)["']?/.exec(fileIntro[1]);
if (since) {
return since[1];
}
}
// eslint-disable-next-line no-process-env -- ignore
if (process.env.IN_VERSION_SCRIPT) {
// eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-require-imports -- ignore
return `v${require('../package.json').version}`;
}
// eslint-disable-next-line no-process-env -- ignore
if (process.env.IN_VERSION_CI_SCRIPT) {
return getNewVersion().then((v) => `v${v}`);
}
return null;
}
class DocFile {
private readonly rule: RuleModule;
private readonly fileURL: URL;
private content: string;
private readonly since: string | null | Promise;
public constructor(rule: RuleModule) {
this.rule = rule;
this.fileURL = new URL(`./${rule.meta.docs.ruleName}.md`, ROOT_URL);
this.content = fs.readFileSync(this.fileURL, 'utf8');
this.since = pickSince(this.content);
}
public static read(rule: RuleModule) {
return new DocFile(rule);
}
public updateHeader() {
const {
meta: {
fixable,
hasSuggestions,
deprecated,
replacedBy,
docs: { ruleId, description, recommended }
}
} = this.rule;
const title = `# ${ruleId}\n\n> ${description}`;
const notes = [];
if (deprecated) {
if (replacedBy) {
if (Array.isArray(replacedBy)) {
const replacedRules = replacedBy.map((name) => `[svelte/${name}](${name}.md) rule`);
notes.push(
`- :warning: This rule was **deprecated** and replaced by ${formatItems(
replacedRules
)}.`
);
} else {
notes.push(`- :warning: This rule was **deprecated**. ${replacedBy.note}`);
}
} else {
notes.push('- :warning: This rule was **deprecated**.');
}
} else if (recommended) {
if (recommended === 'base') {
notes.push(
'- :gear: This rule is included in `"plugin:svelte/base"` and `"plugin:svelte/recommended"`.'
);
} else {
notes.push('- :gear: This rule is included in `"plugin:svelte/recommended"`.');
}
}
if (fixable) {
notes.push(
'- :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.'
);
}
if (hasSuggestions) {
notes.push(
'- :bulb: Some problems reported by this rule are manually fixable by editor [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions).'
);
}
if (!this.since) {
notes.unshift(
`- :exclamation: **_This rule has not been released yet._** `
);
}
// Add an empty line after notes.
if (notes.length >= 1) {
notes.push('', '');
}
const headerPattern = /(?:^|\n)#.+\n+[^\n]*\n+(?:- .+\n+)*\n*/u;
const header = `\n${title}\n\n${notes.join('\n')}`;
if (headerPattern.test(this.content)) {
this.content = this.content.replace(headerPattern, header.replace(/\$/g, '$$$$'));
} else {
this.content = `${header}${this.content.trim()}\n`;
}
return this;
}
public async updateFooter() {
const { ruleName, extensionRule } = this.rule.meta.docs;
const footerPattern = /## (?:(?::mag:)? ?Implementation|:rocket: Version).+$/s;
const footer = `${
this.since
? `## :rocket: Version
This rule was introduced in eslint-plugin-svelte ${await this.since}
`
: ''
}## :mag: Implementation
- [Rule source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/src/rules/${ruleName}.ts)
- [Test source](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/packages/eslint-plugin-svelte/tests/src/rules/${ruleName}.ts)
${
extensionRule
? typeof extensionRule === 'string'
? `
Taken with ❤️ [from ESLint core](https://eslint.org/docs/rules/${extensionRule})
`
: `
Taken with ❤️ [from ${extensionRule.plugin}](${extensionRule.url})
`
: ''
}`;
if (footerPattern.test(this.content)) {
this.content = this.content.replace(footerPattern, footer.replace(/\$/g, '$$$$'));
} else {
this.content = `${this.content.trim()}\n\n${footer}`;
}
return this;
}
public updateCodeBlocks() {
const { meta } = this.rule;
this.content = this.content.replace(//gu, (_t, str) => {
const ps = str
.split(/\s+/u)
.map((s: string) => s.trim())
.filter((s: string) => s && s !== 'fix');
if (meta.fixable) {
ps.unshift('fix');
}
ps.unshift('`;
});
return this;
}
public adjustCodeBlocks() {
// Adjust the necessary blank lines before and after the code block so that GitHub can recognize `.md`.
this.content = this.content.replace(/\n+```svelte/gu, '\n\n```svelte');
this.content = this.content.replace(/\n+```\n+/gu, '\n```\n\n');
return this;
}
public async updateFileIntro() {
const { ruleId, description } = this.rule.meta.docs;
const fileIntro = {
pageClass: 'rule-details',
sidebarDepth: 0,
title: ruleId,
description,
...(this.since ? { since: await this.since } : {})
};
const computed = `---\n${Object.keys(fileIntro)
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- tool
.map((key) => `${key}: ${yamlValue((fileIntro as any)[key])}`)
.join('\n')}\n---\n\n`;
const fileIntroPattern = /^---\n(?:.*\n)+?---\n*/gu;
if (fileIntroPattern.test(this.content)) {
this.content = this.content.replace(fileIntroPattern, computed.replace(/\$/g, '$$$$'));
} else {
this.content = `${computed}${this.content.trim()}\n`;
}
return this;
}
public async write() {
this.content = this.content.replace(/\r?\n/gu, '\n');
await writeAndFormat(this.fileURL, this.content);
}
}
void main();
/** main */
async function main() {
for (const rule of rules) {
const doc = DocFile.read(rule);
doc.updateHeader();
await doc.updateFooter();
doc.updateCodeBlocks();
await doc.updateFileIntro();
doc.adjustCodeBlocks();
await doc.write();
}
}
================================================
FILE: packages/eslint-plugin-svelte/tools/update-meta.ts
================================================
import { name, version } from '../package.json';
import { getNewVersion } from './lib/changesets-util.js';
import { writeAndFormat } from './lib/write.js';
const META_URL = new URL('../src/meta.ts', import.meta.url);
void main();
/** main */
async function main() {
await writeAndFormat(
META_URL,
`/*
* IMPORTANT!
* This file has been automatically generated,
* in order to update its content execute "pnpm run update"
*/
export const name = ${JSON.stringify(name)} as const;
export const version = ${JSON.stringify(await getVersion())} as const;
`
);
}
/** Get version */
function getVersion() {
// eslint-disable-next-line no-process-env -- ignore
if (process.env.IN_VERSION_CI_SCRIPT) {
return getNewVersion();
}
return version;
}
================================================
FILE: packages/eslint-plugin-svelte/tools/update-readme.ts
================================================
import fs from 'fs';
import renderRulesTableContent from './render-rules.js';
import { writeAndFormat } from './lib/write.js';
const rootURL = new URL('../../../', import.meta.url);
const insertText = `\n${renderRulesTableContent(
(name) => `https://sveltejs.github.io/eslint-plugin-svelte/rules/${name}/`
)}\n`;
const readmeFileURL = new URL('README.md', rootURL);
const newReadme = fs
.readFileSync(readmeFileURL, 'utf8')
.replace(
/[\s\S]*/u,
`${insertText.replace(/\$/g, '$$$$')}`
);
void writeAndFormat(readmeFileURL, newReadme);
const docsReadmeFileURL = new URL('./docs/README.md', rootURL);
void writeAndFormat(
docsReadmeFileURL,
`---
title: "eslint-plugin-svelte"
---
${newReadme
.replace('# eslint-plugin-svelte\n', '# Introduction\n')
.replace(
/[\s\S]*/u,
'See [Available Rules](./rules.md).'
)
.replace(
/[\s\S]*/u,
'See [User Guide](./user-guide.md).'
)
.replace(/[\s\S]*?/gu, '')
.replace(
/\(https:\/\/sveltejs.github.io\/eslint-plugin-svelte(.*?)\)/gu,
(_ptn, filepath: string) => {
const [hash] = /(?:#.*)?$/u.exec(filepath)!;
const pathWithoutHash = hash ? filepath.slice(0, -hash.length) : filepath;
const normalizePathWithoutHash = pathWithoutHash.replace(/\/$/u, '');
const [file] = /[^/]+$/u.exec(normalizePathWithoutHash)!;
const pathWithoutFile = file
? normalizePathWithoutHash.slice(0, -file.length)
: normalizePathWithoutHash;
let result = `(.${pathWithoutFile}`;
if (file.endsWith('.html')) {
result += file === 'index.html' ? 'README.md' : file.replace(/\.html$/, '.md');
} else {
result += `${file}.md`;
}
result += `${hash})`;
return result;
}
)
.replace(
'[LICENSE](LICENSE)',
'[LICENSE](https://github.com/sveltejs/eslint-plugin-svelte/blob/main/LICENSE)'
)
.replace(/\n{3,}/gu, '\n\n')}`
);
const docsUserGuideFileURL = new URL('./docs/user-guide.md', rootURL);
const docsUserGuide = fs.readFileSync(docsUserGuideFileURL, 'utf8');
void writeAndFormat(
docsUserGuideFileURL,
docsUserGuide
.replace(
/[\s\S]*/u,
/[\s\S]*/u.exec(newReadme)![0]
)
.replace(
/\(https:\/\/sveltejs.github.io\/eslint-plugin-svelte(.*?)\)/gu,
(_s: string, c: string) => `(.${c.endsWith('/') ? c.slice(0, -1) : c}.md)`
)
);
================================================
FILE: packages/eslint-plugin-svelte/tools/update-rule-types.ts
================================================
import fs from 'fs';
import plugin from '../src/index.js';
void main();
async function main() {
const { pluginsToRulesDTS } = await import('eslint-typegen/core');
const ruleTypes = await pluginsToRulesDTS(
{ svelte: plugin },
{ includeAugmentation: false, includeTypeImports: false }
);
void fs.writeFileSync(
new URL('../src/rule-types.ts', import.meta.url),
`// IMPORTANT!
// This file has been automatically generated,
// in order to update its content execute "pnpm run update"
/* eslint-disable */
/* prettier-ignore */
import type { Linter } from 'eslint'
declare module 'eslint' {
interface RulesConfig extends RuleOptions {}
}
${ruleTypes}`
);
}
================================================
FILE: packages/eslint-plugin-svelte/tools/update-rules.ts
================================================
// import eslint from "eslint"
import { rules } from './lib/load-rules.js';
import { writeAndFormat } from './lib/write.js';
/**
* Convert text to camelCase
*/
function camelCase(str: string) {
return str.replace(/[-_](\w)/gu, (_, c) => (c ? c.toUpperCase() : ''));
}
/**
* Convert text to identifier
*/
function toIdentifier(str: string) {
const clean = str
.replace(/^[^\p{ID_Start}$_]/u, '')
.replace(/[^\p{ID_Continue}$\u200c\u200d]/gu, '-');
return camelCase(clean);
}
const content = `/*
* IMPORTANT!
* This file has been automatically generated,
* in order to update its content execute "pnpm run update"
*/
import type { RuleModule } from "../types.js"
${rules
.map(
(rule) =>
`import ${toIdentifier(rule.meta.docs.ruleName)} from "../rules/${rule.meta.docs.ruleName}.js"`
)
.join('\n')}
export const rules = [
${rules.map((rule) => toIdentifier(rule.meta.docs.ruleName)).join(',')}
] as RuleModule[]
`;
const fileURL = new URL('../src/utils/rules.ts', import.meta.url);
// Update file.
void writeAndFormat(fileURL, content);
================================================
FILE: packages/eslint-plugin-svelte/tools/update-rulesets.ts
================================================
import { rules } from './lib/load-rules.js';
import { writeAndFormat } from './lib/write.js';
const flatConfigFolderURL = new URL('../src/configs/flat/', import.meta.url);
// ------------------
// Flat Config
// ------------------
const baseContent = `/*
* IMPORTANT!
* This file has been automatically generated,
* in order to update its content execute "pnpm run update"
*/
import type { ESLint, Linter } from 'eslint';
import * as parser from 'svelte-eslint-parser';
let pluginObject: ESLint.Plugin | null = null;
export function setPluginObject(plugin: ESLint.Plugin): void {
pluginObject = plugin;
}
const config: Linter.Config[] = [
{
name: 'svelte:base:setup-plugin',
plugins: {
get svelte(): ESLint.Plugin {
return pluginObject!;
}
},
},
{
name: 'svelte:base:setup-for-svelte',
files: ["*.svelte", "**/*.svelte"],
languageOptions: {
parser: parser,
},
rules: {
// ESLint core rules known to cause problems with \`.svelte\`.
"no-inner-declarations": "off", // The AST generated by svelte-eslint-parser will false positives in it rule because the root node of the script is not the \`Program\`.
// "no-irregular-whitespace": "off",
// Self assign is one of way to update reactive value in Svelte.
"no-self-assign": "off",
// eslint-plugin-svelte rules
${rules
.filter((rule) => rule.meta.docs.recommended === 'base' && !rule.meta.deprecated)
.map((rule) => {
const conf = rule.meta.docs.default || 'error';
return `"${rule.meta.docs.ruleId}": "${conf}"`;
})
.join(',\n ')}
},
processor: 'svelte/svelte'
},
{
name: 'svelte:base:setup-for-svelte-script',
files: ['*.svelte.js', '*.svelte.ts', '**/*.svelte.js', '**/*.svelte.ts'],
languageOptions: {
parser: parser,
},
rules: {
// eslint-plugin-svelte rules
${rules
.filter((rule) => rule.meta.docs.recommended === 'base' && !rule.meta.deprecated)
.filter(
// Exclude rules that are not applicable to JavaScript files
(rule) =>
rule.meta.docs.ruleId !== 'svelte/comment-directive' &&
rule.meta.docs.ruleId !== 'svelte/system'
)
.map((rule) => {
const conf = rule.meta.docs.default || 'error';
return `"${rule.meta.docs.ruleId}": "${conf}"`;
})
.join(',\n ')}
},
}
]
export default config
`;
const baseFileURL = new URL('base.ts', flatConfigFolderURL);
// Update file.
void writeAndFormat(baseFileURL, baseContent);
const recommendedContent = `/*
* IMPORTANT!
* This file has been automatically generated,
* in order to update its content execute "pnpm run update"
*/
import type { Linter } from 'eslint';
import base from "./base.js"
const config: Linter.Config[] = [
...base,
{
name: 'svelte:recommended:rules',
rules: {
// eslint-plugin-svelte rules
${rules
.filter((rule) => rule.meta.docs.recommended && !rule.meta.deprecated)
.map((rule) => {
const conf = rule.meta.docs.default || 'error';
return `"${rule.meta.docs.ruleId}": "${conf}"`;
})
.join(',\n ')},
},
}
]
export default config
`;
const recommendedFileURL = new URL('recommended.ts', flatConfigFolderURL);
// Update file.
void writeAndFormat(recommendedFileURL, recommendedContent);
const prettierContent = `/*
* IMPORTANT!
* This file has been automatically generated,
* in order to update its content execute "pnpm run update"
*/
import type { Linter } from 'eslint';
import base from "./base.js"
const config: Linter.Config[] = [
...base,
{
name: 'svelte:prettier:turn-off-rules',
rules: {
// eslint-plugin-svelte rules
${rules
.filter((rule) => rule.meta.docs.conflictWithPrettier)
.map((rule) => `"${rule.meta.docs.ruleId}": "off"`)
.join(',\n ')},
},
}
]
export default config
`;
const prettierFileURL = new URL('prettier.ts', flatConfigFolderURL);
// Update file.
void writeAndFormat(prettierFileURL, prettierContent);
================================================
FILE: packages/eslint-plugin-svelte/tools/update-types-for-node.ts
================================================
import { AST_NODE_TYPES } from '@typescript-eslint/types';
import { parseForESLint } from 'svelte-eslint-parser';
import { writeAndFormat } from './lib/write.js';
const sourceFolderURL = new URL('../src/', import.meta.url);
const typesForNodeFileURL = new URL('types-for-node.ts', sourceFolderURL);
const estreeFileURL = new URL('type-defs/estree.d.ts', sourceFolderURL);
const { visitorKeys } = parseForESLint('');
const esNextNodeNames = ['Decorator', 'ImportAttribute', 'StaticBlock'];
const esSvelteNodeNames = ['Program', 'SvelteReactiveStatement'];
const tsEsNodeNames = Object.keys(AST_NODE_TYPES).filter((k) => k !== 'Program');
const esNodeNames = tsEsNodeNames.filter(
(k) => !k.startsWith('TS') && !k.startsWith('JSX') && !esNextNodeNames.includes(k)
);
const tsNodeNames = tsEsNodeNames.filter((k) => !k.startsWith('JSX') && !esNodeNames.includes(k));
const svelteNodeNames = Object.keys(visitorKeys).filter(
(k) => !tsEsNodeNames.includes(k) && !k.startsWith('Experimental')
);
const estreeCode = [
`/*
* IMPORTANT!
* This file has been automatically generated,
* in order to update its content execute "pnpm run update"
*/
//
// Replace type information to use "@typescript-eslint/types" instead of "estree".
//
declare module 'estree' {
import type { TSESTree } from "@typescript-eslint/types"
export type Node = TSESTree.Node
export type Program = TSESTree.Program
export type Expression = TSESTree.Expression
export type Statement = TSESTree.Statement
export type Pattern = TSESTree.DestructuringPattern`
];
const typesForNodeCode = [
`/*
* IMPORTANT!
* This file has been automatically generated,
* in order to update its content execute "pnpm run update"
*/
//
// The information here can be calculated by calculating the type,
// but is pre-defined to avoid the computational cost.
//
import type { TSESTree, AST_NODE_TYPES } from "@typescript-eslint/types";
import type { AST } from "svelte-eslint-parser"
export type ASTNode =
| AST.SvelteNode
| Exclude, { type: AST.SvelteNode["type"] }>
export type ASTNodeWithParent =
| (Exclude & { parent: ASTNodeWithParent })
| AST.SvelteProgram
export type ASTNodeListener = {`
];
for (const nodeType of tsEsNodeNames) {
let argType = `TSESTree.${nodeType}`;
if (nodeType === 'TSIntrinsicKeyword') {
argType = `TSESTree.Node & { type: AST_NODE_TYPES.${nodeType}}`;
}
typesForNodeCode.push(` ${nodeType}?: (node: ${argType} & ASTNodeWithParent) => void`);
typesForNodeCode.push(` '${nodeType}:exit'?: (node: ${argType} & ASTNodeWithParent) => void`);
}
for (const nodeType of svelteNodeNames) {
let argType = `AST.${nodeType}`;
if (nodeType === 'Program') {
argType = `AST.SvelteProgram`;
}
typesForNodeCode.push(` ${nodeType}?: (node: ${argType} & ASTNodeWithParent) => void`);
typesForNodeCode.push(` '${nodeType}:exit'?: (node: ${argType} & ASTNodeWithParent) => void`);
}
typesForNodeCode.push(`}`);
typesForNodeCode.push(``);
typesForNodeCode.push(`export type ESNodeListener = {`);
for (const nodeType of esNodeNames) {
const argType = `TSESTree.${nodeType}`;
typesForNodeCode.push(` ${nodeType}?: (node: ${argType} & ASTNodeWithParent) => void`);
typesForNodeCode.push(` '${nodeType}:exit'?: (node: ${argType} & ASTNodeWithParent) => void`);
estreeCode.push(`export type ${nodeType} = TSESTree.${nodeType}`);
}
for (const nodeType of esSvelteNodeNames) {
let argType = `AST.${nodeType}`;
if (nodeType === 'Program') {
argType = `AST.SvelteProgram`;
}
typesForNodeCode.push(` ${nodeType}?: (node: ${argType} & ASTNodeWithParent) => void`);
typesForNodeCode.push(` '${nodeType}:exit'?: (node: ${argType} & ASTNodeWithParent) => void`);
}
typesForNodeCode.push(`}`);
typesForNodeCode.push(``);
typesForNodeCode.push(`export type TSNodeListener = {`);
for (const nodeType of tsNodeNames) {
let argType = `TSESTree.${nodeType}`;
if (nodeType === 'TSIntrinsicKeyword') {
argType = `TSESTree.Node & { type: AST_NODE_TYPES.${nodeType}}`;
}
typesForNodeCode.push(` ${nodeType}?: (node: ${argType} & ASTNodeWithParent) => void`);
typesForNodeCode.push(` '${nodeType}:exit'?: (node: ${argType} & ASTNodeWithParent) => void`);
}
typesForNodeCode.push(`}`);
typesForNodeCode.push(``);
typesForNodeCode.push(`export type SvelteNodeListener = {`);
for (const nodeType of svelteNodeNames.filter((k) => !esSvelteNodeNames.includes(k))) {
const argType = `AST.${nodeType}`;
typesForNodeCode.push(` ${nodeType}?: (node: ${argType} & ASTNodeWithParent) => void`);
typesForNodeCode.push(` '${nodeType}:exit'?: (node: ${argType} & ASTNodeWithParent) => void`);
}
typesForNodeCode.push(`}`);
estreeCode.push(`}`);
void writeAndFormat(typesForNodeFileURL, typesForNodeCode.join('\n'));
void writeAndFormat(estreeFileURL, estreeCode.join('\n'));
================================================
FILE: packages/eslint-plugin-svelte/tools/update.ts
================================================
import './update-rules';
import './update-rulesets';
import './update-docs';
import './update-readme';
import './update-docs-rules-index';
import './update-types-for-node';
import './update-meta';
import './update-rule-types';
================================================
FILE: packages/eslint-plugin-svelte/tsconfig.build.json
================================================
{
"extends": "./tsconfig.json",
"exclude": [
"tests/**/*",
"tools/**/*",
"typings/**/*",
"vite.config.mts",
"docs-svelte-kit/**/*.mts",
"internal-rules/**/*",
"eslint.config.mts"
]
}
================================================
FILE: packages/eslint-plugin-svelte/tsconfig.json
================================================
{
"compilerOptions": {
"target": "es2020",
"module": "NodeNext",
"moduleResolution": "Node16",
"lib": ["es2020", "dom"],
"allowJs": true,
"checkJs": true,
"declaration": true,
"strict": true,
"noImplicitAny": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"baseUrl": ".",
"esModuleInterop": true,
"outDir": "lib",
"skipLibCheck": true,
"resolveJsonModule": true
},
"include": [
"src/**/*",
"tests/src/**/*",
"tests/utils/**/*",
"tools/**/*",
"vite.config.mts",
"docs-svelte-kit/**/*.mts",
"internal-rules/**/*",
"eslint.config.mts"
],
"exclude": ["lib/**/*", "tests/fixtures/**/*"]
}
================================================
FILE: pnpm-workspace.yaml
================================================
# Do not adopt new versions of dependency libraries within the first 24 hours of their release (to reduce the risk of supply chain attacks).
minimumReleaseAge: 1440
minimumReleaseAgeExclude:
- '@ota-meshi/*'
- '@oxc-project/*'
- '@rolldown/*'
- '@sveltejs/*'
- create-vite
- devalue
- esm-env
- esrap
- is-reference
- locate-character
- rolldown-vite
- rolldown
- svelte-eslint-parser
- svelte
- typescript-eslint-parser-for-extra-files
- vite
- zimmerframe
- eslint
- '@eslint/*'
- eslint-visitor-keys
- eslint-scope
- espree
packages:
- 'packages/*'
- 'docs-svelte-kit'
================================================
FILE: prettier.config.cjs
================================================
'use strict';
module.exports = {
endOfLine: 'lf',
useTabs: true,
singleQuote: true,
trailingComma: 'none',
printWidth: 100,
plugins: ['prettier-plugin-svelte'],
overrides: [
{
files: ['.*rc'],
excludeFiles: ['.browserslistrc', '.npmrc', '.nvmrc'],
options: {
parser: 'json'
}
},
{
files: ['*.svelte'],
options: {
bracketSameLine: false
}
},
{
files: ['*.md', 'package.json', '**/package.json'],
options: {
useTabs: false,
tabWidth: 2
}
}
]
};
================================================
FILE: renovate.json
================================================
{
"extends": ["config:base", ":preserveSemverRanges", ":disableDependencyDashboard"],
"packageRules": [
{
"updateTypes": ["minor", "patch", "pin", "digest"],
"automerge": true
},
{
"depTypeList": ["devDependencies"],
"automerge": true
}
]
}
================================================
FILE: tools/pkg.pr.new-comment.mjs
================================================
/**
* Used in `/.github/workflows/pkg.pr.new.yml`
*/
export default async function ({ github, context, output }) {
// eslint-disable-next-line no-console -- For debugging on github actions.
console.log('pkg-pr-new publish output:', JSON.stringify(output));
const sha = output.sha;
const commitUrl = `https://github.com/${context.repo.owner}/${context.repo.repo}/commit/${sha}`;
const pullRequestNumber = await getPullRequestNumber();
const packages = output.packages.map((p) => {
let normalizedUrl = p.url;
if (pullRequestNumber && p.url.endsWith(sha)) {
normalizedUrl = `${p.url.slice(0, -sha.length)}${pullRequestNumber}`;
}
const repoPath = `/${context.repo.owner}/${context.repo.repo}/`;
normalizedUrl = normalizedUrl.replace(repoPath, '/');
return {
name: p.name,
url: normalizedUrl
};
});
const botCommentIdentifier = '';
const onlineUrl = new URL(
'https://eslint-online-playground.netlify.app/#eslint-plugin-svelte%20with%20typescript'
);
const overrideDeps = {};
for (const p of packages) {
overrideDeps[p.name] = p.url;
}
onlineUrl.searchParams.set('overrideDeps', JSON.stringify(overrideDeps));
const body = `${botCommentIdentifier}
## Try the Instant Preview in Online Playground
[ESLint Online Playground](${onlineUrl})
## Install the Instant Preview to Your Local
\`\`\`
npm i ${packages.map((p) => p.url).join(' ')}
\`\`\`
## Published Instant Preview Packages:
${packages.map((p) => `- ${p.name}: ${p.url}`).join('\n')}
[View Commit](${commitUrl})`;
if (pullRequestNumber) {
await createOrUpdateComment(pullRequestNumber);
} else {
/* eslint-disable no-console -- For debugging on github actions. */
console.log(
'No open pull request found for this push. Logging publish information to console:'
);
console.log(`\n${'='.repeat(50)}`);
console.log(body);
console.log(`\n${'='.repeat(50)}`);
/* eslint-enable no-console -- For debugging on github actions. */
}
async function getPullRequestNumber() {
return output.number;
}
async function findBotComment(issueNumber) {
if (!issueNumber) return null;
const comments = await github.rest.issues.listComments({
owner: context.repo.owner,
repo: context.repo.repo,
// eslint-disable-next-line camelcase -- The ID defined in the GitHub API.
issue_number: issueNumber
});
return comments.data.find((comment) => comment.body.includes(botCommentIdentifier));
}
async function createOrUpdateComment(issueNumber) {
const existingComment = await findBotComment(issueNumber);
if (existingComment) {
await github.rest.issues.updateComment({
owner: context.repo.owner,
repo: context.repo.repo,
// eslint-disable-next-line camelcase -- The ID defined in the GitHub API.
comment_id: existingComment.id,
body
});
} else {
await github.rest.issues.createComment({
// eslint-disable-next-line camelcase -- The ID defined in the GitHub API.
issue_number: issueNumber,
owner: context.repo.owner,
repo: context.repo.repo,
body
});
}
}
}