eslint-plugin-svelte 2.34.0 → 2.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/README.md +1 -0
  2. package/lib/meta.d.ts +1 -1
  3. package/lib/meta.js +1 -1
  4. package/lib/rules/@typescript-eslint/no-unnecessary-condition.js +2 -1
  5. package/lib/rules/block-lang.js +2 -1
  6. package/lib/rules/comment-directive.js +3 -2
  7. package/lib/rules/first-attribute-linebreak.js +2 -1
  8. package/lib/rules/html-quotes.js +2 -1
  9. package/lib/rules/html-self-closing.js +2 -3
  10. package/lib/rules/indent-helpers/index.js +3 -2
  11. package/lib/rules/infinite-reactive-loop.js +4 -3
  12. package/lib/rules/max-attributes-per-line.js +2 -1
  13. package/lib/rules/mustache-spacing.js +2 -1
  14. package/lib/rules/no-dupe-else-if-blocks.js +2 -1
  15. package/lib/rules/no-dupe-on-directives.js +2 -1
  16. package/lib/rules/no-dupe-use-directives.js +2 -1
  17. package/lib/rules/no-dynamic-slot-name.js +2 -1
  18. package/lib/rules/no-extra-reactive-curlies.js +2 -1
  19. package/lib/rules/no-immutable-reactive-statements.js +2 -1
  20. package/lib/rules/no-inline-styles.d.ts +2 -0
  21. package/lib/rules/no-inline-styles.js +52 -0
  22. package/lib/rules/no-reactive-functions.js +2 -1
  23. package/lib/rules/no-reactive-literals.js +2 -1
  24. package/lib/rules/no-reactive-reassign.js +2 -1
  25. package/lib/rules/no-trailing-spaces.js +2 -1
  26. package/lib/rules/no-unused-class-name.js +4 -2
  27. package/lib/rules/no-unused-svelte-ignore.js +3 -2
  28. package/lib/rules/no-useless-mustaches.js +2 -1
  29. package/lib/rules/prefer-class-directive.js +2 -1
  30. package/lib/rules/prefer-destructured-store-props.js +3 -2
  31. package/lib/rules/prefer-style-directive.js +2 -1
  32. package/lib/rules/reference-helpers/svelte-store.js +2 -1
  33. package/lib/rules/require-event-dispatcher-types.js +2 -1
  34. package/lib/rules/require-store-reactive-access.js +2 -1
  35. package/lib/rules/shorthand-attribute.js +2 -1
  36. package/lib/rules/shorthand-directive.js +2 -1
  37. package/lib/rules/sort-attributes.js +2 -1
  38. package/lib/rules/system.js +2 -1
  39. package/lib/rules/valid-compile.js +2 -1
  40. package/lib/shared/svelte-compile-warns/extract-leading-comments.js +2 -1
  41. package/lib/shared/svelte-compile-warns/ignore-comment.js +2 -1
  42. package/lib/shared/svelte-compile-warns/index.js +30 -14
  43. package/lib/shared/svelte-compile-warns/transform/babel.js +2 -1
  44. package/lib/shared/svelte-compile-warns/transform/less.js +2 -1
  45. package/lib/shared/svelte-compile-warns/transform/postcss.js +3 -2
  46. package/lib/shared/svelte-compile-warns/transform/stylus.js +2 -1
  47. package/lib/shared/svelte-compile-warns/transform/typescript.js +3 -1
  48. package/lib/utils/ast-utils.js +3 -2
  49. package/lib/utils/compat.d.ts +5 -0
  50. package/lib/utils/compat.js +20 -0
  51. package/lib/utils/css-utils/style-attribute.js +5 -4
  52. package/lib/utils/load-module.js +5 -4
  53. package/lib/utils/rules.js +2 -0
  54. package/lib/utils/svelte-kit.js +4 -3
  55. package/lib/utils/ts-utils/index.js +4 -2
  56. package/package.json +9 -8
package/README.md CHANGED
@@ -342,6 +342,7 @@ These rules relate to better ways of doing things to help you avoid problems:
342
342
  | [svelte/no-at-debug-tags](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-at-debug-tags/) | disallow the use of `{@debug}` | :star: |
343
343
  | [svelte/no-ignored-unsubscribe](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-ignored-unsubscribe/) | disallow ignoring the unsubscribe method returned by the `subscribe()` on Svelte stores. | |
344
344
  | [svelte/no-immutable-reactive-statements](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-immutable-reactive-statements/) | disallow reactive statements that don't reference reactive values. | |
345
+ | [svelte/no-inline-styles](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-inline-styles/) | disallow attributes and directives that produce inline styles | |
345
346
  | [svelte/no-reactive-functions](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-reactive-functions/) | it's not necessary to define functions in reactive statements | :bulb: |
346
347
  | [svelte/no-reactive-literals](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-reactive-literals/) | don't assign literal values in reactive statements | :bulb: |
347
348
  | [svelte/no-unused-class-name](https://sveltejs.github.io/eslint-plugin-svelte/rules/no-unused-class-name/) | disallow the use of a class in the template without a corresponding style | |
package/lib/meta.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  export declare const name: "eslint-plugin-svelte";
2
- export declare const version: "2.34.0";
2
+ export declare const version: "2.35.0";
package/lib/meta.js CHANGED
@@ -2,4 +2,4 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.version = exports.name = void 0;
4
4
  exports.name = 'eslint-plugin-svelte';
5
- exports.version = '2.34.0';
5
+ exports.version = '2.35.0';
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("../../utils");
4
4
  const ts_utils_1 = require("../../utils/ts-utils");
5
+ const compat_1 = require("../../utils/compat");
5
6
  function unionTypeParts(type) {
6
7
  return [...iterate(type)];
7
8
  function* iterate(t) {
@@ -87,7 +88,7 @@ exports.default = (0, utils_1.createRule)('@typescript-eslint/no-unnecessary-con
87
88
  }
88
89
  const { service, ts } = tools;
89
90
  const checker = service.program.getTypeChecker();
90
- const sourceCode = context.getSourceCode();
91
+ const sourceCode = (0, compat_1.getSourceCode)(context);
91
92
  const compilerOptions = service.program.getCompilerOptions();
92
93
  const isStrictNullChecks = compilerOptions.strict
93
94
  ? compilerOptions.strictNullChecks !== false
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("../utils");
4
4
  const ast_utils_1 = require("../utils/ast-utils");
5
+ const compat_1 = require("../utils/compat");
5
6
  exports.default = (0, utils_1.createRule)('block-lang', {
6
7
  meta: {
7
8
  docs: {
@@ -55,7 +56,7 @@ exports.default = (0, utils_1.createRule)('block-lang', {
55
56
  type: 'suggestion'
56
57
  },
57
58
  create(context) {
58
- if (!context.parserServices.isSvelte) {
59
+ if (!(0, compat_1.getSourceCode)(context).parserServices.isSvelte) {
59
60
  return {};
60
61
  }
61
62
  const enforceScriptPresent = context.options[0]?.enforceScriptPresent ?? false;
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const shared_1 = require("../shared");
4
4
  const utils_1 = require("../utils");
5
+ const compat_1 = require("../utils/compat");
5
6
  const COMMENT_DIRECTIVE_B = /^\s*(eslint-(?:en|dis)able)(?:\s+|$)/;
6
7
  const COMMENT_DIRECTIVE_L = /^\s*(eslint-disable(?:-next)?-line)(?:\s+|$)/;
7
8
  const ALL_RULES = () => true;
@@ -35,7 +36,7 @@ exports.default = (0, utils_1.createRule)('comment-directive', {
35
36
  type: 'problem'
36
37
  },
37
38
  create(context) {
38
- const shared = (0, shared_1.getShared)(context.getFilename());
39
+ const shared = (0, shared_1.getShared)((0, compat_1.getFilename)(context));
39
40
  if (!shared)
40
41
  return {};
41
42
  const options = context.options[0] || {};
@@ -44,7 +45,7 @@ exports.default = (0, utils_1.createRule)('comment-directive', {
44
45
  ruleId: 'svelte/comment-directive',
45
46
  reportUnusedDisableDirectives
46
47
  });
47
- const sourceCode = context.getSourceCode();
48
+ const sourceCode = (0, compat_1.getSourceCode)(context);
48
49
  function parse(pattern, comment) {
49
50
  const text = stripDirectiveComment(comment.value);
50
51
  const match = pattern.exec(text);
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("../utils");
4
+ const compat_1 = require("../utils/compat");
4
5
  exports.default = (0, utils_1.createRule)('first-attribute-linebreak', {
5
6
  meta: {
6
7
  docs: {
@@ -29,7 +30,7 @@ exports.default = (0, utils_1.createRule)('first-attribute-linebreak', {
29
30
  create(context) {
30
31
  const multiline = context.options[0]?.multiline || 'below';
31
32
  const singleline = context.options[0]?.singleline || 'beside';
32
- const sourceCode = context.getSourceCode();
33
+ const sourceCode = (0, compat_1.getSourceCode)(context);
33
34
  function report(firstAttribute, location) {
34
35
  context.report({
35
36
  node: firstAttribute,
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("../utils");
4
4
  const ast_utils_1 = require("../utils/ast-utils");
5
5
  const ast_utils_2 = require("../utils/ast-utils");
6
+ const compat_1 = require("../utils/compat");
6
7
  const QUOTE_CHARS = {
7
8
  double: '"',
8
9
  single: "'"
@@ -46,7 +47,7 @@ exports.default = (0, utils_1.createRule)('html-quotes', {
46
47
  type: 'layout'
47
48
  },
48
49
  create(context) {
49
- const sourceCode = context.getSourceCode();
50
+ const sourceCode = (0, compat_1.getSourceCode)(context);
50
51
  const preferQuote = context.options[0]?.prefer ?? 'double';
51
52
  const dynamicQuote = context.options[0]?.dynamic?.quoted ? preferQuote : 'unquoted';
52
53
  const avoidInvalidUnquotedInHTML = Boolean(context.options[0]?.dynamic?.avoidInvalidUnquotedInHTML);
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("../utils");
4
4
  const ast_utils_1 = require("../utils/ast-utils");
5
+ const compat_1 = require("../utils/compat");
5
6
  const TYPE_MESSAGES = {
6
7
  normal: 'HTML elements',
7
8
  void: 'HTML void elements',
@@ -108,9 +109,7 @@ exports.default = (0, utils_1.createRule)('html-self-closing', {
108
109
  context.report({
109
110
  node,
110
111
  loc: {
111
- start: context
112
- .getSourceCode()
113
- .getLocFromIndex(node.startTag.range[1] - (node.startTag.selfClosing ? 2 : 1)),
112
+ start: (0, compat_1.getSourceCode)(context).getLocFromIndex(node.startTag.range[1] - (node.startTag.selfClosing ? 2 : 1)),
114
113
  end: node.loc.end
115
114
  },
116
115
  messageId: shouldBeClosed ? 'requireClosing' : 'disallowClosing',
@@ -30,6 +30,7 @@ const TS = __importStar(require("./ts"));
30
30
  const ast_1 = require("./ast");
31
31
  const eslint_utils_1 = require("@eslint-community/eslint-utils");
32
32
  const offset_context_1 = require("./offset-context");
33
+ const compat_1 = require("../../utils/compat");
33
34
  function parseOptions(options, defaultOptions) {
34
35
  const ret = {
35
36
  indentChar: ' ',
@@ -65,10 +66,10 @@ function parseOptions(options, defaultOptions) {
65
66
  return ret;
66
67
  }
67
68
  function defineVisitor(context, defaultOptions) {
68
- if (!context.getFilename().endsWith('.svelte'))
69
+ if (!(0, compat_1.getFilename)(context).endsWith('.svelte'))
69
70
  return {};
70
71
  const options = parseOptions(context.options[0] || {}, defaultOptions);
71
- const sourceCode = context.getSourceCode();
72
+ const sourceCode = (0, compat_1.getSourceCode)(context);
72
73
  const offsets = new offset_context_1.OffsetContext({ sourceCode, options });
73
74
  function getIndentText({ line, column }) {
74
75
  return sourceCode.lines[line - 1].slice(0, column);
@@ -4,8 +4,9 @@ const eslint_utils_1 = require("@eslint-community/eslint-utils");
4
4
  const utils_1 = require("../utils");
5
5
  const ast_utils_1 = require("../utils/ast-utils");
6
6
  const svelte_eslint_parser_1 = require("svelte-eslint-parser");
7
+ const compat_1 = require("../utils/compat");
7
8
  function extractTickReferences(context) {
8
- const referenceTracker = new eslint_utils_1.ReferenceTracker(context.getSourceCode().scopeManager.globalScope);
9
+ const referenceTracker = new eslint_utils_1.ReferenceTracker((0, compat_1.getSourceCode)(context).scopeManager.globalScope);
9
10
  const a = referenceTracker.iterateEsmReferences({
10
11
  svelte: {
11
12
  [eslint_utils_1.ReferenceTracker.ESM]: true,
@@ -22,7 +23,7 @@ function extractTickReferences(context) {
22
23
  });
23
24
  }
24
25
  function extractTaskReferences(context) {
25
- const referenceTracker = new eslint_utils_1.ReferenceTracker(context.getSourceCode().scopeManager.globalScope);
26
+ const referenceTracker = new eslint_utils_1.ReferenceTracker((0, compat_1.getSourceCode)(context).scopeManager.globalScope);
26
27
  const a = referenceTracker.iterateGlobalReferences({
27
28
  setTimeout: { [eslint_utils_1.ReferenceTracker.CALL]: true },
28
29
  setInterval: { [eslint_utils_1.ReferenceTracker.CALL]: true },
@@ -81,7 +82,7 @@ function isPromiseThenOrCatchBody(node) {
81
82
  return ['then', 'catch'].includes(property.name);
82
83
  }
83
84
  function getReactiveVariableReferences(context) {
84
- const scopeManager = context.getSourceCode().scopeManager;
85
+ const scopeManager = (0, compat_1.getSourceCode)(context).scopeManager;
85
86
  const toplevelScope = scopeManager.globalScope?.childScopes.find((scope) => scope.type === 'module') ||
86
87
  scopeManager.globalScope;
87
88
  if (!toplevelScope) {
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("../utils");
4
+ const compat_1 = require("../utils/compat");
4
5
  function isSingleLine(node) {
5
6
  return node.loc.start.line === node.loc.end.line;
6
7
  }
@@ -49,7 +50,7 @@ exports.default = (0, utils_1.createRule)('max-attributes-per-line', {
49
50
  create(context) {
50
51
  const multilineMaximum = context.options[0]?.multiline ?? 1;
51
52
  const singlelineMaximum = context.options[0]?.singleline ?? 1;
52
- const sourceCode = context.getSourceCode();
53
+ const sourceCode = (0, compat_1.getSourceCode)(context);
53
54
  function report(attribute) {
54
55
  if (!attribute) {
55
56
  return;
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const eslint_utils_1 = require("@eslint-community/eslint-utils");
4
4
  const utils_1 = require("../utils");
5
5
  const ast_utils_1 = require("../utils/ast-utils");
6
+ const compat_1 = require("../utils/compat");
6
7
  const VALUE_SCHEMA = { enum: ['never', 'always'] };
7
8
  function parseOptions(options) {
8
9
  return {
@@ -55,7 +56,7 @@ exports.default = (0, utils_1.createRule)('mustache-spacing', {
55
56
  },
56
57
  create(context) {
57
58
  const options = parseOptions(context.options[0]);
58
- const sourceCode = context.getSourceCode();
59
+ const sourceCode = (0, compat_1.getSourceCode)(context);
59
60
  function verifyBraces(openingBrace, closingBrace, openingOption, closingOption, hasExpression) {
60
61
  const firstToken = sourceCode.getTokenAfter(openingBrace, {
61
62
  includeComments: true
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("../utils");
4
4
  const ast_utils_1 = require("../utils/ast-utils");
5
+ const compat_1 = require("../utils/compat");
5
6
  function splitByLogicalOperator(operator, node) {
6
7
  if (node.type === 'LogicalExpression' && node.operator === operator) {
7
8
  return [
@@ -44,7 +45,7 @@ exports.default = (0, utils_1.createRule)('no-dupe-else-if-blocks', {
44
45
  type: 'problem'
45
46
  },
46
47
  create(context) {
47
- const sourceCode = context.getSourceCode();
48
+ const sourceCode = (0, compat_1.getSourceCode)(context);
48
49
  function equal(a, b) {
49
50
  if (a.type !== b.type) {
50
51
  return false;
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("../utils");
4
4
  const ast_utils_1 = require("../utils/ast-utils");
5
+ const compat_1 = require("../utils/compat");
5
6
  exports.default = (0, utils_1.createRule)('no-dupe-on-directives', {
6
7
  meta: {
7
8
  docs: {
@@ -16,7 +17,7 @@ exports.default = (0, utils_1.createRule)('no-dupe-on-directives', {
16
17
  type: 'problem'
17
18
  },
18
19
  create(context) {
19
- const sourceCode = context.getSourceCode();
20
+ const sourceCode = (0, compat_1.getSourceCode)(context);
20
21
  const directiveDataMap = new Map();
21
22
  return {
22
23
  SvelteDirective(node) {
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("../utils");
4
4
  const ast_utils_1 = require("../utils/ast-utils");
5
+ const compat_1 = require("../utils/compat");
5
6
  exports.default = (0, utils_1.createRule)('no-dupe-use-directives', {
6
7
  meta: {
7
8
  docs: {
@@ -16,7 +17,7 @@ exports.default = (0, utils_1.createRule)('no-dupe-use-directives', {
16
17
  type: 'problem'
17
18
  },
18
19
  create(context) {
19
- const sourceCode = context.getSourceCode();
20
+ const sourceCode = (0, compat_1.getSourceCode)(context);
20
21
  const directiveDataMap = new Map();
21
22
  return {
22
23
  SvelteDirective(node) {
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("../utils");
4
4
  const ast_utils_1 = require("../utils/ast-utils");
5
+ const compat_1 = require("../utils/compat");
5
6
  exports.default = (0, utils_1.createRule)('no-dynamic-slot-name', {
6
7
  meta: {
7
8
  docs: {
@@ -18,7 +19,7 @@ exports.default = (0, utils_1.createRule)('no-dynamic-slot-name', {
18
19
  type: 'problem'
19
20
  },
20
21
  create(context) {
21
- const sourceCode = context.getSourceCode();
22
+ const sourceCode = (0, compat_1.getSourceCode)(context);
22
23
  return {
23
24
  "SvelteElement[name.name='slot'] > SvelteStartTag.startTag > SvelteAttribute[key.name='name']"(node) {
24
25
  if (node.value.length === 0) {
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("../utils");
4
+ const compat_1 = require("../utils/compat");
4
5
  exports.default = (0, utils_1.createRule)('no-extra-reactive-curlies', {
5
6
  meta: {
6
7
  docs: {
@@ -20,7 +21,7 @@ exports.default = (0, utils_1.createRule)('no-extra-reactive-curlies', {
20
21
  create(context) {
21
22
  return {
22
23
  [`SvelteReactiveStatement > BlockStatement[body.length=1]`]: (node) => {
23
- const source = context.getSourceCode();
24
+ const source = (0, compat_1.getSourceCode)(context);
24
25
  return context.report({
25
26
  node,
26
27
  loc: node.loc,
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("../utils");
4
4
  const ast_utils_1 = require("../utils/ast-utils");
5
+ const compat_1 = require("../utils/compat");
5
6
  exports.default = (0, utils_1.createRule)('no-immutable-reactive-statements', {
6
7
  meta: {
7
8
  docs: {
@@ -16,7 +17,7 @@ exports.default = (0, utils_1.createRule)('no-immutable-reactive-statements', {
16
17
  type: 'suggestion'
17
18
  },
18
19
  create(context) {
19
- const scopeManager = context.getSourceCode().scopeManager;
20
+ const scopeManager = (0, compat_1.getSourceCode)(context).scopeManager;
20
21
  const globalScope = scopeManager.globalScope;
21
22
  const toplevelScope = globalScope?.childScopes.find((scope) => scope.type === 'module') || globalScope;
22
23
  if (!globalScope || !toplevelScope) {
@@ -0,0 +1,2 @@
1
+ declare const _default: import("../types").RuleModule;
2
+ export default _default;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("../utils");
4
+ exports.default = (0, utils_1.createRule)('no-inline-styles', {
5
+ meta: {
6
+ docs: {
7
+ description: 'disallow attributes and directives that produce inline styles',
8
+ category: 'Best Practices',
9
+ recommended: false
10
+ },
11
+ schema: [
12
+ {
13
+ type: 'object',
14
+ properties: {
15
+ allowTransitions: {
16
+ type: 'boolean'
17
+ }
18
+ },
19
+ additionalProperties: false
20
+ }
21
+ ],
22
+ messages: {
23
+ hasStyleAttribute: 'Found disallowed style attribute.',
24
+ hasStyleDirective: 'Found disallowed style directive.',
25
+ hasTransition: 'Found disallowed transition.'
26
+ },
27
+ type: 'suggestion'
28
+ },
29
+ create(context) {
30
+ const allowTransitions = context.options[0]?.allowTransitions ?? false;
31
+ return {
32
+ SvelteElement(node) {
33
+ if (node.kind !== 'html') {
34
+ return;
35
+ }
36
+ for (const attribute of node.startTag.attributes) {
37
+ if (attribute.type === 'SvelteStyleDirective') {
38
+ context.report({ loc: attribute.loc, messageId: 'hasStyleDirective' });
39
+ }
40
+ if (attribute.type === 'SvelteAttribute' && attribute.key.name === 'style') {
41
+ context.report({ loc: attribute.loc, messageId: 'hasStyleAttribute' });
42
+ }
43
+ if (!allowTransitions &&
44
+ attribute.type === 'SvelteDirective' &&
45
+ attribute.kind === 'Transition') {
46
+ context.report({ loc: attribute.loc, messageId: 'hasTransition' });
47
+ }
48
+ }
49
+ }
50
+ };
51
+ }
52
+ });
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("../utils");
4
+ const compat_1 = require("../utils/compat");
4
5
  exports.default = (0, utils_1.createRule)('no-reactive-functions', {
5
6
  meta: {
6
7
  docs: {
@@ -23,7 +24,7 @@ exports.default = (0, utils_1.createRule)('no-reactive-functions', {
23
24
  if (!parent) {
24
25
  return false;
25
26
  }
26
- const source = context.getSourceCode();
27
+ const source = (0, compat_1.getSourceCode)(context);
27
28
  return context.report({
28
29
  node: parent,
29
30
  loc: parent.loc,
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("../utils");
4
+ const compat_1 = require("../utils/compat");
4
5
  exports.default = (0, utils_1.createRule)('no-reactive-literals', {
5
6
  meta: {
6
7
  docs: {
@@ -27,7 +28,7 @@ exports.default = (0, utils_1.createRule)('no-reactive-literals', {
27
28
  if (!parent) {
28
29
  return false;
29
30
  }
30
- const source = context.getSourceCode();
31
+ const source = (0, compat_1.getSourceCode)(context);
31
32
  return context.report({
32
33
  node: parent,
33
34
  loc: parent.loc,
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("../utils");
4
4
  const eslint_utils_1 = require("@eslint-community/eslint-utils");
5
+ const compat_1 = require("../utils/compat");
5
6
  exports.default = (0, utils_1.createRule)('no-reactive-reassign', {
6
7
  meta: {
7
8
  docs: {
@@ -28,7 +29,7 @@ exports.default = (0, utils_1.createRule)('no-reactive-reassign', {
28
29
  },
29
30
  create(context) {
30
31
  const props = context.options[0]?.props !== false;
31
- const sourceCode = context.getSourceCode();
32
+ const sourceCode = (0, compat_1.getSourceCode)(context);
32
33
  const scopeManager = sourceCode.scopeManager;
33
34
  const globalScope = scopeManager.globalScope;
34
35
  const toplevelScope = globalScope?.childScopes.find((scope) => scope.type === 'module') || globalScope;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("../utils");
4
+ const compat_1 = require("../utils/compat");
4
5
  exports.default = (0, utils_1.createRule)('no-trailing-spaces', {
5
6
  meta: {
6
7
  type: 'layout',
@@ -30,7 +31,7 @@ exports.default = (0, utils_1.createRule)('no-trailing-spaces', {
30
31
  const options = context.options[0];
31
32
  const skipBlankLines = options?.skipBlankLines || false;
32
33
  const ignoreComments = options?.ignoreComments || false;
33
- const sourceCode = context.getSourceCode();
34
+ const sourceCode = (0, compat_1.getSourceCode)(context);
34
35
  const ignoreLineNumbers = new Set();
35
36
  if (ignoreComments) {
36
37
  for (const { type, loc } of sourceCode.getAllComments()) {
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const utils_1 = require("../utils");
7
7
  const postcss_selector_parser_1 = __importDefault(require("postcss-selector-parser"));
8
+ const compat_1 = require("../utils/compat");
8
9
  exports.default = (0, utils_1.createRule)('no-unused-class-name', {
9
10
  meta: {
10
11
  docs: {
@@ -30,7 +31,8 @@ exports.default = (0, utils_1.createRule)('no-unused-class-name', {
30
31
  type: 'suggestion'
31
32
  },
32
33
  create(context) {
33
- if (!context.parserServices.isSvelte) {
34
+ const sourceCode = (0, compat_1.getSourceCode)(context);
35
+ if (!sourceCode.parserServices.isSvelte) {
34
36
  return {};
35
37
  }
36
38
  const allowedClassNames = context.options[0]?.allowedClassNames ?? [];
@@ -46,7 +48,7 @@ exports.default = (0, utils_1.createRule)('no-unused-class-name', {
46
48
  }
47
49
  },
48
50
  'Program:exit'() {
49
- const styleContext = context.parserServices.getStyleContext();
51
+ const styleContext = sourceCode.parserServices.getStyleContext();
50
52
  if (['parse-error', 'unknown-lang'].includes(styleContext.status)) {
51
53
  return;
52
54
  }
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const svelte_compile_warns_1 = require("../shared/svelte-compile-warns");
4
4
  const utils_1 = require("../utils");
5
5
  const ignore_comment_1 = require("../shared/svelte-compile-warns/ignore-comment");
6
+ const compat_1 = require("../utils/compat");
6
7
  exports.default = (0, utils_1.createRule)('no-unused-svelte-ignore', {
7
8
  meta: {
8
9
  docs: {
@@ -18,10 +19,10 @@ exports.default = (0, utils_1.createRule)('no-unused-svelte-ignore', {
18
19
  type: 'suggestion'
19
20
  },
20
21
  create(context) {
21
- if (!context.parserServices.isSvelte) {
22
+ const sourceCode = (0, compat_1.getSourceCode)(context);
23
+ if (!sourceCode.parserServices.isSvelte) {
22
24
  return {};
23
25
  }
24
- const sourceCode = context.getSourceCode();
25
26
  const ignoreComments = [];
26
27
  for (const item of (0, ignore_comment_1.getSvelteIgnoreItems)(context)) {
27
28
  if (item.code == null) {
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("../utils");
4
+ const compat_1 = require("../utils/compat");
4
5
  function stripQuotes(text) {
5
6
  if ((text.startsWith('"') || text.startsWith("'") || text.startsWith('`')) &&
6
7
  text.endsWith(text[0])) {
@@ -39,7 +40,7 @@ exports.default = (0, utils_1.createRule)('no-useless-mustaches', {
39
40
  const opts = context.options[0] || {};
40
41
  const ignoreIncludesComment = Boolean(opts.ignoreIncludesComment);
41
42
  const ignoreStringEscape = Boolean(opts.ignoreStringEscape);
42
- const sourceCode = context.getSourceCode();
43
+ const sourceCode = (0, compat_1.getSourceCode)(context);
43
44
  function verify(node) {
44
45
  if (node.kind === 'raw') {
45
46
  return;
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("../utils");
4
4
  const ast_utils_1 = require("../utils/ast-utils");
5
+ const compat_1 = require("../utils/compat");
5
6
  exports.default = (0, utils_1.createRule)('prefer-class-directive', {
6
7
  meta: {
7
8
  docs: {
@@ -18,7 +19,7 @@ exports.default = (0, utils_1.createRule)('prefer-class-directive', {
18
19
  type: 'suggestion'
19
20
  },
20
21
  create(context) {
21
- const sourceCode = context.getSourceCode();
22
+ const sourceCode = (0, compat_1.getSourceCode)(context);
22
23
  function parseConditionalExpression(node) {
23
24
  const result = new Map();
24
25
  if (!processItems({
@@ -4,6 +4,7 @@ const eslint_utils_1 = require("@eslint-community/eslint-utils");
4
4
  const esutils_1 = require("esutils");
5
5
  const utils_1 = require("../utils");
6
6
  const ast_utils_1 = require("../utils/ast-utils");
7
+ const compat_1 = require("../utils/compat");
7
8
  exports.default = (0, utils_1.createRule)('prefer-destructured-store-props', {
8
9
  meta: {
9
10
  docs: {
@@ -69,7 +70,7 @@ exports.default = (0, utils_1.createRule)('prefer-destructured-store-props', {
69
70
  }
70
71
  }
71
72
  function hasTopLevelVariable(name) {
72
- const scopeManager = context.getSourceCode().scopeManager;
73
+ const scopeManager = (0, compat_1.getSourceCode)(context).scopeManager;
73
74
  if (scopeManager.globalScope?.set.has(name)) {
74
75
  return true;
75
76
  }
@@ -168,7 +169,7 @@ exports.default = (0, utils_1.createRule)('prefer-destructured-store-props', {
168
169
  store,
169
170
  property: !node.computed
170
171
  ? node.property.name
171
- : context.getSourceCode().getText(node.property).replace(/\s+/g, ' ')
172
+ : (0, compat_1.getSourceCode)(context).getText(node.property).replace(/\s+/g, ' ')
172
173
  },
173
174
  suggest
174
175
  });
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("../utils");
4
4
  const css_utils_1 = require("../utils/css-utils");
5
5
  const ast_utils_1 = require("../utils/ast-utils");
6
+ const compat_1 = require("../utils/compat");
6
7
  function isStringLiteral(node) {
7
8
  return node.type === 'Literal' && typeof node.value === 'string';
8
9
  }
@@ -22,7 +23,7 @@ exports.default = (0, utils_1.createRule)('prefer-style-directive', {
22
23
  type: 'suggestion'
23
24
  },
24
25
  create(context) {
25
- const sourceCode = context.getSourceCode();
26
+ const sourceCode = (0, compat_1.getSourceCode)(context);
26
27
  function processStyleValue(node, root) {
27
28
  for (const child of root.nodes) {
28
29
  if (child.type === 'decl') {
@@ -4,8 +4,9 @@ exports.createStoreChecker = exports.extractStoreReferences = void 0;
4
4
  const eslint_utils_1 = require("@eslint-community/eslint-utils");
5
5
  const ts_utils_1 = require("../../utils/ts-utils");
6
6
  const ast_utils_1 = require("../../utils/ast-utils");
7
+ const compat_1 = require("../../utils/compat");
7
8
  function* extractStoreReferences(context, storeNames = ['writable', 'readable', 'derived']) {
8
- const referenceTracker = new eslint_utils_1.ReferenceTracker(context.getSourceCode().scopeManager.globalScope);
9
+ const referenceTracker = new eslint_utils_1.ReferenceTracker((0, compat_1.getSourceCode)(context).scopeManager.globalScope);
9
10
  for (const { node, path } of referenceTracker.iterateEsmReferences({
10
11
  'svelte/store': {
11
12
  [eslint_utils_1.ReferenceTracker.ESM]: true,
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const eslint_utils_1 = require("@eslint-community/eslint-utils");
4
4
  const utils_1 = require("../utils");
5
5
  const ast_utils_1 = require("../utils/ast-utils");
6
+ const compat_1 = require("../utils/compat");
6
7
  exports.default = (0, utils_1.createRule)('require-event-dispatcher-types', {
7
8
  meta: {
8
9
  docs: {
@@ -29,7 +30,7 @@ exports.default = (0, utils_1.createRule)('require-event-dispatcher-types', {
29
30
  if (!isTs) {
30
31
  return;
31
32
  }
32
- const referenceTracker = new eslint_utils_1.ReferenceTracker(context.getSourceCode().scopeManager.globalScope);
33
+ const referenceTracker = new eslint_utils_1.ReferenceTracker((0, compat_1.getSourceCode)(context).scopeManager.globalScope);
33
34
  for (const { node: n } of referenceTracker.iterateEsmReferences({
34
35
  svelte: {
35
36
  [eslint_utils_1.ReferenceTracker.ESM]: true,
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("../utils");
4
4
  const svelte_store_1 = require("./reference-helpers/svelte-store");
5
+ const compat_1 = require("../utils/compat");
5
6
  exports.default = (0, utils_1.createRule)('require-store-reactive-access', {
6
7
  meta: {
7
8
  docs: {
@@ -17,7 +18,7 @@ exports.default = (0, utils_1.createRule)('require-store-reactive-access', {
17
18
  type: 'problem'
18
19
  },
19
20
  create(context) {
20
- if (!context.parserServices.isSvelte) {
21
+ if (!(0, compat_1.getSourceCode)(context).parserServices.isSvelte) {
21
22
  return {};
22
23
  }
23
24
  const isStore = (0, svelte_store_1.createStoreChecker)(context);