@plugjs/eslint-plugin 0.2.10 → 0.2.12

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.
@@ -158,11 +158,11 @@ var require_utils = __commonJS({
158
158
  function isTokenOnSameLine(left, right) {
159
159
  return left?.loc?.end.line === right?.loc?.start.line;
160
160
  }
161
- var isNotClosingParenToken = negate$1(isClosingParenToken$1);
162
- var isNotCommaToken = negate$1(isCommaToken$1);
163
- var isNotQuestionDotToken = negate$1(isQuestionDotToken);
164
- var isNotOpeningParenToken = negate$1(isOpeningParenToken$1);
165
- var isNotSemicolonToken = negate$1(isSemicolonToken$1);
161
+ var isNotClosingParenToken = /* @__PURE__ */ negate$1(isClosingParenToken$1);
162
+ var isNotCommaToken = /* @__PURE__ */ negate$1(isCommaToken$1);
163
+ var isNotQuestionDotToken = /* @__PURE__ */ negate$1(isQuestionDotToken);
164
+ var isNotOpeningParenToken = /* @__PURE__ */ negate$1(isOpeningParenToken$1);
165
+ var isNotSemicolonToken = /* @__PURE__ */ negate$1(isSemicolonToken$1);
166
166
  function isStringLiteral(node) {
167
167
  return node.type === "Literal" && typeof node.value === "string" || node.type === "TemplateLiteral";
168
168
  }
@@ -329,19 +329,72 @@ var require_utils = __commonJS({
329
329
  function hasOctalOrNonOctalDecimalEscapeSequence(rawString) {
330
330
  return OCTAL_OR_NON_OCTAL_DECIMAL_ESCAPE_PATTERN.test(rawString);
331
331
  }
332
- function createRule(rule) {
333
- return rule;
332
+ function isObjectNotArray(obj) {
333
+ return typeof obj === "object" && obj != null && !Array.isArray(obj);
334
+ }
335
+ function deepMerge(first = {}, second = {}) {
336
+ const keys = new Set(Object.keys(first).concat(Object.keys(second)));
337
+ return Array.from(keys).reduce((acc, key) => {
338
+ const firstHasKey = key in first;
339
+ const secondHasKey = key in second;
340
+ const firstValue = first[key];
341
+ const secondValue = second[key];
342
+ if (firstHasKey && secondHasKey) {
343
+ if (isObjectNotArray(firstValue) && isObjectNotArray(secondValue)) {
344
+ acc[key] = deepMerge(firstValue, secondValue);
345
+ } else {
346
+ acc[key] = secondValue;
347
+ }
348
+ } else if (firstHasKey) {
349
+ acc[key] = firstValue;
350
+ } else {
351
+ acc[key] = secondValue;
352
+ }
353
+ return acc;
354
+ }, {});
355
+ }
356
+ function createRule({
357
+ name,
358
+ package: pkg,
359
+ create,
360
+ defaultOptions = [],
361
+ meta
362
+ }) {
363
+ return {
364
+ create: (context) => {
365
+ const optionsCount = Math.max(context.options.length, defaultOptions.length);
366
+ const optionsWithDefault = Array.from(
367
+ { length: optionsCount },
368
+ (_, i) => {
369
+ if (isObjectNotArray(context.options[i]) && isObjectNotArray(defaultOptions[i])) {
370
+ return deepMerge(defaultOptions[i], context.options[i]);
371
+ }
372
+ return context.options[i] ?? defaultOptions[i];
373
+ }
374
+ );
375
+ return create(context, optionsWithDefault);
376
+ },
377
+ defaultOptions,
378
+ meta: {
379
+ ...meta,
380
+ docs: {
381
+ ...meta.docs,
382
+ url: `https://eslint.style/rules/${pkg}/${name}`
383
+ }
384
+ }
385
+ };
334
386
  }
335
- var ASCII_REGEX = /^[\u0000-\u007F]*$/u;
336
387
  var segmenter;
337
- function getGraphemeCount(value) {
338
- if (ASCII_REGEX.test(value))
388
+ function isASCII(value) {
389
+ return /^[\u0020-\u007F]*$/u.test(value);
390
+ }
391
+ function getStringLength(value) {
392
+ if (isASCII(value))
339
393
  return value.length;
340
- if (!segmenter)
341
- segmenter = new Intl.Segmenter();
394
+ segmenter ?? (segmenter = new Intl.Segmenter());
342
395
  return [...segmenter.segment(value)].length;
343
396
  }
344
- var keywords = [
397
+ var KEYWORDS_JS = [
345
398
  "abstract",
346
399
  "boolean",
347
400
  "break",
@@ -881,18 +934,43 @@ var require_utils = __commonJS({
881
934
  return this.replaceTextRange(nodeOrToken.range, "");
882
935
  }
883
936
  };
937
+ function createAllConfigs(plugin, name, flat, filter) {
938
+ const rules = Object.fromEntries(
939
+ Object.entries(plugin.rules).filter(
940
+ ([key, rule]) => (
941
+ // Only include fixable rules
942
+ rule.meta.fixable && !rule.meta.deprecated && key === rule.meta.docs.url.split("/").pop() && !filter
943
+ )
944
+ ).map(([key]) => [`${name}/${key}`, 2])
945
+ );
946
+ if (flat) {
947
+ return {
948
+ plugins: {
949
+ [name]: plugin
950
+ },
951
+ rules
952
+ };
953
+ } else {
954
+ return {
955
+ plugins: [name],
956
+ rules
957
+ };
958
+ }
959
+ }
884
960
  exports2.COMMENTS_IGNORE_PATTERN = COMMENTS_IGNORE_PATTERN;
885
961
  exports2.FixTracker = FixTracker;
962
+ exports2.KEYWORDS_JS = KEYWORDS_JS;
886
963
  exports2.LINEBREAKS = LINEBREAKS;
887
964
  exports2.LINEBREAK_MATCHER = LINEBREAK_MATCHER;
888
965
  exports2.STATEMENT_LIST_PARENTS = STATEMENT_LIST_PARENTS;
889
966
  exports2.canTokensBeAdjacent = canTokensBeAdjacent;
967
+ exports2.createAllConfigs = createAllConfigs;
890
968
  exports2.createGlobalLinebreakMatcher = createGlobalLinebreakMatcher;
891
969
  exports2.createRule = createRule;
892
- exports2.getGraphemeCount = getGraphemeCount;
893
970
  exports2.getNextLocation = getNextLocation;
894
971
  exports2.getPrecedence = getPrecedence;
895
972
  exports2.getStaticPropertyName = getStaticPropertyName;
973
+ exports2.getStringLength = getStringLength;
896
974
  exports2.getSwitchCaseColonToken = getSwitchCaseColonToken;
897
975
  exports2.hasOctalOrNonOctalDecimalEscapeSequence = hasOctalOrNonOctalDecimalEscapeSequence;
898
976
  exports2.isArrowToken = isArrowToken$1;
@@ -926,7 +1004,6 @@ var require_utils = __commonJS({
926
1004
  exports2.isSurroundedBy = isSurroundedBy;
927
1005
  exports2.isTokenOnSameLine = isTokenOnSameLine;
928
1006
  exports2.isTopLevelExpressionStatement = isTopLevelExpressionStatement;
929
- exports2.keywords = keywords;
930
1007
  exports2.skipChainExpression = skipChainExpression;
931
1008
  }
932
1009
  });
@@ -937,11 +1014,12 @@ var require_array_bracket_newline = __commonJS({
937
1014
  "use strict";
938
1015
  var utils = require_utils();
939
1016
  var arrayBracketNewline = utils.createRule({
1017
+ name: "array-bracket-newline",
1018
+ package: "js",
940
1019
  meta: {
941
1020
  type: "layout",
942
1021
  docs: {
943
- description: "Enforce linebreaks after opening and before closing array brackets",
944
- url: "https://eslint.style/rules/js/array-bracket-newline"
1022
+ description: "Enforce linebreaks after opening and before closing array brackets"
945
1023
  },
946
1024
  fixable: "whitespace",
947
1025
  schema: [
@@ -1088,11 +1166,12 @@ var require_array_bracket_spacing = __commonJS({
1088
1166
  "use strict";
1089
1167
  var utils = require_utils();
1090
1168
  var arrayBracketSpacing = utils.createRule({
1169
+ name: "array-bracket-spacing",
1170
+ package: "js",
1091
1171
  meta: {
1092
1172
  type: "layout",
1093
1173
  docs: {
1094
- description: "Enforce consistent spacing inside array brackets",
1095
- url: "https://eslint.style/rules/js/array-bracket-spacing"
1174
+ description: "Enforce consistent spacing inside array brackets"
1096
1175
  },
1097
1176
  fixable: "whitespace",
1098
1177
  schema: [
@@ -1235,11 +1314,12 @@ var require_array_element_newline = __commonJS({
1235
1314
  "use strict";
1236
1315
  var utils = require_utils();
1237
1316
  var arrayElementNewline = utils.createRule({
1317
+ name: "array-element-newline",
1318
+ package: "js",
1238
1319
  meta: {
1239
1320
  type: "layout",
1240
1321
  docs: {
1241
- description: "Enforce line breaks after each array element",
1242
- url: "https://eslint.style/rules/js/array-element-newline"
1322
+ description: "Enforce line breaks after each array element"
1243
1323
  },
1244
1324
  fixable: "whitespace",
1245
1325
  schema: {
@@ -1422,11 +1502,12 @@ var require_arrow_parens = __commonJS({
1422
1502
  return node.body.type === "BlockStatement";
1423
1503
  }
1424
1504
  var arrowParens = utils.createRule({
1505
+ name: "arrow-parens",
1506
+ package: "js",
1425
1507
  meta: {
1426
1508
  type: "layout",
1427
1509
  docs: {
1428
- description: "Require parentheses around arrow function arguments",
1429
- url: "https://eslint.style/rules/js/arrow-parens"
1510
+ description: "Require parentheses around arrow function arguments"
1430
1511
  },
1431
1512
  fixable: "code",
1432
1513
  schema: [
@@ -1490,7 +1571,7 @@ var require_arrow_parens = __commonJS({
1490
1571
  }
1491
1572
  });
1492
1573
  }
1493
- if (!shouldHaveParens && hasParens && param.type === "Identifier" && !param.typeAnnotation && !node.returnType && !hasCommentsInParensOfParams(node, openingParen) && !hasUnexpectedTokensBeforeOpeningParen(node, openingParen)) {
1574
+ if (!shouldHaveParens && hasParens && param.type === "Identifier" && !param.optional && !param.typeAnnotation && !node.returnType && !hasCommentsInParensOfParams(node, openingParen) && !hasUnexpectedTokensBeforeOpeningParen(node, openingParen)) {
1494
1575
  context.report({
1495
1576
  node,
1496
1577
  messageId: requireForBlockBody ? "unexpectedParensInline" : "unexpectedParens",
@@ -1520,11 +1601,12 @@ var require_arrow_spacing = __commonJS({
1520
1601
  "use strict";
1521
1602
  var utils = require_utils();
1522
1603
  var arrowSpacing = utils.createRule({
1604
+ name: "arrow-spacing",
1605
+ package: "js",
1523
1606
  meta: {
1524
1607
  type: "layout",
1525
1608
  docs: {
1526
- description: "Enforce consistent spacing before and after the arrow in arrow functions",
1527
- url: "https://eslint.style/rules/js/arrow-spacing"
1609
+ description: "Enforce consistent spacing before and after the arrow in arrow functions"
1528
1610
  },
1529
1611
  fixable: "whitespace",
1530
1612
  schema: [
@@ -1629,11 +1711,12 @@ var require_block_spacing = __commonJS({
1629
1711
  "use strict";
1630
1712
  var utils = require_utils();
1631
1713
  var blockSpacing = utils.createRule({
1714
+ name: "block-spacing",
1715
+ package: "js",
1632
1716
  meta: {
1633
1717
  type: "layout",
1634
1718
  docs: {
1635
- description: "Disallow or enforce spaces inside of blocks after opening block and before closing block",
1636
- url: "https://eslint.style/rules/js/block-spacing"
1719
+ description: "Disallow or enforce spaces inside of blocks after opening block and before closing block"
1637
1720
  },
1638
1721
  fixable: "whitespace",
1639
1722
  schema: [
@@ -1735,11 +1818,12 @@ var require_brace_style = __commonJS({
1735
1818
  "use strict";
1736
1819
  var utils = require_utils();
1737
1820
  var braceStyle = utils.createRule({
1821
+ name: "brace-style",
1822
+ package: "js",
1738
1823
  meta: {
1739
1824
  type: "layout",
1740
1825
  docs: {
1741
- description: "Enforce consistent brace style for blocks",
1742
- url: "https://eslint.style/rules/js/brace-style"
1826
+ description: "Enforce consistent brace style for blocks"
1743
1827
  },
1744
1828
  schema: [
1745
1829
  {
@@ -1908,11 +1992,12 @@ var require_comma_dangle = __commonJS({
1908
1992
  return DEFAULT_OPTIONS;
1909
1993
  }
1910
1994
  var commaDangle = utils.createRule({
1995
+ name: "comma-dangle",
1996
+ package: "js",
1911
1997
  meta: {
1912
1998
  type: "layout",
1913
1999
  docs: {
1914
- description: "Require or disallow trailing commas",
1915
- url: "https://eslint.style/rules/js/comma-dangle"
2000
+ description: "Require or disallow trailing commas"
1916
2001
  },
1917
2002
  fixable: "code",
1918
2003
  schema: {
@@ -2110,11 +2195,12 @@ var require_comma_spacing = __commonJS({
2110
2195
  "use strict";
2111
2196
  var utils = require_utils();
2112
2197
  var commaSpacing = utils.createRule({
2198
+ name: "comma-spacing",
2199
+ package: "js",
2113
2200
  meta: {
2114
2201
  type: "layout",
2115
2202
  docs: {
2116
- description: "Enforce consistent spacing before and after commas",
2117
- url: "https://eslint.style/rules/js/comma-spacing"
2203
+ description: "Enforce consistent spacing before and after commas"
2118
2204
  },
2119
2205
  fixable: "whitespace",
2120
2206
  schema: [
@@ -2216,11 +2302,12 @@ var require_comma_style = __commonJS({
2216
2302
  "use strict";
2217
2303
  var utils = require_utils();
2218
2304
  var commaStyle = utils.createRule({
2305
+ name: "comma-style",
2306
+ package: "js",
2219
2307
  meta: {
2220
2308
  type: "layout",
2221
2309
  docs: {
2222
- description: "Enforce consistent comma style",
2223
- url: "https://eslint.style/rules/js/comma-style"
2310
+ description: "Enforce consistent comma style"
2224
2311
  },
2225
2312
  fixable: "code",
2226
2313
  schema: [
@@ -2415,11 +2502,12 @@ var require_computed_property_spacing = __commonJS({
2415
2502
  "use strict";
2416
2503
  var utils = require_utils();
2417
2504
  var computedPropertySpacing = utils.createRule({
2505
+ name: "computed-property-spacing",
2506
+ package: "js",
2418
2507
  meta: {
2419
2508
  type: "layout",
2420
2509
  docs: {
2421
- description: "Enforce consistent spacing inside computed property brackets",
2422
- url: "https://eslint.style/rules/js/computed-property-spacing"
2510
+ description: "Enforce consistent spacing inside computed property brackets"
2423
2511
  },
2424
2512
  fixable: "whitespace",
2425
2513
  schema: [
@@ -2551,11 +2639,12 @@ var require_dot_location = __commonJS({
2551
2639
  "use strict";
2552
2640
  var utils = require_utils();
2553
2641
  var dotLocation = utils.createRule({
2642
+ name: "dot-location",
2643
+ package: "js",
2554
2644
  meta: {
2555
2645
  type: "layout",
2556
2646
  docs: {
2557
- description: "Enforce consistent newlines before and after dots",
2558
- url: "https://eslint.style/rules/js/dot-location"
2647
+ description: "Enforce consistent newlines before and after dots"
2559
2648
  },
2560
2649
  schema: [
2561
2650
  {
@@ -2623,11 +2712,12 @@ var require_eol_last = __commonJS({
2623
2712
  "use strict";
2624
2713
  var utils = require_utils();
2625
2714
  var eolLast = utils.createRule({
2715
+ name: "eol-last",
2716
+ package: "js",
2626
2717
  meta: {
2627
2718
  type: "layout",
2628
2719
  docs: {
2629
- description: "Require or disallow newline at the end of files",
2630
- url: "https://eslint.style/rules/js/eol-last"
2720
+ description: "Require or disallow newline at the end of files"
2631
2721
  },
2632
2722
  fixable: "whitespace",
2633
2723
  schema: [
@@ -2706,11 +2796,12 @@ var require_function_call_argument_newline = __commonJS({
2706
2796
  "use strict";
2707
2797
  var utils = require_utils();
2708
2798
  var functionCallArgumentNewline = utils.createRule({
2799
+ name: "function-call-argument-newline",
2800
+ package: "js",
2709
2801
  meta: {
2710
2802
  type: "layout",
2711
2803
  docs: {
2712
- description: "Enforce line breaks between arguments of a function call",
2713
- url: "https://eslint.style/rules/js/function-call-argument-newline"
2804
+ description: "Enforce line breaks between arguments of a function call"
2714
2805
  },
2715
2806
  fixable: "whitespace",
2716
2807
  schema: [
@@ -2793,11 +2884,12 @@ var require_function_call_spacing = __commonJS({
2793
2884
  "use strict";
2794
2885
  var utils = require_utils();
2795
2886
  var functionCallSpacing = utils.createRule({
2887
+ name: "function-call-spacing",
2888
+ package: "js",
2796
2889
  meta: {
2797
2890
  type: "layout",
2798
2891
  docs: {
2799
- description: "Require or disallow spacing between function identifiers and their invocations",
2800
- url: "https://eslint.style/rules/js/function-call-spacing"
2892
+ description: "Require or disallow spacing between function identifiers and their invocations"
2801
2893
  },
2802
2894
  fixable: "whitespace",
2803
2895
  schema: {
@@ -2940,11 +3032,12 @@ var require_function_paren_newline = __commonJS({
2940
3032
  "use strict";
2941
3033
  var utils = require_utils();
2942
3034
  var functionParenNewline = utils.createRule({
3035
+ name: "function-paren-newline",
3036
+ package: "js",
2943
3037
  meta: {
2944
3038
  type: "layout",
2945
3039
  docs: {
2946
- description: "Enforce consistent line breaks inside function parentheses",
2947
- url: "https://eslint.style/rules/js/function-paren-newline"
3040
+ description: "Enforce consistent line breaks inside function parentheses"
2948
3041
  },
2949
3042
  fixable: "whitespace",
2950
3043
  schema: [
@@ -3153,11 +3246,12 @@ var require_generator_star_spacing = __commonJS({
3153
3246
  ]
3154
3247
  };
3155
3248
  var generatorStarSpacing = utils.createRule({
3249
+ name: "generator-star-spacing",
3250
+ package: "js",
3156
3251
  meta: {
3157
3252
  type: "layout",
3158
3253
  docs: {
3159
- description: "Enforce consistent spacing around `*` operators in generator functions",
3160
- url: "https://eslint.style/rules/js/generator-star-spacing"
3254
+ description: "Enforce consistent spacing around `*` operators in generator functions"
3161
3255
  },
3162
3256
  fixable: "whitespace",
3163
3257
  schema: [
@@ -3272,11 +3366,12 @@ var require_implicit_arrow_linebreak = __commonJS({
3272
3366
  "use strict";
3273
3367
  var utils = require_utils();
3274
3368
  var implicitArrowLinebreak = utils.createRule({
3369
+ name: "implicit-arrow-linebreak",
3370
+ package: "js",
3275
3371
  meta: {
3276
3372
  type: "layout",
3277
3373
  docs: {
3278
- description: "Enforce the location of arrow function bodies",
3279
- url: "https://eslint.style/rules/js/implicit-arrow-linebreak"
3374
+ description: "Enforce the location of arrow function bodies"
3280
3375
  },
3281
3376
  fixable: "whitespace",
3282
3377
  schema: [
@@ -3692,11 +3787,12 @@ var require_indent = __commonJS({
3692
3787
  ]
3693
3788
  };
3694
3789
  var indent = utils.createRule({
3790
+ name: "indent",
3791
+ package: "js",
3695
3792
  meta: {
3696
3793
  type: "layout",
3697
3794
  docs: {
3698
- description: "Enforce consistent indentation",
3699
- url: "https://eslint.style/rules/js/indent"
3795
+ description: "Enforce consistent indentation"
3700
3796
  },
3701
3797
  fixable: "whitespace",
3702
3798
  schema: [
@@ -4606,11 +4702,12 @@ var require_jsx_quotes = __commonJS({
4606
4702
  }
4607
4703
  };
4608
4704
  var jsxQuotes = utils.createRule({
4705
+ name: "jsx-quotes",
4706
+ package: "js",
4609
4707
  meta: {
4610
4708
  type: "layout",
4611
4709
  docs: {
4612
- description: "Enforce the consistent use of either double or single quotes in JSX attributes",
4613
- url: "https://eslint.style/rules/js/jsx-quotes"
4710
+ description: "Enforce the consistent use of either double or single quotes in JSX attributes"
4614
4711
  },
4615
4712
  fixable: "whitespace",
4616
4713
  schema: [
@@ -4717,11 +4814,12 @@ var require_key_spacing = __commonJS({
4717
4814
  return toOptions;
4718
4815
  }
4719
4816
  var keySpacing = utils.createRule({
4817
+ name: "key-spacing",
4818
+ package: "js",
4720
4819
  meta: {
4721
4820
  type: "layout",
4722
4821
  docs: {
4723
- description: "Enforce consistent spacing between keys and values in object literal properties",
4724
- url: "https://eslint.style/rules/js/key-spacing"
4822
+ description: "Enforce consistent spacing between keys and values in object literal properties"
4725
4823
  },
4726
4824
  fixable: "whitespace",
4727
4825
  schema: [{
@@ -5000,7 +5098,7 @@ var require_key_spacing = __commonJS({
5000
5098
  function getKeyWidth(property) {
5001
5099
  const startToken = sourceCode.getFirstToken(property);
5002
5100
  const endToken = getLastTokenBeforeColon(property.key);
5003
- return utils.getGraphemeCount(sourceCode.getText().slice(startToken.range[0], endToken.range[1]));
5101
+ return utils.getStringLength(sourceCode.getText().slice(startToken.range[0], endToken.range[1]));
5004
5102
  }
5005
5103
  function getPropertyWhitespace(property) {
5006
5104
  const whitespace = /(\s*):(\s*)/u.exec(sourceCode.getText().slice(
@@ -5117,7 +5215,7 @@ var require_keyword_spacing = __commonJS({
5117
5215
  var TEMPLATE_OPEN_PAREN = /\$\{$/u;
5118
5216
  var TEMPLATE_CLOSE_PAREN = /^\}/u;
5119
5217
  var CHECK_TYPE = /^(?:JSXElement|RegularExpression|String|Template|PrivateIdentifier)$/u;
5120
- var KEYS = utils.keywords.concat(["as", "async", "await", "from", "get", "let", "of", "set", "yield"]);
5218
+ var KEYS = utils.KEYWORDS_JS.concat(["as", "async", "await", "from", "get", "let", "of", "set", "yield"]);
5121
5219
  (function() {
5122
5220
  KEYS.sort();
5123
5221
  for (let i = 1; i < KEYS.length; ++i) {
@@ -5132,11 +5230,12 @@ var require_keyword_spacing = __commonJS({
5132
5230
  return token.type === "Template" && TEMPLATE_CLOSE_PAREN.test(token.value);
5133
5231
  }
5134
5232
  var keywordSpacing = utils.createRule({
5233
+ name: "keyword-spacing",
5234
+ package: "js",
5135
5235
  meta: {
5136
5236
  type: "layout",
5137
5237
  docs: {
5138
- description: "Enforce consistent spacing before and after keywords",
5139
- url: "https://eslint.style/rules/js/keyword-spacing"
5238
+ description: "Enforce consistent spacing before and after keywords"
5140
5239
  },
5141
5240
  fixable: "whitespace",
5142
5241
  schema: [
@@ -5450,11 +5549,12 @@ var require_line_comment_position = __commonJS({
5450
5549
  "use strict";
5451
5550
  var utils = require_utils();
5452
5551
  var lineCommentPosition = utils.createRule({
5552
+ name: "line-comment-position",
5553
+ package: "js",
5453
5554
  meta: {
5454
5555
  type: "layout",
5455
5556
  docs: {
5456
- description: "Enforce position of line comments",
5457
- url: "https://eslint.style/rules/js/line-comment-position"
5557
+ description: "Enforce position of line comments"
5458
5558
  },
5459
5559
  schema: [
5460
5560
  {
@@ -5550,11 +5650,12 @@ var require_linebreak_style = __commonJS({
5550
5650
  "use strict";
5551
5651
  var utils = require_utils();
5552
5652
  var linebreakStyle = utils.createRule({
5653
+ name: "linebreak-style",
5654
+ package: "js",
5553
5655
  meta: {
5554
5656
  type: "layout",
5555
5657
  docs: {
5556
- description: "Enforce consistent linebreak style",
5557
- url: "https://eslint.style/rules/js/linebreak-style"
5658
+ description: "Enforce consistent linebreak style"
5558
5659
  },
5559
5660
  fixable: "whitespace",
5560
5661
  schema: [
@@ -5636,11 +5737,12 @@ var require_lines_around_comment = __commonJS({
5636
5737
  return lines;
5637
5738
  }
5638
5739
  var linesAroundComment = utils.createRule({
5740
+ name: "lines-around-comment",
5741
+ package: "js",
5639
5742
  meta: {
5640
5743
  type: "layout",
5641
5744
  docs: {
5642
- description: "Require empty lines around comments",
5643
- url: "https://eslint.style/rules/js/lines-around-comment"
5745
+ description: "Require empty lines around comments"
5644
5746
  },
5645
5747
  fixable: "whitespace",
5646
5748
  schema: [
@@ -5886,11 +5988,12 @@ var require_lines_between_class_members = __commonJS({
5886
5988
  };
5887
5989
  var linesBetweenClassMembers = utils.createRule(
5888
5990
  {
5991
+ name: "lines-between-class-members",
5992
+ package: "js",
5889
5993
  meta: {
5890
5994
  type: "layout",
5891
5995
  docs: {
5892
- description: "Require or disallow an empty line between class members",
5893
- url: "https://eslint.style/rules/js/lines-between-class-members"
5996
+ description: "Require or disallow an empty line between class members"
5894
5997
  },
5895
5998
  fixable: "whitespace",
5896
5999
  schema: [
@@ -6078,11 +6181,12 @@ var require_max_len = __commonJS({
6078
6181
  ]
6079
6182
  };
6080
6183
  var maxLen = utils.createRule({
6184
+ name: "max-len",
6185
+ package: "js",
6081
6186
  meta: {
6082
6187
  type: "layout",
6083
6188
  docs: {
6084
- description: "Enforce a maximum line length",
6085
- url: "https://eslint.style/rules/js/max-len"
6189
+ description: "Enforce a maximum line length"
6086
6190
  },
6087
6191
  schema: [
6088
6192
  OPTIONS_OR_INTEGER_SCHEMA,
@@ -6270,11 +6374,12 @@ var require_max_statements_per_line = __commonJS({
6270
6374
  "use strict";
6271
6375
  var utils = require_utils();
6272
6376
  var maxStatementsPerLine = utils.createRule({
6377
+ name: "max-statements-per-line",
6378
+ package: "js",
6273
6379
  meta: {
6274
6380
  type: "layout",
6275
6381
  docs: {
6276
- description: "Enforce a maximum number of statements allowed per line",
6277
- url: "https://eslint.style/rules/js/max-statements-per-line"
6382
+ description: "Enforce a maximum number of statements allowed per line"
6278
6383
  },
6279
6384
  schema: [
6280
6385
  {
@@ -6402,11 +6507,12 @@ var require_multiline_comment_style = __commonJS({
6402
6507
  "use strict";
6403
6508
  var utils = require_utils();
6404
6509
  var multilineCommentStyle = utils.createRule({
6510
+ name: "multiline-comment-style",
6511
+ package: "js",
6405
6512
  meta: {
6406
6513
  type: "suggestion",
6407
6514
  docs: {
6408
- description: "Enforce a particular style for multiline comments",
6409
- url: "https://eslint.style/rules/js/multiline-comment-style"
6515
+ description: "Enforce a particular style for multiline comments"
6410
6516
  },
6411
6517
  fixable: "whitespace",
6412
6518
  schema: {
@@ -6696,11 +6802,12 @@ var require_multiline_ternary = __commonJS({
6696
6802
  "use strict";
6697
6803
  var utils = require_utils();
6698
6804
  var multilineTernary = utils.createRule({
6805
+ name: "multiline-ternary",
6806
+ package: "js",
6699
6807
  meta: {
6700
6808
  type: "layout",
6701
6809
  docs: {
6702
- description: "Enforce newlines between operands of ternary expressions",
6703
- url: "https://eslint.style/rules/js/multiline-ternary"
6810
+ description: "Enforce newlines between operands of ternary expressions"
6704
6811
  },
6705
6812
  schema: [
6706
6813
  {
@@ -6844,11 +6951,12 @@ var require_new_parens = __commonJS({
6844
6951
  "use strict";
6845
6952
  var utils = require_utils();
6846
6953
  var newParens = utils.createRule({
6954
+ name: "new-parens",
6955
+ package: "js",
6847
6956
  meta: {
6848
6957
  type: "layout",
6849
6958
  docs: {
6850
- description: "Enforce or disallow parentheses when invoking a constructor with no arguments",
6851
- url: "https://eslint.style/rules/js/new-parens"
6959
+ description: "Enforce or disallow parentheses when invoking a constructor with no arguments"
6852
6960
  },
6853
6961
  fixable: "code",
6854
6962
  schema: [
@@ -6910,11 +7018,12 @@ var require_newline_per_chained_call = __commonJS({
6910
7018
  "use strict";
6911
7019
  var utils = require_utils();
6912
7020
  var newlinePerChainedCall = utils.createRule({
7021
+ name: "newline-per-chained-call",
7022
+ package: "js",
6913
7023
  meta: {
6914
7024
  type: "layout",
6915
7025
  docs: {
6916
- description: "Require a newline after each call in a method chain",
6917
- url: "https://eslint.style/rules/js/newline-per-chained-call"
7026
+ description: "Require a newline after each call in a method chain"
6918
7027
  },
6919
7028
  fixable: "whitespace",
6920
7029
  schema: [{
@@ -7001,11 +7110,12 @@ var require_no_confusing_arrow = __commonJS({
7001
7110
  return node.type === "ConditionalExpression";
7002
7111
  }
7003
7112
  var noConfusingArrow = utils.createRule({
7113
+ name: "no-confusing-arrow",
7114
+ package: "js",
7004
7115
  meta: {
7005
7116
  type: "layout",
7006
7117
  docs: {
7007
- description: "Disallow arrow functions where they could be confused with comparisons",
7008
- url: "https://eslint.style/rules/js/no-confusing-arrow"
7118
+ description: "Disallow arrow functions where they could be confused with comparisons"
7009
7119
  },
7010
7120
  fixable: "code",
7011
7121
  schema: [{
@@ -7052,11 +7162,12 @@ var require_no_extra_parens = __commonJS({
7052
7162
  "use strict";
7053
7163
  var utils = require_utils();
7054
7164
  var noExtraParens = utils.createRule({
7165
+ name: "no-extra-parens",
7166
+ package: "js",
7055
7167
  meta: {
7056
7168
  type: "layout",
7057
7169
  docs: {
7058
- description: "Disallow unnecessary parentheses",
7059
- url: "https://eslint.style/rules/js/no-extra-parens"
7170
+ description: "Disallow unnecessary parentheses"
7060
7171
  },
7061
7172
  fixable: "code",
7062
7173
  schema: {
@@ -7705,11 +7816,12 @@ var require_no_extra_semi = __commonJS({
7705
7816
  "use strict";
7706
7817
  var utils = require_utils();
7707
7818
  var noExtraSemi = utils.createRule({
7819
+ name: "no-extra-semi",
7820
+ package: "js",
7708
7821
  meta: {
7709
7822
  type: "layout",
7710
7823
  docs: {
7711
- description: "Disallow unnecessary semicolons",
7712
- url: "https://eslint.style/rules/js/no-extra-semi"
7824
+ description: "Disallow unnecessary semicolons"
7713
7825
  },
7714
7826
  fixable: "code",
7715
7827
  schema: [],
@@ -7786,11 +7898,12 @@ var require_no_floating_decimal = __commonJS({
7786
7898
  "use strict";
7787
7899
  var utils = require_utils();
7788
7900
  var noFloatingDecimal = utils.createRule({
7901
+ name: "no-floating-decimal",
7902
+ package: "js",
7789
7903
  meta: {
7790
7904
  type: "layout",
7791
7905
  docs: {
7792
- description: "Disallow leading or trailing decimal points in numeric literals",
7793
- url: "https://eslint.style/rules/js/no-floating-decimal"
7906
+ description: "Disallow leading or trailing decimal points in numeric literals"
7794
7907
  },
7795
7908
  schema: [],
7796
7909
  fixable: "code",
@@ -7876,11 +7989,12 @@ var require_no_mixed_operators = __commonJS({
7876
7989
  return node.type === "ConditionalExpression" ? node.test : node.left;
7877
7990
  }
7878
7991
  var noMixedOperators = utils.createRule({
7992
+ name: "no-mixed-operators",
7993
+ package: "js",
7879
7994
  meta: {
7880
7995
  type: "layout",
7881
7996
  docs: {
7882
- description: "Disallow mixed binary operators",
7883
- url: "https://eslint.style/rules/js/no-mixed-operators"
7997
+ description: "Disallow mixed binary operators"
7884
7998
  },
7885
7999
  schema: [
7886
8000
  {
@@ -7971,11 +8085,12 @@ var require_no_mixed_spaces_and_tabs = __commonJS({
7971
8085
  "use strict";
7972
8086
  var utils = require_utils();
7973
8087
  var noMixedSpacesAndTabs = utils.createRule({
8088
+ name: "no-mixed-spaces-and-tabs",
8089
+ package: "js",
7974
8090
  meta: {
7975
8091
  type: "layout",
7976
8092
  docs: {
7977
- description: "Disallow mixed spaces and tabs for indentation",
7978
- url: "https://eslint.style/rules/js/no-mixed-spaces-and-tabs"
8093
+ description: "Disallow mixed spaces and tabs for indentation"
7979
8094
  },
7980
8095
  schema: [
7981
8096
  {
@@ -8058,11 +8173,12 @@ var require_no_multi_spaces = __commonJS({
8058
8173
  "use strict";
8059
8174
  var utils = require_utils();
8060
8175
  var noMultiSpaces = utils.createRule({
8176
+ name: "no-multi-spaces",
8177
+ package: "js",
8061
8178
  meta: {
8062
8179
  type: "layout",
8063
8180
  docs: {
8064
- description: "Disallow multiple spaces",
8065
- url: "https://eslint.style/rules/js/no-multi-spaces"
8181
+ description: "Disallow multiple spaces"
8066
8182
  },
8067
8183
  fixable: "whitespace",
8068
8184
  schema: [
@@ -8153,11 +8269,12 @@ var require_no_multiple_empty_lines = __commonJS({
8153
8269
  "use strict";
8154
8270
  var utils = require_utils();
8155
8271
  var noMultipleEmptyLines = utils.createRule({
8272
+ name: "no-multiple-empty-lines",
8273
+ package: "js",
8156
8274
  meta: {
8157
8275
  type: "layout",
8158
8276
  docs: {
8159
- description: "Disallow multiple empty lines",
8160
- url: "https://eslint.style/rules/js/no-multiple-empty-lines"
8277
+ description: "Disallow multiple empty lines"
8161
8278
  },
8162
8279
  fixable: "whitespace",
8163
8280
  schema: [
@@ -8261,11 +8378,12 @@ var require_no_tabs = __commonJS({
8261
8378
  var tabRegex = /\t+/gu;
8262
8379
  var anyNonWhitespaceRegex = /\S/u;
8263
8380
  var noTabs = utils.createRule({
8381
+ name: "no-tabs",
8382
+ package: "js",
8264
8383
  meta: {
8265
8384
  type: "layout",
8266
8385
  docs: {
8267
- description: "Disallow all tabs",
8268
- url: "https://eslint.style/rules/js/no-tabs"
8386
+ description: "Disallow all tabs"
8269
8387
  },
8270
8388
  schema: [{
8271
8389
  type: "object",
@@ -8321,11 +8439,12 @@ var require_no_trailing_spaces = __commonJS({
8321
8439
  "use strict";
8322
8440
  var utils = require_utils();
8323
8441
  var noTrailingSpaces = utils.createRule({
8442
+ name: "no-trailing-spaces",
8443
+ package: "js",
8324
8444
  meta: {
8325
8445
  type: "layout",
8326
8446
  docs: {
8327
- description: "Disallow trailing whitespace at the end of lines",
8328
- url: "https://eslint.style/rules/js/no-trailing-spaces"
8447
+ description: "Disallow trailing whitespace at the end of lines"
8329
8448
  },
8330
8449
  fixable: "whitespace",
8331
8450
  schema: [
@@ -8431,11 +8550,12 @@ var require_no_whitespace_before_property = __commonJS({
8431
8550
  "use strict";
8432
8551
  var utils = require_utils();
8433
8552
  var noWhitespaceBeforeProperty = utils.createRule({
8553
+ name: "no-whitespace-before-property",
8554
+ package: "js",
8434
8555
  meta: {
8435
8556
  type: "layout",
8436
8557
  docs: {
8437
- description: "Disallow whitespace before properties",
8438
- url: "https://eslint.style/rules/js/no-whitespace-before-property"
8558
+ description: "Disallow whitespace before properties"
8439
8559
  },
8440
8560
  fixable: "whitespace",
8441
8561
  schema: [],
@@ -8500,11 +8620,12 @@ var require_nonblock_statement_body_position = __commonJS({
8500
8620
  enum: ["beside", "below", "any"]
8501
8621
  };
8502
8622
  var nonblockStatementBodyPosition = utils.createRule({
8623
+ name: "nonblock-statement-body-position",
8624
+ package: "js",
8503
8625
  meta: {
8504
8626
  type: "layout",
8505
8627
  docs: {
8506
- description: "Enforce the location of single-line statements",
8507
- url: "https://eslint.style/rules/js/nonblock-statement-body-position"
8628
+ description: "Enforce the location of single-line statements"
8508
8629
  },
8509
8630
  fixable: "whitespace",
8510
8631
  schema: [
@@ -8661,11 +8782,12 @@ var require_object_curly_newline = __commonJS({
8661
8782
  return objectProperties.length >= options.minProperties || options.multiline && objectProperties.length > 0 && first.loc.start.line !== last.loc.end.line;
8662
8783
  }
8663
8784
  var objectCurlyNewline = utils.createRule({
8785
+ name: "object-curly-newline",
8786
+ package: "js",
8664
8787
  meta: {
8665
8788
  type: "layout",
8666
8789
  docs: {
8667
- description: "Enforce consistent line breaks after opening and before closing braces",
8668
- url: "https://eslint.style/rules/js/object-curly-newline"
8790
+ description: "Enforce consistent line breaks after opening and before closing braces"
8669
8791
  },
8670
8792
  fixable: "whitespace",
8671
8793
  schema: [
@@ -8798,11 +8920,12 @@ var require_object_curly_spacing = __commonJS({
8798
8920
  var utils = require_utils();
8799
8921
  var objectCurlySpacing = utils.createRule(
8800
8922
  {
8923
+ name: "object-curly-spacing",
8924
+ package: "js",
8801
8925
  meta: {
8802
8926
  type: "layout",
8803
8927
  docs: {
8804
- description: "Enforce consistent spacing inside braces",
8805
- url: "https://eslint.style/rules/js/object-curly-spacing"
8928
+ description: "Enforce consistent spacing inside braces"
8806
8929
  },
8807
8930
  fixable: "whitespace",
8808
8931
  schema: [
@@ -8976,11 +9099,12 @@ var require_object_property_newline = __commonJS({
8976
9099
  "use strict";
8977
9100
  var utils = require_utils();
8978
9101
  var objectPropertyNewline = utils.createRule({
9102
+ name: "object-property-newline",
9103
+ package: "js",
8979
9104
  meta: {
8980
9105
  type: "layout",
8981
9106
  docs: {
8982
- description: "Enforce placing object properties on separate lines",
8983
- url: "https://eslint.style/rules/js/object-property-newline"
9107
+ description: "Enforce placing object properties on separate lines"
8984
9108
  },
8985
9109
  schema: [
8986
9110
  {
@@ -9052,11 +9176,12 @@ var require_one_var_declaration_per_line = __commonJS({
9052
9176
  "use strict";
9053
9177
  var utils = require_utils();
9054
9178
  var oneVarDeclarationPerLine = utils.createRule({
9179
+ name: "one-var-declaration-per-line",
9180
+ package: "js",
9055
9181
  meta: {
9056
9182
  type: "layout",
9057
9183
  docs: {
9058
- description: "Require or disallow newlines around variable declarations",
9059
- url: "https://eslint.style/rules/js/one-var-declaration-per-line"
9184
+ description: "Require or disallow newlines around variable declarations"
9060
9185
  },
9061
9186
  schema: [
9062
9187
  {
@@ -9108,11 +9233,12 @@ var require_operator_linebreak = __commonJS({
9108
9233
  "use strict";
9109
9234
  var utils = require_utils();
9110
9235
  var operatorLinebreak = utils.createRule({
9236
+ name: "operator-linebreak",
9237
+ package: "js",
9111
9238
  meta: {
9112
9239
  type: "layout",
9113
9240
  docs: {
9114
- description: "Enforce consistent linebreak style for operators",
9115
- url: "https://eslint.style/rules/js/operator-linebreak"
9241
+ description: "Enforce consistent linebreak style for operators"
9116
9242
  },
9117
9243
  schema: [
9118
9244
  {
@@ -9268,11 +9394,12 @@ var require_padded_blocks = __commonJS({
9268
9394
  "use strict";
9269
9395
  var utils = require_utils();
9270
9396
  var paddedBlocks = utils.createRule({
9397
+ name: "padded-blocks",
9398
+ package: "js",
9271
9399
  meta: {
9272
9400
  type: "layout",
9273
9401
  docs: {
9274
- description: "Require or disallow padding within blocks",
9275
- url: "https://eslint.style/rules/js/padded-blocks"
9402
+ description: "Require or disallow padding within blocks"
9276
9403
  },
9277
9404
  fixable: "whitespace",
9278
9405
  schema: [
@@ -9671,11 +9798,12 @@ var require_padding_line_between_statements = __commonJS({
9671
9798
  "with": newKeywordTester("with")
9672
9799
  };
9673
9800
  var paddingLineBetweenStatements = utils.createRule({
9801
+ name: "padding-line-between-statements",
9802
+ package: "js",
9674
9803
  meta: {
9675
9804
  type: "layout",
9676
9805
  docs: {
9677
- description: "Require or disallow padding lines between statements",
9678
- url: "https://eslint.style/rules/js/padding-line-between-statements"
9806
+ description: "Require or disallow padding lines between statements"
9679
9807
  },
9680
9808
  fixable: "whitespace",
9681
9809
  schema: {
@@ -9802,11 +9930,12 @@ var require_quote_props = __commonJS({
9802
9930
  var espree = require("espree");
9803
9931
  var utils = require_utils();
9804
9932
  var quoteProps = utils.createRule({
9933
+ name: "quote-props",
9934
+ package: "js",
9805
9935
  meta: {
9806
9936
  type: "layout",
9807
9937
  docs: {
9808
- description: "Require quotes around object literal property names",
9809
- url: "https://eslint.style/rules/js/quote-props"
9938
+ description: "Require quotes around object literal property names"
9810
9939
  },
9811
9940
  schema: {
9812
9941
  anyOf: [
@@ -9867,7 +9996,7 @@ var require_quote_props = __commonJS({
9867
9996
  const NUMBERS = context.options[1] && context.options[1].numbers;
9868
9997
  const sourceCode = context.sourceCode;
9869
9998
  function isKeyword(tokenStr) {
9870
- return utils.keywords.includes(tokenStr);
9999
+ return utils.KEYWORDS_JS.includes(tokenStr);
9871
10000
  }
9872
10001
  function areQuotesRedundant(rawKey, tokens, skipNumberLiterals = false) {
9873
10002
  return tokens.length === 1 && tokens[0].start === 0 && tokens[0].end === rawKey.length && (["Identifier", "Keyword", "Null", "Boolean"].includes(tokens[0].type) || tokens[0].type === "Numeric" && !skipNumberLiterals && String(+tokens[0].value) === tokens[0].value);
@@ -10054,11 +10183,12 @@ var require_quotes = __commonJS({
10054
10183
  var UNESCAPED_LINEBREAK_PATTERN = new RegExp(String.raw`(^|[^\\])(\\\\)*[${Array.from(utils.LINEBREAKS).join("")}]`, "u");
10055
10184
  var AVOID_ESCAPE = "avoid-escape";
10056
10185
  var quotes = utils.createRule({
10186
+ name: "quotes",
10187
+ package: "js",
10057
10188
  meta: {
10058
10189
  type: "layout",
10059
10190
  docs: {
10060
- description: "Enforce the consistent use of either backticks, double, or single quotes",
10061
- url: "https://eslint.style/rules/js/quotes"
10191
+ description: "Enforce the consistent use of either backticks, double, or single quotes"
10062
10192
  },
10063
10193
  fixable: "code",
10064
10194
  schema: [
@@ -10227,11 +10357,12 @@ var require_rest_spread_spacing = __commonJS({
10227
10357
  "use strict";
10228
10358
  var utils = require_utils();
10229
10359
  var restSpreadSpacing = utils.createRule({
10360
+ name: "rest-spread-spacing",
10361
+ package: "js",
10230
10362
  meta: {
10231
10363
  type: "layout",
10232
10364
  docs: {
10233
- description: "Enforce spacing between rest and spread operators and their expressions",
10234
- url: "https://eslint.style/rules/js/rest-spread-spacing"
10365
+ description: "Enforce spacing between rest and spread operators and their expressions"
10235
10366
  },
10236
10367
  fixable: "whitespace",
10237
10368
  schema: [
@@ -10312,11 +10443,12 @@ var require_semi = __commonJS({
10312
10443
  "use strict";
10313
10444
  var utils = require_utils();
10314
10445
  var semi = utils.createRule({
10446
+ name: "semi",
10447
+ package: "js",
10315
10448
  meta: {
10316
10449
  type: "layout",
10317
10450
  docs: {
10318
- description: "Require or disallow semicolons instead of ASI",
10319
- url: "https://eslint.style/rules/js/semi"
10451
+ description: "Require or disallow semicolons instead of ASI"
10320
10452
  },
10321
10453
  fixable: "code",
10322
10454
  schema: {
@@ -10545,11 +10677,12 @@ var require_semi_spacing = __commonJS({
10545
10677
  "use strict";
10546
10678
  var utils = require_utils();
10547
10679
  var semiSpacing = utils.createRule({
10680
+ name: "semi-spacing",
10681
+ package: "js",
10548
10682
  meta: {
10549
10683
  type: "layout",
10550
10684
  docs: {
10551
- description: "Enforce consistent spacing before and after semicolons",
10552
- url: "https://eslint.style/rules/js/semi-spacing"
10685
+ description: "Enforce consistent spacing before and after semicolons"
10553
10686
  },
10554
10687
  fixable: "whitespace",
10555
10688
  schema: [
@@ -10742,11 +10875,12 @@ var require_semi_style = __commonJS({
10742
10875
  return nodeList !== null && nodeList[nodeList.length - 1] === node;
10743
10876
  }
10744
10877
  var semiStyle = utils.createRule({
10878
+ name: "semi-style",
10879
+ package: "js",
10745
10880
  meta: {
10746
10881
  type: "layout",
10747
10882
  docs: {
10748
- description: "Enforce location of semicolons",
10749
- url: "https://eslint.style/rules/js/semi-style"
10883
+ description: "Enforce location of semicolons"
10750
10884
  },
10751
10885
  schema: [{ type: "string", enum: ["last", "first"] }],
10752
10886
  fixable: "whitespace",
@@ -10813,11 +10947,12 @@ var require_space_before_blocks = __commonJS({
10813
10947
  return node.type === "BlockStatement" && utils.isFunction(parent) && parent.body === node;
10814
10948
  }
10815
10949
  var spaceBeforeBlocks = utils.createRule({
10950
+ name: "space-before-blocks",
10951
+ package: "js",
10816
10952
  meta: {
10817
10953
  type: "layout",
10818
10954
  docs: {
10819
- description: "Enforce consistent spacing before blocks",
10820
- url: "https://eslint.style/rules/js/space-before-blocks"
10955
+ description: "Enforce consistent spacing before blocks"
10821
10956
  },
10822
10957
  fixable: "whitespace",
10823
10958
  schema: [
@@ -10941,11 +11076,12 @@ var require_space_before_function_paren = __commonJS({
10941
11076
  "use strict";
10942
11077
  var utils = require_utils();
10943
11078
  var spaceBeforeFunctionParen = utils.createRule({
11079
+ name: "space-before-function-paren",
11080
+ package: "js",
10944
11081
  meta: {
10945
11082
  type: "layout",
10946
11083
  docs: {
10947
- description: "Enforce consistent spacing before `function` definition opening parenthesis",
10948
- url: "https://eslint.style/rules/js/space-before-function-paren"
11084
+ description: "Enforce consistent spacing before `function` definition opening parenthesis"
10949
11085
  },
10950
11086
  fixable: "whitespace",
10951
11087
  schema: [
@@ -11053,11 +11189,12 @@ var require_space_in_parens = __commonJS({
11053
11189
  "use strict";
11054
11190
  var utils = require_utils();
11055
11191
  var spaceInParens = utils.createRule({
11192
+ name: "space-in-parens",
11193
+ package: "js",
11056
11194
  meta: {
11057
11195
  type: "layout",
11058
11196
  docs: {
11059
- description: "Enforce consistent spacing inside parentheses",
11060
- url: "https://eslint.style/rules/js/space-in-parens"
11197
+ description: "Enforce consistent spacing inside parentheses"
11061
11198
  },
11062
11199
  fixable: "whitespace",
11063
11200
  schema: [
@@ -11239,11 +11376,12 @@ var require_space_infix_ops = __commonJS({
11239
11376
  "use strict";
11240
11377
  var utils = require_utils();
11241
11378
  var spaceInfixOps = utils.createRule({
11379
+ name: "space-infix-ops",
11380
+ package: "js",
11242
11381
  meta: {
11243
11382
  type: "layout",
11244
11383
  docs: {
11245
- description: "Require spacing around infix operators",
11246
- url: "https://eslint.style/rules/js/space-infix-ops"
11384
+ description: "Require spacing around infix operators"
11247
11385
  },
11248
11386
  fixable: "whitespace",
11249
11387
  schema: [
@@ -11351,11 +11489,12 @@ var require_space_unary_ops = __commonJS({
11351
11489
  "use strict";
11352
11490
  var utils = require_utils();
11353
11491
  var spaceUnaryOps = utils.createRule({
11492
+ name: "space-unary-ops",
11493
+ package: "js",
11354
11494
  meta: {
11355
11495
  type: "layout",
11356
11496
  docs: {
11357
- description: "Enforce consistent spacing before or after unary operators",
11358
- url: "https://eslint.style/rules/js/space-unary-ops"
11497
+ description: "Enforce consistent spacing before or after unary operators"
11359
11498
  },
11360
11499
  fixable: "whitespace",
11361
11500
  schema: [
@@ -11606,11 +11745,12 @@ var require_spaced_comment = __commonJS({
11606
11745
  return new RegExp(pattern, "u");
11607
11746
  }
11608
11747
  var spacedComment = utils.createRule({
11748
+ name: "spaced-comment",
11749
+ package: "js",
11609
11750
  meta: {
11610
11751
  type: "layout",
11611
11752
  docs: {
11612
- description: "Enforce consistent spacing after the `//` or `/*` in a comment",
11613
- url: "https://eslint.style/rules/js/spaced-comment"
11753
+ description: "Enforce consistent spacing after the `//` or `/*` in a comment"
11614
11754
  },
11615
11755
  fixable: "whitespace",
11616
11756
  schema: [
@@ -11791,11 +11931,12 @@ var require_switch_colon_spacing = __commonJS({
11791
11931
  "use strict";
11792
11932
  var utils = require_utils();
11793
11933
  var switchColonSpacing = utils.createRule({
11934
+ name: "switch-colon-spacing",
11935
+ package: "js",
11794
11936
  meta: {
11795
11937
  type: "layout",
11796
11938
  docs: {
11797
- description: "Enforce spacing around colons of switch statements",
11798
- url: "https://eslint.style/rules/js/switch-colon-spacing"
11939
+ description: "Enforce spacing around colons of switch statements"
11799
11940
  },
11800
11941
  schema: [
11801
11942
  {
@@ -11875,11 +12016,12 @@ var require_template_curly_spacing = __commonJS({
11875
12016
  "use strict";
11876
12017
  var utils = require_utils();
11877
12018
  var templateCurlySpacing = utils.createRule({
12019
+ name: "template-curly-spacing",
12020
+ package: "js",
11878
12021
  meta: {
11879
12022
  type: "layout",
11880
12023
  docs: {
11881
- description: "Require or disallow spacing around embedded expressions of template strings",
11882
- url: "https://eslint.style/rules/js/template-curly-spacing"
12024
+ description: "Require or disallow spacing around embedded expressions of template strings"
11883
12025
  },
11884
12026
  fixable: "whitespace",
11885
12027
  schema: [
@@ -11979,11 +12121,12 @@ var require_template_tag_spacing = __commonJS({
11979
12121
  "use strict";
11980
12122
  var utils = require_utils();
11981
12123
  var templateTagSpacing = utils.createRule({
12124
+ name: "template-tag-spacing",
12125
+ package: "js",
11982
12126
  meta: {
11983
12127
  type: "layout",
11984
12128
  docs: {
11985
- description: "Require or disallow spacing between template tags and their literals",
11986
- url: "https://eslint.style/rules/js/template-tag-spacing"
12129
+ description: "Require or disallow spacing between template tags and their literals"
11987
12130
  },
11988
12131
  fixable: "whitespace",
11989
12132
  schema: [
@@ -12055,11 +12198,12 @@ var require_wrap_iife = __commonJS({
12055
12198
  return maybeCallee.parent?.type === "NewExpression" && maybeCallee.parent.callee === maybeCallee;
12056
12199
  }
12057
12200
  var wrapIife = utils.createRule({
12201
+ name: "wrap-iife",
12202
+ package: "js",
12058
12203
  meta: {
12059
12204
  type: "layout",
12060
12205
  docs: {
12061
- description: "Require parentheses around immediate `function` invocations",
12062
- url: "https://eslint.style/rules/js/wrap-iife"
12206
+ description: "Require parentheses around immediate `function` invocations"
12063
12207
  },
12064
12208
  schema: [
12065
12209
  {
@@ -12167,11 +12311,12 @@ var require_wrap_regex = __commonJS({
12167
12311
  "use strict";
12168
12312
  var utils = require_utils();
12169
12313
  var wrapRegex = utils.createRule({
12314
+ name: "wrap-regex",
12315
+ package: "js",
12170
12316
  meta: {
12171
12317
  type: "layout",
12172
12318
  docs: {
12173
- description: "Require parenthesis around regex literals",
12174
- url: "https://eslint.style/rules/js/wrap-regex"
12319
+ description: "Require parenthesis around regex literals"
12175
12320
  },
12176
12321
  schema: [],
12177
12322
  fixable: "code",
@@ -12211,11 +12356,12 @@ var require_yield_star_spacing = __commonJS({
12211
12356
  "use strict";
12212
12357
  var utils = require_utils();
12213
12358
  var yieldStarSpacing = utils.createRule({
12359
+ name: "yield-star-spacing",
12360
+ package: "js",
12214
12361
  meta: {
12215
12362
  type: "layout",
12216
12363
  docs: {
12217
- description: "Require or disallow spacing around the `*` in `yield*` expressions",
12218
- url: "https://eslint.style/rules/js/yield-star-spacing"
12364
+ description: "Require or disallow spacing around the `*` in `yield*` expressions"
12219
12365
  },
12220
12366
  fixable: "whitespace",
12221
12367
  schema: [
@@ -12368,29 +12514,7 @@ var require_configs = __commonJS({
12368
12514
  var wrapIife = require_wrap_iife();
12369
12515
  var wrapRegex = require_wrap_regex();
12370
12516
  var yieldStarSpacing = require_yield_star_spacing();
12371
- function createAllConfigs(plugin2, name, flat, filter) {
12372
- const rules2 = Object.fromEntries(
12373
- Object.entries(plugin2.rules).filter(
12374
- ([key, rule]) => (
12375
- // Only include fixable rules
12376
- rule.meta.fixable && !rule.meta.deprecated && key === rule.meta.docs.url.split("/").pop() && !filter
12377
- )
12378
- ).map(([key]) => [`${name}/${key}`, 2])
12379
- );
12380
- if (flat) {
12381
- return {
12382
- plugins: {
12383
- [name]: plugin2
12384
- },
12385
- rules: rules2
12386
- };
12387
- } else {
12388
- return {
12389
- plugins: [name],
12390
- rules: rules2
12391
- };
12392
- }
12393
- }
12517
+ var utils = require_utils();
12394
12518
  var rules = {
12395
12519
  "array-bracket-newline": arrayBracketNewline.arrayBracketNewline,
12396
12520
  "array-bracket-spacing": arrayBracketSpacing.arrayBracketSpacing,
@@ -12541,8 +12665,8 @@ var require_configs = __commonJS({
12541
12665
  };
12542
12666
  var configs2 = {
12543
12667
  "disable-legacy": config,
12544
- "all-flat": createAllConfigs(plugin, "@stylistic/js", true),
12545
- "all-extends": createAllConfigs(plugin, "@stylistic/js", false)
12668
+ "all-flat": utils.createAllConfigs(plugin, "@stylistic/js", true),
12669
+ "all-extends": utils.createAllConfigs(plugin, "@stylistic/js", false)
12546
12670
  };
12547
12671
  exports2.configs = configs2;
12548
12672
  exports2.plugin = plugin;
@@ -12635,62 +12759,63 @@ var require_dist = __commonJS({
12635
12759
  var require_utils2 = __commonJS({
12636
12760
  "node_modules/@stylistic/eslint-plugin-jsx/dist/utils.js"(exports2) {
12637
12761
  "use strict";
12762
+ require("eslint-visitor-keys");
12763
+ require("espree");
12638
12764
  var estraverse = require("estraverse");
12639
- function createRule(rule) {
12640
- return rule;
12641
- }
12642
- function docsUrl(ruleName) {
12643
- return `https://eslint.style/rules/jsx/${ruleName}`;
12765
+ function isObjectNotArray(obj) {
12766
+ return typeof obj === "object" && obj != null && !Array.isArray(obj);
12644
12767
  }
12645
- function traverse(ASTnode, visitor) {
12646
- const opts = Object.assign({}, {
12647
- fallback(node) {
12648
- return Object.keys(node).filter((key) => key === "children" || key === "argument");
12768
+ function deepMerge(first = {}, second = {}) {
12769
+ const keys = new Set(Object.keys(first).concat(Object.keys(second)));
12770
+ return Array.from(keys).reduce((acc, key) => {
12771
+ const firstHasKey = key in first;
12772
+ const secondHasKey = key in second;
12773
+ const firstValue = first[key];
12774
+ const secondValue = second[key];
12775
+ if (firstHasKey && secondHasKey) {
12776
+ if (isObjectNotArray(firstValue) && isObjectNotArray(secondValue)) {
12777
+ acc[key] = deepMerge(firstValue, secondValue);
12778
+ } else {
12779
+ acc[key] = secondValue;
12780
+ }
12781
+ } else if (firstHasKey) {
12782
+ acc[key] = firstValue;
12783
+ } else {
12784
+ acc[key] = secondValue;
12649
12785
  }
12650
- }, visitor);
12651
- opts.keys = Object.assign({}, visitor.keys, {
12652
- JSXElement: ["children"],
12653
- JSXFragment: ["children"]
12654
- });
12655
- estraverse.traverse(ASTnode, opts);
12786
+ return acc;
12787
+ }, {});
12656
12788
  }
12657
- function traverseReturns(ASTNode, onReturn) {
12658
- const nodeType = ASTNode.type;
12659
- if (nodeType === "ReturnStatement") {
12660
- onReturn(ASTNode.argument, () => {
12661
- });
12662
- return;
12663
- }
12664
- if (nodeType === "ArrowFunctionExpression" && ASTNode.expression) {
12665
- onReturn(ASTNode.body, () => {
12666
- });
12667
- return;
12668
- }
12669
- if (nodeType !== "FunctionExpression" && nodeType !== "FunctionDeclaration" && nodeType !== "ArrowFunctionExpression" && nodeType !== "MethodDefinition") {
12670
- return;
12671
- }
12672
- traverse(ASTNode.body, {
12673
- enter(node) {
12674
- const breakTraverse = () => {
12675
- this.break();
12676
- };
12677
- switch (node.type) {
12678
- case "ReturnStatement":
12679
- this.skip();
12680
- onReturn(node.argument, breakTraverse);
12681
- return;
12682
- case "BlockStatement":
12683
- case "IfStatement":
12684
- case "ForStatement":
12685
- case "WhileStatement":
12686
- case "SwitchStatement":
12687
- case "SwitchCase":
12688
- return;
12689
- default:
12690
- this.skip();
12789
+ function createRule({
12790
+ name,
12791
+ package: pkg,
12792
+ create,
12793
+ defaultOptions = [],
12794
+ meta
12795
+ }) {
12796
+ return {
12797
+ create: (context) => {
12798
+ const optionsCount = Math.max(context.options.length, defaultOptions.length);
12799
+ const optionsWithDefault = Array.from(
12800
+ { length: optionsCount },
12801
+ (_, i) => {
12802
+ if (isObjectNotArray(context.options[i]) && isObjectNotArray(defaultOptions[i])) {
12803
+ return deepMerge(defaultOptions[i], context.options[i]);
12804
+ }
12805
+ return context.options[i] ?? defaultOptions[i];
12806
+ }
12807
+ );
12808
+ return create(context, optionsWithDefault);
12809
+ },
12810
+ defaultOptions,
12811
+ meta: {
12812
+ ...meta,
12813
+ docs: {
12814
+ ...meta.docs,
12815
+ url: `https://eslint.style/rules/${pkg}/${name}`
12691
12816
  }
12692
12817
  }
12693
- });
12818
+ };
12694
12819
  }
12695
12820
  function getFirstNodeInLine(context, node) {
12696
12821
  const sourceCode = context.sourceCode;
@@ -12714,6 +12839,12 @@ var require_utils2 = __commonJS({
12714
12839
  const nextToken = sourceCode.getTokenAfter(node);
12715
12840
  return !!previousToken && !!nextToken && previousToken.value === "(" && previousToken.range[1] <= node.range[0] && nextToken.value === ")" && nextToken.range[0] >= node.range[1];
12716
12841
  }
12842
+ function getTokenBeforeClosingBracket(node) {
12843
+ const attributes = "attributes" in node && node.attributes;
12844
+ if (!attributes || attributes.length === 0)
12845
+ return node.name;
12846
+ return attributes[attributes.length - 1];
12847
+ }
12717
12848
  function getVariable(variables, name) {
12718
12849
  return variables.find((variable) => variable.name === name);
12719
12850
  }
@@ -12742,6 +12873,56 @@ var require_utils2 = __commonJS({
12742
12873
  return variable.defs[0].node;
12743
12874
  return variable.defs[0].node.init;
12744
12875
  }
12876
+ function traverse(ASTnode, visitor) {
12877
+ const opts = Object.assign({}, {
12878
+ fallback(node) {
12879
+ return Object.keys(node).filter((key) => key === "children" || key === "argument");
12880
+ }
12881
+ }, visitor);
12882
+ opts.keys = Object.assign({}, visitor.keys, {
12883
+ JSXElement: ["children"],
12884
+ JSXFragment: ["children"]
12885
+ });
12886
+ estraverse.traverse(ASTnode, opts);
12887
+ }
12888
+ function traverseReturns(ASTNode, onReturn) {
12889
+ const nodeType = ASTNode.type;
12890
+ if (nodeType === "ReturnStatement") {
12891
+ onReturn(ASTNode.argument, () => {
12892
+ });
12893
+ return;
12894
+ }
12895
+ if (nodeType === "ArrowFunctionExpression" && ASTNode.expression) {
12896
+ onReturn(ASTNode.body, () => {
12897
+ });
12898
+ return;
12899
+ }
12900
+ if (nodeType !== "FunctionExpression" && nodeType !== "FunctionDeclaration" && nodeType !== "ArrowFunctionExpression" && nodeType !== "MethodDefinition") {
12901
+ return;
12902
+ }
12903
+ traverse(ASTNode.body, {
12904
+ enter(node) {
12905
+ const breakTraverse = () => {
12906
+ this.break();
12907
+ };
12908
+ switch (node.type) {
12909
+ case "ReturnStatement":
12910
+ this.skip();
12911
+ onReturn(node.argument, breakTraverse);
12912
+ return;
12913
+ case "BlockStatement":
12914
+ case "IfStatement":
12915
+ case "ForStatement":
12916
+ case "WhileStatement":
12917
+ case "SwitchStatement":
12918
+ case "SwitchCase":
12919
+ return;
12920
+ default:
12921
+ this.skip();
12922
+ }
12923
+ }
12924
+ });
12925
+ }
12745
12926
  var COMPAT_TAG_REGEX = /^[a-z]/;
12746
12927
  function isDOMComponent(node) {
12747
12928
  const name = getElementType(node);
@@ -12821,14 +13002,31 @@ var require_utils2 = __commonJS({
12821
13002
  return `${name.namespace.name}:${name.name.name}`;
12822
13003
  return node.name.name;
12823
13004
  }
12824
- function getTokenBeforeClosingBracket(node) {
12825
- const attributes = "attributes" in node && node.attributes;
12826
- if (!attributes || attributes.length === 0)
12827
- return node.name;
12828
- return attributes[attributes.length - 1];
13005
+ function createAllConfigs(plugin, name, flat, filter) {
13006
+ const rules = Object.fromEntries(
13007
+ Object.entries(plugin.rules).filter(
13008
+ ([key, rule]) => (
13009
+ // Only include fixable rules
13010
+ rule.meta.fixable && !rule.meta.deprecated && key === rule.meta.docs.url.split("/").pop() && !filter
13011
+ )
13012
+ ).map(([key]) => [`${name}/${key}`, 2])
13013
+ );
13014
+ if (flat) {
13015
+ return {
13016
+ plugins: {
13017
+ [name]: plugin
13018
+ },
13019
+ rules
13020
+ };
13021
+ } else {
13022
+ return {
13023
+ plugins: [name],
13024
+ rules
13025
+ };
13026
+ }
12829
13027
  }
13028
+ exports2.createAllConfigs = createAllConfigs;
12830
13029
  exports2.createRule = createRule;
12831
- exports2.docsUrl = docsUrl;
12832
13030
  exports2.getElementType = getElementType;
12833
13031
  exports2.getFirstNodeInLine = getFirstNodeInLine;
12834
13032
  exports2.getPropName = getPropName;
@@ -12884,11 +13082,12 @@ var require_jsx_child_element_spacing = __commonJS({
12884
13082
  spacingBeforeNext: "Ambiguous spacing before next element {{element}}"
12885
13083
  };
12886
13084
  var jsxChildElementSpacing = utils.createRule({
13085
+ name: "jsx-child-element-spacing",
13086
+ package: "jsx",
12887
13087
  meta: {
12888
13088
  type: "layout",
12889
13089
  docs: {
12890
- description: "Enforce or disallow spaces inside of curly braces in JSX attributes and expressions",
12891
- url: utils.docsUrl("jsx-child-element-spacing")
13090
+ description: "Enforce or disallow spaces inside of curly braces in JSX attributes and expressions"
12892
13091
  },
12893
13092
  messages,
12894
13093
  schema: []
@@ -12946,11 +13145,12 @@ var require_jsx_closing_bracket_location = __commonJS({
12946
13145
  bracketLocation: "The closing bracket must be {{location}}{{details}}"
12947
13146
  };
12948
13147
  var jsxClosingBracketLocation = utils.createRule({
13148
+ name: "jsx-closing-bracket-location",
13149
+ package: "jsx",
12949
13150
  meta: {
12950
13151
  type: "layout",
12951
13152
  docs: {
12952
- description: "Enforce closing bracket location in JSX",
12953
- url: utils.docsUrl("jsx-closing-bracket-location")
13153
+ description: "Enforce closing bracket location in JSX"
12954
13154
  },
12955
13155
  fixable: "code",
12956
13156
  messages,
@@ -13194,11 +13394,12 @@ var require_jsx_closing_tag_location = __commonJS({
13194
13394
  matchIndent: "Expected closing tag to match indentation of opening."
13195
13395
  };
13196
13396
  var jsxClosingTagLocation = utils.createRule({
13397
+ name: "jsx-closing-tag-location",
13398
+ package: "jsx",
13197
13399
  meta: {
13198
13400
  type: "layout",
13199
13401
  docs: {
13200
- description: "Enforce closing tag location for multiline JSX",
13201
- url: utils.docsUrl("jsx-closing-tag-location")
13402
+ description: "Enforce closing tag location for multiline JSX"
13202
13403
  },
13203
13404
  fixable: "whitespace",
13204
13405
  messages,
@@ -13264,11 +13465,12 @@ var require_jsx_curly_brace_presence = __commonJS({
13264
13465
  missingCurly: "Need to wrap this literal in a JSX expression."
13265
13466
  };
13266
13467
  var jsxCurlyBracePresence = utils.createRule({
13468
+ name: "jsx-curly-brace-presence",
13469
+ package: "jsx",
13267
13470
  meta: {
13268
13471
  type: "layout",
13269
13472
  docs: {
13270
- description: "Disallow unnecessary JSX expressions when literals alone are sufficient or enforce JSX expressions on literals in JSX children or attributes",
13271
- url: utils.docsUrl("jsx-curly-brace-presence")
13473
+ description: "Disallow unnecessary JSX expressions when literals alone are sufficient or enforce JSX expressions on literals in JSX children or attributes"
13272
13474
  },
13273
13475
  fixable: "code",
13274
13476
  messages,
@@ -13527,11 +13729,12 @@ var require_jsx_curly_newline = __commonJS({
13527
13729
  unexpectedAfter: "Unexpected newline after '{'."
13528
13730
  };
13529
13731
  var jsxCurlyNewline = utils.createRule({
13732
+ name: "jsx-curly-newline",
13733
+ package: "jsx",
13530
13734
  meta: {
13531
13735
  type: "layout",
13532
13736
  docs: {
13533
- description: "Enforce consistent linebreaks in curly braces in JSX attributes and expressions",
13534
- url: utils.docsUrl("jsx-curly-newline")
13737
+ description: "Enforce consistent linebreaks in curly braces in JSX attributes and expressions"
13535
13738
  },
13536
13739
  fixable: "whitespace",
13537
13740
  schema: [
@@ -13654,11 +13857,12 @@ var require_jsx_curly_spacing = __commonJS({
13654
13857
  spaceNeededBefore: "A space is required before '{{token}}'"
13655
13858
  };
13656
13859
  var jsxCurlySpacing = utils.createRule({
13860
+ name: "jsx-curly-spacing",
13861
+ package: "jsx",
13657
13862
  meta: {
13658
13863
  type: "layout",
13659
13864
  docs: {
13660
- description: "Enforce or disallow spaces inside of curly braces in JSX attributes and expressions",
13661
- url: utils.docsUrl("jsx-curly-spacing")
13865
+ description: "Enforce or disallow spaces inside of curly braces in JSX attributes and expressions"
13662
13866
  },
13663
13867
  fixable: "code",
13664
13868
  messages,
@@ -13951,11 +14155,12 @@ var require_jsx_equals_spacing = __commonJS({
13951
14155
  needSpaceAfter: "A space is required after '='"
13952
14156
  };
13953
14157
  var jsxEqualsSpacing = utils.createRule({
14158
+ name: "jsx-equals-spacing",
14159
+ package: "jsx",
13954
14160
  meta: {
13955
14161
  type: "layout",
13956
14162
  docs: {
13957
- description: "Enforce or disallow spaces around equal signs in JSX attributes",
13958
- url: utils.docsUrl("jsx-equals-spacing")
14163
+ description: "Enforce or disallow spaces around equal signs in JSX attributes"
13959
14164
  },
13960
14165
  fixable: "code",
13961
14166
  messages,
@@ -14039,11 +14244,12 @@ var require_jsx_first_prop_new_line = __commonJS({
14039
14244
  propOnSameLine: "Property should be placed on the same line as the component declaration"
14040
14245
  };
14041
14246
  var jsxFirstPropNewLine = utils.createRule({
14247
+ name: "jsx-first-prop-new-line",
14248
+ package: "jsx",
14042
14249
  meta: {
14043
14250
  type: "layout",
14044
14251
  docs: {
14045
- description: "Enforce proper position of the first property in JSX",
14046
- url: utils.docsUrl("jsx-first-prop-new-line")
14252
+ description: "Enforce proper position of the first property in JSX"
14047
14253
  },
14048
14254
  fixable: "code",
14049
14255
  messages,
@@ -14108,11 +14314,12 @@ var require_jsx_function_call_newline = __commonJS({
14108
14314
  return !!nextToken && nextToken.value === "," && nextToken.range[0] >= node.range[1];
14109
14315
  }
14110
14316
  var jsxFunctionCallNewline = utils.createRule({
14317
+ name: "jsx-function-call-newline",
14318
+ package: "jsx",
14111
14319
  meta: {
14112
14320
  type: "layout",
14113
14321
  docs: {
14114
- description: "Enforce line breaks before and after JSX elements when they are used as arguments to a function.",
14115
- url: utils.docsUrl("jsx-function-call-newline")
14322
+ description: "Enforce line breaks before and after JSX elements when they are used as arguments to a function."
14116
14323
  },
14117
14324
  fixable: "whitespace",
14118
14325
  messages,
@@ -14194,11 +14401,12 @@ var require_jsx_indent = __commonJS({
14194
14401
  wrongIndent: "Expected indentation of {{needed}} {{type}} {{characters}} but found {{gotten}}."
14195
14402
  };
14196
14403
  var jsxIndent = utils.createRule({
14404
+ name: "jsx-indent",
14405
+ package: "jsx",
14197
14406
  meta: {
14198
14407
  type: "layout",
14199
14408
  docs: {
14200
- description: "Enforce JSX indentation. Deprecated, use `indent` rule instead.",
14201
- url: utils.docsUrl("jsx-indent")
14409
+ description: "Enforce JSX indentation. Deprecated, use `indent` rule instead."
14202
14410
  },
14203
14411
  deprecated: true,
14204
14412
  fixable: "whitespace",
@@ -14440,11 +14648,12 @@ var require_jsx_indent_props = __commonJS({
14440
14648
  wrongIndent: "Expected indentation of {{needed}} {{type}} {{characters}} but found {{gotten}}."
14441
14649
  };
14442
14650
  var jsxIndentProps = utils.createRule({
14651
+ name: "jsx-indent-props",
14652
+ package: "jsx",
14443
14653
  meta: {
14444
14654
  type: "layout",
14445
14655
  docs: {
14446
- description: "Enforce props indentation in JSX",
14447
- url: utils.docsUrl("jsx-indent-props")
14656
+ description: "Enforce props indentation in JSX"
14448
14657
  },
14449
14658
  fixable: "code",
14450
14659
  messages,
@@ -14592,11 +14801,12 @@ var require_jsx_max_props_per_line = __commonJS({
14592
14801
  newLine: "Prop `{{prop}}` must be placed on a new line"
14593
14802
  };
14594
14803
  var jsxMaxPropsPerLine = utils.createRule({
14804
+ name: "jsx-max-props-per-line",
14805
+ package: "jsx",
14595
14806
  meta: {
14596
14807
  type: "layout",
14597
14808
  docs: {
14598
- description: "Enforce maximum of props on a single line in JSX",
14599
- url: utils.docsUrl("jsx-max-props-per-line")
14809
+ description: "Enforce maximum of props on a single line in JSX"
14600
14810
  },
14601
14811
  fixable: "code",
14602
14812
  messages,
@@ -14715,11 +14925,12 @@ var require_jsx_newline = __commonJS({
14715
14925
  return node && node.loc.start.line !== node.loc.end.line;
14716
14926
  }
14717
14927
  var jsxNewline = utils.createRule({
14928
+ name: "jsx-newline",
14929
+ package: "jsx",
14718
14930
  meta: {
14719
14931
  type: "layout",
14720
14932
  docs: {
14721
- description: "Require or prevent a new line after jsx elements and expressions.",
14722
- url: utils.docsUrl("jsx-newline")
14933
+ description: "Require or prevent a new line after jsx elements and expressions."
14723
14934
  },
14724
14935
  fixable: "code",
14725
14936
  messages,
@@ -14844,11 +15055,12 @@ var require_jsx_one_expression_per_line = __commonJS({
14844
15055
  moveToNewLine: "`{{descriptor}}` must be placed on a new line"
14845
15056
  };
14846
15057
  var jsxOneExpressionPerLine = utils.createRule({
15058
+ name: "jsx-one-expression-per-line",
15059
+ package: "jsx",
14847
15060
  meta: {
14848
15061
  type: "layout",
14849
15062
  docs: {
14850
- description: "Require one JSX element per line",
14851
- url: utils.docsUrl("jsx-one-expression-per-line")
15063
+ description: "Require one JSX element per line"
14852
15064
  },
14853
15065
  fixable: "whitespace",
14854
15066
  messages,
@@ -15068,12 +15280,13 @@ var require_jsx_pascal_case = __commonJS({
15068
15280
  usePascalOrSnakeCase: "Imported JSX component {{name}} must be in PascalCase or SCREAMING_SNAKE_CASE"
15069
15281
  };
15070
15282
  var jsxPascalCase = utils.createRule({
15283
+ name: "jsx-pascal-case",
15284
+ package: "jsx",
15071
15285
  meta: {
15072
15286
  type: "suggestion",
15073
15287
  docs: {
15074
- description: "Enforce PascalCase for user-defined JSX components",
15288
+ description: "Enforce PascalCase for user-defined JSX components"
15075
15289
  // category: 'Stylistic Issues',
15076
- url: utils.docsUrl("jsx-pascal-case")
15077
15290
  },
15078
15291
  messages,
15079
15292
  schema: [{
@@ -15162,11 +15375,12 @@ var require_jsx_props_no_multi_spaces = __commonJS({
15162
15375
  onlyOneSpace: "Expected only one space between \u201C{{prop1}}\u201D and \u201C{{prop2}}\u201D"
15163
15376
  };
15164
15377
  var jsxPropsNoMultiSpaces = utils.createRule({
15378
+ name: "jsx-props-no-multi-spaces",
15379
+ package: "jsx",
15165
15380
  meta: {
15166
15381
  type: "layout",
15167
15382
  docs: {
15168
- description: "Disallow multiple spaces between inline JSX props",
15169
- url: utils.docsUrl("jsx-props-no-multi-spaces")
15383
+ description: "Disallow multiple spaces between inline JSX props"
15170
15384
  },
15171
15385
  fixable: "code",
15172
15386
  messages,
@@ -15270,12 +15484,12 @@ var require_jsx_self_closing_comp = __commonJS({
15270
15484
  notSelfClosing: "Empty components are self-closing"
15271
15485
  };
15272
15486
  var jsxSelfClosingComp = utils.createRule({
15487
+ name: "jsx-self-closing-comp",
15488
+ package: "jsx",
15273
15489
  meta: {
15274
15490
  type: "layout",
15275
15491
  docs: {
15276
- description: "Disallow extra closing tags for components without children",
15277
- // category: 'Stylistic Issues',
15278
- url: utils.docsUrl("jsx-self-closing-comp")
15492
+ description: "Disallow extra closing tags for components without children"
15279
15493
  },
15280
15494
  fixable: "code",
15281
15495
  messages,
@@ -15575,11 +15789,12 @@ var require_jsx_sort_props = __commonJS({
15575
15789
  });
15576
15790
  }
15577
15791
  var jsxSortProps = utils.createRule({
15792
+ name: "jsx-sort-props",
15793
+ package: "jsx",
15578
15794
  meta: {
15579
15795
  type: "layout",
15580
15796
  docs: {
15581
- description: "Enforce props alphabetical sorting",
15582
- url: utils.docsUrl("jsx-sort-props")
15797
+ description: "Enforce props alphabetical sorting"
15583
15798
  },
15584
15799
  fixable: "code",
15585
15800
  messages,
@@ -15954,11 +16169,12 @@ var require_jsx_tag_spacing = __commonJS({
15954
16169
  beforeClosing: "allow"
15955
16170
  };
15956
16171
  var jsxTagSpacing = utils.createRule({
16172
+ name: "jsx-tag-spacing",
16173
+ package: "jsx",
15957
16174
  meta: {
15958
16175
  type: "layout",
15959
16176
  docs: {
15960
- description: "Enforce whitespace in and around the JSX opening and closing brackets",
15961
- url: utils.docsUrl("jsx-tag-spacing")
16177
+ description: "Enforce whitespace in and around the JSX opening and closing brackets"
15962
16178
  },
15963
16179
  fixable: "whitespace",
15964
16180
  messages,
@@ -16036,11 +16252,12 @@ var require_jsx_wrap_multilines = __commonJS({
16036
16252
  parensOnNewLines: "Parentheses around JSX should be on separate lines"
16037
16253
  };
16038
16254
  var jsxWrapMultilines = utils.createRule({
16255
+ name: "jsx-wrap-multilines",
16256
+ package: "jsx",
16039
16257
  meta: {
16040
16258
  type: "layout",
16041
16259
  docs: {
16042
- description: "Disallow missing parentheses around multiline JSX",
16043
- url: utils.docsUrl("jsx-wrap-multilines")
16260
+ description: "Disallow missing parentheses around multiline JSX"
16044
16261
  },
16045
16262
  fixable: "code",
16046
16263
  messages,
@@ -16272,29 +16489,7 @@ var require_configs2 = __commonJS({
16272
16489
  var jsxSortProps = require_jsx_sort_props();
16273
16490
  var jsxTagSpacing = require_jsx_tag_spacing();
16274
16491
  var jsxWrapMultilines = require_jsx_wrap_multilines();
16275
- function createAllConfigs(plugin2, name, flat, filter) {
16276
- const rules2 = Object.fromEntries(
16277
- Object.entries(plugin2.rules).filter(
16278
- ([key, rule]) => (
16279
- // Only include fixable rules
16280
- rule.meta.fixable && !rule.meta.deprecated && key === rule.meta.docs.url.split("/").pop() && !filter
16281
- )
16282
- ).map(([key]) => [`${name}/${key}`, 2])
16283
- );
16284
- if (flat) {
16285
- return {
16286
- plugins: {
16287
- [name]: plugin2
16288
- },
16289
- rules: rules2
16290
- };
16291
- } else {
16292
- return {
16293
- plugins: [name],
16294
- rules: rules2
16295
- };
16296
- }
16297
- }
16492
+ var utils = require_utils2();
16298
16493
  var rules = {
16299
16494
  "jsx-child-element-spacing": jsxChildElementSpacing.jsxChildElementSpacing,
16300
16495
  "jsx-closing-bracket-location": jsxClosingBracketLocation.jsxClosingBracketLocation,
@@ -16346,8 +16541,8 @@ var require_configs2 = __commonJS({
16346
16541
  };
16347
16542
  var configs2 = {
16348
16543
  "disable-legacy": config,
16349
- "all-flat": createAllConfigs(plugin, "@stylistic/jsx", true),
16350
- "all-extends": createAllConfigs(plugin, "@stylistic/jsx", false)
16544
+ "all-flat": utils.createAllConfigs(plugin, "@stylistic/jsx", true),
16545
+ "all-extends": utils.createAllConfigs(plugin, "@stylistic/jsx", false)
16351
16546
  };
16352
16547
  exports2.configs = configs2;
16353
16548
  exports2.plugin = plugin;
@@ -16361,6 +16556,8 @@ var require_dist2 = __commonJS({
16361
16556
  var configs2 = require_configs2();
16362
16557
  require_jsx_child_element_spacing();
16363
16558
  require_utils2();
16559
+ require("eslint-visitor-keys");
16560
+ require("espree");
16364
16561
  require("estraverse");
16365
16562
  require_jsx_closing_bracket_location();
16366
16563
  require_jsx_closing_tag_location();
@@ -16391,11 +16588,65 @@ var require_dist2 = __commonJS({
16391
16588
  var require_utils3 = __commonJS({
16392
16589
  "node_modules/@stylistic/eslint-plugin-ts/dist/utils.js"(exports2) {
16393
16590
  "use strict";
16394
- var utils = require("@typescript-eslint/utils");
16395
16591
  var jsRules = require_dist();
16396
- var createRule = utils.ESLintUtils.RuleCreator(
16397
- (name) => `https://eslint.style/rules/ts/${name}`
16398
- );
16592
+ function isObjectNotArray(obj) {
16593
+ return typeof obj === "object" && obj != null && !Array.isArray(obj);
16594
+ }
16595
+ function deepMerge(first = {}, second = {}) {
16596
+ const keys = new Set(Object.keys(first).concat(Object.keys(second)));
16597
+ return Array.from(keys).reduce((acc, key) => {
16598
+ const firstHasKey = key in first;
16599
+ const secondHasKey = key in second;
16600
+ const firstValue = first[key];
16601
+ const secondValue = second[key];
16602
+ if (firstHasKey && secondHasKey) {
16603
+ if (isObjectNotArray(firstValue) && isObjectNotArray(secondValue)) {
16604
+ acc[key] = deepMerge(firstValue, secondValue);
16605
+ } else {
16606
+ acc[key] = secondValue;
16607
+ }
16608
+ } else if (firstHasKey) {
16609
+ acc[key] = firstValue;
16610
+ } else {
16611
+ acc[key] = secondValue;
16612
+ }
16613
+ return acc;
16614
+ }, {});
16615
+ }
16616
+ function createRule({
16617
+ name,
16618
+ package: pkg,
16619
+ create,
16620
+ defaultOptions = [],
16621
+ meta
16622
+ }) {
16623
+ return {
16624
+ create: (context) => {
16625
+ const optionsCount = Math.max(context.options.length, defaultOptions.length);
16626
+ const optionsWithDefault = Array.from(
16627
+ { length: optionsCount },
16628
+ (_, i) => {
16629
+ if (isObjectNotArray(context.options[i]) && isObjectNotArray(defaultOptions[i])) {
16630
+ return deepMerge(defaultOptions[i], context.options[i]);
16631
+ }
16632
+ return context.options[i] ?? defaultOptions[i];
16633
+ }
16634
+ );
16635
+ return create(context, optionsWithDefault);
16636
+ },
16637
+ defaultOptions,
16638
+ meta: {
16639
+ ...meta,
16640
+ docs: {
16641
+ ...meta.docs,
16642
+ url: `https://eslint.style/rules/${pkg}/${name}`
16643
+ }
16644
+ }
16645
+ };
16646
+ }
16647
+ function getJsRule(ruleId) {
16648
+ return jsRules.rules[ruleId];
16649
+ }
16399
16650
  var segmenter;
16400
16651
  function isASCII(value) {
16401
16652
  return /^[\u0020-\u007F]*$/u.test(value);
@@ -16406,21 +16657,44 @@ var require_utils3 = __commonJS({
16406
16657
  segmenter ?? (segmenter = new Intl.Segmenter());
16407
16658
  return [...segmenter.segment(value)].length;
16408
16659
  }
16409
- var {
16410
- applyDefault,
16411
- deepMerge,
16412
- isObjectNotArray,
16413
- getParserServices,
16414
- nullThrows,
16415
- NullThrowsReasons
16416
- } = utils.ESLintUtils;
16417
- function getESLintCoreRule(ruleId) {
16418
- return jsRules.rules[ruleId];
16660
+ var NullThrowsReasons = {
16661
+ MissingParent: "Expected node to have a parent.",
16662
+ MissingToken: (token, thing) => `Expected to find a ${token} for the ${thing}.`
16663
+ };
16664
+ function nullThrows(value, message) {
16665
+ if (value == null) {
16666
+ throw new Error(`Non-null Assertion Failed: ${message}`);
16667
+ }
16668
+ return value;
16669
+ }
16670
+ function createAllConfigs(plugin, name, flat, filter) {
16671
+ const rules = Object.fromEntries(
16672
+ Object.entries(plugin.rules).filter(
16673
+ ([key, rule]) => (
16674
+ // Only include fixable rules
16675
+ rule.meta.fixable && !rule.meta.deprecated && key === rule.meta.docs.url.split("/").pop() && !filter
16676
+ )
16677
+ ).map(([key]) => [`${name}/${key}`, 2])
16678
+ );
16679
+ if (flat) {
16680
+ return {
16681
+ plugins: {
16682
+ [name]: plugin
16683
+ },
16684
+ rules
16685
+ };
16686
+ } else {
16687
+ return {
16688
+ plugins: [name],
16689
+ rules
16690
+ };
16691
+ }
16419
16692
  }
16420
16693
  exports2.NullThrowsReasons = NullThrowsReasons;
16694
+ exports2.createAllConfigs = createAllConfigs;
16421
16695
  exports2.createRule = createRule;
16422
16696
  exports2.deepMerge = deepMerge;
16423
- exports2.getESLintCoreRule = getESLintCoreRule;
16697
+ exports2.getJsRule = getJsRule;
16424
16698
  exports2.getStringLength = getStringLength;
16425
16699
  exports2.nullThrows = nullThrows;
16426
16700
  }
@@ -16434,9 +16708,10 @@ var require_block_spacing2 = __commonJS({
16434
16708
  var astUtils = require("@typescript-eslint/utils/ast-utils");
16435
16709
  var utils = require_utils3();
16436
16710
  require_dist();
16437
- var baseRule = utils.getESLintCoreRule("block-spacing");
16711
+ var baseRule = utils.getJsRule("block-spacing");
16438
16712
  var blockSpacing = utils.createRule({
16439
16713
  name: "block-spacing",
16714
+ package: "ts",
16440
16715
  meta: {
16441
16716
  type: "layout",
16442
16717
  docs: {
@@ -16543,12 +16818,12 @@ var require_brace_style2 = __commonJS({
16543
16818
  "node_modules/@stylistic/eslint-plugin-ts/dist/brace-style.js"(exports2, module2) {
16544
16819
  "use strict";
16545
16820
  var astUtils = require("@typescript-eslint/utils/ast-utils");
16546
- require("@typescript-eslint/utils");
16547
16821
  var utils = require_utils3();
16548
16822
  require_dist();
16549
- var baseRule = utils.getESLintCoreRule("brace-style");
16823
+ var baseRule = utils.getJsRule("brace-style");
16550
16824
  var braceStyle = utils.createRule({
16551
16825
  name: "brace-style",
16826
+ package: "ts",
16552
16827
  meta: {
16553
16828
  type: "layout",
16554
16829
  docs: {
@@ -16643,7 +16918,7 @@ var require_comma_dangle2 = __commonJS({
16643
16918
  var astUtils = require("@typescript-eslint/utils/ast-utils");
16644
16919
  var utils = require_utils3();
16645
16920
  require_dist();
16646
- var baseRule = utils.getESLintCoreRule("comma-dangle");
16921
+ var baseRule = utils.getJsRule("comma-dangle");
16647
16922
  var OPTION_VALUE_SCHEME = [
16648
16923
  "always-multiline",
16649
16924
  "always",
@@ -16667,6 +16942,7 @@ var require_comma_dangle2 = __commonJS({
16667
16942
  }
16668
16943
  var commaDangle = utils.createRule({
16669
16944
  name: "comma-dangle",
16945
+ package: "ts",
16670
16946
  meta: {
16671
16947
  type: "layout",
16672
16948
  docs: {
@@ -16813,6 +17089,7 @@ var require_comma_spacing2 = __commonJS({
16813
17089
  require_dist();
16814
17090
  var commaSpacing = utils.createRule({
16815
17091
  name: "comma-spacing",
17092
+ package: "ts",
16816
17093
  meta: {
16817
17094
  type: "layout",
16818
17095
  docs: {
@@ -16938,11 +17215,11 @@ var require_function_call_spacing2 = __commonJS({
16938
17215
  "node_modules/@stylistic/eslint-plugin-ts/dist/function-call-spacing.js"(exports2, module2) {
16939
17216
  "use strict";
16940
17217
  var astUtils = require("@typescript-eslint/utils/ast-utils");
16941
- require("@typescript-eslint/utils");
16942
17218
  var utils = require_utils3();
16943
17219
  require_dist();
16944
17220
  var functionCallSpacing = utils.createRule({
16945
17221
  name: "function-call-spacing",
17222
+ package: "ts",
16946
17223
  meta: {
16947
17224
  type: "layout",
16948
17225
  docs: {
@@ -17082,7 +17359,7 @@ var require_indent2 = __commonJS({
17082
17359
  var utils$1 = require("@typescript-eslint/utils");
17083
17360
  var utils = require_utils3();
17084
17361
  require_dist();
17085
- var baseRule = utils.getESLintCoreRule("indent");
17362
+ var baseRule = utils.getJsRule("indent");
17086
17363
  var KNOWN_NODES = /* @__PURE__ */ new Set([
17087
17364
  // Class properties aren't yet supported by eslint...
17088
17365
  utils$1.AST_NODE_TYPES.PropertyDefinition,
@@ -17151,6 +17428,7 @@ var require_indent2 = __commonJS({
17151
17428
  ]);
17152
17429
  var indent = utils.createRule({
17153
17430
  name: "indent",
17431
+ package: "ts",
17154
17432
  meta: {
17155
17433
  type: "layout",
17156
17434
  docs: {
@@ -17492,7 +17770,7 @@ var require_key_spacing2 = __commonJS({
17492
17770
  var astUtils = require("@typescript-eslint/utils/ast-utils");
17493
17771
  var utils = require_utils3();
17494
17772
  require_dist();
17495
- var baseRule = utils.getESLintCoreRule("key-spacing");
17773
+ var baseRule = utils.getJsRule("key-spacing");
17496
17774
  var baseSchema = Array.isArray(baseRule.meta.schema) ? baseRule.meta.schema[0] : baseRule.meta.schema;
17497
17775
  function at(arr, position) {
17498
17776
  if (position < 0)
@@ -17501,6 +17779,7 @@ var require_key_spacing2 = __commonJS({
17501
17779
  }
17502
17780
  var keySpacing = utils.createRule({
17503
17781
  name: "key-spacing",
17782
+ package: "ts",
17504
17783
  meta: {
17505
17784
  type: "layout",
17506
17785
  docs: {
@@ -17739,7 +18018,7 @@ var require_keyword_spacing2 = __commonJS({
17739
18018
  var utils$1 = require("@typescript-eslint/utils");
17740
18019
  var utils = require_utils3();
17741
18020
  require_dist();
17742
- var baseRule = utils.getESLintCoreRule("keyword-spacing");
18021
+ var baseRule = utils.getJsRule("keyword-spacing");
17743
18022
  var baseSchema = Array.isArray(baseRule.meta.schema) ? baseRule.meta.schema[0] : baseRule.meta.schema;
17744
18023
  var schema = utils.deepMerge(
17745
18024
  baseSchema,
@@ -17755,6 +18034,7 @@ var require_keyword_spacing2 = __commonJS({
17755
18034
  );
17756
18035
  var keywordSpacing = utils.createRule({
17757
18036
  name: "keyword-spacing",
18037
+ package: "ts",
17758
18038
  meta: {
17759
18039
  type: "layout",
17760
18040
  docs: {
@@ -17831,7 +18111,7 @@ var require_lines_around_comment2 = __commonJS({
17831
18111
  var astUtils = require("@typescript-eslint/utils/ast-utils");
17832
18112
  var utils = require_utils3();
17833
18113
  require_dist();
17834
- var baseRule = utils.getESLintCoreRule("lines-around-comment");
18114
+ var baseRule = utils.getJsRule("lines-around-comment");
17835
18115
  var COMMENTS_IGNORE_PATTERN = /^\s*(?:eslint|jshint\s+|jslint\s+|istanbul\s+|globals?\s+|exported\s+|jscs)/u;
17836
18116
  function getEmptyLineNums(lines) {
17837
18117
  const emptyLines = lines.map((line, i) => ({
@@ -17851,6 +18131,7 @@ var require_lines_around_comment2 = __commonJS({
17851
18131
  }
17852
18132
  var linesAroundComment = utils.createRule({
17853
18133
  name: "lines-around-comment",
18134
+ package: "ts",
17854
18135
  meta: {
17855
18136
  type: "layout",
17856
18137
  docs: {
@@ -18128,7 +18409,7 @@ var require_lines_between_class_members2 = __commonJS({
18128
18409
  var utils$1 = require("@typescript-eslint/utils");
18129
18410
  var utils = require_utils3();
18130
18411
  require_dist();
18131
- var baseRule = utils.getESLintCoreRule("lines-between-class-members");
18412
+ var baseRule = utils.getJsRule("lines-between-class-members");
18132
18413
  var schema = Object.values(
18133
18414
  utils.deepMerge(
18134
18415
  { ...baseRule.meta.schema },
@@ -18146,6 +18427,7 @@ var require_lines_between_class_members2 = __commonJS({
18146
18427
  );
18147
18428
  var linesBetweenClassMembers = utils.createRule({
18148
18429
  name: "lines-between-class-members",
18430
+ package: "ts",
18149
18431
  meta: {
18150
18432
  type: "layout",
18151
18433
  docs: {
@@ -18165,7 +18447,7 @@ var require_lines_between_class_members2 = __commonJS({
18165
18447
  ],
18166
18448
  create(context, [firstOption, secondOption]) {
18167
18449
  const rules = baseRule.create(context);
18168
- const exceptAfterOverload = secondOption?.exceptAfterOverload && firstOption === "always";
18450
+ const exceptAfterOverload = secondOption?.exceptAfterOverload && (firstOption === "always" || typeof firstOption !== "string" && firstOption?.enforce.some(({ blankLine, prev, next }) => blankLine === "always" && prev !== "field" && next !== "field"));
18169
18451
  function isOverload(node) {
18170
18452
  return (node.type === utils$1.AST_NODE_TYPES.TSAbstractMethodDefinition || node.type === utils$1.AST_NODE_TYPES.MethodDefinition) && node.value.type === utils$1.AST_NODE_TYPES.TSEmptyBodyFunctionExpression;
18171
18453
  }
@@ -18247,6 +18529,7 @@ var require_member_delimiter_style = __commonJS({
18247
18529
  };
18248
18530
  var memberDelimiterStyle = utils.createRule({
18249
18531
  name: "member-delimiter-style",
18532
+ package: "ts",
18250
18533
  meta: {
18251
18534
  type: "layout",
18252
18535
  docs: {
@@ -18424,9 +18707,10 @@ var require_no_extra_parens2 = __commonJS({
18424
18707
  var astUtils = require("@typescript-eslint/utils/ast-utils");
18425
18708
  var utils = require_utils3();
18426
18709
  require_dist();
18427
- var baseRule = utils.getESLintCoreRule("no-extra-parens");
18710
+ var baseRule = utils.getJsRule("no-extra-parens");
18428
18711
  var noExtraParens = utils.createRule({
18429
18712
  name: "no-extra-parens",
18713
+ package: "ts",
18430
18714
  meta: {
18431
18715
  type: "layout",
18432
18716
  docs: {
@@ -18721,12 +19005,12 @@ var require_no_extra_parens2 = __commonJS({
18721
19005
  var require_no_extra_semi2 = __commonJS({
18722
19006
  "node_modules/@stylistic/eslint-plugin-ts/dist/no-extra-semi.js"(exports2, module2) {
18723
19007
  "use strict";
18724
- require("@typescript-eslint/utils");
18725
19008
  var utils = require_utils3();
18726
19009
  require_dist();
18727
- var baseRule = utils.getESLintCoreRule("no-extra-semi");
19010
+ var baseRule = utils.getJsRule("no-extra-semi");
18728
19011
  var noExtraSemi = utils.createRule({
18729
19012
  name: "no-extra-semi",
19013
+ package: "ts",
18730
19014
  meta: {
18731
19015
  type: "layout",
18732
19016
  docs: {
@@ -18756,13 +19040,13 @@ var require_no_extra_semi2 = __commonJS({
18756
19040
  var require_object_curly_newline2 = __commonJS({
18757
19041
  "node_modules/@stylistic/eslint-plugin-ts/dist/object-curly-newline.js"(exports2, module2) {
18758
19042
  "use strict";
18759
- require("@typescript-eslint/utils");
18760
19043
  var utils = require_utils3();
18761
19044
  require_dist();
18762
- var baseRule = utils.getESLintCoreRule("object-curly-newline");
19045
+ var baseRule = utils.getJsRule("object-curly-newline");
18763
19046
  var defaultOptionValue = { multiline: false, minProperties: Number.POSITIVE_INFINITY, consistent: true };
18764
19047
  var objectCurlyNewline = utils.createRule({
18765
19048
  name: "object-curly-newline",
19049
+ package: "ts",
18766
19050
  meta: {
18767
19051
  ...baseRule.meta,
18768
19052
  docs: {
@@ -18796,10 +19080,10 @@ var require_object_curly_spacing2 = __commonJS({
18796
19080
  var astUtils = require("@typescript-eslint/utils/ast-utils");
18797
19081
  var utils = require_utils3();
18798
19082
  require_dist();
18799
- var baseRule = utils.getESLintCoreRule("object-curly-spacing");
19083
+ var baseRule = utils.getJsRule("object-curly-spacing");
18800
19084
  var objectCurlySpacing = utils.createRule({
18801
19085
  name: "object-curly-spacing",
18802
- //
19086
+ package: "ts",
18803
19087
  meta: {
18804
19088
  ...baseRule.meta,
18805
19089
  docs: {
@@ -18810,7 +19094,7 @@ var require_object_curly_spacing2 = __commonJS({
18810
19094
  create(context) {
18811
19095
  const [firstOption, secondOption] = context.options;
18812
19096
  const spaced = firstOption === "always";
18813
- const sourceCode = context.sourceCode;
19097
+ const sourceCode = context.sourceCode || context.getSourceCode();
18814
19098
  function isOptionSet(option) {
18815
19099
  return secondOption ? secondOption[option] === !spaced : false;
18816
19100
  }
@@ -18820,7 +19104,7 @@ var require_object_curly_spacing2 = __commonJS({
18820
19104
  objectsInObjectsException: isOptionSet("objectsInObjects")
18821
19105
  };
18822
19106
  function reportNoBeginningSpace(node, token) {
18823
- const nextToken = context.getSourceCode().getTokenAfter(token, { includeComments: true });
19107
+ const nextToken = sourceCode.getTokenAfter(token, { includeComments: true });
18824
19108
  context.report({
18825
19109
  node,
18826
19110
  loc: { start: token.loc.end, end: nextToken.loc.start },
@@ -18834,7 +19118,7 @@ var require_object_curly_spacing2 = __commonJS({
18834
19118
  });
18835
19119
  }
18836
19120
  function reportNoEndingSpace(node, token) {
18837
- const previousToken = context.getSourceCode().getTokenBefore(token, { includeComments: true });
19121
+ const previousToken = sourceCode.getTokenBefore(token, { includeComments: true });
18838
19122
  context.report({
18839
19123
  node,
18840
19124
  loc: { start: previousToken.loc.end, end: token.loc.start },
@@ -18945,12 +19229,12 @@ var require_object_curly_spacing2 = __commonJS({
18945
19229
  var require_object_property_newline2 = __commonJS({
18946
19230
  "node_modules/@stylistic/eslint-plugin-ts/dist/object-property-newline.js"(exports2, module2) {
18947
19231
  "use strict";
18948
- require("@typescript-eslint/utils");
18949
19232
  var utils = require_utils3();
18950
19233
  require_dist();
18951
- var baseRule = utils.getESLintCoreRule("object-property-newline");
19234
+ var baseRule = utils.getJsRule("object-property-newline");
18952
19235
  var objectPropertyNewline = utils.createRule({
18953
19236
  name: "object-property-newline",
19237
+ package: "ts",
18954
19238
  meta: {
18955
19239
  ...baseRule.meta,
18956
19240
  docs: {
@@ -19208,6 +19492,7 @@ var require_padding_line_between_statements2 = __commonJS({
19208
19492
  "block": newNodeTypeTester(utils.AST_NODE_TYPES.BlockStatement),
19209
19493
  "empty": newNodeTypeTester(utils.AST_NODE_TYPES.EmptyStatement),
19210
19494
  "function": newNodeTypeTester(utils.AST_NODE_TYPES.FunctionDeclaration),
19495
+ "ts-method": newNodeTypeTester(utils.AST_NODE_TYPES.TSMethodSignature),
19211
19496
  "break": newKeywordTester(utils.AST_NODE_TYPES.BreakStatement, "break"),
19212
19497
  "case": newKeywordTester(utils.AST_NODE_TYPES.SwitchCase, "case"),
19213
19498
  "class": newKeywordTester(utils.AST_NODE_TYPES.ClassDeclaration, "class"),
@@ -19273,6 +19558,7 @@ var require_padding_line_between_statements2 = __commonJS({
19273
19558
  };
19274
19559
  var paddingLineBetweenStatements = utils$1.createRule({
19275
19560
  name: "padding-line-between-statements",
19561
+ package: "ts",
19276
19562
  meta: {
19277
19563
  type: "layout",
19278
19564
  docs: {
@@ -19377,7 +19663,9 @@ var require_padding_line_between_statements2 = __commonJS({
19377
19663
  utils.AST_NODE_TYPES.Program,
19378
19664
  utils.AST_NODE_TYPES.SwitchCase,
19379
19665
  utils.AST_NODE_TYPES.SwitchStatement,
19380
- utils.AST_NODE_TYPES.TSModuleBlock
19666
+ utils.AST_NODE_TYPES.TSInterfaceBody,
19667
+ utils.AST_NODE_TYPES.TSModuleBlock,
19668
+ utils.AST_NODE_TYPES.TSTypeLiteral
19381
19669
  ].includes(node.parent.type)) {
19382
19670
  return;
19383
19671
  }
@@ -19397,16 +19685,22 @@ var require_padding_line_between_statements2 = __commonJS({
19397
19685
  "Program": enterScope,
19398
19686
  "BlockStatement": enterScope,
19399
19687
  "SwitchStatement": enterScope,
19688
+ "TSInterfaceBody": enterScope,
19400
19689
  "TSModuleBlock": enterScope,
19690
+ "TSTypeLiteral": enterScope,
19401
19691
  "Program:exit": exitScope,
19402
19692
  "BlockStatement:exit": exitScope,
19403
19693
  "SwitchStatement:exit": exitScope,
19694
+ "TSInterfaceBody:exit": exitScope,
19404
19695
  "TSModuleBlock:exit": exitScope,
19696
+ "TSTypeLiteral:exit": exitScope,
19405
19697
  ":statement": verify,
19406
19698
  "SwitchCase": verifyThenEnterScope,
19407
19699
  "TSDeclareFunction": verifyThenEnterScope,
19700
+ "TSMethodSignature": verifyThenEnterScope,
19408
19701
  "SwitchCase:exit": exitScope,
19409
- "TSDeclareFunction:exit": exitScope
19702
+ "TSDeclareFunction:exit": exitScope,
19703
+ "TSMethodSignature:exit": exitScope
19410
19704
  };
19411
19705
  }
19412
19706
  });
@@ -19421,9 +19715,10 @@ var require_quote_props2 = __commonJS({
19421
19715
  var utils$1 = require("@typescript-eslint/utils");
19422
19716
  var utils = require_utils3();
19423
19717
  require_dist();
19424
- var baseRule = utils.getESLintCoreRule("quote-props");
19718
+ var baseRule = utils.getJsRule("quote-props");
19425
19719
  var quoteProps = utils.createRule({
19426
19720
  name: "quote-props",
19721
+ package: "ts",
19427
19722
  meta: {
19428
19723
  ...baseRule.meta,
19429
19724
  docs: {
@@ -19503,9 +19798,10 @@ var require_quotes2 = __commonJS({
19503
19798
  var utils$1 = require("@typescript-eslint/utils");
19504
19799
  var utils = require_utils3();
19505
19800
  require_dist();
19506
- var baseRule = utils.getESLintCoreRule("quotes");
19801
+ var baseRule = utils.getJsRule("quotes");
19507
19802
  var quotes = utils.createRule({
19508
19803
  name: "quotes",
19804
+ package: "ts",
19509
19805
  meta: {
19510
19806
  type: "layout",
19511
19807
  docs: {
@@ -19569,9 +19865,10 @@ var require_semi2 = __commonJS({
19569
19865
  var utils$1 = require("@typescript-eslint/utils");
19570
19866
  var utils = require_utils3();
19571
19867
  require_dist();
19572
- var baseRule = utils.getESLintCoreRule("semi");
19868
+ var baseRule = utils.getJsRule("semi");
19573
19869
  var semi = utils.createRule({
19574
19870
  name: "semi",
19871
+ package: "ts",
19575
19872
  meta: {
19576
19873
  type: "layout",
19577
19874
  docs: {
@@ -19624,12 +19921,12 @@ var require_space_before_blocks2 = __commonJS({
19624
19921
  "node_modules/@stylistic/eslint-plugin-ts/dist/space-before-blocks.js"(exports2, module2) {
19625
19922
  "use strict";
19626
19923
  var astUtils = require("@typescript-eslint/utils/ast-utils");
19627
- require("@typescript-eslint/utils");
19628
19924
  var utils = require_utils3();
19629
19925
  require_dist();
19630
- var baseRule = utils.getESLintCoreRule("space-before-blocks");
19926
+ var baseRule = utils.getJsRule("space-before-blocks");
19631
19927
  var spaceBeforeBlocks = utils.createRule({
19632
19928
  name: "space-before-blocks",
19929
+ package: "ts",
19633
19930
  meta: {
19634
19931
  type: "layout",
19635
19932
  docs: {
@@ -19708,6 +20005,7 @@ var require_space_before_function_paren2 = __commonJS({
19708
20005
  require_dist();
19709
20006
  var spaceBeforeFunctionParen = utils.createRule({
19710
20007
  name: "space-before-function-paren",
20008
+ package: "ts",
19711
20009
  meta: {
19712
20010
  type: "layout",
19713
20011
  docs: {
@@ -19824,10 +20122,11 @@ var require_space_infix_ops2 = __commonJS({
19824
20122
  var astUtils = require("@typescript-eslint/utils/ast-utils");
19825
20123
  var utils = require_utils3();
19826
20124
  require_dist();
19827
- var baseRule = utils.getESLintCoreRule("space-infix-ops");
20125
+ var baseRule = utils.getJsRule("space-infix-ops");
19828
20126
  var UNIONS = ["|", "&"];
19829
20127
  var spaceInfixOps = utils.createRule({
19830
20128
  name: "space-infix-ops",
20129
+ package: "ts",
19831
20130
  meta: {
19832
20131
  type: "layout",
19833
20132
  docs: {
@@ -19940,7 +20239,6 @@ var require_type_annotation_spacing = __commonJS({
19940
20239
  "node_modules/@stylistic/eslint-plugin-ts/dist/type-annotation-spacing.js"(exports2, module2) {
19941
20240
  "use strict";
19942
20241
  var astUtils = require("@typescript-eslint/utils/ast-utils");
19943
- require("@typescript-eslint/utils");
19944
20242
  var utils = require_utils3();
19945
20243
  require_dist();
19946
20244
  function createRules(options) {
@@ -19990,6 +20288,7 @@ var require_type_annotation_spacing = __commonJS({
19990
20288
  }
19991
20289
  var typeAnnotationSpacing = utils.createRule({
19992
20290
  name: "type-annotation-spacing",
20291
+ package: "ts",
19993
20292
  meta: {
19994
20293
  type: "layout",
19995
20294
  docs: {
@@ -20217,29 +20516,7 @@ var require_configs3 = __commonJS({
20217
20516
  "node_modules/@stylistic/eslint-plugin-ts/dist/configs.js"(exports2) {
20218
20517
  "use strict";
20219
20518
  var index2 = require_index2();
20220
- function createAllConfigs(plugin2, name, flat, filter) {
20221
- const rules = Object.fromEntries(
20222
- Object.entries(plugin2.rules).filter(
20223
- ([key, rule]) => (
20224
- // Only include fixable rules
20225
- rule.meta.fixable && !rule.meta.deprecated && key === rule.meta.docs.url.split("/").pop() && !filter
20226
- )
20227
- ).map(([key]) => [`${name}/${key}`, 2])
20228
- );
20229
- if (flat) {
20230
- return {
20231
- plugins: {
20232
- [name]: plugin2
20233
- },
20234
- rules
20235
- };
20236
- } else {
20237
- return {
20238
- plugins: [name],
20239
- rules
20240
- };
20241
- }
20242
- }
20519
+ var utils = require_utils3();
20243
20520
  var plugin = {
20244
20521
  rules: index2.rules
20245
20522
  };
@@ -20273,8 +20550,8 @@ var require_configs3 = __commonJS({
20273
20550
  };
20274
20551
  var configs2 = {
20275
20552
  "disable-legacy": config,
20276
- "all-flat": createAllConfigs(plugin, "@stylistic/ts", true),
20277
- "all-extends": createAllConfigs(plugin, "@stylistic/ts", false)
20553
+ "all-flat": utils.createAllConfigs(plugin, "@stylistic/ts", true),
20554
+ "all-extends": utils.createAllConfigs(plugin, "@stylistic/ts", false)
20278
20555
  };
20279
20556
  exports2.configs = configs2;
20280
20557
  exports2.plugin = plugin;
@@ -20324,10 +20601,61 @@ var require_dist3 = __commonJS({
20324
20601
  var require_utils4 = __commonJS({
20325
20602
  "node_modules/@stylistic/eslint-plugin-plus/dist/utils.js"(exports2) {
20326
20603
  "use strict";
20327
- var utils = require("@typescript-eslint/utils");
20328
- var createRule = utils.ESLintUtils.RuleCreator(
20329
- (name) => `https://eslint.style/rules/plus/${name}`
20330
- );
20604
+ function isObjectNotArray(obj) {
20605
+ return typeof obj === "object" && obj != null && !Array.isArray(obj);
20606
+ }
20607
+ function deepMerge(first = {}, second = {}) {
20608
+ const keys = new Set(Object.keys(first).concat(Object.keys(second)));
20609
+ return Array.from(keys).reduce((acc, key) => {
20610
+ const firstHasKey = key in first;
20611
+ const secondHasKey = key in second;
20612
+ const firstValue = first[key];
20613
+ const secondValue = second[key];
20614
+ if (firstHasKey && secondHasKey) {
20615
+ if (isObjectNotArray(firstValue) && isObjectNotArray(secondValue)) {
20616
+ acc[key] = deepMerge(firstValue, secondValue);
20617
+ } else {
20618
+ acc[key] = secondValue;
20619
+ }
20620
+ } else if (firstHasKey) {
20621
+ acc[key] = firstValue;
20622
+ } else {
20623
+ acc[key] = secondValue;
20624
+ }
20625
+ return acc;
20626
+ }, {});
20627
+ }
20628
+ function createRule({
20629
+ name,
20630
+ package: pkg,
20631
+ create,
20632
+ defaultOptions = [],
20633
+ meta
20634
+ }) {
20635
+ return {
20636
+ create: (context) => {
20637
+ const optionsCount = Math.max(context.options.length, defaultOptions.length);
20638
+ const optionsWithDefault = Array.from(
20639
+ { length: optionsCount },
20640
+ (_, i) => {
20641
+ if (isObjectNotArray(context.options[i]) && isObjectNotArray(defaultOptions[i])) {
20642
+ return deepMerge(defaultOptions[i], context.options[i]);
20643
+ }
20644
+ return context.options[i] ?? defaultOptions[i];
20645
+ }
20646
+ );
20647
+ return create(context, optionsWithDefault);
20648
+ },
20649
+ defaultOptions,
20650
+ meta: {
20651
+ ...meta,
20652
+ docs: {
20653
+ ...meta.docs,
20654
+ url: `https://eslint.style/rules/${pkg}/${name}`
20655
+ }
20656
+ }
20657
+ };
20658
+ }
20331
20659
  exports2.createRule = createRule;
20332
20660
  }
20333
20661
  });
@@ -20336,10 +20664,10 @@ var require_utils4 = __commonJS({
20336
20664
  var require_indent_binary_ops = __commonJS({
20337
20665
  "node_modules/@stylistic/eslint-plugin-plus/dist/indent-binary-ops.js"(exports2, module2) {
20338
20666
  "use strict";
20339
- var utils$1 = require("@typescript-eslint/utils");
20340
20667
  var utils = require_utils4();
20341
20668
  var indentBinaryOps = utils.createRule({
20342
20669
  name: "indent-binary-ops",
20670
+ package: "plus",
20343
20671
  meta: {
20344
20672
  type: "layout",
20345
20673
  docs: {
@@ -20397,7 +20725,7 @@ var require_indent_binary_ops = __commonJS({
20397
20725
  return;
20398
20726
  const firstTokenOfLineLeft = firstTokenOfLine(tokenLeft.loc.start.line);
20399
20727
  const lastTokenOfLineLeft = lastTokenOfLine(tokenLeft.loc.start.line);
20400
- const needAdditionIndent = firstTokenOfLineLeft?.type === "Keyword" && !["typeof", "instanceof", "this"].includes(firstTokenOfLineLeft.value) || firstTokenOfLineLeft?.type === "Identifier" && firstTokenOfLineLeft.value === "type" && node.parent?.type === utils$1.AST_NODE_TYPES.TSTypeAliasDeclaration || [":", "[", "(", "<", "="].includes(lastTokenOfLineLeft?.value || "") || ["||", "&&"].includes(lastTokenOfLineLeft?.value || "") && node.loc.start.line === tokenLeft.loc.start.line && node.loc.start.column !== getIndentOfLine(node.loc.start.line).length;
20728
+ const needAdditionIndent = firstTokenOfLineLeft?.type === "Keyword" && !["typeof", "instanceof", "this"].includes(firstTokenOfLineLeft.value) || firstTokenOfLineLeft?.type === "Identifier" && firstTokenOfLineLeft.value === "type" && node.parent?.type === "TSTypeAliasDeclaration" || [":", "[", "(", "<", "="].includes(lastTokenOfLineLeft?.value || "") || ["||", "&&"].includes(lastTokenOfLineLeft?.value || "") && node.loc.start.line === tokenLeft.loc.start.line && node.loc.start.column !== getIndentOfLine(node.loc.start.line).length;
20401
20729
  const indentTarget = getIndentOfLine(tokenLeft.loc.start.line) + (needAdditionIndent ? indentStr : "");
20402
20730
  const indentRight = getIndentOfLine(tokenRight.loc.start.line);
20403
20731
  if (indentTarget !== indentRight) {
@@ -20461,7 +20789,6 @@ var require_type_generic_spacing = __commonJS({
20461
20789
  "node_modules/@stylistic/eslint-plugin-plus/dist/type-generic-spacing.js"(exports2, module2) {
20462
20790
  "use strict";
20463
20791
  var utils = require_utils4();
20464
- require("@typescript-eslint/utils");
20465
20792
  var PRESERVE_PREFIX_SPACE_BEFORE_GENERIC = /* @__PURE__ */ new Set([
20466
20793
  "TSCallSignatureDeclaration",
20467
20794
  "ArrowFunctionExpression",
@@ -20470,6 +20797,7 @@ var require_type_generic_spacing = __commonJS({
20470
20797
  ]);
20471
20798
  var typeGenericSpacing = utils.createRule({
20472
20799
  name: "type-generic-spacing",
20800
+ package: "plus",
20473
20801
  meta: {
20474
20802
  type: "layout",
20475
20803
  docs: {
@@ -20555,10 +20883,10 @@ var require_type_named_tuple_spacing = __commonJS({
20555
20883
  "node_modules/@stylistic/eslint-plugin-plus/dist/type-named-tuple-spacing.js"(exports2, module2) {
20556
20884
  "use strict";
20557
20885
  var utils = require_utils4();
20558
- require("@typescript-eslint/utils");
20559
20886
  var tupleRe = /^([\w$]+)(\s*)(\?\s*)?:(\s*)(.*)$/;
20560
20887
  var typeNamedTupleSpacing = utils.createRule({
20561
20888
  name: "type-named-tuple-spacing",
20889
+ package: "plus",
20562
20890
  meta: {
20563
20891
  type: "layout",
20564
20892
  docs: {
@@ -20636,7 +20964,6 @@ var require_dist4 = __commonJS({
20636
20964
  var indentBinaryOps = require_indent_binary_ops();
20637
20965
  var typeGenericSpacing = require_type_generic_spacing();
20638
20966
  var typeNamedTupleSpacing = require_type_named_tuple_spacing();
20639
- require("@typescript-eslint/utils");
20640
20967
  require_utils4();
20641
20968
  var rules = {
20642
20969
  "indent-binary-ops": indentBinaryOps,
@@ -20658,6 +20985,14 @@ var require_configs4 = __commonJS({
20658
20985
  var jsx = require_dist2();
20659
20986
  var ts = require_dist3();
20660
20987
  var plus = require_dist4();
20988
+ var plugin = {
20989
+ rules: {
20990
+ ...js.rules,
20991
+ ...jsx.rules,
20992
+ ...ts.rules,
20993
+ ...plus.rules
20994
+ }
20995
+ };
20661
20996
  function createAllConfigs(plugin2, name, flat, filter) {
20662
20997
  const rules = Object.fromEntries(
20663
20998
  Object.entries(plugin2.rules).filter(
@@ -20681,14 +21016,6 @@ var require_configs4 = __commonJS({
20681
21016
  };
20682
21017
  }
20683
21018
  }
20684
- var plugin = {
20685
- rules: {
20686
- ...js.rules,
20687
- ...jsx.rules,
20688
- ...ts.rules,
20689
- ...plus.rules
20690
- }
20691
- };
20692
21019
  var config = {
20693
21020
  rules: {
20694
21021
  "array-bracket-newline": 0,
@@ -20833,7 +21160,6 @@ var require_configs4 = __commonJS({
20833
21160
  FunctionExpression: { body: 1, parameters: 1 },
20834
21161
  ignoreComments: false,
20835
21162
  ignoredNodes: [
20836
- "TemplateLiteral *",
20837
21163
  "TSUnionType",
20838
21164
  "TSIntersectionType",
20839
21165
  "TSTypeParameterInstantiation",